diff --git a/.env.example b/.env.example index 6f82cfe..be83464 100644 --- a/.env.example +++ b/.env.example @@ -136,4 +136,41 @@ SOL_TRANSFER_TX='2RDU1otuPR6UtevwYCQWnngvvjPiTFuHFdyCnzwQVR8wyZ7niqACt2QBmfuyD5a SOL_TOKEN_TRANSFER_TX='4XLpHmpiKXXDM7pAg8CXeSLjw7SYKZaSzJjXHP2E1vL2ndvrJ6GnuHUvaQpY3LHQeJww8fzFLJ9MiLnvgsyyyt3i' SOL_TOKEN_2022_TRANSFER_TX='3c2Myd3k4Pw1NbsCjuskkZCtbD9HRTjoyoxh2u7qsVLgFN1RbRYAXXRKzBRzwTAmv2pXDjArbotzVL6AVehBMeyg' SOL_NFT_TRANSFER_TX='3vrCoNVmeNgGG4LB1qvvdx21TYm6dnPBmhFqXChsusuLn5ZEjFZNFG3BwQQ8fodBYiPXG8QokdBLWjRtxgi7tnRD' -#Solana \ No newline at end of file +#Solana + +#TON +# Assets +TON_COIN_TRANSFER_TEST_IS_ACTIVE=false +TON_TOKEN_TRANSFER_TEST_IS_ACTIVE=false +TON_TOKEN_APPROVE_TEST_IS_ACTIVE=false +TON_TOKEN_TRANSFER_FROM_TEST_IS_ACTIVE=false +TON_NFT_TRANSACTION_TEST_IS_ACTIVE=true +TON_TRANSACTION_LISTENER_TEST_IS_ACTIVE=false + +TON_COIN_BALANCE_TEST_AMOUNT=0.199996009 +TON_TOKEN_BALANCE_TEST_AMOUNT=100 +TON_NFT_BALANCE_TEST_AMOUNT=1 +TON_NFT_BALANCE_TEST_ID='kQDiYpnHCz8lP2yHtE0ePShy1dZtlOEZJOr4omdZ_zDOCMD7' +TON_TRANSFER_TEST_AMOUNT=0.001 +TON_TOKEN_TRANSFER_TEST_AMOUNT=1 +TON_TOKEN_APPROVE_TEST_AMOUNT=10 +#NFT ID +TON_BALANCE_TEST_ADDRESS='0QCDEJc7FGObqxBSqgKi4MMysr12FNEXP5WtfJhTU7DXlSHC' +TON_SENDER_SEED_PHRASE='observe eagle gym happy balance again width pony now cricket quit coach under three visa illness sign comfort valley diet tribe lunar power crane' +TON_RECEIVER_SEED_PHRASE='album lottery sock ozone plate label cute attend talk pretty horror obtain record scrub mushroom cook coast initial grant ahead faculty pulse wide saddle' +TON_SENDER_ADDRESS='0QBh14OFHZqXqMyAHUio8EZ9FAf5smnkcmb0j533aHtFNcsF' +TON_RECEIVER_ADDRESS='0QBE7-YFiBHs3mdSsp3kdUFfTESFvYxb23n5mAfFUOd7T2S3' +TON_TOKEN_TEST_ADDRESS='kQAIyxof6tfnDvBw5KC-bfUGF3JtkzkHR4cfFB49Ik-FV3RW' +TON_NFT_TRANSFER_ID='kQCqlC-1l1ScWpr7wfeiVBHmf-DFXuOOAcX567dlSfVBuRQV' +TON_NFT_COLLECTION='kQDNnL2Fi4TqcKiF0i2aeYMwHIhMR_AWqrG7WSkDph0mmL_S' +# Assets + +# Models +TON_NFT_ID='kQCGw3iqbbPAs8DqxYKEFAEPQpvvuVN9TelYMi23Gh8e66kp' +TON_COIN_AMOUNT=0.4 +TON_TOKEN_AMOUNT=10000 + +TON_TRANSFER_TX='6f97ca02d8f20151210ca2bef32340804214e4f74eebf6a9edf13b727ac2527e' +TON_TOKEN_TRANSFER_TX='e007ce43b116fd283364527c29411eb0cece2a49df776bf1990f2117747f3e2c' +TON_NFT_TRANSFER_TX='75f3029eaa33a56673fb4a3a449d972dd6af16e6f2f91ca9273c76bf9ad860f4' +#TON \ No newline at end of file diff --git a/.eslintrc.json b/.eslintrc.json index b9aaf20..a189c44 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -33,7 +33,8 @@ "checksVoidReturn": false } ], - "filenames/match-exported": ["error", "pascal"] + "filenames/match-exported": ["error", "pascal"], + "@typescript-eslint/strict-boolean-expressions": "off" }, "ignorePatterns": [ "**/*.d.ts", diff --git a/packages/networks/bitcoin/package.json b/packages/networks/bitcoin/package.json index 2c05db1..269743e 100644 --- a/packages/networks/bitcoin/package.json +++ b/packages/networks/bitcoin/package.json @@ -86,4 +86,4 @@ "@types/lodash": "^4.17.7", "@types/ws": "^8.5.10" } -} +} \ No newline at end of file diff --git a/packages/networks/bitcoin/pnpm-lock.yaml b/packages/networks/bitcoin/pnpm-lock.yaml index 061dbe6..ecb481f 100644 --- a/packages/networks/bitcoin/pnpm-lock.yaml +++ b/packages/networks/bitcoin/pnpm-lock.yaml @@ -1,1025 +1,714 @@ lockfileVersion: '9.0' settings: - autoInstallPeers: true - excludeLinksFromLockfile: false + autoInstallPeers: true + excludeLinksFromLockfile: false importers: - .: - dependencies: - '@multiplechain/types': - specifier: ^0.1.70 - version: 0.1.70 - '@multiplechain/utils': - specifier: ^0.1.21 - version: 0.1.21 - axios: - specifier: ^1.6.8 - version: 1.6.8 - bitcore-lib: - specifier: ^10.0.28 - version: 10.0.28 - isomorphic-ws: - specifier: ^5.0.0 - version: 5.0.0(ws@8.17.0) - lodash: - specifier: ^4.17.21 - version: 4.17.21 - sats-connect: - specifier: ^2.3.1 - version: 2.3.1(typescript@5.4.4) - ws: - specifier: ^8.17.0 - version: 8.17.0 - devDependencies: - '@types/bitcore-lib': - specifier: ^0.15.6 - version: 0.15.6 - '@types/lodash': - specifier: ^4.17.7 - version: 4.17.7 - '@types/ws': - specifier: ^8.5.10 - version: 8.5.10 + + .: + dependencies: + '@multiplechain/types': + specifier: ^0.1.70 + version: 0.1.70 + '@multiplechain/utils': + specifier: ^0.1.21 + version: 0.1.21 + axios: + specifier: ^1.6.8 + version: 1.6.8 + bitcore-lib: + specifier: ^10.0.28 + version: 10.7.0 + isomorphic-ws: + specifier: ^5.0.0 + version: 5.0.0(ws@8.17.0) + lodash: + specifier: ^4.17.21 + version: 4.17.21 + sats-connect: + specifier: ^2.3.1 + version: 2.3.1(typescript@5.4.4) + ws: + specifier: ^8.17.0 + version: 8.17.0 + devDependencies: + '@types/bitcore-lib': + specifier: ^0.15.6 + version: 0.15.6 + '@types/lodash': + specifier: ^4.17.7 + version: 4.17.7 + '@types/ws': + specifier: ^8.5.10 + version: 8.5.10 packages: - '@multiplechain/types@0.1.70': - resolution: - { - integrity: sha512-o9ovdaefDHE5gorb83avugCjeixfBXrfJkIgSEEcT549yGF8CkmG/jgZIlqXKJf8Lh0tbg4zMAAanUSxUqV1FQ== - } - - '@multiplechain/utils@0.1.21': - resolution: - { - integrity: sha512-4mRlnhvXcS+7Hb1By5s2eoCH02kqOSQzV8qj0DHqZK20FtxtduaoGCtcClrFgEjN/HAXnHgdDc1pxTpveIkvRQ== - } - - '@noble/curves@1.3.0': - resolution: - { - integrity: sha512-t01iSXPuN+Eqzb4eBX0S5oubSqXbK/xXa1Ne18Hj8f9pStxztHCE2gfboSp/dZRLSqfuLpRK2nDXDK+W9puocA== - } - - '@noble/hashes@1.3.3': - resolution: - { - integrity: sha512-V7/fPHgl+jsVPXqqeOzT8egNj2iBIVt+ECeMMG8TdcnTikP3oaBtUVqpT/gYCR68aEBJSF+XbYUxStjbFMqIIA== - } - engines: { node: '>= 16' } - - '@noble/secp256k1@1.7.1': - resolution: - { - integrity: sha512-hOUk6AyBFmqVrv7k5WAw/LpszxVbj9gGN4JRkIX52fdFAj1UA61KXmZDvqVEm+pOyec3+fIeZB02LYa/pWOArw== - } - - '@sats-connect/core@0.0.7': - resolution: - { - integrity: sha512-4m5amq+orHDbqLqCRWojvDQigKAys33Ntwc7U5xNtFeib4j+DpYz6lVAL/s3cay1kq03WUZ+Gil3l5rv+5bQWQ== - } - - '@sats-connect/core@0.0.8': - resolution: - { - integrity: sha512-vb7drnd8lFfO4ahCzaVAFkX1eHF1J7jheJl2V/JuuJd5f1sy6nHeNzKMp1zmiuql8uNwe0Sx1WrK1I+4tUmDHg== - } - - '@sats-connect/make-default-provider-config@0.0.4': - resolution: - { - integrity: sha512-PsLzg1hV3FxMXUp9XrOUmDJgbuyR4VDHq/7mh1O1CtC3dDZQnJFa+Ue43duPMmUaRGinuVKtS2hnMhPLyURdGA== - } - peerDependencies: - typescript: 5.4.4 - - '@sats-connect/ui@0.0.5-c661c02': - resolution: - { - integrity: sha512-6MUXFDGTapBhZAxb6deAdqKuB64GOe6k927gGww5JYwVnOUCaHGDcfaZ/lwexzYL45u8RJof12I4np7MgS+Bwg== - } - - '@sats-connect/ui@0.0.6': - resolution: - { - integrity: sha512-H3bFFhr9CcY1oNosNi/QJszmMHSht4U19bUWfM3vzayAKgV4ebY6iUnRK5g3p2rVLLWVzlpaw1J9m+7JWwyBfA== - } - - '@scure/base@1.1.6': - resolution: - { - integrity: sha512-ok9AWwhcgYuGG3Zfhyqg+zwl+Wn5uE+dwC0NV/2qQkx4dABbb/bx96vWu8NSj+BNjjSjno+JRYRjle1jV08k3g== - } - - '@scure/bip32@1.3.3': - resolution: - { - integrity: sha512-LJaN3HwRbfQK0X1xFSi0Q9amqOgzQnnDngIt+ZlsBC3Bm7/nE7K0kwshZHyaru79yIVRv/e1mQAjZyuZG6jOFQ== - } - - '@scure/bip39@1.2.2': - resolution: - { - integrity: sha512-HYf9TUXG80beW+hGAt3TRM8wU6pQoYur9iNypTROm42dorCGmLnFe3eWjz3gOq6G62H2WRh0FCzAR1PI+29zIA== - } - - '@types/bitcore-lib@0.15.6': - resolution: - { - integrity: sha512-CtKDBgSBubPXZ0wFeCiUCSdzH+cuy6nFya3FboOqf44evi+OmkQPqEg3ASMpmPDYE8vkcxV302Iu8lZqCjYieg== - } - - '@types/lodash@4.17.7': - resolution: - { - integrity: sha512-8wTvZawATi/lsmNu10/j2hk1KEP0IvjubqPE3cu1Xz7xfXXt5oCq3SNUz4fMIP4XGF9Ky+Ue2tBA3hcS7LSBlA== - } - - '@types/node@20.12.7': - resolution: - { - integrity: sha512-wq0cICSkRLVaf3UGLMGItu/PtdY7oaXaI/RVU+xliKVOtRna3PRY57ZDfztpDL0n11vfymMUnXv8QwYCO7L1wg== - } - - '@types/ws@8.5.10': - resolution: - { - integrity: sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A== - } - - asynckit@0.4.0: - resolution: - { - integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== - } - - available-typed-arrays@1.0.7: - resolution: - { - integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ== - } - engines: { node: '>= 0.4' } - - axios@1.6.8: - resolution: - { - integrity: sha512-v/ZHtJDU39mDpyBoFVkETcd/uNdxrWRrg3bKpOKzXFA6Bvqopts6ALSMU3y6ijYxbw2B+wPrIv46egTzJXCLGQ== - } - - base-x@3.0.9: - resolution: - { - integrity: sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ== - } - - base58-js@1.0.5: - resolution: - { - integrity: sha512-LkkAPP8Zu+c0SVNRTRVDyMfKVORThX+rCViget00xdgLRrKkClCTz1T7cIrpr69ShwV5XJuuoZvMvJ43yURwkA== - } - engines: { node: '>= 8' } - - base64-js@1.5.1: - resolution: - { - integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== - } - - bech32@2.0.0: - resolution: - { - integrity: sha512-LcknSilhIGatDAsY1ak2I8VtGaHNhgMSYVxFrGLXv+xLHytaKZKcaUJJUE7qmBr7h33o5YQwP55pMI0xmkpJwg== - } - - bigi@1.4.2: - resolution: - { - integrity: sha512-ddkU+dFIuEIW8lE7ZwdIAf2UPoM90eaprg5m3YXAVVTmKlqV/9BX4A2M8BOK2yOq6/VgZFVhK6QAxJebhlbhzw== - } - - bignumber.js@9.1.2: - resolution: - { - integrity: sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug== - } - - bip-schnorr@0.6.4: - resolution: - { - integrity: sha512-dNKw7Lea8B0wMIN4OjEmOk/Z5qUGqoPDY0P2QttLqGk1hmDPytLWW8PR5Pb6Vxy6CprcdEgfJpOjUu+ONQveyg== - } - engines: { node: '>=8.0.0' } - - bitcoin-address-validation@2.2.3: - resolution: - { - integrity: sha512-1uGCGl26Ye8JG5qcExtFLQfuib6qEZWNDo1ZlLlwp/z7ygUFby3IxolgEfgMGaC+LG9csbVASLcH8fRLv7DIOg== - } - - bitcore-lib@10.0.28: - resolution: - { - integrity: sha512-uOWHpWbUxEj411p+tp6DCb9NfZdsCAHl6Z/rs96mquQMsef29fOqWUyk4Bl7yLf+KwzU5ZKy0HIPnjGFlmpXpg== - } - - bn.js@4.11.8: - resolution: - { - integrity: sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA== - } - - bn.js@4.12.0: - resolution: - { - integrity: sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== - } - - bowser@2.11.0: - resolution: - { - integrity: sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA== - } - - brorand@1.1.0: - resolution: - { - integrity: sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w== - } - - bs58@4.0.1: - resolution: - { - integrity: sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw== - } - - buffer-compare@1.1.1: - resolution: - { - integrity: sha512-O6NvNiHZMd3mlIeMDjP6t/gPG75OqGPeiRZXoMQZJ6iy9GofCls4Ijs5YkPZZwoysizLiedhticmdyx/GyHghA== - } - - buffer@6.0.3: - resolution: - { - integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== - } - - call-bind@1.0.7: - resolution: - { - integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w== - } - engines: { node: '>= 0.4' } - - combined-stream@1.0.8: - resolution: - { - integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== - } - engines: { node: '>= 0.8' } - - define-data-property@1.1.4: - resolution: - { - integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A== - } - engines: { node: '>= 0.4' } - - delayed-stream@1.0.0: - resolution: - { - integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== - } - engines: { node: '>=0.4.0' } - - ecurve@1.0.6: - resolution: - { - integrity: sha512-/BzEjNfiSuB7jIWKcS/z8FK9jNjmEWvUV2YZ4RLSmcDtP7Lq0m6FvDuSnJpBlDpGRpfRQeTLGLBI8H+kEv0r+w== - } - - elliptic@6.5.5: - resolution: - { - integrity: sha512-7EjbcmUm17NQFu4Pmgmq2olYMj8nwMnpcddByChSUjArp8F5DQWcIcpriwO4ZToLNAJig0yiyjswfyGNje/ixw== - } - - es-define-property@1.0.0: - resolution: - { - integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ== - } - engines: { node: '>= 0.4' } - - es-errors@1.3.0: - resolution: - { - integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== - } - engines: { node: '>= 0.4' } - - ethereum-cryptography@2.1.3: - resolution: - { - integrity: sha512-BlwbIL7/P45W8FGW2r7LGuvoEZ+7PWsniMvQ4p5s2xCyw9tmaDlpfsN9HjAucbF+t/qpVHwZUisgfK24TCW8aA== - } - - eventemitter3@5.0.1: - resolution: - { - integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA== - } - - follow-redirects@1.15.6: - resolution: - { - integrity: sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA== - } - engines: { node: '>=4.0' } - peerDependencies: - debug: '*' - peerDependenciesMeta: - debug: - optional: true - - for-each@0.3.3: - resolution: - { - integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== - } - - form-data@4.0.0: - resolution: - { - integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww== - } - engines: { node: '>= 6' } - - function-bind@1.1.2: - resolution: - { - integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== - } - - get-intrinsic@1.2.4: - resolution: - { - integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ== - } - engines: { node: '>= 0.4' } - - gopd@1.0.1: - resolution: - { - integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== - } - - has-property-descriptors@1.0.2: - resolution: - { - integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg== - } - - has-proto@1.0.3: - resolution: - { - integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q== - } - engines: { node: '>= 0.4' } - - has-symbols@1.0.3: - resolution: - { - integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== - } - engines: { node: '>= 0.4' } - - has-tostringtag@1.0.2: - resolution: - { - integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw== - } - engines: { node: '>= 0.4' } - - hash.js@1.1.7: - resolution: - { - integrity: sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== - } - - hasown@2.0.2: - resolution: - { - integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== - } - engines: { node: '>= 0.4' } - - hmac-drbg@1.0.1: - resolution: - { - integrity: sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg== - } - - ieee754@1.2.1: - resolution: - { - integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== - } - - inherits@2.0.1: - resolution: - { - integrity: sha512-8nWq2nLTAwd02jTqJExUYFSD/fKq6VH9Y/oG2accc/kdI0V98Bag8d5a4gi3XHz73rDWa2PvTtvcWYquKqSENA== - } - - inherits@2.0.4: - resolution: - { - integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - } - - is-arguments@1.1.1: - resolution: - { - integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA== - } - engines: { node: '>= 0.4' } - - is-callable@1.2.7: - resolution: - { - integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== - } - engines: { node: '>= 0.4' } - - is-generator-function@1.0.10: - resolution: - { - integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A== - } - engines: { node: '>= 0.4' } - - is-typed-array@1.1.13: - resolution: - { - integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw== - } - engines: { node: '>= 0.4' } - - isomorphic-ws@5.0.0: - resolution: - { - integrity: sha512-muId7Zzn9ywDsyXgTIafTry2sV3nySZeUDe6YedVd1Hvuuep5AsIlqK+XefWpYTyJG5e503F2xIuT2lcU6rCSw== - } - peerDependencies: - ws: '*' - - js-sha256@0.9.0: - resolution: - { - integrity: sha512-sga3MHh9sgQN2+pJ9VYZ+1LPwXOxuBJBA5nrR5/ofPfuiJBE2hnjsaN8se8JznOmGLN2p49Pe5U/ttafcs/apA== - } - - jsontokens@4.0.1: - resolution: - { - integrity: sha512-+MO415LEN6M+3FGsRz4wU20g7N2JA+2j9d9+pGaNJHviG4L8N0qzavGyENw6fJqsq9CcrHOIL6iWX5yeTZ86+Q== - } - - lodash.omit@4.5.0: - resolution: - { - integrity: sha512-XeqSp49hNGmlkj2EJlfrQFIzQ6lXdNro9sddtQzcJY8QaoC2GO0DT7xaIokHeyM+mIT0mPMlPvkYzg2xCuHdZg== - } - - lodash@4.17.21: - resolution: - { - integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== - } - - mime-db@1.52.0: - resolution: - { - integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== - } - engines: { node: '>= 0.6' } - - mime-types@2.1.35: - resolution: - { - integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== - } - engines: { node: '>= 0.6' } - - minimalistic-assert@1.0.1: - resolution: - { - integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== - } - - minimalistic-crypto-utils@1.0.1: - resolution: - { - integrity: sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg== - } - - possible-typed-array-names@1.0.0: - resolution: - { - integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q== - } - engines: { node: '>= 0.4' } - - proxy-from-env@1.1.0: - resolution: - { - integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== - } - - randombytes@2.1.0: - resolution: - { - integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== - } - - safe-buffer@5.2.1: - resolution: - { - integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== - } - - sats-connect@2.3.1: - resolution: - { - integrity: sha512-3KzqRO5KVBlge7Q4a/L828SfCkFD+M4MVdtgJZS+L+oHiDYoXlLkvnu3almh9Ynhcm0HnsGmVH1pKVL0lonjyQ== - } - - set-function-length@1.2.2: - resolution: - { - integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg== - } - engines: { node: '>= 0.4' } - - sha256-uint8array@0.10.7: - resolution: - { - integrity: sha512-1Q6JQU4tX9NqsDGodej6pkrUVQVNapLZnvkwIhddH/JqzBZF1fSaxSWNY6sziXBE8aEa2twtGkXUrwzGeZCMpQ== - } - - typescript@5.4.4: - resolution: - { - integrity: sha512-dGE2Vv8cpVvw28v8HCPqyb08EzbBURxDpuhJvTrusShUfGnhHBafDsLdS1EhhxyL6BJQE+2cT3dDPAv+MQ6oLw== - } - engines: { node: '>=14.17' } - hasBin: true - - undici-types@5.26.5: - resolution: - { - integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== - } - - util@0.12.5: - resolution: - { - integrity: sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA== - } - - web3-errors@1.1.4: - resolution: - { - integrity: sha512-WahtszSqILez+83AxGecVroyZsMuuRT+KmQp4Si5P4Rnqbczno1k748PCrZTS1J4UCPmXMG2/Vt+0Bz2zwXkwQ== - } - engines: { node: '>=14', npm: '>=6.12.0' } - - web3-types@1.5.0: - resolution: - { - integrity: sha512-geWuMIeegQ8AedKAO6wO4G4j1gyQ1F/AyKLMw2vud4bsfZayyzWJgCMDZtjYMm5uo2a7i8j1W3/4QFmzlSy5cw== - } - engines: { node: '>=14', npm: '>=6.12.0' } - - web3-utils@4.2.1: - resolution: - { - integrity: sha512-Fk29BlEqD9Q9Cnw4pBkKw7czcXiRpsSco/BzEUl4ye0ZTSHANQFfjsfQmNm4t7uY11u6Ah+8F3tNjBeU4CA80A== - } - engines: { node: '>=14', npm: '>=6.12.0' } - - web3-validator@2.0.4: - resolution: - { - integrity: sha512-qRxVePwdW+SByOmTpDZFWHIUAa7PswvxNszrOua6BoGqAhERo5oJZBN+EbWtK/+O+ApNxt5FR3nCPmiZldiOQA== - } - engines: { node: '>=14', npm: '>=6.12.0' } - - which-typed-array@1.1.15: - resolution: - { - integrity: sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA== - } - engines: { node: '>= 0.4' } - - ws@8.17.0: - resolution: - { - integrity: sha512-uJq6108EgZMAl20KagGkzCKfMEjxmKvZHG7Tlq0Z6nOky7YF7aq4mOx6xK8TJ/i1LeK4Qus7INktacctDgY8Ow== - } - 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 - - zod@3.22.4: - resolution: - { - integrity: sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg== - } -snapshots: - '@multiplechain/types@0.1.70': {} - - '@multiplechain/utils@0.1.21': - dependencies: - '@types/ws': 8.5.10 - bignumber.js: 9.1.2 - web3-utils: 4.2.1 - ws: 8.17.0 - transitivePeerDependencies: - - bufferutil - - utf-8-validate - - '@noble/curves@1.3.0': - dependencies: - '@noble/hashes': 1.3.3 - - '@noble/hashes@1.3.3': {} - - '@noble/secp256k1@1.7.1': {} - - '@sats-connect/core@0.0.7': - dependencies: - axios: 1.6.8 - bitcoin-address-validation: 2.2.3 - buffer: 6.0.3 - jsontokens: 4.0.1 - lodash.omit: 4.5.0 - transitivePeerDependencies: - - debug - - '@sats-connect/core@0.0.8': - dependencies: - axios: 1.6.8 - bitcoin-address-validation: 2.2.3 - buffer: 6.0.3 - jsontokens: 4.0.1 - lodash.omit: 4.5.0 - transitivePeerDependencies: - - debug - - '@sats-connect/make-default-provider-config@0.0.4(typescript@5.4.4)': - dependencies: - '@sats-connect/core': 0.0.7 - '@sats-connect/ui': 0.0.5-c661c02 - bowser: 2.11.0 - typescript: 5.4.4 - transitivePeerDependencies: - - debug - - '@sats-connect/ui@0.0.5-c661c02': {} - - '@sats-connect/ui@0.0.6': {} - - '@scure/base@1.1.6': {} - - '@scure/bip32@1.3.3': - dependencies: - '@noble/curves': 1.3.0 - '@noble/hashes': 1.3.3 - '@scure/base': 1.1.6 - - '@scure/bip39@1.2.2': - dependencies: - '@noble/hashes': 1.3.3 - '@scure/base': 1.1.6 - - '@types/bitcore-lib@0.15.6': - dependencies: - '@types/node': 20.12.7 - - '@types/lodash@4.17.7': {} - - '@types/node@20.12.7': - dependencies: - undici-types: 5.26.5 - - '@types/ws@8.5.10': - dependencies: - '@types/node': 20.12.7 - - asynckit@0.4.0: {} - - available-typed-arrays@1.0.7: - dependencies: - possible-typed-array-names: 1.0.0 - - axios@1.6.8: - dependencies: - follow-redirects: 1.15.6 - form-data: 4.0.0 - proxy-from-env: 1.1.0 - transitivePeerDependencies: - - debug - - base-x@3.0.9: - dependencies: - safe-buffer: 5.2.1 - - base58-js@1.0.5: {} - - base64-js@1.5.1: {} - - bech32@2.0.0: {} - - bigi@1.4.2: {} - - bignumber.js@9.1.2: {} - - bip-schnorr@0.6.4: - dependencies: - bigi: 1.4.2 - ecurve: 1.0.6 - js-sha256: 0.9.0 - randombytes: 2.1.0 - safe-buffer: 5.2.1 - - bitcoin-address-validation@2.2.3: - dependencies: - base58-js: 1.0.5 - bech32: 2.0.0 - sha256-uint8array: 0.10.7 - - bitcore-lib@10.0.28: - dependencies: - bech32: 2.0.0 - bip-schnorr: 0.6.4 - bn.js: 4.11.8 - bs58: 4.0.1 - buffer-compare: 1.1.1 - elliptic: 6.5.5 - inherits: 2.0.1 - lodash: 4.17.21 - - bn.js@4.11.8: {} - - bn.js@4.12.0: {} - - bowser@2.11.0: {} - - brorand@1.1.0: {} - - bs58@4.0.1: - dependencies: - base-x: 3.0.9 + '@multiplechain/types@0.1.70': + resolution: {integrity: sha512-o9ovdaefDHE5gorb83avugCjeixfBXrfJkIgSEEcT549yGF8CkmG/jgZIlqXKJf8Lh0tbg4zMAAanUSxUqV1FQ==} + + '@multiplechain/utils@0.1.21': + resolution: {integrity: sha512-4mRlnhvXcS+7Hb1By5s2eoCH02kqOSQzV8qj0DHqZK20FtxtduaoGCtcClrFgEjN/HAXnHgdDc1pxTpveIkvRQ==} + + '@noble/curves@1.3.0': + resolution: {integrity: sha512-t01iSXPuN+Eqzb4eBX0S5oubSqXbK/xXa1Ne18Hj8f9pStxztHCE2gfboSp/dZRLSqfuLpRK2nDXDK+W9puocA==} + + '@noble/hashes@1.3.3': + resolution: {integrity: sha512-V7/fPHgl+jsVPXqqeOzT8egNj2iBIVt+ECeMMG8TdcnTikP3oaBtUVqpT/gYCR68aEBJSF+XbYUxStjbFMqIIA==} + engines: {node: '>= 16'} + + '@noble/secp256k1@1.7.1': + resolution: {integrity: sha512-hOUk6AyBFmqVrv7k5WAw/LpszxVbj9gGN4JRkIX52fdFAj1UA61KXmZDvqVEm+pOyec3+fIeZB02LYa/pWOArw==} + + '@sats-connect/core@0.0.7': + resolution: {integrity: sha512-4m5amq+orHDbqLqCRWojvDQigKAys33Ntwc7U5xNtFeib4j+DpYz6lVAL/s3cay1kq03WUZ+Gil3l5rv+5bQWQ==} + + '@sats-connect/core@0.0.8': + resolution: {integrity: sha512-vb7drnd8lFfO4ahCzaVAFkX1eHF1J7jheJl2V/JuuJd5f1sy6nHeNzKMp1zmiuql8uNwe0Sx1WrK1I+4tUmDHg==} + + '@sats-connect/make-default-provider-config@0.0.4': + resolution: {integrity: sha512-PsLzg1hV3FxMXUp9XrOUmDJgbuyR4VDHq/7mh1O1CtC3dDZQnJFa+Ue43duPMmUaRGinuVKtS2hnMhPLyURdGA==} + peerDependencies: + typescript: 5.4.4 + + '@sats-connect/ui@0.0.5-c661c02': + resolution: {integrity: sha512-6MUXFDGTapBhZAxb6deAdqKuB64GOe6k927gGww5JYwVnOUCaHGDcfaZ/lwexzYL45u8RJof12I4np7MgS+Bwg==} + + '@sats-connect/ui@0.0.6': + resolution: {integrity: sha512-H3bFFhr9CcY1oNosNi/QJszmMHSht4U19bUWfM3vzayAKgV4ebY6iUnRK5g3p2rVLLWVzlpaw1J9m+7JWwyBfA==} + + '@scure/base@1.1.6': + resolution: {integrity: sha512-ok9AWwhcgYuGG3Zfhyqg+zwl+Wn5uE+dwC0NV/2qQkx4dABbb/bx96vWu8NSj+BNjjSjno+JRYRjle1jV08k3g==} + + '@scure/bip32@1.3.3': + resolution: {integrity: sha512-LJaN3HwRbfQK0X1xFSi0Q9amqOgzQnnDngIt+ZlsBC3Bm7/nE7K0kwshZHyaru79yIVRv/e1mQAjZyuZG6jOFQ==} + + '@scure/bip39@1.2.2': + resolution: {integrity: sha512-HYf9TUXG80beW+hGAt3TRM8wU6pQoYur9iNypTROm42dorCGmLnFe3eWjz3gOq6G62H2WRh0FCzAR1PI+29zIA==} + + '@types/bitcore-lib@0.15.6': + resolution: {integrity: sha512-CtKDBgSBubPXZ0wFeCiUCSdzH+cuy6nFya3FboOqf44evi+OmkQPqEg3ASMpmPDYE8vkcxV302Iu8lZqCjYieg==} + + '@types/lodash@4.17.7': + resolution: {integrity: sha512-8wTvZawATi/lsmNu10/j2hk1KEP0IvjubqPE3cu1Xz7xfXXt5oCq3SNUz4fMIP4XGF9Ky+Ue2tBA3hcS7LSBlA==} + + '@types/node@20.12.7': + resolution: {integrity: sha512-wq0cICSkRLVaf3UGLMGItu/PtdY7oaXaI/RVU+xliKVOtRna3PRY57ZDfztpDL0n11vfymMUnXv8QwYCO7L1wg==} + + '@types/ws@8.5.10': + resolution: {integrity: sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==} + + asynckit@0.4.0: + resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} + + available-typed-arrays@1.0.7: + resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} + engines: {node: '>= 0.4'} + + axios@1.6.8: + resolution: {integrity: sha512-v/ZHtJDU39mDpyBoFVkETcd/uNdxrWRrg3bKpOKzXFA6Bvqopts6ALSMU3y6ijYxbw2B+wPrIv46egTzJXCLGQ==} + + base-x@3.0.9: + resolution: {integrity: sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==} + + base58-js@1.0.5: + resolution: {integrity: sha512-LkkAPP8Zu+c0SVNRTRVDyMfKVORThX+rCViget00xdgLRrKkClCTz1T7cIrpr69ShwV5XJuuoZvMvJ43yURwkA==} + engines: {node: '>= 8'} + + base64-js@1.5.1: + resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} + + bech32@2.0.0: + resolution: {integrity: sha512-LcknSilhIGatDAsY1ak2I8VtGaHNhgMSYVxFrGLXv+xLHytaKZKcaUJJUE7qmBr7h33o5YQwP55pMI0xmkpJwg==} + + bignumber.js@9.1.2: + resolution: {integrity: sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug==} + + bitcoin-address-validation@2.2.3: + resolution: {integrity: sha512-1uGCGl26Ye8JG5qcExtFLQfuib6qEZWNDo1ZlLlwp/z7ygUFby3IxolgEfgMGaC+LG9csbVASLcH8fRLv7DIOg==} + + bitcore-lib@10.7.0: + resolution: {integrity: sha512-PcFiQXpWOVV9JUf/fN8c9f0No6+z1fIV+o7CAvUzE1TpnKbdrf8bTpU1SlgO+0hBFfA3duasw1x+hfA5iLL5uw==} + + bn.js@4.11.8: + resolution: {integrity: sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==} + + bn.js@4.12.0: + resolution: {integrity: sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==} + + bowser@2.11.0: + resolution: {integrity: sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA==} + + brorand@1.1.0: + resolution: {integrity: sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==} + + bs58@4.0.1: + resolution: {integrity: sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==} + + buffer-compare@1.1.1: + resolution: {integrity: sha512-O6NvNiHZMd3mlIeMDjP6t/gPG75OqGPeiRZXoMQZJ6iy9GofCls4Ijs5YkPZZwoysizLiedhticmdyx/GyHghA==} + + buffer@6.0.3: + resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} + + call-bind@1.0.7: + resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} + engines: {node: '>= 0.4'} + + combined-stream@1.0.8: + resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} + engines: {node: '>= 0.8'} + + define-data-property@1.1.4: + resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} + engines: {node: '>= 0.4'} + + delayed-stream@1.0.0: + resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} + engines: {node: '>=0.4.0'} + + elliptic@6.5.5: + resolution: {integrity: sha512-7EjbcmUm17NQFu4Pmgmq2olYMj8nwMnpcddByChSUjArp8F5DQWcIcpriwO4ZToLNAJig0yiyjswfyGNje/ixw==} + + es-define-property@1.0.0: + resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} + engines: {node: '>= 0.4'} + + es-errors@1.3.0: + resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} + engines: {node: '>= 0.4'} + + ethereum-cryptography@2.1.3: + resolution: {integrity: sha512-BlwbIL7/P45W8FGW2r7LGuvoEZ+7PWsniMvQ4p5s2xCyw9tmaDlpfsN9HjAucbF+t/qpVHwZUisgfK24TCW8aA==} + + eventemitter3@5.0.1: + resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} - buffer-compare@1.1.1: {} + follow-redirects@1.15.6: + resolution: {integrity: sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==} + engines: {node: '>=4.0'} + peerDependencies: + debug: '*' + peerDependenciesMeta: + debug: + optional: true - buffer@6.0.3: - dependencies: - base64-js: 1.5.1 - ieee754: 1.2.1 - - call-bind@1.0.7: - dependencies: - es-define-property: 1.0.0 - es-errors: 1.3.0 - function-bind: 1.1.2 - get-intrinsic: 1.2.4 - set-function-length: 1.2.2 + for-each@0.3.3: + resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} - combined-stream@1.0.8: - dependencies: - delayed-stream: 1.0.0 + form-data@4.0.0: + resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} + engines: {node: '>= 6'} + + function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + + get-intrinsic@1.2.4: + resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} + engines: {node: '>= 0.4'} + + gopd@1.0.1: + resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} + + has-property-descriptors@1.0.2: + resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} + + has-proto@1.0.3: + resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==} + engines: {node: '>= 0.4'} + + has-symbols@1.0.3: + resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} + engines: {node: '>= 0.4'} + + has-tostringtag@1.0.2: + resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} + engines: {node: '>= 0.4'} + + hash.js@1.1.7: + resolution: {integrity: sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==} + + hasown@2.0.2: + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} + engines: {node: '>= 0.4'} + + hmac-drbg@1.0.1: + resolution: {integrity: sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==} + + ieee754@1.2.1: + resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} + + inherits@2.0.1: + resolution: {integrity: sha512-8nWq2nLTAwd02jTqJExUYFSD/fKq6VH9Y/oG2accc/kdI0V98Bag8d5a4gi3XHz73rDWa2PvTtvcWYquKqSENA==} + + inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + + is-arguments@1.1.1: + resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==} + engines: {node: '>= 0.4'} + + is-callable@1.2.7: + resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} + engines: {node: '>= 0.4'} + + is-generator-function@1.0.10: + resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==} + engines: {node: '>= 0.4'} + + is-typed-array@1.1.13: + resolution: {integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==} + engines: {node: '>= 0.4'} + + isomorphic-ws@5.0.0: + resolution: {integrity: sha512-muId7Zzn9ywDsyXgTIafTry2sV3nySZeUDe6YedVd1Hvuuep5AsIlqK+XefWpYTyJG5e503F2xIuT2lcU6rCSw==} + peerDependencies: + ws: '*' + + jsontokens@4.0.1: + resolution: {integrity: sha512-+MO415LEN6M+3FGsRz4wU20g7N2JA+2j9d9+pGaNJHviG4L8N0qzavGyENw6fJqsq9CcrHOIL6iWX5yeTZ86+Q==} + + lodash.omit@4.5.0: + resolution: {integrity: sha512-XeqSp49hNGmlkj2EJlfrQFIzQ6lXdNro9sddtQzcJY8QaoC2GO0DT7xaIokHeyM+mIT0mPMlPvkYzg2xCuHdZg==} + + lodash@4.17.21: + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + + mime-db@1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} + engines: {node: '>= 0.6'} + + mime-types@2.1.35: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} + engines: {node: '>= 0.6'} + + minimalistic-assert@1.0.1: + resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==} + + minimalistic-crypto-utils@1.0.1: + resolution: {integrity: sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==} + + possible-typed-array-names@1.0.0: + resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==} + engines: {node: '>= 0.4'} + + proxy-from-env@1.1.0: + resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} + + safe-buffer@5.2.1: + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + + sats-connect@2.3.1: + resolution: {integrity: sha512-3KzqRO5KVBlge7Q4a/L828SfCkFD+M4MVdtgJZS+L+oHiDYoXlLkvnu3almh9Ynhcm0HnsGmVH1pKVL0lonjyQ==} + + set-function-length@1.2.2: + resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} + engines: {node: '>= 0.4'} + + sha256-uint8array@0.10.7: + resolution: {integrity: sha512-1Q6JQU4tX9NqsDGodej6pkrUVQVNapLZnvkwIhddH/JqzBZF1fSaxSWNY6sziXBE8aEa2twtGkXUrwzGeZCMpQ==} + + typescript@5.4.4: + resolution: {integrity: sha512-dGE2Vv8cpVvw28v8HCPqyb08EzbBURxDpuhJvTrusShUfGnhHBafDsLdS1EhhxyL6BJQE+2cT3dDPAv+MQ6oLw==} + engines: {node: '>=14.17'} + hasBin: true + + undici-types@5.26.5: + resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} + + util@0.12.5: + resolution: {integrity: sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==} + + web3-errors@1.1.4: + resolution: {integrity: sha512-WahtszSqILez+83AxGecVroyZsMuuRT+KmQp4Si5P4Rnqbczno1k748PCrZTS1J4UCPmXMG2/Vt+0Bz2zwXkwQ==} + engines: {node: '>=14', npm: '>=6.12.0'} + + web3-types@1.5.0: + resolution: {integrity: sha512-geWuMIeegQ8AedKAO6wO4G4j1gyQ1F/AyKLMw2vud4bsfZayyzWJgCMDZtjYMm5uo2a7i8j1W3/4QFmzlSy5cw==} + engines: {node: '>=14', npm: '>=6.12.0'} + + web3-utils@4.2.1: + resolution: {integrity: sha512-Fk29BlEqD9Q9Cnw4pBkKw7czcXiRpsSco/BzEUl4ye0ZTSHANQFfjsfQmNm4t7uY11u6Ah+8F3tNjBeU4CA80A==} + engines: {node: '>=14', npm: '>=6.12.0'} + + web3-validator@2.0.4: + resolution: {integrity: sha512-qRxVePwdW+SByOmTpDZFWHIUAa7PswvxNszrOua6BoGqAhERo5oJZBN+EbWtK/+O+ApNxt5FR3nCPmiZldiOQA==} + engines: {node: '>=14', npm: '>=6.12.0'} + + which-typed-array@1.1.15: + resolution: {integrity: sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==} + engines: {node: '>= 0.4'} + + ws@8.17.0: + resolution: {integrity: sha512-uJq6108EgZMAl20KagGkzCKfMEjxmKvZHG7Tlq0Z6nOky7YF7aq4mOx6xK8TJ/i1LeK4Qus7INktacctDgY8Ow==} + 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 + + zod@3.22.4: + resolution: {integrity: sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==} + +snapshots: - define-data-property@1.1.4: - dependencies: - es-define-property: 1.0.0 - es-errors: 1.3.0 - gopd: 1.0.1 + '@multiplechain/types@0.1.70': {} + + '@multiplechain/utils@0.1.21': + dependencies: + '@types/ws': 8.5.10 + bignumber.js: 9.1.2 + web3-utils: 4.2.1 + ws: 8.17.0 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + + '@noble/curves@1.3.0': + dependencies: + '@noble/hashes': 1.3.3 + + '@noble/hashes@1.3.3': {} + + '@noble/secp256k1@1.7.1': {} + + '@sats-connect/core@0.0.7': + dependencies: + axios: 1.6.8 + bitcoin-address-validation: 2.2.3 + buffer: 6.0.3 + jsontokens: 4.0.1 + lodash.omit: 4.5.0 + transitivePeerDependencies: + - debug - delayed-stream@1.0.0: {} + '@sats-connect/core@0.0.8': + dependencies: + axios: 1.6.8 + bitcoin-address-validation: 2.2.3 + buffer: 6.0.3 + jsontokens: 4.0.1 + lodash.omit: 4.5.0 + transitivePeerDependencies: + - debug + + '@sats-connect/make-default-provider-config@0.0.4(typescript@5.4.4)': + dependencies: + '@sats-connect/core': 0.0.7 + '@sats-connect/ui': 0.0.5-c661c02 + bowser: 2.11.0 + typescript: 5.4.4 + transitivePeerDependencies: + - debug + + '@sats-connect/ui@0.0.5-c661c02': {} + + '@sats-connect/ui@0.0.6': {} + + '@scure/base@1.1.6': {} + + '@scure/bip32@1.3.3': + dependencies: + '@noble/curves': 1.3.0 + '@noble/hashes': 1.3.3 + '@scure/base': 1.1.6 + + '@scure/bip39@1.2.2': + dependencies: + '@noble/hashes': 1.3.3 + '@scure/base': 1.1.6 + + '@types/bitcore-lib@0.15.6': + dependencies: + '@types/node': 20.12.7 + + '@types/lodash@4.17.7': {} + + '@types/node@20.12.7': + dependencies: + undici-types: 5.26.5 + + '@types/ws@8.5.10': + dependencies: + '@types/node': 20.12.7 + + asynckit@0.4.0: {} + + available-typed-arrays@1.0.7: + dependencies: + possible-typed-array-names: 1.0.0 + + axios@1.6.8: + dependencies: + follow-redirects: 1.15.6 + form-data: 4.0.0 + proxy-from-env: 1.1.0 + transitivePeerDependencies: + - debug + + base-x@3.0.9: + dependencies: + safe-buffer: 5.2.1 + + base58-js@1.0.5: {} + + base64-js@1.5.1: {} + + bech32@2.0.0: {} + + bignumber.js@9.1.2: {} + + bitcoin-address-validation@2.2.3: + dependencies: + base58-js: 1.0.5 + bech32: 2.0.0 + sha256-uint8array: 0.10.7 + + bitcore-lib@10.7.0: + dependencies: + bech32: 2.0.0 + bn.js: 4.11.8 + bs58: 4.0.1 + buffer-compare: 1.1.1 + elliptic: 6.5.5 + inherits: 2.0.1 + lodash: 4.17.21 + + bn.js@4.11.8: {} + + bn.js@4.12.0: {} + + bowser@2.11.0: {} + + brorand@1.1.0: {} + + bs58@4.0.1: + dependencies: + base-x: 3.0.9 + + buffer-compare@1.1.1: {} + + buffer@6.0.3: + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 - ecurve@1.0.6: - dependencies: - bigi: 1.4.2 - safe-buffer: 5.2.1 + call-bind@1.0.7: + dependencies: + es-define-property: 1.0.0 + es-errors: 1.3.0 + function-bind: 1.1.2 + get-intrinsic: 1.2.4 + set-function-length: 1.2.2 - elliptic@6.5.5: - dependencies: - bn.js: 4.12.0 - brorand: 1.1.0 - hash.js: 1.1.7 - hmac-drbg: 1.0.1 - inherits: 2.0.4 - minimalistic-assert: 1.0.1 - minimalistic-crypto-utils: 1.0.1 - - es-define-property@1.0.0: - dependencies: - get-intrinsic: 1.2.4 + combined-stream@1.0.8: + dependencies: + delayed-stream: 1.0.0 - es-errors@1.3.0: {} + define-data-property@1.1.4: + dependencies: + es-define-property: 1.0.0 + es-errors: 1.3.0 + gopd: 1.0.1 - ethereum-cryptography@2.1.3: - dependencies: - '@noble/curves': 1.3.0 - '@noble/hashes': 1.3.3 - '@scure/bip32': 1.3.3 - '@scure/bip39': 1.2.2 + delayed-stream@1.0.0: {} - eventemitter3@5.0.1: {} + elliptic@6.5.5: + dependencies: + bn.js: 4.12.0 + brorand: 1.1.0 + hash.js: 1.1.7 + hmac-drbg: 1.0.1 + inherits: 2.0.4 + minimalistic-assert: 1.0.1 + minimalistic-crypto-utils: 1.0.1 - follow-redirects@1.15.6: {} + es-define-property@1.0.0: + dependencies: + get-intrinsic: 1.2.4 - for-each@0.3.3: - dependencies: - is-callable: 1.2.7 + es-errors@1.3.0: {} - form-data@4.0.0: - dependencies: - asynckit: 0.4.0 - combined-stream: 1.0.8 - mime-types: 2.1.35 + ethereum-cryptography@2.1.3: + dependencies: + '@noble/curves': 1.3.0 + '@noble/hashes': 1.3.3 + '@scure/bip32': 1.3.3 + '@scure/bip39': 1.2.2 - function-bind@1.1.2: {} + eventemitter3@5.0.1: {} - get-intrinsic@1.2.4: - dependencies: - es-errors: 1.3.0 - function-bind: 1.1.2 - has-proto: 1.0.3 - has-symbols: 1.0.3 - hasown: 2.0.2 + follow-redirects@1.15.6: {} - gopd@1.0.1: - dependencies: - get-intrinsic: 1.2.4 + for-each@0.3.3: + dependencies: + is-callable: 1.2.7 - has-property-descriptors@1.0.2: - dependencies: - es-define-property: 1.0.0 + form-data@4.0.0: + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + mime-types: 2.1.35 - has-proto@1.0.3: {} + function-bind@1.1.2: {} - has-symbols@1.0.3: {} + get-intrinsic@1.2.4: + dependencies: + es-errors: 1.3.0 + function-bind: 1.1.2 + has-proto: 1.0.3 + has-symbols: 1.0.3 + hasown: 2.0.2 - has-tostringtag@1.0.2: - dependencies: - has-symbols: 1.0.3 + gopd@1.0.1: + dependencies: + get-intrinsic: 1.2.4 - hash.js@1.1.7: - dependencies: - inherits: 2.0.4 - minimalistic-assert: 1.0.1 + has-property-descriptors@1.0.2: + dependencies: + es-define-property: 1.0.0 - hasown@2.0.2: - dependencies: - function-bind: 1.1.2 + has-proto@1.0.3: {} - hmac-drbg@1.0.1: - dependencies: - hash.js: 1.1.7 - minimalistic-assert: 1.0.1 - minimalistic-crypto-utils: 1.0.1 + has-symbols@1.0.3: {} - ieee754@1.2.1: {} + has-tostringtag@1.0.2: + dependencies: + has-symbols: 1.0.3 - inherits@2.0.1: {} + hash.js@1.1.7: + dependencies: + inherits: 2.0.4 + minimalistic-assert: 1.0.1 - inherits@2.0.4: {} + hasown@2.0.2: + dependencies: + function-bind: 1.1.2 - is-arguments@1.1.1: - dependencies: - call-bind: 1.0.7 - has-tostringtag: 1.0.2 + hmac-drbg@1.0.1: + dependencies: + hash.js: 1.1.7 + minimalistic-assert: 1.0.1 + minimalistic-crypto-utils: 1.0.1 - is-callable@1.2.7: {} + ieee754@1.2.1: {} - is-generator-function@1.0.10: - dependencies: - has-tostringtag: 1.0.2 + inherits@2.0.1: {} + + inherits@2.0.4: {} - is-typed-array@1.1.13: - dependencies: - which-typed-array: 1.1.15 + is-arguments@1.1.1: + dependencies: + call-bind: 1.0.7 + has-tostringtag: 1.0.2 + + is-callable@1.2.7: {} - isomorphic-ws@5.0.0(ws@8.17.0): - dependencies: - ws: 8.17.0 + is-generator-function@1.0.10: + dependencies: + has-tostringtag: 1.0.2 - js-sha256@0.9.0: {} + is-typed-array@1.1.13: + dependencies: + which-typed-array: 1.1.15 - jsontokens@4.0.1: - dependencies: - '@noble/hashes': 1.3.3 - '@noble/secp256k1': 1.7.1 - base64-js: 1.5.1 + isomorphic-ws@5.0.0(ws@8.17.0): + dependencies: + ws: 8.17.0 - lodash.omit@4.5.0: {} + jsontokens@4.0.1: + dependencies: + '@noble/hashes': 1.3.3 + '@noble/secp256k1': 1.7.1 + base64-js: 1.5.1 - lodash@4.17.21: {} + lodash.omit@4.5.0: {} - mime-db@1.52.0: {} + lodash@4.17.21: {} - mime-types@2.1.35: - dependencies: - mime-db: 1.52.0 + mime-db@1.52.0: {} - minimalistic-assert@1.0.1: {} + mime-types@2.1.35: + dependencies: + mime-db: 1.52.0 - minimalistic-crypto-utils@1.0.1: {} + minimalistic-assert@1.0.1: {} - possible-typed-array-names@1.0.0: {} + minimalistic-crypto-utils@1.0.1: {} - proxy-from-env@1.1.0: {} + possible-typed-array-names@1.0.0: {} - randombytes@2.1.0: - dependencies: - safe-buffer: 5.2.1 + proxy-from-env@1.1.0: {} - safe-buffer@5.2.1: {} + safe-buffer@5.2.1: {} - sats-connect@2.3.1(typescript@5.4.4): - dependencies: - '@sats-connect/core': 0.0.8 - '@sats-connect/make-default-provider-config': 0.0.4(typescript@5.4.4) - '@sats-connect/ui': 0.0.6 - transitivePeerDependencies: - - debug - - typescript + sats-connect@2.3.1(typescript@5.4.4): + dependencies: + '@sats-connect/core': 0.0.8 + '@sats-connect/make-default-provider-config': 0.0.4(typescript@5.4.4) + '@sats-connect/ui': 0.0.6 + transitivePeerDependencies: + - debug + - typescript - set-function-length@1.2.2: - dependencies: - define-data-property: 1.1.4 - es-errors: 1.3.0 - function-bind: 1.1.2 - get-intrinsic: 1.2.4 - gopd: 1.0.1 - has-property-descriptors: 1.0.2 + set-function-length@1.2.2: + dependencies: + define-data-property: 1.1.4 + es-errors: 1.3.0 + function-bind: 1.1.2 + get-intrinsic: 1.2.4 + gopd: 1.0.1 + has-property-descriptors: 1.0.2 - sha256-uint8array@0.10.7: {} + sha256-uint8array@0.10.7: {} - typescript@5.4.4: {} + typescript@5.4.4: {} - undici-types@5.26.5: {} + undici-types@5.26.5: {} - util@0.12.5: - dependencies: - inherits: 2.0.4 - is-arguments: 1.1.1 - is-generator-function: 1.0.10 - is-typed-array: 1.1.13 - which-typed-array: 1.1.15 + util@0.12.5: + dependencies: + inherits: 2.0.4 + is-arguments: 1.1.1 + is-generator-function: 1.0.10 + is-typed-array: 1.1.13 + which-typed-array: 1.1.15 - web3-errors@1.1.4: - dependencies: - web3-types: 1.5.0 + web3-errors@1.1.4: + dependencies: + web3-types: 1.5.0 - web3-types@1.5.0: {} + web3-types@1.5.0: {} - web3-utils@4.2.1: - dependencies: - ethereum-cryptography: 2.1.3 - eventemitter3: 5.0.1 - web3-errors: 1.1.4 - web3-types: 1.5.0 - web3-validator: 2.0.4 + web3-utils@4.2.1: + dependencies: + ethereum-cryptography: 2.1.3 + eventemitter3: 5.0.1 + web3-errors: 1.1.4 + web3-types: 1.5.0 + web3-validator: 2.0.4 - web3-validator@2.0.4: - dependencies: - ethereum-cryptography: 2.1.3 - util: 0.12.5 - web3-errors: 1.1.4 - web3-types: 1.5.0 - zod: 3.22.4 + web3-validator@2.0.4: + dependencies: + ethereum-cryptography: 2.1.3 + util: 0.12.5 + web3-errors: 1.1.4 + web3-types: 1.5.0 + zod: 3.22.4 - which-typed-array@1.1.15: - dependencies: - available-typed-arrays: 1.0.7 - call-bind: 1.0.7 - for-each: 0.3.3 - gopd: 1.0.1 - has-tostringtag: 1.0.2 + which-typed-array@1.1.15: + dependencies: + available-typed-arrays: 1.0.7 + call-bind: 1.0.7 + for-each: 0.3.3 + gopd: 1.0.1 + has-tostringtag: 1.0.2 - ws@8.17.0: {} + ws@8.17.0: {} - zod@3.22.4: {} + zod@3.22.4: {} diff --git a/packages/networks/bitcoin/src/assets/Coin.ts b/packages/networks/bitcoin/src/assets/Coin.ts index 1132e8b..1f98dab 100644 --- a/packages/networks/bitcoin/src/assets/Coin.ts +++ b/packages/networks/bitcoin/src/assets/Coin.ts @@ -1,7 +1,7 @@ import axios from 'axios' +import bitcore from 'bitcore-lib' import { Provider } from '../services/Provider' import { fromSatoshi, toSatoshi } from '../utils' -import { Transaction, Script, Address } from 'bitcore-lib' import { TransactionSigner } from '../services/TransactionSigner' import { ErrorTypeEnum, @@ -80,8 +80,8 @@ export class Coin implements CoinInterface { } const inputs = [] - const transaction = new Transaction() - const senderAddress = new Address(sender) + const transaction = new bitcore.Transaction() + const senderAddress = new bitcore.Address(sender) const satoshiToSend = toSatoshi(amount) const utxos = await axios @@ -90,12 +90,12 @@ export class Coin implements CoinInterface { for (const utxo of utxos) { inputs.push( - new Transaction.UnspentOutput({ + new bitcore.Transaction.UnspentOutput({ txId: utxo.txid, satoshis: utxo.value, address: senderAddress, outputIndex: utxo.vout, - script: Script.fromAddress(senderAddress) + script: bitcore.Script.fromAddress(senderAddress) }) ) } diff --git a/packages/networks/bitcoin/src/index.ts b/packages/networks/bitcoin/src/index.ts index 5de3d60..fb1d1e5 100644 --- a/packages/networks/bitcoin/src/index.ts +++ b/packages/networks/bitcoin/src/index.ts @@ -1,5 +1,5 @@ import lodash from 'lodash' -import { Address, PublicKey, Script } from 'bitcore-lib' +import bitcore from 'bitcore-lib' export * from './services/Provider' @@ -18,7 +18,7 @@ declare module 'bitcore-lib' { } } -Address.prototype._classifyArguments = function (data: any, network: any, type: any) { +bitcore.Address.prototype._classifyArguments = function (data: any, network: any, type: any) { /* jshint maxcomplexity: 10 */ // transform and validate input data if ( @@ -30,10 +30,10 @@ Address.prototype._classifyArguments = function (data: any, network: any, type: } else if ((data instanceof Buffer || data instanceof Uint8Array) && data.length >= 21) { // @ts-expect-error exists return Address._transformBuffer(data, network, type) - } else if (data instanceof PublicKey) { + } else if (data instanceof bitcore.PublicKey) { // @ts-expect-error exists return Address._transformPublicKey(data, network, type) - } else if (data instanceof Script) { + } else if (data instanceof bitcore.Script) { // @ts-expect-error exists return Address._transformScript(data, network) } else if (typeof data === 'string') { diff --git a/packages/networks/bitcoin/src/models/Transaction.ts b/packages/networks/bitcoin/src/models/Transaction.ts index 61492fd..f44a2d9 100644 --- a/packages/networks/bitcoin/src/models/Transaction.ts +++ b/packages/networks/bitcoin/src/models/Transaction.ts @@ -98,6 +98,7 @@ export class Transaction implements TransactionInterface { return (this.data = data as TransactionData) } catch (error) { + console.error('MC Bitcoin TX getData', error) const axiosError = error as AxiosError // Returns empty data when the transaction is first created. For this reason, it would be better to check it intermittently and give an error if it still does not exist. Average 10 seconds. if (String(axiosError?.response?.data).includes('Transaction not found')) { @@ -130,6 +131,7 @@ export class Transaction implements TransactionInterface { } setTimeout(check, ms) } catch (error) { + console.error('MC Bitcoin TX wait', error) reject(TransactionStatusEnum.FAILED) } } diff --git a/packages/networks/bitcoin/src/services/TransactionSigner.ts b/packages/networks/bitcoin/src/services/TransactionSigner.ts index cc1f7b0..82b9427 100644 --- a/packages/networks/bitcoin/src/services/TransactionSigner.ts +++ b/packages/networks/bitcoin/src/services/TransactionSigner.ts @@ -1,14 +1,14 @@ import axios from 'axios' +import type bitcore from 'bitcore-lib' import type { AxiosError } from 'axios' import { Provider } from '../services/Provider' -import type { Transaction as BitcoreLibTransactionData } from 'bitcore-lib' import type { PrivateKey, TransactionId, TransactionSignerInterface } from '@multiplechain/types' export interface TransactionData { sender: string receiver: string amount: number - bitcoreLib: BitcoreLibTransactionData + bitcoreLib: bitcore.Transaction } export class TransactionSigner implements TransactionSignerInterface { diff --git a/packages/networks/boilerplate/src/services/TransactionListener.ts b/packages/networks/boilerplate/src/services/TransactionListener.ts index c283804..c832778 100644 --- a/packages/networks/boilerplate/src/services/TransactionListener.ts +++ b/packages/networks/boilerplate/src/services/TransactionListener.ts @@ -1,11 +1,6 @@ import { Provider } from './Provider' -import { Transaction } from '../models/Transaction' -import { NftTransaction } from '../models/NftTransaction' -import { CoinTransaction } from '../models/CoinTransaction' -import { TokenTransaction } from '../models/TokenTransaction' -import { ContractTransaction } from '../models/ContractTransaction' -import { TransactionListenerProcessIndex, TransactionTypeEnum } from '@multiplechain/types' import type { + TransactionTypeEnum, DynamicTransactionType, TransactionListenerInterface, DynamicTransactionListenerFilterType, @@ -15,6 +10,14 @@ import type { ContractTransactionListenerFilterInterface, TransactionId } from '@multiplechain/types' +import type { + Transaction, + TokenTransaction, + CoinTransaction, + ContractTransaction, + NftTransaction +} from '../models/index' +import { TransactionListenerProcessIndex } from '@multiplechain/types' type TransactionListenerTriggerType = DynamicTransactionType< T, diff --git a/packages/networks/evm-chains/index.example.html b/packages/networks/evm-chains/index.example.html index 5cf953e..530928a 100644 --- a/packages/networks/evm-chains/index.example.html +++ b/packages/networks/evm-chains/index.example.html @@ -198,8 +198,8 @@ id: 11155111, hexId: '0xaa36a7', mainnetId: 1, - rpcUrl: 'https://sepolia.infura.io/v3/9aa3d95b3bc440fa88ea12eaa4456161', - wsUrl: 'wss://sepolia.infura.io/ws/v3/9aa3d95b3bc440fa88ea12eaa4456161', + rpcUrl: 'https://ethereum-sepolia-rpc.publicnode.com', + wsUrl: 'wss://ethereum-sepolia-rpc.publicnode.com', name: 'Ethereum Sepolia Testnet (QR)', explorerUrl: 'https://sepolia.etherscan.io/', nativeCurrency: { diff --git a/packages/networks/evm-chains/src/models/Transaction.ts b/packages/networks/evm-chains/src/models/Transaction.ts index 8b94cd4..cbde168 100644 --- a/packages/networks/evm-chains/src/models/Transaction.ts +++ b/packages/networks/evm-chains/src/models/Transaction.ts @@ -87,6 +87,7 @@ export class Transaction implements TransactionInterface { const receipt = await this.ethers.getTransactionReceipt(this.id) return (this.data = { response, receipt }) } catch (error) { + console.error('MC EVM TX getData', error) if (error instanceof Error && String(error.message).includes('timeout')) { throw new Error(ErrorTypeEnum.RPC_TIMEOUT) } @@ -110,6 +111,7 @@ export class Transaction implements TransactionInterface { } setTimeout(check, ms) } catch (error) { + console.error('MC EVM TX wait', error) reject(TransactionStatusEnum.FAILED) } } diff --git a/packages/networks/solana/src/assets/NFT.ts b/packages/networks/solana/src/assets/NFT.ts index dbdb536..725dca4 100644 --- a/packages/networks/solana/src/assets/NFT.ts +++ b/packages/networks/solana/src/assets/NFT.ts @@ -171,8 +171,10 @@ export class NFT extends Contract implements NftInterface { const receiverPubKey = new PublicKey(receiver) const programId = await this.getProgramId(nftPubKey) - const ownerAccount = await this.getTokenAccount(ownerPubKey, programId) - const receiverAccount = await this.getTokenAccount(receiverPubKey, programId) + const [ownerAccount, receiverAccount] = await Promise.all([ + this.getTokenAccount(ownerPubKey, programId), + this.getTokenAccount(receiverPubKey, programId) + ]) // If the receiver does not have an associated token account, create one if ((await this.provider.web3.getAccountInfo(receiverAccount)) === null) { @@ -234,7 +236,6 @@ export class NFT extends Contract implements NftInterface { const ownerPubKey = new PublicKey(owner) const spenderPubKey = new PublicKey(spender) const programId = await this.getProgramId(nftPubKey) - const ownerAccount = await this.getTokenAccount(ownerPubKey, programId) transaction.add( diff --git a/packages/networks/solana/src/assets/Token.ts b/packages/networks/solana/src/assets/Token.ts index 96b8e3c..5cb5b83 100644 --- a/packages/networks/solana/src/assets/Token.ts +++ b/packages/networks/solana/src/assets/Token.ts @@ -234,10 +234,12 @@ export class Token extends Contract implements TokenInterface const spenderPubKey = new PublicKey(spender) const receiverPubKey = new PublicKey(receiver) const programId = await this.getProgramId() - const transferAmount = await this.formatAmount(amount) - const ownerAccount = await this.getTokenAccount(ownerPubKey, programId) - const receiverAccount = await this.getTokenAccount(receiverPubKey, programId) + const [transferAmount, ownerAccount, receiverAccount] = await Promise.all([ + this.formatAmount(amount), + this.getTokenAccount(ownerPubKey, programId), + this.getTokenAccount(receiverPubKey, programId) + ]) // If the receiver does not have an associated token account, create one if ((await this.provider.web3.getAccountInfo(receiverAccount)) === null) { @@ -295,9 +297,11 @@ export class Token extends Contract implements TokenInterface const ownerPubKey = new PublicKey(owner) const spenderPubKey = new PublicKey(spender) const programId = await this.getProgramId() - const approveAmount = await this.formatAmount(amount) - const ownerAccount = await this.getTokenAccount(ownerPubKey, programId) + const [approveAmount, ownerAccount] = await Promise.all([ + this.formatAmount(amount), + this.getTokenAccount(ownerPubKey, programId) + ]) transaction.add( createApproveInstruction( diff --git a/packages/networks/solana/src/models/Transaction.ts b/packages/networks/solana/src/models/Transaction.ts index cbe8fac..e86364e 100644 --- a/packages/networks/solana/src/models/Transaction.ts +++ b/packages/networks/solana/src/models/Transaction.ts @@ -61,6 +61,7 @@ export class Transaction implements TransactionInterface { + module.default() +}) diff --git a/packages/networks/ton/index.example.html b/packages/networks/ton/index.example.html new file mode 100644 index 0000000..ed2cf7c --- /dev/null +++ b/packages/networks/ton/index.example.html @@ -0,0 +1,323 @@ + + + + + + + Browser Tests + + + + +
+
    +
    + +
    +
    Adapter id:
    +
    Adapter name:
    +
    + Adapter icon: + icon +
    +
    Platforms:
    +
    + Connected address: +
    + +
    Result:
    + +
    Result:
    + +
    Result:
    +
    + + + + diff --git a/packages/networks/ton/manifest.json b/packages/networks/ton/manifest.json new file mode 100644 index 0000000..9d342c6 --- /dev/null +++ b/packages/networks/ton/manifest.json @@ -0,0 +1,5 @@ +{ + "name": "MC TON", + "iconUrl": "https://ton.vote/logo.png", + "url": "https://github.com/MultipleChain/js/tree/alpha/packages/networks/ton" +} \ No newline at end of file diff --git a/packages/networks/ton/package.json b/packages/networks/ton/package.json new file mode 100644 index 0000000..fb8843e --- /dev/null +++ b/packages/networks/ton/package.json @@ -0,0 +1,85 @@ +{ + "name": "@multiplechain/ton", + "version": "0.1.0", + "type": "module", + "main": "dist/index.cjs", + "module": "dist/index.es.js", + "unpkg": "dist/index.umd.js", + "browser": "dist/index.umd.js", + "jsdelivr": "dist/index.umd.js", + "exports": { + ".": { + "import": { + "default": "./dist/index.es.js", + "types": "./dist/browser/index.d.ts" + }, + "require": { + "default": "./dist/index.cjs", + "types": "./dist/index.d.ts" + } + }, + "./node": { + "default": "./dist/index.cjs", + "types": "./dist/index.d.ts" + }, + "./browser": { + "default": "./dist/index.es.js", + "types": "./dist/browser/index.d.ts" + } + }, + "typesVersions": { + "*": { + "node": [ + "./dist/index.d.ts" + ], + "browser": [ + "./dist/browser/index.d.ts" + ] + } + }, + "files": [ + "dist", + "README.md", + "!tsconfig.tsbuildinfo" + ], + "scripts": { + "dev": "vite", + "clean": "rm -rf dist", + "watch": "tsc --watch", + "build:vite": "vite build", + "build:node": "tsx esbuild.ts", + "typecheck": "tsc --noEmit", + "lint": "eslint . --ext .ts", + "test": "vitest run --dir tests", + "test-ui": "vitest watch --ui", + "prepublishOnly": "pnpm run build", + "build": "pnpm run build:vite && pnpm run build:node" + }, + "keywords": [ + "web3", + "crypto", + "blockchain", + "multiple-chain" + ], + "author": "MultipleChain", + "license": "MIT", + "homepage": "https://github.com/MultipleChain/js/tree/master/packages/networks/network-name", + "repository": { + "type": "git", + "url": "git+https://github.com/MultipleChain/js.git" + }, + "bugs": { + "url": "https://github.com/MultipleChain/js/issues" + }, + "dependencies": { + "@multiplechain/types": "^0.1.67", + "@multiplechain/utils": "^0.1.21", + "@ton/core": "^0.59.1", + "@ton/crypto": "^3.3.0", + "@ton/sandbox": "0.21.0-beta.1", + "@ton/ton": "^15.1.0", + "@tonconnect/ui": "^2.0.11", + "axios": "^1.7.9", + "ton-center-v3": "^0.1.3" + } +} diff --git a/packages/networks/ton/pnpm-lock.yaml b/packages/networks/ton/pnpm-lock.yaml new file mode 100644 index 0000000..372debc --- /dev/null +++ b/packages/networks/ton/pnpm-lock.yaml @@ -0,0 +1,649 @@ +lockfileVersion: '9.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +importers: + + .: + dependencies: + '@multiplechain/types': + specifier: ^0.1.67 + version: 0.1.67 + '@multiplechain/utils': + specifier: ^0.1.21 + version: 0.1.21 + '@ton/core': + specifier: ^0.59.1 + version: 0.59.1(@ton/crypto@3.3.0) + '@ton/crypto': + specifier: ^3.3.0 + version: 3.3.0 + '@ton/sandbox': + specifier: 0.21.0-beta.1 + version: 0.21.0-beta.1(@ton/core@0.59.1(@ton/crypto@3.3.0))(@ton/crypto@3.3.0) + '@ton/ton': + specifier: ^15.1.0 + version: 15.1.0(@ton/core@0.59.1(@ton/crypto@3.3.0))(@ton/crypto@3.3.0) + '@tonconnect/ui': + specifier: ^2.0.11 + version: 2.0.11 + axios: + specifier: ^1.7.9 + version: 1.7.9 + ton-center-v3: + specifier: ^0.1.3 + version: 0.1.3 + +packages: + + '@multiplechain/types@0.1.67': + resolution: {integrity: sha512-8TN5HhDC7lILh7wDKneJFS1Nyvxa+YGi0L56m6jnj0mBmTmwxNN42W5tP/3KYUlsfTHqb64iijjXMTLYZ0x+Dg==} + + '@multiplechain/utils@0.1.21': + resolution: {integrity: sha512-4mRlnhvXcS+7Hb1By5s2eoCH02kqOSQzV8qj0DHqZK20FtxtduaoGCtcClrFgEjN/HAXnHgdDc1pxTpveIkvRQ==} + + '@noble/curves@1.3.0': + resolution: {integrity: sha512-t01iSXPuN+Eqzb4eBX0S5oubSqXbK/xXa1Ne18Hj8f9pStxztHCE2gfboSp/dZRLSqfuLpRK2nDXDK+W9puocA==} + + '@noble/hashes@1.3.3': + resolution: {integrity: sha512-V7/fPHgl+jsVPXqqeOzT8egNj2iBIVt+ECeMMG8TdcnTikP3oaBtUVqpT/gYCR68aEBJSF+XbYUxStjbFMqIIA==} + engines: {node: '>= 16'} + + '@scure/base@1.1.6': + resolution: {integrity: sha512-ok9AWwhcgYuGG3Zfhyqg+zwl+Wn5uE+dwC0NV/2qQkx4dABbb/bx96vWu8NSj+BNjjSjno+JRYRjle1jV08k3g==} + + '@scure/bip32@1.3.3': + resolution: {integrity: sha512-LJaN3HwRbfQK0X1xFSi0Q9amqOgzQnnDngIt+ZlsBC3Bm7/nE7K0kwshZHyaru79yIVRv/e1mQAjZyuZG6jOFQ==} + + '@scure/bip39@1.2.2': + resolution: {integrity: sha512-HYf9TUXG80beW+hGAt3TRM8wU6pQoYur9iNypTROm42dorCGmLnFe3eWjz3gOq6G62H2WRh0FCzAR1PI+29zIA==} + + '@ton/core@0.59.1': + resolution: {integrity: sha512-SxFBAvutYJaIllTkv82vbHTJhJI6NxzqUhi499CDEjJEZ9i6i9lHJiK2df4dlLAb/4SiWX6+QUzESkK4DEdnCw==} + peerDependencies: + '@ton/crypto': '>=3.2.0' + + '@ton/crypto-primitives@2.1.0': + resolution: {integrity: sha512-PQesoyPgqyI6vzYtCXw4/ZzevePc4VGcJtFwf08v10OevVJHVfW238KBdpj1kEDQkxWLeuNHEpTECNFKnP6tow==} + + '@ton/crypto@3.3.0': + resolution: {integrity: sha512-/A6CYGgA/H36OZ9BbTaGerKtzWp50rg67ZCH2oIjV1NcrBaCK9Z343M+CxedvM7Haf3f/Ee9EhxyeTp0GKMUpA==} + + '@ton/sandbox@0.21.0-beta.1': + resolution: {integrity: sha512-y9LUMwa5QsbqXLAhhBmXHGRdfXkzVVYUAZB6QxVkp+IOr8DctiJjdLDtqZ+kwUUaeoM1xNd7XMIdMerhNU/NBQ==} + peerDependencies: + '@ton/core': '>=0.56.0' + '@ton/crypto': '>=3.2.0' + + '@ton/ton@15.1.0': + resolution: {integrity: sha512-almetcfTu7jLjcNcEEPB7wAc8yl90ES1M//sOr1QE+kv7RbmEvMkaPSc7kFxzs10qrjIPKxlodBJlMSWP5LuVQ==} + peerDependencies: + '@ton/core': '>=0.59.0' + '@ton/crypto': '>=3.2.0' + + '@tonconnect/isomorphic-eventsource@0.0.2': + resolution: {integrity: sha512-B4UoIjPi0QkvIzZH5fV3BQLWrqSYABdrzZQSI9sJA9aA+iC0ohOzFwVVGXanlxeDAy1bcvPbb29f6sVUk0UnnQ==} + + '@tonconnect/isomorphic-fetch@0.0.3': + resolution: {integrity: sha512-jIg5nTrDwnite4fXao3dD83eCpTvInTjZon/rZZrIftIegh4XxyVb5G2mpMqXrVGk1e8SVXm3Kj5OtfMplQs0w==} + + '@tonconnect/protocol@2.2.6': + resolution: {integrity: sha512-kyoDz5EqgsycYP+A+JbVsAUYHNT059BCrK+m0pqxykMODwpziuSAXfwAZmHcg8v7NB9VKYbdFY55xKeXOuEd0w==} + + '@tonconnect/sdk@3.0.6': + resolution: {integrity: sha512-dJipe0Cw43p/7o3Pa6Y6h0QMDtY2V2YKzwdCqcYvmyCYadBNmvA+8ScH9QK5GpkngRJnYaWq+321lAaQTFpUwA==} + + '@tonconnect/ui@2.0.11': + resolution: {integrity: sha512-5TOhfEDeyY8R9oyEGavLU+DRmDW3wSGyxVshWhHisi8597cZIuG39HHNbP05WJBBjmVm/Kh/bhcHtfx7lQp/Ig==} + + '@types/node@20.12.7': + resolution: {integrity: sha512-wq0cICSkRLVaf3UGLMGItu/PtdY7oaXaI/RVU+xliKVOtRna3PRY57ZDfztpDL0n11vfymMUnXv8QwYCO7L1wg==} + + '@types/ws@8.5.10': + resolution: {integrity: sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==} + + asynckit@0.4.0: + resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} + + available-typed-arrays@1.0.7: + resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} + engines: {node: '>= 0.4'} + + axios@1.7.9: + resolution: {integrity: sha512-LhLcE7Hbiryz8oMDdDptSrWowmB4Bl6RCt6sIJKpRB4XtVf0iEgewX3au/pJqm+Py1kCASkb/FFKjxQaLtxJvw==} + + bignumber.js@9.1.2: + resolution: {integrity: sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug==} + + call-bind@1.0.7: + resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} + engines: {node: '>= 0.4'} + + classnames@2.5.1: + resolution: {integrity: sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==} + + combined-stream@1.0.8: + resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} + engines: {node: '>= 0.8'} + + csstype@3.1.3: + resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} + + dataloader@2.2.3: + resolution: {integrity: sha512-y2krtASINtPFS1rSDjacrFgn1dcUuoREVabwlOGOe4SdxenREqwjwjElAdwvbGM7kgZz9a3KVicWR7vcz8rnzA==} + + deepmerge@4.3.1: + resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} + engines: {node: '>=0.10.0'} + + define-data-property@1.1.4: + resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} + engines: {node: '>= 0.4'} + + delayed-stream@1.0.0: + resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} + engines: {node: '>=0.4.0'} + + es-define-property@1.0.0: + resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} + engines: {node: '>= 0.4'} + + es-errors@1.3.0: + resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} + engines: {node: '>= 0.4'} + + ethereum-cryptography@2.1.3: + resolution: {integrity: sha512-BlwbIL7/P45W8FGW2r7LGuvoEZ+7PWsniMvQ4p5s2xCyw9tmaDlpfsN9HjAucbF+t/qpVHwZUisgfK24TCW8aA==} + + eventemitter3@5.0.1: + resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} + + eventsource@2.0.2: + resolution: {integrity: sha512-IzUmBGPR3+oUG9dUeXynyNmf91/3zUSJg1lCktzKw47OXuhco54U3r9B7O4XX+Rb1Itm9OZ2b0RkTs10bICOxA==} + engines: {node: '>=12.0.0'} + + follow-redirects@1.15.9: + resolution: {integrity: sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==} + engines: {node: '>=4.0'} + peerDependencies: + debug: '*' + peerDependenciesMeta: + debug: + optional: true + + for-each@0.3.3: + resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} + + form-data@4.0.1: + resolution: {integrity: sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==} + engines: {node: '>= 6'} + + function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + + get-intrinsic@1.2.4: + resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} + engines: {node: '>= 0.4'} + + gopd@1.0.1: + resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} + + has-property-descriptors@1.0.2: + resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} + + has-proto@1.0.3: + resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==} + engines: {node: '>= 0.4'} + + has-symbols@1.0.3: + resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} + engines: {node: '>= 0.4'} + + has-tostringtag@1.0.2: + resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} + engines: {node: '>= 0.4'} + + hasown@2.0.2: + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} + engines: {node: '>= 0.4'} + + inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + + is-arguments@1.1.1: + resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==} + engines: {node: '>= 0.4'} + + is-callable@1.2.7: + resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} + engines: {node: '>= 0.4'} + + is-generator-function@1.0.10: + resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==} + engines: {node: '>= 0.4'} + + is-typed-array@1.1.13: + resolution: {integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==} + engines: {node: '>= 0.4'} + + jssha@3.2.0: + resolution: {integrity: sha512-QuruyBENDWdN4tZwJbQq7/eAK85FqrI4oDbXjy5IBhYD+2pTJyBUWZe8ctWaCkrV0gy6AaelgOZZBMeswEa/6Q==} + + mime-db@1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} + engines: {node: '>= 0.6'} + + mime-types@2.1.35: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} + engines: {node: '>= 0.6'} + + node-fetch@2.7.0: + resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} + engines: {node: 4.x || >=6.0.0} + peerDependencies: + encoding: ^0.1.0 + peerDependenciesMeta: + encoding: + optional: true + + possible-typed-array-names@1.0.0: + resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==} + engines: {node: '>= 0.4'} + + proxy-from-env@1.1.0: + resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} + + set-function-length@1.2.2: + resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} + engines: {node: '>= 0.4'} + + symbol.inspect@1.0.1: + resolution: {integrity: sha512-YQSL4duoHmLhsTD1Pw8RW6TZ5MaTX5rXJnqacJottr2P2LZBF/Yvrc3ku4NUpMOm8aM0KOCqM+UAkMA5HWQCzQ==} + + teslabot@1.5.0: + resolution: {integrity: sha512-e2MmELhCgrgZEGo7PQu/6bmYG36IDH+YrBI1iGm6jovXkeDIGa3pZ2WSqRjzkuw2vt1EqfkZoV5GpXgqL8QJVg==} + + ton-center-v3@0.1.3: + resolution: {integrity: sha512-Q/lw3ZfKCQAllGGEpumB89RDGQD1hrv/4jvfdromdwVEhMC4Bv1jnCQq6dzGlqgA34WAIinaZf8qyfyjbGUIfQ==} + + tr46@0.0.3: + resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} + + tweetnacl-util@0.15.1: + resolution: {integrity: sha512-RKJBIj8lySrShN4w6i/BonWp2Z/uxwC3h4y7xsRrpP59ZboCd0GpEVsOnMDYLMmKBpYhb5TgHzZXy7wTfYFBRw==} + + tweetnacl@1.0.3: + resolution: {integrity: sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==} + + ua-parser-js@1.0.40: + resolution: {integrity: sha512-z6PJ8Lml+v3ichVojCiB8toQJBuwR42ySM4ezjXIqXK3M0HczmKQ3LF4rhU55PfD99KEEXQG6yb7iOMyvYuHew==} + hasBin: true + + undici-types@5.26.5: + resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} + + util@0.12.5: + resolution: {integrity: sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==} + + web3-errors@1.1.4: + resolution: {integrity: sha512-WahtszSqILez+83AxGecVroyZsMuuRT+KmQp4Si5P4Rnqbczno1k748PCrZTS1J4UCPmXMG2/Vt+0Bz2zwXkwQ==} + engines: {node: '>=14', npm: '>=6.12.0'} + + web3-types@1.5.0: + resolution: {integrity: sha512-geWuMIeegQ8AedKAO6wO4G4j1gyQ1F/AyKLMw2vud4bsfZayyzWJgCMDZtjYMm5uo2a7i8j1W3/4QFmzlSy5cw==} + engines: {node: '>=14', npm: '>=6.12.0'} + + web3-utils@4.2.1: + resolution: {integrity: sha512-Fk29BlEqD9Q9Cnw4pBkKw7czcXiRpsSco/BzEUl4ye0ZTSHANQFfjsfQmNm4t7uY11u6Ah+8F3tNjBeU4CA80A==} + engines: {node: '>=14', npm: '>=6.12.0'} + + web3-validator@2.0.4: + resolution: {integrity: sha512-qRxVePwdW+SByOmTpDZFWHIUAa7PswvxNszrOua6BoGqAhERo5oJZBN+EbWtK/+O+ApNxt5FR3nCPmiZldiOQA==} + engines: {node: '>=14', npm: '>=6.12.0'} + + webidl-conversions@3.0.1: + resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} + + whatwg-url@5.0.0: + resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} + + which-typed-array@1.1.15: + resolution: {integrity: sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==} + engines: {node: '>= 0.4'} + + ws@8.16.0: + resolution: {integrity: sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==} + 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 + + zod@3.22.4: + resolution: {integrity: sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==} + +snapshots: + + '@multiplechain/types@0.1.67': {} + + '@multiplechain/utils@0.1.21': + dependencies: + '@types/ws': 8.5.10 + bignumber.js: 9.1.2 + web3-utils: 4.2.1 + ws: 8.16.0 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + + '@noble/curves@1.3.0': + dependencies: + '@noble/hashes': 1.3.3 + + '@noble/hashes@1.3.3': {} + + '@scure/base@1.1.6': {} + + '@scure/bip32@1.3.3': + dependencies: + '@noble/curves': 1.3.0 + '@noble/hashes': 1.3.3 + '@scure/base': 1.1.6 + + '@scure/bip39@1.2.2': + dependencies: + '@noble/hashes': 1.3.3 + '@scure/base': 1.1.6 + + '@ton/core@0.59.1(@ton/crypto@3.3.0)': + dependencies: + '@ton/crypto': 3.3.0 + symbol.inspect: 1.0.1 + + '@ton/crypto-primitives@2.1.0': + dependencies: + jssha: 3.2.0 + + '@ton/crypto@3.3.0': + dependencies: + '@ton/crypto-primitives': 2.1.0 + jssha: 3.2.0 + tweetnacl: 1.0.3 + + '@ton/sandbox@0.21.0-beta.1(@ton/core@0.59.1(@ton/crypto@3.3.0))(@ton/crypto@3.3.0)': + dependencies: + '@ton/core': 0.59.1(@ton/crypto@3.3.0) + '@ton/crypto': 3.3.0 + + '@ton/ton@15.1.0(@ton/core@0.59.1(@ton/crypto@3.3.0))(@ton/crypto@3.3.0)': + dependencies: + '@ton/core': 0.59.1(@ton/crypto@3.3.0) + '@ton/crypto': 3.3.0 + axios: 1.7.9 + dataloader: 2.2.3 + symbol.inspect: 1.0.1 + teslabot: 1.5.0 + zod: 3.22.4 + transitivePeerDependencies: + - debug + + '@tonconnect/isomorphic-eventsource@0.0.2': + dependencies: + eventsource: 2.0.2 + + '@tonconnect/isomorphic-fetch@0.0.3': + dependencies: + node-fetch: 2.7.0 + transitivePeerDependencies: + - encoding + + '@tonconnect/protocol@2.2.6': + dependencies: + tweetnacl: 1.0.3 + tweetnacl-util: 0.15.1 + + '@tonconnect/sdk@3.0.6': + dependencies: + '@tonconnect/isomorphic-eventsource': 0.0.2 + '@tonconnect/isomorphic-fetch': 0.0.3 + '@tonconnect/protocol': 2.2.6 + transitivePeerDependencies: + - encoding + + '@tonconnect/ui@2.0.11': + dependencies: + '@tonconnect/sdk': 3.0.6 + classnames: 2.5.1 + csstype: 3.1.3 + deepmerge: 4.3.1 + ua-parser-js: 1.0.40 + transitivePeerDependencies: + - encoding + + '@types/node@20.12.7': + dependencies: + undici-types: 5.26.5 + + '@types/ws@8.5.10': + dependencies: + '@types/node': 20.12.7 + + asynckit@0.4.0: {} + + available-typed-arrays@1.0.7: + dependencies: + possible-typed-array-names: 1.0.0 + + axios@1.7.9: + dependencies: + follow-redirects: 1.15.9 + form-data: 4.0.1 + proxy-from-env: 1.1.0 + transitivePeerDependencies: + - debug + + bignumber.js@9.1.2: {} + + call-bind@1.0.7: + dependencies: + es-define-property: 1.0.0 + es-errors: 1.3.0 + function-bind: 1.1.2 + get-intrinsic: 1.2.4 + set-function-length: 1.2.2 + + classnames@2.5.1: {} + + combined-stream@1.0.8: + dependencies: + delayed-stream: 1.0.0 + + csstype@3.1.3: {} + + dataloader@2.2.3: {} + + deepmerge@4.3.1: {} + + define-data-property@1.1.4: + dependencies: + es-define-property: 1.0.0 + es-errors: 1.3.0 + gopd: 1.0.1 + + delayed-stream@1.0.0: {} + + es-define-property@1.0.0: + dependencies: + get-intrinsic: 1.2.4 + + es-errors@1.3.0: {} + + ethereum-cryptography@2.1.3: + dependencies: + '@noble/curves': 1.3.0 + '@noble/hashes': 1.3.3 + '@scure/bip32': 1.3.3 + '@scure/bip39': 1.2.2 + + eventemitter3@5.0.1: {} + + eventsource@2.0.2: {} + + follow-redirects@1.15.9: {} + + for-each@0.3.3: + dependencies: + is-callable: 1.2.7 + + form-data@4.0.1: + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + mime-types: 2.1.35 + + function-bind@1.1.2: {} + + get-intrinsic@1.2.4: + dependencies: + es-errors: 1.3.0 + function-bind: 1.1.2 + has-proto: 1.0.3 + has-symbols: 1.0.3 + hasown: 2.0.2 + + gopd@1.0.1: + dependencies: + get-intrinsic: 1.2.4 + + has-property-descriptors@1.0.2: + dependencies: + es-define-property: 1.0.0 + + has-proto@1.0.3: {} + + has-symbols@1.0.3: {} + + has-tostringtag@1.0.2: + dependencies: + has-symbols: 1.0.3 + + hasown@2.0.2: + dependencies: + function-bind: 1.1.2 + + inherits@2.0.4: {} + + is-arguments@1.1.1: + dependencies: + call-bind: 1.0.7 + has-tostringtag: 1.0.2 + + is-callable@1.2.7: {} + + is-generator-function@1.0.10: + dependencies: + has-tostringtag: 1.0.2 + + is-typed-array@1.1.13: + dependencies: + which-typed-array: 1.1.15 + + jssha@3.2.0: {} + + mime-db@1.52.0: {} + + mime-types@2.1.35: + dependencies: + mime-db: 1.52.0 + + node-fetch@2.7.0: + dependencies: + whatwg-url: 5.0.0 + + possible-typed-array-names@1.0.0: {} + + proxy-from-env@1.1.0: {} + + set-function-length@1.2.2: + dependencies: + define-data-property: 1.1.4 + es-errors: 1.3.0 + function-bind: 1.1.2 + get-intrinsic: 1.2.4 + gopd: 1.0.1 + has-property-descriptors: 1.0.2 + + symbol.inspect@1.0.1: {} + + teslabot@1.5.0: {} + + ton-center-v3@0.1.3: + dependencies: + axios: 1.7.9 + transitivePeerDependencies: + - debug + + tr46@0.0.3: {} + + tweetnacl-util@0.15.1: {} + + tweetnacl@1.0.3: {} + + ua-parser-js@1.0.40: {} + + undici-types@5.26.5: {} + + util@0.12.5: + dependencies: + inherits: 2.0.4 + is-arguments: 1.1.1 + is-generator-function: 1.0.10 + is-typed-array: 1.1.13 + which-typed-array: 1.1.15 + + web3-errors@1.1.4: + dependencies: + web3-types: 1.5.0 + + web3-types@1.5.0: {} + + web3-utils@4.2.1: + dependencies: + ethereum-cryptography: 2.1.3 + eventemitter3: 5.0.1 + web3-errors: 1.1.4 + web3-types: 1.5.0 + web3-validator: 2.0.4 + + web3-validator@2.0.4: + dependencies: + ethereum-cryptography: 2.1.3 + util: 0.12.5 + web3-errors: 1.1.4 + web3-types: 1.5.0 + zod: 3.22.4 + + webidl-conversions@3.0.1: {} + + whatwg-url@5.0.0: + dependencies: + tr46: 0.0.3 + webidl-conversions: 3.0.1 + + which-typed-array@1.1.15: + dependencies: + available-typed-arrays: 1.0.7 + call-bind: 1.0.7 + for-each: 0.3.3 + gopd: 1.0.1 + has-tostringtag: 1.0.2 + + ws@8.16.0: {} + + zod@3.22.4: {} diff --git a/packages/networks/ton/src/assets/Coin.ts b/packages/networks/ton/src/assets/Coin.ts new file mode 100644 index 0000000..e14752b --- /dev/null +++ b/packages/networks/ton/src/assets/Coin.ts @@ -0,0 +1,84 @@ +import { Provider } from '../services/Provider' +import { comment, fromNano, internal, toNano } from '@ton/core' +import { TransactionSigner } from '../services/TransactionSigner' +import { + ErrorTypeEnum, + type CoinInterface, + type TransferAmount, + type WalletAddress +} from '@multiplechain/types' + +export class Coin implements CoinInterface { + /** + * Blockchain network provider + */ + provider: Provider + + /** + * @param provider network provider + */ + constructor(provider?: Provider) { + this.provider = provider ?? Provider.instance + } + + /** + * @returns Coin name + */ + getName(): string { + return 'Toncoin' + } + + /** + * @returns Coin symbol + */ + getSymbol(): string { + return 'TON' + } + + /** + * @returns Decimal value of the coin + */ + getDecimals(): number { + return 9 + } + + /** + * @param owner Wallet address + * @returns Wallet balance as currency of COIN + */ + async getBalance(owner: WalletAddress): Promise { + const response = await this.provider.client3.getAddressInformation(owner) + return Number(fromNano(response.balance)) + } + + /** + * @param sender Sender wallet address + * @param receiver Receiver wallet address + * @param amount Amount of assets that will be transferred + * @param body Comment for the transaction + * @returns Transaction signer + */ + async transfer( + sender: WalletAddress, + receiver: WalletAddress, + amount: TransferAmount, + body?: string + ): Promise { + if (amount < 0) { + throw new Error(ErrorTypeEnum.INVALID_AMOUNT) + } + + if (amount > (await this.getBalance(sender))) { + throw new Error(ErrorTypeEnum.INSUFFICIENT_BALANCE) + } + + return new TransactionSigner( + internal({ + bounce: false, + to: receiver, + value: toNano(amount), + body: body ? comment(body) : undefined + }) + ) + } +} diff --git a/packages/networks/ton/src/assets/Contract.ts b/packages/networks/ton/src/assets/Contract.ts new file mode 100644 index 0000000..bd512de --- /dev/null +++ b/packages/networks/ton/src/assets/Contract.ts @@ -0,0 +1,103 @@ +import { Provider } from '../services/Provider' +import { Address, beginCell, type Cell, type Builder } from '@ton/core' +import type { ContractAddress, ContractInterface, WalletAddress } from '@multiplechain/types' + +export class Contract implements ContractInterface { + /** + * Contract address + */ + address: ContractAddress + + /** + * Cached static methods + */ + cachedMethods: Record = {} + + /** + * Blockchain network provider + */ + provider: Provider + + /** + * @param address Contract address + * @param provider Blockchain network provider + */ + constructor(address: ContractAddress, provider?: Provider) { + this.address = address + this.provider = provider ?? Provider.instance + } + + /** + * @returns Contract address + */ + getAddress(): ContractAddress { + return this.address + } + + /** + * @param _method Method name + * @param _args Method parameters + * @returns Method result + */ + async callMethod(_method: string, ..._args: unknown[]): Promise { + throw new Error('Method not implemented.') + } + + /** + * @param method Method name + * @param args Method parameters + * @returns Method result + */ + async callMethodWithCache(method: string, ...args: unknown[]): Promise { + if (this.cachedMethods[method] !== undefined) { + return this.cachedMethods[method] + } + + return (this.cachedMethods[method] = await this.callMethod(method, ...args)) + } + + /** + * @param _method Method name + * @param _args Sender wallet address + * @returns Encoded method data + */ + async getMethodData(_method: string, ..._args: unknown[]): Promise { + throw new Error('Method not implemented.') + } + + /** + * @param _method Method name + * @param _from Sender wallet address + * @param _args Method parameters + * @returns Encoded method data + */ + async createTransactionData( + _method: string, + _from: WalletAddress, + ..._args: any[] + ): Promise { + throw new Error('Method not implemented.') + } + + /** + * @param cell Cell builder + * @param receiver Receiver address + * @param sender Sender address + * @param body Message body + * @returns Cell builder + */ + endCell(cell: Builder, receiver: string, sender: string, body?: string): Cell { + cell.storeAddress(Address.parse(receiver)) + .storeAddress(Address.parse(sender)) + .storeBit(0) + .storeCoins(1n) + + if (body) { + cell.storeBit(1).storeRef(beginCell().storeUint(0, 32).storeStringTail(body).endCell()) + } else { + cell.storeBit(0) + } + + return cell.endCell() + } +} diff --git a/packages/networks/ton/src/assets/NFT.ts b/packages/networks/ton/src/assets/NFT.ts new file mode 100644 index 0000000..ebbf4f4 --- /dev/null +++ b/packages/networks/ton/src/assets/NFT.ts @@ -0,0 +1,205 @@ +import { Contract } from './Contract' +import { TransactionSigner } from '../services/TransactionSigner' +import { + ErrorTypeEnum, + type NftId, + type NftInterface, + type WalletAddress +} from '@multiplechain/types' +import axios from 'axios' +import { Address, beginCell, internal, toNano } from '@ton/core' +import { OpCodes } from '../browser' + +interface NftMetadata { + name: string + image: string + description: string +} + +type Content = Record & { + uri: string +} + +interface NftItem { + address: string + code_hash: string + collection: { + address: string + code_hash: string + collection_content: Content + data_hash: string + last_transaction_lt: string + next_item_index: string + owner_address: string + } + collection_address: string + content: Content + data_hash: string + index: string + init: boolean + last_transaction_lt: string + owner_address: string +} + +export class NFT extends Contract implements NftInterface { + metadata: NftMetadata + + /** + * @returns Token metadata + */ + async getMetadata(): Promise { + if (this.metadata) { + return this.metadata + } + + const result = await this.provider.client3.getNftCollections({ + collection_address: [this.address] + }) + + const collectionUri = result.nft_collections[0].collection_content.uri + + const { data } = (await axios.get(collectionUri)) as any + + return (this.metadata = { + name: data.name, + image: data.image, + description: data.description + }) + } + + /** + * @param nftId NFT ID + * @returns NFT item + */ + async getNftItem(nftId: NftId): Promise { + const result = await this.provider.client3.getNftItems({ + collection_address: this.address, + address: [String(nftId)] + }) + + return result.nft_items[0] + } + + /** + * @returns NFT name + */ + async getName(): Promise { + return (await this.getMetadata()).name + } + + /** + * @returns NFT symbol + */ + async getSymbol(): Promise { + return (await this.getMetadata()).description + } + + /** + * @param owner Wallet address + * @returns Wallet balance as currency of NFT + */ + async getBalance(owner: WalletAddress): Promise { + const result = await this.provider.client3.getNftItems({ + collection_address: this.address, + owner_address: [owner] + }) + return result.nft_items.length + } + + /** + * @param nftId NFT ID + * @returns Wallet address of the owner of the NFT + */ + async getOwner(nftId: NftId): Promise { + return Address.parse((await this.getNftItem(nftId)).owner_address).toString( + this.provider.walletStandard + ) + } + + /** + * @param nftId NFT ID + * @returns URI of the NFT + */ + async getTokenURI(nftId: NftId): Promise { + return (await this.getNftItem(nftId)).content.uri + } + + /** + * @param _nftId ID of the NFT that will be transferred + * @returns Wallet address of the approved spender + */ + async getApproved(_nftId: NftId): Promise { + throw new Error('Method not implemented.') + } + + /** + * @param sender Sender address + * @param receiver Receiver address + * @param nftId NFT ID + * @param body Comment for the transaction + * @returns Transaction signer + */ + async transfer( + sender: WalletAddress, + receiver: WalletAddress, + nftId: NftId, + body?: string + ): Promise { + // Check if tokens exist + const balance = await this.getBalance(sender) + + if (balance <= 0) { + throw new Error(ErrorTypeEnum.INSUFFICIENT_BALANCE) + } + + // Check ownership + const originalOwner = await this.getOwner(nftId) + if (originalOwner.toLowerCase() !== sender.toLowerCase()) { + throw new Error(ErrorTypeEnum.UNAUTHORIZED_ADDRESS) + } + + const builder = beginCell().storeUint(OpCodes.NFT_TRANSFER, 32).storeUint(0, 64) + + const cell = this.endCell(builder, receiver, sender, body) + + return new TransactionSigner( + internal({ + to: Address.parse(String(nftId)), + value: toNano('0.05'), + bounce: true, + body: cell + }) + ) + } + + /** + * @param _spender Spender address + * @param _owner Owner address + * @param _receiver Receiver address + * @param _nftId NFT ID + * @returns Transaction signer + */ + async transferFrom( + _spender: WalletAddress, + _owner: WalletAddress, + _receiver: WalletAddress, + _nftId: NftId + ): Promise { + throw new Error('Method not implemented.') + } + + /** + * Gives permission to the spender to spend owner's tokens + * @param _owner Address of owner of the tokens that will be used + * @param _spender Address of the spender that will use the tokens of owner + * @param _nftId ID of the NFT that will be transferred + * @returns Transaction signer + */ + async approve( + _owner: WalletAddress, + _spender: WalletAddress, + _nftId: NftId + ): Promise { + throw new Error('Method not implemented.') + } +} diff --git a/packages/networks/ton/src/assets/Token.ts b/packages/networks/ton/src/assets/Token.ts new file mode 100644 index 0000000..7818665 --- /dev/null +++ b/packages/networks/ton/src/assets/Token.ts @@ -0,0 +1,209 @@ +import { Contract } from './Contract' +import { math } from '@multiplechain/utils' +import { Address, beginCell, internal, toNano } from '@ton/core' +import { TransactionSigner } from '../services/TransactionSigner' +import { + ErrorTypeEnum, + type TokenInterface, + type TransferAmount, + type WalletAddress +} from '@multiplechain/types' +import { OpCodes } from '../browser' + +interface TokenMetadata { + name: string + symbol: string + decimals: number + description: string + image: string +} + +export class Token extends Contract implements TokenInterface { + metadata: TokenMetadata + + /** + * @returns Token metadata + */ + async getMetadata(): Promise { + if (this.metadata) { + return this.metadata + } + + const master = await this.getJettonMaster() + + return (this.metadata = master.jetton_content as any as TokenMetadata) + } + + /** + * @returns Token name + */ + async getName(): Promise { + return (await this.getMetadata()).name + } + + /** + * @returns Token symbol + */ + async getSymbol(): Promise { + return (await this.getMetadata()).symbol + } + + /** + * @returns Decimal value of the token + */ + async getDecimals(): Promise { + return Number((await this.getMetadata()).decimals) + } + + /** + * @param address Wallet address + * @returns Wallet address of the jetton + */ + async getJettonWalletAddress(address: string): Promise
    { + const userAddressCell = beginCell().storeAddress(Address.parse(address)).endCell() + + const response = await this.provider.client1.runMethod( + Address.parse(this.getAddress()), + 'get_wallet_address', + [{ type: 'slice', cell: userAddressCell }] + ) + + return response.stack.readAddress() + } + + async getJettonMaster(): Promise<{ + address: string + admin_address: string + code_hash: string + data_hash: string + jetton_content: Record + jetton_wallet_code_hash: string + last_transaction_lt: string + mintable: boolean + total_supply: string + }> { + const response = await this.provider.client3.getJettonMasters({ + address: [this.getAddress()] + }) + return response.jetton_masters[0] + } + + /** + * @param owner Wallet address + * @returns Wallet balance as currency of TOKEN + */ + async getBalance(owner: WalletAddress): Promise { + const response = await this.provider.client3.getJettonWallets({ + owner_address: [owner], + jetton_address: this.getAddress() + }) + const decimals = await this.getDecimals() + const balance = Number(response.jetton_wallets[0].balance) + return math.div(balance, math.pow(10, decimals), decimals) + } + + /** + * @returns Total supply of the token + */ + async getTotalSupply(): Promise { + const master = await this.getJettonMaster() + const decimals = await this.getDecimals() + const totalSupply = Number(master.total_supply) + return math.div(totalSupply, math.pow(10, decimals), decimals) + } + + /** + * @param _owner Address of owner of the tokens that is being used + * @param _spender Address of the spender that is using the tokens of owner + * @returns Amount of tokens that the spender is allowed to spend + */ + async getAllowance(_owner: WalletAddress, _spender: WalletAddress): Promise { + throw new Error('Method not implemented.') + } + + /** + * @param amount Amount of tokens that will be transferred + * @returns Formatted amount + */ + async formatAmount(amount: number): Promise { + const decimals = await this.getDecimals() + return math.mul(amount, math.pow(10, decimals), decimals) + } + + /** + * transfer() method is the main method for processing transfers for fungible assets (TOKEN, COIN) + * @param sender Sender wallet address + * @param receiver Receiver wallet address + * @param amount Amount of assets that will be transferred + * @param body Comment for the transaction + * @returns Transaction signer + */ + async transfer( + sender: WalletAddress, + receiver: WalletAddress, + amount: TransferAmount, + body?: string + ): Promise { + if (amount <= 0) { + throw new Error(ErrorTypeEnum.INVALID_AMOUNT) + } + + const balance = await this.getBalance(sender) + + if (amount > balance) { + throw new Error(ErrorTypeEnum.INSUFFICIENT_BALANCE) + } + + const [formattedAmount, senderJettonWallet] = await Promise.all([ + this.formatAmount(amount), + this.getJettonWalletAddress(sender) + ]) + + const builder = beginCell() + .storeUint(OpCodes.JETTON_TRANSFER, 32) + .storeUint(0, 64) + .storeCoins(formattedAmount) + + const cell = this.endCell(builder, receiver, sender, body) + + return new TransactionSigner( + internal({ + to: senderJettonWallet, + value: toNano('0.05'), + bounce: true, + body: cell + }) + ) + } + + /** + * @param _spender Address of the spender of transaction + * @param _owner Sender wallet address + * @param _receiver Receiver wallet address + * @param _amount Amount of tokens that will be transferred + * @returns Transaction signer + */ + async transferFrom( + _spender: WalletAddress, + _owner: WalletAddress, + _receiver: WalletAddress, + _amount: TransferAmount + ): Promise { + throw new Error('Method not implemented.') + } + + /** + * Gives permission to the spender to spend owner's tokens + * @param _owner Address of owner of the tokens that will be used + * @param _spender Address of the spender that will use the tokens of owner + * @param _amount Amount of the tokens that will be used + * @returns Transaction signer + */ + async approve( + _owner: WalletAddress, + _spender: WalletAddress, + _amount: TransferAmount + ): Promise { + throw new Error('Method not implemented.') + } +} diff --git a/packages/networks/ton/src/assets/index.ts b/packages/networks/ton/src/assets/index.ts new file mode 100644 index 0000000..737051b --- /dev/null +++ b/packages/networks/ton/src/assets/index.ts @@ -0,0 +1,4 @@ +export * from './NFT' +export * from './Coin' +export * from './Token' +export * from './Contract' diff --git a/packages/networks/ton/src/browser/Wallet.ts b/packages/networks/ton/src/browser/Wallet.ts new file mode 100644 index 0000000..6c89817 --- /dev/null +++ b/packages/networks/ton/src/browser/Wallet.ts @@ -0,0 +1,197 @@ +import { Provider } from '../services/Provider' +import { CHAIN, type TonConnectUI } from '@tonconnect/ui' +import type { TransactionSigner } from '../services/TransactionSigner' +import { Address, Cell, type CommonMessageInfoRelaxedInternal } from '@ton/core' +import type { + WalletInterface, + WalletAdapterInterface, + WalletPlatformEnum, + TransactionId, + SignedMessage, + WalletAddress, + ConnectConfig, + UnknownConfig +} from '@multiplechain/types' + +type WalletAdapter = WalletAdapterInterface + +const rejectMap = (error: any, reject: (a: any) => any): any => { + console.error('MultipleChain TON Connect Error:', error) + // const errorMessage = String(error.message ?? '') + return reject(error) +} + +export class Wallet implements WalletInterface { + /** + * WalletAdapter instance + */ + adapter: WalletAdapter + + /** + * Wallet provider is the instance of the wallet connection + */ + walletProvider: TonConnectUI + + /** + * Network provider is the instance of the blockchain network connection + */ + networkProvider: Provider + + /** + * @param adapter - WalletAdapter instance + * @param provider - Network provider + */ + constructor(adapter: WalletAdapter, provider?: Provider) { + this.adapter = adapter + this.networkProvider = provider ?? Provider.instance + } + + /** + * @returns wallet id + */ + getId(): string { + return this.adapter.id + } + + /** + * @returns wallet name + */ + getName(): string { + return this.adapter.name + } + + /** + * @returns wallet icon + */ + getIcon(): string { + return this.adapter.icon + } + + /** + * @returns wallet platforms + */ + getPlatforms(): WalletPlatformEnum[] { + return this.adapter.platforms + } + + /** + * @returns wallet download link + */ + getDownloadLink(): string | undefined { + return this.adapter.downloadLink + } + + /** + * @param url - URL to create a deep link + * @param config - Configuration for the deep link + * @returns deep link + */ + createDeepLink(url: string, config?: UnknownConfig): string | null { + if (this.adapter.createDeepLink === undefined) { + return null + } + + return this.adapter.createDeepLink(url, config) + } + + /** + * @param config - Configuration for the connection + * @returns wallet address + */ + async connect(config?: ConnectConfig): Promise { + return await new Promise((resolve, reject) => { + this.adapter + .connect(this.networkProvider, config) + .then(async (provider) => { + this.walletProvider = provider + resolve(await this.getAddress()) + }) + .catch((error) => { + rejectMap(error, reject) + }) + }) + } + + /** + * @returns wallet detected status + */ + async isDetected(): Promise { + return await this.adapter.isDetected() + } + + /** + * @returns wallet connected status + */ + async isConnected(): Promise { + return await this.adapter.isConnected() + } + + /** + * @returns wallet address + */ + async getAddress(): Promise { + const account = this.walletProvider.account + return Address.parse(this.getRawAddress()).toString({ + testOnly: account?.chain === CHAIN.TESTNET, + bounceable: false + }) + } + + getRawAddress(): string { + return this.walletProvider.account?.address ?? '' + } + + /** + * @param _message - Message to sign + * @returns signed message + */ + async signMessage(_message: string): Promise { + throw new Error('Method not implemented.') + } + + /** + * @param transactionSigner - Transaction signer + * @param modalAction - Modal action + * @param modalAction.modals - Modals + * @param modalAction.notifications - Notifications + * @returns transaction id + */ + async sendTransaction( + transactionSigner: TransactionSigner, + modalAction = { + modals: [], + notifications: [] + } + ): Promise { + const account = this.walletProvider.account + const data = transactionSigner.getRawData() + const info = data.info as CommonMessageInfoRelaxedInternal + const result = await this.walletProvider.sendTransaction( + { + validUntil: Math.floor(Date.now() / 1000) + 60, + from: this.getRawAddress(), + network: account?.chain, + messages: [ + { + address: info.dest.toString(), + amount: info.value.coins.toString(), + payload: data.body.toBoc().toString('base64') + } + ] + }, + modalAction + ) + + const messageHash = Cell.fromBase64(result.boc).hash().toString('hex') + + return await this.networkProvider.findTxHashByMessageHash(messageHash) + } + + /** + * @param eventName - Event name + * @param callback - Event callback + */ + on(eventName: string, callback: (...args: any[]) => void): void { + window.addEventListener('ton-connect-ui-' + eventName, callback) + } +} diff --git a/packages/networks/ton/src/browser/adapters/TonConnect.ts b/packages/networks/ton/src/browser/adapters/TonConnect.ts new file mode 100644 index 0000000..9a8e386 --- /dev/null +++ b/packages/networks/ton/src/browser/adapters/TonConnect.ts @@ -0,0 +1,78 @@ +import { TonConnectIcon } from './icons' +import { THEME, TonConnectUI } from '@tonconnect/ui' +import type { Provider } from '../../services/Provider' +import { ErrorTypeEnum, WalletPlatformEnum } from '@multiplechain/types' +import type { ConnectConfig, WalletAdapterInterface } from '@multiplechain/types' + +export type TonConnectConfig = ConnectConfig & { + manifestUrl?: string + buttonRootId?: string + themeMode?: THEME +} + +let ui: TonConnectUI +let connectedAction: (value: TonConnectUI | PromiseLike) => void + +const createUI = (config?: TonConnectConfig): TonConnectUI => { + if (ui) { + return ui + } + + ui = new TonConnectUI({ + uiPreferences: { + theme: config?.themeMode ?? THEME.LIGHT + }, + manifestUrl: config?.manifestUrl, + buttonRootId: config?.buttonRootId + }) + + ui.onStatusChange((status) => { + if (status && ui.connected) { + ui.closeModal() + connectedAction(ui) + } + }) + + return ui +} + +const TonConnect: WalletAdapterInterface = { + id: 'ton-connect', + name: 'TON Connect', + icon: TonConnectIcon, + platforms: [WalletPlatformEnum.UNIVERSAL], + isDetected: () => true, + isConnected: async () => { + return ui?.connected ?? false + }, + disconnect: async () => { + if (ui) { + await ui.disconnect() + } + }, + connect: async (provider?: Provider, _config?: ConnectConfig) => { + const config = _config as TonConnectConfig + if (provider === undefined) { + throw new Error(ErrorTypeEnum.PROVIDER_IS_REQUIRED) + } + + if (config === undefined) { + throw new Error(ErrorTypeEnum.CONFIG_IS_REQUIRED) + } + + if (!config.manifestUrl) { + throw new Error('Manifest URL is required') + } + + return await new Promise((resolve, reject) => { + try { + connectedAction = resolve + void createUI(config).openModal() + } catch (error) { + reject(error) + } + }) + } +} + +export default TonConnect diff --git a/packages/networks/ton/src/browser/adapters/icons.ts b/packages/networks/ton/src/browser/adapters/icons.ts new file mode 100644 index 0000000..550ade1 --- /dev/null +++ b/packages/networks/ton/src/browser/adapters/icons.ts @@ -0,0 +1,2 @@ +export const TonConnectIcon = + 'data:image/jpeg;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAYAAABw4pVUAAAAIGNIUk0AAHomAACAhAAA+gAAAIDoAAB1MAAA6mAAADqYAAAXcJy6UTwAAAAGYktHRAD/AP8A/6C9p5MAAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQfpAQ0OBghgihM5AAAQnElEQVR42u2dfXCV9ZXHP+e57wlvEQkYIi8iAQJux46IOi3oaLXq+Nap2x1ptUq3Ji3gdnZ2/K/WP3bG3Z0dRBwSbSmuHZhpLYPY1peKs2ptpcoOlgQCEQQaQBIISSDJfb9n//g9Ny/cJyE3ufc+F813Jsmd3Huf5/x+5zm/c37nnN85QrFh42mwUoB4gMuAOUAVsABlHjALoRyYApQCAcBjfzsJRIEeoBNoA1qAQ8BB0GbgGEg7ShJvCv55htsjHgRxmwAA6lvNX6UMWIhwPchSoBqoBCYB/jHQq0ActAs4AbIf9CPgI5QDiHSAQs10t2fCRYbUtaUpKAOWgt4BLEelCmFiAWhT4DzQjOr7wFsIHwMdgGvMKTxD6tsAvMBClPsQ7gWWACWuzEA/ekEbgdeAHagcQDRRaMYUhiEvtJnnEfWjsgx4BOEuYEbBaBg5FDgFvI7yMuguIIYl8Hh53m+e/8moawXBC9wIUgPchVHIxQ+lE3gDqAM+BE1Qm1+JyR9D6tvSrxaDrgF5EGM1XXpQziK8AroBlX2g5IsxuWdIfSuoAFoG8ijCGozp+kXAUZQNoJsR6UBzz5jcMsSYr4JyA/AUIrdiFPgXCQlU3wF5GmEXoNTkTrfkhiHrmyEwBaAEdBXwJMhMFyarkDiJ8gzoJqCXiZPhu8ExX3TsDKlrBRGAStCnQVZids9fBkRBtwBPAcdBGKu0jI0h9a32JfRakHXA8jFf89KDovwJ9F9A9iBj2/Fbo/5mfSukLIDbgC3ACr58zAAQhOWIbAG9jVSw3xU0qouNBnVpyeABhPXAlW7PSnFAW4AnQLYDo1q+smdI//7iQeA5zG57HP04BaxF9RUga7M4O4ak9xjCA8BGxpkxBPQUyo8Q2Z7tXmXkDKlrAxREbgP9Jcj4MjUstAXlMYSdKCNmysgYUt8GqiBcC7IFWOT2cC8RNIGuBPaM1CS+uJXVJxlU2qbtODNGjkXAOkyQzTaGhsfFGSIAUgLyNMa0HUdWkBX23JXYG+hhMTxD6lshaQGsAla6PbRLGCuBVViJ/kjpEBiaZfX2UmXiGK8AX3TfVL5xArNV+NAoeWd9MoyEKEAZyE8ZZ0YuMBP4KVA2nCnlzJA+sZJHgW+4PZIvEL4BPAoMqeAzGZL+oMoSlNX05zyNY+zwAKtBl4A4+rwyGSJiYuDCaoS5bo/gC4i5wGqTZ5C5dg3+T10biAIstx1k+YmBa9+vvj9FAxnwIn++63aUbwHvXxifvyC8qqD4gceRfDFDQaHEL8wosZjit/AUidM+qdAZS3GqN0VvzH5SRrB3GAWmIjzel2I0AP13q2uzY00sR3gVKMspCTYjppda/OO8IPfN8bNgsocJPsnTmEdHYndcae5K8urRGL85HKG1J2XmJfdEdqDcD7wP9JnB/RJi7ucBHiYfzAC+XuHnmWWlLJvuxVMsXLgAUwJQOcHDigof/zQvwJN/7eaDz+O2Ly+nNJdh5vrPmCRxIFOpL0K4M+ejVFhR4eelWyZy0wxf0TJjIDwi3DTDx0u3TOLrV/jzo+uEOxGqB+oqw5C6vl35fUBFTm+qSuVED/95QylXTbr0LOh5kzz8xw2lVEzw9El6DlEB3ItqX+CvX0JULkO5J6e3swfwSFWQ68t9eZy2/OKGci8r5wcGjSmHuMcYUOa6RocIgF4Hck2u7zY1aPGtuX7H91SV3gREk9kNUgGPwCS/YF2w/KVUORdTkpq91RrwCCVekAuuKSI8MDfAi00RuqKpXE/RNahch+gfAbwmLAsId5DrIwEK8yd7uHqy81L1+t9j/PfeMO2R7AapwOwJHjbdPJHy0ODJOxNRVr17nmPdyawZMjVo8a//EOLu2ZlpZfMne5gz0eJvkVSu9yclCHeg8kfqWvHam7QykOU5vY2NmaUWJd7MEbRHUvxsdy+7W+PZD1ChN67EU5mSFU8pTR0JDncmR3Xd8zHlhuk+pgYH2zsTfEJ5cPRZUxfBcowjt8Nr70gXYc7x5Rwey3mfkVIzeQhgZTlzepH1SDDaMVtrLmWYnCq896AK0YXAh5Y9sKWYc3w5x+lwimgy8//TQhYPzQ8iluRDUWYPVcQSHpofZFooUxK640prOOf6I41JINejYIF6QJfm5TYCh7qSnOxxHsj3qgJcN81bHP4sheumeflelXNacnNnkmPdOdcfA++/FMSygKmY0655wfGeFG8fjzm+d0WJh9VLQvi9LkuJKn6vsHpJiCtKPA5vK68ejdKVpfGRJapBL7dQmQ1SmZdbiKApZdOBCCd7ko4fuX+On1tn+tyVEoVbZ/q4f46zef5Je4Ktn0bz5dOy54qZCLMthCrypD/sG/F/p+NsPhhxfHuS32LtNSVMCljuSIkqkwI2Df5M3RFNKs81hDnRncwfMwwmo1RZoAvI53kOexA/b4rQ0J5w/MgtFT4emJsnf9HFoPDAXD+3VDh7EnaeiLHtSKwQef0BkAUWyNX5H7Vw7FySDY1hx71DwGOv36V58RcNDVWuKDV6LOAQlOmIpnh2b5jz0VS+pcOeJp1nUYijBGJ+fnM4yv+eiDt+5KuXe3m4Km/+okzY93i4KsBXL3c+Bvnrw1HePTmKjevoMcsC8n8aHkCErmiKdQ29dMUyrRVLhB8sCrFgSoHMYIUFU7z8YFEowx8GcOR8kucbwySSOY+DDIdyi0Ie4hd453icbZ9FHd++erKHmuogVr43i6pYllBTHXT0s6VU+fn+MPvOJgp8JkymWJgSRwW6nxC3rZaWbmcz+KH5QZaV51lKFJaVe3lovvOp2d2nE7yUtgoLG0wrtSj0iVmBv7Un+EVTBHWQgvKQxZprQgTztVlUJegV1lwTotzBRRJJKOsbwnzeUyBFPog2AhaqhQ3j2YPcdCDCniHM4HtmB7j9yjyZwQq3X+nnntnOz+GbLTF2HI26dXzVY7mS8iHCie4kGxrCjsGpCT5h7ZIQU4I53iyqMiVosXZJiAm+zHGfiaR4tiFMT6yginwQLAZkPBQUAtuOxNg5hJ9reYWPb18VyK2UKHz7qgDLh9gEbv00YjJM3MvBSFqYGoWFhwjnoynWNYTpcAiL+izhx4tDVE7M0WbRTrb48eIQPof4y6GuJBv3RUim3JMOhKiFKRjpFgG8dzLOrw87PxNfmerh+wtsS2gsTLG/+/0FQb4yNVNlJlWp3x/mYGehzdwM9FiY6p3uQIREUnm+McyRc0mHt4VVC4MsvmyMZrDC4su8rFoYzEhgANjVmuDlZlfM3AvRaWFKqboHgX1nE7zYFCblIAVzJnqorQ7hGe1mURWPJdRWh5gzMVM6ehPK+oZeTve6YOZmotXC1LV1D/YkvHQwwu7Tzmbwd64OcNOMUUqJwk0zvHznamcz9w/Hovz+WEG8uSNBiwV6yG0qEOFUT4r1DWEiicxZvzxoUbs4RCDbzaIqAa9QuzjE5Q4ZI21hY+aG4y4q8kH0cthC5SBuWVoDIbDjaJQ3W5zN4Ltn+VlRkWVkUWFFhY+7ZzlHAn/VHGFXq+uKPI0o6EELaAbOuU0NIvTElHV7w5xxiF1P8lvUVIcI+WRkTFEI+YSa6pBjJPBAR4K6/bbeKgbpgC6EZgvRY8Bxt6kBQODPp+Js/dQ53Ht7pZ/bKkfoUlG4rdLP7ZWZ0pFIKRv3hU0yXbFAOYHKMQvlDMp+t+kBQIRkStm4L8KnXZmTVeoTaquDlPgv/kSX+M1nSx1cJB+cirP1UJ6TFrLHfuCMhZCya54XBwQOdiao3x8m6aDAb67wc+csP8PlZycVvjnLz80VmdLRHVee3RumPVwUZu7AcX+MaMpeXPVjikGPQN8k9SncCxDyCo9Xh5gasBxXLgWmBmx945BT3Gc4FBEvgC67W0Pf+ZAmjHIvDohwujfFs3t76XUwg782w8e9s/2OObgphXtm+/najEwH4uc9SdY3hIkmikaR29BPgQOQZojSQfrwYbFA4A9/j/H7Y5kWecgrPLYwSJmDLinzG3eLk3S81Bw1m89i4oUZ7PsoHahgmZKmAvAW0Os2af00CmF7vXdKcp5ZajHBl2nOTvBZzCzN/H/j2QQv7g+bKGVRSQc9oG8hQG25LSGGvt1Ag9vUDYLArrYEv2rONINFnI85iGSegIqnjAPz6LkkxSce2giyO01XeskCOIvq79wmbxBEUFXq94Vp6kiM+jLvpl38dn5YkeF3KGfTTDAMSdduEtkBnHSbwgtxuCvJxn1hEqM4SXMuZrIPOyNFZuYanAReG1gN+8LFtgnTwKR4YIrhsPVQlA9OxbP++rbPYuw8UXRmbhpvmAZl/cRZg16pJlF9mXRjrGKBCGfD5knvjo9cSlq6kzzX2Eus6MxcwMzxy0Ays3AAwA/7Mkp3oVpcUgIgJkXn1aMjc0yrKr88EOGTM8Vo5gLwhik+o4N6Ww1esgzhMYQXgHa3KR5MmxBNmKzHoQ7/DMQn7Ul+caAowrIO0HbQF1AyYg2DGZLek6j8BeW3bpOdAYGP2+L9aZ5DIJZUNjT2cvx83g/ZjBa/Bf6CkNHawqGiHAAJ4HngiNuUD6bNEPdiU4SGs0ObwTtPxNj2WdEq8iMoz6OScIp+ZjKkpjxdaqMRw5QiChpA3+GfhjAxB5fv2UiKdXvDnCvUIZvskASeB2lEFGozexk4lyZI1yhX3Qz6ttujGAR7c7f1UISN+8P0DLC62iMp/n1PrzkUVHS8AOBtYLPTUjVweM6o7+vOeSNShIWUVQl6hOUVPq4v9xFLKX/6PM7HrQkSxeevgnQhZeVDwxDnc1LDU51ua2TpGuC/KLZmX3bZwIwRFR8zosC/kUhswOsdtkvC8NVUaqaDpQCbULa4PaoMiJg6KQN/io8ZAFtAN+H1XLRlxcXL26gC2ovoU6DvuT2ySw6q76E8hUovqYs/LCN7nNIVS+FaTEe28R4iI4I2ASvRkbfTG1kBqNrydMbgHmAtbqefXhpoAVmbDTMgmz6GtdPTy9dO0Ccw3cjG4YxTKE+YuSKrRpPZlUirTYd7ZTtGUsaZkgnTNg/dPlyfkKEwOpOkvq+DwnhjycFosVeP7aPtizu6IoI109OFM7ej+pitvL7saEJ5DK/HSMYomxSPzWjv6xT9JW9ObFKofoLiYnNiGKDoZQ+m8dVmiuFoQ+EQRdmM6ndR3QNjYwbk6mleoPCTNlBKgFWIPEmx+b5yj5PAM4BpcG9Ngx+OfTpzu7yYGvICLAN+hsitZPQoueSRAN4BngZ2ATrWpvYDkfv1Pq1XVMsQHgVZA8wpzFzlHUeBDcBmlI7hvLajRf4UcLrNt7IYWIPwIPlqoZR/nAV9BcOMfdk0G84W+beIDGO8wI1ADXAXhazRNTZ0mgwcqUP4ECWR7UYvWxTGRH2xFdvT6cfol0cwjJlRMBpGDsW4Pl4H/R/grwgxUgI/yn/xvcJPhpEYD8ZjfB9wL7CEXHdmyB69QCPwGrAD5QDkXyIuhHtPZ7qbqFAGXAf6TbtDQxUwsQC0KXAeaAZ9H3gTld2InbWZY2U9UhTHcpE2AEzbjIXA9cBSVKsRqcQUevaPgV4F4kAXJra9H/gI5SOEA6A2E/KjqLNBcTBkIF5oM+fSBA/KZSBzgPkIC4F5oLNQKUeYgqkXGaC/PWwS4ynoATpB21BpQTgEehBoBjkGtKOaxLLg8Wluj3gQ/h99ivDjY4hgoQAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAyNS0wMS0xM1QxNDowNjowOCswMDowMF3e2xsAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMjUtMDEtMTNUMTQ6MDY6MDgrMDA6MDAsg2OnAAAAKHRFWHRkYXRlOnRpbWVzdGFtcAAyMDI1LTAxLTEzVDE0OjA2OjA4KzAwOjAwe5ZCeAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAAASUVORK5CYII=' diff --git a/packages/networks/ton/src/browser/adapters/index.ts b/packages/networks/ton/src/browser/adapters/index.ts new file mode 100644 index 0000000..3e0f310 --- /dev/null +++ b/packages/networks/ton/src/browser/adapters/index.ts @@ -0,0 +1 @@ +export { default as TonConnect } from './TonConnect' diff --git a/packages/networks/ton/src/browser/index.ts b/packages/networks/ton/src/browser/index.ts new file mode 100644 index 0000000..28622c8 --- /dev/null +++ b/packages/networks/ton/src/browser/index.ts @@ -0,0 +1,28 @@ +import { Wallet } from './Wallet' +import * as adapterList from './adapters/index' +import type { Provider } from '../services/Provider' +import type { + WalletAdapterListType, + WalletAdapterInterface, + RegisterWalletAdapterType +} from '@multiplechain/types' + +const adapters: WalletAdapterListType = {} + +const registerAdapter: RegisterWalletAdapterType = ( + adapter: WalletAdapterInterface +): void => { + if (Object.values(adapters).find((a) => a.id === adapter.id) !== undefined) { + throw new Error(`Adapter with id ${adapter.id} already exists`) + } + + adapters[adapter.id] = adapter +} + +export * from '../index' + +export const browser = { + Wallet, + registerAdapter, + adapters: Object.assign(adapters, adapterList) +} diff --git a/packages/networks/ton/src/index.ts b/packages/networks/ton/src/index.ts new file mode 100644 index 0000000..612a2b2 --- /dev/null +++ b/packages/networks/ton/src/index.ts @@ -0,0 +1,8 @@ +export * from './services/Provider' + +export * as assets from './assets/index' +export * as models from './models/index' +export * as services from './services/index' + +export * as utils from '@multiplechain/utils' +export * as types from '@multiplechain/types' diff --git a/packages/networks/ton/src/models/CoinTransaction.ts b/packages/networks/ton/src/models/CoinTransaction.ts new file mode 100644 index 0000000..ee28bae --- /dev/null +++ b/packages/networks/ton/src/models/CoinTransaction.ts @@ -0,0 +1,71 @@ +import { Transaction } from './Transaction' +import { TransactionStatusEnum } from '@multiplechain/types' +import { + AssetDirectionEnum, + type CoinTransactionInterface, + type TransferAmount, + type WalletAddress +} from '@multiplechain/types' +import { Address, fromNano } from '@ton/core' + +export class CoinTransaction extends Transaction implements CoinTransactionInterface { + /** + * @returns Wallet address of the receiver of transaction + */ + async getReceiver(): Promise { + const data = await this.getData() + const source = (data?.action.details.destination ?? '') as string + return Address.parse(source).toString(this.provider.walletStandard) + } + + /** + * @returns Wallet address of the sender of transaction + */ + async getSender(): Promise { + const data = await this.getData() + const source = (data?.action.details.source ?? '') as string + return Address.parse(source).toString(this.provider.walletStandard) + } + + /** + * @returns Amount of coin that will be transferred + */ + async getAmount(): Promise { + const data = await this.getData() + return Number(fromNano(data?.action.details.value as string)) + } + + /** + * @param direction - Direction of the transaction (asset) + * @param address - Wallet address of the receiver or sender of the transaction, dependant on direction + * @param amount Amount of assets that will be transferred + * @returns Status of the transaction + */ + async verifyTransfer( + direction: AssetDirectionEnum, + address: WalletAddress, + amount: TransferAmount + ): Promise { + const status = await this.getStatus() + + if (status === TransactionStatusEnum.PENDING) { + return TransactionStatusEnum.PENDING + } + + if ((await this.getAmount()) !== amount) { + return TransactionStatusEnum.FAILED + } + + if (direction === AssetDirectionEnum.INCOMING) { + if ((await this.getReceiver()).toLowerCase() !== address.toLowerCase()) { + return TransactionStatusEnum.FAILED + } + } else { + if ((await this.getSender()).toLowerCase() !== address.toLowerCase()) { + return TransactionStatusEnum.FAILED + } + } + + return TransactionStatusEnum.CONFIRMED + } +} diff --git a/packages/networks/ton/src/models/ContractTransaction.ts b/packages/networks/ton/src/models/ContractTransaction.ts new file mode 100644 index 0000000..0acff37 --- /dev/null +++ b/packages/networks/ton/src/models/ContractTransaction.ts @@ -0,0 +1,14 @@ +import { Address } from '@ton/core' +import { Transaction } from './Transaction' +import type { ContractAddress, ContractTransactionInterface } from '@multiplechain/types' + +export class ContractTransaction extends Transaction implements ContractTransactionInterface { + /** + * @returns Contract address of the transaction + */ + async getAddress(): Promise { + const data = await this.getData() + const address = (data?.action.details.asset ?? '') as string + return Address.parse(address).toString(this.provider.contractStandard) + } +} diff --git a/packages/networks/ton/src/models/NftTransaction.ts b/packages/networks/ton/src/models/NftTransaction.ts new file mode 100644 index 0000000..3a735da --- /dev/null +++ b/packages/networks/ton/src/models/NftTransaction.ts @@ -0,0 +1,82 @@ +import { ContractTransaction } from './ContractTransaction' +import { TransactionStatusEnum } from '@multiplechain/types' +import { + type NftTransactionInterface, + AssetDirectionEnum, + type WalletAddress, + type NftId, + type ContractAddress +} from '@multiplechain/types' +import { Address } from '@ton/core' + +export class NftTransaction extends ContractTransaction implements NftTransactionInterface { + /** + * @returns Contract address of the transaction + */ + async getAddress(): Promise { + const data = await this.getData() + const address = (data?.action.details.nft_collection ?? '') as string + return Address.parse(address).toString(this.provider.contractStandard) + } + + /** + * @returns Receiver wallet address + */ + async getReceiver(): Promise { + const data = await this.getData() + const source = (data?.action.details.new_owner ?? '') as string + return Address.parse(source).toString(this.provider.walletStandard) + } + + /** + * @returns Wallet address of the sender of transaction + */ + async getSender(): Promise { + const data = await this.getData() + const source = (data?.action.details.old_owner ?? '') as string + return Address.parse(source).toString(this.provider.walletStandard) + } + + /** + * @returns NFT ID + */ + async getNftId(): Promise { + const data = await this.getData() + const address = (data?.action.details.nft_item ?? '') as string + return Address.parse(address).toString(this.provider.contractStandard) + } + + /** + * @param direction - Direction of the transaction (nft) + * @param address - Wallet address of the receiver or sender of the transaction, dependant on direction + * @param nftId ID of the NFT that will be transferred + * @returns Status of the transaction + */ + async verifyTransfer( + direction: AssetDirectionEnum, + address: WalletAddress, + nftId: NftId + ): Promise { + const status = await this.getStatus() + + if (status === TransactionStatusEnum.PENDING) { + return TransactionStatusEnum.PENDING + } + + if ((await this.getNftId()) !== nftId) { + return TransactionStatusEnum.FAILED + } + + if (direction === AssetDirectionEnum.INCOMING) { + if ((await this.getReceiver()).toLowerCase() !== address.toLowerCase()) { + return TransactionStatusEnum.FAILED + } + } else { + if ((await this.getSender()).toLowerCase() !== address.toLowerCase()) { + return TransactionStatusEnum.FAILED + } + } + + return TransactionStatusEnum.CONFIRMED + } +} diff --git a/packages/networks/ton/src/models/TokenTransaction.ts b/packages/networks/ton/src/models/TokenTransaction.ts new file mode 100644 index 0000000..b7ba2e9 --- /dev/null +++ b/packages/networks/ton/src/models/TokenTransaction.ts @@ -0,0 +1,105 @@ +import { ContractTransaction } from './ContractTransaction' +import { TransactionStatusEnum } from '@multiplechain/types' +import { + AssetDirectionEnum, + type ContractAddress, + type TokenTransactionInterface, + type TransferAmount, + type WalletAddress +} from '@multiplechain/types' +import { math } from '@multiplechain/utils' +import { Address } from '@ton/core' + +export class TokenTransaction extends ContractTransaction implements TokenTransactionInterface { + /** + * @returns Contract address of the transaction + */ + async getAddress(): Promise { + const data = await this.getData() + const address = (data?.action.details.asset ?? '') as string + return Address.parse(address).toString(this.provider.contractStandard) + } + + /** + * @returns Wallet address of the receiver of transaction + */ + async getReceiver(): Promise { + const data = await this.getData() + const source = (data?.action.details.receiver ?? '') as string + return Address.parse(source).toString(this.provider.walletStandard) + } + + /** + * @returns Wallet address of the sender of transaction + */ + async getSender(): Promise { + const data = await this.getData() + const destination = (data?.action.details.sender ?? '') as string + return Address.parse(destination).toString(this.provider.walletStandard) + } + + /** + * @returns Wallet address of the receiver of transaction + */ + async getReceiverJettonWallet(): Promise { + const data = await this.getData() + const source = (data?.action.details.receiver_jetton_wallet ?? '') as string + return Address.parse(source).toString(this.provider.contractStandard) + } + + /** + * @returns Wallet address of the sender of transaction + */ + async getSenderJettonWallet(): Promise { + const data = await this.getData() + const destination = (data?.action.details.sender_jetton_wallet ?? '') as string + return Address.parse(destination).toString(this.provider.contractStandard) + } + + /** + * @returns Amount of tokens that will be transferred + */ + async getAmount(): Promise { + const data = await this.getData() + const amount = Number(data?.action.details.amount ?? 0) + const tokenData = await this.provider.client3.getJettonMasters({ + address: [await this.getAddress()] + }) + const decimals = Number(tokenData.jetton_masters[0].jetton_content.decimals) + return math.div(amount, math.pow(10, decimals), decimals) + } + + /** + * @param direction - Direction of the transaction (token) + * @param address - Wallet address of the owner or spender of the transaction, dependant on direction + * @param amount Amount of tokens that will be approved + * @returns Status of the transaction + */ + async verifyTransfer( + direction: AssetDirectionEnum, + address: WalletAddress, + amount: TransferAmount + ): Promise { + const status = await this.getStatus() + + if (status === TransactionStatusEnum.PENDING) { + return TransactionStatusEnum.PENDING + } + + if ((await this.getAmount()) !== amount) { + return TransactionStatusEnum.FAILED + } + + if (direction === AssetDirectionEnum.INCOMING) { + if ((await this.getReceiver()).toLowerCase() !== address.toLowerCase()) { + return TransactionStatusEnum.FAILED + } + } else { + if ((await this.getSender()).toLowerCase() !== address.toLowerCase()) { + return TransactionStatusEnum.FAILED + } + } + + return TransactionStatusEnum.CONFIRMED + } +} diff --git a/packages/networks/ton/src/models/Transaction.ts b/packages/networks/ton/src/models/Transaction.ts new file mode 100644 index 0000000..fbba893 --- /dev/null +++ b/packages/networks/ton/src/models/Transaction.ts @@ -0,0 +1,238 @@ +import { Provider } from '../services/Provider' +import { ErrorTypeEnum, TransactionStatusEnum } from '@multiplechain/types' +import { + TransactionTypeEnum, + type BlockConfirmationCount, + type BlockNumber, + type BlockTimestamp, + type TransactionFee, + type TransactionId, + type TransactionInterface, + type WalletAddress +} from '@multiplechain/types' +import { Address, fromNano } from '@ton/core' +import type { Action, Transaction as TxData } from 'ton-center-v3/response' + +// custom tx data for each blockchain + +export interface TransactionData { + transaction: TxData + action: Action +} + +export class Transaction implements TransactionInterface { + /** + * Each transaction has its own unique ID defined by the user + */ + id: TransactionId + + /** + * Transaction data + */ + data: TransactionData | null = null + + /** + * Blockchain network provider + */ + provider: Provider + + /** + * @param id Transaction id + * @param provider Blockchain network provider + */ + constructor(id: TransactionId, provider?: Provider) { + this.id = id + this.provider = provider ?? Provider.instance + } + + /** + * @returns Transaction data + */ + async getData(): Promise { + try { + if (this.data !== null) { + return this.data + } + + const res = + (await this.provider.client3.getTransactions({ + hash: this.id + })) ?? undefined + + if (res === undefined) { + return null + } + + const transaction = res.transactions[0] + + if (transaction === undefined) { + return null + } + + const action = ( + await this.provider.client3.getActions({ trace_id: [transaction.trace_id] }) + ).actions[0] + + if (action === undefined) { + return null + } + + return (this.data = { transaction, action }) + } catch (error) { + console.error('MC TON TX getData', error) + throw new Error(ErrorTypeEnum.RPC_REQUEST_ERROR) + } + } + + /** + * @param ms - Milliseconds to wait for the transaction to be confirmed. Default is 4000ms + * @returns Status of the transaction + */ + async wait(ms: number = 4000): Promise { + return await new Promise((resolve, reject) => { + const check = async (): Promise => { + try { + const status = await this.getStatus() + if (status !== TransactionStatusEnum.PENDING) { + resolve(status) + return + } + setTimeout(check, ms) + } catch (error) { + console.error('MC TON TX wait', error) + reject(TransactionStatusEnum.FAILED) + } + } + void check() + }) + } + + /** + * @returns Transaction ID + */ + getId(): TransactionId { + return this.id + } + + /** + * @returns Type of the transaction + */ + async getType(): Promise { + const data = await this.getData() + + if (data === null) { + return TransactionTypeEnum.GENERAL + } + + const type = data.action.type + + if (type === 'ton_transfer') { + return TransactionTypeEnum.COIN + } + + if (type === 'jetton_transfer') { + return TransactionTypeEnum.TOKEN + } + + if (type === 'nft_transfer') { + return TransactionTypeEnum.NFT + } + + return TransactionTypeEnum.CONTRACT + } + + /** + * @returns Transaction URL + */ + getUrl(): string { + return this.provider.explorerUrl + this.id + } + + async getComment(): Promise { + const data = await this.getData() + return data?.action.details.comment as string + } + + /** + * @returns Wallet address of the sender of transaction + */ + async getSigner(): Promise { + const data = await this.getData() + const source = data?.transaction.account ?? '' + return Address.parse(source).toString(this.provider.walletStandard) + } + + /** + * @returns Transaction fee + */ + async getFee(): Promise { + const data = await this.getData() + return Number(fromNano(data?.transaction.total_fees ?? 0)) + } + + /** + * @returns Block number that transaction + */ + async getBlockNumber(): Promise { + const data = await this.getData() + return data?.transaction.block_ref.seqno ?? 0 + } + + /** + * @returns Workchain of the transaction + */ + async getWorkchain(): Promise { + const data = await this.getData() + return data?.transaction.block_ref.workchain ?? 0 + } + + /** + * @returns Shard of the transaction + */ + async getShard(): Promise { + const data = await this.getData() + return data?.transaction.block_ref.shard ?? '' + } + + /** + * @returns Block reference of the transaction + */ + async getBlockId(): Promise { + const data = await this.getData() + const ref = data?.transaction.block_ref + return `${ref?.workchain}:${ref?.shard}:${ref?.seqno}` + } + + /** + * @returns Block timestamp that transaction + */ + async getBlockTimestamp(): Promise { + const data = await this.getData() + return data?.transaction.now ?? 0 + } + + /** + * @returns Confirmation count of the block + */ + async getBlockConfirmationCount(): Promise { + const blockNumber = await this.getBlockNumber() + const { blocks } = await this.provider.client3.getBlocks({ + workchain: this.provider.workchain, + sort: 'desc' + }) + return blocks[0].seqno - blockNumber + } + + /** + * @returns Status of the transaction + */ + async getStatus(): Promise { + const data = await this.getData() + if (data?.transaction.prev_trans_hash) { + return data.action.success + ? TransactionStatusEnum.CONFIRMED + : TransactionStatusEnum.FAILED + } + return TransactionStatusEnum.PENDING + } +} diff --git a/packages/networks/ton/src/models/index.ts b/packages/networks/ton/src/models/index.ts new file mode 100644 index 0000000..354aa74 --- /dev/null +++ b/packages/networks/ton/src/models/index.ts @@ -0,0 +1,5 @@ +export * from './Transaction' +export * from './NftTransaction' +export * from './CoinTransaction' +export * from './TokenTransaction' +export * from './ContractTransaction' diff --git a/packages/networks/ton/src/services/Provider.ts b/packages/networks/ton/src/services/Provider.ts new file mode 100644 index 0000000..a5cdc2b --- /dev/null +++ b/packages/networks/ton/src/services/Provider.ts @@ -0,0 +1,365 @@ +import axios from 'axios' +import { + ErrorTypeEnum, + type NetworkConfigInterface, + type ProviderInterface +} from '@multiplechain/types' +import TonCenterV3 from 'ton-center-v3' +import { + TonClient, + WalletContractV3R1, + WalletContractV3R2, + WalletContractV4, + WalletContractV5Beta, + WalletContractV5R1 +} from '@ton/ton' + +export interface TonNetworkConfigInterface extends NetworkConfigInterface { + apiKey: string + workchain?: number + explorer?: 'tonviewer' | 'tonscan' +} + +export enum Network { + MAINNET = -239, + TESTNET = -3 +} + +export enum OpCodes { + JETTON_TRANSFER = 0xf8a7ea5, + NFT_TRANSFER = 0x5fcc3d14, + STONFI_SWAP = 0x25938561 +} + +export enum WalletVersion { + V3R1 = 0, + V3R2 = 1, + V4R1 = 2, + V4R2 = 3, + V5_BETA = 4, + V5R1 = 5 +} + +export type WalletContract = + | WalletContractV3R1 + | WalletContractV3R2 + | WalletContractV4 + | WalletContractV5Beta + | WalletContractV5R1 + +export class Provider implements ProviderInterface { + /** + * Network configuration of the provider + */ + network: TonNetworkConfigInterface + + client1: TonClient + + client3: TonCenterV3 + + mainnetEndpoint = 'https://toncenter.com/api/v2/jsonRPC' + + testnetEndpoint = 'https://testnet.toncenter.com/api/v2/jsonRPC' + + tonViewerMainnet = 'https://tonviewer.com/transaction/' + + tonViewerTestnet = 'https://testnet.tonviewer.com/transaction/' + + tonScanMainnet = 'https://tonscan.org/tx/' + + tonScanTestnet = 'https://testnet.tonscan.org/tx/' + + explorerUrl: string + + workchain: number + + net: Network + + public walletStandard: { + testOnly: boolean + bounceable: boolean + } + + public contractStandard: { + testOnly: boolean + bounceable: boolean + } + + /** + * Static instance of the provider + */ + private static _instance: Provider + + /** + * @param network - Network configuration of the provider + */ + constructor(network: TonNetworkConfigInterface) { + this.update(network) + } + + /** + * Get the static instance of the provider + * @returns Provider instance + */ + static get instance(): Provider { + if (Provider._instance === undefined) { + throw new Error(ErrorTypeEnum.PROVIDER_IS_NOT_INITIALIZED) + } + return Provider._instance + } + + /** + * Initialize the static instance of the provider + * @param network - Network configuration of the provider + */ + static initialize(network: TonNetworkConfigInterface): void { + if (Provider._instance !== undefined) { + throw new Error(ErrorTypeEnum.PROVIDER_IS_ALREADY_INITIALIZED) + } + Provider._instance = new Provider(network) + } + + /** + * Check RPC connection + * @param url - RPC URL + * @returns RPC connection status + */ + async checkRpcConnection(url?: string): Promise { + try { + await this.client1.getMasterchainInfo() + await this.client3.getMasterchainInfo() + + if (url) { + const response = await axios.get(url) + + if (response.status !== 200) { + return new Error(response.statusText + ': ' + JSON.stringify(response.data)) + } + } + + return true + } catch (error) { + console.log(error) + return error as Error + } + } + + /** + * Check WS connection + * @param url - Websocket URL + * @returns ws connection status + */ + async checkWsConnection(url?: string): Promise { + try { + if (url) { + const response = await axios.get(url) + + if (response.status !== 200) { + return new Error(response.statusText + ': ' + JSON.stringify(response.data)) + } + } + + return true + } catch (error) { + return error as Error + } + } + + /** + * Update network configuration of the provider + * @param network - Network configuration + */ + update(network: TonNetworkConfigInterface): void { + const apiKey = network.apiKey ?? '' + const testnet = network.testnet ?? false + const explorer = network.explorer ?? 'tonscan' + const endpoint = testnet ? this.testnetEndpoint : this.mainnetEndpoint + + if (!apiKey) { + throw new Error('TonCenter API key is required') + } + + this.client1 = new TonClient({ + endpoint, + apiKey + }) + + this.client3 = new TonCenterV3({ + apiKey, + testnet + }) + + if (explorer === 'tonscan') { + this.explorerUrl = testnet ? this.tonScanTestnet : this.tonScanMainnet + } else { + this.explorerUrl = testnet ? this.tonViewerTestnet : this.tonViewerMainnet + } + + this.walletStandard = { + testOnly: testnet, + bounceable: false + } + + this.contractStandard = { + testOnly: testnet, + bounceable: true + } + + this.network = network + + this.workchain = network.workchain ?? 0 + + this.net = testnet ? Network.TESTNET : Network.MAINNET + + Provider._instance = this + } + + /** + * Get the current network configuration is testnet or not + * @returns testnet status + */ + isTestnet(): boolean { + return this.network?.testnet ?? false + } + + /** + * Get the current network configuration is mainnet or not + * @param address - Wallet address + * @returns wallet version + */ + async findWalletVersion(address: string): Promise { + const result = await this.client3.getWalletInformation(address) + if (result.status === 'uninitialized') { + throw new Error('Wallet is not initialized') + } + + const type = result.wallet_type + + switch (type) { + case 'wallet v5 r1': + return WalletVersion.V5R1 + case 'wallet v5 beta': + return WalletVersion.V5_BETA + case 'wallet v4 r2': + return WalletVersion.V4R2 + case 'wallet v4 r1': + return WalletVersion.V4R1 + case 'wallet v3 r2': + return WalletVersion.V3R2 + case 'wallet v3 r1': + return WalletVersion.V3R1 + default: + throw new Error('Unknown wallet version') + } + } + + /** + * Get the current network configuration is mainnet or not + * @param publicKey - Public key of the wallet + * @param version - Wallet contract version + * @returns mainnet status + */ + createWalletByVersion(publicKey: Buffer, version: WalletVersion): WalletContract { + const workchain = this.workchain + + switch (version) { + case WalletVersion.V3R1: + return WalletContractV3R1.create({ workchain, publicKey }) + case WalletVersion.V3R2: + return WalletContractV3R2.create({ workchain, publicKey }) + case WalletVersion.V4R1: + throw new Error('Unsupported wallet contract version - v4R1') + case WalletVersion.V4R2: + return WalletContractV4.create({ workchain, publicKey }) + case WalletVersion.V5_BETA: + return WalletContractV5Beta.create({ + walletId: { + networkGlobalId: this.net + }, + publicKey + }) + case WalletVersion.V5R1: + return this.createWalletV5R1(publicKey) + } + } + + /** + * Create wallet contract for version 5R1 + * @param publicKey - Public key of the wallet + * @returns Wallet contract + */ + createWalletV5R1(publicKey: Buffer): WalletContractV5R1 { + return WalletContractV5R1.create({ + workchain: this.workchain, + walletId: { + networkGlobalId: this.net + }, + publicKey + }) + } + + /** + * Retry the function + * @param fn - Function that will be retried + * @param options - Retry options + * @param options.retries - Number of retries + * @param options.delay - Delay between retries + * @returns Function result + */ + async retry(fn: () => Promise, options: { retries: number; delay: number }): Promise { + let lastError: Error | undefined + for (let i = 0; i < options.retries; i++) { + try { + return await fn() + } catch (e) { + if (e instanceof Error) { + lastError = e + } + await new Promise((resolve) => setTimeout(resolve, options.delay)) + } + } + throw lastError ?? new Error('Unknown error') + } + + /** + * Find transaction hash by message hash= + * @param _hash - Message hash + * @returns Transaction hash + */ + async findTxHashByBodyHash(_hash: string): Promise { + return await this.retry( + async () => { + const { messages } = await this.client3.getMessages({ + body_hash: _hash + }) + if (messages[0]) { + return Buffer.from(messages[0].in_msg_tx_hash, 'base64').toString('hex') + } else { + throw new Error('Transaction not found') + } + }, + { retries: 30, delay: 1000 } + ) + } + + /** + * Find transaction hash by message hash + * @param _hash - Message hash + * @returns Transaction hash + */ + async findTxHashByMessageHash(_hash: string): Promise { + return await this.retry( + async () => { + const { messages } = await this.client3.getMessages({ + msg_hash: [_hash] + }) + if (messages[0]) { + return Buffer.from(messages[0].in_msg_tx_hash, 'base64').toString('hex') + } else { + throw new Error('Transaction not found') + } + }, + { retries: 30, delay: 1000 } + ) + } +} diff --git a/packages/networks/ton/src/services/TransactionListener.ts b/packages/networks/ton/src/services/TransactionListener.ts new file mode 100644 index 0000000..829bf4d --- /dev/null +++ b/packages/networks/ton/src/services/TransactionListener.ts @@ -0,0 +1,164 @@ +import { Provider } from './Provider' +import type { + Transaction, + TokenTransaction, + CoinTransaction, + ContractTransaction, + NftTransaction +} from '../models/index' +import type { + TransactionTypeEnum, + DynamicTransactionType, + TransactionListenerInterface, + DynamicTransactionListenerFilterType, + TransactionId +} from '@multiplechain/types' +import { TransactionListenerProcessIndex } from '@multiplechain/types' + +type TransactionListenerTriggerType = DynamicTransactionType< + T, + Transaction, + ContractTransaction, + CoinTransaction, + TokenTransaction, + NftTransaction +> + +type TransactionListenerCallbackType< + T extends TransactionTypeEnum, + Transaction = TransactionListenerTriggerType +> = (transaction: Transaction) => void + +export class TransactionListener< + T extends TransactionTypeEnum, + DTransaction extends TransactionListenerTriggerType, + CallBackType extends TransactionListenerCallbackType +> implements TransactionListenerInterface +{ + /** + * Transaction type + */ + type: T + + /** + * Provider + */ + provider: Provider + + /** + * Listener status + */ + status: boolean = false + + /** + * Transaction listener callback + */ + callbacks: CallBackType[] = [] + + /** + * Triggered transactions + */ + triggeredTransactions: TransactionId[] = [] + + /** + * Transaction listener filter + */ + filter?: DynamicTransactionListenerFilterType | Record + + /** + * @param type - Transaction type + * @param filter - Transaction listener filter + * @param provider - Provider + */ + constructor(type: T, filter?: DynamicTransactionListenerFilterType, provider?: Provider) { + this.type = type + this.filter = filter ?? {} + this.provider = provider ?? Provider.instance + throw new Error('This class is not implemented for TON') + } + + /** + * Close the listener + */ + stop(): void { + if (this.status) { + this.status = false + // stop the listener + } + } + + /** + * Start the listener + */ + start(): void { + if (!this.status) { + this.status = true + // @ts-expect-error allow dynamic access + this[TransactionListenerProcessIndex[this.type]]() + } + } + + /** + * Get the listener status + * @returns Listener status + */ + getStatus(): boolean { + return this.status + } + + /** + * Listen to the transaction events + * @param callback - Transaction listener callback + * @returns listener status + */ + async on(callback: CallBackType): Promise { + this.callbacks.push(callback) + return true + } + + /** + * Trigger the event when a transaction is detected + * @param transaction - Transaction data + */ + trigger(transaction: TransactionListenerTriggerType): void { + if (!this.triggeredTransactions.includes(transaction.id)) { + this.triggeredTransactions.push(transaction.id) + this.callbacks.forEach((callback) => { + callback(transaction as unknown as DTransaction) + }) + } + } + + /** + * General transaction process + */ + generalProcess(): void {} + + /** + * Contract transaction process + */ + contractProcess(): void { + // General transaction process + } + + /** + * Coin transaction process + */ + coinProcess(): void { + // Coin transaction process + } + + /** + * Token transaction process + */ + tokenProcess(): void { + // Token transaction process + } + + /** + * NFT transaction process + */ + nftProcess(): void { + // NFT transaction process + } +} diff --git a/packages/networks/ton/src/services/TransactionSigner.ts b/packages/networks/ton/src/services/TransactionSigner.ts new file mode 100644 index 0000000..dd836b9 --- /dev/null +++ b/packages/networks/ton/src/services/TransactionSigner.ts @@ -0,0 +1,83 @@ +import { Provider } from '../services/Provider' +import { mnemonicToPrivateKey } from '@ton/crypto' +import type { OpenedContract, WalletContractV5R1 } from '@ton/ton' +import { type Cell, SendMode, type MessageRelaxed } from '@ton/core' +import type { PrivateKey, TransactionId, TransactionSignerInterface } from '@multiplechain/types' + +export class TransactionSigner implements TransactionSignerInterface { + /** + * Transaction data from the blockchain network + */ + rawData: MessageRelaxed + + /** + * Signed transaction data + */ + signedData: Cell + + /** + * Blockchain network provider + */ + provider: Provider + + /** + * Wallet contract + */ + wallet: OpenedContract + + /** + * @param rawData - Transaction data + * @param provider - Blockchain network provider + */ + constructor(rawData: MessageRelaxed, provider?: Provider) { + this.rawData = rawData + this.provider = provider ?? Provider.instance + } + + /** + * Sign the transaction + * @param privateKey - Transaction data + * @returns Signed transaction data + */ + async sign(privateKey: PrivateKey): Promise { + const { publicKey, secretKey } = await mnemonicToPrivateKey(privateKey.split(' ')) + const contract = this.provider.createWalletV5R1(publicKey) + this.wallet = this.provider.client1.open(contract) + const seqno = await this.wallet.getSeqno() + this.signedData = this.wallet.createTransfer({ + seqno, + secretKey, + messages: [this.rawData], + sendMode: SendMode.PAY_GAS_SEPARATELY + }) + return this + } + + /** + * Send the transaction to the blockchain network + * @returns Transaction ID + */ + async send(): Promise { + try { + await this.wallet.send(this.signedData) + return await this.provider.findTxHashByBodyHash(this.signedData.hash().toString('hex')) + } catch (error) { + console.error(error) + return '' + } + } + + /** + * @returns raw transaction data + */ + getRawData(): MessageRelaxed { + return this.rawData + } + + /** + * @returns signed transaction data + */ + getSignedData(): Cell { + return this.signedData + } +} diff --git a/packages/networks/ton/src/services/index.ts b/packages/networks/ton/src/services/index.ts new file mode 100644 index 0000000..0b05d2e --- /dev/null +++ b/packages/networks/ton/src/services/index.ts @@ -0,0 +1,2 @@ +export * from './TransactionSigner' +export * from './TransactionListener' diff --git a/packages/networks/ton/tests/assets.spec.ts b/packages/networks/ton/tests/assets.spec.ts new file mode 100644 index 0000000..23fe402 --- /dev/null +++ b/packages/networks/ton/tests/assets.spec.ts @@ -0,0 +1,267 @@ +import { describe, it, expect, assert } from 'vitest' + +import { NFT } from '../src/assets/NFT' +import { Coin } from '../src/assets/Coin' +import { Token } from '../src/assets/Token' +import { math } from '@multiplechain/utils' +import { Transaction } from '../src/models/Transaction' +import { TransactionStatusEnum, type TransactionId } from '@multiplechain/types' +import { TransactionSigner } from '../src/services/TransactionSigner' +import { Cell } from '@ton/core' + +const coinBalanceTestAmount = Number(process.env.TON_COIN_BALANCE_TEST_AMOUNT) +const tokenBalanceTestAmount = Number(process.env.TON_TOKEN_BALANCE_TEST_AMOUNT) +const nftBalanceTestAmount = Number(process.env.TON_NFT_BALANCE_TEST_AMOUNT) +const transferTestAmount = Number(process.env.TON_TRANSFER_TEST_AMOUNT) +const tokenTransferTestAmount = Number(process.env.TON_TOKEN_TRANSFER_TEST_AMOUNT) +// const tokenApproveTestAmount = Number(process.env.TON_TOKEN_APPROVE_TEST_AMOUNT) +const nftTransferId = String(process.env.TON_NFT_TRANSFER_ID) +const nftBalanceId = String(process.env.TON_NFT_BALANCE_TEST_ID) + +const coinTransferTestIsActive = Boolean(process.env.TON_COIN_TRANSFER_TEST_IS_ACTIVE !== 'false') +const tokenTransferTestIsActive = Boolean(process.env.TON_TOKEN_TRANSFER_TEST_IS_ACTIVE !== 'false') +// const tokenApproveTestIsActive = Boolean(process.env.TON_TOKEN_APPROVE_TEST_IS_ACTIVE !== 'false') +const nftTransactionTestIsActive = Boolean( + process.env.TON_NFT_TRANSACTION_TEST_IS_ACTIVE !== 'false' +) +// const tokenTransferFromTestIsActive = Boolean( +// process.env.TON_TOKEN_TRANSFER_FROM_TEST_IS_ACTIVE !== 'false' +// ) + +const balanceTestAddress = String(process.env.TON_BALANCE_TEST_ADDRESS) +const senderPrivateKey = String(process.env.TON_SENDER_SEED_PHRASE) +// const receiverPrivateKey = String(process.env.TON_RECEIVER_SEED_PHRASE) +const senderTestAddress = String(process.env.TON_SENDER_ADDRESS) +const receiverTestAddress = String(process.env.TON_RECEIVER_ADDRESS) +const tokenTestAddress = String(process.env.TON_TOKEN_TEST_ADDRESS) +const nftCollection = String(process.env.TON_NFT_COLLECTION) + +const waitForSec = async (seconds: number): Promise => { + return await new Promise((resolve) => setTimeout(resolve, seconds * 1000)) +} + +const checkSigner = async (signer: TransactionSigner, privateKey?: string): Promise => { + expect(signer).toBeInstanceOf(TransactionSigner) + + const rawData = signer.getRawData() + + assert.isObject(rawData) + + await signer.sign(privateKey ?? senderPrivateKey) + + assert.instanceOf(signer.getSignedData(), Cell) +} + +const checkTx = async (transactionId: TransactionId): Promise => { + const transaction = new Transaction(transactionId) + const status = await transaction.wait(10000) + expect(status).toBe(TransactionStatusEnum.CONFIRMED) + return transaction +} + +describe('Coin', () => { + const coin = new Coin() + it('Name and symbol', () => { + expect(coin.getName()).toBe('Toncoin') + expect(coin.getSymbol()).toBe('TON') + }) + + it('Decimals', () => { + expect(coin.getDecimals()).toBe(9) + }) + + it('Balance', async () => { + await waitForSec(1) + const balance = await coin.getBalance(balanceTestAddress) + expect(balance).toBe(coinBalanceTestAmount) + }) + + it('Transfer', async () => { + await waitForSec(1) + const signer = await coin.transfer( + senderTestAddress, + receiverTestAddress, + transferTestAmount + ) + + await checkSigner(signer) + + if (!coinTransferTestIsActive) return + + await checkTx(await signer.send()) + }) +}) + +describe('Token', () => { + const token = new Token(tokenTestAddress) + + it('Name and symbol', async () => { + await waitForSec(1) + expect(await token.getName()).toBe('TON Test Token') + expect(await token.getSymbol()).toBe('TTT') + }) + + it('Decimals', async () => { + expect(await token.getDecimals()).toBe(9) + }) + + it('Balance', async () => { + await waitForSec(1) + const balance = await token.getBalance(balanceTestAddress) + expect(balance).toBe(tokenBalanceTestAmount) + }) + + it('Total supply', async () => { + await waitForSec(1) + const totalSupply = await token.getTotalSupply() + expect(totalSupply).toBe(100000000) + }) + + it('Transfer', async () => { + await waitForSec(1) + const signer = await token.transfer( + senderTestAddress, + receiverTestAddress, + tokenTransferTestAmount + ) + + await checkSigner(signer) + + if (!tokenTransferTestIsActive) return + + await waitForSec(5) + + const beforeBalance = await token.getBalance(receiverTestAddress) + + await checkTx(await signer.send()) + + const afterBalance = await token.getBalance(receiverTestAddress) + expect(afterBalance).toBe(math.add(beforeBalance, tokenTransferTestAmount)) + }) + + // it('Approve and Allowance', async () => { + // const signer = await token.approve( + // senderTestAddress, + // receiverTestAddress, + // tokenApproveTestAmount + // ) + + // await checkSigner(signer) + + // if (!tokenApproveTestIsActive) return + + // await waitForSec(5) + + // await checkTx(await signer.send()) + + // expect(await token.getAllowance(senderTestAddress, receiverTestAddress)).toBe( + // tokenApproveTestAmount + // ) + // }) + + // it('Transfer from', async () => { + // const signer = await token.transferFrom( + // receiverTestAddress, + // senderTestAddress, + // receiverTestAddress, + // 2 + // ) + + // await checkSigner(signer, receiverPrivateKey) + + // if (!tokenTransferFromTestIsActive) return + + // await waitForSec(5) + + // const beforeBalance = await token.getBalance(receiverTestAddress) + + // await checkTx(await signer.send()) + + // const afterBalance = await token.getBalance(receiverTestAddress) + // expect(afterBalance).toBe(math.add(beforeBalance, 2)) + // }) +}) + +describe('Nft', () => { + const nft = new NFT(nftCollection) + + it('Name and symbol', async () => { + await waitForSec(1) + expect(await nft.getName()).toBe('NFT Test on TON') + expect(await nft.getSymbol()).toBe('NFT Test on TON') + }) + + it('Balance', async () => { + await waitForSec(1) + const balance = await nft.getBalance(balanceTestAddress) + expect(balance).toBe(nftBalanceTestAmount) + }) + + it('Owner', async () => { + await waitForSec(1) + expect(await nft.getOwner(nftBalanceId)).toBe(balanceTestAddress) + }) + + it('Token URI', async () => { + await waitForSec(1) + expect(await nft.getTokenURI(nftBalanceId)).toBe( + 'https://s.getgems.io/nft/c/677e3821c9af9379ef55f729/0/meta.json' + ) + }) + + // it('Approved', async () => { + // expect(await nft.getApproved(nftBalanceId)).toBe(null) + // }) + + it('Transfer', async () => { + await waitForSec(1) + const signer = await nft.transfer(senderTestAddress, receiverTestAddress, nftTransferId) + + await checkSigner(signer) + + if (!nftTransactionTestIsActive) return + + await waitForSec(5) + + await checkTx(await signer.send()) + + expect(await nft.getOwner(nftTransferId)).toBe(receiverTestAddress) + }) + + // it('Approve', async () => { + // const customOwner = nftTransactionTestIsActive ? receiverTestAddress : senderTestAddress + // const customSpender = nftTransactionTestIsActive ? senderTestAddress : receiverTestAddress + // const customPrivateKey = nftTransactionTestIsActive ? receiverPrivateKey : senderPrivateKey + + // const signer = await nft.approve(customOwner, customSpender, nftTransferId) + + // await checkSigner(signer, customPrivateKey) + + // if (!nftTransactionTestIsActive) return + + // await waitForSec(5) + + // await checkTx(await signer.send()) + + // expect(await nft.getApproved(nftTransferId)).toBe(senderTestAddress) + // }) + + // it('Transfer from', async () => { + // if (!nftTransactionTestIsActive) return + + // await waitForSec(5) + + // const signer = await nft.transferFrom( + // senderTestAddress, + // receiverTestAddress, + // senderTestAddress, + // nftTransferId + // ) + + // await checkSigner(signer) + + // await checkTx(await signer.send()) + + // expect(await nft.getOwner(nftTransferId)).toBe(senderTestAddress) + // }) +}) diff --git a/packages/networks/ton/tests/models.spec.ts b/packages/networks/ton/tests/models.spec.ts new file mode 100644 index 0000000..c414d80 --- /dev/null +++ b/packages/networks/ton/tests/models.spec.ts @@ -0,0 +1,166 @@ +import { describe, it, expect } from 'vitest' + +import { Transaction } from '../src/models/Transaction' +import { NftTransaction } from '../src/models/NftTransaction' +import { CoinTransaction } from '../src/models/CoinTransaction' +import { TokenTransaction } from '../src/models/TokenTransaction' +import { AssetDirectionEnum, TransactionStatusEnum } from '@multiplechain/types' + +const nftId = String(process.env.TON_NFT_ID) +const tokenAmount = Number(process.env.TON_TOKEN_AMOUNT) +const coinAmount = Number(process.env.TON_COIN_AMOUNT) +const nftCollection = String(process.env.TON_NFT_COLLECTION) + +const tonTransferTx = String(process.env.TON_TRANSFER_TX) +const tokenTransferTx = String(process.env.TON_TOKEN_TRANSFER_TX) +const nftTransferTx = String(process.env.TON_NFT_TRANSFER_TX) + +const sender = String(process.env.TON_SENDER_ADDRESS) +const receiver = String(process.env.TON_RECEIVER_ADDRESS) + +const waitForSec = async (seconds: number): Promise => { + return await new Promise((resolve) => setTimeout(resolve, seconds * 1000)) +} + +describe('Transaction', () => { + const tx = new Transaction(tonTransferTx) + it('Id', async () => { + expect(tx.getId()).toBe(tonTransferTx) + }) + + it('Data', async () => { + await waitForSec(1) + expect(await tx.getData()).toBeTypeOf('object') + }) + + it('Wait', async () => { + expect(await tx.wait()).toBe(TransactionStatusEnum.CONFIRMED) + }) + + it('URL', async () => { + expect(tx.getUrl()).toBe( + 'https://testnet.tonscan.org/tx/6f97ca02d8f20151210ca2bef32340804214e4f74eebf6a9edf13b727ac2527e' + ) + }) + + it('Sender', async () => { + expect(await tx.getSigner()).toBe(sender) + }) + + it('Fee', async () => { + expect(await tx.getFee()).toBe(0.002830538) + }) + + it('Block Number', async () => { + expect(await tx.getBlockNumber()).toBe(28607062) + }) + + it('Block ID', async () => { + expect(await tx.getBlockId()).toBe('0:6000000000000000:28607062') + }) + + it('Block Timestamp', async () => { + expect(await tx.getBlockTimestamp()).toBe(1736323418) + }) + + it('Block Confirmation Count', async () => { + expect(await tx.getBlockConfirmationCount()).toBeGreaterThan(77696) + }) + + it('Status', async () => { + expect(await tx.getStatus()).toBe(TransactionStatusEnum.CONFIRMED) + }) +}) + +describe('Coin Transaction', () => { + const tx = new CoinTransaction(tonTransferTx) + + it('Receiver', async () => { + await waitForSec(1) + expect((await tx.getReceiver()).toLowerCase()).toBe(receiver.toLowerCase()) + }) + + it('Amount', async () => { + expect(await tx.getAmount()).toBe(coinAmount) + }) + + it('Verify Transfer', async () => { + expect(await tx.verifyTransfer(AssetDirectionEnum.INCOMING, receiver, coinAmount)).toBe( + TransactionStatusEnum.CONFIRMED + ) + + expect(await tx.verifyTransfer(AssetDirectionEnum.OUTGOING, sender, coinAmount)).toBe( + TransactionStatusEnum.CONFIRMED + ) + + expect(await tx.verifyTransfer(AssetDirectionEnum.OUTGOING, receiver, coinAmount)).toBe( + TransactionStatusEnum.FAILED + ) + }) +}) + +describe('Token Transaction', () => { + const tx = new TokenTransaction(tokenTransferTx) + + it('Receiver', async () => { + await waitForSec(1) + expect((await tx.getReceiver()).toLowerCase()).toBe(receiver.toLowerCase()) + }) + + it('Amount', async () => { + expect(await tx.getAmount()).toBe(tokenAmount) + }) + + it('Verify Transfer', async () => { + expect(await tx.verifyTransfer(AssetDirectionEnum.INCOMING, receiver, tokenAmount)).toBe( + TransactionStatusEnum.CONFIRMED + ) + + expect(await tx.verifyTransfer(AssetDirectionEnum.OUTGOING, sender, tokenAmount)).toBe( + TransactionStatusEnum.CONFIRMED + ) + + expect(await tx.verifyTransfer(AssetDirectionEnum.OUTGOING, receiver, tokenAmount)).toBe( + TransactionStatusEnum.FAILED + ) + }) +}) + +describe('NFT Transaction', () => { + const tx = new NftTransaction(nftTransferTx) + + it('Receiver', async () => { + await waitForSec(1) + expect((await tx.getReceiver()).toLowerCase()).toBe(receiver.toLowerCase()) + }) + + it('Address', async () => { + expect((await tx.getAddress()).toLowerCase()).toBe(nftCollection.toLowerCase()) + }) + + it('Signer', async () => { + expect((await tx.getSigner()).toLowerCase()).toBe(sender.toLowerCase()) + }) + + it('Sender', async () => { + expect((await tx.getSender()).toLowerCase()).toBe(sender.toLowerCase()) + }) + + it('NFT ID', async () => { + expect(await tx.getNftId()).toBe(nftId) + }) + + it('Verify Transfer', async () => { + expect(await tx.verifyTransfer(AssetDirectionEnum.INCOMING, receiver, nftId)).toBe( + TransactionStatusEnum.CONFIRMED + ) + + expect(await tx.verifyTransfer(AssetDirectionEnum.OUTGOING, sender, nftId)).toBe( + TransactionStatusEnum.CONFIRMED + ) + + expect(await tx.verifyTransfer(AssetDirectionEnum.OUTGOING, receiver, nftId)).toBe( + TransactionStatusEnum.FAILED + ) + }) +}) diff --git a/packages/networks/ton/tests/services.spec.ts b/packages/networks/ton/tests/services.spec.ts new file mode 100644 index 0000000..dd9e14e --- /dev/null +++ b/packages/networks/ton/tests/services.spec.ts @@ -0,0 +1,216 @@ +import { describe, it, expect } from 'vitest' + +import { provider } from './setup' +import { Provider } from '../src/services/Provider' + +import { NFT } from '../src/assets/NFT' +import { Coin } from '../src/assets/Coin' +import { Token } from '../src/assets/Token' +import { sleep } from '@multiplechain/utils' +import { TransactionTypeEnum } from '@multiplechain/types' +import { Transaction } from '../src/models/Transaction' +import { NftTransaction } from '../src/models/NftTransaction' +import { CoinTransaction } from '../src/models/CoinTransaction' +import { TokenTransaction } from '../src/models/TokenTransaction' +import { ContractTransaction } from '../src/models/ContractTransaction' +import { TransactionListener } from '../src/services/TransactionListener' + +const senderPrivateKey = String(process.env.TON_SENDER_PRIVATE_KEY) +const receiverPrivateKey = String(process.env.TON_RECEIVER_PRIVATE_KEY) +const senderTestAddress = String(process.env.TON_SENDER_TEST_ADDRESS) +const receiverTestAddress = String(process.env.TON_RECEIVER_TEST_ADDRESS) +const tokenTestAddress = String(process.env.TON_TOKEN_TEST_ADDRESS) +const tokenProgram = String(process.env.TON_TOKEN_PROGRAM) +const nftTestAddress = String(process.env.TON_NFT_TEST_ADDRESS) +const nftTransferId = String(process.env.TON_NFT_TRANSFER_ID) + +const transactionListenerTestIsActive = Boolean( + process.env.TON_TRANSACTION_LISTENER_TEST_IS_ACTIVE !== 'false' +) + +const waitSecondsBeforeThanNewTx = async (seconds: number): Promise => { + return await new Promise((resolve) => setTimeout(resolve, seconds * 1000)) +} + +describe('Provider', () => { + it('isTestnet', () => { + expect(provider.isTestnet()).toBe(true) + }) + + it('instance', () => { + expect(Provider.instance).toBe(provider) + }) + + it('checkRpcConnection', async () => { + expect(await provider.checkRpcConnection()).toBe(true) + }) + + it('checkWsConnection', async () => { + expect(await provider.checkWsConnection()).toBe(true) + }) +}) + +describe('Transaction Listener', () => { + if (!transactionListenerTestIsActive) { + it('No test is active', () => { + expect(true).toBe(true) + }) + return + } + + it('General', async () => { + const listener = new TransactionListener(TransactionTypeEnum.GENERAL, { + signer: senderTestAddress + }) + + const signer = await new Coin().transfer(senderTestAddress, receiverTestAddress, 0.0001) + + const waitListenerEvent = async (): Promise => { + return await new Promise((resolve, reject) => { + void listener + .on((transaction) => { + listener.stop() + resolve(transaction) + }) + .then(async () => { + await sleep(2000) + void (await signer.sign(senderPrivateKey)).send() + }) + .catch(reject) + }) + } + + expect(await waitListenerEvent()).toBeInstanceOf(Transaction) + }) + + it('Contract', async () => { + await waitSecondsBeforeThanNewTx(10) + + const listener = new TransactionListener(TransactionTypeEnum.CONTRACT, { + signer: senderTestAddress, + address: tokenProgram + }) + + const signer = await new Token(tokenTestAddress).transfer( + senderTestAddress, + receiverTestAddress, + 0.01 + ) + + const waitListenerEvent = async (): Promise => { + return await new Promise((resolve, reject) => { + void listener + .on((transaction) => { + listener.stop() + resolve(transaction) + }) + .then(async () => { + await sleep(2000) + void (await signer.sign(senderPrivateKey)).send() + }) + .catch(reject) + }) + } + + expect(await waitListenerEvent()).toBeInstanceOf(ContractTransaction) + }) + + it('Coin', async () => { + await waitSecondsBeforeThanNewTx(10) + + const listener = new TransactionListener(TransactionTypeEnum.COIN, { + signer: senderTestAddress, + receiver: receiverTestAddress + }) + + const signer = await new Coin().transfer(senderTestAddress, receiverTestAddress, 0.0001) + + const waitListenerEvent = async (): Promise => { + return await new Promise((resolve, reject) => { + void listener + .on((transaction) => { + listener.stop() + resolve(transaction) + }) + .then(async () => { + await sleep(2000) + void (await signer.sign(senderPrivateKey)).send() + }) + .catch(reject) + }) + } + + expect(await waitListenerEvent()).toBeInstanceOf(CoinTransaction) + }) + + it('Token', async () => { + await waitSecondsBeforeThanNewTx(10) + + const listener = new TransactionListener(TransactionTypeEnum.TOKEN, { + signer: senderTestAddress, + receiver: receiverTestAddress, + address: tokenTestAddress + }) + + const signer = await new Token(tokenTestAddress).transfer( + senderTestAddress, + receiverTestAddress, + 0.01 + ) + + const waitListenerEvent = async (): Promise => { + return await new Promise((resolve, reject) => { + void listener + .on((transaction) => { + listener.stop() + resolve(transaction) + }) + .then(async () => { + await sleep(2000) + void (await signer.sign(senderPrivateKey)).send() + }) + .catch(reject) + }) + } + + expect(await waitListenerEvent()).toBeInstanceOf(TokenTransaction) + }) + + it('NFT', async () => { + await waitSecondsBeforeThanNewTx(10) + + const listener = new TransactionListener(TransactionTypeEnum.NFT, { + signer: senderTestAddress, + receiver: receiverTestAddress, + address: nftTestAddress, + nftId: nftTransferId + }) + + const nft = new NFT(nftTestAddress) + const signer = await nft.transfer(senderTestAddress, receiverTestAddress, nftTransferId) + + const waitListenerEvent = async (): Promise => { + return await new Promise((resolve, reject) => { + void listener + .on((transaction) => { + listener.stop() + resolve(transaction) + }) + .then(async () => { + await sleep(2000) + void (await signer.sign(senderPrivateKey)).send() + }) + .catch(reject) + }) + } + + const transaction = await waitListenerEvent() + expect(transaction).toBeInstanceOf(NftTransaction) + await transaction.wait() + await waitSecondsBeforeThanNewTx(10) + + const newSigner = await nft.transfer(receiverTestAddress, senderTestAddress, nftTransferId) + + await (await newSigner.sign(receiverPrivateKey)).send() + }) +}) diff --git a/packages/networks/ton/tests/setup.ts b/packages/networks/ton/tests/setup.ts new file mode 100644 index 0000000..fec8cee --- /dev/null +++ b/packages/networks/ton/tests/setup.ts @@ -0,0 +1,14 @@ +import { Provider } from '../src/services/Provider' + +let provider: Provider + +try { + provider = Provider.instance +} catch (e) { + provider = new Provider({ + testnet: true, + apiKey: '0a804e1153b5dec04715342789d68c219845e3f1336da822399d7b180a5b5533' + }) +} + +export { provider } diff --git a/packages/networks/ton/tsconfig.json b/packages/networks/ton/tsconfig.json new file mode 100644 index 0000000..594d173 --- /dev/null +++ b/packages/networks/ton/tsconfig.json @@ -0,0 +1,21 @@ +{ + "compilerOptions": { + "noEmit": true, + "composite": true, + "declaration": true, + "outDir": "./dist/esm", + "declarationDir": "./dist/types" + }, + "extends": "../../../tsconfig.json", + "include": [ + "src", + ".eslintrc.json", + "tests", + "vite.config.ts", + "esbuild.ts", + "vitest.config.ts", + "../../../esbuild.ts", + "../../../vite.config.ts", + "../../../vitest.config.ts" + ] +} diff --git a/packages/networks/ton/vite.config.ts b/packages/networks/ton/vite.config.ts new file mode 100644 index 0000000..ac35490 --- /dev/null +++ b/packages/networks/ton/vite.config.ts @@ -0,0 +1,10 @@ +import { mergeConfig } from 'vite' +import mainConfig from '../../../vite.config' + +export default mergeConfig(mainConfig, { + build: { + lib: { + name: 'MultipleChain.TON' + } + } +}) diff --git a/packages/networks/ton/vite.svg b/packages/networks/ton/vite.svg new file mode 100644 index 0000000..e7b8dfb --- /dev/null +++ b/packages/networks/ton/vite.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/networks/ton/vitest.config.ts b/packages/networks/ton/vitest.config.ts new file mode 100644 index 0000000..94ef2da --- /dev/null +++ b/packages/networks/ton/vitest.config.ts @@ -0,0 +1,12 @@ +import { mergeConfig, defineConfig } from 'vitest/config' +import mainConfig from '../../../vite.config' + +export default mergeConfig( + mainConfig, + defineConfig({ + test: { + testTimeout: 180000, + setupFiles: ['./tests/setup.ts'] + } + }) +) diff --git a/packages/networks/tron/package.json b/packages/networks/tron/package.json index 76abdfa..6192007 100644 --- a/packages/networks/tron/package.json +++ b/packages/networks/tron/package.json @@ -1,6 +1,6 @@ { "name": "@multiplechain/tron", - "version": "0.4.15", + "version": "0.4.16", "type": "module", "main": "dist/index.cjs", "module": "dist/index.es.js", @@ -72,7 +72,7 @@ "url": "https://github.com/MultipleChain/js/issues" }, "dependencies": { - "@beycandeveloper/tron-tx-decoder": "^2.0.5", + "@beycan/tron-tx-decoder": "^2.0.7", "@multiplechain/tron-walletconnect": "^0.1.0", "@multiplechain/types": "^0.1.70", "@multiplechain/utils": "^0.1.21", diff --git a/packages/networks/tron/pnpm-lock.yaml b/packages/networks/tron/pnpm-lock.yaml index d30c56e..d6118a7 100644 --- a/packages/networks/tron/pnpm-lock.yaml +++ b/packages/networks/tron/pnpm-lock.yaml @@ -8,9 +8,9 @@ importers: .: dependencies: - '@beycandeveloper/tron-tx-decoder': - specifier: ^2.0.5 - version: 2.0.5 + '@beycan/tron-tx-decoder': + specifier: ^2.0.7 + version: 2.0.7 '@multiplechain/tron-walletconnect': specifier: ^0.1.0 version: 0.1.0(@types/node@20.12.7)(bufferutil@4.0.8)(typescript@5.4.5)(utf-8-validate@5.0.10) @@ -69,8 +69,8 @@ packages: resolution: {integrity: sha512-6mQNsaLeXTw0nxYUYu+NSa4Hx4BlF1x1x8/PMFbiR+GBSr+2DkECc69b8hgy2frEodNcvPffeH8YfWd3LI6jhQ==} engines: {node: '>=6.9.0'} - '@beycandeveloper/tron-tx-decoder@2.0.5': - resolution: {integrity: sha512-/ohZkz/WMTkCFMSmBm3cTABW2CfcgEnEP6gi9+CexuxGApDvhDigSP0dCRk0bz8FH0rLyalWPhDnA325KBEsww==} + '@beycan/tron-tx-decoder@2.0.7': + resolution: {integrity: sha512-m2XMsZQyPMghpgV4h1fVXPIpbN+W2Dquo74FsYmup0U2PF9f8wRhLnaPnS8W4x7MRU57N3emVFImMiVcXOhBKg==} '@bitget-wallet/web3-sdk@0.0.8': resolution: {integrity: sha512-WFk6URUxTCukKrU3YpTdWTCScrj6/wwd/0O7eSANeQl1KDbDs+yj/fAkN1Wy6ebI3NMcW6sqN9mrmfwz53dPMQ==} @@ -1731,7 +1731,7 @@ snapshots: '@babel/helper-validator-identifier': 7.24.5 to-fast-properties: 2.0.0 - '@beycandeveloper/tron-tx-decoder@2.0.5': + '@beycan/tron-tx-decoder@2.0.7': dependencies: axios: 0.21.4 ethers: 4.0.49 diff --git a/packages/networks/tron/src/models/ContractTransaction.ts b/packages/networks/tron/src/models/ContractTransaction.ts index 28caae8..2a7180f 100644 --- a/packages/networks/tron/src/models/ContractTransaction.ts +++ b/packages/networks/tron/src/models/ContractTransaction.ts @@ -1,5 +1,4 @@ -// @ts-expect-error no need type -import TxDecoder from '@beycandeveloper/tron-tx-decoder' +import TxDecoder from '@beycan/tron-tx-decoder' import { Transaction, type TransactionData } from './Transaction' import type { ContractAddress, ContractTransactionInterface } from '@multiplechain/types' diff --git a/packages/networks/tron/src/models/Transaction.ts b/packages/networks/tron/src/models/Transaction.ts index 40a2dd1..bf79624 100644 --- a/packages/networks/tron/src/models/Transaction.ts +++ b/packages/networks/tron/src/models/Transaction.ts @@ -134,6 +134,7 @@ export class Transaction implements TransactionInterface { this.data.info = result?.id !== undefined ? result : undefined return this.data } catch (error) { + console.error('MC Tron TX getData', error) throw new Error(ErrorTypeEnum.RPC_REQUEST_ERROR) } } @@ -156,6 +157,7 @@ export class Transaction implements TransactionInterface { } setTimeout(check, ms) } catch (error) { + console.error('MC Tron TX wait', error) reject(TransactionStatusEnum.FAILED) } } diff --git a/packages/utils/tests/index.spec.ts b/packages/utils/tests/index.spec.ts index df6d807..ea82770 100644 --- a/packages/utils/tests/index.spec.ts +++ b/packages/utils/tests/index.spec.ts @@ -58,9 +58,7 @@ describe('Helper methods', () => { }) it('Check websocket', async () => { - expect( - await checkWebSocket('wss://sepolia.infura.io/ws/v3/9aa3d95b3bc440fa88ea12eaa4456161') - ).toBe(true) + expect(await checkWebSocket('wss://ethereum-sepolia-rpc.publicnode.com')).toBe(true) }) it('Is numeric', () => { diff --git a/packages/wrapper/package.json b/packages/wrapper/package.json index 75bca90..b51609d 100644 --- a/packages/wrapper/package.json +++ b/packages/wrapper/package.json @@ -71,11 +71,7 @@ "url": "https://github.com/MultipleChain/js/issues" }, "dependencies": { - "@multiplechain/types": "^0.1.67", - "@multiplechain/utils": "^0.1.21" - }, - "devDependencies": { - "@multiplechain/evm-chains": "^0.4.1", - "@multiplechain/tron": "^0.4.2" + "@multiplechain/types": "^0.1.70", + "@multiplechain/utils": "^0.1.23" } } diff --git a/packages/wrapper/pnpm-lock.yaml b/packages/wrapper/pnpm-lock.yaml index 201aa0c..f8de294 100644 --- a/packages/wrapper/pnpm-lock.yaml +++ b/packages/wrapper/pnpm-lock.yaml @@ -1,7047 +1,385 @@ -lockfileVersion: '6.0' +lockfileVersion: '9.0' settings: - autoInstallPeers: true - excludeLinksFromLockfile: false + autoInstallPeers: true + excludeLinksFromLockfile: false -dependencies: - '@multiplechain/types': - specifier: ^0.1.67 - version: 0.1.67 - '@multiplechain/utils': - specifier: ^0.1.21 - version: 0.1.21 +importers: -devDependencies: - '@multiplechain/evm-chains': - specifier: ^0.4.1 - version: 0.4.1(react@18.3.1)(typescript@5.4.5) - '@multiplechain/tron': - specifier: ^0.4.2 - version: 0.4.2(typescript@5.4.5)(vite@5.2.11) + .: + dependencies: + '@multiplechain/types': + specifier: ^0.1.70 + version: 0.1.70 + '@multiplechain/utils': + specifier: ^0.1.23 + version: 0.1.23(bufferutil@4.0.8)(utf-8-validate@5.0.10) packages: - /@adraffy/ens-normalize@1.10.1: - resolution: - { - integrity: sha512-96Z2IP3mYmF1Xg2cDm8f1gWGf/HUVedQ3FMifV4kG/PQ4yEP51xDtRAEfhVNt5f/uzpNkZHwWQuUcu6D6K+Ekw== - } - dev: true - /@babel/helper-string-parser@7.24.6: - resolution: - { - integrity: sha512-WdJjwMEkmBicq5T9fm/cHND3+UlFa2Yj8ALLgmoSQAJZysYbBjw+azChSGPN4DSPLXOcooGRvDwZWMcF/mLO2Q== - } - engines: { node: '>=6.9.0' } - dev: true + '@multiplechain/types@0.1.70': + resolution: {integrity: sha512-o9ovdaefDHE5gorb83avugCjeixfBXrfJkIgSEEcT549yGF8CkmG/jgZIlqXKJf8Lh0tbg4zMAAanUSxUqV1FQ==} - /@babel/helper-validator-identifier@7.24.6: - resolution: - { - integrity: sha512-4yA7s865JHaqUdRbnaxarZREuPTHrjpDT+pXoAZ1yhyo6uFnIEpS8VMu16siFOHDpZNKYv5BObhsB//ycbICyw== - } - engines: { node: '>=6.9.0' } - dev: true + '@multiplechain/utils@0.1.23': + resolution: {integrity: sha512-6mgJiXQsElObKgX/yA8DUpQYd+BS1GKhAyLj5F/2mv9yY3boZrX8sS7ZLk+g5NX45N+BACNMxbs09TG1iFiRsA==} - /@babel/parser@7.24.6: - resolution: - { - integrity: sha512-eNZXdfU35nJC2h24RznROuOpO94h6x8sg9ju0tT9biNtLZ2vuP8SduLqqV+/8+cebSLV9SJEAN5Z3zQbJG/M+Q== - } - engines: { node: '>=6.0.0' } - hasBin: true - dependencies: - '@babel/types': 7.24.6 - dev: true + '@noble/curves@1.3.0': + resolution: {integrity: sha512-t01iSXPuN+Eqzb4eBX0S5oubSqXbK/xXa1Ne18Hj8f9pStxztHCE2gfboSp/dZRLSqfuLpRK2nDXDK+W9puocA==} - /@babel/runtime@7.24.6: - resolution: - { - integrity: sha512-Ja18XcETdEl5mzzACGd+DKgaGJzPTCow7EglgwTmHdwokzDFYh/MHua6lU6DV/hjF2IaOJ4oX2nqnjG7RElKOw== - } - engines: { node: '>=6.9.0' } - dependencies: - regenerator-runtime: 0.14.1 - dev: true + '@noble/hashes@1.3.3': + resolution: {integrity: sha512-V7/fPHgl+jsVPXqqeOzT8egNj2iBIVt+ECeMMG8TdcnTikP3oaBtUVqpT/gYCR68aEBJSF+XbYUxStjbFMqIIA==} + engines: {node: '>= 16'} - /@babel/types@7.24.6: - resolution: - { - integrity: sha512-WaMsgi6Q8zMgMth93GvWPXkhAIEobfsIkLTacoVZoK1J0CevIPGYY2Vo5YvJGqyHqXM6P4ppOYGsIRU8MM9pFQ== - } - engines: { node: '>=6.9.0' } - dependencies: - '@babel/helper-string-parser': 7.24.6 - '@babel/helper-validator-identifier': 7.24.6 - to-fast-properties: 2.0.0 - dev: true + '@scure/base@1.1.6': + resolution: {integrity: sha512-ok9AWwhcgYuGG3Zfhyqg+zwl+Wn5uE+dwC0NV/2qQkx4dABbb/bx96vWu8NSj+BNjjSjno+JRYRjle1jV08k3g==} - /@beycandeveloper/tron-tx-decoder@2.0.7: - resolution: - { - integrity: sha512-mnU22flEWOyg2jMqZANiVX+L46irN/3lVcJlOJF12IXdV9KB27xRGGve9szu5WgYNH8aqpyMyM6tjShfwcJlOw== - } - dependencies: - axios: 0.21.4 - ethers: 4.0.49 - transitivePeerDependencies: - - debug - dev: true + '@scure/bip32@1.3.3': + resolution: {integrity: sha512-LJaN3HwRbfQK0X1xFSi0Q9amqOgzQnnDngIt+ZlsBC3Bm7/nE7K0kwshZHyaru79yIVRv/e1mQAjZyuZG6jOFQ==} - /@bitget-wallet/web3-sdk@0.0.8: - resolution: - { - integrity: sha512-WFk6URUxTCukKrU3YpTdWTCScrj6/wwd/0O7eSANeQl1KDbDs+yj/fAkN1Wy6ebI3NMcW6sqN9mrmfwz53dPMQ== - } - dependencies: - '@metamask/safe-event-emitter': 3.1.1 - '@solana/web3.js': 1.91.8 - eventemitter3: 5.0.1 - transitivePeerDependencies: - - bufferutil - - encoding - - utf-8-validate - dev: true + '@scure/bip39@1.2.2': + resolution: {integrity: sha512-HYf9TUXG80beW+hGAt3TRM8wU6pQoYur9iNypTROm42dorCGmLnFe3eWjz3gOq6G62H2WRh0FCzAR1PI+29zIA==} - /@coinbase/wallet-sdk@3.9.1: - resolution: - { - integrity: sha512-cGUE8wm1/cMI8irRMVOqbFWYcnNugqCtuy2lnnHfgloBg+GRLs9RsrkOUDMdv/StfUeeKhCDyYudsXXvcL1xIA== - } - dependencies: - bn.js: 5.2.1 - buffer: 6.0.3 - clsx: 1.2.1 - eth-block-tracker: 7.1.0 - eth-json-rpc-filters: 6.0.1 - eventemitter3: 5.0.1 - keccak: 3.0.4 - preact: 10.22.0 - sha.js: 2.4.11 - transitivePeerDependencies: - - supports-color - dev: true + '@types/node@20.12.7': + resolution: {integrity: sha512-wq0cICSkRLVaf3UGLMGItu/PtdY7oaXaI/RVU+xliKVOtRna3PRY57ZDfztpDL0n11vfymMUnXv8QwYCO7L1wg==} - /@esbuild/aix-ppc64@0.20.2: - resolution: - { - integrity: sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g== - } - engines: { node: '>=12' } - cpu: [ppc64] - os: [aix] - requiresBuild: true - dev: true - optional: true - - /@esbuild/android-arm64@0.20.2: - resolution: - { - integrity: sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg== - } - engines: { node: '>=12' } - cpu: [arm64] - os: [android] - requiresBuild: true - dev: true - optional: true - - /@esbuild/android-arm@0.20.2: - resolution: - { - integrity: sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w== - } - engines: { node: '>=12' } - cpu: [arm] - os: [android] - requiresBuild: true - dev: true - optional: true - - /@esbuild/android-x64@0.20.2: - resolution: - { - integrity: sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg== - } - engines: { node: '>=12' } - cpu: [x64] - os: [android] - requiresBuild: true - dev: true - optional: true - - /@esbuild/darwin-arm64@0.20.2: - resolution: - { - integrity: sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA== - } - engines: { node: '>=12' } - cpu: [arm64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /@esbuild/darwin-x64@0.20.2: - resolution: - { - integrity: sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA== - } - engines: { node: '>=12' } - cpu: [x64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /@esbuild/freebsd-arm64@0.20.2: - resolution: - { - integrity: sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw== - } - engines: { node: '>=12' } - cpu: [arm64] - os: [freebsd] - requiresBuild: true - dev: true - optional: true - - /@esbuild/freebsd-x64@0.20.2: - resolution: - { - integrity: sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw== - } - engines: { node: '>=12' } - cpu: [x64] - os: [freebsd] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-arm64@0.20.2: - resolution: - { - integrity: sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A== - } - engines: { node: '>=12' } - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-arm@0.20.2: - resolution: - { - integrity: sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg== - } - engines: { node: '>=12' } - cpu: [arm] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-ia32@0.20.2: - resolution: - { - integrity: sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig== - } - engines: { node: '>=12' } - cpu: [ia32] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-loong64@0.20.2: - resolution: - { - integrity: sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ== - } - engines: { node: '>=12' } - cpu: [loong64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-mips64el@0.20.2: - resolution: - { - integrity: sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA== - } - engines: { node: '>=12' } - cpu: [mips64el] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-ppc64@0.20.2: - resolution: - { - integrity: sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg== - } - engines: { node: '>=12' } - cpu: [ppc64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-riscv64@0.20.2: - resolution: - { - integrity: sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg== - } - engines: { node: '>=12' } - cpu: [riscv64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-s390x@0.20.2: - resolution: - { - integrity: sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ== - } - engines: { node: '>=12' } - cpu: [s390x] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-x64@0.20.2: - resolution: - { - integrity: sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw== - } - engines: { node: '>=12' } - cpu: [x64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/netbsd-x64@0.20.2: - resolution: - { - integrity: sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ== - } - engines: { node: '>=12' } - cpu: [x64] - os: [netbsd] - requiresBuild: true - dev: true - optional: true - - /@esbuild/openbsd-x64@0.20.2: - resolution: - { - integrity: sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ== - } - engines: { node: '>=12' } - cpu: [x64] - os: [openbsd] - requiresBuild: true - dev: true - optional: true - - /@esbuild/sunos-x64@0.20.2: - resolution: - { - integrity: sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w== - } - engines: { node: '>=12' } - cpu: [x64] - os: [sunos] - requiresBuild: true - dev: true - optional: true - - /@esbuild/win32-arm64@0.20.2: - resolution: - { - integrity: sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ== - } - engines: { node: '>=12' } - cpu: [arm64] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /@esbuild/win32-ia32@0.20.2: - resolution: - { - integrity: sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ== - } - engines: { node: '>=12' } - cpu: [ia32] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /@esbuild/win32-x64@0.20.2: - resolution: - { - integrity: sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ== - } - engines: { node: '>=12' } - cpu: [x64] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /@ethereumjs/common@3.2.0: - resolution: - { - integrity: sha512-pksvzI0VyLgmuEF2FA/JR/4/y6hcPq8OUail3/AvycBaW1d5VSauOZzqGvJ3RTmR4MU35lWE8KseKOsEhrFRBA== - } - dependencies: - '@ethereumjs/util': 8.1.0 - crc-32: 1.2.2 - dev: true - - /@ethereumjs/rlp@4.0.1: - resolution: - { - integrity: sha512-tqsQiBQDQdmPWE1xkkBq4rlSW5QZpLOUJ5RJh2/9fug+q9tnUhuZoVLk7s0scUIKTOzEtR72DFBXI4WiZcMpvw== - } - engines: { node: '>=14' } - hasBin: true - dev: true - - /@ethereumjs/tx@4.2.0: - resolution: - { - integrity: sha512-1nc6VO4jtFd172BbSnTnDQVr9IYBFl1y4xPzZdtkrkKIncBCkdbgfdRV+MiTkJYAtTxvV12GRZLqBFT1PNK6Yw== - } - engines: { node: '>=14' } - dependencies: - '@ethereumjs/common': 3.2.0 - '@ethereumjs/rlp': 4.0.1 - '@ethereumjs/util': 8.1.0 - ethereum-cryptography: 2.1.3 - dev: true - - /@ethereumjs/util@8.1.0: - resolution: - { - integrity: sha512-zQ0IqbdX8FZ9aw11vP+dZkKDkS+kgIvQPHnSAXzP9pLu+Rfu3D3XEeLbicvoXJTYnhZiPmsZUxgdzXwNKxRPbA== - } - engines: { node: '>=14' } - dependencies: - '@ethereumjs/rlp': 4.0.1 - ethereum-cryptography: 2.1.3 - micro-ftch: 0.3.1 - dev: true - - /@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: true - - /@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.1 - '@ethersproject/properties': 5.7.0 - '@ethersproject/transactions': 5.7.0 - '@ethersproject/web': 5.7.1 - dev: true - - /@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: true - - /@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: true - - /@ethersproject/base64@5.7.0: - resolution: - { - integrity: sha512-Dr8tcHt2mEbsZr/mwTPIQAf3Ai0Bks/7gTw9dSqk1mQvhW3XvRlmDJr/4n+wg1JmCl16NZue17CDh8xb/vZ0sQ== - } - dependencies: - '@ethersproject/bytes': 5.7.0 - dev: true - - /@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: true - - /@ethersproject/bytes@5.7.0: - resolution: - { - integrity: sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A== - } - dependencies: - '@ethersproject/logger': 5.7.0 - dev: true - - /@ethersproject/constants@5.7.0: - resolution: - { - integrity: sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA== - } - dependencies: - '@ethersproject/bignumber': 5.7.0 - dev: true - - /@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: true - - /@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: true - - /@ethersproject/logger@5.7.0: - resolution: - { - integrity: sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig== - } - dev: true - - /@ethersproject/networks@5.7.1: - resolution: - { - integrity: sha512-n/MufjFYv3yFcUyfhnXotyDlNdFb7onmkSy8aQERi2PjNcnWQ66xXxa3XlS8nCcA8aJKJjIIMNJTC7tu80GwpQ== - } - dependencies: - '@ethersproject/logger': 5.7.0 - dev: true - - /@ethersproject/properties@5.7.0: - resolution: - { - integrity: sha512-J87jy8suntrAkIZtecpxEPxY//szqr1mlBaYlQ0r4RCaiD2hjheqF9s1LVE8vVuJCXisjIP+JgtK/Do54ej4Sw== - } - dependencies: - '@ethersproject/logger': 5.7.0 - dev: true - - /@ethersproject/rlp@5.7.0: - resolution: - { - integrity: sha512-rBxzX2vK8mVF7b0Tol44t5Tb8gomOHkj5guL+HhzQ1yBh/ydjGnpw6at+X6Iw0Kp3OzzzkcKp8N9r0W4kYSs9w== - } - dependencies: - '@ethersproject/bytes': 5.7.0 - '@ethersproject/logger': 5.7.0 - dev: true - - /@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: true + '@types/ws@8.5.10': + resolution: {integrity: sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==} - /@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: true + available-typed-arrays@1.0.7: + resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} + engines: {node: '>= 0.4'} - /@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: true + bignumber.js@9.1.2: + resolution: {integrity: sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug==} - /@ethersproject/web@5.7.1: - resolution: - { - integrity: sha512-Gueu8lSvyjBWL4cYsWsjh6MtMwM0+H4HvqFPZfB6dV8ctbP9zFAO73VG1cMWae0FLPCtz0peKPpZY8/ugJJX2w== - } - 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: true + bufferutil@4.0.8: + resolution: {integrity: sha512-4T53u4PdgsXqKaIctwF8ifXlRTTmEPJ8iEPWFdGZvcf7sbwYo6FKFEX9eNNAnzFZ7EzJAQ3CJeOtCRA4rDp7Pw==} + engines: {node: '>=6.14.2'} - /@jridgewell/sourcemap-codec@1.4.15: - resolution: - { - integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== - } - dev: true + call-bind@1.0.7: + resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} + engines: {node: '>= 0.4'} - /@lit-labs/ssr-dom-shim@1.2.0: - resolution: - { - integrity: sha512-yWJKmpGE6lUURKAaIltoPIE/wrbY3TEkqQt+X0m+7fQNnAv0keydnYvbiJFP1PnMhizmIWRWOG5KLhYyc/xl+g== - } - dev: true + define-data-property@1.1.4: + resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} + engines: {node: '>= 0.4'} - /@lit/reactive-element@1.6.3: - resolution: - { - integrity: sha512-QuTgnG52Poic7uM1AN5yJ09QMe0O28e10XzSvWDz02TJiiKee4stsiownEIadWm8nYzyDAyT+gKzUoZmiWQtsQ== - } - dependencies: - '@lit-labs/ssr-dom-shim': 1.2.0 - dev: true + es-define-property@1.0.0: + resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} + engines: {node: '>= 0.4'} - /@lit/reactive-element@2.0.4: - resolution: - { - integrity: sha512-GFn91inaUa2oHLak8awSIigYz0cU0Payr1rcFsrkf5OJ5eSPxElyZfKh0f2p9FsTiZWXQdWGJeXZICEfXXYSXQ== - } - dependencies: - '@lit-labs/ssr-dom-shim': 1.2.0 - dev: true + es-errors@1.3.0: + resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} + engines: {node: '>= 0.4'} - /@metamask/eth-json-rpc-provider@1.0.1: - resolution: - { - integrity: sha512-whiUMPlAOrVGmX8aKYVPvlKyG4CpQXiNNyt74vE1xb5sPvmx5oA7B/kOi/JdBvhGQq97U1/AVdXEdk2zkP8qyA== - } - engines: { node: '>=14.0.0' } - dependencies: - '@metamask/json-rpc-engine': 7.3.3 - '@metamask/safe-event-emitter': 3.1.1 - '@metamask/utils': 5.0.2 - transitivePeerDependencies: - - supports-color - dev: true + ethereum-cryptography@2.1.3: + resolution: {integrity: sha512-BlwbIL7/P45W8FGW2r7LGuvoEZ+7PWsniMvQ4p5s2xCyw9tmaDlpfsN9HjAucbF+t/qpVHwZUisgfK24TCW8aA==} - /@metamask/json-rpc-engine@7.3.3: - resolution: - { - integrity: sha512-dwZPq8wx9yV3IX2caLi9q9xZBw2XeIoYqdyihDDDpuHVCEiqadJLwqM3zy+uwf6F1QYQ65A8aOMQg1Uw7LMLNg== - } - engines: { node: '>=16.0.0' } - dependencies: - '@metamask/rpc-errors': 6.2.1 - '@metamask/safe-event-emitter': 3.1.1 - '@metamask/utils': 8.4.0 - transitivePeerDependencies: - - supports-color - dev: true + eventemitter3@5.0.1: + resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} - /@metamask/rpc-errors@6.2.1: - resolution: - { - integrity: sha512-VTgWkjWLzb0nupkFl1duQi9Mk8TGT9rsdnQg6DeRrYEFxtFOh0IF8nAwxM/4GWqDl6uIB06lqUBgUrAVWl62Bw== - } - engines: { node: '>=16.0.0' } - dependencies: - '@metamask/utils': 8.4.0 - fast-safe-stringify: 2.1.1 - transitivePeerDependencies: - - supports-color - dev: true + for-each@0.3.3: + resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} - /@metamask/safe-event-emitter@2.0.0: - resolution: - { - integrity: sha512-/kSXhY692qiV1MXu6EeOZvg5nECLclxNXcKCxJ3cXQgYuRymRHpdx/t7JXfsK+JLjwA1e1c1/SBrlQYpusC29Q== - } - dev: true + function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} - /@metamask/safe-event-emitter@3.1.1: - resolution: - { - integrity: sha512-ihb3B0T/wJm1eUuArYP4lCTSEoZsClHhuWyfo/kMX3m/odpqNcPfsz5O2A3NT7dXCAgWPGDQGPqygCpgeniKMw== - } - engines: { node: '>=12.0.0' } - dev: true + get-intrinsic@1.2.4: + resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} + engines: {node: '>= 0.4'} - /@metamask/utils@5.0.2: - resolution: - { - integrity: sha512-yfmE79bRQtnMzarnKfX7AEJBwFTxvTyw3nBQlu/5rmGXrjAeAMltoGxO62TFurxrQAFMNa/fEjIHNvungZp0+g== - } - engines: { node: '>=14.0.0' } - dependencies: - '@ethereumjs/tx': 4.2.0 - '@types/debug': 4.1.12 - debug: 4.3.4 - semver: 7.6.2 - superstruct: 1.0.4 - transitivePeerDependencies: - - supports-color - dev: true + gopd@1.0.1: + resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} - /@metamask/utils@8.4.0: - resolution: - { - integrity: sha512-dbIc3C7alOe0agCuBHM1h71UaEaEqOk2W8rAtEn8QGz4haH2Qq7MoK6i7v2guzvkJVVh79c+QCzIqphC3KvrJg== - } - engines: { node: '>=16.0.0' } - dependencies: - '@ethereumjs/tx': 4.2.0 - '@noble/hashes': 1.3.3 - '@scure/base': 1.1.6 - '@types/debug': 4.1.12 - debug: 4.3.4 - pony-cause: 2.1.11 - semver: 7.6.2 - superstruct: 1.0.4 - uuid: 9.0.1 - transitivePeerDependencies: - - supports-color - dev: true + has-property-descriptors@1.0.2: + resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} - /@microsoft/api-extractor-model@7.28.13: - resolution: - { - integrity: sha512-39v/JyldX4MS9uzHcdfmjjfS6cYGAoXV+io8B5a338pkHiSt+gy2eXQ0Q7cGFJ7quSa1VqqlMdlPrB6sLR/cAw== - } - dependencies: - '@microsoft/tsdoc': 0.14.2 - '@microsoft/tsdoc-config': 0.16.2 - '@rushstack/node-core-library': 4.0.2 - transitivePeerDependencies: - - '@types/node' - dev: true + has-proto@1.0.3: + resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==} + engines: {node: '>= 0.4'} - /@microsoft/api-extractor@7.43.0: - resolution: - { - integrity: sha512-GFhTcJpB+MI6FhvXEI9b2K0snulNLWHqC/BbcJtyNYcKUiw7l3Lgis5ApsYncJ0leALX7/of4XfmXk+maT111w== - } - hasBin: true - dependencies: - '@microsoft/api-extractor-model': 7.28.13 - '@microsoft/tsdoc': 0.14.2 - '@microsoft/tsdoc-config': 0.16.2 - '@rushstack/node-core-library': 4.0.2 - '@rushstack/rig-package': 0.5.2 - '@rushstack/terminal': 0.10.0 - '@rushstack/ts-command-line': 4.19.1 - lodash: 4.17.21 - minimatch: 3.0.8 - resolve: 1.22.8 - semver: 7.5.4 - source-map: 0.6.1 - typescript: 5.4.2 - transitivePeerDependencies: - - '@types/node' - dev: true + has-symbols@1.0.3: + resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} + engines: {node: '>= 0.4'} - /@microsoft/tsdoc-config@0.16.2: - resolution: - { - integrity: sha512-OGiIzzoBLgWWR0UdRJX98oYO+XKGf7tiK4Zk6tQ/E4IJqGCe7dvkTvgDZV5cFJUzLGDOjeAXrnZoA6QkVySuxw== - } - dependencies: - '@microsoft/tsdoc': 0.14.2 - ajv: 6.12.6 - jju: 1.4.0 - resolve: 1.19.0 - dev: true + has-tostringtag@1.0.2: + resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} + engines: {node: '>= 0.4'} - /@microsoft/tsdoc@0.14.2: - resolution: - { - integrity: sha512-9b8mPpKrfeGRuhFH5iO1iwCLeIIsV6+H1sRfxbkoGXIyQE2BTsPd9zqSqQJ+pv5sJ/hT5M1zvOFL02MnEezFug== - } - dev: true + hasown@2.0.2: + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} + engines: {node: '>= 0.4'} - /@motionone/animation@10.17.0: - resolution: - { - integrity: sha512-ANfIN9+iq1kGgsZxs+Nz96uiNcPLGTXwfNo2Xz/fcJXniPYpaz/Uyrfa+7I5BPLxCP82sh7quVDudf1GABqHbg== - } - dependencies: - '@motionone/easing': 10.17.0 - '@motionone/types': 10.17.0 - '@motionone/utils': 10.17.0 - tslib: 2.6.2 - dev: true + inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} - /@motionone/dom@10.17.0: - resolution: - { - integrity: sha512-cMm33swRlCX/qOPHWGbIlCl0K9Uwi6X5RiL8Ma6OrlJ/TP7Q+Np5GE4xcZkFptysFjMTi4zcZzpnNQGQ5D6M0Q== - } - dependencies: - '@motionone/animation': 10.17.0 - '@motionone/generators': 10.17.0 - '@motionone/types': 10.17.0 - '@motionone/utils': 10.17.0 - hey-listen: 1.0.8 - tslib: 2.6.2 - dev: true + is-arguments@1.1.1: + resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==} + engines: {node: '>= 0.4'} - /@motionone/easing@10.17.0: - resolution: - { - integrity: sha512-Bxe2wSuLu/qxqW4rBFS5m9tMLOw+QBh8v5A7Z5k4Ul4sTj5jAOfZG5R0bn5ywmk+Fs92Ij1feZ5pmC4TeXA8Tg== - } - dependencies: - '@motionone/utils': 10.17.0 - tslib: 2.6.2 - dev: true + is-callable@1.2.7: + resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} + engines: {node: '>= 0.4'} - /@motionone/generators@10.17.0: - resolution: - { - integrity: sha512-T6Uo5bDHrZWhIfxG/2Aut7qyWQyJIWehk6OB4qNvr/jwA/SRmixwbd7SOrxZi1z5rH3LIeFFBKK1xHnSbGPZSQ== - } - dependencies: - '@motionone/types': 10.17.0 - '@motionone/utils': 10.17.0 - tslib: 2.6.2 - dev: true + is-generator-function@1.0.10: + resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==} + engines: {node: '>= 0.4'} - /@motionone/svelte@10.16.4: - resolution: - { - integrity: sha512-zRVqk20lD1xqe+yEDZhMYgftsuHc25+9JSo+r0a0OWUJFocjSV9D/+UGhX4xgJsuwB9acPzXLr20w40VnY2PQA== - } - dependencies: - '@motionone/dom': 10.17.0 - tslib: 2.6.2 - dev: true + is-typed-array@1.1.13: + resolution: {integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==} + engines: {node: '>= 0.4'} - /@motionone/types@10.17.0: - resolution: - { - integrity: sha512-EgeeqOZVdRUTEHq95Z3t8Rsirc7chN5xFAPMYFobx8TPubkEfRSm5xihmMUkbaR2ErKJTUw3347QDPTHIW12IA== - } - dev: true + node-gyp-build@4.8.1: + resolution: {integrity: sha512-OSs33Z9yWr148JZcbZd5WiAXhh/n9z8TxQcdMhIOlpN9AhWpLfvVFO73+m77bBABQMaY9XSvIa+qk0jlI7Gcaw==} + hasBin: true - /@motionone/utils@10.17.0: - resolution: - { - integrity: sha512-bGwrki4896apMWIj9yp5rAS2m0xyhxblg6gTB/leWDPt+pb410W8lYWsxyurX+DH+gO1zsQsfx2su/c1/LtTpg== - } - dependencies: - '@motionone/types': 10.17.0 - hey-listen: 1.0.8 - tslib: 2.6.2 - dev: true + possible-typed-array-names@1.0.0: + resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==} + engines: {node: '>= 0.4'} - /@motionone/vue@10.16.4: - resolution: - { - integrity: sha512-z10PF9JV6SbjFq+/rYabM+8CVlMokgl8RFGvieSGNTmrkQanfHn+15XBrhG3BgUfvmTeSeyShfOHpG0i9zEdcg== - } - deprecated: Motion One for Vue is deprecated. Use Oku Motion instead https://oku-ui.com/motion - dependencies: - '@motionone/dom': 10.17.0 - tslib: 2.6.2 - dev: true + set-function-length@1.2.2: + resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} + engines: {node: '>= 0.4'} - /@multiplechain/evm-chains@0.4.1(react@18.3.1)(typescript@5.4.5): - resolution: - { - integrity: sha512-z8bwNcmgLdZAm1OmA38EL9MORKHe3jATQGXdELrboAXb1GcTLhkjpiDQ3SPIIJ+u9I4p4gOFvlIELcNBaGhQbA== - } - dependencies: - '@multiplechain/types': 0.1.67 - '@multiplechain/utils': 0.1.21 - '@wagmi/chains': 1.8.0(typescript@5.4.5) - '@walletconnect/ethereum-provider': 2.13.0(react@18.3.1) - '@walletconnect/modal': 2.6.2(react@18.3.1) - '@web3modal/core': 4.2.2(react@18.3.1) - '@web3modal/ethers': 4.2.2(ethers@6.12.1)(react@18.3.1) - '@web3modal/scaffold-utils': 4.2.2(react@18.3.1) - axios: 1.7.2 - ethers: 6.12.1 - transitivePeerDependencies: - - '@azure/app-configuration' - - '@azure/cosmos' - - '@azure/data-tables' - - '@azure/identity' - - '@azure/keyvault-secrets' - - '@azure/storage-blob' - - '@capacitor/preferences' - - '@netlify/blobs' - - '@planetscale/database' - - '@react-native-async-storage/async-storage' - - '@types/react' - - '@upstash/redis' - - '@vercel/kv' - - bufferutil - - debug - - encoding - - ioredis - - react - - react-dom - - supports-color - - typescript - - uWebSockets.js - - utf-8-validate - - vue - dev: true + undici-types@5.26.5: + resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} - /@multiplechain/tron-walletconnect@0.1.2(typescript@5.4.5)(vite@5.2.11): - resolution: - { - integrity: sha512-gLNcLX3MDAPP6s8E/5g3a5vt6md7/4I6J3m9xFJgwQILILadvkNro4BldJMGPYwI8rB7sGv3AqbqJ9l47sC2Fw== - } - dependencies: - '@tronweb3/tronwallet-abstract-adapter': 1.1.6 - '@walletconnect/legacy-modal': 2.0.0 - '@walletconnect/sign-client': 2.13.0 - '@walletconnect/types': 2.13.0 - '@walletconnect/utils': 2.13.0 - vite-plugin-dts: 3.9.1(typescript@5.4.5)(vite@5.2.11) - vite-plugin-node-polyfills: 0.21.0(vite@5.2.11) - transitivePeerDependencies: - - '@azure/app-configuration' - - '@azure/cosmos' - - '@azure/data-tables' - - '@azure/identity' - - '@azure/keyvault-secrets' - - '@azure/storage-blob' - - '@capacitor/preferences' - - '@netlify/blobs' - - '@planetscale/database' - - '@react-native-async-storage/async-storage' - - '@types/node' - - '@upstash/redis' - - '@vercel/kv' - - bufferutil - - encoding - - ioredis - - rollup - - supports-color - - typescript - - uWebSockets.js - - utf-8-validate - - vite - dev: true + utf-8-validate@5.0.10: + resolution: {integrity: sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ==} + engines: {node: '>=6.14.2'} - /@multiplechain/tron@0.4.2(typescript@5.4.5)(vite@5.2.11): - resolution: - { - integrity: sha512-6wV2KsdYwqAj5T67q0b6Ca3O9cHJiOM2ivaKGgzrwEo/U62zPHSoqzMN38vesAlQkqFrK6QlXUbG7WdO7hNF/Q== - } - dependencies: - '@beycandeveloper/tron-tx-decoder': 2.0.7 - '@multiplechain/tron-walletconnect': 0.1.2(typescript@5.4.5)(vite@5.2.11) - '@multiplechain/types': 0.1.67 - '@multiplechain/utils': 0.1.21 - '@noble/secp256k1': 1.7.1 - '@tronweb3/tronwallet-adapter-bitkeep': 1.1.1 - '@tronweb3/tronwallet-adapter-okxwallet': 1.0.3 - '@tronweb3/tronwallet-adapter-tokenpocket': 1.0.3 - '@tronweb3/tronwallet-adapter-tronlink': 1.1.9 - tronweb: 5.3.2 - transitivePeerDependencies: - - '@azure/app-configuration' - - '@azure/cosmos' - - '@azure/data-tables' - - '@azure/identity' - - '@azure/keyvault-secrets' - - '@azure/storage-blob' - - '@capacitor/preferences' - - '@netlify/blobs' - - '@planetscale/database' - - '@react-native-async-storage/async-storage' - - '@types/node' - - '@upstash/redis' - - '@vercel/kv' - - bufferutil - - debug - - encoding - - ioredis - - rollup - - supports-color - - typescript - - uWebSockets.js - - utf-8-validate - - vite - dev: true + util@0.12.5: + resolution: {integrity: sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==} - /@multiplechain/types@0.1.67: - resolution: - { - integrity: sha512-8TN5HhDC7lILh7wDKneJFS1Nyvxa+YGi0L56m6jnj0mBmTmwxNN42W5tP/3KYUlsfTHqb64iijjXMTLYZ0x+Dg== - } + web3-errors@1.1.4: + resolution: {integrity: sha512-WahtszSqILez+83AxGecVroyZsMuuRT+KmQp4Si5P4Rnqbczno1k748PCrZTS1J4UCPmXMG2/Vt+0Bz2zwXkwQ==} + engines: {node: '>=14', npm: '>=6.12.0'} - /@multiplechain/utils@0.1.21: - resolution: - { - integrity: sha512-4mRlnhvXcS+7Hb1By5s2eoCH02kqOSQzV8qj0DHqZK20FtxtduaoGCtcClrFgEjN/HAXnHgdDc1pxTpveIkvRQ== - } - dependencies: - '@types/ws': 8.5.10 - bignumber.js: 9.1.2 - web3-utils: 4.2.1 - ws: 8.16.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) - transitivePeerDependencies: - - bufferutil - - utf-8-validate + web3-types@1.5.0: + resolution: {integrity: sha512-geWuMIeegQ8AedKAO6wO4G4j1gyQ1F/AyKLMw2vud4bsfZayyzWJgCMDZtjYMm5uo2a7i8j1W3/4QFmzlSy5cw==} + engines: {node: '>=14', npm: '>=6.12.0'} - /@noble/curves@1.2.0: - resolution: - { - integrity: sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw== - } - dependencies: - '@noble/hashes': 1.3.2 - dev: true + web3-utils@4.2.1: + resolution: {integrity: sha512-Fk29BlEqD9Q9Cnw4pBkKw7czcXiRpsSco/BzEUl4ye0ZTSHANQFfjsfQmNm4t7uY11u6Ah+8F3tNjBeU4CA80A==} + engines: {node: '>=14', npm: '>=6.12.0'} - /@noble/curves@1.3.0: - resolution: - { - integrity: sha512-t01iSXPuN+Eqzb4eBX0S5oubSqXbK/xXa1Ne18Hj8f9pStxztHCE2gfboSp/dZRLSqfuLpRK2nDXDK+W9puocA== - } - dependencies: - '@noble/hashes': 1.3.3 + web3-validator@2.0.4: + resolution: {integrity: sha512-qRxVePwdW+SByOmTpDZFWHIUAa7PswvxNszrOua6BoGqAhERo5oJZBN+EbWtK/+O+ApNxt5FR3nCPmiZldiOQA==} + engines: {node: '>=14', npm: '>=6.12.0'} - /@noble/curves@1.4.0: - resolution: - { - integrity: sha512-p+4cb332SFCrReJkCYe8Xzm0OWi4Jji5jVdIZRL/PmacmDkFNw6MrrV+gGpiPxLHbV+zKFRywUWbaseT+tZRXg== - } - dependencies: - '@noble/hashes': 1.4.0 - dev: true + which-typed-array@1.1.15: + resolution: {integrity: sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==} + engines: {node: '>= 0.4'} - /@noble/hashes@1.3.2: - resolution: - { - integrity: sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ== - } - engines: { node: '>= 16' } - dev: true - - /@noble/hashes@1.3.3: - resolution: - { - integrity: sha512-V7/fPHgl+jsVPXqqeOzT8egNj2iBIVt+ECeMMG8TdcnTikP3oaBtUVqpT/gYCR68aEBJSF+XbYUxStjbFMqIIA== - } - engines: { node: '>= 16' } - - /@noble/hashes@1.4.0: - resolution: - { - integrity: sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg== - } - engines: { node: '>= 16' } - dev: true - - /@noble/secp256k1@1.7.1: - resolution: - { - integrity: sha512-hOUk6AyBFmqVrv7k5WAw/LpszxVbj9gGN4JRkIX52fdFAj1UA61KXmZDvqVEm+pOyec3+fIeZB02LYa/pWOArw== - } - dev: true - - /@parcel/watcher-android-arm64@2.4.1: - resolution: - { - integrity: sha512-LOi/WTbbh3aTn2RYddrO8pnapixAziFl6SMxHM69r3tvdSm94JtCenaKgk1GRg5FJ5wpMCpHeW+7yqPlvZv7kg== - } - engines: { node: '>= 10.0.0' } - cpu: [arm64] - os: [android] - requiresBuild: true - dev: true - optional: true - - /@parcel/watcher-darwin-arm64@2.4.1: - resolution: - { - integrity: sha512-ln41eihm5YXIY043vBrrHfn94SIBlqOWmoROhsMVTSXGh0QahKGy77tfEywQ7v3NywyxBBkGIfrWRHm0hsKtzA== - } - engines: { node: '>= 10.0.0' } - cpu: [arm64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /@parcel/watcher-darwin-x64@2.4.1: - resolution: - { - integrity: sha512-yrw81BRLjjtHyDu7J61oPuSoeYWR3lDElcPGJyOvIXmor6DEo7/G2u1o7I38cwlcoBHQFULqF6nesIX3tsEXMg== - } - engines: { node: '>= 10.0.0' } - cpu: [x64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /@parcel/watcher-freebsd-x64@2.4.1: - resolution: - { - integrity: sha512-TJa3Pex/gX3CWIx/Co8k+ykNdDCLx+TuZj3f3h7eOjgpdKM+Mnix37RYsYU4LHhiYJz3DK5nFCCra81p6g050w== - } - engines: { node: '>= 10.0.0' } - cpu: [x64] - os: [freebsd] - requiresBuild: true - dev: true - optional: true - - /@parcel/watcher-linux-arm-glibc@2.4.1: - resolution: - { - integrity: sha512-4rVYDlsMEYfa537BRXxJ5UF4ddNwnr2/1O4MHM5PjI9cvV2qymvhwZSFgXqbS8YoTk5i/JR0L0JDs69BUn45YA== - } - engines: { node: '>= 10.0.0' } - cpu: [arm] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@parcel/watcher-linux-arm64-glibc@2.4.1: - resolution: - { - integrity: sha512-BJ7mH985OADVLpbrzCLgrJ3TOpiZggE9FMblfO65PlOCdG++xJpKUJ0Aol74ZUIYfb8WsRlUdgrZxKkz3zXWYA== - } - engines: { node: '>= 10.0.0' } - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@parcel/watcher-linux-arm64-musl@2.4.1: - resolution: - { - integrity: sha512-p4Xb7JGq3MLgAfYhslU2SjoV9G0kI0Xry0kuxeG/41UfpjHGOhv7UoUDAz/jb1u2elbhazy4rRBL8PegPJFBhA== - } - engines: { node: '>= 10.0.0' } - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@parcel/watcher-linux-x64-glibc@2.4.1: - resolution: - { - integrity: sha512-s9O3fByZ/2pyYDPoLM6zt92yu6P4E39a03zvO0qCHOTjxmt3GHRMLuRZEWhWLASTMSrrnVNWdVI/+pUElJBBBg== - } - engines: { node: '>= 10.0.0' } - cpu: [x64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@parcel/watcher-linux-x64-musl@2.4.1: - resolution: - { - integrity: sha512-L2nZTYR1myLNST0O632g0Dx9LyMNHrn6TOt76sYxWLdff3cB22/GZX2UPtJnaqQPdCRoszoY5rcOj4oMTtp5fQ== - } - engines: { node: '>= 10.0.0' } - cpu: [x64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@parcel/watcher-wasm@2.4.1: - resolution: - { - integrity: sha512-/ZR0RxqxU/xxDGzbzosMjh4W6NdYFMqq2nvo2b8SLi7rsl/4jkL8S5stIikorNkdR50oVDvqb/3JT05WM+CRRA== - } - engines: { node: '>= 10.0.0' } - dependencies: - is-glob: 4.0.3 - micromatch: 4.0.7 - napi-wasm: 1.1.0 - dev: true - bundledDependencies: - - napi-wasm - - /@parcel/watcher-win32-arm64@2.4.1: - resolution: - { - integrity: sha512-Uq2BPp5GWhrq/lcuItCHoqxjULU1QYEcyjSO5jqqOK8RNFDBQnenMMx4gAl3v8GiWa59E9+uDM7yZ6LxwUIfRg== - } - engines: { node: '>= 10.0.0' } - cpu: [arm64] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /@parcel/watcher-win32-ia32@2.4.1: - resolution: - { - integrity: sha512-maNRit5QQV2kgHFSYwftmPBxiuK5u4DXjbXx7q6eKjq5dsLXZ4FJiVvlcw35QXzk0KrUecJmuVFbj4uV9oYrcw== - } - engines: { node: '>= 10.0.0' } - cpu: [ia32] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /@parcel/watcher-win32-x64@2.4.1: - resolution: - { - integrity: sha512-+DvS92F9ezicfswqrvIRM2njcYJbd5mb9CUgtrHCHmvn7pPPa+nMDRu1o1bYYz/l5IB2NVGNJWiH7h1E58IF2A== - } - engines: { node: '>= 10.0.0' } - cpu: [x64] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /@parcel/watcher@2.4.1: - resolution: - { - integrity: sha512-HNjmfLQEVRZmHRET336f20H/8kOozUGwk7yajvsonjNxbj2wBTK1WsQuHkD5yYh9RxFGL2EyDHryOihOwUoKDA== - } - engines: { node: '>= 10.0.0' } - dependencies: - detect-libc: 1.0.3 - is-glob: 4.0.3 - micromatch: 4.0.7 - node-addon-api: 7.1.0 - optionalDependencies: - '@parcel/watcher-android-arm64': 2.4.1 - '@parcel/watcher-darwin-arm64': 2.4.1 - '@parcel/watcher-darwin-x64': 2.4.1 - '@parcel/watcher-freebsd-x64': 2.4.1 - '@parcel/watcher-linux-arm-glibc': 2.4.1 - '@parcel/watcher-linux-arm64-glibc': 2.4.1 - '@parcel/watcher-linux-arm64-musl': 2.4.1 - '@parcel/watcher-linux-x64-glibc': 2.4.1 - '@parcel/watcher-linux-x64-musl': 2.4.1 - '@parcel/watcher-win32-arm64': 2.4.1 - '@parcel/watcher-win32-ia32': 2.4.1 - '@parcel/watcher-win32-x64': 2.4.1 - dev: true - - /@rollup/plugin-inject@5.0.5: - resolution: - { - integrity: sha512-2+DEJbNBoPROPkgTDNe8/1YXWcqxbN5DTjASVIOx8HS+pITXushyNiBV56RB08zuptzz8gT3YfkqriTBVycepg== - } - engines: { node: '>=14.0.0' } - peerDependencies: - rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true - dependencies: - '@rollup/pluginutils': 5.1.0 - estree-walker: 2.0.2 - magic-string: 0.30.10 - dev: true - - /@rollup/pluginutils@5.1.0: - resolution: - { - integrity: sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g== - } - engines: { node: '>=14.0.0' } - peerDependencies: - rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true - dependencies: - '@types/estree': 1.0.5 - estree-walker: 2.0.2 - picomatch: 2.3.1 - dev: true - - /@rollup/rollup-android-arm-eabi@4.18.0: - resolution: - { - integrity: sha512-Tya6xypR10giZV1XzxmH5wr25VcZSncG0pZIjfePT0OVBvqNEurzValetGNarVrGiq66EBVAFn15iYX4w6FKgQ== - } - cpu: [arm] - os: [android] - requiresBuild: true - dev: true + ws@8.16.0: + resolution: {integrity: sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: optional: true - - /@rollup/rollup-android-arm64@4.18.0: - resolution: - { - integrity: sha512-avCea0RAP03lTsDhEyfy+hpfr85KfyTctMADqHVhLAF3MlIkq83CP8UfAHUssgXTYd+6er6PaAhx/QGv4L1EiA== - } - cpu: [arm64] - os: [android] - requiresBuild: true - dev: true - optional: true - - /@rollup/rollup-darwin-arm64@4.18.0: - resolution: - { - integrity: sha512-IWfdwU7KDSm07Ty0PuA/W2JYoZ4iTj3TUQjkVsO/6U+4I1jN5lcR71ZEvRh52sDOERdnNhhHU57UITXz5jC1/w== - } - cpu: [arm64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /@rollup/rollup-darwin-x64@4.18.0: - resolution: - { - integrity: sha512-n2LMsUz7Ynu7DoQrSQkBf8iNrjOGyPLrdSg802vk6XT3FtsgX6JbE8IHRvposskFm9SNxzkLYGSq9QdpLYpRNA== - } - cpu: [x64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /@rollup/rollup-linux-arm-gnueabihf@4.18.0: - resolution: - { - integrity: sha512-C/zbRYRXFjWvz9Z4haRxcTdnkPt1BtCkz+7RtBSuNmKzMzp3ZxdM28Mpccn6pt28/UWUCTXa+b0Mx1k3g6NOMA== - } - cpu: [arm] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@rollup/rollup-linux-arm-musleabihf@4.18.0: - resolution: - { - integrity: sha512-l3m9ewPgjQSXrUMHg93vt0hYCGnrMOcUpTz6FLtbwljo2HluS4zTXFy2571YQbisTnfTKPZ01u/ukJdQTLGh9A== - } - cpu: [arm] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@rollup/rollup-linux-arm64-gnu@4.18.0: - resolution: - { - integrity: sha512-rJ5D47d8WD7J+7STKdCUAgmQk49xuFrRi9pZkWoRD1UeSMakbcepWXPF8ycChBoAqs1pb2wzvbY6Q33WmN2ftw== - } - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@rollup/rollup-linux-arm64-musl@4.18.0: - resolution: - { - integrity: sha512-be6Yx37b24ZwxQ+wOQXXLZqpq4jTckJhtGlWGZs68TgdKXJgw54lUUoFYrg6Zs/kjzAQwEwYbp8JxZVzZLRepQ== - } - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@rollup/rollup-linux-powerpc64le-gnu@4.18.0: - resolution: - { - integrity: sha512-hNVMQK+qrA9Todu9+wqrXOHxFiD5YmdEi3paj6vP02Kx1hjd2LLYR2eaN7DsEshg09+9uzWi2W18MJDlG0cxJA== - } - cpu: [ppc64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@rollup/rollup-linux-riscv64-gnu@4.18.0: - resolution: - { - integrity: sha512-ROCM7i+m1NfdrsmvwSzoxp9HFtmKGHEqu5NNDiZWQtXLA8S5HBCkVvKAxJ8U+CVctHwV2Gb5VUaK7UAkzhDjlg== - } - cpu: [riscv64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@rollup/rollup-linux-s390x-gnu@4.18.0: - resolution: - { - integrity: sha512-0UyyRHyDN42QL+NbqevXIIUnKA47A+45WyasO+y2bGJ1mhQrfrtXUpTxCOrfxCR4esV3/RLYyucGVPiUsO8xjg== - } - cpu: [s390x] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@rollup/rollup-linux-x64-gnu@4.18.0: - resolution: - { - integrity: sha512-xuglR2rBVHA5UsI8h8UbX4VJ470PtGCf5Vpswh7p2ukaqBGFTnsfzxUBetoWBWymHMxbIG0Cmx7Y9qDZzr648w== - } - cpu: [x64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@rollup/rollup-linux-x64-musl@4.18.0: - resolution: - { - integrity: sha512-LKaqQL9osY/ir2geuLVvRRs+utWUNilzdE90TpyoX0eNqPzWjRm14oMEE+YLve4k/NAqCdPkGYDaDF5Sw+xBfg== - } - cpu: [x64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@rollup/rollup-win32-arm64-msvc@4.18.0: - resolution: - { - integrity: sha512-7J6TkZQFGo9qBKH0pk2cEVSRhJbL6MtfWxth7Y5YmZs57Pi+4x6c2dStAUvaQkHQLnEQv1jzBUW43GvZW8OFqA== - } - cpu: [arm64] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /@rollup/rollup-win32-ia32-msvc@4.18.0: - resolution: - { - integrity: sha512-Txjh+IxBPbkUB9+SXZMpv+b/vnTEtFyfWZgJ6iyCmt2tdx0OF5WhFowLmnh8ENGNpfUlUZkdI//4IEmhwPieNg== - } - cpu: [ia32] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /@rollup/rollup-win32-x64-msvc@4.18.0: - resolution: - { - integrity: sha512-UOo5FdvOL0+eIVTgS4tIdbW+TtnBLWg1YBCcU2KWM7nuNwRz9bksDX1bekJJCpu25N1DVWaCwnT39dVQxzqS8g== - } - cpu: [x64] - os: [win32] - requiresBuild: true - dev: true + utf-8-validate: optional: true - /@rushstack/node-core-library@4.0.2: - resolution: - { - integrity: sha512-hyES82QVpkfQMeBMteQUnrhASL/KHPhd7iJ8euduwNJG4mu2GSOKybf0rOEjOm1Wz7CwJEUm9y0yD7jg2C1bfg== - } - peerDependencies: - '@types/node': '*' - peerDependenciesMeta: - '@types/node': - optional: true - dependencies: - fs-extra: 7.0.1 - import-lazy: 4.0.0 - jju: 1.4.0 - resolve: 1.22.8 - semver: 7.5.4 - z-schema: 5.0.5 - dev: true - - /@rushstack/rig-package@0.5.2: - resolution: - { - integrity: sha512-mUDecIJeH3yYGZs2a48k+pbhM6JYwWlgjs2Ca5f2n1G2/kgdgP9D/07oglEGf6mRyXEnazhEENeYTSNDRCwdqA== - } - dependencies: - resolve: 1.22.8 - strip-json-comments: 3.1.1 - dev: true - - /@rushstack/terminal@0.10.0: - resolution: - { - integrity: sha512-UbELbXnUdc7EKwfH2sb8ChqNgapUOdqcCIdQP4NGxBpTZV2sQyeekuK3zmfQSa/MN+/7b4kBogl2wq0vpkpYGw== - } - peerDependencies: - '@types/node': '*' - peerDependenciesMeta: - '@types/node': - optional: true - dependencies: - '@rushstack/node-core-library': 4.0.2 - supports-color: 8.1.1 - dev: true - - /@rushstack/ts-command-line@4.19.1: - resolution: - { - integrity: sha512-J7H768dgcpG60d7skZ5uSSwyCZs/S2HrWP1Ds8d1qYAyaaeJmpmmLr9BVw97RjFzmQPOYnoXcKA4GkqDCkduQg== - } - dependencies: - '@rushstack/terminal': 0.10.0 - '@types/argparse': 1.0.38 - argparse: 1.0.10 - string-argv: 0.3.2 - transitivePeerDependencies: - - '@types/node' - dev: true - - /@scure/base@1.1.6: - resolution: - { - integrity: sha512-ok9AWwhcgYuGG3Zfhyqg+zwl+Wn5uE+dwC0NV/2qQkx4dABbb/bx96vWu8NSj+BNjjSjno+JRYRjle1jV08k3g== - } - - /@scure/bip32@1.3.3: - resolution: - { - integrity: sha512-LJaN3HwRbfQK0X1xFSi0Q9amqOgzQnnDngIt+ZlsBC3Bm7/nE7K0kwshZHyaru79yIVRv/e1mQAjZyuZG6jOFQ== - } - dependencies: - '@noble/curves': 1.3.0 - '@noble/hashes': 1.3.3 - '@scure/base': 1.1.6 - - /@scure/bip39@1.2.2: - resolution: - { - integrity: sha512-HYf9TUXG80beW+hGAt3TRM8wU6pQoYur9iNypTROm42dorCGmLnFe3eWjz3gOq6G62H2WRh0FCzAR1PI+29zIA== - } - dependencies: - '@noble/hashes': 1.3.3 - '@scure/base': 1.1.6 - - /@solana/buffer-layout@4.0.1: - resolution: - { - integrity: sha512-E1ImOIAD1tBZFRdjeM4/pzTiTApC0AOBGwyAMS4fwIodCWArzJ3DWdoh8cKxeFM2fElkxBh2Aqts1BPC373rHA== - } - engines: { node: '>=5.10' } - dependencies: - buffer: 6.0.3 - dev: true - - /@solana/web3.js@1.91.8: - resolution: - { - integrity: sha512-USa6OS1jbh8zOapRJ/CBZImZ8Xb7AJjROZl5adql9TpOoBN9BUzyyouS5oPuZHft7S7eB8uJPuXWYjMi6BHgOw== - } - dependencies: - '@babel/runtime': 7.24.6 - '@noble/curves': 1.4.0 - '@noble/hashes': 1.4.0 - '@solana/buffer-layout': 4.0.1 - agentkeepalive: 4.5.0 - bigint-buffer: 1.1.5 - bn.js: 5.2.1 - borsh: 0.7.0 - bs58: 4.0.1 - buffer: 6.0.3 - fast-stable-stringify: 1.0.0 - jayson: 4.1.0 - node-fetch: 2.7.0 - rpc-websockets: 7.11.0 - superstruct: 0.14.2 - transitivePeerDependencies: - - bufferutil - - encoding - - utf-8-validate - dev: true - - /@stablelib/aead@1.0.1: - resolution: - { - integrity: sha512-q39ik6sxGHewqtO0nP4BuSe3db5G1fEJE8ukvngS2gLkBXyy6E7pLubhbYgnkDFv6V8cWaxcE4Xn0t6LWcJkyg== - } - dev: true - - /@stablelib/binary@1.0.1: - resolution: - { - integrity: sha512-ClJWvmL6UBM/wjkvv/7m5VP3GMr9t0osr4yVgLZsLCOz4hGN9gIAFEqnJ0TsSMAN+n840nf2cHZnA5/KFqHC7Q== - } - dependencies: - '@stablelib/int': 1.0.1 - dev: true - - /@stablelib/bytes@1.0.1: - resolution: - { - integrity: sha512-Kre4Y4kdwuqL8BR2E9hV/R5sOrUj6NanZaZis0V6lX5yzqC3hBuVSDXUIBqQv/sCpmuWRiHLwqiT1pqqjuBXoQ== - } - dev: true - - /@stablelib/chacha20poly1305@1.0.1: - resolution: - { - 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 - dev: true - - /@stablelib/chacha@1.0.1: - resolution: - { - integrity: sha512-Pmlrswzr0pBzDofdFuVe1q7KdsHKhhU24e8gkEwnTGOmlC7PADzLVxGdn2PoNVBBabdg0l/IfLKg6sHAbTQugg== - } - dependencies: - '@stablelib/binary': 1.0.1 - '@stablelib/wipe': 1.0.1 - dev: true - - /@stablelib/constant-time@1.0.1: - resolution: - { - integrity: sha512-tNOs3uD0vSJcK6z1fvef4Y+buN7DXhzHDPqRLSXUel1UfqMB1PWNsnnAezrKfEwTLpN0cGH2p9NNjs6IqeD0eg== - } - dev: true - - /@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: true - - /@stablelib/hash@1.0.1: - resolution: - { - integrity: sha512-eTPJc/stDkdtOcrNMZ6mcMK1e6yBbqRBaNW55XA1jU8w/7QdnCF0CmMmOD1m7VSkBR44PWrMHU2l6r8YEQHMgg== - } - dev: true - - /@stablelib/hkdf@1.0.1: - resolution: - { - integrity: sha512-SBEHYE16ZXlHuaW5RcGk533YlBj4grMeg5TooN80W3NpcHRtLZLLXvKyX0qcRFxf+BGDobJLnwkvgEwHIDBR6g== - } - dependencies: - '@stablelib/hash': 1.0.1 - '@stablelib/hmac': 1.0.1 - '@stablelib/wipe': 1.0.1 - dev: true - - /@stablelib/hmac@1.0.1: - resolution: - { - integrity: sha512-V2APD9NSnhVpV/QMYgCVMIYKiYG6LSqw1S65wxVoirhU/51ACio6D4yDVSwMzuTJXWZoVHbDdINioBwKy5kVmA== - } - dependencies: - '@stablelib/constant-time': 1.0.1 - '@stablelib/hash': 1.0.1 - '@stablelib/wipe': 1.0.1 - dev: true - - /@stablelib/int@1.0.1: - resolution: - { - integrity: sha512-byr69X/sDtDiIjIV6m4roLVWnNNlRGzsvxw+agj8CIEazqWGOQp2dTYgQhtyVXV9wpO6WyXRQUzLV/JRNumT2w== - } - dev: true - - /@stablelib/keyagreement@1.0.1: - resolution: - { - integrity: sha512-VKL6xBwgJnI6l1jKrBAfn265cspaWBPAPEc62VBQrWHLqVgNRE09gQ/AnOEyKUWrrqfD+xSQ3u42gJjLDdMDQg== - } - dependencies: - '@stablelib/bytes': 1.0.1 - dev: true - - /@stablelib/poly1305@1.0.1: - resolution: - { - integrity: sha512-1HlG3oTSuQDOhSnLwJRKeTRSAdFNVB/1djy2ZbS35rBSJ/PFqx9cf9qatinWghC2UbfOYD8AcrtbUQl8WoxabA== - } - dependencies: - '@stablelib/constant-time': 1.0.1 - '@stablelib/wipe': 1.0.1 - dev: true - - /@stablelib/random@1.0.2: - resolution: - { - integrity: sha512-rIsE83Xpb7clHPVRlBj8qNe5L8ISQOzjghYQm/dZ7VaM2KHYwMW5adjQjrzTZCchFnNCNhkwtnOBa9HTMJCI8w== - } - dependencies: - '@stablelib/binary': 1.0.1 - '@stablelib/wipe': 1.0.1 - dev: true - - /@stablelib/sha256@1.0.1: - resolution: - { - integrity: sha512-GIIH3e6KH+91FqGV42Kcj71Uefd/QEe7Dy42sBTeqppXV95ggCcxLTk39bEr+lZfJmp+ghsR07J++ORkRELsBQ== - } - dependencies: - '@stablelib/binary': 1.0.1 - '@stablelib/hash': 1.0.1 - '@stablelib/wipe': 1.0.1 - dev: true - - /@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: true - - /@stablelib/wipe@1.0.1: - resolution: - { - integrity: sha512-WfqfX/eXGiAd3RJe4VU2snh/ZPwtSjLG4ynQ/vYzvghTh7dHFcI1wl+nrkWG6lGhukOxOsUHfv8dUXr58D0ayg== - } - dev: true - - /@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: true - - /@tronweb3/google-protobuf@3.21.2: - resolution: - { - integrity: sha512-IVcT2GfWX3K6tHUVhs14NP5uzKhQt4KeDya1g9ACxuZsUzsaoGUIGzceK2Ltu7xp1YV94AaHOf4yxLAivlvEkQ== - } - dev: true - - /@tronweb3/tronwallet-abstract-adapter@1.1.6: - resolution: - { - integrity: sha512-3T2ojxzSKIAw4ucEcg4p5Nwr4lN1g1Om8s1ty77DOHIa0oS1YDvZmlRQekptWEppKOoRDYFWST1ERCvt2Xxm0A== - } - engines: { node: '>=16', pnpm: '>=7' } - dependencies: - eventemitter3: 4.0.7 - dev: true - - /@tronweb3/tronwallet-adapter-bitkeep@1.1.1: - resolution: - { - integrity: sha512-Ny3I9ePL0R/oH2YjN7c+LTnCTPBe6SQDA3uyHYDWuH8R6Kdp8/t2n8sChDlu1NBQCUF3pt6THHQEUoXJkmjfJA== - } - engines: { node: '>=16', pnpm: '>=7' } - dependencies: - '@bitget-wallet/web3-sdk': 0.0.8 - '@tronweb3/tronwallet-abstract-adapter': 1.1.6 - '@tronweb3/tronwallet-adapter-tronlink': 1.1.9 - transitivePeerDependencies: - - bufferutil - - encoding - - utf-8-validate - dev: true - - /@tronweb3/tronwallet-adapter-okxwallet@1.0.3: - resolution: - { - integrity: sha512-43suyRr/RuJCueRaspSlNKxd0rMt/2VTmq5tkRF/WlxGI4CTEIEYk3NqdKBrVFobfsILOXQBiQg0cI+FF5lxtw== - } - engines: { node: '>=16', pnpm: '>=7' } - dependencies: - '@tronweb3/tronwallet-abstract-adapter': 1.1.6 - '@tronweb3/tronwallet-adapter-tronlink': 1.1.9 - dev: true - - /@tronweb3/tronwallet-adapter-tokenpocket@1.0.3: - resolution: - { - integrity: sha512-vG1JLnlH0fodTY2YdezzWJKeW2VkCERsJYTa6d9oId1dgOaiEvjIO9UbHL/kdTPs1L1M484tM6Rh6pPBJzh/gA== - } - engines: { node: '>=16', pnpm: '>=7' } - dependencies: - '@tronweb3/tronwallet-abstract-adapter': 1.1.6 - '@tronweb3/tronwallet-adapter-tronlink': 1.1.9 - dev: true - - /@tronweb3/tronwallet-adapter-tronlink@1.1.9: - resolution: - { - integrity: sha512-fIDKt822OmESLVeYCG9XbXGI34lM/79/jzJ3rd81xOZD8y7V0/DuDLdg5gFiCH4g9OIutKslDXiwoMpQry9O3w== - } - engines: { node: '>=16', pnpm: '>=7' } - dependencies: - '@tronweb3/tronwallet-abstract-adapter': 1.1.6 - dev: true - - /@types/argparse@1.0.38: - resolution: - { - integrity: sha512-ebDJ9b0e702Yr7pWgB0jzm+CX4Srzz8RcXtLJDJB+BSccqMa36uyH/zUsSYao5+BD1ytv3k3rPYCq4mAE1hsXA== - } - dev: true - - /@types/connect@3.4.38: - resolution: - { - integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug== - } - dependencies: - '@types/node': 20.12.7 - dev: true - - /@types/debug@4.1.12: - resolution: - { - integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ== - } - dependencies: - '@types/ms': 0.7.34 - dev: true - - /@types/estree@1.0.5: - resolution: - { - integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw== - } - dev: true - - /@types/ms@0.7.34: - resolution: - { - integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g== - } - dev: true - - /@types/node@12.20.55: - resolution: - { - integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ== - } - dev: true - - /@types/node@18.15.13: - resolution: - { - integrity: sha512-N+0kuo9KgrUQ1Sn/ifDXsvg0TTleP7rIy4zOBGECxAljqvqfqpTfzx0Q1NUedOixRMBfe2Whhb056a42cWs26Q== - } - dev: true - - /@types/node@20.12.7: - resolution: - { - integrity: sha512-wq0cICSkRLVaf3UGLMGItu/PtdY7oaXaI/RVU+xliKVOtRna3PRY57ZDfztpDL0n11vfymMUnXv8QwYCO7L1wg== - } - dependencies: - undici-types: 5.26.5 - - /@types/trusted-types@2.0.7: - resolution: - { - integrity: sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw== - } - dev: true - - /@types/ws@7.4.7: - resolution: - { - integrity: sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww== - } - dependencies: - '@types/node': 20.12.7 - dev: true - - /@types/ws@8.5.10: - resolution: - { - integrity: sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A== - } - dependencies: - '@types/node': 20.12.7 - - /@volar/language-core@1.11.1: - resolution: - { - integrity: sha512-dOcNn3i9GgZAcJt43wuaEykSluAuOkQgzni1cuxLxTV0nJKanQztp7FxyswdRILaKH+P2XZMPRp2S4MV/pElCw== - } - dependencies: - '@volar/source-map': 1.11.1 - dev: true - - /@volar/source-map@1.11.1: - resolution: - { - integrity: sha512-hJnOnwZ4+WT5iupLRnuzbULZ42L7BWWPMmruzwtLhJfpDVoZLjNBxHDi2sY2bgZXCKlpU5XcsMFoYrsQmPhfZg== - } - dependencies: - muggle-string: 0.3.1 - dev: true - - /@volar/typescript@1.11.1: - resolution: - { - integrity: sha512-iU+t2mas/4lYierSnoFOeRFQUhAEMgsFuQxoxvwn5EdQopw43j+J27a4lt9LMInx1gLJBC6qL14WYGlgymaSMQ== - } - dependencies: - '@volar/language-core': 1.11.1 - path-browserify: 1.0.1 - dev: true - - /@vue/compiler-core@3.4.27: - resolution: - { - integrity: sha512-E+RyqY24KnyDXsCuQrI+mlcdW3ALND6U7Gqa/+bVwbcpcR3BRRIckFoz7Qyd4TTlnugtwuI7YgjbvsLmxb+yvg== - } - dependencies: - '@babel/parser': 7.24.6 - '@vue/shared': 3.4.27 - entities: 4.5.0 - estree-walker: 2.0.2 - source-map-js: 1.2.0 - dev: true - - /@vue/compiler-dom@3.4.27: - resolution: - { - integrity: sha512-kUTvochG/oVgE1w5ViSr3KUBh9X7CWirebA3bezTbB5ZKBQZwR2Mwj9uoSKRMFcz4gSMzzLXBPD6KpCLb9nvWw== - } - dependencies: - '@vue/compiler-core': 3.4.27 - '@vue/shared': 3.4.27 - dev: true - - /@vue/language-core@1.8.27(typescript@5.4.5): - resolution: - { - integrity: sha512-L8Kc27VdQserNaCUNiSFdDl9LWT24ly8Hpwf1ECy3aFb9m6bDhBGQYOujDm21N7EW3moKIOKEanQwe1q5BK+mA== - } - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@volar/language-core': 1.11.1 - '@volar/source-map': 1.11.1 - '@vue/compiler-dom': 3.4.27 - '@vue/shared': 3.4.27 - computeds: 0.0.1 - minimatch: 9.0.4 - muggle-string: 0.3.1 - path-browserify: 1.0.1 - typescript: 5.4.5 - vue-template-compiler: 2.7.16 - dev: true - - /@vue/shared@3.4.27: - resolution: - { - integrity: sha512-DL3NmY2OFlqmYYrzp39yi3LDkKxa5vZVwxWdQ3rG0ekuWscHraeIbnI8t+aZK7qhYqEqWKTUdijadunb9pnrgA== - } - dev: true - - /@wagmi/chains@1.8.0(typescript@5.4.5): - resolution: - { - integrity: sha512-UXo0GF0Cl0+neKC2KAmVAahv8L/5rACbFRRqkDvHMefzY6Fh7yzJd8F4GaGNNG3w4hj8eUB/E3+dEpaTYDN62w== - } - peerDependencies: - typescript: '>=5.0.4' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - typescript: 5.4.5 - dev: true - - /@walletconnect/core@2.13.0: - resolution: - { - integrity: sha512-blDuZxQenjeXcVJvHxPznTNl6c/2DO4VNrFnus+qHmO6OtT5lZRowdMtlCaCNb1q0OxzgrmBDcTOCbFcCpio/g== - } - dependencies: - '@walletconnect/heartbeat': 1.2.2 - '@walletconnect/jsonrpc-provider': 1.0.14 - '@walletconnect/jsonrpc-types': 1.0.4 - '@walletconnect/jsonrpc-utils': 1.0.8 - '@walletconnect/jsonrpc-ws-connection': 1.0.14 - '@walletconnect/keyvaluestorage': 1.1.1 - '@walletconnect/logger': 2.1.2 - '@walletconnect/relay-api': 1.0.10 - '@walletconnect/relay-auth': 1.0.4 - '@walletconnect/safe-json': 1.0.2 - '@walletconnect/time': 1.0.2 - '@walletconnect/types': 2.13.0 - '@walletconnect/utils': 2.13.0 - events: 3.3.0 - isomorphic-unfetch: 3.1.0 - lodash.isequal: 4.5.0 - uint8arrays: 3.1.0 - transitivePeerDependencies: - - '@azure/app-configuration' - - '@azure/cosmos' - - '@azure/data-tables' - - '@azure/identity' - - '@azure/keyvault-secrets' - - '@azure/storage-blob' - - '@capacitor/preferences' - - '@netlify/blobs' - - '@planetscale/database' - - '@react-native-async-storage/async-storage' - - '@upstash/redis' - - '@vercel/kv' - - bufferutil - - encoding - - ioredis - - uWebSockets.js - - utf-8-validate - dev: true - - /@walletconnect/encoding@1.0.2: - resolution: - { - integrity: sha512-CrwSBrjqJ7rpGQcTL3kU+Ief+Bcuu9PH6JLOb+wM6NITX1GTxR/MfNwnQfhLKK6xpRAyj2/nM04OOH6wS8Imag== - } - dependencies: - is-typedarray: 1.0.0 - tslib: 1.14.1 - typedarray-to-buffer: 3.1.5 - dev: true - - /@walletconnect/environment@1.0.1: - resolution: - { - integrity: sha512-T426LLZtHj8e8rYnKfzsw1aG6+M0BT1ZxayMdv/p8yM0MU+eJDISqNY3/bccxRr4LrF9csq02Rhqt08Ibl0VRg== - } - dependencies: - tslib: 1.14.1 - dev: true - - /@walletconnect/ethereum-provider@2.13.0(react@18.3.1): - resolution: - { - integrity: sha512-dnpW8mmLpWl1AZUYGYZpaAfGw1HFkL0WSlhk5xekx3IJJKn4pLacX2QeIOo0iNkzNQxZfux1AK4Grl1DvtzZEA== - } - dependencies: - '@walletconnect/jsonrpc-http-connection': 1.0.8 - '@walletconnect/jsonrpc-provider': 1.0.14 - '@walletconnect/jsonrpc-types': 1.0.4 - '@walletconnect/jsonrpc-utils': 1.0.8 - '@walletconnect/modal': 2.6.2(react@18.3.1) - '@walletconnect/sign-client': 2.13.0 - '@walletconnect/types': 2.13.0 - '@walletconnect/universal-provider': 2.13.0 - '@walletconnect/utils': 2.13.0 - events: 3.3.0 - transitivePeerDependencies: - - '@azure/app-configuration' - - '@azure/cosmos' - - '@azure/data-tables' - - '@azure/identity' - - '@azure/keyvault-secrets' - - '@azure/storage-blob' - - '@capacitor/preferences' - - '@netlify/blobs' - - '@planetscale/database' - - '@react-native-async-storage/async-storage' - - '@types/react' - - '@upstash/redis' - - '@vercel/kv' - - bufferutil - - encoding - - ioredis - - react - - uWebSockets.js - - utf-8-validate - dev: true - - /@walletconnect/events@1.0.1: - resolution: - { - integrity: sha512-NPTqaoi0oPBVNuLv7qPaJazmGHs5JGyO8eEAk5VGKmJzDR7AHzD4k6ilox5kxk1iwiOnFopBOOMLs86Oa76HpQ== - } - dependencies: - keyvaluestorage-interface: 1.0.0 - tslib: 1.14.1 - dev: true - - /@walletconnect/heartbeat@1.2.1: - resolution: - { - integrity: sha512-yVzws616xsDLJxuG/28FqtZ5rzrTA4gUjdEMTbWB5Y8V1XHRmqq4efAxCw5ie7WjbXFSUyBHaWlMR+2/CpQC5Q== - } - dependencies: - '@walletconnect/events': 1.0.1 - '@walletconnect/time': 1.0.2 - tslib: 1.14.1 - dev: true - - /@walletconnect/heartbeat@1.2.2: - resolution: - { - integrity: sha512-uASiRmC5MwhuRuf05vq4AT48Pq8RMi876zV8rr8cV969uTOzWdB/k+Lj5yI2PBtB1bGQisGen7MM1GcZlQTBXw== - } - dependencies: - '@walletconnect/events': 1.0.1 - '@walletconnect/time': 1.0.2 - events: 3.3.0 - dev: true - - /@walletconnect/jsonrpc-http-connection@1.0.8: - resolution: - { - integrity: sha512-+B7cRuaxijLeFDJUq5hAzNyef3e3tBDIxyaCNmFtjwnod5AGis3RToNqzFU33vpVcxFhofkpE7Cx+5MYejbMGw== - } - dependencies: - '@walletconnect/jsonrpc-utils': 1.0.8 - '@walletconnect/safe-json': 1.0.2 - cross-fetch: 3.1.8 - events: 3.3.0 - transitivePeerDependencies: - - encoding - dev: true - - /@walletconnect/jsonrpc-provider@1.0.14: - resolution: - { - integrity: sha512-rtsNY1XqHvWj0EtITNeuf8PHMvlCLiS3EjQL+WOkxEOA4KPxsohFnBDeyPYiNm4ZvkQdLnece36opYidmtbmow== - } - dependencies: - '@walletconnect/jsonrpc-utils': 1.0.8 - '@walletconnect/safe-json': 1.0.2 - events: 3.3.0 - dev: true - - /@walletconnect/jsonrpc-types@1.0.3: - resolution: - { - integrity: sha512-iIQ8hboBl3o5ufmJ8cuduGad0CQm3ZlsHtujv9Eu16xq89q+BG7Nh5VLxxUgmtpnrePgFkTwXirCTkwJH1v+Yw== - } - dependencies: - keyvaluestorage-interface: 1.0.0 - tslib: 1.14.1 - dev: true - - /@walletconnect/jsonrpc-types@1.0.4: - resolution: - { - integrity: sha512-P6679fG/M+wuWg9TY8mh6xFSdYnFyFjwFelxyISxMDrlbXokorEVXYOxiqEbrU3x1BmBoCAJJ+vtEaEoMlpCBQ== - } - dependencies: - events: 3.3.0 - keyvaluestorage-interface: 1.0.0 - dev: true - - /@walletconnect/jsonrpc-utils@1.0.8: - resolution: - { - integrity: sha512-vdeb03bD8VzJUL6ZtzRYsFMq1eZQcM3EAzT0a3st59dyLfJ0wq+tKMpmGH7HlB7waD858UWgfIcudbPFsbzVdw== - } - dependencies: - '@walletconnect/environment': 1.0.1 - '@walletconnect/jsonrpc-types': 1.0.4 - tslib: 1.14.1 - dev: true - - /@walletconnect/jsonrpc-ws-connection@1.0.14: - resolution: - { - integrity: sha512-Jsl6fC55AYcbkNVkwNM6Jo+ufsuCQRqViOQ8ZBPH9pRREHH9welbBiszuTLqEJiQcO/6XfFDl6bzCJIkrEi8XA== - } - dependencies: - '@walletconnect/jsonrpc-utils': 1.0.8 - '@walletconnect/safe-json': 1.0.2 - events: 3.3.0 - ws: 7.5.9 - transitivePeerDependencies: - - bufferutil - - utf-8-validate - dev: true - - /@walletconnect/keyvaluestorage@1.1.1: - resolution: - { - integrity: sha512-V7ZQq2+mSxAq7MrRqDxanTzu2RcElfK1PfNYiaVnJgJ7Q7G7hTVwF8voIBx92qsRyGHZihrwNPHuZd1aKkd0rA== - } - peerDependencies: - '@react-native-async-storage/async-storage': 1.x - peerDependenciesMeta: - '@react-native-async-storage/async-storage': - optional: true - dependencies: - '@walletconnect/safe-json': 1.0.2 - idb-keyval: 6.2.1 - unstorage: 1.10.2(idb-keyval@6.2.1) - transitivePeerDependencies: - - '@azure/app-configuration' - - '@azure/cosmos' - - '@azure/data-tables' - - '@azure/identity' - - '@azure/keyvault-secrets' - - '@azure/storage-blob' - - '@capacitor/preferences' - - '@netlify/blobs' - - '@planetscale/database' - - '@upstash/redis' - - '@vercel/kv' - - ioredis - - uWebSockets.js - dev: true - - /@walletconnect/legacy-modal@2.0.0: - resolution: - { - integrity: sha512-jckNd8lMhm4X7dX9TDdxM3bXKJnaqkRs6K2Mo5j6GmbIF9Eyx40jZ5+q457RVxvM6ciZEDT5s1wBHWdWoOo+9Q== - } - dependencies: - '@walletconnect/legacy-types': 2.0.0 - '@walletconnect/legacy-utils': 2.0.0 - copy-to-clipboard: 3.3.3 - preact: 10.22.0 - qrcode: 1.5.3 - dev: true - - /@walletconnect/legacy-types@2.0.0: - resolution: - { - integrity: sha512-sOVrA7HUdbI1OwKyPOQU0/DdvTSVFlsXWpAk2K2WvP2erTkBWPMTJq6cv2BmKdoJ3p6gLApT7sd+jHi3OF71uw== - } - dependencies: - '@walletconnect/jsonrpc-types': 1.0.4 - dev: true - - /@walletconnect/legacy-utils@2.0.0: - resolution: - { - integrity: sha512-CPWxSVVXw0kgNCxvU126g4GiV3mzXmC8IPJ15twE46aJ1FX+RHEIfAzFMFz2F2+fEhBxL63A7dwNQKDXorRPcQ== - } - dependencies: - '@walletconnect/encoding': 1.0.2 - '@walletconnect/jsonrpc-utils': 1.0.8 - '@walletconnect/legacy-types': 2.0.0 - '@walletconnect/safe-json': 1.0.2 - '@walletconnect/window-getters': 1.0.1 - '@walletconnect/window-metadata': 1.0.1 - detect-browser: 5.3.0 - query-string: 6.14.1 - dev: true - - /@walletconnect/logger@2.1.2: - resolution: - { - integrity: sha512-aAb28I3S6pYXZHQm5ESB+V6rDqIYfsnHaQyzFbwUUBFY4H0OXx/YtTl8lvhUNhMMfb9UxbwEBS253TlXUYJWSw== - } - dependencies: - '@walletconnect/safe-json': 1.0.2 - pino: 7.11.0 - dev: true - - /@walletconnect/modal-core@2.6.2(react@18.3.1): - resolution: - { - integrity: sha512-cv8ibvdOJQv2B+nyxP9IIFdxvQznMz8OOr/oR/AaUZym4hjXNL/l1a2UlSQBXrVjo3xxbouMxLb3kBsHoYP2CA== - } - dependencies: - valtio: 1.11.2(react@18.3.1) - transitivePeerDependencies: - - '@types/react' - - react - dev: true - - /@walletconnect/modal-ui@2.6.2(react@18.3.1): - resolution: - { - integrity: sha512-rbdstM1HPGvr7jprQkyPggX7rP4XiCG85ZA+zWBEX0dVQg8PpAgRUqpeub4xQKDgY7pY/xLRXSiCVdWGqvG2HA== - } - dependencies: - '@walletconnect/modal-core': 2.6.2(react@18.3.1) - lit: 2.8.0 - motion: 10.16.2 - qrcode: 1.5.3 - transitivePeerDependencies: - - '@types/react' - - react - dev: true - - /@walletconnect/modal@2.6.2(react@18.3.1): - resolution: - { - integrity: sha512-eFopgKi8AjKf/0U4SemvcYw9zlLpx9njVN8sf6DAkowC2Md0gPU/UNEbH1Wwj407pEKnEds98pKWib1NN1ACoA== - } - dependencies: - '@walletconnect/modal-core': 2.6.2(react@18.3.1) - '@walletconnect/modal-ui': 2.6.2(react@18.3.1) - transitivePeerDependencies: - - '@types/react' - - react - dev: true - - /@walletconnect/relay-api@1.0.10: - resolution: - { - integrity: sha512-tqrdd4zU9VBNqUaXXQASaexklv6A54yEyQQEXYOCr+Jz8Ket0dmPBDyg19LVSNUN2cipAghQc45/KVmfFJ0cYw== - } - dependencies: - '@walletconnect/jsonrpc-types': 1.0.4 - dev: true - - /@walletconnect/relay-auth@1.0.4: - resolution: - { - integrity: sha512-kKJcS6+WxYq5kshpPaxGHdwf5y98ZwbfuS4EE/NkQzqrDFm5Cj+dP8LofzWvjrrLkZq7Afy7WrQMXdLy8Sx7HQ== - } - dependencies: - '@stablelib/ed25519': 1.0.3 - '@stablelib/random': 1.0.2 - '@walletconnect/safe-json': 1.0.2 - '@walletconnect/time': 1.0.2 - tslib: 1.14.1 - uint8arrays: 3.1.0 - dev: true - - /@walletconnect/safe-json@1.0.2: - resolution: - { - integrity: sha512-Ogb7I27kZ3LPC3ibn8ldyUr5544t3/STow9+lzz7Sfo808YD7SBWk7SAsdBFlYgP2zDRy2hS3sKRcuSRM0OTmA== - } - dependencies: - tslib: 1.14.1 - dev: true - - /@walletconnect/sign-client@2.13.0: - resolution: - { - integrity: sha512-En7KSvNUlQFx20IsYGsFgkNJ2lpvDvRsSFOT5PTdGskwCkUfOpB33SQJ6nCrN19gyoKPNvWg80Cy6MJI0TjNYA== - } - dependencies: - '@walletconnect/core': 2.13.0 - '@walletconnect/events': 1.0.1 - '@walletconnect/heartbeat': 1.2.2 - '@walletconnect/jsonrpc-utils': 1.0.8 - '@walletconnect/logger': 2.1.2 - '@walletconnect/time': 1.0.2 - '@walletconnect/types': 2.13.0 - '@walletconnect/utils': 2.13.0 - events: 3.3.0 - transitivePeerDependencies: - - '@azure/app-configuration' - - '@azure/cosmos' - - '@azure/data-tables' - - '@azure/identity' - - '@azure/keyvault-secrets' - - '@azure/storage-blob' - - '@capacitor/preferences' - - '@netlify/blobs' - - '@planetscale/database' - - '@react-native-async-storage/async-storage' - - '@upstash/redis' - - '@vercel/kv' - - bufferutil - - encoding - - ioredis - - uWebSockets.js - - utf-8-validate - dev: true - - /@walletconnect/time@1.0.2: - resolution: - { - integrity: sha512-uzdd9woDcJ1AaBZRhqy5rNC9laqWGErfc4dxA9a87mPdKOgWMD85mcFo9dIYIts/Jwocfwn07EC6EzclKubk/g== - } - dependencies: - tslib: 1.14.1 - dev: true - - /@walletconnect/types@2.12.0: - resolution: - { - integrity: sha512-uhB3waGmujQVJcPgJvGOpB8RalgYSBT+HpmVbfl4Qe0xJyqpRUo4bPjQa0UYkrHaW20xIw94OuP4+FMLYdeemg== - } - dependencies: - '@walletconnect/events': 1.0.1 - '@walletconnect/heartbeat': 1.2.1 - '@walletconnect/jsonrpc-types': 1.0.3 - '@walletconnect/keyvaluestorage': 1.1.1 - '@walletconnect/logger': 2.1.2 - events: 3.3.0 - transitivePeerDependencies: - - '@azure/app-configuration' - - '@azure/cosmos' - - '@azure/data-tables' - - '@azure/identity' - - '@azure/keyvault-secrets' - - '@azure/storage-blob' - - '@capacitor/preferences' - - '@netlify/blobs' - - '@planetscale/database' - - '@react-native-async-storage/async-storage' - - '@upstash/redis' - - '@vercel/kv' - - ioredis - - uWebSockets.js - dev: true - - /@walletconnect/types@2.13.0: - resolution: - { - integrity: sha512-MWaVT0FkZwzYbD3tvk8F+2qpPlz1LUSWHuqbINUtMXnSzJtXN49Y99fR7FuBhNFtDalfuWsEK17GrNA+KnAsPQ== - } - dependencies: - '@walletconnect/events': 1.0.1 - '@walletconnect/heartbeat': 1.2.2 - '@walletconnect/jsonrpc-types': 1.0.4 - '@walletconnect/keyvaluestorage': 1.1.1 - '@walletconnect/logger': 2.1.2 - events: 3.3.0 - transitivePeerDependencies: - - '@azure/app-configuration' - - '@azure/cosmos' - - '@azure/data-tables' - - '@azure/identity' - - '@azure/keyvault-secrets' - - '@azure/storage-blob' - - '@capacitor/preferences' - - '@netlify/blobs' - - '@planetscale/database' - - '@react-native-async-storage/async-storage' - - '@upstash/redis' - - '@vercel/kv' - - ioredis - - uWebSockets.js - dev: true - - /@walletconnect/universal-provider@2.13.0: - resolution: - { - integrity: sha512-B5QvO8pnk5Bqn4aIt0OukGEQn2Auk9VbHfhQb9cGwgmSCd1GlprX/Qblu4gyT5+TjHMb1Gz5UssUaZWTWbDhBg== - } - dependencies: - '@walletconnect/jsonrpc-http-connection': 1.0.8 - '@walletconnect/jsonrpc-provider': 1.0.14 - '@walletconnect/jsonrpc-types': 1.0.4 - '@walletconnect/jsonrpc-utils': 1.0.8 - '@walletconnect/logger': 2.1.2 - '@walletconnect/sign-client': 2.13.0 - '@walletconnect/types': 2.13.0 - '@walletconnect/utils': 2.13.0 - events: 3.3.0 - transitivePeerDependencies: - - '@azure/app-configuration' - - '@azure/cosmos' - - '@azure/data-tables' - - '@azure/identity' - - '@azure/keyvault-secrets' - - '@azure/storage-blob' - - '@capacitor/preferences' - - '@netlify/blobs' - - '@planetscale/database' - - '@react-native-async-storage/async-storage' - - '@upstash/redis' - - '@vercel/kv' - - bufferutil - - encoding - - ioredis - - uWebSockets.js - - utf-8-validate - dev: true - - /@walletconnect/utils@2.12.0: - resolution: - { - integrity: sha512-GIpfHUe1Bjp1Tjda0SkJEizKOT2biuv7VPFnKsOLT1T+8QxEP9NruC+K2UUEvijS1Qr/LKH9P5004RYNgrch+w== - } - 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/relay-api': 1.0.10 - '@walletconnect/safe-json': 1.0.2 - '@walletconnect/time': 1.0.2 - '@walletconnect/types': 2.12.0 - '@walletconnect/window-getters': 1.0.1 - '@walletconnect/window-metadata': 1.0.1 - detect-browser: 5.3.0 - query-string: 7.1.3 - uint8arrays: 3.1.1 - transitivePeerDependencies: - - '@azure/app-configuration' - - '@azure/cosmos' - - '@azure/data-tables' - - '@azure/identity' - - '@azure/keyvault-secrets' - - '@azure/storage-blob' - - '@capacitor/preferences' - - '@netlify/blobs' - - '@planetscale/database' - - '@react-native-async-storage/async-storage' - - '@upstash/redis' - - '@vercel/kv' - - ioredis - - uWebSockets.js - dev: true - - /@walletconnect/utils@2.13.0: - resolution: - { - integrity: sha512-q1eDCsRHj5iLe7fF8RroGoPZpdo2CYMZzQSrw1iqL+2+GOeqapxxuJ1vaJkmDUkwgklfB22ufqG6KQnz78sD4w== - } - 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/relay-api': 1.0.10 - '@walletconnect/safe-json': 1.0.2 - '@walletconnect/time': 1.0.2 - '@walletconnect/types': 2.13.0 - '@walletconnect/window-getters': 1.0.1 - '@walletconnect/window-metadata': 1.0.1 - detect-browser: 5.3.0 - query-string: 7.1.3 - uint8arrays: 3.1.0 - transitivePeerDependencies: - - '@azure/app-configuration' - - '@azure/cosmos' - - '@azure/data-tables' - - '@azure/identity' - - '@azure/keyvault-secrets' - - '@azure/storage-blob' - - '@capacitor/preferences' - - '@netlify/blobs' - - '@planetscale/database' - - '@react-native-async-storage/async-storage' - - '@upstash/redis' - - '@vercel/kv' - - ioredis - - uWebSockets.js - dev: true - - /@walletconnect/window-getters@1.0.1: - resolution: - { - integrity: sha512-vHp+HqzGxORPAN8gY03qnbTMnhqIwjeRJNOMOAzePRg4xVEEE2WvYsI9G2NMjOknA8hnuYbU3/hwLcKbjhc8+Q== - } - dependencies: - tslib: 1.14.1 - dev: true - - /@walletconnect/window-metadata@1.0.1: - resolution: - { - integrity: sha512-9koTqyGrM2cqFRW517BPY/iEtUDx2r1+Pwwu5m7sJ7ka79wi3EyqhqcICk/yDmv6jAS1rjKgTKXlEhanYjijcA== - } - dependencies: - '@walletconnect/window-getters': 1.0.1 - tslib: 1.14.1 - dev: true - - /@web3modal/common@4.2.2: - resolution: - { - integrity: sha512-FDTSfI8geY2x0or7h9fjNCKJ+9sxzXx1wjTa6iMqLNQB2Kkot8pz+IfHE9tdyHY5946WQ4YtowecmoKTjECzFw== - } - dependencies: - bignumber.js: 9.1.2 - dayjs: 1.11.10 - dev: true - - /@web3modal/core@4.2.2(react@18.3.1): - resolution: - { - integrity: sha512-O78tam38fQxELAnUL+eUAabkG1RZGBM680cqsG7OpRz2pUwtL4+2DTvsbNj071/wXm9VX7PNY2CyGErPSBvstQ== - } - dependencies: - '@web3modal/common': 4.2.2 - '@web3modal/wallet': 4.2.2 - valtio: 1.11.2(react@18.3.1) - transitivePeerDependencies: - - '@types/react' - - react - dev: true - - /@web3modal/ethers@4.2.2(ethers@6.12.1)(react@18.3.1): - resolution: - { - integrity: sha512-rBLoF+ZCDfLaqyYgadrr/M0uZ5iUlaGxEkiX+kF5QNeJwmD0UuoKsQeMxEIf2aIAO2Be5xEpWKxuE88FhEMoOA== - } - peerDependencies: - ethers: '>=6.0.0' - react: '>=17' - react-dom: '>=17' - vue: '>=3' - peerDependenciesMeta: - react: - optional: true - react-dom: - optional: true - vue: - optional: true - dependencies: - '@coinbase/wallet-sdk': 3.9.1 - '@walletconnect/ethereum-provider': 2.13.0(react@18.3.1) - '@web3modal/polyfills': 4.2.2 - '@web3modal/scaffold': 4.2.2(react@18.3.1) - '@web3modal/scaffold-react': 4.2.2(react@18.3.1) - '@web3modal/scaffold-utils': 4.2.2(react@18.3.1) - '@web3modal/scaffold-vue': 4.2.2(react@18.3.1) - '@web3modal/siwe': 4.2.2(react@18.3.1) - ethers: 6.12.1 - react: 18.3.1 - valtio: 1.11.2(react@18.3.1) - transitivePeerDependencies: - - '@azure/app-configuration' - - '@azure/cosmos' - - '@azure/data-tables' - - '@azure/identity' - - '@azure/keyvault-secrets' - - '@azure/storage-blob' - - '@capacitor/preferences' - - '@netlify/blobs' - - '@planetscale/database' - - '@react-native-async-storage/async-storage' - - '@types/react' - - '@upstash/redis' - - '@vercel/kv' - - bufferutil - - encoding - - ioredis - - supports-color - - uWebSockets.js - - utf-8-validate - dev: true - - /@web3modal/polyfills@4.2.2: - resolution: - { - integrity: sha512-fNqK/ybaiQwkcg38LMnBgpz+ZHIK/8xGxZ+f7ny21jFX4ttByT8T8xLwfubUoZRfNDPo320+cji7DcMQyvaCEw== - } - dependencies: - buffer: 6.0.3 - dev: true - - /@web3modal/scaffold-react@4.2.2(react@18.3.1): - resolution: - { - integrity: sha512-OEJvKWz7+W8VThB7an4D/Pta31thkvBQi/1kYG541sEA3xdjiR8dB0fpFgf+ImT1bcPs6XCTM3yPKqXsrN5PaA== - } - peerDependencies: - react: '>=17' - react-dom: '>=17' - peerDependenciesMeta: - react: - optional: true - react-dom: - optional: true - dependencies: - '@web3modal/scaffold': 4.2.2(react@18.3.1) - react: 18.3.1 - transitivePeerDependencies: - - '@azure/app-configuration' - - '@azure/cosmos' - - '@azure/data-tables' - - '@azure/identity' - - '@azure/keyvault-secrets' - - '@azure/storage-blob' - - '@capacitor/preferences' - - '@netlify/blobs' - - '@planetscale/database' - - '@react-native-async-storage/async-storage' - - '@types/react' - - '@upstash/redis' - - '@vercel/kv' - - ioredis - - uWebSockets.js - dev: true - - /@web3modal/scaffold-utils@4.2.2(react@18.3.1): - resolution: - { - integrity: sha512-gK8tzFv0KW0VEz9DB7QnMQGt5BsW3n8EzNX3YrWOk3x8jSmq087VyGFaoQCKxXNyrHWzbehvjpppLxqtsMUk3A== - } - dependencies: - '@web3modal/core': 4.2.2(react@18.3.1) - '@web3modal/polyfills': 4.2.2 - valtio: 1.11.2(react@18.3.1) - transitivePeerDependencies: - - '@types/react' - - react - dev: true - - /@web3modal/scaffold-vue@4.2.2(react@18.3.1): - resolution: - { - integrity: sha512-oaxOyaG5enjodIp/FNyodIPiFa3yiB4ptQrRfNX5opv6z2HUKDiu4jM3BRLwys2ncgLSflhDGfx3QQZZqNR8Hg== - } - peerDependencies: - vue: '>=3' - peerDependenciesMeta: - vue: - optional: true - dependencies: - '@web3modal/scaffold': 4.2.2(react@18.3.1) - transitivePeerDependencies: - - '@azure/app-configuration' - - '@azure/cosmos' - - '@azure/data-tables' - - '@azure/identity' - - '@azure/keyvault-secrets' - - '@azure/storage-blob' - - '@capacitor/preferences' - - '@netlify/blobs' - - '@planetscale/database' - - '@react-native-async-storage/async-storage' - - '@types/react' - - '@upstash/redis' - - '@vercel/kv' - - ioredis - - react - - uWebSockets.js - dev: true - - /@web3modal/scaffold@4.2.2(react@18.3.1): - resolution: - { - integrity: sha512-lpomW3Ypk+eaDNdwmUD0MFDNGiS4WEO8euN9q/pvuJkhnm5jzpr3sYiub4pU+WgZmZIJLRWUuiSeKdUDJSrlRg== - } - dependencies: - '@web3modal/common': 4.2.2 - '@web3modal/core': 4.2.2(react@18.3.1) - '@web3modal/siwe': 4.2.2(react@18.3.1) - '@web3modal/ui': 4.2.2 - '@web3modal/wallet': 4.2.2 - lit: 3.1.0 - transitivePeerDependencies: - - '@azure/app-configuration' - - '@azure/cosmos' - - '@azure/data-tables' - - '@azure/identity' - - '@azure/keyvault-secrets' - - '@azure/storage-blob' - - '@capacitor/preferences' - - '@netlify/blobs' - - '@planetscale/database' - - '@react-native-async-storage/async-storage' - - '@types/react' - - '@upstash/redis' - - '@vercel/kv' - - ioredis - - react - - uWebSockets.js - dev: true - - /@web3modal/siwe@4.2.2(react@18.3.1): - resolution: - { - integrity: sha512-9Pei6E5nG9/FeNuPh8Sj0zic9hc8K1PeMlK3wTTOOskOtlW4zCbdJ3GnsaDIwqrJDI8z5aG96JoRbC1rwInGtQ== - } - dependencies: - '@walletconnect/utils': 2.12.0 - '@web3modal/core': 4.2.2(react@18.3.1) - '@web3modal/scaffold-utils': 4.2.2(react@18.3.1) - lit: 3.1.0 - valtio: 1.11.2(react@18.3.1) - transitivePeerDependencies: - - '@azure/app-configuration' - - '@azure/cosmos' - - '@azure/data-tables' - - '@azure/identity' - - '@azure/keyvault-secrets' - - '@azure/storage-blob' - - '@capacitor/preferences' - - '@netlify/blobs' - - '@planetscale/database' - - '@react-native-async-storage/async-storage' - - '@types/react' - - '@upstash/redis' - - '@vercel/kv' - - ioredis - - react - - uWebSockets.js - dev: true - - /@web3modal/ui@4.2.2: - resolution: - { - integrity: sha512-SlEGUSI5jq9cbo5w49KflQnAt0bDl5pWOg6Ax+d+6EOOjLrWl5giUAk+PX9qwV6YVVviBzUlzgofuTt2Z1ZXhw== - } - dependencies: - lit: 3.1.0 - qrcode: 1.5.3 - dev: true - - /@web3modal/wallet@4.2.2: - resolution: - { - integrity: sha512-ZkEWeXzbGWUGLFP+uPtdkG4OdiGgdVL9lLCWWVZlq7NZpZdTSc8+kmgdH71qvfNbt+yr7do1KVsQQcQfF6jXhw== - } - dependencies: - '@web3modal/polyfills': 4.2.2 - zod: 3.22.4 - dev: true - - /JSONStream@1.3.5: - resolution: - { - integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ== - } - hasBin: true - dependencies: - jsonparse: 1.3.1 - through: 2.3.8 - dev: true - - /acorn@8.11.3: - resolution: - { - integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg== - } - engines: { node: '>=0.4.0' } - hasBin: true - dev: true - - /aes-js@3.0.0: - resolution: - { - integrity: sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw== - } - dev: true - - /aes-js@4.0.0-beta.5: - resolution: - { - integrity: sha512-G965FqalsNyrPqgEGON7nIx1e/OVENSgiEIzyC63haUMuvNnwIgIjMs52hlTCKhkBny7A2ORNlfY9Zu+jmGk1Q== - } - dev: true - - /agentkeepalive@4.5.0: - resolution: - { - integrity: sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew== - } - engines: { node: '>= 8.0.0' } - dependencies: - humanize-ms: 1.2.1 - dev: true - - /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 - dev: true - - /ansi-regex@5.0.1: - resolution: - { - integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== - } - engines: { node: '>=8' } - dev: true - - /ansi-styles@4.3.0: - resolution: - { - integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== - } - engines: { node: '>=8' } - dependencies: - color-convert: 2.0.1 - dev: true - - /anymatch@3.1.3: - resolution: - { - integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== - } - engines: { node: '>= 8' } - dependencies: - normalize-path: 3.0.0 - picomatch: 2.3.1 - dev: true - - /argparse@1.0.10: - resolution: - { - integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== - } - dependencies: - sprintf-js: 1.0.3 - dev: true - - /asn1.js@4.10.1: - resolution: - { - integrity: sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw== - } - dependencies: - bn.js: 4.12.0 - inherits: 2.0.4 - minimalistic-assert: 1.0.1 - dev: true - - /assert@2.1.0: - resolution: - { - integrity: sha512-eLHpSK/Y4nhMJ07gDaAzoX/XAKS8PSaojml3M0DM4JpV1LAi5JOJ/p6H/XWrl8L+DzVEvVCW1z3vWAaB9oTsQw== - } - dependencies: - call-bind: 1.0.7 - is-nan: 1.3.2 - object-is: 1.1.6 - object.assign: 4.1.5 - util: 0.12.5 - dev: true - - /async-mutex@0.2.6: - resolution: - { - integrity: sha512-Hs4R+4SPgamu6rSGW8C7cV9gaWUKEHykfzCCvIRuaVv636Ju10ZdeUbvb4TBEW0INuq2DHZqXbK4Nd3yG4RaRw== - } - dependencies: - tslib: 2.6.2 - dev: true - - /asynckit@0.4.0: - resolution: - { - integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== - } - dev: true - - /atomic-sleep@1.0.0: - resolution: - { - integrity: sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ== - } - engines: { node: '>=8.0.0' } - dev: true - - /available-typed-arrays@1.0.7: - resolution: - { - integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ== - } - engines: { node: '>= 0.4' } - dependencies: - possible-typed-array-names: 1.0.0 - - /axios@0.21.4: - resolution: - { - integrity: sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg== - } - dependencies: - follow-redirects: 1.15.6 - transitivePeerDependencies: - - debug - dev: true - - /axios@1.7.2: - resolution: - { - integrity: sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw== - } - dependencies: - follow-redirects: 1.15.6 - form-data: 4.0.0 - proxy-from-env: 1.1.0 - transitivePeerDependencies: - - debug - dev: true - - /balanced-match@1.0.2: - resolution: - { - integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== - } - dev: true - - /base-x@3.0.9: - resolution: - { - integrity: sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ== - } - dependencies: - safe-buffer: 5.2.1 - dev: true - - /base64-js@1.5.1: - resolution: - { - integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== - } - dev: true - - /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: true - - /bignumber.js@9.1.2: - resolution: - { - integrity: sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug== - } - - /binary-extensions@2.3.0: - resolution: - { - integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw== - } - engines: { node: '>=8' } - dev: true - - /bindings@1.5.0: - resolution: - { - integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== - } - dependencies: - file-uri-to-path: 1.0.0 - dev: true - - /bn.js@4.12.0: - resolution: - { - integrity: sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== - } - dev: true - - /bn.js@5.2.1: - resolution: - { - integrity: sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ== - } - dev: true - - /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: true - - /brace-expansion@1.1.11: - resolution: - { - integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== - } - dependencies: - balanced-match: 1.0.2 - concat-map: 0.0.1 - dev: true - - /brace-expansion@2.0.1: - resolution: - { - integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== - } - dependencies: - balanced-match: 1.0.2 - dev: true - - /braces@3.0.3: - resolution: - { - integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA== - } - engines: { node: '>=8' } - dependencies: - fill-range: 7.1.1 - dev: true - - /brorand@1.1.0: - resolution: - { - integrity: sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w== - } - dev: true - - /browser-resolve@2.0.0: - resolution: - { - integrity: sha512-7sWsQlYL2rGLy2IWm8WL8DCTJvYLc/qlOnsakDac87SOoCd16WLsaAMdCiAqsTNHIe+SXfaqyxyo6THoWqs8WQ== - } - dependencies: - resolve: 1.22.8 - dev: true - - /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: true - - /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: true - - /browserify-des@1.0.2: - resolution: - { - integrity: sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A== - } - dependencies: - cipher-base: 1.0.4 - des.js: 1.1.0 - inherits: 2.0.4 - safe-buffer: 5.2.1 - dev: true - - /browserify-rsa@4.1.0: - resolution: - { - integrity: sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog== - } - dependencies: - bn.js: 5.2.1 - randombytes: 2.1.0 - dev: true - - /browserify-sign@4.2.3: - resolution: - { - integrity: sha512-JWCZW6SKhfhjJxO8Tyiiy+XYB7cqd2S5/+WeYHsKdNKFlCBhKbblba1A/HN/90YwtxKc8tCErjffZl++UNmGiw== - } - engines: { node: '>= 0.12' } - dependencies: - bn.js: 5.2.1 - browserify-rsa: 4.1.0 - create-hash: 1.2.0 - create-hmac: 1.1.7 - elliptic: 6.5.5 - hash-base: 3.0.4 - inherits: 2.0.4 - parse-asn1: 5.1.7 - readable-stream: 2.3.8 - safe-buffer: 5.2.1 - dev: true - - /browserify-zlib@0.2.0: - resolution: - { - integrity: sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA== - } - dependencies: - pako: 1.0.11 - dev: true - - /bs58@4.0.1: - resolution: - { - integrity: sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw== - } - dependencies: - base-x: 3.0.9 - dev: true - - /buffer-xor@1.0.3: - resolution: - { - integrity: sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ== - } - dev: true - - /buffer@5.7.1: - resolution: - { - integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== - } - dependencies: - base64-js: 1.5.1 - ieee754: 1.2.1 - dev: true - - /buffer@6.0.3: - resolution: - { - integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== - } - dependencies: - base64-js: 1.5.1 - ieee754: 1.2.1 - dev: true - - /bufferutil@4.0.8: - resolution: - { - integrity: sha512-4T53u4PdgsXqKaIctwF8ifXlRTTmEPJ8iEPWFdGZvcf7sbwYo6FKFEX9eNNAnzFZ7EzJAQ3CJeOtCRA4rDp7Pw== - } - engines: { node: '>=6.14.2' } - requiresBuild: true - dependencies: - node-gyp-build: 4.8.1 - - /builtin-status-codes@3.0.0: - resolution: - { - integrity: sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ== - } - dev: true - - /call-bind@1.0.7: - resolution: - { - integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w== - } - engines: { node: '>= 0.4' } - dependencies: - es-define-property: 1.0.0 - es-errors: 1.3.0 - function-bind: 1.1.2 - get-intrinsic: 1.2.4 - set-function-length: 1.2.2 - - /camelcase@5.3.1: - resolution: - { - integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== - } - engines: { node: '>=6' } - dev: true - - /chokidar@3.6.0: - resolution: - { - integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw== - } - engines: { node: '>= 8.10.0' } - dependencies: - anymatch: 3.1.3 - braces: 3.0.3 - 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.3 - dev: true - - /cipher-base@1.0.4: - resolution: - { - integrity: sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q== - } - dependencies: - inherits: 2.0.4 - safe-buffer: 5.2.1 - dev: true - - /citty@0.1.6: - resolution: - { - integrity: sha512-tskPPKEs8D2KPafUypv2gxwJP8h/OaJmC82QQGGDQcHvXX43xF2VDACcJVmZ0EuSxkpO9Kc4MlrA3q0+FG58AQ== - } - dependencies: - consola: 3.2.3 - dev: true - - /clipboardy@4.0.0: - resolution: - { - integrity: sha512-5mOlNS0mhX0707P2I0aZ2V/cmHUEO/fL7VFLqszkhUsxt7RwnmrInf/eEQKlf5GzvYeHIjT+Ov1HRfNmymlG0w== - } - engines: { node: '>=18' } - dependencies: - execa: 8.0.1 - is-wsl: 3.1.0 - is64bit: 2.0.0 - dev: true - - /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: true - - /clsx@1.2.1: - resolution: - { - integrity: sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg== - } - engines: { node: '>=6' } - dev: true - - /color-convert@2.0.1: - resolution: - { - integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== - } - engines: { node: '>=7.0.0' } - dependencies: - color-name: 1.1.4 - dev: true - - /color-name@1.1.4: - resolution: - { - integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== - } - dev: true - - /combined-stream@1.0.8: - resolution: - { - integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== - } - engines: { node: '>= 0.8' } - dependencies: - delayed-stream: 1.0.0 - dev: true - - /commander@2.20.3: - resolution: - { - integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== - } - dev: true - - /commander@9.5.0: - resolution: - { - integrity: sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ== - } - engines: { node: ^12.20.0 || >=14 } - requiresBuild: true - dev: true - optional: true - - /computeds@0.0.1: - resolution: - { - integrity: sha512-7CEBgcMjVmitjYo5q8JTJVra6X5mQ20uTThdK+0kR7UEaDrAWEQcRiBtWJzga4eRpP6afNwwLsX2SET2JhVB1Q== - } - dev: true - - /concat-map@0.0.1: - resolution: - { - integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== - } - dev: true - - /confbox@0.1.7: - resolution: - { - integrity: sha512-uJcB/FKZtBMCJpK8MQji6bJHgu1tixKPxRLeGkNzBoOZzpnZUJm0jm2/sBDWcuBx1dYgxV4JU+g5hmNxCyAmdA== - } - dev: true - - /consola@3.2.3: - resolution: - { - integrity: sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ== - } - engines: { node: ^14.18.0 || >=16.10.0 } - dev: true - - /console-browserify@1.2.0: - resolution: - { - integrity: sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA== - } - dev: true - - /constants-browserify@1.0.0: - resolution: - { - integrity: sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ== - } - dev: true - - /cookie-es@1.1.0: - resolution: - { - integrity: sha512-L2rLOcK0wzWSfSDA33YR+PUHDG10a8px7rUHKWbGLP4YfbsMed2KFUw5fczvDPbT98DDe3LEzviswl810apTEw== - } - dev: true - - /copy-to-clipboard@3.3.3: - resolution: - { - integrity: sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA== - } - dependencies: - toggle-selection: 1.0.6 - dev: true - - /core-util-is@1.0.3: - resolution: - { - integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== - } - dev: true - - /crc-32@1.2.2: - resolution: - { - integrity: sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ== - } - engines: { node: '>=0.8' } - hasBin: true - dev: true - - /create-ecdh@4.0.4: - resolution: - { - integrity: sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A== - } - dependencies: - bn.js: 4.12.0 - elliptic: 6.5.5 - dev: true - - /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: true - - /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: true - - /create-require@1.1.1: - resolution: - { - integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== - } - dev: true - - /cross-fetch@3.1.8: - resolution: - { - integrity: sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg== - } - dependencies: - node-fetch: 2.7.0 - transitivePeerDependencies: - - encoding - dev: true - - /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 - dev: true - - /crossws@0.2.4: - resolution: - { - integrity: sha512-DAxroI2uSOgUKLz00NX6A8U/8EE3SZHmIND+10jkVSaypvyt57J5JEOxAQOL6lQxyzi/wZbTIwssU1uy69h5Vg== - } - peerDependencies: - uWebSockets.js: '*' - peerDependenciesMeta: - uWebSockets.js: - optional: true - dev: true - - /crypto-browserify@3.12.0: - resolution: - { - integrity: sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg== - } - dependencies: - browserify-cipher: 1.0.1 - browserify-sign: 4.2.3 - 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: true - - /dayjs@1.11.10: - resolution: - { - integrity: sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ== - } - dev: true - - /de-indent@1.0.2: - resolution: - { - integrity: sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg== - } - dev: true - - /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 - dev: true - - /decamelize@1.2.0: - resolution: - { - integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA== - } - engines: { node: '>=0.10.0' } - dev: true - - /decode-uri-component@0.2.2: - resolution: - { - integrity: sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ== - } - engines: { node: '>=0.10' } - dev: true - - /define-data-property@1.1.4: - resolution: - { - integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A== - } - engines: { node: '>= 0.4' } - dependencies: - es-define-property: 1.0.0 - es-errors: 1.3.0 - gopd: 1.0.1 - - /define-properties@1.2.1: - resolution: - { - integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg== - } - engines: { node: '>= 0.4' } - dependencies: - define-data-property: 1.1.4 - has-property-descriptors: 1.0.2 - object-keys: 1.1.1 - dev: true - - /defu@6.1.4: - resolution: - { - integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg== - } - dev: true - - /delay@5.0.0: - resolution: - { - integrity: sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw== - } - engines: { node: '>=10' } - dev: true - - /delayed-stream@1.0.0: - resolution: - { - integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== - } - engines: { node: '>=0.4.0' } - dev: true - - /des.js@1.1.0: - resolution: - { - integrity: sha512-r17GxjhUCjSRy8aiJpr8/UadFIzMzJGexI3Nmz4ADi9LYSFx4gTBp80+NaX/YsXWWLhpZ7v/v/ubEc/bCNfKwg== - } - dependencies: - inherits: 2.0.4 - minimalistic-assert: 1.0.1 - dev: true - - /destr@2.0.3: - resolution: - { - integrity: sha512-2N3BOUU4gYMpTP24s5rF5iP7BDr7uNTCs4ozw3kf/eKfvWSIu93GEBi5m427YoyJoeOzQ5smuu4nNAPGb8idSQ== - } - dev: true - - /detect-browser@5.3.0: - resolution: - { - integrity: sha512-53rsFbGdwMwlF7qvCt0ypLM5V5/Mbl0szB7GPN8y9NCcbknYOeVVXdrXEq+90IwAfrrzt6Hd+u2E2ntakICU8w== - } - dev: true - - /detect-libc@1.0.3: - resolution: - { - integrity: sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg== - } - engines: { node: '>=0.10' } - hasBin: true - dev: true - - /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: true - - /dijkstrajs@1.0.3: - resolution: - { - integrity: sha512-qiSlmBq9+BCdCA/L46dw8Uy93mloxsPSbwnm5yrKn2vMPiy8KyAskTF6zuV/j5BMsmOGZDPs7KjU+mjb670kfA== - } - dev: true - - /domain-browser@4.23.0: - resolution: - { - integrity: sha512-ArzcM/II1wCCujdCNyQjXrAFwS4mrLh4C7DZWlaI8mdh7h3BfKdNd3bKXITfl2PT9FtfQqaGvhi1vPRQPimjGA== - } - engines: { node: '>=10' } - dev: true - - /duplexify@4.1.3: - resolution: - { - integrity: sha512-M3BmBhwJRZsSx38lZyhE53Csddgzl5R7xGJNk7CVddZD6CcmwMCH8J+7AprIrQKH7TonKxaCjcv27Qmf+sQ+oA== - } - dependencies: - end-of-stream: 1.4.4 - inherits: 2.0.4 - readable-stream: 3.6.2 - stream-shift: 1.0.3 - dev: true - - /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: true - - /elliptic@6.5.5: - resolution: - { - integrity: sha512-7EjbcmUm17NQFu4Pmgmq2olYMj8nwMnpcddByChSUjArp8F5DQWcIcpriwO4ZToLNAJig0yiyjswfyGNje/ixw== - } - dependencies: - bn.js: 4.12.0 - brorand: 1.1.0 - hash.js: 1.1.7 - hmac-drbg: 1.0.1 - inherits: 2.0.4 - minimalistic-assert: 1.0.1 - minimalistic-crypto-utils: 1.0.1 - dev: true - - /emoji-regex@8.0.0: - resolution: - { - integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== - } - dev: true - - /encode-utf8@1.0.3: - resolution: - { - integrity: sha512-ucAnuBEhUK4boH2HjVYG5Q2mQyPorvv0u/ocS+zhdw0S8AlHYY+GOFhP1Gio5z4icpP2ivFSvhtFjQi8+T9ppw== - } - dev: true - - /end-of-stream@1.4.4: - resolution: - { - integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== - } - dependencies: - once: 1.4.0 - dev: true - - /entities@4.5.0: - resolution: - { - integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw== - } - engines: { node: '>=0.12' } - dev: true - - /es-define-property@1.0.0: - resolution: - { - integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ== - } - engines: { node: '>= 0.4' } - dependencies: - get-intrinsic: 1.2.4 - - /es-errors@1.3.0: - resolution: - { - integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== - } - engines: { node: '>= 0.4' } - - /es6-promise@4.2.8: - resolution: - { - integrity: sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w== - } - dev: true - - /es6-promisify@5.0.0: - resolution: - { - integrity: sha512-C+d6UdsYDk0lMebHNR4S2NybQMMngAOnOwYBQjTOiv0MkoJMP0Myw2mgpDLBcpfCmRLxyFqYhS/CfOENq4SJhQ== - } - dependencies: - es6-promise: 4.2.8 - dev: true - - /esbuild@0.20.2: - resolution: - { - integrity: sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g== - } - engines: { node: '>=12' } - hasBin: true - requiresBuild: true - optionalDependencies: - '@esbuild/aix-ppc64': 0.20.2 - '@esbuild/android-arm': 0.20.2 - '@esbuild/android-arm64': 0.20.2 - '@esbuild/android-x64': 0.20.2 - '@esbuild/darwin-arm64': 0.20.2 - '@esbuild/darwin-x64': 0.20.2 - '@esbuild/freebsd-arm64': 0.20.2 - '@esbuild/freebsd-x64': 0.20.2 - '@esbuild/linux-arm': 0.20.2 - '@esbuild/linux-arm64': 0.20.2 - '@esbuild/linux-ia32': 0.20.2 - '@esbuild/linux-loong64': 0.20.2 - '@esbuild/linux-mips64el': 0.20.2 - '@esbuild/linux-ppc64': 0.20.2 - '@esbuild/linux-riscv64': 0.20.2 - '@esbuild/linux-s390x': 0.20.2 - '@esbuild/linux-x64': 0.20.2 - '@esbuild/netbsd-x64': 0.20.2 - '@esbuild/openbsd-x64': 0.20.2 - '@esbuild/sunos-x64': 0.20.2 - '@esbuild/win32-arm64': 0.20.2 - '@esbuild/win32-ia32': 0.20.2 - '@esbuild/win32-x64': 0.20.2 - dev: true - - /estree-walker@2.0.2: - resolution: - { - integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== - } - dev: true - - /eth-block-tracker@7.1.0: - resolution: - { - integrity: sha512-8YdplnuE1IK4xfqpf4iU7oBxnOYAc35934o083G8ao+8WM8QQtt/mVlAY6yIAdY1eMeLqg4Z//PZjJGmWGPMRg== - } - engines: { node: '>=14.0.0' } - dependencies: - '@metamask/eth-json-rpc-provider': 1.0.1 - '@metamask/safe-event-emitter': 3.1.1 - '@metamask/utils': 5.0.2 - json-rpc-random-id: 1.0.1 - pify: 3.0.0 - transitivePeerDependencies: - - supports-color - dev: true - - /eth-json-rpc-filters@6.0.1: - resolution: - { - integrity: sha512-ITJTvqoCw6OVMLs7pI8f4gG92n/St6x80ACtHodeS+IXmO0w+t1T5OOzfSt7KLSMLRkVUoexV7tztLgDxg+iig== - } - engines: { node: '>=14.0.0' } - dependencies: - '@metamask/safe-event-emitter': 3.1.1 - async-mutex: 0.2.6 - eth-query: 2.1.2 - json-rpc-engine: 6.1.0 - pify: 5.0.0 - dev: true - - /eth-query@2.1.2: - resolution: - { - integrity: sha512-srES0ZcvwkR/wd5OQBRA1bIJMww1skfGS0s8wlwK3/oNP4+wnds60krvu5R1QbpRQjMmpG5OMIWro5s7gvDPsA== - } - dependencies: - json-rpc-random-id: 1.0.1 - xtend: 4.0.2 - dev: true - - /eth-rpc-errors@4.0.3: - resolution: - { - integrity: sha512-Z3ymjopaoft7JDoxZcEb3pwdGh7yiYMhOwm2doUt6ASXlMavpNlK6Cre0+IMl2VSGyEU9rkiperQhp5iRxn5Pg== - } - dependencies: - fast-safe-stringify: 2.1.1 - dev: true - - /ethereum-cryptography@2.1.3: - resolution: - { - integrity: sha512-BlwbIL7/P45W8FGW2r7LGuvoEZ+7PWsniMvQ4p5s2xCyw9tmaDlpfsN9HjAucbF+t/qpVHwZUisgfK24TCW8aA== - } - dependencies: - '@noble/curves': 1.3.0 - '@noble/hashes': 1.3.3 - '@scure/bip32': 1.3.3 - '@scure/bip39': 1.2.2 - - /ethers@4.0.49: - resolution: - { - integrity: sha512-kPltTvWiyu+OktYy1IStSO16i2e7cS9D9OxZ81q2UUaiNPVrm/RTcbxamCXF9VUSKzJIdJV68EAIhTEVBalRWg== - } - dependencies: - 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: true - - /ethers@6.12.1: - resolution: - { - integrity: sha512-j6wcVoZf06nqEcBbDWkKg8Fp895SS96dSnTCjiXT+8vt2o02raTn4Lo9ERUuIVU5bAjoPYeA+7ytQFexFmLuVw== - } - engines: { node: '>=14.0.0' } - dependencies: - '@adraffy/ens-normalize': 1.10.1 - '@noble/curves': 1.2.0 - '@noble/hashes': 1.3.2 - '@types/node': 18.15.13 - aes-js: 4.0.0-beta.5 - tslib: 2.4.0 - ws: 8.5.0 - transitivePeerDependencies: - - bufferutil - - utf-8-validate - dev: true - - /eventemitter3@3.1.2: - resolution: - { - integrity: sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q== - } - dev: true - - /eventemitter3@4.0.7: - resolution: - { - integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== - } - dev: true - - /eventemitter3@5.0.1: - resolution: - { - integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA== - } - - /events@3.3.0: - resolution: - { - integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== - } - engines: { node: '>=0.8.x' } - dev: true - - /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: true - - /execa@8.0.1: - resolution: - { - integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg== - } - engines: { node: '>=16.17' } - dependencies: - cross-spawn: 7.0.3 - get-stream: 8.0.1 - human-signals: 5.0.0 - is-stream: 3.0.0 - merge-stream: 2.0.0 - npm-run-path: 5.3.0 - onetime: 6.0.0 - signal-exit: 4.1.0 - strip-final-newline: 3.0.0 - dev: true - - /eyes@0.1.8: - resolution: - { - integrity: sha512-GipyPsXO1anza0AOZdy69Im7hGFCNB7Y/NGjDlZGJ3GJJLtwNSb2vrzYrTYJRrRloVx7pl+bhUaTB8yiccPvFQ== - } - engines: { node: '> 0.1.90' } - dev: true - - /fast-deep-equal@3.1.3: - resolution: - { - integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== - } - dev: true - - /fast-json-stable-stringify@2.1.0: - resolution: - { - integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== - } - dev: true - - /fast-redact@3.5.0: - resolution: - { - integrity: sha512-dwsoQlS7h9hMeYUq1W++23NDcBLV4KqONnITDV9DjfS3q1SgDGVrBdvvTLUotWtPSD7asWDV9/CmsZPy8Hf70A== - } - engines: { node: '>=6' } - dev: true - - /fast-safe-stringify@2.1.1: - resolution: - { - integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA== - } - dev: true - - /fast-stable-stringify@1.0.0: - resolution: - { - integrity: sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag== - } - dev: true - - /file-uri-to-path@1.0.0: - resolution: - { - integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== - } - dev: true - - /fill-range@7.1.1: - resolution: - { - integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg== - } - engines: { node: '>=8' } - dependencies: - to-regex-range: 5.0.1 - dev: true - - /filter-obj@1.1.0: - resolution: - { - integrity: sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ== - } - engines: { node: '>=0.10.0' } - dev: true - - /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 - dev: true - - /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: true - - /follow-redirects@1.15.6: - resolution: - { - integrity: sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA== - } - engines: { node: '>=4.0' } - peerDependencies: - debug: '*' - peerDependenciesMeta: - debug: - optional: true - dev: true - - /for-each@0.3.3: - resolution: - { - integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== - } - dependencies: - is-callable: 1.2.7 - - /form-data@4.0.0: - resolution: - { - integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww== - } - engines: { node: '>= 6' } - dependencies: - asynckit: 0.4.0 - combined-stream: 1.0.8 - mime-types: 2.1.35 - dev: true - - /fs-extra@7.0.1: - resolution: - { - integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw== - } - engines: { node: '>=6 <7 || >=8' } - dependencies: - graceful-fs: 4.2.11 - jsonfile: 4.0.0 - universalify: 0.1.2 - dev: true - - /fsevents@2.3.3: - resolution: - { - integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== - } - engines: { node: ^8.16.0 || ^10.6.0 || >=11.0.0 } - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /function-bind@1.1.2: - resolution: - { - integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== - } - - /get-caller-file@2.0.5: - resolution: - { - integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== - } - engines: { node: 6.* || 8.* || >= 10.* } - dev: true - - /get-intrinsic@1.2.4: - resolution: - { - integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ== - } - engines: { node: '>= 0.4' } - dependencies: - es-errors: 1.3.0 - function-bind: 1.1.2 - has-proto: 1.0.3 - has-symbols: 1.0.3 - hasown: 2.0.2 - - /get-port-please@3.1.2: - resolution: - { - integrity: sha512-Gxc29eLs1fbn6LQ4jSU4vXjlwyZhF5HsGuMAa7gqBP4Rw4yxxltyDUuF5MBclFzDTXO+ACchGQoeela4DSfzdQ== - } - dev: true - - /get-stream@8.0.1: - resolution: - { - integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA== - } - engines: { node: '>=16' } - dev: true - - /glob-parent@5.1.2: - resolution: - { - integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== - } - engines: { node: '>= 6' } - dependencies: - is-glob: 4.0.3 - dev: true - - /gopd@1.0.1: - resolution: - { - integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== - } - dependencies: - get-intrinsic: 1.2.4 - - /graceful-fs@4.2.11: - resolution: - { - integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== - } - dev: true - - /h3@1.11.1: - resolution: - { - integrity: sha512-AbaH6IDnZN6nmbnJOH72y3c5Wwh9P97soSVdGSBbcDACRdkC0FEWf25pzx4f/NuOCK6quHmW18yF2Wx+G4Zi1A== - } - dependencies: - cookie-es: 1.1.0 - crossws: 0.2.4 - defu: 6.1.4 - destr: 2.0.3 - iron-webcrypto: 1.2.1 - ohash: 1.1.3 - radix3: 1.1.2 - ufo: 1.5.3 - uncrypto: 0.1.3 - unenv: 1.9.0 - transitivePeerDependencies: - - uWebSockets.js - dev: true - - /has-flag@4.0.0: - resolution: - { - integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== - } - engines: { node: '>=8' } - dev: true - - /has-property-descriptors@1.0.2: - resolution: - { - integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg== - } - dependencies: - es-define-property: 1.0.0 - - /has-proto@1.0.3: - resolution: - { - integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q== - } - engines: { node: '>= 0.4' } - - /has-symbols@1.0.3: - resolution: - { - integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== - } - engines: { node: '>= 0.4' } - - /has-tostringtag@1.0.2: - resolution: - { - integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw== - } - engines: { node: '>= 0.4' } - dependencies: - has-symbols: 1.0.3 - - /hash-base@3.0.4: - resolution: - { - integrity: sha512-EeeoJKjTyt868liAlVmcv2ZsUfGHlE3Q+BICOXcZiwN3osr5Q/zFGYmTJpoIzuaSTAwndFy+GqhEwlU4L3j4Ow== - } - engines: { node: '>=4' } - dependencies: - inherits: 2.0.4 - safe-buffer: 5.2.1 - dev: true - - /hash-base@3.1.0: - resolution: - { - integrity: sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA== - } - engines: { node: '>=4' } - dependencies: - inherits: 2.0.4 - readable-stream: 3.6.2 - safe-buffer: 5.2.1 - dev: true - - /hash.js@1.1.3: - resolution: - { - integrity: sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA== - } - dependencies: - inherits: 2.0.4 - minimalistic-assert: 1.0.1 - dev: true - - /hash.js@1.1.7: - resolution: - { - integrity: sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== - } - dependencies: - inherits: 2.0.4 - minimalistic-assert: 1.0.1 - dev: true - - /hasown@2.0.2: - resolution: - { - integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== - } - engines: { node: '>= 0.4' } - dependencies: - function-bind: 1.1.2 - - /he@1.2.0: - resolution: - { - integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== - } - hasBin: true - dev: true - - /hey-listen@1.0.8: - resolution: - { - integrity: sha512-COpmrF2NOg4TBWUJ5UVyaCU2A88wEMkUPK4hNqyCkqHbxT92BbvfjoSozkAIIm6XhicGlJHhFdullInrdhwU8Q== - } - dev: true - - /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: true - - /http-shutdown@1.2.2: - resolution: - { - integrity: sha512-S9wWkJ/VSY9/k4qcjG318bqJNruzE4HySUhFYknwmu6LBP97KLLfwNf+n4V1BHurvFNkSKLFnK/RsuUnRTf9Vw== - } - engines: { iojs: '>= 1.0.0', node: '>= 0.12.0' } - dev: true - - /https-browserify@1.0.0: - resolution: - { - integrity: sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg== - } - dev: true - - /human-signals@5.0.0: - resolution: - { - integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ== - } - engines: { node: '>=16.17.0' } - dev: true - - /humanize-ms@1.2.1: - resolution: - { - integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ== - } - dependencies: - ms: 2.1.2 - dev: true - - /idb-keyval@6.2.1: - resolution: - { - integrity: sha512-8Sb3veuYCyrZL+VBt9LJfZjLUPWVvqn8tG28VqYNFCo43KHcKuq+b4EiXGeuaLAQWL2YmyDgMp2aSpH9JHsEQg== - } - dev: true - - /ieee754@1.2.1: - resolution: - { - integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== - } - dev: true - - /import-lazy@4.0.0: - resolution: - { - integrity: sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw== - } - engines: { node: '>=8' } - dev: true - - /inherits@2.0.4: - resolution: - { - integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - } - - /injectpromise@1.0.0: - resolution: - { - integrity: sha512-qNq5wy4qX4uWHcVFOEU+RqZkoVG65FhvGkyDWbuBxILMjK6A1LFf5A1mgXZkD4nRx5FCorD81X/XvPKp/zVfPA== - } - dev: true - - /iron-webcrypto@1.2.1: - resolution: - { - integrity: sha512-feOM6FaSr6rEABp/eDfVseKyTMDt+KGpeB35SkVn9Tyn0CqvVsY3EwI0v5i8nMHyJnzCIQf7nsy3p41TPkJZhg== - } - dev: true - - /is-arguments@1.1.1: - resolution: - { - integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA== - } - engines: { node: '>= 0.4' } - dependencies: - call-bind: 1.0.7 - has-tostringtag: 1.0.2 - - /is-binary-path@2.1.0: - resolution: - { - integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== - } - engines: { node: '>=8' } - dependencies: - binary-extensions: 2.3.0 - dev: true - - /is-callable@1.2.7: - resolution: - { - integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== - } - engines: { node: '>= 0.4' } - - /is-core-module@2.13.1: - resolution: - { - integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw== - } - dependencies: - hasown: 2.0.2 - dev: true - - /is-docker@3.0.0: - resolution: - { - integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ== - } - engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } - hasBin: true - dev: true - - /is-extglob@2.1.1: - resolution: - { - integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== - } - engines: { node: '>=0.10.0' } - dev: true - - /is-fullwidth-code-point@3.0.0: - resolution: - { - integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== - } - engines: { node: '>=8' } - dev: true - - /is-generator-function@1.0.10: - resolution: - { - integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A== - } - engines: { node: '>= 0.4' } - dependencies: - has-tostringtag: 1.0.2 - - /is-glob@4.0.3: - resolution: - { - integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== - } - engines: { node: '>=0.10.0' } - dependencies: - is-extglob: 2.1.1 - dev: true - - /is-inside-container@1.0.0: - resolution: - { - integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA== - } - engines: { node: '>=14.16' } - hasBin: true - dependencies: - is-docker: 3.0.0 - dev: true - - /is-nan@1.3.2: - resolution: - { - integrity: sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w== - } - engines: { node: '>= 0.4' } - dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - dev: true - - /is-number@7.0.0: - resolution: - { - integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== - } - engines: { node: '>=0.12.0' } - dev: true - - /is-stream@3.0.0: - resolution: - { - integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA== - } - engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } - dev: true - - /is-typed-array@1.1.13: - resolution: - { - integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw== - } - engines: { node: '>= 0.4' } - dependencies: - which-typed-array: 1.1.15 - - /is-typedarray@1.0.0: - resolution: - { - integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA== - } - dev: true - - /is-wsl@3.1.0: - resolution: - { - integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw== - } - engines: { node: '>=16' } - dependencies: - is-inside-container: 1.0.0 - dev: true - - /is64bit@2.0.0: - resolution: - { - integrity: sha512-jv+8jaWCl0g2lSBkNSVXdzfBA0npK1HGC2KtWM9FumFRoGS94g3NbCCLVnCYHLjp4GrW2KZeeSTMo5ddtznmGw== - } - engines: { node: '>=18' } - dependencies: - system-architecture: 0.1.0 - dev: true - - /isarray@1.0.0: - resolution: - { - integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== - } - dev: true - - /isexe@2.0.0: - resolution: - { - integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== - } - dev: true - - /isomorphic-timers-promises@1.0.1: - resolution: - { - integrity: sha512-u4sej9B1LPSxTGKB/HiuzvEQnXH0ECYkSVQU39koSwmFAxhlEAFl9RdTvLv4TOTQUgBS5O3O5fwUxk6byBZ+IQ== - } - engines: { node: '>=10' } - dev: true - - /isomorphic-unfetch@3.1.0: - resolution: - { - integrity: sha512-geDJjpoZ8N0kWexiwkX8F9NkTsXhetLPVbZFQ+JTW239QNOwvB0gniuR1Wc6f0AMTn7/mFGyXvHTifrCp/GH8Q== - } - dependencies: - node-fetch: 2.7.0 - unfetch: 4.2.0 - transitivePeerDependencies: - - encoding - dev: true - - /isomorphic-ws@4.0.1(ws@7.5.9): - resolution: - { - integrity: sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w== - } - peerDependencies: - ws: '*' - dependencies: - ws: 7.5.9 - dev: true - - /jayson@4.1.0: - resolution: - { - integrity: sha512-R6JlbyLN53Mjku329XoRT2zJAE6ZgOQ8f91ucYdMCD4nkGCF9kZSrcGXpHIU4jeKj58zUZke2p+cdQchU7Ly7A== - } - engines: { node: '>=8' } - hasBin: true - dependencies: - '@types/connect': 3.4.38 - '@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 - uuid: 8.3.2 - ws: 7.5.9 - transitivePeerDependencies: - - bufferutil - - utf-8-validate - dev: true - - /jiti@1.21.0: - resolution: - { - integrity: sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q== - } - hasBin: true - dev: true - - /jju@1.4.0: - resolution: - { - integrity: sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA== - } - dev: true - - /js-sha3@0.5.7: - resolution: - { - integrity: sha512-GII20kjaPX0zJ8wzkTbNDYMY7msuZcTWk8S5UOh6806Jq/wz1J8/bnr8uGU0DAUmYDjj2Mr4X1cW8v/GLYnR+g== - } - dev: true - - /js-sha3@0.8.0: - resolution: - { - integrity: sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q== - } - dev: true - - /js-tokens@4.0.0: - resolution: - { - integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== - } - dev: true - - /json-rpc-engine@6.1.0: - resolution: - { - integrity: sha512-NEdLrtrq1jUZyfjkr9OCz9EzCNhnRyWtt1PAnvnhwy6e8XETS0Dtc+ZNCO2gvuAoKsIn2+vCSowXTYE4CkgnAQ== - } - engines: { node: '>=10.0.0' } - dependencies: - '@metamask/safe-event-emitter': 2.0.0 - eth-rpc-errors: 4.0.3 - dev: true - - /json-rpc-random-id@1.0.1: - resolution: - { - integrity: sha512-RJ9YYNCkhVDBuP4zN5BBtYAzEl03yq/jIIsyif0JY9qyJuQQZNeDK7anAPKKlyEtLSj2s8h6hNh2F8zO5q7ScA== - } - dev: true - - /json-schema-traverse@0.4.1: - resolution: - { - integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== - } - dev: true - - /json-stringify-safe@5.0.1: - resolution: - { - integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== - } - dev: true - - /jsonfile@4.0.0: - resolution: - { - integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg== - } - optionalDependencies: - graceful-fs: 4.2.11 - dev: true - - /jsonparse@1.3.1: - resolution: - { - integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg== - } - engines: { '0': node >= 0.2.0 } - dev: true - - /keccak@3.0.4: - resolution: - { - integrity: sha512-3vKuW0jV8J3XNTzvfyicFR5qvxrSAGl7KIhvgOu5cmWwM7tZRj3fMbj/pfIf4be7aznbc+prBWGjywox/g2Y6Q== - } - engines: { node: '>=10.0.0' } - requiresBuild: true - dependencies: - node-addon-api: 2.0.2 - node-gyp-build: 4.8.1 - readable-stream: 3.6.2 - dev: true - - /keyvaluestorage-interface@1.0.0: - resolution: - { - integrity: sha512-8t6Q3TclQ4uZynJY9IGr2+SsIGwK9JHcO6ootkHCGA0CrQCRy+VkouYNO2xicET6b9al7QKzpebNow+gkpCL8g== - } - dev: true - - /kolorist@1.8.0: - resolution: - { - integrity: sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ== - } - dev: true - - /listhen@1.7.2: - resolution: - { - integrity: sha512-7/HamOm5YD9Wb7CFgAZkKgVPA96WwhcTQoqtm2VTZGVbVVn3IWKRBTgrU7cchA3Q8k9iCsG8Osoi9GX4JsGM9g== - } - hasBin: true - dependencies: - '@parcel/watcher': 2.4.1 - '@parcel/watcher-wasm': 2.4.1 - citty: 0.1.6 - clipboardy: 4.0.0 - consola: 3.2.3 - crossws: 0.2.4 - defu: 6.1.4 - get-port-please: 3.1.2 - h3: 1.11.1 - http-shutdown: 1.2.2 - jiti: 1.21.0 - mlly: 1.7.0 - node-forge: 1.3.1 - pathe: 1.1.2 - std-env: 3.7.0 - ufo: 1.5.3 - untun: 0.1.3 - uqr: 0.1.2 - transitivePeerDependencies: - - uWebSockets.js - dev: true - - /lit-element@3.3.3: - resolution: - { - integrity: sha512-XbeRxmTHubXENkV4h8RIPyr8lXc+Ff28rkcQzw3G6up2xg5E8Zu1IgOWIwBLEQsu3cOVFqdYwiVi0hv0SlpqUA== - } - dependencies: - '@lit-labs/ssr-dom-shim': 1.2.0 - '@lit/reactive-element': 1.6.3 - lit-html: 2.8.0 - dev: true - - /lit-element@4.0.5: - resolution: - { - integrity: sha512-iTWskWZEtn9SyEf4aBG6rKT8GABZMrTWop1+jopsEOgEcugcXJGKuX5bEbkq9qfzY+XB4MAgCaSPwnNpdsNQ3Q== - } - dependencies: - '@lit-labs/ssr-dom-shim': 1.2.0 - '@lit/reactive-element': 2.0.4 - lit-html: 3.1.3 - dev: true - - /lit-html@2.8.0: - resolution: - { - integrity: sha512-o9t+MQM3P4y7M7yNzqAyjp7z+mQGa4NS4CxiyLqFPyFWyc4O+nodLrkrxSaCTrla6M5YOLaT3RpbbqjszB5g3Q== - } - dependencies: - '@types/trusted-types': 2.0.7 - dev: true - - /lit-html@3.1.3: - resolution: - { - integrity: sha512-FwIbqDD8O/8lM4vUZ4KvQZjPPNx7V1VhT7vmRB8RBAO0AU6wuTVdoXiu2CivVjEGdugvcbPNBLtPE1y0ifplHA== - } - dependencies: - '@types/trusted-types': 2.0.7 - dev: true - - /lit@2.8.0: - resolution: - { - integrity: sha512-4Sc3OFX9QHOJaHbmTMk28SYgVxLN3ePDjg7hofEft2zWlehFL3LiAuapWc4U/kYwMYJSh2hTCPZ6/LIC7ii0MA== - } - dependencies: - '@lit/reactive-element': 1.6.3 - lit-element: 3.3.3 - lit-html: 2.8.0 - dev: true - - /lit@3.1.0: - resolution: - { - integrity: sha512-rzo/hmUqX8zmOdamDAeydfjsGXbbdtAFqMhmocnh2j9aDYqbu0fjXygjCa0T99Od9VQ/2itwaGrjZz/ZELVl7w== - } - dependencies: - '@lit/reactive-element': 2.0.4 - lit-element: 4.0.5 - lit-html: 3.1.3 - dev: true - - /locate-path@5.0.0: - resolution: - { - integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== - } - engines: { node: '>=8' } - dependencies: - p-locate: 4.1.0 - dev: true - - /locate-path@6.0.0: - resolution: - { - integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== - } - engines: { node: '>=10' } - dependencies: - p-locate: 5.0.0 - dev: true - - /lodash.get@4.4.2: - resolution: - { - integrity: sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ== - } - dev: true - - /lodash.isequal@4.5.0: - resolution: - { - integrity: sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ== - } - dev: true - - /lodash@4.17.21: - resolution: - { - integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== - } - dev: true - - /loose-envify@1.4.0: - resolution: - { - integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== - } - hasBin: true - dependencies: - js-tokens: 4.0.0 - dev: true - - /lru-cache@10.2.2: - resolution: - { - integrity: sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ== - } - engines: { node: 14 || >=16.14 } - dev: true - - /lru-cache@6.0.0: - resolution: - { - integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== - } - engines: { node: '>=10' } - dependencies: - yallist: 4.0.0 - dev: true - - /magic-string@0.30.10: - resolution: - { - integrity: sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ== - } - dependencies: - '@jridgewell/sourcemap-codec': 1.4.15 - 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: true - - /merge-stream@2.0.0: - resolution: - { - integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== - } - dev: true - - /micro-ftch@0.3.1: - resolution: - { - integrity: sha512-/0LLxhzP0tfiR5hcQebtudP56gUurs2CLkGarnCiB/OqEyUFQ6U3paQi/tgLv0hBJYt2rnr9MNpxz4fiiugstg== - } - dev: true - - /micromatch@4.0.7: - resolution: - { - integrity: sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q== - } - engines: { node: '>=8.6' } - dependencies: - braces: 3.0.3 - picomatch: 2.3.1 - dev: true - - /miller-rabin@4.0.1: - resolution: - { - integrity: sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA== - } - hasBin: true - dependencies: - bn.js: 4.12.0 - brorand: 1.1.0 - dev: true - - /mime-db@1.52.0: - resolution: - { - integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== - } - engines: { node: '>= 0.6' } - dev: true - - /mime-types@2.1.35: - resolution: - { - integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== - } - engines: { node: '>= 0.6' } - dependencies: - mime-db: 1.52.0 - dev: true - - /mime@3.0.0: - resolution: - { - integrity: sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A== - } - engines: { node: '>=10.0.0' } - hasBin: true - dev: true - - /mimic-fn@4.0.0: - resolution: - { - integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw== - } - engines: { node: '>=12' } - dev: true - - /minimalistic-assert@1.0.1: - resolution: - { - integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== - } - dev: true - - /minimalistic-crypto-utils@1.0.1: - resolution: - { - integrity: sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg== - } - dev: true - - /minimatch@3.0.8: - resolution: - { - integrity: sha512-6FsRAQsxQ61mw+qP1ZzbL9Bc78x2p5OqNgNpnoAFLTrX8n5Kxph0CsnhmKKNXTWjXqU5L0pGPR7hYk+XWZr60Q== - } - dependencies: - brace-expansion: 1.1.11 - dev: true - - /minimatch@9.0.4: - resolution: - { - integrity: sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw== - } - engines: { node: '>=16 || 14 >=14.17' } - dependencies: - brace-expansion: 2.0.1 - dev: true - - /mlly@1.7.0: - resolution: - { - integrity: sha512-U9SDaXGEREBYQgfejV97coK0UL1r+qnF2SyO9A3qcI8MzKnsIFKHNVEkrDyNncQTKQQumsasmeq84eNMdBfsNQ== - } - dependencies: - acorn: 8.11.3 - pathe: 1.1.2 - pkg-types: 1.1.1 - ufo: 1.5.3 - dev: true - - /motion@10.16.2: - resolution: - { - integrity: sha512-p+PurYqfUdcJZvtnmAqu5fJgV2kR0uLFQuBKtLeFVTrYEVllI99tiOTSefVNYuip9ELTEkepIIDftNdze76NAQ== - } - dependencies: - '@motionone/animation': 10.17.0 - '@motionone/dom': 10.17.0 - '@motionone/svelte': 10.16.4 - '@motionone/types': 10.17.0 - '@motionone/utils': 10.17.0 - '@motionone/vue': 10.16.4 - dev: true - - /mri@1.2.0: - resolution: - { - integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA== - } - engines: { node: '>=4' } - dev: true - - /ms@2.1.2: - resolution: - { - integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== - } - dev: true - - /muggle-string@0.3.1: - resolution: - { - integrity: sha512-ckmWDJjphvd/FvZawgygcUeQCxzvohjFO5RxTjj4eq8kw359gFF3E1brjfI+viLMxss5JrHTDRHZvu2/tuy0Qg== - } - dev: true - - /multiformats@9.9.0: - resolution: - { - integrity: sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg== - } - dev: true - - /nanoid@3.3.7: - resolution: - { - integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g== - } - engines: { node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1 } - hasBin: true - dev: true - - /napi-wasm@1.1.0: - resolution: - { - integrity: sha512-lHwIAJbmLSjF9VDRm9GoVOy9AGp3aIvkjv+Kvz9h16QR3uSVYH78PNQUnT2U4X53mhlnV2M7wrhibQ3GHicDmg== - } - dev: true - - /node-addon-api@2.0.2: - resolution: - { - integrity: sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA== - } - dev: true - - /node-addon-api@7.1.0: - resolution: - { - integrity: sha512-mNcltoe1R8o7STTegSOHdnJNN7s5EUvhoS7ShnTHDyOSd+8H+UdWODq6qSv67PjC8Zc5JRT8+oLAMCr0SIXw7g== - } - engines: { node: ^16 || ^18 || >= 20 } - dev: true - - /node-fetch-native@1.6.4: - resolution: - { - integrity: sha512-IhOigYzAKHd244OC0JIMIUrjzctirCmPkaIfhDeGcEETWof5zKYUW7e7MYvChGWh/4CJeXEgsRyGzuF334rOOQ== - } - dev: true - - /node-fetch@2.7.0: - resolution: - { - integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A== - } - engines: { node: 4.x || >=6.0.0 } - peerDependencies: - encoding: ^0.1.0 - peerDependenciesMeta: - encoding: - optional: true - dependencies: - whatwg-url: 5.0.0 - dev: true - - /node-forge@1.3.1: - resolution: - { - integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA== - } - engines: { node: '>= 6.13.0' } - dev: true - - /node-gyp-build@4.8.1: - resolution: - { - integrity: sha512-OSs33Z9yWr148JZcbZd5WiAXhh/n9z8TxQcdMhIOlpN9AhWpLfvVFO73+m77bBABQMaY9XSvIa+qk0jlI7Gcaw== - } - hasBin: true - - /node-stdlib-browser@1.2.0: - resolution: - { - integrity: sha512-VSjFxUhRhkyed8AtLwSCkMrJRfQ3e2lGtG3sP6FEgaLKBBbxM/dLfjRe1+iLhjvyLFW3tBQ8+c0pcOtXGbAZJg== - } - engines: { node: '>=10' } - dependencies: - assert: 2.1.0 - browser-resolve: 2.0.0 - browserify-zlib: 0.2.0 - buffer: 5.7.1 - console-browserify: 1.2.0 - constants-browserify: 1.0.0 - create-require: 1.1.1 - crypto-browserify: 3.12.0 - domain-browser: 4.23.0 - events: 3.3.0 - https-browserify: 1.0.0 - isomorphic-timers-promises: 1.0.1 - os-browserify: 0.3.0 - path-browserify: 1.0.1 - pkg-dir: 5.0.0 - process: 0.11.10 - punycode: 1.4.1 - querystring-es3: 0.2.1 - readable-stream: 3.6.2 - stream-browserify: 3.0.0 - stream-http: 3.2.0 - string_decoder: 1.3.0 - timers-browserify: 2.0.12 - tty-browserify: 0.0.1 - url: 0.11.3 - util: 0.12.5 - vm-browserify: 1.1.2 - dev: true - - /normalize-path@3.0.0: - resolution: - { - integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== - } - engines: { node: '>=0.10.0' } - dev: true - - /npm-run-path@5.3.0: - resolution: - { - integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ== - } - engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } - dependencies: - path-key: 4.0.0 - dev: true - - /object-inspect@1.13.1: - resolution: - { - integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ== - } - dev: true - - /object-is@1.1.6: - resolution: - { - integrity: sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q== - } - engines: { node: '>= 0.4' } - dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - dev: true - - /object-keys@1.1.1: - resolution: - { - integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== - } - engines: { node: '>= 0.4' } - dev: true - - /object.assign@4.1.5: - resolution: - { - integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ== - } - engines: { node: '>= 0.4' } - dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - has-symbols: 1.0.3 - object-keys: 1.1.1 - dev: true - - /ofetch@1.3.4: - resolution: - { - integrity: sha512-KLIET85ik3vhEfS+3fDlc/BAZiAp+43QEC/yCo5zkNoY2YaKvNkOaFr/6wCFgFH1kuYQM5pMNi0Tg8koiIemtw== - } - dependencies: - destr: 2.0.3 - node-fetch-native: 1.6.4 - ufo: 1.5.3 - dev: true - - /ohash@1.1.3: - resolution: - { - integrity: sha512-zuHHiGTYTA1sYJ/wZN+t5HKZaH23i4yI1HMwbuXm24Nid7Dv0KcuRlKoNKS9UNfAVSBlnGLcuQrnOKWOZoEGaw== - } - dev: true - - /on-exit-leak-free@0.2.0: - resolution: - { - integrity: sha512-dqaz3u44QbRXQooZLTUKU41ZrzYrcvLISVgbrzbyCMxpmSLJvZ3ZamIJIZ29P6OhZIkNIQKosdeM6t1LYbA9hg== - } - dev: true - - /once@1.4.0: - resolution: - { - integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== - } - dependencies: - wrappy: 1.0.2 - dev: true - - /onetime@6.0.0: - resolution: - { - integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ== - } - engines: { node: '>=12' } - dependencies: - mimic-fn: 4.0.0 - dev: true - - /os-browserify@0.3.0: - resolution: - { - integrity: sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A== - } - dev: true - - /p-limit@2.3.0: - resolution: - { - integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== - } - engines: { node: '>=6' } - dependencies: - p-try: 2.2.0 - dev: true - - /p-limit@3.1.0: - resolution: - { - integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== - } - engines: { node: '>=10' } - dependencies: - yocto-queue: 0.1.0 - dev: true - - /p-locate@4.1.0: - resolution: - { - integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== - } - engines: { node: '>=8' } - dependencies: - p-limit: 2.3.0 - dev: true - - /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: true - - /p-try@2.2.0: - resolution: - { - integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== - } - engines: { node: '>=6' } - dev: true - - /pako@1.0.11: - resolution: - { - integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== - } - dev: true - - /parse-asn1@5.1.7: - resolution: - { - integrity: sha512-CTM5kuWR3sx9IFamcl5ErfPl6ea/N8IYwiJ+vpeB2g+1iknv7zBl5uPwbMbRVznRVbrNY6lGuDoE5b30grmbqg== - } - engines: { node: '>= 0.10' } - dependencies: - asn1.js: 4.10.1 - browserify-aes: 1.2.0 - evp_bytestokey: 1.0.3 - hash-base: 3.0.4 - pbkdf2: 3.1.2 - safe-buffer: 5.2.1 - dev: true - - /path-browserify@1.0.1: - resolution: - { - integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g== - } - dev: true - - /path-exists@4.0.0: - resolution: - { - integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== - } - engines: { node: '>=8' } - dev: true - - /path-key@3.1.1: - resolution: - { - integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== - } - engines: { node: '>=8' } - dev: true - - /path-key@4.0.0: - resolution: - { - integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ== - } - engines: { node: '>=12' } - dev: true - - /path-parse@1.0.7: - resolution: - { - integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== - } - dev: true - - /pathe@1.1.2: - resolution: - { - integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ== - } - dev: true - - /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: true - - /picocolors@1.0.1: - resolution: - { - integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew== - } - dev: true - - /picomatch@2.3.1: - resolution: - { - integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== - } - engines: { node: '>=8.6' } - dev: true - - /pify@3.0.0: - resolution: - { - integrity: sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg== - } - engines: { node: '>=4' } - dev: true - - /pify@5.0.0: - resolution: - { - integrity: sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA== - } - engines: { node: '>=10' } - dev: true - - /pino-abstract-transport@0.5.0: - resolution: - { - integrity: sha512-+KAgmVeqXYbTtU2FScx1XS3kNyfZ5TrXY07V96QnUSFqo2gAqlvmaxH67Lj7SWazqsMabf+58ctdTcBgnOLUOQ== - } - dependencies: - duplexify: 4.1.3 - split2: 4.2.0 - dev: true - - /pino-std-serializers@4.0.0: - resolution: - { - integrity: sha512-cK0pekc1Kjy5w9V2/n+8MkZwusa6EyyxfeQCB799CQRhRt/CqYKiWs5adeu8Shve2ZNffvfC/7J64A2PJo1W/Q== - } - dev: true - - /pino@7.11.0: - resolution: - { - integrity: sha512-dMACeu63HtRLmCG8VKdy4cShCPKaYDR4youZqoSWLxl5Gu99HUw8bw75thbPv9Nip+H+QYX8o3ZJbTdVZZ2TVg== - } - hasBin: true - dependencies: - atomic-sleep: 1.0.0 - fast-redact: 3.5.0 - on-exit-leak-free: 0.2.0 - pino-abstract-transport: 0.5.0 - pino-std-serializers: 4.0.0 - process-warning: 1.0.0 - quick-format-unescaped: 4.0.4 - real-require: 0.1.0 - safe-stable-stringify: 2.4.3 - sonic-boom: 2.8.0 - thread-stream: 0.15.2 - dev: true - - /pkg-dir@5.0.0: - resolution: - { - integrity: sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA== - } - engines: { node: '>=10' } - dependencies: - find-up: 5.0.0 - dev: true - - /pkg-types@1.1.1: - resolution: - { - integrity: sha512-ko14TjmDuQJ14zsotODv7dBlwxKhUKQEhuhmbqo1uCi9BB0Z2alo/wAXg6q1dTR5TyuqYyWhjtfe/Tsh+X28jQ== - } - dependencies: - confbox: 0.1.7 - mlly: 1.7.0 - pathe: 1.1.2 - dev: true - - /pngjs@5.0.0: - resolution: - { - integrity: sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw== - } - engines: { node: '>=10.13.0' } - dev: true - - /pony-cause@2.1.11: - resolution: - { - integrity: sha512-M7LhCsdNbNgiLYiP4WjsfLUuFmCfnjdF6jKe2R9NKl4WFN+HZPGHJZ9lnLP7f9ZnKe3U9nuWD0szirmj+migUg== - } - engines: { node: '>=12.0.0' } - dev: true - - /possible-typed-array-names@1.0.0: - resolution: - { - integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q== - } - engines: { node: '>= 0.4' } - - /postcss@8.4.38: - resolution: - { - integrity: sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A== - } - engines: { node: ^10 || ^12 || >=14 } - dependencies: - nanoid: 3.3.7 - picocolors: 1.0.1 - source-map-js: 1.2.0 - dev: true - - /preact@10.22.0: - resolution: - { - integrity: sha512-RRurnSjJPj4rp5K6XoP45Ui33ncb7e4H7WiOHVpjbkvqvA3U+N8Z6Qbo0AE6leGYBV66n8EhEaFixvIu3SkxFw== - } - dev: true - - /process-nextick-args@2.0.1: - resolution: - { - integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== - } - dev: true - - /process-warning@1.0.0: - resolution: - { - integrity: sha512-du4wfLyj4yCZq1VupnVSZmRsPJsNuxoDQFdCFHLaYiEbFBD7QE0a+I4D7hOxrVnh78QE/YipFAj9lXHiXocV+Q== - } - dev: true - - /process@0.11.10: - resolution: - { - integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A== - } - engines: { node: '>= 0.6.0' } - dev: true - - /proxy-compare@2.5.1: - resolution: - { - integrity: sha512-oyfc0Tx87Cpwva5ZXezSp5V9vht1c7dZBhvuV/y3ctkgMVUmiAGDVeeB0dKhGSyT0v1ZTEQYpe/RXlBVBNuCLA== - } - dev: true - - /proxy-from-env@1.1.0: - resolution: - { - integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== - } - dev: true - - /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.7 - randombytes: 2.1.0 - safe-buffer: 5.2.1 - dev: true - - /punycode@1.4.1: - resolution: - { - integrity: sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ== - } - dev: true - - /punycode@2.3.1: - resolution: - { - integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== - } - engines: { node: '>=6' } - dev: true - - /qrcode@1.5.3: - resolution: - { - integrity: sha512-puyri6ApkEHYiVl4CFzo1tDkAZ+ATcnbJrJ6RiBM1Fhctdn/ix9MTE3hRph33omisEbC/2fcfemsseiKgBPKZg== - } - engines: { node: '>=10.13.0' } - hasBin: true - dependencies: - dijkstrajs: 1.0.3 - encode-utf8: 1.0.3 - pngjs: 5.0.0 - yargs: 15.4.1 - dev: true - - /qs@6.12.1: - resolution: - { - integrity: sha512-zWmv4RSuB9r2mYQw3zxQuHWeU+42aKi1wWig/j4ele4ygELZ7PEO6MM7rim9oAQH2A5MWfsAVf/jPvTPgCbvUQ== - } - engines: { node: '>=0.6' } - dependencies: - side-channel: 1.0.6 - dev: true - - /query-string@6.14.1: - resolution: - { - integrity: sha512-XDxAeVmpfu1/6IjyT/gXHOl+S0vQ9owggJ30hhWKdHAsNPOcasn5o9BW0eejZqL2e4vMjhAxoW3jVHcD6mbcYw== - } - engines: { node: '>=6' } - dependencies: - decode-uri-component: 0.2.2 - filter-obj: 1.1.0 - split-on-first: 1.1.0 - strict-uri-encode: 2.0.0 - dev: true - - /query-string@7.1.3: - resolution: - { - integrity: sha512-hh2WYhq4fi8+b+/2Kg9CEge4fDPvHS534aOOvOZeQ3+Vf2mCFsaFBYj0i+iXcAq6I9Vzp5fjMFBlONvayDC1qg== - } - engines: { node: '>=6' } - dependencies: - decode-uri-component: 0.2.2 - filter-obj: 1.1.0 - split-on-first: 1.1.0 - strict-uri-encode: 2.0.0 - dev: true - - /querystring-es3@0.2.1: - resolution: - { - integrity: sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA== - } - engines: { node: '>=0.4.x' } - dev: true - - /quick-format-unescaped@4.0.4: - resolution: - { - integrity: sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg== - } - dev: true - - /radix3@1.1.2: - resolution: - { - integrity: sha512-b484I/7b8rDEdSDKckSSBA8knMpcdsXudlE/LNL639wFoHKwLbEkQFZHWEYwDC0wa0FKUcCY+GAF73Z7wxNVFA== - } - dev: true - - /randombytes@2.1.0: - resolution: - { - integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== - } - dependencies: - safe-buffer: 5.2.1 - dev: true - - /randomfill@1.0.4: - resolution: - { - integrity: sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw== - } - dependencies: - randombytes: 2.1.0 - safe-buffer: 5.2.1 - dev: true - - /react@18.3.1: - resolution: - { - integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ== - } - engines: { node: '>=0.10.0' } - dependencies: - loose-envify: 1.4.0 - dev: true - - /readable-stream@2.3.8: - resolution: - { - integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA== - } - 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: true - - /readable-stream@3.6.2: - resolution: - { - integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== - } - engines: { node: '>= 6' } - dependencies: - inherits: 2.0.4 - string_decoder: 1.3.0 - util-deprecate: 1.0.2 - dev: true - - /readdirp@3.6.0: - resolution: - { - integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== - } - engines: { node: '>=8.10.0' } - dependencies: - picomatch: 2.3.1 - dev: true - - /real-require@0.1.0: - resolution: - { - integrity: sha512-r/H9MzAWtrv8aSVjPCMFpDMl5q66GqtmmRkRjpHTsp4zBAa+snZyiQNlMONiUmEJcsnaw0wCauJ2GWODr/aFkg== - } - engines: { node: '>= 12.13.0' } - dev: true - - /regenerator-runtime@0.14.1: - resolution: - { - integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw== - } - dev: true - - /require-directory@2.1.1: - resolution: - { - integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== - } - engines: { node: '>=0.10.0' } - dev: true - - /require-main-filename@2.0.0: - resolution: - { - integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== - } - dev: true - - /resolve@1.19.0: - resolution: - { - integrity: sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg== - } - dependencies: - is-core-module: 2.13.1 - path-parse: 1.0.7 - dev: true - - /resolve@1.22.8: - resolution: - { - integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw== - } - hasBin: true - dependencies: - is-core-module: 2.13.1 - path-parse: 1.0.7 - supports-preserve-symlinks-flag: 1.0.0 - dev: true - - /ripemd160@2.0.2: - resolution: - { - integrity: sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA== - } - dependencies: - hash-base: 3.1.0 - inherits: 2.0.4 - dev: true - - /rollup@4.18.0: - resolution: - { - integrity: sha512-QmJz14PX3rzbJCN1SG4Xe/bAAX2a6NpCP8ab2vfu2GiUr8AQcr2nCV/oEO3yneFarB67zk8ShlIyWb2LGTb3Sg== - } - engines: { node: '>=18.0.0', npm: '>=8.0.0' } - hasBin: true - dependencies: - '@types/estree': 1.0.5 - optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.18.0 - '@rollup/rollup-android-arm64': 4.18.0 - '@rollup/rollup-darwin-arm64': 4.18.0 - '@rollup/rollup-darwin-x64': 4.18.0 - '@rollup/rollup-linux-arm-gnueabihf': 4.18.0 - '@rollup/rollup-linux-arm-musleabihf': 4.18.0 - '@rollup/rollup-linux-arm64-gnu': 4.18.0 - '@rollup/rollup-linux-arm64-musl': 4.18.0 - '@rollup/rollup-linux-powerpc64le-gnu': 4.18.0 - '@rollup/rollup-linux-riscv64-gnu': 4.18.0 - '@rollup/rollup-linux-s390x-gnu': 4.18.0 - '@rollup/rollup-linux-x64-gnu': 4.18.0 - '@rollup/rollup-linux-x64-musl': 4.18.0 - '@rollup/rollup-win32-arm64-msvc': 4.18.0 - '@rollup/rollup-win32-ia32-msvc': 4.18.0 - '@rollup/rollup-win32-x64-msvc': 4.18.0 - fsevents: 2.3.3 - dev: true - - /rpc-websockets@7.11.0: - resolution: - { - integrity: sha512-IkLYjayPv6Io8C/TdCL5gwgzd1hFz2vmBZrjMw/SPEXo51ETOhnzgS4Qy5GWi2JQN7HKHa66J3+2mv0fgNh/7w== - } - dependencies: - eventemitter3: 4.0.7 - uuid: 8.3.2 - ws: 8.16.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) - optionalDependencies: - bufferutil: 4.0.8 - utf-8-validate: 5.0.10 - dev: true - - /safe-buffer@5.1.2: - resolution: - { - integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== - } - dev: true - - /safe-buffer@5.2.1: - resolution: - { - integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== - } - dev: true - - /safe-stable-stringify@2.4.3: - resolution: - { - integrity: sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g== - } - engines: { node: '>=10' } - dev: true - - /scrypt-js@2.0.4: - resolution: - { - integrity: sha512-4KsaGcPnuhtCZQCxFxN3GVYIhKFPTdLd8PLC552XwbMndtD0cjRFAhDuuydXQ0h08ZfPgzqe6EKHozpuH74iDw== - } - dev: true - - /semver@5.7.2: - resolution: - { - integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== - } - hasBin: true - dev: true - - /semver@7.5.4: - resolution: - { - integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== - } - engines: { node: '>=10' } - hasBin: true - dependencies: - lru-cache: 6.0.0 - dev: true - - /semver@7.6.2: - resolution: - { - integrity: sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w== - } - engines: { node: '>=10' } - hasBin: true - dev: true - - /set-blocking@2.0.0: - resolution: - { - integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== - } - dev: true - - /set-function-length@1.2.2: - resolution: - { - integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg== - } - engines: { node: '>= 0.4' } - dependencies: - define-data-property: 1.1.4 - es-errors: 1.3.0 - function-bind: 1.1.2 - get-intrinsic: 1.2.4 - gopd: 1.0.1 - has-property-descriptors: 1.0.2 - - /setimmediate@1.0.4: - resolution: - { - integrity: sha512-/TjEmXQVEzdod/FFskf3o7oOAsGhHf2j1dZqRFbDzq4F3mvvxflIIi4Hd3bLQE9y/CpwqfSQam5JakI/mi3Pog== - } - dev: true - - /setimmediate@1.0.5: - resolution: - { - integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA== - } - dev: true - - /sha.js@2.4.11: - resolution: - { - integrity: sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== - } - hasBin: true - dependencies: - inherits: 2.0.4 - safe-buffer: 5.2.1 - dev: true - - /shebang-command@2.0.0: - resolution: - { - integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== - } - engines: { node: '>=8' } - dependencies: - shebang-regex: 3.0.0 - dev: true - - /shebang-regex@3.0.0: - resolution: - { - integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== - } - engines: { node: '>=8' } - dev: true - - /side-channel@1.0.6: - resolution: - { - integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA== - } - engines: { node: '>= 0.4' } - dependencies: - call-bind: 1.0.7 - es-errors: 1.3.0 - get-intrinsic: 1.2.4 - object-inspect: 1.13.1 - dev: true - - /signal-exit@4.1.0: - resolution: - { - integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== - } - engines: { node: '>=14' } - dev: true - - /sonic-boom@2.8.0: - resolution: - { - integrity: sha512-kuonw1YOYYNOve5iHdSahXPOK49GqwA+LZhI6Wz/l0rP57iKyXXIHaRagOBHAPmGwJC6od2Z9zgvZ5loSgMlVg== - } - dependencies: - atomic-sleep: 1.0.0 - dev: true - - /source-map-js@1.2.0: - resolution: - { - integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg== - } - engines: { node: '>=0.10.0' } - dev: true - - /source-map@0.6.1: - resolution: - { - integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== - } - engines: { node: '>=0.10.0' } - dev: true - - /split-on-first@1.1.0: - resolution: - { - integrity: sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw== - } - engines: { node: '>=6' } - dev: true - - /split2@4.2.0: - resolution: - { - integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg== - } - engines: { node: '>= 10.x' } - dev: true - - /sprintf-js@1.0.3: - resolution: - { - integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== - } - dev: true - - /std-env@3.7.0: - resolution: - { - integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg== - } - dev: true - - /stream-browserify@3.0.0: - resolution: - { - integrity: sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA== - } - dependencies: - inherits: 2.0.4 - readable-stream: 3.6.2 - dev: true - - /stream-http@3.2.0: - resolution: - { - integrity: sha512-Oq1bLqisTyK3TSCXpPbT4sdeYNdmyZJv1LxpEm2vu1ZhK89kSE5YXwZc3cWk0MagGaKriBh9mCFbVGtO+vY29A== - } - dependencies: - builtin-status-codes: 3.0.0 - inherits: 2.0.4 - readable-stream: 3.6.2 - xtend: 4.0.2 - dev: true - - /stream-shift@1.0.3: - resolution: - { - integrity: sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ== - } - dev: true - - /strict-uri-encode@2.0.0: - resolution: - { - integrity: sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ== - } - engines: { node: '>=4' } - dev: true - - /string-argv@0.3.2: - resolution: - { - integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q== - } - engines: { node: '>=0.6.19' } - dev: true - - /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 - dev: true - - /string_decoder@1.1.1: - resolution: - { - integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== - } - dependencies: - safe-buffer: 5.1.2 - dev: true - - /string_decoder@1.3.0: - resolution: - { - integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== - } - dependencies: - safe-buffer: 5.2.1 - dev: true - - /strip-ansi@6.0.1: - resolution: - { - integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== - } - engines: { node: '>=8' } - dependencies: - ansi-regex: 5.0.1 - dev: true - - /strip-final-newline@3.0.0: - resolution: - { - integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw== - } - engines: { node: '>=12' } - dev: true - - /strip-json-comments@3.1.1: - resolution: - { - integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== - } - engines: { node: '>=8' } - dev: true - - /superstruct@0.14.2: - resolution: - { - integrity: sha512-nPewA6m9mR3d6k7WkZ8N8zpTWfenFH3q9pA2PkuiZxINr9DKB2+40wEQf0ixn8VaGuJ78AB6iWOtStI+/4FKZQ== - } - dev: true - - /superstruct@1.0.4: - resolution: - { - integrity: sha512-7JpaAoX2NGyoFlI9NBh66BQXGONc+uE+MRS5i2iOBKuS4e+ccgMDjATgZldkah+33DakBxDHiss9kvUcGAO8UQ== - } - engines: { node: '>=14.0.0' } - dev: true - - /supports-color@8.1.1: - resolution: - { - integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== - } - engines: { node: '>=10' } - dependencies: - has-flag: 4.0.0 - dev: true - - /supports-preserve-symlinks-flag@1.0.0: - resolution: - { - integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== - } - engines: { node: '>= 0.4' } - dev: true - - /system-architecture@0.1.0: - resolution: - { - integrity: sha512-ulAk51I9UVUyJgxlv9M6lFot2WP3e7t8Kz9+IS6D4rVba1tR9kON+Ey69f+1R4Q8cd45Lod6a4IcJIxnzGc/zA== - } - engines: { node: '>=18' } - dev: true - - /text-encoding-utf-8@1.0.2: - resolution: - { - integrity: sha512-8bw4MY9WjdsD2aMtO0OzOCY3pXGYNx2d2FfHRVUKkiCPDWjKuOlhLVASS+pD7VkLTVjW268LYJHwsnPFlBpbAg== - } - dev: true - - /thread-stream@0.15.2: - resolution: - { - integrity: sha512-UkEhKIg2pD+fjkHQKyJO3yoIvAP3N6RlNFt2dUhcS1FGvCD1cQa1M/PGknCLFIyZdtJOWQjejp7bdNqmN7zwdA== - } - dependencies: - real-require: 0.1.0 - dev: true - - /through@2.3.8: - resolution: - { - integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== - } - dev: true - - /timers-browserify@2.0.12: - resolution: - { - integrity: sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ== - } - engines: { node: '>=0.6.0' } - dependencies: - setimmediate: 1.0.5 - dev: true - - /to-fast-properties@2.0.0: - resolution: - { - integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== - } - engines: { node: '>=4' } - dev: true - - /to-regex-range@5.0.1: - resolution: - { - integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== - } - engines: { node: '>=8.0' } - dependencies: - is-number: 7.0.0 - dev: true - - /toggle-selection@1.0.6: - resolution: - { - integrity: sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ== - } - dev: true - - /tr46@0.0.3: - resolution: - { - integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== - } - dev: true - - /tronweb@5.3.2: - resolution: - { - integrity: sha512-iPcIjMCxb6H7FXMntAj47F3L+7jSideyQ7ZOvRj9MeZBh46SHevMrDDR57HzakUa/tT8VvlPFHtqFK4hzTLkXw== - } - dependencies: - '@babel/runtime': 7.24.6 - '@ethersproject/abi': 5.7.0 - '@tronweb3/google-protobuf': 3.21.2 - axios: 1.7.2 - bignumber.js: 9.1.2 - ethereum-cryptography: 2.1.3 - ethers: 6.12.1 - eventemitter3: 3.1.2 - injectpromise: 1.0.0 - lodash: 4.17.21 - querystring-es3: 0.2.1 - semver: 5.7.2 - validator: 13.12.0 - transitivePeerDependencies: - - bufferutil - - debug - - utf-8-validate - dev: true - - /tslib@1.14.1: - resolution: - { - integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== - } - dev: true - - /tslib@2.4.0: - resolution: - { - integrity: sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ== - } - dev: true - - /tslib@2.6.2: - resolution: - { - integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== - } - dev: true - - /tty-browserify@0.0.1: - resolution: - { - integrity: sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw== - } - dev: true - - /typedarray-to-buffer@3.1.5: - resolution: - { - integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== - } - dependencies: - is-typedarray: 1.0.0 - dev: true - - /typescript@5.4.2: - resolution: - { - integrity: sha512-+2/g0Fds1ERlP6JsakQQDXjZdZMM+rqpamFZJEKh4kwTIn3iDkgKtby0CeNd5ATNZ4Ry1ax15TMx0W2V+miizQ== - } - engines: { node: '>=14.17' } - hasBin: true - dev: true - - /typescript@5.4.5: - resolution: - { - integrity: sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ== - } - engines: { node: '>=14.17' } - hasBin: true - dev: true - - /ufo@1.5.3: - resolution: - { - integrity: sha512-Y7HYmWaFwPUmkoQCUIAYpKqkOf+SbVj/2fJJZ4RJMCfZp0rTGwRbzQD+HghfnhKOjL9E01okqz+ncJskGYfBNw== - } - dev: true - - /uint8arrays@3.1.0: - resolution: - { - integrity: sha512-ei5rfKtoRO8OyOIor2Rz5fhzjThwIHJZ3uyDPnDHTXbP0aMQ1RN/6AI5B5d9dBxJOU+BvOAk7ZQ1xphsX8Lrog== - } - dependencies: - multiformats: 9.9.0 - dev: true - - /uint8arrays@3.1.1: - resolution: - { - integrity: sha512-+QJa8QRnbdXVpHYjLoTpJIdCTiw9Ir62nocClWuXIq2JIh4Uta0cQsTSpFL678p2CN8B+XSApwcU+pQEqVpKWg== - } - dependencies: - multiformats: 9.9.0 - dev: true - - /uncrypto@0.1.3: - resolution: - { - integrity: sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q== - } - dev: true - - /undici-types@5.26.5: - resolution: - { - integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== - } - - /unenv@1.9.0: - resolution: - { - integrity: sha512-QKnFNznRxmbOF1hDgzpqrlIf6NC5sbZ2OJ+5Wl3OX8uM+LUJXbj4TXvLJCtwbPTmbMHCLIz6JLKNinNsMShK9g== - } - dependencies: - consola: 3.2.3 - defu: 6.1.4 - mime: 3.0.0 - node-fetch-native: 1.6.4 - pathe: 1.1.2 - dev: true - - /unfetch@4.2.0: - resolution: - { - integrity: sha512-F9p7yYCn6cIW9El1zi0HI6vqpeIvBsr3dSuRO6Xuppb1u5rXpCPmMvLSyECLhybr9isec8Ohl0hPekMVrEinDA== - } - dev: true - - /universalify@0.1.2: - resolution: - { - integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== - } - engines: { node: '>= 4.0.0' } - dev: true - - /unstorage@1.10.2(idb-keyval@6.2.1): - resolution: - { - integrity: sha512-cULBcwDqrS8UhlIysUJs2Dk0Mmt8h7B0E6mtR+relW9nZvsf/u4SkAYyNliPiPW7XtFNb5u3IUMkxGxFTTRTgQ== - } - peerDependencies: - '@azure/app-configuration': ^1.5.0 - '@azure/cosmos': ^4.0.0 - '@azure/data-tables': ^13.2.2 - '@azure/identity': ^4.0.1 - '@azure/keyvault-secrets': ^4.8.0 - '@azure/storage-blob': ^12.17.0 - '@capacitor/preferences': ^5.0.7 - '@netlify/blobs': ^6.5.0 || ^7.0.0 - '@planetscale/database': ^1.16.0 - '@upstash/redis': ^1.28.4 - '@vercel/kv': ^1.0.1 - idb-keyval: ^6.2.1 - ioredis: ^5.3.2 - peerDependenciesMeta: - '@azure/app-configuration': - optional: true - '@azure/cosmos': - optional: true - '@azure/data-tables': - optional: true - '@azure/identity': - optional: true - '@azure/keyvault-secrets': - optional: true - '@azure/storage-blob': - optional: true - '@capacitor/preferences': - optional: true - '@netlify/blobs': - optional: true - '@planetscale/database': - optional: true - '@upstash/redis': - optional: true - '@vercel/kv': - optional: true - idb-keyval: - optional: true - ioredis: - optional: true - dependencies: - anymatch: 3.1.3 - chokidar: 3.6.0 - destr: 2.0.3 - h3: 1.11.1 - idb-keyval: 6.2.1 - listhen: 1.7.2 - lru-cache: 10.2.2 - mri: 1.2.0 - node-fetch-native: 1.6.4 - ofetch: 1.3.4 - ufo: 1.5.3 - transitivePeerDependencies: - - uWebSockets.js - dev: true - - /untun@0.1.3: - resolution: - { - integrity: sha512-4luGP9LMYszMRZwsvyUd9MrxgEGZdZuZgpVQHEEX0lCYFESasVRvZd0EYpCkOIbJKHMuv0LskpXc/8Un+MJzEQ== - } - hasBin: true - dependencies: - citty: 0.1.6 - consola: 3.2.3 - pathe: 1.1.2 - dev: true - - /uqr@0.1.2: - resolution: - { - integrity: sha512-MJu7ypHq6QasgF5YRTjqscSzQp/W11zoUk6kvmlH+fmWEs63Y0Eib13hYFwAzagRJcVY8WVnlV+eBDUGMJ5IbA== - } - dev: true - - /uri-js@4.4.1: - resolution: - { - integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== - } - dependencies: - punycode: 2.3.1 - dev: true - - /url@0.11.3: - resolution: - { - integrity: sha512-6hxOLGfZASQK/cijlZnZJTq8OXAkt/3YGfQX45vvMYXpZoo8NdWZcY73K108Jf759lS1Bv/8wXnHDTSz17dSRw== - } - dependencies: - punycode: 1.4.1 - qs: 6.12.1 - dev: true - - /use-sync-external-store@1.2.0(react@18.3.1): - resolution: - { - integrity: sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA== - } - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - dependencies: - react: 18.3.1 - dev: true - - /utf-8-validate@5.0.10: - resolution: - { - integrity: sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ== - } - engines: { node: '>=6.14.2' } - requiresBuild: true - dependencies: - node-gyp-build: 4.8.1 - - /util-deprecate@1.0.2: - resolution: - { - integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== - } - dev: true - - /util@0.12.5: - resolution: - { - integrity: sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA== - } - dependencies: - inherits: 2.0.4 - is-arguments: 1.1.1 - is-generator-function: 1.0.10 - is-typed-array: 1.1.13 - which-typed-array: 1.1.15 - - /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: true - - /uuid@8.3.2: - resolution: - { - integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== - } - hasBin: true - dev: true - - /uuid@9.0.1: - resolution: - { - integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA== - } - hasBin: true - dev: true - - /validator@13.12.0: - resolution: - { - integrity: sha512-c1Q0mCiPlgdTVVVIJIrBuxNicYE+t/7oKeI9MWLj3fh/uq2Pxh/3eeWbVZ4OcGW1TUf53At0njHw5SMdA3tmMg== - } - engines: { node: '>= 0.10' } - dev: true - - /valtio@1.11.2(react@18.3.1): - resolution: - { - integrity: sha512-1XfIxnUXzyswPAPXo1P3Pdx2mq/pIqZICkWN60Hby0d9Iqb+MEIpqgYVlbflvHdrp2YR/q3jyKWRPJJ100yxaw== - } - engines: { node: '>=12.20.0' } - peerDependencies: - '@types/react': '>=16.8' - react: '>=16.8' - peerDependenciesMeta: - '@types/react': - optional: true - react: - optional: true - dependencies: - proxy-compare: 2.5.1 - react: 18.3.1 - use-sync-external-store: 1.2.0(react@18.3.1) - dev: true - - /vite-plugin-dts@3.9.1(typescript@5.4.5)(vite@5.2.11): - resolution: - { - integrity: sha512-rVp2KM9Ue22NGWB8dNtWEr+KekN3rIgz1tWD050QnRGlriUCmaDwa7qA5zDEjbXg5lAXhYMSBJtx3q3hQIJZSg== - } - engines: { node: ^14.18.0 || >=16.0.0 } - peerDependencies: - typescript: '*' - vite: '*' - peerDependenciesMeta: - vite: - optional: true - dependencies: - '@microsoft/api-extractor': 7.43.0 - '@rollup/pluginutils': 5.1.0 - '@vue/language-core': 1.8.27(typescript@5.4.5) - debug: 4.3.4 - kolorist: 1.8.0 - magic-string: 0.30.10 - typescript: 5.4.5 - vite: 5.2.11 - vue-tsc: 1.8.27(typescript@5.4.5) - transitivePeerDependencies: - - '@types/node' - - rollup - - supports-color - dev: true - - /vite-plugin-node-polyfills@0.21.0(vite@5.2.11): - resolution: - { - integrity: sha512-Sk4DiKnmxN8E0vhgEhzLudfJQfaT8k4/gJ25xvUPG54KjLJ6HAmDKbr4rzDD/QWEY+Lwg80KE85fGYBQihEPQA== - } - peerDependencies: - vite: ^2.0.0 || ^3.0.0 || ^4.0.0 || ^5.0.0 - dependencies: - '@rollup/plugin-inject': 5.0.5 - node-stdlib-browser: 1.2.0 - vite: 5.2.11 - transitivePeerDependencies: - - rollup - dev: true - - /vite@5.2.11: - resolution: - { - integrity: sha512-HndV31LWW05i1BLPMUCE1B9E9GFbOu1MbenhS58FuK6owSO5qHm7GiCotrNY1YE5rMeQSFBGmT5ZaLEjFizgiQ== - } - engines: { node: ^18.0.0 || >=20.0.0 } - hasBin: true - peerDependencies: - '@types/node': ^18.0.0 || >=20.0.0 - less: '*' - lightningcss: ^1.21.0 - sass: '*' - stylus: '*' - sugarss: '*' - terser: ^5.4.0 - peerDependenciesMeta: - '@types/node': - optional: true - less: - optional: true - lightningcss: - optional: true - sass: - optional: true - stylus: - optional: true - sugarss: - optional: true - terser: - optional: true - dependencies: - esbuild: 0.20.2 - postcss: 8.4.38 - rollup: 4.18.0 - optionalDependencies: - fsevents: 2.3.3 - dev: true - - /vm-browserify@1.1.2: - resolution: - { - integrity: sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ== - } - dev: true - - /vue-template-compiler@2.7.16: - resolution: - { - integrity: sha512-AYbUWAJHLGGQM7+cNTELw+KsOG9nl2CnSv467WobS5Cv9uk3wFcnr1Etsz2sEIHEZvw1U+o9mRlEO6QbZvUPGQ== - } - dependencies: - de-indent: 1.0.2 - he: 1.2.0 - dev: true - - /vue-tsc@1.8.27(typescript@5.4.5): - resolution: - { - integrity: sha512-WesKCAZCRAbmmhuGl3+VrdWItEvfoFIPXOvUJkjULi+x+6G/Dy69yO3TBRJDr9eUlmsNAwVmxsNZxvHKzbkKdg== - } - hasBin: true - peerDependencies: - typescript: '*' - dependencies: - '@volar/typescript': 1.11.1 - '@vue/language-core': 1.8.27(typescript@5.4.5) - semver: 7.6.2 - typescript: 5.4.5 - dev: true - - /web3-errors@1.1.4: - resolution: - { - integrity: sha512-WahtszSqILez+83AxGecVroyZsMuuRT+KmQp4Si5P4Rnqbczno1k748PCrZTS1J4UCPmXMG2/Vt+0Bz2zwXkwQ== - } - engines: { node: '>=14', npm: '>=6.12.0' } - dependencies: - web3-types: 1.5.0 - - /web3-types@1.5.0: - resolution: - { - integrity: sha512-geWuMIeegQ8AedKAO6wO4G4j1gyQ1F/AyKLMw2vud4bsfZayyzWJgCMDZtjYMm5uo2a7i8j1W3/4QFmzlSy5cw== - } - engines: { node: '>=14', npm: '>=6.12.0' } - - /web3-utils@4.2.1: - resolution: - { - integrity: sha512-Fk29BlEqD9Q9Cnw4pBkKw7czcXiRpsSco/BzEUl4ye0ZTSHANQFfjsfQmNm4t7uY11u6Ah+8F3tNjBeU4CA80A== - } - engines: { node: '>=14', npm: '>=6.12.0' } - dependencies: - ethereum-cryptography: 2.1.3 - eventemitter3: 5.0.1 - web3-errors: 1.1.4 - web3-types: 1.5.0 - web3-validator: 2.0.4 - - /web3-validator@2.0.4: - resolution: - { - integrity: sha512-qRxVePwdW+SByOmTpDZFWHIUAa7PswvxNszrOua6BoGqAhERo5oJZBN+EbWtK/+O+ApNxt5FR3nCPmiZldiOQA== - } - engines: { node: '>=14', npm: '>=6.12.0' } - dependencies: - ethereum-cryptography: 2.1.3 - util: 0.12.5 - web3-errors: 1.1.4 - web3-types: 1.5.0 - zod: 3.22.4 - - /webidl-conversions@3.0.1: - resolution: - { - integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== - } - dev: true - - /whatwg-url@5.0.0: - resolution: - { - integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== - } - dependencies: - tr46: 0.0.3 - webidl-conversions: 3.0.1 - dev: true - - /which-module@2.0.1: - resolution: - { - integrity: sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ== - } - dev: true - - /which-typed-array@1.1.15: - resolution: - { - integrity: sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA== - } - engines: { node: '>= 0.4' } - dependencies: - available-typed-arrays: 1.0.7 - call-bind: 1.0.7 - for-each: 0.3.3 - gopd: 1.0.1 - has-tostringtag: 1.0.2 - - /which@2.0.2: - resolution: - { - integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== - } - engines: { node: '>= 8' } - hasBin: true - dependencies: - isexe: 2.0.0 - dev: true + zod@3.22.4: + resolution: {integrity: sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==} - /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: true +snapshots: - /wrappy@1.0.2: - resolution: - { - integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== - } - dev: true + '@multiplechain/types@0.1.70': {} - /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: true + '@multiplechain/utils@0.1.23(bufferutil@4.0.8)(utf-8-validate@5.0.10)': + dependencies: + '@types/ws': 8.5.10 + bignumber.js: 9.1.2 + web3-utils: 4.2.1 + ws: 8.16.0(bufferutil@4.0.8)(utf-8-validate@5.0.10) + transitivePeerDependencies: + - bufferutil + - utf-8-validate - /ws@8.16.0(bufferutil@4.0.8)(utf-8-validate@5.0.10): - resolution: - { - integrity: sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ== - } - 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.8 - utf-8-validate: 5.0.10 + '@noble/curves@1.3.0': + dependencies: + '@noble/hashes': 1.3.3 - /ws@8.5.0: - resolution: - { - integrity: sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg== - } - 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: true + '@noble/hashes@1.3.3': {} - /xmlhttprequest@1.8.0: - resolution: - { - integrity: sha512-58Im/U0mlVBLM38NdZjHyhuMtCqa61469k2YP/AaPbvCoV9aQGUpbJBj1QRm2ytRiVQBD/fsw7L2bJGDVQswBA== - } - engines: { node: '>=0.4.0' } - dev: true + '@scure/base@1.1.6': {} - /xtend@4.0.2: - resolution: - { - integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== - } - engines: { node: '>=0.4' } - dev: true + '@scure/bip32@1.3.3': + dependencies: + '@noble/curves': 1.3.0 + '@noble/hashes': 1.3.3 + '@scure/base': 1.1.6 - /y18n@4.0.3: - resolution: - { - integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ== - } - dev: true + '@scure/bip39@1.2.2': + dependencies: + '@noble/hashes': 1.3.3 + '@scure/base': 1.1.6 - /yallist@4.0.0: - resolution: - { - integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== - } - dev: true + '@types/node@20.12.7': + dependencies: + undici-types: 5.26.5 - /yargs-parser@18.1.3: - resolution: - { - integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ== - } - engines: { node: '>=6' } - dependencies: - camelcase: 5.3.1 - decamelize: 1.2.0 - dev: true + '@types/ws@8.5.10': + dependencies: + '@types/node': 20.12.7 - /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.1 - y18n: 4.0.3 - yargs-parser: 18.1.3 - dev: true + available-typed-arrays@1.0.7: + dependencies: + possible-typed-array-names: 1.0.0 - /yocto-queue@0.1.0: - resolution: - { - integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== - } - engines: { node: '>=10' } - dev: true + bignumber.js@9.1.2: {} - /z-schema@5.0.5: - resolution: - { - integrity: sha512-D7eujBWkLa3p2sIpJA0d1pr7es+a7m0vFAnZLlCEKq/Ij2k0MLi9Br2UPxoxdYystm5K1yeBGzub0FlYUEWj2Q== - } - engines: { node: '>=8.0.0' } - hasBin: true - dependencies: - lodash.get: 4.4.2 - lodash.isequal: 4.5.0 - validator: 13.12.0 - optionalDependencies: - commander: 9.5.0 - dev: true + bufferutil@4.0.8: + dependencies: + node-gyp-build: 4.8.1 + optional: true - /zod@3.22.4: - resolution: - { - integrity: sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg== - } + call-bind@1.0.7: + dependencies: + es-define-property: 1.0.0 + es-errors: 1.3.0 + function-bind: 1.1.2 + get-intrinsic: 1.2.4 + set-function-length: 1.2.2 + + define-data-property@1.1.4: + dependencies: + es-define-property: 1.0.0 + es-errors: 1.3.0 + gopd: 1.0.1 + + es-define-property@1.0.0: + dependencies: + get-intrinsic: 1.2.4 + + es-errors@1.3.0: {} + + ethereum-cryptography@2.1.3: + dependencies: + '@noble/curves': 1.3.0 + '@noble/hashes': 1.3.3 + '@scure/bip32': 1.3.3 + '@scure/bip39': 1.2.2 + + eventemitter3@5.0.1: {} + + for-each@0.3.3: + dependencies: + is-callable: 1.2.7 + + function-bind@1.1.2: {} + + get-intrinsic@1.2.4: + dependencies: + es-errors: 1.3.0 + function-bind: 1.1.2 + has-proto: 1.0.3 + has-symbols: 1.0.3 + hasown: 2.0.2 + + gopd@1.0.1: + dependencies: + get-intrinsic: 1.2.4 + + has-property-descriptors@1.0.2: + dependencies: + es-define-property: 1.0.0 + + has-proto@1.0.3: {} + + has-symbols@1.0.3: {} + + has-tostringtag@1.0.2: + dependencies: + has-symbols: 1.0.3 + + hasown@2.0.2: + dependencies: + function-bind: 1.1.2 + + inherits@2.0.4: {} + + is-arguments@1.1.1: + dependencies: + call-bind: 1.0.7 + has-tostringtag: 1.0.2 + + is-callable@1.2.7: {} + + is-generator-function@1.0.10: + dependencies: + has-tostringtag: 1.0.2 + + is-typed-array@1.1.13: + dependencies: + which-typed-array: 1.1.15 + + node-gyp-build@4.8.1: + optional: true + + possible-typed-array-names@1.0.0: {} + + set-function-length@1.2.2: + dependencies: + define-data-property: 1.1.4 + es-errors: 1.3.0 + function-bind: 1.1.2 + get-intrinsic: 1.2.4 + gopd: 1.0.1 + has-property-descriptors: 1.0.2 + + undici-types@5.26.5: {} + + utf-8-validate@5.0.10: + dependencies: + node-gyp-build: 4.8.1 + optional: true + + util@0.12.5: + dependencies: + inherits: 2.0.4 + is-arguments: 1.1.1 + is-generator-function: 1.0.10 + is-typed-array: 1.1.13 + which-typed-array: 1.1.15 + + web3-errors@1.1.4: + dependencies: + web3-types: 1.5.0 + + web3-types@1.5.0: {} + + web3-utils@4.2.1: + dependencies: + ethereum-cryptography: 2.1.3 + eventemitter3: 5.0.1 + web3-errors: 1.1.4 + web3-types: 1.5.0 + web3-validator: 2.0.4 + + web3-validator@2.0.4: + dependencies: + ethereum-cryptography: 2.1.3 + util: 0.12.5 + web3-errors: 1.1.4 + web3-types: 1.5.0 + zod: 3.22.4 + + which-typed-array@1.1.15: + dependencies: + available-typed-arrays: 1.0.7 + call-bind: 1.0.7 + for-each: 0.3.3 + gopd: 1.0.1 + has-tostringtag: 1.0.2 + + ws@8.16.0(bufferutil@4.0.8)(utf-8-validate@5.0.10): + optionalDependencies: + bufferutil: 4.0.8 + utf-8-validate: 5.0.10 + + zod@3.22.4: {} diff --git a/vitest.config.ts b/vitest.config.ts index e9ed075..94f1351 100644 --- a/vitest.config.ts +++ b/vitest.config.ts @@ -31,7 +31,8 @@ export default mergeConfig( './packages/networks/evm-chains/tests/setup.ts', './packages/networks/bitcoin/tests/setup.ts', './packages/networks/solana/tests/setup.ts', - './packages/networks/tron/tests/setup.ts' + './packages/networks/tron/tests/setup.ts', + './packages/networks/ton/tests/setup.ts' ] } })