diff --git a/package-lock.json b/package-lock.json
index 6cc5622..76f344c 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -19,7 +19,7 @@
"@radix-ui/react-toggle": "^1.1.2",
"@radix-ui/react-toggle-group": "^1.1.2",
"@radix-ui/react-tooltip": "^1.1.8",
- "@waku/rln": "0.1.10-593bc45.0",
+ "@waku/rln": "0.1.11-44ad556.0",
"class-variance-authority": "^0.7.1",
"clsx": "^2.1.1",
"framer-motion": "^12.6.3",
@@ -30,7 +30,8 @@
"react-dom": "^19.0.0",
"react-markdown": "^10.1.0",
"sonner": "^2.0.3",
- "tailwind-merge": "^3.1.0"
+ "tailwind-merge": "^3.1.0",
+ "viem": "^2.21.54"
},
"devDependencies": {
"@eslint/eslintrc": "^3",
@@ -45,6 +46,12 @@
"typescript": "^5"
}
},
+ "node_modules/@adraffy/ens-normalize": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/@adraffy/ens-normalize/-/ens-normalize-1.11.1.tgz",
+ "integrity": "sha512-nhCBV3quEgesuf7c7KYfperqSS14T8bYuvJ8PcLJp6znkZpFc0AuW4qBtr8eKVyPPe/8RSr7sglCWPU5eaxwKQ==",
+ "license": "MIT"
+ },
"node_modules/@alloc/quick-lru": {
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz",
@@ -324,164 +331,6 @@
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
}
},
- "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/bytes": {
"version": "5.8.0",
"resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.8.0.tgz",
@@ -501,161 +350,6 @@
"@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",
@@ -672,122 +366,6 @@
],
"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",
@@ -808,223 +386,6 @@
"@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/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/@floating-ui/core": {
"version": "1.6.9",
"resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.9.tgz",
@@ -1292,12 +653,12 @@
"license": "MIT"
},
"node_modules/@libp2p/crypto": {
- "version": "5.1.11",
- "resolved": "https://registry.npmjs.org/@libp2p/crypto/-/crypto-5.1.11.tgz",
- "integrity": "sha512-J+C4bntXEhf43fJZbgyoa4XI8/kzwB5wE/2FoNQcwhIwgDd4YyRB1SHswgI0KWqF0pgKtFLE+sLnUBn/ZYUTjw==",
+ "version": "5.1.13",
+ "resolved": "https://registry.npmjs.org/@libp2p/crypto/-/crypto-5.1.13.tgz",
+ "integrity": "sha512-8NN9cQP3jDn+p9+QE9ByiEoZ2lemDFf/unTgiKmS3JF93ph240EUVdbCyyEgOMfykzb0okTM4gzvwfx9osJebQ==",
"license": "Apache-2.0 OR MIT",
"dependencies": {
- "@libp2p/interface": "^3.0.1",
+ "@libp2p/interface": "^3.1.0",
"@noble/curves": "^2.0.1",
"@noble/hashes": "^2.0.1",
"multiformats": "^13.4.0",
@@ -1307,9 +668,9 @@
}
},
"node_modules/@libp2p/crypto/node_modules/@libp2p/interface": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/@libp2p/interface/-/interface-3.0.1.tgz",
- "integrity": "sha512-Fc502I77E+vLiADk7PyydM3NwW6F1HCQGhhtbzi9jLb+X8KgVBL3wlPqWXVM8fyQ++4CpOcAyMel8UYhIXr26w==",
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/@libp2p/interface/-/interface-3.1.0.tgz",
+ "integrity": "sha512-RE7/XyvC47fQBe1cHxhMvepYKa5bFCUyFrrpj8PuM0E7JtzxU7F+Du5j4VXbg2yLDcToe0+j8mB7jvwE2AThYw==",
"license": "Apache-2.0 OR MIT",
"dependencies": {
"@multiformats/dns": "^1.0.6",
@@ -1471,15 +832,15 @@
}
},
"node_modules/@multiformats/dns": {
- "version": "1.0.9",
- "resolved": "https://registry.npmjs.org/@multiformats/dns/-/dns-1.0.9.tgz",
- "integrity": "sha512-Ja4hevWI9p96ICx11K3suFvFirnMmXILzS7FpsR2KG3FoKF/XJijm8ylf3vY6kRFGr98yfZYM+zIn18KaINs3A==",
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/@multiformats/dns/-/dns-1.0.10.tgz",
+ "integrity": "sha512-6X200ceQLns0b/CU0S/So16tGjB5eIXHJ1xvJMPoWaKFHWSgfpW2EhkWJrqap4U3+c37zcowVR0ToPXeYEL7Vw==",
"license": "Apache-2.0 OR MIT",
"dependencies": {
"buffer": "^6.0.3",
"dns-packet": "^5.6.1",
"hashlru": "^2.3.0",
- "p-queue": "^8.0.1",
+ "p-queue": "^9.0.0",
"progress-events": "^1.0.0",
"uint8arrays": "^5.0.2"
}
@@ -2993,18 +2354,45 @@
"darwin"
]
},
+ "node_modules/@wagmi/core": {
+ "version": "2.22.1",
+ "resolved": "https://registry.npmjs.org/@wagmi/core/-/core-2.22.1.tgz",
+ "integrity": "sha512-cG/xwQWsBEcKgRTkQVhH29cbpbs/TdcUJVFXCyri3ZknxhMyGv0YEjTcrNpRgt2SaswL1KrvslSNYKKo+5YEAg==",
+ "license": "MIT",
+ "dependencies": {
+ "eventemitter3": "5.0.1",
+ "mipd": "0.0.7",
+ "zustand": "5.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/wevm"
+ },
+ "peerDependencies": {
+ "@tanstack/query-core": ">=5.0.0",
+ "typescript": ">=5.0.4",
+ "viem": "2.x"
+ },
+ "peerDependenciesMeta": {
+ "@tanstack/query-core": {
+ "optional": true
+ },
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
"node_modules/@waku/core": {
- "version": "0.0.40-593bc45.0",
- "resolved": "https://registry.npmjs.org/@waku/core/-/core-0.0.40-593bc45.0.tgz",
- "integrity": "sha512-STERLmw+lNFOUynRrdD33E4cwAEBTTobdaGcERJhfeeaipvQYmoQ5PQpnJLh34kV1wka1Jl+5EW4oj6SHFaRHw==",
+ "version": "0.0.41-44ad556.0",
+ "resolved": "https://registry.npmjs.org/@waku/core/-/core-0.0.41-44ad556.0.tgz",
+ "integrity": "sha512-4mJXHJFSi8mAikaYzfjzvP/oX1WYC1LJjdkzdRsqdJit9hiIPTbeUGXHWV7H9625fr/7RZVSFmeSuhGf0DNIoQ==",
"license": "MIT OR Apache-2.0",
"dependencies": {
"@libp2p/ping": "2.0.35",
"@noble/hashes": "^1.3.2",
- "@waku/enr": "0.0.34-593bc45.0",
- "@waku/interfaces": "0.0.35-593bc45.0",
- "@waku/proto": "0.0.15-593bc45.0",
- "@waku/utils": "0.0.28-593bc45.0",
+ "@waku/enr": "0.0.34-44ad556.0",
+ "@waku/interfaces": "0.0.35-44ad556.0",
+ "@waku/proto": "0.0.16-44ad556.0",
+ "@waku/utils": "0.0.28-44ad556.0",
"debug": "^4.3.4",
"it-all": "^3.0.4",
"it-length-prefixed": "^9.0.4",
@@ -3042,9 +2430,9 @@
}
},
"node_modules/@waku/enr": {
- "version": "0.0.34-593bc45.0",
- "resolved": "https://registry.npmjs.org/@waku/enr/-/enr-0.0.34-593bc45.0.tgz",
- "integrity": "sha512-59lJhBOUUXcIJJo6ApUz3ntUUn1PGSFs8dbfuN/0TRreexjzcmwrrX0TKX2hfUoJlY670D9YnbZuaeT3oCO/1Q==",
+ "version": "0.0.34-44ad556.0",
+ "resolved": "https://registry.npmjs.org/@waku/enr/-/enr-0.0.34-44ad556.0.tgz",
+ "integrity": "sha512-CMSch/jK/nYMQlYkc4Ap/AfAVz24CTUFOOS1Bxm2H/sc1Zmz8WcYLzuo4N4ifZ4wL+MeJrGm2v2inmdOKsFx+w==",
"license": "MIT OR Apache-2.0",
"dependencies": {
"@ethersproject/rlp": "^5.7.0",
@@ -3052,7 +2440,7 @@
"@libp2p/peer-id": "5.1.7",
"@multiformats/multiaddr": "^12.0.0",
"@noble/secp256k1": "^1.7.1",
- "@waku/utils": "0.0.28-593bc45.0",
+ "@waku/utils": "0.0.28-44ad556.0",
"debug": "^4.3.4",
"js-sha3": "^0.9.2"
},
@@ -3122,25 +2510,19 @@
"url": "https://paulmillr.com/funding/"
}
},
- "node_modules/@waku/enr/node_modules/js-sha3": {
- "version": "0.9.3",
- "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.9.3.tgz",
- "integrity": "sha512-BcJPCQeLg6WjEx3FE591wVAevlli8lxsxm9/FzV4HXkV49TmBH38Yvrpce6fjbADGMKFrBMGTqrVz3qPIZ88Gg==",
- "license": "MIT"
- },
"node_modules/@waku/interfaces": {
- "version": "0.0.35-593bc45.0",
- "resolved": "https://registry.npmjs.org/@waku/interfaces/-/interfaces-0.0.35-593bc45.0.tgz",
- "integrity": "sha512-BAQs7Qbm3Vbb8ZMcH0b/7RaA0c39HChuU9aHrNYWemwcZ7ZmQbJPGGQmRqnQkPpWJs0eo0VRPTjZbnE9Vi6I+Q==",
+ "version": "0.0.35-44ad556.0",
+ "resolved": "https://registry.npmjs.org/@waku/interfaces/-/interfaces-0.0.35-44ad556.0.tgz",
+ "integrity": "sha512-t1f557WXcVHohzKdKnsv+L6uSOZrnbGL9Lw2023lkn8/vHjyipO2OoT69J26nlX5wOtjksdqZyWEvaRH9/dNtg==",
"license": "MIT OR Apache-2.0",
"engines": {
"node": ">=22"
}
},
"node_modules/@waku/proto": {
- "version": "0.0.15-593bc45.0",
- "resolved": "https://registry.npmjs.org/@waku/proto/-/proto-0.0.15-593bc45.0.tgz",
- "integrity": "sha512-fGYt25PvZBZv0EBjvLVzopFBkum3iUQs+1Kjyju3cA5zULA4FH2G8CMmBts81rH0EpGSi/eeUal119+kuctZHw==",
+ "version": "0.0.16-44ad556.0",
+ "resolved": "https://registry.npmjs.org/@waku/proto/-/proto-0.0.16-44ad556.0.tgz",
+ "integrity": "sha512-u1K03anZQa31PYlSFVQFZkb+ffa1p+BjuhHGRXZax9t+Qgyg2EnsIG2IFMNkDSUMEnhTdxuAl1oEmuAr69ywtA==",
"license": "MIT OR Apache-2.0",
"dependencies": {
"protons-runtime": "^5.4.0"
@@ -3150,38 +2532,39 @@
}
},
"node_modules/@waku/rln": {
- "version": "0.1.10-593bc45.0",
- "resolved": "https://registry.npmjs.org/@waku/rln/-/rln-0.1.10-593bc45.0.tgz",
- "integrity": "sha512-nkUcwfosKDXSsqzxBzTV+x9Iiuo0Ti5vVLQP8MnWttf4FuJxR8hKcde9+hvkzZZTZntn6TEQaYFzG3KOAC2kcA==",
+ "version": "0.1.11-44ad556.0",
+ "resolved": "https://registry.npmjs.org/@waku/rln/-/rln-0.1.11-44ad556.0.tgz",
+ "integrity": "sha512-28xhhs+rokw8otGIWbPGDGpLPlvXJ+n3yuZTeU7DoGR0kkMoAnUu0wqPMdhbPITAj3oEIEjfHjOoOA67l/rKzQ==",
"license": "MIT OR Apache-2.0",
"dependencies": {
"@chainsafe/bls-keystore": "3.0.0",
"@noble/hashes": "^1.2.0",
- "@waku/core": "0.0.40-593bc45.0",
- "@waku/utils": "0.0.28-593bc45.0",
+ "@wagmi/core": "^2.22.1",
+ "@waku/core": "0.0.41-44ad556.0",
+ "@waku/utils": "0.0.28-44ad556.0",
"@waku/zerokit-rln-wasm": "^0.2.1",
"chai": "^5.1.2",
"chai-as-promised": "^8.0.1",
"chai-spies": "^1.1.0",
"chai-subset": "^1.6.0",
"ethereum-cryptography": "^3.1.0",
- "ethers": "^5.7.2",
"lodash": "^4.17.21",
"sinon": "^19.0.2",
- "uuid": "^11.0.5"
+ "uuid": "^11.0.5",
+ "viem": "^2.38.4"
},
"engines": {
"node": ">=22"
}
},
"node_modules/@waku/utils": {
- "version": "0.0.28-593bc45.0",
- "resolved": "https://registry.npmjs.org/@waku/utils/-/utils-0.0.28-593bc45.0.tgz",
- "integrity": "sha512-m4FEzl89cVx6dCQYd15VxRmeqT1DTodHEAS4st7UMdNwaURGWeADbw37NPRc0wHu6LocQYQshJEP1eXtbTkmwg==",
+ "version": "0.0.28-44ad556.0",
+ "resolved": "https://registry.npmjs.org/@waku/utils/-/utils-0.0.28-44ad556.0.tgz",
+ "integrity": "sha512-vaA4rOLp1UvxA6buqnWsj6TSfsrDTwLN6TNEoeechk7zppfqnURaRKc/xrSbWVjK7lgOJZFCuvDrHR/pls5gFw==",
"license": "MIT OR Apache-2.0",
"dependencies": {
"@noble/hashes": "^1.3.2",
- "@waku/interfaces": "0.0.35-593bc45.0",
+ "@waku/interfaces": "0.0.35-44ad556.0",
"chai": "^4.3.10",
"debug": "^4.3.4",
"uint8arrays": "^5.0.1"
@@ -3265,6 +2648,27 @@
"integrity": "sha512-2Xp7e92y4qZpsiTPGBSVr4gVJ9mJTLaudlo0DQxNpxJUBtoJKpxdH5xDCQDiorbkWZC2j9EId+ohhxHO/xC1QQ==",
"license": "MIT or Apache2"
},
+ "node_modules/abitype": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/abitype/-/abitype-1.1.0.tgz",
+ "integrity": "sha512-6Vh4HcRxNMLA0puzPjM5GBgT4aAcFGKZzSgAXvuZ27shJP6NEpielTuqbBmZILR5/xd0PizkBGy5hReKz9jl5A==",
+ "license": "MIT",
+ "funding": {
+ "url": "https://github.com/sponsors/wevm"
+ },
+ "peerDependencies": {
+ "typescript": ">=5.0.4",
+ "zod": "^3.22.0 || ^4.0.0"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ },
+ "zod": {
+ "optional": true
+ }
+ }
+ },
"node_modules/abort-error": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/abort-error/-/abort-error-1.0.1.tgz",
@@ -3294,12 +2698,6 @@
"acorn": "^6.0.0 || ^7.0.0 || ^8.0.0"
}
},
- "node_modules/aes-js": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz",
- "integrity": "sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw==",
- "license": "MIT"
- },
"node_modules/ajv": {
"version": "6.12.6",
"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
@@ -3667,12 +3065,6 @@
],
"license": "MIT"
},
- "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/binary-extensions": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz",
@@ -3686,12 +3078,6 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "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/brace-expansion": {
"version": "1.1.11",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
@@ -3716,12 +3102,6 @@
"node": ">=8"
}
},
- "node_modules/brorand": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz",
- "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==",
- "license": "MIT"
- },
"node_modules/buffer": {
"version": "6.0.3",
"resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz",
@@ -4393,27 +3773,6 @@
"dev": true,
"license": "MIT"
},
- "node_modules/elliptic": {
- "version": "6.6.1",
- "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.6.1.tgz",
- "integrity": "sha512-RaddvvMatK2LJHqFJ+YA4WysVN5Ita9E35botqIYspQ4TkRAlCicdzKOjlyv/1Za5RyTNn7di//eEV0uTAfe3g==",
- "license": "MIT",
- "dependencies": {
- "bn.js": "^4.11.9",
- "brorand": "^1.1.0",
- "hash.js": "^1.0.0",
- "hmac-drbg": "^1.0.1",
- "inherits": "^2.0.4",
- "minimalistic-assert": "^1.0.1",
- "minimalistic-crypto-utils": "^1.0.1"
- }
- },
- "node_modules/elliptic/node_modules/bn.js": {
- "version": "4.12.1",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.1.tgz",
- "integrity": "sha512-k8TVBiPkPJT9uHLdOKfFpqcfprwBFOAAXXozRubr7R7PfIuKvQlzcI4M0pALeqXN09vdaMbUdUj+pass+uULAg==",
- "license": "MIT"
- },
"node_modules/emoji-regex": {
"version": "8.0.0",
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
@@ -5108,54 +4467,6 @@
"url": "https://paulmillr.com/funding/"
}
},
- "node_modules/ethers": {
- "version": "5.8.0",
- "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.8.0.tgz",
- "integrity": "sha512-DUq+7fHrCg1aPDFCHx6UIPb3nmt2XMpM7Y/g2gLhsl3lIBqeAfOJIl1qEvRf2uq3BiKxmh6Fh5pfp2ieyek7Kg==",
- "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/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"
- }
- },
"node_modules/eventemitter3": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz",
@@ -5679,16 +4990,6 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/hash.js": {
- "version": "1.1.7",
- "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz",
- "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==",
- "license": "MIT",
- "dependencies": {
- "inherits": "^2.0.3",
- "minimalistic-assert": "^1.0.1"
- }
- },
"node_modules/hashlru": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/hashlru/-/hashlru-2.3.0.tgz",
@@ -5748,17 +5049,6 @@
"url": "https://opencollective.com/unified"
}
},
- "node_modules/hmac-drbg": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz",
- "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==",
- "license": "MIT",
- "dependencies": {
- "hash.js": "^1.0.3",
- "minimalistic-assert": "^1.0.0",
- "minimalistic-crypto-utils": "^1.0.1"
- }
- },
"node_modules/html-url-attributes": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/html-url-attributes/-/html-url-attributes-3.0.1.tgz",
@@ -5826,12 +5116,6 @@
"node": ">=0.8.19"
}
},
- "node_modules/inherits": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
- "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
- "license": "ISC"
- },
"node_modules/inline-style-parser": {
"version": "0.2.4",
"resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.2.4.tgz",
@@ -6363,6 +5647,21 @@
"dev": true,
"license": "ISC"
},
+ "node_modules/isows": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/isows/-/isows-1.0.7.tgz",
+ "integrity": "sha512-I1fSfDCZL5P0v33sVqeTDSpcstAg/N+wF5HS033mogOVIp4B+oHC7oOCsA3axAbBSGTJ8QubbNmnIRN/h8U7hg==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/wevm"
+ }
+ ],
+ "license": "MIT",
+ "peerDependencies": {
+ "ws": "*"
+ }
+ },
"node_modules/it-all": {
"version": "3.0.9",
"resolved": "https://registry.npmjs.org/it-all/-/it-all-3.0.9.tgz",
@@ -6523,9 +5822,9 @@
}
},
"node_modules/js-sha3": {
- "version": "0.8.0",
- "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz",
- "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==",
+ "version": "0.9.3",
+ "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.9.3.tgz",
+ "integrity": "sha512-BcJPCQeLg6WjEx3FE591wVAevlli8lxsxm9/FzV4HXkV49TmBH38Yvrpce6fjbADGMKFrBMGTqrVz3qPIZ88Gg==",
"license": "MIT"
},
"node_modules/js-tokens": {
@@ -7383,18 +6682,6 @@
"node": ">=8.6"
}
},
- "node_modules/minimalistic-assert": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz",
- "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==",
- "license": "ISC"
- },
- "node_modules/minimalistic-crypto-utils": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz",
- "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==",
- "license": "MIT"
- },
"node_modules/minimatch": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
@@ -7428,6 +6715,26 @@
"node": ">=16 || 14 >=14.17"
}
},
+ "node_modules/mipd": {
+ "version": "0.0.7",
+ "resolved": "https://registry.npmjs.org/mipd/-/mipd-0.0.7.tgz",
+ "integrity": "sha512-aAPZPNDQ3uMTdKbuO2YmAw2TxLHO0moa4YKAyETM/DTj5FloZo+a+8tU+iv4GmW+sOxKLSRwcSFuczk+Cpt6fg==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/wagmi-dev"
+ }
+ ],
+ "license": "MIT",
+ "peerDependencies": {
+ "typescript": ">=5.0.4"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
"node_modules/motion-dom": {
"version": "12.7.4",
"resolved": "https://registry.npmjs.org/motion-dom/-/motion-dom-12.7.4.tgz",
@@ -7785,6 +7092,111 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/ox": {
+ "version": "0.9.6",
+ "resolved": "https://registry.npmjs.org/ox/-/ox-0.9.6.tgz",
+ "integrity": "sha512-8SuCbHPvv2eZLYXrNmC0EC12rdzXQLdhnOMlHDW2wiCPLxBrOOJwX5L5E61by+UjTPOryqQiRSnjIKCI+GykKg==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/wevm"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "@adraffy/ens-normalize": "^1.11.0",
+ "@noble/ciphers": "^1.3.0",
+ "@noble/curves": "1.9.1",
+ "@noble/hashes": "^1.8.0",
+ "@scure/bip32": "^1.7.0",
+ "@scure/bip39": "^1.6.0",
+ "abitype": "^1.0.9",
+ "eventemitter3": "5.0.1"
+ },
+ "peerDependencies": {
+ "typescript": ">=5.4.0"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/ox/node_modules/@noble/ciphers": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/@noble/ciphers/-/ciphers-1.3.0.tgz",
+ "integrity": "sha512-2I0gnIVPtfnMw9ee9h1dJG7tp81+8Ob3OJb3Mv37rx5L40/b0i7djjCVvGOVqc9AEIQyvyu1i6ypKdFw8R8gQw==",
+ "license": "MIT",
+ "engines": {
+ "node": "^14.21.3 || >=16"
+ },
+ "funding": {
+ "url": "https://paulmillr.com/funding/"
+ }
+ },
+ "node_modules/ox/node_modules/@noble/curves": {
+ "version": "1.9.1",
+ "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.9.1.tgz",
+ "integrity": "sha512-k11yZxZg+t+gWvBbIswW0yoJlu8cHOC7dhunwOzoWH/mXGBiYyR4YY6hAEK/3EUs4UpB8la1RfdRpeGsFHkWsA==",
+ "license": "MIT",
+ "dependencies": {
+ "@noble/hashes": "1.8.0"
+ },
+ "engines": {
+ "node": "^14.21.3 || >=16"
+ },
+ "funding": {
+ "url": "https://paulmillr.com/funding/"
+ }
+ },
+ "node_modules/ox/node_modules/@noble/hashes": {
+ "version": "1.8.0",
+ "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.8.0.tgz",
+ "integrity": "sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==",
+ "license": "MIT",
+ "engines": {
+ "node": "^14.21.3 || >=16"
+ },
+ "funding": {
+ "url": "https://paulmillr.com/funding/"
+ }
+ },
+ "node_modules/ox/node_modules/@scure/base": {
+ "version": "1.2.6",
+ "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.2.6.tgz",
+ "integrity": "sha512-g/nm5FgUa//MCj1gV09zTJTaM6KBAHqLN907YVQqf7zC49+DcO4B1so4ZX07Ef10Twr6nuqYEH9GEggFXA4Fmg==",
+ "license": "MIT",
+ "funding": {
+ "url": "https://paulmillr.com/funding/"
+ }
+ },
+ "node_modules/ox/node_modules/@scure/bip32": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.7.0.tgz",
+ "integrity": "sha512-E4FFX/N3f4B80AKWp5dP6ow+flD1LQZo/w8UnLGYZO674jS6YnYeepycOOksv+vLPSpgN35wgKgy+ybfTb2SMw==",
+ "license": "MIT",
+ "dependencies": {
+ "@noble/curves": "~1.9.0",
+ "@noble/hashes": "~1.8.0",
+ "@scure/base": "~1.2.5"
+ },
+ "funding": {
+ "url": "https://paulmillr.com/funding/"
+ }
+ },
+ "node_modules/ox/node_modules/@scure/bip39": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.6.0.tgz",
+ "integrity": "sha512-+lF0BbLiJNwVlev4eKelw1WWLaiKXw7sSl8T6FvBlWkdX+94aGJ4o8XjUdlyhTCjd8c+B3KT3JfS8P0bLRNU6A==",
+ "license": "MIT",
+ "dependencies": {
+ "@noble/hashes": "~1.8.0",
+ "@scure/base": "~1.2.5"
+ },
+ "funding": {
+ "url": "https://paulmillr.com/funding/"
+ }
+ },
"node_modules/p-defer": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/p-defer/-/p-defer-4.0.1.tgz",
@@ -7830,28 +7242,28 @@
}
},
"node_modules/p-queue": {
- "version": "8.1.1",
- "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-8.1.1.tgz",
- "integrity": "sha512-aNZ+VfjobsWryoiPnEApGGmf5WmNsCo9xu8dfaYamG5qaLP7ClhLN6NgsFe6SwJ2UbLEBK5dv9x8Mn5+RVhMWQ==",
+ "version": "9.0.0",
+ "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-9.0.0.tgz",
+ "integrity": "sha512-KO1RyxstL9g1mK76530TExamZC/S2Glm080Nx8PE5sTd7nlduDQsAfEl4uXX+qZjLiwvDauvzXavufy3+rJ9zQ==",
"license": "MIT",
"dependencies": {
"eventemitter3": "^5.0.1",
- "p-timeout": "^6.1.2"
+ "p-timeout": "^7.0.0"
},
"engines": {
- "node": ">=18"
+ "node": ">=20"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/p-timeout": {
- "version": "6.1.4",
- "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-6.1.4.tgz",
- "integrity": "sha512-MyIV3ZA/PmyBN/ud8vV9XzwTrNtR4jFrObymZYnZqMmW0zA8Z17vnT0rBgFE/TlohB+YCHqXMgZzb3Csp49vqg==",
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-7.0.1.tgz",
+ "integrity": "sha512-AxTM2wDGORHGEkPCt8yqxOTMgpfbEHqF51f/5fJCmwFC3C/zNcGT63SymH2ttOAaiIws2zVg4+izQCjrakcwHg==",
"license": "MIT",
"engines": {
- "node": ">=14.16"
+ "node": ">=20"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
@@ -8619,12 +8031,6 @@
"integrity": "sha512-NlHwttCI/l5gCPR3D1nNXtWABUmBwvZpEQiD4IXSbIDq8BzLIK/7Ir5gTFSGZDUu37K5cMNp0hFtzO38sC7gWA==",
"license": "MIT"
},
- "node_modules/scrypt-js": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz",
- "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==",
- "license": "MIT"
- },
"node_modules/semver": {
"version": "7.7.1",
"resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz",
@@ -9562,7 +8968,7 @@
"version": "5.8.3",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz",
"integrity": "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==",
- "dev": true,
+ "devOptional": true,
"license": "Apache-2.0",
"bin": {
"tsc": "bin/tsc",
@@ -9842,10 +9248,103 @@
"url": "https://opencollective.com/unified"
}
},
+ "node_modules/viem": {
+ "version": "2.38.4",
+ "resolved": "https://registry.npmjs.org/viem/-/viem-2.38.4.tgz",
+ "integrity": "sha512-qnyPNg6Lz1EEC86si/1dq7GlOyZVFHSgAW+p8Q31R5idnAYCOdTM2q5KLE4/ykMeMXzY0bnp5MWTtR/wjCtWmQ==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/wevm"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "@noble/curves": "1.9.1",
+ "@noble/hashes": "1.8.0",
+ "@scure/bip32": "1.7.0",
+ "@scure/bip39": "1.6.0",
+ "abitype": "1.1.0",
+ "isows": "1.0.7",
+ "ox": "0.9.6",
+ "ws": "8.18.3"
+ },
+ "peerDependencies": {
+ "typescript": ">=5.0.4"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/viem/node_modules/@noble/curves": {
+ "version": "1.9.1",
+ "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.9.1.tgz",
+ "integrity": "sha512-k11yZxZg+t+gWvBbIswW0yoJlu8cHOC7dhunwOzoWH/mXGBiYyR4YY6hAEK/3EUs4UpB8la1RfdRpeGsFHkWsA==",
+ "license": "MIT",
+ "dependencies": {
+ "@noble/hashes": "1.8.0"
+ },
+ "engines": {
+ "node": "^14.21.3 || >=16"
+ },
+ "funding": {
+ "url": "https://paulmillr.com/funding/"
+ }
+ },
+ "node_modules/viem/node_modules/@noble/hashes": {
+ "version": "1.8.0",
+ "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.8.0.tgz",
+ "integrity": "sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==",
+ "license": "MIT",
+ "engines": {
+ "node": "^14.21.3 || >=16"
+ },
+ "funding": {
+ "url": "https://paulmillr.com/funding/"
+ }
+ },
+ "node_modules/viem/node_modules/@scure/base": {
+ "version": "1.2.6",
+ "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.2.6.tgz",
+ "integrity": "sha512-g/nm5FgUa//MCj1gV09zTJTaM6KBAHqLN907YVQqf7zC49+DcO4B1so4ZX07Ef10Twr6nuqYEH9GEggFXA4Fmg==",
+ "license": "MIT",
+ "funding": {
+ "url": "https://paulmillr.com/funding/"
+ }
+ },
+ "node_modules/viem/node_modules/@scure/bip32": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.7.0.tgz",
+ "integrity": "sha512-E4FFX/N3f4B80AKWp5dP6ow+flD1LQZo/w8UnLGYZO674jS6YnYeepycOOksv+vLPSpgN35wgKgy+ybfTb2SMw==",
+ "license": "MIT",
+ "dependencies": {
+ "@noble/curves": "~1.9.0",
+ "@noble/hashes": "~1.8.0",
+ "@scure/base": "~1.2.5"
+ },
+ "funding": {
+ "url": "https://paulmillr.com/funding/"
+ }
+ },
+ "node_modules/viem/node_modules/@scure/bip39": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.6.0.tgz",
+ "integrity": "sha512-+lF0BbLiJNwVlev4eKelw1WWLaiKXw7sSl8T6FvBlWkdX+94aGJ4o8XjUdlyhTCjd8c+B3KT3JfS8P0bLRNU6A==",
+ "license": "MIT",
+ "dependencies": {
+ "@noble/hashes": "~1.8.0",
+ "@scure/base": "~1.2.5"
+ },
+ "funding": {
+ "url": "https://paulmillr.com/funding/"
+ }
+ },
"node_modules/weald": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/weald/-/weald-1.0.6.tgz",
- "integrity": "sha512-sX1PzkcMJZUJ848JbFzB6aKHHglTxqACEnq2KgI75b7vWYvfXFBNbOuDKqFKwCT44CrP6c5r+L4+5GmPnb5/SQ==",
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/weald/-/weald-1.1.1.tgz",
+ "integrity": "sha512-PaEQShzMCz8J/AD2N3dJMc1hTZWkJeLKS2NMeiVkV5KDHwgZe7qXLEzyodsT/SODxWDdXJJqocuwf3kHzcXhSQ==",
"license": "Apache-2.0 OR MIT",
"dependencies": {
"ms": "^3.0.0-canary.1",
@@ -10083,9 +9582,9 @@
}
},
"node_modules/ws": {
- "version": "8.18.0",
- "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz",
- "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==",
+ "version": "8.18.3",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.3.tgz",
+ "integrity": "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==",
"license": "MIT",
"engines": {
"node": ">=10.0.0"
@@ -10129,6 +9628,35 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/zustand": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/zustand/-/zustand-5.0.0.tgz",
+ "integrity": "sha512-LE+VcmbartOPM+auOjCCLQOsQ05zUTp8RkgwRzefUk+2jISdMMFnxvyTjA4YNWr5ZGXYbVsEMZosttuxUBkojQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=12.20.0"
+ },
+ "peerDependencies": {
+ "@types/react": ">=18.0.0",
+ "immer": ">=9.0.6",
+ "react": ">=18.0.0",
+ "use-sync-external-store": ">=1.2.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ },
+ "immer": {
+ "optional": true
+ },
+ "react": {
+ "optional": true
+ },
+ "use-sync-external-store": {
+ "optional": true
+ }
+ }
+ },
"node_modules/zwitch": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz",
diff --git a/package.json b/package.json
index 1cdb333..5f999ae 100644
--- a/package.json
+++ b/package.json
@@ -21,7 +21,7 @@
"@radix-ui/react-toggle": "^1.1.2",
"@radix-ui/react-toggle-group": "^1.1.2",
"@radix-ui/react-tooltip": "^1.1.8",
- "@waku/rln": "0.1.10-593bc45.0",
+ "@waku/rln": "0.1.11-44ad556.0",
"class-variance-authority": "^0.7.1",
"clsx": "^2.1.1",
"framer-motion": "^12.6.3",
@@ -32,7 +32,8 @@
"react-dom": "^19.0.0",
"react-markdown": "^10.1.0",
"sonner": "^2.0.3",
- "tailwind-merge": "^3.1.0"
+ "tailwind-merge": "^3.1.0",
+ "viem": "^2.21.54"
},
"devDependencies": {
"@eslint/eslintrc": "^3",
diff --git a/src/components/MembershipDetails.tsx b/src/components/MembershipDetails.tsx
index 0481b2b..e5cc608 100644
--- a/src/components/MembershipDetails.tsx
+++ b/src/components/MembershipDetails.tsx
@@ -1,7 +1,7 @@
import React, { useState } from 'react';
import { Button } from './ui/button';
import { Copy, Clock, Trash2, Wallet } from 'lucide-react';
-import { ethers } from 'ethers';
+import { formatEther } from 'viem'
import { MembershipState } from '@waku/rln';
import { useRLN } from '../contexts/rln/RLNContext';
import { toast } from 'sonner';
@@ -17,7 +17,7 @@ interface MembershipDetailsProps {
startBlock: number;
endBlock: number;
state: MembershipState;
- depositAmount: ethers.BigNumber;
+ depositAmount: bigint;
activeDuration: number;
gracePeriodDuration: number;
holder: string;
@@ -273,7 +273,7 @@ export function MembershipDetails({ membershipInfo, copyToClipboard, hash }: Mem
Deposit Amount:
- {membershipInfo.depositAmount ? `${ethers.utils.formatEther(membershipInfo.depositAmount)} ETH` : 'N/A'}
+ {membershipInfo.depositAmount ? `${formatEther(membershipInfo.depositAmount)} ETH` : 'N/A'}
diff --git a/src/components/Tabs/KeystoreTab/KeystoreManagement.tsx b/src/components/Tabs/KeystoreTab/KeystoreManagement.tsx
index 67fee56..3591da5 100644
--- a/src/components/Tabs/KeystoreTab/KeystoreManagement.tsx
+++ b/src/components/Tabs/KeystoreTab/KeystoreManagement.tsx
@@ -10,7 +10,6 @@ import { Button } from '../../ui/button';
import { Copy, Eye, Download, Trash2, ArrowDownToLine, Pencil, Check, X } from 'lucide-react';
import { KeystoreExporter } from '../../KeystoreExporter';
import { keystoreManagement, type ContentSegment } from '../../../content/index';
-import { ethers } from 'ethers';
import { toast } from 'sonner';
import { CredentialDetails } from '@/components/CredentialDetails';
import { MembershipDetails } from '@/components/MembershipDetails';
@@ -25,7 +24,7 @@ interface ExtendedMembershipInfo extends Omit {
startBlock: number;
endBlock: number;
state: MembershipState;
- depositAmount: ethers.BigNumber;
+ depositAmount: bigint;
activeDuration: number;
gracePeriodDuration: number;
holder: string;
diff --git a/src/contexts/rln/RLNContext.tsx b/src/contexts/rln/RLNContext.tsx
index 9cf21d7..d1491bc 100644
--- a/src/contexts/rln/RLNContext.tsx
+++ b/src/contexts/rln/RLNContext.tsx
@@ -1,8 +1,8 @@
"use client";
import { createContext, useContext, useState, useEffect, ReactNode, useCallback } from 'react';
-import { KeystoreEntity, MembershipInfo, RLNInstance, createRLN } from '@waku/rln';
-import { ethers } from 'ethers';
+import { KeystoreEntity, MembershipInfo, RLNInstance, createRLN, createViemClientFromWindow } from '@waku/rln';
+import { formatUnits, parseUnits, maxUint256, PublicActions, WalletClient } from "viem";
import { useKeystore } from '../keystore';
import { useWallet } from '../wallet';
import { ERC20_ABI, LINEA_SEPOLIA_CONFIG, ensureLineaSepoliaNetwork } from '../../utils/network';
@@ -58,8 +58,7 @@ export function RLNProvider({ children }: { children: ReactNode }) {
const [error, setError] = useState(null);
const [isLoading, setIsLoading] = useState(false);
- // Get the signer from window.ethereum
- const [signer, setSigner] = useState(null);
+ const [signer, setSigner] = useState(null);
const [isConnected, setIsConnected] = useState(false);
const [rateMinLimit, setRateMinLimit] = useState(0);
const [rateMaxLimit, setRateMaxLimit] = useState(0);
@@ -82,24 +81,13 @@ export function RLNProvider({ children }: { children: ReactNode }) {
useEffect(() => {
const checkWallet = async () => {
try {
- if (window.ethereum) {
- const provider = new ethers.providers.Web3Provider(window.ethereum);
- const accounts = await provider.listAccounts();
-
- if (accounts.length > 0) {
- const signer = provider.getSigner();
- setSigner(signer);
- setIsConnected(true);
- return;
- }
- }
-
- setSigner(null);
- setIsConnected(false);
- } catch (err) {
+ const signer = await createViemClientFromWindow();
+ setSigner(signer);
+ setIsConnected(true);
+ } catch(err) {
console.error("Error checking wallet:", err);
setSigner(null);
- setIsConnected(false);
+ setIsConnected(false);
}
};
@@ -155,7 +143,7 @@ export function RLNProvider({ children }: { children: ReactNode }) {
if (currentRln && !isStarted) {
console.log("Starting RLN with signer...");
try {
- await currentRln.start({ signer });
+ await currentRln.start({ walletClient: signer });
setIsStarted(true);
console.log("RLN started successfully.");
@@ -170,31 +158,6 @@ export function RLNProvider({ children }: { children: ReactNode }) {
} else {
console.warn("Could not fetch rate limits: undefined values returned.");
}
-
- // Get and log the token address from the contract
- try {
- const priceInfo = await currentRln.contract.getPriceForRateLimit(300);
- if (priceInfo && priceInfo.token) {
- console.log("🪙 Token address from RLN contract:", priceInfo.token);
- console.log("🪙 Hardcoded token address:", WAKU_TESTNET_TOKEN_ADDRESS);
- console.log("🪙 Addresses match:", priceInfo.token.toLowerCase() === WAKU_TESTNET_TOKEN_ADDRESS.toLowerCase());
-
- // Check balance using the RLN contract's token address
- const userAddress = await signer.getAddress();
- const rlnTokenContract = new ethers.Contract(priceInfo.token, ERC20_ABI, signer);
- const rlnTokenBalance = await rlnTokenContract.balanceOf(userAddress);
- console.log("💰 Balance from RLN token contract:", ethers.utils.formatUnits(rlnTokenBalance, 18), "tokens");
-
- // Also check balance using hardcoded address for comparison
- const hardcodedTokenContract = new ethers.Contract(WAKU_TESTNET_TOKEN_ADDRESS, ERC20_ABI, signer);
- const hardcodedTokenBalance = await hardcodedTokenContract.balanceOf(userAddress);
- console.log("💰 Balance from hardcoded token contract:", ethers.utils.formatUnits(hardcodedTokenBalance, 18), "tokens");
- } else {
- console.warn("Could not get token address from RLN contract");
- }
- } catch (tokenErr) {
- console.warn("Error getting token address from RLN contract:", tokenErr);
- }
} catch (limitErr) {
console.warn("Could not fetch rate limits after start:", limitErr);
// Don't fail initialization for this, but log it.
@@ -207,24 +170,24 @@ export function RLNProvider({ children }: { children: ReactNode }) {
console.error("Error starting RLN:", startErr);
// Check if it's a network mismatch error
- if (startErr instanceof Error && startErr.message.includes('chain ID of contract is different')) {
- console.log("Network mismatch detected, attempting to switch to Linea Sepolia...");
+ // if (startErr instanceof Error && startErr.message.includes('chain ID of contract is different')) {
+ // console.log("Network mismatch detected, attempting to switch to Linea Sepolia...");
- try {
- const switched = await ensureLineaSepoliaNetwork(signer);
- if (switched) {
- setError('Network switched to Linea Sepolia. Please try connecting again.');
- // Don't retry automatically to avoid loops, let user re-trigger
- } else {
- setError('Please manually switch to Linea Sepolia network in MetaMask and try again.');
- }
- } catch (switchErr) {
- console.error("Error switching network:", switchErr);
- setError('Failed to switch to Linea Sepolia network. Please switch manually in MetaMask.');
- }
- } else {
- setError(startErr instanceof Error ? startErr.message : 'Failed to start RLN');
- }
+ // try {
+ // const switched = await ensureLineaSepoliaNetwork(walletClient);
+ // if (switched) {
+ // setError('Network switched to Linea Sepolia. Please try connecting again.');
+ // // Don't retry automatically to avoid loops, let user re-trigger
+ // } else {
+ // setError('Please manually switch to Linea Sepolia network in MetaMask and try again.');
+ // }
+ // } catch (switchErr) {
+ // console.error("Error switching network:", switchErr);
+ // setError('Failed to switch to Linea Sepolia network. Please switch manually in MetaMask.');
+ // }
+ // } else {
+ // setError(startErr instanceof Error ? startErr.message : 'Failed to start RLN');
+ // }
setIsStarted(false);
}
@@ -244,7 +207,7 @@ export function RLNProvider({ children }: { children: ReactNode }) {
useEffect(() => {
console.log('Auto-init check:', {
isConnected,
- hasSigner: !!signer,
+ hasWalletClient: !!signer,
isInitialized,
isStarted,
isLoading
@@ -324,7 +287,7 @@ export function RLNProvider({ children }: { children: ReactNode }) {
setTokenApprovalStatus(prev => ({ ...prev, isChecking: true }));
try {
- const userAddress = await signer.getAddress();
+ const [userAddress] = await signer.getAddresses();
const contractAddress = rln.contract.address;
// Use the hardcoded token address consistently
@@ -333,43 +296,50 @@ export function RLNProvider({ children }: { children: ReactNode }) {
// Get price info from RLN contract
const priceInfo = await rln.contract.getPriceForRateLimit(rateLimit);
- // Create token contract instance
- const tokenContract = new ethers.Contract(
- tokenAddress,
- ERC20_ABI,
- signer
- );
if (!priceInfo.price) {
throw new Error("Unable to determine required deposit amount");
}
const requiredAmount = priceInfo.price;
- const currentAllowance = await tokenContract.allowance(userAddress, contractAddress);
+
+ // Read current allowance from token contract
+ const currentAllowance = await signer.readContract({
+ address: tokenAddress as `0x${string}`,
+ abi: ERC20_ABI,
+ functionName: 'allowance',
+ args: [userAddress, contractAddress as `0x${string}`],
+ }) as bigint;
// Check actual token balance directly from the contract
- const actualTokenBalance = await tokenContract.balanceOf(userAddress);
- const tokenBalanceStr = ethers.utils.formatUnits(actualTokenBalance, 18);
+ const actualTokenBalance = await signer.readContract({
+ address: tokenAddress as `0x${string}`,
+ abi: ERC20_ABI,
+ functionName: 'balanceOf',
+ args: [userAddress],
+ }) as bigint;
+
+ const tokenBalanceStr = formatUnits(actualTokenBalance, 18);
const tokenBalance = actualTokenBalance;
console.log("Token approval check:", {
- requiredAmount: ethers.utils.formatUnits(requiredAmount, 18),
- currentAllowance: ethers.utils.formatUnits(currentAllowance, 18),
+ requiredAmount: formatUnits(requiredAmount, 18),
+ currentAllowance: formatUnits(currentAllowance, 18),
tokenBalance: tokenBalanceStr,
tokenAddress: tokenAddress,
userAddress: userAddress,
contractAddress: contractAddress
});
- const isApproved = currentAllowance.gte(requiredAmount);
+ const isApproved = currentAllowance >= requiredAmount;
const needsApproval = !isApproved;
- const hasEnoughBalance = tokenBalance.gte(requiredAmount);
+ const hasEnoughBalance = tokenBalance >= requiredAmount;
setTokenApprovalStatus({
isApproved,
isChecking: false,
needsApproval,
- requiredAmount: ethers.utils.formatUnits(requiredAmount, 18),
- currentAllowance: ethers.utils.formatUnits(currentAllowance, 18),
+ requiredAmount: formatUnits(requiredAmount, 18),
+ currentAllowance: formatUnits(currentAllowance, 18),
tokenBalance: tokenBalanceStr,
hasEnoughBalance,
});
@@ -393,42 +363,47 @@ export function RLNProvider({ children }: { children: ReactNode }) {
}
try {
- const userAddress = await signer.getAddress();
+ const [userAddress] = await signer.getAddresses();
const contractAddress = rln.contract.address;
// Use the hardcoded token address consistently
const tokenAddress = WAKU_TESTNET_TOKEN_ADDRESS;
- // Create token contract instance
- const tokenContract = new ethers.Contract(
- tokenAddress,
- ERC20_ABI,
- signer
- );
-
// Approve maximum amount for convenience
- const approvalAmount = ethers.constants.MaxUint256;
-
- const approveTx = await tokenContract.approve(contractAddress, approvalAmount);
- console.log("Approval transaction submitted:", approveTx.hash);
+ const approvalAmount = maxUint256;
+
+ const hash = await signer.writeContract({
+ address: tokenAddress as `0x${string}`,
+ abi: ERC20_ABI,
+ functionName: 'approve',
+ args: [contractAddress as `0x${string}`, approvalAmount],
+ chain: signer.chain,
+ account: userAddress,
+ });
+ console.log("Approval transaction submitted:", hash);
// Update status to show approval in progress
setTokenApprovalStatus(prev => ({ ...prev, isChecking: true }));
// Wait for the transaction to be mined
- const receipt = await approveTx.wait(2);
+ const receipt = await signer.waitForTransactionReceipt({ hash, confirmations: 2 });
console.log("Token approval confirmed in block:", receipt.blockNumber);
// Update approval status
- const newAllowance = await tokenContract.allowance(userAddress, contractAddress);
- const isApproved = newAllowance.gt(0);
+ const newAllowance = await signer.readContract({
+ address: tokenAddress as `0x${string}`,
+ abi: ERC20_ABI,
+ functionName: 'allowance',
+ args: [userAddress, contractAddress as `0x${string}`],
+ }) as bigint;
+ const isApproved = newAllowance > BigInt(0);
setTokenApprovalStatus(prev => ({
...prev,
isApproved,
isChecking: false,
needsApproval: !isApproved,
- currentAllowance: ethers.utils.formatUnits(newAllowance, 18),
+ currentAllowance: formatUnits(newAllowance, 18),
}));
return { success: true };
@@ -452,7 +427,7 @@ export function RLNProvider({ children }: { children: ReactNode }) {
}
if (!signer) {
- return { success: false, error: 'No signer available' };
+ return { success: false, error: 'Wallet not connected' };
}
try {
@@ -472,7 +447,7 @@ export function RLNProvider({ children }: { children: ReactNode }) {
}
// Get user address and contract address
- const userAddress = await signer.getAddress();
+ const [userAddress] = await signer.getAddresses();
if (!rln.contract || !rln.contract.address) {
return { success: false, error: "RLN contract address not available. Cannot proceed with registration." };
@@ -483,18 +458,11 @@ export function RLNProvider({ children }: { children: ReactNode }) {
// Use the hardcoded token address consistently
const tokenAddress = WAKU_TESTNET_TOKEN_ADDRESS;
- // Create token contract instance
- const tokenContract = new ethers.Contract(
- tokenAddress,
- ERC20_ABI,
- signer
- );
-
// Check balance from wallet context
const tokenBalanceStr = wttBalance || "0";
- const tokenBalance = ethers.utils.parseUnits(tokenBalanceStr, 18);
+ const tokenBalance = parseUnits(tokenBalanceStr, 18);
- if (tokenBalance.isZero()) {
+ if (tokenBalance === BigInt(0)) {
return {
success: false,
error: `You need tokens to register a membership. Your balance is ${tokenBalanceStr} WTT. Please get test tokens.`
@@ -509,36 +477,53 @@ export function RLNProvider({ children }: { children: ReactNode }) {
return { success: false, error: "Unable to determine deposit amount for rate limit" };
}
requiredDeposit = priceInfo.price;
- console.log("Required deposit:", ethers.utils.formatUnits(requiredDeposit, 18), "WTT");
+ console.log("Required deposit:", formatUnits(requiredDeposit, 18), "WTT");
} catch (priceErr) {
console.error("Error getting price for rate limit:", priceErr);
return { success: false, error: "Failed to determine required deposit amount" };
}
// Check and approve token allowance
- const currentAllowance = await tokenContract.allowance(userAddress, contractAddress);
- console.log("Current allowance:", ethers.utils.formatUnits(currentAllowance, 18), "WTT");
- console.log("Required deposit:", ethers.utils.formatUnits(requiredDeposit, 18), "WTT");
-
- if (currentAllowance.lt(requiredDeposit)) {
+ const currentAllowance = await signer.readContract({
+ address: tokenAddress as `0x${string}`,
+ abi: ERC20_ABI,
+ functionName: 'allowance',
+ args: [userAddress, contractAddress as `0x${string}`],
+ }) as bigint;
+ console.log("Current allowance:", formatUnits(currentAllowance, 18), "WTT");
+ console.log("Required deposit:", formatUnits(requiredDeposit, 18), "WTT");
+
+ if (currentAllowance < requiredDeposit) {
console.log("Insufficient allowance, requesting token approval...");
// Approve the required amount plus a buffer (or max uint256 for simplicity)
- const approvalAmount = ethers.constants.MaxUint256;
+ const approvalAmount = maxUint256;
try {
- const approveTx = await tokenContract.approve(contractAddress, approvalAmount);
- console.log("Approval transaction submitted:", approveTx.hash);
+ const hash = await signer.writeContract({
+ address: tokenAddress as `0x${string}`,
+ abi: ERC20_ABI,
+ functionName: 'approve',
+ args: [contractAddress as `0x${string}`, approvalAmount],
+ chain: signer.chain,
+ account: userAddress,
+ });
+ console.log("Approval transaction submitted:", hash);
// Wait for the transaction to be mined with more confirmations
- const receipt = await approveTx.wait(2);
+ const receipt = await signer.waitForTransactionReceipt({ hash, confirmations: 2 });
console.log("Token approval confirmed in block:", receipt.blockNumber);
// Verify the approval was successful
- const newAllowance = await tokenContract.allowance(userAddress, contractAddress);
- console.log("New allowance:", ethers.utils.formatUnits(newAllowance, 18), "WTT");
+ const newAllowance = await signer.readContract({
+ address: tokenAddress as `0x${string}`,
+ abi: ERC20_ABI,
+ functionName: 'allowance',
+ args: [userAddress, contractAddress as `0x${string}`],
+ }) as bigint;
+ console.log("New allowance:", formatUnits(newAllowance, 18), "WTT");
- if (newAllowance.lt(requiredDeposit)) {
+ if (newAllowance < requiredDeposit) {
return { success: false, error: "Token approval failed - insufficient allowance after approval" };
}
} catch (approvalErr) {
@@ -555,7 +540,7 @@ export function RLNProvider({ children }: { children: ReactNode }) {
// Generate signature for identity
const timestamp = Date.now();
const message = `Sign this message to generate your RLN credentials ${timestamp}`;
- const signature = await signer.signMessage(message);
+ const signature = await signer.signMessage({ message, account: userAddress });
// Register membership
console.log("Registering membership...");
@@ -708,14 +693,8 @@ export function RLNProvider({ children }: { children: ReactNode }) {
// Use the hardcoded token address consistently
const tokenAddress = WAKU_TESTNET_TOKEN_ADDRESS;
- const userAddress = await signer?.getAddress();
-
- if (!userAddress) {
- throw new Error('No signer available');
- }
-
- // Call withdraw with token address and holder
- await rln.contract.withdraw(tokenAddress, userAddress);
+ // Call withdraw with token address
+ await rln.contract.withdraw(tokenAddress);
return { success: true };
} catch (err) {
console.error('Error withdrawing deposit:', err);
@@ -736,11 +715,10 @@ export function RLNProvider({ children }: { children: ReactNode }) {
throw new Error('Price not available');
}
- console.log("💰 Price from RLN contract (raw BigNumber):", result.price);
+ console.log("💰 Price from RLN contract (raw):", result.price);
console.log("💰 Price from RLN contract (toString):", result.price.toString());
- console.log("💰 Price from RLN contract (hex):", result.price.toHexString());
- const formatted = ethers.utils.formatUnits(result.price, 18);
+ const formatted = formatUnits(result.price, 18);
console.log("💰 Price formatted to decimal:", formatted);
return { price: formatted };
diff --git a/src/contexts/wallet/WalletContext.tsx b/src/contexts/wallet/WalletContext.tsx
index b6b3124..1c4e375 100644
--- a/src/contexts/wallet/WalletContext.tsx
+++ b/src/contexts/wallet/WalletContext.tsx
@@ -1,8 +1,8 @@
"use client";
import { createContext, useContext, useState, useEffect, ReactNode, useCallback } from 'react';
-import { extractMetaMaskSigner } from '@waku/rln';
-import { ethers } from 'ethers';
+import { createViemClientFromWindow } from '@waku/rln';
+import { WalletClient, PublicActions, formatUnits, parseUnits } from 'viem';
import { WalletContextType } from './types';
import { WAKU_TESTNET_TOKEN_ABI } from '../../contracts/waku_testnet_token_abi';
import { WAKU_TESTNET_TOKEN_ADDRESS } from '../../contracts/constants';
@@ -13,18 +13,22 @@ const WalletContext = createContext(undefined);
export function WalletProvider({ children }: { children: ReactNode }) {
const [isConnected, setIsConnected] = useState(false);
const [address, setAddress] = useState(null);
- const [signer, setSigner] = useState(null);
+ const [signer, setSigner] = useState(null);
const [balance, setBalance] = useState(null);
const [wttBalance, setWttBalance] = useState(null);
const [chainId, setChainId] = useState(null);
const [error, setError] = useState(null);
// Function to fetch WTT token balance
- const fetchWttBalance = useCallback(async (userAddress: string, provider: ethers.providers.Provider) => {
+ const fetchWttBalance = useCallback(async (userAddress: `0x${string}`, client: PublicActions) => {
try {
- const tokenContract = new ethers.Contract(WAKU_TESTNET_TOKEN_ADDRESS, WAKU_TESTNET_TOKEN_ABI, provider);
- const balance = await tokenContract.balanceOf(userAddress);
- const formattedBalance = ethers.utils.formatUnits(balance, 18); // Assuming 18 decimals for the token
+ const balance = await client.readContract({
+ address: WAKU_TESTNET_TOKEN_ADDRESS as `0x${string}`,
+ abi: WAKU_TESTNET_TOKEN_ABI,
+ functionName: 'balanceOf',
+ args: [userAddress],
+ }) as bigint;
+ const formattedBalance = formatUnits(balance, 18); // Assuming 18 decimals for the token
setWttBalance(formattedBalance);
} catch (err) {
console.error('Error fetching WTT balance:', err);
@@ -42,22 +46,24 @@ export function WalletProvider({ children }: { children: ReactNode }) {
try {
toast.loading('Minting WTT tokens...');
- const tokenContract = new ethers.Contract(
- WAKU_TESTNET_TOKEN_ADDRESS,
- WAKU_TESTNET_TOKEN_ABI,
- signer
- );
-
// Convert amount to wei (assuming 18 decimals)
- const amountInWei = ethers.utils.parseUnits(amount.toString(), 18);
+ const amountInWei = parseUnits(amount.toString(), 18);
// Call the mint function
- const tx = await tokenContract.mint(address, amountInWei);
- await tx.wait();
+ const hash = await signer.writeContract({
+ address: WAKU_TESTNET_TOKEN_ADDRESS as `0x${string}`,
+ abi: WAKU_TESTNET_TOKEN_ABI,
+ functionName: 'mint',
+ args: [address as `0x${string}`, amountInWei],
+ chain: signer.chain,
+ account: address as `0x${string}`,
+ });
+
+ // Wait for the transaction receipt
+ await signer.waitForTransactionReceipt({ hash });
// Refresh the balance
- const provider = signer.provider as ethers.providers.Web3Provider;
- await fetchWttBalance(address, provider);
+ await fetchWttBalance(address as `0x${string}`, signer);
toast.dismiss();
toast.success(`Successfully minted ${amount} WTT tokens`);
@@ -84,22 +90,21 @@ export function WalletProvider({ children }: { children: ReactNode }) {
const connectWallet = useCallback(async () => {
try {
setError(null);
- const signer = await extractMetaMaskSigner();
+ const signer = await createViemClientFromWindow();
setSigner(signer);
- const address = await signer.getAddress();
+ const [address] = await signer.getAddresses();
setAddress(address);
- const provider = signer.provider as ethers.providers.Web3Provider;
- const network = await provider.getNetwork();
- setChainId(network.chainId);
+ const chain = await signer.getChainId();
+ setChainId(chain);
- const balanceWei = await provider.getBalance(address);
- const balanceEth = ethers.utils.formatEther(balanceWei);
+ const balanceWei = await signer.getBalance({ address });
+ const balanceEth = formatUnits(balanceWei, 18);
setBalance(balanceEth);
// Fetch WTT token balance
- await fetchWttBalance(address, provider);
+ await fetchWttBalance(address, signer);
setIsConnected(true);
} catch (err) {
diff --git a/src/contexts/wallet/types.ts b/src/contexts/wallet/types.ts
index d4477cc..275b55b 100644
--- a/src/contexts/wallet/types.ts
+++ b/src/contexts/wallet/types.ts
@@ -1,9 +1,10 @@
-import { ethers } from 'ethers';
+import { WalletClient, PublicActions } from 'viem';
+import "viem/window";
export interface WalletContextType {
isConnected: boolean;
address: string | null;
- signer: ethers.Signer | null;
+ signer: WalletClient & PublicActions | null;
balance: string | null;
wttBalance: string | null;
chainId: number | null;
@@ -11,21 +12,4 @@ export interface WalletContextType {
disconnectWallet: () => void;
mintWTT: (amount: number) => Promise;
error: string | null;
- }
-
- declare global {
- interface Window {
- ethereum?: {
- isMetaMask?: boolean;
- isConnected?: boolean;
- selectedAddress?: string;
- request: (args: { method: string; params?: unknown[] }) => Promise;
- on(event: 'accountsChanged', listener: (accounts: string[]) => void): void;
- on(event: 'chainChanged', listener: (chainId: string) => void): void;
- on(event: string, listener: (...args: unknown[]) => void): void;
- removeListener(event: 'accountsChanged', listener: (accounts: string[]) => void): void;
- removeListener(event: 'chainChanged', listener: (chainId: string) => void): void;
- removeListener(event: string, listener: (...args: unknown[]) => void): void;
- };
- }
- }
\ No newline at end of file
+ }
\ No newline at end of file
diff --git a/src/utils/network.ts b/src/utils/network.ts
index 89f77f3..c6c0b47 100644
--- a/src/utils/network.ts
+++ b/src/utils/network.ts
@@ -1,6 +1,6 @@
"use client";
-import { ethers } from 'ethers';
+import { WalletClient } from 'viem';
import { WAKU_TESTNET_TOKEN_ADDRESS } from '../contracts/constants';
// Linea Sepolia configuration
@@ -18,9 +18,9 @@ export interface EthereumProvider {
}
// Function to ensure the wallet is connected to Linea Sepolia network
-export const ensureLineaSepoliaNetwork = async (signer?: ethers.Signer): Promise => {
+export const ensureLineaSepoliaNetwork = async (walletClient?: WalletClient): Promise => {
try {
- const currentChainId = await signer?.getChainId();
+ const currentChainId = walletClient?.chain?.id;
console.log("Current network chain ID:", currentChainId);
// Check if already on Linea Sepolia
@@ -95,12 +95,36 @@ export const ensureLineaSepoliaNetwork = async (signer?: ethers.Signer): Promise
}
};
-// ERC20 ABI for token operations
+// ERC20 ABI for token operations (viem format)
export const ERC20_ABI = [
- "function allowance(address owner, address spender) view returns (uint256)",
- "function approve(address spender, uint256 amount) returns (bool)",
- "function balanceOf(address account) view returns (uint256)"
-];
+ {
+ name: 'allowance',
+ type: 'function',
+ stateMutability: 'view',
+ inputs: [
+ { name: 'owner', type: 'address' },
+ { name: 'spender', type: 'address' }
+ ],
+ outputs: [{ type: 'uint256' }]
+ },
+ {
+ name: 'approve',
+ type: 'function',
+ stateMutability: 'nonpayable',
+ inputs: [
+ { name: 'spender', type: 'address' },
+ { name: 'amount', type: 'uint256' }
+ ],
+ outputs: [{ type: 'bool' }]
+ },
+ {
+ name: 'balanceOf',
+ type: 'function',
+ stateMutability: 'view',
+ inputs: [{ name: 'account', type: 'address' }],
+ outputs: [{ type: 'uint256' }]
+ }
+] as const;
// Message for signing to generate identity
export const SIGNATURE_MESSAGE = "Sign this message to generate your RLN credentials";
\ No newline at end of file
diff --git a/yarn.lock b/yarn.lock
index ff3f99f..c6c1c41 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -2,6 +2,11 @@
# yarn lockfile v1
+"@adraffy/ens-normalize@^1.11.0":
+ version "1.11.1"
+ resolved "https://registry.npmjs.org/@adraffy/ens-normalize/-/ens-normalize-1.11.1.tgz"
+ integrity sha512-nhCBV3quEgesuf7c7KYfperqSS14T8bYuvJ8PcLJp6znkZpFc0AuW4qBtr8eKVyPPe/8RSr7sglCWPU5eaxwKQ==
+
"@alloc/quick-lru@^5.2.0":
version "5.2.0"
resolved "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz"
@@ -100,232 +105,19 @@
"@eslint/core" "^0.13.0"
levn "^0.4.1"
-"@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.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.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.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.8.0", "@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.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.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":
+"@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.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.7.0", "@ethersproject/rlp@^5.8.0", "@ethersproject/rlp@5.8.0":
+"@ethersproject/rlp@^5.7.0":
version "5.8.0"
resolved "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.8.0.tgz"
integrity sha512-LqZgAznqDbiEunaUvykH2JAoXTT9NV0Atqk8rQN9nx9SEgThA/WMx5DnW8a9FOufo//6FZOCHZ+XiClzgbqV9Q==
@@ -333,115 +125,6 @@
"@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.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.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"
-
"@floating-ui/core@^1.6.0":
version "1.6.9"
resolved "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.9.tgz"
@@ -569,11 +252,11 @@
integrity sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==
"@libp2p/crypto@^5.1.6", "@libp2p/crypto@^5.1.8":
- version "5.1.11"
- resolved "https://registry.npmjs.org/@libp2p/crypto/-/crypto-5.1.11.tgz"
- integrity sha512-J+C4bntXEhf43fJZbgyoa4XI8/kzwB5wE/2FoNQcwhIwgDd4YyRB1SHswgI0KWqF0pgKtFLE+sLnUBn/ZYUTjw==
+ version "5.1.13"
+ resolved "https://registry.npmjs.org/@libp2p/crypto/-/crypto-5.1.13.tgz"
+ integrity sha512-8NN9cQP3jDn+p9+QE9ByiEoZ2lemDFf/unTgiKmS3JF93ph240EUVdbCyyEgOMfykzb0okTM4gzvwfx9osJebQ==
dependencies:
- "@libp2p/interface" "^3.0.1"
+ "@libp2p/interface" "^3.1.0"
"@noble/curves" "^2.0.1"
"@noble/hashes" "^2.0.1"
multiformats "^13.4.0"
@@ -618,10 +301,10 @@
progress-events "^1.0.1"
uint8arraylist "^2.4.8"
-"@libp2p/interface@^3.0.1":
- version "3.0.1"
- resolved "https://registry.npmjs.org/@libp2p/interface/-/interface-3.0.1.tgz"
- integrity sha512-Fc502I77E+vLiADk7PyydM3NwW6F1HCQGhhtbzi9jLb+X8KgVBL3wlPqWXVM8fyQ++4CpOcAyMel8UYhIXr26w==
+"@libp2p/interface@^3.1.0":
+ version "3.1.0"
+ resolved "https://registry.npmjs.org/@libp2p/interface/-/interface-3.1.0.tgz"
+ integrity sha512-RE7/XyvC47fQBe1cHxhMvepYKa5bFCUyFrrpj8PuM0E7JtzxU7F+Du5j4VXbg2yLDcToe0+j8mB7jvwE2AThYw==
dependencies:
"@multiformats/dns" "^1.0.6"
"@multiformats/multiaddr" "^13.0.1"
@@ -714,14 +397,14 @@
uint8arrays "^5.1.0"
"@multiformats/dns@^1.0.3", "@multiformats/dns@^1.0.6":
- version "1.0.9"
- resolved "https://registry.npmjs.org/@multiformats/dns/-/dns-1.0.9.tgz"
- integrity sha512-Ja4hevWI9p96ICx11K3suFvFirnMmXILzS7FpsR2KG3FoKF/XJijm8ylf3vY6kRFGr98yfZYM+zIn18KaINs3A==
+ version "1.0.10"
+ resolved "https://registry.npmjs.org/@multiformats/dns/-/dns-1.0.10.tgz"
+ integrity sha512-6X200ceQLns0b/CU0S/So16tGjB5eIXHJ1xvJMPoWaKFHWSgfpW2EhkWJrqap4U3+c37zcowVR0ToPXeYEL7Vw==
dependencies:
buffer "^6.0.3"
dns-packet "^5.6.1"
hashlru "^2.3.0"
- p-queue "^8.0.1"
+ p-queue "^9.0.0"
progress-events "^1.0.0"
uint8arrays "^5.0.2"
@@ -765,6 +448,11 @@
resolved "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-15.1.7.tgz"
integrity sha512-hPFwzPJDpA8FGj7IKV3Yf1web3oz2YsR8du4amKw8d+jAOHfYHYFpMkoF6vgSY4W6vB29RtZEklK9ayinGiCmQ==
+"@noble/ciphers@^1.3.0":
+ version "1.3.0"
+ resolved "https://registry.npmjs.org/@noble/ciphers/-/ciphers-1.3.0.tgz"
+ integrity sha512-2I0gnIVPtfnMw9ee9h1dJG7tp81+8Ob3OJb3Mv37rx5L40/b0i7djjCVvGOVqc9AEIQyvyu1i6ypKdFw8R8gQw==
+
"@noble/ciphers@1.2.1":
version "1.2.1"
resolved "https://registry.npmjs.org/@noble/ciphers/-/ciphers-1.2.1.tgz"
@@ -791,6 +479,13 @@
dependencies:
"@noble/hashes" "1.7.2"
+"@noble/curves@~1.9.0", "@noble/curves@1.9.1":
+ version "1.9.1"
+ resolved "https://registry.npmjs.org/@noble/curves/-/curves-1.9.1.tgz"
+ integrity sha512-k11yZxZg+t+gWvBbIswW0yoJlu8cHOC7dhunwOzoWH/mXGBiYyR4YY6hAEK/3EUs4UpB8la1RfdRpeGsFHkWsA==
+ dependencies:
+ "@noble/hashes" "1.8.0"
+
"@noble/curves@1.8.1":
version "1.8.1"
resolved "https://registry.npmjs.org/@noble/curves/-/curves-1.8.1.tgz"
@@ -803,7 +498,7 @@
resolved "https://registry.npmjs.org/@noble/hashes/-/hashes-1.7.2.tgz"
integrity sha512-biZ0NUSxyjLLqo6KxEJ1b+C2NAx0wtDoFvCaXHGgUkeHzf3Xc1xKumFKREuT7f7DARNZ/slvYUwFG6B0f2b6hQ==
-"@noble/hashes@^1.8.0", "@noble/hashes@1.8.0":
+"@noble/hashes@^1.8.0", "@noble/hashes@~1.8.0", "@noble/hashes@1.8.0":
version "1.8.0"
resolved "https://registry.npmjs.org/@noble/hashes/-/hashes-1.8.0.tgz"
integrity sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==
@@ -1219,6 +914,20 @@
resolved "https://registry.npmjs.org/@scure/base/-/base-1.2.4.tgz"
integrity sha512-5Yy9czTO47mqz+/J8GM6GIId4umdCk1wc1q8rKERQulIoc8VP9pzDcghv10Tl2E7R96ZUx/PhND3ESYUQX8NuQ==
+"@scure/base@~1.2.5":
+ version "1.2.6"
+ resolved "https://registry.npmjs.org/@scure/base/-/base-1.2.6.tgz"
+ integrity sha512-g/nm5FgUa//MCj1gV09zTJTaM6KBAHqLN907YVQqf7zC49+DcO4B1so4ZX07Ef10Twr6nuqYEH9GEggFXA4Fmg==
+
+"@scure/bip32@^1.7.0":
+ version "1.7.0"
+ resolved "https://registry.npmjs.org/@scure/bip32/-/bip32-1.7.0.tgz"
+ integrity sha512-E4FFX/N3f4B80AKWp5dP6ow+flD1LQZo/w8UnLGYZO674jS6YnYeepycOOksv+vLPSpgN35wgKgy+ybfTb2SMw==
+ dependencies:
+ "@noble/curves" "~1.9.0"
+ "@noble/hashes" "~1.8.0"
+ "@scure/base" "~1.2.5"
+
"@scure/bip32@1.1.5":
version "1.1.5"
resolved "https://registry.npmjs.org/@scure/bip32/-/bip32-1.1.5.tgz"
@@ -1237,6 +946,23 @@
"@noble/hashes" "~1.7.1"
"@scure/base" "~1.2.2"
+"@scure/bip32@1.7.0":
+ version "1.7.0"
+ resolved "https://registry.npmjs.org/@scure/bip32/-/bip32-1.7.0.tgz"
+ integrity sha512-E4FFX/N3f4B80AKWp5dP6ow+flD1LQZo/w8UnLGYZO674jS6YnYeepycOOksv+vLPSpgN35wgKgy+ybfTb2SMw==
+ dependencies:
+ "@noble/curves" "~1.9.0"
+ "@noble/hashes" "~1.8.0"
+ "@scure/base" "~1.2.5"
+
+"@scure/bip39@^1.6.0":
+ version "1.6.0"
+ resolved "https://registry.npmjs.org/@scure/bip39/-/bip39-1.6.0.tgz"
+ integrity sha512-+lF0BbLiJNwVlev4eKelw1WWLaiKXw7sSl8T6FvBlWkdX+94aGJ4o8XjUdlyhTCjd8c+B3KT3JfS8P0bLRNU6A==
+ dependencies:
+ "@noble/hashes" "~1.8.0"
+ "@scure/base" "~1.2.5"
+
"@scure/bip39@1.1.1":
version "1.1.1"
resolved "https://registry.npmjs.org/@scure/bip39/-/bip39-1.1.1.tgz"
@@ -1253,6 +979,14 @@
"@noble/hashes" "~1.7.1"
"@scure/base" "~1.2.4"
+"@scure/bip39@1.6.0":
+ version "1.6.0"
+ resolved "https://registry.npmjs.org/@scure/bip39/-/bip39-1.6.0.tgz"
+ integrity sha512-+lF0BbLiJNwVlev4eKelw1WWLaiKXw7sSl8T6FvBlWkdX+94aGJ4o8XjUdlyhTCjd8c+B3KT3JfS8P0bLRNU6A==
+ dependencies:
+ "@noble/hashes" "~1.8.0"
+ "@scure/base" "~1.2.5"
+
"@sindresorhus/fnv1a@^3.1.0":
version "3.1.0"
resolved "https://registry.npmjs.org/@sindresorhus/fnv1a/-/fnv1a-3.1.0.tgz"
@@ -1358,7 +1092,7 @@
resolved "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.1.2.tgz"
integrity sha512-XGJkWF41Qq305SKWEILa1O8vzhb3aOo3ogBlSmiqNko/WmRb6QIaweuZCXjKygVDXpzXb5wyxKTSOsmkuqj+Qw==
-"@types/react@*", "@types/react@^19", "@types/react@^19.0.0", "@types/react@>=18":
+"@types/react@*", "@types/react@^19", "@types/react@^19.0.0", "@types/react@>=18", "@types/react@>=18.0.0":
version "19.1.2"
resolved "https://registry.npmjs.org/@types/react/-/react-19.1.2.tgz"
integrity sha512-oxLPMytKchWGbnQM9O7D67uPa9paTNxO7jVoNMXgkkErULBPhPARCfkKL9ytcIJJRGjbsVwW4ugJzyFFvm/Tiw==
@@ -1466,17 +1200,26 @@
resolved "https://registry.npmjs.org/@unrs/resolver-binding-darwin-arm64/-/resolver-binding-darwin-arm64-1.5.0.tgz"
integrity sha512-YmocNlEcX/AgJv8gI41bhjMOTcKcea4D2nRIbZj+MhRtSH5+vEU8r/pFuTuoF+JjVplLsBueU+CILfBPVISyGQ==
-"@waku/core@0.0.40-593bc45.0":
- version "0.0.40-593bc45.0"
- resolved "https://registry.npmjs.org/@waku/core/-/core-0.0.40-593bc45.0.tgz"
- integrity sha512-STERLmw+lNFOUynRrdD33E4cwAEBTTobdaGcERJhfeeaipvQYmoQ5PQpnJLh34kV1wka1Jl+5EW4oj6SHFaRHw==
+"@wagmi/core@^2.22.1":
+ version "2.22.1"
+ resolved "https://registry.npmjs.org/@wagmi/core/-/core-2.22.1.tgz"
+ integrity sha512-cG/xwQWsBEcKgRTkQVhH29cbpbs/TdcUJVFXCyri3ZknxhMyGv0YEjTcrNpRgt2SaswL1KrvslSNYKKo+5YEAg==
+ dependencies:
+ eventemitter3 "5.0.1"
+ mipd "0.0.7"
+ zustand "5.0.0"
+
+"@waku/core@0.0.41-44ad556.0":
+ version "0.0.41-44ad556.0"
+ resolved "https://registry.npmjs.org/@waku/core/-/core-0.0.41-44ad556.0.tgz"
+ integrity sha512-4mJXHJFSi8mAikaYzfjzvP/oX1WYC1LJjdkzdRsqdJit9hiIPTbeUGXHWV7H9625fr/7RZVSFmeSuhGf0DNIoQ==
dependencies:
"@libp2p/ping" "2.0.35"
"@noble/hashes" "^1.3.2"
- "@waku/enr" "0.0.34-593bc45.0"
- "@waku/interfaces" "0.0.35-593bc45.0"
- "@waku/proto" "0.0.15-593bc45.0"
- "@waku/utils" "0.0.28-593bc45.0"
+ "@waku/enr" "0.0.34-44ad556.0"
+ "@waku/interfaces" "0.0.35-44ad556.0"
+ "@waku/proto" "0.0.16-44ad556.0"
+ "@waku/utils" "0.0.28-44ad556.0"
debug "^4.3.4"
it-all "^3.0.4"
it-length-prefixed "^9.0.4"
@@ -1484,59 +1227,60 @@
uint8arraylist "^2.4.3"
uuid "^9.0.0"
-"@waku/enr@0.0.34-593bc45.0":
- version "0.0.34-593bc45.0"
- resolved "https://registry.npmjs.org/@waku/enr/-/enr-0.0.34-593bc45.0.tgz"
- integrity sha512-59lJhBOUUXcIJJo6ApUz3ntUUn1PGSFs8dbfuN/0TRreexjzcmwrrX0TKX2hfUoJlY670D9YnbZuaeT3oCO/1Q==
+"@waku/enr@0.0.34-44ad556.0":
+ version "0.0.34-44ad556.0"
+ resolved "https://registry.npmjs.org/@waku/enr/-/enr-0.0.34-44ad556.0.tgz"
+ integrity sha512-CMSch/jK/nYMQlYkc4Ap/AfAVz24CTUFOOS1Bxm2H/sc1Zmz8WcYLzuo4N4ifZ4wL+MeJrGm2v2inmdOKsFx+w==
dependencies:
"@ethersproject/rlp" "^5.7.0"
"@libp2p/crypto" "5.1.6"
"@libp2p/peer-id" "5.1.7"
"@multiformats/multiaddr" "^12.0.0"
"@noble/secp256k1" "^1.7.1"
- "@waku/utils" "0.0.28-593bc45.0"
+ "@waku/utils" "0.0.28-44ad556.0"
debug "^4.3.4"
js-sha3 "^0.9.2"
-"@waku/interfaces@0.0.35-593bc45.0":
- version "0.0.35-593bc45.0"
- resolved "https://registry.npmjs.org/@waku/interfaces/-/interfaces-0.0.35-593bc45.0.tgz"
- integrity sha512-BAQs7Qbm3Vbb8ZMcH0b/7RaA0c39HChuU9aHrNYWemwcZ7ZmQbJPGGQmRqnQkPpWJs0eo0VRPTjZbnE9Vi6I+Q==
+"@waku/interfaces@0.0.35-44ad556.0":
+ version "0.0.35-44ad556.0"
+ resolved "https://registry.npmjs.org/@waku/interfaces/-/interfaces-0.0.35-44ad556.0.tgz"
+ integrity sha512-t1f557WXcVHohzKdKnsv+L6uSOZrnbGL9Lw2023lkn8/vHjyipO2OoT69J26nlX5wOtjksdqZyWEvaRH9/dNtg==
-"@waku/proto@0.0.15-593bc45.0":
- version "0.0.15-593bc45.0"
- resolved "https://registry.npmjs.org/@waku/proto/-/proto-0.0.15-593bc45.0.tgz"
- integrity sha512-fGYt25PvZBZv0EBjvLVzopFBkum3iUQs+1Kjyju3cA5zULA4FH2G8CMmBts81rH0EpGSi/eeUal119+kuctZHw==
+"@waku/proto@0.0.16-44ad556.0":
+ version "0.0.16-44ad556.0"
+ resolved "https://registry.npmjs.org/@waku/proto/-/proto-0.0.16-44ad556.0.tgz"
+ integrity sha512-u1K03anZQa31PYlSFVQFZkb+ffa1p+BjuhHGRXZax9t+Qgyg2EnsIG2IFMNkDSUMEnhTdxuAl1oEmuAr69ywtA==
dependencies:
protons-runtime "^5.4.0"
-"@waku/rln@0.1.10-593bc45.0":
- version "0.1.10-593bc45.0"
- resolved "https://registry.npmjs.org/@waku/rln/-/rln-0.1.10-593bc45.0.tgz"
- integrity sha512-nkUcwfosKDXSsqzxBzTV+x9Iiuo0Ti5vVLQP8MnWttf4FuJxR8hKcde9+hvkzZZTZntn6TEQaYFzG3KOAC2kcA==
+"@waku/rln@0.1.11-44ad556.0":
+ version "0.1.11-44ad556.0"
+ resolved "https://registry.npmjs.org/@waku/rln/-/rln-0.1.11-44ad556.0.tgz"
+ integrity sha512-28xhhs+rokw8otGIWbPGDGpLPlvXJ+n3yuZTeU7DoGR0kkMoAnUu0wqPMdhbPITAj3oEIEjfHjOoOA67l/rKzQ==
dependencies:
"@chainsafe/bls-keystore" "3.0.0"
"@noble/hashes" "^1.2.0"
- "@waku/core" "0.0.40-593bc45.0"
- "@waku/utils" "0.0.28-593bc45.0"
+ "@wagmi/core" "^2.22.1"
+ "@waku/core" "0.0.41-44ad556.0"
+ "@waku/utils" "0.0.28-44ad556.0"
"@waku/zerokit-rln-wasm" "^0.2.1"
chai "^5.1.2"
chai-as-promised "^8.0.1"
chai-spies "^1.1.0"
chai-subset "^1.6.0"
ethereum-cryptography "^3.1.0"
- ethers "^5.7.2"
lodash "^4.17.21"
sinon "^19.0.2"
uuid "^11.0.5"
+ viem "^2.38.4"
-"@waku/utils@0.0.28-593bc45.0":
- version "0.0.28-593bc45.0"
- resolved "https://registry.npmjs.org/@waku/utils/-/utils-0.0.28-593bc45.0.tgz"
- integrity sha512-m4FEzl89cVx6dCQYd15VxRmeqT1DTodHEAS4st7UMdNwaURGWeADbw37NPRc0wHu6LocQYQshJEP1eXtbTkmwg==
+"@waku/utils@0.0.28-44ad556.0":
+ version "0.0.28-44ad556.0"
+ resolved "https://registry.npmjs.org/@waku/utils/-/utils-0.0.28-44ad556.0.tgz"
+ integrity sha512-vaA4rOLp1UvxA6buqnWsj6TSfsrDTwLN6TNEoeechk7zppfqnURaRKc/xrSbWVjK7lgOJZFCuvDrHR/pls5gFw==
dependencies:
"@noble/hashes" "^1.3.2"
- "@waku/interfaces" "0.0.35-593bc45.0"
+ "@waku/interfaces" "0.0.35-44ad556.0"
chai "^4.3.10"
debug "^4.3.4"
uint8arrays "^5.0.1"
@@ -1546,6 +1290,11 @@
resolved "https://registry.npmjs.org/@waku/zerokit-rln-wasm/-/zerokit-rln-wasm-0.2.1.tgz"
integrity sha512-2Xp7e92y4qZpsiTPGBSVr4gVJ9mJTLaudlo0DQxNpxJUBtoJKpxdH5xDCQDiorbkWZC2j9EId+ohhxHO/xC1QQ==
+abitype@^1.0.9, abitype@1.1.0:
+ version "1.1.0"
+ resolved "https://registry.npmjs.org/abitype/-/abitype-1.1.0.tgz"
+ integrity sha512-6Vh4HcRxNMLA0puzPjM5GBgT4aAcFGKZzSgAXvuZ27shJP6NEpielTuqbBmZILR5/xd0PizkBGy5hReKz9jl5A==
+
abort-error@^1.0.1:
version "1.0.1"
resolved "https://registry.npmjs.org/abort-error/-/abort-error-1.0.1.tgz"
@@ -1561,11 +1310,6 @@ acorn-jsx@^5.3.2:
resolved "https://registry.npmjs.org/acorn/-/acorn-8.14.1.tgz"
integrity sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==
-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==
-
ajv@^6.12.4:
version "6.12.6"
resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz"
@@ -1779,26 +1523,11 @@ base64-js@^1.3.1:
resolved "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz"
integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==
-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==
-
binary-extensions@^2.0.0:
version "2.3.0"
resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz"
integrity sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==
-bn.js@^4.11.9:
- version "4.12.1"
- resolved "https://registry.npmjs.org/bn.js/-/bn.js-4.12.1.tgz"
- integrity sha512-k8TVBiPkPJT9uHLdOKfFpqcfprwBFOAAXXozRubr7R7PfIuKvQlzcI4M0pALeqXN09vdaMbUdUj+pass+uULAg==
-
-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"
@@ -1821,11 +1550,6 @@ braces@^3.0.3, braces@~3.0.2:
dependencies:
fill-range "^7.1.1"
-brorand@^1.1.0:
- version "1.1.0"
- resolved "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz"
- integrity sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==
-
buffer@^6.0.3:
version "6.0.3"
resolved "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz"
@@ -2220,19 +1944,6 @@ eastasianwidth@^0.2.0:
resolved "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz"
integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==
-elliptic@6.6.1:
- version "6.6.1"
- resolved "https://registry.npmjs.org/elliptic/-/elliptic-6.6.1.tgz"
- integrity sha512-RaddvvMatK2LJHqFJ+YA4WysVN5Ita9E35botqIYspQ4TkRAlCicdzKOjlyv/1Za5RyTNn7di//eEV0uTAfe3g==
- dependencies:
- bn.js "^4.11.9"
- brorand "^1.1.0"
- hash.js "^1.0.0"
- hmac-drbg "^1.0.1"
- inherits "^2.0.4"
- minimalistic-assert "^1.0.1"
- minimalistic-crypto-utils "^1.0.1"
-
emoji-regex@^8.0.0:
version "8.0.0"
resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz"
@@ -2608,43 +2319,7 @@ ethereum-cryptography@^3.1.0:
"@scure/bip32" "1.6.2"
"@scure/bip39" "1.5.4"
-ethers@^5.7.2:
- 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"
-
-eventemitter3@^5.0.1:
+eventemitter3@^5.0.1, eventemitter3@5.0.1:
version "5.0.1"
resolved "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz"
integrity sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==
@@ -2929,14 +2604,6 @@ has-tostringtag@^1.0.2:
dependencies:
has-symbols "^1.0.3"
-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==
- dependencies:
- inherits "^2.0.3"
- minimalistic-assert "^1.0.1"
-
hashlru@^2.3.0:
version "2.3.0"
resolved "https://registry.npmjs.org/hashlru/-/hashlru-2.3.0.tgz"
@@ -2977,15 +2644,6 @@ hast-util-whitespace@^3.0.0:
dependencies:
"@types/hast" "^3.0.0"
-hmac-drbg@^1.0.1:
- version "1.0.1"
- resolved "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz"
- integrity sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==
- dependencies:
- hash.js "^1.0.3"
- minimalistic-assert "^1.0.0"
- minimalistic-crypto-utils "^1.0.1"
-
html-url-attributes@^3.0.0:
version "3.0.1"
resolved "https://registry.npmjs.org/html-url-attributes/-/html-url-attributes-3.0.1.tgz"
@@ -3014,11 +2672,6 @@ imurmurhash@^0.1.4:
resolved "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz"
integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==
-inherits@^2.0.3, inherits@^2.0.4:
- version "2.0.4"
- resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz"
- integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
-
inline-style-parser@0.2.4:
version "0.2.4"
resolved "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.2.4.tgz"
@@ -3290,6 +2943,11 @@ isexe@^2.0.0:
resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz"
integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==
+isows@1.0.7:
+ version "1.0.7"
+ resolved "https://registry.npmjs.org/isows/-/isows-1.0.7.tgz"
+ integrity sha512-I1fSfDCZL5P0v33sVqeTDSpcstAg/N+wF5HS033mogOVIp4B+oHC7oOCsA3axAbBSGTJ8QubbNmnIRN/h8U7hg==
+
it-all@^3.0.4:
version "3.0.9"
resolved "https://registry.npmjs.org/it-all/-/it-all-3.0.9.tgz"
@@ -3405,11 +3063,6 @@ js-sha3@^0.9.2:
resolved "https://registry.npmjs.org/js-sha3/-/js-sha3-0.9.3.tgz"
integrity sha512-BcJPCQeLg6WjEx3FE591wVAevlli8lxsxm9/FzV4HXkV49TmBH38Yvrpce6fjbADGMKFrBMGTqrVz3qPIZ88Gg==
-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==
-
"js-tokens@^3.0.0 || ^4.0.0":
version "4.0.0"
resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz"
@@ -3874,16 +3527,6 @@ micromatch@^4.0.4, micromatch@^4.0.8:
braces "^3.0.3"
picomatch "^2.3.1"
-minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1:
- version "1.0.1"
- resolved "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz"
- integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==
-
-minimalistic-crypto-utils@^1.0.1:
- version "1.0.1"
- resolved "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz"
- integrity sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==
-
minimatch@^3.1.2:
version "3.1.2"
resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz"
@@ -3908,6 +3551,11 @@ minimist@^1.2.0, minimist@^1.2.6:
resolved "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz"
integrity sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==
+mipd@0.0.7:
+ version "0.0.7"
+ resolved "https://registry.npmjs.org/mipd/-/mipd-0.0.7.tgz"
+ integrity sha512-aAPZPNDQ3uMTdKbuO2YmAw2TxLHO0moa4YKAyETM/DTj5FloZo+a+8tU+iv4GmW+sOxKLSRwcSFuczk+Cpt6fg==
+
motion-dom@^12.7.4:
version "12.7.4"
resolved "https://registry.npmjs.org/motion-dom/-/motion-dom-12.7.4.tgz"
@@ -4095,6 +3743,20 @@ own-keys@^1.0.1:
object-keys "^1.1.1"
safe-push-apply "^1.0.0"
+ox@0.9.6:
+ version "0.9.6"
+ resolved "https://registry.npmjs.org/ox/-/ox-0.9.6.tgz"
+ integrity sha512-8SuCbHPvv2eZLYXrNmC0EC12rdzXQLdhnOMlHDW2wiCPLxBrOOJwX5L5E61by+UjTPOryqQiRSnjIKCI+GykKg==
+ dependencies:
+ "@adraffy/ens-normalize" "^1.11.0"
+ "@noble/ciphers" "^1.3.0"
+ "@noble/curves" "1.9.1"
+ "@noble/hashes" "^1.8.0"
+ "@scure/bip32" "^1.7.0"
+ "@scure/bip39" "^1.6.0"
+ abitype "^1.0.9"
+ eventemitter3 "5.0.1"
+
p-defer@^4.0.0, p-defer@^4.0.1:
version "4.0.1"
resolved "https://registry.npmjs.org/p-defer/-/p-defer-4.0.1.tgz"
@@ -4114,18 +3776,18 @@ p-locate@^5.0.0:
dependencies:
p-limit "^3.0.2"
-p-queue@^8.0.1:
- version "8.1.1"
- resolved "https://registry.npmjs.org/p-queue/-/p-queue-8.1.1.tgz"
- integrity sha512-aNZ+VfjobsWryoiPnEApGGmf5WmNsCo9xu8dfaYamG5qaLP7ClhLN6NgsFe6SwJ2UbLEBK5dv9x8Mn5+RVhMWQ==
+p-queue@^9.0.0:
+ version "9.0.0"
+ resolved "https://registry.npmjs.org/p-queue/-/p-queue-9.0.0.tgz"
+ integrity sha512-KO1RyxstL9g1mK76530TExamZC/S2Glm080Nx8PE5sTd7nlduDQsAfEl4uXX+qZjLiwvDauvzXavufy3+rJ9zQ==
dependencies:
eventemitter3 "^5.0.1"
- p-timeout "^6.1.2"
+ p-timeout "^7.0.0"
-p-timeout@^6.1.2:
- version "6.1.4"
- resolved "https://registry.npmjs.org/p-timeout/-/p-timeout-6.1.4.tgz"
- integrity sha512-MyIV3ZA/PmyBN/ud8vV9XzwTrNtR4jFrObymZYnZqMmW0zA8Z17vnT0rBgFE/TlohB+YCHqXMgZzb3Csp49vqg==
+p-timeout@^7.0.0:
+ version "7.0.1"
+ resolved "https://registry.npmjs.org/p-timeout/-/p-timeout-7.0.1.tgz"
+ integrity sha512-AxTM2wDGORHGEkPCt8yqxOTMgpfbEHqF51f/5fJCmwFC3C/zNcGT63SymH2ttOAaiIws2zVg4+izQCjrakcwHg==
package-json-from-dist@^1.0.0:
version "1.0.1"
@@ -4393,7 +4055,7 @@ react-style-singleton@^2.2.2, react-style-singleton@^2.2.3:
get-nonce "^1.0.0"
tslib "^2.0.0"
-"react@^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0", "react@^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc", "react@^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react@^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", "react@^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc", "react@^18.0.0 || ^19.0.0", "react@^18.0.0 || ^19.0.0 || ^19.0.0-rc", "react@^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0", react@^19.0.0, react@^19.1.0, "react@>= 16.8.0 || 17.x.x || ^18.0.0-0 || ^19.0.0-0", react@>=16.8.0, react@>=18:
+"react@^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0", "react@^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc", "react@^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", "react@^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", "react@^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc", "react@^18.0.0 || ^19.0.0", "react@^18.0.0 || ^19.0.0 || ^19.0.0-rc", "react@^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0", react@^19.0.0, react@^19.1.0, "react@>= 16.8.0 || 17.x.x || ^18.0.0-0 || ^19.0.0-0", react@>=16.8.0, react@>=18, react@>=18.0.0:
version "19.1.0"
resolved "https://registry.npmjs.org/react/-/react-19.1.0.tgz"
integrity sha512-FS+XFBNvn3GTAWq26joslQgWNoFu08F4kl0J4CgdNKADkdSGXQyTCnKteIAJy96Br6YbpEU1LSzV5dYtjMkMDg==
@@ -4532,11 +4194,6 @@ scheduler@^0.26.0:
resolved "https://registry.npmjs.org/scheduler/-/scheduler-0.26.0.tgz"
integrity sha512-NlHwttCI/l5gCPR3D1nNXtWABUmBwvZpEQiD4IXSbIDq8BzLIK/7Ir5gTFSGZDUu37K5cMNp0hFtzO38sC7gWA==
-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==
-
semver@^6.3.1:
version "6.3.1"
resolved "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz"
@@ -5057,7 +4714,7 @@ typed-array-length@^1.0.7:
possible-typed-array-names "^1.0.0"
reflect.getprototypeof "^1.0.6"
-typescript@^5, typescript@>=3.3.1, typescript@>=4.8.4, "typescript@>=4.8.4 <5.9.0":
+typescript@^5, typescript@>=3.3.1, typescript@>=4.8.4, "typescript@>=4.8.4 <5.9.0", typescript@>=5.0.4, typescript@>=5.4.0:
version "5.8.3"
resolved "https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz"
integrity sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==
@@ -5230,10 +4887,24 @@ vfile@^6.0.0:
"@types/unist" "^3.0.0"
vfile-message "^4.0.0"
+viem@^2.21.54, viem@^2.38.4, viem@2.x:
+ version "2.38.4"
+ resolved "https://registry.npmjs.org/viem/-/viem-2.38.4.tgz"
+ integrity sha512-qnyPNg6Lz1EEC86si/1dq7GlOyZVFHSgAW+p8Q31R5idnAYCOdTM2q5KLE4/ykMeMXzY0bnp5MWTtR/wjCtWmQ==
+ dependencies:
+ "@noble/curves" "1.9.1"
+ "@noble/hashes" "1.8.0"
+ "@scure/bip32" "1.7.0"
+ "@scure/bip39" "1.6.0"
+ abitype "1.1.0"
+ isows "1.0.7"
+ ox "0.9.6"
+ ws "8.18.3"
+
weald@^1.0.4:
- version "1.0.6"
- resolved "https://registry.npmjs.org/weald/-/weald-1.0.6.tgz"
- integrity sha512-sX1PzkcMJZUJ848JbFzB6aKHHglTxqACEnq2KgI75b7vWYvfXFBNbOuDKqFKwCT44CrP6c5r+L4+5GmPnb5/SQ==
+ version "1.1.1"
+ resolved "https://registry.npmjs.org/weald/-/weald-1.1.1.tgz"
+ integrity sha512-PaEQShzMCz8J/AD2N3dJMc1hTZWkJeLKS2NMeiVkV5KDHwgZe7qXLEzyodsT/SODxWDdXJJqocuwf3kHzcXhSQ==
dependencies:
ms "^3.0.0-canary.1"
supports-color "^10.0.0"
@@ -5321,10 +4992,10 @@ wrap-ansi@^8.1.0:
string-width "^5.0.1"
strip-ansi "^7.0.1"
-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@*, ws@8.18.3:
+ version "8.18.3"
+ resolved "https://registry.npmjs.org/ws/-/ws-8.18.3.tgz"
+ integrity sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==
yaml@^2.3.4:
version "2.7.1"
@@ -5336,6 +5007,11 @@ yocto-queue@^0.1.0:
resolved "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz"
integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==
+zustand@5.0.0:
+ version "5.0.0"
+ resolved "https://registry.npmjs.org/zustand/-/zustand-5.0.0.tgz"
+ integrity sha512-LE+VcmbartOPM+auOjCCLQOsQ05zUTp8RkgwRzefUk+2jISdMMFnxvyTjA4YNWr5ZGXYbVsEMZosttuxUBkojQ==
+
zwitch@^2.0.0:
version "2.0.4"
resolved "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz"