From 52fba04746236a58458e4f34d313650bd2e7b0cd Mon Sep 17 00:00:00 2001 From: David_glitc Date: Thu, 3 Oct 2024 23:25:04 +0100 Subject: [PATCH 1/2] added burn functionality --- package.json | 6 +- pnpm-lock.yaml | 1984 +++++++++++++++++++++++++++++++++++++++++++++ substrate/burn.js | 34 + 3 files changed, 2022 insertions(+), 2 deletions(-) create mode 100644 pnpm-lock.yaml create mode 100644 substrate/burn.js diff --git a/package.json b/package.json index 7849cf2..03a7893 100644 --- a/package.json +++ b/package.json @@ -3,12 +3,14 @@ "scripts": { "build": "node substrate/build-csv.js", "sell": "node substrate/selling.js", - "delist": "node substrate/delist.js" + "delist": "node substrate/delist.js", + "burn": "node substrate/burn.js" }, "dependencies": { "@unique-nft/accounts": "^0.3.6", "@unique-nft/sdk": "0.7.7", "@unique-nft/utils": "0.3.20", - "dotenv": "^16.1.4" + "dotenv": "^16.1.4", + "axios": "^1.7.2" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml new file mode 100644 index 0000000..1fbcbcb --- /dev/null +++ b/pnpm-lock.yaml @@ -0,0 +1,1984 @@ +lockfileVersion: '9.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +importers: + + .: + dependencies: + '@unique-nft/accounts': + specifier: ^0.3.6 + version: 0.3.7(@polkadot/api@14.0.1)(@polkadot/keyring@13.1.1(@polkadot/util-crypto@12.6.2(@polkadot/util@12.6.2))(@polkadot/util@12.6.2))(@polkadot/ui-settings@3.10.1(@polkadot/networks@13.1.1)(@polkadot/util@12.6.2))(@polkadot/util-crypto@12.6.2(@polkadot/util@12.6.2)) + '@unique-nft/sdk': + specifier: 0.7.7 + version: 0.7.7 + '@unique-nft/utils': + specifier: 0.3.20 + version: 0.3.20 + axios: + specifier: ^1.7.2 + version: 1.7.7 + dotenv: + specifier: ^16.1.4 + version: 16.4.5 + +packages: + + '@ethersproject/abi@5.7.0': + resolution: {integrity: sha512-351ktp42TiRcYB3H1OP8yajPeAQstMW/yCFokj/AthP9bLHzQFPlOrxOcwYEDkUAICmOHljvN4K39OMTMUa9RA==} + + '@ethersproject/abstract-provider@5.7.0': + resolution: {integrity: sha512-R41c9UkchKCpAqStMYUpdunjo3pkEvZC3FAwZn5S5MGbXoMQOHIdHItezTETxAO5bevtMApSyEhn9+CHcDsWBw==} + + '@ethersproject/abstract-signer@5.7.0': + resolution: {integrity: sha512-a16V8bq1/Cz+TGCkE2OPMTOUDLS3grCpdjoJCYNnVBbdYEMSgKrU0+B90s8b6H+ByYTBZN7a3g76jdIJi7UfKQ==} + + '@ethersproject/address@5.7.0': + resolution: {integrity: sha512-9wYhYt7aghVGo758POM5nqcOMaE168Q6aRLJZwUmiqSrAungkG74gSSeKEIR7ukixesdRZGPgVqme6vmxs1fkA==} + + '@ethersproject/base64@5.7.0': + resolution: {integrity: sha512-Dr8tcHt2mEbsZr/mwTPIQAf3Ai0Bks/7gTw9dSqk1mQvhW3XvRlmDJr/4n+wg1JmCl16NZue17CDh8xb/vZ0sQ==} + + '@ethersproject/basex@5.7.0': + resolution: {integrity: sha512-ywlh43GwZLv2Voc2gQVTKBoVQ1mti3d8HK5aMxsfu/nRDnMmNqaSJ3r3n85HBByT8OpoY96SXM1FogC533T4zw==} + + '@ethersproject/bignumber@5.7.0': + resolution: {integrity: sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw==} + + '@ethersproject/bytes@5.7.0': + resolution: {integrity: sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A==} + + '@ethersproject/constants@5.7.0': + resolution: {integrity: sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA==} + + '@ethersproject/contracts@5.7.0': + resolution: {integrity: sha512-5GJbzEU3X+d33CdfPhcyS+z8MzsTrBGk/sc+G+59+tPa9yFkl6HQ9D6L0QMgNTA9q8dT0XKxxkyp883XsQvbbg==} + + '@ethersproject/hash@5.7.0': + resolution: {integrity: sha512-qX5WrQfnah1EFnO5zJv1v46a8HW0+E5xuBBDTwMFZLuVTx0tbU2kkx15NqdjxecrLGatQN9FGQKpb1FKdHCt+g==} + + '@ethersproject/hdnode@5.7.0': + resolution: {integrity: sha512-OmyYo9EENBPPf4ERhR7oj6uAtUAhYGqOnIS+jE5pTXvdKBS99ikzq1E7Iv0ZQZ5V36Lqx1qZLeak0Ra16qpeOg==} + + '@ethersproject/json-wallets@5.7.0': + resolution: {integrity: sha512-8oee5Xgu6+RKgJTkvEMl2wDgSPSAQ9MB/3JYjFV9jlKvcYHUXZC+cQp0njgmxdHkYWn8s6/IqIZYm0YWCjO/0g==} + + '@ethersproject/keccak256@5.7.0': + resolution: {integrity: sha512-2UcPboeL/iW+pSg6vZ6ydF8tCnv3Iu/8tUmLLzWWGzxWKFFqOBQFLo6uLUv6BDrLgCDfN28RJ/wtByx+jZ4KBg==} + + '@ethersproject/logger@5.7.0': + resolution: {integrity: sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig==} + + '@ethersproject/networks@5.7.1': + resolution: {integrity: sha512-n/MufjFYv3yFcUyfhnXotyDlNdFb7onmkSy8aQERi2PjNcnWQ66xXxa3XlS8nCcA8aJKJjIIMNJTC7tu80GwpQ==} + + '@ethersproject/pbkdf2@5.7.0': + resolution: {integrity: sha512-oR/dBRZR6GTyaofd86DehG72hY6NpAjhabkhxgr3X2FpJtJuodEl2auADWBZfhDHgVCbu3/H/Ocq2uC6dpNjjw==} + + '@ethersproject/properties@5.7.0': + resolution: {integrity: sha512-J87jy8suntrAkIZtecpxEPxY//szqr1mlBaYlQ0r4RCaiD2hjheqF9s1LVE8vVuJCXisjIP+JgtK/Do54ej4Sw==} + + '@ethersproject/providers@5.7.2': + resolution: {integrity: sha512-g34EWZ1WWAVgr4aptGlVBF8mhl3VWjv+8hoAnzStu8Ah22VHBsuGzP17eb6xDVRzw895G4W7vvx60lFFur/1Rg==} + + '@ethersproject/random@5.7.0': + resolution: {integrity: sha512-19WjScqRA8IIeWclFme75VMXSBvi4e6InrUNuaR4s5pTF2qNhcGdCUwdxUVGtDDqC00sDLCO93jPQoDUH4HVmQ==} + + '@ethersproject/rlp@5.7.0': + resolution: {integrity: sha512-rBxzX2vK8mVF7b0Tol44t5Tb8gomOHkj5guL+HhzQ1yBh/ydjGnpw6at+X6Iw0Kp3OzzzkcKp8N9r0W4kYSs9w==} + + '@ethersproject/sha2@5.7.0': + resolution: {integrity: sha512-gKlH42riwb3KYp0reLsFTokByAKoJdgFCwI+CCiX/k+Jm2mbNs6oOaCjYQSlI1+XBVejwH2KrmCbMAT/GnRDQw==} + + '@ethersproject/signing-key@5.7.0': + resolution: {integrity: sha512-MZdy2nL3wO0u7gkB4nA/pEf8lu1TlFswPNmy8AiYkfKTdO6eXBJyUdmHO/ehm/htHw9K/qF8ujnTyUAD+Ry54Q==} + + '@ethersproject/solidity@5.7.0': + resolution: {integrity: sha512-HmabMd2Dt/raavyaGukF4XxizWKhKQ24DoLtdNbBmNKUOPqwjsKQSdV9GQtj9CBEea9DlzETlVER1gYeXXBGaA==} + + '@ethersproject/strings@5.7.0': + resolution: {integrity: sha512-/9nu+lj0YswRNSH0NXYqrh8775XNyEdUQAuf3f+SmOrnVewcJ5SBNAjF7lpgehKi4abvNNXyf+HX86czCdJ8Mg==} + + '@ethersproject/transactions@5.7.0': + resolution: {integrity: sha512-kmcNicCp1lp8qanMTC3RIikGgoJ80ztTyvtsFvCYpSCfkjhD0jZ2LOrnbcuxuToLIUYYf+4XwD1rP+B/erDIhQ==} + + '@ethersproject/units@5.7.0': + resolution: {integrity: sha512-pD3xLMy3SJu9kG5xDGI7+xhTEmGXlEqXU4OfNapmfnxLVY4EMSSRp7j1k7eezutBPH7RBN/7QPnwR7hzNlEFeg==} + + '@ethersproject/wallet@5.7.0': + resolution: {integrity: sha512-MhmXlJXEJFBFVKrDLB4ZdDzxcBxQ3rLyCkhNqVu3CDYvR97E+8r01UgrI+TI99Le+aYm/in/0vp86guJuM7FCA==} + + '@ethersproject/web@5.7.1': + resolution: {integrity: sha512-Gueu8lSvyjBWL4cYsWsjh6MtMwM0+H4HvqFPZfB6dV8ctbP9zFAO73VG1cMWae0FLPCtz0peKPpZY8/ugJJX2w==} + + '@ethersproject/wordlists@5.7.0': + resolution: {integrity: sha512-S2TFNJNfHWVHNE6cNDjbVlZ6MgE17MIxMbMg2zv3wn+3XSJGosL1m9ZVv3GXCf/2ymSsQ+hRI5IzoMJTG6aoVA==} + + '@noble/curves@1.6.0': + resolution: {integrity: sha512-TlaHRXDehJuRNR9TfZDNQ45mMEd5dwUwmicsafcIX4SsNiqnCHKjE/1alYPd/lDRVhxdhUAlv8uEhMCI5zjIJQ==} + engines: {node: ^14.21.3 || >=16} + + '@noble/hashes@1.5.0': + resolution: {integrity: sha512-1j6kQFb7QRru7eKN3ZDvRcP13rugwdxZqCjbiAVZfIJwgj2A65UmT4TgARXGlXgnRkORLTDTrO19ZErt7+QXgA==} + engines: {node: ^14.21.3 || >=16} + + '@polkadot-api/json-rpc-provider-proxy@0.0.1': + resolution: {integrity: sha512-gmVDUP8LpCH0BXewbzqXF2sdHddq1H1q+XrAW2of+KZj4woQkIGBRGTJHeBEVHe30EB+UejR1N2dT4PO/RvDdg==} + + '@polkadot-api/json-rpc-provider-proxy@0.1.0': + resolution: {integrity: sha512-8GSFE5+EF73MCuLQm8tjrbCqlgclcHBSRaswvXziJ0ZW7iw3UEMsKkkKvELayWyBuOPa2T5i1nj6gFOeIsqvrg==} + + '@polkadot-api/json-rpc-provider@0.0.1': + resolution: {integrity: sha512-/SMC/l7foRjpykLTUTacIH05H3mr9ip8b5xxfwXlVezXrNVLp3Cv0GX6uItkKd+ZjzVPf3PFrDF2B2/HLSNESA==} + + '@polkadot-api/metadata-builders@0.0.1': + resolution: {integrity: sha512-GCI78BHDzXAF/L2pZD6Aod/yl82adqQ7ftNmKg51ixRL02JpWUA+SpUKTJE5MY1p8kiJJIo09P2um24SiJHxNA==} + + '@polkadot-api/metadata-builders@0.3.2': + resolution: {integrity: sha512-TKpfoT6vTb+513KDzMBTfCb/ORdgRnsS3TDFpOhAhZ08ikvK+hjHMt5plPiAX/OWkm1Wc9I3+K6W0hX5Ab7MVg==} + + '@polkadot-api/observable-client@0.1.0': + resolution: {integrity: sha512-GBCGDRztKorTLna/unjl/9SWZcRmvV58o9jwU2Y038VuPXZcr01jcw/1O3x+yeAuwyGzbucI/mLTDa1QoEml3A==} + peerDependencies: + rxjs: '>=7.8.0' + + '@polkadot-api/observable-client@0.3.2': + resolution: {integrity: sha512-HGgqWgEutVyOBXoGOPp4+IAq6CNdK/3MfQJmhCJb8YaJiaK4W6aRGrdQuQSTPHfERHCARt9BrOmEvTXAT257Ug==} + peerDependencies: + '@polkadot-api/substrate-client': 0.1.4 + rxjs: '>=7.8.0' + + '@polkadot-api/substrate-bindings@0.0.1': + resolution: {integrity: sha512-bAe7a5bOPnuFVmpv7y4BBMRpNTnMmE0jtTqRUw/+D8ZlEHNVEJQGr4wu3QQCl7k1GnSV1wfv3mzIbYjErEBocg==} + + '@polkadot-api/substrate-bindings@0.6.0': + resolution: {integrity: sha512-lGuhE74NA1/PqdN7fKFdE5C1gNYX357j1tWzdlPXI0kQ7h3kN0zfxNOpPUN7dIrPcOFZ6C0tRRVrBylXkI6xPw==} + + '@polkadot-api/substrate-client@0.0.1': + resolution: {integrity: sha512-9Bg9SGc3AwE+wXONQoW8GC00N3v6lCZLW74HQzqB6ROdcm5VAHM4CB/xRzWSUF9CXL78ugiwtHx3wBcpx4H4Wg==} + + '@polkadot-api/substrate-client@0.1.4': + resolution: {integrity: sha512-MljrPobN0ZWTpn++da9vOvt+Ex+NlqTlr/XT7zi9sqPtDJiQcYl+d29hFAgpaeTqbeQKZwz3WDE9xcEfLE8c5A==} + + '@polkadot-api/utils@0.0.1': + resolution: {integrity: sha512-3j+pRmlF9SgiYDabSdZsBSsN5XHbpXOAce1lWj56IEEaFZVjsiCaxDOA7C9nCcgfVXuvnbxqqEGQvnY+QfBAUw==} + + '@polkadot-api/utils@0.1.0': + resolution: {integrity: sha512-MXzWZeuGxKizPx2Xf/47wx9sr/uxKw39bVJUptTJdsaQn/TGq+z310mHzf1RCGvC1diHM8f593KrnDgc9oNbJA==} + + '@polkadot/api-augment@14.0.1': + resolution: {integrity: sha512-+ZHq3JaQZ/3Q45r6/YQBeLfoP8S5ibgkOvLKnKA9cJeF7oP5Qgi6pAEnGW0accfnT9PyCEco9fD/ZOLR9Yka7w==} + engines: {node: '>=18'} + + '@polkadot/api-base@14.0.1': + resolution: {integrity: sha512-OVnDiztKx/1ktae9eCzO1q8lmKEfnQ71fipo8JkDJOMIN4vT1IqL9KQo4e/Xz8UtOfTJ0H8kZ6evaLqdA3ZYOA==} + engines: {node: '>=18'} + + '@polkadot/api-derive@14.0.1': + resolution: {integrity: sha512-ADQMre3DRRW/0rhJqxOVhQ1vqtyafP2dSZJ0qEAsto12q2WMSF8CZWo7pXe4DxiniDkZx3zVq4z5lqw2aBRLfg==} + engines: {node: '>=18'} + + '@polkadot/api@14.0.1': + resolution: {integrity: sha512-CDSaUiJpXu9aE6MaTg14K+9Trf8K2PBHcD3Xl5m5KOvJperWgYFxoCqV3rXLIBWt69LgHhMYlq5JSPRHxejIsw==} + engines: {node: '>=18'} + + '@polkadot/extension-dapp@0.47.6': + resolution: {integrity: sha512-GpV0MQGL5c4y5lVcQXP+tf6Nnyqau/9ZHQnQdsWosnrjR0n9iak8UgWl1hQEGqBp/nYi9TdvdA4uFvcIjv1Jng==} + engines: {node: '>=18'} + peerDependencies: + '@polkadot/api': '*' + '@polkadot/util': '*' + '@polkadot/util-crypto': '*' + + '@polkadot/extension-inject@0.47.6': + resolution: {integrity: sha512-rDTHyjGBgNochLc5Us+H2YJXUb2HW4hJJ23+6B7Mv373mfBYtM1T1HDkIWzV/xNJmiboAQy4O41N71CmZq4j7g==} + engines: {node: '>=18'} + peerDependencies: + '@polkadot/api': '*' + '@polkadot/util': '*' + + '@polkadot/keyring@12.6.2': + resolution: {integrity: sha512-O3Q7GVmRYm8q7HuB3S0+Yf/q/EB2egKRRU3fv9b3B7V+A52tKzA+vIwEmNVaD1g5FKW9oB97rmpggs0zaKFqHw==} + engines: {node: '>=18'} + peerDependencies: + '@polkadot/util': 12.6.2 + '@polkadot/util-crypto': 12.6.2 + + '@polkadot/keyring@13.1.1': + resolution: {integrity: sha512-Wm+9gn946GIPjGzvueObLGBBS9s541HE6mvKdWGEmPFMzH93ESN931RZlOd67my5MWryiSP05h5SHTp7bSaQTA==} + engines: {node: '>=18'} + peerDependencies: + '@polkadot/util': 13.1.1 + '@polkadot/util-crypto': 13.1.1 + + '@polkadot/networks@12.6.2': + resolution: {integrity: sha512-1oWtZm1IvPWqvMrldVH6NI2gBoCndl5GEwx7lAuQWGr7eNL+6Bdc5K3Z9T0MzFvDGoi2/CBqjX9dRKo39pDC/w==} + engines: {node: '>=18'} + + '@polkadot/networks@13.1.1': + resolution: {integrity: sha512-eEQ4+Mfl1xFtApeU5PdXZ2XBhxNSvUz9yW+YQVGUCkXRjWFbqNRsTOYWGd9uFbiAOXiiiXbtqfZpxSDzIm4XOg==} + engines: {node: '>=18'} + + '@polkadot/rpc-augment@14.0.1': + resolution: {integrity: sha512-M0CbN/IScqiedYI2TmoQ+SoeEdJHfxGeQD1qJf9uYv9LILK+x1/5fyr5DrZ3uCGVmLuObWAJLnHTs0BzJcSHTQ==} + engines: {node: '>=18'} + + '@polkadot/rpc-core@14.0.1': + resolution: {integrity: sha512-SfgC6WU7RxaFFgm/GUpsqTywyaDeb7+r5GU3GlwC+QR148h3a7UcQ3sssOpB0MiZ2gIXngJuyIcIQm/3GfHnJw==} + engines: {node: '>=18'} + + '@polkadot/rpc-provider@11.3.1': + resolution: {integrity: sha512-pqERChoHo45hd3WAgW8UuzarRF+G/o/eXEbl0PXLubiayw4X4qCmIzmtntUcKYgxGNcYGZaG87ZU8OjN97m6UA==} + engines: {node: '>=18'} + + '@polkadot/rpc-provider@14.0.1': + resolution: {integrity: sha512-mNfaKZUHPXGSY7TwgOfV05RN3Men21Dw7YXrSZDFkJYsZ55yOAYdmLg9anPZGHW100YnNWrXj+3uhQOw8JgqkA==} + engines: {node: '>=18'} + + '@polkadot/types-augment@10.13.1': + resolution: {integrity: sha512-TcrLhf95FNFin61qmVgOgayzQB/RqVsSg9thAso1Fh6pX4HSbvI35aGPBAn3SkA6R+9/TmtECirpSNLtIGFn0g==} + engines: {node: '>=18'} + + '@polkadot/types-augment@11.3.1': + resolution: {integrity: sha512-eR3HVpvUmB3v7q2jTWVmVfAVfb1/kuNn7ij94Zqadg/fuUq0pKqIOKwkUj3OxRM3A/5BnW3MbgparjKD3r+fyw==} + engines: {node: '>=18'} + + '@polkadot/types-augment@14.0.1': + resolution: {integrity: sha512-PGo81444J5tGJxP3tu060Jx1kkeuo8SmBIt9S/w626Se49x4RLM5a7Pa5fguYVsg4TsJa9cgVPMuu6Y0F/2aCQ==} + engines: {node: '>=18'} + + '@polkadot/types-codec@10.13.1': + resolution: {integrity: sha512-AiQ2Vv2lbZVxEdRCN8XSERiWlOWa2cTDLnpAId78EnCtx4HLKYQSd+Jk9Y4BgO35R79mchK4iG+w6gZ+ukG2bg==} + engines: {node: '>=18'} + + '@polkadot/types-codec@11.3.1': + resolution: {integrity: sha512-i7IiiuuL+Z/jFoKTA9xeh4wGQnhnNNjMT0+1ohvlOvnFsoKZKFQQOaDPPntGJVL1JDCV+KjkN2uQKZSeW8tguQ==} + engines: {node: '>=18'} + + '@polkadot/types-codec@14.0.1': + resolution: {integrity: sha512-IyUlkrRZ6uppbHVlMJL+btKP7dfgW65K06ggQxH7Y/IyRAQVDNjXecAZrCUMB/gtjUXNPyTHEIfPGDlg8E6rig==} + engines: {node: '>=18'} + + '@polkadot/types-create@10.13.1': + resolution: {integrity: sha512-Usn1jqrz35SXgCDAqSXy7mnD6j4RvB4wyzTAZipFA6DGmhwyxxIgOzlWQWDb+1PtPKo9vtMzen5IJ+7w5chIeA==} + engines: {node: '>=18'} + + '@polkadot/types-create@11.3.1': + resolution: {integrity: sha512-pBXtpz5FehcRJ6j5MzFUIUN8ZWM7z6HbqK1GxBmYbJVRElcGcOg7a/rL2pQVphU0Rx1E8bSO4thzGf4wUxSX7w==} + engines: {node: '>=18'} + + '@polkadot/types-create@14.0.1': + resolution: {integrity: sha512-R9/ac3CHKrFhvPKVUdpjnCDFSaGjfrNwtuY+AzvExAMIq7pM9dxo2N8UfnLbyFaG/n1hfYPXDIS3hLHvOZsLbw==} + engines: {node: '>=18'} + + '@polkadot/types-known@14.0.1': + resolution: {integrity: sha512-oGypUOQNxZ6bq10czpVadZYeDM2NBB2kX3VFHLKLEpjaRbnVYtKXL6pl8B0uHR8GK/2Z8AmPOj6kuRjaC86qXg==} + engines: {node: '>=18'} + + '@polkadot/types-support@11.3.1': + resolution: {integrity: sha512-jTFz1GKyF7nI29yIOq4v0NiWTOf5yX4HahJNeFD8TcxoLhF+6tH/XXqrUXJEfbaTlSrRWiW1LZYlb+snctqKHA==} + engines: {node: '>=18'} + + '@polkadot/types-support@14.0.1': + resolution: {integrity: sha512-lcZEyOf5e3WLLtrFlLTvFfUpO0Vx/Gh5lhLLjdx1W9Xs0KJUlOxSAKxvjVieJJj6HifL0Jh6tDYOUeEc4TOrvA==} + engines: {node: '>=18'} + + '@polkadot/types@10.13.1': + resolution: {integrity: sha512-Hfvg1ZgJlYyzGSAVrDIpp3vullgxrjOlh/CSThd/PI4TTN1qHoPSFm2hs77k3mKkOzg+LrWsLE0P/LP2XddYcw==} + engines: {node: '>=18'} + + '@polkadot/types@11.3.1': + resolution: {integrity: sha512-5c7uRFXQTT11Awi6T0yFIdAfD6xGDAOz06Kp7M5S9OGNZY28wSPk5x6BYfNphWPaIBmHHewYJB5qmnrdYQAWKQ==} + engines: {node: '>=18'} + + '@polkadot/types@14.0.1': + resolution: {integrity: sha512-DOMzHsyVbCa12FT2Fng8iGiQJhHW2ONpv5oieU+Z2o0gFQqwNmIDXWncScG5mAUBNcDMXLuvWIKLKtUDOq8msg==} + engines: {node: '>=18'} + + '@polkadot/ui-keyring@3.10.1': + resolution: {integrity: sha512-3V4Y9MwPy/EBGVEEyqvk2m7mQTpxmJiNYeUt+ajZKP+R9RsmrihzUTK1KI4QgjwYWUhK2B6gb88/8qSRtoqkQA==} + engines: {node: '>=18'} + peerDependencies: + '@polkadot/keyring': '*' + '@polkadot/ui-settings': '*' + '@polkadot/util': '*' + + '@polkadot/ui-settings@3.10.1': + resolution: {integrity: sha512-FD22MWrTue0Ry4gk+tnCRUOju0tzMwNZoUutSMaYJwIFqiLw4PZu8YRle2uwWI/XioUfjzYC59WDJcYhtY3y4w==} + engines: {node: '>=18'} + peerDependencies: + '@polkadot/networks': '*' + '@polkadot/util': '*' + + '@polkadot/util-crypto@12.6.2': + resolution: {integrity: sha512-FEWI/dJ7wDMNN1WOzZAjQoIcCP/3vz3wvAp5QQm+lOrzOLj0iDmaIGIcBkz8HVm3ErfSe/uKP0KS4jgV/ib+Mg==} + engines: {node: '>=18'} + peerDependencies: + '@polkadot/util': 12.6.2 + + '@polkadot/util-crypto@13.1.1': + resolution: {integrity: sha512-FG68rrLPdfLcscEyH10vnGkakM4O2lqr71S3GDhgc9WXaS8y9jisLgMPg8jbMHiQBJ3iKYkmtPKiLBowRslj2w==} + engines: {node: '>=18'} + peerDependencies: + '@polkadot/util': 13.1.1 + + '@polkadot/util@12.6.2': + resolution: {integrity: sha512-l8TubR7CLEY47240uki0TQzFvtnxFIO7uI/0GoWzpYD/O62EIAMRsuY01N4DuwgKq2ZWD59WhzsLYmA5K6ksdw==} + engines: {node: '>=18'} + + '@polkadot/util@13.1.1': + resolution: {integrity: sha512-M4iQ5Um8tFdDmD7a96nPzfrEt+kxyWOqQDPqXyaax4QBnq/WCbq0jo8IO61uz55mdMQnGZvq8jd8uge4V6JzzQ==} + engines: {node: '>=18'} + + '@polkadot/wasm-bridge@7.3.2': + resolution: {integrity: sha512-AJEXChcf/nKXd5Q/YLEV5dXQMle3UNT7jcXYmIffZAo/KI394a+/24PaISyQjoNC0fkzS1Q8T5pnGGHmXiVz2g==} + engines: {node: '>=18'} + peerDependencies: + '@polkadot/util': '*' + '@polkadot/x-randomvalues': '*' + + '@polkadot/wasm-crypto-asmjs@7.3.2': + resolution: {integrity: sha512-QP5eiUqUFur/2UoF2KKKYJcesc71fXhQFLT3D4ZjG28Mfk2ZPI0QNRUfpcxVQmIUpV5USHg4geCBNuCYsMm20Q==} + engines: {node: '>=18'} + peerDependencies: + '@polkadot/util': '*' + + '@polkadot/wasm-crypto-init@7.3.2': + resolution: {integrity: sha512-FPq73zGmvZtnuJaFV44brze3Lkrki3b4PebxCy9Fplw8nTmisKo9Xxtfew08r0njyYh+uiJRAxPCXadkC9sc8g==} + engines: {node: '>=18'} + peerDependencies: + '@polkadot/util': '*' + '@polkadot/x-randomvalues': '*' + + '@polkadot/wasm-crypto-wasm@7.3.2': + resolution: {integrity: sha512-15wd0EMv9IXs5Abp1ZKpKKAVyZPhATIAHfKsyoWCEFDLSOA0/K0QGOxzrAlsrdUkiKZOq7uzSIgIDgW8okx2Mw==} + engines: {node: '>=18'} + peerDependencies: + '@polkadot/util': '*' + + '@polkadot/wasm-crypto@7.3.2': + resolution: {integrity: sha512-+neIDLSJ6jjVXsjyZ5oLSv16oIpwp+PxFqTUaZdZDoA2EyFRQB8pP7+qLsMNk+WJuhuJ4qXil/7XiOnZYZ+wxw==} + engines: {node: '>=18'} + peerDependencies: + '@polkadot/util': '*' + '@polkadot/x-randomvalues': '*' + + '@polkadot/wasm-util@7.3.2': + resolution: {integrity: sha512-bmD+Dxo1lTZyZNxbyPE380wd82QsX+43mgCm40boyKrRppXEyQmWT98v/Poc7chLuskYb6X8IQ6lvvK2bGR4Tg==} + engines: {node: '>=18'} + peerDependencies: + '@polkadot/util': '*' + + '@polkadot/x-bigint@12.6.2': + resolution: {integrity: sha512-HSIk60uFPX4GOFZSnIF7VYJz7WZA7tpFJsne7SzxOooRwMTWEtw3fUpFy5cYYOeLh17/kHH1Y7SVcuxzVLc74Q==} + engines: {node: '>=18'} + + '@polkadot/x-bigint@13.1.1': + resolution: {integrity: sha512-Cq4Y6fd9UWtRBZz8RX2tWEBL1IFwUtY6cL8p6HC9yhZtUR6OPjKZe6RIZQa9gSOoIuqZWd6PmtvSNGVH32yfkQ==} + engines: {node: '>=18'} + + '@polkadot/x-fetch@12.6.2': + resolution: {integrity: sha512-8wM/Z9JJPWN1pzSpU7XxTI1ldj/AfC8hKioBlUahZ8gUiJaOF7K9XEFCrCDLis/A1BoOu7Ne6WMx/vsJJIbDWw==} + engines: {node: '>=18'} + + '@polkadot/x-fetch@13.1.1': + resolution: {integrity: sha512-qA6mIUUebJbS+oWzq/EagZflmaoa9b25WvsxSFn7mCvzKngXzr+GYCY4XiDwKY/S+/pr/kvSCKZ1ia8BDqPBYQ==} + engines: {node: '>=18'} + + '@polkadot/x-global@12.6.2': + resolution: {integrity: sha512-a8d6m+PW98jmsYDtAWp88qS4dl8DyqUBsd0S+WgyfSMtpEXu6v9nXDgPZgwF5xdDvXhm+P0ZfVkVTnIGrScb5g==} + engines: {node: '>=18'} + + '@polkadot/x-global@13.1.1': + resolution: {integrity: sha512-DViIMmmEs29Qlsp058VTg2Mn7e3/CpGazNnKJrsBa0o1Ptxl13/4Z0fjqCpNi2GB+kaOsnREzxUORrHcU+PqcQ==} + engines: {node: '>=18'} + + '@polkadot/x-randomvalues@12.6.2': + resolution: {integrity: sha512-Vr8uG7rH2IcNJwtyf5ebdODMcr0XjoCpUbI91Zv6AlKVYOGKZlKLYJHIwpTaKKB+7KPWyQrk4Mlym/rS7v9feg==} + engines: {node: '>=18'} + peerDependencies: + '@polkadot/util': 12.6.2 + '@polkadot/wasm-util': '*' + + '@polkadot/x-randomvalues@13.1.1': + resolution: {integrity: sha512-cXj4omwbgzQQSiBtV1ZBw+XhJUU3iz/DS6ghUnGllSZEK+fGqiyaNgeFQzDY0tKjm6kYaDpvtOHR3mHsbzDuTg==} + engines: {node: '>=18'} + peerDependencies: + '@polkadot/util': 13.1.1 + '@polkadot/wasm-util': '*' + + '@polkadot/x-textdecoder@12.6.2': + resolution: {integrity: sha512-M1Bir7tYvNappfpFWXOJcnxUhBUFWkUFIdJSyH0zs5LmFtFdbKAeiDXxSp2Swp5ddOZdZgPac294/o2TnQKN1w==} + engines: {node: '>=18'} + + '@polkadot/x-textdecoder@13.1.1': + resolution: {integrity: sha512-LpZ9KYc6HdBH+i86bCmun4g4GWMiWN/1Pzs0hNdanlQMfqp3UGzl1Dqp0nozMvjWAlvyG7ip235VgNMd8HEbqg==} + engines: {node: '>=18'} + + '@polkadot/x-textencoder@12.6.2': + resolution: {integrity: sha512-4N+3UVCpI489tUJ6cv3uf0PjOHvgGp9Dl+SZRLgFGt9mvxnvpW/7+XBADRMtlG4xi5gaRK7bgl5bmY6OMDsNdw==} + engines: {node: '>=18'} + + '@polkadot/x-textencoder@13.1.1': + resolution: {integrity: sha512-w1mT15B9ptN5CJNgN/A0CmBqD5y9OePjBdU6gmAd8KRhwXCF0MTBKcEZk1dHhXiXtX+28ULJWLrfefC5gxy69Q==} + engines: {node: '>=18'} + + '@polkadot/x-ws@12.6.2': + resolution: {integrity: sha512-cGZWo7K5eRRQCRl2LrcyCYsrc3lRbTlixZh3AzgU8uX4wASVGRlNWi/Hf4TtHNe1ExCDmxabJzdIsABIfrr7xw==} + engines: {node: '>=18'} + + '@polkadot/x-ws@13.1.1': + resolution: {integrity: sha512-E/xFmJTiFzu+IK5M3/8W/9fnvNJFelcnunPv/IgO6UST94SDaTsN/Gbeb6SqPb6CsrTHRl3WD+AZ3ErGGwQfEA==} + engines: {node: '>=18'} + + '@scure/base@1.1.9': + resolution: {integrity: sha512-8YKhl8GHiNI/pU2VMaofa2Tor7PJRAjwQLBBuilkJ9L5+13yVbC7JO/wS7piioAvPSwR3JKM1IJ/u4xQzbcXKg==} + + '@socket.io/component-emitter@3.1.2': + resolution: {integrity: sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==} + + '@substrate/connect-extension-protocol@2.1.0': + resolution: {integrity: sha512-Wz5Cbn6S6P4vWfHyrsnPW7g15IAViMaXCk+jYkq4nNEMmzPtTKIEbtxrdDMBKrouOFtYKKp0znx5mh9KTCNqlA==} + + '@substrate/connect-known-chains@1.4.1': + resolution: {integrity: sha512-WlFKGEE3naIa7iTyy7hJ0RV0dyGpP7Zic1Z8sXr4bJmSEzZoHcfLRbM1D3T+zFAaitffVCu6k55Vj+CFzMPw1Q==} + + '@substrate/connect@0.8.10': + resolution: {integrity: sha512-DIyQ13DDlXqVFnLV+S6/JDgiGowVRRrh18kahieJxhgvzcWicw5eLc6jpfQ0moVVLBYkO7rctB5Wreldwpva8w==} + deprecated: versions below 1.x are no longer maintained + + '@substrate/connect@0.8.11': + resolution: {integrity: sha512-ofLs1PAO9AtDdPbdyTYj217Pe+lBfTLltdHDs3ds8no0BseoLeAGxpz1mHfi7zB4IxI3YyAiLjH6U8cw4pj4Nw==} + deprecated: versions below 1.x are no longer maintained + + '@substrate/light-client-extension-helpers@0.0.6': + resolution: {integrity: sha512-girltEuxQ1BvkJWmc8JJlk4ZxnlGXc/wkLcNguhY+UoDEMBK0LsdtfzQKIfrIehi4QdeSBlFEFBoI4RqPmsZzA==} + peerDependencies: + smoldot: 2.x + + '@substrate/light-client-extension-helpers@1.0.0': + resolution: {integrity: sha512-TdKlni1mBBZptOaeVrKnusMg/UBpWUORNDv5fdCaJklP4RJiFOzBCrzC+CyVI5kQzsXBisZ+2pXm+rIjS38kHg==} + peerDependencies: + smoldot: 2.x + + '@substrate/ss58-registry@1.50.0': + resolution: {integrity: sha512-mkmlMlcC+MSd9rA+PN8ljGAm5fVZskvVwkXIsbx4NFwaT8kt38r7e9cyDWscG3z2Zn40POviZvEMrJSk+r2SgQ==} + + '@types/bn.js@5.1.6': + resolution: {integrity: sha512-Xh8vSwUeMKeYYrj3cX4lGQgFSF/N03r+tv4AiLl1SucqV+uTQpxRcnM8AkXKHwYP9ZPXOYXRr2KPXpVlIvqh9w==} + + '@types/node@22.7.4': + resolution: {integrity: sha512-y+NPi1rFzDs1NdQHHToqeiX2TIS79SWEAw9GYhkkx8bD0ChpfqC+n2j5OXOCpzfojBEBt6DnEnnG9MY0zk1XLg==} + + '@unique-nft/accounts@0.3.7': + resolution: {integrity: sha512-ITHr0oC1s7rZL2TTnhMHE1fNBX4eBO4Kz46P3Q8ziQFuCJi5hPxfOgrIKuyq6ruOO+AogEU2s+Za488aqW0ZOA==} + + '@unique-nft/sdk@0.7.7': + resolution: {integrity: sha512-I/LJGPtb+C7rXgI+BZ3YUcy6P3A/XQTW7fNvsGw3+40Kp9MsOkG380PLcruVRIl2UyiD/zujty1cXmTh7aWZng==} + + '@unique-nft/sr25519@0.0.2': + resolution: {integrity: sha512-41DJwU8aX56MAlNgmhAOYaE3ie+7HoETsVhqv5d3Pk7dpr1Aezmzihl5fqfLDgx0XeD8Q1QHY9pYAmsNmgQd2A==} + + '@unique-nft/utils@0.3.20': + resolution: {integrity: sha512-vHHeS3GyKdw/gBn1vh+IlZOwW9IzSYnyyqA6Cri3lE8+fZgjZJem43Zicvw1gne0gOelfPFbfgvXpb+OuaFimw==} + + abi-coder@4.1.1: + resolution: {integrity: sha512-CVEKpbWSIrb6JxLPsAuXrrtL8ml2MnEEcINgxOp7gR2u4GUFEKO4e0raAD1+c6UdFJ2QtX2NRoYol9k1B3TxHw==} + + aes-js@3.0.0: + resolution: {integrity: sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw==} + + asynckit@0.4.0: + resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} + + axios@1.7.7: + resolution: {integrity: sha512-S4kL7XrjgBmvdGut0sN3yJxqYzrDOnivkBiN0OFs6hLiUam3UPvswUo0kqGyhqUZGEOytHyumEdXsAkgCOUf3Q==} + + base-x@4.0.0: + resolution: {integrity: sha512-FuwxlW4H5kh37X/oW59pwTzzTKRzfrrQwhmyspRM7swOEZcHtDZSCt45U6oKgtuFE+WYPblePMVIPR4RZrh/hw==} + + bech32@1.1.4: + resolution: {integrity: sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==} + + bn.js@4.12.0: + resolution: {integrity: sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==} + + bn.js@5.2.1: + resolution: {integrity: sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==} + + brorand@1.1.0: + resolution: {integrity: sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==} + + coin-format@0.0.2: + resolution: {integrity: sha512-QhsGG2x2vj6t/HSTNWv9/95abQtM2KvyUdsqPwvCqlD3gdAXdBg6qmlsHTHzsywMP5EWUneVGJm6vv/vkuPCMg==} + + combined-stream@1.0.8: + resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} + engines: {node: '>= 0.8'} + + data-uri-to-buffer@4.0.1: + resolution: {integrity: sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==} + engines: {node: '>= 12'} + + debug@4.3.7: + resolution: {integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + delayed-stream@1.0.0: + resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} + engines: {node: '>=0.4.0'} + + dotenv@16.4.5: + resolution: {integrity: sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==} + engines: {node: '>=12'} + + elliptic@6.5.4: + resolution: {integrity: sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==} + + engine.io-client@6.6.1: + resolution: {integrity: sha512-aYuoak7I+R83M/BBPIOs2to51BmFIpC1wZe6zZzMrT2llVsHy5cvcmdsJgP2Qz6smHu+sD9oexiSUAVd8OfBPw==} + + engine.io-parser@5.2.3: + resolution: {integrity: sha512-HqD3yTBfnBxIrbnM1DoD6Pcq8NECnh8d4As1Qgh0z5Gg3jRRIqijury0CL3ghu/edArpUYiYqQiDUQBIs4np3Q==} + engines: {node: '>=10.0.0'} + + ethers@5.7.2: + resolution: {integrity: sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg==} + + eventemitter3@5.0.1: + resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} + + fetch-blob@3.2.0: + resolution: {integrity: sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==} + engines: {node: ^12.20 || >= 14.13} + + follow-redirects@1.15.9: + resolution: {integrity: sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==} + engines: {node: '>=4.0'} + peerDependencies: + debug: '*' + peerDependenciesMeta: + debug: + optional: true + + form-data@4.0.0: + resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} + engines: {node: '>= 6'} + + formdata-polyfill@4.0.10: + resolution: {integrity: sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==} + engines: {node: '>=12.20.0'} + + hash.js@1.1.7: + resolution: {integrity: sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==} + + hmac-drbg@1.0.1: + resolution: {integrity: sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==} + + inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + + js-sha3@0.8.0: + resolution: {integrity: sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==} + + json-stringify-safe@5.0.1: + resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==} + + 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==} + + mkdirp@3.0.1: + resolution: {integrity: sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==} + engines: {node: '>=10'} + hasBin: true + + mock-socket@9.3.1: + resolution: {integrity: sha512-qxBgB7Qa2sEQgHFjj0dSigq7fX4k6Saisd5Nelwp2q8mlbAFh5dHV9JTTlF8viYJLSSWgMCZFUom8PJcMNBoJw==} + engines: {node: '>= 8'} + + ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + + nock@13.5.5: + resolution: {integrity: sha512-XKYnqUrCwXC8DGG1xX4YH5yNIrlh9c065uaMZZHUoeUUINTOyt+x/G+ezYk0Ft6ExSREVIs+qBJDK503viTfFA==} + engines: {node: '>= 10.13'} + + node-domexception@1.0.0: + resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==} + engines: {node: '>=10.5.0'} + + node-fetch@3.3.2: + resolution: {integrity: sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + propagate@2.0.1: + resolution: {integrity: sha512-vGrhOavPSTz4QVNuBNdcNXePNdNMaO1xj9yBeH1ScQPjk/rhg9sSlCXPhMkFuaNNW/syTvYqsnbIJxMBfRbbag==} + engines: {node: '>= 8'} + + proxy-from-env@1.1.0: + resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} + + reflect-metadata@0.1.14: + resolution: {integrity: sha512-ZhYeb6nRaXCfhnndflDK8qI6ZQ/YcWZCISRAWICW9XYqMUwjZM9Z0DveWX/ABN01oxSHwVxKQmxeYZSsm0jh5A==} + + rxjs@7.8.1: + resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} + + scale-ts@1.6.0: + resolution: {integrity: sha512-Ja5VCjNZR8TGKhUumy9clVVxcDpM+YFjAnkMuwQy68Hixio3VRRvWdE3g8T/yC+HXA0ZDQl2TGyUmtmbcVl40Q==} + + scrypt-js@3.0.1: + resolution: {integrity: sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==} + + smoldot@2.0.22: + resolution: {integrity: sha512-B50vRgTY6v3baYH6uCgL15tfaag5tcS2o/P5q1OiXcKGv1axZDfz2dzzMuIkVpyMR2ug11F6EAtQlmYBQd292g==} + + smoldot@2.0.26: + resolution: {integrity: sha512-F+qYmH4z2s2FK+CxGj8moYcd1ekSIKH8ywkdqlOz88Dat35iB1DIYL11aILN46YSGMzQW/lbJNS307zBSDN5Ig==} + + socket.io-client@4.8.0: + resolution: {integrity: sha512-C0jdhD5yQahMws9alf/yvtsMGTaIDBnZ8Rb5HU56svyq0l5LIrGzIDZZD5pHQlmzxLuU91Gz+VpQMKgCTNYtkw==} + engines: {node: '>=10.0.0'} + + socket.io-parser@4.2.4: + resolution: {integrity: sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==} + engines: {node: '>=10.0.0'} + + store@2.0.12: + resolution: {integrity: sha512-eO9xlzDpXLiMr9W1nQ3Nfp9EzZieIQc10zPPMP5jsVV7bLOziSFFBP0XoDXACEIFtdI+rIz0NwWVA/QVJ8zJtw==} + + tslib@2.7.0: + resolution: {integrity: sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==} + + undici-types@6.19.8: + resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==} + + utf-helpers@0.0.3: + resolution: {integrity: sha512-VKboO87cnQ/61s8PYuA6JGC/M4w1KgtiRtypp8B3/v81sO3R0zelpLPkGB/LPK9/yKGKKK3k6h7WcTCyXNgubg==} + + web-streams-polyfill@3.3.3: + resolution: {integrity: sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==} + engines: {node: '>= 8'} + + ws@7.4.6: + resolution: {integrity: sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==} + engines: {node: '>=8.3.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ^5.0.2 + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + + ws@8.17.1: + resolution: {integrity: sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==} + 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 + + ws@8.18.0: + resolution: {integrity: sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==} + 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 + + xmlhttprequest-ssl@2.1.1: + resolution: {integrity: sha512-ptjR8YSJIXoA3Mbv5po7RtSYHO6mZr8s7i5VGmEk7QY2pQWyT1o0N+W1gKbOyJPUCGXGnuw0wqe8f0L6Y0ny7g==} + engines: {node: '>=0.4.0'} + +snapshots: + + '@ethersproject/abi@5.7.0': + dependencies: + '@ethersproject/address': 5.7.0 + '@ethersproject/bignumber': 5.7.0 + '@ethersproject/bytes': 5.7.0 + '@ethersproject/constants': 5.7.0 + '@ethersproject/hash': 5.7.0 + '@ethersproject/keccak256': 5.7.0 + '@ethersproject/logger': 5.7.0 + '@ethersproject/properties': 5.7.0 + '@ethersproject/strings': 5.7.0 + + '@ethersproject/abstract-provider@5.7.0': + 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 + + '@ethersproject/abstract-signer@5.7.0': + dependencies: + '@ethersproject/abstract-provider': 5.7.0 + '@ethersproject/bignumber': 5.7.0 + '@ethersproject/bytes': 5.7.0 + '@ethersproject/logger': 5.7.0 + '@ethersproject/properties': 5.7.0 + + '@ethersproject/address@5.7.0': + dependencies: + '@ethersproject/bignumber': 5.7.0 + '@ethersproject/bytes': 5.7.0 + '@ethersproject/keccak256': 5.7.0 + '@ethersproject/logger': 5.7.0 + '@ethersproject/rlp': 5.7.0 + + '@ethersproject/base64@5.7.0': + dependencies: + '@ethersproject/bytes': 5.7.0 + + '@ethersproject/basex@5.7.0': + dependencies: + '@ethersproject/bytes': 5.7.0 + '@ethersproject/properties': 5.7.0 + + '@ethersproject/bignumber@5.7.0': + dependencies: + '@ethersproject/bytes': 5.7.0 + '@ethersproject/logger': 5.7.0 + bn.js: 5.2.1 + + '@ethersproject/bytes@5.7.0': + dependencies: + '@ethersproject/logger': 5.7.0 + + '@ethersproject/constants@5.7.0': + dependencies: + '@ethersproject/bignumber': 5.7.0 + + '@ethersproject/contracts@5.7.0': + dependencies: + '@ethersproject/abi': 5.7.0 + '@ethersproject/abstract-provider': 5.7.0 + '@ethersproject/abstract-signer': 5.7.0 + '@ethersproject/address': 5.7.0 + '@ethersproject/bignumber': 5.7.0 + '@ethersproject/bytes': 5.7.0 + '@ethersproject/constants': 5.7.0 + '@ethersproject/logger': 5.7.0 + '@ethersproject/properties': 5.7.0 + '@ethersproject/transactions': 5.7.0 + + '@ethersproject/hash@5.7.0': + dependencies: + '@ethersproject/abstract-signer': 5.7.0 + '@ethersproject/address': 5.7.0 + '@ethersproject/base64': 5.7.0 + '@ethersproject/bignumber': 5.7.0 + '@ethersproject/bytes': 5.7.0 + '@ethersproject/keccak256': 5.7.0 + '@ethersproject/logger': 5.7.0 + '@ethersproject/properties': 5.7.0 + '@ethersproject/strings': 5.7.0 + + '@ethersproject/hdnode@5.7.0': + dependencies: + '@ethersproject/abstract-signer': 5.7.0 + '@ethersproject/basex': 5.7.0 + '@ethersproject/bignumber': 5.7.0 + '@ethersproject/bytes': 5.7.0 + '@ethersproject/logger': 5.7.0 + '@ethersproject/pbkdf2': 5.7.0 + '@ethersproject/properties': 5.7.0 + '@ethersproject/sha2': 5.7.0 + '@ethersproject/signing-key': 5.7.0 + '@ethersproject/strings': 5.7.0 + '@ethersproject/transactions': 5.7.0 + '@ethersproject/wordlists': 5.7.0 + + '@ethersproject/json-wallets@5.7.0': + dependencies: + '@ethersproject/abstract-signer': 5.7.0 + '@ethersproject/address': 5.7.0 + '@ethersproject/bytes': 5.7.0 + '@ethersproject/hdnode': 5.7.0 + '@ethersproject/keccak256': 5.7.0 + '@ethersproject/logger': 5.7.0 + '@ethersproject/pbkdf2': 5.7.0 + '@ethersproject/properties': 5.7.0 + '@ethersproject/random': 5.7.0 + '@ethersproject/strings': 5.7.0 + '@ethersproject/transactions': 5.7.0 + aes-js: 3.0.0 + scrypt-js: 3.0.1 + + '@ethersproject/keccak256@5.7.0': + dependencies: + '@ethersproject/bytes': 5.7.0 + js-sha3: 0.8.0 + + '@ethersproject/logger@5.7.0': {} + + '@ethersproject/networks@5.7.1': + dependencies: + '@ethersproject/logger': 5.7.0 + + '@ethersproject/pbkdf2@5.7.0': + dependencies: + '@ethersproject/bytes': 5.7.0 + '@ethersproject/sha2': 5.7.0 + + '@ethersproject/properties@5.7.0': + dependencies: + '@ethersproject/logger': 5.7.0 + + '@ethersproject/providers@5.7.2': + dependencies: + '@ethersproject/abstract-provider': 5.7.0 + '@ethersproject/abstract-signer': 5.7.0 + '@ethersproject/address': 5.7.0 + '@ethersproject/base64': 5.7.0 + '@ethersproject/basex': 5.7.0 + '@ethersproject/bignumber': 5.7.0 + '@ethersproject/bytes': 5.7.0 + '@ethersproject/constants': 5.7.0 + '@ethersproject/hash': 5.7.0 + '@ethersproject/logger': 5.7.0 + '@ethersproject/networks': 5.7.1 + '@ethersproject/properties': 5.7.0 + '@ethersproject/random': 5.7.0 + '@ethersproject/rlp': 5.7.0 + '@ethersproject/sha2': 5.7.0 + '@ethersproject/strings': 5.7.0 + '@ethersproject/transactions': 5.7.0 + '@ethersproject/web': 5.7.1 + bech32: 1.1.4 + ws: 7.4.6 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + + '@ethersproject/random@5.7.0': + dependencies: + '@ethersproject/bytes': 5.7.0 + '@ethersproject/logger': 5.7.0 + + '@ethersproject/rlp@5.7.0': + dependencies: + '@ethersproject/bytes': 5.7.0 + '@ethersproject/logger': 5.7.0 + + '@ethersproject/sha2@5.7.0': + dependencies: + '@ethersproject/bytes': 5.7.0 + '@ethersproject/logger': 5.7.0 + hash.js: 1.1.7 + + '@ethersproject/signing-key@5.7.0': + dependencies: + '@ethersproject/bytes': 5.7.0 + '@ethersproject/logger': 5.7.0 + '@ethersproject/properties': 5.7.0 + bn.js: 5.2.1 + elliptic: 6.5.4 + hash.js: 1.1.7 + + '@ethersproject/solidity@5.7.0': + dependencies: + '@ethersproject/bignumber': 5.7.0 + '@ethersproject/bytes': 5.7.0 + '@ethersproject/keccak256': 5.7.0 + '@ethersproject/logger': 5.7.0 + '@ethersproject/sha2': 5.7.0 + '@ethersproject/strings': 5.7.0 + + '@ethersproject/strings@5.7.0': + dependencies: + '@ethersproject/bytes': 5.7.0 + '@ethersproject/constants': 5.7.0 + '@ethersproject/logger': 5.7.0 + + '@ethersproject/transactions@5.7.0': + dependencies: + '@ethersproject/address': 5.7.0 + '@ethersproject/bignumber': 5.7.0 + '@ethersproject/bytes': 5.7.0 + '@ethersproject/constants': 5.7.0 + '@ethersproject/keccak256': 5.7.0 + '@ethersproject/logger': 5.7.0 + '@ethersproject/properties': 5.7.0 + '@ethersproject/rlp': 5.7.0 + '@ethersproject/signing-key': 5.7.0 + + '@ethersproject/units@5.7.0': + dependencies: + '@ethersproject/bignumber': 5.7.0 + '@ethersproject/constants': 5.7.0 + '@ethersproject/logger': 5.7.0 + + '@ethersproject/wallet@5.7.0': + dependencies: + '@ethersproject/abstract-provider': 5.7.0 + '@ethersproject/abstract-signer': 5.7.0 + '@ethersproject/address': 5.7.0 + '@ethersproject/bignumber': 5.7.0 + '@ethersproject/bytes': 5.7.0 + '@ethersproject/hash': 5.7.0 + '@ethersproject/hdnode': 5.7.0 + '@ethersproject/json-wallets': 5.7.0 + '@ethersproject/keccak256': 5.7.0 + '@ethersproject/logger': 5.7.0 + '@ethersproject/properties': 5.7.0 + '@ethersproject/random': 5.7.0 + '@ethersproject/signing-key': 5.7.0 + '@ethersproject/transactions': 5.7.0 + '@ethersproject/wordlists': 5.7.0 + + '@ethersproject/web@5.7.1': + dependencies: + '@ethersproject/base64': 5.7.0 + '@ethersproject/bytes': 5.7.0 + '@ethersproject/logger': 5.7.0 + '@ethersproject/properties': 5.7.0 + '@ethersproject/strings': 5.7.0 + + '@ethersproject/wordlists@5.7.0': + dependencies: + '@ethersproject/bytes': 5.7.0 + '@ethersproject/hash': 5.7.0 + '@ethersproject/logger': 5.7.0 + '@ethersproject/properties': 5.7.0 + '@ethersproject/strings': 5.7.0 + + '@noble/curves@1.6.0': + dependencies: + '@noble/hashes': 1.5.0 + + '@noble/hashes@1.5.0': {} + + '@polkadot-api/json-rpc-provider-proxy@0.0.1': + optional: true + + '@polkadot-api/json-rpc-provider-proxy@0.1.0': + optional: true + + '@polkadot-api/json-rpc-provider@0.0.1': + optional: true + + '@polkadot-api/metadata-builders@0.0.1': + dependencies: + '@polkadot-api/substrate-bindings': 0.0.1 + '@polkadot-api/utils': 0.0.1 + optional: true + + '@polkadot-api/metadata-builders@0.3.2': + dependencies: + '@polkadot-api/substrate-bindings': 0.6.0 + '@polkadot-api/utils': 0.1.0 + optional: true + + '@polkadot-api/observable-client@0.1.0(rxjs@7.8.1)': + dependencies: + '@polkadot-api/metadata-builders': 0.0.1 + '@polkadot-api/substrate-bindings': 0.0.1 + '@polkadot-api/substrate-client': 0.0.1 + '@polkadot-api/utils': 0.0.1 + rxjs: 7.8.1 + optional: true + + '@polkadot-api/observable-client@0.3.2(@polkadot-api/substrate-client@0.1.4)(rxjs@7.8.1)': + dependencies: + '@polkadot-api/metadata-builders': 0.3.2 + '@polkadot-api/substrate-bindings': 0.6.0 + '@polkadot-api/substrate-client': 0.1.4 + '@polkadot-api/utils': 0.1.0 + rxjs: 7.8.1 + optional: true + + '@polkadot-api/substrate-bindings@0.0.1': + dependencies: + '@noble/hashes': 1.5.0 + '@polkadot-api/utils': 0.0.1 + '@scure/base': 1.1.9 + scale-ts: 1.6.0 + optional: true + + '@polkadot-api/substrate-bindings@0.6.0': + dependencies: + '@noble/hashes': 1.5.0 + '@polkadot-api/utils': 0.1.0 + '@scure/base': 1.1.9 + scale-ts: 1.6.0 + optional: true + + '@polkadot-api/substrate-client@0.0.1': + optional: true + + '@polkadot-api/substrate-client@0.1.4': + dependencies: + '@polkadot-api/json-rpc-provider': 0.0.1 + '@polkadot-api/utils': 0.1.0 + optional: true + + '@polkadot-api/utils@0.0.1': + optional: true + + '@polkadot-api/utils@0.1.0': + optional: true + + '@polkadot/api-augment@14.0.1': + dependencies: + '@polkadot/api-base': 14.0.1 + '@polkadot/rpc-augment': 14.0.1 + '@polkadot/types': 14.0.1 + '@polkadot/types-augment': 14.0.1 + '@polkadot/types-codec': 14.0.1 + '@polkadot/util': 13.1.1 + tslib: 2.7.0 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + '@polkadot/api-base@14.0.1': + dependencies: + '@polkadot/rpc-core': 14.0.1 + '@polkadot/types': 14.0.1 + '@polkadot/util': 13.1.1 + rxjs: 7.8.1 + tslib: 2.7.0 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + '@polkadot/api-derive@14.0.1': + dependencies: + '@polkadot/api': 14.0.1 + '@polkadot/api-augment': 14.0.1 + '@polkadot/api-base': 14.0.1 + '@polkadot/rpc-core': 14.0.1 + '@polkadot/types': 14.0.1 + '@polkadot/types-codec': 14.0.1 + '@polkadot/util': 13.1.1 + '@polkadot/util-crypto': 13.1.1(@polkadot/util@13.1.1) + rxjs: 7.8.1 + tslib: 2.7.0 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + '@polkadot/api@14.0.1': + dependencies: + '@polkadot/api-augment': 14.0.1 + '@polkadot/api-base': 14.0.1 + '@polkadot/api-derive': 14.0.1 + '@polkadot/keyring': 13.1.1(@polkadot/util-crypto@13.1.1(@polkadot/util@13.1.1))(@polkadot/util@13.1.1) + '@polkadot/rpc-augment': 14.0.1 + '@polkadot/rpc-core': 14.0.1 + '@polkadot/rpc-provider': 14.0.1 + '@polkadot/types': 14.0.1 + '@polkadot/types-augment': 14.0.1 + '@polkadot/types-codec': 14.0.1 + '@polkadot/types-create': 14.0.1 + '@polkadot/types-known': 14.0.1 + '@polkadot/util': 13.1.1 + '@polkadot/util-crypto': 13.1.1(@polkadot/util@13.1.1) + eventemitter3: 5.0.1 + rxjs: 7.8.1 + tslib: 2.7.0 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + '@polkadot/extension-dapp@0.47.6(@polkadot/api@14.0.1)(@polkadot/util-crypto@12.6.2(@polkadot/util@12.6.2))(@polkadot/util@12.6.2)': + dependencies: + '@polkadot/api': 14.0.1 + '@polkadot/extension-inject': 0.47.6(@polkadot/api@14.0.1)(@polkadot/util@12.6.2) + '@polkadot/util': 12.6.2 + '@polkadot/util-crypto': 12.6.2(@polkadot/util@12.6.2) + tslib: 2.7.0 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + '@polkadot/extension-inject@0.47.6(@polkadot/api@14.0.1)(@polkadot/util@12.6.2)': + dependencies: + '@polkadot/api': 14.0.1 + '@polkadot/rpc-provider': 11.3.1 + '@polkadot/types': 11.3.1 + '@polkadot/util': 12.6.2 + '@polkadot/util-crypto': 12.6.2(@polkadot/util@12.6.2) + '@polkadot/x-global': 12.6.2 + tslib: 2.7.0 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + '@polkadot/keyring@12.6.2(@polkadot/util-crypto@12.6.2(@polkadot/util@12.6.2))(@polkadot/util@12.6.2)': + dependencies: + '@polkadot/util': 12.6.2 + '@polkadot/util-crypto': 12.6.2(@polkadot/util@12.6.2) + tslib: 2.7.0 + + '@polkadot/keyring@13.1.1(@polkadot/util-crypto@12.6.2(@polkadot/util@12.6.2))(@polkadot/util@12.6.2)': + dependencies: + '@polkadot/util': 12.6.2 + '@polkadot/util-crypto': 12.6.2(@polkadot/util@12.6.2) + tslib: 2.7.0 + + '@polkadot/keyring@13.1.1(@polkadot/util-crypto@13.1.1(@polkadot/util@13.1.1))(@polkadot/util@13.1.1)': + dependencies: + '@polkadot/util': 13.1.1 + '@polkadot/util-crypto': 13.1.1(@polkadot/util@13.1.1) + tslib: 2.7.0 + + '@polkadot/networks@12.6.2': + dependencies: + '@polkadot/util': 12.6.2 + '@substrate/ss58-registry': 1.50.0 + tslib: 2.7.0 + + '@polkadot/networks@13.1.1': + dependencies: + '@polkadot/util': 13.1.1 + '@substrate/ss58-registry': 1.50.0 + tslib: 2.7.0 + + '@polkadot/rpc-augment@14.0.1': + dependencies: + '@polkadot/rpc-core': 14.0.1 + '@polkadot/types': 14.0.1 + '@polkadot/types-codec': 14.0.1 + '@polkadot/util': 13.1.1 + tslib: 2.7.0 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + '@polkadot/rpc-core@14.0.1': + dependencies: + '@polkadot/rpc-augment': 14.0.1 + '@polkadot/rpc-provider': 14.0.1 + '@polkadot/types': 14.0.1 + '@polkadot/util': 13.1.1 + rxjs: 7.8.1 + tslib: 2.7.0 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + '@polkadot/rpc-provider@11.3.1': + dependencies: + '@polkadot/keyring': 12.6.2(@polkadot/util-crypto@12.6.2(@polkadot/util@12.6.2))(@polkadot/util@12.6.2) + '@polkadot/types': 11.3.1 + '@polkadot/types-support': 11.3.1 + '@polkadot/util': 12.6.2 + '@polkadot/util-crypto': 12.6.2(@polkadot/util@12.6.2) + '@polkadot/x-fetch': 12.6.2 + '@polkadot/x-global': 12.6.2 + '@polkadot/x-ws': 12.6.2 + eventemitter3: 5.0.1 + mock-socket: 9.3.1 + nock: 13.5.5 + tslib: 2.7.0 + optionalDependencies: + '@substrate/connect': 0.8.10 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + '@polkadot/rpc-provider@14.0.1': + dependencies: + '@polkadot/keyring': 13.1.1(@polkadot/util-crypto@13.1.1(@polkadot/util@13.1.1))(@polkadot/util@13.1.1) + '@polkadot/types': 14.0.1 + '@polkadot/types-support': 14.0.1 + '@polkadot/util': 13.1.1 + '@polkadot/util-crypto': 13.1.1(@polkadot/util@13.1.1) + '@polkadot/x-fetch': 13.1.1 + '@polkadot/x-global': 13.1.1 + '@polkadot/x-ws': 13.1.1 + eventemitter3: 5.0.1 + mock-socket: 9.3.1 + nock: 13.5.5 + tslib: 2.7.0 + optionalDependencies: + '@substrate/connect': 0.8.11 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + '@polkadot/types-augment@10.13.1': + dependencies: + '@polkadot/types': 10.13.1 + '@polkadot/types-codec': 10.13.1 + '@polkadot/util': 12.6.2 + tslib: 2.7.0 + + '@polkadot/types-augment@11.3.1': + dependencies: + '@polkadot/types': 11.3.1 + '@polkadot/types-codec': 11.3.1 + '@polkadot/util': 12.6.2 + tslib: 2.7.0 + + '@polkadot/types-augment@14.0.1': + dependencies: + '@polkadot/types': 14.0.1 + '@polkadot/types-codec': 14.0.1 + '@polkadot/util': 13.1.1 + tslib: 2.7.0 + + '@polkadot/types-codec@10.13.1': + dependencies: + '@polkadot/util': 12.6.2 + '@polkadot/x-bigint': 12.6.2 + tslib: 2.7.0 + + '@polkadot/types-codec@11.3.1': + dependencies: + '@polkadot/util': 12.6.2 + '@polkadot/x-bigint': 12.6.2 + tslib: 2.7.0 + + '@polkadot/types-codec@14.0.1': + dependencies: + '@polkadot/util': 13.1.1 + '@polkadot/x-bigint': 13.1.1 + tslib: 2.7.0 + + '@polkadot/types-create@10.13.1': + dependencies: + '@polkadot/types-codec': 10.13.1 + '@polkadot/util': 12.6.2 + tslib: 2.7.0 + + '@polkadot/types-create@11.3.1': + dependencies: + '@polkadot/types-codec': 11.3.1 + '@polkadot/util': 12.6.2 + tslib: 2.7.0 + + '@polkadot/types-create@14.0.1': + dependencies: + '@polkadot/types-codec': 14.0.1 + '@polkadot/util': 13.1.1 + tslib: 2.7.0 + + '@polkadot/types-known@14.0.1': + dependencies: + '@polkadot/networks': 13.1.1 + '@polkadot/types': 14.0.1 + '@polkadot/types-codec': 14.0.1 + '@polkadot/types-create': 14.0.1 + '@polkadot/util': 13.1.1 + tslib: 2.7.0 + + '@polkadot/types-support@11.3.1': + dependencies: + '@polkadot/util': 12.6.2 + tslib: 2.7.0 + + '@polkadot/types-support@14.0.1': + dependencies: + '@polkadot/util': 13.1.1 + tslib: 2.7.0 + + '@polkadot/types@10.13.1': + dependencies: + '@polkadot/keyring': 12.6.2(@polkadot/util-crypto@12.6.2(@polkadot/util@12.6.2))(@polkadot/util@12.6.2) + '@polkadot/types-augment': 10.13.1 + '@polkadot/types-codec': 10.13.1 + '@polkadot/types-create': 10.13.1 + '@polkadot/util': 12.6.2 + '@polkadot/util-crypto': 12.6.2(@polkadot/util@12.6.2) + rxjs: 7.8.1 + tslib: 2.7.0 + + '@polkadot/types@11.3.1': + dependencies: + '@polkadot/keyring': 12.6.2(@polkadot/util-crypto@12.6.2(@polkadot/util@12.6.2))(@polkadot/util@12.6.2) + '@polkadot/types-augment': 11.3.1 + '@polkadot/types-codec': 11.3.1 + '@polkadot/types-create': 11.3.1 + '@polkadot/util': 12.6.2 + '@polkadot/util-crypto': 12.6.2(@polkadot/util@12.6.2) + rxjs: 7.8.1 + tslib: 2.7.0 + + '@polkadot/types@14.0.1': + dependencies: + '@polkadot/keyring': 13.1.1(@polkadot/util-crypto@13.1.1(@polkadot/util@13.1.1))(@polkadot/util@13.1.1) + '@polkadot/types-augment': 14.0.1 + '@polkadot/types-codec': 14.0.1 + '@polkadot/types-create': 14.0.1 + '@polkadot/util': 13.1.1 + '@polkadot/util-crypto': 13.1.1(@polkadot/util@13.1.1) + rxjs: 7.8.1 + tslib: 2.7.0 + + '@polkadot/ui-keyring@3.10.1(@polkadot/keyring@13.1.1(@polkadot/util-crypto@12.6.2(@polkadot/util@12.6.2))(@polkadot/util@12.6.2))(@polkadot/ui-settings@3.10.1(@polkadot/networks@13.1.1)(@polkadot/util@12.6.2))(@polkadot/util@12.6.2)': + dependencies: + '@polkadot/keyring': 13.1.1(@polkadot/util-crypto@12.6.2(@polkadot/util@12.6.2))(@polkadot/util@12.6.2) + '@polkadot/ui-settings': 3.10.1(@polkadot/networks@13.1.1)(@polkadot/util@12.6.2) + '@polkadot/util': 12.6.2 + '@polkadot/util-crypto': 13.1.1(@polkadot/util@12.6.2) + mkdirp: 3.0.1 + rxjs: 7.8.1 + store: 2.0.12 + tslib: 2.7.0 + + '@polkadot/ui-settings@3.10.1(@polkadot/networks@13.1.1)(@polkadot/util@12.6.2)': + dependencies: + '@polkadot/networks': 13.1.1 + '@polkadot/util': 12.6.2 + eventemitter3: 5.0.1 + store: 2.0.12 + tslib: 2.7.0 + + '@polkadot/util-crypto@12.6.2(@polkadot/util@12.6.2)': + dependencies: + '@noble/curves': 1.6.0 + '@noble/hashes': 1.5.0 + '@polkadot/networks': 12.6.2 + '@polkadot/util': 12.6.2 + '@polkadot/wasm-crypto': 7.3.2(@polkadot/util@12.6.2)(@polkadot/x-randomvalues@12.6.2(@polkadot/util@12.6.2)(@polkadot/wasm-util@7.3.2(@polkadot/util@12.6.2))) + '@polkadot/wasm-util': 7.3.2(@polkadot/util@12.6.2) + '@polkadot/x-bigint': 12.6.2 + '@polkadot/x-randomvalues': 12.6.2(@polkadot/util@12.6.2)(@polkadot/wasm-util@7.3.2(@polkadot/util@12.6.2)) + '@scure/base': 1.1.9 + tslib: 2.7.0 + + '@polkadot/util-crypto@13.1.1(@polkadot/util@12.6.2)': + dependencies: + '@noble/curves': 1.6.0 + '@noble/hashes': 1.5.0 + '@polkadot/networks': 13.1.1 + '@polkadot/util': 12.6.2 + '@polkadot/wasm-crypto': 7.3.2(@polkadot/util@12.6.2)(@polkadot/x-randomvalues@13.1.1(@polkadot/util@12.6.2)(@polkadot/wasm-util@7.3.2(@polkadot/util@12.6.2))) + '@polkadot/wasm-util': 7.3.2(@polkadot/util@12.6.2) + '@polkadot/x-bigint': 13.1.1 + '@polkadot/x-randomvalues': 13.1.1(@polkadot/util@12.6.2)(@polkadot/wasm-util@7.3.2(@polkadot/util@12.6.2)) + '@scure/base': 1.1.9 + tslib: 2.7.0 + + '@polkadot/util-crypto@13.1.1(@polkadot/util@13.1.1)': + dependencies: + '@noble/curves': 1.6.0 + '@noble/hashes': 1.5.0 + '@polkadot/networks': 13.1.1 + '@polkadot/util': 13.1.1 + '@polkadot/wasm-crypto': 7.3.2(@polkadot/util@13.1.1)(@polkadot/x-randomvalues@13.1.1(@polkadot/util@13.1.1)(@polkadot/wasm-util@7.3.2(@polkadot/util@13.1.1))) + '@polkadot/wasm-util': 7.3.2(@polkadot/util@13.1.1) + '@polkadot/x-bigint': 13.1.1 + '@polkadot/x-randomvalues': 13.1.1(@polkadot/util@13.1.1)(@polkadot/wasm-util@7.3.2(@polkadot/util@13.1.1)) + '@scure/base': 1.1.9 + tslib: 2.7.0 + + '@polkadot/util@12.6.2': + dependencies: + '@polkadot/x-bigint': 12.6.2 + '@polkadot/x-global': 12.6.2 + '@polkadot/x-textdecoder': 12.6.2 + '@polkadot/x-textencoder': 12.6.2 + '@types/bn.js': 5.1.6 + bn.js: 5.2.1 + tslib: 2.7.0 + + '@polkadot/util@13.1.1': + dependencies: + '@polkadot/x-bigint': 13.1.1 + '@polkadot/x-global': 13.1.1 + '@polkadot/x-textdecoder': 13.1.1 + '@polkadot/x-textencoder': 13.1.1 + '@types/bn.js': 5.1.6 + bn.js: 5.2.1 + tslib: 2.7.0 + + '@polkadot/wasm-bridge@7.3.2(@polkadot/util@12.6.2)(@polkadot/x-randomvalues@12.6.2(@polkadot/util@12.6.2)(@polkadot/wasm-util@7.3.2(@polkadot/util@12.6.2)))': + dependencies: + '@polkadot/util': 12.6.2 + '@polkadot/wasm-util': 7.3.2(@polkadot/util@12.6.2) + '@polkadot/x-randomvalues': 12.6.2(@polkadot/util@12.6.2)(@polkadot/wasm-util@7.3.2(@polkadot/util@12.6.2)) + tslib: 2.7.0 + + '@polkadot/wasm-bridge@7.3.2(@polkadot/util@12.6.2)(@polkadot/x-randomvalues@13.1.1(@polkadot/util@12.6.2)(@polkadot/wasm-util@7.3.2(@polkadot/util@12.6.2)))': + dependencies: + '@polkadot/util': 12.6.2 + '@polkadot/wasm-util': 7.3.2(@polkadot/util@12.6.2) + '@polkadot/x-randomvalues': 13.1.1(@polkadot/util@12.6.2)(@polkadot/wasm-util@7.3.2(@polkadot/util@12.6.2)) + tslib: 2.7.0 + + '@polkadot/wasm-bridge@7.3.2(@polkadot/util@13.1.1)(@polkadot/x-randomvalues@13.1.1(@polkadot/util@13.1.1)(@polkadot/wasm-util@7.3.2(@polkadot/util@13.1.1)))': + dependencies: + '@polkadot/util': 13.1.1 + '@polkadot/wasm-util': 7.3.2(@polkadot/util@13.1.1) + '@polkadot/x-randomvalues': 13.1.1(@polkadot/util@13.1.1)(@polkadot/wasm-util@7.3.2(@polkadot/util@13.1.1)) + tslib: 2.7.0 + + '@polkadot/wasm-crypto-asmjs@7.3.2(@polkadot/util@12.6.2)': + dependencies: + '@polkadot/util': 12.6.2 + tslib: 2.7.0 + + '@polkadot/wasm-crypto-asmjs@7.3.2(@polkadot/util@13.1.1)': + dependencies: + '@polkadot/util': 13.1.1 + tslib: 2.7.0 + + '@polkadot/wasm-crypto-init@7.3.2(@polkadot/util@12.6.2)(@polkadot/x-randomvalues@12.6.2(@polkadot/util@12.6.2)(@polkadot/wasm-util@7.3.2(@polkadot/util@12.6.2)))': + dependencies: + '@polkadot/util': 12.6.2 + '@polkadot/wasm-bridge': 7.3.2(@polkadot/util@12.6.2)(@polkadot/x-randomvalues@12.6.2(@polkadot/util@12.6.2)(@polkadot/wasm-util@7.3.2(@polkadot/util@12.6.2))) + '@polkadot/wasm-crypto-asmjs': 7.3.2(@polkadot/util@12.6.2) + '@polkadot/wasm-crypto-wasm': 7.3.2(@polkadot/util@12.6.2) + '@polkadot/wasm-util': 7.3.2(@polkadot/util@12.6.2) + '@polkadot/x-randomvalues': 12.6.2(@polkadot/util@12.6.2)(@polkadot/wasm-util@7.3.2(@polkadot/util@12.6.2)) + tslib: 2.7.0 + + '@polkadot/wasm-crypto-init@7.3.2(@polkadot/util@12.6.2)(@polkadot/x-randomvalues@13.1.1(@polkadot/util@12.6.2)(@polkadot/wasm-util@7.3.2(@polkadot/util@12.6.2)))': + dependencies: + '@polkadot/util': 12.6.2 + '@polkadot/wasm-bridge': 7.3.2(@polkadot/util@12.6.2)(@polkadot/x-randomvalues@13.1.1(@polkadot/util@12.6.2)(@polkadot/wasm-util@7.3.2(@polkadot/util@12.6.2))) + '@polkadot/wasm-crypto-asmjs': 7.3.2(@polkadot/util@12.6.2) + '@polkadot/wasm-crypto-wasm': 7.3.2(@polkadot/util@12.6.2) + '@polkadot/wasm-util': 7.3.2(@polkadot/util@12.6.2) + '@polkadot/x-randomvalues': 13.1.1(@polkadot/util@12.6.2)(@polkadot/wasm-util@7.3.2(@polkadot/util@12.6.2)) + tslib: 2.7.0 + + '@polkadot/wasm-crypto-init@7.3.2(@polkadot/util@13.1.1)(@polkadot/x-randomvalues@13.1.1(@polkadot/util@13.1.1)(@polkadot/wasm-util@7.3.2(@polkadot/util@13.1.1)))': + dependencies: + '@polkadot/util': 13.1.1 + '@polkadot/wasm-bridge': 7.3.2(@polkadot/util@13.1.1)(@polkadot/x-randomvalues@13.1.1(@polkadot/util@13.1.1)(@polkadot/wasm-util@7.3.2(@polkadot/util@13.1.1))) + '@polkadot/wasm-crypto-asmjs': 7.3.2(@polkadot/util@13.1.1) + '@polkadot/wasm-crypto-wasm': 7.3.2(@polkadot/util@13.1.1) + '@polkadot/wasm-util': 7.3.2(@polkadot/util@13.1.1) + '@polkadot/x-randomvalues': 13.1.1(@polkadot/util@13.1.1)(@polkadot/wasm-util@7.3.2(@polkadot/util@13.1.1)) + tslib: 2.7.0 + + '@polkadot/wasm-crypto-wasm@7.3.2(@polkadot/util@12.6.2)': + dependencies: + '@polkadot/util': 12.6.2 + '@polkadot/wasm-util': 7.3.2(@polkadot/util@12.6.2) + tslib: 2.7.0 + + '@polkadot/wasm-crypto-wasm@7.3.2(@polkadot/util@13.1.1)': + dependencies: + '@polkadot/util': 13.1.1 + '@polkadot/wasm-util': 7.3.2(@polkadot/util@13.1.1) + tslib: 2.7.0 + + '@polkadot/wasm-crypto@7.3.2(@polkadot/util@12.6.2)(@polkadot/x-randomvalues@12.6.2(@polkadot/util@12.6.2)(@polkadot/wasm-util@7.3.2(@polkadot/util@12.6.2)))': + dependencies: + '@polkadot/util': 12.6.2 + '@polkadot/wasm-bridge': 7.3.2(@polkadot/util@12.6.2)(@polkadot/x-randomvalues@12.6.2(@polkadot/util@12.6.2)(@polkadot/wasm-util@7.3.2(@polkadot/util@12.6.2))) + '@polkadot/wasm-crypto-asmjs': 7.3.2(@polkadot/util@12.6.2) + '@polkadot/wasm-crypto-init': 7.3.2(@polkadot/util@12.6.2)(@polkadot/x-randomvalues@12.6.2(@polkadot/util@12.6.2)(@polkadot/wasm-util@7.3.2(@polkadot/util@12.6.2))) + '@polkadot/wasm-crypto-wasm': 7.3.2(@polkadot/util@12.6.2) + '@polkadot/wasm-util': 7.3.2(@polkadot/util@12.6.2) + '@polkadot/x-randomvalues': 12.6.2(@polkadot/util@12.6.2)(@polkadot/wasm-util@7.3.2(@polkadot/util@12.6.2)) + tslib: 2.7.0 + + '@polkadot/wasm-crypto@7.3.2(@polkadot/util@12.6.2)(@polkadot/x-randomvalues@13.1.1(@polkadot/util@12.6.2)(@polkadot/wasm-util@7.3.2(@polkadot/util@12.6.2)))': + dependencies: + '@polkadot/util': 12.6.2 + '@polkadot/wasm-bridge': 7.3.2(@polkadot/util@12.6.2)(@polkadot/x-randomvalues@13.1.1(@polkadot/util@12.6.2)(@polkadot/wasm-util@7.3.2(@polkadot/util@12.6.2))) + '@polkadot/wasm-crypto-asmjs': 7.3.2(@polkadot/util@12.6.2) + '@polkadot/wasm-crypto-init': 7.3.2(@polkadot/util@12.6.2)(@polkadot/x-randomvalues@13.1.1(@polkadot/util@12.6.2)(@polkadot/wasm-util@7.3.2(@polkadot/util@12.6.2))) + '@polkadot/wasm-crypto-wasm': 7.3.2(@polkadot/util@12.6.2) + '@polkadot/wasm-util': 7.3.2(@polkadot/util@12.6.2) + '@polkadot/x-randomvalues': 13.1.1(@polkadot/util@12.6.2)(@polkadot/wasm-util@7.3.2(@polkadot/util@12.6.2)) + tslib: 2.7.0 + + '@polkadot/wasm-crypto@7.3.2(@polkadot/util@13.1.1)(@polkadot/x-randomvalues@13.1.1(@polkadot/util@13.1.1)(@polkadot/wasm-util@7.3.2(@polkadot/util@13.1.1)))': + dependencies: + '@polkadot/util': 13.1.1 + '@polkadot/wasm-bridge': 7.3.2(@polkadot/util@13.1.1)(@polkadot/x-randomvalues@13.1.1(@polkadot/util@13.1.1)(@polkadot/wasm-util@7.3.2(@polkadot/util@13.1.1))) + '@polkadot/wasm-crypto-asmjs': 7.3.2(@polkadot/util@13.1.1) + '@polkadot/wasm-crypto-init': 7.3.2(@polkadot/util@13.1.1)(@polkadot/x-randomvalues@13.1.1(@polkadot/util@13.1.1)(@polkadot/wasm-util@7.3.2(@polkadot/util@13.1.1))) + '@polkadot/wasm-crypto-wasm': 7.3.2(@polkadot/util@13.1.1) + '@polkadot/wasm-util': 7.3.2(@polkadot/util@13.1.1) + '@polkadot/x-randomvalues': 13.1.1(@polkadot/util@13.1.1)(@polkadot/wasm-util@7.3.2(@polkadot/util@13.1.1)) + tslib: 2.7.0 + + '@polkadot/wasm-util@7.3.2(@polkadot/util@12.6.2)': + dependencies: + '@polkadot/util': 12.6.2 + tslib: 2.7.0 + + '@polkadot/wasm-util@7.3.2(@polkadot/util@13.1.1)': + dependencies: + '@polkadot/util': 13.1.1 + tslib: 2.7.0 + + '@polkadot/x-bigint@12.6.2': + dependencies: + '@polkadot/x-global': 12.6.2 + tslib: 2.7.0 + + '@polkadot/x-bigint@13.1.1': + dependencies: + '@polkadot/x-global': 13.1.1 + tslib: 2.7.0 + + '@polkadot/x-fetch@12.6.2': + dependencies: + '@polkadot/x-global': 12.6.2 + node-fetch: 3.3.2 + tslib: 2.7.0 + + '@polkadot/x-fetch@13.1.1': + dependencies: + '@polkadot/x-global': 13.1.1 + node-fetch: 3.3.2 + tslib: 2.7.0 + + '@polkadot/x-global@12.6.2': + dependencies: + tslib: 2.7.0 + + '@polkadot/x-global@13.1.1': + dependencies: + tslib: 2.7.0 + + '@polkadot/x-randomvalues@12.6.2(@polkadot/util@12.6.2)(@polkadot/wasm-util@7.3.2(@polkadot/util@12.6.2))': + dependencies: + '@polkadot/util': 12.6.2 + '@polkadot/wasm-util': 7.3.2(@polkadot/util@12.6.2) + '@polkadot/x-global': 12.6.2 + tslib: 2.7.0 + + '@polkadot/x-randomvalues@13.1.1(@polkadot/util@12.6.2)(@polkadot/wasm-util@7.3.2(@polkadot/util@12.6.2))': + dependencies: + '@polkadot/util': 12.6.2 + '@polkadot/wasm-util': 7.3.2(@polkadot/util@12.6.2) + '@polkadot/x-global': 13.1.1 + tslib: 2.7.0 + + '@polkadot/x-randomvalues@13.1.1(@polkadot/util@13.1.1)(@polkadot/wasm-util@7.3.2(@polkadot/util@13.1.1))': + dependencies: + '@polkadot/util': 13.1.1 + '@polkadot/wasm-util': 7.3.2(@polkadot/util@13.1.1) + '@polkadot/x-global': 13.1.1 + tslib: 2.7.0 + + '@polkadot/x-textdecoder@12.6.2': + dependencies: + '@polkadot/x-global': 12.6.2 + tslib: 2.7.0 + + '@polkadot/x-textdecoder@13.1.1': + dependencies: + '@polkadot/x-global': 13.1.1 + tslib: 2.7.0 + + '@polkadot/x-textencoder@12.6.2': + dependencies: + '@polkadot/x-global': 12.6.2 + tslib: 2.7.0 + + '@polkadot/x-textencoder@13.1.1': + dependencies: + '@polkadot/x-global': 13.1.1 + tslib: 2.7.0 + + '@polkadot/x-ws@12.6.2': + dependencies: + '@polkadot/x-global': 12.6.2 + tslib: 2.7.0 + ws: 8.18.0 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + + '@polkadot/x-ws@13.1.1': + dependencies: + '@polkadot/x-global': 13.1.1 + tslib: 2.7.0 + ws: 8.18.0 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + + '@scure/base@1.1.9': {} + + '@socket.io/component-emitter@3.1.2': {} + + '@substrate/connect-extension-protocol@2.1.0': + optional: true + + '@substrate/connect-known-chains@1.4.1': + optional: true + + '@substrate/connect@0.8.10': + dependencies: + '@substrate/connect-extension-protocol': 2.1.0 + '@substrate/connect-known-chains': 1.4.1 + '@substrate/light-client-extension-helpers': 0.0.6(smoldot@2.0.22) + smoldot: 2.0.22 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + optional: true + + '@substrate/connect@0.8.11': + dependencies: + '@substrate/connect-extension-protocol': 2.1.0 + '@substrate/connect-known-chains': 1.4.1 + '@substrate/light-client-extension-helpers': 1.0.0(smoldot@2.0.26) + smoldot: 2.0.26 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + optional: true + + '@substrate/light-client-extension-helpers@0.0.6(smoldot@2.0.22)': + dependencies: + '@polkadot-api/json-rpc-provider': 0.0.1 + '@polkadot-api/json-rpc-provider-proxy': 0.0.1 + '@polkadot-api/observable-client': 0.1.0(rxjs@7.8.1) + '@polkadot-api/substrate-client': 0.0.1 + '@substrate/connect-extension-protocol': 2.1.0 + '@substrate/connect-known-chains': 1.4.1 + rxjs: 7.8.1 + smoldot: 2.0.22 + optional: true + + '@substrate/light-client-extension-helpers@1.0.0(smoldot@2.0.26)': + dependencies: + '@polkadot-api/json-rpc-provider': 0.0.1 + '@polkadot-api/json-rpc-provider-proxy': 0.1.0 + '@polkadot-api/observable-client': 0.3.2(@polkadot-api/substrate-client@0.1.4)(rxjs@7.8.1) + '@polkadot-api/substrate-client': 0.1.4 + '@substrate/connect-extension-protocol': 2.1.0 + '@substrate/connect-known-chains': 1.4.1 + rxjs: 7.8.1 + smoldot: 2.0.26 + optional: true + + '@substrate/ss58-registry@1.50.0': {} + + '@types/bn.js@5.1.6': + dependencies: + '@types/node': 22.7.4 + + '@types/node@22.7.4': + dependencies: + undici-types: 6.19.8 + + '@unique-nft/accounts@0.3.7(@polkadot/api@14.0.1)(@polkadot/keyring@13.1.1(@polkadot/util-crypto@12.6.2(@polkadot/util@12.6.2))(@polkadot/util@12.6.2))(@polkadot/ui-settings@3.10.1(@polkadot/networks@13.1.1)(@polkadot/util@12.6.2))(@polkadot/util-crypto@12.6.2(@polkadot/util@12.6.2))': + dependencies: + '@polkadot/extension-dapp': 0.47.6(@polkadot/api@14.0.1)(@polkadot/util-crypto@12.6.2(@polkadot/util@12.6.2))(@polkadot/util@12.6.2) + '@polkadot/types': 10.13.1 + '@polkadot/ui-keyring': 3.10.1(@polkadot/keyring@13.1.1(@polkadot/util-crypto@12.6.2(@polkadot/util@12.6.2))(@polkadot/util@12.6.2))(@polkadot/ui-settings@3.10.1(@polkadot/networks@13.1.1)(@polkadot/util@12.6.2))(@polkadot/util@12.6.2) + '@polkadot/util': 12.6.2 + '@unique-nft/utils': 0.3.20 + ethers: 5.7.2 + reflect-metadata: 0.1.14 + transitivePeerDependencies: + - '@polkadot/api' + - '@polkadot/keyring' + - '@polkadot/ui-settings' + - '@polkadot/util-crypto' + - bufferutil + - supports-color + - utf-8-validate + + '@unique-nft/sdk@0.7.7': + dependencies: + '@unique-nft/sr25519': 0.0.2 + '@unique-nft/utils': 0.3.20 + abi-coder: 4.1.1 + axios: 1.7.7 + form-data: 4.0.0 + socket.io-client: 4.8.0 + transitivePeerDependencies: + - bufferutil + - debug + - supports-color + - utf-8-validate + + '@unique-nft/sr25519@0.0.2': + dependencies: + '@noble/hashes': 1.5.0 + base-x: 4.0.0 + + '@unique-nft/utils@0.3.20': + dependencies: + '@noble/hashes': 1.5.0 + '@unique-nft/sr25519': 0.0.2 + base-x: 4.0.0 + coin-format: 0.0.2 + utf-helpers: 0.0.3 + + abi-coder@4.1.1: + dependencies: + '@ethersproject/abi': 5.7.0 + '@ethersproject/keccak256': 5.7.0 + '@ethersproject/strings': 5.7.0 + + aes-js@3.0.0: {} + + asynckit@0.4.0: {} + + axios@1.7.7: + dependencies: + follow-redirects: 1.15.9 + form-data: 4.0.0 + proxy-from-env: 1.1.0 + transitivePeerDependencies: + - debug + + base-x@4.0.0: {} + + bech32@1.1.4: {} + + bn.js@4.12.0: {} + + bn.js@5.2.1: {} + + brorand@1.1.0: {} + + coin-format@0.0.2: {} + + combined-stream@1.0.8: + dependencies: + delayed-stream: 1.0.0 + + data-uri-to-buffer@4.0.1: {} + + debug@4.3.7: + dependencies: + ms: 2.1.3 + + delayed-stream@1.0.0: {} + + dotenv@16.4.5: {} + + elliptic@6.5.4: + 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 + + engine.io-client@6.6.1: + dependencies: + '@socket.io/component-emitter': 3.1.2 + debug: 4.3.7 + engine.io-parser: 5.2.3 + ws: 8.17.1 + xmlhttprequest-ssl: 2.1.1 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + engine.io-parser@5.2.3: {} + + ethers@5.7.2: + dependencies: + '@ethersproject/abi': 5.7.0 + '@ethersproject/abstract-provider': 5.7.0 + '@ethersproject/abstract-signer': 5.7.0 + '@ethersproject/address': 5.7.0 + '@ethersproject/base64': 5.7.0 + '@ethersproject/basex': 5.7.0 + '@ethersproject/bignumber': 5.7.0 + '@ethersproject/bytes': 5.7.0 + '@ethersproject/constants': 5.7.0 + '@ethersproject/contracts': 5.7.0 + '@ethersproject/hash': 5.7.0 + '@ethersproject/hdnode': 5.7.0 + '@ethersproject/json-wallets': 5.7.0 + '@ethersproject/keccak256': 5.7.0 + '@ethersproject/logger': 5.7.0 + '@ethersproject/networks': 5.7.1 + '@ethersproject/pbkdf2': 5.7.0 + '@ethersproject/properties': 5.7.0 + '@ethersproject/providers': 5.7.2 + '@ethersproject/random': 5.7.0 + '@ethersproject/rlp': 5.7.0 + '@ethersproject/sha2': 5.7.0 + '@ethersproject/signing-key': 5.7.0 + '@ethersproject/solidity': 5.7.0 + '@ethersproject/strings': 5.7.0 + '@ethersproject/transactions': 5.7.0 + '@ethersproject/units': 5.7.0 + '@ethersproject/wallet': 5.7.0 + '@ethersproject/web': 5.7.1 + '@ethersproject/wordlists': 5.7.0 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + + eventemitter3@5.0.1: {} + + fetch-blob@3.2.0: + dependencies: + node-domexception: 1.0.0 + web-streams-polyfill: 3.3.3 + + follow-redirects@1.15.9: {} + + form-data@4.0.0: + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + mime-types: 2.1.35 + + formdata-polyfill@4.0.10: + dependencies: + fetch-blob: 3.2.0 + + hash.js@1.1.7: + dependencies: + inherits: 2.0.4 + minimalistic-assert: 1.0.1 + + hmac-drbg@1.0.1: + dependencies: + hash.js: 1.1.7 + minimalistic-assert: 1.0.1 + minimalistic-crypto-utils: 1.0.1 + + inherits@2.0.4: {} + + js-sha3@0.8.0: {} + + json-stringify-safe@5.0.1: {} + + mime-db@1.52.0: {} + + mime-types@2.1.35: + dependencies: + mime-db: 1.52.0 + + minimalistic-assert@1.0.1: {} + + minimalistic-crypto-utils@1.0.1: {} + + mkdirp@3.0.1: {} + + mock-socket@9.3.1: {} + + ms@2.1.3: {} + + nock@13.5.5: + dependencies: + debug: 4.3.7 + json-stringify-safe: 5.0.1 + propagate: 2.0.1 + transitivePeerDependencies: + - supports-color + + node-domexception@1.0.0: {} + + node-fetch@3.3.2: + dependencies: + data-uri-to-buffer: 4.0.1 + fetch-blob: 3.2.0 + formdata-polyfill: 4.0.10 + + propagate@2.0.1: {} + + proxy-from-env@1.1.0: {} + + reflect-metadata@0.1.14: {} + + rxjs@7.8.1: + dependencies: + tslib: 2.7.0 + + scale-ts@1.6.0: + optional: true + + scrypt-js@3.0.1: {} + + smoldot@2.0.22: + dependencies: + ws: 8.18.0 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + optional: true + + smoldot@2.0.26: + dependencies: + ws: 8.18.0 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + optional: true + + socket.io-client@4.8.0: + dependencies: + '@socket.io/component-emitter': 3.1.2 + debug: 4.3.7 + engine.io-client: 6.6.1 + socket.io-parser: 4.2.4 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + socket.io-parser@4.2.4: + dependencies: + '@socket.io/component-emitter': 3.1.2 + debug: 4.3.7 + transitivePeerDependencies: + - supports-color + + store@2.0.12: {} + + tslib@2.7.0: {} + + undici-types@6.19.8: {} + + utf-helpers@0.0.3: {} + + web-streams-polyfill@3.3.3: {} + + ws@7.4.6: {} + + ws@8.17.1: {} + + ws@8.18.0: {} + + xmlhttprequest-ssl@2.1.1: {} diff --git a/substrate/burn.js b/substrate/burn.js new file mode 100644 index 0000000..3369906 --- /dev/null +++ b/substrate/burn.js @@ -0,0 +1,34 @@ +import { initSubstrate } from "./api.js"; +import { loadFromFile } from "../files.js"; +const collectionId = +process.env.COLLECTION_ID; +const contractAddress = process.env.CONTRACT_ADDRESS; + +import axios from "axios"; + +axios.defaults.timeout = 30000; // Set timeout to 30 seconds + +async function main() { + const { sdk, address } = await initSubstrate(); + console.log("=============Burning tokens================"); + try { + const tokens = loadFromFile(collectionId); + for (const { tokenId } of tokens) { + console.log(`Burning token ${tokenId}`); + await burn(address, sdk, tokenId); + console.log(`Burned token ${tokenId}`); + } + } catch (error) { + console.error(error); + return; + } +} + +async function burn(address, sdk, tokenId) { + await sdk.token.burn({ + collectionId, + tokenId, + amount: 1, + }); +} + +main(); From c54df02cff939c4b457cf51106e7b4fbe7b45d97 Mon Sep 17 00:00:00 2001 From: David_glitc Date: Sat, 5 Oct 2024 00:43:33 +0100 Subject: [PATCH 2/2] added mass Transfer script --- README.md | 44 ++++++++++++ package.json | 9 ++- pnpm-lock.yaml | 117 +++++++++++++++++++++--------- substrate/Transfer.js | 158 +++++++++++++++++++++++++++++++++++++++++ substrate/build-csv.js | 82 +++++++++++++++------ 5 files changed, 352 insertions(+), 58 deletions(-) create mode 100644 substrate/Transfer.js diff --git a/README.md b/README.md index 9eeb2b4..df604e9 100644 --- a/README.md +++ b/README.md @@ -64,3 +64,47 @@ To remove all the tokens from the created .csv file from the sale, run the scrip ```sh:no-line-numbers npm run delist ``` + +## šŸ”„ Burn NFTs + +To burn tokens from your collection, follow these steps: + +1. Ensure your `COLLECTION_ID` is set correctly in the `.env` file. +2. Update the `collection_717.csv` file with the token IDs you want to burn. The price column is not used for burning, so you can leave it as is. +3. Run the burn script: + +```sh:no-line-numbers +npm run burn +``` + +This will burn all the tokens listed in the CSV file from your collection. + +## šŸ”„ Transfer NFTs + +To transfer tokens to multiple addresses, follow these steps: + +1. Ensure your `COLLECTION_ID` is set correctly in the `.env` file. +2. Update the `collection_717.csv` file with the token IDs you want to transfer. +3. Create or update the `addresses.csv` file with the recipient addresses, one per line. +4. Run the transfer script: + +```sh:no-line-numbers +npm run transfer +``` + +This will transfer the tokens listed in `collection_717.csv` to the addresses in `addresses.csv`. If there are more tokens than addresses, the script will cycle through the addresses, distributing tokens evenly. + +### Transfer Script Features: +- Progress bar to show transfer status +- Detailed logging of each transfer +- Error handling and reporting +- Saves failed transfers to `error_log.csv` for review + +Note: Ensure you have sufficient balance to cover the transaction fees for all transfers. + +## āš ļø Important Notes + +- Always double-check your CSV files before running burn or transfer scripts to avoid unintended actions. +- Keep your `SUBSTRATE_SEED` secure and never share it. +- Make sure the amount of tokens you want to transfer is divisible by the amount of addresses you want to transfer to so they can be divided evenly. +- For large collections, consider running the scripts in smaller batches to manage gas fees and reduce the risk of timeouts. diff --git a/package.json b/package.json index 03a7893..408cd94 100644 --- a/package.json +++ b/package.json @@ -4,13 +4,16 @@ "build": "node substrate/build-csv.js", "sell": "node substrate/selling.js", "delist": "node substrate/delist.js", - "burn": "node substrate/burn.js" + "burn": "node substrate/burn.js", + "transfer": "node substrate/Transfer.js" }, "dependencies": { + "@polkadot/keyring": "^13.1.1", + "@polkadot/util": "^13.1.1", "@unique-nft/accounts": "^0.3.6", "@unique-nft/sdk": "0.7.7", "@unique-nft/utils": "0.3.20", - "dotenv": "^16.1.4", - "axios": "^1.7.2" + "axios": "^1.7.2", + "dotenv": "^16.1.4" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1fbcbcb..bbea9c6 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -8,9 +8,15 @@ importers: .: dependencies: + '@polkadot/keyring': + specifier: ^13.1.1 + version: 13.1.1(@polkadot/util-crypto@12.6.2(@polkadot/util@12.6.2))(@polkadot/util@13.1.1) + '@polkadot/util': + specifier: ^13.1.1 + version: 13.1.1 '@unique-nft/accounts': specifier: ^0.3.6 - version: 0.3.7(@polkadot/api@14.0.1)(@polkadot/keyring@13.1.1(@polkadot/util-crypto@12.6.2(@polkadot/util@12.6.2))(@polkadot/util@12.6.2))(@polkadot/ui-settings@3.10.1(@polkadot/networks@13.1.1)(@polkadot/util@12.6.2))(@polkadot/util-crypto@12.6.2(@polkadot/util@12.6.2)) + version: 0.3.7(@polkadot/api@14.0.1)(@polkadot/keyring@13.1.1(@polkadot/util-crypto@12.6.2(@polkadot/util@12.6.2))(@polkadot/util@13.1.1))(@polkadot/ui-settings@3.10.1(@polkadot/networks@13.1.1)(@polkadot/util@13.1.1))(@polkadot/util-crypto@12.6.2(@polkadot/util@12.6.2)) '@unique-nft/sdk': specifier: 0.7.7 version: 0.7.7 @@ -1123,7 +1129,7 @@ snapshots: '@polkadot/api': 14.0.1 '@polkadot/extension-inject': 0.47.6(@polkadot/api@14.0.1)(@polkadot/util@12.6.2) '@polkadot/util': 12.6.2 - '@polkadot/util-crypto': 12.6.2(@polkadot/util@12.6.2) + '@polkadot/util-crypto': 12.6.2(@polkadot/util@13.1.1) tslib: 2.7.0 transitivePeerDependencies: - bufferutil @@ -1147,13 +1153,13 @@ snapshots: '@polkadot/keyring@12.6.2(@polkadot/util-crypto@12.6.2(@polkadot/util@12.6.2))(@polkadot/util@12.6.2)': dependencies: '@polkadot/util': 12.6.2 - '@polkadot/util-crypto': 12.6.2(@polkadot/util@12.6.2) + '@polkadot/util-crypto': 12.6.2(@polkadot/util@13.1.1) tslib: 2.7.0 - '@polkadot/keyring@13.1.1(@polkadot/util-crypto@12.6.2(@polkadot/util@12.6.2))(@polkadot/util@12.6.2)': + '@polkadot/keyring@13.1.1(@polkadot/util-crypto@12.6.2(@polkadot/util@12.6.2))(@polkadot/util@13.1.1)': dependencies: - '@polkadot/util': 12.6.2 - '@polkadot/util-crypto': 12.6.2(@polkadot/util@12.6.2) + '@polkadot/util': 13.1.1 + '@polkadot/util-crypto': 12.6.2(@polkadot/util@13.1.1) tslib: 2.7.0 '@polkadot/keyring@13.1.1(@polkadot/util-crypto@13.1.1(@polkadot/util@13.1.1))(@polkadot/util@13.1.1)': @@ -1324,7 +1330,7 @@ snapshots: '@polkadot/types-codec': 10.13.1 '@polkadot/types-create': 10.13.1 '@polkadot/util': 12.6.2 - '@polkadot/util-crypto': 12.6.2(@polkadot/util@12.6.2) + '@polkadot/util-crypto': 12.6.2(@polkadot/util@13.1.1) rxjs: 7.8.1 tslib: 2.7.0 @@ -1350,10 +1356,10 @@ snapshots: rxjs: 7.8.1 tslib: 2.7.0 - '@polkadot/ui-keyring@3.10.1(@polkadot/keyring@13.1.1(@polkadot/util-crypto@12.6.2(@polkadot/util@12.6.2))(@polkadot/util@12.6.2))(@polkadot/ui-settings@3.10.1(@polkadot/networks@13.1.1)(@polkadot/util@12.6.2))(@polkadot/util@12.6.2)': + '@polkadot/ui-keyring@3.10.1(@polkadot/keyring@13.1.1(@polkadot/util-crypto@12.6.2(@polkadot/util@12.6.2))(@polkadot/util@13.1.1))(@polkadot/ui-settings@3.10.1(@polkadot/networks@13.1.1)(@polkadot/util@13.1.1))(@polkadot/util@12.6.2)': dependencies: - '@polkadot/keyring': 13.1.1(@polkadot/util-crypto@12.6.2(@polkadot/util@12.6.2))(@polkadot/util@12.6.2) - '@polkadot/ui-settings': 3.10.1(@polkadot/networks@13.1.1)(@polkadot/util@12.6.2) + '@polkadot/keyring': 13.1.1(@polkadot/util-crypto@12.6.2(@polkadot/util@12.6.2))(@polkadot/util@13.1.1) + '@polkadot/ui-settings': 3.10.1(@polkadot/networks@13.1.1)(@polkadot/util@13.1.1) '@polkadot/util': 12.6.2 '@polkadot/util-crypto': 13.1.1(@polkadot/util@12.6.2) mkdirp: 3.0.1 @@ -1361,10 +1367,10 @@ snapshots: store: 2.0.12 tslib: 2.7.0 - '@polkadot/ui-settings@3.10.1(@polkadot/networks@13.1.1)(@polkadot/util@12.6.2)': + '@polkadot/ui-settings@3.10.1(@polkadot/networks@13.1.1)(@polkadot/util@13.1.1)': dependencies: '@polkadot/networks': 13.1.1 - '@polkadot/util': 12.6.2 + '@polkadot/util': 13.1.1 eventemitter3: 5.0.1 store: 2.0.12 tslib: 2.7.0 @@ -1382,6 +1388,19 @@ snapshots: '@scure/base': 1.1.9 tslib: 2.7.0 + '@polkadot/util-crypto@12.6.2(@polkadot/util@13.1.1)': + dependencies: + '@noble/curves': 1.6.0 + '@noble/hashes': 1.5.0 + '@polkadot/networks': 12.6.2 + '@polkadot/util': 13.1.1 + '@polkadot/wasm-crypto': 7.3.2(@polkadot/util@13.1.1)(@polkadot/x-randomvalues@12.6.2(@polkadot/util@13.1.1)(@polkadot/wasm-util@7.3.2(@polkadot/util@13.1.1))) + '@polkadot/wasm-util': 7.3.2(@polkadot/util@13.1.1) + '@polkadot/x-bigint': 12.6.2 + '@polkadot/x-randomvalues': 12.6.2(@polkadot/util@13.1.1)(@polkadot/wasm-util@7.3.2(@polkadot/util@13.1.1)) + '@scure/base': 1.1.9 + tslib: 2.7.0 + '@polkadot/util-crypto@13.1.1(@polkadot/util@12.6.2)': dependencies: '@noble/curves': 1.6.0 @@ -1389,9 +1408,9 @@ snapshots: '@polkadot/networks': 13.1.1 '@polkadot/util': 12.6.2 '@polkadot/wasm-crypto': 7.3.2(@polkadot/util@12.6.2)(@polkadot/x-randomvalues@13.1.1(@polkadot/util@12.6.2)(@polkadot/wasm-util@7.3.2(@polkadot/util@12.6.2))) - '@polkadot/wasm-util': 7.3.2(@polkadot/util@12.6.2) + '@polkadot/wasm-util': 7.3.2(@polkadot/util@13.1.1) '@polkadot/x-bigint': 13.1.1 - '@polkadot/x-randomvalues': 13.1.1(@polkadot/util@12.6.2)(@polkadot/wasm-util@7.3.2(@polkadot/util@12.6.2)) + '@polkadot/x-randomvalues': 13.1.1(@polkadot/util@13.1.1)(@polkadot/wasm-util@7.3.2(@polkadot/util@12.6.2)) '@scure/base': 1.1.9 tslib: 2.7.0 @@ -1401,10 +1420,10 @@ snapshots: '@noble/hashes': 1.5.0 '@polkadot/networks': 13.1.1 '@polkadot/util': 13.1.1 - '@polkadot/wasm-crypto': 7.3.2(@polkadot/util@13.1.1)(@polkadot/x-randomvalues@13.1.1(@polkadot/util@13.1.1)(@polkadot/wasm-util@7.3.2(@polkadot/util@13.1.1))) + '@polkadot/wasm-crypto': 7.3.2(@polkadot/util@13.1.1)(@polkadot/x-randomvalues@13.1.1(@polkadot/util@13.1.1)(@polkadot/wasm-util@7.3.2(@polkadot/util@12.6.2))) '@polkadot/wasm-util': 7.3.2(@polkadot/util@13.1.1) '@polkadot/x-bigint': 13.1.1 - '@polkadot/x-randomvalues': 13.1.1(@polkadot/util@13.1.1)(@polkadot/wasm-util@7.3.2(@polkadot/util@13.1.1)) + '@polkadot/x-randomvalues': 13.1.1(@polkadot/util@13.1.1)(@polkadot/wasm-util@7.3.2(@polkadot/util@12.6.2)) '@scure/base': 1.1.9 tslib: 2.7.0 @@ -1439,14 +1458,21 @@ snapshots: dependencies: '@polkadot/util': 12.6.2 '@polkadot/wasm-util': 7.3.2(@polkadot/util@12.6.2) - '@polkadot/x-randomvalues': 13.1.1(@polkadot/util@12.6.2)(@polkadot/wasm-util@7.3.2(@polkadot/util@12.6.2)) + '@polkadot/x-randomvalues': 13.1.1(@polkadot/util@13.1.1)(@polkadot/wasm-util@7.3.2(@polkadot/util@12.6.2)) tslib: 2.7.0 - '@polkadot/wasm-bridge@7.3.2(@polkadot/util@13.1.1)(@polkadot/x-randomvalues@13.1.1(@polkadot/util@13.1.1)(@polkadot/wasm-util@7.3.2(@polkadot/util@13.1.1)))': + '@polkadot/wasm-bridge@7.3.2(@polkadot/util@13.1.1)(@polkadot/x-randomvalues@12.6.2(@polkadot/util@13.1.1)(@polkadot/wasm-util@7.3.2(@polkadot/util@13.1.1)))': dependencies: '@polkadot/util': 13.1.1 '@polkadot/wasm-util': 7.3.2(@polkadot/util@13.1.1) - '@polkadot/x-randomvalues': 13.1.1(@polkadot/util@13.1.1)(@polkadot/wasm-util@7.3.2(@polkadot/util@13.1.1)) + '@polkadot/x-randomvalues': 12.6.2(@polkadot/util@13.1.1)(@polkadot/wasm-util@7.3.2(@polkadot/util@13.1.1)) + tslib: 2.7.0 + + '@polkadot/wasm-bridge@7.3.2(@polkadot/util@13.1.1)(@polkadot/x-randomvalues@13.1.1(@polkadot/util@13.1.1)(@polkadot/wasm-util@7.3.2(@polkadot/util@12.6.2)))': + dependencies: + '@polkadot/util': 13.1.1 + '@polkadot/wasm-util': 7.3.2(@polkadot/util@13.1.1) + '@polkadot/x-randomvalues': 13.1.1(@polkadot/util@13.1.1)(@polkadot/wasm-util@7.3.2(@polkadot/util@12.6.2)) tslib: 2.7.0 '@polkadot/wasm-crypto-asmjs@7.3.2(@polkadot/util@12.6.2)': @@ -1476,17 +1502,27 @@ snapshots: '@polkadot/wasm-crypto-asmjs': 7.3.2(@polkadot/util@12.6.2) '@polkadot/wasm-crypto-wasm': 7.3.2(@polkadot/util@12.6.2) '@polkadot/wasm-util': 7.3.2(@polkadot/util@12.6.2) - '@polkadot/x-randomvalues': 13.1.1(@polkadot/util@12.6.2)(@polkadot/wasm-util@7.3.2(@polkadot/util@12.6.2)) + '@polkadot/x-randomvalues': 13.1.1(@polkadot/util@13.1.1)(@polkadot/wasm-util@7.3.2(@polkadot/util@12.6.2)) tslib: 2.7.0 - '@polkadot/wasm-crypto-init@7.3.2(@polkadot/util@13.1.1)(@polkadot/x-randomvalues@13.1.1(@polkadot/util@13.1.1)(@polkadot/wasm-util@7.3.2(@polkadot/util@13.1.1)))': + '@polkadot/wasm-crypto-init@7.3.2(@polkadot/util@13.1.1)(@polkadot/x-randomvalues@12.6.2(@polkadot/util@13.1.1)(@polkadot/wasm-util@7.3.2(@polkadot/util@13.1.1)))': dependencies: '@polkadot/util': 13.1.1 - '@polkadot/wasm-bridge': 7.3.2(@polkadot/util@13.1.1)(@polkadot/x-randomvalues@13.1.1(@polkadot/util@13.1.1)(@polkadot/wasm-util@7.3.2(@polkadot/util@13.1.1))) + '@polkadot/wasm-bridge': 7.3.2(@polkadot/util@13.1.1)(@polkadot/x-randomvalues@12.6.2(@polkadot/util@13.1.1)(@polkadot/wasm-util@7.3.2(@polkadot/util@13.1.1))) '@polkadot/wasm-crypto-asmjs': 7.3.2(@polkadot/util@13.1.1) '@polkadot/wasm-crypto-wasm': 7.3.2(@polkadot/util@13.1.1) '@polkadot/wasm-util': 7.3.2(@polkadot/util@13.1.1) - '@polkadot/x-randomvalues': 13.1.1(@polkadot/util@13.1.1)(@polkadot/wasm-util@7.3.2(@polkadot/util@13.1.1)) + '@polkadot/x-randomvalues': 12.6.2(@polkadot/util@13.1.1)(@polkadot/wasm-util@7.3.2(@polkadot/util@13.1.1)) + tslib: 2.7.0 + + '@polkadot/wasm-crypto-init@7.3.2(@polkadot/util@13.1.1)(@polkadot/x-randomvalues@13.1.1(@polkadot/util@13.1.1)(@polkadot/wasm-util@7.3.2(@polkadot/util@12.6.2)))': + dependencies: + '@polkadot/util': 13.1.1 + '@polkadot/wasm-bridge': 7.3.2(@polkadot/util@13.1.1)(@polkadot/x-randomvalues@13.1.1(@polkadot/util@13.1.1)(@polkadot/wasm-util@7.3.2(@polkadot/util@12.6.2))) + '@polkadot/wasm-crypto-asmjs': 7.3.2(@polkadot/util@13.1.1) + '@polkadot/wasm-crypto-wasm': 7.3.2(@polkadot/util@13.1.1) + '@polkadot/wasm-util': 7.3.2(@polkadot/util@13.1.1) + '@polkadot/x-randomvalues': 13.1.1(@polkadot/util@13.1.1)(@polkadot/wasm-util@7.3.2(@polkadot/util@12.6.2)) tslib: 2.7.0 '@polkadot/wasm-crypto-wasm@7.3.2(@polkadot/util@12.6.2)': @@ -1520,18 +1556,29 @@ snapshots: '@polkadot/wasm-crypto-init': 7.3.2(@polkadot/util@12.6.2)(@polkadot/x-randomvalues@13.1.1(@polkadot/util@12.6.2)(@polkadot/wasm-util@7.3.2(@polkadot/util@12.6.2))) '@polkadot/wasm-crypto-wasm': 7.3.2(@polkadot/util@12.6.2) '@polkadot/wasm-util': 7.3.2(@polkadot/util@12.6.2) - '@polkadot/x-randomvalues': 13.1.1(@polkadot/util@12.6.2)(@polkadot/wasm-util@7.3.2(@polkadot/util@12.6.2)) + '@polkadot/x-randomvalues': 13.1.1(@polkadot/util@13.1.1)(@polkadot/wasm-util@7.3.2(@polkadot/util@12.6.2)) + tslib: 2.7.0 + + '@polkadot/wasm-crypto@7.3.2(@polkadot/util@13.1.1)(@polkadot/x-randomvalues@12.6.2(@polkadot/util@13.1.1)(@polkadot/wasm-util@7.3.2(@polkadot/util@13.1.1)))': + dependencies: + '@polkadot/util': 13.1.1 + '@polkadot/wasm-bridge': 7.3.2(@polkadot/util@13.1.1)(@polkadot/x-randomvalues@12.6.2(@polkadot/util@13.1.1)(@polkadot/wasm-util@7.3.2(@polkadot/util@13.1.1))) + '@polkadot/wasm-crypto-asmjs': 7.3.2(@polkadot/util@13.1.1) + '@polkadot/wasm-crypto-init': 7.3.2(@polkadot/util@13.1.1)(@polkadot/x-randomvalues@12.6.2(@polkadot/util@13.1.1)(@polkadot/wasm-util@7.3.2(@polkadot/util@13.1.1))) + '@polkadot/wasm-crypto-wasm': 7.3.2(@polkadot/util@13.1.1) + '@polkadot/wasm-util': 7.3.2(@polkadot/util@13.1.1) + '@polkadot/x-randomvalues': 12.6.2(@polkadot/util@13.1.1)(@polkadot/wasm-util@7.3.2(@polkadot/util@13.1.1)) tslib: 2.7.0 - '@polkadot/wasm-crypto@7.3.2(@polkadot/util@13.1.1)(@polkadot/x-randomvalues@13.1.1(@polkadot/util@13.1.1)(@polkadot/wasm-util@7.3.2(@polkadot/util@13.1.1)))': + '@polkadot/wasm-crypto@7.3.2(@polkadot/util@13.1.1)(@polkadot/x-randomvalues@13.1.1(@polkadot/util@13.1.1)(@polkadot/wasm-util@7.3.2(@polkadot/util@12.6.2)))': dependencies: '@polkadot/util': 13.1.1 - '@polkadot/wasm-bridge': 7.3.2(@polkadot/util@13.1.1)(@polkadot/x-randomvalues@13.1.1(@polkadot/util@13.1.1)(@polkadot/wasm-util@7.3.2(@polkadot/util@13.1.1))) + '@polkadot/wasm-bridge': 7.3.2(@polkadot/util@13.1.1)(@polkadot/x-randomvalues@13.1.1(@polkadot/util@13.1.1)(@polkadot/wasm-util@7.3.2(@polkadot/util@12.6.2))) '@polkadot/wasm-crypto-asmjs': 7.3.2(@polkadot/util@13.1.1) - '@polkadot/wasm-crypto-init': 7.3.2(@polkadot/util@13.1.1)(@polkadot/x-randomvalues@13.1.1(@polkadot/util@13.1.1)(@polkadot/wasm-util@7.3.2(@polkadot/util@13.1.1))) + '@polkadot/wasm-crypto-init': 7.3.2(@polkadot/util@13.1.1)(@polkadot/x-randomvalues@13.1.1(@polkadot/util@13.1.1)(@polkadot/wasm-util@7.3.2(@polkadot/util@12.6.2))) '@polkadot/wasm-crypto-wasm': 7.3.2(@polkadot/util@13.1.1) '@polkadot/wasm-util': 7.3.2(@polkadot/util@13.1.1) - '@polkadot/x-randomvalues': 13.1.1(@polkadot/util@13.1.1)(@polkadot/wasm-util@7.3.2(@polkadot/util@13.1.1)) + '@polkadot/x-randomvalues': 13.1.1(@polkadot/util@13.1.1)(@polkadot/wasm-util@7.3.2(@polkadot/util@12.6.2)) tslib: 2.7.0 '@polkadot/wasm-util@7.3.2(@polkadot/util@12.6.2)': @@ -1581,14 +1628,14 @@ snapshots: '@polkadot/x-global': 12.6.2 tslib: 2.7.0 - '@polkadot/x-randomvalues@13.1.1(@polkadot/util@12.6.2)(@polkadot/wasm-util@7.3.2(@polkadot/util@12.6.2))': + '@polkadot/x-randomvalues@12.6.2(@polkadot/util@13.1.1)(@polkadot/wasm-util@7.3.2(@polkadot/util@13.1.1))': dependencies: - '@polkadot/util': 12.6.2 - '@polkadot/wasm-util': 7.3.2(@polkadot/util@12.6.2) - '@polkadot/x-global': 13.1.1 + '@polkadot/util': 13.1.1 + '@polkadot/wasm-util': 7.3.2(@polkadot/util@13.1.1) + '@polkadot/x-global': 12.6.2 tslib: 2.7.0 - '@polkadot/x-randomvalues@13.1.1(@polkadot/util@13.1.1)(@polkadot/wasm-util@7.3.2(@polkadot/util@13.1.1))': + '@polkadot/x-randomvalues@13.1.1(@polkadot/util@13.1.1)(@polkadot/wasm-util@7.3.2(@polkadot/util@12.6.2))': dependencies: '@polkadot/util': 13.1.1 '@polkadot/wasm-util': 7.3.2(@polkadot/util@13.1.1) @@ -1699,11 +1746,11 @@ snapshots: dependencies: undici-types: 6.19.8 - '@unique-nft/accounts@0.3.7(@polkadot/api@14.0.1)(@polkadot/keyring@13.1.1(@polkadot/util-crypto@12.6.2(@polkadot/util@12.6.2))(@polkadot/util@12.6.2))(@polkadot/ui-settings@3.10.1(@polkadot/networks@13.1.1)(@polkadot/util@12.6.2))(@polkadot/util-crypto@12.6.2(@polkadot/util@12.6.2))': + '@unique-nft/accounts@0.3.7(@polkadot/api@14.0.1)(@polkadot/keyring@13.1.1(@polkadot/util-crypto@12.6.2(@polkadot/util@12.6.2))(@polkadot/util@13.1.1))(@polkadot/ui-settings@3.10.1(@polkadot/networks@13.1.1)(@polkadot/util@13.1.1))(@polkadot/util-crypto@12.6.2(@polkadot/util@12.6.2))': dependencies: '@polkadot/extension-dapp': 0.47.6(@polkadot/api@14.0.1)(@polkadot/util-crypto@12.6.2(@polkadot/util@12.6.2))(@polkadot/util@12.6.2) '@polkadot/types': 10.13.1 - '@polkadot/ui-keyring': 3.10.1(@polkadot/keyring@13.1.1(@polkadot/util-crypto@12.6.2(@polkadot/util@12.6.2))(@polkadot/util@12.6.2))(@polkadot/ui-settings@3.10.1(@polkadot/networks@13.1.1)(@polkadot/util@12.6.2))(@polkadot/util@12.6.2) + '@polkadot/ui-keyring': 3.10.1(@polkadot/keyring@13.1.1(@polkadot/util-crypto@12.6.2(@polkadot/util@12.6.2))(@polkadot/util@13.1.1))(@polkadot/ui-settings@3.10.1(@polkadot/networks@13.1.1)(@polkadot/util@13.1.1))(@polkadot/util@12.6.2) '@polkadot/util': 12.6.2 '@unique-nft/utils': 0.3.20 ethers: 5.7.2 diff --git a/substrate/Transfer.js b/substrate/Transfer.js new file mode 100644 index 0000000..18973d2 --- /dev/null +++ b/substrate/Transfer.js @@ -0,0 +1,158 @@ +import { readFileSync } from "fs"; +import { initSubstrate } from "./api.js"; +import { decodeAddress, encodeAddress } from '@polkadot/keyring'; +import { hexToU8a, isHex } from '@polkadot/util'; + +const collectionId = process.env.COLLECTION_ID; + +function printHeader(text) { + const border = '='.repeat(text.length + 4); + console.log(`\n${border}`); + console.log(`| ${text} |`); + console.log(`${border}\n`); +} + +function printProgress(current, total) { + const percentage = Math.floor((current / total) * 100); + const filledWidth = Math.floor((percentage / 100) * 20); + const emptyWidth = 20 - filledWidth; + const progressBar = 'ā–ˆ'.repeat(filledWidth) + 'ā–‘'.repeat(emptyWidth); + console.log(`[${progressBar}] ${percentage}% (${current}/${total})`); +} + +async function readCSV(filePath) { + try { + return readFileSync(filePath, "utf8"); + } catch (error) { + throw new Error(`Failed to read CSV file ${filePath}: ${error.message}`); + } +} + +function validateAddresses(addresses) { + const invalidAddresses = addresses.filter(address => { + try { + encodeAddress( + isHex(address) + ? hexToU8a(address) + : decodeAddress(address) + ); + return false; // Address is valid + } catch (error) { + return true; // Address is invalid + } + }); + + if (invalidAddresses.length > 0) { + throw new Error(`Invalid addresses found: ${invalidAddresses.join(', ')}`); + } +} + +function validateTokenIds(tokenIds) { + const invalidTokenIds = tokenIds.filter(id => isNaN(parseInt(id))); + if (invalidTokenIds.length > 0) { + throw new Error(`Invalid token IDs found: ${invalidTokenIds.join(', ')}`); + } +} + +async function main() { + try { + printHeader("NFT Transfer Process"); + console.log("šŸš€ Initiating transfer process..."); + + if (!collectionId) { + throw new Error("COLLECTION_ID environment variable is not set"); + } + + console.log("šŸ“‚ Reading CSV files..."); + const collectionCsv = await readCSV(`${process.cwd()}/collection_717.csv`); + const addressesCsv = await readCSV(`${process.cwd()}/addresses.csv`); + + console.log("šŸ”— Initializing Substrate connection..."); + const { sdk, address } = await initSubstrate(); + + console.log("šŸ”¢ Processing CSV data..."); + const collectionData = collectionCsv.split("\n").map((line) => line.split(",")); + const addressesData = addressesCsv.split("\n").map((line) => line.split(",").map(item => item.trim())); + + const tokenIds = collectionData.slice(1).map((row) => row[0]); + const toAddresses = addressesData.slice(1).map((row) => row[0]).filter(Boolean); + + validateTokenIds(tokenIds); + validateAddresses(toAddresses); + + console.log(`šŸ“Š Summary:`); + console.log(` Tokens to airdrop: ${tokenIds.length}`); + console.log(` Recipient addresses: ${toAddresses.length}`); + + if (tokenIds.length === 0 || toAddresses.length === 0) { + throw new Error("No tokens or addresses found in CSV files"); + } + + if (tokenIds.length % toAddresses.length !== 0) { + console.warn("āš ļø Warning: The number of tokens cannot be evenly divided among the addresses"); + console.warn(` Number of tokens: ${tokenIds.length}`); + console.warn(` Number of addresses: ${toAddresses.length}`); + console.warn(" Some addresses may receive more tokens than others."); + } + + printHeader("Starting Transfers"); + const transfers = []; + const errors = []; + + for (let i = 0; i < tokenIds.length; i++) { + const tokenId = tokenIds[i]; + const toAddress = toAddresses[i % toAddresses.length]; + + console.log(`\nšŸ”„ Transfer ${i+1}/${tokenIds.length}:`); + console.log(` Token ID: ${tokenId}`); + console.log(` To: ${toAddress}`); + + const args = { address, to: toAddress, collectionId, tokenId }; + + try { + const result = await sdk.token.transfer.submitWaitResult(args); + console.log(`āœ… Successfully transferred token ${tokenId} to ${toAddress}`); + transfers.push(result.parsed); + } catch (error) { + console.error(`āŒ Error transferring token ${tokenId} to ${toAddress}: ${error.message}`); + errors.push({ tokenId, toAddress, error: error.message }); + } + + printProgress(i + 1, tokenIds.length); + } + + printHeader("Transfer Process Complete"); + console.log(`šŸŽ‰ Successfully transferred ${transfers.length} out of ${tokenIds.length} tokens.`); + + if (errors.length > 0) { + console.log(`āš ļø ${errors.length} transfers failed. Check the logs for details.`); + console.log("Failed transfers:"); + errors.forEach(({ tokenId, toAddress, error }) => { + console.log(` Token ${tokenId} to ${toAddress}: ${error}`); + }); + } + + // Save error log to file + if (errors.length > 0) { + const errorLog = errors.map(({ tokenId, toAddress, error }) => + `Token ${tokenId},${toAddress},${error}` + ).join('\n'); + await writeFile('error_log.csv', errorLog); + console.log("Error log saved to error_log.csv"); + } + + } catch (error) { + console.error("āŒ An unexpected error occurred:", error.message); + process.exit(1); + } +} + +console.log(` + _ _ _____ _____ _____ __ +| \\ | | ___|_ _| |_ _| __ __ _ _ __ ___ / _| ___ _ __ +| \\| | |_ | | | || '__/ _\` | '_ \\/ __| |_ / _ \\ '__| +| |\\ | _| | | | || | | (_| | | | \\__ \\ _| __/ | +|_| \\_|_| |_| |_||_| \\__,_|_| |_|___/_| \\___|_| +`); + +main().catch(error => console.error("āŒ An unexpected error occurred:", error)); diff --git a/substrate/build-csv.js b/substrate/build-csv.js index 646b6d0..75cd5b6 100644 --- a/substrate/build-csv.js +++ b/substrate/build-csv.js @@ -1,37 +1,79 @@ +import { Worker, isMainThread, parentPort, workerData } from 'worker_threads'; import { initSubstrate } from "./api.js"; import { writeToFile } from "../files.js"; import { Address } from '@unique-nft/utils'; +import { fileURLToPath } from 'url'; +import { dirname } from 'path'; const collectionId = +process.env.COLLECTION_ID; +const NUM_WORKERS = 4; // Adjust this based on your needs -async function main() { - console.log("build-csv:start"); - const { sdk, address } = await initSubstrate(); +if (isMainThread) { + async function main() { + console.log("build-csv:start"); + const { sdk, address } = await initSubstrate(); - console.log("sdk init"); + console.log("sdk init"); - const { ids } = await sdk.collection.tokens({ - collectionId, - }); - console.log(`Found tokens ${ids.length} in collection ${collectionId}`); + const { ids } = await sdk.collection.tokens({ + collectionId, + }); + console.log(`Found tokens ${ids.length} in collection ${collectionId}`); - const filteredIds = []; + const chunkSize = Math.ceil(ids.length / NUM_WORKERS); + const workers = []; + const filteredIds = []; - let count = 0; + for (let i = 0; i < NUM_WORKERS; i++) { + const start = i * chunkSize; + const end = start + chunkSize; + const __filename = fileURLToPath(import.meta.url); + const __dirname = dirname(__filename); + const worker = new Worker(__filename, { + workerData: { ids: ids.slice(start, end), collectionId, address } + }); - for (const tokenId of ids) { - const token = await sdk.token.owner({ collectionId, tokenId }); - if (Address.normalize.substrateAddress(token.owner) === Address.normalize.substrateAddress(address)) { - filteredIds.push(tokenId); + worker.on('message', (message) => { + filteredIds.push(...message); + }); + + worker.on('error', (error) => { + console.error(`Worker error: ${error}`); + }); + + worker.on('exit', (code) => { + if (code !== 0) { + console.error(`Worker stopped with exit code ${code}`); + } + if (workers.every(w => w.exitCode !== null)) { + console.log(`My tokens count: ${filteredIds.length}`); + writeToFile(collectionId, filteredIds); + console.log("build-csv:finish"); + } + }); + + workers.push(worker); } - console.log(`check owner ${++count}/${ids.length}, tokenId: ${tokenId}`); } - console.log(`My tokens count: ${filteredIds.length}`); + main(); +} else { + // This code runs in worker threads + async function workerFunction() { + const { ids, collectionId, address } = workerData; + const { sdk } = await initSubstrate(); + const filteredIds = []; - writeToFile(collectionId, filteredIds); + for (const tokenId of ids) { + const token = await sdk.token.owner({ collectionId, tokenId }); + if (Address.normalize.substrateAddress(token.owner) === Address.normalize.substrateAddress(address)) { + filteredIds.push(tokenId); + } + console.log(`check owner ${ids.indexOf(tokenId) + 1}/${ids.length}, tokenId: ${tokenId}`); + } - console.log("build-csv:finish"); -} + parentPort.postMessage(filteredIds); + } -main(); + workerFunction(); +}