@cityofzion/bs-neo-legacy 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.rush/temp/shrinkwrap-deps.json +103 -0
- package/bs-neo-legacy.build.error.log +4 -0
- package/bs-neo-legacy.build.log +6 -0
- package/dist/BDSNeoLegacy.d.ts +15 -0
- package/dist/BDSNeoLegacy.js +199 -0
- package/dist/BSNeoLegacy.d.ts +49 -0
- package/dist/BSNeoLegacy.js +217 -0
- package/dist/asset/tokens.json +480 -0
- package/dist/constants.d.ts +10 -0
- package/dist/constants.js +20 -0
- package/dist/explorer/dora/DoraResponsesNeoLegacy.d.ts +95 -0
- package/dist/explorer/dora/DoraResponsesNeoLegacy.js +2 -0
- package/dist/explorer/dora/DoraRoutesNeoLegacy.d.ts +7 -0
- package/dist/explorer/dora/DoraRoutesNeoLegacy.js +10 -0
- package/dist/explorer/index.d.ts +6 -0
- package/dist/explorer/index.js +23 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.js +19 -0
- package/docs/.nojekyll +1 -0
- package/docs/assets/highlight.css +22 -0
- package/docs/assets/main.js +58 -0
- package/docs/assets/search.js +1 -0
- package/docs/assets/style.css +1280 -0
- package/docs/classes/BDSNeoLegacy.html +243 -0
- package/docs/classes/BSNeoLegacy.html +435 -0
- package/docs/index.html +70 -0
- package/docs/interfaces/DoraNeoLegacyAsset.html +103 -0
- package/docs/interfaces/DoraNeoLegacyAssetResponse.html +117 -0
- package/docs/interfaces/DoraNeoLegacyBalance.html +89 -0
- package/docs/interfaces/DoraNeoLegacyConsensusNode.html +75 -0
- package/docs/interfaces/DoraNeoLegacyDetails.html +138 -0
- package/docs/interfaces/DoraNeoLegacyEntriesEntity.html +110 -0
- package/docs/interfaces/DoraNeoLegacyNameEntity.html +75 -0
- package/docs/interfaces/DoraNeoLegacyScriptsEntity.html +75 -0
- package/docs/interfaces/DoraNeoLegacyTransaction.html +152 -0
- package/docs/interfaces/DoraNeoLegacyTransactionsHistory.html +96 -0
- package/docs/interfaces/DoraNeoLegacyUnclaimed.html +82 -0
- package/docs/interfaces/DoraNeoLegacyVinEntity.html +75 -0
- package/docs/interfaces/DoraNeoLegacyVoutEntity.html +89 -0
- package/docs/modules.html +98 -0
- package/docs/variables/DORA_NEO_LEGACY_ASSET.html +69 -0
- package/docs/variables/DORA_NEO_LEGACY_BALANCE.html +69 -0
- package/docs/variables/DORA_NEO_LEGACY_CONTRACT.html +69 -0
- package/docs/variables/DORA_NEO_LEGACY_HISTORY_TRANSACTIONS.html +69 -0
- package/docs/variables/DORA_NEO_LEGACY_NODES.html +69 -0
- package/docs/variables/DORA_NEO_LEGACY_TRANSACTION.html +69 -0
- package/docs/variables/DORA_NEO_LEGACY_UNCLAIMED.html +69 -0
- package/docs/variables/explorerNeoLegacyOption.html +74 -0
- package/neo-neo-logo.png +0 -0
- package/package.json +28 -0
- package/src/BDSNeoLegacy.ts +164 -0
- package/src/BSNeoLegacy.ts +162 -0
- package/src/asset/tokens.json +481 -0
- package/src/blockchain_icon_neo_legacy.png +0 -0
- package/src/blockchain_icon_neo_legacy_white.png +0 -0
- package/src/constants.ts +18 -0
- package/src/explorer/dora/DoraResponsesNeoLegacy.ts +107 -0
- package/src/explorer/dora/DoraRoutesNeoLegacy.ts +7 -0
- package/src/explorer/index.ts +8 -0
- package/src/index.ts +3 -0
- package/tsconfig.json +13 -0
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
{
|
|
2
|
+
"../../packages/bs-neo-legacy": "../../packages/bs-neo-legacy:h3RAijXNoABRoRlJrjIvcArqL7aGeu04D2KCweDOmug=:",
|
|
3
|
+
"/@cityofzion/blockchain-service/0.1.1": "sha512-2b0zWzyhi8/7aeIsL1m/MaiFyUN/IVkZaFKtGH1OFD7vi45+GUXgyzKTFSGM7q0nP12kU7xNP7iKsghjc1oPJg==",
|
|
4
|
+
"/@cityofzion/dora-ts/0.0.11": "sha512-LJWGU29BHPTHkt0i/OwhNdMfUGM/rgAa4rqlDwBy95spxSoUHGSoAtOD5k4aSVKmLFwq77ghNna0Lpc7lEuHBA==",
|
|
5
|
+
"/@cityofzion/neon-api/4.9.0_@cityofzion+neon-core@4.9.0": "sha512-8eN3N3sGgd4L7qFaFATKr94kA/65626eo6hB7fHL+S8OGCVCrrl3tfh8GAOv50vLxd2YyoDu9pBY/0NPKY8tsQ==",
|
|
6
|
+
"/@cityofzion/neon-core/4.9.0": "sha512-z4UgEIjAS9E2QP6HSTzri02DFY++nYmfzbspi1818mvnTst6Lf8bDNYYxG/686wdYN2dEF3RuccMXraw2Bm31g==",
|
|
7
|
+
"/@cityofzion/neon-js/4.9.0": "sha512-YYeMbQGZJkC8Wq2UQt98OUys8f8tPCaXMplbV8GwiJEdG+PJJOFGg3NkvrDGUfcuasff0dcn8LWjXTPKPp+Gyw==",
|
|
8
|
+
"/@cityofzion/neon-nep5/4.9.0": "sha512-MSRXHl+UGYnh8f9FC7zZvMNRblnl496VxG3tjA+GIShtLR6u75/FK7syVXua9h8/khljL7qqSfnNqA+sy7q+eg==",
|
|
9
|
+
"/@cspotcode/source-map-support/0.8.1": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==",
|
|
10
|
+
"/@jridgewell/resolve-uri/3.1.0": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==",
|
|
11
|
+
"/@jridgewell/sourcemap-codec/1.4.14": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==",
|
|
12
|
+
"/@jridgewell/trace-mapping/0.3.9": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==",
|
|
13
|
+
"/@tsconfig/node10/1.0.9": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==",
|
|
14
|
+
"/@tsconfig/node12/1.0.11": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==",
|
|
15
|
+
"/@tsconfig/node14/1.0.3": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==",
|
|
16
|
+
"/@tsconfig/node16/1.0.3": "sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==",
|
|
17
|
+
"/@types/bn.js/5.1.0": "sha512-QSSVYj7pYFN49kW77o2s9xTCwZ8F2xLbjLLSEVh8D2F4JUhZtPAGOFLTD+ffqksBx/u4cE/KImFjyhqCjn/LIA==",
|
|
18
|
+
"/@types/bs58/4.0.1": "sha512-yfAgiWgVLjFCmRv8zAcOIHywYATEwiTVccTLnRp6UxTNavT55M9d/uhK3T03St/+8/z/wW+CRjGKUNmEqoHHCA==",
|
|
19
|
+
"/@types/crypto-js/4.0.1": "sha512-6+OPzqhKX/cx5xh+yO8Cqg3u3alrkhoxhE5ZOdSEv0DOzJ13lwJ6laqGU0Kv6+XDMFmlnGId04LtY22PsFLQUw==",
|
|
20
|
+
"/@types/elliptic/6.4.12": "sha512-gP1KsqoouLJGH6IJa28x7PXb3cRqh83X8HCLezd2dF+XcAIMKYv53KV+9Zn6QA561E120uOqZBQ+Jy/cl+fviw==",
|
|
21
|
+
"/@types/lodash/4.14.191": "sha512-BdZ5BCCvho3EIXw6wUCXHe7rS53AIDPLE+JzwgT+OsJk53oBfbSmZZ7CX4VaRoN78N+TJpFi9QPlfIVNmJYWxQ==",
|
|
22
|
+
"/@types/loglevel/1.6.3": "sha512-v2YWQQgqtNXAzybOT9qV3CIJqSeoaMUwmBfIMTQdvhsWUybYic/zNGccKH494naWKJ7zUm+VTgFepJfTrbCCJQ==",
|
|
23
|
+
"/@types/node/11.11.6": "sha512-Exw4yUWMBXM3X+8oqzJNRqZSwUAaS4+7NdvHqQuFi/d+synz++xmX3QIf+BFqneW8N31R8Ky+sikfZUXq07ggQ==",
|
|
24
|
+
"/@types/node/15.0.3": "sha512-/WbxFeBU+0F79z9RdEOXH4CsDga+ibi5M8uEYr91u3CkT/pdWcV8MCook+4wDPnZBexRdwWS+PiVZ2xJviAzcQ==",
|
|
25
|
+
"/@types/node/18.13.0": "sha512-gC3TazRzGoOnoKAhUx+Q0t8S9Tzs74z7m0ipwGpSqQrleP14hKxP4/JUeEQcD3W1/aIpnWl8pHowI7WokuZpXg==",
|
|
26
|
+
"/acorn-walk/8.2.0": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==",
|
|
27
|
+
"/acorn/8.8.2": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==",
|
|
28
|
+
"/arg/4.1.3": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==",
|
|
29
|
+
"/asynckit/0.4.0": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==",
|
|
30
|
+
"/axios/0.19.2": "sha512-fjgm5MvRHLhx+osE2xoekY70AhARk3a6hkN+3Io1jc00jtquGvxYlKlsFUhmUET0V5te6CcZI7lcv2Ym61mjHA==",
|
|
31
|
+
"/axios/0.21.1": "sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA==",
|
|
32
|
+
"/axios/1.3.2": "sha512-1M3O703bYqYuPhbHeya5bnhpYVsDDRyQSabNja04mZtboLNSuZ4YrltestrLXfHgmzua4TpUqRiVKbiQuo2epw==",
|
|
33
|
+
"/balanced-match/1.0.2": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
|
|
34
|
+
"/base-x/3.0.9": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==",
|
|
35
|
+
"/bignumber.js/7.2.1": "sha512-S4XzBk5sMB+Rcb/LNcpzXr57VRTxgAvaAEDAl1AwRx27j00hT84O6OkteE7u8UB3NuaaygCRrEpqox4uDOrbdQ==",
|
|
36
|
+
"/bip39/3.0.4": "sha512-YZKQlb752TrUWqHWj7XAwCSjYEgGAk+/Aas3V7NyjQeZYsztO8JnQUaCWhcnL4T+jL8nvB8typ2jRPzTlgugNw==",
|
|
37
|
+
"/bn.js/4.12.0": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==",
|
|
38
|
+
"/bn.js/5.2.0": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==",
|
|
39
|
+
"/brace-expansion/2.0.1": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
|
|
40
|
+
"/brorand/1.1.0": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==",
|
|
41
|
+
"/bs58/4.0.1": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==",
|
|
42
|
+
"/bs58check/2.1.2": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==",
|
|
43
|
+
"/build-url/2.0.0": "sha512-LYvvOlDc9jT07wFXTQTKoQLYaXIJriVl/DgatTsSzY963+ip1O7M6G/jWBrlKKJ1L7HGD3oK+WykmOvbcSYXlQ==",
|
|
44
|
+
"/cipher-base/1.0.4": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==",
|
|
45
|
+
"/combined-stream/1.0.8": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
|
|
46
|
+
"/create-hash/1.2.0": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==",
|
|
47
|
+
"/create-hmac/1.1.7": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==",
|
|
48
|
+
"/create-require/1.1.1": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==",
|
|
49
|
+
"/crypto-js/4.0.0": "sha512-bzHZN8Pn+gS7DQA6n+iUmBfl0hO5DJq++QP3U6uTucDtk/0iGpXd/Gg7CGR0p8tJhofJyaKoWBuJI4eAO00BBg==",
|
|
50
|
+
"/crypto/1.0.1": "sha512-VxBKmeNcqQdiUQUW2Tzq0t377b54N2bMtXO/qiLa+6eRRmmC4qT3D4OnTGoT/U6O9aklQ/jTwbOtRMTTY8G0Ig==",
|
|
51
|
+
"/debug/3.1.0": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
|
|
52
|
+
"/delayed-stream/1.0.0": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
|
|
53
|
+
"/diff/4.0.2": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==",
|
|
54
|
+
"/elliptic/6.5.4": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==",
|
|
55
|
+
"/follow-redirects/1.15.2": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==",
|
|
56
|
+
"/follow-redirects/1.5.10": "sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==",
|
|
57
|
+
"/form-data/4.0.0": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==",
|
|
58
|
+
"/hash-base/3.1.0": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==",
|
|
59
|
+
"/hash.js/1.1.7": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==",
|
|
60
|
+
"/hmac-drbg/1.0.1": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==",
|
|
61
|
+
"/inherits/2.0.4": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
|
|
62
|
+
"/isomorphic-ws/4.0.1_ws@7.4.5": "sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w==",
|
|
63
|
+
"/json-rpc-error/2.0.0": "sha512-EwUeWP+KgAZ/xqFpaP6YDAXMtCJi+o/QQpCQFIYyxr01AdADi2y413eM8hSqJcoQym9WMePAJWoaODEJufC4Ug==",
|
|
64
|
+
"/jsonc-parser/3.2.0": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==",
|
|
65
|
+
"/lodash/4.17.21": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
|
|
66
|
+
"/loglevel-plugin-prefix/0.8.4": "sha512-WpG9CcFAOjz/FtNht+QJeGpvVl/cdR6P0z6OcXSkr8wFJOsV2GRj2j10JLfjuA4aYkcKCNIEqRGCyTife9R8/g==",
|
|
67
|
+
"/loglevel/1.7.1": "sha512-Hesni4s5UkWkwCGJMQGAh71PaLUmKFM60dHvq0zi/vDhhrzuk+4GgNbTXJ12YYQJn6ZKBDNIjYcuQGKudvqrIw==",
|
|
68
|
+
"/loglevel/1.8.1": "sha512-tCRIJM51SHjAayKwC+QAg8hT8vg6z7GSgLJKGvzuPb1Wc+hLzqtuVLxp6/HzSPOozuK+8ErAhy7U/sVzw8Dgfg==",
|
|
69
|
+
"/lunr/2.3.9": "sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==",
|
|
70
|
+
"/make-error/1.3.6": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==",
|
|
71
|
+
"/marked/4.2.12": "sha512-yr8hSKa3Fv4D3jdZmtMMPghgVt6TWbk86WQaWhDloQjRSQhMMYCAro7jP7VDJrjjdV8pxVxMssXS8B8Y5DZ5aw==",
|
|
72
|
+
"/md5.js/1.3.5": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==",
|
|
73
|
+
"/mime-db/1.52.0": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
|
|
74
|
+
"/mime-types/2.1.35": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
|
|
75
|
+
"/minimalistic-assert/1.0.1": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==",
|
|
76
|
+
"/minimalistic-crypto-utils/1.0.1": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==",
|
|
77
|
+
"/minimatch/5.1.6": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==",
|
|
78
|
+
"/moment/2.29.4": "sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==",
|
|
79
|
+
"/ms/2.0.0": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
|
|
80
|
+
"/node-log-it/2.0.0": "sha512-+hWjAW6ZW+P70cSmq7lwka884pQvitN+nKqgEwNPyZgqNybr563Z/yM/6KXONlkGZ+Pjwin0v8/FBe12Rbthfg==",
|
|
81
|
+
"/pbkdf2/3.1.2": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==",
|
|
82
|
+
"/proxy-from-env/1.1.0": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==",
|
|
83
|
+
"/randombytes/2.1.0": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
|
|
84
|
+
"/readable-stream/3.6.0": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
|
|
85
|
+
"/ripemd160/2.0.2": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==",
|
|
86
|
+
"/safe-buffer/5.2.1": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
|
|
87
|
+
"/scrypt-js/3.0.1": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==",
|
|
88
|
+
"/secure-random/1.1.2": "sha512-H2bdSKERKdBV1SwoqYm6C0y+9EA94v6SUBOWO8kDndc4NoUih7Dv6Tsgma7zO1lv27wIvjlD0ZpMQk7um5dheQ==",
|
|
89
|
+
"/sha.js/2.4.11": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==",
|
|
90
|
+
"/shiki/0.12.1": "sha512-aieaV1m349rZINEBkjxh2QbBvFFQOlgqYTNtCal82hHj4dDZ76oMlQIX+C7ryerBTDiga3e5NfH6smjdJ02BbQ==",
|
|
91
|
+
"/string_decoder/1.3.0": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
|
|
92
|
+
"/ts-node/10.9.1_typescript@4.9.5": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==",
|
|
93
|
+
"/typedoc/0.23.24_typescript@4.9.5": "sha512-bfmy8lNQh+WrPYcJbtjQ6JEEsVl/ce1ZIXyXhyW+a1vFrjO39t6J8sL/d6FfAGrJTc7McCXgk9AanYBSNvLdIA==",
|
|
94
|
+
"/typescript/4.9.5": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==",
|
|
95
|
+
"/util-deprecate/1.0.2": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
|
|
96
|
+
"/v8-compile-cache-lib/3.0.1": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==",
|
|
97
|
+
"/vscode-oniguruma/1.7.0": "sha512-L9WMGRfrjOhgHSdOYgCt/yRMsXzLDJSL7BPrOZt73gU0iWO4mpqzqQzOz5srxqTvMBaR0XZTSrVWo4j55Rc6cA==",
|
|
98
|
+
"/vscode-textmate/8.0.0": "sha512-AFbieoL7a5LMqcnOF04ji+rpXadgOXnZsxQr//r83kLPr7biP7am3g9zbaZIaBGwBRWeSvoMD4mgPdX3e4NWBg==",
|
|
99
|
+
"/wif/2.0.6": "sha512-HIanZn1zmduSF+BQhkE+YXIbEiH0xPr1012QbFEGB0xsKqJii0/SqJjyn8dFv6y36kOznMgMB+LGcbZTJ1xACQ==",
|
|
100
|
+
"/ws/7.4.5": "sha512-xzyu3hFvomRfXKH8vOFMU3OguG6oOvhXMo3xsGy3xWExqaM2dxBbVxuD99O7m3ZUFMvvscsZDqxfgMaRr/Nr1g==",
|
|
101
|
+
"/yn/3.1.1": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==",
|
|
102
|
+
"github.com/Moonlight-io/asteroid-sdk-js/7f067dc2f6be0bf77cabc10771c204035770be52": "github.com/Moonlight-io/asteroid-sdk-js/7f067dc2f6be0bf77cabc10771c204035770be52:mDnTjFFTGh2EHEpFaZmzCZqYy+KACa+0kd0cK+WGigs=:"
|
|
103
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
Invoking: tsc && typedoc src/index.ts
|
|
2
|
+
./src/BSNeoLegacy.ts:87:8 - warning TransactionIntentResponse is referenced by BSNeoLegacy.setTypeIntents.setTypeIntents but not included in the documentation.
|
|
3
|
+
|
|
4
|
+
87 type TransactionIntentResponse = IntentTransactionParam & { type: 'native' | 'nep5' }
|
|
5
|
+
|
|
6
|
+
Documentation generated at ./docs
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { BalanceResponse, BlockchainNetwork, BlockchainDataService, ConsensusNodeResponse, ContractResponse, TokenInfoResponse, TransactionHistoryResponse, TransactionResponse, BDSClaimable, UnclaimedResponse } from '@cityofzion/blockchain-service';
|
|
2
|
+
export declare class BDSNeoLegacy implements BlockchainDataService, BDSClaimable {
|
|
3
|
+
explorer: string;
|
|
4
|
+
network: BlockchainNetwork;
|
|
5
|
+
private request;
|
|
6
|
+
setNetwork(network: BlockchainNetwork): void;
|
|
7
|
+
getTransaction(txid: string): Promise<TransactionResponse>;
|
|
8
|
+
getHistoryTransactions(address: string, page?: number): Promise<TransactionHistoryResponse>;
|
|
9
|
+
getContract(contractHash: string): Promise<ContractResponse>;
|
|
10
|
+
getTokenInfo(tokenHash: string): Promise<TokenInfoResponse>;
|
|
11
|
+
getBalance(address: string): Promise<BalanceResponse[]>;
|
|
12
|
+
getAllNodes(): Promise<ConsensusNodeResponse[]>;
|
|
13
|
+
getHigherNode(): Promise<ConsensusNodeResponse>;
|
|
14
|
+
getUnclaimed(address: string): Promise<UnclaimedResponse>;
|
|
15
|
+
}
|
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.BDSNeoLegacy = void 0;
|
|
16
|
+
const axios_1 = __importDefault(require("axios"));
|
|
17
|
+
const DoraRoutesNeoLegacy_1 = require("./explorer/dora/DoraRoutesNeoLegacy");
|
|
18
|
+
const dora_ts_1 = require("@cityofzion/dora-ts");
|
|
19
|
+
class BDSNeoLegacy {
|
|
20
|
+
constructor() {
|
|
21
|
+
this.explorer = 'https://dora.coz.io/';
|
|
22
|
+
this.network = 'mainnet';
|
|
23
|
+
this.request = axios_1.default.create({ baseURL: `https://dora.coz.io/api/v1/neo2/${this.network}` });
|
|
24
|
+
}
|
|
25
|
+
setNetwork(network) {
|
|
26
|
+
this.network = network;
|
|
27
|
+
}
|
|
28
|
+
getTransaction(txid) {
|
|
29
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
30
|
+
try {
|
|
31
|
+
const { data } = yield this.request.get(`/${DoraRoutesNeoLegacy_1.DORA_NEO_LEGACY_TRANSACTION}/${txid}`);
|
|
32
|
+
const result = {
|
|
33
|
+
block: data.block,
|
|
34
|
+
netfee: data.net_fee,
|
|
35
|
+
sysfee: data.sys_fee,
|
|
36
|
+
time: data.time,
|
|
37
|
+
txid: data.txid,
|
|
38
|
+
totfee: (Number(data.sys_fee) + Number(data.net_fee)).toString(),
|
|
39
|
+
notifications: [],
|
|
40
|
+
transfers: data.vout.map((transfer) => {
|
|
41
|
+
var _a;
|
|
42
|
+
return {
|
|
43
|
+
amount: transfer.value,
|
|
44
|
+
from: (_a = data.vout[data.vout.length - 1]) === null || _a === void 0 ? void 0 : _a.address,
|
|
45
|
+
hash: transfer.asset,
|
|
46
|
+
to: transfer.address
|
|
47
|
+
};
|
|
48
|
+
})
|
|
49
|
+
};
|
|
50
|
+
return result;
|
|
51
|
+
}
|
|
52
|
+
catch (error) {
|
|
53
|
+
throw error;
|
|
54
|
+
}
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
getHistoryTransactions(address, page = 1) {
|
|
58
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
59
|
+
try {
|
|
60
|
+
const data = yield dora_ts_1.api.NeoLegacyREST.getAddressAbstracts(address, page, this.network);
|
|
61
|
+
const entriesGroupByTxid = {};
|
|
62
|
+
const transactionsGroupByTxid = [];
|
|
63
|
+
data.entries.forEach((entry) => {
|
|
64
|
+
entriesGroupByTxid[entry.txid] = data.entries.filter(it => it.txid === entry.txid);
|
|
65
|
+
const haveTransaction = transactionsGroupByTxid.find(it => it.txid === entry.txid);
|
|
66
|
+
if (!haveTransaction) {
|
|
67
|
+
transactionsGroupByTxid.push({
|
|
68
|
+
block: entry.block_height,
|
|
69
|
+
netfee: '0',
|
|
70
|
+
sysfee: '0',
|
|
71
|
+
totfee: '0',
|
|
72
|
+
txid: entry.txid,
|
|
73
|
+
notifications: [],
|
|
74
|
+
time: entry.time.toString(),
|
|
75
|
+
transfers: entriesGroupByTxid[entry.txid].map((entryGrouped) => {
|
|
76
|
+
return {
|
|
77
|
+
amount: entryGrouped.amount.toString(),
|
|
78
|
+
from: entryGrouped.address_from,
|
|
79
|
+
to: entryGrouped.address_to,
|
|
80
|
+
hash: entryGrouped.asset
|
|
81
|
+
};
|
|
82
|
+
})
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
else {
|
|
86
|
+
haveTransaction.transfers = entriesGroupByTxid[entry.txid].map((entryGrouped) => {
|
|
87
|
+
return {
|
|
88
|
+
amount: entryGrouped.amount.toString(),
|
|
89
|
+
from: entryGrouped.address_from,
|
|
90
|
+
to: entryGrouped.address_to,
|
|
91
|
+
hash: entryGrouped.asset
|
|
92
|
+
};
|
|
93
|
+
});
|
|
94
|
+
transactionsGroupByTxid[transactionsGroupByTxid.indexOf(haveTransaction)] = haveTransaction;
|
|
95
|
+
}
|
|
96
|
+
});
|
|
97
|
+
const result = {
|
|
98
|
+
totalCount: data.total_entries,
|
|
99
|
+
transactions: transactionsGroupByTxid
|
|
100
|
+
};
|
|
101
|
+
return result;
|
|
102
|
+
}
|
|
103
|
+
catch (error) {
|
|
104
|
+
throw error;
|
|
105
|
+
}
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
getContract(contractHash) {
|
|
109
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
110
|
+
try {
|
|
111
|
+
const response = yield dora_ts_1.api.NeoLegacyREST.contract(contractHash, this.network);
|
|
112
|
+
const result = {
|
|
113
|
+
hash: response.hash,
|
|
114
|
+
name: response.name,
|
|
115
|
+
methods: []
|
|
116
|
+
};
|
|
117
|
+
return result;
|
|
118
|
+
}
|
|
119
|
+
catch (error) {
|
|
120
|
+
throw error;
|
|
121
|
+
}
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
getTokenInfo(tokenHash) {
|
|
125
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
126
|
+
try {
|
|
127
|
+
const data = yield dora_ts_1.api.NeoLegacyREST.asset(tokenHash);
|
|
128
|
+
const result = {
|
|
129
|
+
decimals: data.decimals,
|
|
130
|
+
symbol: data.symbol
|
|
131
|
+
};
|
|
132
|
+
return result;
|
|
133
|
+
}
|
|
134
|
+
catch (error) {
|
|
135
|
+
throw error;
|
|
136
|
+
}
|
|
137
|
+
});
|
|
138
|
+
}
|
|
139
|
+
getBalance(address) {
|
|
140
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
141
|
+
try {
|
|
142
|
+
const data = yield dora_ts_1.api.NeoLegacyREST.balance(address, this.network);
|
|
143
|
+
const result = data.map(balance => {
|
|
144
|
+
return {
|
|
145
|
+
hash: balance.asset,
|
|
146
|
+
amount: Number(balance.balance),
|
|
147
|
+
name: balance.asset_name,
|
|
148
|
+
symbol: balance.symbol
|
|
149
|
+
};
|
|
150
|
+
});
|
|
151
|
+
return result;
|
|
152
|
+
}
|
|
153
|
+
catch (error) {
|
|
154
|
+
throw error;
|
|
155
|
+
}
|
|
156
|
+
});
|
|
157
|
+
}
|
|
158
|
+
getAllNodes() {
|
|
159
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
160
|
+
try {
|
|
161
|
+
const data = yield dora_ts_1.api.NeoLegacyREST.getAllNodes();
|
|
162
|
+
const result = data;
|
|
163
|
+
return result;
|
|
164
|
+
}
|
|
165
|
+
catch (error) {
|
|
166
|
+
throw error;
|
|
167
|
+
}
|
|
168
|
+
});
|
|
169
|
+
}
|
|
170
|
+
getHigherNode() {
|
|
171
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
172
|
+
const nodes = yield this.getAllNodes();
|
|
173
|
+
const node = nodes.reduce((bestNode, node) => {
|
|
174
|
+
if (bestNode.height >= node.height) {
|
|
175
|
+
return bestNode;
|
|
176
|
+
}
|
|
177
|
+
return node;
|
|
178
|
+
});
|
|
179
|
+
return node;
|
|
180
|
+
});
|
|
181
|
+
}
|
|
182
|
+
//Implementation of BDSClaimable
|
|
183
|
+
getUnclaimed(address) {
|
|
184
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
185
|
+
try {
|
|
186
|
+
const data = yield dora_ts_1.api.NeoLegacyREST.getUnclaimed(address);
|
|
187
|
+
const result = {
|
|
188
|
+
address,
|
|
189
|
+
unclaimed: data.unclaimed,
|
|
190
|
+
};
|
|
191
|
+
return result;
|
|
192
|
+
}
|
|
193
|
+
catch (error) {
|
|
194
|
+
throw error;
|
|
195
|
+
}
|
|
196
|
+
});
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
exports.BDSNeoLegacy = BDSNeoLegacy;
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { Account, BDSClaimable, BlockchainDataService, BlockchainService, CalculateTransferFeeDetails, Claimable, Exchange, SendTransactionParam, Token } from '@cityofzion/blockchain-service';
|
|
2
|
+
export declare class BSNeoLegacy<BSCustomName extends string = string> implements BlockchainService, Claimable {
|
|
3
|
+
dataService: BlockchainDataService & BDSClaimable;
|
|
4
|
+
blockchainName: BSCustomName;
|
|
5
|
+
derivationPath: string;
|
|
6
|
+
feeToken: {
|
|
7
|
+
hash: string;
|
|
8
|
+
symbol: string;
|
|
9
|
+
decimals: number;
|
|
10
|
+
};
|
|
11
|
+
exchange: Exchange;
|
|
12
|
+
tokenClaim: {
|
|
13
|
+
hash: string;
|
|
14
|
+
symbol: string;
|
|
15
|
+
decimals: number;
|
|
16
|
+
};
|
|
17
|
+
tokens: Token[];
|
|
18
|
+
private keychain;
|
|
19
|
+
private nativeAssets;
|
|
20
|
+
constructor(blockchainName: BSCustomName);
|
|
21
|
+
sendTransaction(param: SendTransactionParam): Promise<string>;
|
|
22
|
+
private buildNativeTransaction;
|
|
23
|
+
private buildNep5Transaction;
|
|
24
|
+
private setTypeIntents;
|
|
25
|
+
private isNativeTransaction;
|
|
26
|
+
generateMnemonic(): string;
|
|
27
|
+
generateWif(mnemonic: string, index: number): string;
|
|
28
|
+
generateAccount(mnemonic: string, index: number): {
|
|
29
|
+
wif: string;
|
|
30
|
+
address: string;
|
|
31
|
+
};
|
|
32
|
+
generateAccountFromWif(wif: string): string;
|
|
33
|
+
decryptKey(encryptedKey: string, password: string): Promise<{
|
|
34
|
+
wif: string;
|
|
35
|
+
address: string;
|
|
36
|
+
}>;
|
|
37
|
+
validateAddress(address: string): boolean;
|
|
38
|
+
validateEncryptedKey(encryptedKey: string): boolean;
|
|
39
|
+
validateWif(wif: string): boolean;
|
|
40
|
+
calculateTransferFee(param: SendTransactionParam, details?: boolean): Promise<{
|
|
41
|
+
result: number;
|
|
42
|
+
details?: CalculateTransferFeeDetails;
|
|
43
|
+
}>;
|
|
44
|
+
claim(account: Account): Promise<{
|
|
45
|
+
txid: string;
|
|
46
|
+
symbol: string;
|
|
47
|
+
hash: string;
|
|
48
|
+
}>;
|
|
49
|
+
}
|
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
26
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
27
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
28
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
29
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
30
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
31
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
32
|
+
});
|
|
33
|
+
};
|
|
34
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
35
|
+
var t = {};
|
|
36
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
37
|
+
t[p] = s[p];
|
|
38
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
39
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
40
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
41
|
+
t[p[i]] = s[p[i]];
|
|
42
|
+
}
|
|
43
|
+
return t;
|
|
44
|
+
};
|
|
45
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
46
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
47
|
+
};
|
|
48
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
49
|
+
exports.BSNeoLegacy = void 0;
|
|
50
|
+
const AsteroidSDK = __importStar(require("@moonlight-io/asteroid-sdk-js"));
|
|
51
|
+
const neon_js_1 = require("@cityofzion/neon-js");
|
|
52
|
+
const explorer_1 = require("./explorer");
|
|
53
|
+
const constants_1 = require("./constants");
|
|
54
|
+
const [gasToken, neoToken] = constants_1.nativeAssetsNeoLegacy;
|
|
55
|
+
const tokens_json_1 = __importDefault(require("./asset/tokens.json"));
|
|
56
|
+
class BSNeoLegacy {
|
|
57
|
+
constructor(blockchainName) {
|
|
58
|
+
this.dataService = explorer_1.explorerNeoLegacyOption.dora;
|
|
59
|
+
this.derivationPath = "m/44'/888'/0'/0/?";
|
|
60
|
+
this.tokenClaim = neoToken;
|
|
61
|
+
this.tokens = tokens_json_1.default;
|
|
62
|
+
this.keychain = new AsteroidSDK.Keychain();
|
|
63
|
+
this.nativeAssets = constants_1.nativeAssetsNeoLegacy;
|
|
64
|
+
this.blockchainName = blockchainName;
|
|
65
|
+
}
|
|
66
|
+
sendTransaction(param) {
|
|
67
|
+
var _a;
|
|
68
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
69
|
+
const url = (yield this.dataService.getHigherNode()).url;
|
|
70
|
+
const apiProvider = new neon_js_1.api.neoscan.instance("MainNet");
|
|
71
|
+
const account = new neon_js_1.wallet.Account(param.senderAccount.getWif());
|
|
72
|
+
const intentsWithTye = this.setTypeIntents(param.transactionIntents);
|
|
73
|
+
const isNativeTransaction = intentsWithTye.every(intent => intent.type === 'native');
|
|
74
|
+
const priorityFee = (_a = param.priorityFee) !== null && _a !== void 0 ? _a : 0;
|
|
75
|
+
const [gasAsset] = this.nativeAssets;
|
|
76
|
+
const gasBalance = (yield this.dataService.getBalance(param.senderAccount.getAddress())).find(balance => balance.hash === gasAsset.hash);
|
|
77
|
+
if ((gasBalance === null || gasBalance === void 0 ? void 0 : gasBalance.amount) < priorityFee)
|
|
78
|
+
throw new Error("Don't have funds to pay the transaction");
|
|
79
|
+
const transactionOperations = {
|
|
80
|
+
native: () => {
|
|
81
|
+
return neon_js_1.api.sendAsset({
|
|
82
|
+
account,
|
|
83
|
+
api: apiProvider,
|
|
84
|
+
url,
|
|
85
|
+
intents: this.buildNativeTransaction(param.transactionIntents),
|
|
86
|
+
fees: priorityFee
|
|
87
|
+
});
|
|
88
|
+
},
|
|
89
|
+
nep5: () => {
|
|
90
|
+
const extraIntentsNep5 = intentsWithTye.filter(it => it.type === 'native').map(it => {
|
|
91
|
+
const { type } = it, rest = __rest(it, ["type"]);
|
|
92
|
+
return rest;
|
|
93
|
+
});
|
|
94
|
+
return neon_js_1.api.doInvoke({
|
|
95
|
+
intents: extraIntentsNep5.length > 0 ? this.buildNativeTransaction(extraIntentsNep5) : undefined,
|
|
96
|
+
account,
|
|
97
|
+
api: apiProvider,
|
|
98
|
+
script: this.buildNep5Transaction(param.transactionIntents, param.senderAccount).str,
|
|
99
|
+
url,
|
|
100
|
+
fees: priorityFee
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
};
|
|
104
|
+
const result = isNativeTransaction ? yield transactionOperations.native() : yield transactionOperations.nep5();
|
|
105
|
+
if (!result.tx)
|
|
106
|
+
throw new Error("Failed to send transaction");
|
|
107
|
+
return result.tx.hash;
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
buildNativeTransaction(transactionIntents) {
|
|
111
|
+
let intents = [];
|
|
112
|
+
transactionIntents.forEach(transaction => {
|
|
113
|
+
const nativeAsset = this.nativeAssets.find(asset => asset.hash === transaction.tokenHash);
|
|
114
|
+
if (nativeAsset) {
|
|
115
|
+
intents = [...intents, ...neon_js_1.api.makeIntent({ [nativeAsset.symbol]: transaction.amount }, transaction.receiverAddress)];
|
|
116
|
+
}
|
|
117
|
+
});
|
|
118
|
+
return intents;
|
|
119
|
+
}
|
|
120
|
+
buildNep5Transaction(transactionIntents, senderAccount) {
|
|
121
|
+
const sb = new neon_js_1.sc.ScriptBuilder();
|
|
122
|
+
transactionIntents.forEach(transaction => {
|
|
123
|
+
if (!this.isNativeTransaction(transaction)) {
|
|
124
|
+
const senderHash = neon_js_1.u.reverseHex(neon_js_1.wallet.getScriptHashFromAddress(senderAccount.getAddress()));
|
|
125
|
+
const receiveHash = neon_js_1.u.reverseHex(neon_js_1.wallet.getScriptHashFromAddress(transaction.receiverAddress));
|
|
126
|
+
const adjustedAmount = new neon_js_1.u.Fixed8(transaction.amount).toRawNumber();
|
|
127
|
+
sb.emitAppCall(transaction.tokenHash.replace('0x', ''), "transfer", [
|
|
128
|
+
senderHash,
|
|
129
|
+
receiveHash,
|
|
130
|
+
neon_js_1.sc.ContractParam.integer(adjustedAmount.toString())
|
|
131
|
+
]);
|
|
132
|
+
}
|
|
133
|
+
});
|
|
134
|
+
return sb;
|
|
135
|
+
}
|
|
136
|
+
setTypeIntents(transactionIntents) {
|
|
137
|
+
const intents = transactionIntents.map(transaction => {
|
|
138
|
+
return Object.assign(Object.assign({}, transaction), { type: this.isNativeTransaction(transaction) ? 'native' : 'nep5' });
|
|
139
|
+
});
|
|
140
|
+
return intents;
|
|
141
|
+
}
|
|
142
|
+
isNativeTransaction(transactionParam) {
|
|
143
|
+
return this.nativeAssets.some(asset => asset.hash === transactionParam.tokenHash);
|
|
144
|
+
}
|
|
145
|
+
generateMnemonic() {
|
|
146
|
+
var _a;
|
|
147
|
+
this.keychain.generateMnemonic(128);
|
|
148
|
+
const list = (_a = this.keychain.mnemonic) === null || _a === void 0 ? void 0 : _a.toString();
|
|
149
|
+
if (!list)
|
|
150
|
+
throw new Error("Failed to generate mnemonic");
|
|
151
|
+
return list;
|
|
152
|
+
}
|
|
153
|
+
generateWif(mnemonic, index) {
|
|
154
|
+
this.keychain.importMnemonic(mnemonic);
|
|
155
|
+
const childKey = this.keychain.generateChildKey('neo', this.derivationPath.replace('?', index.toString()));
|
|
156
|
+
return childKey.getWIF();
|
|
157
|
+
}
|
|
158
|
+
generateAccount(mnemonic, index) {
|
|
159
|
+
const wif = this.generateWif(mnemonic, index);
|
|
160
|
+
const { address } = new neon_js_1.wallet.Account(wif);
|
|
161
|
+
const result = { address, wif };
|
|
162
|
+
return result;
|
|
163
|
+
}
|
|
164
|
+
generateAccountFromWif(wif) {
|
|
165
|
+
return new neon_js_1.wallet.Account(wif).address;
|
|
166
|
+
}
|
|
167
|
+
decryptKey(encryptedKey, password) {
|
|
168
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
169
|
+
const wif = yield neon_js_1.wallet.decrypt(encryptedKey, password);
|
|
170
|
+
const { address } = new neon_js_1.wallet.Account(wif);
|
|
171
|
+
const result = { address, wif };
|
|
172
|
+
return result;
|
|
173
|
+
});
|
|
174
|
+
}
|
|
175
|
+
validateAddress(address) {
|
|
176
|
+
return neon_js_1.wallet.isAddress(address);
|
|
177
|
+
}
|
|
178
|
+
validateEncryptedKey(encryptedKey) {
|
|
179
|
+
return neon_js_1.wallet.isNEP2(encryptedKey);
|
|
180
|
+
}
|
|
181
|
+
validateWif(wif) {
|
|
182
|
+
return neon_js_1.wallet.isWIF(wif);
|
|
183
|
+
}
|
|
184
|
+
calculateTransferFee(param, details) {
|
|
185
|
+
throw new Error(`Doesn't have fee to make a transaction on ${this.blockchainName}`);
|
|
186
|
+
}
|
|
187
|
+
//Implementation Claim interface
|
|
188
|
+
claim(account) {
|
|
189
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
190
|
+
const neoAccount = new neon_js_1.wallet.Account(account.getWif());
|
|
191
|
+
const balances = yield this.dataService.getBalance(account.getAddress());
|
|
192
|
+
const neoBalance = balances.find(balance => balance.symbol === 'NEO');
|
|
193
|
+
const apiProvider = new neon_js_1.api.neoscan.instance("MainNet");
|
|
194
|
+
const neoNativeAsset = this.nativeAssets.find(nativeAsset => nativeAsset.symbol === (neoBalance === null || neoBalance === void 0 ? void 0 : neoBalance.symbol));
|
|
195
|
+
if (!neoNativeAsset || !neoBalance)
|
|
196
|
+
throw new Error("Neo it's necessary to do a claim");
|
|
197
|
+
const hasClaim = yield this.dataService.getUnclaimed(account.getAddress());
|
|
198
|
+
if (hasClaim.unclaimed <= 0)
|
|
199
|
+
throw new Error(`Doesn't have gas to claim`);
|
|
200
|
+
const url = (yield this.dataService.getHigherNode()).url;
|
|
201
|
+
const claims = yield neon_js_1.api.neoCli.getClaims(url, account.getAddress());
|
|
202
|
+
const claimGasResponse = yield neon_js_1.api.claimGas({
|
|
203
|
+
claims,
|
|
204
|
+
api: apiProvider,
|
|
205
|
+
account: neoAccount,
|
|
206
|
+
url
|
|
207
|
+
});
|
|
208
|
+
const result = {
|
|
209
|
+
txid: claimGasResponse.response.txid,
|
|
210
|
+
hash: constants_1.unclaimedTokenNeoLegacy.hash,
|
|
211
|
+
symbol: constants_1.unclaimedTokenNeoLegacy.symbol
|
|
212
|
+
};
|
|
213
|
+
return result;
|
|
214
|
+
});
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
exports.BSNeoLegacy = BSNeoLegacy;
|