diff --git a/.changeset/itchy-pants-unite.md b/.changeset/itchy-pants-unite.md new file mode 100644 index 00000000000..62b13a811bf --- /dev/null +++ b/.changeset/itchy-pants-unite.md @@ -0,0 +1,10 @@ +--- +'@audius/eth': major +--- + +Release 1.0.0 + +- All contracts now simply export their ABIs and addresses. +- No viem dependency required. +- Treeshakable. +- Added examples and documentation. diff --git a/package-lock.json b/package-lock.json index a6c1d8f6653..2e73b65ea7c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -38237,83 +38237,6 @@ "dev": true, "license": "MIT" }, - "node_modules/@webassemblyjs/helper-code-frame": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz", - "integrity": "sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@webassemblyjs/wast-printer": "1.9.0" - } - }, - "node_modules/@webassemblyjs/helper-code-frame/node_modules/@webassemblyjs/ast": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz", - "integrity": "sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@webassemblyjs/helper-module-context": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/wast-parser": "1.9.0" - } - }, - "node_modules/@webassemblyjs/helper-code-frame/node_modules/@webassemblyjs/helper-wasm-bytecode": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz", - "integrity": "sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==", - "dev": true, - "license": "MIT" - }, - "node_modules/@webassemblyjs/helper-code-frame/node_modules/@webassemblyjs/wast-printer": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz", - "integrity": "sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/wast-parser": "1.9.0", - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webassemblyjs/helper-fsm": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz", - "integrity": "sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw==", - "dev": true, - "license": "ISC" - }, - "node_modules/@webassemblyjs/helper-module-context": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz", - "integrity": "sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@webassemblyjs/ast": "1.9.0" - } - }, - "node_modules/@webassemblyjs/helper-module-context/node_modules/@webassemblyjs/ast": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz", - "integrity": "sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@webassemblyjs/helper-module-context": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/wast-parser": "1.9.0" - } - }, - "node_modules/@webassemblyjs/helper-module-context/node_modules/@webassemblyjs/helper-wasm-bytecode": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz", - "integrity": "sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==", - "dev": true, - "license": "MIT" - }, "node_modules/@webassemblyjs/helper-numbers": { "version": "1.13.2", "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz", @@ -38432,54 +38355,6 @@ "@webassemblyjs/utf8": "1.13.2" } }, - "node_modules/@webassemblyjs/wast-parser": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz", - "integrity": "sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/floating-point-hex-parser": "1.9.0", - "@webassemblyjs/helper-api-error": "1.9.0", - "@webassemblyjs/helper-code-frame": "1.9.0", - "@webassemblyjs/helper-fsm": "1.9.0", - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webassemblyjs/wast-parser/node_modules/@webassemblyjs/ast": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz", - "integrity": "sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@webassemblyjs/helper-module-context": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/wast-parser": "1.9.0" - } - }, - "node_modules/@webassemblyjs/wast-parser/node_modules/@webassemblyjs/floating-point-hex-parser": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz", - "integrity": "sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@webassemblyjs/wast-parser/node_modules/@webassemblyjs/helper-api-error": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz", - "integrity": "sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw==", - "dev": true, - "license": "MIT" - }, - "node_modules/@webassemblyjs/wast-parser/node_modules/@webassemblyjs/helper-wasm-bytecode": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz", - "integrity": "sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==", - "dev": true, - "license": "MIT" - }, "node_modules/@webassemblyjs/wast-printer": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz", @@ -39648,25 +39523,6 @@ "node": ">= 10.0.0" } }, - "node_modules/abitype": { - "version": "1.0.7", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/wevm" - }, - "peerDependencies": { - "typescript": ">=5.0.4", - "zod": "^3 >=3.22.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - }, - "zod": { - "optional": true - } - } - }, "node_modules/abort-controller": { "version": "3.0.0", "license": "MIT", @@ -39935,16 +39791,6 @@ "uri-js": "^4.2.2" } }, - "node_modules/ajv-errors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz", - "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "ajv": ">=5.0.0" - } - }, "node_modules/ajv-formats": { "version": "2.1.1", "license": "MIT", @@ -46492,43 +46338,6 @@ "url": "https://github.com/sponsors/mesqueeb" } }, - "node_modules/copy-concurrently": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", - "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", - "deprecated": "This package is no longer supported.", - "dev": true, - "license": "ISC", - "dependencies": { - "aproba": "^1.1.1", - "fs-write-stream-atomic": "^1.0.8", - "iferr": "^0.1.5", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4", - "run-queue": "^1.0.0" - } - }, - "node_modules/copy-concurrently/node_modules/aproba": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", - "dev": true, - "license": "ISC" - }, - "node_modules/copy-concurrently/node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "deprecated": "Rimraf versions prior to v4 are no longer supported", - "dev": true, - "license": "ISC", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, "node_modules/copy-descriptor": { "version": "0.1.1", "dev": true, @@ -47423,13 +47232,6 @@ "uniq": "^1.0.0" } }, - "node_modules/cyclist": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.2.tgz", - "integrity": "sha512-0sVXIohTfLqVIW3kb/0n6IiWF3Ifj5nm2XaSrLq2DI6fKIGa2fYAZdk917rUneaeLVpYfFcyXE2ft0fe3remsA==", - "dev": true, - "license": "MIT" - }, "node_modules/d": { "version": "1.0.1", "license": "ISC", @@ -50029,84 +49831,6 @@ "node": ">=10.0.0" } }, - "node_modules/enhanced-resolve": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz", - "integrity": "sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "memory-fs": "^0.5.0", - "tapable": "^1.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/enhanced-resolve/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/enhanced-resolve/node_modules/memory-fs": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz", - "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==", - "dev": true, - "license": "MIT", - "dependencies": { - "errno": "^0.1.3", - "readable-stream": "^2.0.1" - }, - "engines": { - "node": ">=4.3.0 <5.0.0 || >=5.10" - } - }, - "node_modules/enhanced-resolve/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dev": true, - "license": "MIT", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/enhanced-resolve/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true, - "license": "MIT" - }, - "node_modules/enhanced-resolve/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/enhanced-resolve/node_modules/tapable": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", - "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, "node_modules/enquirer": { "version": "2.4.1", "license": "MIT", @@ -54102,14 +53826,6 @@ "react-native": "*" } }, - "node_modules/figgy-pudding": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz", - "integrity": "sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==", - "deprecated": "This module is no longer supported.", - "dev": true, - "license": "ISC" - }, "node_modules/figures": { "version": "3.2.0", "license": "MIT", @@ -54466,57 +54182,6 @@ "node": ">=0.4.0" } }, - "node_modules/flush-write-stream": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", - "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", - "dev": true, - "license": "MIT", - "dependencies": { - "inherits": "^2.0.3", - "readable-stream": "^2.3.6" - } - }, - "node_modules/flush-write-stream/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/flush-write-stream/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dev": true, - "license": "MIT", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/flush-write-stream/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true, - "license": "MIT" - }, - "node_modules/flush-write-stream/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, "node_modules/follow-redirects": { "version": "1.5.10", "license": "MIT", @@ -54807,60 +54472,6 @@ "dev": true, "license": "MIT" }, - "node_modules/fs-write-stream-atomic": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", - "integrity": "sha512-gehEzmPn2nAwr39eay+x3X34Ra+M2QlVUTLhkXPjWdeO8RF9kszk116avgBJM3ZyNHgHXBNx+VmPaFC36k0PzA==", - "deprecated": "This package is no longer supported.", - "dev": true, - "license": "ISC", - "dependencies": { - "graceful-fs": "^4.1.2", - "iferr": "^0.1.5", - "imurmurhash": "^0.1.4", - "readable-stream": "1 || 2" - } - }, - "node_modules/fs-write-stream-atomic/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/fs-write-stream-atomic/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dev": true, - "license": "MIT", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/fs-write-stream-atomic/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true, - "license": "MIT" - }, - "node_modules/fs-write-stream-atomic/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, "node_modules/fs.realpath": { "version": "1.0.0", "license": "ISC" @@ -57531,13 +57142,6 @@ "version": "1.1.13", "license": "BSD-3-Clause" }, - "node_modules/iferr": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", - "integrity": "sha512-DUNFN5j7Tln0D+TxzloUjKB+CtVu6myn0JEFak6dG18mNt9YkQ6lzGCdafwofISZ1lLF3xRHJ98VKy9ynkcFaA==", - "dev": true, - "license": "MIT" - }, "node_modules/ignore": { "version": "5.3.2", "license": "MIT", @@ -63439,16 +63043,6 @@ "node": ">=4" } }, - "node_modules/loader-runner": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz", - "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4.3.0 <5.0.0 || >=5.10" - } - }, "node_modules/loader-utils": { "version": "2.0.4", "dev": true, @@ -65567,57 +65161,6 @@ "timers-ext": "^0.1.7" } }, - "node_modules/memory-fs": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", - "integrity": "sha512-cda4JKCxReDXFXRqOHPQscuIYg1PvxbE2S2GP45rnwfEK+vZaXC8C1OFvdHIbgw0DLzowXGVoxLaAmlgRy14GQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "errno": "^0.1.3", - "readable-stream": "^2.0.1" - } - }, - "node_modules/memory-fs/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/memory-fs/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dev": true, - "license": "MIT", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/memory-fs/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true, - "license": "MIT" - }, - "node_modules/memory-fs/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, "node_modules/meow": { "version": "6.1.1", "license": "MIT", @@ -67896,7 +67439,9 @@ "license": "MIT" }, "node_modules/minimatch": { - "version": "3.1.2", + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", + "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" @@ -68056,79 +67601,6 @@ } } }, - "node_modules/mississippi": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", - "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "concat-stream": "^1.5.0", - "duplexify": "^3.4.2", - "end-of-stream": "^1.1.0", - "flush-write-stream": "^1.0.0", - "from2": "^2.1.0", - "parallel-transform": "^1.1.0", - "pump": "^3.0.0", - "pumpify": "^1.3.3", - "stream-each": "^1.1.0", - "through2": "^2.0.0" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/mississippi/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/mississippi/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dev": true, - "license": "MIT", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/mississippi/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true, - "license": "MIT" - }, - "node_modules/mississippi/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/mississippi/node_modules/through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - }, "node_modules/mitt": { "version": "3.0.1", "license": "MIT" @@ -68696,43 +68168,6 @@ "to-px": "^1.0.1" } }, - "node_modules/move-concurrently": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", - "integrity": "sha512-hdrFxZOycD/g6A6SoI2bB5NA/5NEqD0569+S47WZhPvm46sD50ZHdYaFmnua5lndde9rCHGjmfK7Z8BuCt/PcQ==", - "deprecated": "This package is no longer supported.", - "dev": true, - "license": "ISC", - "dependencies": { - "aproba": "^1.1.1", - "copy-concurrently": "^1.0.0", - "fs-write-stream-atomic": "^1.0.8", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4", - "run-queue": "^1.0.3" - } - }, - "node_modules/move-concurrently/node_modules/aproba": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", - "dev": true, - "license": "ISC" - }, - "node_modules/move-concurrently/node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "deprecated": "Rimraf versions prior to v4 are no longer supported", - "dev": true, - "license": "ISC", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, "node_modules/mri": { "version": "1.2.0", "license": "MIT", @@ -70050,177 +69485,6 @@ "version": "0.4.0", "license": "MIT" }, - "node_modules/node-libs-browser": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", - "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "assert": "^1.1.1", - "browserify-zlib": "^0.2.0", - "buffer": "^4.3.0", - "console-browserify": "^1.1.0", - "constants-browserify": "^1.0.0", - "crypto-browserify": "^3.11.0", - "domain-browser": "^1.1.1", - "events": "^3.0.0", - "https-browserify": "^1.0.0", - "os-browserify": "^0.3.0", - "path-browserify": "0.0.1", - "process": "^0.11.10", - "punycode": "^1.2.4", - "querystring-es3": "^0.2.0", - "readable-stream": "^2.3.3", - "stream-browserify": "^2.0.1", - "stream-http": "^2.7.2", - "string_decoder": "^1.0.0", - "timers-browserify": "^2.0.4", - "tty-browserify": "0.0.0", - "url": "^0.11.0", - "util": "^0.11.0", - "vm-browserify": "^1.0.1" - } - }, - "node_modules/node-libs-browser/node_modules/assert": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.1.tgz", - "integrity": "sha512-zzw1uCAgLbsKwBfFc8CX78DDg+xZeBksSO3vwVIDDN5i94eOrPsSSyiVhmsSABFDM/OcpE2aagCat9dnWQLG1A==", - "dev": true, - "license": "MIT", - "dependencies": { - "object.assign": "^4.1.4", - "util": "^0.10.4" - } - }, - "node_modules/node-libs-browser/node_modules/assert/node_modules/util": { - "version": "0.10.4", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz", - "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==", - "dev": true, - "license": "MIT", - "dependencies": { - "inherits": "2.0.3" - } - }, - "node_modules/node-libs-browser/node_modules/buffer": { - "version": "4.9.2", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", - "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", - "dev": true, - "license": "MIT", - "dependencies": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4", - "isarray": "^1.0.0" - } - }, - "node_modules/node-libs-browser/node_modules/events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8.x" - } - }, - "node_modules/node-libs-browser/node_modules/inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", - "dev": true, - "license": "ISC" - }, - "node_modules/node-libs-browser/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/node-libs-browser/node_modules/path-browserify": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", - "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/node-libs-browser/node_modules/punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/node-libs-browser/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dev": true, - "license": "MIT", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/node-libs-browser/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true, - "license": "MIT" - }, - "node_modules/node-libs-browser/node_modules/stream-browserify": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", - "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", - "dev": true, - "license": "MIT", - "dependencies": { - "inherits": "~2.0.1", - "readable-stream": "^2.0.2" - } - }, - "node_modules/node-libs-browser/node_modules/stream-http": { - "version": "2.8.3", - "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", - "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", - "dev": true, - "license": "MIT", - "dependencies": { - "builtin-status-codes": "^3.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.3.6", - "to-arraybuffer": "^1.0.0", - "xtend": "^4.0.0" - } - }, - "node_modules/node-libs-browser/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/node-libs-browser/node_modules/util": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", - "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "inherits": "2.0.3" - } - }, "node_modules/node-libs-react-native": { "version": "1.2.1", "license": "MIT", @@ -72919,104 +72183,6 @@ "dev": true, "license": "MIT" }, - "node_modules/ox": { - "version": "0.1.2", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/wevm" - } - ], - "license": "MIT", - "dependencies": { - "@adraffy/ens-normalize": "^1.10.1", - "@noble/curves": "^1.6.0", - "@noble/hashes": "^1.5.0", - "@scure/bip32": "^1.5.0", - "@scure/bip39": "^1.4.0", - "abitype": "^1.0.6", - "eventemitter3": "5.0.1" - }, - "peerDependencies": { - "typescript": ">=5.4.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/ox/node_modules/@adraffy/ens-normalize": { - "version": "1.11.0", - "license": "MIT" - }, - "node_modules/ox/node_modules/@noble/curves": { - "version": "1.7.0", - "license": "MIT", - "dependencies": { - "@noble/hashes": "1.6.0" - }, - "engines": { - "node": "^14.21.3 || >=16" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/ox/node_modules/@noble/curves/node_modules/@noble/hashes": { - "version": "1.6.0", - "license": "MIT", - "engines": { - "node": "^14.21.3 || >=16" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/ox/node_modules/@noble/hashes": { - "version": "1.6.1", - "license": "MIT", - "engines": { - "node": "^14.21.3 || >=16" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/ox/node_modules/@scure/base": { - "version": "1.2.1", - "license": "MIT", - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/ox/node_modules/@scure/bip32": { - "version": "1.6.0", - "license": "MIT", - "dependencies": { - "@noble/curves": "~1.7.0", - "@noble/hashes": "~1.6.0", - "@scure/base": "~1.2.1" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/ox/node_modules/@scure/bip39": { - "version": "1.5.0", - "license": "MIT", - "dependencies": { - "@noble/hashes": "~1.6.0", - "@scure/base": "~1.2.1" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/ox/node_modules/eventemitter3": { - "version": "5.0.1", - "license": "MIT" - }, "node_modules/p-cancelable": { "version": "1.1.0", "license": "MIT", @@ -73323,58 +72489,6 @@ "node": ">=12" } }, - "node_modules/parallel-transform": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz", - "integrity": "sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==", - "dev": true, - "license": "MIT", - "dependencies": { - "cyclist": "^1.0.1", - "inherits": "^2.0.3", - "readable-stream": "^2.1.5" - } - }, - "node_modules/parallel-transform/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/parallel-transform/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dev": true, - "license": "MIT", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/parallel-transform/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true, - "license": "MIT" - }, - "node_modules/parallel-transform/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, "node_modules/param-case": { "version": "3.0.4", "dev": true, @@ -75993,29 +75107,6 @@ "once": "^1.3.1" } }, - "node_modules/pumpify": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", - "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "duplexify": "^3.6.0", - "inherits": "^2.0.3", - "pump": "^2.0.0" - } - }, - "node_modules/pumpify/node_modules/pump": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", - "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", - "dev": true, - "license": "MIT", - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, "node_modules/punycode": { "version": "2.1.0", "license": "MIT", @@ -81036,23 +80127,6 @@ "queue-microtask": "^1.2.2" } }, - "node_modules/run-queue": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", - "integrity": "sha512-ntymy489o0/QQplUDnpYAYUsO50K9SBrIVaKCWDOJzYJts0f9WH9RFJkyagebkw5+y1oi00R7ynNW/d12GBumg==", - "dev": true, - "license": "ISC", - "dependencies": { - "aproba": "^1.1.1" - } - }, - "node_modules/run-queue/node_modules/aproba": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", - "dev": true, - "license": "ISC" - }, "node_modules/run-series": { "version": "1.1.9", "funding": [ @@ -83291,13 +82365,6 @@ "atomic-sleep": "^1.0.0" } }, - "node_modules/source-list-map": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", - "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==", - "dev": true, - "license": "MIT" - }, "node_modules/source-map": { "version": "0.5.7", "license": "BSD-3-Clause", @@ -84423,17 +83490,6 @@ "writable-consumable-stream": "^3.0.1" } }, - "node_modules/stream-each": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz", - "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==", - "dev": true, - "license": "MIT", - "dependencies": { - "end-of-stream": "^1.1.0", - "stream-shift": "^1.0.0" - } - }, "node_modules/stream-http": { "version": "3.2.0", "license": "MIT", @@ -91245,6 +90301,8 @@ }, "node_modules/viem": { "version": "2.21.21", + "resolved": "https://registry.npmjs.org/viem/-/viem-2.21.21.tgz", + "integrity": "sha512-KJPqpAXy8kyZQICx1nURUXqd8aABP9RweAZhfp27MzMPsAAxP450cWPlEffEAUrvsyyj5edVbIcHESE8DYVzFA==", "funding": [ { "type": "github", @@ -93260,17 +92318,6 @@ "node": ">=10.13.0" } }, - "node_modules/watchpack-chokidar2": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz", - "integrity": "sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "chokidar": "^2.1.8" - } - }, "node_modules/wcwidth": { "version": "1.0.1", "license": "MIT", @@ -96006,27 +95053,6 @@ "node": ">=10.0.0" } }, - "node_modules/webpack-sources": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", - "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "source-list-map": "^2.0.0", - "source-map": "~0.6.1" - } - }, - "node_modules/webpack-sources/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/webpack/node_modules/@types/estree": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", @@ -96425,16 +95451,6 @@ "node": ">=0.4.0" } }, - "node_modules/worker-farm": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz", - "integrity": "sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==", - "dev": true, - "license": "MIT", - "dependencies": { - "errno": "~0.1.7" - } - }, "node_modules/workerd": { "version": "1.20240223.1", "dev": true, @@ -98026,12 +97042,6 @@ "node": ">=18" } }, - "packages/commands/node_modules/bn.js": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.2.tgz", - "integrity": "sha512-v2YAxEmKaBLahNwE1mjp4WON6huMNeuDvagFZW+ASCuA/ku0bXR9hSMw0XpiqMoA3+rmnyck/tPRSFQkoC9Cuw==", - "license": "MIT" - }, "packages/commands/node_modules/commander": { "version": "9.5.0", "license": "MIT", @@ -98183,25 +97193,6 @@ "proxy-compare": "^3.0.0" } }, - "packages/common/node_modules/redux": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/redux/-/redux-4.0.5.tgz", - "integrity": "sha512-VSz1uMAH24DM6MF72vcojpYPtrTUu3ByVWfPL1nPfVRb5mZVTve5GnNCUV53QM/BZ66xfWrm0CTWoM+Xlz8V1w==", - "license": "MIT", - "dependencies": { - "loose-envify": "^1.4.0", - "symbol-observable": "^1.2.0" - } - }, - "packages/common/node_modules/symbol-observable": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", - "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "packages/common/node_modules/type-fest": { "version": "4.26.1", "license": "(MIT OR CC0-1.0)", @@ -109823,69 +108814,6 @@ "vitest": "0.34.6" } }, - "packages/discovery-provider/plugins/pedalboard/apps/staking/node_modules/@noble/curves": { - "version": "1.7.0", - "license": "MIT", - "dependencies": { - "@noble/hashes": "1.6.0" - }, - "engines": { - "node": "^14.21.3 || >=16" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "packages/discovery-provider/plugins/pedalboard/apps/staking/node_modules/@noble/curves/node_modules/@noble/hashes": { - "version": "1.6.0", - "license": "MIT", - "engines": { - "node": "^14.21.3 || >=16" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "packages/discovery-provider/plugins/pedalboard/apps/staking/node_modules/@noble/hashes": { - "version": "1.6.1", - "license": "MIT", - "engines": { - "node": "^14.21.3 || >=16" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "packages/discovery-provider/plugins/pedalboard/apps/staking/node_modules/@scure/base": { - "version": "1.2.1", - "license": "MIT", - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "packages/discovery-provider/plugins/pedalboard/apps/staking/node_modules/@scure/bip32": { - "version": "1.6.0", - "license": "MIT", - "dependencies": { - "@noble/curves": "~1.7.0", - "@noble/hashes": "~1.6.0", - "@scure/base": "~1.2.1" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "packages/discovery-provider/plugins/pedalboard/apps/staking/node_modules/@scure/bip39": { - "version": "1.5.0", - "license": "MIT", - "dependencies": { - "@noble/hashes": "~1.6.0", - "@scure/base": "~1.2.1" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, "packages/discovery-provider/plugins/pedalboard/apps/staking/node_modules/@types/body-parser": { "version": "1.19.0", "dev": true, @@ -110551,54 +109479,6 @@ "node": ">=0.6" } }, - "packages/discovery-provider/plugins/pedalboard/apps/staking/node_modules/viem": { - "version": "2.21.57", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/wevm" - } - ], - "license": "MIT", - "dependencies": { - "@noble/curves": "1.7.0", - "@noble/hashes": "1.6.1", - "@scure/bip32": "1.6.0", - "@scure/bip39": "1.5.0", - "abitype": "1.0.7", - "isows": "1.0.6", - "ox": "0.1.2", - "webauthn-p256": "0.0.10", - "ws": "8.18.0" - }, - "peerDependencies": { - "typescript": ">=5.0.4" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "packages/discovery-provider/plugins/pedalboard/apps/staking/node_modules/ws": { - "version": "8.18.0", - "license": "MIT", - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, "packages/discovery-provider/plugins/pedalboard/apps/trending-challenge-rewards": { "name": "@pedalboard/trending-challenge-rewards", "version": "0.0.30", @@ -118663,10 +117543,7 @@ "packages/eth": { "name": "@audius/eth", "version": "0.1.0", - "license": "Apache-2.0", - "dependencies": { - "viem": "2.21.21" - } + "license": "Apache-2.0" }, "packages/fixed-decimal": { "name": "@audius/fixed-decimal", @@ -120130,280 +119007,6 @@ "@types/react": "*" } }, - "packages/harmony/node_modules/@webassemblyjs/ast": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz", - "integrity": "sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@webassemblyjs/helper-module-context": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/wast-parser": "1.9.0" - } - }, - "packages/harmony/node_modules/@webassemblyjs/helper-api-error": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz", - "integrity": "sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw==", - "dev": true, - "license": "MIT" - }, - "packages/harmony/node_modules/@webassemblyjs/helper-buffer": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz", - "integrity": "sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA==", - "dev": true, - "license": "MIT" - }, - "packages/harmony/node_modules/@webassemblyjs/helper-wasm-bytecode": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz", - "integrity": "sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==", - "dev": true, - "license": "MIT" - }, - "packages/harmony/node_modules/@webassemblyjs/helper-wasm-section": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz", - "integrity": "sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-buffer": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/wasm-gen": "1.9.0" - } - }, - "packages/harmony/node_modules/@webassemblyjs/ieee754": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz", - "integrity": "sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@xtuc/ieee754": "^1.2.0" - } - }, - "packages/harmony/node_modules/@webassemblyjs/leb128": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.9.0.tgz", - "integrity": "sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@xtuc/long": "4.2.2" - } - }, - "packages/harmony/node_modules/@webassemblyjs/utf8": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.9.0.tgz", - "integrity": "sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w==", - "dev": true, - "license": "MIT" - }, - "packages/harmony/node_modules/@webassemblyjs/wasm-edit": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz", - "integrity": "sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-buffer": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/helper-wasm-section": "1.9.0", - "@webassemblyjs/wasm-gen": "1.9.0", - "@webassemblyjs/wasm-opt": "1.9.0", - "@webassemblyjs/wasm-parser": "1.9.0", - "@webassemblyjs/wast-printer": "1.9.0" - } - }, - "packages/harmony/node_modules/@webassemblyjs/wasm-gen": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz", - "integrity": "sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/ieee754": "1.9.0", - "@webassemblyjs/leb128": "1.9.0", - "@webassemblyjs/utf8": "1.9.0" - } - }, - "packages/harmony/node_modules/@webassemblyjs/wasm-opt": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz", - "integrity": "sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A==", - "dev": true, - "license": "MIT", - "dependencies": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-buffer": "1.9.0", - "@webassemblyjs/wasm-gen": "1.9.0", - "@webassemblyjs/wasm-parser": "1.9.0" - } - }, - "packages/harmony/node_modules/@webassemblyjs/wasm-parser": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz", - "integrity": "sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-api-error": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/ieee754": "1.9.0", - "@webassemblyjs/leb128": "1.9.0", - "@webassemblyjs/utf8": "1.9.0" - } - }, - "packages/harmony/node_modules/@webassemblyjs/wast-printer": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz", - "integrity": "sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/wast-parser": "1.9.0", - "@xtuc/long": "4.2.2" - } - }, - "packages/harmony/node_modules/acorn": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz", - "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==", - "dev": true, - "license": "MIT", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "packages/harmony/node_modules/anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "dev": true, - "license": "ISC", - "optional": true, - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "packages/harmony/node_modules/binary-extensions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", - "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", - "dev": true, - "license": "MIT", - "optional": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "packages/harmony/node_modules/cacache": { - "version": "12.0.4", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz", - "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==", - "dev": true, - "license": "ISC", - "dependencies": { - "bluebird": "^3.5.5", - "chownr": "^1.1.1", - "figgy-pudding": "^3.5.1", - "glob": "^7.1.4", - "graceful-fs": "^4.1.15", - "infer-owner": "^1.0.3", - "lru-cache": "^5.1.1", - "mississippi": "^3.0.0", - "mkdirp": "^0.5.1", - "move-concurrently": "^1.0.1", - "promise-inflight": "^1.0.1", - "rimraf": "^2.6.3", - "ssri": "^6.0.1", - "unique-filename": "^1.1.1", - "y18n": "^4.0.0" - } - }, - "packages/harmony/node_modules/cacache/node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, - "license": "ISC", - "dependencies": { - "yallist": "^3.0.2" - } - }, - "packages/harmony/node_modules/cacache/node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true, - "license": "ISC" - }, - "packages/harmony/node_modules/chokidar": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", - "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "packages/harmony/node_modules/chokidar/node_modules/braces": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", - "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "fill-range": "^7.1.1" - }, - "engines": { - "node": ">=8" - } - }, - "packages/harmony/node_modules/chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", - "dev": true, - "license": "ISC" - }, "packages/harmony/node_modules/classnames": { "version": "2.5.1", "license": "MIT" @@ -120430,72 +119033,6 @@ "version": "3.1.3", "license": "MIT" }, - "packages/harmony/node_modules/define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "packages/harmony/node_modules/eslint-scope": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", - "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "packages/harmony/node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" - } - }, - "packages/harmony/node_modules/extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "packages/harmony/node_modules/fill-range": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", - "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, "packages/harmony/node_modules/find-cache-dir": { "version": "3.3.2", "dev": true, @@ -120537,20 +119074,6 @@ "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, - "packages/harmony/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "license": "ISC", - "optional": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, "packages/harmony/node_modules/inline-style-prefixer": { "version": "7.0.0", "license": "MIT", @@ -120559,94 +119082,6 @@ "fast-loops": "^1.1.3" } }, - "packages/harmony/node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "packages/harmony/node_modules/is-descriptor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.3.tgz", - "integrity": "sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-accessor-descriptor": "^1.0.1", - "is-data-descriptor": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "packages/harmony/node_modules/is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-plain-object": "^2.0.4" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "packages/harmony/node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "license": "MIT", - "optional": true, - "engines": { - "node": ">=0.12.0" - } - }, - "packages/harmony/node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "license": "MIT", - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "packages/harmony/node_modules/is-wsl": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", - "integrity": "sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "packages/harmony/node_modules/json5": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", - "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", - "dev": true, - "license": "MIT", - "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "json5": "lib/cli.js" - } - }, "packages/harmony/node_modules/jsonfile": { "version": "6.1.0", "dev": true, @@ -120658,45 +119093,6 @@ "graceful-fs": "^4.1.6" } }, - "packages/harmony/node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "packages/harmony/node_modules/loader-utils": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz", - "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==", - "dev": true, - "license": "MIT", - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^1.0.1" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "packages/harmony/node_modules/locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, "packages/harmony/node_modules/lru-cache": { "version": "6.0.0", "dev": true, @@ -120730,31 +119126,6 @@ "semver": "bin/semver.js" } }, - "packages/harmony/node_modules/micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "license": "MIT", - "dependencies": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, "packages/harmony/node_modules/nano-css": { "version": "5.6.1", "license": "Unlicense", @@ -120773,55 +119144,6 @@ "react-dom": "*" } }, - "packages/harmony/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "packages/harmony/node_modules/p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "packages/harmony/node_modules/path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "packages/harmony/node_modules/pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, "packages/harmony/node_modules/pkg-dir": { "version": "4.2.0", "dev": true, @@ -120875,34 +119197,6 @@ "react-dom": "^16.3.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, - "packages/harmony/node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "packages/harmony/node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "deprecated": "Rimraf versions prior to v4 are no longer supported", - "dev": true, - "license": "ISC", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, "packages/harmony/node_modules/rollup": { "version": "4.3.0", "dev": true, @@ -120946,21 +119240,6 @@ "typescript": ">=2.4.0" } }, - "packages/harmony/node_modules/schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", - "dev": true, - "license": "MIT", - "dependencies": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - }, - "engines": { - "node": ">= 4" - } - }, "packages/harmony/node_modules/semver": { "version": "7.5.4", "dev": true, @@ -120975,16 +119254,6 @@ "node": ">=10" } }, - "packages/harmony/node_modules/serialize-javascript": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", - "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "randombytes": "^2.1.0" - } - }, "packages/harmony/node_modules/slash": { "version": "4.0.0", "dev": true, @@ -120996,163 +119265,10 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "packages/harmony/node_modules/ssri": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.2.tgz", - "integrity": "sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q==", - "dev": true, - "license": "ISC", - "dependencies": { - "figgy-pudding": "^3.5.1" - } - }, "packages/harmony/node_modules/stylis": { "version": "4.3.1", "license": "MIT" }, - "packages/harmony/node_modules/tapable": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", - "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "packages/harmony/node_modules/terser-webpack-plugin": { - "version": "1.4.6", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.6.tgz", - "integrity": "sha512-2lBVf/VMVIddjSn3GqbT90GvIJ/eYXJkt8cTzU7NbjKqK8fwv18Ftr4PlbF46b/e88743iZFL5Dtr/rC4hjIeA==", - "dev": true, - "license": "MIT", - "dependencies": { - "cacache": "^12.0.2", - "find-cache-dir": "^2.1.0", - "is-wsl": "^1.1.0", - "schema-utils": "^1.0.0", - "serialize-javascript": "^4.0.0", - "source-map": "^0.6.1", - "terser": "^4.1.2", - "webpack-sources": "^1.4.0", - "worker-farm": "^1.7.0" - }, - "engines": { - "node": ">= 6.9.0" - }, - "peerDependencies": { - "webpack": "^4.0.0" - } - }, - "packages/harmony/node_modules/terser-webpack-plugin/node_modules/find-cache-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", - "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "commondir": "^1.0.1", - "make-dir": "^2.0.0", - "pkg-dir": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "packages/harmony/node_modules/terser-webpack-plugin/node_modules/find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "license": "MIT", - "dependencies": { - "locate-path": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "packages/harmony/node_modules/terser-webpack-plugin/node_modules/make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", - "dev": true, - "license": "MIT", - "dependencies": { - "pify": "^4.0.1", - "semver": "^5.6.0" - }, - "engines": { - "node": ">=6" - } - }, - "packages/harmony/node_modules/terser-webpack-plugin/node_modules/pkg-dir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", - "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", - "dev": true, - "license": "MIT", - "dependencies": { - "find-up": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "packages/harmony/node_modules/terser-webpack-plugin/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver" - } - }, - "packages/harmony/node_modules/terser-webpack-plugin/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "packages/harmony/node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "packages/harmony/node_modules/unique-filename": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", - "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", - "dev": true, - "license": "ISC", - "dependencies": { - "unique-slug": "^2.0.0" - } - }, - "packages/harmony/node_modules/unique-slug": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", - "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", - "dev": true, - "license": "ISC", - "dependencies": { - "imurmurhash": "^0.1.4" - } - }, "packages/harmony/node_modules/universalify": { "version": "2.0.1", "dev": true, @@ -121161,78 +119277,6 @@ "node": ">= 10.0.0" } }, - "packages/harmony/node_modules/watchpack": { - "version": "1.7.5", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.5.tgz", - "integrity": "sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.1.2", - "neo-async": "^2.5.0" - }, - "optionalDependencies": { - "chokidar": "^3.4.1", - "watchpack-chokidar2": "^2.0.1" - } - }, - "packages/harmony/node_modules/webpack": { - "version": "4.46.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.46.0.tgz", - "integrity": "sha512-6jJuJjg8znb/xRItk7bkT0+Q7AHCYjjFnvKIWQPkNIOyRqoCGvkOs0ipeQzrqz4l5FtN5ZI/ukEHroeX/o1/5Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-module-context": "1.9.0", - "@webassemblyjs/wasm-edit": "1.9.0", - "@webassemblyjs/wasm-parser": "1.9.0", - "acorn": "^6.4.1", - "ajv": "^6.10.2", - "ajv-keywords": "^3.4.1", - "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^4.5.0", - "eslint-scope": "^4.0.3", - "json-parse-better-errors": "^1.0.2", - "loader-runner": "^2.4.0", - "loader-utils": "^1.2.3", - "memory-fs": "^0.4.1", - "micromatch": "^3.1.10", - "mkdirp": "^0.5.3", - "neo-async": "^2.6.1", - "node-libs-browser": "^2.2.1", - "schema-utils": "^1.0.0", - "tapable": "^1.1.3", - "terser-webpack-plugin": "^1.4.3", - "watchpack": "^1.7.4", - "webpack-sources": "^1.4.1" - }, - "bin": { - "webpack": "bin/webpack.js" - }, - "engines": { - "node": ">=6.11.5" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependenciesMeta": { - "webpack-cli": { - "optional": true - }, - "webpack-command": { - "optional": true - } - } - }, - "packages/harmony/node_modules/y18n": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", - "dev": true, - "license": "ISC" - }, "packages/harmony/node_modules/yallist": { "version": "4.0.0", "dev": true, @@ -121801,12 +119845,6 @@ "is-buffer": "^2.0.2" } }, - "packages/identity-service/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" - }, "packages/identity-service/node_modules/cookie": { "version": "0.3.1", "license": "MIT", @@ -122115,49 +120153,10 @@ "node": ">= 0.8" } }, - "packages/identity-service/node_modules/react": { - "version": "16.11.0", - "resolved": "https://registry.npmjs.org/react/-/react-16.11.0.tgz", - "integrity": "sha512-M5Y8yITaLmU0ynd0r1Yvfq98Rmll6q8AxaEe88c8e7LxO8fZ2cNgmFt0aGAS9wzf1Ao32NKXtCl+/tVVtkxq6g==", - "license": "MIT", - "dependencies": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1", - "prop-types": "^15.6.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "packages/identity-service/node_modules/react-dom": { - "version": "16.11.0", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.11.0.tgz", - "integrity": "sha512-nrRyIUE1e7j8PaXSPtyRKtz+2y9ubW/ghNgqKFHHAHaeP0fpF5uXR+sq8IMRHC+ZUxw7W9NyCDTBtwWxvkb0iA==", - "license": "MIT", - "dependencies": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1", - "prop-types": "^15.6.2", - "scheduler": "^0.17.0" - }, - "peerDependencies": { - "react": "^16.0.0" - } - }, "packages/identity-service/node_modules/safe-buffer": { "version": "5.1.1", "license": "MIT" }, - "packages/identity-service/node_modules/scheduler": { - "version": "0.17.0", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.17.0.tgz", - "integrity": "sha512-7rro8Io3tnCPuY4la/NuI5F2yfESpnfZyT6TtkXnSWVkcu0BCDJ+8gk5ozUaFaxpIyNuWAPXrH0yFcSi28fnDA==", - "license": "MIT", - "dependencies": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" - } - }, "packages/identity-service/node_modules/scrypt-js": { "version": "2.0.3", "license": "MIT" @@ -128601,16 +126600,6 @@ "@types/babel__traverse": "*" } }, - "packages/protocol-dashboard/node_modules/@types/bn.js": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.2.tgz", - "integrity": "sha512-dkpZu0szUtn9UXTmw+e0AJFd4D2XAxDnsCLdc05SfqpqzPEBft8eQr8uaFitfo/dUUOZERaLec2hHMG87A4Dxg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, "packages/protocol-dashboard/node_modules/@types/estree": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", diff --git a/packages/eth/README.md b/packages/eth/README.md index 0722423a074..5c77c06aaa7 100644 --- a/packages/eth/README.md +++ b/packages/eth/README.md @@ -1,3 +1,114 @@ # `@audius/eth` -A Typescript package for interacting with the Audius Governance and Staking [Ethereum Contracts](../../eth-contracts/). +Typed ABIs and production addresses for the [Audius Ethereum contracts](../../eth-contracts/). Designed for use with [viem](https://viem.sh/) and fully tree-shakable — import only the contracts you need. + +## Installation + +```bash +npm install @audius/eth viem +``` + +## Usage + +Each contract export is a plain object with `abi` and `address`: + +```ts +import { createPublicClient, http } from 'viem' +import { mainnet } from 'viem/chains' +import { Staking } from '@audius/eth' + +const client = createPublicClient({ + chain: mainnet, + transport: http() +}) + +const totalStaked = await client.readContract({ + ...Staking, + functionName: 'totalStaked' +}) +``` + +### Check pending rewards claim + +```ts +import { ClaimsManager } from '@audius/eth' + +const isPending = await client.readContract({ + ...ClaimsManager, + functionName: 'claimPending', + args: ['0xYourServiceProviderAddress'] +}) +``` + +### Read a governance proposal + +```ts +import { Governance } from '@audius/eth' + +const proposal = await client.readContract({ + ...Governance, + functionName: 'getProposalById', + args: [1n] +}) +``` + +### Look up service provider endpoints + +```ts +import { ServiceProviderFactory, VALIDATOR_SERVICE_TYPE } from '@audius/eth' + +// Get the total number of validators +const total = await client.readContract({ + ...ServiceProviderFactory, + functionName: 'getTotalServiceTypeProviders', + args: [VALIDATOR_SERVICE_TYPE] +}) + +// Get the endpoint info for the first one +const info = await client.readContract({ + ...ServiceProviderFactory, + functionName: 'getServiceEndpointInfo', + args: [VALIDATOR_SERVICE_TYPE, 1n] +}) +``` + +### EIP-2612 permit (gasless approval) + +`AudiusToken` and `AudiusWormhole` include `domain` and `types` for EIP-712 signing: + +```ts +import { AudiusToken } from '@audius/eth' + +const signature = await walletClient.signTypedData({ + domain: { + ...AudiusToken.domain, + chainId: 1, + verifyingContract: AudiusToken.address + }, + types: AudiusToken.types, + primaryType: 'Permit', + message: { + owner: '0x...', + spender: '0x...', + value: 1000000000000000000n, + nonce: 0n, + deadline: 99999999999n + } +}) +``` + +## Contracts + +| Export | Description | +| ------------------------ | ----------------------------------------------------------------------------------- | +| `AudiusToken` | The AUDIO ERC-20 token. Mintable, pausable, burnable. Supports EIP-2612 `permit()`. | +| `AudiusWormhole` | Sends AUDIO cross-chain via Wormhole with meta-transaction support. | +| `ClaimsManager` | Periodic minting and distribution of AUDIO staking rewards. | +| `DelegateManager` | Delegation of AUDIO tokens to service providers with lockup periods. | +| `EthRewardsManager` | Transfers AUDIO rewards from Ethereum to Solana via Wormhole. | +| `Governance` | On-chain governance: proposals, stake-weighted voting, execution. | +| `Registry` | Central directory mapping contract names to addresses. | +| `ServiceProviderFactory` | Registration and staking for discovery nodes and content nodes. | +| `ServiceTypeManager` | Registry of valid service types and their versions. | +| `Staking` | Core staking contract holding all staked AUDIO with checkpointing. | +| `TrustedNotifierManager` | Registry of trusted notifier entities. | diff --git a/packages/eth/package.json b/packages/eth/package.json index 3a24cbfae6d..c83b7bce448 100644 --- a/packages/eth/package.json +++ b/packages/eth/package.json @@ -21,7 +21,5 @@ "url": "https://github.com/AudiusProject/apps/issues" }, "homepage": "https://github.com/AudiusProject/apps/tree/main/packages/eth", - "dependencies": { - "viem": "2.21.21" - } + "sideEffects": false } diff --git a/packages/eth/src/audius-token/audiusToken.ts b/packages/eth/src/audius-token/audiusToken.ts index 55a4552c637..0ee9f3eb3c7 100644 --- a/packages/eth/src/audius-token/audiusToken.ts +++ b/packages/eth/src/audius-token/audiusToken.ts @@ -1,15 +1,18 @@ -import type { TypedData } from 'viem' - import { abi } from './abi' -export type AudiusTokenTypes = typeof AudiusToken.types -export class AudiusToken { - public static readonly abi = abi - - public static readonly address = - '0x18aAA7115705e8be94bfFEBDE57Af9BFc265B998' as const - - public static readonly types = { +/** + * The AUDIO ERC-20 token contract. + * Initial supply of 1 billion tokens (18 decimals). + * Supports EIP-2612 gasless `permit()` approvals. + */ +export const AudiusToken = { + abi, + address: '0x18aAA7115705e8be94bfFEBDE57Af9BFc265B998' as const, + domain: { + name: 'Audius', + version: '1' + } as const, + types: { EIP712Domain: [ { name: 'name', type: 'string' }, { name: 'version', type: 'string' }, @@ -23,5 +26,7 @@ export class AudiusToken { { name: 'nonce', type: 'uint256' }, { name: 'deadline', type: 'uint256' } ] - } as const satisfies TypedData + } as const } + +export type AudiusTokenTypes = typeof AudiusToken.types diff --git a/packages/eth/src/audius-token/index.ts b/packages/eth/src/audius-token/index.ts deleted file mode 100644 index 921ad34bd22..00000000000 --- a/packages/eth/src/audius-token/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './audiusToken' diff --git a/packages/eth/src/audius-wormhole/audiusWormhole.ts b/packages/eth/src/audius-wormhole/audiusWormhole.ts index e9bfc8b015b..81e58c33f79 100644 --- a/packages/eth/src/audius-wormhole/audiusWormhole.ts +++ b/packages/eth/src/audius-wormhole/audiusWormhole.ts @@ -1,20 +1,18 @@ -import { type TypedData } from 'viem' - import { abi } from './abi' -export type AudiusWormholeTypes = typeof AudiusWormhole.types - /** * Contract that can be permitted to send tokens through the Wormhole Portal * on a user's behalf. Not to be confused with the standard Wormhole contracts, * nor to be confused with wAUDIO (the AudiusToken on Solana). */ -export class AudiusWormhole { - public static readonly abi = abi - - public static readonly address = '0x6E7a1F7339bbB62b23D44797b63e4258d283E095' - - public static readonly types = { +export const AudiusWormhole = { + abi, + address: '0x6E7a1F7339bbB62b23D44797b63e4258d283E095' as const, + domain: { + name: 'AudiusWormholeClient', + version: '1' + } as const, + types: { EIP712Domain: [ { name: 'name', type: 'string' }, { name: 'version', type: 'string' }, @@ -30,5 +28,7 @@ export class AudiusWormhole { { name: 'nonce', type: 'uint32' }, { name: 'deadline', type: 'uint256' } ] - } as const satisfies TypedData + } as const } + +export type AudiusWormholeTypes = typeof AudiusWormhole.types diff --git a/packages/eth/src/audius-wormhole/index.ts b/packages/eth/src/audius-wormhole/index.ts deleted file mode 100644 index c112e94805c..00000000000 --- a/packages/eth/src/audius-wormhole/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './audiusWormhole' diff --git a/packages/eth/src/claims-manager/claimsManager.ts b/packages/eth/src/claims-manager/claimsManager.ts index 70863b7d543..33f94998b89 100644 --- a/packages/eth/src/claims-manager/claimsManager.ts +++ b/packages/eth/src/claims-manager/claimsManager.ts @@ -1,89 +1,11 @@ -import type { PublicClient } from 'viem' - import { abi } from './abi' -import { CLAIMS_MANAGER_CONTRACT_ADDRESS } from './constants' - -export class ClaimsManager { - client: PublicClient - address: `0x${string}` - - constructor( - client: PublicClient, - { address }: { address?: `0x${string}` } = {} - ) { - this.client = client - this.address = address ?? CLAIMS_MANAGER_CONTRACT_ADDRESS - } - - // Get the duration of a funding round in blocks - getFundingRoundBlockDiff = () => - this.client.readContract({ - address: this.address, - abi, - functionName: 'getFundingRoundBlockDiff' - }) - - // Get the last block where a funding round was initiated - getLastFundedBlock = () => - this.client.readContract({ - address: this.address, - abi, - functionName: 'getLastFundedBlock' - }) - - // Get the amount funded per round in wei - getFundsPerRound = () => - this.client.readContract({ - address: this.address, - abi, - functionName: 'getFundsPerRound' - }) - - // total amount claimed in the current round - getTotalClaimedInRound = () => - this.client.readContract({ - address: this.address, - abi, - functionName: 'getTotalClaimedInRound' - }) - - // Get the Governance address - getGovernanceAddress = () => - this.client.readContract({ - address: this.address, - abi, - functionName: 'getGovernanceAddress' - }) - - // Get the ServiceProviderFactory address - getServiceProviderFactoryAddress = () => - this.client.readContract({ - address: this.address, - abi, - functionName: 'getServiceProviderFactoryAddress' - }) - - // Get the DelegateManager address - getDelegateManagerAddress = () => - this.client.readContract({ - address: this.address, - abi, - functionName: 'getDelegateManagerAddress' - }) - - // Get the Staking address - getStakingAddress = () => - this.client.readContract({ - address: this.address, - abi, - functionName: 'getStakingAddress' - }) - claimPending = ({ address }: { address: `0x${string}` }) => - this.client.readContract({ - address: this.address, - abi, - functionName: 'claimPending', - args: [address] - }) +/** + * Manages periodic minting and distribution of AUDIO staking rewards. + * Controls funding rounds (~weekly), mints new tokens according to the + * protocol's inflation schedule, and tracks per-round claim amounts. + */ +export const ClaimsManager = { + abi, + address: '0x44617F9dCEd9787C3B06a05B35B4C779a2AA1334' as const } diff --git a/packages/eth/src/claims-manager/constants.ts b/packages/eth/src/claims-manager/constants.ts deleted file mode 100644 index eb4b19ff59c..00000000000 --- a/packages/eth/src/claims-manager/constants.ts +++ /dev/null @@ -1,2 +0,0 @@ -export const CLAIMS_MANAGER_CONTRACT_ADDRESS = - '0x44617F9dCEd9787C3B06a05B35B4C779a2AA1334' diff --git a/packages/eth/src/claims-manager/index.ts b/packages/eth/src/claims-manager/index.ts deleted file mode 100644 index 0340a583e15..00000000000 --- a/packages/eth/src/claims-manager/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from './claimsManager' -export * from './constants' diff --git a/packages/eth/src/delegate-manager/delegateManager.ts b/packages/eth/src/delegate-manager/delegateManager.ts index 130fb19ae8d..78d8bf9998d 100644 --- a/packages/eth/src/delegate-manager/delegateManager.ts +++ b/packages/eth/src/delegate-manager/delegateManager.ts @@ -1,7 +1,12 @@ import { abi } from './abi' -export class DelegateManager { - public static readonly abi = abi - - public static readonly address = '0x4d7968ebfD390D5E7926Cb3587C39eFf2F9FB225' +/** + * Manages delegation of AUDIO tokens to service providers. Delegators can + * increase or decrease their delegated stake with lockup periods to prevent + * anticipatory withdrawal before slashing. Includes per-SP minimum + * delegation amounts (V2). + */ +export const DelegateManager = { + abi, + address: '0x4d7968ebfD390D5E7926Cb3587C39eFf2F9FB225' as const } diff --git a/packages/eth/src/delegate-manager/index.ts b/packages/eth/src/delegate-manager/index.ts deleted file mode 100644 index 371702ba371..00000000000 --- a/packages/eth/src/delegate-manager/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './delegateManager' diff --git a/packages/eth/src/eth-rewards-manager/constants.ts b/packages/eth/src/eth-rewards-manager/constants.ts deleted file mode 100644 index 6373ea5a686..00000000000 --- a/packages/eth/src/eth-rewards-manager/constants.ts +++ /dev/null @@ -1,2 +0,0 @@ -export const ETH_REWARDS_MANAGER_CONTRACT_ADDRESS = - '0x5aa6B99A2B461bA8E97207740f0A689C5C39C3b0' diff --git a/packages/eth/src/eth-rewards-manager/ethRewardsManager.ts b/packages/eth/src/eth-rewards-manager/ethRewardsManager.ts index c2ffeb16bd4..7fb0c9a74ee 100644 --- a/packages/eth/src/eth-rewards-manager/ethRewardsManager.ts +++ b/packages/eth/src/eth-rewards-manager/ethRewardsManager.ts @@ -1,24 +1,11 @@ -import type { PublicClient } from 'viem' - import { abi } from './abi' -import { ETH_REWARDS_MANAGER_CONTRACT_ADDRESS } from './constants' - -export class EthRewardsManager { - client: PublicClient - address: `0x${string}` - - constructor( - client: PublicClient, - { address }: { address?: `0x${string}` } = {} - ) { - this.client = client - this.address = address ?? ETH_REWARDS_MANAGER_CONTRACT_ADDRESS - } - getAntiAbuseOracleAddresses = () => - this.client.readContract({ - address: this.address, - abi, - functionName: 'getAntiAbuseOracleAddresses' - }) +/** + * Manages transferring AUDIO reward tokens from Ethereum to Solana via the + * Wormhole bridge for the Solana-based rewards system. Holds anti-abuse + * oracle addresses. Only governance can modify configuration. + */ +export const EthRewardsManager = { + abi, + address: '0x5aa6B99A2B461bA8E97207740f0A689C5C39C3b0' as const } diff --git a/packages/eth/src/eth-rewards-manager/index.ts b/packages/eth/src/eth-rewards-manager/index.ts deleted file mode 100644 index 4721dd42b12..00000000000 --- a/packages/eth/src/eth-rewards-manager/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from './ethRewardsManager' -export * from './constants' diff --git a/packages/eth/src/governance/constants.ts b/packages/eth/src/governance/constants.ts deleted file mode 100644 index f89a46260e7..00000000000 --- a/packages/eth/src/governance/constants.ts +++ /dev/null @@ -1,2 +0,0 @@ -export const GOVERNANCE_CONTRACT_ADDRESS = - '0x4DEcA517D6817B6510798b7328F2314d3003AbAC' diff --git a/packages/eth/src/governance/governance.ts b/packages/eth/src/governance/governance.ts index f026aa7470a..a519ad7019f 100644 --- a/packages/eth/src/governance/governance.ts +++ b/packages/eth/src/governance/governance.ts @@ -1,177 +1,12 @@ -import type { PublicClient } from 'viem' -import type { GetContractEventsParameters } from 'viem/_types/actions/public/getContractEvents' - import { abi } from './abi' -import { GOVERNANCE_CONTRACT_ADDRESS } from './constants' - -export class Governance { - client: PublicClient - address: `0x${string}` - - constructor( - client: PublicClient, - { address }: { address?: `0x${string}` } = {} - ) { - this.client = client - this.address = address ?? GOVERNANCE_CONTRACT_ADDRESS - } - - getVotingPeriod = () => - this.client.readContract({ - address: this.address, - abi, - functionName: 'getVotingPeriod' - }) - - getVotingQuorumPercent = () => - this.client.readContract({ - address: this.address, - abi, - functionName: 'getVotingQuorumPercent' - }) - - getExecutionDelay = () => - this.client.readContract({ - address: this.address, - abi, - functionName: 'getExecutionDelay' - }) - - getProposalById = ({ id }: { id: bigint }) => - this.client.readContract({ - address: this.address, - abi, - functionName: 'getProposalById', - args: [id] - }) - - getProposalTargetContractHash = ({ id }: { id: bigint }) => - this.client.readContract({ - address: this.address, - abi, - functionName: 'getProposalTargetContractHash', - args: [id] - }) - - getInProgressProposals = () => - this.client.readContract({ - address: this.address, - abi, - functionName: 'getInProgressProposals' - }) - - getVoteInfoByProposalAndVoter = ({ - id, - voterAddress - }: { - id: bigint - voterAddress: `0x${string}` - }) => - this.client.readContract({ - address: this.address, - abi, - functionName: 'getVoteInfoByProposalAndVoter', - args: [id, voterAddress] - }) - - getProposalSubmittedEvents = ({ - fromBlock = BigInt(0), - proposalId, - proposer - }: { - fromBlock: bigint - proposalId?: bigint - proposer?: `0x${string}` - }) => { - const args: GetContractEventsParameters< - typeof abi, - 'ProposalSubmitted' - >['args'] = {} - - if (proposalId) args._proposalId = proposalId - if (proposer) args._proposer = proposer - - return this.client.getContractEvents({ - address: this.address, - abi, - eventName: 'ProposalSubmitted', - fromBlock, - args - }) - } - - getProposalOutcomeEvaluatedEvents = ({ - fromBlock = BigInt(0), - proposalId - }: { - fromBlock: bigint - proposalId?: bigint - }) => { - const args: GetContractEventsParameters< - typeof abi, - 'ProposalOutcomeEvaluated' - >['args'] = {} - - if (proposalId) args._proposalId = proposalId - - return this.client.getContractEvents({ - address: this.address, - abi, - eventName: 'ProposalOutcomeEvaluated', - fromBlock, - args - }) - } - - getProposalVoteSubmittedEvents = ({ - fromBlock = BigInt(0), - proposalId, - voter - }: { - fromBlock: bigint - proposalId?: bigint - voter?: `0x${string}` - }) => { - const args: GetContractEventsParameters< - typeof abi, - 'ProposalVoteSubmitted' - >['args'] = {} - - if (proposalId) args._proposalId = proposalId - if (voter) args._voter = voter - - return this.client.getContractEvents({ - address: this.address, - abi, - eventName: 'ProposalVoteSubmitted', - fromBlock, - args - }) - } - - getProposalVoteUpdatedEvents = ({ - fromBlock = BigInt(0), - proposalId, - voter - }: { - fromBlock: bigint - proposalId?: bigint - voter?: `0x${string}` - }) => { - const args: GetContractEventsParameters< - typeof abi, - 'ProposalVoteUpdated' - >['args'] = {} - - if (proposalId) args._proposalId = proposalId - if (voter) args._voter = voter - return this.client.getContractEvents({ - address: this.address, - abi, - eventName: 'ProposalVoteUpdated', - fromBlock, - args - }) - } +/** + * On-chain governance for the Audius protocol. Supports proposal creation, + * stake-weighted voting, quorum requirements, execution delays, and a + * guardian veto mechanism. Proposals target registered contracts and can + * execute arbitrary transactions. + */ +export const Governance = { + abi, + address: '0x4DEcA517D6817B6510798b7328F2314d3003AbAC' as const } diff --git a/packages/eth/src/governance/index.ts b/packages/eth/src/governance/index.ts deleted file mode 100644 index f43429f7fca..00000000000 --- a/packages/eth/src/governance/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from './governance' -export * from './constants' diff --git a/packages/eth/src/index.ts b/packages/eth/src/index.ts index 0dbcb476174..b0b52d7ce6a 100644 --- a/packages/eth/src/index.ts +++ b/packages/eth/src/index.ts @@ -1,11 +1,17 @@ -export * from './audius-token' -export * from './claims-manager' -export * from './delegate-manager' -export * from './eth-rewards-manager' -export * from './governance' -export * from './registry' -export * from './service-provider-factory' -export * from './service-type-manager' -export * from './staking' -export * from './trusted-notifier-manager' -export * from './audius-wormhole' +export { AudiusToken, type AudiusTokenTypes } from './audius-token/audiusToken' +export { + AudiusWormhole, + type AudiusWormholeTypes +} from './audius-wormhole/audiusWormhole' +export { ClaimsManager } from './claims-manager/claimsManager' +export { DelegateManager } from './delegate-manager/delegateManager' +export { EthRewardsManager } from './eth-rewards-manager/ethRewardsManager' +export { Governance } from './governance/governance' +export { Registry } from './registry/registry' +export { ServiceProviderFactory } from './service-provider-factory/serviceProviderFactory' +export { + ServiceTypeManager, + VALIDATOR_SERVICE_TYPE +} from './service-type-manager/serviceTypeManager' +export { Staking } from './staking/staking' +export { TrustedNotifierManager } from './trusted-notifier-manager/trustedNotifierManager' diff --git a/packages/eth/src/registry/constants.ts b/packages/eth/src/registry/constants.ts deleted file mode 100644 index b76cf359ce2..00000000000 --- a/packages/eth/src/registry/constants.ts +++ /dev/null @@ -1,2 +0,0 @@ -export const REGISTRY_CONTRACT_ADDRESS = - '0xd976d3b4f4e22a238c1A736b6612D22f17b6f64C' diff --git a/packages/eth/src/registry/index.ts b/packages/eth/src/registry/index.ts deleted file mode 100644 index c2a798f2316..00000000000 --- a/packages/eth/src/registry/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from './registry' -export * from './constants' diff --git a/packages/eth/src/registry/registry.ts b/packages/eth/src/registry/registry.ts index ab0dbd1ec68..196c478cbd8 100644 --- a/packages/eth/src/registry/registry.ts +++ b/packages/eth/src/registry/registry.ts @@ -1,25 +1,10 @@ -import type { PublicClient } from 'viem' - import { abi } from './abi' -import { REGISTRY_CONTRACT_ADDRESS } from './constants' - -export class Registry { - client: PublicClient - address: `0x${string}` - - constructor( - client: PublicClient, - { address }: { address?: `0x${string}` } = {} - ) { - this.client = client - this.address = address ?? REGISTRY_CONTRACT_ADDRESS - } - getContract = ({ registryKey }: { registryKey: `0x${string}` }) => - this.client.readContract({ - address: this.address, - abi, - functionName: 'getContract', - args: [registryKey] - }) +/** + * Central directory for the Audius protocol. Stores name-to-address mappings + * for all protocol contracts, enabling upgradability and external lookups. + */ +export const Registry = { + abi, + address: '0xd976d3b4f4e22a238c1A736b6612D22f17b6f64C' as const } diff --git a/packages/eth/src/service-provider-factory/constants.ts b/packages/eth/src/service-provider-factory/constants.ts deleted file mode 100644 index 5b32e325182..00000000000 --- a/packages/eth/src/service-provider-factory/constants.ts +++ /dev/null @@ -1,2 +0,0 @@ -export const SERVICE_PROVIDER_FACTORY_CONTRACT_ADDRESS = - '0xD17A9bc90c582249e211a4f4b16721e7f65156c8' diff --git a/packages/eth/src/service-provider-factory/index.ts b/packages/eth/src/service-provider-factory/index.ts deleted file mode 100644 index 7103a642e65..00000000000 --- a/packages/eth/src/service-provider-factory/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from './serviceProviderFactory' -export * from './constants' diff --git a/packages/eth/src/service-provider-factory/serviceProviderFactory.ts b/packages/eth/src/service-provider-factory/serviceProviderFactory.ts index 73136c656ed..eac17919204 100644 --- a/packages/eth/src/service-provider-factory/serviceProviderFactory.ts +++ b/packages/eth/src/service-provider-factory/serviceProviderFactory.ts @@ -1,43 +1,12 @@ -import type { PublicClient } from 'viem' - import { abi } from './abi' -import { SERVICE_PROVIDER_FACTORY_CONTRACT_ADDRESS } from './constants' - -export class ServiceProviderFactory { - client: PublicClient - address: `0x${string}` - - constructor( - client: PublicClient, - { address }: { address?: `0x${string}` } = {} - ) { - this.client = client - this.address = address ?? SERVICE_PROVIDER_FACTORY_CONTRACT_ADDRESS - } - - getTotalServiceTypeProviders = ({ - serviceType - }: { - serviceType: `0x${string}` - }) => - this.client.readContract({ - address: this.address, - abi, - functionName: 'getTotalServiceTypeProviders', - args: [serviceType] - }) - getServiceEndpointInfo = ({ - serviceType, - index - }: { - serviceType: `0x${string}` - index: bigint - }) => - this.client.readContract({ - address: this.address, - abi, - functionName: 'getServiceEndpointInfo', - args: [serviceType, index] - }) +/** + * Manages registration and staking for service providers. + * Tracks endpoints, deployer stake, deployer cut percentage, + * and min/max stake bounds. Includes lockup periods for stake decreases and + * deployer cut updates. + */ +export const ServiceProviderFactory = { + abi, + address: '0xD17A9bc90c582249e211a4f4b16721e7f65156c8' as const } diff --git a/packages/eth/src/service-type-manager/constants.ts b/packages/eth/src/service-type-manager/constants.ts deleted file mode 100644 index 3a32927bd79..00000000000 --- a/packages/eth/src/service-type-manager/constants.ts +++ /dev/null @@ -1,2 +0,0 @@ -export const SERVICE_TYPE_MANAGER_CONTRACT_ADDRESS = - '0x9EfB0f4F38aFbb4b0984D00C126E97E21b8417C5' diff --git a/packages/eth/src/service-type-manager/index.ts b/packages/eth/src/service-type-manager/index.ts deleted file mode 100644 index e3cf1b8fb94..00000000000 --- a/packages/eth/src/service-type-manager/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from './serviceTypeManager' -export * from './constants' diff --git a/packages/eth/src/service-type-manager/serviceTypeManager.ts b/packages/eth/src/service-type-manager/serviceTypeManager.ts index 651174ea5a3..5b3d80bd145 100644 --- a/packages/eth/src/service-type-manager/serviceTypeManager.ts +++ b/packages/eth/src/service-type-manager/serviceTypeManager.ts @@ -1,84 +1,15 @@ -import type { PublicClient } from 'viem' - import { abi } from './abi' -import { SERVICE_TYPE_MANAGER_CONTRACT_ADDRESS } from './constants' - -export class ServiceTypeManager { - client: PublicClient - address: `0x${string}` - - constructor( - client: PublicClient, - { address }: { address?: `0x${string}` } = {} - ) { - this.client = client - this.address = address ?? SERVICE_TYPE_MANAGER_CONTRACT_ADDRESS - } - - getGovernanceAddress = () => - this.client.readContract({ - address: this.address, - abi, - functionName: 'getGovernanceAddress' - }) - - getServiceTypeInfo = ({ serviceType }: { serviceType: `0x${string}` }) => - this.client.readContract({ - address: this.address, - abi, - functionName: 'getServiceTypeInfo', - args: [serviceType] - }) - - getValidServiceTypes = () => - this.client.readContract({ - address: this.address, - abi, - functionName: 'getValidServiceTypes' - }) - - serviceTypeIsValid = ({ serviceType }: { serviceType: `0x${string}` }) => - this.client.readContract({ - address: this.address, - abi, - functionName: 'serviceTypeIsValid', - args: [serviceType] - }) - - getVersion = ({ - serviceType, - versionIndex - }: { - serviceType: `0x${string}` - versionIndex: bigint - }) => - this.client.readContract({ - address: this.address, - abi, - functionName: 'getVersion', - args: [serviceType, versionIndex] - }) - - getCurrentVersion = ({ serviceType }: { serviceType: `0x${string}` }) => - this.client.readContract({ - address: this.address, - abi, - functionName: 'getCurrentVersion', - args: [serviceType] - }) - - getNumberOfVersions = ({ serviceType }: { serviceType: `0x${string}` }) => - this.client.readContract({ - address: this.address, - abi, - functionName: 'getNumberOfVersions', - args: [serviceType] - }) - // TODO - writes - setGovernanceAddress = null - addServiceType = null - removeServiceType = null - setServiceVersion = null - serviceVersionIsValid = null +/** bytes32-encoded "validator" service type for use with ServiceTypeManager and ServiceProviderFactory. */ +export const VALIDATOR_SERVICE_TYPE = + '0x76616c696461746f720000000000000000000000000000000000000000000000' as const + +/** + * Manages the registry of valid service types (e.g. "validator") + * and their versioning. Each service type has min/max stake + * bounds. Only governance can add/remove service types or publish new versions. + */ +export const ServiceTypeManager = { + abi, + address: '0x9EfB0f4F38aFbb4b0984D00C126E97E21b8417C5' as const } diff --git a/packages/eth/src/staking/index.ts b/packages/eth/src/staking/index.ts deleted file mode 100644 index 714c60884b2..00000000000 --- a/packages/eth/src/staking/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './staking' diff --git a/packages/eth/src/staking/staking.ts b/packages/eth/src/staking/staking.ts index b18db58f6ef..8560b5e25aa 100644 --- a/packages/eth/src/staking/staking.ts +++ b/packages/eth/src/staking/staking.ts @@ -1,7 +1,11 @@ import { abi } from './abi' -export class Staking { - public static readonly abi = abi - - public static readonly address = '0xe6D97B2099F142513be7A2a068bE040656Ae4591' +/** + * Core staking contract that holds all staked AUDIO tokens. Uses checkpointing + * to track historical stake balances per account and total staked. Supports + * stake, unstake, slash, and delegate operations. + */ +export const Staking = { + abi, + address: '0xe6D97B2099F142513be7A2a068bE040656Ae4591' as const } diff --git a/packages/eth/src/trusted-notifier-manager/constants.ts b/packages/eth/src/trusted-notifier-manager/constants.ts deleted file mode 100644 index ebbe80fc3f4..00000000000 --- a/packages/eth/src/trusted-notifier-manager/constants.ts +++ /dev/null @@ -1,2 +0,0 @@ -export const TRUSTED_NOTIFIER_MANAGER_CONTRACT_ADDRESS = - '0x6f08105c8CEef2BC5653640fcdbBE1e7bb519D39' diff --git a/packages/eth/src/trusted-notifier-manager/index.ts b/packages/eth/src/trusted-notifier-manager/index.ts deleted file mode 100644 index ff00a58d430..00000000000 --- a/packages/eth/src/trusted-notifier-manager/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from './trustedNotifierManager' -export * from './constants' diff --git a/packages/eth/src/trusted-notifier-manager/trustedNotifierManager.ts b/packages/eth/src/trusted-notifier-manager/trustedNotifierManager.ts index d6e11243bdc..61d7841c668 100644 --- a/packages/eth/src/trusted-notifier-manager/trustedNotifierManager.ts +++ b/packages/eth/src/trusted-notifier-manager/trustedNotifierManager.ts @@ -1,56 +1,11 @@ -import type { PublicClient } from 'viem' - import { abi } from './abi' -import { TRUSTED_NOTIFIER_MANAGER_CONTRACT_ADDRESS } from './constants' - -export class TrustedNotifierManager { - client: PublicClient - address: `0x${string}` - - constructor( - client: PublicClient, - { address }: { address?: `0x${string}` } = {} - ) { - this.client = client - this.address = address ?? TRUSTED_NOTIFIER_MANAGER_CONTRACT_ADDRESS - } - - getLatestNotifierID = () => - this.client.readContract({ - address: this.address, - abi, - functionName: 'getLatestNotifierID' - }) - - getNotifierForID = ({ id }: { id: bigint }) => - this.client.readContract({ - address: this.address, - abi, - functionName: 'getNotifierForID', - args: [id] - }) - - getNotifierForWallet = ({ address }: { address: `0x${string}` }) => - this.client.readContract({ - address: this.address, - abi, - functionName: 'getNotifierForWallet', - args: [address] - }) - - getNotifierForEndpoint = ({ endpoint }: { endpoint: string }) => - this.client.readContract({ - address: this.address, - abi, - functionName: 'getNotifierForEndpoint', - args: [endpoint] - }) - getNotifierForEmail = ({ email }: { email: string }) => - this.client.readContract({ - address: this.address, - abi, - functionName: 'getNotifierForEmail', - args: [email] - }) +/** + * Registry of trusted notifier entities, each identified by a unique ID with + * wallet, endpoint, and email fields. Only governance can register or + * deregister notifiers. + */ +export const TrustedNotifierManager = { + abi, + address: '0x6f08105c8CEef2BC5653640fcdbBE1e7bb519D39' as const } diff --git a/packages/sdk/src/sdk/config/development.ts b/packages/sdk/src/sdk/config/development.ts index 367b81e3085..d599500387c 100644 --- a/packages/sdk/src/sdk/config/development.ts +++ b/packages/sdk/src/sdk/config/development.ts @@ -48,7 +48,11 @@ export const developmentConfig: SdkServicesConfig = { "audiusTokenAddress": "0xdcB2fC9469808630DD0744b0adf97C0003fC29B2", "audiusWormholeAddress": "0x", "delegateManagerAddress": "0x", - "stakingAddress": "0x" + "stakingAddress": "0x", + "governanceAddress": "0x", + "registryAddress": "0x", + "claimsManagerAddress": "0x", + "trustedNotifierManagerAddress": "0x" } } } diff --git a/packages/sdk/src/sdk/config/production.ts b/packages/sdk/src/sdk/config/production.ts index 4d336451f88..f2975fe1a8d 100644 --- a/packages/sdk/src/sdk/config/production.ts +++ b/packages/sdk/src/sdk/config/production.ts @@ -5,338 +5,362 @@ /* eslint-disable prettier/prettier */ import type { SdkServicesConfig } from './types' export const productionConfig: SdkServicesConfig = { - network: { - minVersion: '0.7.0', - apiEndpoint: 'https://api.audius.co', - storageNodes: [ + "network": { + "minVersion": "0.7.0", + "apiEndpoint": "https://api.audius.co", + "storageNodes": [ { - endpoint: 'https://creatornode3.audius.co', - delegateOwnerWallet: '0x0C32BE6328578E99b6F06E0e7A6B385EB8FC13d1' + "endpoint": "https://creatornode3.audius.co", + "delegateOwnerWallet": "0x0C32BE6328578E99b6F06E0e7A6B385EB8FC13d1" }, { - endpoint: 'https://audius.bragi.cc', - delegateOwnerWallet: '0x627d23D17a3eAaDB1D3823e73Ab80D474023Acab' + "endpoint": "https://audius.bragi.cc", + "delegateOwnerWallet": "0x627d23D17a3eAaDB1D3823e73Ab80D474023Acab" }, { - endpoint: 'https://creatornode.audius.co', - delegateOwnerWallet: '0xc8d0C29B6d540295e8fc8ac72456F2f4D41088c8' + "endpoint": "https://creatornode.audius.co", + "delegateOwnerWallet": "0xc8d0C29B6d540295e8fc8ac72456F2f4D41088c8" }, { - endpoint: 'https://audius-cn1.tikilabs.com', - delegateOwnerWallet: '0x159200F84c2cF000b3A014cD4D8244500CCc36ca' + "endpoint": "https://audius-cn1.tikilabs.com", + "delegateOwnerWallet": "0x159200F84c2cF000b3A014cD4D8244500CCc36ca" }, { - endpoint: 'https://creatornode2.audius.co', - delegateOwnerWallet: '0xf686647E3737d595C60c6DE2f5F90463542FE439' + "endpoint": "https://creatornode2.audius.co", + "delegateOwnerWallet": "0xf686647E3737d595C60c6DE2f5F90463542FE439" }, { - endpoint: 'https://audius.rickyrombo.com', - delegateOwnerWallet: '0xae5D0507b6653589A03ae5becb35EB0C160e7131' + "endpoint": "https://audius.rickyrombo.com", + "delegateOwnerWallet": "0xae5D0507b6653589A03ae5becb35EB0C160e7131" }, { - endpoint: 'https://audius-discovery-2.cultur3stake.com', - delegateOwnerWallet: '0xB98a729444E262ec9AC5F1539b68e69aEC37Ef2C' + "endpoint": "https://audius-discovery-2.cultur3stake.com", + "delegateOwnerWallet": "0xB98a729444E262ec9AC5F1539b68e69aEC37Ef2C" }, { - endpoint: 'https://audius-discovery-3.cultur3stake.com', - delegateOwnerWallet: '0xeEB73B487f8B4b23B757d9d738Bfc48fD0cc2606' + "endpoint": "https://audius-discovery-3.cultur3stake.com", + "delegateOwnerWallet": "0xeEB73B487f8B4b23B757d9d738Bfc48fD0cc2606" }, { - endpoint: 'https://audius-discovery-4.cultur3stake.com', - delegateOwnerWallet: '0x8162684B7a004AF41de09Bfd3bE6Ef53d64158F5' + "endpoint": "https://audius-discovery-4.cultur3stake.com", + "delegateOwnerWallet": "0x8162684B7a004AF41de09Bfd3bE6Ef53d64158F5" }, { - endpoint: 'https://audius-discovery-7.cultur3stake.com', - delegateOwnerWallet: '0xb03478a9e8fB1516AA91b272Afc7422b1c71D837' + "endpoint": "https://audius-discovery-7.cultur3stake.com", + "delegateOwnerWallet": "0xb03478a9e8fB1516AA91b272Afc7422b1c71D837" }, { - endpoint: 'https://audius-discovery-8.cultur3stake.com', - delegateOwnerWallet: '0x9D0a106E6cE7643DF87914c7387b3d864bfA152B' + "endpoint": "https://audius-discovery-8.cultur3stake.com", + "delegateOwnerWallet": "0x9D0a106E6cE7643DF87914c7387b3d864bfA152B" }, { - endpoint: 'https://audius-discovery-10.cultur3stake.com', - delegateOwnerWallet: '0x241Da559e97d2e76f37F7144a04623849Fa576ff' + "endpoint": "https://audius-discovery-10.cultur3stake.com", + "delegateOwnerWallet": "0x241Da559e97d2e76f37F7144a04623849Fa576ff" }, { - endpoint: 'https://audius-discovery-1.cultur3stake.com', - delegateOwnerWallet: '0x3f0cbB987b82f620dF313A74999f025E03A11a30' + "endpoint": "https://audius-discovery-1.cultur3stake.com", + "delegateOwnerWallet": "0x3f0cbB987b82f620dF313A74999f025E03A11a30" }, { - endpoint: 'https://v.monophonic.digital', - delegateOwnerWallet: '0x422541273087beC833c57D3c15B9e17F919bFB1F' + "endpoint": "https://v.monophonic.digital", + "delegateOwnerWallet": "0x422541273087beC833c57D3c15B9e17F919bFB1F" }, { - endpoint: 'https://validator.stuffisup.com', - delegateOwnerWallet: '0x3E2Cd6d498b412Da182Ef25837F72355f8918BE9' + "endpoint": "https://validator.stuffisup.com", + "delegateOwnerWallet": "0x3E2Cd6d498b412Da182Ef25837F72355f8918BE9" }, { - endpoint: 'https://audius-content-1.figment.io', - delegateOwnerWallet: '0xBfdE9a7DD3620CB6428463E9A9e9932B4d10fdc5' + "endpoint": "https://audius-01.staked.cloud", + "delegateOwnerWallet": "0x3001Be4f5Af5CBAa2d1bF241aEBE587913eDe14C" }, { - endpoint: - 'https://creatornode.audius.prod-eks-ap-northeast-1.staked.cloud', - delegateOwnerWallet: '0x675086B880260D217963cF14F503272AEb44b2E9' + "endpoint": "https://audius-standardvc-1-validator-3.figment.io", + "delegateOwnerWallet": "0xD2C877C16f2177d035D787833AeeB5B0d6737724" }, { - endpoint: 'https://audius-content-2.figment.io', - delegateOwnerWallet: '0x6444212FFc23a4CcF7460f8Fe6D0e6074db59036' + "endpoint": "https://audius-02.staked.cloud", + "delegateOwnerWallet": "0xFc11796031A796c922F6246089aa27f08A582fc2" }, { - endpoint: 'https://audius-content-3.figment.io', - delegateOwnerWallet: '0xECEDCaABecb40ef4bE733BA47FaD612aeA1F396F' + "endpoint": "https://audius-03.staked.cloud", + "delegateOwnerWallet": "0x401C16123E36Dd0aE9c35F967C53C9E50f7F0768" }, { - endpoint: 'https://audius-content-4.figment.io', - delegateOwnerWallet: '0x08fEF3884Db16E2E6211272cdC9Eee68E8b63b09' + "endpoint": "https://audius-04.staked.cloud", + "delegateOwnerWallet": "0x3A200E4dd0b8e6c9601cf47da2A86311A27C5b8D" }, { - endpoint: 'https://audius-content-5.figment.io', - delegateOwnerWallet: '0x10fF8197f2e94eF880d940D2414E0A14983c3bFE' + "endpoint": "https://audius-discovery-3.altego.net", + "delegateOwnerWallet": "0x6209D38b940B5549b3aE54C498FD6841B6DDE0AA" }, { - endpoint: - 'https://creatornode.audius1.prod-eks-ap-northeast-1.staked.cloud', - delegateOwnerWallet: '0xC23Ee959E0B22a9B0F5dF18D7e7875cA4B6c4236' + "endpoint": "https://audius-discovery-2.altego.net", + "delegateOwnerWallet": "0x3FaF77e0307a3f5D552125e8791E289a575d0520" }, { - endpoint: - 'https://creatornode.audius2.prod-eks-ap-northeast-1.staked.cloud', - delegateOwnerWallet: '0x51a5575dc04c1f5f2e39390d090aaf78554F5f7B' + "endpoint": "https://audius-discovery-1.altego.net", + "delegateOwnerWallet": "0xE77C7679ED77b175F935755EEb3a421635AF07EC" }, { - endpoint: - 'https://creatornode.audius3.prod-eks-ap-northeast-1.staked.cloud', - delegateOwnerWallet: '0xe0b56BAe2276E016d3DB314Dd7374e596B0457ac' + "endpoint": "https://audius-05.staked.cloud", + "delegateOwnerWallet": "0x581261959005356F4cBC28141A458c4c046e52c1" }, { - endpoint: 'https://audius-content-6.figment.io', - delegateOwnerWallet: '0x68a4Bd6b4177ffB025AF9844cBE4Fe31348AEE1D' + "endpoint": "https://cn1.shakespearetech.com", + "delegateOwnerWallet": "0x44955AD360652c302644F564B42D1458C584A4ec" }, { - endpoint: 'https://audius-content-7.figment.io', - delegateOwnerWallet: '0xf45a6DBf3ce0201F4012a19b1fB04D4f05B53a37' + "endpoint": "https://audius-figment-1-validator-18.figment.io", + "delegateOwnerWallet": "0x0D87407341FC34c08cFC107ee6922C3f3b6e8853" }, { - endpoint: 'https://audius-content-8.figment.io', - delegateOwnerWallet: '0x9708Fb04DeA029212126255B311a21F1F884cCB4' + "endpoint": "https://audius-content-1.figment.io", + "delegateOwnerWallet": "0xBfdE9a7DD3620CB6428463E9A9e9932B4d10fdc5" }, { - endpoint: 'https://audius-content-9.figment.io', - delegateOwnerWallet: '0x7c34c9709ed69513D55dF2020e799DA44fC52E6e' + "endpoint": "https://audius-content-2.figment.io", + "delegateOwnerWallet": "0x6444212FFc23a4CcF7460f8Fe6D0e6074db59036" }, { - endpoint: 'https://audius-content-10.figment.io', - delegateOwnerWallet: '0xff753331CEa586DD5B23bd21222a3c902909F2dd' + "endpoint": "https://audius-content-3.figment.io", + "delegateOwnerWallet": "0xECEDCaABecb40ef4bE733BA47FaD612aeA1F396F" }, { - endpoint: 'https://audius-content-11.figment.io', - delegateOwnerWallet: '0xC9721F892BcC8822eb34237E875BE93904f11073' + "endpoint": "https://audius-creator-1.theblueprint.xyz", + "delegateOwnerWallet": "0x0E0aF7035581C615d07372be16D99A9B64E5B2e9" }, { - endpoint: 'https://content.grassfed.network', - delegateOwnerWallet: '0x33Ab85445c8A2690B9488e9fB5E6A9849d3a18d3' + "endpoint": "https://audius-creator-2.theblueprint.xyz", + "delegateOwnerWallet": "0x3D0dD2Cd46c2658d228769f4a394662946A28987" }, { - endpoint: 'https://blockdaemon-audius-content-01.bdnodes.net', - delegateOwnerWallet: '0x807C0fba7405aeb8b6a37A974df6259C6aB9bB1e' + "endpoint": "https://audius-creator-3.theblueprint.xyz", + "delegateOwnerWallet": "0x292B0d5987a7DE879909C48a54f0853C211da5f3" }, { - endpoint: 'https://audius-content-1.cultur3stake.com', - delegateOwnerWallet: '0xCEb6a23d6132Cfe329b3c8E3c45f9DDc28A62Bd4' + "endpoint": "https://audius-creator-4.theblueprint.xyz", + "delegateOwnerWallet": "0xA815f8108C2772D24D7DCB866c861148f043224D" }, { - endpoint: 'https://audius-content-2.cultur3stake.com', - delegateOwnerWallet: '0x2e9e7A4e35C3136fB651a0dBF8f91c9f5C27BBf7' + "endpoint": "https://audius-creator-5.theblueprint.xyz", + "delegateOwnerWallet": "0x65Fe5BEf65A0E0b0520d6beE7767ea6Da7f792f6" }, { - endpoint: 'https://audius-content-3.cultur3stake.com', - delegateOwnerWallet: '0x742da6cAc2782FeA961bB7B9150a048F5167D1e1' + "endpoint": "https://audius-creator-6.theblueprint.xyz", + "delegateOwnerWallet": "0x19B026B0f0Dbf619DBf8C4Efb0190308ace56366" }, { - endpoint: 'https://audius-content-4.cultur3stake.com', - delegateOwnerWallet: '0xcbb0cE7481685587b0988195Ff0cD6AA1A701657' + "endpoint": "https://audius-creator-7.theblueprint.xyz", + "delegateOwnerWallet": "0x720758adEa33433833c14e2516fA421261D0875e" }, { - endpoint: 'https://audius-content-5.cultur3stake.com', - delegateOwnerWallet: '0xFec4708155277D35d568aD6Ca322262577683584' + "endpoint": "https://audius-creator-8.theblueprint.xyz", + "delegateOwnerWallet": "0x078842E88B82e6a69549043269AE3aADD5581105" }, { - endpoint: 'https://audius-content-6.cultur3stake.com', - delegateOwnerWallet: '0x3Db0E61591063310eEd22fd57E6f7F1ab2Bb538E' + "endpoint": "https://audius-creator-9.theblueprint.xyz", + "delegateOwnerWallet": "0x2DfC8152eF49e91b83638ad2bd0D2F9efC6f65b5" }, { - endpoint: 'https://audius-content-7.cultur3stake.com', - delegateOwnerWallet: '0xE6C00e7E8d582fD2856718a5439f1aeEB68e27E5' + "endpoint": "https://audius-creator-10.theblueprint.xyz", + "delegateOwnerWallet": "0x97BcBFA8289731d694440795094E831599Ab7A11" }, { - endpoint: 'https://blockdaemon-audius-content-02.bdnodes.net', - delegateOwnerWallet: '0x4Ad694B3fC34b3cC245aF6AA7B43C52ddD0d7AAE' + "endpoint": "https://audius-creator-11.theblueprint.xyz", + "delegateOwnerWallet": "0xfe38c5Ea3579c9333fE302414fe1895F7a320beF" }, { - endpoint: 'https://blockdaemon-audius-content-03.bdnodes.net', - delegateOwnerWallet: '0x8ea81225013719950E968DE0602c4Eca458fA9f4' + "endpoint": "https://audius-creator-12.theblueprint.xyz", + "delegateOwnerWallet": "0x8C78ef541135e2cb037f91109fb8EE780fa4709d" }, { - endpoint: 'https://audius-content-8.cultur3stake.com', - delegateOwnerWallet: '0xff432F81D0eb77DA5973Cf55e24A897882fdd3E6' + "endpoint": "https://audius-creator-13.theblueprint.xyz", + "delegateOwnerWallet": "0x75D2269D18C59CC2ED00a63a40367AC495E3F330" }, { - endpoint: 'https://audius-content-9.cultur3stake.com', - delegateOwnerWallet: '0xB6f506557B2e9026743FeA6157e52F204D26690F' + "endpoint": "https://audius-creator-14.theblueprint.xyz", + "delegateOwnerWallet": "0xEDe07aCa59815fbaa75c4f813dCDD1390D371071" }, { - endpoint: 'https://audius-content-10.cultur3stake.com', - delegateOwnerWallet: '0x2AF4598D3CF95D8e76987c02BC8A8D71F58d49d5' + "endpoint": "https://audius-creator-15.theblueprint.xyz", + "delegateOwnerWallet": "0xCF3f359BfdE7bcAfE4bc058B6DFae51aBe204aB4" }, { - endpoint: 'https://audius-content-11.cultur3stake.com', - delegateOwnerWallet: '0xB2684Cca5281d2bA6D9Ce66Cca215635FF2Ba466' + "endpoint": "https://audius-creator-16.theblueprint.xyz", + "delegateOwnerWallet": "0x8449169096550905B903b6803FB3b64285112603" }, { - endpoint: 'https://audius-content-12.cultur3stake.com', - delegateOwnerWallet: '0x28924C99822eA08bFCeDdE3a411308633948b349' + "endpoint": "https://audius-creator-17.theblueprint.xyz", + "delegateOwnerWallet": "0x16e8DF288BF5DcD507615A715A2a6155F149a865" }, { - endpoint: 'https://audius-content-13.cultur3stake.com', - delegateOwnerWallet: '0xcb23908aa0dCDef762ebEaA38391D8fFC69E6e8F' + "endpoint": "https://audius-figment-1-validator-19.figment.io", + "delegateOwnerWallet": "0xDB12172166E2675d1EcdE4adFE046e217504AB71" }, { - endpoint: 'https://audius-content-12.figment.io', - delegateOwnerWallet: '0x780641e157621621658F118375dc1B36Ea514d46' + "endpoint": "https://audius-content-4.figment.io", + "delegateOwnerWallet": "0x08fEF3884Db16E2E6211272cdC9Eee68E8b63b09" }, { - endpoint: 'https://cn0.mainnet.audiusindex.org', - delegateOwnerWallet: '0xf9b373E223b73473C59034072263f52aEF60133B' + "endpoint": "https://audius-content-5.figment.io", + "delegateOwnerWallet": "0x10fF8197f2e94eF880d940D2414E0A14983c3bFE" }, { - endpoint: 'https://cn1.mainnet.audiusindex.org', - delegateOwnerWallet: '0x9b0D01bd7F01BD6916Ba139743Ce9C524B9375Dd' + "endpoint": "https://audius-content-6.figment.io", + "delegateOwnerWallet": "0x68a4Bd6b4177ffB025AF9844cBE4Fe31348AEE1D" }, { - endpoint: 'https://cn2.mainnet.audiusindex.org', - delegateOwnerWallet: '0xf6e297203c0086dc229DAE17F5b61a15F42A1A00' + "endpoint": "https://audius-content-7.figment.io", + "delegateOwnerWallet": "0xf45a6DBf3ce0201F4012a19b1fB04D4f05B53a37" }, { - endpoint: 'https://cn3.mainnet.audiusindex.org', - delegateOwnerWallet: '0x24C4b2cb6eC4c87a03F66723d8750dbe98Fa3e4f' + "endpoint": "https://audius-content-8.figment.io", + "delegateOwnerWallet": "0x9708Fb04DeA029212126255B311a21F1F884cCB4" }, { - endpoint: 'https://audius-content-13.figment.io', - delegateOwnerWallet: '0x33a2da466B14990E0124383204b06F9196f62d8e' + "endpoint": "https://audius-content-9.figment.io", + "delegateOwnerWallet": "0x7c34c9709ed69513D55dF2020e799DA44fC52E6e" }, { - endpoint: 'https://audius-content-14.figment.io', - delegateOwnerWallet: '0x817c513C1B702eA0BdD4F8C1204C60372f715006' + "endpoint": "https://audius-content-10.figment.io", + "delegateOwnerWallet": "0xff753331CEa586DD5B23bd21222a3c902909F2dd" }, { - endpoint: 'https://cn4.mainnet.audiusindex.org', - delegateOwnerWallet: '0x69e749266C59757dA81F8C659Be6B07ce5Bac6C9' + "endpoint": "https://audius-content-11.figment.io", + "delegateOwnerWallet": "0xC9721F892BcC8822eb34237E875BE93904f11073" }, { - endpoint: 'https://audius-creator-1.theblueprint.xyz', - delegateOwnerWallet: '0x0E0aF7035581C615d07372be16D99A9B64E5B2e9' + "endpoint": "https://content.grassfed.network", + "delegateOwnerWallet": "0x33Ab85445c8A2690B9488e9fB5E6A9849d3a18d3" }, { - endpoint: 'https://audius-creator-2.theblueprint.xyz', - delegateOwnerWallet: '0x3D0dD2Cd46c2658d228769f4a394662946A28987' + "endpoint": "https://audius-content-1.cultur3stake.com", + "delegateOwnerWallet": "0xCEb6a23d6132Cfe329b3c8E3c45f9DDc28A62Bd4" }, { - endpoint: 'https://audius-creator-3.theblueprint.xyz', - delegateOwnerWallet: '0x292B0d5987a7DE879909C48a54f0853C211da5f3' + "endpoint": "https://audius-content-2.cultur3stake.com", + "delegateOwnerWallet": "0x2e9e7A4e35C3136fB651a0dBF8f91c9f5C27BBf7" }, { - endpoint: 'https://audius-creator-4.theblueprint.xyz', - delegateOwnerWallet: '0xA815f8108C2772D24D7DCB866c861148f043224D' + "endpoint": "https://audius-content-3.cultur3stake.com", + "delegateOwnerWallet": "0x742da6cAc2782FeA961bB7B9150a048F5167D1e1" }, { - endpoint: 'https://audius-creator-5.theblueprint.xyz', - delegateOwnerWallet: '0x65Fe5BEf65A0E0b0520d6beE7767ea6Da7f792f6' + "endpoint": "https://audius-content-4.cultur3stake.com", + "delegateOwnerWallet": "0xcbb0cE7481685587b0988195Ff0cD6AA1A701657" }, { - endpoint: 'https://audius-creator-6.theblueprint.xyz', - delegateOwnerWallet: '0x19B026B0f0Dbf619DBf8C4Efb0190308ace56366' + "endpoint": "https://audius-content-5.cultur3stake.com", + "delegateOwnerWallet": "0xFec4708155277D35d568aD6Ca322262577683584" }, { - endpoint: - 'https://creatornode.audius8.prod-eks-ap-northeast-1.staked.cloud', - delegateOwnerWallet: '0xc69F344FCDbc9D747559c968562f682ABfBa442C' + "endpoint": "https://audius-content-6.cultur3stake.com", + "delegateOwnerWallet": "0x3Db0E61591063310eEd22fd57E6f7F1ab2Bb538E" }, { - endpoint: 'https://audius-creator-7.theblueprint.xyz', - delegateOwnerWallet: '0x720758adEa33433833c14e2516fA421261D0875e' + "endpoint": "https://audius-content-7.cultur3stake.com", + "delegateOwnerWallet": "0xE6C00e7E8d582fD2856718a5439f1aeEB68e27E5" }, { - endpoint: 'https://cn1.shakespearetech.com', - delegateOwnerWallet: '0x44955AD360652c302644F564B42D1458C584A4ec' + "endpoint": "https://audius-content-8.cultur3stake.com", + "delegateOwnerWallet": "0xff432F81D0eb77DA5973Cf55e24A897882fdd3E6" }, { - endpoint: 'https://audius-creator-8.theblueprint.xyz', - delegateOwnerWallet: '0x078842E88B82e6a69549043269AE3aADD5581105' + "endpoint": "https://audius-content-9.cultur3stake.com", + "delegateOwnerWallet": "0xB6f506557B2e9026743FeA6157e52F204D26690F" }, { - endpoint: 'https://audius-creator-9.theblueprint.xyz', - delegateOwnerWallet: '0x2DfC8152eF49e91b83638ad2bd0D2F9efC6f65b5' + "endpoint": "https://audius-content-10.cultur3stake.com", + "delegateOwnerWallet": "0x2AF4598D3CF95D8e76987c02BC8A8D71F58d49d5" }, { - endpoint: 'https://audius-creator-10.theblueprint.xyz', - delegateOwnerWallet: '0x97BcBFA8289731d694440795094E831599Ab7A11' + "endpoint": "https://audius-content-11.cultur3stake.com", + "delegateOwnerWallet": "0xB2684Cca5281d2bA6D9Ce66Cca215635FF2Ba466" }, { - endpoint: 'https://audius-creator-11.theblueprint.xyz', - delegateOwnerWallet: '0xfe38c5Ea3579c9333fE302414fe1895F7a320beF' + "endpoint": "https://audius-content-12.cultur3stake.com", + "delegateOwnerWallet": "0x28924C99822eA08bFCeDdE3a411308633948b349" }, { - endpoint: 'https://audius-creator-12.theblueprint.xyz', - delegateOwnerWallet: '0x8C78ef541135e2cb037f91109fb8EE780fa4709d' + "endpoint": "https://audius-content-13.cultur3stake.com", + "delegateOwnerWallet": "0xcb23908aa0dCDef762ebEaA38391D8fFC69E6e8F" }, { - endpoint: 'https://audius-creator-13.theblueprint.xyz', - delegateOwnerWallet: '0x75D2269D18C59CC2ED00a63a40367AC495E3F330' + "endpoint": "https://audius-content-12.figment.io", + "delegateOwnerWallet": "0x780641e157621621658F118375dc1B36Ea514d46" + }, + { + "endpoint": "https://cn0.mainnet.audiusindex.org", + "delegateOwnerWallet": "0xf9b373E223b73473C59034072263f52aEF60133B" + }, + { + "endpoint": "https://cn1.mainnet.audiusindex.org", + "delegateOwnerWallet": "0x9b0D01bd7F01BD6916Ba139743Ce9C524B9375Dd" + }, + { + "endpoint": "https://cn2.mainnet.audiusindex.org", + "delegateOwnerWallet": "0xf6e297203c0086dc229DAE17F5b61a15F42A1A00" + }, + { + "endpoint": "https://cn3.mainnet.audiusindex.org", + "delegateOwnerWallet": "0x24C4b2cb6eC4c87a03F66723d8750dbe98Fa3e4f" + }, + { + "endpoint": "https://audius-content-13.figment.io", + "delegateOwnerWallet": "0x33a2da466B14990E0124383204b06F9196f62d8e" + }, + { + "endpoint": "https://audius-content-14.figment.io", + "delegateOwnerWallet": "0x817c513C1B702eA0BdD4F8C1204C60372f715006" + }, + { + "endpoint": "https://cn4.mainnet.audiusindex.org", + "delegateOwnerWallet": "0x69e749266C59757dA81F8C659Be6B07ce5Bac6C9" } ], - antiAbuseOracleNodes: { - endpoints: [ - 'https://discoveryprovider.audius.co', - 'https://audius-oracle.creatorseed.com', - 'https://oracle.audius.endl.net' + "antiAbuseOracleNodes": { + "endpoints": [ + "https://discoveryprovider.audius.co", + "https://audius-oracle.creatorseed.com", + "https://oracle.audius.endl.net" ], - registeredAddresses: [ - '0x9811BA3eAB1F2Cd9A2dFeDB19e8c2a69729DC8b6', - '0xe60d50356cd891f56B744165fcc1D8B352201A76', - '0x7A03cFAE79266683D9706731D6E187868E939c9C' + "registeredAddresses": [ + "0x9811BA3eAB1F2Cd9A2dFeDB19e8c2a69729DC8b6", + "0xe60d50356cd891f56B744165fcc1D8B352201A76", + "0x7A03cFAE79266683D9706731D6E187868E939c9C" ] }, - identityService: 'https://identityservice.audius.co' + "identityService": "https://identityservice.audius.co" }, - acdc: { - entityManagerContractAddress: '0x1Cd8a543596D499B9b6E7a6eC15ECd2B7857Fd64', - chainId: 31524 + "acdc": { + "entityManagerContractAddress": "0x1Cd8a543596D499B9b6E7a6eC15ECd2B7857Fd64", + "chainId": 31524 }, - solana: { - claimableTokensProgramAddress: - 'Ewkv3JahEFRKkcJmpoKB7pXbnUHwjAyXiwEo4ZY2rezQ', - rewardManagerProgramAddress: 'DDZDcYdQFEMwcu2Mwo75yGFjJ1mUQyyXLWzhZLEVFcei', - rewardManagerStateAddress: '71hWFVYokLaN1PNYzTAWi13EfJ7Xt9VbSWUKsXUT8mxE', - paymentRouterProgramAddress: 'paytYpX3LPN98TAeen6bFFeraGSuWnomZmCXjAsoqPa', - stakingBridgeProgramAddress: 'stkB5DZziVJT1C1VmzvDdRtdWxfs5nwcHViiaNBDK31', - rpcEndpoint: 'https://carolina-8qh733-fast-mainnet.helius-rpc.com', - usdcTokenMint: 'EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v', - wAudioTokenMint: '9LzCMqDgTKYz9Drzqnpgee3SGa89up3a247ypMj2xrqM', - rewardManagerLookupTableAddress: - '4UQwpGupH66RgQrWRqmPM9Two6VJEE68VZ7GeqZ3mvVv' + "solana": { + "claimableTokensProgramAddress": "Ewkv3JahEFRKkcJmpoKB7pXbnUHwjAyXiwEo4ZY2rezQ", + "rewardManagerProgramAddress": "DDZDcYdQFEMwcu2Mwo75yGFjJ1mUQyyXLWzhZLEVFcei", + "rewardManagerStateAddress": "71hWFVYokLaN1PNYzTAWi13EfJ7Xt9VbSWUKsXUT8mxE", + "paymentRouterProgramAddress": "paytYpX3LPN98TAeen6bFFeraGSuWnomZmCXjAsoqPa", + "stakingBridgeProgramAddress": "stkB5DZziVJT1C1VmzvDdRtdWxfs5nwcHViiaNBDK31", + "rpcEndpoint": "https://carolina-8qh733-fast-mainnet.helius-rpc.com", + "usdcTokenMint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v", + "wAudioTokenMint": "9LzCMqDgTKYz9Drzqnpgee3SGa89up3a247ypMj2xrqM", + "rewardManagerLookupTableAddress": "4UQwpGupH66RgQrWRqmPM9Two6VJEE68VZ7GeqZ3mvVv" }, - ethereum: { - rpcEndpoint: 'https://eth-client.audius.co', - addresses: { - ethRewardsManagerAddress: '0x5aa6B99A2B461bA8E97207740f0A689C5C39C3b0', - serviceProviderFactoryAddress: - '0xD17A9bc90c582249e211a4f4b16721e7f65156c8', - serviceTypeManagerAddress: '0x9EfB0f4F38aFbb4b0984D00C126E97E21b8417C5', - audiusTokenAddress: '0x18aAA7115705e8be94bfFEBDE57Af9BFc265B998', - audiusWormholeAddress: '0x6E7a1F7339bbB62b23D44797b63e4258d283E095', - delegateManagerAddress: '0x4d7968ebfD390D5E7926Cb3587C39eFf2F9FB225', - stakingAddress: '0xe6D97B2099F142513be7A2a068bE040656Ae4591' + "ethereum": { + "rpcEndpoint": "https://eth-client.audius.co", + "addresses": { + "ethRewardsManagerAddress": "0x5aa6B99A2B461bA8E97207740f0A689C5C39C3b0", + "serviceProviderFactoryAddress": "0xD17A9bc90c582249e211a4f4b16721e7f65156c8", + "serviceTypeManagerAddress": "0x9EfB0f4F38aFbb4b0984D00C126E97E21b8417C5", + "audiusTokenAddress": "0x18aAA7115705e8be94bfFEBDE57Af9BFc265B998", + "audiusWormholeAddress": "0x6E7a1F7339bbB62b23D44797b63e4258d283E095", + "delegateManagerAddress": "0x4d7968ebfD390D5E7926Cb3587C39eFf2F9FB225", + "stakingAddress": "0xe6D97B2099F142513be7A2a068bE040656Ae4591", + "governanceAddress": "0x4DEcA517D6817B6510798b7328F2314d3003AbAC", + "registryAddress": "0xd976d3b4f4e22a238c1A736b6612D22f17b6f64C", + "claimsManagerAddress": "0x44617F9dCEd9787C3B06a05B35B4C779a2AA1334", + "trustedNotifierManagerAddress": "0x6f08105c8CEef2BC5653640fcdbBE1e7bb519D39" } } } diff --git a/packages/sdk/src/sdk/config/types.ts b/packages/sdk/src/sdk/config/types.ts index 8b249f4c6dd..453b7e403ef 100644 --- a/packages/sdk/src/sdk/config/types.ts +++ b/packages/sdk/src/sdk/config/types.ts @@ -38,6 +38,10 @@ export type SdkServicesConfig = { audiusWormholeAddress: Hex delegateManagerAddress: Hex stakingAddress: Hex + governanceAddress: Hex + registryAddress: Hex + claimsManagerAddress: Hex + trustedNotifierManagerAddress: Hex } } } diff --git a/packages/sdk/src/sdk/createSdkWithServices.ts b/packages/sdk/src/sdk/createSdkWithServices.ts index 4a5e8febac2..968ddffeb8d 100644 --- a/packages/sdk/src/sdk/createSdkWithServices.ts +++ b/packages/sdk/src/sdk/createSdkWithServices.ts @@ -328,30 +328,28 @@ const initializeServices = ({ const claimsManagerClient = config.services?.claimsManagerClient ?? new ClaimsManagerClient({ + ethPublicClient, ...getDefaultClaimsManagerConfig(servicesConfig) }) const delegateManagerClient = config.services?.delegateManagerClient ?? new DelegateManagerClient({ - audiusWalletClient, ethPublicClient, - ethWalletClient, ...getDefaultDelegateManagerConfig(servicesConfig) }) const stakingClient = config.services?.stakingClient ?? new StakingClient({ - audiusWalletClient, ethPublicClient, - ethWalletClient, ...getDefaultStakingConfig(servicesConfig) }) const trustedNotifierManagerClient = config.services?.trustedNotifierManagerClient ?? new TrustedNotifierManagerClient({ + ethPublicClient, ...getDefaultTrustedNotifierManagerConfig(servicesConfig) }) @@ -367,30 +365,35 @@ const initializeServices = ({ const registryClient = config.services?.registryClient ?? new RegistryClient({ + ethPublicClient, ...getDefaultRegistryConfig(servicesConfig) }) const governanceClient = config.services?.governanceClient ?? new GovernanceClient({ + ethPublicClient, ...getDefaultGovernanceConfig(servicesConfig) }) const serviceTypeManagerClient = config.services?.serviceTypeManagerClient ?? new ServiceTypeManagerClient({ + ethPublicClient, ...getDefaultServiceTypeManagerConfig(servicesConfig) }) const serviceProviderFactoryClient = config.services?.serviceProviderFactoryClient ?? new ServiceProviderFactoryClient({ + ethPublicClient, ...getDefaultServiceProviderFactoryConfig(servicesConfig) }) const ethRewardsManagerClient = config.services?.ethRewardsManagerClient ?? new EthRewardsManagerClient({ + ethPublicClient, ...getDefaultEthRewardsManagerConfig(servicesConfig) }) diff --git a/packages/sdk/src/sdk/scripts/generateServicesConfig.ts b/packages/sdk/src/sdk/scripts/generateServicesConfig.ts index 81012b84880..4be72cc502c 100644 --- a/packages/sdk/src/sdk/scripts/generateServicesConfig.ts +++ b/packages/sdk/src/sdk/scripts/generateServicesConfig.ts @@ -1,6 +1,9 @@ import { promises } from 'fs' import path from 'path' +import { createPublicClient, http } from 'viem' +import { mainnet } from 'viem/chains' + import type { SdkServicesConfig } from '../config/types' import { EthRewardsManagerClient, @@ -55,7 +58,12 @@ const productionConfig: SdkServicesConfig = { audiusTokenAddress: '0x18aAA7115705e8be94bfFEBDE57Af9BFc265B998', audiusWormholeAddress: '0x6E7a1F7339bbB62b23D44797b63e4258d283E095', delegateManagerAddress: '0x4d7968ebfD390D5E7926Cb3587C39eFf2F9FB225', - stakingAddress: '0xe6D97B2099F142513be7A2a068bE040656Ae4591' + stakingAddress: '0xe6D97B2099F142513be7A2a068bE040656Ae4591', + governanceAddress: '0x4DEcA517D6817B6510798b7328F2314d3003AbAC', + registryAddress: '0xd976d3b4f4e22a238c1A736b6612D22f17b6f64C', + claimsManagerAddress: '0x44617F9dCEd9787C3B06a05B35B4C779a2AA1334', + trustedNotifierManagerAddress: + '0x6f08105c8CEef2BC5653640fcdbBE1e7bb519D39' } } } @@ -102,7 +110,11 @@ const developmentConfig: SdkServicesConfig = { audiusTokenAddress: '0xdcB2fC9469808630DD0744b0adf97C0003fC29B2', audiusWormholeAddress: '0x', delegateManagerAddress: '0x', - stakingAddress: '0x' + stakingAddress: '0x', + governanceAddress: '0x', + registryAddress: '0x', + claimsManagerAddress: '0x', + trustedNotifierManagerAddress: '0x' } } } @@ -110,15 +122,23 @@ const developmentConfig: SdkServicesConfig = { const generateServicesConfig = async ( config: SdkServicesConfig ): Promise => { - const serviceProviderFactory = new ServiceProviderFactoryClient( - getDefaultServiceProviderFactoryConfig(config) - ) - const ethRewardsManager = new EthRewardsManagerClient( - getDefaultEthRewardsManagerConfig(config) - ) - const serviceTypeManager = new ServiceTypeManagerClient( - getDefaultServiceTypeManagerConfig(config) - ) + const ethPublicClient = createPublicClient({ + chain: mainnet, + transport: http(config.ethereum.rpcEndpoint) + }) + + const serviceProviderFactory = new ServiceProviderFactoryClient({ + ethPublicClient, + ...getDefaultServiceProviderFactoryConfig(config) + }) + const ethRewardsManager = new EthRewardsManagerClient({ + ethPublicClient, + ...getDefaultEthRewardsManagerConfig(config) + }) + const serviceTypeManager = new ServiceTypeManagerClient({ + ethPublicClient, + ...getDefaultServiceTypeManagerConfig(config) + }) const validators = await serviceProviderFactory.getValidators() const contentNodes = await serviceProviderFactory.getContentNodes() @@ -127,7 +147,7 @@ const generateServicesConfig = async ( throw Error('Storage node services not found') } const antiAbuseAddresses = - await ethRewardsManager.contract.getAntiAbuseOracleAddresses() + await ethRewardsManager.getAntiAbuseOracleAddresses() if (!antiAbuseAddresses || antiAbuseAddresses.length === 0) { throw Error('Anti Abuse node services not found') diff --git a/packages/sdk/src/sdk/services/Ethereum/contracts/AudiusToken/types.ts b/packages/sdk/src/sdk/services/Ethereum/contracts/AudiusToken/types.ts index 3d7c45f96e9..2fc29525d24 100644 --- a/packages/sdk/src/sdk/services/Ethereum/contracts/AudiusToken/types.ts +++ b/packages/sdk/src/sdk/services/Ethereum/contracts/AudiusToken/types.ts @@ -1,10 +1,16 @@ -import type { Account, Hex } from 'viem' +import type { Account, Hex, PublicClient, Transport, WalletClient } from 'viem' +import type { mainnet } from 'viem/chains' import { z } from 'zod' import { EthAddressSchema } from '../../../../types/EthAddress' -import { GasFeeSchema, type EthereumClientConfig } from '../types' +import type { AudiusWalletClient } from '../../../AudiusWalletClient' +import { GasFeeSchema } from '../types' -export type AudiusTokenConfig = AudiusTokenConfigInternal & EthereumClientConfig +export type AudiusTokenConfig = AudiusTokenConfigInternal & { + audiusWalletClient: AudiusWalletClient + ethPublicClient: PublicClient + ethWalletClient: WalletClient +} export type AudiusTokenConfigInternal = { address: Hex diff --git a/packages/sdk/src/sdk/services/Ethereum/contracts/AudiusWormhole/types.ts b/packages/sdk/src/sdk/services/Ethereum/contracts/AudiusWormhole/types.ts index c0b68bccbe1..c8623522415 100644 --- a/packages/sdk/src/sdk/services/Ethereum/contracts/AudiusWormhole/types.ts +++ b/packages/sdk/src/sdk/services/Ethereum/contracts/AudiusWormhole/types.ts @@ -1,13 +1,24 @@ import { toChainId, chains } from '@wormhole-foundation/sdk-base' -import { type Account, type Hex } from 'viem' +import { + type Account, + type Hex, + type PublicClient, + type Transport, + type WalletClient +} from 'viem' +import type { mainnet } from 'viem/chains' import { z } from 'zod' import { EthAddressSchema } from '../../../../types/EthAddress' import { HexSchema } from '../../../../types/Hex' -import { GasFeeSchema, type EthereumClientConfig } from '../types' +import type { AudiusWalletClient } from '../../../AudiusWalletClient' +import { GasFeeSchema } from '../types' -export type AudiusWormholeConfig = AudiusWormholeConfigInternal & - EthereumClientConfig +export type AudiusWormholeConfig = AudiusWormholeConfigInternal & { + audiusWalletClient: AudiusWalletClient + ethPublicClient: PublicClient + ethWalletClient: WalletClient +} export type AudiusWormholeConfigInternal = { address: Hex diff --git a/packages/sdk/src/sdk/services/Ethereum/contracts/ClaimsManager/ClaimsManagerClient.ts b/packages/sdk/src/sdk/services/Ethereum/contracts/ClaimsManager/ClaimsManagerClient.ts index 9259f9db97c..2586c3658a4 100644 --- a/packages/sdk/src/sdk/services/Ethereum/contracts/ClaimsManager/ClaimsManagerClient.ts +++ b/packages/sdk/src/sdk/services/Ethereum/contracts/ClaimsManager/ClaimsManagerClient.ts @@ -1,15 +1,14 @@ -import { ClaimsManager } from '@audius/eth' - -import { EthereumContract } from '../EthereumContract' +import type { Hex, PublicClient } from 'viem' import type { ClaimsManagerConfig } from './types' -export class ClaimsManagerClient extends EthereumContract { - contract: ClaimsManager +export class ClaimsManagerClient { + public readonly contractAddress: Hex - constructor(config: ClaimsManagerConfig) { - super(config) + public readonly publicClient: PublicClient - this.contract = new ClaimsManager(this.client) + constructor(config: ClaimsManagerConfig) { + this.contractAddress = config.address + this.publicClient = config.ethPublicClient } } diff --git a/packages/sdk/src/sdk/services/Ethereum/contracts/ClaimsManager/getDefaultConfig.ts b/packages/sdk/src/sdk/services/Ethereum/contracts/ClaimsManager/getDefaultConfig.ts index 6acd93449dd..e779c4a41d4 100644 --- a/packages/sdk/src/sdk/services/Ethereum/contracts/ClaimsManager/getDefaultConfig.ts +++ b/packages/sdk/src/sdk/services/Ethereum/contracts/ClaimsManager/getDefaultConfig.ts @@ -1,10 +1,9 @@ import { SdkServicesConfig } from '../../../../config/types' -import { getDefaultEthereumClientConfig } from '../getDefaultConfig' -import type { ClaimsManagerConfig } from './types' +import type { ClaimsManagerConfigInternal } from './types' export const getDefaultClaimsManagerConfig = (config: { ethereum: SdkServicesConfig['ethereum'] -}): ClaimsManagerConfig => ({ - ...getDefaultEthereumClientConfig(config) +}): ClaimsManagerConfigInternal => ({ + address: config.ethereum.addresses.claimsManagerAddress }) diff --git a/packages/sdk/src/sdk/services/Ethereum/contracts/ClaimsManager/types.ts b/packages/sdk/src/sdk/services/Ethereum/contracts/ClaimsManager/types.ts index 0bc46ee868f..08efce0bc68 100644 --- a/packages/sdk/src/sdk/services/Ethereum/contracts/ClaimsManager/types.ts +++ b/packages/sdk/src/sdk/services/Ethereum/contracts/ClaimsManager/types.ts @@ -1,3 +1,8 @@ -import type { EthereumContractConfigInternal } from '../types' +import type { Hex, PublicClient, Transport } from 'viem' +import type { mainnet } from 'viem/chains' -export type ClaimsManagerConfig = {} & EthereumContractConfigInternal +export type ClaimsManagerConfig = ClaimsManagerConfigInternal & { + ethPublicClient: PublicClient +} + +export type ClaimsManagerConfigInternal = { address: Hex } diff --git a/packages/sdk/src/sdk/services/Ethereum/contracts/DelegateManager/types.ts b/packages/sdk/src/sdk/services/Ethereum/contracts/DelegateManager/types.ts index 66957f0cc44..c8c9b26adb7 100644 --- a/packages/sdk/src/sdk/services/Ethereum/contracts/DelegateManager/types.ts +++ b/packages/sdk/src/sdk/services/Ethereum/contracts/DelegateManager/types.ts @@ -1,8 +1,8 @@ -import type { Hex } from 'viem' +import type { Hex, PublicClient, Transport } from 'viem' +import type { mainnet } from 'viem/chains' -import type { EthereumClientConfig } from '../types' - -export type DelegateManagerConfig = DelegateManagerConfigInternal & - EthereumClientConfig +export type DelegateManagerConfig = DelegateManagerConfigInternal & { + ethPublicClient: PublicClient +} export type DelegateManagerConfigInternal = { address: Hex } diff --git a/packages/sdk/src/sdk/services/Ethereum/contracts/EthRewardsManager/EthRewardsManagerClient.ts b/packages/sdk/src/sdk/services/Ethereum/contracts/EthRewardsManager/EthRewardsManagerClient.ts index 7d6df6c95df..8099b1ad3ec 100644 --- a/packages/sdk/src/sdk/services/Ethereum/contracts/EthRewardsManager/EthRewardsManagerClient.ts +++ b/packages/sdk/src/sdk/services/Ethereum/contracts/EthRewardsManager/EthRewardsManagerClient.ts @@ -1,17 +1,22 @@ import { EthRewardsManager } from '@audius/eth' - -import { EthereumContract } from '../EthereumContract' +import type { Hex, PublicClient } from 'viem' import type { EthRewardsManagerConfig } from './types' -export class EthRewardsManagerClient extends EthereumContract { - contract: EthRewardsManager +export class EthRewardsManagerClient { + public readonly contractAddress: Hex + + private readonly publicClient: PublicClient constructor(config: EthRewardsManagerConfig) { - super(config) + this.contractAddress = config.address + this.publicClient = config.ethPublicClient + } - this.contract = new EthRewardsManager(this.client, { - address: config.addresses.ethRewardsManagerAddress + getAntiAbuseOracleAddresses = () => + this.publicClient.readContract({ + address: this.contractAddress, + abi: EthRewardsManager.abi, + functionName: 'getAntiAbuseOracleAddresses' }) - } } diff --git a/packages/sdk/src/sdk/services/Ethereum/contracts/EthRewardsManager/getDefaultConfig.ts b/packages/sdk/src/sdk/services/Ethereum/contracts/EthRewardsManager/getDefaultConfig.ts index 8c39f1cfd26..3b9e8401f52 100644 --- a/packages/sdk/src/sdk/services/Ethereum/contracts/EthRewardsManager/getDefaultConfig.ts +++ b/packages/sdk/src/sdk/services/Ethereum/contracts/EthRewardsManager/getDefaultConfig.ts @@ -1,10 +1,9 @@ import { SdkServicesConfig } from '../../../../config/types' -import { getDefaultEthereumClientConfig } from '../getDefaultConfig' -import type { EthRewardsManagerConfig } from './types' +import type { EthRewardsManagerConfigInternal } from './types' export const getDefaultEthRewardsManagerConfig = (config: { ethereum: SdkServicesConfig['ethereum'] -}): EthRewardsManagerConfig => ({ - ...getDefaultEthereumClientConfig(config) +}): EthRewardsManagerConfigInternal => ({ + address: config.ethereum.addresses.ethRewardsManagerAddress }) diff --git a/packages/sdk/src/sdk/services/Ethereum/contracts/EthRewardsManager/types.ts b/packages/sdk/src/sdk/services/Ethereum/contracts/EthRewardsManager/types.ts index 1efea1080a3..d61cc333c13 100644 --- a/packages/sdk/src/sdk/services/Ethereum/contracts/EthRewardsManager/types.ts +++ b/packages/sdk/src/sdk/services/Ethereum/contracts/EthRewardsManager/types.ts @@ -1,3 +1,8 @@ -import type { EthereumContractConfigInternal } from '../types' +import type { Hex, PublicClient, Transport } from 'viem' +import type { mainnet } from 'viem/chains' -export type EthRewardsManagerConfig = {} & EthereumContractConfigInternal +export type EthRewardsManagerConfig = EthRewardsManagerConfigInternal & { + ethPublicClient: PublicClient +} + +export type EthRewardsManagerConfigInternal = { address: Hex } diff --git a/packages/sdk/src/sdk/services/Ethereum/contracts/EthereumContract.ts b/packages/sdk/src/sdk/services/Ethereum/contracts/EthereumContract.ts deleted file mode 100644 index 286bac2d3a5..00000000000 --- a/packages/sdk/src/sdk/services/Ethereum/contracts/EthereumContract.ts +++ /dev/null @@ -1,20 +0,0 @@ -import type { PublicClient } from 'viem' -import { createPublicClient, http } from 'viem' -import { mainnet } from 'viem/chains' - -import type { EthereumContractConfigInternal } from './types' - -/** - * Abstract class for initializing individual contract clients. - */ -export class EthereumContract { - /** A viem client */ - protected readonly client: PublicClient - - constructor(config: EthereumContractConfigInternal) { - this.client = createPublicClient({ - chain: mainnet, - transport: http(config.rpcEndpoint) - }) - } -} diff --git a/packages/sdk/src/sdk/services/Ethereum/contracts/Governance/GovernanceClient.ts b/packages/sdk/src/sdk/services/Ethereum/contracts/Governance/GovernanceClient.ts index d7fa5f02980..17fc10ee1a2 100644 --- a/packages/sdk/src/sdk/services/Ethereum/contracts/Governance/GovernanceClient.ts +++ b/packages/sdk/src/sdk/services/Ethereum/contracts/Governance/GovernanceClient.ts @@ -1,15 +1,14 @@ -import { Governance } from '@audius/eth' - -import { EthereumContract } from '../EthereumContract' +import type { Hex, PublicClient } from 'viem' import type { GovernanceConfig } from './types' -export class GovernanceClient extends EthereumContract { - contract: Governance +export class GovernanceClient { + public readonly contractAddress: Hex - constructor(config: GovernanceConfig) { - super(config) + public readonly publicClient: PublicClient - this.contract = new Governance(this.client) + constructor(config: GovernanceConfig) { + this.contractAddress = config.address + this.publicClient = config.ethPublicClient } } diff --git a/packages/sdk/src/sdk/services/Ethereum/contracts/Governance/getDefaultConfig.ts b/packages/sdk/src/sdk/services/Ethereum/contracts/Governance/getDefaultConfig.ts index a722d4be916..6d595d4febf 100644 --- a/packages/sdk/src/sdk/services/Ethereum/contracts/Governance/getDefaultConfig.ts +++ b/packages/sdk/src/sdk/services/Ethereum/contracts/Governance/getDefaultConfig.ts @@ -1,10 +1,9 @@ import { SdkServicesConfig } from '../../../../config/types' -import { getDefaultEthereumClientConfig } from '../getDefaultConfig' -import type { GovernanceConfig } from './types' +import type { GovernanceConfigInternal } from './types' export const getDefaultGovernanceConfig = (config: { ethereum: SdkServicesConfig['ethereum'] -}): GovernanceConfig => ({ - ...getDefaultEthereumClientConfig(config) +}): GovernanceConfigInternal => ({ + address: config.ethereum.addresses.governanceAddress }) diff --git a/packages/sdk/src/sdk/services/Ethereum/contracts/Governance/types.ts b/packages/sdk/src/sdk/services/Ethereum/contracts/Governance/types.ts index 8c551f5b58c..e89c3a8fe90 100644 --- a/packages/sdk/src/sdk/services/Ethereum/contracts/Governance/types.ts +++ b/packages/sdk/src/sdk/services/Ethereum/contracts/Governance/types.ts @@ -1,3 +1,8 @@ -import type { EthereumContractConfigInternal } from '../types' +import type { Hex, PublicClient, Transport } from 'viem' +import type { mainnet } from 'viem/chains' -export type GovernanceConfig = {} & EthereumContractConfigInternal +export type GovernanceConfig = GovernanceConfigInternal & { + ethPublicClient: PublicClient +} + +export type GovernanceConfigInternal = { address: Hex } diff --git a/packages/sdk/src/sdk/services/Ethereum/contracts/Registry/RegistryClient.ts b/packages/sdk/src/sdk/services/Ethereum/contracts/Registry/RegistryClient.ts index e524ed13e26..dee4bd18860 100644 --- a/packages/sdk/src/sdk/services/Ethereum/contracts/Registry/RegistryClient.ts +++ b/packages/sdk/src/sdk/services/Ethereum/contracts/Registry/RegistryClient.ts @@ -1,15 +1,14 @@ -import { Registry } from '@audius/eth' - -import { EthereumContract } from '../EthereumContract' +import type { Hex, PublicClient } from 'viem' import type { RegistryConfig } from './types' -export class RegistryClient extends EthereumContract { - contract: Registry +export class RegistryClient { + public readonly contractAddress: Hex - constructor(config: RegistryConfig) { - super(config) + public readonly publicClient: PublicClient - this.contract = new Registry(this.client) + constructor(config: RegistryConfig) { + this.contractAddress = config.address + this.publicClient = config.ethPublicClient } } diff --git a/packages/sdk/src/sdk/services/Ethereum/contracts/Registry/getDefaultConfig.ts b/packages/sdk/src/sdk/services/Ethereum/contracts/Registry/getDefaultConfig.ts index 0fbc5809abf..2e7fe81b4e1 100644 --- a/packages/sdk/src/sdk/services/Ethereum/contracts/Registry/getDefaultConfig.ts +++ b/packages/sdk/src/sdk/services/Ethereum/contracts/Registry/getDefaultConfig.ts @@ -1,10 +1,9 @@ import { SdkServicesConfig } from '../../../../config/types' -import { getDefaultEthereumClientConfig } from '../getDefaultConfig' -import type { RegistryConfig } from './types' +import type { RegistryConfigInternal } from './types' export const getDefaultRegistryConfig = (config: { ethereum: SdkServicesConfig['ethereum'] -}): RegistryConfig => ({ - ...getDefaultEthereumClientConfig(config) +}): RegistryConfigInternal => ({ + address: config.ethereum.addresses.registryAddress }) diff --git a/packages/sdk/src/sdk/services/Ethereum/contracts/Registry/types.ts b/packages/sdk/src/sdk/services/Ethereum/contracts/Registry/types.ts index ddb087dccd8..fa7a4076c6a 100644 --- a/packages/sdk/src/sdk/services/Ethereum/contracts/Registry/types.ts +++ b/packages/sdk/src/sdk/services/Ethereum/contracts/Registry/types.ts @@ -1,3 +1,8 @@ -import type { EthereumContractConfigInternal } from '../types' +import type { Hex, PublicClient, Transport } from 'viem' +import type { mainnet } from 'viem/chains' -export type RegistryConfig = {} & EthereumContractConfigInternal +export type RegistryConfig = RegistryConfigInternal & { + ethPublicClient: PublicClient +} + +export type RegistryConfigInternal = { address: Hex } diff --git a/packages/sdk/src/sdk/services/Ethereum/contracts/ServiceProviderFactory/ServiceProviderFactoryClient.ts b/packages/sdk/src/sdk/services/Ethereum/contracts/ServiceProviderFactory/ServiceProviderFactoryClient.ts index 9f66c5e34c9..7119cfdb6c7 100644 --- a/packages/sdk/src/sdk/services/Ethereum/contracts/ServiceProviderFactory/ServiceProviderFactoryClient.ts +++ b/packages/sdk/src/sdk/services/Ethereum/contracts/ServiceProviderFactory/ServiceProviderFactoryClient.ts @@ -1,40 +1,43 @@ import { ServiceProviderFactory } from '@audius/eth' import { range } from 'lodash' - -import { EthereumContract } from '../EthereumContract' +import type { Hex, PublicClient } from 'viem' import type { ServiceProviderFactoryConfig } from './types' -export class ServiceProviderFactoryClient extends EthereumContract { +export class ServiceProviderFactoryClient { + public readonly contractAddress: Hex + discoveryNodeServiceType: `0x${string}` contentNodeServiceType: `0x${string}` validatorServiceType: `0x${string}` - contract: ServiceProviderFactory + + private readonly publicClient: PublicClient constructor(config: ServiceProviderFactoryConfig) { - super(config) + this.contractAddress = config.address + this.publicClient = config.ethPublicClient this.discoveryNodeServiceType = config.discoveryNodeServiceType this.contentNodeServiceType = config.contentNodeServiceType this.validatorServiceType = config.validatorServiceType - - this.contract = new ServiceProviderFactory(this.client, { - address: config.addresses.serviceProviderFactoryAddress - }) } getDiscoveryNodes = async () => { - const count = await this.contract.getTotalServiceTypeProviders({ - serviceType: this.discoveryNodeServiceType + const count = await this.publicClient.readContract({ + address: this.contractAddress, + abi: ServiceProviderFactory.abi, + functionName: 'getTotalServiceTypeProviders', + args: [this.discoveryNodeServiceType] }) const list = await Promise.all( - range(1, Number(count) + 1).map( - async (i) => - await this.contract.getServiceEndpointInfo({ - serviceType: this.discoveryNodeServiceType, - index: BigInt(i) - }) + range(1, Number(count) + 1).map(async (i) => + this.publicClient.readContract({ + address: this.contractAddress, + abi: ServiceProviderFactory.abi, + functionName: 'getServiceEndpointInfo', + args: [this.discoveryNodeServiceType, BigInt(i)] + }) ) ) // Remove empty endpoints @@ -42,17 +45,21 @@ export class ServiceProviderFactoryClient extends EthereumContract { } getContentNodes = async () => { - const count = await this.contract.getTotalServiceTypeProviders({ - serviceType: this.contentNodeServiceType + const count = await this.publicClient.readContract({ + address: this.contractAddress, + abi: ServiceProviderFactory.abi, + functionName: 'getTotalServiceTypeProviders', + args: [this.contentNodeServiceType] }) const list = await Promise.all( - range(1, Number(count) + 1).map( - async (i) => - await this.contract.getServiceEndpointInfo({ - serviceType: this.contentNodeServiceType, - index: BigInt(i) - }) + range(1, Number(count) + 1).map(async (i) => + this.publicClient.readContract({ + address: this.contractAddress, + abi: ServiceProviderFactory.abi, + functionName: 'getServiceEndpointInfo', + args: [this.contentNodeServiceType, BigInt(i)] + }) ) ) // Remove empty endpoints @@ -60,17 +67,21 @@ export class ServiceProviderFactoryClient extends EthereumContract { } getValidators = async () => { - const count = await this.contract.getTotalServiceTypeProviders({ - serviceType: this.validatorServiceType + const count = await this.publicClient.readContract({ + address: this.contractAddress, + abi: ServiceProviderFactory.abi, + functionName: 'getTotalServiceTypeProviders', + args: [this.validatorServiceType] }) const list = await Promise.all( - range(1, Number(count) + 1).map( - async (i) => - await this.contract.getServiceEndpointInfo({ - serviceType: this.validatorServiceType, - index: BigInt(i) - }) + range(1, Number(count) + 1).map(async (i) => + this.publicClient.readContract({ + address: this.contractAddress, + abi: ServiceProviderFactory.abi, + functionName: 'getServiceEndpointInfo', + args: [this.validatorServiceType, BigInt(i)] + }) ) ) // Remove empty endpoints diff --git a/packages/sdk/src/sdk/services/Ethereum/contracts/ServiceProviderFactory/getDefaultConfig.ts b/packages/sdk/src/sdk/services/Ethereum/contracts/ServiceProviderFactory/getDefaultConfig.ts index a696c0b46c9..0791e899208 100644 --- a/packages/sdk/src/sdk/services/Ethereum/contracts/ServiceProviderFactory/getDefaultConfig.ts +++ b/packages/sdk/src/sdk/services/Ethereum/contracts/ServiceProviderFactory/getDefaultConfig.ts @@ -1,16 +1,15 @@ import { SdkServicesConfig } from '../../../../config/types' -import { getDefaultEthereumClientConfig } from '../getDefaultConfig' -import type { ServiceProviderFactoryConfig } from './types' +import type { ServiceProviderFactoryConfigInternal } from './types' export const getDefaultServiceProviderFactoryConfig = (config: { ethereum: SdkServicesConfig['ethereum'] -}): ServiceProviderFactoryConfig => ({ +}): ServiceProviderFactoryConfigInternal => ({ + address: config.ethereum.addresses.serviceProviderFactoryAddress, discoveryNodeServiceType: '0x646973636f766572792d6e6f6465000000000000000000000000000000000000', contentNodeServiceType: '0x636f6e74656e742d6e6f64650000000000000000000000000000000000000000', validatorServiceType: - '0x76616c696461746f720000000000000000000000000000000000000000000000', - ...getDefaultEthereumClientConfig(config) + '0x76616c696461746f720000000000000000000000000000000000000000000000' }) diff --git a/packages/sdk/src/sdk/services/Ethereum/contracts/ServiceProviderFactory/types.ts b/packages/sdk/src/sdk/services/Ethereum/contracts/ServiceProviderFactory/types.ts index 77ae1cb3f88..965a44d018b 100644 --- a/packages/sdk/src/sdk/services/Ethereum/contracts/ServiceProviderFactory/types.ts +++ b/packages/sdk/src/sdk/services/Ethereum/contracts/ServiceProviderFactory/types.ts @@ -1,7 +1,14 @@ -import type { EthereumContractConfigInternal } from '../types' +import type { Hex, PublicClient, Transport } from 'viem' +import type { mainnet } from 'viem/chains' -export type ServiceProviderFactoryConfig = { +export type ServiceProviderFactoryConfig = + ServiceProviderFactoryConfigInternal & { + ethPublicClient: PublicClient + } + +export type ServiceProviderFactoryConfigInternal = { + address: Hex discoveryNodeServiceType: `0x${string}` contentNodeServiceType: `0x${string}` validatorServiceType: `0x${string}` -} & EthereumContractConfigInternal +} diff --git a/packages/sdk/src/sdk/services/Ethereum/contracts/ServiceTypeManager/ServiceTypeManagerClient.ts b/packages/sdk/src/sdk/services/Ethereum/contracts/ServiceTypeManager/ServiceTypeManagerClient.ts index fe378b72255..c8040c01343 100644 --- a/packages/sdk/src/sdk/services/Ethereum/contracts/ServiceTypeManager/ServiceTypeManagerClient.ts +++ b/packages/sdk/src/sdk/services/Ethereum/contracts/ServiceTypeManager/ServiceTypeManagerClient.ts @@ -1,45 +1,53 @@ import { ServiceTypeManager } from '@audius/eth' +import type { Hex, PublicClient } from 'viem' import { hexToString } from 'viem' -import { EthereumContract } from '../EthereumContract' - import type { ServiceTypeManagerConfig } from './types' -export class ServiceTypeManagerClient extends EthereumContract { +export class ServiceTypeManagerClient { + public readonly contractAddress: Hex + discoveryNodeServiceType: `0x${string}` contentNodeServiceType: `0x${string}` validatorServiceType: `0x${string}` - contract: ServiceTypeManager + + private readonly publicClient: PublicClient constructor(config: ServiceTypeManagerConfig) { - super(config) + this.contractAddress = config.address + this.publicClient = config.ethPublicClient this.discoveryNodeServiceType = config.discoveryNodeServiceType this.contentNodeServiceType = config.contentNodeServiceType this.validatorServiceType = config.validatorServiceType - - this.contract = new ServiceTypeManager(this.client, { - address: config.addresses.serviceTypeManagerAddress - }) } getDiscoveryNodeVersion = async () => { - const version = await this.contract.getCurrentVersion({ - serviceType: this.discoveryNodeServiceType + const version = await this.publicClient.readContract({ + address: this.contractAddress, + abi: ServiceTypeManager.abi, + functionName: 'getCurrentVersion', + args: [this.discoveryNodeServiceType] }) return hexToString(version, { size: 32 }) } getContentNodeVersion = async () => { - const version = await this.contract.getCurrentVersion({ - serviceType: this.contentNodeServiceType + const version = await this.publicClient.readContract({ + address: this.contractAddress, + abi: ServiceTypeManager.abi, + functionName: 'getCurrentVersion', + args: [this.contentNodeServiceType] }) return hexToString(version, { size: 32 }) } getValidatorVersion = async () => { - const version = await this.contract.getCurrentVersion({ - serviceType: this.validatorServiceType + const version = await this.publicClient.readContract({ + address: this.contractAddress, + abi: ServiceTypeManager.abi, + functionName: 'getCurrentVersion', + args: [this.validatorServiceType] }) return hexToString(version, { size: 32 }) } diff --git a/packages/sdk/src/sdk/services/Ethereum/contracts/ServiceTypeManager/getDefaultConfig.ts b/packages/sdk/src/sdk/services/Ethereum/contracts/ServiceTypeManager/getDefaultConfig.ts index 7dd188fc334..7a5e032d5fb 100644 --- a/packages/sdk/src/sdk/services/Ethereum/contracts/ServiceTypeManager/getDefaultConfig.ts +++ b/packages/sdk/src/sdk/services/Ethereum/contracts/ServiceTypeManager/getDefaultConfig.ts @@ -1,16 +1,15 @@ import { SdkServicesConfig } from '../../../../config/types' -import { getDefaultEthereumClientConfig } from '../getDefaultConfig' -import type { ServiceTypeManagerConfig } from './types' +import type { ServiceTypeManagerConfigInternal } from './types' export const getDefaultServiceTypeManagerConfig = (config: { ethereum: SdkServicesConfig['ethereum'] -}): ServiceTypeManagerConfig => ({ +}): ServiceTypeManagerConfigInternal => ({ + address: config.ethereum.addresses.serviceTypeManagerAddress, discoveryNodeServiceType: '0x646973636f766572792d6e6f6465000000000000000000000000000000000000', contentNodeServiceType: '0x636f6e74656e742d6e6f64650000000000000000000000000000000000000000', validatorServiceType: - '0x76616c696461746f720000000000000000000000000000000000000000000000', - ...getDefaultEthereumClientConfig(config) + '0x76616c696461746f720000000000000000000000000000000000000000000000' }) diff --git a/packages/sdk/src/sdk/services/Ethereum/contracts/ServiceTypeManager/types.ts b/packages/sdk/src/sdk/services/Ethereum/contracts/ServiceTypeManager/types.ts index 9ec4748a5ea..cce8e31a709 100644 --- a/packages/sdk/src/sdk/services/Ethereum/contracts/ServiceTypeManager/types.ts +++ b/packages/sdk/src/sdk/services/Ethereum/contracts/ServiceTypeManager/types.ts @@ -1,7 +1,13 @@ -import type { EthereumContractConfigInternal } from '../types' +import type { Hex, PublicClient, Transport } from 'viem' +import type { mainnet } from 'viem/chains' -export type ServiceTypeManagerConfig = { +export type ServiceTypeManagerConfig = ServiceTypeManagerConfigInternal & { + ethPublicClient: PublicClient +} + +export type ServiceTypeManagerConfigInternal = { + address: Hex discoveryNodeServiceType: `0x${string}` contentNodeServiceType: `0x${string}` validatorServiceType: `0x${string}` -} & EthereumContractConfigInternal +} diff --git a/packages/sdk/src/sdk/services/Ethereum/contracts/Staking/types.ts b/packages/sdk/src/sdk/services/Ethereum/contracts/Staking/types.ts index 219ac25b193..9cb6cac6ed8 100644 --- a/packages/sdk/src/sdk/services/Ethereum/contracts/Staking/types.ts +++ b/packages/sdk/src/sdk/services/Ethereum/contracts/Staking/types.ts @@ -1,7 +1,8 @@ -import type { Hex } from 'viem' +import type { Hex, PublicClient, Transport } from 'viem' +import type { mainnet } from 'viem/chains' -import type { EthereumClientConfig } from '../types' - -export type StakingConfig = StakingConfigInternal & EthereumClientConfig +export type StakingConfig = StakingConfigInternal & { + ethPublicClient: PublicClient +} export type StakingConfigInternal = { address: Hex } diff --git a/packages/sdk/src/sdk/services/Ethereum/contracts/TrustedNotifierManager/TrustedNotifierManagerClient.ts b/packages/sdk/src/sdk/services/Ethereum/contracts/TrustedNotifierManager/TrustedNotifierManagerClient.ts index 3ac86cb25dd..13cf622baf0 100644 --- a/packages/sdk/src/sdk/services/Ethereum/contracts/TrustedNotifierManager/TrustedNotifierManagerClient.ts +++ b/packages/sdk/src/sdk/services/Ethereum/contracts/TrustedNotifierManager/TrustedNotifierManagerClient.ts @@ -1,15 +1,14 @@ -import { TrustedNotifierManager } from '@audius/eth' - -import { EthereumContract } from '../EthereumContract' +import type { Hex, PublicClient } from 'viem' import type { TrustedNotifierManagerConfig } from './types' -export class TrustedNotifierManagerClient extends EthereumContract { - contract: TrustedNotifierManager +export class TrustedNotifierManagerClient { + public readonly contractAddress: Hex - constructor(config: TrustedNotifierManagerConfig) { - super(config) + public readonly publicClient: PublicClient - this.contract = new TrustedNotifierManager(this.client) + constructor(config: TrustedNotifierManagerConfig) { + this.contractAddress = config.address + this.publicClient = config.ethPublicClient } } diff --git a/packages/sdk/src/sdk/services/Ethereum/contracts/TrustedNotifierManager/getDefaultConfig.ts b/packages/sdk/src/sdk/services/Ethereum/contracts/TrustedNotifierManager/getDefaultConfig.ts index 63d660d1be3..afae18fea5a 100644 --- a/packages/sdk/src/sdk/services/Ethereum/contracts/TrustedNotifierManager/getDefaultConfig.ts +++ b/packages/sdk/src/sdk/services/Ethereum/contracts/TrustedNotifierManager/getDefaultConfig.ts @@ -1,10 +1,9 @@ import { SdkServicesConfig } from '../../../../config/types' -import { getDefaultEthereumClientConfig } from '../getDefaultConfig' -import type { TrustedNotifierManagerConfig } from './types' +import type { TrustedNotifierManagerConfigInternal } from './types' export const getDefaultTrustedNotifierManagerConfig = (config: { ethereum: SdkServicesConfig['ethereum'] -}): TrustedNotifierManagerConfig => ({ - ...getDefaultEthereumClientConfig(config) +}): TrustedNotifierManagerConfigInternal => ({ + address: config.ethereum.addresses.trustedNotifierManagerAddress }) diff --git a/packages/sdk/src/sdk/services/Ethereum/contracts/TrustedNotifierManager/types.ts b/packages/sdk/src/sdk/services/Ethereum/contracts/TrustedNotifierManager/types.ts index 5fa4a7712b4..cea9f6fe369 100644 --- a/packages/sdk/src/sdk/services/Ethereum/contracts/TrustedNotifierManager/types.ts +++ b/packages/sdk/src/sdk/services/Ethereum/contracts/TrustedNotifierManager/types.ts @@ -1,3 +1,9 @@ -import type { EthereumContractConfigInternal } from '../types' +import type { Hex, PublicClient, Transport } from 'viem' +import type { mainnet } from 'viem/chains' -export type TrustedNotifierManagerConfig = {} & EthereumContractConfigInternal +export type TrustedNotifierManagerConfig = + TrustedNotifierManagerConfigInternal & { + ethPublicClient: PublicClient + } + +export type TrustedNotifierManagerConfigInternal = { address: Hex } diff --git a/packages/sdk/src/sdk/services/Ethereum/contracts/getDefaultConfig.ts b/packages/sdk/src/sdk/services/Ethereum/contracts/getDefaultConfig.ts deleted file mode 100644 index 97bd8dd4226..00000000000 --- a/packages/sdk/src/sdk/services/Ethereum/contracts/getDefaultConfig.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { createPublicClient, http } from 'viem' -import { mainnet } from 'viem/chains' - -import type { SdkServicesConfig } from '../../../config/types' - -import type { EthereumContractConfigInternal } from './types' - -export const getDefaultEthereumClientConfig = (servicesConfig: { - ethereum: SdkServicesConfig['ethereum'] -}): EthereumContractConfigInternal => { - return { - rpcEndpoint: servicesConfig.ethereum.rpcEndpoint, - addresses: servicesConfig.ethereum.addresses, - client: createPublicClient({ - chain: mainnet, - transport: http(servicesConfig.ethereum.rpcEndpoint) - }) - } -} diff --git a/packages/sdk/src/sdk/services/Ethereum/contracts/types.ts b/packages/sdk/src/sdk/services/Ethereum/contracts/types.ts index f5aebb314be..3de0d5cd7ed 100644 --- a/packages/sdk/src/sdk/services/Ethereum/contracts/types.ts +++ b/packages/sdk/src/sdk/services/Ethereum/contracts/types.ts @@ -1,25 +1,5 @@ -import { PublicClient, type Transport, type WalletClient } from 'viem' -import type { mainnet } from 'viem/chains' import { z } from 'zod' -import { SdkServicesConfig } from '../../../config/types' -import type { AudiusWalletClient } from '../../AudiusWalletClient' - -export type EthereumContractConfigInternal = { - /** Ethereum RPC Endpoint */ - rpcEndpoint: string - /** Viem client */ - client: PublicClient - /** Contract addesses */ - addresses: SdkServicesConfig['ethereum']['addresses'] -} - -export type EthereumClientConfig = { - audiusWalletClient: AudiusWalletClient - ethPublicClient: PublicClient - ethWalletClient: WalletClient -} - export const GasFeeSchema = z .union([ z.object({