diff --git a/package-lock.json b/package-lock.json index 5b766d6..afee537 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,29 +1,19 @@ { - "name": "@cryptoalgebra/alm-sdk", - "version": "1.0.8", + "name": "@cryptoalgebra/hx-finance-alm-sdk", + "version": "1.0.0", "lockfileVersion": 3, "requires": true, "packages": { "": { - "name": "@cryptoalgebra/alm-sdk", - "version": "1.0.8", + "name": "@cryptoalgebra/hx-finance-alm-sdk", + "version": "1.0.0", "license": "MIT", "dependencies": { - "@ethersproject/abi": "^5.7.0", - "@ethersproject/abstract-signer": "^5.6.2", - "@ethersproject/address": "^5.6.0", - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.1", - "@ethersproject/constants": "^5.6.0", - "@ethersproject/contracts": "^5.6.2", - "@ethersproject/providers": "^5.6.5", - "@ethersproject/units": "^5.6.1", - "@ethersproject/wallet": "^5.6.2", "@thanpolas/univ3prices": "^3.0.2", - "@typechain/ethers-v5": "^10.0.0", + "@typechain/ethers-v6": "^0.5.0", "bignumber.js": "^9.0.1", "ethereumjs-util": "^7.1.4", - "ethers": "^5.6.8", + "ethers": "^6.15.0", "global": "^4.4.0", "graphql": "^16.6.0", "graphql-request": "^6.0.0", @@ -36,7 +26,7 @@ "@babel/preset-env": "^7.17.10", "@jest/globals": "^29.5.0", "@rollup/plugin-babel": "^5.3.1", - "@rollup/plugin-commonjs": "^22.0.0", + "@rollup/plugin-commonjs": "^22.0.2", "@rollup/plugin-json": "^4.1.0", "@rollup/plugin-node-resolve": "^13.3.0", "@rollup/plugin-typescript": "^8.3.2", @@ -55,6 +45,7 @@ "prettier": "^2.8.7", "rm-cli": "^1.4.2", "rollup": "^2.72.1", + "rollup-plugin-node-polyfills": "^0.2.1", "rollup-plugin-terser": "^7.0.2", "ts-jest": "^29.1.0", "tslib": "^2.4.0", @@ -64,6 +55,12 @@ "web3-provider-engine": "^16.0.5" } }, + "node_modules/@adraffy/ens-normalize": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/@adraffy/ens-normalize/-/ens-normalize-1.10.1.tgz", + "integrity": "sha512-96Z2IP3mYmF1Xg2cDm8f1gWGf/HUVedQ3FMifV4kG/PQ4yEP51xDtRAEfhVNt5f/uzpNkZHwWQuUcu6D6K+Ekw==", + "license": "MIT" + }, "node_modules/@ampproject/remapping": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", @@ -1930,719 +1927,6 @@ "ethereumjs-util": "^7.1.5" } }, - "node_modules/@ethersproject/abi": { - "version": "5.8.0", - "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.8.0.tgz", - "integrity": "sha512-b9YS/43ObplgyV6SlyQsG53/vkSal0MNA1fskSC4mbnCMi8R+NkcH8K9FPYNESf6jUefBUniE4SOKms0E/KK1Q==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "dependencies": { - "@ethersproject/address": "^5.8.0", - "@ethersproject/bignumber": "^5.8.0", - "@ethersproject/bytes": "^5.8.0", - "@ethersproject/constants": "^5.8.0", - "@ethersproject/hash": "^5.8.0", - "@ethersproject/keccak256": "^5.8.0", - "@ethersproject/logger": "^5.8.0", - "@ethersproject/properties": "^5.8.0", - "@ethersproject/strings": "^5.8.0" - } - }, - "node_modules/@ethersproject/abstract-provider": { - "version": "5.8.0", - "resolved": "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.8.0.tgz", - "integrity": "sha512-wC9SFcmh4UK0oKuLJQItoQdzS/qZ51EJegK6EmAWlh+OptpQ/npECOR3QqECd8iGHC0RJb4WKbVdSfif4ammrg==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "dependencies": { - "@ethersproject/bignumber": "^5.8.0", - "@ethersproject/bytes": "^5.8.0", - "@ethersproject/logger": "^5.8.0", - "@ethersproject/networks": "^5.8.0", - "@ethersproject/properties": "^5.8.0", - "@ethersproject/transactions": "^5.8.0", - "@ethersproject/web": "^5.8.0" - } - }, - "node_modules/@ethersproject/abstract-signer": { - "version": "5.8.0", - "resolved": "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.8.0.tgz", - "integrity": "sha512-N0XhZTswXcmIZQdYtUnd79VJzvEwXQw6PK0dTl9VoYrEBxxCPXqS0Eod7q5TNKRxe1/5WUMuR0u0nqTF/avdCA==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "dependencies": { - "@ethersproject/abstract-provider": "^5.8.0", - "@ethersproject/bignumber": "^5.8.0", - "@ethersproject/bytes": "^5.8.0", - "@ethersproject/logger": "^5.8.0", - "@ethersproject/properties": "^5.8.0" - } - }, - "node_modules/@ethersproject/address": { - "version": "5.8.0", - "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.8.0.tgz", - "integrity": "sha512-GhH/abcC46LJwshoN+uBNoKVFPxUuZm6dA257z0vZkKmU1+t8xTn8oK7B9qrj8W2rFRMch4gbJl6PmVxjxBEBA==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "dependencies": { - "@ethersproject/bignumber": "^5.8.0", - "@ethersproject/bytes": "^5.8.0", - "@ethersproject/keccak256": "^5.8.0", - "@ethersproject/logger": "^5.8.0", - "@ethersproject/rlp": "^5.8.0" - } - }, - "node_modules/@ethersproject/base64": { - "version": "5.8.0", - "resolved": "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.8.0.tgz", - "integrity": "sha512-lN0oIwfkYj9LbPx4xEkie6rAMJtySbpOAFXSDVQaBnAzYfB4X2Qr+FXJGxMoc3Bxp2Sm8OwvzMrywxyw0gLjIQ==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "dependencies": { - "@ethersproject/bytes": "^5.8.0" - } - }, - "node_modules/@ethersproject/basex": { - "version": "5.8.0", - "resolved": "https://registry.npmjs.org/@ethersproject/basex/-/basex-5.8.0.tgz", - "integrity": "sha512-PIgTszMlDRmNwW9nhS6iqtVfdTAKosA7llYXNmGPw4YAI1PUyMv28988wAb41/gHF/WqGdoLv0erHaRcHRKW2Q==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "dependencies": { - "@ethersproject/bytes": "^5.8.0", - "@ethersproject/properties": "^5.8.0" - } - }, - "node_modules/@ethersproject/bignumber": { - "version": "5.8.0", - "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.8.0.tgz", - "integrity": "sha512-ZyaT24bHaSeJon2tGPKIiHszWjD/54Sz8t57Toch475lCLljC6MgPmxk7Gtzz+ddNN5LuHea9qhAe0x3D+uYPA==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "dependencies": { - "@ethersproject/bytes": "^5.8.0", - "@ethersproject/logger": "^5.8.0", - "bn.js": "^5.2.1" - } - }, - "node_modules/@ethersproject/bignumber/node_modules/bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", - "license": "MIT" - }, - "node_modules/@ethersproject/bytes": { - "version": "5.8.0", - "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.8.0.tgz", - "integrity": "sha512-vTkeohgJVCPVHu5c25XWaWQOZ4v+DkGoC42/TS2ond+PARCxTJvgTFUNDZovyQ/uAQ4EcpqqowKydcdmRKjg7A==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "dependencies": { - "@ethersproject/logger": "^5.8.0" - } - }, - "node_modules/@ethersproject/constants": { - "version": "5.8.0", - "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.8.0.tgz", - "integrity": "sha512-wigX4lrf5Vu+axVTIvNsuL6YrV4O5AXl5ubcURKMEME5TnWBouUh0CDTWxZ2GpnRn1kcCgE7l8O5+VbV9QTTcg==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "dependencies": { - "@ethersproject/bignumber": "^5.8.0" - } - }, - "node_modules/@ethersproject/contracts": { - "version": "5.8.0", - "resolved": "https://registry.npmjs.org/@ethersproject/contracts/-/contracts-5.8.0.tgz", - "integrity": "sha512-0eFjGz9GtuAi6MZwhb4uvUM216F38xiuR0yYCjKJpNfSEy4HUM8hvqqBj9Jmm0IUz8l0xKEhWwLIhPgxNY0yvQ==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "dependencies": { - "@ethersproject/abi": "^5.8.0", - "@ethersproject/abstract-provider": "^5.8.0", - "@ethersproject/abstract-signer": "^5.8.0", - "@ethersproject/address": "^5.8.0", - "@ethersproject/bignumber": "^5.8.0", - "@ethersproject/bytes": "^5.8.0", - "@ethersproject/constants": "^5.8.0", - "@ethersproject/logger": "^5.8.0", - "@ethersproject/properties": "^5.8.0", - "@ethersproject/transactions": "^5.8.0" - } - }, - "node_modules/@ethersproject/hash": { - "version": "5.8.0", - "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.8.0.tgz", - "integrity": "sha512-ac/lBcTbEWW/VGJij0CNSw/wPcw9bSRgCB0AIBz8CvED/jfvDoV9hsIIiWfvWmFEi8RcXtlNwp2jv6ozWOsooA==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "dependencies": { - "@ethersproject/abstract-signer": "^5.8.0", - "@ethersproject/address": "^5.8.0", - "@ethersproject/base64": "^5.8.0", - "@ethersproject/bignumber": "^5.8.0", - "@ethersproject/bytes": "^5.8.0", - "@ethersproject/keccak256": "^5.8.0", - "@ethersproject/logger": "^5.8.0", - "@ethersproject/properties": "^5.8.0", - "@ethersproject/strings": "^5.8.0" - } - }, - "node_modules/@ethersproject/hdnode": { - "version": "5.8.0", - "resolved": "https://registry.npmjs.org/@ethersproject/hdnode/-/hdnode-5.8.0.tgz", - "integrity": "sha512-4bK1VF6E83/3/Im0ERnnUeWOY3P1BZml4ZD3wcH8Ys0/d1h1xaFt6Zc+Dh9zXf9TapGro0T4wvO71UTCp3/uoA==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "dependencies": { - "@ethersproject/abstract-signer": "^5.8.0", - "@ethersproject/basex": "^5.8.0", - "@ethersproject/bignumber": "^5.8.0", - "@ethersproject/bytes": "^5.8.0", - "@ethersproject/logger": "^5.8.0", - "@ethersproject/pbkdf2": "^5.8.0", - "@ethersproject/properties": "^5.8.0", - "@ethersproject/sha2": "^5.8.0", - "@ethersproject/signing-key": "^5.8.0", - "@ethersproject/strings": "^5.8.0", - "@ethersproject/transactions": "^5.8.0", - "@ethersproject/wordlists": "^5.8.0" - } - }, - "node_modules/@ethersproject/json-wallets": { - "version": "5.8.0", - "resolved": "https://registry.npmjs.org/@ethersproject/json-wallets/-/json-wallets-5.8.0.tgz", - "integrity": "sha512-HxblNck8FVUtNxS3VTEYJAcwiKYsBIF77W15HufqlBF9gGfhmYOJtYZp8fSDZtn9y5EaXTE87zDwzxRoTFk11w==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "dependencies": { - "@ethersproject/abstract-signer": "^5.8.0", - "@ethersproject/address": "^5.8.0", - "@ethersproject/bytes": "^5.8.0", - "@ethersproject/hdnode": "^5.8.0", - "@ethersproject/keccak256": "^5.8.0", - "@ethersproject/logger": "^5.8.0", - "@ethersproject/pbkdf2": "^5.8.0", - "@ethersproject/properties": "^5.8.0", - "@ethersproject/random": "^5.8.0", - "@ethersproject/strings": "^5.8.0", - "@ethersproject/transactions": "^5.8.0", - "aes-js": "3.0.0", - "scrypt-js": "3.0.1" - } - }, - "node_modules/@ethersproject/keccak256": { - "version": "5.8.0", - "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.8.0.tgz", - "integrity": "sha512-A1pkKLZSz8pDaQ1ftutZoaN46I6+jvuqugx5KYNeQOPqq+JZ0Txm7dlWesCHB5cndJSu5vP2VKptKf7cksERng==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "dependencies": { - "@ethersproject/bytes": "^5.8.0", - "js-sha3": "0.8.0" - } - }, - "node_modules/@ethersproject/logger": { - "version": "5.8.0", - "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.8.0.tgz", - "integrity": "sha512-Qe6knGmY+zPPWTC+wQrpitodgBfH7XoceCGL5bJVejmH+yCS3R8jJm8iiWuvWbG76RUmyEG53oqv6GMVWqunjA==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT" - }, - "node_modules/@ethersproject/networks": { - "version": "5.8.0", - "resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.8.0.tgz", - "integrity": "sha512-egPJh3aPVAzbHwq8DD7Po53J4OUSsA1MjQp8Vf/OZPav5rlmWUaFLiq8cvQiGK0Z5K6LYzm29+VA/p4RL1FzNg==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "dependencies": { - "@ethersproject/logger": "^5.8.0" - } - }, - "node_modules/@ethersproject/pbkdf2": { - "version": "5.8.0", - "resolved": "https://registry.npmjs.org/@ethersproject/pbkdf2/-/pbkdf2-5.8.0.tgz", - "integrity": "sha512-wuHiv97BrzCmfEaPbUFpMjlVg/IDkZThp9Ri88BpjRleg4iePJaj2SW8AIyE8cXn5V1tuAaMj6lzvsGJkGWskg==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "dependencies": { - "@ethersproject/bytes": "^5.8.0", - "@ethersproject/sha2": "^5.8.0" - } - }, - "node_modules/@ethersproject/properties": { - "version": "5.8.0", - "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.8.0.tgz", - "integrity": "sha512-PYuiEoQ+FMaZZNGrStmN7+lWjlsoufGIHdww7454FIaGdbe/p5rnaCXTr5MtBYl3NkeoVhHZuyzChPeGeKIpQw==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "dependencies": { - "@ethersproject/logger": "^5.8.0" - } - }, - "node_modules/@ethersproject/providers": { - "version": "5.8.0", - "resolved": "https://registry.npmjs.org/@ethersproject/providers/-/providers-5.8.0.tgz", - "integrity": "sha512-3Il3oTzEx3o6kzcg9ZzbE+oCZYyY+3Zh83sKkn4s1DZfTUjIegHnN2Cm0kbn9YFy45FDVcuCLLONhU7ny0SsCw==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "dependencies": { - "@ethersproject/abstract-provider": "^5.8.0", - "@ethersproject/abstract-signer": "^5.8.0", - "@ethersproject/address": "^5.8.0", - "@ethersproject/base64": "^5.8.0", - "@ethersproject/basex": "^5.8.0", - "@ethersproject/bignumber": "^5.8.0", - "@ethersproject/bytes": "^5.8.0", - "@ethersproject/constants": "^5.8.0", - "@ethersproject/hash": "^5.8.0", - "@ethersproject/logger": "^5.8.0", - "@ethersproject/networks": "^5.8.0", - "@ethersproject/properties": "^5.8.0", - "@ethersproject/random": "^5.8.0", - "@ethersproject/rlp": "^5.8.0", - "@ethersproject/sha2": "^5.8.0", - "@ethersproject/strings": "^5.8.0", - "@ethersproject/transactions": "^5.8.0", - "@ethersproject/web": "^5.8.0", - "bech32": "1.1.4", - "ws": "8.18.0" - } - }, - "node_modules/@ethersproject/random": { - "version": "5.8.0", - "resolved": "https://registry.npmjs.org/@ethersproject/random/-/random-5.8.0.tgz", - "integrity": "sha512-E4I5TDl7SVqyg4/kkA/qTfuLWAQGXmSOgYyO01So8hLfwgKvYK5snIlzxJMk72IFdG/7oh8yuSqY2KX7MMwg+A==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "dependencies": { - "@ethersproject/bytes": "^5.8.0", - "@ethersproject/logger": "^5.8.0" - } - }, - "node_modules/@ethersproject/rlp": { - "version": "5.8.0", - "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.8.0.tgz", - "integrity": "sha512-LqZgAznqDbiEunaUvykH2JAoXTT9NV0Atqk8rQN9nx9SEgThA/WMx5DnW8a9FOufo//6FZOCHZ+XiClzgbqV9Q==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "dependencies": { - "@ethersproject/bytes": "^5.8.0", - "@ethersproject/logger": "^5.8.0" - } - }, - "node_modules/@ethersproject/sha2": { - "version": "5.8.0", - "resolved": "https://registry.npmjs.org/@ethersproject/sha2/-/sha2-5.8.0.tgz", - "integrity": "sha512-dDOUrXr9wF/YFltgTBYS0tKslPEKr6AekjqDW2dbn1L1xmjGR+9GiKu4ajxovnrDbwxAKdHjW8jNcwfz8PAz4A==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "dependencies": { - "@ethersproject/bytes": "^5.8.0", - "@ethersproject/logger": "^5.8.0", - "hash.js": "1.1.7" - } - }, - "node_modules/@ethersproject/signing-key": { - "version": "5.8.0", - "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.8.0.tgz", - "integrity": "sha512-LrPW2ZxoigFi6U6aVkFN/fa9Yx/+4AtIUe4/HACTvKJdhm0eeb107EVCIQcrLZkxaSIgc/eCrX8Q1GtbH+9n3w==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "dependencies": { - "@ethersproject/bytes": "^5.8.0", - "@ethersproject/logger": "^5.8.0", - "@ethersproject/properties": "^5.8.0", - "bn.js": "^5.2.1", - "elliptic": "6.6.1", - "hash.js": "1.1.7" - } - }, - "node_modules/@ethersproject/signing-key/node_modules/bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", - "license": "MIT" - }, - "node_modules/@ethersproject/solidity": { - "version": "5.8.0", - "resolved": "https://registry.npmjs.org/@ethersproject/solidity/-/solidity-5.8.0.tgz", - "integrity": "sha512-4CxFeCgmIWamOHwYN9d+QWGxye9qQLilpgTU0XhYs1OahkclF+ewO+3V1U0mvpiuQxm5EHHmv8f7ClVII8EHsA==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "dependencies": { - "@ethersproject/bignumber": "^5.8.0", - "@ethersproject/bytes": "^5.8.0", - "@ethersproject/keccak256": "^5.8.0", - "@ethersproject/logger": "^5.8.0", - "@ethersproject/sha2": "^5.8.0", - "@ethersproject/strings": "^5.8.0" - } - }, - "node_modules/@ethersproject/strings": { - "version": "5.8.0", - "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.8.0.tgz", - "integrity": "sha512-qWEAk0MAvl0LszjdfnZ2uC8xbR2wdv4cDabyHiBh3Cldq/T8dPH3V4BbBsAYJUeonwD+8afVXld274Ls+Y1xXg==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "dependencies": { - "@ethersproject/bytes": "^5.8.0", - "@ethersproject/constants": "^5.8.0", - "@ethersproject/logger": "^5.8.0" - } - }, - "node_modules/@ethersproject/transactions": { - "version": "5.8.0", - "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.8.0.tgz", - "integrity": "sha512-UglxSDjByHG0TuU17bDfCemZ3AnKO2vYrL5/2n2oXvKzvb7Cz+W9gOWXKARjp2URVwcWlQlPOEQyAviKwT4AHg==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "dependencies": { - "@ethersproject/address": "^5.8.0", - "@ethersproject/bignumber": "^5.8.0", - "@ethersproject/bytes": "^5.8.0", - "@ethersproject/constants": "^5.8.0", - "@ethersproject/keccak256": "^5.8.0", - "@ethersproject/logger": "^5.8.0", - "@ethersproject/properties": "^5.8.0", - "@ethersproject/rlp": "^5.8.0", - "@ethersproject/signing-key": "^5.8.0" - } - }, - "node_modules/@ethersproject/units": { - "version": "5.8.0", - "resolved": "https://registry.npmjs.org/@ethersproject/units/-/units-5.8.0.tgz", - "integrity": "sha512-lxq0CAnc5kMGIiWW4Mr041VT8IhNM+Pn5T3haO74XZWFulk7wH1Gv64HqE96hT4a7iiNMdOCFEBgaxWuk8ETKQ==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "dependencies": { - "@ethersproject/bignumber": "^5.8.0", - "@ethersproject/constants": "^5.8.0", - "@ethersproject/logger": "^5.8.0" - } - }, - "node_modules/@ethersproject/wallet": { - "version": "5.8.0", - "resolved": "https://registry.npmjs.org/@ethersproject/wallet/-/wallet-5.8.0.tgz", - "integrity": "sha512-G+jnzmgg6UxurVKRKvw27h0kvG75YKXZKdlLYmAHeF32TGUzHkOFd7Zn6QHOTYRFWnfjtSSFjBowKo7vfrXzPA==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "dependencies": { - "@ethersproject/abstract-provider": "^5.8.0", - "@ethersproject/abstract-signer": "^5.8.0", - "@ethersproject/address": "^5.8.0", - "@ethersproject/bignumber": "^5.8.0", - "@ethersproject/bytes": "^5.8.0", - "@ethersproject/hash": "^5.8.0", - "@ethersproject/hdnode": "^5.8.0", - "@ethersproject/json-wallets": "^5.8.0", - "@ethersproject/keccak256": "^5.8.0", - "@ethersproject/logger": "^5.8.0", - "@ethersproject/properties": "^5.8.0", - "@ethersproject/random": "^5.8.0", - "@ethersproject/signing-key": "^5.8.0", - "@ethersproject/transactions": "^5.8.0", - "@ethersproject/wordlists": "^5.8.0" - } - }, - "node_modules/@ethersproject/web": { - "version": "5.8.0", - "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.8.0.tgz", - "integrity": "sha512-j7+Ksi/9KfGviws6Qtf9Q7KCqRhpwrYKQPs+JBA/rKVFF/yaWLHJEH3zfVP2plVu+eys0d2DlFmhoQJayFewcw==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "dependencies": { - "@ethersproject/base64": "^5.8.0", - "@ethersproject/bytes": "^5.8.0", - "@ethersproject/logger": "^5.8.0", - "@ethersproject/properties": "^5.8.0", - "@ethersproject/strings": "^5.8.0" - } - }, - "node_modules/@ethersproject/wordlists": { - "version": "5.8.0", - "resolved": "https://registry.npmjs.org/@ethersproject/wordlists/-/wordlists-5.8.0.tgz", - "integrity": "sha512-2df9bbXicZws2Sb5S6ET493uJ0Z84Fjr3pC4tu/qlnZERibZCeUVuqdtt+7Tv9xxhUxHoIekIA7avrKUWHrezg==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "dependencies": { - "@ethersproject/bytes": "^5.8.0", - "@ethersproject/hash": "^5.8.0", - "@ethersproject/logger": "^5.8.0", - "@ethersproject/properties": "^5.8.0", - "@ethersproject/strings": "^5.8.0" - } - }, "node_modules/@graphql-typed-document-node/core": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.2.0.tgz", @@ -3171,6 +2455,30 @@ "dev": true, "license": "ISC" }, + "node_modules/@noble/curves": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.2.0.tgz", + "integrity": "sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw==", + "license": "MIT", + "dependencies": { + "@noble/hashes": "1.3.2" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@noble/curves/node_modules/@noble/hashes": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.2.tgz", + "integrity": "sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ==", + "license": "MIT", + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, "node_modules/@noble/hashes": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.0.0.tgz", @@ -3833,21 +3141,19 @@ "async-limiter": "~1.0.0" } }, - "node_modules/@typechain/ethers-v5": { - "version": "10.2.1", - "resolved": "https://registry.npmjs.org/@typechain/ethers-v5/-/ethers-v5-10.2.1.tgz", - "integrity": "sha512-n3tQmCZjRE6IU4h6lqUGiQ1j866n5MTCBJreNEHHVWXa2u9GJTaeYyU1/k+1qLutkyw+sS6VAN+AbeiTqsxd/A==", + "node_modules/@typechain/ethers-v6": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/@typechain/ethers-v6/-/ethers-v6-0.5.1.tgz", + "integrity": "sha512-F+GklO8jBWlsaVV+9oHaPh5NJdd6rAKN4tklGfInX1Q7h0xPgVLP39Jl3eCulPB5qexI71ZFHwbljx4ZXNfouA==", "license": "MIT", "dependencies": { "lodash": "^4.17.15", "ts-essentials": "^7.0.1" }, "peerDependencies": { - "@ethersproject/abi": "^5.0.0", - "@ethersproject/providers": "^5.0.0", - "ethers": "^5.1.3", - "typechain": "^8.1.1", - "typescript": ">=4.3.0" + "ethers": "6.x", + "typechain": "^8.3.2", + "typescript": ">=4.7.0" } }, "node_modules/@types/babel__core": { @@ -4416,9 +3722,9 @@ } }, "node_modules/aes-js": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz", - "integrity": "sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw==", + "version": "4.0.0-beta.5", + "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-4.0.0-beta.5.tgz", + "integrity": "sha512-G965FqalsNyrPqgEGON7nIx1e/OVENSgiEIzyC63haUMuvNnwIgIjMs52hlTCKhkBny7A2ORNlfY9Zu+jmGk1Q==", "license": "MIT" }, "node_modules/ajv": { @@ -4967,12 +4273,6 @@ "tweetnacl": "^0.14.3" } }, - "node_modules/bech32": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz", - "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==", - "license": "MIT" - }, "node_modules/bignumber.js": { "version": "9.1.2", "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.2.tgz", @@ -7212,13 +6512,13 @@ "license": "MIT" }, "node_modules/ethers": { - "version": "5.8.0", - "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.8.0.tgz", - "integrity": "sha512-DUq+7fHrCg1aPDFCHx6UIPb3nmt2XMpM7Y/g2gLhsl3lIBqeAfOJIl1qEvRf2uq3BiKxmh6Fh5pfp2ieyek7Kg==", + "version": "6.15.0", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-6.15.0.tgz", + "integrity": "sha512-Kf/3ZW54L4UT0pZtsY/rf+EkBU7Qi5nnhonjUb8yTXcxH3cdcWrV2cRyk0Xk/4jK6OoHhxxZHriyhje20If2hQ==", "funding": [ { "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + "url": "https://github.com/sponsors/ethers-io/" }, { "type": "individual", @@ -7227,36 +6527,70 @@ ], "license": "MIT", "dependencies": { - "@ethersproject/abi": "5.8.0", - "@ethersproject/abstract-provider": "5.8.0", - "@ethersproject/abstract-signer": "5.8.0", - "@ethersproject/address": "5.8.0", - "@ethersproject/base64": "5.8.0", - "@ethersproject/basex": "5.8.0", - "@ethersproject/bignumber": "5.8.0", - "@ethersproject/bytes": "5.8.0", - "@ethersproject/constants": "5.8.0", - "@ethersproject/contracts": "5.8.0", - "@ethersproject/hash": "5.8.0", - "@ethersproject/hdnode": "5.8.0", - "@ethersproject/json-wallets": "5.8.0", - "@ethersproject/keccak256": "5.8.0", - "@ethersproject/logger": "5.8.0", - "@ethersproject/networks": "5.8.0", - "@ethersproject/pbkdf2": "5.8.0", - "@ethersproject/properties": "5.8.0", - "@ethersproject/providers": "5.8.0", - "@ethersproject/random": "5.8.0", - "@ethersproject/rlp": "5.8.0", - "@ethersproject/sha2": "5.8.0", - "@ethersproject/signing-key": "5.8.0", - "@ethersproject/solidity": "5.8.0", - "@ethersproject/strings": "5.8.0", - "@ethersproject/transactions": "5.8.0", - "@ethersproject/units": "5.8.0", - "@ethersproject/wallet": "5.8.0", - "@ethersproject/web": "5.8.0", - "@ethersproject/wordlists": "5.8.0" + "@adraffy/ens-normalize": "1.10.1", + "@noble/curves": "1.2.0", + "@noble/hashes": "1.3.2", + "@types/node": "22.7.5", + "aes-js": "4.0.0-beta.5", + "tslib": "2.7.0", + "ws": "8.17.1" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/ethers/node_modules/@noble/hashes": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.2.tgz", + "integrity": "sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ==", + "license": "MIT", + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/ethers/node_modules/@types/node": { + "version": "22.7.5", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.7.5.tgz", + "integrity": "sha512-jML7s2NAzMWc//QSJ1a3prpk78cOPchGvXJsC3C6R6PSMoooztvRVQEz89gmBTBY1SPMaqo5teB4uNHPdetShQ==", + "license": "MIT", + "dependencies": { + "undici-types": "~6.19.2" + } + }, + "node_modules/ethers/node_modules/tslib": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz", + "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==", + "license": "0BSD" + }, + "node_modules/ethers/node_modules/undici-types": { + "version": "6.19.8", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", + "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", + "license": "MIT" + }, + "node_modules/ethers/node_modules/ws": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz", + "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==", + "license": "MIT", + "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 + } } }, "node_modules/ethjs-util": { @@ -11555,6 +10889,36 @@ "fsevents": "~2.3.2" } }, + "node_modules/rollup-plugin-inject": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rollup-plugin-inject/-/rollup-plugin-inject-3.0.2.tgz", + "integrity": "sha512-ptg9PQwzs3orn4jkgXJ74bfs5vYz1NCZlSQMBUA0wKcGp5i5pA1AO3fOUEte8enhGUC+iapTCzEWw2jEFFUO/w==", + "deprecated": "This package has been deprecated and is no longer maintained. Please use @rollup/plugin-inject.", + "dev": true, + "license": "MIT", + "dependencies": { + "estree-walker": "^0.6.1", + "magic-string": "^0.25.3", + "rollup-pluginutils": "^2.8.1" + } + }, + "node_modules/rollup-plugin-inject/node_modules/estree-walker": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz", + "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==", + "dev": true, + "license": "MIT" + }, + "node_modules/rollup-plugin-node-polyfills": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/rollup-plugin-node-polyfills/-/rollup-plugin-node-polyfills-0.2.1.tgz", + "integrity": "sha512-4kCrKPTJ6sK4/gLL/U5QzVT8cxJcofO0OU74tnB19F40cmuAKSzH5/siithxlofFEjwvw1YAhPmbvGNA6jEroA==", + "dev": true, + "license": "MIT", + "dependencies": { + "rollup-plugin-inject": "^3.0.0" + } + }, "node_modules/rollup-plugin-terser": { "version": "7.0.2", "resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz", @@ -11586,6 +10950,23 @@ "node": ">= 10.13.0" } }, + "node_modules/rollup-pluginutils": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz", + "integrity": "sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "estree-walker": "^0.6.1" + } + }, + "node_modules/rollup-pluginutils/node_modules/estree-walker": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz", + "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==", + "dev": true, + "license": "MIT" + }, "node_modules/run-async": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", @@ -13564,27 +12945,6 @@ "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, - "node_modules/ws": { - "version": "8.18.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", - "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", - "license": "MIT", - "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 - } - } - }, "node_modules/xhr": { "version": "2.6.0", "resolved": "https://registry.npmjs.org/xhr/-/xhr-2.6.0.tgz", diff --git a/package.json b/package.json index aeec651..f2ec3b2 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { - "name": "@cryptoalgebra/hx-finance-alm-sdk", - "version": "1.0.0", + "name": "@hx_finance_npm/hx-finance-alm-sdk", + "version": "1.0.1", "description": "Algebra ALM SDK", "main": "dist/src/index.cjs.js", "module": "dist/src/index.esm.js", @@ -17,7 +17,7 @@ "coverage": "jest --runInBand", "dev": "rollup -c -w", "format": "prettier --write \"src/**/*.ts\"", - "generate": "rm-cli -r ./abis && typechain --target=ethers-v5 \"src/abis/**/*.json\" --out-dir \"abis/types\"", + "generate": "rm-cli -r ./abis && typechain --target=ethers-v6 \"src/abis/**/*.json\" --out-dir \"abis/types\"", "lint:ts": "eslint --ext .js,.ts --ignore-path .gitignore . --fix", "lint": "npm run lint:ts", "prebuild": "rm-cli -r ./dist", @@ -34,21 +34,11 @@ "author": "skdamn", "license": "MIT", "dependencies": { - "@ethersproject/abi": "^5.7.0", - "@ethersproject/abstract-signer": "^5.6.2", - "@ethersproject/address": "^5.6.0", - "@ethersproject/bignumber": "^5.6.0", - "@ethersproject/bytes": "^5.6.1", - "@ethersproject/constants": "^5.6.0", - "@ethersproject/contracts": "^5.6.2", - "@ethersproject/providers": "^5.6.5", - "@ethersproject/units": "^5.6.1", - "@ethersproject/wallet": "^5.6.2", "@thanpolas/univ3prices": "^3.0.2", - "@typechain/ethers-v5": "^10.0.0", + "@typechain/ethers-v6": "^0.5.0", "bignumber.js": "^9.0.1", "ethereumjs-util": "^7.1.4", - "ethers": "^5.6.8", + "ethers": "^6.15.0", "global": "^4.4.0", "graphql": "^16.6.0", "graphql-request": "^6.0.0", @@ -61,7 +51,7 @@ "@babel/preset-env": "^7.17.10", "@jest/globals": "^29.5.0", "@rollup/plugin-babel": "^5.3.1", - "@rollup/plugin-commonjs": "^22.0.0", + "@rollup/plugin-commonjs": "^22.0.2", "@rollup/plugin-json": "^4.1.0", "@rollup/plugin-node-resolve": "^13.3.0", "@rollup/plugin-typescript": "^8.3.2", @@ -80,6 +70,7 @@ "prettier": "^2.8.7", "rm-cli": "^1.4.2", "rollup": "^2.72.1", + "rollup-plugin-node-polyfills": "^0.2.1", "rollup-plugin-terser": "^7.0.2", "ts-jest": "^29.1.0", "tslib": "^2.4.0", @@ -88,4 +79,4 @@ "typescript": "^4.7.3", "web3-provider-engine": "^16.0.5" } -} +} \ No newline at end of file diff --git a/rollup.config.js b/rollup.config.js index 6c9ccee..5a8bfd9 100644 --- a/rollup.config.js +++ b/rollup.config.js @@ -2,6 +2,9 @@ import typescript from '@rollup/plugin-typescript'; import json from '@rollup/plugin-json'; +import commonjs from '@rollup/plugin-commonjs'; +import resolve from '@rollup/plugin-node-resolve'; +import nodePolyfills from 'rollup-plugin-node-polyfills'; import pkg from './package.json'; const moduleName = pkg.name.replace(/^@.*\//, ''); @@ -28,9 +31,25 @@ export default { file: pkg.module, format: 'es', banner, + inlineDynamicImports: true, }, ], + external: [ + 'ethers', + 'graphql-request', + 'bignumber.js', + 'node-cache', + '@algebra/sdk', + ], plugins: [ + resolve({ + browser: true, + preferBuiltins: false, + }), + commonjs({ + transformMixedEsModules: true, + }), + nodePolyfills(), typescript({ exclude: ['tests/*.spec.ts'], }), diff --git a/src/contracts/index.ts b/src/contracts/index.ts index 9a9c245..bb37c4f 100644 --- a/src/contracts/index.ts +++ b/src/contracts/index.ts @@ -1,6 +1,5 @@ /* eslint-disable camelcase */ -import { getAddress } from '@ethersproject/address'; -import { JsonRpcProvider } from '@ethersproject/providers'; +import { getAddress, JsonRpcProvider } from 'ethers'; import { SignerOrProvider } from '../types'; import { ERC20__factory as ERC20Factory, diff --git a/src/functions/_totalBalances.ts b/src/functions/_totalBalances.ts index 2404fab..9ae2a6a 100644 --- a/src/functions/_totalBalances.ts +++ b/src/functions/_totalBalances.ts @@ -2,8 +2,7 @@ /* eslint-disable import/prefer-default-export */ /* eslint-disable no-underscore-dangle */ -import { JsonRpcProvider } from '@ethersproject/providers'; -import { BigNumber } from 'ethers'; +import { JsonRpcProvider } from 'ethers'; import { getERC20Contract, getAlgebraVaultContract } from '../contracts'; import { AlgebraVault, SupportedChainId, TotalAmounts, TotalAmountsBN, algebraVaultDecimals } from '../types'; import formatBigInt from '../utils/formatBigInt'; @@ -25,7 +24,7 @@ export async function getTokenDecimals( const tokenContract = getERC20Contract(tokenAddress, jsonProvider); const tokenDecimals = await tokenContract.decimals(); cache.set(key, tokenDecimals, ttl); - return tokenDecimals; + return Number(tokenDecimals); } catch (error) { console.error(error); throw new Error(`Could not get token decimals for ${tokenAddress} on ${chainId}`); @@ -77,7 +76,7 @@ export async function _getTotalSupply( vaultAddress: string, jsonProvider: JsonRpcProvider, raw: true, -): Promise; +): Promise; export async function _getTotalSupply(vaultAddress: string, jsonProvider: JsonRpcProvider, raw?: true) { try { diff --git a/src/functions/calculateApr.ts b/src/functions/calculateApr.ts index 78d22bd..1823ef2 100644 --- a/src/functions/calculateApr.ts +++ b/src/functions/calculateApr.ts @@ -1,5 +1,4 @@ -import { JsonRpcProvider } from '@ethersproject/providers'; -import { BigNumber } from 'ethers'; +import { JsonRpcProvider } from 'ethers'; import { AlgebraVault, PriceChange, TotalAmountsBN, VaultApr, VaultState, algebraVaultDecimals } from '../types'; // eslint-disable-next-line import/no-cycle import { validateVaultData } from './vault'; @@ -30,7 +29,7 @@ export function getLpPriceAt( const { totalAmount0, totalAmount1, sqrtPrice } = e; const formattedTotalAmount0 = formatBigInt(totalAmount0, token0decimals); const formattedTotalAmount1 = formatBigInt(totalAmount1, token1decimals); - const price = getPrice(isVaultInverted, BigNumber.from(sqrtPrice), depositTokenDecimals, scarceTokenDecimals, 15); + const price = getPrice(isVaultInverted, BigInt(sqrtPrice), depositTokenDecimals, scarceTokenDecimals, 15); const tvl = !isVaultInverted ? Number(formattedTotalAmount0) + Number(formattedTotalAmount1) * price : Number(formattedTotalAmount1) + Number(formattedTotalAmount0) * price; diff --git a/src/functions/calculateDtr.ts b/src/functions/calculateDtr.ts index 8f0a573..5df3444 100644 --- a/src/functions/calculateDtr.ts +++ b/src/functions/calculateDtr.ts @@ -1,9 +1,8 @@ /* eslint-disable no-redeclare */ /* eslint-disable import/prefer-default-export */ -import { JsonRpcProvider } from '@ethersproject/providers'; -import { BigNumber } from '@ethersproject/bignumber'; -import { parseUnits } from '@ethersproject/units'; +import { JsonRpcProvider } from 'ethers'; +import { parseUnits } from 'ethers'; import { AverageDepositTokenRatio, DepositTokenRatio, VaultState, VaultTransactionEvent } from '../types'; // eslint-disable-next-line import/no-cycle import { validateVaultData } from './vault'; @@ -18,23 +17,23 @@ import { _getDeposits, _getFeesCollectedEvents, _getRebalances, _getWithdraws } import truncateToDecimals from '../utils/truncateToDecimals'; export function getAmountsInDepositToken( - sqrtPrice: BigNumber, - amount0: BigNumber, - amount1: BigNumber, + sqrtPrice: bigint, + amount0: bigint, + amount1: bigint, token0Decimals: number, token1Decimals: number, depositToken: 0 | 1, -): BigNumber { +): bigint { const isVaultInverted = depositToken === 1; const depositTokenDecimals = isVaultInverted ? token1Decimals : token0Decimals; const scarceTokenDecimals = isVaultInverted ? token0Decimals : token1Decimals; const price0 = !isVaultInverted ? 1 - : getPrice(isVaultInverted, BigNumber.from(sqrtPrice), depositTokenDecimals, scarceTokenDecimals, 15); + : getPrice(isVaultInverted, BigInt(sqrtPrice), depositTokenDecimals, scarceTokenDecimals, 15); const price1 = isVaultInverted ? 1 - : getPrice(isVaultInverted, BigNumber.from(sqrtPrice), depositTokenDecimals, scarceTokenDecimals, 15); + : getPrice(isVaultInverted, BigInt(sqrtPrice), depositTokenDecimals, scarceTokenDecimals, 15); const amountInDepositToken = Number(formatBigInt(amount0, token0Decimals)) * price0 + Number(formatBigInt(amount1, token1Decimals)) * price1; @@ -59,7 +58,7 @@ function getTotalAmountsAtTransactionEvent( ? 1 : getPrice( isVaultInverted, - BigNumber.from(objTransactionEvent.sqrtPrice), + BigInt(objTransactionEvent.sqrtPrice), depositTokenDecimals, scarceTokenDecimals, 15, @@ -68,17 +67,17 @@ function getTotalAmountsAtTransactionEvent( ? 1 : getPrice( isVaultInverted, - BigNumber.from(objTransactionEvent.sqrtPrice), + BigInt(objTransactionEvent.sqrtPrice), depositTokenDecimals, scarceTokenDecimals, 15, ); const amount0 = beforeEvent - ? Number(formatBigInt(BigNumber.from(objTransactionEvent.totalAmount0BeforeEvent), token0Decimals)) * price0 - : Number(formatBigInt(BigNumber.from(objTransactionEvent.totalAmount0), token0Decimals)) * price0; + ? Number(formatBigInt(BigInt(objTransactionEvent.totalAmount0BeforeEvent), token0Decimals)) * price0 + : Number(formatBigInt(BigInt(objTransactionEvent.totalAmount0), token0Decimals)) * price0; const amount1 = beforeEvent - ? Number(formatBigInt(BigNumber.from(objTransactionEvent.totalAmount1BeforeEvent), token1Decimals)) * price1 - : Number(formatBigInt(BigNumber.from(objTransactionEvent.totalAmount1), token1Decimals)) * price1; + ? Number(formatBigInt(BigInt(objTransactionEvent.totalAmount1BeforeEvent), token1Decimals)) * price1 + : Number(formatBigInt(BigInt(objTransactionEvent.totalAmount1), token1Decimals)) * price1; return [amount0, amount1]; } diff --git a/src/functions/calculateFees.ts b/src/functions/calculateFees.ts index d6c552a..b941798 100644 --- a/src/functions/calculateFees.ts +++ b/src/functions/calculateFees.ts @@ -2,8 +2,7 @@ /* eslint-disable import/prefer-default-export */ /* eslint-disable import/no-cycle */ -import { JsonRpcProvider } from '@ethersproject/providers'; -import { BigNumber } from '@ethersproject/bignumber'; +import { JsonRpcProvider } from 'ethers'; import { Fees, FeesInfo, TotalAmounts, TotalAmountsBN, VaultState } from '../types'; import { validateVaultData } from './vault'; import { getTokenDecimals } from './_totalBalances'; @@ -15,12 +14,12 @@ import { getVaultTvl } from './priceFromPool'; import getGraphUrls from '../utils/getGraphUrls'; import { _getFeesCollectedEvents, _getRebalances } from './_vaultEvents'; -function getCollectedTokenAmountBN(ind: 0 | 1, feesDataset: Fees[]): BigNumber { +function getCollectedTokenAmountBN(ind: 0 | 1, feesDataset: Fees[]): bigint { const amounts = ind === 0 - ? feesDataset.map((r) => BigNumber.from(r.feeAmount0)) - : feesDataset.map((r) => BigNumber.from(r.feeAmount1)); - const amountBN = amounts.reduce((total, curr) => total.add(curr), BigNumber.from(0)); + ? feesDataset.map((r) => BigInt(r.feeAmount0)) + : feesDataset.map((r) => BigInt(r.feeAmount1)); + const amountBN = amounts.reduce((total, curr) => total + curr, BigInt(0)); return amountBN; } @@ -34,12 +33,12 @@ export function getTotalAmountsAtFeeCollectionEvent( const scarceTokenDecimals = isVaultInverted ? token0Decimals : token1Decimals; const price0 = !isVaultInverted ? 1 - : getPrice(isVaultInverted, BigNumber.from(objFees.sqrtPrice), depositTokenDecimals, scarceTokenDecimals, 15); + : getPrice(isVaultInverted, BigInt(objFees.sqrtPrice), depositTokenDecimals, scarceTokenDecimals, 15); const price1 = isVaultInverted ? 1 - : getPrice(isVaultInverted, BigNumber.from(objFees.sqrtPrice), depositTokenDecimals, scarceTokenDecimals, 15); - const amount0 = Number(formatBigInt(BigNumber.from(objFees.totalAmount0), token0Decimals)) * price0; - const amount1 = Number(formatBigInt(BigNumber.from(objFees.totalAmount1), token1Decimals)) * price1; + : getPrice(isVaultInverted, BigInt(objFees.sqrtPrice), depositTokenDecimals, scarceTokenDecimals, 15); + const amount0 = Number(formatBigInt(BigInt(objFees.totalAmount0), token0Decimals)) * price0; + const amount1 = Number(formatBigInt(BigInt(objFees.totalAmount1), token1Decimals)) * price1; return [amount0, amount1]; } @@ -53,12 +52,12 @@ export function getFeesAmountInBaseTokens( const scarceTokenDecimals = isVaultInverted ? token0Decimals : token1Decimals; const price0 = !isVaultInverted ? 1 - : getPrice(isVaultInverted, BigNumber.from(objFees.sqrtPrice), depositTokenDecimals, scarceTokenDecimals, 15); + : getPrice(isVaultInverted, BigInt(objFees.sqrtPrice), depositTokenDecimals, scarceTokenDecimals, 15); const price1 = isVaultInverted ? 1 - : getPrice(isVaultInverted, BigNumber.from(objFees.sqrtPrice), depositTokenDecimals, scarceTokenDecimals, 15); - const amount0 = Number(formatBigInt(BigNumber.from(objFees.feeAmount0), token0Decimals)) * price0; - const amount1 = Number(formatBigInt(BigNumber.from(objFees.feeAmount1), token1Decimals)) * price1; + : getPrice(isVaultInverted, BigInt(objFees.sqrtPrice), depositTokenDecimals, scarceTokenDecimals, 15); + const amount0 = Number(formatBigInt(BigInt(objFees.feeAmount0), token0Decimals)) * price0; + const amount1 = Number(formatBigInt(BigInt(objFees.feeAmount1), token1Decimals)) * price1; return amount0 + amount1; } @@ -106,8 +105,8 @@ export async function getFeesCollected( const collectedFees = await _getFeesCollectedEvents(vaultAddress, chainId, numOfDays); if (!collectedFees) throw new Error(`Error getting vault collected fees on ${chainId} for ${vaultAddress}`); - const amount0BN = getCollectedTokenAmountBN(0, rebalances).add(getCollectedTokenAmountBN(0, collectedFees)); - const amount1BN = getCollectedTokenAmountBN(1, rebalances).add(getCollectedTokenAmountBN(1, collectedFees)); + const amount0BN = getCollectedTokenAmountBN(0, rebalances)+(getCollectedTokenAmountBN(0, collectedFees)); + const amount1BN = getCollectedTokenAmountBN(1, rebalances)+(getCollectedTokenAmountBN(1, collectedFees)); const feeAmountsBN = { total0: amount0BN, @@ -162,8 +161,8 @@ export async function getFeesCollectedInfo( const arrOtherFees = collectedFees .slice() .filter((r) => Number(r.createdAtTimestamp) * 1000 > Date.now() - daysToMilliseconds(dayPeriod)); - const amount0BN = getCollectedTokenAmountBN(0, arrRebalances).add(getCollectedTokenAmountBN(0, arrOtherFees)); - const amount1BN = getCollectedTokenAmountBN(1, arrRebalances).add(getCollectedTokenAmountBN(1, arrOtherFees)); + const amount0BN = getCollectedTokenAmountBN(0, arrRebalances)+(getCollectedTokenAmountBN(0, arrOtherFees)); + const amount1BN = getCollectedTokenAmountBN(1, arrRebalances)+(getCollectedTokenAmountBN(1, arrOtherFees)); const totalFeesAmount = getTotalFeesAmountInBaseTokens(arrRebalances, token0Decimals, token1Decimals, isVaultInverted) + getTotalFeesAmountInBaseTokens(arrOtherFees, token0Decimals, token1Decimals, isVaultInverted); diff --git a/src/functions/calculatePnl.ts b/src/functions/calculatePnl.ts index 18e616f..0ccc7a4 100644 --- a/src/functions/calculatePnl.ts +++ b/src/functions/calculatePnl.ts @@ -1,5 +1,4 @@ -import { JsonRpcProvider } from '@ethersproject/providers'; -import { BigNumber } from 'ethers'; +import { JsonRpcProvider } from 'ethers'; import cache from '../utils/cache'; import formatBigInt from '../utils/formatBigInt'; // eslint-disable-next-line import/no-cycle @@ -9,9 +8,9 @@ import { getChainByProvider, validateVaultData } from './vault'; import { getUserDeposits, getUserWithdraws } from './vaultEvents'; interface UserPnl { - totalDepositAmountBN: BigNumber; - totalWithdrawAmountBN: BigNumber; - pnlBN: BigNumber; + totalDepositAmountBN: bigint; + totalWithdrawAmountBN: bigint; + pnlBN: bigint; pnl: string; roi: number; } @@ -45,39 +44,39 @@ export async function calculateUserDepositTokenPNL( const totalDepositAmountBN = deposits.reduce((acc, deposit) => { const amount = getAmountsInDepositToken( - BigNumber.from(deposit.sqrtPrice), - BigNumber.from(deposit.amount0), - BigNumber.from(deposit.amount1), + BigInt(deposit.sqrtPrice), + BigInt(deposit.amount0), + BigInt(deposit.amount1), decimals0, decimals1, vault.allowTokenA ? 0 : 1, ); - return acc.add(amount); - }, BigNumber.from(0)); + return acc+(amount); + }, BigInt(0)); const totalWithdrawAmountBN = withdraws.reduce((acc, withdraw) => { const amount = getAmountsInDepositToken( - BigNumber.from(withdraw.sqrtPrice), - BigNumber.from(withdraw.amount0), - BigNumber.from(withdraw.amount1), + BigInt(withdraw.sqrtPrice), + BigInt(withdraw.amount0), + BigInt(withdraw.amount1), decimals0, decimals1, vault.allowTokenA ? 0 : 1, ); - return acc.add(amount); - }, BigNumber.from(0)); + return acc+(amount); + }, BigInt(0)); const currentSqrtPrice = await getSqrtPriceFromPool(vault, jsonProvider); const currentAmount = getAmountsInDepositToken( currentSqrtPrice, - BigNumber.from(currentAmount0), - BigNumber.from(currentAmount1), + BigInt(currentAmount0), + BigInt(currentAmount1), decimals0, decimals1, vault.allowTokenA ? 0 : 1, ); - const pnlBN = totalWithdrawAmountBN.add(currentAmount).sub(totalDepositAmountBN); + const pnlBN = totalWithdrawAmountBN+(currentAmount)-(totalDepositAmountBN); const pnl = formatBigInt(pnlBN, vault.allowTokenA ? decimals0 : decimals1); const roi = diff --git a/src/functions/deposit.ts b/src/functions/deposit.ts index 9e82c98..cacdac4 100644 --- a/src/functions/deposit.ts +++ b/src/functions/deposit.ts @@ -1,7 +1,4 @@ -import { ContractTransaction, Overrides } from '@ethersproject/contracts'; -import { JsonRpcProvider } from '@ethersproject/providers'; -import { MaxUint256 } from '@ethersproject/constants'; -import { BigNumber } from 'ethers'; +import { ContractTransactionResponse, JsonRpcProvider, MaxUint256, Overrides } from 'ethers'; import { getAlgebraVaultDepositGuardContract, getERC20Contract, getAlgebraVaultContract } from '../contracts'; import parseBigInt from '../utils/parseBigInt'; import { SupportedChainId, AlgebraVault } from '../types'; @@ -18,7 +15,7 @@ export async function isTokenAllowed( vaultAddress: string, jsonProvider: JsonRpcProvider, ): Promise { - const { chainId } = await jsonProvider.getNetwork(); + const network = await jsonProvider.getNetwork(); const chainId = Number(network.chainId); if (!Object.values(SupportedChainId).includes(chainId)) { throw new Error(`Unsupported chainId: ${chainId}`); } @@ -35,7 +32,7 @@ export async function isTokenAllowed( async function _isDepositTokenApproved( accountAddress: string, tokenIdx: 0 | 1, - amount: string | number | BigNumber, + amount: string | number | bigint, vault: AlgebraVault, chainId: SupportedChainId, jsonProvider: JsonRpcProvider, @@ -47,15 +44,15 @@ async function _isDepositTokenApproved( const currentAllowanceBN = await tokenContract.allowance(accountAddress, depositGuardAddress); const tokenDecimals = await tokenContract.decimals(); - const amountBN = amount instanceof BigNumber ? amount : parseBigInt(amount, tokenDecimals); + const amountBN = typeof amount === 'bigint' ? amount : parseBigInt(amount, Number(tokenDecimals)); - return currentAllowanceBN.gt(BigNumber.from(0)) && currentAllowanceBN.gte(amountBN); + return currentAllowanceBN > 0n && currentAllowanceBN >= amountBN; } export async function isDepositTokenApproved( accountAddress: string, tokenIdx: 0 | 1, - amount: string | number | BigNumber, + amount: string | number | bigint, vaultAddress: string, jsonProvider: JsonRpcProvider, ): Promise { @@ -68,12 +65,12 @@ export async function approveDepositToken( tokenIdx: 0 | 1, vaultAddress: string, jsonProvider: JsonRpcProvider, - amount?: string | number | BigNumber, + amount?: string | number | bigint, overrides?: Overrides, -): Promise { +): Promise { const { chainId, vault } = await validateVaultData(vaultAddress, jsonProvider); - const signer = jsonProvider.getSigner(accountAddress); + const signer = await jsonProvider.getSigner(); const token = vault[tokenIdx === 0 ? 'tokenA' : 'tokenB']; @@ -82,14 +79,14 @@ export async function approveDepositToken( // eslint-disable-next-line no-nested-ternary const amountBN = amount - ? amount instanceof BigNumber + ? typeof amount === 'bigint' ? amount - : parseBigInt(amount, +tokenDecimals || 18) + : parseBigInt(amount, Number(tokenDecimals) || 18) : MaxUint256; const depositGuardAddress = addressConfig[chainId as SupportedChainId]?.depositGuardAddress ?? ''; const gasLimit = - overrides?.gasLimit ?? calculateGasMargin(await tokenContract.estimateGas.approve(depositGuardAddress, amountBN)); + overrides?.gasLimit ?? calculateGasMargin(await tokenContract.approve.estimateGas(depositGuardAddress, amountBN)); return tokenContract.approve(depositGuardAddress, amountBN, { gasLimit }); } @@ -99,7 +96,7 @@ export async function _getMaxDepositAmount( tokenIdx: 0 | 1, vaultAddress: string, jsonProvider: JsonRpcProvider, -): Promise { +): Promise { const vaultContract = getAlgebraVaultContract(vaultAddress, jsonProvider); const maxDepositAmount = tokenIdx === 0 ? vaultContract.deposit0Max() : vaultContract.deposit1Max(); @@ -111,7 +108,7 @@ export async function getMaxDepositAmount( tokenIdx: 0 | 1, vaultAddress: string, jsonProvider: JsonRpcProvider, -): Promise { +): Promise { await validateVaultData(vaultAddress, jsonProvider); const maxDepositAmount = _getMaxDepositAmount(tokenIdx, vaultAddress, jsonProvider); @@ -121,15 +118,15 @@ export async function getMaxDepositAmount( export async function deposit( accountAddress: string, - amount0: string | number | BigNumber, - amount1: string | number | BigNumber, + amount0: string | number | bigint, + amount1: string | number | bigint, vaultAddress: string, jsonProvider: JsonRpcProvider, percentSlippage = 1, overrides?: Overrides, -): Promise { +): Promise { const { chainId, vault } = await validateVaultData(vaultAddress, jsonProvider); - const signer = jsonProvider.getSigner(accountAddress); + const signer = await jsonProvider.getSigner(); console.log('finding vault deployer for: ', vaultAddress, chainId); const vaultDeployerAddress = getVaultDeployer(vaultAddress, chainId); @@ -139,18 +136,18 @@ export async function deposit( const isToken1Allowed = vault.allowTokenB; const token0Decimals = await getTokenDecimals(token0, jsonProvider, chainId); const token1Decimals = await getTokenDecimals(token1, jsonProvider, chainId); - const amount0BN = amount0 instanceof BigNumber ? amount0 : parseBigInt(amount0, +token0Decimals); - const amount1BN = amount1 instanceof BigNumber ? amount1 : parseBigInt(amount1, +token1Decimals); - if (!isToken0Allowed && amount0BN.gt(BigNumber.from(0))) { + const amount0BN = typeof amount0 === 'bigint' ? amount0 : parseBigInt(amount0, Number(token0Decimals)); + const amount1BN = typeof amount1 === 'bigint' ? amount1 : parseBigInt(amount1, Number(token1Decimals)); + if (!isToken0Allowed && amount0BN > 0n) { throw new Error(`Deposit of token0 is not allowed: ${chainId}, ${vaultAddress}`); } - if (!isToken1Allowed && amount1BN.gt(BigNumber.from(0))) { + if (!isToken1Allowed && amount1BN > 0n) { throw new Error(`Deposit of token1 is not allowed: chain ${chainId}, vault ${vaultAddress}`); } let depositAmount = amount0BN; let depositToken = token0; let tokenIndex = 0 as 0 | 1; - if (amount1BN.gt(BigNumber.from(0))) { + if (amount1BN > 0n) { depositAmount = amount1BN; depositToken = token1; tokenIndex = 1; @@ -165,13 +162,13 @@ export async function deposit( const tokenContract = getERC20Contract(depositToken, jsonProvider); const userTokenBalance = await tokenContract.balanceOf(accountAddress); - if (userTokenBalance.lt(depositAmount)) { + if (userTokenBalance < depositAmount) { throw new Error(`Deposit amount exceeds user token amount for token: ${depositToken}, chain ${chainId}`); } const maxDeposit0 = await _getMaxDepositAmount(0, vaultAddress, jsonProvider); const maxDeposit1 = await _getMaxDepositAmount(1, vaultAddress, jsonProvider); - if (amount0BN.gt(maxDeposit0) || amount0BN.gt(maxDeposit1)) { + if (amount0BN > maxDeposit0 || amount0BN > maxDeposit1) { throw new Error(`Deposit amount exceeds max deposit amount: vault ${vaultAddress}, chain ${chainId}`); } @@ -181,12 +178,12 @@ export async function deposit( const maxGasLimit = getGasLimit(); // the first call: get estimated LP amount - let lpAmount = await depositGuardContract.callStatic.forwardDepositToAlgebraVault( + let lpAmount = await depositGuardContract.forwardDepositToAlgebraVault.staticCall( vaultAddress, vaultDeployerAddress, depositToken, depositAmount, - BigNumber.from(0), + 0n, accountAddress, { gasLimit: maxGasLimit, @@ -196,12 +193,14 @@ export async function deposit( // reduce the estimated LP amount by an acceptable slippage %, for example 1% if (percentSlippage < 0.01) throw new Error('Slippage parameter is less than 0.01%.'); if (percentSlippage > 100) throw new Error('Slippage parameter is more than 100%.'); - lpAmount = lpAmount.mul(Math.floor((100 - percentSlippage) * 1000)).div(100000); + // Calculate slippage multiplier as a number first, then convert to BigInt + const slippageMultiplier = Math.floor((100 - percentSlippage) * 1000); + lpAmount = (lpAmount * BigInt(slippageMultiplier)) / 100000n; const gasLimit = overrides?.gasLimit ?? calculateGasMargin( - await depositGuardContract.estimateGas.forwardDepositToAlgebraVault( + await depositGuardContract.forwardDepositToAlgebraVault.estimateGas( vaultAddress, vaultDeployerAddress, depositToken, @@ -230,19 +229,19 @@ export async function deposit( export async function depositNativeToken( accountAddress: string, - amount0: string | number | BigNumber, - amount1: string | number | BigNumber, + amount0: string | number | bigint, + amount1: string | number | bigint, vaultAddress: string, jsonProvider: JsonRpcProvider, percentSlippage = 1, overrides?: Overrides, -): Promise { +): Promise { const { chainId, vault } = await validateVaultData(vaultAddress, jsonProvider); // if (chainId === SupportedChainId.celo) { // throw new Error(`This function is not supported on chain ${chainId}`); // } - const signer = jsonProvider.getSigner(accountAddress); + const signer = await jsonProvider.getSigner(); const vaultDeployerAddress = getVaultDeployer(vaultAddress, chainId); const token0 = vault.tokenA; @@ -253,17 +252,17 @@ export async function depositNativeToken( const token1Contract = getERC20Contract(token1, signer); const token0Decimals = await token0Contract.decimals(); const token1Decimals = await token1Contract.decimals(); - const amount0BN = amount0 instanceof BigNumber ? amount0 : parseBigInt(amount0, +token0Decimals); - const amount1BN = amount1 instanceof BigNumber ? amount1 : parseBigInt(amount1, +token1Decimals); - if (!isToken0Allowed && amount0BN > BigNumber.from(0)) { + const amount0BN = typeof amount0 === 'bigint' ? amount0 : parseBigInt(amount0, Number(token0Decimals)); + const amount1BN = typeof amount1 === 'bigint' ? amount1 : parseBigInt(amount1, Number(token1Decimals)); + if (!isToken0Allowed && amount0BN > 0n) { throw new Error(`Deposit of token0 is not allowed: ${chainId}, ${vaultAddress}`); } - if (!isToken1Allowed && amount1BN > BigNumber.from(0)) { + if (!isToken1Allowed && amount1BN > 0n) { throw new Error(`Deposit of token1 is not allowed: ${chainId}, ${vaultAddress}`); } let depositAmount = amount0BN; let depositToken = token0; - if (amount1BN > BigNumber.from(0)) { + if (amount1BN > 0n) { depositAmount = amount1BN; depositToken = token1; } @@ -280,21 +279,21 @@ export async function depositNativeToken( } const userNativeTokenBalance = await jsonProvider.getBalance(accountAddress); - if (userNativeTokenBalance.lt(depositAmount)) { + if (userNativeTokenBalance < depositAmount) { throw new Error(`Deposit amount exceeds user native token amount on chain ${chainId}`); } const maxGasLimit = getGasLimit(); // if (chainId === SupportedChainId.hedera) { - // depositAmount = depositAmount.mul(BigNumber.from(1e10)); + // depositAmount = depositAmount.mul(BigInt(1e10)); // } // the first call: get estimated LP amount - let lpAmount = await depositGuardContract.callStatic.forwardNativeDepositToAlgebraVault( + let lpAmount = await depositGuardContract.forwardNativeDepositToAlgebraVault.staticCall( vaultAddress, vaultDeployerAddress, - BigNumber.from(0), + 0n, accountAddress, { value: depositAmount, @@ -310,7 +309,7 @@ export async function depositNativeToken( const gasLimit = overrides?.gasLimit ?? calculateGasMargin( - await depositGuardContract.estimateGas.forwardNativeDepositToAlgebraVault( + await depositGuardContract.forwardNativeDepositToAlgebraVault.estimateGas( vaultAddress, vaultDeployerAddress, lpAmount, diff --git a/src/functions/getFeeAprs.ts b/src/functions/getFeeAprs.ts index 13d19f6..78afe1a 100644 --- a/src/functions/getFeeAprs.ts +++ b/src/functions/getFeeAprs.ts @@ -1,5 +1,5 @@ /* eslint-disable import/prefer-default-export */ -import { JsonRpcProvider } from '@ethersproject/providers'; +import { JsonRpcProvider } from 'ethers'; import { FeeAprData } from '../types'; // eslint-disable-next-line import/no-cycle import { validateVaultData } from './vault'; diff --git a/src/functions/priceFromPool.ts b/src/functions/priceFromPool.ts index 6e18acf..bfe9039 100644 --- a/src/functions/priceFromPool.ts +++ b/src/functions/priceFromPool.ts @@ -1,8 +1,7 @@ /* eslint-disable no-redeclare */ /* eslint-disable import/prefer-default-export */ -import { JsonRpcProvider } from '@ethersproject/providers'; -import { BigNumber } from '@ethersproject/bignumber'; +import { JsonRpcProvider } from 'ethers'; import { AlgebraVault, SupportedChainId, TotalAmountsBN } from '../types'; // eslint-disable-next-line import/no-cycle import { getAlgebraVaultInfo } from './vault'; @@ -11,7 +10,7 @@ import getPrice from '../utils/getPrice'; import { getAlgebraPoolContract, getAlgebraVaultContract } from '../contracts'; import { _getTotalAmounts, _getTotalSupply } from './_totalBalances'; -export async function getSqrtPriceFromPool(vault: AlgebraVault, jsonProvider: JsonRpcProvider): Promise { +export async function getSqrtPriceFromPool(vault: AlgebraVault, jsonProvider: JsonRpcProvider): Promise { try { const vaultContract = getAlgebraVaultContract(vault.id, jsonProvider); const poolAddress: string = await vaultContract.pool(); @@ -93,7 +92,7 @@ export async function getCurrentDtr( token0decimals: number, token1decimals: number, ): Promise { - const { chainId } = await jsonProvider.getNetwork(); + const network = await jsonProvider.getNetwork(); const chainId = Number(network.chainId); if (!Object.values(SupportedChainId).includes(chainId)) { throw new Error(`Unsupported chainId: ${chainId ?? 'undefined'}`); diff --git a/src/functions/totalBalances.ts b/src/functions/totalBalances.ts index a501506..a3e6c2e 100644 --- a/src/functions/totalBalances.ts +++ b/src/functions/totalBalances.ts @@ -1,8 +1,7 @@ /* eslint-disable no-redeclare */ /* eslint-disable import/prefer-default-export */ -import { JsonRpcProvider } from '@ethersproject/providers'; -import { BigNumber } from 'ethers'; +import { JsonRpcProvider } from 'ethers'; import { TotalAmounts, TotalAmountsBN } from '../types'; // eslint-disable-next-line import/no-cycle import { validateVaultData } from './vault'; @@ -45,7 +44,7 @@ export async function getTotalSupply( vaultAddress: string, jsonProvider: JsonRpcProvider, raw: true, -): Promise; +): Promise; export async function getTotalSupply(vaultAddress: string, jsonProvider: JsonRpcProvider, raw?: true) { await validateVaultData(vaultAddress, jsonProvider); diff --git a/src/functions/userBalances.ts b/src/functions/userBalances.ts index decd498..a20fe05 100644 --- a/src/functions/userBalances.ts +++ b/src/functions/userBalances.ts @@ -1,11 +1,10 @@ /* eslint-disable no-redeclare */ /* eslint-disable import/prefer-default-export */ -import { JsonRpcProvider, Web3Provider } from '@ethersproject/providers'; -import { BigNumber } from 'ethers'; +import { JsonRpcProvider, BrowserProvider } from 'ethers'; // eslint-disable-next-line import/no-unresolved import { request } from 'graphql-request'; -import { formatUnits } from '@ethersproject/units'; +import { formatUnits } from 'ethers'; import { getAlgebraVaultContract } from '../contracts'; import { UserAmounts, @@ -64,7 +63,7 @@ async function _getUserBalance( vaultAddress: string, jsonProvider: JsonRpcProvider, raw: true, -): Promise; +): Promise; // eslint-disable-next-line no-underscore-dangle async function _getUserBalance( @@ -90,7 +89,7 @@ export async function getUserBalance( vaultAddress: string, jsonProvider: JsonRpcProvider, raw: true, -): Promise; +): Promise; export async function getUserBalance( accountAddress: string, @@ -218,8 +217,8 @@ export async function getUserAmounts( ]); const userAmountsBN: UserAmountsBN = [ - shares.mul(totalAmounts[0]).div(totalSupply), - shares.mul(totalAmounts[1]).div(totalSupply), + (shares * totalAmounts[0]) / totalSupply, + (shares * totalAmounts[1]) / totalSupply, shares, ]; @@ -238,16 +237,16 @@ export async function getUserAmounts( export async function getAllUserAmounts( accountAddress: string, - jsonProvider: Web3Provider, + jsonProvider: BrowserProvider | JsonRpcProvider, ): Promise; export async function getAllUserAmounts( accountAddress: string, - jsonProvider: Web3Provider, + jsonProvider: BrowserProvider | JsonRpcProvider, raw: true, ): Promise; -export async function getAllUserAmounts(accountAddress: string, jsonProvider: Web3Provider, raw?: true) { +export async function getAllUserAmounts(accountAddress: string, jsonProvider: BrowserProvider | JsonRpcProvider, raw?: true) { const { chainId } = await getChainByProvider(jsonProvider); const { publishedUrl, url } = getGraphUrls(chainId, true); @@ -296,9 +295,9 @@ export async function getAllUserAmounts(accountAddress: string, jsonProvider: We ]; }); - // Execute multicall - const signer = jsonProvider.getSigner(accountAddress); - const results = await multicall(calls, chainId, signer); + // Execute multicall - jsonProvider should already have the signer context + // For getAllUserAmounts, we pass the provider which should work for read-only operations + const results = await multicall(calls, chainId, jsonProvider); // Process results const processedResults = balances.map((share: VaultShares, index: number) => { @@ -314,9 +313,9 @@ export async function getAllUserAmounts(accountAddress: string, jsonProvider: We const userBalance = parseBigInt(share.vaultShareBalance, algebraVaultDecimals); - if (!totalSupply.isZero()) { - const amount0 = userBalance.mul(totalAmounts.total0).div(totalSupply); - const amount1 = userBalance.mul(totalAmounts.total1).div(totalSupply); + if (totalSupply !== 0n) { + const amount0 = (userBalance * totalAmounts.total0) / totalSupply; + const amount1 = (userBalance * totalAmounts.total1) / totalSupply; if (!raw) { const userAmounts = [formatBigInt(amount0, token0Decimals), formatBigInt(amount1, token1Decimals)]; @@ -336,7 +335,7 @@ export async function getAllUserAmounts(accountAddress: string, jsonProvider: We 0: '0', 1: '0', } - : [BigNumber.from(0), BigNumber.from(0), BigNumber.from(0)], + : [BigInt(0), BigInt(0), BigInt(0)], } as UserAmountsInVault | UserAmountsInVaultBN; } }); diff --git a/src/functions/vault.ts b/src/functions/vault.ts index b0e0070..8b5dad7 100644 --- a/src/functions/vault.ts +++ b/src/functions/vault.ts @@ -1,6 +1,6 @@ // eslint-disable-next-line import/no-unresolved import { request } from 'graphql-request'; -import { JsonRpcProvider } from '@ethersproject/providers'; +import { JsonRpcProvider, BrowserProvider } from 'ethers'; import { SupportedChainId, AlgebraVault } from '../types'; // eslint-disable-next-line import/no-cycle import { @@ -169,8 +169,8 @@ export async function getExtendedAlgebraVault( const result = { ...vault, apr: almVault?.feeApr_1d || 0, - amount0: totalAmounts[0].toBigInt(), - amount1: totalAmounts[1].toBigInt(), + amount0: totalAmounts[0], + amount1: totalAmounts[1], }; cache.set(key, result, ttl); return result; @@ -299,7 +299,7 @@ export async function validateVaultData( vaultAddress: string, jsonProvider: JsonRpcProvider, ): Promise<{ chainId: SupportedChainId; vault: AlgebraVault }> { - const { chainId } = await jsonProvider.getNetwork(); + const network = await jsonProvider.getNetwork(); const chainId = Number(network.chainId); if (!Object.values(SupportedChainId).includes(chainId)) { throw new Error(`Unsupported chainId: ${chainId ?? 'undefined'}`); @@ -310,8 +310,8 @@ export async function validateVaultData( return { chainId, vault }; } -export async function getChainByProvider(jsonProvider: JsonRpcProvider): Promise<{ chainId: SupportedChainId }> { - const { chainId } = await jsonProvider.getNetwork(); +export async function getChainByProvider(jsonProvider: JsonRpcProvider | BrowserProvider): Promise<{ chainId: SupportedChainId }> { + const network = await jsonProvider.getNetwork(); const chainId = Number(network.chainId); if (!Object.values(SupportedChainId).includes(chainId)) { throw new Error(`Unsupported chainId: ${chainId ?? 'undefined'}`); diff --git a/src/functions/vaultMetrics.ts b/src/functions/vaultMetrics.ts index ae74a00..43cc5c2 100644 --- a/src/functions/vaultMetrics.ts +++ b/src/functions/vaultMetrics.ts @@ -1,5 +1,5 @@ /* eslint-disable import/prefer-default-export */ -import { JsonRpcProvider } from '@ethersproject/providers'; +import { JsonRpcProvider } from 'ethers'; import { DepositTokenRatio, Fees, diff --git a/src/functions/vaultPositions.ts b/src/functions/vaultPositions.ts index 68c74ca..5fd9554 100644 --- a/src/functions/vaultPositions.ts +++ b/src/functions/vaultPositions.ts @@ -1,10 +1,11 @@ // eslint-disable-next-line import/no-unresolved -import { JsonRpcProvider } from '@ethersproject/providers'; +import { JsonRpcProvider } from 'ethers'; // eslint-disable-next-line import/no-cycle import { validateVaultData } from './vault'; import { getAlgebraVaultContract } from '../contracts'; import formatBigInt from '../utils/formatBigInt'; +// @ts-ignore const univ3prices = require('@thanpolas/univ3prices'); export type VaultPositionsInfo = { @@ -61,9 +62,9 @@ export async function getVaultPositions( ]); // const priceAtBaseLower = getPriceInDepositToken(isInv, tokenDecimals, baseLower); // const priceAtBaseUpper = getPriceInDepositToken(isInv, tokenDecimals, baseUpper); - const priceAtLimitLower = getPriceInDepositToken(isInv, tokenDecimals, limitLower); - const priceAtLimitUpper = getPriceInDepositToken(isInv, tokenDecimals, limitUpper); - const currentPrice = getPriceInDepositToken(isInv, tokenDecimals, currentTick); + const priceAtLimitLower = getPriceInDepositToken(isInv, tokenDecimals, Number(limitLower)); + const priceAtLimitUpper = getPriceInDepositToken(isInv, tokenDecimals, Number(limitUpper)); + const currentPrice = getPriceInDepositToken(isInv, tokenDecimals, Number(currentTick)); // const basePositionTvl = !isInv // ? Number(formatBigInt(basePosition.amount0, decimals0)) + // Number(formatBigInt(basePosition.amount1, decimals1)) * currentPrice @@ -76,7 +77,7 @@ export async function getVaultPositions( Number(formatBigInt(limitPosition.amount0, decimals0)) * currentPrice; return { - currentTick, + currentTick: Number(currentTick), currentPrice, positions: [ // { @@ -90,8 +91,8 @@ export async function getVaultPositions( // positionTvl: basePositionTvl, // }, { - tickLower: limitLower, - tickUpper: limitUpper, + tickLower: Number(limitLower), + tickUpper: Number(limitUpper), priceLower: priceAtLimitLower, priceUpper: priceAtLimitUpper, liquidity: limitPosition.liquidity.toString(), diff --git a/src/functions/vaultTvl.ts b/src/functions/vaultTvl.ts index ebcad14..0a35bd3 100644 --- a/src/functions/vaultTvl.ts +++ b/src/functions/vaultTvl.ts @@ -1,8 +1,7 @@ /* eslint-disable no-redeclare */ /* eslint-disable import/prefer-default-export */ -import { JsonRpcProvider } from '@ethersproject/providers'; -import { BigNumber } from '@ethersproject/bignumber'; +import { JsonRpcProvider } from 'ethers'; import { DepositTokenRatio, AlgebraVault, VaultState, VaultTransactionEvent } from '../types'; // eslint-disable-next-line import/no-cycle import { validateVaultData } from './vault'; @@ -52,7 +51,7 @@ function getPoolPriceAtTransactionEvent( const scarceTokenDecimals = isVaultInverted ? token0Decimals : token1Decimals; const price = getPrice( isVaultInverted, - BigNumber.from(objTransactionEvent.sqrtPrice), + BigInt(objTransactionEvent.sqrtPrice), depositTokenDecimals, scarceTokenDecimals, 15, @@ -74,7 +73,7 @@ function getTotalAmountsAtTransactionEvent( ? 1 : getPrice( isVaultInverted, - BigNumber.from(objTransactionEvent.sqrtPrice), + BigInt(objTransactionEvent.sqrtPrice), depositTokenDecimals, scarceTokenDecimals, 15, @@ -83,17 +82,17 @@ function getTotalAmountsAtTransactionEvent( ? 1 : getPrice( isVaultInverted, - BigNumber.from(objTransactionEvent.sqrtPrice), + BigInt(objTransactionEvent.sqrtPrice), depositTokenDecimals, scarceTokenDecimals, 15, ); const amount0 = beforeEvent - ? Number(formatBigInt(BigNumber.from(objTransactionEvent.totalAmount0BeforeEvent), token0Decimals)) * price0 - : Number(formatBigInt(BigNumber.from(objTransactionEvent.totalAmount0), token0Decimals)) * price0; + ? Number(formatBigInt(BigInt(objTransactionEvent.totalAmount0BeforeEvent), token0Decimals)) * price0 + : Number(formatBigInt(BigInt(objTransactionEvent.totalAmount0), token0Decimals)) * price0; const amount1 = beforeEvent - ? Number(formatBigInt(BigNumber.from(objTransactionEvent.totalAmount1BeforeEvent), token1Decimals)) * price1 - : Number(formatBigInt(BigNumber.from(objTransactionEvent.totalAmount1), token1Decimals)) * price1; + ? Number(formatBigInt(BigInt(objTransactionEvent.totalAmount1BeforeEvent), token1Decimals)) * price1 + : Number(formatBigInt(BigInt(objTransactionEvent.totalAmount1), token1Decimals)) * price1; return [amount0, amount1]; } @@ -140,7 +139,7 @@ function getLpPriceAtFeeCollectionEvent( token1decimals: number, ): number { const tvl = getTvlAtFeeCollectionEvent(objTransactionEvent, vault, token0decimals, token1decimals); - const totalSupply = Number(formatBigInt(BigNumber.from(objTransactionEvent.totalSupply), 18)); + const totalSupply = Number(formatBigInt(BigInt(objTransactionEvent.totalSupply), 18)); return tvl / totalSupply; } @@ -151,7 +150,7 @@ function getLpPriceAtTransactionEvent( token1decimals: number, ): number { const tvl = getTvlAtTransactionEvent(objTransactionEvent, vault, token0decimals, token1decimals); - const totalSupply = Number(formatBigInt(BigNumber.from(objTransactionEvent.totalSupply), 18)); + const totalSupply = Number(formatBigInt(BigInt(objTransactionEvent.totalSupply), 18)); return tvl / totalSupply; } diff --git a/src/functions/withdraw.ts b/src/functions/withdraw.ts index 9ae5bcf..5bb63c4 100644 --- a/src/functions/withdraw.ts +++ b/src/functions/withdraw.ts @@ -1,9 +1,6 @@ /* eslint-disable import/prefer-default-export */ -import { ContractTransaction, Overrides } from '@ethersproject/contracts'; -import { JsonRpcProvider } from '@ethersproject/providers'; -import { BigNumber } from 'ethers'; -import { MaxUint256 } from '@ethersproject/constants'; +import { ContractTransactionResponse, JsonRpcProvider, MaxUint256, Overrides } from 'ethers'; import { getAlgebraVaultDepositGuardContract, getERC20Contract, getAlgebraVaultContract } from '../contracts'; import parseBigInt from '../utils/parseBigInt'; import { AlgebraVault, SupportedChainId, algebraVaultDecimals } from '../types'; @@ -19,18 +16,18 @@ export async function approveVaultToken( accountAddress: string, vaultAddress: string, jsonProvider: JsonRpcProvider, - shares?: string | number | BigNumber, + shares?: string | number | bigint, overrides?: Overrides, -): Promise { +): Promise { const { chainId } = await validateVaultData(vaultAddress, jsonProvider); - const signer = jsonProvider.getSigner(accountAddress); + const signer = await jsonProvider.getSigner(); const vaultTokenContract = getERC20Contract(vaultAddress, signer); // eslint-disable-next-line no-nested-ternary const sharesBN = shares - ? shares instanceof BigNumber + ? typeof shares === 'bigint' ? shares : parseBigInt(shares, algebraVaultDecimals) : MaxUint256; @@ -41,7 +38,7 @@ export async function approveVaultToken( } const gasLimit = overrides?.gasLimit ?? - calculateGasMargin(await vaultTokenContract.estimateGas.approve(depositGuardAddress, sharesBN)); + calculateGasMargin(await vaultTokenContract.approve.estimateGas(depositGuardAddress, sharesBN)); return vaultTokenContract.approve(depositGuardAddress, sharesBN, { gasLimit }); } @@ -49,12 +46,12 @@ export async function approveVaultToken( // eslint-disable-next-line no-underscore-dangle async function _isVaultTokenApproved( accountAddress: string, - shares: string | number | BigNumber, + shares: string | number | bigint, vault: AlgebraVault, chainId: SupportedChainId, jsonProvider: JsonRpcProvider, ): Promise { - const signer = jsonProvider.getSigner(accountAddress); + const signer = await jsonProvider.getSigner(); const vaultTokenContract = getERC20Contract(vault.id, signer); const depositGuardAddress = addressConfig[chainId as SupportedChainId]?.depositGuardAddress; @@ -63,14 +60,14 @@ async function _isVaultTokenApproved( } const currentAllowanceBN = await vaultTokenContract.allowance(accountAddress, depositGuardAddress); - const sharesBN = shares instanceof BigNumber ? shares : parseBigInt(shares, algebraVaultDecimals); + const sharesBN = typeof shares === 'bigint' ? shares : parseBigInt(shares, algebraVaultDecimals); - return currentAllowanceBN.gt(BigNumber.from(0)) && currentAllowanceBN.gte(sharesBN); + return currentAllowanceBN > 0n && currentAllowanceBN >= sharesBN; } export async function isVaultTokenApproved( accountAddress: string, - shares: string | number | BigNumber, + shares: string | number | bigint, vaultAddress: string, jsonProvider: JsonRpcProvider, ): Promise { @@ -80,42 +77,41 @@ export async function isVaultTokenApproved( export async function withdraw( accountAddress: string, - shares: string | number | BigNumber, + shares: string | number | bigint, vaultAddress: string, jsonProvider: JsonRpcProvider, overrides?: Overrides, -): Promise { +): Promise { const { chainId } = await validateVaultData(vaultAddress, jsonProvider); - const signer = jsonProvider.getSigner(accountAddress); + const signer = await jsonProvider.getSigner(); const vaultContract = getAlgebraVaultContract(vaultAddress, signer); const userShares = getUserBalance(accountAddress, vaultAddress, jsonProvider, true); - const withdrawShares = shares instanceof BigNumber ? shares : parseBigInt(shares, 18); - if ((await userShares).lt(withdrawShares)) { + const withdrawShares = typeof shares === 'bigint' ? shares : parseBigInt(shares, 18); + if ((await userShares) < withdrawShares) { throw new Error(`Withdraw amount exceeds user shares amount in vault ${vaultAddress} on chain ${chainId}`); } const params: Parameters = [ - shares instanceof BigNumber ? shares : parseBigInt(shares, 18), + typeof shares === 'bigint' ? shares : parseBigInt(shares, 18), accountAddress, ]; - const gasLimit = overrides?.gasLimit ?? calculateGasMargin(await vaultContract.estimateGas.withdraw(...params)); - params[2] = { ...overrides, gasLimit }; - - return vaultContract.withdraw(...params); + const gasLimit = overrides?.gasLimit ?? calculateGasMargin(await vaultContract.withdraw.estimateGas(params[0], params[1])); + + return vaultContract.withdraw(params[0], params[1], { ...overrides, gasLimit }); } export async function withdrawWithSlippage( accountAddress: string, - shares: string | number | BigNumber, + shares: string | number | bigint, vaultAddress: string, jsonProvider: JsonRpcProvider, percentSlippage = 1, overrides?: Overrides, -): Promise { +): Promise { const { chainId, vault } = await validateVaultData(vaultAddress, jsonProvider); - const signer = jsonProvider.getSigner(accountAddress); + const signer = await jsonProvider.getSigner(); const vaultDeployerAddress = getVaultDeployer(vaultAddress, chainId); @@ -126,8 +122,8 @@ export async function withdrawWithSlippage( } const userShares = getUserBalance(accountAddress, vaultAddress, jsonProvider, true); - const withdrawShares = shares instanceof BigNumber ? shares : parseBigInt(shares, 18); - if ((await userShares).lt(withdrawShares)) { + const withdrawShares = typeof shares === 'bigint' ? shares : parseBigInt(shares, 18); + if ((await userShares) < withdrawShares) { throw new Error(`Withdraw amount exceeds user shares amount in vault ${vaultAddress} on chain ${chainId}`); } @@ -140,13 +136,13 @@ export async function withdrawWithSlippage( const maxGasLimit = getGasLimit(); // the first call: get estimated LP amount - let amounts = await depositGuardContract.callStatic.forwardWithdrawFromAlgebraVault( + let amounts = await depositGuardContract.forwardWithdrawFromAlgebraVault.staticCall( vaultAddress, vaultDeployerAddress, withdrawShares, accountAddress, - BigNumber.from(0), - BigNumber.from(0), + BigInt(0), + BigInt(0), { gasLimit: maxGasLimit, }, @@ -160,12 +156,12 @@ export async function withdrawWithSlippage( 1: amountWithSlippage(amounts[1], percentSlippage), amount0: amountWithSlippage(amounts[0], percentSlippage), amount1: amountWithSlippage(amounts[1], percentSlippage), - } as [BigNumber, BigNumber] & { amount0: BigNumber; amount1: BigNumber }; + } as [bigint, bigint] & { amount0: bigint; amount1: bigint }; const gasLimit = overrides?.gasLimit ?? calculateGasMargin( - await depositGuardContract.estimateGas.forwardWithdrawFromAlgebraVault( + await depositGuardContract.forwardWithdrawFromAlgebraVault.estimateGas( vaultAddress, vaultDeployerAddress, withdrawShares, @@ -194,21 +190,21 @@ export async function withdrawWithSlippage( export async function withdrawNativeToken( accountAddress: string, - shares: string | number | BigNumber, + shares: string | number | bigint, vaultAddress: string, jsonProvider: JsonRpcProvider, percentSlippage = 1, overrides?: Overrides, -): Promise { +): Promise { const { chainId, vault } = await validateVaultData(vaultAddress, jsonProvider); - const signer = jsonProvider.getSigner(accountAddress); + const signer = await jsonProvider.getSigner(); const vaultDeployerAddress = getVaultDeployer(vaultAddress, chainId); const userShares = getUserBalance(accountAddress, vaultAddress, jsonProvider, true); - const withdrawShares = shares instanceof BigNumber ? shares : parseBigInt(shares, 18); - if ((await userShares).lt(withdrawShares)) { + const withdrawShares = typeof shares === 'bigint' ? shares : parseBigInt(shares, 18); + if ((await userShares) < withdrawShares) { throw new Error(`Withdraw amount exceeds user shares amount in vault ${vaultAddress} on chain ${chainId}`); } @@ -234,13 +230,13 @@ export async function withdrawNativeToken( const maxGasLimit = getGasLimit(); // the first call: get estimated LP amount - let amounts = await depositGuardContract.callStatic.forwardNativeWithdrawFromAlgebraVault( + let amounts = await depositGuardContract.forwardNativeWithdrawFromAlgebraVault.staticCall( vaultAddress, vaultDeployerAddress, withdrawShares, accountAddress, - BigNumber.from(0), - BigNumber.from(0), + BigInt(0), + BigInt(0), { gasLimit: maxGasLimit, }, @@ -254,12 +250,12 @@ export async function withdrawNativeToken( 1: amountWithSlippage(amounts[1], percentSlippage), amount0: amountWithSlippage(amounts[0], percentSlippage), amount1: amountWithSlippage(amounts[1], percentSlippage), - } as [BigNumber, BigNumber] & { amount0: BigNumber; amount1: BigNumber }; + } as [bigint, bigint] & { amount0: bigint; amount1: bigint }; const gasLimit = overrides?.gasLimit ?? calculateGasMargin( - await depositGuardContract.estimateGas.forwardNativeWithdrawFromAlgebraVault( + await depositGuardContract.forwardNativeWithdrawFromAlgebraVault.estimateGas( vaultAddress, vaultDeployerAddress, withdrawShares, diff --git a/src/types/calculateGasMargin.ts b/src/types/calculateGasMargin.ts index 5bce45e..9e7ad01 100644 --- a/src/types/calculateGasMargin.ts +++ b/src/types/calculateGasMargin.ts @@ -1,5 +1,3 @@ -import { BigNumber } from '@ethersproject/bignumber'; - const defaultGasLimit = 5e6; // const mantleGasLimit = 3e9; @@ -8,6 +6,6 @@ export function getGasLimit(): number { return defaultGasLimit; } -export function calculateGasMargin(value: BigNumber): BigNumber { - return value.mul(BigNumber.from(10000 + 2000)).div(BigNumber.from(10000)); +export function calculateGasMargin(value: bigint): bigint { + return (value * 12000n) / 10000n; } diff --git a/src/types/index.ts b/src/types/index.ts index 000fb64..02a0a6a 100644 --- a/src/types/index.ts +++ b/src/types/index.ts @@ -1,8 +1,6 @@ /* eslint-disable camelcase */ /* eslint-disable no-shadow */ -import { Signer } from '@ethersproject/abstract-signer'; -import { Provider } from '@ethersproject/providers'; -import { BigNumber } from 'ethers'; +import { Signer, Provider } from 'ethers'; export type SignerOrProvider = Signer | Provider; @@ -12,8 +10,8 @@ export enum SupportedChainId { export const algebraVaultDecimals = 18; -export type TotalAmountsBN = [BigNumber, BigNumber] & { total0: BigNumber; total1: BigNumber }; -export type UserAmountsBN = [BigNumber, BigNumber, BigNumber]; +export type TotalAmountsBN = [bigint, bigint] & { total0: bigint; total1: bigint }; +export type UserAmountsBN = [bigint, bigint, bigint]; export type TotalAmounts = [string, string, string] & { total0: string; total1: string }; export type UserAmounts = [string, string, string]; @@ -127,7 +125,7 @@ export type UserBalanceInVault = { export type UserBalanceInVaultBN = { vaultAddress: string; poolAddress: string; - shares: BigNumber; + shares: bigint; }; export type VaultMetrics = { diff --git a/src/utils/amountWithSlippage.ts b/src/utils/amountWithSlippage.ts index dc59ec6..13ca09d 100644 --- a/src/utils/amountWithSlippage.ts +++ b/src/utils/amountWithSlippage.ts @@ -1,5 +1,5 @@ -import { BigNumber } from 'ethers'; - -export default function amountWithSlippage(amount: BigNumber, percentSlippage: number): BigNumber { - return amount.mul(Math.floor((100 - percentSlippage) * 1000)).div(100000); +export default function amountWithSlippage(amount: bigint, percentSlippage: number): bigint { + // Calculate slippage multiplier as a number first, then convert to BigInt + const slippageMultiplier = Math.floor((100 - percentSlippage) * 1000); + return (amount * BigInt(slippageMultiplier)) / 100000n; } diff --git a/src/utils/formatBigInt.ts b/src/utils/formatBigInt.ts index 335fd81..f09d5d7 100644 --- a/src/utils/formatBigInt.ts +++ b/src/utils/formatBigInt.ts @@ -1,8 +1,7 @@ // eslint-disable-next-line import/no-extraneous-dependencies import { BigNumber as BN } from 'bignumber.js'; -import { BigNumber } from 'ethers'; -export default function formatBigInt(value: number | string | BigNumber, decimals: number = 18): string { +export default function formatBigInt(value: number | string | bigint, decimals: number = 18): string { const bigVal = new BN(value.toString()); const divisor = new BN(10).pow(decimals); diff --git a/src/utils/getPrice.ts b/src/utils/getPrice.ts index ecea5fa..8289823 100644 --- a/src/utils/getPrice.ts +++ b/src/utils/getPrice.ts @@ -1,11 +1,10 @@ -import { BigNumber } from 'ethers'; - +// @ts-ignore const univ3prices = require('@thanpolas/univ3prices'); // calculate price/ratio in the pool export default function getPrice( isInverted: boolean, - sqrtPrice: BigNumber, + sqrtPrice: bigint, decimals0: number, decimals1: number, decimalPlaces = 3, diff --git a/src/utils/multicallUtils.ts b/src/utils/multicallUtils.ts index 67d8def..9b97a8a 100644 --- a/src/utils/multicallUtils.ts +++ b/src/utils/multicallUtils.ts @@ -1,7 +1,4 @@ -import { Provider } from '@ethersproject/providers'; -import { Contract } from '@ethersproject/contracts'; -import { Interface } from '@ethersproject/abi'; -import { BigNumber, Signer } from 'ethers'; +import { Provider, Contract, Interface, Signer } from 'ethers'; import { SupportedChainId } from '../types'; import { MULTICALL_ADDRESSES } from '../config/addresses'; import { getERC20Contract, getAlgebraVaultContract } from '../contracts'; @@ -15,12 +12,12 @@ interface Call { export interface Result { success: boolean; - gasUsed: BigNumber; + gasUsed: bigint; returnData: string; } interface MulticallResponse { - blockNumber: BigNumber; + blockNumber: bigint; returnData: Result[]; } @@ -38,7 +35,7 @@ export async function multicall( provider: Provider | Signer, ): Promise { const multicallContract = getMulticallContract(chainId, provider); - const { returnData }: MulticallResponse = await multicallContract.callStatic.multicall(calls); + const { returnData }: MulticallResponse = await multicallContract.multicall.staticCall(calls); return returnData; } @@ -72,7 +69,7 @@ export function encodeDecimalsCall(tokenAddress: string): Call { export function decodeTotalAmountsResult( result: Result, vaultAddress: string, -): { total0: BigNumber; total1: BigNumber } { +): { total0: bigint; total1: bigint } { if (!result.success) { throw new Error('Failed to get total amounts'); } @@ -84,7 +81,7 @@ export function decodeTotalAmountsResult( }; } -export function decodeTotalSupplyResult(result: Result, vaultAddress: string): BigNumber { +export function decodeTotalSupplyResult(result: Result, vaultAddress: string): bigint { if (!result.success) { throw new Error('Failed to get total supply'); } diff --git a/src/utils/parseBigInt.ts b/src/utils/parseBigInt.ts index f0b7c17..d8ffcb0 100644 --- a/src/utils/parseBigInt.ts +++ b/src/utils/parseBigInt.ts @@ -1,6 +1,4 @@ -import { BigNumber } from '@ethersproject/bignumber'; - -export default function parseBigInt(_value: number | string, decimals: number): BigNumber { +export default function parseBigInt(_value: number | string, decimals: number): bigint { let valueStr = _value.toString(); // Handle scientific notation by converting to a full decimal string @@ -12,7 +10,7 @@ export default function parseBigInt(_value: number | string, decimals: number): const combined = wholePart + fractionalPart.padEnd(decimals, '0'); - const bigNumberValue = BigNumber.from(combined); + const bigIntValue = BigInt(combined); - return bigNumberValue; + return bigIntValue; } diff --git a/src/utils/positionKey.ts b/src/utils/positionKey.ts index fa597b3..bfda747 100644 --- a/src/utils/positionKey.ts +++ b/src/utils/positionKey.ts @@ -1,6 +1,6 @@ -import { utils } from 'ethers'; +import { keccak256, solidityPacked } from 'ethers'; const getPositionKey = (address: string, lowerTick: number, upperTick: number): string => - utils.keccak256(utils.solidityPack(['address', 'int24', 'int24'], [address, lowerTick, upperTick])); + keccak256(solidityPacked(['address', 'int24', 'int24'], [address, lowerTick, upperTick])); export default getPositionKey; diff --git a/tsconfig.json b/tsconfig.json index a77af9c..4ad1b35 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -2,8 +2,9 @@ "compilerOptions": { /* Basic Options */ // "incremental": true, /* Enable incremental compilation */ - "target": "es5" /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019' or 'ESNEXT'. */, - "module": "commonjs" /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', or 'ESNext'. */, + "target": "es2020" /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019' or 'ESNEXT'. */, + "module": "esnext" /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', or 'ESNext'. */, + "moduleResolution": "node" /* Specify module resolution strategy: 'node' (Node.js) or 'classic' (TypeScript pre-1.6). */, // "lib": [], /* Specify library files to be included in the compilation. */ // "allowJs": true, /* Allow javascript files to be compiled. */ // "checkJs": true, /* Report errors in .js files. */ diff --git a/yarn.lock b/yarn.lock index 68aae9a..be65fdc 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,6 +2,11 @@ # yarn lockfile v1 +"@adraffy/ens-normalize@1.10.1": + version "1.10.1" + resolved "https://registry.npmjs.org/@adraffy/ens-normalize/-/ens-normalize-1.10.1.tgz" + integrity sha512-96Z2IP3mYmF1Xg2cDm8f1gWGf/HUVedQ3FMifV4kG/PQ4yEP51xDtRAEfhVNt5f/uzpNkZHwWQuUcu6D6K+Ekw== + "@ampproject/remapping@^2.2.0": version "2.3.0" resolved "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz" @@ -964,348 +969,6 @@ "@ethereumjs/common" "^2.6.4" ethereumjs-util "^7.1.5" -"@ethersproject/abi@^5.0.0", "@ethersproject/abi@^5.7.0", "@ethersproject/abi@^5.8.0", "@ethersproject/abi@5.8.0": - version "5.8.0" - resolved "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.8.0.tgz" - integrity sha512-b9YS/43ObplgyV6SlyQsG53/vkSal0MNA1fskSC4mbnCMi8R+NkcH8K9FPYNESf6jUefBUniE4SOKms0E/KK1Q== - dependencies: - "@ethersproject/address" "^5.8.0" - "@ethersproject/bignumber" "^5.8.0" - "@ethersproject/bytes" "^5.8.0" - "@ethersproject/constants" "^5.8.0" - "@ethersproject/hash" "^5.8.0" - "@ethersproject/keccak256" "^5.8.0" - "@ethersproject/logger" "^5.8.0" - "@ethersproject/properties" "^5.8.0" - "@ethersproject/strings" "^5.8.0" - -"@ethersproject/abstract-provider@^5.8.0", "@ethersproject/abstract-provider@5.8.0": - version "5.8.0" - resolved "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.8.0.tgz" - integrity sha512-wC9SFcmh4UK0oKuLJQItoQdzS/qZ51EJegK6EmAWlh+OptpQ/npECOR3QqECd8iGHC0RJb4WKbVdSfif4ammrg== - dependencies: - "@ethersproject/bignumber" "^5.8.0" - "@ethersproject/bytes" "^5.8.0" - "@ethersproject/logger" "^5.8.0" - "@ethersproject/networks" "^5.8.0" - "@ethersproject/properties" "^5.8.0" - "@ethersproject/transactions" "^5.8.0" - "@ethersproject/web" "^5.8.0" - -"@ethersproject/abstract-signer@^5.6.2", "@ethersproject/abstract-signer@^5.8.0", "@ethersproject/abstract-signer@5.8.0": - version "5.8.0" - resolved "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.8.0.tgz" - integrity sha512-N0XhZTswXcmIZQdYtUnd79VJzvEwXQw6PK0dTl9VoYrEBxxCPXqS0Eod7q5TNKRxe1/5WUMuR0u0nqTF/avdCA== - dependencies: - "@ethersproject/abstract-provider" "^5.8.0" - "@ethersproject/bignumber" "^5.8.0" - "@ethersproject/bytes" "^5.8.0" - "@ethersproject/logger" "^5.8.0" - "@ethersproject/properties" "^5.8.0" - -"@ethersproject/address@^5.6.0", "@ethersproject/address@^5.8.0", "@ethersproject/address@5.8.0": - version "5.8.0" - resolved "https://registry.npmjs.org/@ethersproject/address/-/address-5.8.0.tgz" - integrity sha512-GhH/abcC46LJwshoN+uBNoKVFPxUuZm6dA257z0vZkKmU1+t8xTn8oK7B9qrj8W2rFRMch4gbJl6PmVxjxBEBA== - dependencies: - "@ethersproject/bignumber" "^5.8.0" - "@ethersproject/bytes" "^5.8.0" - "@ethersproject/keccak256" "^5.8.0" - "@ethersproject/logger" "^5.8.0" - "@ethersproject/rlp" "^5.8.0" - -"@ethersproject/base64@^5.8.0", "@ethersproject/base64@5.8.0": - version "5.8.0" - resolved "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.8.0.tgz" - integrity sha512-lN0oIwfkYj9LbPx4xEkie6rAMJtySbpOAFXSDVQaBnAzYfB4X2Qr+FXJGxMoc3Bxp2Sm8OwvzMrywxyw0gLjIQ== - dependencies: - "@ethersproject/bytes" "^5.8.0" - -"@ethersproject/basex@^5.8.0", "@ethersproject/basex@5.8.0": - version "5.8.0" - resolved "https://registry.npmjs.org/@ethersproject/basex/-/basex-5.8.0.tgz" - integrity sha512-PIgTszMlDRmNwW9nhS6iqtVfdTAKosA7llYXNmGPw4YAI1PUyMv28988wAb41/gHF/WqGdoLv0erHaRcHRKW2Q== - dependencies: - "@ethersproject/bytes" "^5.8.0" - "@ethersproject/properties" "^5.8.0" - -"@ethersproject/bignumber@^5.6.0", "@ethersproject/bignumber@^5.8.0", "@ethersproject/bignumber@5.8.0": - version "5.8.0" - resolved "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.8.0.tgz" - integrity sha512-ZyaT24bHaSeJon2tGPKIiHszWjD/54Sz8t57Toch475lCLljC6MgPmxk7Gtzz+ddNN5LuHea9qhAe0x3D+uYPA== - dependencies: - "@ethersproject/bytes" "^5.8.0" - "@ethersproject/logger" "^5.8.0" - bn.js "^5.2.1" - -"@ethersproject/bytes@^5.6.1", "@ethersproject/bytes@^5.8.0", "@ethersproject/bytes@5.8.0": - version "5.8.0" - resolved "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.8.0.tgz" - integrity sha512-vTkeohgJVCPVHu5c25XWaWQOZ4v+DkGoC42/TS2ond+PARCxTJvgTFUNDZovyQ/uAQ4EcpqqowKydcdmRKjg7A== - dependencies: - "@ethersproject/logger" "^5.8.0" - -"@ethersproject/constants@^5.6.0", "@ethersproject/constants@^5.8.0", "@ethersproject/constants@5.8.0": - version "5.8.0" - resolved "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.8.0.tgz" - integrity sha512-wigX4lrf5Vu+axVTIvNsuL6YrV4O5AXl5ubcURKMEME5TnWBouUh0CDTWxZ2GpnRn1kcCgE7l8O5+VbV9QTTcg== - dependencies: - "@ethersproject/bignumber" "^5.8.0" - -"@ethersproject/contracts@^5.6.2", "@ethersproject/contracts@5.8.0": - version "5.8.0" - resolved "https://registry.npmjs.org/@ethersproject/contracts/-/contracts-5.8.0.tgz" - integrity sha512-0eFjGz9GtuAi6MZwhb4uvUM216F38xiuR0yYCjKJpNfSEy4HUM8hvqqBj9Jmm0IUz8l0xKEhWwLIhPgxNY0yvQ== - dependencies: - "@ethersproject/abi" "^5.8.0" - "@ethersproject/abstract-provider" "^5.8.0" - "@ethersproject/abstract-signer" "^5.8.0" - "@ethersproject/address" "^5.8.0" - "@ethersproject/bignumber" "^5.8.0" - "@ethersproject/bytes" "^5.8.0" - "@ethersproject/constants" "^5.8.0" - "@ethersproject/logger" "^5.8.0" - "@ethersproject/properties" "^5.8.0" - "@ethersproject/transactions" "^5.8.0" - -"@ethersproject/hash@^5.8.0", "@ethersproject/hash@5.8.0": - version "5.8.0" - resolved "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.8.0.tgz" - integrity sha512-ac/lBcTbEWW/VGJij0CNSw/wPcw9bSRgCB0AIBz8CvED/jfvDoV9hsIIiWfvWmFEi8RcXtlNwp2jv6ozWOsooA== - dependencies: - "@ethersproject/abstract-signer" "^5.8.0" - "@ethersproject/address" "^5.8.0" - "@ethersproject/base64" "^5.8.0" - "@ethersproject/bignumber" "^5.8.0" - "@ethersproject/bytes" "^5.8.0" - "@ethersproject/keccak256" "^5.8.0" - "@ethersproject/logger" "^5.8.0" - "@ethersproject/properties" "^5.8.0" - "@ethersproject/strings" "^5.8.0" - -"@ethersproject/hdnode@^5.8.0", "@ethersproject/hdnode@5.8.0": - version "5.8.0" - resolved "https://registry.npmjs.org/@ethersproject/hdnode/-/hdnode-5.8.0.tgz" - integrity sha512-4bK1VF6E83/3/Im0ERnnUeWOY3P1BZml4ZD3wcH8Ys0/d1h1xaFt6Zc+Dh9zXf9TapGro0T4wvO71UTCp3/uoA== - dependencies: - "@ethersproject/abstract-signer" "^5.8.0" - "@ethersproject/basex" "^5.8.0" - "@ethersproject/bignumber" "^5.8.0" - "@ethersproject/bytes" "^5.8.0" - "@ethersproject/logger" "^5.8.0" - "@ethersproject/pbkdf2" "^5.8.0" - "@ethersproject/properties" "^5.8.0" - "@ethersproject/sha2" "^5.8.0" - "@ethersproject/signing-key" "^5.8.0" - "@ethersproject/strings" "^5.8.0" - "@ethersproject/transactions" "^5.8.0" - "@ethersproject/wordlists" "^5.8.0" - -"@ethersproject/json-wallets@^5.8.0", "@ethersproject/json-wallets@5.8.0": - version "5.8.0" - resolved "https://registry.npmjs.org/@ethersproject/json-wallets/-/json-wallets-5.8.0.tgz" - integrity sha512-HxblNck8FVUtNxS3VTEYJAcwiKYsBIF77W15HufqlBF9gGfhmYOJtYZp8fSDZtn9y5EaXTE87zDwzxRoTFk11w== - dependencies: - "@ethersproject/abstract-signer" "^5.8.0" - "@ethersproject/address" "^5.8.0" - "@ethersproject/bytes" "^5.8.0" - "@ethersproject/hdnode" "^5.8.0" - "@ethersproject/keccak256" "^5.8.0" - "@ethersproject/logger" "^5.8.0" - "@ethersproject/pbkdf2" "^5.8.0" - "@ethersproject/properties" "^5.8.0" - "@ethersproject/random" "^5.8.0" - "@ethersproject/strings" "^5.8.0" - "@ethersproject/transactions" "^5.8.0" - aes-js "3.0.0" - scrypt-js "3.0.1" - -"@ethersproject/keccak256@^5.8.0", "@ethersproject/keccak256@5.8.0": - version "5.8.0" - resolved "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.8.0.tgz" - integrity sha512-A1pkKLZSz8pDaQ1ftutZoaN46I6+jvuqugx5KYNeQOPqq+JZ0Txm7dlWesCHB5cndJSu5vP2VKptKf7cksERng== - dependencies: - "@ethersproject/bytes" "^5.8.0" - js-sha3 "0.8.0" - -"@ethersproject/logger@^5.8.0", "@ethersproject/logger@5.8.0": - version "5.8.0" - resolved "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.8.0.tgz" - integrity sha512-Qe6knGmY+zPPWTC+wQrpitodgBfH7XoceCGL5bJVejmH+yCS3R8jJm8iiWuvWbG76RUmyEG53oqv6GMVWqunjA== - -"@ethersproject/networks@^5.8.0", "@ethersproject/networks@5.8.0": - version "5.8.0" - resolved "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.8.0.tgz" - integrity sha512-egPJh3aPVAzbHwq8DD7Po53J4OUSsA1MjQp8Vf/OZPav5rlmWUaFLiq8cvQiGK0Z5K6LYzm29+VA/p4RL1FzNg== - dependencies: - "@ethersproject/logger" "^5.8.0" - -"@ethersproject/pbkdf2@^5.8.0", "@ethersproject/pbkdf2@5.8.0": - version "5.8.0" - resolved "https://registry.npmjs.org/@ethersproject/pbkdf2/-/pbkdf2-5.8.0.tgz" - integrity sha512-wuHiv97BrzCmfEaPbUFpMjlVg/IDkZThp9Ri88BpjRleg4iePJaj2SW8AIyE8cXn5V1tuAaMj6lzvsGJkGWskg== - dependencies: - "@ethersproject/bytes" "^5.8.0" - "@ethersproject/sha2" "^5.8.0" - -"@ethersproject/properties@^5.8.0", "@ethersproject/properties@5.8.0": - version "5.8.0" - resolved "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.8.0.tgz" - integrity sha512-PYuiEoQ+FMaZZNGrStmN7+lWjlsoufGIHdww7454FIaGdbe/p5rnaCXTr5MtBYl3NkeoVhHZuyzChPeGeKIpQw== - dependencies: - "@ethersproject/logger" "^5.8.0" - -"@ethersproject/providers@^5.0.0", "@ethersproject/providers@^5.6.5", "@ethersproject/providers@5.8.0": - version "5.8.0" - resolved "https://registry.npmjs.org/@ethersproject/providers/-/providers-5.8.0.tgz" - integrity sha512-3Il3oTzEx3o6kzcg9ZzbE+oCZYyY+3Zh83sKkn4s1DZfTUjIegHnN2Cm0kbn9YFy45FDVcuCLLONhU7ny0SsCw== - dependencies: - "@ethersproject/abstract-provider" "^5.8.0" - "@ethersproject/abstract-signer" "^5.8.0" - "@ethersproject/address" "^5.8.0" - "@ethersproject/base64" "^5.8.0" - "@ethersproject/basex" "^5.8.0" - "@ethersproject/bignumber" "^5.8.0" - "@ethersproject/bytes" "^5.8.0" - "@ethersproject/constants" "^5.8.0" - "@ethersproject/hash" "^5.8.0" - "@ethersproject/logger" "^5.8.0" - "@ethersproject/networks" "^5.8.0" - "@ethersproject/properties" "^5.8.0" - "@ethersproject/random" "^5.8.0" - "@ethersproject/rlp" "^5.8.0" - "@ethersproject/sha2" "^5.8.0" - "@ethersproject/strings" "^5.8.0" - "@ethersproject/transactions" "^5.8.0" - "@ethersproject/web" "^5.8.0" - bech32 "1.1.4" - ws "8.18.0" - -"@ethersproject/random@^5.8.0", "@ethersproject/random@5.8.0": - version "5.8.0" - resolved "https://registry.npmjs.org/@ethersproject/random/-/random-5.8.0.tgz" - integrity sha512-E4I5TDl7SVqyg4/kkA/qTfuLWAQGXmSOgYyO01So8hLfwgKvYK5snIlzxJMk72IFdG/7oh8yuSqY2KX7MMwg+A== - dependencies: - "@ethersproject/bytes" "^5.8.0" - "@ethersproject/logger" "^5.8.0" - -"@ethersproject/rlp@^5.8.0", "@ethersproject/rlp@5.8.0": - version "5.8.0" - resolved "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.8.0.tgz" - integrity sha512-LqZgAznqDbiEunaUvykH2JAoXTT9NV0Atqk8rQN9nx9SEgThA/WMx5DnW8a9FOufo//6FZOCHZ+XiClzgbqV9Q== - dependencies: - "@ethersproject/bytes" "^5.8.0" - "@ethersproject/logger" "^5.8.0" - -"@ethersproject/sha2@^5.8.0", "@ethersproject/sha2@5.8.0": - version "5.8.0" - resolved "https://registry.npmjs.org/@ethersproject/sha2/-/sha2-5.8.0.tgz" - integrity sha512-dDOUrXr9wF/YFltgTBYS0tKslPEKr6AekjqDW2dbn1L1xmjGR+9GiKu4ajxovnrDbwxAKdHjW8jNcwfz8PAz4A== - dependencies: - "@ethersproject/bytes" "^5.8.0" - "@ethersproject/logger" "^5.8.0" - hash.js "1.1.7" - -"@ethersproject/signing-key@^5.8.0", "@ethersproject/signing-key@5.8.0": - version "5.8.0" - resolved "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.8.0.tgz" - integrity sha512-LrPW2ZxoigFi6U6aVkFN/fa9Yx/+4AtIUe4/HACTvKJdhm0eeb107EVCIQcrLZkxaSIgc/eCrX8Q1GtbH+9n3w== - dependencies: - "@ethersproject/bytes" "^5.8.0" - "@ethersproject/logger" "^5.8.0" - "@ethersproject/properties" "^5.8.0" - bn.js "^5.2.1" - elliptic "6.6.1" - hash.js "1.1.7" - -"@ethersproject/solidity@5.8.0": - version "5.8.0" - resolved "https://registry.npmjs.org/@ethersproject/solidity/-/solidity-5.8.0.tgz" - integrity sha512-4CxFeCgmIWamOHwYN9d+QWGxye9qQLilpgTU0XhYs1OahkclF+ewO+3V1U0mvpiuQxm5EHHmv8f7ClVII8EHsA== - dependencies: - "@ethersproject/bignumber" "^5.8.0" - "@ethersproject/bytes" "^5.8.0" - "@ethersproject/keccak256" "^5.8.0" - "@ethersproject/logger" "^5.8.0" - "@ethersproject/sha2" "^5.8.0" - "@ethersproject/strings" "^5.8.0" - -"@ethersproject/strings@^5.8.0", "@ethersproject/strings@5.8.0": - version "5.8.0" - resolved "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.8.0.tgz" - integrity sha512-qWEAk0MAvl0LszjdfnZ2uC8xbR2wdv4cDabyHiBh3Cldq/T8dPH3V4BbBsAYJUeonwD+8afVXld274Ls+Y1xXg== - dependencies: - "@ethersproject/bytes" "^5.8.0" - "@ethersproject/constants" "^5.8.0" - "@ethersproject/logger" "^5.8.0" - -"@ethersproject/transactions@^5.8.0", "@ethersproject/transactions@5.8.0": - version "5.8.0" - resolved "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.8.0.tgz" - integrity sha512-UglxSDjByHG0TuU17bDfCemZ3AnKO2vYrL5/2n2oXvKzvb7Cz+W9gOWXKARjp2URVwcWlQlPOEQyAviKwT4AHg== - dependencies: - "@ethersproject/address" "^5.8.0" - "@ethersproject/bignumber" "^5.8.0" - "@ethersproject/bytes" "^5.8.0" - "@ethersproject/constants" "^5.8.0" - "@ethersproject/keccak256" "^5.8.0" - "@ethersproject/logger" "^5.8.0" - "@ethersproject/properties" "^5.8.0" - "@ethersproject/rlp" "^5.8.0" - "@ethersproject/signing-key" "^5.8.0" - -"@ethersproject/units@^5.6.1", "@ethersproject/units@5.8.0": - version "5.8.0" - resolved "https://registry.npmjs.org/@ethersproject/units/-/units-5.8.0.tgz" - integrity sha512-lxq0CAnc5kMGIiWW4Mr041VT8IhNM+Pn5T3haO74XZWFulk7wH1Gv64HqE96hT4a7iiNMdOCFEBgaxWuk8ETKQ== - dependencies: - "@ethersproject/bignumber" "^5.8.0" - "@ethersproject/constants" "^5.8.0" - "@ethersproject/logger" "^5.8.0" - -"@ethersproject/wallet@^5.6.2", "@ethersproject/wallet@5.8.0": - version "5.8.0" - resolved "https://registry.npmjs.org/@ethersproject/wallet/-/wallet-5.8.0.tgz" - integrity sha512-G+jnzmgg6UxurVKRKvw27h0kvG75YKXZKdlLYmAHeF32TGUzHkOFd7Zn6QHOTYRFWnfjtSSFjBowKo7vfrXzPA== - dependencies: - "@ethersproject/abstract-provider" "^5.8.0" - "@ethersproject/abstract-signer" "^5.8.0" - "@ethersproject/address" "^5.8.0" - "@ethersproject/bignumber" "^5.8.0" - "@ethersproject/bytes" "^5.8.0" - "@ethersproject/hash" "^5.8.0" - "@ethersproject/hdnode" "^5.8.0" - "@ethersproject/json-wallets" "^5.8.0" - "@ethersproject/keccak256" "^5.8.0" - "@ethersproject/logger" "^5.8.0" - "@ethersproject/properties" "^5.8.0" - "@ethersproject/random" "^5.8.0" - "@ethersproject/signing-key" "^5.8.0" - "@ethersproject/transactions" "^5.8.0" - "@ethersproject/wordlists" "^5.8.0" - -"@ethersproject/web@^5.8.0", "@ethersproject/web@5.8.0": - version "5.8.0" - resolved "https://registry.npmjs.org/@ethersproject/web/-/web-5.8.0.tgz" - integrity sha512-j7+Ksi/9KfGviws6Qtf9Q7KCqRhpwrYKQPs+JBA/rKVFF/yaWLHJEH3zfVP2plVu+eys0d2DlFmhoQJayFewcw== - dependencies: - "@ethersproject/base64" "^5.8.0" - "@ethersproject/bytes" "^5.8.0" - "@ethersproject/logger" "^5.8.0" - "@ethersproject/properties" "^5.8.0" - "@ethersproject/strings" "^5.8.0" - -"@ethersproject/wordlists@^5.8.0", "@ethersproject/wordlists@5.8.0": - version "5.8.0" - resolved "https://registry.npmjs.org/@ethersproject/wordlists/-/wordlists-5.8.0.tgz" - integrity sha512-2df9bbXicZws2Sb5S6ET493uJ0Z84Fjr3pC4tu/qlnZERibZCeUVuqdtt+7Tv9xxhUxHoIekIA7avrKUWHrezg== - dependencies: - "@ethersproject/bytes" "^5.8.0" - "@ethersproject/hash" "^5.8.0" - "@ethersproject/logger" "^5.8.0" - "@ethersproject/properties" "^5.8.0" - "@ethersproject/strings" "^5.8.0" - "@graphql-typed-document-node/core@^3.2.0": version "3.2.0" resolved "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.2.0.tgz" @@ -1585,11 +1248,23 @@ resolved "https://registry.npmjs.org/@metamask/safe-event-emitter/-/safe-event-emitter-2.0.0.tgz" integrity sha512-/kSXhY692qiV1MXu6EeOZvg5nECLclxNXcKCxJ3cXQgYuRymRHpdx/t7JXfsK+JLjwA1e1c1/SBrlQYpusC29Q== +"@noble/curves@1.2.0": + version "1.2.0" + resolved "https://registry.npmjs.org/@noble/curves/-/curves-1.2.0.tgz" + integrity sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw== + dependencies: + "@noble/hashes" "1.3.2" + "@noble/hashes@~1.0.0", "@noble/hashes@1.0.0": version "1.0.0" resolved "https://registry.npmjs.org/@noble/hashes/-/hashes-1.0.0.tgz" integrity sha512-DZVbtY62kc3kkBtMHqwCOfXrT/hnoORy5BJ4+HU1IR59X0KWAOqsfzQPcUl/lQLlG7qXbe/fZ3r/emxtAl+sqg== +"@noble/hashes@1.3.2": + version "1.3.2" + resolved "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.2.tgz" + integrity sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ== + "@noble/secp256k1@~1.5.2", "@noble/secp256k1@1.5.5": version "1.5.5" resolved "https://registry.npmjs.org/@noble/secp256k1/-/secp256k1-1.5.5.tgz" @@ -1624,7 +1299,7 @@ "@babel/helper-module-imports" "^7.10.4" "@rollup/pluginutils" "^3.1.0" -"@rollup/plugin-commonjs@^22.0.0": +"@rollup/plugin-commonjs@^22.0.2": version "22.0.2" resolved "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-22.0.2.tgz" integrity sha512-//NdP6iIwPbMTcazYsiBMbJW7gfmpHom33u1beiIoHDEM0Q9clvtQB1T0efvMqHeKsGohiHo97BCPCkBXdscwg== @@ -1752,10 +1427,10 @@ ethereumjs-wallet "^1.0.1" web3-provider-engine "16.0.3" -"@typechain/ethers-v5@^10.0.0": - version "10.2.1" - resolved "https://registry.npmjs.org/@typechain/ethers-v5/-/ethers-v5-10.2.1.tgz" - integrity sha512-n3tQmCZjRE6IU4h6lqUGiQ1j866n5MTCBJreNEHHVWXa2u9GJTaeYyU1/k+1qLutkyw+sS6VAN+AbeiTqsxd/A== +"@typechain/ethers-v6@^0.5.0": + version "0.5.1" + resolved "https://registry.npmjs.org/@typechain/ethers-v6/-/ethers-v6-0.5.1.tgz" + integrity sha512-F+GklO8jBWlsaVV+9oHaPh5NJdd6rAKN4tklGfInX1Q7h0xPgVLP39Jl3eCulPB5qexI71ZFHwbljx4ZXNfouA== dependencies: lodash "^4.17.15" ts-essentials "^7.0.1" @@ -1868,6 +1543,13 @@ dependencies: undici-types "~6.20.0" +"@types/node@22.7.5": + version "22.7.5" + resolved "https://registry.npmjs.org/@types/node/-/node-22.7.5.tgz" + integrity sha512-jML7s2NAzMWc//QSJ1a3prpk78cOPchGvXJsC3C6R6PSMoooztvRVQEz89gmBTBY1SPMaqo5teB4uNHPdetShQ== + dependencies: + undici-types "~6.19.2" + "@types/pbkdf2@^3.0.0": version "3.1.2" resolved "https://registry.npmjs.org/@types/pbkdf2/-/pbkdf2-3.1.2.tgz" @@ -2034,10 +1716,10 @@ aes-js@^3.1.2: resolved "https://registry.npmjs.org/aes-js/-/aes-js-3.1.2.tgz" integrity sha512-e5pEa2kBnBOgR4Y/p20pskXI74UEz7de8ZGVo58asOtvSVG5YAbJeELPZxOmt+Bnz3rX753YKhfIn4X4l1PPRQ== -aes-js@3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz" - integrity sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw== +aes-js@4.0.0-beta.5: + version "4.0.0-beta.5" + resolved "https://registry.npmjs.org/aes-js/-/aes-js-4.0.0-beta.5.tgz" + integrity sha512-G965FqalsNyrPqgEGON7nIx1e/OVENSgiEIzyC63haUMuvNnwIgIjMs52hlTCKhkBny7A2ORNlfY9Zu+jmGk1Q== ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.3: version "6.12.6" @@ -2385,11 +2067,6 @@ bcrypt-pbkdf@^1.0.0: dependencies: tweetnacl "^0.14.3" -bech32@1.1.4: - version "1.1.4" - resolved "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz" - integrity sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ== - bignumber.js@^9.0.1: version "9.1.2" resolved "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.2.tgz" @@ -2420,11 +2097,6 @@ bn.js@^5.2.0: resolved "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz" integrity sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ== -bn.js@^5.2.1: - version "5.2.1" - resolved "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz" - integrity sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ== - brace-expansion@^1.1.7: version "1.1.11" resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz" @@ -3038,7 +2710,7 @@ electron-to-chromium@^1.5.73: resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.118.tgz" integrity sha512-yNDUus0iultYyVoEFLnQeei7LOQkL8wg8GQpkPCRrOlJXlcCwa6eGKZkxQ9ciHsqZyYbj8Jd94X1CTPzGm+uIA== -elliptic@^6.5.2, elliptic@^6.5.7, elliptic@6.6.1: +elliptic@^6.5.2, elliptic@^6.5.7: version "6.6.1" resolved "https://registry.npmjs.org/elliptic/-/elliptic-6.6.1.tgz" integrity sha512-RaddvvMatK2LJHqFJ+YA4WysVN5Ita9E35botqIYspQ4TkRAlCicdzKOjlyv/1Za5RyTNn7di//eEV0uTAfe3g== @@ -3370,6 +3042,11 @@ estraverse@^5.1.0, estraverse@^5.2.0: resolved "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz" integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== +estree-walker@^0.6.1: + version "0.6.1" + resolved "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz" + integrity sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w== + estree-walker@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz" @@ -3748,41 +3425,18 @@ ethereumjs-wallet@^1.0.1: utf8 "^3.0.0" uuid "^8.3.2" -ethers@^5.1.3, ethers@^5.6.8: - version "5.8.0" - resolved "https://registry.npmjs.org/ethers/-/ethers-5.8.0.tgz" - integrity sha512-DUq+7fHrCg1aPDFCHx6UIPb3nmt2XMpM7Y/g2gLhsl3lIBqeAfOJIl1qEvRf2uq3BiKxmh6Fh5pfp2ieyek7Kg== - dependencies: - "@ethersproject/abi" "5.8.0" - "@ethersproject/abstract-provider" "5.8.0" - "@ethersproject/abstract-signer" "5.8.0" - "@ethersproject/address" "5.8.0" - "@ethersproject/base64" "5.8.0" - "@ethersproject/basex" "5.8.0" - "@ethersproject/bignumber" "5.8.0" - "@ethersproject/bytes" "5.8.0" - "@ethersproject/constants" "5.8.0" - "@ethersproject/contracts" "5.8.0" - "@ethersproject/hash" "5.8.0" - "@ethersproject/hdnode" "5.8.0" - "@ethersproject/json-wallets" "5.8.0" - "@ethersproject/keccak256" "5.8.0" - "@ethersproject/logger" "5.8.0" - "@ethersproject/networks" "5.8.0" - "@ethersproject/pbkdf2" "5.8.0" - "@ethersproject/properties" "5.8.0" - "@ethersproject/providers" "5.8.0" - "@ethersproject/random" "5.8.0" - "@ethersproject/rlp" "5.8.0" - "@ethersproject/sha2" "5.8.0" - "@ethersproject/signing-key" "5.8.0" - "@ethersproject/solidity" "5.8.0" - "@ethersproject/strings" "5.8.0" - "@ethersproject/transactions" "5.8.0" - "@ethersproject/units" "5.8.0" - "@ethersproject/wallet" "5.8.0" - "@ethersproject/web" "5.8.0" - "@ethersproject/wordlists" "5.8.0" +ethers@^6.15.0, ethers@6.x: + version "6.15.0" + resolved "https://registry.npmjs.org/ethers/-/ethers-6.15.0.tgz" + integrity sha512-Kf/3ZW54L4UT0pZtsY/rf+EkBU7Qi5nnhonjUb8yTXcxH3cdcWrV2cRyk0Xk/4jK6OoHhxxZHriyhje20If2hQ== + dependencies: + "@adraffy/ens-normalize" "1.10.1" + "@noble/curves" "1.2.0" + "@noble/hashes" "1.3.2" + "@types/node" "22.7.5" + aes-js "4.0.0-beta.5" + tslib "2.7.0" + ws "8.17.1" ethjs-util@^0.1.3, ethjs-util@^0.1.6, ethjs-util@0.1.6: version "0.1.6" @@ -4321,7 +3975,7 @@ hash-base@^3.0.0: readable-stream "^3.6.0" safe-buffer "^5.2.0" -hash.js@^1.0.0, hash.js@^1.0.3, hash.js@^1.1.7, hash.js@1.1.7: +hash.js@^1.0.0, hash.js@^1.0.3, hash.js@^1.1.7: version "1.1.7" resolved "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz" integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== @@ -5185,7 +4839,7 @@ jest@^29.0.0, jest@^29.1.0: import-local "^3.0.2" jest-cli "^29.7.0" -js-sha3@^0.8.0, js-sha3@0.8.0: +js-sha3@^0.8.0: version "0.8.0" resolved "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz" integrity sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q== @@ -5457,7 +5111,7 @@ ltgt@~2.2.0: resolved "https://registry.npmjs.org/ltgt/-/ltgt-2.2.1.tgz" integrity sha512-AI2r85+4MquTw9ZYqabu4nMwy9Oftlfa/e/52t9IjtfG+mGBbTNdAoZ3RQKLHR6r0wQnwZnPIEh/Ya6XTWAKNA== -magic-string@^0.25.7: +magic-string@^0.25.3, magic-string@^0.25.7: version "0.25.9" resolved "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz" integrity sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ== @@ -6281,6 +5935,22 @@ rm-cli@^1.4.2: bluebird "^3.5.1" glob "^7.1.0" +rollup-plugin-inject@^3.0.0: + version "3.0.2" + resolved "https://registry.npmjs.org/rollup-plugin-inject/-/rollup-plugin-inject-3.0.2.tgz" + integrity sha512-ptg9PQwzs3orn4jkgXJ74bfs5vYz1NCZlSQMBUA0wKcGp5i5pA1AO3fOUEte8enhGUC+iapTCzEWw2jEFFUO/w== + dependencies: + estree-walker "^0.6.1" + magic-string "^0.25.3" + rollup-pluginutils "^2.8.1" + +rollup-plugin-node-polyfills@^0.2.1: + version "0.2.1" + resolved "https://registry.npmjs.org/rollup-plugin-node-polyfills/-/rollup-plugin-node-polyfills-0.2.1.tgz" + integrity sha512-4kCrKPTJ6sK4/gLL/U5QzVT8cxJcofO0OU74tnB19F40cmuAKSzH5/siithxlofFEjwvw1YAhPmbvGNA6jEroA== + dependencies: + rollup-plugin-inject "^3.0.0" + rollup-plugin-terser@^7.0.2: version "7.0.2" resolved "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz" @@ -6291,6 +5961,13 @@ rollup-plugin-terser@^7.0.2: serialize-javascript "^4.0.0" terser "^5.0.0" +rollup-pluginutils@^2.8.1: + version "2.8.2" + resolved "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz" + integrity sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ== + dependencies: + estree-walker "^0.6.1" + "rollup@^1.20.0 || ^2.0.0", rollup@^1.20.0||^2.0.0, rollup@^2.0.0, rollup@^2.14.0, rollup@^2.42.0, rollup@^2.68.0, rollup@^2.72.1: version "2.79.2" resolved "https://registry.npmjs.org/rollup/-/rollup-2.79.2.tgz" @@ -6372,7 +6049,7 @@ safer-buffer@^2.0.2, safer-buffer@^2.1.0, "safer-buffer@>= 2.1.2 < 3", safer-buf resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== -scrypt-js@^3.0.0, scrypt-js@^3.0.1, scrypt-js@3.0.1: +scrypt-js@^3.0.0, scrypt-js@^3.0.1: version "3.0.1" resolved "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz" integrity sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA== @@ -6944,6 +6621,11 @@ tslib@^1.9.0: resolved "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== +tslib@2.7.0: + version "2.7.0" + resolved "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz" + integrity sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA== + tslint-config-prettier@^1.18.0: version "1.18.0" resolved "https://registry.npmjs.org/tslint-config-prettier/-/tslint-config-prettier-1.18.0.tgz" @@ -7026,7 +6708,7 @@ type-fest@^0.8.1: resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz" integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== -typechain@^8.0.0, typechain@^8.1.1: +typechain@^8.0.0, typechain@^8.3.2: version "8.3.2" resolved "https://registry.npmjs.org/typechain/-/typechain-8.3.2.tgz" integrity sha512-x/sQYr5w9K7yv3es7jo4KTX05CLxOf7TRWwoHlrjRh8H82G64g+k7VuWPJlgMo6qrjfCulOdfBjiaDtmhFYD/Q== @@ -7087,7 +6769,7 @@ typed-array-length@^1.0.7: possible-typed-array-names "^1.0.0" reflect.getprototypeof "^1.0.6" -typescript@^4.7.3, "typescript@>=2.1.0 || >=2.1.0-dev || >=2.2.0-dev || >=2.3.0-dev || >=2.4.0-dev || >=2.5.0-dev || >=2.6.0-dev || >=2.7.0-dev || >=2.8.0-dev || >=2.9.0-dev || >= 3.0.0-dev || >= 3.1.0-dev", "typescript@>=2.3.0-dev || >=2.4.0-dev || >=2.5.0-dev || >=2.6.0-dev || >=2.7.0-dev || >=2.8.0-dev || >=2.9.0-dev || >=3.0.0-dev || >= 3.1.0-dev || >= 3.2.0-dev || >= 4.0.0-dev", "typescript@>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta", typescript@>=3.7.0, "typescript@>=4.3 <6", typescript@>=4.3.0: +typescript@^4.7.3, "typescript@>=2.1.0 || >=2.1.0-dev || >=2.2.0-dev || >=2.3.0-dev || >=2.4.0-dev || >=2.5.0-dev || >=2.6.0-dev || >=2.7.0-dev || >=2.8.0-dev || >=2.9.0-dev || >= 3.0.0-dev || >= 3.1.0-dev", "typescript@>=2.3.0-dev || >=2.4.0-dev || >=2.5.0-dev || >=2.6.0-dev || >=2.7.0-dev || >=2.8.0-dev || >=2.9.0-dev || >=3.0.0-dev || >= 3.1.0-dev || >= 3.2.0-dev || >= 4.0.0-dev", "typescript@>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta", typescript@>=3.7.0, "typescript@>=4.3 <6", typescript@>=4.3.0, typescript@>=4.7.0: version "4.9.5" resolved "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz" integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g== @@ -7112,6 +6794,11 @@ unbox-primitive@^1.1.0: has-symbols "^1.1.0" which-boxed-primitive "^1.1.1" +undici-types@~6.19.2: + version "6.19.8" + resolved "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz" + integrity sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw== + undici-types@~6.20.0: version "6.20.0" resolved "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz" @@ -7404,10 +7091,10 @@ ws@^7.5.9: resolved "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz" integrity sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ== -ws@8.18.0: - version "8.18.0" - resolved "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz" - integrity sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw== +ws@8.17.1: + version "8.17.1" + resolved "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz" + integrity sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ== xhr@^2.2.0: version "2.6.0"