From 71c845fcae6c66554a95c16319886168fcb5209a Mon Sep 17 00:00:00 2001 From: sirpy Date: Wed, 12 Jul 2023 09:41:52 +0300 Subject: [PATCH 01/15] fix: android build --- packages/app/package.json | 5 +- packages/app/src/Providers.native.tsx | 2 +- yarn.lock | 257 ++++++++++++++++++++++++-- 3 files changed, 243 insertions(+), 21 deletions(-) diff --git a/packages/app/package.json b/packages/app/package.json index 76ee6070..d9f4dd2d 100644 --- a/packages/app/package.json +++ b/packages/app/package.json @@ -16,14 +16,17 @@ }, "dependencies": { "@ethersproject/shims": "^5.7.0", - "@gooddollar/goodcollective-sdk": "1", + "@gooddollar/goodcollective-sdk": "^1.*", "@gooddollar/web3sdk-v2": "^0.1.108", "@react-native-aria/interactions": "0.2.3", "@react-native-async-storage/async-storage": "^1.18.2", + "@react-native-firebase/analytics": "16.7.0", + "@react-native-firebase/app": "16.7.0", "@usedapp/core": "^1.2.10", "@web3modal/react-native": "^1.0.0-alpha.8", "crypto-browserify": "^3.12.0", "fast-text-encoding": "^1.0.6", + "mixpanel-react-native": "^2.3.1", "moment": "^2.29.4", "moment-duration-format": "^2.3.2", "native-base": "^3.4.28", diff --git a/packages/app/src/Providers.native.tsx b/packages/app/src/Providers.native.tsx index f9fce059..3c18220c 100644 --- a/packages/app/src/Providers.native.tsx +++ b/packages/app/src/Providers.native.tsx @@ -11,7 +11,7 @@ if (!window) { } window.localStorage = new LocalStorage(); // end of usedapp fix -const projectId = 'YOUR_PROJECT_ID'; +const projectId = '62745569abcb6c8962cadf4d8568aad9'; const providerMetadata = { name: 'YOUR_PROJECT_NAME', diff --git a/yarn.lock b/yarn.lock index ac9c5193..d85c4454 100644 --- a/yarn.lock +++ b/yarn.lock @@ -367,6 +367,15 @@ __metadata: languageName: node linkType: hard +"@babel/code-frame@npm:~7.10.4": + version: 7.10.4 + resolution: "@babel/code-frame@npm:7.10.4" + dependencies: + "@babel/highlight": ^7.10.4 + checksum: feb4543c8a509fe30f0f6e8d7aa84f82b41148b963b826cd330e34986f649a85cb63b2f13dd4effdf434ac555d16f14940b8ea5f4433297c2f5ff85486ded019 + languageName: node + linkType: hard + "@babel/compat-data@npm:^7.17.7, @babel/compat-data@npm:^7.19.0": version: 7.19.0 resolution: "@babel/compat-data@npm:7.19.0" @@ -808,25 +817,25 @@ __metadata: languageName: node linkType: hard -"@babel/highlight@npm:^7.18.6": - version: 7.18.6 - resolution: "@babel/highlight@npm:7.18.6" +"@babel/highlight@npm:^7.10.4, @babel/highlight@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/highlight@npm:7.22.5" dependencies: - "@babel/helper-validator-identifier": ^7.18.6 + "@babel/helper-validator-identifier": ^7.22.5 chalk: ^2.0.0 js-tokens: ^4.0.0 - checksum: 92d8ee61549de5ff5120e945e774728e5ccd57fd3b2ed6eace020ec744823d4a98e242be1453d21764a30a14769ecd62170fba28539b211799bbaf232bbb2789 + checksum: f61ae6de6ee0ea8d9b5bcf2a532faec5ab0a1dc0f7c640e5047fc61630a0edb88b18d8c92eb06566d30da7a27db841aca11820ecd3ebe9ce514c9350fbed39c4 languageName: node linkType: hard -"@babel/highlight@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/highlight@npm:7.22.5" +"@babel/highlight@npm:^7.18.6": + version: 7.18.6 + resolution: "@babel/highlight@npm:7.18.6" dependencies: - "@babel/helper-validator-identifier": ^7.22.5 + "@babel/helper-validator-identifier": ^7.18.6 chalk: ^2.0.0 js-tokens: ^4.0.0 - checksum: f61ae6de6ee0ea8d9b5bcf2a532faec5ab0a1dc0f7c640e5047fc61630a0edb88b18d8c92eb06566d30da7a27db841aca11820ecd3ebe9ce514c9350fbed39c4 + checksum: 92d8ee61549de5ff5120e945e774728e5ccd57fd3b2ed6eace020ec744823d4a98e242be1453d21764a30a14769ecd62170fba28539b211799bbaf232bbb2789 languageName: node linkType: hard @@ -3864,6 +3873,65 @@ __metadata: languageName: node linkType: hard +"@expo/config-plugins@npm:^5.0.4": + version: 5.0.4 + resolution: "@expo/config-plugins@npm:5.0.4" + dependencies: + "@expo/config-types": ^47.0.0 + "@expo/json-file": 8.2.36 + "@expo/plist": 0.0.18 + "@expo/sdk-runtime-versions": ^1.0.0 + "@react-native/normalize-color": ^2.0.0 + chalk: ^4.1.2 + debug: ^4.3.1 + find-up: ~5.0.0 + getenv: ^1.0.0 + glob: 7.1.6 + resolve-from: ^5.0.0 + semver: ^7.3.5 + slash: ^3.0.0 + xcode: ^3.0.1 + xml2js: 0.4.23 + checksum: 9fc5e19a92e105d200aeb7ed28607c2e4e8dcf2b7256c8bae32b2f30ccb5139fbe4854df8c6d6db0bb80e254ddb48a82665043582e7044b4ba1888448909c818 + languageName: node + linkType: hard + +"@expo/config-types@npm:^47.0.0": + version: 47.0.0 + resolution: "@expo/config-types@npm:47.0.0" + checksum: bb26456bed60bedb7a2482cb475ab539d34da177d9eb49384f599ea85ad0d0c8bb35f97c181e01454a925320021607472f83c8f456f239a6b329c8bf82044d9c + languageName: node + linkType: hard + +"@expo/json-file@npm:8.2.36": + version: 8.2.36 + resolution: "@expo/json-file@npm:8.2.36" + dependencies: + "@babel/code-frame": ~7.10.4 + json5: ^1.0.1 + write-file-atomic: ^2.3.0 + checksum: 37ce80b3472fef2a56136ebff5993d98ab4fbd45c4d7791ff47be80438dbeabd84bc699a401da0c314357ef65d8fff87a5a1241b3119db2d575878f9321bd1e7 + languageName: node + linkType: hard + +"@expo/plist@npm:0.0.18": + version: 0.0.18 + resolution: "@expo/plist@npm:0.0.18" + dependencies: + "@xmldom/xmldom": ~0.7.0 + base64-js: ^1.2.3 + xmlbuilder: ^14.0.0 + checksum: 42f5743fcd2a07b55a9f048d27cf0f273510ab35dde1f7030b22dc8c30ab2cfb65c6e68f8aa58fbcfa00177fdc7c9696d0004083c9a47c36fd4ac7fea27d6ccc + languageName: node + linkType: hard + +"@expo/sdk-runtime-versions@npm:^1.0.0": + version: 1.0.0 + resolution: "@expo/sdk-runtime-versions@npm:1.0.0" + checksum: 0942d5a356f590e8dc795761456cc48b3e2d6a38ad2a02d6774efcdc5a70424e05623b4e3e5d2fec0cdc30f40dde05c14391c781607eed3971bf8676518bfd9d + languageName: node + linkType: hard + "@float-capital/float-subgraph-uncrashable@npm:^0.0.0-alpha.4": version: 0.0.0-internal-testing.5 resolution: "@float-capital/float-subgraph-uncrashable@npm:0.0.0-internal-testing.5" @@ -4048,11 +4116,13 @@ __metadata: "@babel/preset-env": ^7.20.0 "@babel/runtime": ^7.20.0 "@ethersproject/shims": ^5.7.0 - "@gooddollar/goodcollective-sdk": 1 + "@gooddollar/goodcollective-sdk": ^1.* "@gooddollar/web3sdk-v2": ^0.1.108 "@react-native-aria/interactions": 0.2.3 "@react-native-async-storage/async-storage": ^1.18.2 "@react-native-community/eslint-config": ^3.2.0 + "@react-native-firebase/analytics": 16.7.0 + "@react-native-firebase/app": 16.7.0 "@tsconfig/react-native": ^2.0.2 "@types/fast-text-encoding": ^1 "@types/jest": ^29.2.1 @@ -4071,6 +4141,7 @@ __metadata: fast-text-encoding: ^1.0.6 jest: ^29.2.1 metro-react-native-babel-preset: 0.73.9 + mixpanel-react-native: ^2.3.1 moment: ^2.29.4 moment-duration-format: ^2.3.2 native-base: ^3.4.28 @@ -4133,7 +4204,7 @@ __metadata: languageName: unknown linkType: soft -"@gooddollar/goodcollective-sdk@1, @gooddollar/goodcollective-sdk@workspace:packages/sdk-js": +"@gooddollar/goodcollective-sdk@^1.*, @gooddollar/goodcollective-sdk@workspace:packages/sdk-js": version: 0.0.0-use.local resolution: "@gooddollar/goodcollective-sdk@workspace:packages/sdk-js" dependencies: @@ -6769,7 +6840,7 @@ __metadata: languageName: node linkType: hard -"@react-native-firebase/analytics@npm:^16.4.6": +"@react-native-firebase/analytics@npm:16.7.0, @react-native-firebase/analytics@npm:^16.4.6": version: 16.7.0 resolution: "@react-native-firebase/analytics@npm:16.7.0" peerDependencies: @@ -6778,6 +6849,20 @@ __metadata: languageName: node linkType: hard +"@react-native-firebase/app@npm:16.7.0": + version: 16.7.0 + resolution: "@react-native-firebase/app@npm:16.7.0" + dependencies: + "@expo/config-plugins": ^5.0.4 + opencollective-postinstall: ^2.0.1 + superstruct: ^0.6.2 + peerDependencies: + react: "*" + react-native: "*" + checksum: d3274ac0461e7524849c544bd00bd628b7a305f1798c33c28367dff4a8c3e55ae2d8428f8ae2d2cb3ed99760054a7cf6cceaca43052015497cd7ae162272b3e7 + languageName: node + linkType: hard + "@react-native/assets@npm:1.0.0": version: 1.0.0 resolution: "@react-native/assets@npm:1.0.0" @@ -6785,7 +6870,7 @@ __metadata: languageName: node linkType: hard -"@react-native/normalize-color@npm:*, @react-native/normalize-color@npm:2.1.0": +"@react-native/normalize-color@npm:*, @react-native/normalize-color@npm:2.1.0, @react-native/normalize-color@npm:^2.0.0": version: 2.1.0 resolution: "@react-native/normalize-color@npm:2.1.0" checksum: 8ccbd40b3c7629f1dc97b3e9aadd95fd3507fcf2e37535a6299a70436ab891c34cbdc4240b07380553d6e85dd909e23d5773b5be1da2906b026312e0b0768838 @@ -11761,6 +11846,13 @@ __metadata: languageName: node linkType: hard +"@xmldom/xmldom@npm:~0.7.0": + version: 0.7.11 + resolution: "@xmldom/xmldom@npm:0.7.11" + checksum: 49c3532a7b38bf1567e3eaac5dd530e1414aad93846fdde1f61bf71592a078c81721851e97587cc1968980339c8472570e7253e13f3fd20edcce8efa0d8ed8db + languageName: node + linkType: hard + "@yarnpkg/lockfile@npm:^1.1.0": version: 1.1.0 resolution: "@yarnpkg/lockfile@npm:1.1.0" @@ -13486,7 +13578,7 @@ __metadata: languageName: node linkType: hard -"base64-js@npm:^1.0.2, base64-js@npm:^1.1.2, base64-js@npm:^1.3.1, base64-js@npm:^1.5.1": +"base64-js@npm:^1.0.2, base64-js@npm:^1.1.2, base64-js@npm:^1.2.3, base64-js@npm:^1.3.1, base64-js@npm:^1.5.1": version: 1.5.1 resolution: "base64-js@npm:1.5.1" checksum: 669632eb3745404c2f822a18fc3a0122d2f9a7a13f7fb8b5823ee19d1d2ff9ee5b52c53367176ea4ad093c332fd5ab4bd0ebae5a8e27917a4105a4cfc86b1005 @@ -15212,6 +15304,18 @@ __metadata: languageName: node linkType: hard +"clone-deep@npm:^2.0.1": + version: 2.0.2 + resolution: "clone-deep@npm:2.0.2" + dependencies: + for-own: ^1.0.0 + is-plain-object: ^2.0.4 + kind-of: ^6.0.0 + shallow-clone: ^1.0.0 + checksum: c33ae31e332cdfd477a8115c9d044984eb69bf009fce3e1f0ff002176652f572d8742aa5e6caeaf16cf5d6084e33fe51bfa482fec53f43e767b3518c797955b1 + languageName: node + linkType: hard + "clone-deep@npm:^4.0.1": version: 4.0.1 resolution: "clone-deep@npm:4.0.1" @@ -19845,7 +19949,7 @@ __metadata: languageName: node linkType: hard -"find-up@npm:5.0.0, find-up@npm:^5.0.0": +"find-up@npm:5.0.0, find-up@npm:^5.0.0, find-up@npm:~5.0.0": version: 5.0.0 resolution: "find-up@npm:5.0.0" dependencies: @@ -19998,13 +20102,29 @@ __metadata: languageName: node linkType: hard -"for-in@npm:^1.0.2": +"for-in@npm:^0.1.3": + version: 0.1.8 + resolution: "for-in@npm:0.1.8" + checksum: f5bdad7811700ee6a0f96b33d72a1db966aea75a1f03c7245d147f8369305e709f53a55ee7ae8eaddcfa85c7c89bca78472be8f1bc605475ce5bb2c70f77f8da + languageName: node + linkType: hard + +"for-in@npm:^1.0.1, for-in@npm:^1.0.2": version: 1.0.2 resolution: "for-in@npm:1.0.2" checksum: 09f4ae93ce785d253ac963d94c7f3432d89398bf25ac7a24ed034ca393bf74380bdeccc40e0f2d721a895e54211b07c8fad7132e8157827f6f7f059b70b4043d languageName: node linkType: hard +"for-own@npm:^1.0.0": + version: 1.0.0 + resolution: "for-own@npm:1.0.0" + dependencies: + for-in: ^1.0.1 + checksum: 233238f6e9060f61295a7f7c7e3e9de11aaef57e82a108e7f350dc92ae84fe2189848077ac4b8db47fd8edd45337ed8d9f66bd0b1efa4a6a1b3f38aa21b7ab2e + languageName: node + linkType: hard + "foreach@npm:^2.0.4": version: 2.0.6 resolution: "foreach@npm:2.0.6" @@ -20511,6 +20631,13 @@ __metadata: languageName: node linkType: hard +"getenv@npm:^1.0.0": + version: 1.0.0 + resolution: "getenv@npm:1.0.0" + checksum: 19ae5cad603a1cf1bcb8fa3bed48e00d062eb0572a4404c02334b67f3b3499f238383082b064bb42515e9e25c2b08aef1a3e3d2b6852347721aa8b174825bd56 + languageName: node + linkType: hard + "getpass@npm:^0.1.1": version: 0.1.7 resolution: "getpass@npm:0.1.7" @@ -20571,6 +20698,20 @@ __metadata: languageName: node linkType: hard +"glob@npm:7.1.6": + version: 7.1.6 + resolution: "glob@npm:7.1.6" + dependencies: + fs.realpath: ^1.0.0 + inflight: ^1.0.4 + inherits: 2 + minimatch: ^3.0.4 + once: ^1.3.0 + path-is-absolute: ^1.0.0 + checksum: 351d549dd90553b87c2d3f90ce11aed9e1093c74130440e7ae0592e11bbcd2ce7f0ebb8ba6bfe63aaf9b62166a7f4c80cb84490ae5d78408bb2572bf7d4ee0a6 + languageName: node + linkType: hard + "glob@npm:7.1.7": version: 7.1.7 resolution: "glob@npm:7.1.7" @@ -24083,7 +24224,7 @@ __metadata: languageName: node linkType: hard -"kind-of@npm:^6.0.0, kind-of@npm:^6.0.2": +"kind-of@npm:^6.0.0, kind-of@npm:^6.0.1, kind-of@npm:^6.0.2": version: 6.0.3 resolution: "kind-of@npm:6.0.3" checksum: 3ab01e7b1d440b22fe4c31f23d8d38b4d9b91d9f291df683476576493d5dfd2e03848a8b05813dd0c3f0e835bc63f433007ddeceb71f05cb25c45ae1b19c6d3b @@ -26190,6 +26331,16 @@ __metadata: languageName: node linkType: hard +"mixin-object@npm:^2.0.1": + version: 2.0.1 + resolution: "mixin-object@npm:2.0.1" + dependencies: + for-in: ^0.1.3 + is-extendable: ^0.1.1 + checksum: 7d0eb7c2f06435fcc01d132824b4c973a0df689a117d8199d79911b506363b6f4f86a84458a63f3acfa7388f3052612cfe27105400b4932678452925a9739a4c + languageName: node + linkType: hard + "mixpanel-browser@npm:^2.45.0": version: 2.47.0 resolution: "mixpanel-browser@npm:2.47.0" @@ -26204,6 +26355,13 @@ __metadata: languageName: node linkType: hard +"mixpanel-react-native@npm:^2.3.1": + version: 2.3.1 + resolution: "mixpanel-react-native@npm:2.3.1" + checksum: 019d11ee55f6da89d30111a31c514bc7de0ec2be51d81e4258f9dc89054fc44c5306bd7a7374d30e8cc2485b5db4825869a3b5764a8cf516127d08550c812a98 + languageName: node + linkType: hard + "mkdirp-classic@npm:^0.5.2": version: 0.5.3 resolution: "mkdirp-classic@npm:0.5.3" @@ -27652,6 +27810,15 @@ __metadata: languageName: node linkType: hard +"opencollective-postinstall@npm:^2.0.1": + version: 2.0.3 + resolution: "opencollective-postinstall@npm:2.0.3" + bin: + opencollective-postinstall: index.js + checksum: 0a68c5cef135e46d11e665d5077398285d1ce5311c948e8327b435791c409744d4a6bb9c55bd6507fb5f2ef34b0ad920565adcdaf974cbdae701aead6f32b396 + languageName: node + linkType: hard + "openzeppelin-solidity@npm:^4.3.2": version: 4.8.1 resolution: "openzeppelin-solidity@npm:4.8.1" @@ -31603,6 +31770,13 @@ __metadata: languageName: node linkType: hard +"sax@npm:>=0.6.0": + version: 1.2.4 + resolution: "sax@npm:1.2.4" + checksum: d3df7d32b897a2c2f28e941f732c71ba90e27c24f62ee918bd4d9a8cfb3553f2f81e5493c7f0be94a11c1911b643a9108f231dd6f60df3fa9586b5d2e3e9e1fe + languageName: node + linkType: hard + "sc-istanbul@npm:^0.4.5": version: 0.4.6 resolution: "sc-istanbul@npm:0.4.6" @@ -31952,6 +32126,17 @@ __metadata: languageName: node linkType: hard +"shallow-clone@npm:^1.0.0": + version: 1.0.0 + resolution: "shallow-clone@npm:1.0.0" + dependencies: + is-extendable: ^0.1.1 + kind-of: ^5.0.0 + mixin-object: ^2.0.1 + checksum: d4fd93b82d9fdd135027510f4beb04479de96c50b5392a17b022cf0942d17d43bff92aa83dfc30ddf962c0ed015e7c686c2ce677b85760ca5a8db9ebd5f1d791 + languageName: node + linkType: hard + "shallow-clone@npm:^3.0.0": version: 3.0.1 resolution: "shallow-clone@npm:3.0.1" @@ -33215,6 +33400,16 @@ __metadata: languageName: node linkType: hard +"superstruct@npm:^0.6.2": + version: 0.6.2 + resolution: "superstruct@npm:0.6.2" + dependencies: + clone-deep: ^2.0.1 + kind-of: ^6.0.1 + checksum: f95e4049becb928baa531fe56256a74b050a2e4da0bee09ccd0031e08fffd521defeb1d37881b93e6861fa1a7c17c48f3834a99af83cb3ad60c9e6079e840a65 + languageName: node + linkType: hard + "superstruct@npm:^1.0.3": version: 1.0.3 resolution: "superstruct@npm:1.0.3" @@ -36808,7 +37003,7 @@ __metadata: languageName: node linkType: hard -"xcode@npm:3.0.1": +"xcode@npm:3.0.1, xcode@npm:^3.0.1": version: 3.0.1 resolution: "xcode@npm:3.0.1" dependencies: @@ -36870,6 +37065,23 @@ __metadata: languageName: node linkType: hard +"xml2js@npm:0.4.23": + version: 0.4.23 + resolution: "xml2js@npm:0.4.23" + dependencies: + sax: ">=0.6.0" + xmlbuilder: ~11.0.0 + checksum: ca0cf2dfbf6deeaae878a891c8fbc0db6fd04398087084edf143cdc83d0509ad0fe199b890f62f39c4415cf60268a27a6aed0d343f0658f8779bd7add690fa98 + languageName: node + linkType: hard + +"xmlbuilder@npm:^14.0.0": + version: 14.0.0 + resolution: "xmlbuilder@npm:14.0.0" + checksum: 9e93d3c73957dbb21acde63afa5d241b19057bdbdca9d53534d8351e70f1d5c9db154e3ca19bd3e9ea84c082539ab6e7845591c8778a663e8b5d3470d5427a8b + languageName: node + linkType: hard + "xmlbuilder@npm:^15.1.1": version: 15.1.1 resolution: "xmlbuilder@npm:15.1.1" @@ -36877,6 +37089,13 @@ __metadata: languageName: node linkType: hard +"xmlbuilder@npm:~11.0.0": + version: 11.0.1 + resolution: "xmlbuilder@npm:11.0.1" + checksum: 7152695e16f1a9976658215abab27e55d08b1b97bca901d58b048d2b6e106b5af31efccbdecf9b07af37c8377d8e7e821b494af10b3a68b0ff4ae60331b415b0 + languageName: node + linkType: hard + "xmlhttprequest-ssl@npm:~2.0.0": version: 2.0.0 resolution: "xmlhttprequest-ssl@npm:2.0.0" From 07e5c59e7838a331831a97d26406a6717356276c Mon Sep 17 00:00:00 2001 From: sirpy Date: Tue, 18 Jul 2023 12:50:43 +0200 Subject: [PATCH 02/15] fix: deps --- packages/contracts/package.json | 2 +- yarn.lock | 26 ++------------------------ 2 files changed, 3 insertions(+), 25 deletions(-) diff --git a/packages/contracts/package.json b/packages/contracts/package.json index bf549d38..c6b1fce3 100644 --- a/packages/contracts/package.json +++ b/packages/contracts/package.json @@ -10,7 +10,7 @@ "releases" ], "devDependencies": { - "@gooddollar/goodprotocol": "file:.yalc/@gooddollar/goodprotocol", + "@gooddollar/goodprotocol": "^2.0.6", "@nomicfoundation/hardhat-chai-matchers": "^1.0.0", "@nomicfoundation/hardhat-network-helpers": "^1.0.0", "@nomicfoundation/hardhat-toolbox": "2.*", diff --git a/yarn.lock b/yarn.lock index d85c4454..03f3b063 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4169,7 +4169,7 @@ __metadata: version: 0.0.0-use.local resolution: "@gooddollar/goodcollective-contracts@workspace:packages/contracts" dependencies: - "@gooddollar/goodprotocol": "file:.yalc/@gooddollar/goodprotocol" + "@gooddollar/goodprotocol": ^2.0.6 "@nomicfoundation/hardhat-chai-matchers": ^1.0.0 "@nomicfoundation/hardhat-network-helpers": ^1.0.0 "@nomicfoundation/hardhat-toolbox": 2.* @@ -4253,29 +4253,7 @@ __metadata: languageName: node linkType: hard -"@gooddollar/goodprotocol@file:.yalc/@gooddollar/goodprotocol::locator=%40gooddollar%2Fgoodcollective-contracts%40workspace%3Apackages%2Fcontracts": - version: 2.0.6 - resolution: "@gooddollar/goodprotocol@file:.yalc/@gooddollar/goodprotocol#.yalc/@gooddollar/goodprotocol::hash=132802&locator=%40gooddollar%2Fgoodcollective-contracts%40workspace%3Apackages%2Fcontracts" - dependencies: - "@gooddollar/goodcontracts": ^2.6.6 - "@jsier/retrier": ^1.2.4 - "@openzeppelin/contracts": ^4.8.0 - "@openzeppelin/contracts-upgradeable": ^4.8.0 - "@openzeppelin/upgrades-core": 1.18.0 - "@superfluid-finance/ethereum-contracts": ^1.4.3 - "@superfluid-finance/sdk-core": ^0.5.8 - "@typechain/hardhat": ^6.1.5 - async-promise-pool: ^1.0.4 - openzeppelin-solidity: ^4.3.2 - patch-package: latest - press-any-key: ^0.1.1 - truffle-plugin-verify: ^0.6.1 - truffle-source-verify: ^0.0.6 - checksum: f6a5c2f36facc38410fc1942ebf5e8cfd2e2a5c7200e15f4385bf83f7acb11e7bcaf6c0a7c7e9cb172102f6f2f8ce69067941793cf8572978b6b2f0cfb37867f - languageName: node - linkType: hard - -"@gooddollar/goodprotocol@npm:^2.0.3, @gooddollar/goodprotocol@npm:^2.0.4": +"@gooddollar/goodprotocol@npm:^2.0.3, @gooddollar/goodprotocol@npm:^2.0.4, @gooddollar/goodprotocol@npm:^2.0.6": version: 2.0.6 resolution: "@gooddollar/goodprotocol@npm:2.0.6" dependencies: From 54398713c298de58b6c1d5865be59b49456a52c7 Mon Sep 17 00:00:00 2001 From: sirpy Date: Tue, 18 Jul 2023 17:01:07 +0200 Subject: [PATCH 03/15] refactor: connect button --- packages/app/src/components/ConnectWallet.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/app/src/components/ConnectWallet.tsx b/packages/app/src/components/ConnectWallet.tsx index 4abb98e8..5dd5b343 100644 --- a/packages/app/src/components/ConnectWallet.tsx +++ b/packages/app/src/components/ConnectWallet.tsx @@ -7,5 +7,5 @@ export const ConnectWallet = () => { const [, connect] = useConnectWallet(); // const provider = useWeb3Modal(); const walletConnect = () => connect(); - return ; }; From 62fe79a708f8106e5230680da895e4539c73d23f Mon Sep 17 00:00:00 2001 From: sirpy Date: Tue, 18 Jul 2023 17:03:01 +0200 Subject: [PATCH 04/15] add: demo --- packages/app/src/App.tsx | 65 ++++++++++++++++++++++++++++++++-------- 1 file changed, 53 insertions(+), 12 deletions(-) diff --git a/packages/app/src/App.tsx b/packages/app/src/App.tsx index 2ee8f652..b6e43e7f 100644 --- a/packages/app/src/App.tsx +++ b/packages/app/src/App.tsx @@ -5,12 +5,14 @@ * @format */ -import React from 'react'; +import React, { useEffect, useState } from 'react'; import type { PropsWithChildren } from 'react'; -import { SafeAreaView, ScrollView, StatusBar, StyleSheet, Text, useColorScheme, View } from 'react-native'; +import { Linking, SafeAreaView, ScrollView, StatusBar, StyleSheet, Text, useColorScheme, View } from 'react-native'; import { ConnectWallet } from './components/ConnectWallet'; import { useEthers } from '@usedapp/core'; -import { useNativeBalance } from '@gooddollar/web3sdk-v2'; +import { useNativeBalance, ClaimSDK } from '@gooddollar/web3sdk-v2'; +import * as ethers from 'ethers'; +import { Button } from 'native-base'; type SectionProps = PropsWithChildren<{ title: string; @@ -25,26 +27,65 @@ function Section({ children, title }: SectionProps): JSX.Element { ); } +let sdk = new ClaimSDK(new ethers.providers.JsonRpcProvider('https://forno.celo.org'), 'development-celo'); function App(): JSX.Element { + const [status, setStatus] = useState(); + const [faucet, setFaucet] = useState(); + const [claim, setClaim] = useState(); + const isDarkMode = useColorScheme() === 'dark'; - const { account } = useEthers(); + const { account, library } = useEthers(); const backgroundStyle = {}; const balance = useNativeBalance(); + + const startFV = async () => { + const fvlink = await sdk.generateFVLink('Hadar', window.location.href, false); + Linking.openURL(fvlink); + }; + + const startFaucet = async () => { + await sdk.getContract('Faucet').topWallet(account); + }; + + const startClaim = async () => { + await sdk.claim(); + }; + + useEffect(() => { + if (account) { + sdk = new ClaimSDK(library as any, 'development-celo'); + console.log(sdk.contracts); + sdk.isAddressVerified(account).then((_) => setStatus(_)); + sdk.checkEntitlement().then((_) => setClaim(ethers.utils.formatEther(_))); + console.log(sdk.getContract('Faucet').address); + + sdk + .getContract('Faucet') + .canTop(account) + .then((_) => setFaucet(_)); + } + }, [account, library]); + return ( -
- {balance} - Edit App.tsx xxxto change this screen and then come back to see your - edits. -
-
-
-
Read the docs to discover what to do next:
+
{account}
+
{balance?.toString()}
+
{String(status)}
+
+ +
+
{String(faucet)}
+
+ +
+
+ +
From 8810430c689b8ed48c040ddf3bc731a5c71461ad Mon Sep 17 00:00:00 2001 From: sirpy Date: Wed, 19 Jul 2023 11:34:52 +0200 Subject: [PATCH 05/15] add: demo gas token --- packages/app/package.json | 1 + packages/app/src/App.tsx | 27 +++++++++++++++++++++++++++ yarn.lock | 10 ++++++++++ 3 files changed, 38 insertions(+) diff --git a/packages/app/package.json b/packages/app/package.json index d9f4dd2d..53f1d8a6 100644 --- a/packages/app/package.json +++ b/packages/app/package.json @@ -15,6 +15,7 @@ "preview:web": "vite preview -c web/vite.config.ts" }, "dependencies": { + "@celo-tools/celo-ethers-wrapper": "^0.4.0", "@ethersproject/shims": "^5.7.0", "@gooddollar/goodcollective-sdk": "^1.*", "@gooddollar/web3sdk-v2": "^0.1.108", diff --git a/packages/app/src/App.tsx b/packages/app/src/App.tsx index b6e43e7f..21fed8c5 100644 --- a/packages/app/src/App.tsx +++ b/packages/app/src/App.tsx @@ -13,6 +13,7 @@ import { useEthers } from '@usedapp/core'; import { useNativeBalance, ClaimSDK } from '@gooddollar/web3sdk-v2'; import * as ethers from 'ethers'; import { Button } from 'native-base'; +import { CeloWallet, CeloProvider } from '@celo-tools/celo-ethers-wrapper'; type SectionProps = PropsWithChildren<{ title: string; @@ -50,6 +51,29 @@ function App(): JSX.Element { const startClaim = async () => { await sdk.claim(); }; + ``; + const startGasDemo = async () => { + const abi = ['function drip()']; + const p = new CeloProvider('https://alfajores-forno.celo-testnet.org'); + const w = new CeloWallet('0xa276992c491e8ca1f41263c0b8a6867daa74b24dd2ec492cb77d6ecf4cc001bc').connect(p); + const gdfaucet = new ethers.Contract('0x8986F9C6b3D0b9A8b92ef7f1eF7EB9e767D414e1', abi, w); + try { + await gdfaucet.drip(); + } catch (e) {} + console.log('drip done...'); + + const encoded = sdk + .getContract('GoodDollar') + .interface.encodeFunctionData('transfer', [account, ethers.constants.WeiPerEther]); + const tx = await w.sendTransaction({ + to: '0x03d3daB843e6c03b3d271eff9178e6A96c28D25f', + data: encoded, + gasPrice: ethers.utils.parseEther('0.00005'), + gasLimit: 200000, + feeCurrency: '0x03d3daB843e6c03b3d271eff9178e6A96c28D25f', + }); + console.log(tx); + }; useEffect(() => { if (account) { @@ -86,6 +110,9 @@ function App(): JSX.Element {
+
+ +
diff --git a/yarn.lock b/yarn.lock index 03f3b063..f8f9743c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2213,6 +2213,15 @@ __metadata: languageName: node linkType: hard +"@celo-tools/celo-ethers-wrapper@npm:^0.4.0": + version: 0.4.0 + resolution: "@celo-tools/celo-ethers-wrapper@npm:0.4.0" + peerDependencies: + ethers: ^5 + checksum: 36021ae2c6448993985faaa0619ef919fe5209f3cdff45c329c65ed014a501abb0a375fa086c77076b2d193675cd55acd8c5b763aa865e34b23193a3e825ba6b + languageName: node + linkType: hard + "@chainsafe/as-sha256@npm:^0.3.1": version: 0.3.1 resolution: "@chainsafe/as-sha256@npm:0.3.1" @@ -4115,6 +4124,7 @@ __metadata: "@babel/core": ^7.20.0 "@babel/preset-env": ^7.20.0 "@babel/runtime": ^7.20.0 + "@celo-tools/celo-ethers-wrapper": ^0.4.0 "@ethersproject/shims": ^5.7.0 "@gooddollar/goodcollective-sdk": ^1.* "@gooddollar/web3sdk-v2": ^0.1.108 From cd3508f7ba8e07112512986a1b102cfe9a3b5a85 Mon Sep 17 00:00:00 2001 From: sirpy Date: Tue, 1 Aug 2023 13:05:55 +0300 Subject: [PATCH 06/15] add: emit more events --- .../DirectPayments/DirectPaymentsFactory.sol | 13 +++++- .../DirectPayments/DirectPaymentsPool.sol | 42 ++++++++++++++++--- .../contracts/DirectPayments/ProvableNFT.sol | 10 ++++- 3 files changed, 56 insertions(+), 9 deletions(-) diff --git a/packages/contracts/contracts/DirectPayments/DirectPaymentsFactory.sol b/packages/contracts/contracts/DirectPayments/DirectPaymentsFactory.sol index a1e6b5a3..5b34bda7 100644 --- a/packages/contracts/contracts/DirectPayments/DirectPaymentsFactory.sol +++ b/packages/contracts/contracts/DirectPayments/DirectPaymentsFactory.sol @@ -13,7 +13,15 @@ import "hardhat/console.sol"; contract DirectPaymentsFactory is AccessControlUpgradeable, UUPSUpgradeable { error NOT_PROJECT_OWNER(); - event PoolCreated(address indexed pool, string indexed projectId, string ipfs, uint32 indexed nftType); + event PoolCreated( + address indexed pool, + string indexed projectId, + string ipfs, + uint32 indexed nftType, + DirectPaymentsPool.PoolSettings poolSettings, + DirectPaymentsPool.SafetyLimits poolLimits + ); + event PoolDetailsChanged(address indexed pool, string ipfs); event PoolVerifiedChanged(address indexed pool, bool isVerified); event UpdatedImpl(address indexed impl); @@ -105,12 +113,13 @@ contract DirectPaymentsFactory is AccessControlUpgradeable, UUPSUpgradeable { nft.grantRole(nft.getManagerRole(nextNftType), address(pool)); pool.grantRole(pool.MINTER_ROLE(), _settings.manager); + //access control to project is determinted by the first pool access control rules projectIdToControlPool[keccak256(bytes(_projectId))] = pool; registry[address(pool)].ipfs = _ipfs; registry[address(pool)].projectId = _projectId; pool.renounceRole(DEFAULT_ADMIN_ROLE, address(this)); - emit PoolCreated(address(pool), _projectId, _ipfs, nextNftType); + emit PoolCreated(address(pool), _projectId, _ipfs, nextNftType, _settings, _limits); nextNftType++; } diff --git a/packages/contracts/contracts/DirectPayments/DirectPaymentsPool.sol b/packages/contracts/contracts/DirectPayments/DirectPaymentsPool.sol index 3d11d008..3fd44622 100644 --- a/packages/contracts/contracts/DirectPayments/DirectPaymentsPool.sol +++ b/packages/contracts/contracts/DirectPayments/DirectPaymentsPool.sol @@ -47,16 +47,26 @@ contract DirectPaymentsPool is error OVER_GLOBAL_LIMITS(); error UNSUPPORTED_NFT(); error NO_BALANCE(); + error NFTTYPE_CHANGED(); + error EMPTY_MANAGER(); bytes32 public constant MANAGER_ROLE = keccak256("MANAGER_ROLE"); bytes32 public constant MINTER_ROLE = keccak256("MINTER"); + event PoolCreated( + address indexed pool, + string indexed projectId, + string ipfs, + uint32 indexed nftType, + DirectPaymentsPool.PoolSettings poolSettings, + DirectPaymentsPool.SafetyLimits poolLimits + ); event PoolSettingsChanged(PoolSettings settings); event PoolLimitsChanged(SafetyLimits limits); event MemberAdded(address member); event MemberRemoved(address member); - event EventRewardClaimed(uint256 indexed tokenId, ProvableNFT.EventData eventData); - event NFTClaimed(uint256 indexed tokenId, uint256 totalRewards); + event EventRewardClaimed(uint256 indexed tokenId, ProvableNFT.EventData eventData, uint256 rewardPerContributer); + event NFTClaimed(uint256 indexed tokenId, uint256 totalRewards, ProvableNFT.NFTData nftData); // Define functions struct PoolSettings { @@ -124,7 +134,6 @@ contract DirectPaymentsPool is nft = _nft; _setupRole(DEFAULT_ADMIN_ROLE, msg.sender); _setupRole(DEFAULT_ADMIN_ROLE, _settings.manager); - setSuperToken(ISuperToken(address(settings.rewardToken))); } @@ -177,11 +186,11 @@ contract DirectPaymentsPool is if (totalRewards > rewardsBalance) revert NO_BALANCE(); rewardsBalance -= totalRewards; _sendReward(_data.events[i].contributers, uint128(reward * _data.events[i].quantity)); - emit EventRewardClaimed(_nftId, _data.events[i]); + emit EventRewardClaimed(_nftId, _data.events[i], uint128(reward / _data.events[i].contributers.length)); } } - emit NFTClaimed(_nftId, totalRewards); + emit NFTClaimed(_nftId, totalRewards, _data); } /** @@ -347,4 +356,27 @@ contract DirectPaymentsPool is if (nftData.nftType != settings.nftType) revert UNSUPPORTED_NFT(); return DirectPaymentsPool.onERC721Received.selector; } + + /** + * @dev Sets the safety limits for the pool. + * @param _limits The new safety limits. + */ + function setPoolLimits(SafetyLimits memory _limits) public onlyRole(DEFAULT_ADMIN_ROLE) { + limits = _limits; + emit PoolLimitsChanged(_limits); + } + + /** + * @dev Sets the settings for the pool. + * @param _settings The new pool settings. + */ + function setPoolSettings(PoolSettings memory _settings) public onlyRole(DEFAULT_ADMIN_ROLE) { + if (_settings.nftType != settings.nftType) revert NFTTYPE_CHANGED(); + if (_settings.manager == address(0)) revert EMPTY_MANAGER(); + + _revokeRole(DEFAULT_ADMIN_ROLE, settings.manager); + settings = _settings; + _setupRole(DEFAULT_ADMIN_ROLE, _settings.manager); + emit PoolSettingsChanged(_settings); + } } diff --git a/packages/contracts/contracts/DirectPayments/ProvableNFT.sol b/packages/contracts/contracts/DirectPayments/ProvableNFT.sol index 63a0e57e..1f2f08bb 100644 --- a/packages/contracts/contracts/DirectPayments/ProvableNFT.sol +++ b/packages/contracts/contracts/DirectPayments/ProvableNFT.sol @@ -19,6 +19,8 @@ contract ProvableNFT is ERC721Upgradeable, AccessControlUpgradeable, UUPSUpgrade bytes32 public constant MINTER_ROLE = keccak256(abi.encodePacked("MINTER")); bytes16 private constant _SYMBOLS = "0123456789abcdef"; + event ProvableNftMinted(uint256 tokenId, address to, bytes32 nftDataHash, NFTData nftData); + struct EventData { uint16 subtype; uint32 timestamp; @@ -77,18 +79,22 @@ contract ProvableNFT is ERC721Upgradeable, AccessControlUpgradeable, UUPSUpgrade string memory _uri, bytes32 _nftDataHash ) public onlyManager(0) returns (uint256 tokenId) { - return _mint(_to, _uri, _nftDataHash, ""); //send false in calldata, assuming default receiver is a directpaymentspool. without nft data on chain it will fail. + NFTData memory nftData; + + return _mint(_to, _uri, _nftDataHash, nftData, ""); //send false in calldata, assuming default receiver is a directpaymentspool. without nft data on chain it will fail. } function _mint( address _to, string memory _uri, bytes32 _nftDataHash, + NFTData memory _nftData, bytes memory _callData ) internal returns (uint256 tokenId) { tokenId = uint256(_nftDataHash); nftDatas[tokenId].nftUri = _uri; _safeMint(_to, tokenId, _callData); + emit ProvableNftMinted(tokenId, _to, _nftDataHash, _nftData); } /** @@ -123,7 +129,7 @@ contract ProvableNFT is ERC721Upgradeable, AccessControlUpgradeable, UUPSUpgrade store.events.push(_nftData.events[i]); } } - _mint(_to, _nftData.nftUri, dataHash, _callData); + _mint(_to, _nftData.nftUri, dataHash, _nftData, _callData); } function proveNFTData(uint256 _tokenId, NFTData memory _nftData) public view returns (NFTData memory data) { From a0288f0884ae19967afa461d9f6d0b74eb9a3c33 Mon Sep 17 00:00:00 2001 From: sirpy Date: Tue, 1 Aug 2023 13:39:37 +0300 Subject: [PATCH 07/15] refactor: members list handling --- .../DirectPayments/DirectPaymentsPool.sol | 35 +++++++------------ .../GoodCollective/GoodCollectiveSuperApp.sol | 2 +- 2 files changed, 14 insertions(+), 23 deletions(-) diff --git a/packages/contracts/contracts/DirectPayments/DirectPaymentsPool.sol b/packages/contracts/contracts/DirectPayments/DirectPaymentsPool.sol index 3fd44622..19da270a 100644 --- a/packages/contracts/contracts/DirectPayments/DirectPaymentsPool.sol +++ b/packages/contracts/contracts/DirectPayments/DirectPaymentsPool.sol @@ -51,6 +51,7 @@ contract DirectPaymentsPool is error EMPTY_MANAGER(); bytes32 public constant MANAGER_ROLE = keccak256("MANAGER_ROLE"); + bytes32 public constant MEMBER_ROLE = keccak256("MEMBER_ROLE"); bytes32 public constant MINTER_ROLE = keccak256("MINTER"); event PoolCreated( @@ -63,8 +64,6 @@ contract DirectPaymentsPool is ); event PoolSettingsChanged(PoolSettings settings); event PoolLimitsChanged(SafetyLimits limits); - event MemberAdded(address member); - event MemberRemoved(address member); event EventRewardClaimed(uint256 indexed tokenId, ProvableNFT.EventData eventData, uint256 rewardPerContributer); event NFTClaimed(uint256 indexed tokenId, uint256 totalRewards, ProvableNFT.NFTData nftData); @@ -98,7 +97,7 @@ contract DirectPaymentsPool is ProvableNFT public nft; mapping(uint256 => bool) public claimedNfts; - mapping(address => bool) public members; + mapping(address => bool) private members_unused; // using access control instead mapping(address => LimitsData) public memberLimits; LimitsData public globalLimits; DirectPaymentsFactory public registry; @@ -110,7 +109,7 @@ contract DirectPaymentsPool is * @dev Authorizes an upgrade for the implementation contract. * @param impl The address of the new implementation contract. */ - function _authorizeUpgrade(address impl) internal virtual override {} + function _authorizeUpgrade(address impl) internal virtual override onlyRole(DEFAULT_ADMIN_ROLE) {} function getRegistry() public view override returns (DirectPaymentsFactory) { return DirectPaymentsFactory(registry); @@ -137,7 +136,7 @@ contract DirectPaymentsPool is setSuperToken(ISuperToken(address(settings.rewardToken))); } - function upgradeToLatest(bytes memory data) external payable virtual onlyProxy { + function upgradeToLatest(bytes memory data) external payable virtual { address impl = DirectPaymentsFactory(registry).impl(); _authorizeUpgrade(impl); _upgradeToAndCallUUPS(impl, data, false); @@ -225,7 +224,8 @@ contract DirectPaymentsPool is * @param reward The amount of rewards to enforce and update limits for. */ function _enforceAndUpdateMemberLimits(address member, uint128 reward) internal { - if (members[member] == false) revert NOT_MEMBER(member); + //TODO: decide if this reverts the nft claiming or we just skip the member + if (_addMember(member, "") == false) revert NOT_MEMBER(member); uint64 curMonth = _month(); if (memberLimits[member].lastReward + 60 * 60 * 24 < block.timestamp) //more than a day passed since last reward @@ -294,32 +294,23 @@ contract DirectPaymentsPool is * @param extraData Additional data to validate the member. */ - function addMember(address member, bytes memory extraData) external { + function _addMember(address member, bytes memory extraData) internal returns (bool isMember) { + if (hasRole(MEMBER_ROLE, member)) return true; + if (address(settings.uniquenessValidator) != address(0)) { address rootAddress = settings.uniquenessValidator.getWhitelistedRoot(member); if (rootAddress == address(0)) revert NOT_WHITELISTED(member); } + // if no members validator then anyone can join the pool if (address(settings.membersValidator) != address(0)) { if (settings.membersValidator.isMemberValid(address(this), msg.sender, member, extraData) == false) { revert NOT_MEMBER(member); } - } else { - // if no members validator then only admin can add members - if (hasRole(DEFAULT_ADMIN_ROLE, msg.sender) == false) revert NOT_MANAGER(); } - members[member] = true; - emit MemberAdded(member); - } - - /** - * @dev Removes a member from the contract. - * @param member The address of the member to remove. - */ - function removeMember(address member) external onlyRole(DEFAULT_ADMIN_ROLE) { - members[member] = false; - emit MemberRemoved(member); + _setupRole(MEMBER_ROLE, member); + return true; } function mintNFT(address _to, ProvableNFT.NFTData memory _nftData, bool withClaim) external onlyRole(MINTER_ROLE) { @@ -330,7 +321,7 @@ contract DirectPaymentsPool is } /** - * @dev Receives an ERC721 token and triggers a claim for rewards. + * @dev Receives an ERC721 token * @param operator The address of the operator that sent the token. * @param from The address of the sender that sent the token. * @param tokenId The ID of the token received. diff --git a/packages/contracts/contracts/GoodCollective/GoodCollectiveSuperApp.sol b/packages/contracts/contracts/GoodCollective/GoodCollectiveSuperApp.sol index 89bfb9a0..b558ec40 100644 --- a/packages/contracts/contracts/GoodCollective/GoodCollectiveSuperApp.sol +++ b/packages/contracts/contracts/GoodCollective/GoodCollectiveSuperApp.sol @@ -46,7 +46,7 @@ abstract contract GoodCollectiveSuperApp is SuperAppBaseFlow { bool isFlowUpdate ); - //TODO: ask about "view" for beforeagreement functions + //TODO: // ask about "receiver" can it be different then app? /// @custom:oz-upgrades-unsafe-allow state-variable-immutable From 62c1b7f1700949b7fc13316e2c2b897996792f65 Mon Sep 17 00:00:00 2001 From: sirpy Date: Thu, 3 Aug 2023 15:54:38 +0300 Subject: [PATCH 08/15] add: dont revert on non members --- .../DirectPayments/DirectPaymentsPool.sol | 29 +- packages/contracts/package.json | 4 +- .../DirectPayments.claim.test.ts | 56 +- .../DirectPayments.superapp.test.ts | 4 +- yarn.lock | 2376 ++++++++++++++++- 5 files changed, 2319 insertions(+), 150 deletions(-) diff --git a/packages/contracts/contracts/DirectPayments/DirectPaymentsPool.sol b/packages/contracts/contracts/DirectPayments/DirectPaymentsPool.sol index 19da270a..cf92eeca 100644 --- a/packages/contracts/contracts/DirectPayments/DirectPaymentsPool.sol +++ b/packages/contracts/contracts/DirectPayments/DirectPaymentsPool.sol @@ -41,8 +41,6 @@ contract DirectPaymentsPool is error NOT_MANAGER(); error ALREADY_CLAIMED(uint256); error NFT_MISSING(uint256); - error NOT_MEMBER(address); - error NOT_WHITELISTED(address); error OVER_MEMBER_LIMITS(address); error OVER_GLOBAL_LIMITS(); error UNSUPPORTED_NFT(); @@ -66,6 +64,7 @@ contract DirectPaymentsPool is event PoolLimitsChanged(SafetyLimits limits); event EventRewardClaimed(uint256 indexed tokenId, ProvableNFT.EventData eventData, uint256 rewardPerContributer); event NFTClaimed(uint256 indexed tokenId, uint256 totalRewards, ProvableNFT.NFTData nftData); + event NOT_MEMBER_OR_WHITELISTED(address contributer); // Define functions struct PoolSettings { @@ -211,11 +210,17 @@ contract DirectPaymentsPool is */ function _sendReward(address[] memory recipients, uint128 reward) internal { uint128 perReward = uint128(reward / recipients.length); + uint128 totalSent; for (uint i = 0; i < recipients.length; i++) { - _enforceAndUpdateMemberLimits(recipients[i], perReward); - settings.rewardToken.safeTransfer(recipients[i], perReward); + bool valid = _enforceAndUpdateMemberLimits(recipients[i], perReward); + if (valid) { + settings.rewardToken.safeTransfer(recipients[i], perReward); + totalSent += perReward; + } else { + emit NOT_MEMBER_OR_WHITELISTED(recipients[i]); + } } - _enforceAndUpdateGlobalLimits(reward); + _enforceAndUpdateGlobalLimits(totalSent); } /** @@ -223,9 +228,11 @@ contract DirectPaymentsPool is * @param member The address of the member to enforce and update limits for. * @param reward The amount of rewards to enforce and update limits for. */ - function _enforceAndUpdateMemberLimits(address member, uint128 reward) internal { - //TODO: decide if this reverts the nft claiming or we just skip the member - if (_addMember(member, "") == false) revert NOT_MEMBER(member); + function _enforceAndUpdateMemberLimits(address member, uint128 reward) internal returns (bool) { + //dont revert on non valid members, just dont reward them (their reward is lost) + if (_addMember(member, "") == false) { + return false; + } uint64 curMonth = _month(); if (memberLimits[member].lastReward + 60 * 60 * 24 < block.timestamp) //more than a day passed since last reward @@ -250,6 +257,8 @@ contract DirectPaymentsPool is memberLimits[member].daily > limits.maxMemberPerDay || memberLimits[member].monthly > limits.maxMemberPerMonth ) revert OVER_MEMBER_LIMITS(member); + + return true; } /** @@ -299,13 +308,13 @@ contract DirectPaymentsPool is if (address(settings.uniquenessValidator) != address(0)) { address rootAddress = settings.uniquenessValidator.getWhitelistedRoot(member); - if (rootAddress == address(0)) revert NOT_WHITELISTED(member); + if (rootAddress == address(0)) return false; } // if no members validator then anyone can join the pool if (address(settings.membersValidator) != address(0)) { if (settings.membersValidator.isMemberValid(address(this), msg.sender, member, extraData) == false) { - revert NOT_MEMBER(member); + return false; } } diff --git a/packages/contracts/package.json b/packages/contracts/package.json index c6b1fce3..0ecea560 100644 --- a/packages/contracts/package.json +++ b/packages/contracts/package.json @@ -10,7 +10,7 @@ "releases" ], "devDependencies": { - "@gooddollar/goodprotocol": "^2.0.6", + "@gooddollar/goodprotocol": "^2.0.9", "@nomicfoundation/hardhat-chai-matchers": "^1.0.0", "@nomicfoundation/hardhat-network-helpers": "^1.0.0", "@nomicfoundation/hardhat-toolbox": "2.*", @@ -26,10 +26,12 @@ "@types/chai": "^4.2.0", "@types/mocha": ">=9.1.0", "@types/prettier": "^2", + "@types/sinon-chai": "^3.2.3", "@typescript-eslint/eslint-plugin": "^5.60.0", "@uniswap/v3-periphery": "^1.4.3", "chai": "^4.2.0", "dotenv": "^16.3.1", + "ethereum-waffle": "^3.0.0", "graphql": "^16.7.1", "hardhat": "2.14.*", "hardhat-abi-exporter": "^2.10.1", diff --git a/packages/contracts/test/DirectPayments/DirectPayments.claim.test.ts b/packages/contracts/test/DirectPayments/DirectPayments.claim.test.ts index d69f44df..6dc2bc66 100644 --- a/packages/contracts/test/DirectPayments/DirectPayments.claim.test.ts +++ b/packages/contracts/test/DirectPayments/DirectPayments.claim.test.ts @@ -4,6 +4,7 @@ import { deployTestFramework } from '@superfluid-finance/ethereum-contracts/dev- import { expect } from 'chai'; import { DirectPaymentsPool, ProvableNFT } from 'typechain-types'; import { ethers, upgrades } from 'hardhat'; +import { MockContract, deployMockContract } from 'ethereum-waffle'; type SignerWithAddress = Awaited>; @@ -15,6 +16,7 @@ describe('DirectPaymentsPool Claim', () => { let poolSettings: DirectPaymentsPool.PoolSettingsStruct; let poolLimits: DirectPaymentsPool.SafetyLimitsStruct; let gdframework: Awaited>; + let membersValidator: any; const nftSample = { nftUri: 'uri', @@ -35,7 +37,9 @@ describe('DirectPaymentsPool Claim', () => { before(async () => { const { frameworkDeployer } = await deployTestFramework(); const sfFramework = await frameworkDeployer.getFramework(); + signers = await ethers.getSigners(); + gdframework = await deploySuperGoodDollar(signers[0], sfFramework); signer = signers[0]; poolSettings = { @@ -59,14 +63,29 @@ describe('DirectPaymentsPool Claim', () => { const factory = await ethers.getContractFactory('ProvableNFT'); nft = (await upgrades.deployProxy(factory, ['nft', 'cc'], { kind: 'uups' })) as ProvableNFT; const Pool = await ethers.getContractFactory('DirectPaymentsPool'); - - pool = (await upgrades.deployProxy(Pool, [nft.address, poolSettings, poolLimits, ethers.constants.AddressZero], { - constructorArgs: [await gdframework.GoodDollar.getHost(), ethers.constants.AddressZero], - })) as DirectPaymentsPool; + membersValidator = await deployMockContract(signers[0], [ + 'function isMemberValid(address pool,address operator,address member,bytes memory extraData) external returns (bool)', + ]); + + // all members are valid by default + membersValidator.mock['isMemberValid'].returns(true); + + pool = (await upgrades.deployProxy( + Pool, + [ + nft.address, + { ...poolSettings, membersValidator: membersValidator.address }, + poolLimits, + ethers.constants.AddressZero, + ], + { + constructorArgs: [await gdframework.GoodDollar.getHost(), ethers.constants.AddressZero], + } + )) as DirectPaymentsPool; await pool.deployed(); const tx = await nft.mintPermissioned(signers[0].address, nftSample, true, []); await gdframework.GoodDollar.mint(pool.address, ethers.constants.WeiPerEther.mul(100000)); - // return {pool, nft}; + // return { pool, nft, membersValidator }; }; beforeEach(async function () { @@ -75,16 +94,26 @@ describe('DirectPaymentsPool Claim', () => { describe('claim', () => { it('non member should not be able to get rewards', async () => { - await expect(pool['claim(uint256)'](nftSampleId)).revertedWithCustomError(pool, 'NOT_MEMBER'); + const membersValidator = await deployMockContract(signers[0], [ + 'function isMemberValid(address pool,address operator,address member,bytes memory extraData) external returns (bool)', + ]); + membersValidator.mock['isMemberValid'].returns(false); + + await pool.setPoolSettings({ ...poolSettings, membersValidator: membersValidator.address }); + await expect(pool['claim(uint256)'](nftSampleId)).not.reverted; + const contributer = nftSample.events[0].contributers[0]; + const initialBalance = await gdframework.GoodDollar.balanceOf(contributer); + expect(initialBalance).eq(0); }); it('should claim the NFT when contributers are members', async () => { - await pool.addMember('0xdA030751FF448Cf127911f0518a2B9b012f72424', []); await expect(pool.connect(signers[0])['claim(uint256)'](nftSampleId)).not.reverted; + const contributer = nftSample.events[0].contributers[0]; + const initialBalance = await gdframework.GoodDollar.balanceOf(contributer); + expect(initialBalance).gt(0); }); it('should not be able to claim the NFT twice', async () => { - await pool.addMember('0xdA030751FF448Cf127911f0518a2B9b012f72424', []); await expect(pool.connect(signers[0])['claim(uint256)'](nftSampleId)).not.reverted; await expect(pool.connect(signers[0])['claim(uint256)'](nftSampleId)).revertedWithCustomError( pool, @@ -95,7 +124,6 @@ describe('DirectPaymentsPool Claim', () => { it('should distribute rewards to the member and update limits', async () => { const contributer = nftSample.events[0].contributers[0]; const initialBalance = await gdframework.GoodDollar.balanceOf(contributer); - await pool.addMember(contributer, []); const claimTx = await pool['claim(uint256)'](nftSampleId); @@ -113,16 +141,18 @@ describe('DirectPaymentsPool Claim', () => { expect(globalLimits.total).to.equal(expectedRewards); expect(globalLimits.monthly).to.equal(expectedRewards); expect(globalLimits.daily).to.equal(expectedRewards); - + const storedNFT = await nft.getNFTData(nftSampleId); // Check that the RewardSent event was emitted with the correct parameters - await expect(claimTx).to.emit(pool, 'NFTClaimed').withArgs(nftSampleId, expectedRewards); + await expect(claimTx).to.emit(pool, 'NFTClaimed'); + const claimEvent = (await claimTx.wait()).events?.find((_) => _.event === 'NFTClaimed'); + expect(claimEvent?.args?.tokenId).eq(nftSampleId); + expect(claimEvent?.args?.totalRewards).eq(expectedRewards); }); it('should enforce member monthly reward limits', async () => { const block = await ethers.provider.getBlock('latest'); await time.setNextBlockTimestamp(block.timestamp + (60 * 60 * 24 * 30 - (block.timestamp % (60 * 60 * 24 * 30)))); const contributer = nftSample.events[0].contributers[0]; - await pool.addMember(contributer, []); for (let i = 1; i < 12; i++) { const newNft = { ...nftSample, events: nftSample.events.map((_) => ({ ..._ })) }; @@ -141,7 +171,6 @@ describe('DirectPaymentsPool Claim', () => { const block = await ethers.provider.getBlock('latest'); await time.setNextBlockTimestamp(block.timestamp + (60 * 60 * 24 * 30 - (block.timestamp % (60 * 60 * 24 * 30)))); const contributer = nftSample.events[0].contributers[0]; - await pool.addMember(contributer, []); for (let i = 1; i < 5; i++) { const newNft = { ...nftSample, events: nftSample.events.map((_) => ({ ..._ })) }; @@ -161,7 +190,6 @@ describe('DirectPaymentsPool Claim', () => { for (let i = 1; i < 12; i++) { const contributer = ethers.Wallet.createRandom(); - await pool.addMember(contributer.address, []); const newNft = { ...nftSample, events: nftSample.events.map((_) => ({ ..._ })) }; newNft.events[0].timestamp = nftSample.events[0].timestamp + 1000 * i; diff --git a/packages/contracts/test/DirectPayments/DirectPayments.superapp.test.ts b/packages/contracts/test/DirectPayments/DirectPayments.superapp.test.ts index 923adcc1..05105bf8 100644 --- a/packages/contracts/test/DirectPayments/DirectPayments.superapp.test.ts +++ b/packages/contracts/test/DirectPayments/DirectPayments.superapp.test.ts @@ -96,7 +96,7 @@ describe('DirectPaymentsPool Superapp', () => { .createFlow({ receiver: pool.address, sender: signer.address, - flowRate: ((await pool.MIN_FLOW_RATE()) - 1).toString(), + flowRate: ((await pool.MIN_FLOW_RATE()).toNumber() - 1).toString(), }) .exec(signer) ).revertedWithCustomError(pool, 'MIN_FLOWRATE'); @@ -204,7 +204,7 @@ describe('DirectPaymentsPool Superapp', () => { expect(supporter.contribution).equal(1000); expect(supporter.lastUpdated).eq(0); //no update on single donation expect(supporter.flowRate).equal(0); - expect(supportAction).to.emit(pool, 'SupporterUpdated').withArgs(signer.address, 1000, 0, supportAction.timestamp); + expect(supportAction).to.emit(pool, 'SupporterUpdated').withArgs(signer.address, 0, 1000, 0, 0, false); }); it('should be able to swap mockToken and stream when 0 G$ balance in one batch tx', async () => { diff --git a/yarn.lock b/yarn.lock index f8f9743c..5d8434bd 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2568,7 +2568,7 @@ __metadata: languageName: node linkType: hard -"@ensdomains/ens@npm:0.4.5": +"@ensdomains/ens@npm:0.4.5, @ensdomains/ens@npm:^0.4.4": version: 0.4.5 resolution: "@ensdomains/ens@npm:0.4.5" dependencies: @@ -2597,7 +2597,7 @@ __metadata: languageName: node linkType: hard -"@ensdomains/resolver@npm:0.2.4": +"@ensdomains/resolver@npm:0.2.4, @ensdomains/resolver@npm:^0.2.4": version: 0.2.4 resolution: "@ensdomains/resolver@npm:0.2.4" checksum: 3827a3430cc8935a0839dac9dafcfa6011c6f71af229ff91cbc6cdcbaa35d20c6dbb1a8a901cdb00e66428578ce1675bd6fe6901778b5d0d828321fbec9e0f7f @@ -2824,6 +2824,69 @@ __metadata: languageName: node linkType: hard +"@ethereum-waffle/chai@npm:^3.4.4": + version: 3.4.4 + resolution: "@ethereum-waffle/chai@npm:3.4.4" + dependencies: + "@ethereum-waffle/provider": ^3.4.4 + ethers: ^5.5.2 + checksum: b2b9b6b839c3f6b4abf8489fe50549e6fda07bd81ae8e4250b20d9a76ce4a729ef47c741364387b1d2dbc7fac14b46a5d6dcc4d404344b9cce5f9698ff012251 + languageName: node + linkType: hard + +"@ethereum-waffle/compiler@npm:^3.4.4": + version: 3.4.4 + resolution: "@ethereum-waffle/compiler@npm:3.4.4" + dependencies: + "@resolver-engine/imports": ^0.3.3 + "@resolver-engine/imports-fs": ^0.3.3 + "@typechain/ethers-v5": ^2.0.0 + "@types/mkdirp": ^0.5.2 + "@types/node-fetch": ^2.5.5 + ethers: ^5.0.1 + mkdirp: ^0.5.1 + node-fetch: ^2.6.1 + solc: ^0.6.3 + ts-generator: ^0.1.1 + typechain: ^3.0.0 + checksum: ebffca732969253934c1e8cca6cc1f12d6294f848d44e6595af81460bc3230bc69096d0965b9deb2c7eecd472a1d536d8cbe993f95bfc76fbbe2114ddbabff70 + languageName: node + linkType: hard + +"@ethereum-waffle/ens@npm:^3.4.4": + version: 3.4.4 + resolution: "@ethereum-waffle/ens@npm:3.4.4" + dependencies: + "@ensdomains/ens": ^0.4.4 + "@ensdomains/resolver": ^0.2.4 + ethers: ^5.5.2 + checksum: 71d93c09ef3ab89a46f05b9e2a06e129e2109d160c3a819e4bf3b4414fc4707e7fc646c87c1d82f9ba769dc1ac3c6f4934fd72499654fcfc9db4abf46c21d118 + languageName: node + linkType: hard + +"@ethereum-waffle/mock-contract@npm:^3.4.4": + version: 3.4.4 + resolution: "@ethereum-waffle/mock-contract@npm:3.4.4" + dependencies: + "@ethersproject/abi": ^5.5.0 + ethers: ^5.5.2 + checksum: 6e5c62b342e424cd1937f2f7eb424056ad143b238320880f378c0db61c6d694617f968687321a2f030d546aa5b4dde42681cbb419589d7f87452c82844a4488b + languageName: node + linkType: hard + +"@ethereum-waffle/provider@npm:^3.4.4": + version: 3.4.4 + resolution: "@ethereum-waffle/provider@npm:3.4.4" + dependencies: + "@ethereum-waffle/ens": ^3.4.4 + ethers: ^5.5.2 + ganache-core: ^2.13.2 + patch-package: ^6.2.2 + postinstall-postinstall: ^2.1.0 + checksum: 9e251d7b0198c22e337b18368e3893de766a821e818702dbef0e0d603bad550c6e3a29676cff11272bc82762833586ee9659593d957ec8759a8cc93c2b0f3d00 + languageName: node + linkType: hard + "@ethereumjs/common@npm:2.5.0": version: 2.5.0 resolution: "@ethereumjs/common@npm:2.5.0" @@ -2924,6 +2987,23 @@ __metadata: languageName: node linkType: hard +"@ethersproject/abi@npm:5.0.0-beta.153": + version: 5.0.0-beta.153 + resolution: "@ethersproject/abi@npm:5.0.0-beta.153" + dependencies: + "@ethersproject/address": ">=5.0.0-beta.128" + "@ethersproject/bignumber": ">=5.0.0-beta.130" + "@ethersproject/bytes": ">=5.0.0-beta.129" + "@ethersproject/constants": ">=5.0.0-beta.128" + "@ethersproject/hash": ">=5.0.0-beta.128" + "@ethersproject/keccak256": ">=5.0.0-beta.127" + "@ethersproject/logger": ">=5.0.0-beta.129" + "@ethersproject/properties": ">=5.0.0-beta.131" + "@ethersproject/strings": ">=5.0.0-beta.130" + checksum: 9f5c3c986a47c2bcc066e0ea1d8190be4358de6722d0eb75eaaacbc1f7610169691cc369085aa390bd88c731c6e539f309cb81face594feffac9336e369444c5 + languageName: node + linkType: hard + "@ethersproject/abi@npm:5.0.7": version: 5.0.7 resolution: "@ethersproject/abi@npm:5.0.7" @@ -3044,7 +3124,7 @@ __metadata: languageName: node linkType: hard -"@ethersproject/address@npm:5.7.0, @ethersproject/address@npm:^5.0.2, @ethersproject/address@npm:^5.0.4, @ethersproject/address@npm:^5.5.0, @ethersproject/address@npm:^5.6.1, @ethersproject/address@npm:^5.7.0": +"@ethersproject/address@npm:5.7.0, @ethersproject/address@npm:>=5.0.0-beta.128, @ethersproject/address@npm:^5.0.2, @ethersproject/address@npm:^5.0.4, @ethersproject/address@npm:^5.5.0, @ethersproject/address@npm:^5.6.1, @ethersproject/address@npm:^5.7.0": version: 5.7.0 resolution: "@ethersproject/address@npm:5.7.0" dependencies: @@ -3106,7 +3186,7 @@ __metadata: languageName: node linkType: hard -"@ethersproject/bignumber@npm:5.7.0, @ethersproject/bignumber@npm:^5.0.7, @ethersproject/bignumber@npm:^5.5.0, @ethersproject/bignumber@npm:^5.6.2, @ethersproject/bignumber@npm:^5.7.0": +"@ethersproject/bignumber@npm:5.7.0, @ethersproject/bignumber@npm:>=5.0.0-beta.130, @ethersproject/bignumber@npm:^5.0.7, @ethersproject/bignumber@npm:^5.5.0, @ethersproject/bignumber@npm:^5.6.2, @ethersproject/bignumber@npm:^5.7.0": version: 5.7.0 resolution: "@ethersproject/bignumber@npm:5.7.0" dependencies: @@ -3126,7 +3206,7 @@ __metadata: languageName: node linkType: hard -"@ethersproject/bytes@npm:5.7.0, @ethersproject/bytes@npm:^5.0.4, @ethersproject/bytes@npm:^5.5.0, @ethersproject/bytes@npm:^5.6.1, @ethersproject/bytes@npm:^5.7.0": +"@ethersproject/bytes@npm:5.7.0, @ethersproject/bytes@npm:>=5.0.0-beta.129, @ethersproject/bytes@npm:^5.0.4, @ethersproject/bytes@npm:^5.5.0, @ethersproject/bytes@npm:^5.6.1, @ethersproject/bytes@npm:^5.7.0": version: 5.7.0 resolution: "@ethersproject/bytes@npm:5.7.0" dependencies: @@ -3144,7 +3224,7 @@ __metadata: languageName: node linkType: hard -"@ethersproject/constants@npm:5.7.0, @ethersproject/constants@npm:^5.0.4, @ethersproject/constants@npm:^5.5.0, @ethersproject/constants@npm:^5.7.0": +"@ethersproject/constants@npm:5.7.0, @ethersproject/constants@npm:>=5.0.0-beta.128, @ethersproject/constants@npm:^5.0.4, @ethersproject/constants@npm:^5.5.0, @ethersproject/constants@npm:^5.7.0": version: 5.7.0 resolution: "@ethersproject/constants@npm:5.7.0" dependencies: @@ -3205,7 +3285,7 @@ __metadata: languageName: node linkType: hard -"@ethersproject/hash@npm:5.7.0, @ethersproject/hash@npm:^5.0.4, @ethersproject/hash@npm:^5.5.0, @ethersproject/hash@npm:^5.7.0": +"@ethersproject/hash@npm:5.7.0, @ethersproject/hash@npm:>=5.0.0-beta.128, @ethersproject/hash@npm:^5.0.4, @ethersproject/hash@npm:^5.5.0, @ethersproject/hash@npm:^5.7.0": version: 5.7.0 resolution: "@ethersproject/hash@npm:5.7.0" dependencies: @@ -3314,7 +3394,7 @@ __metadata: languageName: node linkType: hard -"@ethersproject/keccak256@npm:5.7.0, @ethersproject/keccak256@npm:^5.0.0-beta.130, @ethersproject/keccak256@npm:^5.0.3, @ethersproject/keccak256@npm:^5.5.0, @ethersproject/keccak256@npm:^5.7.0": +"@ethersproject/keccak256@npm:5.7.0, @ethersproject/keccak256@npm:>=5.0.0-beta.127, @ethersproject/keccak256@npm:^5.0.0-beta.130, @ethersproject/keccak256@npm:^5.0.3, @ethersproject/keccak256@npm:^5.5.0, @ethersproject/keccak256@npm:^5.7.0": version: 5.7.0 resolution: "@ethersproject/keccak256@npm:5.7.0" dependencies: @@ -3331,7 +3411,7 @@ __metadata: languageName: node linkType: hard -"@ethersproject/logger@npm:5.7.0, @ethersproject/logger@npm:^5.0.5, @ethersproject/logger@npm:^5.5.0, @ethersproject/logger@npm:^5.7.0": +"@ethersproject/logger@npm:5.7.0, @ethersproject/logger@npm:>=5.0.0-beta.129, @ethersproject/logger@npm:^5.0.5, @ethersproject/logger@npm:^5.5.0, @ethersproject/logger@npm:^5.7.0": version: 5.7.0 resolution: "@ethersproject/logger@npm:5.7.0" checksum: 075ab2f605f1fd0813f2e39c3308f77b44a67732b36e712d9bc085f22a84aac4da4f71b39bee50fe78da3e1c812673fadc41180c9970fe5e486e91ea17befe0d @@ -3394,7 +3474,7 @@ __metadata: languageName: node linkType: hard -"@ethersproject/properties@npm:5.7.0, @ethersproject/properties@npm:^5.0.3, @ethersproject/properties@npm:^5.5.0, @ethersproject/properties@npm:^5.7.0": +"@ethersproject/properties@npm:5.7.0, @ethersproject/properties@npm:>=5.0.0-beta.131, @ethersproject/properties@npm:^5.0.3, @ethersproject/properties@npm:^5.5.0, @ethersproject/properties@npm:^5.7.0": version: 5.7.0 resolution: "@ethersproject/properties@npm:5.7.0" dependencies: @@ -3704,7 +3784,7 @@ __metadata: languageName: node linkType: hard -"@ethersproject/strings@npm:5.7.0, @ethersproject/strings@npm:^5.0.4, @ethersproject/strings@npm:^5.5.0, @ethersproject/strings@npm:^5.7.0": +"@ethersproject/strings@npm:5.7.0, @ethersproject/strings@npm:>=5.0.0-beta.130, @ethersproject/strings@npm:^5.0.4, @ethersproject/strings@npm:^5.5.0, @ethersproject/strings@npm:^5.7.0": version: 5.7.0 resolution: "@ethersproject/strings@npm:5.7.0" dependencies: @@ -3732,7 +3812,7 @@ __metadata: languageName: node linkType: hard -"@ethersproject/transactions@npm:5.7.0, @ethersproject/transactions@npm:^5.5.0, @ethersproject/transactions@npm:^5.6.2, @ethersproject/transactions@npm:^5.7.0": +"@ethersproject/transactions@npm:5.7.0, @ethersproject/transactions@npm:^5.0.0-beta.135, @ethersproject/transactions@npm:^5.5.0, @ethersproject/transactions@npm:^5.6.2, @ethersproject/transactions@npm:^5.7.0": version: 5.7.0 resolution: "@ethersproject/transactions@npm:5.7.0" dependencies: @@ -4179,7 +4259,7 @@ __metadata: version: 0.0.0-use.local resolution: "@gooddollar/goodcollective-contracts@workspace:packages/contracts" dependencies: - "@gooddollar/goodprotocol": ^2.0.6 + "@gooddollar/goodprotocol": ^2.0.9 "@nomicfoundation/hardhat-chai-matchers": ^1.0.0 "@nomicfoundation/hardhat-network-helpers": ^1.0.0 "@nomicfoundation/hardhat-toolbox": 2.* @@ -4195,10 +4275,12 @@ __metadata: "@types/chai": ^4.2.0 "@types/mocha": ">=9.1.0" "@types/prettier": ^2 + "@types/sinon-chai": ^3.2.3 "@typescript-eslint/eslint-plugin": ^5.60.0 "@uniswap/v3-periphery": ^1.4.3 chai: ^4.2.0 dotenv: ^16.3.1 + ethereum-waffle: ^3.0.0 graphql: ^16.7.1 hardhat: 2.14.* hardhat-abi-exporter: ^2.10.1 @@ -4263,7 +4345,7 @@ __metadata: languageName: node linkType: hard -"@gooddollar/goodprotocol@npm:^2.0.3, @gooddollar/goodprotocol@npm:^2.0.4, @gooddollar/goodprotocol@npm:^2.0.6": +"@gooddollar/goodprotocol@npm:^2.0.3, @gooddollar/goodprotocol@npm:^2.0.4": version: 2.0.6 resolution: "@gooddollar/goodprotocol@npm:2.0.6" dependencies: @@ -4285,6 +4367,28 @@ __metadata: languageName: node linkType: hard +"@gooddollar/goodprotocol@npm:^2.0.9": + version: 2.0.9 + resolution: "@gooddollar/goodprotocol@npm:2.0.9" + dependencies: + "@gooddollar/goodcontracts": ^2.6.6 + "@jsier/retrier": ^1.2.4 + "@openzeppelin/contracts": ^4.8.0 + "@openzeppelin/contracts-upgradeable": ^4.8.0 + "@openzeppelin/upgrades-core": 1.18.0 + "@superfluid-finance/ethereum-contracts": ^1.4.3 + "@superfluid-finance/sdk-core": ^0.5.8 + "@typechain/hardhat": ^6.1.5 + async-promise-pool: ^1.0.4 + openzeppelin-solidity: ^4.3.2 + patch-package: latest + press-any-key: ^0.1.1 + truffle-plugin-verify: ^0.6.1 + truffle-source-verify: ^0.0.6 + checksum: d289c02f109e6f13b0eab0217ec708cada5fd8aeb5eb060e8b2745e606ba7c76e762f264a875a020b7392dd8cb139bd0268a726b294e73da12d222d63ec92219 + languageName: node + linkType: hard + "@gooddollar/web3sdk-v2@npm:^0.1.108": version: 0.1.108 resolution: "@gooddollar/web3sdk-v2@npm:0.1.108" @@ -7511,6 +7615,17 @@ __metadata: languageName: node linkType: hard +"@resolver-engine/core@npm:^0.3.3": + version: 0.3.3 + resolution: "@resolver-engine/core@npm:0.3.3" + dependencies: + debug: ^3.1.0 + is-url: ^1.2.4 + request: ^2.85.0 + checksum: e5ac586da2aeb7e384f6841821e528771fca533bf5cf38d7fd0851733bd9b70939e960459f2b841534ecdca6507c9aff71bd317f7481137d7b1d2e87ba15978a + languageName: node + linkType: hard + "@resolver-engine/fs@npm:^0.2.1": version: 0.2.1 resolution: "@resolver-engine/fs@npm:0.2.1" @@ -7521,6 +7636,16 @@ __metadata: languageName: node linkType: hard +"@resolver-engine/fs@npm:^0.3.3": + version: 0.3.3 + resolution: "@resolver-engine/fs@npm:0.3.3" + dependencies: + "@resolver-engine/core": ^0.3.3 + debug: ^3.1.0 + checksum: 734577b7864c3aceaaa80b4b74c252d92fb14a6f3c46dfc0a2d4658288dce1b38797578dd6a4ecbde88cbc4a366e8bdbc46451e282cb25dde8479548453c37a3 + languageName: node + linkType: hard + "@resolver-engine/imports-fs@npm:^0.2.2": version: 0.2.2 resolution: "@resolver-engine/imports-fs@npm:0.2.2" @@ -7532,6 +7657,17 @@ __metadata: languageName: node linkType: hard +"@resolver-engine/imports-fs@npm:^0.3.3": + version: 0.3.3 + resolution: "@resolver-engine/imports-fs@npm:0.3.3" + dependencies: + "@resolver-engine/fs": ^0.3.3 + "@resolver-engine/imports": ^0.3.3 + debug: ^3.1.0 + checksum: d24778788959f8a201bda0a91527cd1703dfbbf3675fd16bd3891046e3f12378be73233bb9d4da19c7247488be38daeab2bdf800317f70553a16fb62208ba2c7 + languageName: node + linkType: hard + "@resolver-engine/imports@npm:^0.2.2": version: 0.2.2 resolution: "@resolver-engine/imports@npm:0.2.2" @@ -7543,6 +7679,19 @@ __metadata: languageName: node linkType: hard +"@resolver-engine/imports@npm:^0.3.3": + version: 0.3.3 + resolution: "@resolver-engine/imports@npm:0.3.3" + dependencies: + "@resolver-engine/core": ^0.3.3 + debug: ^3.1.0 + hosted-git-info: ^2.6.0 + path-browserify: ^1.0.0 + url: ^0.11.0 + checksum: 690cf550fd0608e849fcb9c20a08479ce405173f8d0b09141a5bd140c4ae7c887ebcb0532c4ca64b5c1d3039fe77cc94172b7afb51c1a8fe7722475c429e6944 + languageName: node + linkType: hard + "@rollup/plugin-inject@npm:^5.0.3": version: 5.0.3 resolution: "@rollup/plugin-inject@npm:5.0.3" @@ -9520,6 +9669,18 @@ __metadata: languageName: node linkType: hard +"@typechain/ethers-v5@npm:^2.0.0": + version: 2.0.0 + resolution: "@typechain/ethers-v5@npm:2.0.0" + dependencies: + ethers: ^5.0.2 + peerDependencies: + ethers: ^5.0.0 + typechain: ^3.0.0 + checksum: 785430547f11de358c4018338f6f72aac113ece70d743aad410fff4eacbc3b4876d2e0d3389e1a56123afcf156f5c044ee72275342e45218448c23fe93d23915 + languageName: node + linkType: hard + "@typechain/hardhat@npm:^6.1.5": version: 6.1.6 resolution: "@typechain/hardhat@npm:6.1.6" @@ -9595,7 +9756,7 @@ __metadata: languageName: node linkType: hard -"@types/bn.js@npm:^4.11.3": +"@types/bn.js@npm:^4.11.3, @types/bn.js@npm:^4.11.5": version: 4.11.6 resolution: "@types/bn.js@npm:4.11.6" dependencies: @@ -9960,6 +10121,15 @@ __metadata: languageName: node linkType: hard +"@types/mkdirp@npm:^0.5.2": + version: 0.5.2 + resolution: "@types/mkdirp@npm:0.5.2" + dependencies: + "@types/node": "*" + checksum: 21e6681ee18cee6314dbe0f57ada48981912b76de8266f438ba2573770d60aaa8dd376baad3f20e2346696a7cca84b0aadd1737222341553a0091831a46e6ad1 + languageName: node + linkType: hard + "@types/mocha@npm:>=9.1.0": version: 10.0.1 resolution: "@types/mocha@npm:10.0.1" @@ -9983,6 +10153,16 @@ __metadata: languageName: node linkType: hard +"@types/node-fetch@npm:^2.5.5": + version: 2.6.4 + resolution: "@types/node-fetch@npm:2.6.4" + dependencies: + "@types/node": "*" + form-data: ^3.0.0 + checksum: f3e1d881bb42269e676ecaf49f0e096ab345e22823a2b2d071d60619414817fe02df48a31a8d05adb23054028a2a65521bdb3906ceb763ab6d3339c8d8775058 + languageName: node + linkType: hard + "@types/node@npm:*": version: 18.7.17 resolution: "@types/node@npm:18.7.17" @@ -10156,6 +10336,15 @@ __metadata: languageName: node linkType: hard +"@types/resolve@npm:^0.0.8": + version: 0.0.8 + resolution: "@types/resolve@npm:0.0.8" + dependencies: + "@types/node": "*" + checksum: f241bb773ab14b14500623ac3b57c52006ce32b20426b6d8bf2fe5fdc0344f42c77ac0f94ff57b443ae1d320a1a86c62b4e47239f0321699404402fbeb24bad6 + languageName: node + linkType: hard + "@types/responselike@npm:*, @types/responselike@npm:^1.0.0": version: 1.0.0 resolution: "@types/responselike@npm:1.0.0" @@ -10232,6 +10421,32 @@ __metadata: languageName: node linkType: hard +"@types/sinon-chai@npm:^3.2.3": + version: 3.2.9 + resolution: "@types/sinon-chai@npm:3.2.9" + dependencies: + "@types/chai": "*" + "@types/sinon": "*" + checksum: 3238ee2e3f64d0fc3e3d08a0d69f1edf062500e58814cbf9898ab6b28a8acfa01734069a431e7cff2b0890d8fa2782103b2c011b247520885a50f8928e395681 + languageName: node + linkType: hard + +"@types/sinon@npm:*": + version: 10.0.16 + resolution: "@types/sinon@npm:10.0.16" + dependencies: + "@types/sinonjs__fake-timers": "*" + checksum: 1216aac584500d6bf845ca76f57e82f8459cf9de4ed80a55e50aa4438360fc418789a42181e211c5d279e97f86a3a994e3c81e43971d540737caca0193242bbf + languageName: node + linkType: hard + +"@types/sinonjs__fake-timers@npm:*": + version: 8.1.2 + resolution: "@types/sinonjs__fake-timers@npm:8.1.2" + checksum: bbc73a5ab6c0ec974929392f3d6e1e8db4ebad97ec506d785301e1c3d8a4f98a35b1aa95b97035daef02886fd8efd7788a2fa3ced2ec7105988bfd8dce61eedd + languageName: node + linkType: hard + "@types/stack-utils@npm:^2.0.0": version: 2.0.1 resolution: "@types/stack-utils@npm:2.0.1" @@ -11982,6 +12197,15 @@ __metadata: languageName: node linkType: hard +"abstract-leveldown@npm:3.0.0": + version: 3.0.0 + resolution: "abstract-leveldown@npm:3.0.0" + dependencies: + xtend: ~4.0.0 + checksum: 1d3e65fc2288fd17955df3b0887fdd3d4fa7fcd816062014f872ea12a1e86e886151cbdc36abd2f243a810b7999252eaa30adf636ffe1be3103493ab37277e49 + languageName: node + linkType: hard + "abstract-leveldown@npm:7.2.0, abstract-leveldown@npm:^7.2.0": version: 7.2.0 resolution: "abstract-leveldown@npm:7.2.0" @@ -11996,6 +12220,15 @@ __metadata: languageName: node linkType: hard +"abstract-leveldown@npm:^2.4.1, abstract-leveldown@npm:~2.7.1": + version: 2.7.2 + resolution: "abstract-leveldown@npm:2.7.2" + dependencies: + xtend: ~4.0.0 + checksum: 97c45a05d8b5d24edf3855c1f9a19f919c4a189e387929745289a53116c80638339a7d4e50ad76d0ad2900166adaeaf2e0350dcdcd453e783cd8f04fd9bea17a + languageName: node + linkType: hard + "abstract-leveldown@npm:^5.0.0, abstract-leveldown@npm:~5.0.0": version: 5.0.0 resolution: "abstract-leveldown@npm:5.0.0" @@ -12027,15 +12260,6 @@ __metadata: languageName: node linkType: hard -"abstract-leveldown@npm:~2.7.1": - version: 2.7.2 - resolution: "abstract-leveldown@npm:2.7.2" - dependencies: - xtend: ~4.0.0 - checksum: 97c45a05d8b5d24edf3855c1f9a19f919c4a189e387929745289a53116c80638339a7d4e50ad76d0ad2900166adaeaf2e0350dcdcd453e783cd8f04fd9bea17a - languageName: node - linkType: hard - "abstract-leveldown@npm:~6.2.1, abstract-leveldown@npm:~6.2.3": version: 6.2.3 resolution: "abstract-leveldown@npm:6.2.3" @@ -12725,6 +12949,24 @@ __metadata: languageName: node linkType: hard +"array-back@npm:^1.0.3, array-back@npm:^1.0.4": + version: 1.0.4 + resolution: "array-back@npm:1.0.4" + dependencies: + typical: ^2.6.0 + checksum: 37a8be4cd4920b3d07bdbef40dae83bb37948f5d49601da98a6e48ba5496e9a0008e7f3f2184bcf4d3501bd371a048c9bdca7dc3cc5c3d5b1eb189bbba7b55db + languageName: node + linkType: hard + +"array-back@npm:^2.0.0": + version: 2.0.0 + resolution: "array-back@npm:2.0.0" + dependencies: + typical: ^2.6.1 + checksum: ab36ab3504b25116b47541fb0ac78ff13d1e991f33d98c361edd3aada3ed818a900b619bd67b195dd4e41b9256c27e8cdd6a69ece507e482f1207d07670ed6bd + languageName: node + linkType: hard + "array-back@npm:^3.0.1, array-back@npm:^3.1.0": version: 3.1.0 resolution: "array-back@npm:3.1.0" @@ -13091,6 +13333,15 @@ __metadata: languageName: node linkType: hard +"async@npm:2.6.2": + version: 2.6.2 + resolution: "async@npm:2.6.2" + dependencies: + lodash: ^4.17.11 + checksum: e5e90a3bcc4d9bf964bfc6b77d63b8f5bee8c14e9a51c3317dbcace44d5b6b1fe01cd4fd347449704a107da7fcd25e1382ee8545957b2702782ae720605cf7a4 + languageName: node + linkType: hard + "async@npm:3.2.0": version: 3.2.0 resolution: "async@npm:3.2.0" @@ -13290,6 +13541,44 @@ __metadata: languageName: node linkType: hard +"babel-code-frame@npm:^6.26.0": + version: 6.26.0 + resolution: "babel-code-frame@npm:6.26.0" + dependencies: + chalk: ^1.1.3 + esutils: ^2.0.2 + js-tokens: ^3.0.2 + checksum: 9410c3d5a921eb02fa409675d1a758e493323a49e7b9dddb7a2a24d47e61d39ab1129dd29f9175836eac9ce8b1d4c0a0718fcdc57ce0b865b529fd250dbab313 + languageName: node + linkType: hard + +"babel-core@npm:^6.0.14, babel-core@npm:^6.26.0": + version: 6.26.3 + resolution: "babel-core@npm:6.26.3" + dependencies: + babel-code-frame: ^6.26.0 + babel-generator: ^6.26.0 + babel-helpers: ^6.24.1 + babel-messages: ^6.23.0 + babel-register: ^6.26.0 + babel-runtime: ^6.26.0 + babel-template: ^6.26.0 + babel-traverse: ^6.26.0 + babel-types: ^6.26.0 + babylon: ^6.18.0 + convert-source-map: ^1.5.1 + debug: ^2.6.9 + json5: ^0.5.1 + lodash: ^4.17.4 + minimatch: ^3.0.4 + path-is-absolute: ^1.0.1 + private: ^0.1.8 + slash: ^1.0.0 + source-map: ^0.5.7 + checksum: 3d6a37e5c69ea7f7d66c2a261cbd7219197f2f938700e6ebbabb6d84a03f2bf86691ffa066866dcb49ba6c4bd702d347c9e0e147660847d709705cf43c964752 + languageName: node + linkType: hard + "babel-core@npm:^7.0.0-bridge.0": version: 7.0.0-bridge.0 resolution: "babel-core@npm:7.0.0-bridge.0" @@ -13299,6 +13588,159 @@ __metadata: languageName: node linkType: hard +"babel-generator@npm:^6.26.0": + version: 6.26.1 + resolution: "babel-generator@npm:6.26.1" + dependencies: + babel-messages: ^6.23.0 + babel-runtime: ^6.26.0 + babel-types: ^6.26.0 + detect-indent: ^4.0.0 + jsesc: ^1.3.0 + lodash: ^4.17.4 + source-map: ^0.5.7 + trim-right: ^1.0.1 + checksum: 5397f4d4d1243e7157e3336be96c10fcb1f29f73bf2d9842229c71764d9a6431397d249483a38c4d8b1581459e67be4df6f32d26b1666f02d0f5bfc2c2f25193 + languageName: node + linkType: hard + +"babel-helper-builder-binary-assignment-operator-visitor@npm:^6.24.1": + version: 6.24.1 + resolution: "babel-helper-builder-binary-assignment-operator-visitor@npm:6.24.1" + dependencies: + babel-helper-explode-assignable-expression: ^6.24.1 + babel-runtime: ^6.22.0 + babel-types: ^6.24.1 + checksum: 6ef49597837d042980e78284df014972daac7f1f1f2635d978bb2d13990304322f5135f27b8f2d6eb8c4c2459b496ec76e21544e26afbb5dec88f53089e17476 + languageName: node + linkType: hard + +"babel-helper-call-delegate@npm:^6.24.1": + version: 6.24.1 + resolution: "babel-helper-call-delegate@npm:6.24.1" + dependencies: + babel-helper-hoist-variables: ^6.24.1 + babel-runtime: ^6.22.0 + babel-traverse: ^6.24.1 + babel-types: ^6.24.1 + checksum: b6277d6e48c10cf416632f6dfbac77bdf6ba8ec4ac2f6359a77d6b731dae941c2a3ec7f35e1eba78aad2a7e0838197731d1ef75af529055096c4cb7d96432c88 + languageName: node + linkType: hard + +"babel-helper-define-map@npm:^6.24.1": + version: 6.26.0 + resolution: "babel-helper-define-map@npm:6.26.0" + dependencies: + babel-helper-function-name: ^6.24.1 + babel-runtime: ^6.26.0 + babel-types: ^6.26.0 + lodash: ^4.17.4 + checksum: 08e201eb009a7dbd020232fb7468ac772ebb8cfd33ec9a41113a54f4c90fd1e3474497783d635b8f87d797706323ca0c1758c516a630b0c95277112fc2fe4f13 + languageName: node + linkType: hard + +"babel-helper-explode-assignable-expression@npm:^6.24.1": + version: 6.24.1 + resolution: "babel-helper-explode-assignable-expression@npm:6.24.1" + dependencies: + babel-runtime: ^6.22.0 + babel-traverse: ^6.24.1 + babel-types: ^6.24.1 + checksum: 1bafdb51ce3dd95cf25d712d24a0c3c2ae02ff58118c77462f14ede4d8161aaee42c5c759c3d3a3344a5851b8b0f8d16b395713413b8194e1c3264fc5b12b754 + languageName: node + linkType: hard + +"babel-helper-function-name@npm:^6.24.1": + version: 6.24.1 + resolution: "babel-helper-function-name@npm:6.24.1" + dependencies: + babel-helper-get-function-arity: ^6.24.1 + babel-runtime: ^6.22.0 + babel-template: ^6.24.1 + babel-traverse: ^6.24.1 + babel-types: ^6.24.1 + checksum: d651db9e0b29e135877e90e7858405750a684220d22a6f7c78bb163305a1b322cc1c8bea1bc617625c34d92d0927fdbaa49ee46822e2f86b524eced4c88c7ff0 + languageName: node + linkType: hard + +"babel-helper-get-function-arity@npm:^6.24.1": + version: 6.24.1 + resolution: "babel-helper-get-function-arity@npm:6.24.1" + dependencies: + babel-runtime: ^6.22.0 + babel-types: ^6.24.1 + checksum: 37e344d6c5c00b67a3b378490a5d7ba924bab1c2ccd6ecf1b7da96ca679be12d75fbec6279366ae9772e482fb06a7b48293954dd79cbeba9b947e2db67252fbd + languageName: node + linkType: hard + +"babel-helper-hoist-variables@npm:^6.24.1": + version: 6.24.1 + resolution: "babel-helper-hoist-variables@npm:6.24.1" + dependencies: + babel-runtime: ^6.22.0 + babel-types: ^6.24.1 + checksum: 6af1c165d5f0ad192df07daa194d13de77572bd914d2fc9a270d56b93b2705d98eebabf412b1211505535af131fbe95886fcfad8b3a07b4d501c24b9cb8e57fe + languageName: node + linkType: hard + +"babel-helper-optimise-call-expression@npm:^6.24.1": + version: 6.24.1 + resolution: "babel-helper-optimise-call-expression@npm:6.24.1" + dependencies: + babel-runtime: ^6.22.0 + babel-types: ^6.24.1 + checksum: 16e6aba819b473dbf013391f759497df9f57bc7060bc4e5f7f6b60fb03670eb1dec65dd2227601d58f151e9d647e1f676a12466f5e6674379978820fa02c0fbb + languageName: node + linkType: hard + +"babel-helper-regex@npm:^6.24.1": + version: 6.26.0 + resolution: "babel-helper-regex@npm:6.26.0" + dependencies: + babel-runtime: ^6.26.0 + babel-types: ^6.26.0 + lodash: ^4.17.4 + checksum: ab949a4c90ab255abaafd9ec11a4a6dc77dba360875af2bb0822b699c058858773792c1e969c425c396837f61009f30c9ee5ba4b9a8ca87b0779ae1622f89fb3 + languageName: node + linkType: hard + +"babel-helper-remap-async-to-generator@npm:^6.24.1": + version: 6.24.1 + resolution: "babel-helper-remap-async-to-generator@npm:6.24.1" + dependencies: + babel-helper-function-name: ^6.24.1 + babel-runtime: ^6.22.0 + babel-template: ^6.24.1 + babel-traverse: ^6.24.1 + babel-types: ^6.24.1 + checksum: f330943104b61e7f9248d222bd5fe5d3238904ee20643b76197571e14a724723d64a8096b292a60f64788f0efe30176882c376eeebde00657925678e304324f0 + languageName: node + linkType: hard + +"babel-helper-replace-supers@npm:^6.24.1": + version: 6.24.1 + resolution: "babel-helper-replace-supers@npm:6.24.1" + dependencies: + babel-helper-optimise-call-expression: ^6.24.1 + babel-messages: ^6.23.0 + babel-runtime: ^6.22.0 + babel-template: ^6.24.1 + babel-traverse: ^6.24.1 + babel-types: ^6.24.1 + checksum: ca1d216c5c6afc6af2ef55ea16777ba99e108780ea25da61d93edb09fd85f5e96c756306e2a21e737c3b0c7a16c99762b62a0e5f529d3865b14029fef7351cba + languageName: node + linkType: hard + +"babel-helpers@npm:^6.24.1": + version: 6.24.1 + resolution: "babel-helpers@npm:6.24.1" + dependencies: + babel-runtime: ^6.22.0 + babel-template: ^6.24.1 + checksum: 751c6010e18648eebae422adfea5f3b5eff70d592d693bfe0f53346227d74b38e6cd2553c4c18de1e64faac585de490eccbd3ab86ba0885bdac42ed4478bc6b0 + languageName: node + linkType: hard + "babel-jest@npm:^29.2.1, babel-jest@npm:^29.5.0": version: 29.5.0 resolution: "babel-jest@npm:29.5.0" @@ -13316,6 +13758,24 @@ __metadata: languageName: node linkType: hard +"babel-messages@npm:^6.23.0": + version: 6.23.0 + resolution: "babel-messages@npm:6.23.0" + dependencies: + babel-runtime: ^6.22.0 + checksum: c8075c17587a33869e1a5bd0a5b73bbe395b68188362dacd5418debbc7c8fd784bcd3295e81ee7e410dc2c2655755add6af03698c522209f6a68334c15e6d6ca + languageName: node + linkType: hard + +"babel-plugin-check-es2015-constants@npm:^6.22.0": + version: 6.22.0 + resolution: "babel-plugin-check-es2015-constants@npm:6.22.0" + dependencies: + babel-runtime: ^6.22.0 + checksum: 39168cb4ff078911726bfaf9d111d1e18f3e99d8b6f6101d343249b28346c3869e415c97fe7e857e7f34b913f8a052634b2b9dcfb4c0272e5f64ed22df69c735 + languageName: node + linkType: hard + "babel-plugin-istanbul@npm:^6.1.1": version: 6.1.1 resolution: "babel-plugin-istanbul@npm:6.1.1" @@ -13439,6 +13899,20 @@ __metadata: languageName: node linkType: hard +"babel-plugin-syntax-async-functions@npm:^6.8.0": + version: 6.13.0 + resolution: "babel-plugin-syntax-async-functions@npm:6.13.0" + checksum: e982d9756869fa83eb6a4502490a90b0d31e8a41e2ee582045934f022ac8ff5fa6a3386366976fab3a391d5a7ab8ea5f9da623f35ed8ab328b8ab6d9b2feb1d3 + languageName: node + linkType: hard + +"babel-plugin-syntax-exponentiation-operator@npm:^6.8.0": + version: 6.13.0 + resolution: "babel-plugin-syntax-exponentiation-operator@npm:6.13.0" + checksum: cbcb3aeae7005240325f72d55c3c90575033123e8a1ddfa6bf9eac4ee7e246c2a23f5b5ab1144879590d947a3ed1d88838169d125e5d7c4f53678526482b020e + languageName: node + linkType: hard + "babel-plugin-syntax-jsx@npm:^6.18.0": version: 6.18.0 resolution: "babel-plugin-syntax-jsx@npm:6.18.0" @@ -13446,6 +13920,13 @@ __metadata: languageName: node linkType: hard +"babel-plugin-syntax-trailing-function-commas@npm:^6.22.0": + version: 6.22.0 + resolution: "babel-plugin-syntax-trailing-function-commas@npm:6.22.0" + checksum: d8b9039ded835bb128e8e14eeeb6e0ac2a876b85250924bdc3a8dc2a6984d3bfade4de04d40fb15ea04a86d561ac280ae0d7306d7d4ef7a8c52c43b6a23909c6 + languageName: node + linkType: hard + "babel-plugin-syntax-trailing-function-commas@npm:^7.0.0-beta.0": version: 7.0.0-beta.0 resolution: "babel-plugin-syntax-trailing-function-commas@npm:7.0.0-beta.0" @@ -13453,6 +13934,281 @@ __metadata: languageName: node linkType: hard +"babel-plugin-transform-async-to-generator@npm:^6.22.0": + version: 6.24.1 + resolution: "babel-plugin-transform-async-to-generator@npm:6.24.1" + dependencies: + babel-helper-remap-async-to-generator: ^6.24.1 + babel-plugin-syntax-async-functions: ^6.8.0 + babel-runtime: ^6.22.0 + checksum: ffe8b4b2ed6db1f413ede385bd1a36f39e02a64ed79ce02779440049af75215c98f8debdc70eb01430bfd889f792682b0136576fe966f7f9e1b30e2a54695a8d + languageName: node + linkType: hard + +"babel-plugin-transform-es2015-arrow-functions@npm:^6.22.0": + version: 6.22.0 + resolution: "babel-plugin-transform-es2015-arrow-functions@npm:6.22.0" + dependencies: + babel-runtime: ^6.22.0 + checksum: 746e2be0fed20771c07f0984ba79ef0bab37d6e98434267ec96cef57272014fe53a180bfb9047bf69ed149d367a2c97baad54d6057531cd037684f371aab2333 + languageName: node + linkType: hard + +"babel-plugin-transform-es2015-block-scoped-functions@npm:^6.22.0": + version: 6.22.0 + resolution: "babel-plugin-transform-es2015-block-scoped-functions@npm:6.22.0" + dependencies: + babel-runtime: ^6.22.0 + checksum: f251611f723d94b4068d2a873a2783e019bd81bd7144cfdbcfc31ef166f4d82fa2f1efba64342ba2630dab93a2b12284067725c0aa08315712419a2bc3b92a75 + languageName: node + linkType: hard + +"babel-plugin-transform-es2015-block-scoping@npm:^6.23.0": + version: 6.26.0 + resolution: "babel-plugin-transform-es2015-block-scoping@npm:6.26.0" + dependencies: + babel-runtime: ^6.26.0 + babel-template: ^6.26.0 + babel-traverse: ^6.26.0 + babel-types: ^6.26.0 + lodash: ^4.17.4 + checksum: 5e4dee33bf4aab0ce7751a9ae845c25d3bf03944ffdfc8d784e1de2123a3eec19657dd59274c9969461757f5e2ab75c517e978bafe5309a821a41e278ad38a63 + languageName: node + linkType: hard + +"babel-plugin-transform-es2015-classes@npm:^6.23.0": + version: 6.24.1 + resolution: "babel-plugin-transform-es2015-classes@npm:6.24.1" + dependencies: + babel-helper-define-map: ^6.24.1 + babel-helper-function-name: ^6.24.1 + babel-helper-optimise-call-expression: ^6.24.1 + babel-helper-replace-supers: ^6.24.1 + babel-messages: ^6.23.0 + babel-runtime: ^6.22.0 + babel-template: ^6.24.1 + babel-traverse: ^6.24.1 + babel-types: ^6.24.1 + checksum: 999392b47a83cf9297e49fbde00bc9b15fb6d71bc041f7b3d621ac45361486ec4b66f55c47f98dca6c398ceaa8bfc9f3c21257854822c4523e7475a92e6c000a + languageName: node + linkType: hard + +"babel-plugin-transform-es2015-computed-properties@npm:^6.22.0": + version: 6.24.1 + resolution: "babel-plugin-transform-es2015-computed-properties@npm:6.24.1" + dependencies: + babel-runtime: ^6.22.0 + babel-template: ^6.24.1 + checksum: 34e466bfd4b021aa3861db66cf10a9093fa6a4fcedbc8c82a55f6ca1fcbd212a9967f2df6c5f9e9a20046fa43c8967633a476f2bbc15cb8d3769cbba948a5c16 + languageName: node + linkType: hard + +"babel-plugin-transform-es2015-destructuring@npm:^6.23.0": + version: 6.23.0 + resolution: "babel-plugin-transform-es2015-destructuring@npm:6.23.0" + dependencies: + babel-runtime: ^6.22.0 + checksum: 1343d27f09846e6e1e48da7b83d0d4f2d5571559c468ad8ad4c3715b8ff3e21b2d553e90ad420dc6840de260b7f3b9f9c057606d527e3d838a52a3a7c5fffdbe + languageName: node + linkType: hard + +"babel-plugin-transform-es2015-duplicate-keys@npm:^6.22.0": + version: 6.24.1 + resolution: "babel-plugin-transform-es2015-duplicate-keys@npm:6.24.1" + dependencies: + babel-runtime: ^6.22.0 + babel-types: ^6.24.1 + checksum: 756a7a13517c3e80c8312137b9872b9bc32fbfbb905e9f1e45bf321e2b464d0e6a6e6deca22c61b62377225bd8136b73580897cccb394995d6e00bc8ce882ba4 + languageName: node + linkType: hard + +"babel-plugin-transform-es2015-for-of@npm:^6.23.0": + version: 6.23.0 + resolution: "babel-plugin-transform-es2015-for-of@npm:6.23.0" + dependencies: + babel-runtime: ^6.22.0 + checksum: 0124e320c32b25de84ddaba951a6f0ad031fa5019de54de32bd317d2a97b3f967026008f32e8c88728330c1cce7c4f1d0ecb15007020d50bd5ca1438a882e205 + languageName: node + linkType: hard + +"babel-plugin-transform-es2015-function-name@npm:^6.22.0": + version: 6.24.1 + resolution: "babel-plugin-transform-es2015-function-name@npm:6.24.1" + dependencies: + babel-helper-function-name: ^6.24.1 + babel-runtime: ^6.22.0 + babel-types: ^6.24.1 + checksum: 629ecd824d53ec973a3ef85e74d9fd8c710203084ca2f7ac833879ddfa3b83a28f0270fe2ee5f3b8c078bb4b3e4b843173a646a7cd4abc49e8c1c563d31fb711 + languageName: node + linkType: hard + +"babel-plugin-transform-es2015-literals@npm:^6.22.0": + version: 6.22.0 + resolution: "babel-plugin-transform-es2015-literals@npm:6.22.0" + dependencies: + babel-runtime: ^6.22.0 + checksum: 40e270580a0236990f2555f5dc7ae24b4db9f4709ca455ed1a6724b0078592482274be7448579b14122bd06481641a38e7b2e48d0b49b8c81c88e154a26865b4 + languageName: node + linkType: hard + +"babel-plugin-transform-es2015-modules-amd@npm:^6.22.0, babel-plugin-transform-es2015-modules-amd@npm:^6.24.1": + version: 6.24.1 + resolution: "babel-plugin-transform-es2015-modules-amd@npm:6.24.1" + dependencies: + babel-plugin-transform-es2015-modules-commonjs: ^6.24.1 + babel-runtime: ^6.22.0 + babel-template: ^6.24.1 + checksum: 084c7a1ef3bd0b2b9f4851b27cfb65f8ea1408349af05b4d88f994c23844a0754abfa4799bbc5f3f0ec94232b3a54a2e46d7f1dff1bdd40fa66a46f645197dfa + languageName: node + linkType: hard + +"babel-plugin-transform-es2015-modules-commonjs@npm:^6.23.0, babel-plugin-transform-es2015-modules-commonjs@npm:^6.24.1": + version: 6.26.2 + resolution: "babel-plugin-transform-es2015-modules-commonjs@npm:6.26.2" + dependencies: + babel-plugin-transform-strict-mode: ^6.24.1 + babel-runtime: ^6.26.0 + babel-template: ^6.26.0 + babel-types: ^6.26.0 + checksum: 9cd93a84037855c1879bcc100229bee25b44c4805a9a9f040e8927f772c4732fa17a0706c81ea0db77b357dd9baf84388eec03ceb36597932c48fe32fb3d4171 + languageName: node + linkType: hard + +"babel-plugin-transform-es2015-modules-systemjs@npm:^6.23.0": + version: 6.24.1 + resolution: "babel-plugin-transform-es2015-modules-systemjs@npm:6.24.1" + dependencies: + babel-helper-hoist-variables: ^6.24.1 + babel-runtime: ^6.22.0 + babel-template: ^6.24.1 + checksum: b34877e201d7b4d293d87c04962a3575fe7727a9593e99ce3a7f8deea3da8883a08bd87a6a12927083ac26f47f6944a31cdbfe3d6eb4d18dd884cb2d304ee943 + languageName: node + linkType: hard + +"babel-plugin-transform-es2015-modules-umd@npm:^6.23.0": + version: 6.24.1 + resolution: "babel-plugin-transform-es2015-modules-umd@npm:6.24.1" + dependencies: + babel-plugin-transform-es2015-modules-amd: ^6.24.1 + babel-runtime: ^6.22.0 + babel-template: ^6.24.1 + checksum: 735857b9f2ad0c41ceda31a1594fe2a063025f4428f9e243885a437b5bd415aca445a5e8495ff34b7120617735b1c3a2158033f0be23f1f5a90e655fff742a01 + languageName: node + linkType: hard + +"babel-plugin-transform-es2015-object-super@npm:^6.22.0": + version: 6.24.1 + resolution: "babel-plugin-transform-es2015-object-super@npm:6.24.1" + dependencies: + babel-helper-replace-supers: ^6.24.1 + babel-runtime: ^6.22.0 + checksum: 97b2968f699ac94cb55f4f1e7ea53dc9e4264ec99cab826f40f181da9f6db5980cd8b4985f05c7b6f1e19fbc31681e6e63894dfc5ecf4b3a673d736c4ef0f9db + languageName: node + linkType: hard + +"babel-plugin-transform-es2015-parameters@npm:^6.23.0": + version: 6.24.1 + resolution: "babel-plugin-transform-es2015-parameters@npm:6.24.1" + dependencies: + babel-helper-call-delegate: ^6.24.1 + babel-helper-get-function-arity: ^6.24.1 + babel-runtime: ^6.22.0 + babel-template: ^6.24.1 + babel-traverse: ^6.24.1 + babel-types: ^6.24.1 + checksum: bb6c047dc10499be8ccebdffac22c77f14aee5d3106da8f2e96c801d2746403c809d8c6922e8ebd2eb31d8827b4bb2321ba43378fcdc9dca206417bb345c4f93 + languageName: node + linkType: hard + +"babel-plugin-transform-es2015-shorthand-properties@npm:^6.22.0": + version: 6.24.1 + resolution: "babel-plugin-transform-es2015-shorthand-properties@npm:6.24.1" + dependencies: + babel-runtime: ^6.22.0 + babel-types: ^6.24.1 + checksum: 9302c5de158a28432e932501a783560094c624c3659f4e0a472b6b2e9d6e8ab2634f82ef74d3e75363d46ccff6aad119267dbc34f67464c70625e24a651ad9e5 + languageName: node + linkType: hard + +"babel-plugin-transform-es2015-spread@npm:^6.22.0": + version: 6.22.0 + resolution: "babel-plugin-transform-es2015-spread@npm:6.22.0" + dependencies: + babel-runtime: ^6.22.0 + checksum: 8694a8a7802d905503194ab81c155354b36d39fc819ad2148f83146518dd37d2c6926c8568712f5aa890169afc9353fd4bcc49397959c6dc9da3480b449c0ae9 + languageName: node + linkType: hard + +"babel-plugin-transform-es2015-sticky-regex@npm:^6.22.0": + version: 6.24.1 + resolution: "babel-plugin-transform-es2015-sticky-regex@npm:6.24.1" + dependencies: + babel-helper-regex: ^6.24.1 + babel-runtime: ^6.22.0 + babel-types: ^6.24.1 + checksum: d9c45401caf0d74779a1170e886976d4c865b7de2e90dfffc7557481b9e73b6e37e9f1028aa07b813896c4df88f4d7e89968249a74547c7875e6c499c90c801d + languageName: node + linkType: hard + +"babel-plugin-transform-es2015-template-literals@npm:^6.22.0": + version: 6.22.0 + resolution: "babel-plugin-transform-es2015-template-literals@npm:6.22.0" + dependencies: + babel-runtime: ^6.22.0 + checksum: 4fad2b7b383a2e784858ee7bf837419ee8ff9602afe218e1472f8c33a0c008f01d06f23ff2f2322fb23e1ed17e37237a818575fe88ecc5417d85331973b0ea4d + languageName: node + linkType: hard + +"babel-plugin-transform-es2015-typeof-symbol@npm:^6.23.0": + version: 6.23.0 + resolution: "babel-plugin-transform-es2015-typeof-symbol@npm:6.23.0" + dependencies: + babel-runtime: ^6.22.0 + checksum: 68a1609c6abcddf5f138c56bafcd9fad7c6b3b404fe40910148ab70eb21d6c7807a343a64eb81ce45daf4b70c384c528c55fad45e0d581e4b09efa4d574a6a1b + languageName: node + linkType: hard + +"babel-plugin-transform-es2015-unicode-regex@npm:^6.22.0": + version: 6.24.1 + resolution: "babel-plugin-transform-es2015-unicode-regex@npm:6.24.1" + dependencies: + babel-helper-regex: ^6.24.1 + babel-runtime: ^6.22.0 + regexpu-core: ^2.0.0 + checksum: 739ddb02e5f77904f83ea45323c9a636e3aed34b2a49c7c68208b5f2834eecb6b655e772f870f16a7aaf09ac8219f754ad69d61741d088f5b681d13cda69265d + languageName: node + linkType: hard + +"babel-plugin-transform-exponentiation-operator@npm:^6.22.0": + version: 6.24.1 + resolution: "babel-plugin-transform-exponentiation-operator@npm:6.24.1" + dependencies: + babel-helper-builder-binary-assignment-operator-visitor: ^6.24.1 + babel-plugin-syntax-exponentiation-operator: ^6.8.0 + babel-runtime: ^6.22.0 + checksum: 533ad53ba2cd6ff3c0f751563e1beea429c620038dc2efeeb8348ab4752ebcc95d1521857abfd08047400f1921b2d4df5e0cd266e65ddbe4c3edc58b9ad6fd3c + languageName: node + linkType: hard + +"babel-plugin-transform-regenerator@npm:^6.22.0": + version: 6.26.0 + resolution: "babel-plugin-transform-regenerator@npm:6.26.0" + dependencies: + regenerator-transform: ^0.10.0 + checksum: 41a51d8f692bf4a5cbd705fa70f3cb6abebae66d9ba3dccfb5921da262f8c30f630e1fe9f7b132e29b96fe0d99385a801f6aa204278c5bd0af4284f7f93a665a + languageName: node + linkType: hard + +"babel-plugin-transform-strict-mode@npm:^6.24.1": + version: 6.24.1 + resolution: "babel-plugin-transform-strict-mode@npm:6.24.1" + dependencies: + babel-runtime: ^6.22.0 + babel-types: ^6.24.1 + checksum: 32d70ce9d8c8918a6a840e46df03dfe1e265eb9b25df5a800fedb5065ef1b4b5f24d7c62d92fca0e374db8b0b9b6f84e68edd02ad21883d48f608583ec29f638 + languageName: node + linkType: hard + "babel-preset-current-node-syntax@npm:^1.0.0": version: 1.0.1 resolution: "babel-preset-current-node-syntax@npm:1.0.1" @@ -13475,6 +14231,44 @@ __metadata: languageName: node linkType: hard +"babel-preset-env@npm:^1.7.0": + version: 1.7.0 + resolution: "babel-preset-env@npm:1.7.0" + dependencies: + babel-plugin-check-es2015-constants: ^6.22.0 + babel-plugin-syntax-trailing-function-commas: ^6.22.0 + babel-plugin-transform-async-to-generator: ^6.22.0 + babel-plugin-transform-es2015-arrow-functions: ^6.22.0 + babel-plugin-transform-es2015-block-scoped-functions: ^6.22.0 + babel-plugin-transform-es2015-block-scoping: ^6.23.0 + babel-plugin-transform-es2015-classes: ^6.23.0 + babel-plugin-transform-es2015-computed-properties: ^6.22.0 + babel-plugin-transform-es2015-destructuring: ^6.23.0 + babel-plugin-transform-es2015-duplicate-keys: ^6.22.0 + babel-plugin-transform-es2015-for-of: ^6.23.0 + babel-plugin-transform-es2015-function-name: ^6.22.0 + babel-plugin-transform-es2015-literals: ^6.22.0 + babel-plugin-transform-es2015-modules-amd: ^6.22.0 + babel-plugin-transform-es2015-modules-commonjs: ^6.23.0 + babel-plugin-transform-es2015-modules-systemjs: ^6.23.0 + babel-plugin-transform-es2015-modules-umd: ^6.23.0 + babel-plugin-transform-es2015-object-super: ^6.22.0 + babel-plugin-transform-es2015-parameters: ^6.23.0 + babel-plugin-transform-es2015-shorthand-properties: ^6.22.0 + babel-plugin-transform-es2015-spread: ^6.22.0 + babel-plugin-transform-es2015-sticky-regex: ^6.22.0 + babel-plugin-transform-es2015-template-literals: ^6.22.0 + babel-plugin-transform-es2015-typeof-symbol: ^6.23.0 + babel-plugin-transform-es2015-unicode-regex: ^6.22.0 + babel-plugin-transform-exponentiation-operator: ^6.22.0 + babel-plugin-transform-regenerator: ^6.22.0 + browserslist: ^3.2.6 + invariant: ^2.2.2 + semver: ^5.3.0 + checksum: 6e459a6c76086a2a377707680148b94c3d0aba425b039b427ca01171ebada7f5db5d336b309548462f6ba015e13176a4724f912875c15084d4aa88d77020d185 + languageName: node + linkType: hard + "babel-preset-fbjs@npm:^3.4.0": version: 3.4.0 resolution: "babel-preset-fbjs@npm:3.4.0" @@ -13524,7 +14318,22 @@ __metadata: languageName: node linkType: hard -"babel-runtime@npm:^6.26.0": +"babel-register@npm:^6.26.0": + version: 6.26.0 + resolution: "babel-register@npm:6.26.0" + dependencies: + babel-core: ^6.26.0 + babel-runtime: ^6.26.0 + core-js: ^2.5.0 + home-or-tmp: ^2.0.0 + lodash: ^4.17.4 + mkdirp: ^0.5.1 + source-map-support: ^0.4.15 + checksum: 75d5fe060e4850dbdbd5f56db2928cd0b6b6c93a65ba5f2a991465af4dc3f4adf46d575138f228b2169b1e25e3b4a7cdd16515a355fea41b873321bf56467583 + languageName: node + linkType: hard + +"babel-runtime@npm:^6.18.0, babel-runtime@npm:^6.22.0, babel-runtime@npm:^6.26.0": version: 6.26.0 resolution: "babel-runtime@npm:6.26.0" dependencies: @@ -13534,6 +14343,67 @@ __metadata: languageName: node linkType: hard +"babel-template@npm:^6.24.1, babel-template@npm:^6.26.0": + version: 6.26.0 + resolution: "babel-template@npm:6.26.0" + dependencies: + babel-runtime: ^6.26.0 + babel-traverse: ^6.26.0 + babel-types: ^6.26.0 + babylon: ^6.18.0 + lodash: ^4.17.4 + checksum: 028dd57380f09b5641b74874a19073c53c4fb3f1696e849575aae18f8c80eaf21db75209057db862f3b893ce2cd9b795d539efa591b58f4a0fb011df0a56fbed + languageName: node + linkType: hard + +"babel-traverse@npm:^6.24.1, babel-traverse@npm:^6.26.0": + version: 6.26.0 + resolution: "babel-traverse@npm:6.26.0" + dependencies: + babel-code-frame: ^6.26.0 + babel-messages: ^6.23.0 + babel-runtime: ^6.26.0 + babel-types: ^6.26.0 + babylon: ^6.18.0 + debug: ^2.6.8 + globals: ^9.18.0 + invariant: ^2.2.2 + lodash: ^4.17.4 + checksum: fca037588d2791ae0409f1b7aa56075b798699cccc53ea04d82dd1c0f97b9e7ab17065f7dd3ecd69101d7874c9c8fd5e0f88fa53abbae1fe94e37e6b81ebcb8d + languageName: node + linkType: hard + +"babel-types@npm:^6.19.0, babel-types@npm:^6.24.1, babel-types@npm:^6.26.0": + version: 6.26.0 + resolution: "babel-types@npm:6.26.0" + dependencies: + babel-runtime: ^6.26.0 + esutils: ^2.0.2 + lodash: ^4.17.4 + to-fast-properties: ^1.0.3 + checksum: d16b0fa86e9b0e4c2623be81d0a35679faff24dd2e43cde4ca58baf49f3e39415a011a889e6c2259ff09e1228e4c3a3db6449a62de59e80152fe1ce7398fde76 + languageName: node + linkType: hard + +"babelify@npm:^7.3.0": + version: 7.3.0 + resolution: "babelify@npm:7.3.0" + dependencies: + babel-core: ^6.0.14 + object-assign: ^4.0.0 + checksum: 4e169606ed0f2ff6f886d2367c72243d36b3b354490ccc916b913f6b4afd14102c91f771d71d485857feb134581dd48702f25431e19b5c7035f474f9898c3c2e + languageName: node + linkType: hard + +"babylon@npm:^6.18.0": + version: 6.18.0 + resolution: "babylon@npm:6.18.0" + bin: + babylon: ./bin/babylon.js + checksum: 0777ae0c735ce1cbfc856d627589ed9aae212b84fb0c03c368b55e6c5d3507841780052808d0ad46e18a2ba516e93d55eeed8cd967f3b2938822dfeccfb2a16d + languageName: node + linkType: hard + "backoff@npm:^2.5.0": version: 2.5.0 resolution: "backoff@npm:2.5.0" @@ -13776,6 +14646,19 @@ __metadata: languageName: node linkType: hard +"bip39@npm:2.5.0": + version: 2.5.0 + resolution: "bip39@npm:2.5.0" + dependencies: + create-hash: ^1.1.0 + pbkdf2: ^3.0.9 + randombytes: ^2.0.1 + safe-buffer: ^5.0.1 + unorm: ^1.3.3 + checksum: 26e83583c43a8430afea1c385328b447005c74ddaf997cd8d3e416057f4968360b08ebf7de32374d605295c3abdd7ddd448d8078a2aa3d951735f4499c23875b + languageName: node + linkType: hard + "bip39@npm:^2.2.0": version: 2.6.0 resolution: "bip39@npm:2.6.0" @@ -13870,7 +14753,7 @@ __metadata: languageName: node linkType: hard -"bn.js@npm:^4.0.0, bn.js@npm:^4.1.0, bn.js@npm:^4.11.0, bn.js@npm:^4.11.6, bn.js@npm:^4.11.8, bn.js@npm:^4.11.9, bn.js@npm:^4.12.0, bn.js@npm:^4.4.0": +"bn.js@npm:^4.0.0, bn.js@npm:^4.1.0, bn.js@npm:^4.10.0, bn.js@npm:^4.11.0, bn.js@npm:^4.11.6, bn.js@npm:^4.11.8, bn.js@npm:^4.11.9, bn.js@npm:^4.12.0, bn.js@npm:^4.4.0, bn.js@npm:^4.8.0": version: 4.12.0 resolution: "bn.js@npm:4.12.0" checksum: 39afb4f15f4ea537b55eaf1446c896af28ac948fdcf47171961475724d1bb65118cca49fa6e3d67706e4790955ec0e74de584e45c8f1ef89f46c812bee5b5a12 @@ -14261,6 +15144,18 @@ __metadata: languageName: node linkType: hard +"browserslist@npm:^3.2.6": + version: 3.2.8 + resolution: "browserslist@npm:3.2.8" + dependencies: + caniuse-lite: ^1.0.30000844 + electron-to-chromium: ^1.3.47 + bin: + browserslist: ./cli.js + checksum: 74d9ab1089a3813f54a7c4f9f6612faa6256799c8e42c7e00e4aae626c17f199049a01707a525a05b1673cd1493936583e51aad295e25249166e7e8fbd0273ba + languageName: node + linkType: hard + "browserslist@npm:^4.20.2, browserslist@npm:^4.21.3": version: 4.21.3 resolution: "browserslist@npm:4.21.3" @@ -14372,6 +15267,15 @@ __metadata: languageName: node linkType: hard +"buffer-xor@npm:^2.0.1": + version: 2.0.2 + resolution: "buffer-xor@npm:2.0.2" + dependencies: + safe-buffer: ^5.1.1 + checksum: 78226fcae9f4a0b4adec69dffc049f26f6bab240dfdd1b3f6fe07c4eb6b90da202ea5c363f98af676156ee39450a06405fddd9e8965f68a5327edcc89dcbe5d0 + languageName: node + linkType: hard + "buffer@npm:6.0.1": version: 6.0.1 resolution: "buffer@npm:6.0.1" @@ -14403,7 +15307,7 @@ __metadata: languageName: node linkType: hard -"buffer@npm:^5.0.5, buffer@npm:^5.4.3, buffer@npm:^5.5.0, buffer@npm:^5.6.0, buffer@npm:^5.7.1": +"buffer@npm:^5.0.5, buffer@npm:^5.2.1, buffer@npm:^5.4.3, buffer@npm:^5.5.0, buffer@npm:^5.6.0, buffer@npm:^5.7.1": version: 5.7.1 resolution: "buffer@npm:5.7.1" dependencies: @@ -14473,6 +15377,25 @@ __metadata: languageName: node linkType: hard +"bytewise-core@npm:^1.2.2": + version: 1.2.3 + resolution: "bytewise-core@npm:1.2.3" + dependencies: + typewise-core: ^1.2 + checksum: e0d28fb7ff5bb6fd9320eef31c6b37e98da3b9a24d9893e2c17e0ee544457e0c76c2d3fc642c99d82daa0f18dcd49e7dce8dcc338711200e9ced79107cb78e8e + languageName: node + linkType: hard + +"bytewise@npm:~1.1.0": + version: 1.1.0 + resolution: "bytewise@npm:1.1.0" + dependencies: + bytewise-core: ^1.2.2 + typewise: ^1.0.3 + checksum: 20d7387ecf8c29adc4740e626fb02eaa27f34ae4c5ca881657d403e792730c0625ba4fed824462b3ddb7d3ebe41b7abbfe24f1cd3bf07cecc5a631f154d2d8d2 + languageName: node + linkType: hard + "cac@npm:^6.7.14": version: 6.7.14 resolution: "cac@npm:6.7.14" @@ -14574,6 +15497,16 @@ __metadata: languageName: node linkType: hard +"cachedown@npm:1.0.0": + version: 1.0.0 + resolution: "cachedown@npm:1.0.0" + dependencies: + abstract-leveldown: ^2.4.1 + lru-cache: ^3.2.0 + checksum: ffd229839ca7efbfa14e35321fb8df444421e192bdf7be16048a303d2a24f3ed86cbe6c7a8cca91761423e4c53c3ed1098d337bbb9d3448801d4792172b4ab3e + languageName: node + linkType: hard + "call-bind@npm:^1.0.0, call-bind@npm:^1.0.2, call-bind@npm:~1.0.2": version: 1.0.2 resolution: "call-bind@npm:1.0.2" @@ -14679,6 +15612,13 @@ __metadata: languageName: node linkType: hard +"caniuse-lite@npm:^1.0.30000844": + version: 1.0.30001519 + resolution: "caniuse-lite@npm:1.0.30001519" + checksum: 66085133ede05d947e30b62fed2cbae18e5767afda8b0de38840883e1cfe5846bf1568ddbafd31647544e59112355abedaf9c867ac34541bfc20d69e7a19d94c + languageName: node + linkType: hard + "caniuse-lite@npm:^1.0.30001370": version: 1.0.30001399 resolution: "caniuse-lite@npm:1.0.30001399" @@ -15324,6 +16264,13 @@ __metadata: languageName: node linkType: hard +"clone@npm:2.1.2, clone@npm:^2.0.0, clone@npm:^2.1.1": + version: 2.1.2 + resolution: "clone@npm:2.1.2" + checksum: aaf106e9bc025b21333e2f4c12da539b568db4925c0501a1bf4070836c9e848c892fa22c35548ce0d1132b08bbbfa17a00144fe58fccdab6fa900fec4250f67d + languageName: node + linkType: hard + "clone@npm:^1.0.2": version: 1.0.4 resolution: "clone@npm:1.0.4" @@ -15331,13 +16278,6 @@ __metadata: languageName: node linkType: hard -"clone@npm:^2.0.0, clone@npm:^2.1.1": - version: 2.1.2 - resolution: "clone@npm:2.1.2" - checksum: aaf106e9bc025b21333e2f4c12da539b568db4925c0501a1bf4070836c9e848c892fa22c35548ce0d1132b08bbbfa17a00144fe58fccdab6fa900fec4250f67d - languageName: node - linkType: hard - "clsx@npm:^1.1.0, clsx@npm:^1.1.1": version: 1.2.1 resolution: "clsx@npm:1.2.1" @@ -15480,6 +16420,19 @@ __metadata: languageName: node linkType: hard +"command-line-args@npm:^4.0.7": + version: 4.0.7 + resolution: "command-line-args@npm:4.0.7" + dependencies: + array-back: ^2.0.0 + find-replace: ^1.0.3 + typical: ^2.6.1 + bin: + command-line-args: bin/cli.js + checksum: 618109143fbca741048d54a5d31a2a5e166fbda318ed1419c1ca66877ce92ed80d6768a52a2e6392eb751f16ca7755d4014ced6f5f858a68d0cbe793bab6e3ee + languageName: node + linkType: hard + "command-line-args@npm:^5.1.1": version: 5.2.1 resolution: "command-line-args@npm:5.2.1" @@ -15633,7 +16586,7 @@ __metadata: languageName: node linkType: hard -"concat-stream@npm:^1.6.0, concat-stream@npm:^1.6.1, concat-stream@npm:^1.6.2, concat-stream@npm:~1.6.0, concat-stream@npm:~1.6.2": +"concat-stream@npm:^1.5.1, concat-stream@npm:^1.6.0, concat-stream@npm:^1.6.1, concat-stream@npm:^1.6.2, concat-stream@npm:~1.6.0, concat-stream@npm:~1.6.2": version: 1.6.2 resolution: "concat-stream@npm:1.6.2" dependencies: @@ -15756,7 +16709,7 @@ __metadata: languageName: node linkType: hard -"convert-source-map@npm:^1.1.0, convert-source-map@npm:^1.6.0": +"convert-source-map@npm:^1.1.0, convert-source-map@npm:^1.5.1, convert-source-map@npm:^1.6.0": version: 1.9.0 resolution: "convert-source-map@npm:1.9.0" checksum: dc55a1f28ddd0e9485ef13565f8f756b342f9a46c4ae18b843fe3c30c675d058d6a4823eff86d472f187b176f0adf51ea7b69ea38be34be4a63cbbf91b0593c8 @@ -15848,6 +16801,13 @@ __metadata: languageName: node linkType: hard +"core-js-pure@npm:^3.0.1": + version: 3.32.0 + resolution: "core-js-pure@npm:3.32.0" + checksum: 57b1ae97e6d468dfa34af3df75bba3fec3d01a04392f7c11f77a698f7157be199b647c599a06869fb403397a2e512dbbfc6eb3b8a690f857484125620f7d36e6 + languageName: node + linkType: hard + "core-js-pure@npm:^3.20.2": version: 3.25.1 resolution: "core-js-pure@npm:3.25.1" @@ -15855,7 +16815,7 @@ __metadata: languageName: node linkType: hard -"core-js@npm:^2.4.0": +"core-js@npm:^2.4.0, core-js@npm:^2.5.0": version: 2.6.12 resolution: "core-js@npm:2.6.12" checksum: 44fa9934a85f8c78d61e0c8b7b22436330471ffe59ec5076fe7f324d6e8cf7f824b14b1c81ca73608b13bdb0fef035bd820989bf059767ad6fa13123bb8bd016 @@ -15993,7 +16953,7 @@ __metadata: languageName: node linkType: hard -"cross-fetch@npm:^2.1.0": +"cross-fetch@npm:^2.1.0, cross-fetch@npm:^2.1.1": version: 2.2.6 resolution: "cross-fetch@npm:2.2.6" dependencies: @@ -16273,7 +17233,7 @@ __metadata: languageName: node linkType: hard -"debug@npm:2.6.9, debug@npm:^2.2.0, debug@npm:^2.3.3, debug@npm:^2.6.9": +"debug@npm:2.6.9, debug@npm:^2.2.0, debug@npm:^2.3.3, debug@npm:^2.6.8, debug@npm:^2.6.9": version: 2.6.9 resolution: "debug@npm:2.6.9" dependencies: @@ -16668,6 +17628,15 @@ __metadata: languageName: node linkType: hard +"detect-indent@npm:^4.0.0": + version: 4.0.0 + resolution: "detect-indent@npm:4.0.0" + dependencies: + repeating: ^2.0.0 + checksum: 328f273915c1610899bc7d4784ce874413d0a698346364cd3ee5d79afba1c5cf4dbc97b85a801e20f4d903c0598bd5096af32b800dfb8696b81464ccb3dfda2c + languageName: node + linkType: hard + "detect-indent@npm:^5.0.0": version: 5.0.0 resolution: "detect-indent@npm:5.0.0" @@ -17098,6 +18067,13 @@ __metadata: languageName: node linkType: hard +"electron-to-chromium@npm:^1.3.47": + version: 1.4.482 + resolution: "electron-to-chromium@npm:1.4.482" + checksum: 2eb3f094d10892517081722e1e8a3dc381bd8f1500cb0d4107975bceb37096d63c24256833c92843026a4b921b9f216b2d97975fdaaeb069257f0e85a1a4d83d + languageName: node + linkType: hard + "electron-to-chromium@npm:^1.4.202": version: 1.4.248 resolution: "electron-to-chromium@npm:1.4.248" @@ -17212,28 +18188,28 @@ __metadata: languageName: node linkType: hard -"encoding-down@npm:^6.3.0": - version: 6.3.0 - resolution: "encoding-down@npm:6.3.0" +"encoding-down@npm:5.0.4, encoding-down@npm:~5.0.0": + version: 5.0.4 + resolution: "encoding-down@npm:5.0.4" dependencies: - abstract-leveldown: ^6.2.1 + abstract-leveldown: ^5.0.0 inherits: ^2.0.3 level-codec: ^9.0.0 level-errors: ^2.0.0 - checksum: 74043e6d9061a470614ff61d708c849259ab32932a428fd5ddfb0878719804f56a52f59b31cccd95fddc2e636c0fd22dc3e02481fb98d5bf1bdbbbc44ca09bdc + xtend: ^4.0.1 + checksum: b8d9d4b058622c11e33d8ec0fb6432194925e109ed8e44e93555406496e8b77b294c8c338dd5ed9ab8d7bc50250a48bb93f9af62ecee3ce8d82f4ef78b2ca880 languageName: node linkType: hard -"encoding-down@npm:~5.0.0": - version: 5.0.4 - resolution: "encoding-down@npm:5.0.4" +"encoding-down@npm:^6.3.0": + version: 6.3.0 + resolution: "encoding-down@npm:6.3.0" dependencies: - abstract-leveldown: ^5.0.0 + abstract-leveldown: ^6.2.1 inherits: ^2.0.3 level-codec: ^9.0.0 level-errors: ^2.0.0 - xtend: ^4.0.1 - checksum: b8d9d4b058622c11e33d8ec0fb6432194925e109ed8e44e93555406496e8b77b294c8c338dd5ed9ab8d7bc50250a48bb93f9af62ecee3ce8d82f4ef78b2ca880 + checksum: 74043e6d9061a470614ff61d708c849259ab32932a428fd5ddfb0878719804f56a52f59b31cccd95fddc2e636c0fd22dc3e02481fb98d5bf1bdbbbc44ca09bdc languageName: node linkType: hard @@ -18388,6 +19364,21 @@ __metadata: languageName: node linkType: hard +"eth-block-tracker@npm:^3.0.0": + version: 3.0.1 + resolution: "eth-block-tracker@npm:3.0.1" + dependencies: + eth-query: ^2.1.0 + ethereumjs-tx: ^1.3.3 + ethereumjs-util: ^5.1.3 + ethjs-util: ^0.1.3 + json-rpc-engine: ^3.6.0 + pify: ^2.3.0 + tape: ^4.6.3 + checksum: b68dda7a60e2c15fa7097f31277ebfce08852de83229c2c65879a5482db28610bc85248cfe6578971ad2357552d5ce6124fb0c2a29d18fd30c70f092beeda3b8 + languageName: node + linkType: hard + "eth-components@npm:3.6.0-beta04": version: 3.6.0-beta04 resolution: "eth-components@npm:3.6.0-beta04" @@ -18536,6 +19527,18 @@ __metadata: languageName: node linkType: hard +"eth-json-rpc-infura@npm:^3.1.0": + version: 3.2.1 + resolution: "eth-json-rpc-infura@npm:3.2.1" + dependencies: + cross-fetch: ^2.1.1 + eth-json-rpc-middleware: ^1.5.0 + json-rpc-engine: ^3.4.0 + json-rpc-error: ^2.0.0 + checksum: 393e825986c0eedb9a1bb771b84e5b7c4037d8f870ab92cdba9dbaa52b5c7d5755ed02fd80d2a07b5db7a3af2c0b30d37756eb39cd7d2ae39173c6c2ea138e7d + languageName: node + linkType: hard + "eth-json-rpc-infura@npm:^4.0.1": version: 4.1.0 resolution: "eth-json-rpc-infura@npm:4.1.0" @@ -18560,6 +19563,27 @@ __metadata: languageName: node linkType: hard +"eth-json-rpc-middleware@npm:^1.5.0": + version: 1.6.0 + resolution: "eth-json-rpc-middleware@npm:1.6.0" + dependencies: + async: ^2.5.0 + eth-query: ^2.1.2 + eth-tx-summary: ^3.1.2 + ethereumjs-block: ^1.6.0 + ethereumjs-tx: ^1.3.3 + ethereumjs-util: ^5.1.2 + ethereumjs-vm: ^2.1.0 + fetch-ponyfill: ^4.0.0 + json-rpc-engine: ^3.6.0 + json-rpc-error: ^2.0.0 + json-stable-stringify: ^1.0.1 + promise-to-callback: ^1.0.0 + tape: ^4.6.3 + checksum: 0f6c146bdb277b3be9eef68f7424e1709a57f58330a3ae076153313be60f5026a5eee0de16d1ee6e41515e76cb1d38ef590948dd55d4b3ab1b3659af61337922 + languageName: node + linkType: hard + "eth-json-rpc-middleware@npm:^4.1.5, eth-json-rpc-middleware@npm:^4.4.0": version: 4.4.1 resolution: "eth-json-rpc-middleware@npm:4.4.1" @@ -18660,7 +19684,7 @@ __metadata: languageName: node linkType: hard -"eth-query@npm:^2.1.0, eth-query@npm:^2.1.2": +"eth-query@npm:^2.0.2, eth-query@npm:^2.1.0, eth-query@npm:^2.1.2": version: 2.1.2 resolution: "eth-query@npm:2.1.2" dependencies: @@ -18697,6 +19721,20 @@ __metadata: languageName: node linkType: hard +"eth-sig-util@npm:3.0.0": + version: 3.0.0 + resolution: "eth-sig-util@npm:3.0.0" + dependencies: + buffer: ^5.2.1 + elliptic: ^6.4.0 + ethereumjs-abi: 0.6.5 + ethereumjs-util: ^5.1.1 + tweetnacl: ^1.0.0 + tweetnacl-util: ^0.15.0 + checksum: fbe44efb7909737b070e1e1d8c7096da3bdbd1356de242fc3458849e042e39c83a4e2dd1cbce0dc21ff3e5eca1843981751428bc160dcf3a6fcca2f1e8161be4 + languageName: node + linkType: hard + "eth-sig-util@npm:^1.4.2": version: 1.4.2 resolution: "eth-sig-util@npm:1.4.2" @@ -18707,6 +19745,24 @@ __metadata: languageName: node linkType: hard +"eth-tx-summary@npm:^3.1.2": + version: 3.2.4 + resolution: "eth-tx-summary@npm:3.2.4" + dependencies: + async: ^2.1.2 + clone: ^2.0.0 + concat-stream: ^1.5.1 + end-of-stream: ^1.1.0 + eth-query: ^2.0.2 + ethereumjs-block: ^1.4.1 + ethereumjs-tx: ^1.1.1 + ethereumjs-util: ^5.0.1 + ethereumjs-vm: ^2.6.0 + through2: ^2.0.3 + checksum: 7df8b91bc2bd3f6941e2a5b3230cad5c5523ca3750190cd06af07983feba1bb4af893f226f01072958b00aa626869846894bcb1bfaa451d9c8f7f5b8cdf5ce0a + languageName: node + linkType: hard + "eth-util-lite@npm:^1.0.1": version: 1.0.1 resolution: "eth-util-lite@npm:1.0.1" @@ -18719,6 +19775,18 @@ __metadata: languageName: node linkType: hard +"ethashjs@npm:~0.0.7": + version: 0.0.8 + resolution: "ethashjs@npm:0.0.8" + dependencies: + async: ^2.1.2 + buffer-xor: ^2.0.1 + ethereumjs-util: ^7.0.2 + miller-rabin: ^4.0.0 + checksum: d9b6b47d32cbe017848ce5d8aec86eb6416300c6f52a68029bf6fc8fcf5429a45c14f2033d514435acd02047af16f6f804056e81587b30ed677039ac678b15f8 + languageName: node + linkType: hard + "ethereum-bloom-filters@npm:^1.0.6": version: 1.0.10 resolution: "ethereum-bloom-filters@npm:1.0.10" @@ -18852,6 +19920,21 @@ __metadata: languageName: node linkType: hard +"ethereum-waffle@npm:^3.0.0": + version: 3.4.4 + resolution: "ethereum-waffle@npm:3.4.4" + dependencies: + "@ethereum-waffle/chai": ^3.4.4 + "@ethereum-waffle/compiler": ^3.4.4 + "@ethereum-waffle/mock-contract": ^3.4.4 + "@ethereum-waffle/provider": ^3.4.4 + ethers: ^5.0.1 + bin: + waffle: bin/waffle + checksum: 5a181b52f66f1b3c89ed1b68ef44cbd9acd4d743262de9edbe1fd57b0925576dd62c3436b1e65434d5ac03ab16da0df283972cd9aae726de0b8b9cdd7876b917 + languageName: node + linkType: hard + "ethereumjs-abi@git+https://github.com/ethereumjs/ethereumjs-abi.git": version: 0.6.8 resolution: "ethereumjs-abi@https://github.com/ethereumjs/ethereumjs-abi.git#commit=ee3994657fa7a427238e6ba92a84d0b529bbcde0" @@ -18862,7 +19945,17 @@ __metadata: languageName: node linkType: hard -"ethereumjs-abi@npm:^0.6.8": +"ethereumjs-abi@npm:0.6.5": + version: 0.6.5 + resolution: "ethereumjs-abi@npm:0.6.5" + dependencies: + bn.js: ^4.10.0 + ethereumjs-util: ^4.3.0 + checksum: 3abdc79dc60614d30b1cefb5e6bfbdab3ca8252b4e742330544103f86d6e49a55921d9b8822a0a47fee3efd9dd2493ec93448b1869d82479a4c71a44001e8337 + languageName: node + linkType: hard + +"ethereumjs-abi@npm:0.6.8, ethereumjs-abi@npm:^0.6.8": version: 0.6.8 resolution: "ethereumjs-abi@npm:0.6.8" dependencies: @@ -18872,6 +19965,17 @@ __metadata: languageName: node linkType: hard +"ethereumjs-account@npm:3.0.0, ethereumjs-account@npm:^3.0.0": + version: 3.0.0 + resolution: "ethereumjs-account@npm:3.0.0" + dependencies: + ethereumjs-util: ^6.0.0 + rlp: ^2.2.1 + safe-buffer: ^5.1.1 + checksum: 64dbe026d29aca12c79596cf4085fb27e209988f11b7d5bf3a1f2aadaaa517d90d722680c8b525144c26a2d9cd8494aa26ac088fa80b358cc3e28024f7ddbe81 + languageName: node + linkType: hard + "ethereumjs-account@npm:^2.0.3": version: 2.0.5 resolution: "ethereumjs-account@npm:2.0.5" @@ -18883,7 +19987,20 @@ __metadata: languageName: node linkType: hard -"ethereumjs-block@npm:^1.2.2, ethereumjs-block@npm:^1.6.0": +"ethereumjs-block@npm:2.2.2, ethereumjs-block@npm:^2.2.2, ethereumjs-block@npm:~2.2.0, ethereumjs-block@npm:~2.2.2": + version: 2.2.2 + resolution: "ethereumjs-block@npm:2.2.2" + dependencies: + async: ^2.0.1 + ethereumjs-common: ^1.5.0 + ethereumjs-tx: ^2.1.1 + ethereumjs-util: ^5.0.0 + merkle-patricia-tree: ^2.1.2 + checksum: 91f7f60820394e072c9a115da2871a096414644109d2449d4a79b30be67b0080bc848dfa7e2ae7b2ab255de3be4f6736c6cb2b418c29eada794d018cc384e189 + languageName: node + linkType: hard + +"ethereumjs-block@npm:^1.2.2, ethereumjs-block@npm:^1.4.1, ethereumjs-block@npm:^1.6.0": version: 1.7.1 resolution: "ethereumjs-block@npm:1.7.1" dependencies: @@ -18896,27 +20013,39 @@ __metadata: languageName: node linkType: hard -"ethereumjs-block@npm:~2.2.0": - version: 2.2.2 - resolution: "ethereumjs-block@npm:2.2.2" +"ethereumjs-blockchain@npm:^4.0.3": + version: 4.0.4 + resolution: "ethereumjs-blockchain@npm:4.0.4" dependencies: - async: ^2.0.1 + async: ^2.6.1 + ethashjs: ~0.0.7 + ethereumjs-block: ~2.2.2 ethereumjs-common: ^1.5.0 - ethereumjs-tx: ^2.1.1 - ethereumjs-util: ^5.0.0 - merkle-patricia-tree: ^2.1.2 - checksum: 91f7f60820394e072c9a115da2871a096414644109d2449d4a79b30be67b0080bc848dfa7e2ae7b2ab255de3be4f6736c6cb2b418c29eada794d018cc384e189 + ethereumjs-util: ^6.1.0 + flow-stoplight: ^1.0.0 + level-mem: ^3.0.1 + lru-cache: ^5.1.1 + rlp: ^2.2.2 + semaphore: ^1.1.0 + checksum: efa04b2e2d02ce9c524f246f862b1ca779bbfd9f795cc7a9e471f0d96229de5188f1f6b17e54948f640100116b646ed03242494c23cd66f0f7e8384a4f217ba4 + languageName: node + linkType: hard + +"ethereumjs-common@npm:1.5.0": + version: 1.5.0 + resolution: "ethereumjs-common@npm:1.5.0" + checksum: a30474986a88b8f3ee53f9fb34027528f12d1bc7ecee8b80aa8060a09ccde3b2af4dd24c928287018003e4e206cd4f6311cdd508442d1452d02ec3d8e7a0601e languageName: node linkType: hard -"ethereumjs-common@npm:^1.1.0, ethereumjs-common@npm:^1.5.0": +"ethereumjs-common@npm:^1.1.0, ethereumjs-common@npm:^1.3.2, ethereumjs-common@npm:^1.5.0": version: 1.5.2 resolution: "ethereumjs-common@npm:1.5.2" checksum: 3fc64faced268e0c61da50c5db76d18cfd44325d5706792f32ac8c85c0e800d52db284f042c3bd0623daf59b946176ef7dbea476d1b0252492137fa4549a3349 languageName: node linkType: hard -"ethereumjs-tx@npm:2.1.2, ethereumjs-tx@npm:^2.1.1": +"ethereumjs-tx@npm:2.1.2, ethereumjs-tx@npm:^2.1.1, ethereumjs-tx@npm:^2.1.2": version: 2.1.2 resolution: "ethereumjs-tx@npm:2.1.2" dependencies: @@ -18926,7 +20055,7 @@ __metadata: languageName: node linkType: hard -"ethereumjs-tx@npm:^1.2.0, ethereumjs-tx@npm:^1.2.2, ethereumjs-tx@npm:^1.3.7": +"ethereumjs-tx@npm:^1.1.1, ethereumjs-tx@npm:^1.2.0, ethereumjs-tx@npm:^1.2.2, ethereumjs-tx@npm:^1.3.3, ethereumjs-tx@npm:^1.3.7": version: 1.3.7 resolution: "ethereumjs-tx@npm:1.3.7" dependencies: @@ -18951,7 +20080,22 @@ __metadata: languageName: node linkType: hard -"ethereumjs-util@npm:7.1.5, ethereumjs-util@npm:^7.0.10, ethereumjs-util@npm:^7.0.3, ethereumjs-util@npm:^7.1.0, ethereumjs-util@npm:^7.1.1, ethereumjs-util@npm:^7.1.2, ethereumjs-util@npm:^7.1.4, ethereumjs-util@npm:^7.1.5": +"ethereumjs-util@npm:6.2.1, ethereumjs-util@npm:^6.0.0, ethereumjs-util@npm:^6.1.0, ethereumjs-util@npm:^6.2.0, ethereumjs-util@npm:^6.2.1": + version: 6.2.1 + resolution: "ethereumjs-util@npm:6.2.1" + dependencies: + "@types/bn.js": ^4.11.3 + bn.js: ^4.11.0 + create-hash: ^1.1.2 + elliptic: ^6.5.2 + ethereum-cryptography: ^0.1.3 + ethjs-util: 0.1.6 + rlp: ^2.2.3 + checksum: e3cb4a2c034a2529281fdfc21a2126fe032fdc3038863f5720352daa65ddcc50fc8c67dbedf381a882dc3802e05d979287126d7ecf781504bde1fd8218693bde + languageName: node + linkType: hard + +"ethereumjs-util@npm:7.1.5, ethereumjs-util@npm:^7.0.10, ethereumjs-util@npm:^7.0.2, ethereumjs-util@npm:^7.0.3, ethereumjs-util@npm:^7.1.0, ethereumjs-util@npm:^7.1.1, ethereumjs-util@npm:^7.1.2, ethereumjs-util@npm:^7.1.4, ethereumjs-util@npm:^7.1.5": version: 7.1.5 resolution: "ethereumjs-util@npm:7.1.5" dependencies: @@ -18964,7 +20108,20 @@ __metadata: languageName: node linkType: hard -"ethereumjs-util@npm:^5.0.0, ethereumjs-util@npm:^5.0.1, ethereumjs-util@npm:^5.1.1, ethereumjs-util@npm:^5.1.2, ethereumjs-util@npm:^5.1.5, ethereumjs-util@npm:^5.2.0": +"ethereumjs-util@npm:^4.3.0": + version: 4.5.1 + resolution: "ethereumjs-util@npm:4.5.1" + dependencies: + bn.js: ^4.8.0 + create-hash: ^1.1.2 + elliptic: ^6.5.2 + ethereum-cryptography: ^0.1.3 + rlp: ^2.0.0 + checksum: ee91fbd29634d40cad9adf90f202158324c089bbc10b405d2ef139f4542090e6f76a616d16c601b52d6b5c5d59ddb6c8387cf60cc732884e732dad9a62b8a539 + languageName: node + linkType: hard + +"ethereumjs-util@npm:^5.0.0, ethereumjs-util@npm:^5.0.1, ethereumjs-util@npm:^5.1.1, ethereumjs-util@npm:^5.1.2, ethereumjs-util@npm:^5.1.3, ethereumjs-util@npm:^5.1.5, ethereumjs-util@npm:^5.2.0": version: 5.2.1 resolution: "ethereumjs-util@npm:5.2.1" dependencies: @@ -18979,22 +20136,30 @@ __metadata: languageName: node linkType: hard -"ethereumjs-util@npm:^6.0.0, ethereumjs-util@npm:^6.2.1": - version: 6.2.1 - resolution: "ethereumjs-util@npm:6.2.1" +"ethereumjs-vm@npm:4.2.0": + version: 4.2.0 + resolution: "ethereumjs-vm@npm:4.2.0" dependencies: - "@types/bn.js": ^4.11.3 - bn.js: ^4.11.0 - create-hash: ^1.1.2 - elliptic: ^6.5.2 - ethereum-cryptography: ^0.1.3 - ethjs-util: 0.1.6 - rlp: ^2.2.3 - checksum: e3cb4a2c034a2529281fdfc21a2126fe032fdc3038863f5720352daa65ddcc50fc8c67dbedf381a882dc3802e05d979287126d7ecf781504bde1fd8218693bde + async: ^2.1.2 + async-eventemitter: ^0.2.2 + core-js-pure: ^3.0.1 + ethereumjs-account: ^3.0.0 + ethereumjs-block: ^2.2.2 + ethereumjs-blockchain: ^4.0.3 + ethereumjs-common: ^1.5.0 + ethereumjs-tx: ^2.1.2 + ethereumjs-util: ^6.2.0 + fake-merkle-patricia-tree: ^1.0.1 + functional-red-black-tree: ^1.0.1 + merkle-patricia-tree: ^2.3.2 + rustbn.js: ~0.2.0 + safe-buffer: ^5.1.1 + util.promisify: ^1.0.0 + checksum: ca73c406d55baefacafbdd8cefce80740098e5834096042e93285dc386ee670b4fed2f7846b78e3078fdf41231d04b3f1c40e435e639d072e0529ccb560b797b languageName: node linkType: hard -"ethereumjs-vm@npm:^2.0.2, ethereumjs-vm@npm:^2.3.4, ethereumjs-vm@npm:^2.6.0": +"ethereumjs-vm@npm:^2.0.2, ethereumjs-vm@npm:^2.1.0, ethereumjs-vm@npm:^2.3.4, ethereumjs-vm@npm:^2.6.0": version: 2.6.0 resolution: "ethereumjs-vm@npm:2.6.0" dependencies: @@ -19013,7 +20178,7 @@ __metadata: languageName: node linkType: hard -"ethereumjs-wallet@npm:^0.6.0": +"ethereumjs-wallet@npm:0.6.5, ethereumjs-wallet@npm:^0.6.0": version: 0.6.5 resolution: "ethereumjs-wallet@npm:0.6.5" dependencies: @@ -19058,7 +20223,7 @@ __metadata: languageName: node linkType: hard -"ethers@npm:5, ethers@npm:5.7.2, ethers@npm:^5.*, ethers@npm:^5.0.0, ethers@npm:^5.0.13, ethers@npm:^5.5.3": +"ethers@npm:5, ethers@npm:5.7.2, ethers@npm:^5.*, ethers@npm:^5.0.0, ethers@npm:^5.0.1, ethers@npm:^5.0.13, ethers@npm:^5.0.2, ethers@npm:^5.5.2, ethers@npm:^5.5.3": version: 5.7.2 resolution: "ethers@npm:5.7.2" dependencies: @@ -19912,6 +21077,16 @@ __metadata: languageName: node linkType: hard +"find-replace@npm:^1.0.3": + version: 1.0.3 + resolution: "find-replace@npm:1.0.3" + dependencies: + array-back: ^1.0.4 + test-value: ^2.1.0 + checksum: fd95f44e59bd54ea1c0169480952b339a4642cd62d81236fef7f87146d3bc00a042b17d81f896712e8542e01fe5c84e82ac37b6b77b4e3422abbcf7c13bbacfd + languageName: node + linkType: hard + "find-replace@npm:^3.0.0": version: 3.0.0 resolution: "find-replace@npm:3.0.0" @@ -19983,6 +21158,16 @@ __metadata: languageName: node linkType: hard +"find-yarn-workspace-root@npm:^1.2.1": + version: 1.2.1 + resolution: "find-yarn-workspace-root@npm:1.2.1" + dependencies: + fs-extra: ^4.0.3 + micromatch: ^3.1.4 + checksum: a8f4565fb1ead6122acc0d324fa3257c20f7b0c91b7b266dab9eee7251fb5558fcff5b35dbfd301bfd1cbb91c1cdd1799b28ffa5b9a92efd8c7ded3663652bbe + languageName: node + linkType: hard + "find-yarn-workspace-root@npm:^2.0.0": version: 2.0.0 resolution: "find-yarn-workspace-root@npm:2.0.0" @@ -20043,6 +21228,13 @@ __metadata: languageName: node linkType: hard +"flow-stoplight@npm:^1.0.0": + version: 1.0.0 + resolution: "flow-stoplight@npm:1.0.0" + checksum: 2f1f34629e724afe7de7b6cb7b5f9ef1b37fa5a4b8a10e24b9c1043872777c41f4c7e09994ecfd5bc70138a04966c3153c4e15187a24771f5d5151a325a96a2e + languageName: node + linkType: hard + "fmix@npm:^0.1.0": version: 0.1.0 resolution: "fmix@npm:0.1.0" @@ -20272,7 +21464,7 @@ __metadata: languageName: node linkType: hard -"fs-extra@npm:^4.0.2": +"fs-extra@npm:^4.0.2, fs-extra@npm:^4.0.3": version: 4.0.3 resolution: "fs-extra@npm:4.0.3" dependencies: @@ -20418,6 +21610,49 @@ __metadata: languageName: node linkType: hard +"ganache-core@npm:^2.13.2": + version: 2.13.2 + resolution: "ganache-core@npm:2.13.2" + dependencies: + abstract-leveldown: 3.0.0 + async: 2.6.2 + bip39: 2.5.0 + cachedown: 1.0.0 + clone: 2.1.2 + debug: 3.2.6 + encoding-down: 5.0.4 + eth-sig-util: 3.0.0 + ethereumjs-abi: 0.6.8 + ethereumjs-account: 3.0.0 + ethereumjs-block: 2.2.2 + ethereumjs-common: 1.5.0 + ethereumjs-tx: 2.1.2 + ethereumjs-util: 6.2.1 + ethereumjs-vm: 4.2.0 + ethereumjs-wallet: 0.6.5 + heap: 0.2.6 + keccak: 3.0.1 + level-sublevel: 6.6.4 + levelup: 3.1.1 + lodash: 4.17.20 + lru-cache: 5.1.1 + merkle-patricia-tree: 3.0.0 + patch-package: 6.2.2 + seedrandom: 3.0.1 + source-map-support: 0.5.12 + tmp: 0.1.0 + web3: 1.2.11 + web3-provider-engine: 14.2.1 + websocket: 1.0.32 + dependenciesMeta: + ethereumjs-wallet: + optional: true + web3: + optional: true + checksum: 799b275abd09259c88a4e78c335e807d14cc12d3a1ceb9d7cdeef484cf5fab541847edf9cf209f448190199dbd0796393d308d50e6823565154c17dd0c3a4048 + languageName: node + linkType: hard + "ganache@npm:7.8.0": version: 7.8.0 resolution: "ganache@npm:7.8.0" @@ -20859,6 +22094,13 @@ __metadata: languageName: node linkType: hard +"globals@npm:^9.18.0": + version: 9.18.0 + resolution: "globals@npm:9.18.0" + checksum: e9c066aecfdc5ea6f727344a4246ecc243aaf66ede3bffee10ddc0c73351794c25e727dd046090dcecd821199a63b9de6af299a6e3ba292c8b22f0a80ea32073 + languageName: node + linkType: hard + "globalthis@npm:^1.0.3": version: 1.0.3 resolution: "globalthis@npm:1.0.3" @@ -21482,6 +22724,13 @@ __metadata: languageName: node linkType: hard +"heap@npm:0.2.6": + version: 0.2.6 + resolution: "heap@npm:0.2.6" + checksum: 1291b9b9efb5090d01c6d04a89c91ca6e0e0eb7f3694d8254f7a5effcc5ab9249bc3d16767b276645ffe86d9b2bbd82ed977f8988f55375e9f2a2c80647ebbdc + languageName: node + linkType: hard + "heap@npm:>= 0.2.0": version: 0.2.7 resolution: "heap@npm:0.2.7" @@ -21555,6 +22804,16 @@ __metadata: languageName: node linkType: hard +"home-or-tmp@npm:^2.0.0": + version: 2.0.0 + resolution: "home-or-tmp@npm:2.0.0" + dependencies: + os-homedir: ^1.0.0 + os-tmpdir: ^1.0.1 + checksum: b783c6ffd22f716d82f53e8c781cbe49bc9f4109a89ea86a27951e54c0bd335caf06bd828be2958cd9f4681986df1739558ae786abda6298cdd6d3edc2c362f1 + languageName: node + linkType: hard + "homedir-polyfill@npm:^1.0.1": version: 1.0.3 resolution: "homedir-polyfill@npm:1.0.3" @@ -22094,7 +23353,7 @@ __metadata: languageName: node linkType: hard -"invariant@npm:*, invariant@npm:^2.2.4": +"invariant@npm:*, invariant@npm:^2.2.2, invariant@npm:^2.2.4": version: 2.2.4 resolution: "invariant@npm:2.2.4" dependencies: @@ -22356,6 +23615,17 @@ __metadata: languageName: node linkType: hard +"is-ci@npm:^2.0.0": + version: 2.0.0 + resolution: "is-ci@npm:2.0.0" + dependencies: + ci-info: ^2.0.0 + bin: + is-ci: bin.js + checksum: 77b869057510f3efa439bbb36e9be429d53b3f51abd4776eeea79ab3b221337fe1753d1e50058a9e2c650d38246108beffb15ccfd443929d77748d8c0cc90144 + languageName: node + linkType: hard + "is-core-module@npm:^2.12.0": version: 2.12.1 resolution: "is-core-module@npm:2.12.1" @@ -22469,6 +23739,13 @@ __metadata: languageName: node linkType: hard +"is-finite@npm:^1.0.0": + version: 1.1.0 + resolution: "is-finite@npm:1.1.0" + checksum: 532b97ed3d03e04c6bd203984d9e4ba3c0c390efee492bad5d1d1cd1802a68ab27adbd3ef6382f6312bed6c8bb1bd3e325ea79a8dc8fe080ed7a06f5f97b93e7 + languageName: node + linkType: hard + "is-fn@npm:^1.0.0": version: 1.0.0 resolution: "is-fn@npm:1.0.0" @@ -22791,6 +24068,13 @@ __metadata: languageName: node linkType: hard +"is-url@npm:^1.2.4": + version: 1.2.4 + resolution: "is-url@npm:1.2.4" + checksum: 100e74b3b1feab87a43ef7653736e88d997eb7bd32e71fd3ebc413e58c1cbe56269699c776aaea84244b0567f2a7d68dfaa512a062293ed2f9fdecb394148432 + languageName: node + linkType: hard + "is-utf8@npm:^0.2.0": version: 0.2.1 resolution: "is-utf8@npm:0.2.1" @@ -23711,6 +24995,13 @@ __metadata: languageName: node linkType: hard +"js-tokens@npm:^3.0.2": + version: 3.0.2 + resolution: "js-tokens@npm:3.0.2" + checksum: ff24cf90e6e4ac446eba56e604781c1aaf3bdaf9b13a00596a0ebd972fa3b25dc83c0f0f67289c33252abb4111e0d14e952a5d9ffb61f5c22532d555ebd8d8a9 + languageName: node + linkType: hard + "js-yaml@npm:3.13.1": version: 3.13.1 resolution: "js-yaml@npm:3.13.1" @@ -23805,6 +25096,15 @@ __metadata: languageName: node linkType: hard +"jsesc@npm:^1.3.0": + version: 1.3.0 + resolution: "jsesc@npm:1.3.0" + bin: + jsesc: bin/jsesc + checksum: 9384cc72bf8ef7f2eb75fea64176b8b0c1c5e77604854c72cb4670b7072e112e3baaa69ef134be98cb078834a7812b0bfe676ad441ccd749a59427f5ed2127f1 + languageName: node + linkType: hard + "jsesc@npm:^2.5.1": version: 2.5.2 resolution: "jsesc@npm:2.5.2" @@ -23870,6 +25170,20 @@ __metadata: languageName: node linkType: hard +"json-rpc-engine@npm:^3.4.0, json-rpc-engine@npm:^3.6.0": + version: 3.8.0 + resolution: "json-rpc-engine@npm:3.8.0" + dependencies: + async: ^2.0.1 + babel-preset-env: ^1.7.0 + babelify: ^7.3.0 + json-rpc-error: ^2.0.0 + promise-to-callback: ^1.0.0 + safe-event-emitter: ^1.0.1 + checksum: 4a02ddda196b68717cdcdf9bc8eac91f956b717431daf1f317e016d564bd5b8974e8a66f75fd1f069d63b8e944128020ec7c371f28cf29ac0951d3338b2f667c + languageName: node + linkType: hard + "json-rpc-engine@npm:^5.1.3, json-rpc-engine@npm:^5.3.0": version: 5.4.0 resolution: "json-rpc-engine@npm:5.4.0" @@ -23880,6 +25194,15 @@ __metadata: languageName: node linkType: hard +"json-rpc-error@npm:^2.0.0": + version: 2.0.0 + resolution: "json-rpc-error@npm:2.0.0" + dependencies: + inherits: ^2.0.1 + checksum: bbfb1ff82d0605b4dfd4ac6d093e863a8f623e0e83a098ccab5711a08d2ae09ea603260d4573a524e596701e64733690a5c31901e99daebe05b09053d8702d0c + languageName: node + linkType: hard + "json-rpc-random-id@npm:^1.0.0, json-rpc-random-id@npm:^1.0.1": version: 1.0.1 resolution: "json-rpc-random-id@npm:1.0.1" @@ -23966,6 +25289,15 @@ __metadata: languageName: node linkType: hard +"json5@npm:^0.5.1": + version: 0.5.1 + resolution: "json5@npm:0.5.1" + bin: + json5: lib/cli.js + checksum: 9b85bf06955b23eaa4b7328aa8892e3887e81ca731dd27af04a5f5f1458fbc5e1de57a24442e3272f8a888dd1abe1cb68eb693324035f6b3aeba4fcab7667d62 + languageName: node + linkType: hard + "json5@npm:^1.0.1": version: 1.0.1 resolution: "json5@npm:1.0.1" @@ -24341,6 +25673,17 @@ __metadata: languageName: node linkType: hard +"level-iterator-stream@npm:^2.0.3": + version: 2.0.3 + resolution: "level-iterator-stream@npm:2.0.3" + dependencies: + inherits: ^2.0.1 + readable-stream: ^2.0.5 + xtend: ^4.0.0 + checksum: dd4211798d032a06ebc3e9c5a3a969b003cb15f1fe6398d9c50c87dc8b0bf8b07197cada253fd7f8c4a933f3c86e12bb041df1561c89b749ac4b991d6e68b17f + languageName: node + linkType: hard + "level-iterator-stream@npm:~1.3.0": version: 1.3.1 resolution: "level-iterator-stream@npm:1.3.1" @@ -24417,6 +25760,33 @@ __metadata: languageName: node linkType: hard +"level-post@npm:^1.0.7": + version: 1.0.7 + resolution: "level-post@npm:1.0.7" + dependencies: + ltgt: ^2.1.2 + checksum: 27239cfebe2004036d7ed0ace860d03f829f099de62baf727cce53bd99cb06bfc4a202fa7cb828847fa01c421bab13d9d3e79c9554f5cffff681541dda575218 + languageName: node + linkType: hard + +"level-sublevel@npm:6.6.4": + version: 6.6.4 + resolution: "level-sublevel@npm:6.6.4" + dependencies: + bytewise: ~1.1.0 + level-codec: ^9.0.0 + level-errors: ^2.0.0 + level-iterator-stream: ^2.0.3 + ltgt: ~2.1.1 + pull-defer: ^0.2.2 + pull-level: ^2.0.3 + pull-stream: ^3.6.8 + typewiselite: ~1.0.0 + xtend: ~4.0.0 + checksum: 8370e6fbf67bf08daa23de07699d3d2ccf6a349a28db4025a890d4c07857811808372fdf5029c4afedf24e2ff828be6bb7cd9fd0b676090daba38981b2e75cff + languageName: node + linkType: hard + "level-supports@npm:^2.0.1": version: 2.1.0 resolution: "level-supports@npm:2.1.0" @@ -24525,6 +25895,18 @@ __metadata: languageName: node linkType: hard +"levelup@npm:3.1.1, levelup@npm:^3.0.0": + version: 3.1.1 + resolution: "levelup@npm:3.1.1" + dependencies: + deferred-leveldown: ~4.0.0 + level-errors: ~2.0.0 + level-iterator-stream: ~3.0.0 + xtend: ~4.0.0 + checksum: cddcac2cf5eddcf85ade62efd21f11326cd83559619db6a78696725eac5c5cd16f62d8d49f6594fd3097d9329a1d04847f6d7df23bf4d69f18c16e49afd4a416 + languageName: node + linkType: hard + "levelup@npm:4.4.0, levelup@npm:^4.3.2": version: 4.4.0 resolution: "levelup@npm:4.4.0" @@ -24553,18 +25935,6 @@ __metadata: languageName: node linkType: hard -"levelup@npm:^3.0.0": - version: 3.1.1 - resolution: "levelup@npm:3.1.1" - dependencies: - deferred-leveldown: ~4.0.0 - level-errors: ~2.0.0 - level-iterator-stream: ~3.0.0 - xtend: ~4.0.0 - checksum: cddcac2cf5eddcf85ade62efd21f11326cd83559619db6a78696725eac5c5cd16f62d8d49f6594fd3097d9329a1d04847f6d7df23bf4d69f18c16e49afd4a416 - languageName: node - linkType: hard - "leven@npm:^3.1.0": version: 3.1.0 resolution: "leven@npm:3.1.0" @@ -25035,7 +26405,14 @@ __metadata: languageName: node linkType: hard -"lodash@npm:^4.17.11, lodash@npm:^4.17.12, lodash@npm:^4.17.14, lodash@npm:^4.17.15, lodash@npm:^4.17.19, lodash@npm:^4.17.20, lodash@npm:^4.17.21, lodash@npm:^4.2.1": +"lodash@npm:4.17.20": + version: 4.17.20 + resolution: "lodash@npm:4.17.20" + checksum: b31afa09739b7292a88ec49ffdb2fcaeb41f690def010f7a067eeedffece32da6b6847bfe4d38a77e6f41778b9b2bca75eeab91209936518173271f0b69376ea + languageName: node + linkType: hard + +"lodash@npm:^4.17.11, lodash@npm:^4.17.12, lodash@npm:^4.17.14, lodash@npm:^4.17.15, lodash@npm:^4.17.19, lodash@npm:^4.17.20, lodash@npm:^4.17.21, lodash@npm:^4.17.4, lodash@npm:^4.2.1": version: 4.17.21 resolution: "lodash@npm:4.17.21" checksum: eb835a2e51d381e561e508ce932ea50a8e5a68f4ebdd771ea240d3048244a8d13658acbd502cd4829768c56f2e16bdd4340b9ea141297d472517b83868e677f7 @@ -25124,6 +26501,20 @@ __metadata: languageName: node linkType: hard +"looper@npm:^2.0.0": + version: 2.0.0 + resolution: "looper@npm:2.0.0" + checksum: ee5124d54c97cd9e778e602e297ed37dd6405b7c36830f90bb1aaa6adb8d64f2a228aa341459e6bf2db9a8d7dc9eb8c16ec9c6bffeab1c47f91efe213858ce36 + languageName: node + linkType: hard + +"looper@npm:^3.0.0": + version: 3.0.0 + resolution: "looper@npm:3.0.0" + checksum: 2ec29b4161e95d33f2257867b0b9ab7f2fef5425582362c966f8f9041a2a6032466b8be159af99323655aca9e6fe1c9da086cf208f6346bd97c9f83ab77ccce0 + languageName: node + linkType: hard + "loose-envify@npm:^1.0.0, loose-envify@npm:^1.1.0, loose-envify@npm:^1.3.1, loose-envify@npm:^1.4.0": version: 1.4.0 resolution: "loose-envify@npm:1.4.0" @@ -25200,6 +26591,15 @@ __metadata: languageName: node linkType: hard +"lru-cache@npm:5.1.1, lru-cache@npm:^5.1.1": + version: 5.1.1 + resolution: "lru-cache@npm:5.1.1" + dependencies: + yallist: ^3.0.2 + checksum: c154ae1cbb0c2206d1501a0e94df349653c92c8cbb25236d7e85190bcaf4567a03ac6eb43166fabfa36fd35623694da7233e88d9601fbf411a9a481d85dbd2cb + languageName: node + linkType: hard + "lru-cache@npm:7.10.1 - 7.13.1": version: 7.13.1 resolution: "lru-cache@npm:7.13.1" @@ -25207,12 +26607,12 @@ __metadata: languageName: node linkType: hard -"lru-cache@npm:^5.1.1": - version: 5.1.1 - resolution: "lru-cache@npm:5.1.1" +"lru-cache@npm:^3.2.0": + version: 3.2.0 + resolution: "lru-cache@npm:3.2.0" dependencies: - yallist: ^3.0.2 - checksum: c154ae1cbb0c2206d1501a0e94df349653c92c8cbb25236d7e85190bcaf4567a03ac6eb43166fabfa36fd35623694da7233e88d9601fbf411a9a481d85dbd2cb + pseudomap: ^1.0.1 + checksum: 8e5fb3d7a83401165b8dc9fe16d74828df5754aaeda1061e4f2ea1d0e984b9071a6487f1c3f6f034f935429629f94366abbfb753827ab2977a56b3f5c276e736 languageName: node linkType: hard @@ -25262,6 +26662,13 @@ __metadata: languageName: node linkType: hard +"ltgt@npm:~2.1.1": + version: 2.1.3 + resolution: "ltgt@npm:2.1.3" + checksum: b09281f6aeccb34eda52588d21f9116f6e5b7ae1c79f6180bba06edcdcba50de9c6d199be7f817a7ae59819064e3ca7d066fe0bcc67e2458006e4e45cd05cb11 + languageName: node + linkType: hard + "magic-string@npm:^0.27.0": version: 0.27.0 resolution: "magic-string@npm:0.27.0" @@ -25582,6 +26989,21 @@ __metadata: languageName: node linkType: hard +"merkle-patricia-tree@npm:3.0.0": + version: 3.0.0 + resolution: "merkle-patricia-tree@npm:3.0.0" + dependencies: + async: ^2.6.1 + ethereumjs-util: ^5.2.0 + level-mem: ^3.0.1 + level-ws: ^1.0.0 + readable-stream: ^3.0.6 + rlp: ^2.0.0 + semaphore: ">=1.0.1" + checksum: a500f00e7954eea132309310c48ee2635e9a190e0a775811236a0dc375465ff7e01b230ac0ee213ca13bb995399066719eedb4218e0f47596e9cab79cebc575e + languageName: node + linkType: hard + "merkle-patricia-tree@npm:^2.*, merkle-patricia-tree@npm:^2.1.2, merkle-patricia-tree@npm:^2.3.2": version: 2.3.2 resolution: "merkle-patricia-tree@npm:2.3.2" @@ -25988,7 +27410,7 @@ __metadata: languageName: node linkType: hard -"micromatch@npm:^3.1.10": +"micromatch@npm:^3.1.10, micromatch@npm:^3.1.4": version: 3.1.10 resolution: "micromatch@npm:3.1.10" dependencies: @@ -27477,7 +28899,7 @@ __metadata: languageName: node linkType: hard -"object-assign@npm:^4, object-assign@npm:^4.1.0, object-assign@npm:^4.1.1": +"object-assign@npm:^4, object-assign@npm:^4.0.0, object-assign@npm:^4.1.0, object-assign@npm:^4.1.1": version: 4.1.1 resolution: "object-assign@npm:4.1.1" checksum: fcc6e4ea8c7fe48abfbb552578b1c53e0d194086e2e6bbbf59e0a536381a292f39943c6e9628af05b5528aa5e3318bb30d6b2e53cadaf5b8fe9e12c4b69af23f @@ -27617,7 +29039,7 @@ __metadata: languageName: node linkType: hard -"object.getownpropertydescriptors@npm:^2.0.3": +"object.getownpropertydescriptors@npm:^2.0.3, object.getownpropertydescriptors@npm:^2.1.6": version: 2.1.6 resolution: "object.getownpropertydescriptors@npm:2.1.6" dependencies: @@ -27702,6 +29124,15 @@ __metadata: languageName: node linkType: hard +"oboe@npm:2.1.4": + version: 2.1.4 + resolution: "oboe@npm:2.1.4" + dependencies: + http-https: ^1.0.0 + checksum: b9172453fba362aec86c45d7bcb4f512302bb23ef34c7c9c498974dc4e7ec0e298931bac5a093445fd946d5604e5dd16563e2d2ae922101ac4b47be2e18e30cc + languageName: node + linkType: hard + "oboe@npm:2.1.5": version: 2.1.5 resolution: "oboe@npm:2.1.5" @@ -27906,6 +29337,13 @@ __metadata: languageName: node linkType: hard +"os-homedir@npm:^1.0.0": + version: 1.0.2 + resolution: "os-homedir@npm:1.0.2" + checksum: af609f5a7ab72de2f6ca9be6d6b91a599777afc122ac5cad47e126c1f67c176fe9b52516b9eeca1ff6ca0ab8587fe66208bc85e40a3940125f03cdb91408e9d2 + languageName: node + linkType: hard + "os-locale@npm:^1.4.0": version: 1.4.0 resolution: "os-locale@npm:1.4.0" @@ -27915,7 +29353,7 @@ __metadata: languageName: node linkType: hard -"os-tmpdir@npm:^1.0.0, os-tmpdir@npm:~1.0.2": +"os-tmpdir@npm:^1.0.0, os-tmpdir@npm:^1.0.1, os-tmpdir@npm:~1.0.2": version: 1.0.2 resolution: "os-tmpdir@npm:1.0.2" checksum: 5666560f7b9f10182548bf7013883265be33620b1c1b4a4d405c25be2636f970c5488ff3e6c48de75b55d02bde037249fe5dbfbb4c0fb7714953d56aed062e6d @@ -28230,6 +29668,52 @@ __metadata: languageName: node linkType: hard +"patch-package@npm:6.2.2": + version: 6.2.2 + resolution: "patch-package@npm:6.2.2" + dependencies: + "@yarnpkg/lockfile": ^1.1.0 + chalk: ^2.4.2 + cross-spawn: ^6.0.5 + find-yarn-workspace-root: ^1.2.1 + fs-extra: ^7.0.1 + is-ci: ^2.0.0 + klaw-sync: ^6.0.0 + minimist: ^1.2.0 + rimraf: ^2.6.3 + semver: ^5.6.0 + slash: ^2.0.0 + tmp: ^0.0.33 + bin: + patch-package: index.js + checksum: 5e2f49457b0dc56b5ce0a9d23e281e062e9f225d87a832540f02ffed29ffa7f298b1877daf13c16500ef8a759109c975e3d28d6bd63b0d953f349177abee1767 + languageName: node + linkType: hard + +"patch-package@npm:^6.2.2": + version: 6.5.1 + resolution: "patch-package@npm:6.5.1" + dependencies: + "@yarnpkg/lockfile": ^1.1.0 + chalk: ^4.1.2 + cross-spawn: ^6.0.5 + find-yarn-workspace-root: ^2.0.0 + fs-extra: ^9.0.0 + is-ci: ^2.0.0 + klaw-sync: ^6.0.0 + minimist: ^1.2.6 + open: ^7.4.2 + rimraf: ^2.6.3 + semver: ^5.6.0 + slash: ^2.0.0 + tmp: ^0.0.33 + yaml: ^1.10.2 + bin: + patch-package: index.js + checksum: 8530ffa30f11136b527c6eddf6da48fa12856ee510a47edb1f9cdf8a025636adb82968f5fae778b5e04ce8c87915ebdf5911422b54add59a5a42e372a8f30eb2 + languageName: node + linkType: hard + "patch-package@npm:latest": version: 7.0.0 resolution: "patch-package@npm:7.0.0" @@ -28487,7 +29971,7 @@ __metadata: languageName: node linkType: hard -"pify@npm:^2.0.0": +"pify@npm:^2.0.0, pify@npm:^2.3.0": version: 2.3.0 resolution: "pify@npm:2.3.0" checksum: 9503aaeaf4577acc58642ad1d25c45c6d90288596238fb68f82811c08104c800e5a7870398e9f015d82b44ecbcbef3dc3d4251a1cbb582f6e5959fe09884b2ba @@ -28723,6 +30207,13 @@ __metadata: languageName: node linkType: hard +"postinstall-postinstall@npm:^2.1.0": + version: 2.1.0 + resolution: "postinstall-postinstall@npm:2.1.0" + checksum: e1d34252cf8d2c5641c7d2db7426ec96e3d7a975f01c174c68f09ef5b8327bc8d5a9aa2001a45e693db2cdbf69577094d3fe6597b564ad2d2202b65fba76134b + languageName: node + linkType: hard + "pouchdb-abstract-mapreduce@npm:7.3.1": version: 7.3.1 resolution: "pouchdb-abstract-mapreduce@npm:7.3.1" @@ -29067,21 +30558,21 @@ __metadata: languageName: node linkType: hard -"prettier@npm:^2.3.1, prettier@npm:^2.5.1, prettier@npm:^2.7.1": - version: 2.7.1 - resolution: "prettier@npm:2.7.1" +"prettier@npm:^2.1.2, prettier@npm:^2.4.1, prettier@npm:^2.8.8": + version: 2.8.8 + resolution: "prettier@npm:2.8.8" bin: prettier: bin-prettier.js - checksum: 55a4409182260866ab31284d929b3cb961e5fdb91fe0d2e099dac92eaecec890f36e524b4c19e6ceae839c99c6d7195817579cdffc8e2c80da0cb794463a748b + checksum: b49e409431bf129dd89238d64299ba80717b57ff5a6d1c1a8b1a28b590d998a34e083fa13573bc732bb8d2305becb4c9a4407f8486c81fa7d55100eb08263cf8 languageName: node linkType: hard -"prettier@npm:^2.4.1, prettier@npm:^2.8.8": - version: 2.8.8 - resolution: "prettier@npm:2.8.8" +"prettier@npm:^2.3.1, prettier@npm:^2.5.1, prettier@npm:^2.7.1": + version: 2.7.1 + resolution: "prettier@npm:2.7.1" bin: prettier: bin-prettier.js - checksum: b49e409431bf129dd89238d64299ba80717b57ff5a6d1c1a8b1a28b590d998a34e083fa13573bc732bb8d2305becb4c9a4407f8486c81fa7d55100eb08263cf8 + checksum: 55a4409182260866ab31284d929b3cb961e5fdb91fe0d2e099dac92eaecec890f36e524b4c19e6ceae839c99c6d7195817579cdffc8e2c80da0cb794463a748b languageName: node linkType: hard @@ -29129,6 +30620,13 @@ __metadata: languageName: node linkType: hard +"private@npm:^0.1.6, private@npm:^0.1.8": + version: 0.1.8 + resolution: "private@npm:0.1.8" + checksum: a00abd713d25389f6de7294f0e7879b8a5d09a9ec5fd81cc2f21b29d4f9a80ec53bc4222927d3a281d4aadd4cd373d9a28726fca3935921950dc75fd71d1fdbb + languageName: node + linkType: hard + "process-nextick-args@npm:~2.0.0": version: 2.0.1 resolution: "process-nextick-args@npm:2.0.1" @@ -29318,6 +30816,13 @@ __metadata: languageName: node linkType: hard +"pseudomap@npm:^1.0.1": + version: 1.0.2 + resolution: "pseudomap@npm:1.0.2" + checksum: 856c0aae0ff2ad60881168334448e898ad7a0e45fe7386d114b150084254c01e200c957cf378378025df4e052c7890c5bd933939b0e0d2ecfcc1dc2f0b2991f5 + languageName: node + linkType: hard + "psl@npm:^1.1.28, psl@npm:^1.1.33": version: 1.9.0 resolution: "psl@npm:1.9.0" @@ -29339,6 +30844,68 @@ __metadata: languageName: node linkType: hard +"pull-cat@npm:^1.1.9": + version: 1.1.11 + resolution: "pull-cat@npm:1.1.11" + checksum: 785173d94732ba5e6e65f27ee128542522aeb87519c5d72aa9b8bc510f6c4f67b91fcfd565782a20aafc116e57354f2dd0fa8fd039b45a61b8da89b0253a7440 + languageName: node + linkType: hard + +"pull-defer@npm:^0.2.2": + version: 0.2.3 + resolution: "pull-defer@npm:0.2.3" + checksum: 4ea99ed64a2d79167e87293aba5088cde91f210a319c690a65aa6704d829be33b76cecc732f8d4ed3eee47e7eb09a6f77042897ea6414862bacbd722ce182d66 + languageName: node + linkType: hard + +"pull-level@npm:^2.0.3": + version: 2.0.4 + resolution: "pull-level@npm:2.0.4" + dependencies: + level-post: ^1.0.7 + pull-cat: ^1.1.9 + pull-live: ^1.0.1 + pull-pushable: ^2.0.0 + pull-stream: ^3.4.0 + pull-window: ^2.1.4 + stream-to-pull-stream: ^1.7.1 + checksum: f4e0573b3ff3f3659eb50ac86b505aee12d5f4c1d8bafc3bf6fd67d173b3b39a3fe5161d8bfa5eba8a0c5873fbda75f3b160276cfa678d5edd517dcd3349ecc2 + languageName: node + linkType: hard + +"pull-live@npm:^1.0.1": + version: 1.0.1 + resolution: "pull-live@npm:1.0.1" + dependencies: + pull-cat: ^1.1.9 + pull-stream: ^3.4.0 + checksum: e4328771e811aec1e03996d1070ec8fecb2560cc48b96814cd9f4aebd870a710903f8693e423765d3d65d8021b3b9ccc38c8660baef3df45e217c9b1bbc5581a + languageName: node + linkType: hard + +"pull-pushable@npm:^2.0.0": + version: 2.2.0 + resolution: "pull-pushable@npm:2.2.0" + checksum: 1c88ef55f6f14799ae5cf060415d089d15452ef865d874f075c155f8224c321371cb7f04a10b3fba263b6f128158c78253efd18bcb54afbb99f9cae846f883a6 + languageName: node + linkType: hard + +"pull-stream@npm:^3.2.3, pull-stream@npm:^3.4.0, pull-stream@npm:^3.6.8": + version: 3.7.0 + resolution: "pull-stream@npm:3.7.0" + checksum: df0b864fd92bb61e84d02764a064bf023188c1c917d854029a5b8e543e163f9aaf1a9553067d4fdf5e248b0d96338e0a23fac9257e86cf740e7d03e05b7a77a3 + languageName: node + linkType: hard + +"pull-window@npm:^2.1.4": + version: 2.1.4 + resolution: "pull-window@npm:2.1.4" + dependencies: + looper: ^2.0.0 + checksum: e006995108a80c81eea93dfaadf68285dc5b9b3cbaf654da39731ca3f308376f15b0546c61730cd0fa38303e273a1845c6d65f0fda35ed9c66252a65e446df18 + languageName: node + linkType: hard + "pump@npm:^1.0.0": version: 1.0.3 resolution: "pump@npm:1.0.3" @@ -30752,7 +32319,7 @@ __metadata: languageName: node linkType: hard -"readable-stream@npm:^2.0.2, readable-stream@npm:^2.0.6, readable-stream@npm:^2.2.8, readable-stream@npm:^2.3.6, readable-stream@npm:~2.3.6": +"readable-stream@npm:^2.0.2, readable-stream@npm:^2.0.5, readable-stream@npm:^2.0.6, readable-stream@npm:^2.2.8, readable-stream@npm:^2.3.6, readable-stream@npm:~2.3.6": version: 2.3.8 resolution: "readable-stream@npm:2.3.8" dependencies: @@ -30945,7 +32512,7 @@ __metadata: languageName: node linkType: hard -"regenerate@npm:^1.4.2": +"regenerate@npm:^1.2.1, regenerate@npm:^1.4.2": version: 1.4.2 resolution: "regenerate@npm:1.4.2" checksum: 3317a09b2f802da8db09aa276e469b57a6c0dd818347e05b8862959c6193408242f150db5de83c12c3fa99091ad95fb42a6db2c3329bfaa12a0ea4cbbeb30cb0 @@ -30973,6 +32540,17 @@ __metadata: languageName: node linkType: hard +"regenerator-transform@npm:^0.10.0": + version: 0.10.1 + resolution: "regenerator-transform@npm:0.10.1" + dependencies: + babel-runtime: ^6.18.0 + babel-types: ^6.19.0 + private: ^0.1.6 + checksum: bd366a3b0fa0d0975c48fb9eff250363a9ab28c25b472ecdc397bb19a836746640a30d8f641718a895f9178564bd8a01a0179a9c8e5813f76fc29e62a115d9d7 + languageName: node + linkType: hard + "regenerator-transform@npm:^0.15.1": version: 0.15.1 resolution: "regenerator-transform@npm:0.15.1" @@ -31021,6 +32599,17 @@ __metadata: languageName: node linkType: hard +"regexpu-core@npm:^2.0.0": + version: 2.0.0 + resolution: "regexpu-core@npm:2.0.0" + dependencies: + regenerate: ^1.2.1 + regjsgen: ^0.2.0 + regjsparser: ^0.1.4 + checksum: 14a78eb4608fa991ded6a1433ee6a570f95a4cfb7fe312145a44d6ecbb3dc8c707016a099494c741aa0ac75a1329b40814d30ff134c0d67679c80187029c7d2d + languageName: node + linkType: hard + "regexpu-core@npm:^5.3.1": version: 5.3.2 resolution: "regexpu-core@npm:5.3.2" @@ -31035,6 +32624,24 @@ __metadata: languageName: node linkType: hard +"regjsgen@npm:^0.2.0": + version: 0.2.0 + resolution: "regjsgen@npm:0.2.0" + checksum: 1f3ae570151e2c29193cdc5a5890c0b83cd8c5029ed69315b0ea303bc2644f9ab5d536d2288fd9b70293fd351d7dd7fc1fc99ebe24554015c894dbce883bcf2b + languageName: node + linkType: hard + +"regjsparser@npm:^0.1.4": + version: 0.1.5 + resolution: "regjsparser@npm:0.1.5" + dependencies: + jsesc: ~0.5.0 + bin: + regjsparser: bin/parser + checksum: 1feba2f3f2d4f1ef9f5f4e0f20c827cf866d4f65c51502eb64db4d4dd9c656f8c70f6c79537c892bf0fc9592c96f732519f7d8ad4a82f3b622756118ac737970 + languageName: node + linkType: hard + "regjsparser@npm:^0.9.1": version: 0.9.1 resolution: "regjsparser@npm:0.9.1" @@ -31067,6 +32674,15 @@ __metadata: languageName: node linkType: hard +"repeating@npm:^2.0.0": + version: 2.0.1 + resolution: "repeating@npm:2.0.1" + dependencies: + is-finite: ^1.0.0 + checksum: d2db0b69c5cb0c14dd750036e0abcd6b3c3f7b2da3ee179786b755cf737ca15fa0fff417ca72de33d6966056f4695440e680a352401fc02c95ade59899afbdd0 + languageName: node + linkType: hard + "req-cwd@npm:^2.0.0": version: 2.0.0 resolution: "req-cwd@npm:2.0.0" @@ -31288,7 +32904,7 @@ __metadata: languageName: node linkType: hard -"resolve@npm:^1.1.4, resolve@npm:^1.17.0, resolve@npm:^1.4.0, resolve@npm:~1.22.1": +"resolve@npm:^1.1.4, resolve@npm:^1.17.0, resolve@npm:^1.4.0, resolve@npm:^1.8.1, resolve@npm:~1.22.1": version: 1.22.3 resolution: "resolve@npm:1.22.3" dependencies: @@ -31343,7 +32959,7 @@ __metadata: languageName: node linkType: hard -"resolve@patch:resolve@^1.1.4#~builtin, resolve@patch:resolve@^1.17.0#~builtin, resolve@patch:resolve@^1.4.0#~builtin, resolve@patch:resolve@~1.22.1#~builtin": +"resolve@patch:resolve@^1.1.4#~builtin, resolve@patch:resolve@^1.17.0#~builtin, resolve@patch:resolve@^1.4.0#~builtin, resolve@patch:resolve@^1.8.1#~builtin, resolve@patch:resolve@~1.22.1#~builtin": version: 1.22.3 resolution: "resolve@patch:resolve@npm%3A1.22.3#~builtin::version=1.22.3&hash=c3c19d" dependencies: @@ -31537,7 +33153,7 @@ __metadata: languageName: node linkType: hard -"rlp@npm:^2.0.0, rlp@npm:^2.2.3, rlp@npm:^2.2.4": +"rlp@npm:^2.0.0, rlp@npm:^2.2.1, rlp@npm:^2.2.2, rlp@npm:^2.2.3, rlp@npm:^2.2.4": version: 2.2.7 resolution: "rlp@npm:2.2.7" dependencies: @@ -31869,6 +33485,13 @@ __metadata: languageName: node linkType: hard +"seedrandom@npm:3.0.1": + version: 3.0.1 + resolution: "seedrandom@npm:3.0.1" + checksum: a8f5bd0e918c4d4b59afd6f5dbd28f5ab8d5f118ee59892c3712f581de51574ac6622aa38fa2d03476b661f8407e98d6ff32af3d7cfdb02c90d046e7f5f91952 + languageName: node + linkType: hard + "seedrandom@npm:3.0.5": version: 3.0.5 resolution: "seedrandom@npm:3.0.5" @@ -31876,7 +33499,7 @@ __metadata: languageName: node linkType: hard -"semaphore@npm:>=1.0.1, semaphore@npm:^1.0.3": +"semaphore@npm:>=1.0.1, semaphore@npm:^1.0.3, semaphore@npm:^1.1.0": version: 1.1.0 resolution: "semaphore@npm:1.1.0" checksum: d2445d232ad9959048d4748ef54eb01bc7b60436be2b42fb7de20c4cffacf70eafeeecd3772c1baf408cfdce3805fa6618a4389590335671f18cde54ef3cfae4 @@ -32291,6 +33914,13 @@ __metadata: languageName: node linkType: hard +"slash@npm:^1.0.0": + version: 1.0.0 + resolution: "slash@npm:1.0.0" + checksum: 4b6e21b1fba6184a7e2efb1dd173f692d8a845584c1bbf9dc818ff86f5a52fc91b413008223d17cc684604ee8bb9263a420b1182027ad9762e35388434918860 + languageName: node + linkType: hard + "slash@npm:^2.0.0": version: 2.0.0 resolution: "slash@npm:2.0.0" @@ -32511,6 +34141,24 @@ __metadata: languageName: node linkType: hard +"solc@npm:^0.6.3": + version: 0.6.12 + resolution: "solc@npm:0.6.12" + dependencies: + command-exists: ^1.2.8 + commander: 3.0.2 + fs-extra: ^0.30.0 + js-sha3: 0.8.0 + memorystream: ^0.3.1 + require-from-string: ^2.0.0 + semver: ^5.5.0 + tmp: 0.0.33 + bin: + solcjs: solcjs + checksum: 1e2bf927f3ef4f3b195b7619ff64f715916d94dc59091a8a710e47bdd4b18e0bd92b55ea43a04ce7fabce9ad7a3e4e73ccaf127a50ebbf963a9de9046576e3b6 + languageName: node + linkType: hard + "solhint-plugin-prettier@npm:^0.0.5": version: 0.0.5 resolution: "solhint-plugin-prettier@npm:0.0.5" @@ -32605,6 +34253,16 @@ __metadata: languageName: node linkType: hard +"source-map-support@npm:0.5.12": + version: 0.5.12 + resolution: "source-map-support@npm:0.5.12" + dependencies: + buffer-from: ^1.0.0 + source-map: ^0.6.0 + checksum: abf93e6201f54bd5713d6f6d5aa32b3752d750ce3c68044733295622ea0c346177505a615e87c073a1e0ad9b1d17b87a58f81152a31d6459658e4e9c17132db6 + languageName: node + linkType: hard + "source-map-support@npm:0.5.13": version: 0.5.13 resolution: "source-map-support@npm:0.5.13" @@ -32615,6 +34273,15 @@ __metadata: languageName: node linkType: hard +"source-map-support@npm:^0.4.15": + version: 0.4.18 + resolution: "source-map-support@npm:0.4.18" + dependencies: + source-map: ^0.5.6 + checksum: 669aa7e992fec586fac0ba9a8dea8ce81b7328f92806335f018ffac5709afb2920e3870b4e56c68164282607229f04b8bbcf5d0e5c845eb1b5119b092e7585c0 + languageName: node + linkType: hard + "source-map-support@npm:^0.5.13, source-map-support@npm:^0.5.16, source-map-support@npm:^0.5.19, source-map-support@npm:^0.5.20, source-map-support@npm:~0.5.20": version: 0.5.21 resolution: "source-map-support@npm:0.5.21" @@ -32939,6 +34606,16 @@ __metadata: languageName: node linkType: hard +"stream-to-pull-stream@npm:^1.7.1": + version: 1.7.3 + resolution: "stream-to-pull-stream@npm:1.7.3" + dependencies: + looper: ^3.0.0 + pull-stream: ^3.2.3 + checksum: 2b878e3b3d5f435802866bfec8897361b9de4ce69f77669da1103cfc45f54833e7c183922468f30c046d375a1642f5a4801a808a8da0d3927c5de41d42a59bc0 + languageName: node + linkType: hard + "stream@npm:^0.0.2": version: 0.0.2 resolution: "stream@npm:0.0.2" @@ -33615,7 +35292,7 @@ __metadata: languageName: node linkType: hard -"tape@npm:^4.4.0": +"tape@npm:^4.4.0, tape@npm:^4.6.3": version: 4.16.2 resolution: "tape@npm:4.16.2" dependencies: @@ -33740,6 +35417,16 @@ __metadata: languageName: node linkType: hard +"test-value@npm:^2.1.0": + version: 2.1.0 + resolution: "test-value@npm:2.1.0" + dependencies: + array-back: ^1.0.3 + typical: ^2.6.0 + checksum: ce41ef4100c9ac84630e78d1ca06706714587faf255e44296ace1fc7bf5b888c160b8c0229d31467252a3b2b57197965194391f6ee0c54f33e0b8e3af3a33a0c + languageName: node + linkType: hard + "testrpc@npm:0.0.1": version: 0.0.1 resolution: "testrpc@npm:0.0.1" @@ -33970,6 +35657,15 @@ __metadata: languageName: node linkType: hard +"tmp@npm:0.1.0": + version: 0.1.0 + resolution: "tmp@npm:0.1.0" + dependencies: + rimraf: ^2.6.3 + checksum: 6bab8431de9d245d4264bd8cd6bb216f9d22f179f935dada92a11d1315572c8eb7c3334201e00594b4708608bd536fad3a63bfb037e7804d827d66aa53a1afcd + languageName: node + linkType: hard + "tmp@npm:^0.2.0": version: 0.2.1 resolution: "tmp@npm:0.2.1" @@ -34000,6 +35696,13 @@ __metadata: languageName: node linkType: hard +"to-fast-properties@npm:^1.0.3": + version: 1.0.3 + resolution: "to-fast-properties@npm:1.0.3" + checksum: bd0abb58c4722851df63419de3f6d901d5118f0440d3f71293ed776dd363f2657edaaf2dc470e3f6b7b48eb84aa411193b60db8a4a552adac30de9516c5cc580 + languageName: node + linkType: hard + "to-fast-properties@npm:^2.0.0": version: 2.0.0 resolution: "to-fast-properties@npm:2.0.0" @@ -34129,6 +35832,13 @@ __metadata: languageName: node linkType: hard +"trim-right@npm:^1.0.1": + version: 1.0.1 + resolution: "trim-right@npm:1.0.1" + checksum: 9120af534e006a7424a4f9358710e6e707887b6ccf7ea69e50d6ac6464db1fe22268400def01752f09769025d480395159778153fb98d4a2f6f40d4cf5d4f3b6 + languageName: node + linkType: hard + "truffle-flattener@npm:^1.4.4": version: 1.6.0 resolution: "truffle-flattener@npm:1.6.0" @@ -34231,6 +35941,22 @@ __metadata: languageName: node linkType: hard +"ts-essentials@npm:^1.0.0": + version: 1.0.4 + resolution: "ts-essentials@npm:1.0.4" + checksum: 2e19bbe51203707ca732dcc6c3f238b2cf22bb9213d26ae0246c02325fb3e5f17c32505ac79c1bd538b7951a798155b07422e263a95cb295070a48233e45a1b5 + languageName: node + linkType: hard + +"ts-essentials@npm:^6.0.3": + version: 6.0.7 + resolution: "ts-essentials@npm:6.0.7" + peerDependencies: + typescript: ">=3.7.0" + checksum: b47a1793df9ea997d50d2cc9155433952b189cfca0c534a6f3f3dce6aa782a37574d2179dee6d55ed918835aa17addda49619ff2bd2eb3e60e331db3ce30a79b + languageName: node + linkType: hard + "ts-essentials@npm:^7.0.1": version: 7.0.3 resolution: "ts-essentials@npm:7.0.3" @@ -34240,6 +35966,25 @@ __metadata: languageName: node linkType: hard +"ts-generator@npm:^0.1.1": + version: 0.1.1 + resolution: "ts-generator@npm:0.1.1" + dependencies: + "@types/mkdirp": ^0.5.2 + "@types/prettier": ^2.1.1 + "@types/resolve": ^0.0.8 + chalk: ^2.4.1 + glob: ^7.1.2 + mkdirp: ^0.5.1 + prettier: ^2.1.2 + resolve: ^1.8.1 + ts-essentials: ^1.0.0 + bin: + ts-generator: dist/cli/run.js + checksum: 3add2e76afd7a4d9d9aee1ff26477ee4e8b4cc740b35787f9ea780c11aefc88e6c7833837eacc12b944c1883680639dc9cc47fe173eff95c62112f3a41132146 + languageName: node + linkType: hard + "ts-invariant@npm:^0.10.3": version: 0.10.3 resolution: "ts-invariant@npm:0.10.3" @@ -34441,7 +36186,7 @@ __metadata: languageName: node linkType: hard -"tweetnacl-util@npm:^0.15.1": +"tweetnacl-util@npm:^0.15.0, tweetnacl-util@npm:^0.15.1": version: 0.15.1 resolution: "tweetnacl-util@npm:0.15.1" checksum: ae6aa8a52cdd21a95103a4cc10657d6a2040b36c7a6da7b9d3ab811c6750a2d5db77e8c36969e75fdee11f511aa2b91c552496c6e8e989b6e490e54aca2864fc @@ -34455,7 +36200,7 @@ __metadata: languageName: node linkType: hard -"tweetnacl@npm:^1.0.3": +"tweetnacl@npm:^1.0.0, tweetnacl@npm:^1.0.3": version: 1.0.3 resolution: "tweetnacl@npm:1.0.3" checksum: e4a57cac188f0c53f24c7a33279e223618a2bfb5fea426231991652a13247bea06b081fd745d71291fcae0f4428d29beba1b984b1f1ce6f66b06a6d1ab90645c @@ -34554,6 +36299,23 @@ __metadata: languageName: node linkType: hard +"typechain@npm:^3.0.0": + version: 3.0.0 + resolution: "typechain@npm:3.0.0" + dependencies: + command-line-args: ^4.0.7 + debug: ^4.1.1 + fs-extra: ^7.0.0 + js-sha3: ^0.8.0 + lodash: ^4.17.15 + ts-essentials: ^6.0.3 + ts-generator: ^0.1.1 + bin: + typechain: ./dist/cli/cli.js + checksum: a38aff5e89c41e20e2c3a1f7b5f04666dbc94b5592eba70ba7d1e0aeb49089d22ed3d35e55a0b0d1f0bfdcea9818157fa4ee3854ef818f46f6aa899520fe7c25 + languageName: node + linkType: hard + "typechain@npm:^8.1.0": version: 8.2.0 resolution: "typechain@npm:8.2.0" @@ -34679,6 +36441,36 @@ __metadata: languageName: node linkType: hard +"typewise-core@npm:^1.2, typewise-core@npm:^1.2.0": + version: 1.2.0 + resolution: "typewise-core@npm:1.2.0" + checksum: c21e83544546d1aba2f17377c25ae0eb571c2153b2e3705932515bef103dbe43e05d2286f238ad139341b1000da40583115a44cb5e69a2ef408572b13dab844b + languageName: node + linkType: hard + +"typewise@npm:^1.0.3": + version: 1.0.3 + resolution: "typewise@npm:1.0.3" + dependencies: + typewise-core: ^1.2.0 + checksum: eb3452b1387df8bf8e3b620720d240425a50ce402d7c064c21ac4b5d88c551ee4d1f26cd649b8a17a6d06f7a3675733de841723f8e06bb3edabfeacc4924af4a + languageName: node + linkType: hard + +"typewiselite@npm:~1.0.0": + version: 1.0.0 + resolution: "typewiselite@npm:1.0.0" + checksum: 2e13a652c041680e9e37501129715f97c2ff2b8f52b5e82acd9355c070ca7c126633ff96d2ad03945254c271c0d1cf9f4956090c93ad750717e00d100cbd0c87 + languageName: node + linkType: hard + +"typical@npm:^2.6.0, typical@npm:^2.6.1": + version: 2.6.1 + resolution: "typical@npm:2.6.1" + checksum: 6af04fefe50d90d3471f058b2cdc0f49b7436bdd605cd00acea7965926ff388a5a7d692ef144f45fccee6f8e896c065702ecc44b69057e2ce88c09e897c7d3a4 + languageName: node + linkType: hard + "typical@npm:^4.0.0": version: 4.0.0 resolution: "typical@npm:4.0.0" @@ -35106,6 +36898,21 @@ __metadata: languageName: node linkType: hard +"util.promisify@npm:^1.0.0": + version: 1.1.2 + resolution: "util.promisify@npm:1.1.2" + dependencies: + call-bind: ^1.0.2 + define-properties: ^1.2.0 + for-each: ^0.3.3 + has-proto: ^1.0.1 + has-symbols: ^1.0.3 + object.getownpropertydescriptors: ^2.1.6 + safe-array-concat: ^1.0.0 + checksum: 9a5233e7fd067ca24abe2310f9c93e6df3adb644a662fcd826454d30539d3dd1d557b75bfed4cedd4993203012ea6add6d7dd268fed35bbdac4736dce9446373 + languageName: node + linkType: hard + "util@npm:0.10.3": version: 0.10.3 resolution: "util@npm:0.10.3" @@ -35552,6 +37359,18 @@ __metadata: languageName: node linkType: hard +"web3-bzz@npm:1.2.11": + version: 1.2.11 + resolution: "web3-bzz@npm:1.2.11" + dependencies: + "@types/node": ^12.12.6 + got: 9.6.0 + swarm-js: ^0.1.40 + underscore: 1.9.1 + checksum: 45136e7282819260357efdcdf6d81cb7b733b212aa1e46f1bbcaff70a33a2e3f6558936e6e1fc3bf75bb4c3220f844fc6b9d5bfaaa68a2f6ed0e8c0b02c97523 + languageName: node + linkType: hard + "web3-bzz@npm:1.7.4": version: 1.7.4 resolution: "web3-bzz@npm:1.7.4" @@ -35584,6 +37403,17 @@ __metadata: languageName: node linkType: hard +"web3-core-helpers@npm:1.2.11": + version: 1.2.11 + resolution: "web3-core-helpers@npm:1.2.11" + dependencies: + underscore: 1.9.1 + web3-eth-iban: 1.2.11 + web3-utils: 1.2.11 + checksum: dac2ab85b8bec8251647d40f1dc5fcf30b2245de6d216328c51c9d619d12a567906c5bf8b542846552a56bf969edcfcb16fb67e3780461195df85cd506591f68 + languageName: node + linkType: hard + "web3-core-helpers@npm:1.7.4": version: 1.7.4 resolution: "web3-core-helpers@npm:1.7.4" @@ -35617,6 +37447,20 @@ __metadata: languageName: node linkType: hard +"web3-core-method@npm:1.2.11": + version: 1.2.11 + resolution: "web3-core-method@npm:1.2.11" + dependencies: + "@ethersproject/transactions": ^5.0.0-beta.135 + underscore: 1.9.1 + web3-core-helpers: 1.2.11 + web3-core-promievent: 1.2.11 + web3-core-subscriptions: 1.2.11 + web3-utils: 1.2.11 + checksum: 7533c5b8c42df49969b9c95a2c9cb0abcd55a304ef4b276a5cc43673d27ffd9767a0caabe09271979b5afd0f788a51416f7018bc704d734ad78846c68dba15a7 + languageName: node + linkType: hard + "web3-core-method@npm:1.7.4": version: 1.7.4 resolution: "web3-core-method@npm:1.7.4" @@ -35652,6 +37496,15 @@ __metadata: languageName: node linkType: hard +"web3-core-promievent@npm:1.2.11": + version: 1.2.11 + resolution: "web3-core-promievent@npm:1.2.11" + dependencies: + eventemitter3: 4.0.4 + checksum: bd3661978f252ec0033881b32a5d4dec1bfeb7fb0f018d77c077c77b60c0f965215dcbd54c5fcbef739441dd7efbdbd6c9b20e275e05f5b4d2cee762937d95cc + languageName: node + linkType: hard + "web3-core-promievent@npm:1.7.4": version: 1.7.4 resolution: "web3-core-promievent@npm:1.7.4" @@ -35683,6 +37536,19 @@ __metadata: languageName: node linkType: hard +"web3-core-requestmanager@npm:1.2.11": + version: 1.2.11 + resolution: "web3-core-requestmanager@npm:1.2.11" + dependencies: + underscore: 1.9.1 + web3-core-helpers: 1.2.11 + web3-providers-http: 1.2.11 + web3-providers-ipc: 1.2.11 + web3-providers-ws: 1.2.11 + checksum: 84898bfec26319d06ccf7ae63821b7fbea8efc8a76015921530cc4eb85db39598c16598f1e51f95ed79146d7defafe7b924b5c6f6927fb2a153d01eb0862182c + languageName: node + linkType: hard + "web3-core-requestmanager@npm:1.7.4": version: 1.7.4 resolution: "web3-core-requestmanager@npm:1.7.4" @@ -35719,6 +37585,17 @@ __metadata: languageName: node linkType: hard +"web3-core-subscriptions@npm:1.2.11": + version: 1.2.11 + resolution: "web3-core-subscriptions@npm:1.2.11" + dependencies: + eventemitter3: 4.0.4 + underscore: 1.9.1 + web3-core-helpers: 1.2.11 + checksum: 7c8c07ea79fc9cf4ecb15ea37c5db38cc38e4b0545247d9ccc7ff6f4257565c03bcee569695a93abe02b8a98a6a9c227df880911ae324c0c6218a9571a3811f6 + languageName: node + linkType: hard + "web3-core-subscriptions@npm:1.7.4": version: 1.7.4 resolution: "web3-core-subscriptions@npm:1.7.4" @@ -35754,6 +37631,21 @@ __metadata: languageName: node linkType: hard +"web3-core@npm:1.2.11": + version: 1.2.11 + resolution: "web3-core@npm:1.2.11" + dependencies: + "@types/bn.js": ^4.11.5 + "@types/node": ^12.12.6 + bignumber.js: ^9.0.0 + web3-core-helpers: 1.2.11 + web3-core-method: 1.2.11 + web3-core-requestmanager: 1.2.11 + web3-utils: 1.2.11 + checksum: 1793affddb4fa811f9781dc644b4017d95c6084a21bb866e0dc626f6d48bfc29eacf02237608b587ca49094e9342da878b64173510d99a6e9171f7a697e8cb36 + languageName: node + linkType: hard + "web3-core@npm:1.7.4": version: 1.7.4 resolution: "web3-core@npm:1.7.4" @@ -35794,6 +37686,17 @@ __metadata: languageName: node linkType: hard +"web3-eth-abi@npm:1.2.11": + version: 1.2.11 + resolution: "web3-eth-abi@npm:1.2.11" + dependencies: + "@ethersproject/abi": 5.0.0-beta.153 + underscore: 1.9.1 + web3-utils: 1.2.11 + checksum: ef96c9c0faad2634d69f1c6dbf3414d0f292c0e534e477f47a1b14512c7099237a09d6b6ba91b624cea348e51e759106b128b0fe463d62f17f447e0a47071d76 + languageName: node + linkType: hard + "web3-eth-abi@npm:1.7.0": version: 1.7.0 resolution: "web3-eth-abi@npm:1.7.0" @@ -35842,6 +37745,25 @@ __metadata: languageName: node linkType: hard +"web3-eth-accounts@npm:1.2.11": + version: 1.2.11 + resolution: "web3-eth-accounts@npm:1.2.11" + dependencies: + crypto-browserify: 3.12.0 + eth-lib: 0.2.8 + ethereumjs-common: ^1.3.2 + ethereumjs-tx: ^2.1.1 + scrypt-js: ^3.0.1 + underscore: 1.9.1 + uuid: 3.3.2 + web3-core: 1.2.11 + web3-core-helpers: 1.2.11 + web3-core-method: 1.2.11 + web3-utils: 1.2.11 + checksum: 1653a7548337b538b280ced0d25dbf8b105954a5bf61726d5def25128ffc87c49d0d38b678a32e7d259e687f5e72cc452d92e14eaa8c9976a9153347e4afe7eb + languageName: node + linkType: hard + "web3-eth-accounts@npm:1.7.4": version: 1.7.4 resolution: "web3-eth-accounts@npm:1.7.4" @@ -35895,6 +37817,23 @@ __metadata: languageName: node linkType: hard +"web3-eth-contract@npm:1.2.11": + version: 1.2.11 + resolution: "web3-eth-contract@npm:1.2.11" + dependencies: + "@types/bn.js": ^4.11.5 + underscore: 1.9.1 + web3-core: 1.2.11 + web3-core-helpers: 1.2.11 + web3-core-method: 1.2.11 + web3-core-promievent: 1.2.11 + web3-core-subscriptions: 1.2.11 + web3-eth-abi: 1.2.11 + web3-utils: 1.2.11 + checksum: 1dc74e11f09c895bd5b26c5dfb3a0818d6a38a573de9252a3a943acf6ba88a058313e2977c95564ab56c3696f1ca975237ae4f10c93d34d2978f11bb1119b4d7 + languageName: node + linkType: hard + "web3-eth-contract@npm:1.7.4": version: 1.7.4 resolution: "web3-eth-contract@npm:1.7.4" @@ -35943,6 +37882,23 @@ __metadata: languageName: node linkType: hard +"web3-eth-ens@npm:1.2.11": + version: 1.2.11 + resolution: "web3-eth-ens@npm:1.2.11" + dependencies: + content-hash: ^2.5.2 + eth-ens-namehash: 2.0.8 + underscore: 1.9.1 + web3-core: 1.2.11 + web3-core-helpers: 1.2.11 + web3-core-promievent: 1.2.11 + web3-eth-abi: 1.2.11 + web3-eth-contract: 1.2.11 + web3-utils: 1.2.11 + checksum: 987999713c5c79f23a67ad244813212e9582566f6a7665312f887ce0eda77d91b85d3c0df21af14ef6ab6e970626d5d02129a2df3a8c257151f9540d6968a748 + languageName: node + linkType: hard + "web3-eth-ens@npm:1.7.4": version: 1.7.4 resolution: "web3-eth-ens@npm:1.7.4" @@ -35985,6 +37941,16 @@ __metadata: languageName: node linkType: hard +"web3-eth-iban@npm:1.2.11": + version: 1.2.11 + resolution: "web3-eth-iban@npm:1.2.11" + dependencies: + bn.js: ^4.11.9 + web3-utils: 1.2.11 + checksum: 1c28b3ad2cad2af0a76b051fe2c05ed933476eaa99f2c245862f66d4e3d56e60ad26cf55120513f78648ab1ff2b8a6b751e63448cdb01b53b542334bf148286f + languageName: node + linkType: hard + "web3-eth-iban@npm:1.7.4": version: 1.7.4 resolution: "web3-eth-iban@npm:1.7.4" @@ -36019,6 +37985,20 @@ __metadata: languageName: node linkType: hard +"web3-eth-personal@npm:1.2.11": + version: 1.2.11 + resolution: "web3-eth-personal@npm:1.2.11" + dependencies: + "@types/node": ^12.12.6 + web3-core: 1.2.11 + web3-core-helpers: 1.2.11 + web3-core-method: 1.2.11 + web3-net: 1.2.11 + web3-utils: 1.2.11 + checksum: a754a16aaed1e97baf963f594b69c83bc4c1cf3f5b181b18720ce292583b4a1b70c7a5c22433679c3e66166773bb43731535d085db3bcfc72af48290553f5122 + languageName: node + linkType: hard + "web3-eth-personal@npm:1.7.4": version: 1.7.4 resolution: "web3-eth-personal@npm:1.7.4" @@ -36067,6 +38047,27 @@ __metadata: languageName: node linkType: hard +"web3-eth@npm:1.2.11": + version: 1.2.11 + resolution: "web3-eth@npm:1.2.11" + dependencies: + underscore: 1.9.1 + web3-core: 1.2.11 + web3-core-helpers: 1.2.11 + web3-core-method: 1.2.11 + web3-core-subscriptions: 1.2.11 + web3-eth-abi: 1.2.11 + web3-eth-accounts: 1.2.11 + web3-eth-contract: 1.2.11 + web3-eth-ens: 1.2.11 + web3-eth-iban: 1.2.11 + web3-eth-personal: 1.2.11 + web3-net: 1.2.11 + web3-utils: 1.2.11 + checksum: eaf361bc59859e7e9078e57f438564f10ea5c0cc00404d3ccf537f3c8d11d963b74f8c3981f4160f1ed2e3c4d9d97a5ff85b33744d5083afde8dfd5dde887034 + languageName: node + linkType: hard + "web3-eth@npm:1.7.4": version: 1.7.4 resolution: "web3-eth@npm:1.7.4" @@ -36118,6 +38119,17 @@ __metadata: languageName: node linkType: hard +"web3-net@npm:1.2.11": + version: 1.2.11 + resolution: "web3-net@npm:1.2.11" + dependencies: + web3-core: 1.2.11 + web3-core-method: 1.2.11 + web3-utils: 1.2.11 + checksum: 76a99815699674709b869b60bf950d20167b999fe93f7d091b01ce3fd0e3dd9c30ef3519156c04eb01703791c049b19b295e6901dd41d208ea600149961f7ee6 + languageName: node + linkType: hard + "web3-net@npm:1.7.4": version: 1.7.4 resolution: "web3-net@npm:1.7.4" @@ -36140,6 +38152,34 @@ __metadata: languageName: node linkType: hard +"web3-provider-engine@npm:14.2.1": + version: 14.2.1 + resolution: "web3-provider-engine@npm:14.2.1" + dependencies: + async: ^2.5.0 + backoff: ^2.5.0 + clone: ^2.0.0 + cross-fetch: ^2.1.0 + eth-block-tracker: ^3.0.0 + eth-json-rpc-infura: ^3.1.0 + eth-sig-util: ^1.4.2 + ethereumjs-block: ^1.2.2 + ethereumjs-tx: ^1.2.0 + ethereumjs-util: ^5.1.5 + ethereumjs-vm: ^2.3.4 + json-rpc-error: ^2.0.0 + json-stable-stringify: ^1.0.1 + promise-to-callback: ^1.0.0 + readable-stream: ^2.2.9 + request: ^2.85.0 + semaphore: ^1.0.3 + ws: ^5.1.1 + xhr: ^2.2.0 + xtend: ^4.0.1 + checksum: 45441e22633184bd5f6ea645e20f99c8002b3b64d3e564cd9d0f65bad7f0755ad2cdf9a88fcac9585e908aacea28cc6e80c0939498ee4f4c6c49107d16e011bf + languageName: node + linkType: hard + "web3-provider-engine@npm:15.0.4": version: 15.0.4 resolution: "web3-provider-engine@npm:15.0.4" @@ -36234,6 +38274,16 @@ __metadata: languageName: node linkType: hard +"web3-providers-http@npm:1.2.11": + version: 1.2.11 + resolution: "web3-providers-http@npm:1.2.11" + dependencies: + web3-core-helpers: 1.2.11 + xhr2-cookies: 1.1.0 + checksum: 64760032d68826865de084c31d81be70bebc54cd82138ef724da13b60f7b341d4c0c6716912616b928680756ea6f2cef42be7d16fa9dd143a09ac55701232193 + languageName: node + linkType: hard + "web3-providers-http@npm:1.7.4": version: 1.7.4 resolution: "web3-providers-http@npm:1.7.4" @@ -36266,6 +38316,17 @@ __metadata: languageName: node linkType: hard +"web3-providers-ipc@npm:1.2.11": + version: 1.2.11 + resolution: "web3-providers-ipc@npm:1.2.11" + dependencies: + oboe: 2.1.4 + underscore: 1.9.1 + web3-core-helpers: 1.2.11 + checksum: 0fab2f824e4c7f080fee26b76c9c8448eb51abfd285a04f3c9efe92c3b9a8742096804ec02f56bc8297e375ea12f0f2205bb6c0ae376c44c005cdfeec65d0b7e + languageName: node + linkType: hard + "web3-providers-ipc@npm:1.7.4": version: 1.7.4 resolution: "web3-providers-ipc@npm:1.7.4" @@ -36297,6 +38358,18 @@ __metadata: languageName: node linkType: hard +"web3-providers-ws@npm:1.2.11": + version: 1.2.11 + resolution: "web3-providers-ws@npm:1.2.11" + dependencies: + eventemitter3: 4.0.4 + underscore: 1.9.1 + web3-core-helpers: 1.2.11 + websocket: ^1.0.31 + checksum: 4a4c591c2bd9724748e9dba124e59048b91239aa7cd435394f2a1d8e7914132920a17e56bc646f46912844fcfbbc38333b7023ebec298af36106ec4814d2ff5c + languageName: node + linkType: hard + "web3-providers-ws@npm:1.7.4": version: 1.7.4 resolution: "web3-providers-ws@npm:1.7.4" @@ -36331,6 +38404,18 @@ __metadata: languageName: node linkType: hard +"web3-shh@npm:1.2.11": + version: 1.2.11 + resolution: "web3-shh@npm:1.2.11" + dependencies: + web3-core: 1.2.11 + web3-core-method: 1.2.11 + web3-core-subscriptions: 1.2.11 + web3-net: 1.2.11 + checksum: 64c4a1f03bc3975a2baff9fa6d89a0050a06f179f1ec4d6e28f480b761d0efe56a9a79a5a320821e1dd503e82d44e73dd69b883b9e69d96cced3f979e0a3f4ff + languageName: node + linkType: hard + "web3-shh@npm:1.7.4": version: 1.7.4 resolution: "web3-shh@npm:1.7.4" @@ -36385,6 +38470,22 @@ __metadata: languageName: node linkType: hard +"web3-utils@npm:1.2.11": + version: 1.2.11 + resolution: "web3-utils@npm:1.2.11" + dependencies: + bn.js: ^4.11.9 + eth-lib: 0.2.8 + ethereum-bloom-filters: ^1.0.6 + ethjs-unit: 0.1.6 + number-to-bn: 1.7.0 + randombytes: ^2.1.0 + underscore: 1.9.1 + utf8: 3.0.0 + checksum: 1e43235963d5176e447b20b201a66fabccbe7bd4ef8bbb2edfa5ea80a41e8202a8e8f3db128b2a1662855a627a52d100e3207b81a739b937b5b3b4f9114c008f + languageName: node + linkType: hard + "web3-utils@npm:1.7.0": version: 1.7.0 resolution: "web3-utils@npm:1.7.0" @@ -36445,6 +38546,21 @@ __metadata: languageName: node linkType: hard +"web3@npm:1.2.11": + version: 1.2.11 + resolution: "web3@npm:1.2.11" + dependencies: + web3-bzz: 1.2.11 + web3-core: 1.2.11 + web3-eth: 1.2.11 + web3-eth-personal: 1.2.11 + web3-net: 1.2.11 + web3-shh: 1.2.11 + web3-utils: 1.2.11 + checksum: c4fa6ddaddc2de31c561590eb3703e9446c0a9bd87155f536fd72c3c22337056bbd045baf36fec6152e58ae67e552fffad29e794030cd87634becb99a079e91f + languageName: node + linkType: hard + "web3@npm:1.7.4": version: 1.7.4 resolution: "web3@npm:1.7.4" @@ -36548,7 +38664,21 @@ __metadata: languageName: node linkType: hard -"websocket@npm:^1.0.32": +"websocket@npm:1.0.32": + version: 1.0.32 + resolution: "websocket@npm:1.0.32" + dependencies: + bufferutil: ^4.0.1 + debug: ^2.2.0 + es5-ext: ^0.10.50 + typedarray-to-buffer: ^3.1.5 + utf-8-validate: ^5.0.2 + yaeti: ^0.0.6 + checksum: a29777a1942bf802f955782c7cf948797d19731a911b81adb957873e74b1d5356c621f217a972b075ecf04417a76897ea98dbfc19394007c4cf5e97cd4d494ac + languageName: node + linkType: hard + +"websocket@npm:^1.0.31, websocket@npm:^1.0.32": version: 1.0.34 resolution: "websocket@npm:1.0.34" dependencies: From f56ca9931cf2e6eb90ffc6edd5ee1fd8dac39079 Mon Sep 17 00:00:00 2001 From: sirpy Date: Thu, 3 Aug 2023 16:25:39 +0300 Subject: [PATCH 09/15] add: better nft deploy pattern --- .../DirectPayments/DirectPaymentsFactory.sol | 6 ++-- .../deploy/00.DirectPayments.deploy.ts | 31 ++++++++++++++----- .../DirectPayments.superappfees.test.ts | 17 +++++----- .../DirectPaymentsFactory.test.ts | 19 ++++++------ 4 files changed, 45 insertions(+), 28 deletions(-) diff --git a/packages/contracts/contracts/DirectPayments/DirectPaymentsFactory.sol b/packages/contracts/contracts/DirectPayments/DirectPaymentsFactory.sol index 5b34bda7..87da08b4 100644 --- a/packages/contracts/contracts/DirectPayments/DirectPaymentsFactory.sol +++ b/packages/contracts/contracts/DirectPayments/DirectPaymentsFactory.sol @@ -68,18 +68,16 @@ contract DirectPaymentsFactory is AccessControlUpgradeable, UUPSUpgradeable { function initialize( address _owner, address _dpimpl, - address _nftimpl, + ProvableNFT _nft, address _feeRecipient, uint32 _feeBps ) external initializer { nextNftType = 1; impl = _dpimpl; - bytes memory initCall = abi.encodeWithSelector(ProvableNFT.initialize.selector, "GoodCollective NFT", "GC-NFT"); - nft = ProvableNFT(address(new ERC1967Proxy(_nftimpl, initCall))); + nft = _nft; feeRecipient = _feeRecipient; feeBps = _feeBps; - nft.grantRole(DEFAULT_ADMIN_ROLE, _owner); _setupRole(DEFAULT_ADMIN_ROLE, _owner); } diff --git a/packages/contracts/deploy/00.DirectPayments.deploy.ts b/packages/contracts/deploy/00.DirectPayments.deploy.ts index 34bd8776..2bcb4659 100644 --- a/packages/contracts/deploy/00.DirectPayments.deploy.ts +++ b/packages/contracts/deploy/00.DirectPayments.deploy.ts @@ -10,7 +10,7 @@ import { FormatTypes } from 'ethers/lib/utils'; const func: DeployFunction = async (hre: HardhatRuntimeEnvironment) => { const { getNamedAccounts, deployments } = hre; - const { deploy } = deployments; + const { deploy, execute } = deployments; const { deployer } = await getNamedAccounts(); let sfHost; @@ -56,30 +56,47 @@ const func: DeployFunction = async (hre: HardhatRuntimeEnvironment) => { const nft = await deploy('ProvableNFT', { // Learn more about args here: https://www.npmjs.com/package/hardhat-deploy#deploymentsdeploy from: deployer, + proxy: { + proxyContract: 'UUPS', + execute: { + init: { + methodName: 'initialize', + args: ['GoodCollective NFT', 'GC-NFT'], + }, + }, + }, log: true, }); - const nftimpl = await ethers.getContractAt('ProvableNFT', nft.address); - const poolimpl = await ethers.getContractAt('DirectPaymentsPool', pool.address); - - await deploy('DirectPaymentsFactory', { + const factory = await deploy('DirectPaymentsFactory', { from: deployer, proxy: { proxyContract: 'UUPS', execute: { onUpgrade: { methodName: 'updateImpl', - args: [poolimpl.address], + args: [pool.address], }, init: { methodName: 'initialize', - args: [deployer, poolimpl.address, nftimpl.address, feeRecipient, feeBps], + args: [deployer, pool.address, nft.address, feeRecipient, feeBps], }, }, }, log: true, }); + + if (factory.newlyDeployed) { + console.log('granting nft admin rights to factory'); + await execute('ProvableNFT', { from: deployer }, 'grantRole', ethers.constants.HashZero, factory.address); + } + + if (pool.newlyDeployed && !factory.newlyDeployed) { + console.log('upgrading factory with new pool implementation'); + await execute('DirectPaymentsFactory', { from: deployer }, 'updateImpl', pool.address); + } }; + export default func; func.tags = ['DirectPaymentsPool', 'ProvableNFT', 'DirectPaymentsFactory']; diff --git a/packages/contracts/test/DirectPayments/DirectPayments.superappfees.test.ts b/packages/contracts/test/DirectPayments/DirectPayments.superappfees.test.ts index 1c920ecb..b95b5791 100644 --- a/packages/contracts/test/DirectPayments/DirectPayments.superappfees.test.ts +++ b/packages/contracts/test/DirectPayments/DirectPayments.superappfees.test.ts @@ -73,14 +73,15 @@ describe('DirectPaymentsPool Superapp with Fees', () => { const swapMock = await ethers.deployContract('SwapRouterMock', [gdframework.GoodDollar.address]); const dpimpl = await ethers.deployContract('DirectPaymentsPool', [sfFramework['host'], swapMock.address]); - const nftimpl = await (await ethers.getContractFactory('ProvableNFT')).deploy(); - factory = (await upgrades.deployProxy( - f, - [signer.address, dpimpl.address, nftimpl.address, signers[1].address, 1000], - { - kind: 'uups', - } - )) as DirectPaymentsFactory; + nft = (await upgrades.deployProxy(await ethers.getContractFactory('ProvableNFT'), ['nft', 'cc'], { + kind: 'uups', + })) as ProvableNFT; + + factory = (await upgrades.deployProxy(f, [signer.address, dpimpl.address, nft.address, signers[1].address, 1000], { + kind: 'uups', + })) as DirectPaymentsFactory; + + await nft.grantRole(ethers.constants.HashZero, factory.address); }); const fixture = async () => { diff --git a/packages/contracts/test/DirectPayments/DirectPaymentsFactory.test.ts b/packages/contracts/test/DirectPayments/DirectPaymentsFactory.test.ts index bf518e34..a65e014f 100644 --- a/packages/contracts/test/DirectPayments/DirectPaymentsFactory.test.ts +++ b/packages/contracts/test/DirectPayments/DirectPaymentsFactory.test.ts @@ -2,7 +2,7 @@ import { deploySuperGoodDollar } from '@gooddollar/goodprotocol'; import { loadFixture } from '@nomicfoundation/hardhat-network-helpers'; import { deployTestFramework } from '@superfluid-finance/ethereum-contracts/dev-scripts/deploy-test-framework'; import { expect } from 'chai'; -import { DirectPaymentsFactory, DirectPaymentsPool } from 'typechain-types'; +import { DirectPaymentsFactory, DirectPaymentsPool, ProvableNFT } from 'typechain-types'; import { ethers, upgrades } from 'hardhat'; type SignerWithAddress = Awaited>; @@ -37,14 +37,15 @@ describe('DirectPaymentsFactory', () => { const swapMock = await ethers.deployContract('SwapRouterMock', [gdframework.GoodDollar.address]); const dpimpl = await ethers.deployContract('DirectPaymentsPool', [sfFramework['host'], swapMock.address]); - const nftimpl = await (await ethers.getContractFactory('ProvableNFT')).deploy(); - factory = (await upgrades.deployProxy( - f, - [signer.address, dpimpl.address, nftimpl.address, ethers.constants.AddressZero, 0], - { - kind: 'uups', - } - )) as DirectPaymentsFactory; + const nft = (await upgrades.deployProxy(await ethers.getContractFactory('ProvableNFT'), ['nft', 'cc'], { + kind: 'uups', + })) as ProvableNFT; + + factory = (await upgrades.deployProxy(f, [signer.address, dpimpl.address, nft.address, signers[1].address, 1000], { + kind: 'uups', + })) as DirectPaymentsFactory; + + await nft.grantRole(ethers.constants.HashZero, factory.address); return factory; }; From 2bfa5d26954369a1b7d06b21389d03382141fbac Mon Sep 17 00:00:00 2001 From: sirpy Date: Thu, 3 Aug 2023 16:54:51 +0300 Subject: [PATCH 10/15] fix: sdk test --- packages/contracts/releases/deployment.json | 14350 +++++++++++++--- packages/sdk-js/scripts/deployContracts.sh | 2 +- .../__tests__/goodcollective.test.ts | 4 +- 3 files changed, 12154 insertions(+), 2202 deletions(-) diff --git a/packages/contracts/releases/deployment.json b/packages/contracts/releases/deployment.json index 8b7341a7..3c69f59d 100644 --- a/packages/contracts/releases/deployment.json +++ b/packages/contracts/releases/deployment.json @@ -5,7 +5,7 @@ "chainId": "31337", "contracts": { "DirectPaymentsFactory": { - "address": "0x851356ae760d987E095750cCeb3bC6014560891C", + "address": "0xf5059a5D33d5853360D16C683c16e67980206f36", "abi": [ { "anonymous": false, @@ -104,6 +104,72 @@ "internalType": "uint32", "name": "nftType", "type": "uint32" + }, + { + "components": [ + { + "internalType": "uint32", + "name": "nftType", + "type": "uint32" + }, + { + "internalType": "uint16[]", + "name": "validEvents", + "type": "uint16[]" + }, + { + "internalType": "uint128[]", + "name": "rewardPerEvent", + "type": "uint128[]" + }, + { + "internalType": "address", + "name": "manager", + "type": "address" + }, + { + "internalType": "contract IMembersValidator", + "name": "membersValidator", + "type": "address" + }, + { + "internalType": "contract IIdentityV2", + "name": "uniquenessValidator", + "type": "address" + }, + { + "internalType": "contract IERC20Upgradeable", + "name": "rewardToken", + "type": "address" + } + ], + "indexed": false, + "internalType": "struct DirectPaymentsPool.PoolSettings", + "name": "poolSettings", + "type": "tuple" + }, + { + "components": [ + { + "internalType": "uint256", + "name": "maxTotalPerMonth", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "maxMemberPerMonth", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "maxMemberPerDay", + "type": "uint256" + } + ], + "indexed": false, + "internalType": "struct DirectPaymentsPool.SafetyLimits", + "name": "poolLimits", + "type": "tuple" } ], "name": "PoolCreated", @@ -555,8 +621,8 @@ "type": "address" }, { - "internalType": "address", - "name": "_nftimpl", + "internalType": "contract ProvableNFT", + "name": "_nft", "type": "address" }, { @@ -816,7 +882,7 @@ ] }, "DirectPaymentsFactory_Implementation": { - "address": "0x1613beB3B2C4f22Ee086B2b38C1476A3cE7f78E8", + "address": "0x851356ae760d987E095750cCeb3bC6014560891C", "abi": [ { "inputs": [], @@ -894,6 +960,72 @@ "internalType": "uint32", "name": "nftType", "type": "uint32" + }, + { + "components": [ + { + "internalType": "uint32", + "name": "nftType", + "type": "uint32" + }, + { + "internalType": "uint16[]", + "name": "validEvents", + "type": "uint16[]" + }, + { + "internalType": "uint128[]", + "name": "rewardPerEvent", + "type": "uint128[]" + }, + { + "internalType": "address", + "name": "manager", + "type": "address" + }, + { + "internalType": "contract IMembersValidator", + "name": "membersValidator", + "type": "address" + }, + { + "internalType": "contract IIdentityV2", + "name": "uniquenessValidator", + "type": "address" + }, + { + "internalType": "contract IERC20Upgradeable", + "name": "rewardToken", + "type": "address" + } + ], + "indexed": false, + "internalType": "struct DirectPaymentsPool.PoolSettings", + "name": "poolSettings", + "type": "tuple" + }, + { + "components": [ + { + "internalType": "uint256", + "name": "maxTotalPerMonth", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "maxMemberPerMonth", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "maxMemberPerDay", + "type": "uint256" + } + ], + "indexed": false, + "internalType": "struct DirectPaymentsPool.SafetyLimits", + "name": "poolLimits", + "type": "tuple" } ], "name": "PoolCreated", @@ -1358,8 +1490,8 @@ "type": "address" }, { - "internalType": "address", - "name": "_nftimpl", + "internalType": "contract ProvableNFT", + "name": "_nft", "type": "address" }, { @@ -1603,7 +1735,7 @@ ] }, "DirectPaymentsFactory_Proxy": { - "address": "0x851356ae760d987E095750cCeb3bC6014560891C", + "address": "0xf5059a5D33d5853360D16C683c16e67980206f36", "abi": [ { "inputs": [ @@ -1706,6 +1838,11 @@ "name": "ALREADY_CLAIMED", "type": "error" }, + { + "inputs": [], + "name": "EMPTY_MANAGER", + "type": "error" + }, { "inputs": [ { @@ -1733,6 +1870,11 @@ "name": "MIN_FLOWRATE", "type": "error" }, + { + "inputs": [], + "name": "NFTTYPE_CHANGED", + "type": "error" + }, { "inputs": [ { @@ -1749,28 +1891,6 @@ "name": "NOT_MANAGER", "type": "error" }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "NOT_MEMBER", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "NOT_WHITELISTED", - "type": "error" - }, { "inputs": [], "name": "NO_BALANCE", @@ -1911,6 +2031,12 @@ "internalType": "struct ProvableNFT.EventData", "name": "eventData", "type": "tuple" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "rewardPerContributer", + "type": "uint256" } ], "name": "EventRewardClaimed", @@ -1932,14 +2058,75 @@ { "anonymous": false, "inputs": [ + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, { "indexed": false, - "internalType": "address", - "name": "member", - "type": "address" + "internalType": "uint256", + "name": "totalRewards", + "type": "uint256" + }, + { + "components": [ + { + "internalType": "uint32", + "name": "nftType", + "type": "uint32" + }, + { + "internalType": "uint16", + "name": "version", + "type": "uint16" + }, + { + "internalType": "string", + "name": "nftUri", + "type": "string" + }, + { + "components": [ + { + "internalType": "uint16", + "name": "subtype", + "type": "uint16" + }, + { + "internalType": "uint32", + "name": "timestamp", + "type": "uint32" + }, + { + "internalType": "uint256", + "name": "quantity", + "type": "uint256" + }, + { + "internalType": "string", + "name": "eventUri", + "type": "string" + }, + { + "internalType": "address[]", + "name": "contributers", + "type": "address[]" + } + ], + "internalType": "struct ProvableNFT.EventData[]", + "name": "events", + "type": "tuple[]" + } + ], + "indexed": false, + "internalType": "struct ProvableNFT.NFTData", + "name": "nftData", + "type": "tuple" } ], - "name": "MemberAdded", + "name": "NFTClaimed", "type": "event" }, { @@ -1948,11 +2135,11 @@ { "indexed": false, "internalType": "address", - "name": "member", + "name": "contributer", "type": "address" } ], - "name": "MemberRemoved", + "name": "NOT_MEMBER_OR_WHITELISTED", "type": "event" }, { @@ -1960,19 +2147,97 @@ "inputs": [ { "indexed": true, - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" + "internalType": "address", + "name": "pool", + "type": "address" + }, + { + "indexed": true, + "internalType": "string", + "name": "projectId", + "type": "string" }, { "indexed": false, - "internalType": "uint256", - "name": "totalRewards", - "type": "uint256" - } - ], - "name": "NFTClaimed", - "type": "event" + "internalType": "string", + "name": "ipfs", + "type": "string" + }, + { + "indexed": true, + "internalType": "uint32", + "name": "nftType", + "type": "uint32" + }, + { + "components": [ + { + "internalType": "uint32", + "name": "nftType", + "type": "uint32" + }, + { + "internalType": "uint16[]", + "name": "validEvents", + "type": "uint16[]" + }, + { + "internalType": "uint128[]", + "name": "rewardPerEvent", + "type": "uint128[]" + }, + { + "internalType": "address", + "name": "manager", + "type": "address" + }, + { + "internalType": "contract IMembersValidator", + "name": "membersValidator", + "type": "address" + }, + { + "internalType": "contract IIdentityV2", + "name": "uniquenessValidator", + "type": "address" + }, + { + "internalType": "contract IERC20Upgradeable", + "name": "rewardToken", + "type": "address" + } + ], + "indexed": false, + "internalType": "struct DirectPaymentsPool.PoolSettings", + "name": "poolSettings", + "type": "tuple" + }, + { + "components": [ + { + "internalType": "uint256", + "name": "maxTotalPerMonth", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "maxMemberPerMonth", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "maxMemberPerDay", + "type": "uint256" + } + ], + "indexed": false, + "internalType": "struct DirectPaymentsPool.SafetyLimits", + "name": "poolLimits", + "type": "tuple" + } + ], + "name": "PoolCreated", + "type": "event" }, { "anonymous": false, @@ -2226,7 +2491,7 @@ }, { "inputs": [], - "name": "MINTER_ROLE", + "name": "MEMBER_ROLE", "outputs": [ { "internalType": "bytes32", @@ -2239,33 +2504,28 @@ }, { "inputs": [], - "name": "MIN_FLOW_RATE", + "name": "MINTER_ROLE", "outputs": [ { - "internalType": "int96", + "internalType": "bytes32", "name": "", - "type": "int96" + "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { - "inputs": [ - { - "internalType": "address", - "name": "member", - "type": "address" - }, + "inputs": [], + "name": "MIN_FLOW_RATE", + "outputs": [ { - "internalType": "bytes", - "name": "extraData", - "type": "bytes" + "internalType": "int96", + "name": "", + "type": "int96" } ], - "name": "addMember", - "outputs": [], - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function" }, { @@ -3020,25 +3280,6 @@ "stateMutability": "view", "type": "function" }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "members", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, { "inputs": [ { @@ -3215,13 +3456,18 @@ }, { "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, { "internalType": "address", - "name": "member", + "name": "account", "type": "address" } ], - "name": "removeMember", + "name": "renounceRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" @@ -3239,7 +3485,7 @@ "type": "address" } ], - "name": "renounceRole", + "name": "revokeRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" @@ -3247,17 +3493,79 @@ { "inputs": [ { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, + "components": [ + { + "internalType": "uint256", + "name": "maxTotalPerMonth", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "maxMemberPerMonth", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "maxMemberPerDay", + "type": "uint256" + } + ], + "internalType": "struct DirectPaymentsPool.SafetyLimits", + "name": "_limits", + "type": "tuple" + } + ], + "name": "setPoolLimits", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ { - "internalType": "address", - "name": "account", - "type": "address" + "components": [ + { + "internalType": "uint32", + "name": "nftType", + "type": "uint32" + }, + { + "internalType": "uint16[]", + "name": "validEvents", + "type": "uint16[]" + }, + { + "internalType": "uint128[]", + "name": "rewardPerEvent", + "type": "uint128[]" + }, + { + "internalType": "address", + "name": "manager", + "type": "address" + }, + { + "internalType": "contract IMembersValidator", + "name": "membersValidator", + "type": "address" + }, + { + "internalType": "contract IIdentityV2", + "name": "uniquenessValidator", + "type": "address" + }, + { + "internalType": "contract IERC20Upgradeable", + "name": "rewardToken", + "type": "address" + } + ], + "internalType": "struct DirectPaymentsPool.PoolSettings", + "name": "_settings", + "type": "tuple" } ], - "name": "revokeRole", + "name": "setPoolSettings", "outputs": [], "stateMutability": "nonpayable", "type": "function" @@ -3622,45 +3930,8 @@ ] }, "ProvableNFT": { - "address": "0xa82fF9aFd8f496c3d6ac40E2a0F282E47488CFc9", + "address": "0x1613beB3B2C4f22Ee086B2b38C1476A3cE7f78E8", "abi": [ - { - "inputs": [ - { - "internalType": "bytes32", - "name": "dataHash", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "tokenId", - "type": "bytes32" - } - ], - "name": "BAD_DATAHASH", - "type": "error" - }, - { - "inputs": [], - "name": "BAD_NFTTYPE", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint32", - "name": "", - "type": "uint32" - } - ], - "name": "NOT_MANAGER", - "type": "error" - }, - { - "inputs": [], - "name": "NOT_MINTER", - "type": "error" - }, { "anonymous": false, "inputs": [ @@ -3686,15 +3957,86 @@ { "indexed": true, "internalType": "address", - "name": "owner", + "name": "beacon", "type": "address" - }, + } + ], + "name": "BeaconUpgraded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ { "indexed": true, "internalType": "address", - "name": "approved", + "name": "implementation", "type": "address" - }, + } + ], + "name": "Upgraded", + "type": "event" + }, + { + "stateMutability": "payable", + "type": "fallback" + }, + { + "stateMutability": "payable", + "type": "receive" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "dataHash", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "tokenId", + "type": "bytes32" + } + ], + "name": "BAD_DATAHASH", + "type": "error" + }, + { + "inputs": [], + "name": "BAD_NFTTYPE", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint32", + "name": "", + "type": "uint32" + } + ], + "name": "NOT_MANAGER", + "type": "error" + }, + { + "inputs": [], + "name": "NOT_MINTER", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "approved", + "type": "address" + }, { "indexed": true, "internalType": "uint256", @@ -3734,13 +4076,13 @@ "anonymous": false, "inputs": [ { - "indexed": true, - "internalType": "address", - "name": "beacon", - "type": "address" + "indexed": false, + "internalType": "uint8", + "name": "version", + "type": "uint8" } ], - "name": "BeaconUpgraded", + "name": "Initialized", "type": "event" }, { @@ -3748,12 +4090,79 @@ "inputs": [ { "indexed": false, - "internalType": "uint8", - "name": "version", - "type": "uint8" + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "bytes32", + "name": "nftDataHash", + "type": "bytes32" + }, + { + "components": [ + { + "internalType": "uint32", + "name": "nftType", + "type": "uint32" + }, + { + "internalType": "uint16", + "name": "version", + "type": "uint16" + }, + { + "internalType": "string", + "name": "nftUri", + "type": "string" + }, + { + "components": [ + { + "internalType": "uint16", + "name": "subtype", + "type": "uint16" + }, + { + "internalType": "uint32", + "name": "timestamp", + "type": "uint32" + }, + { + "internalType": "uint256", + "name": "quantity", + "type": "uint256" + }, + { + "internalType": "string", + "name": "eventUri", + "type": "string" + }, + { + "internalType": "address[]", + "name": "contributers", + "type": "address[]" + } + ], + "internalType": "struct ProvableNFT.EventData[]", + "name": "events", + "type": "tuple[]" + } + ], + "indexed": false, + "internalType": "struct ProvableNFT.NFTData", + "name": "nftData", + "type": "tuple" } ], - "name": "Initialized", + "name": "ProvableNftMinted", "type": "event" }, { @@ -3856,19 +4265,6 @@ "name": "Transfer", "type": "event" }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "implementation", - "type": "address" - } - ], - "name": "Upgraded", - "type": "event" - }, { "inputs": [], "name": "DEFAULT_ADMIN_ROLE", @@ -4744,149 +5140,67 @@ "outputs": [], "stateMutability": "payable", "type": "function" - } - ] - }, - "SuperFluidResolver": { - "address": "0x41549B6C39A529EA574f35b745b00f716869D2a0", - "abi": [] - }, - "SwapRouterMock": { - "address": "0xE6E340D132b5f46d1e472DebcD681B2aBc16e57E", - "abi": [ + }, { "inputs": [ { "internalType": "address", - "name": "token", + "name": "_logic", "type": "address" + }, + { + "internalType": "bytes", + "name": "_data", + "type": "bytes" } ], - "stateMutability": "nonpayable", + "stateMutability": "payable", "type": "constructor" - }, + } + ] + }, + "ProvableNFT_Implementation": { + "address": "0xa82fF9aFd8f496c3d6ac40E2a0F282E47488CFc9", + "abi": [ { "inputs": [ { - "components": [ - { - "internalType": "bytes", - "name": "path", - "type": "bytes" - }, - { - "internalType": "address", - "name": "recipient", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountIn", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountOutMinimum", - "type": "uint256" - } - ], - "internalType": "struct ISwapRouter.ExactInputParams", - "name": "params", - "type": "tuple" + "internalType": "bytes32", + "name": "dataHash", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "tokenId", + "type": "bytes32" } ], - "name": "exactInput", - "outputs": [ + "name": "BAD_DATAHASH", + "type": "error" + }, + { + "inputs": [], + "name": "BAD_NFTTYPE", + "type": "error" + }, + { + "inputs": [ { - "internalType": "uint256", - "name": "amountOut", - "type": "uint256" + "internalType": "uint32", + "name": "", + "type": "uint32" } ], - "stateMutability": "payable", - "type": "function" + "name": "NOT_MANAGER", + "type": "error" + }, + { + "inputs": [], + "name": "NOT_MINTER", + "type": "error" }, { - "inputs": [ - { - "components": [ - { - "internalType": "address", - "name": "tokenIn", - "type": "address" - }, - { - "internalType": "address", - "name": "tokenOut", - "type": "address" - }, - { - "internalType": "uint24", - "name": "fee", - "type": "uint24" - }, - { - "internalType": "address", - "name": "recipient", - "type": "address" - }, - { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountIn", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "amountOutMinimum", - "type": "uint256" - }, - { - "internalType": "uint160", - "name": "sqrtPriceLimitX96", - "type": "uint160" - } - ], - "internalType": "struct ISwapRouter.ExactInputSingleParams", - "name": "params", - "type": "tuple" - } - ], - "name": "exactInputSingle", - "outputs": [ - { - "internalType": "uint256", - "name": "amountOut", - "type": "uint256" - } - ], - "stateMutability": "payable", - "type": "function" - } - ] - } - } - } - ], - "44787": [ - { - "name": "alfajores", - "chainId": "44787", - "contracts": { - "DirectPaymentsFactory": { - "address": "0x59b80Ee33639E5f34C5D77B7C3044182219239D8", - "abi": [ - { - "anonymous": false, + "anonymous": false, "inputs": [ { "indexed": false, @@ -4910,50 +5224,23 @@ { "indexed": true, "internalType": "address", - "name": "beacon", + "name": "owner", "type": "address" - } - ], - "name": "BeaconUpgraded", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ + }, { "indexed": true, "internalType": "address", - "name": "implementation", + "name": "approved", "type": "address" - } - ], - "name": "Upgraded", - "type": "event" - }, - { - "stateMutability": "payable", - "type": "fallback" - }, - { - "stateMutability": "payable", - "type": "receive" - }, - { - "inputs": [], - "name": "NOT_PROJECT_OWNER", - "type": "error" - }, - { - "anonymous": false, - "inputs": [ + }, { - "indexed": false, - "internalType": "uint8", - "name": "version", - "type": "uint8" + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" } ], - "name": "Initialized", + "name": "Approval", "type": "event" }, { @@ -4962,29 +5249,23 @@ { "indexed": true, "internalType": "address", - "name": "pool", + "name": "owner", "type": "address" }, { "indexed": true, - "internalType": "string", - "name": "projectId", - "type": "string" + "internalType": "address", + "name": "operator", + "type": "address" }, { "indexed": false, - "internalType": "string", - "name": "ipfs", - "type": "string" - }, - { - "indexed": true, - "internalType": "uint32", - "name": "nftType", - "type": "uint32" + "internalType": "bool", + "name": "approved", + "type": "bool" } ], - "name": "PoolCreated", + "name": "ApprovalForAll", "type": "event" }, { @@ -4993,36 +5274,104 @@ { "indexed": true, "internalType": "address", - "name": "pool", + "name": "beacon", "type": "address" - }, + } + ], + "name": "BeaconUpgraded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ { "indexed": false, - "internalType": "string", - "name": "ipfs", - "type": "string" + "internalType": "uint8", + "name": "version", + "type": "uint8" } ], - "name": "PoolDetailsChanged", + "name": "Initialized", "type": "event" }, { "anonymous": false, "inputs": [ { - "indexed": true, + "indexed": false, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "indexed": false, "internalType": "address", - "name": "pool", + "name": "to", "type": "address" }, { "indexed": false, - "internalType": "bool", - "name": "isVerified", - "type": "bool" + "internalType": "bytes32", + "name": "nftDataHash", + "type": "bytes32" + }, + { + "components": [ + { + "internalType": "uint32", + "name": "nftType", + "type": "uint32" + }, + { + "internalType": "uint16", + "name": "version", + "type": "uint16" + }, + { + "internalType": "string", + "name": "nftUri", + "type": "string" + }, + { + "components": [ + { + "internalType": "uint16", + "name": "subtype", + "type": "uint16" + }, + { + "internalType": "uint32", + "name": "timestamp", + "type": "uint32" + }, + { + "internalType": "uint256", + "name": "quantity", + "type": "uint256" + }, + { + "internalType": "string", + "name": "eventUri", + "type": "string" + }, + { + "internalType": "address[]", + "name": "contributers", + "type": "address[]" + } + ], + "internalType": "struct ProvableNFT.EventData[]", + "name": "events", + "type": "tuple[]" + } + ], + "indexed": false, + "internalType": "struct ProvableNFT.NFTData", + "name": "nftData", + "type": "tuple" } ], - "name": "PoolVerifiedChanged", + "name": "ProvableNftMinted", "type": "event" }, { @@ -5106,11 +5455,36 @@ { "indexed": true, "internalType": "address", - "name": "impl", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "implementation", "type": "address" } ], - "name": "UpdatedImpl", + "name": "Upgraded", "type": "event" }, { @@ -5127,220 +5501,68 @@ "type": "function" }, { - "inputs": [ - { - "internalType": "contract DirectPaymentsPool", - "name": "_pool", - "type": "address" - }, + "inputs": [], + "name": "MINTER_ROLE", + "outputs": [ { - "internalType": "string", - "name": "_ipfs", - "type": "string" + "internalType": "bytes32", + "name": "", + "type": "bytes32" } ], - "name": "changePoolDetails", - "outputs": [], - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function" }, { "inputs": [ { - "internalType": "string", - "name": "_projectId", - "type": "string" - }, - { - "internalType": "string", - "name": "_ipfs", - "type": "string" - }, - { - "components": [ - { - "internalType": "uint32", - "name": "nftType", - "type": "uint32" - }, - { - "internalType": "uint16[]", - "name": "validEvents", - "type": "uint16[]" - }, - { - "internalType": "uint128[]", - "name": "rewardPerEvent", - "type": "uint128[]" - }, - { - "internalType": "address", - "name": "manager", - "type": "address" - }, - { - "internalType": "contract IMembersValidator", - "name": "membersValidator", - "type": "address" - }, - { - "internalType": "contract IIdentityV2", - "name": "uniquenessValidator", - "type": "address" - }, - { - "internalType": "contract IERC20Upgradeable", - "name": "rewardToken", - "type": "address" - } - ], - "internalType": "struct DirectPaymentsPool.PoolSettings", - "name": "_settings", - "type": "tuple" + "internalType": "address", + "name": "_manager", + "type": "address" }, { - "components": [ - { - "internalType": "uint256", - "name": "maxTotalPerMonth", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "maxMemberPerMonth", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "maxMemberPerDay", - "type": "uint256" - } - ], - "internalType": "struct DirectPaymentsPool.SafetyLimits", - "name": "_limits", - "type": "tuple" - } - ], - "name": "createBeaconPool", - "outputs": [ - { - "internalType": "contract DirectPaymentsPool", - "name": "pool", - "type": "address" + "internalType": "uint32", + "name": "_nftType", + "type": "uint32" } ], + "name": "addManager", + "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { - "internalType": "string", - "name": "_projectId", - "type": "string" - }, - { - "internalType": "string", - "name": "_ipfs", - "type": "string" - }, - { - "components": [ - { - "internalType": "uint32", - "name": "nftType", - "type": "uint32" - }, - { - "internalType": "uint16[]", - "name": "validEvents", - "type": "uint16[]" - }, - { - "internalType": "uint128[]", - "name": "rewardPerEvent", - "type": "uint128[]" - }, - { - "internalType": "address", - "name": "manager", - "type": "address" - }, - { - "internalType": "contract IMembersValidator", - "name": "membersValidator", - "type": "address" - }, - { - "internalType": "contract IIdentityV2", - "name": "uniquenessValidator", - "type": "address" - }, - { - "internalType": "contract IERC20Upgradeable", - "name": "rewardToken", - "type": "address" - } - ], - "internalType": "struct DirectPaymentsPool.PoolSettings", - "name": "_settings", - "type": "tuple" + "internalType": "address", + "name": "to", + "type": "address" }, { - "components": [ - { - "internalType": "uint256", - "name": "maxTotalPerMonth", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "maxMemberPerMonth", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "maxMemberPerDay", - "type": "uint256" - } - ], - "internalType": "struct DirectPaymentsPool.SafetyLimits", - "name": "_limits", - "type": "tuple" - } - ], - "name": "createPool", - "outputs": [ - { - "internalType": "contract DirectPaymentsPool", - "name": "pool", - "type": "address" + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" } ], + "name": "approve", + "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { - "inputs": [], - "name": "feeBps", - "outputs": [ + "inputs": [ { - "internalType": "uint32", - "name": "", - "type": "uint32" + "internalType": "address", + "name": "owner", + "type": "address" } ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "feeRecipient", + "name": "balanceOf", "outputs": [ { - "internalType": "address", + "internalType": "uint256", "name": "", - "type": "address" + "type": "uint256" } ], "stateMutability": "view", @@ -5349,17 +5571,17 @@ { "inputs": [ { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" } ], - "name": "getRoleAdmin", + "name": "getApproved", "outputs": [ { - "internalType": "bytes32", + "internalType": "address", "name": "", - "type": "bytes32" + "type": "address" } ], "stateMutability": "view", @@ -5367,54 +5589,86 @@ }, { "inputs": [ + { + "internalType": "uint32", + "name": "_nftType", + "type": "uint32" + } + ], + "name": "getManagerRole", + "outputs": [ { "internalType": "bytes32", - "name": "role", + "name": "roleHash", "type": "bytes32" - }, - { - "internalType": "address", - "name": "account", - "type": "address" } ], - "name": "grantRole", - "outputs": [], - "stateMutability": "nonpayable", + "stateMutability": "pure", "type": "function" }, { "inputs": [ { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "account", - "type": "address" + "internalType": "uint256", + "name": "_tokenId", + "type": "uint256" } ], - "name": "hasRole", + "name": "getNFTData", "outputs": [ { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "impl", - "outputs": [ - { - "internalType": "address", + "components": [ + { + "internalType": "uint32", + "name": "nftType", + "type": "uint32" + }, + { + "internalType": "uint16", + "name": "version", + "type": "uint16" + }, + { + "internalType": "string", + "name": "nftUri", + "type": "string" + }, + { + "components": [ + { + "internalType": "uint16", + "name": "subtype", + "type": "uint16" + }, + { + "internalType": "uint32", + "name": "timestamp", + "type": "uint32" + }, + { + "internalType": "uint256", + "name": "quantity", + "type": "uint256" + }, + { + "internalType": "string", + "name": "eventUri", + "type": "string" + }, + { + "internalType": "address[]", + "name": "contributers", + "type": "address[]" + } + ], + "internalType": "struct ProvableNFT.EventData[]", + "name": "events", + "type": "tuple[]" + } + ], + "internalType": "struct ProvableNFT.NFTData", "name": "", - "type": "address" + "type": "tuple" } ], "stateMutability": "view", @@ -5423,57 +5677,49 @@ { "inputs": [ { - "internalType": "address", - "name": "_owner", - "type": "address" - }, - { - "internalType": "address", - "name": "_dpimpl", - "type": "address" - }, - { - "internalType": "address", - "name": "_nftimpl", - "type": "address" - }, - { - "internalType": "address", - "name": "_feeRecipient", - "type": "address" + "internalType": "uint256", + "name": "_tokenId", + "type": "uint256" }, { - "internalType": "uint32", - "name": "_feeBps", - "type": "uint32" - } - ], - "name": "initialize", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "nextNftType", - "outputs": [ - { - "internalType": "uint32", - "name": "", - "type": "uint32" + "internalType": "uint256", + "name": "_index", + "type": "uint256" } ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "nft", + "name": "getNFTEvent", "outputs": [ { - "internalType": "contract ProvableNFT", + "components": [ + { + "internalType": "uint16", + "name": "subtype", + "type": "uint16" + }, + { + "internalType": "uint32", + "name": "timestamp", + "type": "uint32" + }, + { + "internalType": "uint256", + "name": "quantity", + "type": "uint256" + }, + { + "internalType": "string", + "name": "eventUri", + "type": "string" + }, + { + "internalType": "address[]", + "name": "contributers", + "type": "address[]" + } + ], + "internalType": "struct ProvableNFT.EventData", "name": "", - "type": "address" + "type": "tuple" } ], "stateMutability": "view", @@ -5482,59 +5728,63 @@ { "inputs": [ { - "internalType": "bytes32", - "name": "", - "type": "bytes32" + "internalType": "uint256", + "name": "_tokenId", + "type": "uint256" } ], - "name": "projectIdToControlPool", + "name": "getNFTEvents", "outputs": [ { - "internalType": "contract DirectPaymentsPool", + "components": [ + { + "internalType": "uint16", + "name": "subtype", + "type": "uint16" + }, + { + "internalType": "uint32", + "name": "timestamp", + "type": "uint32" + }, + { + "internalType": "uint256", + "name": "quantity", + "type": "uint256" + }, + { + "internalType": "string", + "name": "eventUri", + "type": "string" + }, + { + "internalType": "address[]", + "name": "contributers", + "type": "address[]" + } + ], + "internalType": "struct ProvableNFT.EventData[]", "name": "", - "type": "address" + "type": "tuple[]" } ], "stateMutability": "view", "type": "function" }, { - "inputs": [], - "name": "proxiableUUID", - "outputs": [ + "inputs": [ { "internalType": "bytes32", - "name": "", + "name": "role", "type": "bytes32" } ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "name": "registry", + "name": "getRoleAdmin", "outputs": [ { - "internalType": "string", - "name": "ipfs", - "type": "string" - }, - { - "internalType": "bool", - "name": "isVerified", - "type": "bool" - }, - { - "internalType": "string", - "name": "projectId", - "type": "string" + "internalType": "bytes32", + "name": "", + "type": "bytes32" } ], "stateMutability": "view", @@ -5553,7 +5803,7 @@ "type": "address" } ], - "name": "renounceRole", + "name": "grantRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" @@ -5571,25 +5821,31 @@ "type": "address" } ], - "name": "revokeRole", - "outputs": [], - "stateMutability": "nonpayable", + "name": "hasRole", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", "type": "function" }, { "inputs": [ { - "internalType": "address", - "name": "_feeRecipient", - "type": "address" + "internalType": "string", + "name": "_name", + "type": "string" }, { - "internalType": "uint32", - "name": "_feeBps", - "type": "uint32" + "internalType": "string", + "name": "_symbol", + "type": "string" } ], - "name": "setFeeInfo", + "name": "initialize", "outputs": [], "stateMutability": "nonpayable", "type": "function" @@ -5597,30 +5853,17 @@ { "inputs": [ { - "internalType": "contract DirectPaymentsPool", - "name": "_pool", + "internalType": "address", + "name": "owner", "type": "address" }, { - "internalType": "bool", - "name": "_isVerified", - "type": "bool" + "internalType": "address", + "name": "operator", + "type": "address" } ], - "name": "setVerified", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes4", - "name": "interfaceId", - "type": "bytes4" - } - ], - "name": "supportsInterface", + "name": "isApprovedForAll", "outputs": [ { "internalType": "bool", @@ -5635,25 +5878,28 @@ "inputs": [ { "internalType": "address", - "name": "_impl", + "name": "_to", "type": "address" + }, + { + "internalType": "string", + "name": "_uri", + "type": "string" + }, + { + "internalType": "bytes32", + "name": "_nftDataHash", + "type": "bytes32" } ], - "name": "updateImpl", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ + "name": "mint", + "outputs": [ { - "internalType": "address", - "name": "newImplementation", - "type": "address" + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" } ], - "name": "upgradeTo", - "outputs": [], "stateMutability": "nonpayable", "type": "function" }, @@ -5661,563 +5907,9760 @@ "inputs": [ { "internalType": "address", - "name": "newImplementation", + "name": "_to", "type": "address" }, { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "upgradeToAndCall", - "outputs": [], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ + "components": [ + { + "internalType": "uint32", + "name": "nftType", + "type": "uint32" + }, + { + "internalType": "uint16", + "name": "version", + "type": "uint16" + }, + { + "internalType": "string", + "name": "nftUri", + "type": "string" + }, + { + "components": [ + { + "internalType": "uint16", + "name": "subtype", + "type": "uint16" + }, + { + "internalType": "uint32", + "name": "timestamp", + "type": "uint32" + }, + { + "internalType": "uint256", + "name": "quantity", + "type": "uint256" + }, + { + "internalType": "string", + "name": "eventUri", + "type": "string" + }, + { + "internalType": "address[]", + "name": "contributers", + "type": "address[]" + } + ], + "internalType": "struct ProvableNFT.EventData[]", + "name": "events", + "type": "tuple[]" + } + ], + "internalType": "struct ProvableNFT.NFTData", + "name": "_nftData", + "type": "tuple" + }, { - "internalType": "address", - "name": "_logic", - "type": "address" + "internalType": "bool", + "name": "_withStore", + "type": "bool" }, { "internalType": "bytes", - "name": "_data", + "name": "_callData", "type": "bytes" } ], - "stateMutability": "payable", - "type": "constructor" - } - ] - }, - "DirectPaymentsFactory_Implementation": { - "address": "0x278450342505573460F6456100f694Ae5Ec2C0D7", - "abi": [ - { - "inputs": [], - "name": "NOT_PROJECT_OWNER", - "type": "error" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "previousAdmin", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "newAdmin", - "type": "address" - } - ], - "name": "AdminChanged", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "beacon", - "type": "address" - } - ], - "name": "BeaconUpgraded", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ + "name": "mintPermissioned", + "outputs": [ { - "indexed": false, - "internalType": "uint8", - "name": "version", - "type": "uint8" + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" } ], - "name": "Initialized", - "type": "event" + "stateMutability": "nonpayable", + "type": "function" }, { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "pool", - "type": "address" - }, - { - "indexed": true, - "internalType": "string", - "name": "projectId", - "type": "string" - }, + "inputs": [], + "name": "name", + "outputs": [ { - "indexed": false, "internalType": "string", - "name": "ipfs", + "name": "", "type": "string" - }, - { - "indexed": true, - "internalType": "uint32", - "name": "nftType", - "type": "uint32" } ], - "name": "PoolCreated", - "type": "event" + "stateMutability": "view", + "type": "function" }, { - "anonymous": false, "inputs": [ { - "indexed": true, - "internalType": "address", - "name": "pool", - "type": "address" - }, - { - "indexed": false, - "internalType": "string", - "name": "ipfs", - "type": "string" + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" } ], - "name": "PoolDetailsChanged", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ + "name": "ownerOf", + "outputs": [ { - "indexed": true, "internalType": "address", - "name": "pool", + "name": "", "type": "address" - }, - { - "indexed": false, - "internalType": "bool", - "name": "isVerified", - "type": "bool" } ], - "name": "PoolVerifiedChanged", - "type": "event" + "stateMutability": "view", + "type": "function" }, { - "anonymous": false, "inputs": [ { - "indexed": true, - "internalType": "bytes32", - "name": "role", - "type": "bytes32" + "internalType": "uint256", + "name": "_tokenId", + "type": "uint256" }, { - "indexed": true, - "internalType": "bytes32", - "name": "previousAdminRole", - "type": "bytes32" - }, + "components": [ + { + "internalType": "uint32", + "name": "nftType", + "type": "uint32" + }, + { + "internalType": "uint16", + "name": "version", + "type": "uint16" + }, + { + "internalType": "string", + "name": "nftUri", + "type": "string" + }, + { + "components": [ + { + "internalType": "uint16", + "name": "subtype", + "type": "uint16" + }, + { + "internalType": "uint32", + "name": "timestamp", + "type": "uint32" + }, + { + "internalType": "uint256", + "name": "quantity", + "type": "uint256" + }, + { + "internalType": "string", + "name": "eventUri", + "type": "string" + }, + { + "internalType": "address[]", + "name": "contributers", + "type": "address[]" + } + ], + "internalType": "struct ProvableNFT.EventData[]", + "name": "events", + "type": "tuple[]" + } + ], + "internalType": "struct ProvableNFT.NFTData", + "name": "_nftData", + "type": "tuple" + } + ], + "name": "proveNFTData", + "outputs": [ + { + "components": [ + { + "internalType": "uint32", + "name": "nftType", + "type": "uint32" + }, + { + "internalType": "uint16", + "name": "version", + "type": "uint16" + }, + { + "internalType": "string", + "name": "nftUri", + "type": "string" + }, + { + "components": [ + { + "internalType": "uint16", + "name": "subtype", + "type": "uint16" + }, + { + "internalType": "uint32", + "name": "timestamp", + "type": "uint32" + }, + { + "internalType": "uint256", + "name": "quantity", + "type": "uint256" + }, + { + "internalType": "string", + "name": "eventUri", + "type": "string" + }, + { + "internalType": "address[]", + "name": "contributers", + "type": "address[]" + } + ], + "internalType": "struct ProvableNFT.EventData[]", + "name": "events", + "type": "tuple[]" + } + ], + "internalType": "struct ProvableNFT.NFTData", + "name": "data", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "proxiableUUID", + "outputs": [ { - "indexed": true, "internalType": "bytes32", - "name": "newAdminRole", + "name": "", "type": "bytes32" } ], - "name": "RoleAdminChanged", - "type": "event" + "stateMutability": "view", + "type": "function" }, { - "anonymous": false, "inputs": [ { - "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { - "indexed": true, "internalType": "address", "name": "account", "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "sender", - "type": "address" } ], - "name": "RoleGranted", - "type": "event" + "name": "renounceRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" }, { - "anonymous": false, "inputs": [ { - "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { - "indexed": true, "internalType": "address", "name": "account", "type": "address" + } + ], + "name": "revokeRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" }, { - "indexed": true, "internalType": "address", - "name": "sender", + "name": "to", "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" } ], - "name": "RoleRevoked", - "type": "event" + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" }, { - "anonymous": false, "inputs": [ { - "indexed": true, "internalType": "address", - "name": "impl", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" } ], - "name": "UpdatedImpl", - "type": "event" + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" }, { - "anonymous": false, "inputs": [ { - "indexed": true, "internalType": "address", - "name": "implementation", + "name": "operator", "type": "address" + }, + { + "internalType": "bool", + "name": "approved", + "type": "bool" } ], - "name": "Upgraded", - "type": "event" + "name": "setApprovalForAll", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" }, { - "inputs": [], - "name": "DEFAULT_ADMIN_ROLE", + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", "outputs": [ { - "internalType": "bytes32", + "internalType": "bool", "name": "", - "type": "bytes32" + "type": "bool" } ], "stateMutability": "view", "type": "function" }, { - "inputs": [ - { - "internalType": "contract DirectPaymentsPool", - "name": "_pool", - "type": "address" - }, + "inputs": [], + "name": "symbol", + "outputs": [ { "internalType": "string", - "name": "_ipfs", + "name": "", "type": "string" } ], - "name": "changePoolDetails", - "outputs": [], - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function" }, { "inputs": [ { - "internalType": "string", - "name": "_projectId", - "type": "string" - }, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "tokenURI", + "outputs": [ { "internalType": "string", - "name": "_ipfs", + "name": "", "type": "string" - }, - { - "components": [ - { - "internalType": "uint32", - "name": "nftType", - "type": "uint32" - }, - { - "internalType": "uint16[]", - "name": "validEvents", - "type": "uint16[]" - }, - { - "internalType": "uint128[]", - "name": "rewardPerEvent", - "type": "uint128[]" - }, - { - "internalType": "address", - "name": "manager", - "type": "address" - }, - { - "internalType": "contract IMembersValidator", - "name": "membersValidator", - "type": "address" - }, - { - "internalType": "contract IIdentityV2", - "name": "uniquenessValidator", - "type": "address" - }, - { - "internalType": "contract IERC20Upgradeable", - "name": "rewardToken", - "type": "address" - } - ], - "internalType": "struct DirectPaymentsPool.PoolSettings", - "name": "_settings", - "type": "tuple" - }, - { - "components": [ - { - "internalType": "uint256", - "name": "maxTotalPerMonth", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "maxMemberPerMonth", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "maxMemberPerDay", - "type": "uint256" - } - ], - "internalType": "struct DirectPaymentsPool.SafetyLimits", - "name": "_limits", - "type": "tuple" - } - ], - "name": "createBeaconPool", - "outputs": [ - { - "internalType": "contract DirectPaymentsPool", - "name": "pool", - "type": "address" } ], - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function" }, { "inputs": [ { - "internalType": "string", - "name": "_projectId", - "type": "string" - }, - { - "internalType": "string", - "name": "_ipfs", - "type": "string" + "internalType": "address", + "name": "from", + "type": "address" }, { - "components": [ - { - "internalType": "uint32", - "name": "nftType", - "type": "uint32" - }, - { - "internalType": "uint16[]", - "name": "validEvents", - "type": "uint16[]" - }, - { - "internalType": "uint128[]", - "name": "rewardPerEvent", - "type": "uint128[]" - }, - { - "internalType": "address", - "name": "manager", - "type": "address" - }, - { - "internalType": "contract IMembersValidator", - "name": "membersValidator", - "type": "address" - }, - { - "internalType": "contract IIdentityV2", - "name": "uniquenessValidator", - "type": "address" - }, - { - "internalType": "contract IERC20Upgradeable", - "name": "rewardToken", - "type": "address" - } - ], - "internalType": "struct DirectPaymentsPool.PoolSettings", - "name": "_settings", - "type": "tuple" + "internalType": "address", + "name": "to", + "type": "address" }, { - "components": [ - { - "internalType": "uint256", - "name": "maxTotalPerMonth", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "maxMemberPerMonth", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "maxMemberPerDay", - "type": "uint256" - } - ], - "internalType": "struct DirectPaymentsPool.SafetyLimits", - "name": "_limits", - "type": "tuple" - } - ], - "name": "createPool", - "outputs": [ - { - "internalType": "contract DirectPaymentsPool", - "name": "pool", - "type": "address" + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" } ], + "name": "transferFrom", + "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { - "inputs": [], - "name": "feeBps", - "outputs": [ + "inputs": [ { - "internalType": "uint32", - "name": "", - "type": "uint32" + "internalType": "address", + "name": "newImplementation", + "type": "address" } ], - "stateMutability": "view", + "name": "upgradeTo", + "outputs": [], + "stateMutability": "nonpayable", "type": "function" }, { - "inputs": [], - "name": "feeRecipient", - "outputs": [ + "inputs": [ { "internalType": "address", - "name": "", + "name": "newImplementation", "type": "address" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" } ], - "stateMutability": "view", + "name": "upgradeToAndCall", + "outputs": [], + "stateMutability": "payable", "type": "function" - }, + } + ] + }, + "ProvableNFT_Proxy": { + "address": "0x1613beB3B2C4f22Ee086B2b38C1476A3cE7f78E8", + "abi": [ { "inputs": [ { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - } - ], - "name": "getRoleAdmin", - "outputs": [ + "internalType": "address", + "name": "_logic", + "type": "address" + }, { - "internalType": "bytes32", - "name": "", - "type": "bytes32" + "internalType": "bytes", + "name": "_data", + "type": "bytes" } ], - "stateMutability": "view", - "type": "function" + "stateMutability": "payable", + "type": "constructor" }, { + "anonymous": false, "inputs": [ { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" + "indexed": false, + "internalType": "address", + "name": "previousAdmin", + "type": "address" }, { + "indexed": false, "internalType": "address", - "name": "account", + "name": "newAdmin", "type": "address" } ], - "name": "grantRole", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + "name": "AdminChanged", + "type": "event" }, { + "anonymous": false, "inputs": [ { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { + "indexed": true, "internalType": "address", - "name": "account", + "name": "beacon", "type": "address" } ], - "name": "hasRole", - "outputs": [ + "name": "BeaconUpgraded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ { - "internalType": "bool", - "name": "", - "type": "bool" + "indexed": true, + "internalType": "address", + "name": "implementation", + "type": "address" } ], - "stateMutability": "view", + "name": "Upgraded", + "type": "event" + }, + { + "stateMutability": "payable", + "type": "fallback" + }, + { + "stateMutability": "payable", + "type": "receive" + } + ] + }, + "SuperFluidResolver": { + "address": "0x41549B6C39A529EA574f35b745b00f716869D2a0", + "abi": [] + }, + "SwapRouterMock": { + "address": "0xE6E340D132b5f46d1e472DebcD681B2aBc16e57E", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "token", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "bytes", + "name": "path", + "type": "bytes" + }, + { + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "internalType": "uint256", + "name": "deadline", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountIn", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountOutMinimum", + "type": "uint256" + } + ], + "internalType": "struct ISwapRouter.ExactInputParams", + "name": "params", + "type": "tuple" + } + ], + "name": "exactInput", + "outputs": [ + { + "internalType": "uint256", + "name": "amountOut", + "type": "uint256" + } + ], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "address", + "name": "tokenIn", + "type": "address" + }, + { + "internalType": "address", + "name": "tokenOut", + "type": "address" + }, + { + "internalType": "uint24", + "name": "fee", + "type": "uint24" + }, + { + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "internalType": "uint256", + "name": "deadline", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountIn", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountOutMinimum", + "type": "uint256" + }, + { + "internalType": "uint160", + "name": "sqrtPriceLimitX96", + "type": "uint160" + } + ], + "internalType": "struct ISwapRouter.ExactInputSingleParams", + "name": "params", + "type": "tuple" + } + ], + "name": "exactInputSingle", + "outputs": [ + { + "internalType": "uint256", + "name": "amountOut", + "type": "uint256" + } + ], + "stateMutability": "payable", + "type": "function" + } + ] + } + } + }, + { + "name": "hardhat", + "chainId": "31337", + "contracts": { + "SwapRouterMock": { + "address": "0xE6E340D132b5f46d1e472DebcD681B2aBc16e57E", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "token", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "bytes", + "name": "path", + "type": "bytes" + }, + { + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "internalType": "uint256", + "name": "deadline", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountIn", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountOutMinimum", + "type": "uint256" + } + ], + "internalType": "struct ISwapRouter.ExactInputParams", + "name": "params", + "type": "tuple" + } + ], + "name": "exactInput", + "outputs": [ + { + "internalType": "uint256", + "name": "amountOut", + "type": "uint256" + } + ], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "address", + "name": "tokenIn", + "type": "address" + }, + { + "internalType": "address", + "name": "tokenOut", + "type": "address" + }, + { + "internalType": "uint24", + "name": "fee", + "type": "uint24" + }, + { + "internalType": "address", + "name": "recipient", + "type": "address" + }, + { + "internalType": "uint256", + "name": "deadline", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountIn", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountOutMinimum", + "type": "uint256" + }, + { + "internalType": "uint160", + "name": "sqrtPriceLimitX96", + "type": "uint160" + } + ], + "internalType": "struct ISwapRouter.ExactInputSingleParams", + "name": "params", + "type": "tuple" + } + ], + "name": "exactInputSingle", + "outputs": [ + { + "internalType": "uint256", + "name": "amountOut", + "type": "uint256" + } + ], + "stateMutability": "payable", + "type": "function" + } + ] + }, + "GoodDollar": { + "address": "0x09635F643e140090A9A8Dcd712eD6285858ceBef", + "abi": [ + "constructor(address _host)", + "error SF_TOKEN_AGREEMENT_ALREADY_EXISTS()", + "error SF_TOKEN_AGREEMENT_DOES_NOT_EXIST()", + "error SF_TOKEN_BURN_INSUFFICIENT_BALANCE()", + "error SF_TOKEN_MOVE_INSUFFICIENT_BALANCE()", + "error SF_TOKEN_ONLY_HOST()", + "error SF_TOKEN_ONLY_LISTED_AGREEMENT()", + "error SUPER_TOKEN_APPROVE_FROM_ZERO_ADDRESS()", + "error SUPER_TOKEN_APPROVE_TO_ZERO_ADDRESS()", + "error SUPER_TOKEN_BURN_FROM_ZERO_ADDRESS()", + "error SUPER_TOKEN_CALLER_IS_NOT_OPERATOR_FOR_HOLDER()", + "error SUPER_TOKEN_INFLATIONARY_DEFLATIONARY_NOT_SUPPORTED()", + "error SUPER_TOKEN_MINT_TO_ZERO_ADDRESS()", + "error SUPER_TOKEN_NOT_ERC777_TOKENS_RECIPIENT()", + "error SUPER_TOKEN_NO_UNDERLYING_TOKEN()", + "error SUPER_TOKEN_ONLY_HOST()", + "error SUPER_TOKEN_ONLY_SELF()", + "error SUPER_TOKEN_TRANSFER_FROM_ZERO_ADDRESS()", + "error SUPER_TOKEN_TRANSFER_TO_ZERO_ADDRESS()", + "event AgreementCreated(address indexed agreementClass, bytes32 id, bytes32[] data)", + "event AgreementLiquidated(address indexed agreementClass, bytes32 id, address indexed penaltyAccount, address indexed rewardAccount, uint256 rewardAmount)", + "event AgreementLiquidatedBy(address liquidatorAccount, address indexed agreementClass, bytes32 id, address indexed penaltyAccount, address indexed bondAccount, uint256 rewardAmount, uint256 bailoutAmount)", + "event AgreementLiquidatedV2(address indexed agreementClass, bytes32 id, address indexed liquidatorAccount, address indexed targetAccount, address rewardAmountReceiver, uint256 rewardAmount, int256 targetAccountBalanceDelta, bytes liquidationTypeData)", + "event AgreementStateUpdated(address indexed agreementClass, address indexed account, uint256 slotId)", + "event AgreementTerminated(address indexed agreementClass, bytes32 id)", + "event AgreementUpdated(address indexed agreementClass, bytes32 id, bytes32[] data)", + "event Approval(address indexed owner, address indexed spender, uint256 value)", + "event AuthorizedOperator(address indexed operator, address indexed tokenHolder)", + "event Bailout(address indexed bailoutAccount, uint256 bailoutAmount)", + "event Burned(address indexed operator, address indexed from, uint256 amount, bytes data, bytes operatorData)", + "event CodeUpdated(bytes32 uuid, address codeAddress)", + "event Initialized(uint8 version)", + "event Minted(address indexed operator, address indexed to, uint256 amount, bytes data, bytes operatorData)", + "event Paused(address account)", + "event RevokedOperator(address indexed operator, address indexed tokenHolder)", + "event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole)", + "event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender)", + "event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender)", + "event Sent(address indexed operator, address indexed from, address indexed to, uint256 amount, bytes data, bytes operatorData)", + "event TokenDowngraded(address indexed account, uint256 amount)", + "event TokenUpgraded(address indexed account, uint256 amount)", + "event Transfer(address indexed from, address indexed to, uint256 value, bytes data)", + "event Transfer(address indexed from, address indexed to, uint256 value)", + "event TransferFee(address from, address to, uint256 amount, uint256 fee, bool senderPays)", + "event Unpaused(address account)", + "function DEFAULT_ADMIN_ROLE() view returns (bytes32)", + "function DOMAIN_SEPARATOR() view returns (bytes32)", + "function MINTER_ROLE() view returns (bytes32)", + "function PAUSER_ROLE() view returns (bytes32)", + "function addMinter(address _minter)", + "function addPauser(address _pauser)", + "function allowance(address account, address spender) view returns (uint256)", + "function approve(address spender, uint256 amount) returns (bool)", + "function authorizeOperator(address operator)", + "function balanceOf(address account) view returns (uint256 balance)", + "function burn(uint256 amount)", + "function burn(uint256 amount, bytes data)", + "function burnFrom(address account, uint256 amount)", + "function cap() view returns (uint256)", + "function castrate()", + "function createAgreement(bytes32 id, bytes32[] data)", + "function decimals() pure returns (uint8)", + "function decreaseAllowance(address spender, uint256 subtractedValue) returns (bool)", + "function defaultOperators() view returns (address[])", + "function disableHostOperations() view returns (bool)", + "function downgrade(uint256 amount)", + "function enableHostOperations(bool enabled)", + "function feeRecipient() view returns (address)", + "function formula() view returns (address)", + "function getAccountActiveAgreements(address account) view returns (address[])", + "function getAgreementData(address agreementClass, bytes32 id, uint256 dataLength) view returns (bytes32[] data)", + "function getAgreementStateSlot(address agreementClass, address account, uint256 slotId, uint256 dataLength) view returns (bytes32[] slotData)", + "function getCodeAddress() view returns (address codeAddress)", + "function getFees(uint256 amount, address sender, address recipient) view returns (uint256 fee, bool senderPays)", + "function getFees(uint256 amount) view returns (uint256 fee, bool senderPays)", + "function getHost() view returns (address host)", + "function getRoleAdmin(bytes32 role) view returns (bytes32)", + "function getRoleMember(bytes32 role, uint256 index) view returns (address)", + "function getRoleMemberCount(bytes32 role) view returns (uint256)", + "function getUnderlyingToken() view returns (address)", + "function grantRole(bytes32 role, address account)", + "function granularity() pure returns (uint256)", + "function hasRole(bytes32 role, address account) view returns (bool)", + "function identity() view returns (address)", + "function increaseAllowance(address spender, uint256 addedValue) returns (bool)", + "function initialize(address underlyingToken, uint8 underlyingDecimals, string n, string s)", + "function initialize(string n, string s, uint256 _cap, address _formula, address _identity, address _feeRecipient, address _owner)", + "function isAccountCritical(address account, uint256 timestamp) view returns (bool isCritical)", + "function isAccountCriticalNow(address account) view returns (bool isCritical)", + "function isAccountSolvent(address account, uint256 timestamp) view returns (bool isSolvent)", + "function isAccountSolventNow(address account) view returns (bool isSolvent)", + "function isMinter(address _minter) view returns (bool)", + "function isOperatorFor(address operator, address tokenHolder) view returns (bool)", + "function isPauser(address _pauser) view returns (bool)", + "function makeLiquidationPayoutsV2(bytes32 id, bytes liquidationTypeData, address liquidatorAccount, bool useDefaultRewardAccount, address targetAccount, uint256 rewardAmount, int256 targetAccountBalanceDelta)", + "function mint(address to, uint256 amount) returns (bool)", + "function name() view returns (string)", + "function nonces(address owner) view returns (uint256)", + "function operationApprove(address account, address spender, uint256 amount)", + "function operationDowngrade(address account, uint256 amount)", + "function operationTransferFrom(address account, address spender, address recipient, uint256 amount)", + "function operationUpgrade(address account, uint256 amount)", + "function operatorBurn(address account, uint256 amount, bytes data, bytes operatorData)", + "function operatorSend(address sender, address recipient, uint256 amount, bytes data, bytes operatorData)", + "function owner() view returns (address)", + "function pause()", + "function paused() view returns (bool)", + "function permit(address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s)", + "function proxiableUUID() pure returns (bytes32)", + "function realtimeBalanceOf(address account, uint256 timestamp) view returns (int256 availableBalance, uint256 deposit, uint256 owedDeposit)", + "function realtimeBalanceOfNow(address account) view returns (int256 availableBalance, uint256 deposit, uint256 owedDeposit, uint256 timestamp)", + "function renounceMinter()", + "function renounceRole(bytes32 role, address account)", + "function revokeOperator(address operator)", + "function revokeRole(bytes32 role, address account)", + "function selfApproveFor(address account, address spender, uint256 amount)", + "function selfBurn(address account, uint256 amount, bytes userData)", + "function selfMint(address account, uint256 amount, bytes userData)", + "function selfTransferFrom(address holder, address spender, address recipient, uint256 amount)", + "function send(address recipient, uint256 amount, bytes data)", + "function setFeeRecipient(address _feeRecipient)", + "function setFormula(address _formula)", + "function setIdentity(address _identity)", + "function settleBalance(address account, int256 delta)", + "function supportsInterface(bytes4 interfaceId) view returns (bool)", + "function symbol() view returns (string)", + "function terminateAgreement(bytes32 id, uint256 dataLength)", + "function totalSupply() view returns (uint256)", + "function transfer(address to, uint256 amount) returns (bool)", + "function transferAll(address recipient)", + "function transferAndCall(address to, uint256 amount, bytes data) returns (bool)", + "function transferFrom(address holder, address recipient, uint256 amount) returns (bool)", + "function transferOwnership(address _owner)", + "function unpause()", + "function updateAgreementData(bytes32 id, bytes32[] data)", + "function updateAgreementStateSlot(address account, uint256 slotId, bytes32[] slotData)", + "function updateCode(address newAddress)", + "function upgrade(uint256 amount)", + "function upgradeTo(address to, uint256 amount, bytes data)" + ] + }, + "SuperFluidResolver": { + "address": "0x41549B6C39A529EA574f35b745b00f716869D2a0", + "abi": [] + }, + "DirectPaymentsPool": { + "address": "0x9E545E3C0baAB3E08CdfD552C960A1050f373042", + "abi": [ + { + "inputs": [ + { + "internalType": "contract ISuperfluid", + "name": "_host", + "type": "address" + }, + { + "internalType": "contract ISwapRouter", + "name": "_swapRouter", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "ALREADY_CLAIMED", + "type": "error" + }, + { + "inputs": [], + "name": "EMPTY_MANAGER", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "int96", + "name": "curFeeRate", + "type": "int96" + }, + { + "internalType": "int96", + "name": "newFeeRate", + "type": "int96" + } + ], + "name": "FEE_FLOW_FAILED", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "int96", + "name": "flowRate", + "type": "int96" + } + ], + "name": "MIN_FLOWRATE", + "type": "error" + }, + { + "inputs": [], + "name": "NFTTYPE_CHANGED", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "NFT_MISSING", + "type": "error" + }, + { + "inputs": [], + "name": "NOT_MANAGER", + "type": "error" + }, + { + "inputs": [], + "name": "NO_BALANCE", + "type": "error" + }, + { + "inputs": [], + "name": "NotAcceptedSuperToken", + "type": "error" + }, + { + "inputs": [], + "name": "NotImplemented", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "ONLY_HOST_OR_SENDER", + "type": "error" + }, + { + "inputs": [], + "name": "OVER_GLOBAL_LIMITS", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "OVER_MEMBER_LIMITS", + "type": "error" + }, + { + "inputs": [], + "name": "UNSUPPORTED_NFT", + "type": "error" + }, + { + "inputs": [], + "name": "UNSUPPORTED_TOKEN", + "type": "error" + }, + { + "inputs": [], + "name": "UnauthorizedHost", + "type": "error" + }, + { + "inputs": [], + "name": "ZERO_ADDRESS", + "type": "error" + }, + { + "inputs": [], + "name": "ZERO_AMOUNT", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "previousAdmin", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "newAdmin", + "type": "address" + } + ], + "name": "AdminChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "beacon", + "type": "address" + } + ], + "name": "BeaconUpgraded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "components": [ + { + "internalType": "uint16", + "name": "subtype", + "type": "uint16" + }, + { + "internalType": "uint32", + "name": "timestamp", + "type": "uint32" + }, + { + "internalType": "uint256", + "name": "quantity", + "type": "uint256" + }, + { + "internalType": "string", + "name": "eventUri", + "type": "string" + }, + { + "internalType": "address[]", + "name": "contributers", + "type": "address[]" + } + ], + "indexed": false, + "internalType": "struct ProvableNFT.EventData", + "name": "eventData", + "type": "tuple" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "rewardPerContributer", + "type": "uint256" + } + ], + "name": "EventRewardClaimed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint8", + "name": "version", + "type": "uint8" + } + ], + "name": "Initialized", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "totalRewards", + "type": "uint256" + }, + { + "components": [ + { + "internalType": "uint32", + "name": "nftType", + "type": "uint32" + }, + { + "internalType": "uint16", + "name": "version", + "type": "uint16" + }, + { + "internalType": "string", + "name": "nftUri", + "type": "string" + }, + { + "components": [ + { + "internalType": "uint16", + "name": "subtype", + "type": "uint16" + }, + { + "internalType": "uint32", + "name": "timestamp", + "type": "uint32" + }, + { + "internalType": "uint256", + "name": "quantity", + "type": "uint256" + }, + { + "internalType": "string", + "name": "eventUri", + "type": "string" + }, + { + "internalType": "address[]", + "name": "contributers", + "type": "address[]" + } + ], + "internalType": "struct ProvableNFT.EventData[]", + "name": "events", + "type": "tuple[]" + } + ], + "indexed": false, + "internalType": "struct ProvableNFT.NFTData", + "name": "nftData", + "type": "tuple" + } + ], + "name": "NFTClaimed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "contributer", + "type": "address" + } + ], + "name": "NOT_MEMBER_OR_WHITELISTED", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "pool", + "type": "address" + }, + { + "indexed": true, + "internalType": "string", + "name": "projectId", + "type": "string" + }, + { + "indexed": false, + "internalType": "string", + "name": "ipfs", + "type": "string" + }, + { + "indexed": true, + "internalType": "uint32", + "name": "nftType", + "type": "uint32" + }, + { + "components": [ + { + "internalType": "uint32", + "name": "nftType", + "type": "uint32" + }, + { + "internalType": "uint16[]", + "name": "validEvents", + "type": "uint16[]" + }, + { + "internalType": "uint128[]", + "name": "rewardPerEvent", + "type": "uint128[]" + }, + { + "internalType": "address", + "name": "manager", + "type": "address" + }, + { + "internalType": "contract IMembersValidator", + "name": "membersValidator", + "type": "address" + }, + { + "internalType": "contract IIdentityV2", + "name": "uniquenessValidator", + "type": "address" + }, + { + "internalType": "contract IERC20Upgradeable", + "name": "rewardToken", + "type": "address" + } + ], + "indexed": false, + "internalType": "struct DirectPaymentsPool.PoolSettings", + "name": "poolSettings", + "type": "tuple" + }, + { + "components": [ + { + "internalType": "uint256", + "name": "maxTotalPerMonth", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "maxMemberPerMonth", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "maxMemberPerDay", + "type": "uint256" + } + ], + "indexed": false, + "internalType": "struct DirectPaymentsPool.SafetyLimits", + "name": "poolLimits", + "type": "tuple" + } + ], + "name": "PoolCreated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "maxTotalPerMonth", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "maxMemberPerMonth", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "maxMemberPerDay", + "type": "uint256" + } + ], + "indexed": false, + "internalType": "struct DirectPaymentsPool.SafetyLimits", + "name": "limits", + "type": "tuple" + } + ], + "name": "PoolLimitsChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "components": [ + { + "internalType": "uint32", + "name": "nftType", + "type": "uint32" + }, + { + "internalType": "uint16[]", + "name": "validEvents", + "type": "uint16[]" + }, + { + "internalType": "uint128[]", + "name": "rewardPerEvent", + "type": "uint128[]" + }, + { + "internalType": "address", + "name": "manager", + "type": "address" + }, + { + "internalType": "contract IMembersValidator", + "name": "membersValidator", + "type": "address" + }, + { + "internalType": "contract IIdentityV2", + "name": "uniquenessValidator", + "type": "address" + }, + { + "internalType": "contract IERC20Upgradeable", + "name": "rewardToken", + "type": "address" + } + ], + "indexed": false, + "internalType": "struct DirectPaymentsPool.PoolSettings", + "name": "settings", + "type": "tuple" + } + ], + "name": "PoolSettingsChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "previousAdminRole", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "newAdminRole", + "type": "bytes32" + } + ], + "name": "RoleAdminChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleGranted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleRevoked", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "supporter", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "previousContribution", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "contribution", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "int96", + "name": "previousFlowRate", + "type": "int96" + }, + { + "indexed": false, + "internalType": "int96", + "name": "flowRate", + "type": "int96" + }, + { + "indexed": false, + "internalType": "bool", + "name": "isFlowUpdate", + "type": "bool" + } + ], + "name": "SupporterUpdated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "implementation", + "type": "address" + } + ], + "name": "Upgraded", + "type": "event" + }, + { + "inputs": [], + "name": "CFAV1_TYPE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "DEFAULT_ADMIN_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "MANAGER_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "MEMBER_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "MINTER_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "MIN_FLOW_RATE", + "outputs": [ + { + "internalType": "int96", + "name": "", + "type": "int96" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract ISuperToken", + "name": "superToken", + "type": "address" + }, + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "agreementData", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "ctx", + "type": "bytes" + } + ], + "name": "afterAgreementCreated", + "outputs": [ + { + "internalType": "bytes", + "name": "newCtx", + "type": "bytes" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract ISuperToken", + "name": "superToken", + "type": "address" + }, + { + "internalType": "address", + "name": "agreementClass", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "agreementData", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "cbdata", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "ctx", + "type": "bytes" + } + ], + "name": "afterAgreementTerminated", + "outputs": [ + { + "internalType": "bytes", + "name": "newCtx", + "type": "bytes" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract ISuperToken", + "name": "superToken", + "type": "address" + }, + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "agreementData", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "cbdata", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "ctx", + "type": "bytes" + } + ], + "name": "afterAgreementUpdated", + "outputs": [ + { + "internalType": "bytes", + "name": "newCtx", + "type": "bytes" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract ISuperToken", + "name": "superToken", + "type": "address" + }, + { + "internalType": "address", + "name": "agreementClass", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "name": "beforeAgreementCreated", + "outputs": [ + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract ISuperToken", + "name": "superToken", + "type": "address" + }, + { + "internalType": "address", + "name": "agreementClass", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "agreementData", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "name": "beforeAgreementTerminated", + "outputs": [ + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract ISuperToken", + "name": "superToken", + "type": "address" + }, + { + "internalType": "address", + "name": "agreementClass", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "agreementData", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "name": "beforeAgreementUpdated", + "outputs": [ + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "cfaV1", + "outputs": [ + { + "internalType": "contract ISuperfluid", + "name": "host", + "type": "address" + }, + { + "internalType": "contract IConstantFlowAgreementV1", + "name": "cfa", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_nftId", + "type": "uint256" + } + ], + "name": "claim", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_nftId", + "type": "uint256" + }, + { + "components": [ + { + "internalType": "uint32", + "name": "nftType", + "type": "uint32" + }, + { + "internalType": "uint16", + "name": "version", + "type": "uint16" + }, + { + "internalType": "string", + "name": "nftUri", + "type": "string" + }, + { + "components": [ + { + "internalType": "uint16", + "name": "subtype", + "type": "uint16" + }, + { + "internalType": "uint32", + "name": "timestamp", + "type": "uint32" + }, + { + "internalType": "uint256", + "name": "quantity", + "type": "uint256" + }, + { + "internalType": "string", + "name": "eventUri", + "type": "string" + }, + { + "internalType": "address[]", + "name": "contributers", + "type": "address[]" + } + ], + "internalType": "struct ProvableNFT.EventData[]", + "name": "events", + "type": "tuple[]" + } + ], + "internalType": "struct ProvableNFT.NFTData", + "name": "_data", + "type": "tuple" + } + ], + "name": "claim", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "claimedNfts", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_user", + "type": "address" + } + ], + "name": "getRealtimeContribution", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getRealtimeStats", + "outputs": [ + { + "internalType": "uint256", + "name": "netIncome", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "totalFees", + "type": "uint256" + }, + { + "internalType": "int96", + "name": "incomeFlowRate", + "type": "int96" + }, + { + "internalType": "int96", + "name": "feeRate", + "type": "int96" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getRegistry", + "outputs": [ + { + "internalType": "contract DirectPaymentsFactory", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleAdmin", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "globalLimits", + "outputs": [ + { + "internalType": "uint128", + "name": "daily", + "type": "uint128" + }, + { + "internalType": "uint128", + "name": "monthly", + "type": "uint128" + }, + { + "internalType": "uint128", + "name": "total", + "type": "uint128" + }, + { + "internalType": "uint64", + "name": "lastReward", + "type": "uint64" + }, + { + "internalType": "uint64", + "name": "lastMonth", + "type": "uint64" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "grantRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "address", + "name": "swapFrom", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "minReturn", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "deadline", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "path", + "type": "bytes" + } + ], + "internalType": "struct GoodCollectiveSuperApp.SwapData", + "name": "_customData", + "type": "tuple" + }, + { + "internalType": "address", + "name": "_sender", + "type": "address" + }, + { + "internalType": "bytes", + "name": "_ctx", + "type": "bytes" + } + ], + "name": "handleSwap", + "outputs": [ + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "hasRole", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "host", + "outputs": [ + { + "internalType": "contract ISuperfluid", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract ProvableNFT", + "name": "_nft", + "type": "address" + }, + { + "components": [ + { + "internalType": "uint32", + "name": "nftType", + "type": "uint32" + }, + { + "internalType": "uint16[]", + "name": "validEvents", + "type": "uint16[]" + }, + { + "internalType": "uint128[]", + "name": "rewardPerEvent", + "type": "uint128[]" + }, + { + "internalType": "address", + "name": "manager", + "type": "address" + }, + { + "internalType": "contract IMembersValidator", + "name": "membersValidator", + "type": "address" + }, + { + "internalType": "contract IIdentityV2", + "name": "uniquenessValidator", + "type": "address" + }, + { + "internalType": "contract IERC20Upgradeable", + "name": "rewardToken", + "type": "address" + } + ], + "internalType": "struct DirectPaymentsPool.PoolSettings", + "name": "_settings", + "type": "tuple" + }, + { + "components": [ + { + "internalType": "uint256", + "name": "maxTotalPerMonth", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "maxMemberPerMonth", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "maxMemberPerDay", + "type": "uint256" + } + ], + "internalType": "struct DirectPaymentsPool.SafetyLimits", + "name": "_limits", + "type": "tuple" + }, + { + "internalType": "contract DirectPaymentsFactory", + "name": "_registry", + "type": "address" + } + ], + "name": "initialize", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract ISuperToken", + "name": "_superToken", + "type": "address" + } + ], + "name": "isAcceptedSuperToken", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "limits", + "outputs": [ + { + "internalType": "uint256", + "name": "maxTotalPerMonth", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "maxMemberPerMonth", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "maxMemberPerDay", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "memberLimits", + "outputs": [ + { + "internalType": "uint128", + "name": "daily", + "type": "uint128" + }, + { + "internalType": "uint128", + "name": "monthly", + "type": "uint128" + }, + { + "internalType": "uint128", + "name": "total", + "type": "uint128" + }, + { + "internalType": "uint64", + "name": "lastReward", + "type": "uint64" + }, + { + "internalType": "uint64", + "name": "lastMonth", + "type": "uint64" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_to", + "type": "address" + }, + { + "components": [ + { + "internalType": "uint32", + "name": "nftType", + "type": "uint32" + }, + { + "internalType": "uint16", + "name": "version", + "type": "uint16" + }, + { + "internalType": "string", + "name": "nftUri", + "type": "string" + }, + { + "components": [ + { + "internalType": "uint16", + "name": "subtype", + "type": "uint16" + }, + { + "internalType": "uint32", + "name": "timestamp", + "type": "uint32" + }, + { + "internalType": "uint256", + "name": "quantity", + "type": "uint256" + }, + { + "internalType": "string", + "name": "eventUri", + "type": "string" + }, + { + "internalType": "address[]", + "name": "contributers", + "type": "address[]" + } + ], + "internalType": "struct ProvableNFT.EventData[]", + "name": "events", + "type": "tuple[]" + } + ], + "internalType": "struct ProvableNFT.NFTData", + "name": "_nftData", + "type": "tuple" + }, + { + "internalType": "bool", + "name": "withClaim", + "type": "bool" + } + ], + "name": "mintNFT", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "nft", + "outputs": [ + { + "internalType": "contract ProvableNFT", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "onERC721Received", + "outputs": [ + { + "internalType": "bytes4", + "name": "", + "type": "bytes4" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_sender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "name": "onTokenTransfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "proxiableUUID", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "registry", + "outputs": [ + { + "internalType": "contract DirectPaymentsFactory", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "renounceRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "revokeRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "maxTotalPerMonth", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "maxMemberPerMonth", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "maxMemberPerDay", + "type": "uint256" + } + ], + "internalType": "struct DirectPaymentsPool.SafetyLimits", + "name": "_limits", + "type": "tuple" + } + ], + "name": "setPoolLimits", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "uint32", + "name": "nftType", + "type": "uint32" + }, + { + "internalType": "uint16[]", + "name": "validEvents", + "type": "uint16[]" + }, + { + "internalType": "uint128[]", + "name": "rewardPerEvent", + "type": "uint128[]" + }, + { + "internalType": "address", + "name": "manager", + "type": "address" + }, + { + "internalType": "contract IMembersValidator", + "name": "membersValidator", + "type": "address" + }, + { + "internalType": "contract IIdentityV2", + "name": "uniquenessValidator", + "type": "address" + }, + { + "internalType": "contract IERC20Upgradeable", + "name": "rewardToken", + "type": "address" + } + ], + "internalType": "struct DirectPaymentsPool.PoolSettings", + "name": "_settings", + "type": "tuple" + } + ], + "name": "setPoolSettings", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "settings", + "outputs": [ + { + "internalType": "uint32", + "name": "nftType", + "type": "uint32" + }, + { + "internalType": "address", + "name": "manager", + "type": "address" + }, + { + "internalType": "contract IMembersValidator", + "name": "membersValidator", + "type": "address" + }, + { + "internalType": "contract IIdentityV2", + "name": "uniquenessValidator", + "type": "address" + }, + { + "internalType": "contract IERC20Upgradeable", + "name": "rewardToken", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "stats", + "outputs": [ + { + "internalType": "uint256", + "name": "netIncome", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "totalFees", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "lastUpdate", + "type": "uint256" + }, + { + "internalType": "address", + "name": "lastFeeRecipient", + "type": "address" + }, + { + "internalType": "int96", + "name": "lastIncomeRate", + "type": "int96" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "superToken", + "outputs": [ + { + "internalType": "contract ISuperToken", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_sender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "_ctx", + "type": "bytes" + } + ], + "name": "support", + "outputs": [ + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "supporters", + "outputs": [ + { + "internalType": "uint256", + "name": "contribution", + "type": "uint256" + }, + { + "internalType": "int96", + "name": "flowRate", + "type": "int96" + }, + { + "internalType": "uint128", + "name": "lastUpdated", + "type": "uint128" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "swapRouter", + "outputs": [ + { + "internalType": "contract ISwapRouter", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newImplementation", + "type": "address" + } + ], + "name": "upgradeTo", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newImplementation", + "type": "address" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "upgradeToAndCall", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "upgradeToLatest", + "outputs": [], + "stateMutability": "payable", + "type": "function" + } + ] + }, + "ProvableNFT_Implementation": { + "address": "0xa82fF9aFd8f496c3d6ac40E2a0F282E47488CFc9", + "abi": [ + { + "inputs": [ + { + "internalType": "bytes32", + "name": "dataHash", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "tokenId", + "type": "bytes32" + } + ], + "name": "BAD_DATAHASH", + "type": "error" + }, + { + "inputs": [], + "name": "BAD_NFTTYPE", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint32", + "name": "", + "type": "uint32" + } + ], + "name": "NOT_MANAGER", + "type": "error" + }, + { + "inputs": [], + "name": "NOT_MINTER", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "previousAdmin", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "newAdmin", + "type": "address" + } + ], + "name": "AdminChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "approved", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "indexed": false, + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "ApprovalForAll", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "beacon", + "type": "address" + } + ], + "name": "BeaconUpgraded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint8", + "name": "version", + "type": "uint8" + } + ], + "name": "Initialized", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "bytes32", + "name": "nftDataHash", + "type": "bytes32" + }, + { + "components": [ + { + "internalType": "uint32", + "name": "nftType", + "type": "uint32" + }, + { + "internalType": "uint16", + "name": "version", + "type": "uint16" + }, + { + "internalType": "string", + "name": "nftUri", + "type": "string" + }, + { + "components": [ + { + "internalType": "uint16", + "name": "subtype", + "type": "uint16" + }, + { + "internalType": "uint32", + "name": "timestamp", + "type": "uint32" + }, + { + "internalType": "uint256", + "name": "quantity", + "type": "uint256" + }, + { + "internalType": "string", + "name": "eventUri", + "type": "string" + }, + { + "internalType": "address[]", + "name": "contributers", + "type": "address[]" + } + ], + "internalType": "struct ProvableNFT.EventData[]", + "name": "events", + "type": "tuple[]" + } + ], + "indexed": false, + "internalType": "struct ProvableNFT.NFTData", + "name": "nftData", + "type": "tuple" + } + ], + "name": "ProvableNftMinted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "previousAdminRole", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "newAdminRole", + "type": "bytes32" + } + ], + "name": "RoleAdminChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleGranted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleRevoked", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "implementation", + "type": "address" + } + ], + "name": "Upgraded", + "type": "event" + }, + { + "inputs": [], + "name": "DEFAULT_ADMIN_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "MINTER_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_manager", + "type": "address" + }, + { + "internalType": "uint32", + "name": "_nftType", + "type": "uint32" + } + ], + "name": "addManager", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "getApproved", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint32", + "name": "_nftType", + "type": "uint32" + } + ], + "name": "getManagerRole", + "outputs": [ + { + "internalType": "bytes32", + "name": "roleHash", + "type": "bytes32" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_tokenId", + "type": "uint256" + } + ], + "name": "getNFTData", + "outputs": [ + { + "components": [ + { + "internalType": "uint32", + "name": "nftType", + "type": "uint32" + }, + { + "internalType": "uint16", + "name": "version", + "type": "uint16" + }, + { + "internalType": "string", + "name": "nftUri", + "type": "string" + }, + { + "components": [ + { + "internalType": "uint16", + "name": "subtype", + "type": "uint16" + }, + { + "internalType": "uint32", + "name": "timestamp", + "type": "uint32" + }, + { + "internalType": "uint256", + "name": "quantity", + "type": "uint256" + }, + { + "internalType": "string", + "name": "eventUri", + "type": "string" + }, + { + "internalType": "address[]", + "name": "contributers", + "type": "address[]" + } + ], + "internalType": "struct ProvableNFT.EventData[]", + "name": "events", + "type": "tuple[]" + } + ], + "internalType": "struct ProvableNFT.NFTData", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_tokenId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_index", + "type": "uint256" + } + ], + "name": "getNFTEvent", + "outputs": [ + { + "components": [ + { + "internalType": "uint16", + "name": "subtype", + "type": "uint16" + }, + { + "internalType": "uint32", + "name": "timestamp", + "type": "uint32" + }, + { + "internalType": "uint256", + "name": "quantity", + "type": "uint256" + }, + { + "internalType": "string", + "name": "eventUri", + "type": "string" + }, + { + "internalType": "address[]", + "name": "contributers", + "type": "address[]" + } + ], + "internalType": "struct ProvableNFT.EventData", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_tokenId", + "type": "uint256" + } + ], + "name": "getNFTEvents", + "outputs": [ + { + "components": [ + { + "internalType": "uint16", + "name": "subtype", + "type": "uint16" + }, + { + "internalType": "uint32", + "name": "timestamp", + "type": "uint32" + }, + { + "internalType": "uint256", + "name": "quantity", + "type": "uint256" + }, + { + "internalType": "string", + "name": "eventUri", + "type": "string" + }, + { + "internalType": "address[]", + "name": "contributers", + "type": "address[]" + } + ], + "internalType": "struct ProvableNFT.EventData[]", + "name": "", + "type": "tuple[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleAdmin", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "grantRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "hasRole", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "_name", + "type": "string" + }, + { + "internalType": "string", + "name": "_symbol", + "type": "string" + } + ], + "name": "initialize", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "isApprovedForAll", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_to", + "type": "address" + }, + { + "internalType": "string", + "name": "_uri", + "type": "string" + }, + { + "internalType": "bytes32", + "name": "_nftDataHash", + "type": "bytes32" + } + ], + "name": "mint", + "outputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_to", + "type": "address" + }, + { + "components": [ + { + "internalType": "uint32", + "name": "nftType", + "type": "uint32" + }, + { + "internalType": "uint16", + "name": "version", + "type": "uint16" + }, + { + "internalType": "string", + "name": "nftUri", + "type": "string" + }, + { + "components": [ + { + "internalType": "uint16", + "name": "subtype", + "type": "uint16" + }, + { + "internalType": "uint32", + "name": "timestamp", + "type": "uint32" + }, + { + "internalType": "uint256", + "name": "quantity", + "type": "uint256" + }, + { + "internalType": "string", + "name": "eventUri", + "type": "string" + }, + { + "internalType": "address[]", + "name": "contributers", + "type": "address[]" + } + ], + "internalType": "struct ProvableNFT.EventData[]", + "name": "events", + "type": "tuple[]" + } + ], + "internalType": "struct ProvableNFT.NFTData", + "name": "_nftData", + "type": "tuple" + }, + { + "internalType": "bool", + "name": "_withStore", + "type": "bool" + }, + { + "internalType": "bytes", + "name": "_callData", + "type": "bytes" + } + ], + "name": "mintPermissioned", + "outputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ownerOf", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_tokenId", + "type": "uint256" + }, + { + "components": [ + { + "internalType": "uint32", + "name": "nftType", + "type": "uint32" + }, + { + "internalType": "uint16", + "name": "version", + "type": "uint16" + }, + { + "internalType": "string", + "name": "nftUri", + "type": "string" + }, + { + "components": [ + { + "internalType": "uint16", + "name": "subtype", + "type": "uint16" + }, + { + "internalType": "uint32", + "name": "timestamp", + "type": "uint32" + }, + { + "internalType": "uint256", + "name": "quantity", + "type": "uint256" + }, + { + "internalType": "string", + "name": "eventUri", + "type": "string" + }, + { + "internalType": "address[]", + "name": "contributers", + "type": "address[]" + } + ], + "internalType": "struct ProvableNFT.EventData[]", + "name": "events", + "type": "tuple[]" + } + ], + "internalType": "struct ProvableNFT.NFTData", + "name": "_nftData", + "type": "tuple" + } + ], + "name": "proveNFTData", + "outputs": [ + { + "components": [ + { + "internalType": "uint32", + "name": "nftType", + "type": "uint32" + }, + { + "internalType": "uint16", + "name": "version", + "type": "uint16" + }, + { + "internalType": "string", + "name": "nftUri", + "type": "string" + }, + { + "components": [ + { + "internalType": "uint16", + "name": "subtype", + "type": "uint16" + }, + { + "internalType": "uint32", + "name": "timestamp", + "type": "uint32" + }, + { + "internalType": "uint256", + "name": "quantity", + "type": "uint256" + }, + { + "internalType": "string", + "name": "eventUri", + "type": "string" + }, + { + "internalType": "address[]", + "name": "contributers", + "type": "address[]" + } + ], + "internalType": "struct ProvableNFT.EventData[]", + "name": "events", + "type": "tuple[]" + } + ], + "internalType": "struct ProvableNFT.NFTData", + "name": "data", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "proxiableUUID", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "renounceRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "revokeRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "setApprovalForAll", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "tokenURI", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newImplementation", + "type": "address" + } + ], + "name": "upgradeTo", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newImplementation", + "type": "address" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "upgradeToAndCall", + "outputs": [], + "stateMutability": "payable", + "type": "function" + } + ] + }, + "ProvableNFT_Proxy": { + "address": "0x1613beB3B2C4f22Ee086B2b38C1476A3cE7f78E8", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "_logic", + "type": "address" + }, + { + "internalType": "bytes", + "name": "_data", + "type": "bytes" + } + ], + "stateMutability": "payable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "previousAdmin", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "newAdmin", + "type": "address" + } + ], + "name": "AdminChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "beacon", + "type": "address" + } + ], + "name": "BeaconUpgraded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "implementation", + "type": "address" + } + ], + "name": "Upgraded", + "type": "event" + }, + { + "stateMutability": "payable", + "type": "fallback" + }, + { + "stateMutability": "payable", + "type": "receive" + } + ] + }, + "ProvableNFT": { + "address": "0x1613beB3B2C4f22Ee086B2b38C1476A3cE7f78E8", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "previousAdmin", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "newAdmin", + "type": "address" + } + ], + "name": "AdminChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "beacon", + "type": "address" + } + ], + "name": "BeaconUpgraded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "implementation", + "type": "address" + } + ], + "name": "Upgraded", + "type": "event" + }, + { + "stateMutability": "payable", + "type": "fallback" + }, + { + "stateMutability": "payable", + "type": "receive" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "dataHash", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "tokenId", + "type": "bytes32" + } + ], + "name": "BAD_DATAHASH", + "type": "error" + }, + { + "inputs": [], + "name": "BAD_NFTTYPE", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint32", + "name": "", + "type": "uint32" + } + ], + "name": "NOT_MANAGER", + "type": "error" + }, + { + "inputs": [], + "name": "NOT_MINTER", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "approved", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "indexed": false, + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "ApprovalForAll", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint8", + "name": "version", + "type": "uint8" + } + ], + "name": "Initialized", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "bytes32", + "name": "nftDataHash", + "type": "bytes32" + }, + { + "components": [ + { + "internalType": "uint32", + "name": "nftType", + "type": "uint32" + }, + { + "internalType": "uint16", + "name": "version", + "type": "uint16" + }, + { + "internalType": "string", + "name": "nftUri", + "type": "string" + }, + { + "components": [ + { + "internalType": "uint16", + "name": "subtype", + "type": "uint16" + }, + { + "internalType": "uint32", + "name": "timestamp", + "type": "uint32" + }, + { + "internalType": "uint256", + "name": "quantity", + "type": "uint256" + }, + { + "internalType": "string", + "name": "eventUri", + "type": "string" + }, + { + "internalType": "address[]", + "name": "contributers", + "type": "address[]" + } + ], + "internalType": "struct ProvableNFT.EventData[]", + "name": "events", + "type": "tuple[]" + } + ], + "indexed": false, + "internalType": "struct ProvableNFT.NFTData", + "name": "nftData", + "type": "tuple" + } + ], + "name": "ProvableNftMinted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "previousAdminRole", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "newAdminRole", + "type": "bytes32" + } + ], + "name": "RoleAdminChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleGranted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleRevoked", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [], + "name": "DEFAULT_ADMIN_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "MINTER_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_manager", + "type": "address" + }, + { + "internalType": "uint32", + "name": "_nftType", + "type": "uint32" + } + ], + "name": "addManager", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "getApproved", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint32", + "name": "_nftType", + "type": "uint32" + } + ], + "name": "getManagerRole", + "outputs": [ + { + "internalType": "bytes32", + "name": "roleHash", + "type": "bytes32" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_tokenId", + "type": "uint256" + } + ], + "name": "getNFTData", + "outputs": [ + { + "components": [ + { + "internalType": "uint32", + "name": "nftType", + "type": "uint32" + }, + { + "internalType": "uint16", + "name": "version", + "type": "uint16" + }, + { + "internalType": "string", + "name": "nftUri", + "type": "string" + }, + { + "components": [ + { + "internalType": "uint16", + "name": "subtype", + "type": "uint16" + }, + { + "internalType": "uint32", + "name": "timestamp", + "type": "uint32" + }, + { + "internalType": "uint256", + "name": "quantity", + "type": "uint256" + }, + { + "internalType": "string", + "name": "eventUri", + "type": "string" + }, + { + "internalType": "address[]", + "name": "contributers", + "type": "address[]" + } + ], + "internalType": "struct ProvableNFT.EventData[]", + "name": "events", + "type": "tuple[]" + } + ], + "internalType": "struct ProvableNFT.NFTData", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_tokenId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_index", + "type": "uint256" + } + ], + "name": "getNFTEvent", + "outputs": [ + { + "components": [ + { + "internalType": "uint16", + "name": "subtype", + "type": "uint16" + }, + { + "internalType": "uint32", + "name": "timestamp", + "type": "uint32" + }, + { + "internalType": "uint256", + "name": "quantity", + "type": "uint256" + }, + { + "internalType": "string", + "name": "eventUri", + "type": "string" + }, + { + "internalType": "address[]", + "name": "contributers", + "type": "address[]" + } + ], + "internalType": "struct ProvableNFT.EventData", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_tokenId", + "type": "uint256" + } + ], + "name": "getNFTEvents", + "outputs": [ + { + "components": [ + { + "internalType": "uint16", + "name": "subtype", + "type": "uint16" + }, + { + "internalType": "uint32", + "name": "timestamp", + "type": "uint32" + }, + { + "internalType": "uint256", + "name": "quantity", + "type": "uint256" + }, + { + "internalType": "string", + "name": "eventUri", + "type": "string" + }, + { + "internalType": "address[]", + "name": "contributers", + "type": "address[]" + } + ], + "internalType": "struct ProvableNFT.EventData[]", + "name": "", + "type": "tuple[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleAdmin", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "grantRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "hasRole", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "_name", + "type": "string" + }, + { + "internalType": "string", + "name": "_symbol", + "type": "string" + } + ], + "name": "initialize", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "isApprovedForAll", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_to", + "type": "address" + }, + { + "internalType": "string", + "name": "_uri", + "type": "string" + }, + { + "internalType": "bytes32", + "name": "_nftDataHash", + "type": "bytes32" + } + ], + "name": "mint", + "outputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_to", + "type": "address" + }, + { + "components": [ + { + "internalType": "uint32", + "name": "nftType", + "type": "uint32" + }, + { + "internalType": "uint16", + "name": "version", + "type": "uint16" + }, + { + "internalType": "string", + "name": "nftUri", + "type": "string" + }, + { + "components": [ + { + "internalType": "uint16", + "name": "subtype", + "type": "uint16" + }, + { + "internalType": "uint32", + "name": "timestamp", + "type": "uint32" + }, + { + "internalType": "uint256", + "name": "quantity", + "type": "uint256" + }, + { + "internalType": "string", + "name": "eventUri", + "type": "string" + }, + { + "internalType": "address[]", + "name": "contributers", + "type": "address[]" + } + ], + "internalType": "struct ProvableNFT.EventData[]", + "name": "events", + "type": "tuple[]" + } + ], + "internalType": "struct ProvableNFT.NFTData", + "name": "_nftData", + "type": "tuple" + }, + { + "internalType": "bool", + "name": "_withStore", + "type": "bool" + }, + { + "internalType": "bytes", + "name": "_callData", + "type": "bytes" + } + ], + "name": "mintPermissioned", + "outputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ownerOf", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_tokenId", + "type": "uint256" + }, + { + "components": [ + { + "internalType": "uint32", + "name": "nftType", + "type": "uint32" + }, + { + "internalType": "uint16", + "name": "version", + "type": "uint16" + }, + { + "internalType": "string", + "name": "nftUri", + "type": "string" + }, + { + "components": [ + { + "internalType": "uint16", + "name": "subtype", + "type": "uint16" + }, + { + "internalType": "uint32", + "name": "timestamp", + "type": "uint32" + }, + { + "internalType": "uint256", + "name": "quantity", + "type": "uint256" + }, + { + "internalType": "string", + "name": "eventUri", + "type": "string" + }, + { + "internalType": "address[]", + "name": "contributers", + "type": "address[]" + } + ], + "internalType": "struct ProvableNFT.EventData[]", + "name": "events", + "type": "tuple[]" + } + ], + "internalType": "struct ProvableNFT.NFTData", + "name": "_nftData", + "type": "tuple" + } + ], + "name": "proveNFTData", + "outputs": [ + { + "components": [ + { + "internalType": "uint32", + "name": "nftType", + "type": "uint32" + }, + { + "internalType": "uint16", + "name": "version", + "type": "uint16" + }, + { + "internalType": "string", + "name": "nftUri", + "type": "string" + }, + { + "components": [ + { + "internalType": "uint16", + "name": "subtype", + "type": "uint16" + }, + { + "internalType": "uint32", + "name": "timestamp", + "type": "uint32" + }, + { + "internalType": "uint256", + "name": "quantity", + "type": "uint256" + }, + { + "internalType": "string", + "name": "eventUri", + "type": "string" + }, + { + "internalType": "address[]", + "name": "contributers", + "type": "address[]" + } + ], + "internalType": "struct ProvableNFT.EventData[]", + "name": "events", + "type": "tuple[]" + } + ], + "internalType": "struct ProvableNFT.NFTData", + "name": "data", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "proxiableUUID", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "renounceRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "revokeRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "setApprovalForAll", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "tokenURI", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newImplementation", + "type": "address" + } + ], + "name": "upgradeTo", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newImplementation", + "type": "address" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "upgradeToAndCall", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_logic", + "type": "address" + }, + { + "internalType": "bytes", + "name": "_data", + "type": "bytes" + } + ], + "stateMutability": "payable", + "type": "constructor" + } + ] + }, + "DirectPaymentsFactory_Implementation": { + "address": "0x851356ae760d987E095750cCeb3bC6014560891C", + "abi": [ + { + "inputs": [], + "name": "NOT_PROJECT_OWNER", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "previousAdmin", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "newAdmin", + "type": "address" + } + ], + "name": "AdminChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "beacon", + "type": "address" + } + ], + "name": "BeaconUpgraded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint8", + "name": "version", + "type": "uint8" + } + ], + "name": "Initialized", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "pool", + "type": "address" + }, + { + "indexed": true, + "internalType": "string", + "name": "projectId", + "type": "string" + }, + { + "indexed": false, + "internalType": "string", + "name": "ipfs", + "type": "string" + }, + { + "indexed": true, + "internalType": "uint32", + "name": "nftType", + "type": "uint32" + }, + { + "components": [ + { + "internalType": "uint32", + "name": "nftType", + "type": "uint32" + }, + { + "internalType": "uint16[]", + "name": "validEvents", + "type": "uint16[]" + }, + { + "internalType": "uint128[]", + "name": "rewardPerEvent", + "type": "uint128[]" + }, + { + "internalType": "address", + "name": "manager", + "type": "address" + }, + { + "internalType": "contract IMembersValidator", + "name": "membersValidator", + "type": "address" + }, + { + "internalType": "contract IIdentityV2", + "name": "uniquenessValidator", + "type": "address" + }, + { + "internalType": "contract IERC20Upgradeable", + "name": "rewardToken", + "type": "address" + } + ], + "indexed": false, + "internalType": "struct DirectPaymentsPool.PoolSettings", + "name": "poolSettings", + "type": "tuple" + }, + { + "components": [ + { + "internalType": "uint256", + "name": "maxTotalPerMonth", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "maxMemberPerMonth", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "maxMemberPerDay", + "type": "uint256" + } + ], + "indexed": false, + "internalType": "struct DirectPaymentsPool.SafetyLimits", + "name": "poolLimits", + "type": "tuple" + } + ], + "name": "PoolCreated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "pool", + "type": "address" + }, + { + "indexed": false, + "internalType": "string", + "name": "ipfs", + "type": "string" + } + ], + "name": "PoolDetailsChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "pool", + "type": "address" + }, + { + "indexed": false, + "internalType": "bool", + "name": "isVerified", + "type": "bool" + } + ], + "name": "PoolVerifiedChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "previousAdminRole", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "newAdminRole", + "type": "bytes32" + } + ], + "name": "RoleAdminChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleGranted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleRevoked", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "impl", + "type": "address" + } + ], + "name": "UpdatedImpl", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "implementation", + "type": "address" + } + ], + "name": "Upgraded", + "type": "event" + }, + { + "inputs": [], + "name": "DEFAULT_ADMIN_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract DirectPaymentsPool", + "name": "_pool", + "type": "address" + }, + { + "internalType": "string", + "name": "_ipfs", + "type": "string" + } + ], + "name": "changePoolDetails", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "_projectId", + "type": "string" + }, + { + "internalType": "string", + "name": "_ipfs", + "type": "string" + }, + { + "components": [ + { + "internalType": "uint32", + "name": "nftType", + "type": "uint32" + }, + { + "internalType": "uint16[]", + "name": "validEvents", + "type": "uint16[]" + }, + { + "internalType": "uint128[]", + "name": "rewardPerEvent", + "type": "uint128[]" + }, + { + "internalType": "address", + "name": "manager", + "type": "address" + }, + { + "internalType": "contract IMembersValidator", + "name": "membersValidator", + "type": "address" + }, + { + "internalType": "contract IIdentityV2", + "name": "uniquenessValidator", + "type": "address" + }, + { + "internalType": "contract IERC20Upgradeable", + "name": "rewardToken", + "type": "address" + } + ], + "internalType": "struct DirectPaymentsPool.PoolSettings", + "name": "_settings", + "type": "tuple" + }, + { + "components": [ + { + "internalType": "uint256", + "name": "maxTotalPerMonth", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "maxMemberPerMonth", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "maxMemberPerDay", + "type": "uint256" + } + ], + "internalType": "struct DirectPaymentsPool.SafetyLimits", + "name": "_limits", + "type": "tuple" + } + ], + "name": "createBeaconPool", + "outputs": [ + { + "internalType": "contract DirectPaymentsPool", + "name": "pool", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "_projectId", + "type": "string" + }, + { + "internalType": "string", + "name": "_ipfs", + "type": "string" + }, + { + "components": [ + { + "internalType": "uint32", + "name": "nftType", + "type": "uint32" + }, + { + "internalType": "uint16[]", + "name": "validEvents", + "type": "uint16[]" + }, + { + "internalType": "uint128[]", + "name": "rewardPerEvent", + "type": "uint128[]" + }, + { + "internalType": "address", + "name": "manager", + "type": "address" + }, + { + "internalType": "contract IMembersValidator", + "name": "membersValidator", + "type": "address" + }, + { + "internalType": "contract IIdentityV2", + "name": "uniquenessValidator", + "type": "address" + }, + { + "internalType": "contract IERC20Upgradeable", + "name": "rewardToken", + "type": "address" + } + ], + "internalType": "struct DirectPaymentsPool.PoolSettings", + "name": "_settings", + "type": "tuple" + }, + { + "components": [ + { + "internalType": "uint256", + "name": "maxTotalPerMonth", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "maxMemberPerMonth", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "maxMemberPerDay", + "type": "uint256" + } + ], + "internalType": "struct DirectPaymentsPool.SafetyLimits", + "name": "_limits", + "type": "tuple" + } + ], + "name": "createPool", + "outputs": [ + { + "internalType": "contract DirectPaymentsPool", + "name": "pool", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "feeBps", + "outputs": [ + { + "internalType": "uint32", + "name": "", + "type": "uint32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "feeRecipient", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleAdmin", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "grantRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "hasRole", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "impl", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "internalType": "address", + "name": "_dpimpl", + "type": "address" + }, + { + "internalType": "contract ProvableNFT", + "name": "_nft", + "type": "address" + }, + { + "internalType": "address", + "name": "_feeRecipient", + "type": "address" + }, + { + "internalType": "uint32", + "name": "_feeBps", + "type": "uint32" + } + ], + "name": "initialize", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "nextNftType", + "outputs": [ + { + "internalType": "uint32", + "name": "", + "type": "uint32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "nft", + "outputs": [ + { + "internalType": "contract ProvableNFT", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "name": "projectIdToControlPool", + "outputs": [ + { + "internalType": "contract DirectPaymentsPool", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "proxiableUUID", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "registry", + "outputs": [ + { + "internalType": "string", + "name": "ipfs", + "type": "string" + }, + { + "internalType": "bool", + "name": "isVerified", + "type": "bool" + }, + { + "internalType": "string", + "name": "projectId", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "renounceRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "revokeRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_feeRecipient", + "type": "address" + }, + { + "internalType": "uint32", + "name": "_feeBps", + "type": "uint32" + } + ], + "name": "setFeeInfo", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract DirectPaymentsPool", + "name": "_pool", + "type": "address" + }, + { + "internalType": "bool", + "name": "_isVerified", + "type": "bool" + } + ], + "name": "setVerified", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_impl", + "type": "address" + } + ], + "name": "updateImpl", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newImplementation", + "type": "address" + } + ], + "name": "upgradeTo", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newImplementation", + "type": "address" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "upgradeToAndCall", + "outputs": [], + "stateMutability": "payable", + "type": "function" + } + ] + }, + "DirectPaymentsFactory_Proxy": { + "address": "0xf5059a5D33d5853360D16C683c16e67980206f36", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "_logic", + "type": "address" + }, + { + "internalType": "bytes", + "name": "_data", + "type": "bytes" + } + ], + "stateMutability": "payable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "previousAdmin", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "newAdmin", + "type": "address" + } + ], + "name": "AdminChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "beacon", + "type": "address" + } + ], + "name": "BeaconUpgraded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "implementation", + "type": "address" + } + ], + "name": "Upgraded", + "type": "event" + }, + { + "stateMutability": "payable", + "type": "fallback" + }, + { + "stateMutability": "payable", + "type": "receive" + } + ] + }, + "DirectPaymentsFactory": { + "address": "0xf5059a5D33d5853360D16C683c16e67980206f36", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "previousAdmin", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "newAdmin", + "type": "address" + } + ], + "name": "AdminChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "beacon", + "type": "address" + } + ], + "name": "BeaconUpgraded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "implementation", + "type": "address" + } + ], + "name": "Upgraded", + "type": "event" + }, + { + "stateMutability": "payable", + "type": "fallback" + }, + { + "stateMutability": "payable", + "type": "receive" + }, + { + "inputs": [], + "name": "NOT_PROJECT_OWNER", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint8", + "name": "version", + "type": "uint8" + } + ], + "name": "Initialized", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "pool", + "type": "address" + }, + { + "indexed": true, + "internalType": "string", + "name": "projectId", + "type": "string" + }, + { + "indexed": false, + "internalType": "string", + "name": "ipfs", + "type": "string" + }, + { + "indexed": true, + "internalType": "uint32", + "name": "nftType", + "type": "uint32" + }, + { + "components": [ + { + "internalType": "uint32", + "name": "nftType", + "type": "uint32" + }, + { + "internalType": "uint16[]", + "name": "validEvents", + "type": "uint16[]" + }, + { + "internalType": "uint128[]", + "name": "rewardPerEvent", + "type": "uint128[]" + }, + { + "internalType": "address", + "name": "manager", + "type": "address" + }, + { + "internalType": "contract IMembersValidator", + "name": "membersValidator", + "type": "address" + }, + { + "internalType": "contract IIdentityV2", + "name": "uniquenessValidator", + "type": "address" + }, + { + "internalType": "contract IERC20Upgradeable", + "name": "rewardToken", + "type": "address" + } + ], + "indexed": false, + "internalType": "struct DirectPaymentsPool.PoolSettings", + "name": "poolSettings", + "type": "tuple" + }, + { + "components": [ + { + "internalType": "uint256", + "name": "maxTotalPerMonth", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "maxMemberPerMonth", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "maxMemberPerDay", + "type": "uint256" + } + ], + "indexed": false, + "internalType": "struct DirectPaymentsPool.SafetyLimits", + "name": "poolLimits", + "type": "tuple" + } + ], + "name": "PoolCreated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "pool", + "type": "address" + }, + { + "indexed": false, + "internalType": "string", + "name": "ipfs", + "type": "string" + } + ], + "name": "PoolDetailsChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "pool", + "type": "address" + }, + { + "indexed": false, + "internalType": "bool", + "name": "isVerified", + "type": "bool" + } + ], + "name": "PoolVerifiedChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "previousAdminRole", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "newAdminRole", + "type": "bytes32" + } + ], + "name": "RoleAdminChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleGranted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleRevoked", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "impl", + "type": "address" + } + ], + "name": "UpdatedImpl", + "type": "event" + }, + { + "inputs": [], + "name": "DEFAULT_ADMIN_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract DirectPaymentsPool", + "name": "_pool", + "type": "address" + }, + { + "internalType": "string", + "name": "_ipfs", + "type": "string" + } + ], + "name": "changePoolDetails", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "_projectId", + "type": "string" + }, + { + "internalType": "string", + "name": "_ipfs", + "type": "string" + }, + { + "components": [ + { + "internalType": "uint32", + "name": "nftType", + "type": "uint32" + }, + { + "internalType": "uint16[]", + "name": "validEvents", + "type": "uint16[]" + }, + { + "internalType": "uint128[]", + "name": "rewardPerEvent", + "type": "uint128[]" + }, + { + "internalType": "address", + "name": "manager", + "type": "address" + }, + { + "internalType": "contract IMembersValidator", + "name": "membersValidator", + "type": "address" + }, + { + "internalType": "contract IIdentityV2", + "name": "uniquenessValidator", + "type": "address" + }, + { + "internalType": "contract IERC20Upgradeable", + "name": "rewardToken", + "type": "address" + } + ], + "internalType": "struct DirectPaymentsPool.PoolSettings", + "name": "_settings", + "type": "tuple" + }, + { + "components": [ + { + "internalType": "uint256", + "name": "maxTotalPerMonth", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "maxMemberPerMonth", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "maxMemberPerDay", + "type": "uint256" + } + ], + "internalType": "struct DirectPaymentsPool.SafetyLimits", + "name": "_limits", + "type": "tuple" + } + ], + "name": "createBeaconPool", + "outputs": [ + { + "internalType": "contract DirectPaymentsPool", + "name": "pool", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "_projectId", + "type": "string" + }, + { + "internalType": "string", + "name": "_ipfs", + "type": "string" + }, + { + "components": [ + { + "internalType": "uint32", + "name": "nftType", + "type": "uint32" + }, + { + "internalType": "uint16[]", + "name": "validEvents", + "type": "uint16[]" + }, + { + "internalType": "uint128[]", + "name": "rewardPerEvent", + "type": "uint128[]" + }, + { + "internalType": "address", + "name": "manager", + "type": "address" + }, + { + "internalType": "contract IMembersValidator", + "name": "membersValidator", + "type": "address" + }, + { + "internalType": "contract IIdentityV2", + "name": "uniquenessValidator", + "type": "address" + }, + { + "internalType": "contract IERC20Upgradeable", + "name": "rewardToken", + "type": "address" + } + ], + "internalType": "struct DirectPaymentsPool.PoolSettings", + "name": "_settings", + "type": "tuple" + }, + { + "components": [ + { + "internalType": "uint256", + "name": "maxTotalPerMonth", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "maxMemberPerMonth", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "maxMemberPerDay", + "type": "uint256" + } + ], + "internalType": "struct DirectPaymentsPool.SafetyLimits", + "name": "_limits", + "type": "tuple" + } + ], + "name": "createPool", + "outputs": [ + { + "internalType": "contract DirectPaymentsPool", + "name": "pool", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "feeBps", + "outputs": [ + { + "internalType": "uint32", + "name": "", + "type": "uint32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "feeRecipient", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleAdmin", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "grantRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "hasRole", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "impl", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "internalType": "address", + "name": "_dpimpl", + "type": "address" + }, + { + "internalType": "contract ProvableNFT", + "name": "_nft", + "type": "address" + }, + { + "internalType": "address", + "name": "_feeRecipient", + "type": "address" + }, + { + "internalType": "uint32", + "name": "_feeBps", + "type": "uint32" + } + ], + "name": "initialize", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "nextNftType", + "outputs": [ + { + "internalType": "uint32", + "name": "", + "type": "uint32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "nft", + "outputs": [ + { + "internalType": "contract ProvableNFT", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "name": "projectIdToControlPool", + "outputs": [ + { + "internalType": "contract DirectPaymentsPool", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "proxiableUUID", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "registry", + "outputs": [ + { + "internalType": "string", + "name": "ipfs", + "type": "string" + }, + { + "internalType": "bool", + "name": "isVerified", + "type": "bool" + }, + { + "internalType": "string", + "name": "projectId", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "renounceRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "revokeRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_feeRecipient", + "type": "address" + }, + { + "internalType": "uint32", + "name": "_feeBps", + "type": "uint32" + } + ], + "name": "setFeeInfo", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract DirectPaymentsPool", + "name": "_pool", + "type": "address" + }, + { + "internalType": "bool", + "name": "_isVerified", + "type": "bool" + } + ], + "name": "setVerified", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_impl", + "type": "address" + } + ], + "name": "updateImpl", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newImplementation", + "type": "address" + } + ], + "name": "upgradeTo", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newImplementation", + "type": "address" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "upgradeToAndCall", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_logic", + "type": "address" + }, + { + "internalType": "bytes", + "name": "_data", + "type": "bytes" + } + ], + "stateMutability": "payable", + "type": "constructor" + } + ] + } + } + } + ], + "44787": [ + { + "name": "alfajores", + "chainId": "44787", + "contracts": { + "DirectPaymentsFactory": { + "address": "0xA7Ea41C1A8aaD503e0D57CfdeE4f7D63Ac1a53a4", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "previousAdmin", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "newAdmin", + "type": "address" + } + ], + "name": "AdminChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "beacon", + "type": "address" + } + ], + "name": "BeaconUpgraded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "implementation", + "type": "address" + } + ], + "name": "Upgraded", + "type": "event" + }, + { + "stateMutability": "payable", + "type": "fallback" + }, + { + "stateMutability": "payable", + "type": "receive" + }, + { + "inputs": [], + "name": "NOT_PROJECT_OWNER", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint8", + "name": "version", + "type": "uint8" + } + ], + "name": "Initialized", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "pool", + "type": "address" + }, + { + "indexed": true, + "internalType": "string", + "name": "projectId", + "type": "string" + }, + { + "indexed": false, + "internalType": "string", + "name": "ipfs", + "type": "string" + }, + { + "indexed": true, + "internalType": "uint32", + "name": "nftType", + "type": "uint32" + }, + { + "components": [ + { + "internalType": "uint32", + "name": "nftType", + "type": "uint32" + }, + { + "internalType": "uint16[]", + "name": "validEvents", + "type": "uint16[]" + }, + { + "internalType": "uint128[]", + "name": "rewardPerEvent", + "type": "uint128[]" + }, + { + "internalType": "address", + "name": "manager", + "type": "address" + }, + { + "internalType": "contract IMembersValidator", + "name": "membersValidator", + "type": "address" + }, + { + "internalType": "contract IIdentityV2", + "name": "uniquenessValidator", + "type": "address" + }, + { + "internalType": "contract IERC20Upgradeable", + "name": "rewardToken", + "type": "address" + } + ], + "indexed": false, + "internalType": "struct DirectPaymentsPool.PoolSettings", + "name": "poolSettings", + "type": "tuple" + }, + { + "components": [ + { + "internalType": "uint256", + "name": "maxTotalPerMonth", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "maxMemberPerMonth", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "maxMemberPerDay", + "type": "uint256" + } + ], + "indexed": false, + "internalType": "struct DirectPaymentsPool.SafetyLimits", + "name": "poolLimits", + "type": "tuple" + } + ], + "name": "PoolCreated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "pool", + "type": "address" + }, + { + "indexed": false, + "internalType": "string", + "name": "ipfs", + "type": "string" + } + ], + "name": "PoolDetailsChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "pool", + "type": "address" + }, + { + "indexed": false, + "internalType": "bool", + "name": "isVerified", + "type": "bool" + } + ], + "name": "PoolVerifiedChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "previousAdminRole", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "newAdminRole", + "type": "bytes32" + } + ], + "name": "RoleAdminChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleGranted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleRevoked", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "impl", + "type": "address" + } + ], + "name": "UpdatedImpl", + "type": "event" + }, + { + "inputs": [], + "name": "DEFAULT_ADMIN_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract DirectPaymentsPool", + "name": "_pool", + "type": "address" + }, + { + "internalType": "string", + "name": "_ipfs", + "type": "string" + } + ], + "name": "changePoolDetails", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "_projectId", + "type": "string" + }, + { + "internalType": "string", + "name": "_ipfs", + "type": "string" + }, + { + "components": [ + { + "internalType": "uint32", + "name": "nftType", + "type": "uint32" + }, + { + "internalType": "uint16[]", + "name": "validEvents", + "type": "uint16[]" + }, + { + "internalType": "uint128[]", + "name": "rewardPerEvent", + "type": "uint128[]" + }, + { + "internalType": "address", + "name": "manager", + "type": "address" + }, + { + "internalType": "contract IMembersValidator", + "name": "membersValidator", + "type": "address" + }, + { + "internalType": "contract IIdentityV2", + "name": "uniquenessValidator", + "type": "address" + }, + { + "internalType": "contract IERC20Upgradeable", + "name": "rewardToken", + "type": "address" + } + ], + "internalType": "struct DirectPaymentsPool.PoolSettings", + "name": "_settings", + "type": "tuple" + }, + { + "components": [ + { + "internalType": "uint256", + "name": "maxTotalPerMonth", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "maxMemberPerMonth", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "maxMemberPerDay", + "type": "uint256" + } + ], + "internalType": "struct DirectPaymentsPool.SafetyLimits", + "name": "_limits", + "type": "tuple" + } + ], + "name": "createBeaconPool", + "outputs": [ + { + "internalType": "contract DirectPaymentsPool", + "name": "pool", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "_projectId", + "type": "string" + }, + { + "internalType": "string", + "name": "_ipfs", + "type": "string" + }, + { + "components": [ + { + "internalType": "uint32", + "name": "nftType", + "type": "uint32" + }, + { + "internalType": "uint16[]", + "name": "validEvents", + "type": "uint16[]" + }, + { + "internalType": "uint128[]", + "name": "rewardPerEvent", + "type": "uint128[]" + }, + { + "internalType": "address", + "name": "manager", + "type": "address" + }, + { + "internalType": "contract IMembersValidator", + "name": "membersValidator", + "type": "address" + }, + { + "internalType": "contract IIdentityV2", + "name": "uniquenessValidator", + "type": "address" + }, + { + "internalType": "contract IERC20Upgradeable", + "name": "rewardToken", + "type": "address" + } + ], + "internalType": "struct DirectPaymentsPool.PoolSettings", + "name": "_settings", + "type": "tuple" + }, + { + "components": [ + { + "internalType": "uint256", + "name": "maxTotalPerMonth", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "maxMemberPerMonth", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "maxMemberPerDay", + "type": "uint256" + } + ], + "internalType": "struct DirectPaymentsPool.SafetyLimits", + "name": "_limits", + "type": "tuple" + } + ], + "name": "createPool", + "outputs": [ + { + "internalType": "contract DirectPaymentsPool", + "name": "pool", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "feeBps", + "outputs": [ + { + "internalType": "uint32", + "name": "", + "type": "uint32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "feeRecipient", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleAdmin", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "grantRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "hasRole", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "impl", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "internalType": "address", + "name": "_dpimpl", + "type": "address" + }, + { + "internalType": "contract ProvableNFT", + "name": "_nft", + "type": "address" + }, + { + "internalType": "address", + "name": "_feeRecipient", + "type": "address" + }, + { + "internalType": "uint32", + "name": "_feeBps", + "type": "uint32" + } + ], + "name": "initialize", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "nextNftType", + "outputs": [ + { + "internalType": "uint32", + "name": "", + "type": "uint32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "nft", + "outputs": [ + { + "internalType": "contract ProvableNFT", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "name": "projectIdToControlPool", + "outputs": [ + { + "internalType": "contract DirectPaymentsPool", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "proxiableUUID", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "registry", + "outputs": [ + { + "internalType": "string", + "name": "ipfs", + "type": "string" + }, + { + "internalType": "bool", + "name": "isVerified", + "type": "bool" + }, + { + "internalType": "string", + "name": "projectId", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "renounceRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "revokeRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_feeRecipient", + "type": "address" + }, + { + "internalType": "uint32", + "name": "_feeBps", + "type": "uint32" + } + ], + "name": "setFeeInfo", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract DirectPaymentsPool", + "name": "_pool", + "type": "address" + }, + { + "internalType": "bool", + "name": "_isVerified", + "type": "bool" + } + ], + "name": "setVerified", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_impl", + "type": "address" + } + ], + "name": "updateImpl", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newImplementation", + "type": "address" + } + ], + "name": "upgradeTo", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newImplementation", + "type": "address" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "upgradeToAndCall", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_logic", + "type": "address" + }, + { + "internalType": "bytes", + "name": "_data", + "type": "bytes" + } + ], + "stateMutability": "payable", + "type": "constructor" + } + ] + }, + "DirectPaymentsFactory_Implementation": { + "address": "0x7aB8C0E4cc2Ff438C84FffE70b8557Cb59eD8b5d", + "abi": [ + { + "inputs": [], + "name": "NOT_PROJECT_OWNER", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "previousAdmin", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "newAdmin", + "type": "address" + } + ], + "name": "AdminChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "beacon", + "type": "address" + } + ], + "name": "BeaconUpgraded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint8", + "name": "version", + "type": "uint8" + } + ], + "name": "Initialized", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "pool", + "type": "address" + }, + { + "indexed": true, + "internalType": "string", + "name": "projectId", + "type": "string" + }, + { + "indexed": false, + "internalType": "string", + "name": "ipfs", + "type": "string" + }, + { + "indexed": true, + "internalType": "uint32", + "name": "nftType", + "type": "uint32" + }, + { + "components": [ + { + "internalType": "uint32", + "name": "nftType", + "type": "uint32" + }, + { + "internalType": "uint16[]", + "name": "validEvents", + "type": "uint16[]" + }, + { + "internalType": "uint128[]", + "name": "rewardPerEvent", + "type": "uint128[]" + }, + { + "internalType": "address", + "name": "manager", + "type": "address" + }, + { + "internalType": "contract IMembersValidator", + "name": "membersValidator", + "type": "address" + }, + { + "internalType": "contract IIdentityV2", + "name": "uniquenessValidator", + "type": "address" + }, + { + "internalType": "contract IERC20Upgradeable", + "name": "rewardToken", + "type": "address" + } + ], + "indexed": false, + "internalType": "struct DirectPaymentsPool.PoolSettings", + "name": "poolSettings", + "type": "tuple" + }, + { + "components": [ + { + "internalType": "uint256", + "name": "maxTotalPerMonth", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "maxMemberPerMonth", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "maxMemberPerDay", + "type": "uint256" + } + ], + "indexed": false, + "internalType": "struct DirectPaymentsPool.SafetyLimits", + "name": "poolLimits", + "type": "tuple" + } + ], + "name": "PoolCreated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "pool", + "type": "address" + }, + { + "indexed": false, + "internalType": "string", + "name": "ipfs", + "type": "string" + } + ], + "name": "PoolDetailsChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "pool", + "type": "address" + }, + { + "indexed": false, + "internalType": "bool", + "name": "isVerified", + "type": "bool" + } + ], + "name": "PoolVerifiedChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "previousAdminRole", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "newAdminRole", + "type": "bytes32" + } + ], + "name": "RoleAdminChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleGranted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleRevoked", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "impl", + "type": "address" + } + ], + "name": "UpdatedImpl", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "implementation", + "type": "address" + } + ], + "name": "Upgraded", + "type": "event" + }, + { + "inputs": [], + "name": "DEFAULT_ADMIN_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract DirectPaymentsPool", + "name": "_pool", + "type": "address" + }, + { + "internalType": "string", + "name": "_ipfs", + "type": "string" + } + ], + "name": "changePoolDetails", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "_projectId", + "type": "string" + }, + { + "internalType": "string", + "name": "_ipfs", + "type": "string" + }, + { + "components": [ + { + "internalType": "uint32", + "name": "nftType", + "type": "uint32" + }, + { + "internalType": "uint16[]", + "name": "validEvents", + "type": "uint16[]" + }, + { + "internalType": "uint128[]", + "name": "rewardPerEvent", + "type": "uint128[]" + }, + { + "internalType": "address", + "name": "manager", + "type": "address" + }, + { + "internalType": "contract IMembersValidator", + "name": "membersValidator", + "type": "address" + }, + { + "internalType": "contract IIdentityV2", + "name": "uniquenessValidator", + "type": "address" + }, + { + "internalType": "contract IERC20Upgradeable", + "name": "rewardToken", + "type": "address" + } + ], + "internalType": "struct DirectPaymentsPool.PoolSettings", + "name": "_settings", + "type": "tuple" + }, + { + "components": [ + { + "internalType": "uint256", + "name": "maxTotalPerMonth", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "maxMemberPerMonth", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "maxMemberPerDay", + "type": "uint256" + } + ], + "internalType": "struct DirectPaymentsPool.SafetyLimits", + "name": "_limits", + "type": "tuple" + } + ], + "name": "createBeaconPool", + "outputs": [ + { + "internalType": "contract DirectPaymentsPool", + "name": "pool", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "_projectId", + "type": "string" + }, + { + "internalType": "string", + "name": "_ipfs", + "type": "string" + }, + { + "components": [ + { + "internalType": "uint32", + "name": "nftType", + "type": "uint32" + }, + { + "internalType": "uint16[]", + "name": "validEvents", + "type": "uint16[]" + }, + { + "internalType": "uint128[]", + "name": "rewardPerEvent", + "type": "uint128[]" + }, + { + "internalType": "address", + "name": "manager", + "type": "address" + }, + { + "internalType": "contract IMembersValidator", + "name": "membersValidator", + "type": "address" + }, + { + "internalType": "contract IIdentityV2", + "name": "uniquenessValidator", + "type": "address" + }, + { + "internalType": "contract IERC20Upgradeable", + "name": "rewardToken", + "type": "address" + } + ], + "internalType": "struct DirectPaymentsPool.PoolSettings", + "name": "_settings", + "type": "tuple" + }, + { + "components": [ + { + "internalType": "uint256", + "name": "maxTotalPerMonth", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "maxMemberPerMonth", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "maxMemberPerDay", + "type": "uint256" + } + ], + "internalType": "struct DirectPaymentsPool.SafetyLimits", + "name": "_limits", + "type": "tuple" + } + ], + "name": "createPool", + "outputs": [ + { + "internalType": "contract DirectPaymentsPool", + "name": "pool", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "feeBps", + "outputs": [ + { + "internalType": "uint32", + "name": "", + "type": "uint32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "feeRecipient", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleAdmin", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "grantRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "hasRole", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "impl", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_owner", + "type": "address" + }, + { + "internalType": "address", + "name": "_dpimpl", + "type": "address" + }, + { + "internalType": "contract ProvableNFT", + "name": "_nft", + "type": "address" + }, + { + "internalType": "address", + "name": "_feeRecipient", + "type": "address" + }, + { + "internalType": "uint32", + "name": "_feeBps", + "type": "uint32" + } + ], + "name": "initialize", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "nextNftType", + "outputs": [ + { + "internalType": "uint32", + "name": "", + "type": "uint32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "nft", + "outputs": [ + { + "internalType": "contract ProvableNFT", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "name": "projectIdToControlPool", + "outputs": [ + { + "internalType": "contract DirectPaymentsPool", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "proxiableUUID", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "registry", + "outputs": [ + { + "internalType": "string", + "name": "ipfs", + "type": "string" + }, + { + "internalType": "bool", + "name": "isVerified", + "type": "bool" + }, + { + "internalType": "string", + "name": "projectId", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "renounceRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "revokeRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_feeRecipient", + "type": "address" + }, + { + "internalType": "uint32", + "name": "_feeBps", + "type": "uint32" + } + ], + "name": "setFeeInfo", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract DirectPaymentsPool", + "name": "_pool", + "type": "address" + }, + { + "internalType": "bool", + "name": "_isVerified", + "type": "bool" + } + ], + "name": "setVerified", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_impl", + "type": "address" + } + ], + "name": "updateImpl", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newImplementation", + "type": "address" + } + ], + "name": "upgradeTo", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newImplementation", + "type": "address" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "upgradeToAndCall", + "outputs": [], + "stateMutability": "payable", + "type": "function" + } + ] + }, + "DirectPaymentsFactory_Proxy": { + "address": "0xA7Ea41C1A8aaD503e0D57CfdeE4f7D63Ac1a53a4", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "_logic", + "type": "address" + }, + { + "internalType": "bytes", + "name": "_data", + "type": "bytes" + } + ], + "stateMutability": "payable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "previousAdmin", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "newAdmin", + "type": "address" + } + ], + "name": "AdminChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "beacon", + "type": "address" + } + ], + "name": "BeaconUpgraded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "implementation", + "type": "address" + } + ], + "name": "Upgraded", + "type": "event" + }, + { + "stateMutability": "payable", + "type": "fallback" + }, + { + "stateMutability": "payable", + "type": "receive" + } + ] + }, + "DirectPaymentsPool": { + "address": "0x34cf3a1102384f9E6B071fD339f06bBAFA6C753f", + "abi": [ + { + "inputs": [ + { + "internalType": "contract ISuperfluid", + "name": "_host", + "type": "address" + }, + { + "internalType": "contract ISwapRouter", + "name": "_swapRouter", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "ALREADY_CLAIMED", + "type": "error" + }, + { + "inputs": [], + "name": "EMPTY_MANAGER", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "int96", + "name": "curFeeRate", + "type": "int96" + }, + { + "internalType": "int96", + "name": "newFeeRate", + "type": "int96" + } + ], + "name": "FEE_FLOW_FAILED", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "int96", + "name": "flowRate", + "type": "int96" + } + ], + "name": "MIN_FLOWRATE", + "type": "error" + }, + { + "inputs": [], + "name": "NFTTYPE_CHANGED", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "NFT_MISSING", + "type": "error" + }, + { + "inputs": [], + "name": "NOT_MANAGER", + "type": "error" + }, + { + "inputs": [], + "name": "NO_BALANCE", + "type": "error" + }, + { + "inputs": [], + "name": "NotAcceptedSuperToken", + "type": "error" + }, + { + "inputs": [], + "name": "NotImplemented", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "ONLY_HOST_OR_SENDER", + "type": "error" + }, + { + "inputs": [], + "name": "OVER_GLOBAL_LIMITS", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "OVER_MEMBER_LIMITS", + "type": "error" + }, + { + "inputs": [], + "name": "UNSUPPORTED_NFT", + "type": "error" + }, + { + "inputs": [], + "name": "UNSUPPORTED_TOKEN", + "type": "error" + }, + { + "inputs": [], + "name": "UnauthorizedHost", + "type": "error" + }, + { + "inputs": [], + "name": "ZERO_ADDRESS", + "type": "error" + }, + { + "inputs": [], + "name": "ZERO_AMOUNT", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "previousAdmin", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "newAdmin", + "type": "address" + } + ], + "name": "AdminChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "beacon", + "type": "address" + } + ], + "name": "BeaconUpgraded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "components": [ + { + "internalType": "uint16", + "name": "subtype", + "type": "uint16" + }, + { + "internalType": "uint32", + "name": "timestamp", + "type": "uint32" + }, + { + "internalType": "uint256", + "name": "quantity", + "type": "uint256" + }, + { + "internalType": "string", + "name": "eventUri", + "type": "string" + }, + { + "internalType": "address[]", + "name": "contributers", + "type": "address[]" + } + ], + "indexed": false, + "internalType": "struct ProvableNFT.EventData", + "name": "eventData", + "type": "tuple" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "rewardPerContributer", + "type": "uint256" + } + ], + "name": "EventRewardClaimed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint8", + "name": "version", + "type": "uint8" + } + ], + "name": "Initialized", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "totalRewards", + "type": "uint256" + }, + { + "components": [ + { + "internalType": "uint32", + "name": "nftType", + "type": "uint32" + }, + { + "internalType": "uint16", + "name": "version", + "type": "uint16" + }, + { + "internalType": "string", + "name": "nftUri", + "type": "string" + }, + { + "components": [ + { + "internalType": "uint16", + "name": "subtype", + "type": "uint16" + }, + { + "internalType": "uint32", + "name": "timestamp", + "type": "uint32" + }, + { + "internalType": "uint256", + "name": "quantity", + "type": "uint256" + }, + { + "internalType": "string", + "name": "eventUri", + "type": "string" + }, + { + "internalType": "address[]", + "name": "contributers", + "type": "address[]" + } + ], + "internalType": "struct ProvableNFT.EventData[]", + "name": "events", + "type": "tuple[]" + } + ], + "indexed": false, + "internalType": "struct ProvableNFT.NFTData", + "name": "nftData", + "type": "tuple" + } + ], + "name": "NFTClaimed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "contributer", + "type": "address" + } + ], + "name": "NOT_MEMBER_OR_WHITELISTED", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "pool", + "type": "address" + }, + { + "indexed": true, + "internalType": "string", + "name": "projectId", + "type": "string" + }, + { + "indexed": false, + "internalType": "string", + "name": "ipfs", + "type": "string" + }, + { + "indexed": true, + "internalType": "uint32", + "name": "nftType", + "type": "uint32" + }, + { + "components": [ + { + "internalType": "uint32", + "name": "nftType", + "type": "uint32" + }, + { + "internalType": "uint16[]", + "name": "validEvents", + "type": "uint16[]" + }, + { + "internalType": "uint128[]", + "name": "rewardPerEvent", + "type": "uint128[]" + }, + { + "internalType": "address", + "name": "manager", + "type": "address" + }, + { + "internalType": "contract IMembersValidator", + "name": "membersValidator", + "type": "address" + }, + { + "internalType": "contract IIdentityV2", + "name": "uniquenessValidator", + "type": "address" + }, + { + "internalType": "contract IERC20Upgradeable", + "name": "rewardToken", + "type": "address" + } + ], + "indexed": false, + "internalType": "struct DirectPaymentsPool.PoolSettings", + "name": "poolSettings", + "type": "tuple" + }, + { + "components": [ + { + "internalType": "uint256", + "name": "maxTotalPerMonth", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "maxMemberPerMonth", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "maxMemberPerDay", + "type": "uint256" + } + ], + "indexed": false, + "internalType": "struct DirectPaymentsPool.SafetyLimits", + "name": "poolLimits", + "type": "tuple" + } + ], + "name": "PoolCreated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "maxTotalPerMonth", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "maxMemberPerMonth", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "maxMemberPerDay", + "type": "uint256" + } + ], + "indexed": false, + "internalType": "struct DirectPaymentsPool.SafetyLimits", + "name": "limits", + "type": "tuple" + } + ], + "name": "PoolLimitsChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "components": [ + { + "internalType": "uint32", + "name": "nftType", + "type": "uint32" + }, + { + "internalType": "uint16[]", + "name": "validEvents", + "type": "uint16[]" + }, + { + "internalType": "uint128[]", + "name": "rewardPerEvent", + "type": "uint128[]" + }, + { + "internalType": "address", + "name": "manager", + "type": "address" + }, + { + "internalType": "contract IMembersValidator", + "name": "membersValidator", + "type": "address" + }, + { + "internalType": "contract IIdentityV2", + "name": "uniquenessValidator", + "type": "address" + }, + { + "internalType": "contract IERC20Upgradeable", + "name": "rewardToken", + "type": "address" + } + ], + "indexed": false, + "internalType": "struct DirectPaymentsPool.PoolSettings", + "name": "settings", + "type": "tuple" + } + ], + "name": "PoolSettingsChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "previousAdminRole", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "bytes32", + "name": "newAdminRole", + "type": "bytes32" + } + ], + "name": "RoleAdminChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleGranted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "RoleRevoked", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "supporter", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "previousContribution", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "contribution", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "int96", + "name": "previousFlowRate", + "type": "int96" + }, + { + "indexed": false, + "internalType": "int96", + "name": "flowRate", + "type": "int96" + }, + { + "indexed": false, + "internalType": "bool", + "name": "isFlowUpdate", + "type": "bool" + } + ], + "name": "SupporterUpdated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "implementation", + "type": "address" + } + ], + "name": "Upgraded", + "type": "event" + }, + { + "inputs": [], + "name": "CFAV1_TYPE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", "type": "function" }, { "inputs": [], - "name": "impl", + "name": "DEFAULT_ADMIN_ROLE", "outputs": [ { - "internalType": "address", + "internalType": "bytes32", "name": "", - "type": "address" + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "MANAGER_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "MEMBER_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "MINTER_ROLE", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "MIN_FLOW_RATE", + "outputs": [ + { + "internalType": "int96", + "name": "", + "type": "int96" } ], "stateMutability": "view", @@ -6226,89 +15669,208 @@ { "inputs": [ { - "internalType": "address", - "name": "_owner", + "internalType": "contract ISuperToken", + "name": "superToken", "type": "address" }, { "internalType": "address", - "name": "_dpimpl", + "name": "", "type": "address" }, { - "internalType": "address", - "name": "_nftimpl", - "type": "address" + "internalType": "bytes32", + "name": "", + "type": "bytes32" }, { - "internalType": "address", - "name": "_feeRecipient", - "type": "address" + "internalType": "bytes", + "name": "agreementData", + "type": "bytes" }, { - "internalType": "uint32", - "name": "_feeBps", - "type": "uint32" + "internalType": "bytes", + "name": "", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "ctx", + "type": "bytes" + } + ], + "name": "afterAgreementCreated", + "outputs": [ + { + "internalType": "bytes", + "name": "newCtx", + "type": "bytes" } ], - "name": "initialize", - "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { - "inputs": [], - "name": "nextNftType", - "outputs": [ + "inputs": [ { - "internalType": "uint32", + "internalType": "contract ISuperToken", + "name": "superToken", + "type": "address" + }, + { + "internalType": "address", + "name": "agreementClass", + "type": "address" + }, + { + "internalType": "bytes32", "name": "", - "type": "uint32" + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "agreementData", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "cbdata", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "ctx", + "type": "bytes" } ], - "stateMutability": "view", + "name": "afterAgreementTerminated", + "outputs": [ + { + "internalType": "bytes", + "name": "newCtx", + "type": "bytes" + } + ], + "stateMutability": "nonpayable", "type": "function" }, { - "inputs": [], - "name": "nft", - "outputs": [ + "inputs": [ { - "internalType": "contract ProvableNFT", + "internalType": "contract ISuperToken", + "name": "superToken", + "type": "address" + }, + { + "internalType": "address", "name": "", "type": "address" + }, + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "agreementData", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "cbdata", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "ctx", + "type": "bytes" } ], - "stateMutability": "view", + "name": "afterAgreementUpdated", + "outputs": [ + { + "internalType": "bytes", + "name": "newCtx", + "type": "bytes" + } + ], + "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ + { + "internalType": "contract ISuperToken", + "name": "superToken", + "type": "address" + }, + { + "internalType": "address", + "name": "agreementClass", + "type": "address" + }, { "internalType": "bytes32", "name": "", "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "", + "type": "bytes" } ], - "name": "projectIdToControlPool", + "name": "beforeAgreementCreated", "outputs": [ { - "internalType": "contract DirectPaymentsPool", + "internalType": "bytes", "name": "", - "type": "address" + "type": "bytes" } ], "stateMutability": "view", "type": "function" }, { - "inputs": [], - "name": "proxiableUUID", - "outputs": [ + "inputs": [ + { + "internalType": "contract ISuperToken", + "name": "superToken", + "type": "address" + }, + { + "internalType": "address", + "name": "agreementClass", + "type": "address" + }, { "internalType": "bytes32", "name": "", "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "agreementData", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "name": "beforeAgreementTerminated", + "outputs": [ + { + "internalType": "bytes", + "name": "", + "type": "bytes" } ], "stateMutability": "view", @@ -6316,65 +15878,70 @@ }, { "inputs": [ + { + "internalType": "contract ISuperToken", + "name": "superToken", + "type": "address" + }, { "internalType": "address", - "name": "", + "name": "agreementClass", "type": "address" - } - ], - "name": "registry", - "outputs": [ + }, { - "internalType": "string", - "name": "ipfs", - "type": "string" + "internalType": "bytes32", + "name": "", + "type": "bytes32" }, { - "internalType": "bool", - "name": "isVerified", - "type": "bool" + "internalType": "bytes", + "name": "agreementData", + "type": "bytes" }, { - "internalType": "string", - "name": "projectId", - "type": "string" + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "name": "beforeAgreementUpdated", + "outputs": [ + { + "internalType": "bytes", + "name": "", + "type": "bytes" } ], "stateMutability": "view", "type": "function" }, { - "inputs": [ + "inputs": [], + "name": "cfaV1", + "outputs": [ { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" + "internalType": "contract ISuperfluid", + "name": "host", + "type": "address" }, { - "internalType": "address", - "name": "account", + "internalType": "contract IConstantFlowAgreementV1", + "name": "cfa", "type": "address" } ], - "name": "renounceRole", - "outputs": [], - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function" }, { "inputs": [ { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "account", - "type": "address" + "internalType": "uint256", + "name": "_nftId", + "type": "uint256" } ], - "name": "revokeRole", + "name": "claim", "outputs": [], "stateMutability": "nonpayable", "type": "function" @@ -6382,17 +15949,66 @@ { "inputs": [ { - "internalType": "address", - "name": "_feeRecipient", - "type": "address" + "internalType": "uint256", + "name": "_nftId", + "type": "uint256" }, { - "internalType": "uint32", - "name": "_feeBps", - "type": "uint32" + "components": [ + { + "internalType": "uint32", + "name": "nftType", + "type": "uint32" + }, + { + "internalType": "uint16", + "name": "version", + "type": "uint16" + }, + { + "internalType": "string", + "name": "nftUri", + "type": "string" + }, + { + "components": [ + { + "internalType": "uint16", + "name": "subtype", + "type": "uint16" + }, + { + "internalType": "uint32", + "name": "timestamp", + "type": "uint32" + }, + { + "internalType": "uint256", + "name": "quantity", + "type": "uint256" + }, + { + "internalType": "string", + "name": "eventUri", + "type": "string" + }, + { + "internalType": "address[]", + "name": "contributers", + "type": "address[]" + } + ], + "internalType": "struct ProvableNFT.EventData[]", + "name": "events", + "type": "tuple[]" + } + ], + "internalType": "struct ProvableNFT.NFTData", + "name": "_data", + "type": "tuple" } ], - "name": "setFeeInfo", + "name": "claim", "outputs": [], "stateMutability": "nonpayable", "type": "function" @@ -6400,243 +16016,368 @@ { "inputs": [ { - "internalType": "contract DirectPaymentsPool", - "name": "_pool", - "type": "address" - }, + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "claimedNfts", + "outputs": [ { "internalType": "bool", - "name": "_isVerified", + "name": "", "type": "bool" } ], - "name": "setVerified", - "outputs": [], - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function" }, { "inputs": [ { - "internalType": "bytes4", - "name": "interfaceId", - "type": "bytes4" + "internalType": "address", + "name": "_user", + "type": "address" } ], - "name": "supportsInterface", + "name": "getRealtimeContribution", "outputs": [ { - "internalType": "bool", + "internalType": "uint256", "name": "", - "type": "bool" + "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { - "inputs": [ + "inputs": [], + "name": "getRealtimeStats", + "outputs": [ { - "internalType": "address", - "name": "_impl", - "type": "address" + "internalType": "uint256", + "name": "netIncome", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "totalFees", + "type": "uint256" + }, + { + "internalType": "int96", + "name": "incomeFlowRate", + "type": "int96" + }, + { + "internalType": "int96", + "name": "feeRate", + "type": "int96" } ], - "name": "updateImpl", - "outputs": [], - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function" }, { - "inputs": [ + "inputs": [], + "name": "getRegistry", + "outputs": [ { - "internalType": "address", - "name": "newImplementation", + "internalType": "contract DirectPaymentsFactory", + "name": "", "type": "address" } ], - "name": "upgradeTo", - "outputs": [], - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function" }, { "inputs": [ { - "internalType": "address", - "name": "newImplementation", - "type": "address" - }, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + } + ], + "name": "getRoleAdmin", + "outputs": [ { - "internalType": "bytes", - "name": "data", - "type": "bytes" + "internalType": "bytes32", + "name": "", + "type": "bytes32" } ], - "name": "upgradeToAndCall", - "outputs": [], - "stateMutability": "payable", + "stateMutability": "view", "type": "function" - } - ] - }, - "DirectPaymentsFactory_Proxy": { - "address": "0x59b80Ee33639E5f34C5D77B7C3044182219239D8", - "abi": [ + }, { - "inputs": [ + "inputs": [], + "name": "globalLimits", + "outputs": [ { - "internalType": "address", - "name": "_logic", - "type": "address" + "internalType": "uint128", + "name": "daily", + "type": "uint128" }, { - "internalType": "bytes", - "name": "_data", - "type": "bytes" + "internalType": "uint128", + "name": "monthly", + "type": "uint128" + }, + { + "internalType": "uint128", + "name": "total", + "type": "uint128" + }, + { + "internalType": "uint64", + "name": "lastReward", + "type": "uint64" + }, + { + "internalType": "uint64", + "name": "lastMonth", + "type": "uint64" } ], - "stateMutability": "payable", - "type": "constructor" + "stateMutability": "view", + "type": "function" }, { - "anonymous": false, "inputs": [ { - "indexed": false, - "internalType": "address", - "name": "previousAdmin", - "type": "address" + "internalType": "bytes32", + "name": "role", + "type": "bytes32" }, { - "indexed": false, "internalType": "address", - "name": "newAdmin", + "name": "account", "type": "address" } ], - "name": "AdminChanged", - "type": "event" + "name": "grantRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" }, { - "anonymous": false, "inputs": [ { - "indexed": true, + "components": [ + { + "internalType": "address", + "name": "swapFrom", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "minReturn", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "deadline", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "path", + "type": "bytes" + } + ], + "internalType": "struct GoodCollectiveSuperApp.SwapData", + "name": "_customData", + "type": "tuple" + }, + { "internalType": "address", - "name": "beacon", + "name": "_sender", "type": "address" + }, + { + "internalType": "bytes", + "name": "_ctx", + "type": "bytes" } ], - "name": "BeaconUpgraded", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ + "name": "handleSwap", + "outputs": [ { - "indexed": true, - "internalType": "address", - "name": "implementation", - "type": "address" + "internalType": "bytes", + "name": "", + "type": "bytes" } ], - "name": "Upgraded", - "type": "event" - }, - { - "stateMutability": "payable", - "type": "fallback" + "stateMutability": "nonpayable", + "type": "function" }, - { - "stateMutability": "payable", - "type": "receive" - } - ] - }, - "DirectPaymentsPool": { - "address": "0x2f9746AE2001733A0aaf0F7c63e465245dC446cf", - "abi": [ { "inputs": [ { - "internalType": "contract ISuperfluid", - "name": "_host", - "type": "address" + "internalType": "bytes32", + "name": "role", + "type": "bytes32" }, { - "internalType": "contract ISwapRouter", - "name": "_swapRouter", + "internalType": "address", + "name": "account", "type": "address" } ], - "stateMutability": "nonpayable", - "type": "constructor" + "name": "hasRole", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" }, { - "inputs": [ + "inputs": [], + "name": "host", + "outputs": [ { - "internalType": "uint256", + "internalType": "contract ISuperfluid", "name": "", - "type": "uint256" + "type": "address" } ], - "name": "ALREADY_CLAIMED", - "type": "error" + "stateMutability": "view", + "type": "function" }, { "inputs": [ { - "internalType": "int96", - "name": "curFeeRate", - "type": "int96" + "internalType": "contract ProvableNFT", + "name": "_nft", + "type": "address" }, { - "internalType": "int96", - "name": "newFeeRate", - "type": "int96" + "components": [ + { + "internalType": "uint32", + "name": "nftType", + "type": "uint32" + }, + { + "internalType": "uint16[]", + "name": "validEvents", + "type": "uint16[]" + }, + { + "internalType": "uint128[]", + "name": "rewardPerEvent", + "type": "uint128[]" + }, + { + "internalType": "address", + "name": "manager", + "type": "address" + }, + { + "internalType": "contract IMembersValidator", + "name": "membersValidator", + "type": "address" + }, + { + "internalType": "contract IIdentityV2", + "name": "uniquenessValidator", + "type": "address" + }, + { + "internalType": "contract IERC20Upgradeable", + "name": "rewardToken", + "type": "address" + } + ], + "internalType": "struct DirectPaymentsPool.PoolSettings", + "name": "_settings", + "type": "tuple" + }, + { + "components": [ + { + "internalType": "uint256", + "name": "maxTotalPerMonth", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "maxMemberPerMonth", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "maxMemberPerDay", + "type": "uint256" + } + ], + "internalType": "struct DirectPaymentsPool.SafetyLimits", + "name": "_limits", + "type": "tuple" + }, + { + "internalType": "contract DirectPaymentsFactory", + "name": "_registry", + "type": "address" } ], - "name": "FEE_FLOW_FAILED", - "type": "error" + "name": "initialize", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" }, { "inputs": [ { - "internalType": "int96", - "name": "flowRate", - "type": "int96" + "internalType": "contract ISuperToken", + "name": "_superToken", + "type": "address" } ], - "name": "MIN_FLOWRATE", - "type": "error" - }, - { - "inputs": [ + "name": "isAcceptedSuperToken", + "outputs": [ { - "internalType": "uint256", + "internalType": "bool", "name": "", - "type": "uint256" + "type": "bool" } ], - "name": "NFT_MISSING", - "type": "error" + "stateMutability": "view", + "type": "function" }, { "inputs": [], - "name": "NOT_MANAGER", - "type": "error" - }, - { - "inputs": [ + "name": "limits", + "outputs": [ { - "internalType": "address", - "name": "", - "type": "address" + "internalType": "uint256", + "name": "maxTotalPerMonth", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "maxMemberPerMonth", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "maxMemberPerDay", + "type": "uint256" } ], - "name": "NOT_MEMBER", - "type": "error" + "stateMutability": "view", + "type": "function" }, { "inputs": [ @@ -6646,214 +16387,248 @@ "type": "address" } ], - "name": "NOT_WHITELISTED", - "type": "error" - }, - { - "inputs": [], - "name": "NO_BALANCE", - "type": "error" - }, - { - "inputs": [], - "name": "NotAcceptedSuperToken", - "type": "error" - }, - { - "inputs": [], - "name": "NotImplemented", - "type": "error" + "name": "memberLimits", + "outputs": [ + { + "internalType": "uint128", + "name": "daily", + "type": "uint128" + }, + { + "internalType": "uint128", + "name": "monthly", + "type": "uint128" + }, + { + "internalType": "uint128", + "name": "total", + "type": "uint128" + }, + { + "internalType": "uint64", + "name": "lastReward", + "type": "uint64" + }, + { + "internalType": "uint64", + "name": "lastMonth", + "type": "uint64" + } + ], + "stateMutability": "view", + "type": "function" }, { "inputs": [ { "internalType": "address", - "name": "", + "name": "_to", "type": "address" + }, + { + "components": [ + { + "internalType": "uint32", + "name": "nftType", + "type": "uint32" + }, + { + "internalType": "uint16", + "name": "version", + "type": "uint16" + }, + { + "internalType": "string", + "name": "nftUri", + "type": "string" + }, + { + "components": [ + { + "internalType": "uint16", + "name": "subtype", + "type": "uint16" + }, + { + "internalType": "uint32", + "name": "timestamp", + "type": "uint32" + }, + { + "internalType": "uint256", + "name": "quantity", + "type": "uint256" + }, + { + "internalType": "string", + "name": "eventUri", + "type": "string" + }, + { + "internalType": "address[]", + "name": "contributers", + "type": "address[]" + } + ], + "internalType": "struct ProvableNFT.EventData[]", + "name": "events", + "type": "tuple[]" + } + ], + "internalType": "struct ProvableNFT.NFTData", + "name": "_nftData", + "type": "tuple" + }, + { + "internalType": "bool", + "name": "withClaim", + "type": "bool" } ], - "name": "ONLY_HOST_OR_SENDER", - "type": "error" + "name": "mintNFT", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" }, { "inputs": [], - "name": "OVER_GLOBAL_LIMITS", - "type": "error" - }, - { - "inputs": [ + "name": "nft", + "outputs": [ { - "internalType": "address", + "internalType": "contract ProvableNFT", "name": "", "type": "address" } ], - "name": "OVER_MEMBER_LIMITS", - "type": "error" - }, - { - "inputs": [], - "name": "UNSUPPORTED_NFT", - "type": "error" - }, - { - "inputs": [], - "name": "UNSUPPORTED_TOKEN", - "type": "error" - }, - { - "inputs": [], - "name": "UnauthorizedHost", - "type": "error" - }, - { - "inputs": [], - "name": "ZERO_ADDRESS", - "type": "error" - }, - { - "inputs": [], - "name": "ZERO_AMOUNT", - "type": "error" + "stateMutability": "view", + "type": "function" }, { - "anonymous": false, "inputs": [ { - "indexed": false, "internalType": "address", - "name": "previousAdmin", + "name": "operator", "type": "address" }, { - "indexed": false, "internalType": "address", - "name": "newAdmin", + "name": "from", "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" } ], - "name": "AdminChanged", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ + "name": "onERC721Received", + "outputs": [ { - "indexed": true, - "internalType": "address", - "name": "beacon", - "type": "address" + "internalType": "bytes4", + "name": "", + "type": "bytes4" } ], - "name": "BeaconUpgraded", - "type": "event" + "stateMutability": "nonpayable", + "type": "function" }, { - "anonymous": false, "inputs": [ { - "indexed": true, + "internalType": "address", + "name": "_sender", + "type": "address" + }, + { "internalType": "uint256", - "name": "tokenId", + "name": "_amount", "type": "uint256" }, { - "components": [ - { - "internalType": "uint16", - "name": "subtype", - "type": "uint16" - }, - { - "internalType": "uint32", - "name": "timestamp", - "type": "uint32" - }, - { - "internalType": "uint256", - "name": "quantity", - "type": "uint256" - }, - { - "internalType": "string", - "name": "eventUri", - "type": "string" - }, - { - "internalType": "address[]", - "name": "contributers", - "type": "address[]" - } - ], - "indexed": false, - "internalType": "struct ProvableNFT.EventData", - "name": "eventData", - "type": "tuple" + "internalType": "bytes", + "name": "", + "type": "bytes" } ], - "name": "EventRewardClaimed", - "type": "event" + "name": "onTokenTransfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" }, { - "anonymous": false, - "inputs": [ + "inputs": [], + "name": "proxiableUUID", + "outputs": [ { - "indexed": false, - "internalType": "uint8", - "name": "version", - "type": "uint8" + "internalType": "bytes32", + "name": "", + "type": "bytes32" } ], - "name": "Initialized", - "type": "event" + "stateMutability": "view", + "type": "function" }, { - "anonymous": false, - "inputs": [ + "inputs": [], + "name": "registry", + "outputs": [ { - "indexed": false, - "internalType": "address", - "name": "member", + "internalType": "contract DirectPaymentsFactory", + "name": "", "type": "address" } ], - "name": "MemberAdded", - "type": "event" + "stateMutability": "view", + "type": "function" }, { - "anonymous": false, "inputs": [ { - "indexed": false, + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { "internalType": "address", - "name": "member", + "name": "account", "type": "address" } ], - "name": "MemberRemoved", - "type": "event" + "name": "renounceRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" }, { - "anonymous": false, "inputs": [ { - "indexed": true, - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" + "internalType": "bytes32", + "name": "role", + "type": "bytes32" }, { - "indexed": false, - "internalType": "uint256", - "name": "totalRewards", - "type": "uint256" + "internalType": "address", + "name": "account", + "type": "address" } ], - "name": "NFTClaimed", - "type": "event" + "name": "revokeRole", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" }, { - "anonymous": false, "inputs": [ { "components": [ @@ -6873,17 +16648,17 @@ "type": "uint256" } ], - "indexed": false, "internalType": "struct DirectPaymentsPool.SafetyLimits", - "name": "limits", + "name": "_limits", "type": "tuple" } ], - "name": "PoolLimitsChanged", - "type": "event" + "name": "setPoolLimits", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" }, { - "anonymous": false, "inputs": [ { "components": [ @@ -6923,88 +16698,251 @@ "type": "address" } ], - "indexed": false, "internalType": "struct DirectPaymentsPool.PoolSettings", - "name": "settings", + "name": "_settings", "type": "tuple" } ], - "name": "PoolSettingsChanged", - "type": "event" + "name": "setPoolSettings", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" }, { - "anonymous": false, - "inputs": [ + "inputs": [], + "name": "settings", + "outputs": [ { - "indexed": true, - "internalType": "bytes32", - "name": "role", - "type": "bytes32" + "internalType": "uint32", + "name": "nftType", + "type": "uint32" }, { - "indexed": true, - "internalType": "bytes32", - "name": "previousAdminRole", - "type": "bytes32" + "internalType": "address", + "name": "manager", + "type": "address" }, { - "indexed": true, - "internalType": "bytes32", - "name": "newAdminRole", - "type": "bytes32" + "internalType": "contract IMembersValidator", + "name": "membersValidator", + "type": "address" + }, + { + "internalType": "contract IIdentityV2", + "name": "uniquenessValidator", + "type": "address" + }, + { + "internalType": "contract IERC20Upgradeable", + "name": "rewardToken", + "type": "address" } ], - "name": "RoleAdminChanged", - "type": "event" + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "stats", + "outputs": [ + { + "internalType": "uint256", + "name": "netIncome", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "totalFees", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "lastUpdate", + "type": "uint256" + }, + { + "internalType": "address", + "name": "lastFeeRecipient", + "type": "address" + }, + { + "internalType": "int96", + "name": "lastIncomeRate", + "type": "int96" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "superToken", + "outputs": [ + { + "internalType": "contract ISuperToken", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" }, { - "anonymous": false, "inputs": [ { - "indexed": true, - "internalType": "bytes32", - "name": "role", - "type": "bytes32" + "internalType": "address", + "name": "_sender", + "type": "address" }, { - "indexed": true, + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "_ctx", + "type": "bytes" + } + ], + "name": "support", + "outputs": [ + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { "internalType": "address", - "name": "account", + "name": "", "type": "address" + } + ], + "name": "supporters", + "outputs": [ + { + "internalType": "uint256", + "name": "contribution", + "type": "uint256" + }, + { + "internalType": "int96", + "name": "flowRate", + "type": "int96" }, { - "indexed": true, + "internalType": "uint128", + "name": "lastUpdated", + "type": "uint128" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "swapRouter", + "outputs": [ + { + "internalType": "contract ISwapRouter", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newImplementation", + "type": "address" + } + ], + "name": "upgradeTo", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { "internalType": "address", - "name": "sender", + "name": "newImplementation", "type": "address" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" } ], - "name": "RoleGranted", - "type": "event" + "name": "upgradeToAndCall", + "outputs": [], + "stateMutability": "payable", + "type": "function" }, { - "anonymous": false, "inputs": [ { - "indexed": true, - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "upgradeToLatest", + "outputs": [], + "stateMutability": "payable", + "type": "function" + } + ] + }, + "ProvableNFT": { + "address": "0x4C81775468548a91Da83962EfB2B35870bcc39EC", + "abi": [ + { + "anonymous": false, + "inputs": [ { - "indexed": true, + "indexed": false, "internalType": "address", - "name": "account", + "name": "previousAdmin", "type": "address" }, { - "indexed": true, + "indexed": false, "internalType": "address", - "name": "sender", + "name": "newAdmin", "type": "address" } ], - "name": "RoleRevoked", + "name": "AdminChanged", "type": "event" }, { @@ -7013,41 +16951,11 @@ { "indexed": true, "internalType": "address", - "name": "supporter", + "name": "beacon", "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "previousContribution", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "contribution", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "int96", - "name": "previousFlowRate", - "type": "int96" - }, - { - "indexed": false, - "internalType": "int96", - "name": "flowRate", - "type": "int96" - }, - { - "indexed": false, - "internalType": "bool", - "name": "isFlowUpdate", - "type": "bool" } ], - "name": "SupporterUpdated", + "name": "BeaconUpgraded", "type": "event" }, { @@ -7064,254 +16972,314 @@ "type": "event" }, { - "inputs": [], - "name": "CFAV1_TYPE", - "outputs": [ + "stateMutability": "payable", + "type": "fallback" + }, + { + "stateMutability": "payable", + "type": "receive" + }, + { + "inputs": [ { "internalType": "bytes32", - "name": "", + "name": "dataHash", + "type": "bytes32" + }, + { + "internalType": "bytes32", + "name": "tokenId", "type": "bytes32" } ], - "stateMutability": "view", - "type": "function" + "name": "BAD_DATAHASH", + "type": "error" }, { "inputs": [], - "name": "DEFAULT_ADMIN_ROLE", - "outputs": [ + "name": "BAD_NFTTYPE", + "type": "error" + }, + { + "inputs": [ { - "internalType": "bytes32", + "internalType": "uint32", "name": "", - "type": "bytes32" + "type": "uint32" } ], - "stateMutability": "view", - "type": "function" + "name": "NOT_MANAGER", + "type": "error" }, { "inputs": [], - "name": "MANAGER_ROLE", - "outputs": [ + "name": "NOT_MINTER", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ { - "internalType": "bytes32", - "name": "", - "type": "bytes32" + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "approved", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" } ], - "stateMutability": "view", - "type": "function" + "name": "Approval", + "type": "event" }, { - "inputs": [], - "name": "MINTER_ROLE", - "outputs": [ + "anonymous": false, + "inputs": [ { - "internalType": "bytes32", - "name": "", - "type": "bytes32" + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "indexed": false, + "internalType": "bool", + "name": "approved", + "type": "bool" } ], - "stateMutability": "view", - "type": "function" + "name": "ApprovalForAll", + "type": "event" }, { - "inputs": [], - "name": "MIN_FLOW_RATE", - "outputs": [ + "anonymous": false, + "inputs": [ { - "internalType": "int96", - "name": "", - "type": "int96" + "indexed": false, + "internalType": "uint8", + "name": "version", + "type": "uint8" } ], - "stateMutability": "view", - "type": "function" + "name": "Initialized", + "type": "event" }, { + "anonymous": false, "inputs": [ { + "indexed": false, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "indexed": false, "internalType": "address", - "name": "member", + "name": "to", "type": "address" }, { - "internalType": "bytes", - "name": "extraData", - "type": "bytes" + "indexed": false, + "internalType": "bytes32", + "name": "nftDataHash", + "type": "bytes32" + }, + { + "components": [ + { + "internalType": "uint32", + "name": "nftType", + "type": "uint32" + }, + { + "internalType": "uint16", + "name": "version", + "type": "uint16" + }, + { + "internalType": "string", + "name": "nftUri", + "type": "string" + }, + { + "components": [ + { + "internalType": "uint16", + "name": "subtype", + "type": "uint16" + }, + { + "internalType": "uint32", + "name": "timestamp", + "type": "uint32" + }, + { + "internalType": "uint256", + "name": "quantity", + "type": "uint256" + }, + { + "internalType": "string", + "name": "eventUri", + "type": "string" + }, + { + "internalType": "address[]", + "name": "contributers", + "type": "address[]" + } + ], + "internalType": "struct ProvableNFT.EventData[]", + "name": "events", + "type": "tuple[]" + } + ], + "indexed": false, + "internalType": "struct ProvableNFT.NFTData", + "name": "nftData", + "type": "tuple" } ], - "name": "addMember", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" + "name": "ProvableNftMinted", + "type": "event" }, { + "anonymous": false, "inputs": [ { - "internalType": "contract ISuperToken", - "name": "superToken", - "type": "address" - }, - { - "internalType": "address", - "name": "", - "type": "address" - }, - { + "indexed": true, "internalType": "bytes32", - "name": "", + "name": "role", "type": "bytes32" }, { - "internalType": "bytes", - "name": "agreementData", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "", - "type": "bytes" + "indexed": true, + "internalType": "bytes32", + "name": "previousAdminRole", + "type": "bytes32" }, { - "internalType": "bytes", - "name": "ctx", - "type": "bytes" - } - ], - "name": "afterAgreementCreated", - "outputs": [ - { - "internalType": "bytes", - "name": "newCtx", - "type": "bytes" + "indexed": true, + "internalType": "bytes32", + "name": "newAdminRole", + "type": "bytes32" } ], - "stateMutability": "nonpayable", - "type": "function" + "name": "RoleAdminChanged", + "type": "event" }, { + "anonymous": false, "inputs": [ { - "internalType": "contract ISuperToken", - "name": "superToken", - "type": "address" - }, - { - "internalType": "address", - "name": "agreementClass", - "type": "address" - }, - { + "indexed": true, "internalType": "bytes32", - "name": "", + "name": "role", "type": "bytes32" }, { - "internalType": "bytes", - "name": "agreementData", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "cbdata", - "type": "bytes" + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" }, { - "internalType": "bytes", - "name": "ctx", - "type": "bytes" - } - ], - "name": "afterAgreementTerminated", - "outputs": [ - { - "internalType": "bytes", - "name": "newCtx", - "type": "bytes" + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" } ], - "stateMutability": "nonpayable", - "type": "function" + "name": "RoleGranted", + "type": "event" }, { + "anonymous": false, "inputs": [ { - "internalType": "contract ISuperToken", - "name": "superToken", - "type": "address" - }, - { - "internalType": "address", - "name": "", - "type": "address" - }, - { + "indexed": true, "internalType": "bytes32", - "name": "", + "name": "role", "type": "bytes32" }, { - "internalType": "bytes", - "name": "agreementData", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "cbdata", - "type": "bytes" + "indexed": true, + "internalType": "address", + "name": "account", + "type": "address" }, { - "internalType": "bytes", - "name": "ctx", - "type": "bytes" - } - ], - "name": "afterAgreementUpdated", - "outputs": [ - { - "internalType": "bytes", - "name": "newCtx", - "type": "bytes" + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" } ], - "stateMutability": "nonpayable", - "type": "function" + "name": "RoleRevoked", + "type": "event" }, { + "anonymous": false, "inputs": [ { - "internalType": "contract ISuperToken", - "name": "superToken", + "indexed": true, + "internalType": "address", + "name": "from", "type": "address" }, { + "indexed": true, "internalType": "address", - "name": "agreementClass", + "name": "to", "type": "address" }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [], + "name": "DEFAULT_ADMIN_ROLE", + "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "", - "type": "bytes" } ], - "name": "beforeAgreementCreated", + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "MINTER_ROLE", "outputs": [ { - "internalType": "bytes", + "internalType": "bytes32", "name": "", - "type": "bytes" + "type": "bytes32" } ], "stateMutability": "view", @@ -7319,94 +17287,72 @@ }, { "inputs": [ - { - "internalType": "contract ISuperToken", - "name": "superToken", - "type": "address" - }, { "internalType": "address", - "name": "agreementClass", + "name": "_manager", "type": "address" }, { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "agreementData", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "", - "type": "bytes" - } - ], - "name": "beforeAgreementTerminated", - "outputs": [ - { - "internalType": "bytes", - "name": "", - "type": "bytes" + "internalType": "uint32", + "name": "_nftType", + "type": "uint32" } ], - "stateMutability": "view", + "name": "addManager", + "outputs": [], + "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ - { - "internalType": "contract ISuperToken", - "name": "superToken", - "type": "address" - }, { "internalType": "address", - "name": "agreementClass", + "name": "to", "type": "address" }, { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "agreementData", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "", - "type": "bytes" + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" } ], - "name": "beforeAgreementUpdated", + "name": "balanceOf", "outputs": [ { - "internalType": "bytes", + "internalType": "uint256", "name": "", - "type": "bytes" + "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { - "inputs": [], - "name": "cfaV1", - "outputs": [ + "inputs": [ { - "internalType": "contract ISuperfluid", - "name": "host", - "type": "address" - }, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "getApproved", + "outputs": [ { - "internalType": "contract IConstantFlowAgreementV1", - "name": "cfa", + "internalType": "address", + "name": "", "type": "address" } ], @@ -7416,23 +17362,32 @@ { "inputs": [ { - "internalType": "uint256", - "name": "_nftId", - "type": "uint256" + "internalType": "uint32", + "name": "_nftType", + "type": "uint32" } ], - "name": "claim", - "outputs": [], - "stateMutability": "nonpayable", + "name": "getManagerRole", + "outputs": [ + { + "internalType": "bytes32", + "name": "roleHash", + "type": "bytes32" + } + ], + "stateMutability": "pure", "type": "function" }, { "inputs": [ { "internalType": "uint256", - "name": "_nftId", + "name": "_tokenId", "type": "uint256" - }, + } + ], + "name": "getNFTData", + "outputs": [ { "components": [ { @@ -7484,29 +17439,8 @@ } ], "internalType": "struct ProvableNFT.NFTData", - "name": "_data", - "type": "tuple" - } - ], - "name": "claim", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "name": "claimedNfts", - "outputs": [ - { - "internalType": "bool", "name": "", - "type": "bool" + "type": "tuple" } ], "stateMutability": "view", @@ -7514,59 +17448,50 @@ }, { "inputs": [ - { - "internalType": "address", - "name": "_user", - "type": "address" - } - ], - "name": "getRealtimeContribution", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getRealtimeStats", - "outputs": [ { "internalType": "uint256", - "name": "netIncome", + "name": "_tokenId", "type": "uint256" }, { "internalType": "uint256", - "name": "totalFees", + "name": "_index", "type": "uint256" - }, - { - "internalType": "int96", - "name": "incomeFlowRate", - "type": "int96" - }, - { - "internalType": "int96", - "name": "feeRate", - "type": "int96" } ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getRegistry", + "name": "getNFTEvent", "outputs": [ { - "internalType": "contract DirectPaymentsFactory", + "components": [ + { + "internalType": "uint16", + "name": "subtype", + "type": "uint16" + }, + { + "internalType": "uint32", + "name": "timestamp", + "type": "uint32" + }, + { + "internalType": "uint256", + "name": "quantity", + "type": "uint256" + }, + { + "internalType": "string", + "name": "eventUri", + "type": "string" + }, + { + "internalType": "address[]", + "name": "contributers", + "type": "address[]" + } + ], + "internalType": "struct ProvableNFT.EventData", "name": "", - "type": "address" + "type": "tuple" } ], "stateMutability": "view", @@ -7575,126 +17500,83 @@ { "inputs": [ { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - } - ], - "name": "getRoleAdmin", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" + "internalType": "uint256", + "name": "_tokenId", + "type": "uint256" } ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "globalLimits", + "name": "getNFTEvents", "outputs": [ - { - "internalType": "uint128", - "name": "daily", - "type": "uint128" - }, - { - "internalType": "uint128", - "name": "monthly", - "type": "uint128" - }, - { - "internalType": "uint128", - "name": "total", - "type": "uint128" - }, - { - "internalType": "uint64", - "name": "lastReward", - "type": "uint64" - }, - { - "internalType": "uint64", - "name": "lastMonth", - "type": "uint64" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "role", - "type": "bytes32" - }, - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "grantRole", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ { "components": [ { - "internalType": "address", - "name": "swapFrom", - "type": "address" + "internalType": "uint16", + "name": "subtype", + "type": "uint16" }, { - "internalType": "uint256", - "name": "amount", - "type": "uint256" + "internalType": "uint32", + "name": "timestamp", + "type": "uint32" }, { "internalType": "uint256", - "name": "minReturn", + "name": "quantity", "type": "uint256" }, { - "internalType": "uint256", - "name": "deadline", - "type": "uint256" + "internalType": "string", + "name": "eventUri", + "type": "string" }, { - "internalType": "bytes", - "name": "path", - "type": "bytes" + "internalType": "address[]", + "name": "contributers", + "type": "address[]" } ], - "internalType": "struct GoodCollectiveSuperApp.SwapData", - "name": "_customData", - "type": "tuple" - }, - { - "internalType": "address", - "name": "_sender", - "type": "address" - }, + "internalType": "struct ProvableNFT.EventData[]", + "name": "", + "type": "tuple[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ { - "internalType": "bytes", - "name": "_ctx", - "type": "bytes" + "internalType": "bytes32", + "name": "role", + "type": "bytes32" } ], - "name": "handleSwap", + "name": "getRoleAdmin", "outputs": [ { - "internalType": "bytes", + "internalType": "bytes32", "name": "", - "type": "bytes" + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "role", + "type": "bytes32" + }, + { + "internalType": "address", + "name": "account", + "type": "address" } ], + "name": "grantRole", + "outputs": [], "stateMutability": "nonpayable", "type": "function" }, @@ -7722,94 +17604,17 @@ "stateMutability": "view", "type": "function" }, - { - "inputs": [], - "name": "host", - "outputs": [ - { - "internalType": "contract ISuperfluid", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, { "inputs": [ { - "internalType": "contract ProvableNFT", - "name": "_nft", - "type": "address" - }, - { - "components": [ - { - "internalType": "uint32", - "name": "nftType", - "type": "uint32" - }, - { - "internalType": "uint16[]", - "name": "validEvents", - "type": "uint16[]" - }, - { - "internalType": "uint128[]", - "name": "rewardPerEvent", - "type": "uint128[]" - }, - { - "internalType": "address", - "name": "manager", - "type": "address" - }, - { - "internalType": "contract IMembersValidator", - "name": "membersValidator", - "type": "address" - }, - { - "internalType": "contract IIdentityV2", - "name": "uniquenessValidator", - "type": "address" - }, - { - "internalType": "contract IERC20Upgradeable", - "name": "rewardToken", - "type": "address" - } - ], - "internalType": "struct DirectPaymentsPool.PoolSettings", - "name": "_settings", - "type": "tuple" - }, - { - "components": [ - { - "internalType": "uint256", - "name": "maxTotalPerMonth", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "maxMemberPerMonth", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "maxMemberPerDay", - "type": "uint256" - } - ], - "internalType": "struct DirectPaymentsPool.SafetyLimits", - "name": "_limits", - "type": "tuple" + "internalType": "string", + "name": "_name", + "type": "string" }, { - "internalType": "contract DirectPaymentsFactory", - "name": "_registry", - "type": "address" + "internalType": "string", + "name": "_symbol", + "type": "string" } ], "name": "initialize", @@ -7820,12 +17625,17 @@ { "inputs": [ { - "internalType": "contract ISuperToken", - "name": "_superToken", + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "operator", "type": "address" } ], - "name": "isAcceptedSuperToken", + "name": "isApprovedForAll", "outputs": [ { "internalType": "bool", @@ -7837,62 +17647,125 @@ "type": "function" }, { - "inputs": [], - "name": "limits", - "outputs": [ + "inputs": [ { - "internalType": "uint256", - "name": "maxTotalPerMonth", - "type": "uint256" + "internalType": "address", + "name": "_to", + "type": "address" }, { - "internalType": "uint256", - "name": "maxMemberPerMonth", - "type": "uint256" + "internalType": "string", + "name": "_uri", + "type": "string" }, + { + "internalType": "bytes32", + "name": "_nftDataHash", + "type": "bytes32" + } + ], + "name": "mint", + "outputs": [ { "internalType": "uint256", - "name": "maxMemberPerDay", + "name": "tokenId", "type": "uint256" } ], - "stateMutability": "view", + "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", - "name": "", + "name": "_to", "type": "address" - } - ], - "name": "memberLimits", - "outputs": [ - { - "internalType": "uint128", - "name": "daily", - "type": "uint128" }, { - "internalType": "uint128", - "name": "monthly", - "type": "uint128" + "components": [ + { + "internalType": "uint32", + "name": "nftType", + "type": "uint32" + }, + { + "internalType": "uint16", + "name": "version", + "type": "uint16" + }, + { + "internalType": "string", + "name": "nftUri", + "type": "string" + }, + { + "components": [ + { + "internalType": "uint16", + "name": "subtype", + "type": "uint16" + }, + { + "internalType": "uint32", + "name": "timestamp", + "type": "uint32" + }, + { + "internalType": "uint256", + "name": "quantity", + "type": "uint256" + }, + { + "internalType": "string", + "name": "eventUri", + "type": "string" + }, + { + "internalType": "address[]", + "name": "contributers", + "type": "address[]" + } + ], + "internalType": "struct ProvableNFT.EventData[]", + "name": "events", + "type": "tuple[]" + } + ], + "internalType": "struct ProvableNFT.NFTData", + "name": "_nftData", + "type": "tuple" }, { - "internalType": "uint128", - "name": "total", - "type": "uint128" + "internalType": "bool", + "name": "_withStore", + "type": "bool" }, { - "internalType": "uint64", - "name": "lastReward", - "type": "uint64" - }, + "internalType": "bytes", + "name": "_callData", + "type": "bytes" + } + ], + "name": "mintPermissioned", + "outputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ { - "internalType": "uint64", - "name": "lastMonth", - "type": "uint64" + "internalType": "string", + "name": "", + "type": "string" } ], "stateMutability": "view", @@ -7901,17 +17774,17 @@ { "inputs": [ { - "internalType": "address", - "name": "", - "type": "address" + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" } ], - "name": "members", + "name": "ownerOf", "outputs": [ { - "internalType": "bool", + "internalType": "address", "name": "", - "type": "bool" + "type": "address" } ], "stateMutability": "view", @@ -7920,9 +17793,9 @@ { "inputs": [ { - "internalType": "address", - "name": "_to", - "type": "address" + "internalType": "uint256", + "name": "_tokenId", + "type": "uint256" }, { "components": [ @@ -7977,92 +17850,66 @@ "internalType": "struct ProvableNFT.NFTData", "name": "_nftData", "type": "tuple" - }, - { - "internalType": "bool", - "name": "withClaim", - "type": "bool" } ], - "name": "mintNFT", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "nft", + "name": "proveNFTData", "outputs": [ { - "internalType": "contract ProvableNFT", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - }, - { - "internalType": "bytes", + "components": [ + { + "internalType": "uint32", + "name": "nftType", + "type": "uint32" + }, + { + "internalType": "uint16", + "name": "version", + "type": "uint16" + }, + { + "internalType": "string", + "name": "nftUri", + "type": "string" + }, + { + "components": [ + { + "internalType": "uint16", + "name": "subtype", + "type": "uint16" + }, + { + "internalType": "uint32", + "name": "timestamp", + "type": "uint32" + }, + { + "internalType": "uint256", + "name": "quantity", + "type": "uint256" + }, + { + "internalType": "string", + "name": "eventUri", + "type": "string" + }, + { + "internalType": "address[]", + "name": "contributers", + "type": "address[]" + } + ], + "internalType": "struct ProvableNFT.EventData[]", + "name": "events", + "type": "tuple[]" + } + ], + "internalType": "struct ProvableNFT.NFTData", "name": "data", - "type": "bytes" - } - ], - "name": "onERC721Received", - "outputs": [ - { - "internalType": "bytes4", - "name": "", - "type": "bytes4" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_sender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "_amount", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "", - "type": "bytes" - } - ], - "name": "onTokenTransfer", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" + "type": "tuple" } ], - "stateMutability": "nonpayable", + "stateMutability": "view", "type": "function" }, { @@ -8078,32 +17925,6 @@ "stateMutability": "view", "type": "function" }, - { - "inputs": [], - "name": "registry", - "outputs": [ - { - "internalType": "contract DirectPaymentsFactory", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "member", - "type": "address" - } - ], - "name": "removeMember", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, { "inputs": [ { @@ -8141,110 +17962,53 @@ "type": "function" }, { - "inputs": [], - "name": "settings", - "outputs": [ - { - "internalType": "uint32", - "name": "nftType", - "type": "uint32" - }, + "inputs": [ { "internalType": "address", - "name": "manager", - "type": "address" - }, - { - "internalType": "contract IMembersValidator", - "name": "membersValidator", - "type": "address" - }, - { - "internalType": "contract IIdentityV2", - "name": "uniquenessValidator", + "name": "from", "type": "address" }, { - "internalType": "contract IERC20Upgradeable", - "name": "rewardToken", + "internalType": "address", + "name": "to", "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "stats", - "outputs": [ - { - "internalType": "uint256", - "name": "netIncome", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "totalFees", - "type": "uint256" }, { "internalType": "uint256", - "name": "lastUpdate", + "name": "tokenId", "type": "uint256" - }, - { - "internalType": "address", - "name": "lastFeeRecipient", - "type": "address" - }, - { - "internalType": "int96", - "name": "lastIncomeRate", - "type": "int96" } ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "superToken", - "outputs": [ - { - "internalType": "contract ISuperToken", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", - "name": "_sender", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", "type": "address" }, { "internalType": "uint256", - "name": "_amount", + "name": "tokenId", "type": "uint256" }, { "internalType": "bytes", - "name": "_ctx", - "type": "bytes" - } - ], - "name": "support", - "outputs": [ - { - "internalType": "bytes", - "name": "", + "name": "data", "type": "bytes" } ], + "name": "safeTransferFrom", + "outputs": [], "stateMutability": "nonpayable", "type": "function" }, @@ -8252,29 +18016,18 @@ "inputs": [ { "internalType": "address", - "name": "", + "name": "operator", "type": "address" - } - ], - "name": "supporters", - "outputs": [ - { - "internalType": "uint256", - "name": "contribution", - "type": "uint256" }, { - "internalType": "int96", - "name": "flowRate", - "type": "int96" - }, - { - "internalType": "uint128", - "name": "lastUpdated", - "type": "uint128" + "internalType": "bool", + "name": "approved", + "type": "bool" } ], - "stateMutability": "view", + "name": "setApprovalForAll", + "outputs": [], + "stateMutability": "nonpayable", "type": "function" }, { @@ -8298,17 +18051,59 @@ }, { "inputs": [], - "name": "swapRouter", + "name": "symbol", "outputs": [ { - "internalType": "contract ISwapRouter", + "internalType": "string", "name": "", - "type": "address" + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "tokenURI", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" } ], "stateMutability": "view", "type": "function" }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, { "inputs": [ { @@ -8342,21 +18137,24 @@ }, { "inputs": [ + { + "internalType": "address", + "name": "_logic", + "type": "address" + }, { "internalType": "bytes", - "name": "data", + "name": "_data", "type": "bytes" } ], - "name": "upgradeToLatest", - "outputs": [], "stateMutability": "payable", - "type": "function" + "type": "constructor" } ] }, - "ProvableNFT": { - "address": "0x6CC1Ea02F43Cc366452d0037831e202254d93699", + "ProvableNFT_Implementation": { + "address": "0x380bb7909ca609aF82f01FBE7784Ed3f4CEd3069", "abi": [ { "inputs": [ @@ -8490,6 +18288,86 @@ "name": "Initialized", "type": "event" }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "bytes32", + "name": "nftDataHash", + "type": "bytes32" + }, + { + "components": [ + { + "internalType": "uint32", + "name": "nftType", + "type": "uint32" + }, + { + "internalType": "uint16", + "name": "version", + "type": "uint16" + }, + { + "internalType": "string", + "name": "nftUri", + "type": "string" + }, + { + "components": [ + { + "internalType": "uint16", + "name": "subtype", + "type": "uint16" + }, + { + "internalType": "uint32", + "name": "timestamp", + "type": "uint32" + }, + { + "internalType": "uint256", + "name": "quantity", + "type": "uint256" + }, + { + "internalType": "string", + "name": "eventUri", + "type": "string" + }, + { + "internalType": "address[]", + "name": "contributers", + "type": "address[]" + } + ], + "internalType": "struct ProvableNFT.EventData[]", + "name": "events", + "type": "tuple[]" + } + ], + "indexed": false, + "internalType": "struct ProvableNFT.NFTData", + "name": "nftData", + "type": "tuple" + } + ], + "name": "ProvableNftMinted", + "type": "event" + }, { "anonymous": false, "inputs": [ @@ -9480,6 +19358,80 @@ "type": "function" } ] + }, + "ProvableNFT_Proxy": { + "address": "0x4C81775468548a91Da83962EfB2B35870bcc39EC", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "_logic", + "type": "address" + }, + { + "internalType": "bytes", + "name": "_data", + "type": "bytes" + } + ], + "stateMutability": "payable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "previousAdmin", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "newAdmin", + "type": "address" + } + ], + "name": "AdminChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "beacon", + "type": "address" + } + ], + "name": "BeaconUpgraded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "implementation", + "type": "address" + } + ], + "name": "Upgraded", + "type": "event" + }, + { + "stateMutability": "payable", + "type": "fallback" + }, + { + "stateMutability": "payable", + "type": "receive" + } + ] } } } diff --git a/packages/sdk-js/scripts/deployContracts.sh b/packages/sdk-js/scripts/deployContracts.sh index 16b569cd..61ca2aa6 100755 --- a/packages/sdk-js/scripts/deployContracts.sh +++ b/packages/sdk-js/scripts/deployContracts.sh @@ -1,5 +1,5 @@ #! /bin/bash pushd ../contracts -npx hardhat node & +yarn deploy & sleep 20 popd \ No newline at end of file diff --git a/packages/sdk-js/src/goodcollective/__tests__/goodcollective.test.ts b/packages/sdk-js/src/goodcollective/__tests__/goodcollective.test.ts index 041d737a..d8bd5a0f 100644 --- a/packages/sdk-js/src/goodcollective/__tests__/goodcollective.test.ts +++ b/packages/sdk-js/src/goodcollective/__tests__/goodcollective.test.ts @@ -159,7 +159,7 @@ describe('GoodCollective SDK', () => { expect(tx.wait()).not.rejects; }); - it.only('should support with gooddollar superfluid stream', async () => { + it('should support with gooddollar superfluid stream', async () => { const pool = await sdk.createPool( wallet, 'test', @@ -186,7 +186,7 @@ describe('GoodCollective SDK', () => { expect(tx.wait()).not.rejects; }); - it.only('should support with gooddollar superfluid stream with swap', async () => { + it('should support with gooddollar superfluid stream with swap', async () => { const pool = await sdk.createPool( wallet, 'test', From 5b6a5578a9757e4d6884c3b9526d50711bdaf0af Mon Sep 17 00:00:00 2001 From: sirpy Date: Thu, 3 Aug 2023 17:59:27 +0300 Subject: [PATCH 11/15] add: beacon proxy pools --- .../DirectPayments/DirectPaymentsFactory.sol | 30 +++++++++++++++---- 1 file changed, 25 insertions(+), 5 deletions(-) diff --git a/packages/contracts/contracts/DirectPayments/DirectPaymentsFactory.sol b/packages/contracts/contracts/DirectPayments/DirectPaymentsFactory.sol index 87da08b4..8811a52f 100644 --- a/packages/contracts/contracts/DirectPayments/DirectPaymentsFactory.sol +++ b/packages/contracts/contracts/DirectPayments/DirectPaymentsFactory.sol @@ -5,6 +5,9 @@ pragma solidity >=0.8.0; import "./DirectPaymentsPool.sol"; import "./ProvableNFT.sol"; import "@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol"; +import "@openzeppelin/contracts/proxy/beacon/BeaconProxy.sol"; +import "@openzeppelin/contracts/proxy/beacon/UpgradeableBeacon.sol"; + import { AccessControlUpgradeable } from "@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol"; import { UUPSUpgradeable } from "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol"; @@ -32,7 +35,7 @@ contract DirectPaymentsFactory is AccessControlUpgradeable, UUPSUpgradeable { string projectId; } - address public impl; + UpgradeableBeacon public impl; ProvableNFT public nft; uint32 public nextNftType; @@ -73,7 +76,7 @@ contract DirectPaymentsFactory is AccessControlUpgradeable, UUPSUpgradeable { uint32 _feeBps ) external initializer { nextNftType = 1; - impl = _dpimpl; + impl = new UpgradeableBeacon(_dpimpl); nft = _nft; feeRecipient = _feeRecipient; feeBps = _feeBps; @@ -87,7 +90,9 @@ contract DirectPaymentsFactory is AccessControlUpgradeable, UUPSUpgradeable { string memory _ipfs, DirectPaymentsPool.PoolSettings memory _settings, DirectPaymentsPool.SafetyLimits memory _limits - ) external onlyProjectOwnerOrNon(_projectId) returns (DirectPaymentsPool pool) {} + ) external onlyProjectOwnerOrNon(_projectId) returns (DirectPaymentsPool pool) { + return _createPool(_projectId, _ipfs, _settings, _limits, true); + } function createPool( string memory _projectId, @@ -95,6 +100,16 @@ contract DirectPaymentsFactory is AccessControlUpgradeable, UUPSUpgradeable { DirectPaymentsPool.PoolSettings memory _settings, DirectPaymentsPool.SafetyLimits memory _limits ) external onlyProjectOwnerOrNon(_projectId) returns (DirectPaymentsPool pool) { + return _createPool(_projectId, _ipfs, _settings, _limits, false); + } + + function _createPool( + string memory _projectId, + string memory _ipfs, + DirectPaymentsPool.PoolSettings memory _settings, + DirectPaymentsPool.SafetyLimits memory _limits, + bool useBeacon + ) internal returns (DirectPaymentsPool pool) { //TODO: add check if msg.sender is whitelisted _settings.nftType = nextNftType; @@ -105,7 +120,12 @@ contract DirectPaymentsFactory is AccessControlUpgradeable, UUPSUpgradeable { _limits, address(this) ); - pool = DirectPaymentsPool(address(new ERC1967Proxy(impl, initCall))); + + if (useBeacon) { + pool = DirectPaymentsPool(address(new BeaconProxy(address(impl), initCall))); + } else { + pool = DirectPaymentsPool(address(new ERC1967Proxy(impl.implementation(), initCall))); + } nft.grantRole(nft.getManagerRole(nextNftType), _settings.manager); nft.grantRole(nft.getManagerRole(nextNftType), address(pool)); @@ -133,7 +153,7 @@ contract DirectPaymentsFactory is AccessControlUpgradeable, UUPSUpgradeable { } function updateImpl(address _impl) external onlyRole(DEFAULT_ADMIN_ROLE) { - impl = _impl; + impl.upgradeTo(_impl); emit UpdatedImpl(_impl); } From 1f84a35bb149f5d153cf64b4951e4154b3e41974 Mon Sep 17 00:00:00 2001 From: sirpy Date: Mon, 7 Aug 2023 13:43:26 +0300 Subject: [PATCH 12/15] fix: typescript issues --- packages/app/__tests__/App-test.tsx | 2 +- packages/app/src/App.tsx | 15 ++++++++------- packages/app/src/Providers.native.tsx | 12 ++++++++---- packages/app/src/Providers.tsx | 9 ++++++--- packages/app/tsconfig.json | 3 ++- 5 files changed, 25 insertions(+), 16 deletions(-) diff --git a/packages/app/__tests__/App-test.tsx b/packages/app/__tests__/App-test.tsx index 17847669..4edaa0a8 100644 --- a/packages/app/__tests__/App-test.tsx +++ b/packages/app/__tests__/App-test.tsx @@ -4,7 +4,7 @@ import 'react-native'; import React from 'react'; -import App from '../App'; +import App from '../src/App'; // Note: test renderer must be required after react-native. import renderer from 'react-test-renderer'; diff --git a/packages/app/src/App.tsx b/packages/app/src/App.tsx index 21fed8c5..c9bdf584 100644 --- a/packages/app/src/App.tsx +++ b/packages/app/src/App.tsx @@ -30,9 +30,9 @@ function Section({ children, title }: SectionProps): JSX.Element { let sdk = new ClaimSDK(new ethers.providers.JsonRpcProvider('https://forno.celo.org'), 'development-celo'); function App(): JSX.Element { - const [status, setStatus] = useState(); - const [faucet, setFaucet] = useState(); - const [claim, setClaim] = useState(); + const [status, setStatus] = useState(); + const [faucet, setFaucet] = useState(); + const [claim, setClaim] = useState(); const isDarkMode = useColorScheme() === 'dark'; const { account, library } = useEthers(); @@ -41,18 +41,20 @@ function App(): JSX.Element { const startFV = async () => { const fvlink = await sdk.generateFVLink('Hadar', window.location.href, false); + console.log({ fvlink }); Linking.openURL(fvlink); }; const startFaucet = async () => { - await sdk.getContract('Faucet').topWallet(account); + if (account) await sdk.getContract('Faucet').topWallet(account); }; const startClaim = async () => { - await sdk.claim(); + await sdk.getContract('UBIScheme').claim(); }; - ``; + const startGasDemo = async () => { + if (!account) return; const abi = ['function drip()']; const p = new CeloProvider('https://alfajores-forno.celo-testnet.org'); const w = new CeloWallet('0xa276992c491e8ca1f41263c0b8a6867daa74b24dd2ec492cb77d6ecf4cc001bc').connect(p); @@ -81,7 +83,6 @@ function App(): JSX.Element { console.log(sdk.contracts); sdk.isAddressVerified(account).then((_) => setStatus(_)); sdk.checkEntitlement().then((_) => setClaim(ethers.utils.formatEther(_))); - console.log(sdk.getContract('Faucet').address); sdk .getContract('Faucet') diff --git a/packages/app/src/Providers.native.tsx b/packages/app/src/Providers.native.tsx index 3c18220c..6b19b714 100644 --- a/packages/app/src/Providers.native.tsx +++ b/packages/app/src/Providers.native.tsx @@ -1,4 +1,4 @@ -import React from 'react'; +import React, { ReactNode } from 'react'; import { NativeBaseProvider } from 'native-base'; import { ethers } from 'ethers'; import { Web3Provider } from '@gooddollar/web3sdk-v2'; @@ -6,8 +6,12 @@ import { Web3Modal, useWeb3Modal } from '@web3modal/react-native'; // usedapp fix for native import LocalStorage from '@usedapp/core/dist/cjs/src/helpers/LocalStorage'; +type Props = { + children?: ReactNode; +}; + if (!window) { - window = {}; + window = {} as any; } window.localStorage = new LocalStorage(); // end of usedapp fix @@ -24,7 +28,7 @@ const providerMetadata = { }, }; -const Web3ProviderWrapper = ({ children }) => { +const Web3ProviderWrapper = ({ children }: Props) => { const { provider } = useWeb3Modal(); const web3provider = provider ? new ethers.providers.Web3Provider(provider) : undefined; return ( @@ -33,7 +37,7 @@ const Web3ProviderWrapper = ({ children }) => { ); }; -export const Providers = ({ children }: { children: any }) => { +export const Providers = ({ children }: Props) => { return ( diff --git a/packages/app/src/Providers.tsx b/packages/app/src/Providers.tsx index 0b8c8d69..7d180a80 100644 --- a/packages/app/src/Providers.tsx +++ b/packages/app/src/Providers.tsx @@ -1,12 +1,15 @@ -import React from 'react'; +import React, { ReactNode } from 'react'; import { NativeBaseProvider } from 'native-base'; import { ethers } from 'ethers'; import { OnboardProvider, Web3Provider } from '@gooddollar/web3sdk-v2'; import { useConnectWallet } from '@web3-onboard/react'; +type Props = { + children?: ReactNode; +}; // wrapper around Web3Provider which initializes useDapp // it is required since usConnectWallet can not be used before onboardprovider is initialized -const Web3ProviderWrapper = ({ children }) => { +const Web3ProviderWrapper = ({ children }: Props) => { const [{ wallet }] = useConnectWallet(); const provider = wallet?.provider ? new ethers.providers.Web3Provider(wallet?.provider) : undefined; return ( @@ -15,7 +18,7 @@ const Web3ProviderWrapper = ({ children }) => { ); }; -export const Providers = ({ children }: { children: any }) => { +export const Providers = ({ children }: Props) => { return ( diff --git a/packages/app/tsconfig.json b/packages/app/tsconfig.json index 45a6c707..57bce3b9 100644 --- a/packages/app/tsconfig.json +++ b/packages/app/tsconfig.json @@ -1,3 +1,4 @@ { - "extends": "@tsconfig/react-native/tsconfig.json" + "extends": "@tsconfig/react-native/tsconfig.json", + "compilerOptions": { "lib": ["DOM", "es2019"] } } From 4d51b762fb6994671c5e8fbcb479af4f94b2c3b5 Mon Sep 17 00:00:00 2001 From: sirpy Date: Mon, 7 Aug 2023 15:02:32 +0300 Subject: [PATCH 13/15] fix: web3button --- packages/app/package.json | 2 +- packages/app/src/Providers.native.tsx | 6 +- .../src/components/ConnectWallet.native.tsx | 12 +- packages/app/src/components/ConnectWallet.tsx | 2 - yarn.lock | 184 +++++++++--------- 5 files changed, 105 insertions(+), 101 deletions(-) diff --git a/packages/app/package.json b/packages/app/package.json index 53f1d8a6..29944398 100644 --- a/packages/app/package.json +++ b/packages/app/package.json @@ -24,7 +24,7 @@ "@react-native-firebase/analytics": "16.7.0", "@react-native-firebase/app": "16.7.0", "@usedapp/core": "^1.2.10", - "@web3modal/react-native": "^1.0.0-alpha.8", + "@walletconnect/modal-react-native": "^1.0.0-rc.9", "crypto-browserify": "^3.12.0", "fast-text-encoding": "^1.0.6", "mixpanel-react-native": "^2.3.1", diff --git a/packages/app/src/Providers.native.tsx b/packages/app/src/Providers.native.tsx index 6b19b714..21ecebe4 100644 --- a/packages/app/src/Providers.native.tsx +++ b/packages/app/src/Providers.native.tsx @@ -2,7 +2,7 @@ import React, { ReactNode } from 'react'; import { NativeBaseProvider } from 'native-base'; import { ethers } from 'ethers'; import { Web3Provider } from '@gooddollar/web3sdk-v2'; -import { Web3Modal, useWeb3Modal } from '@web3modal/react-native'; +import { WalletConnectModal, useWalletConnectModal } from '@walletconnect/modal-react-native'; // usedapp fix for native import LocalStorage from '@usedapp/core/dist/cjs/src/helpers/LocalStorage'; @@ -29,7 +29,7 @@ const providerMetadata = { }; const Web3ProviderWrapper = ({ children }: Props) => { - const { provider } = useWeb3Modal(); + const { provider } = useWalletConnectModal(); const web3provider = provider ? new ethers.providers.Web3Provider(provider) : undefined; return ( @@ -40,7 +40,7 @@ const Web3ProviderWrapper = ({ children }: Props) => { export const Providers = ({ children }: Props) => { return ( - + {children} ); diff --git a/packages/app/src/components/ConnectWallet.native.tsx b/packages/app/src/components/ConnectWallet.native.tsx index a214d82c..4ba37945 100644 --- a/packages/app/src/components/ConnectWallet.native.tsx +++ b/packages/app/src/components/ConnectWallet.native.tsx @@ -1,2 +1,10 @@ -import { Web3Button } from '@web3modal/react-native'; -export const ConnectWallet = Web3Button; +import React from 'react'; +import { Button } from 'native-base'; +import { useWalletConnectModal } from '@walletconnect/modal-react-native'; + +export const ConnectWallet = () => { + const wcModal = useWalletConnectModal(); + + const walletConnect = () => wcModal.open(); + return ; +}; diff --git a/packages/app/src/components/ConnectWallet.tsx b/packages/app/src/components/ConnectWallet.tsx index 5dd5b343..993fedcc 100644 --- a/packages/app/src/components/ConnectWallet.tsx +++ b/packages/app/src/components/ConnectWallet.tsx @@ -1,11 +1,9 @@ import React from 'react'; import { Button } from 'native-base'; import { useConnectWallet } from '@web3-onboard/react'; -// import {useWeb3Modal} from '../hooks/useWeb3Modal'; export const ConnectWallet = () => { const [, connect] = useConnectWallet(); - // const provider = useWeb3Modal(); const walletConnect = () => connect(); return ; }; diff --git a/yarn.lock b/yarn.lock index 5d8434bd..82f25b22 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4223,7 +4223,7 @@ __metadata: "@types/react-test-renderer": ^18.0.0 "@usedapp/core": ^1.2.10 "@vitejs/plugin-react": ^4.0.0 - "@web3modal/react-native": ^1.0.0-alpha.8 + "@walletconnect/modal-react-native": ^1.0.0-rc.9 babel-jest: ^29.2.1 crypto-browserify: ^3.12.0 eslint: ^8.19.0 @@ -11059,51 +11059,51 @@ __metadata: languageName: node linkType: hard -"@walletconnect/core@npm:2.8.1": - version: 2.8.1 - resolution: "@walletconnect/core@npm:2.8.1" +"@walletconnect/core@npm:2.9.0": + version: 2.9.0 + resolution: "@walletconnect/core@npm:2.9.0" dependencies: "@walletconnect/heartbeat": 1.2.1 "@walletconnect/jsonrpc-provider": 1.0.13 "@walletconnect/jsonrpc-types": 1.0.3 "@walletconnect/jsonrpc-utils": 1.0.8 - "@walletconnect/jsonrpc-ws-connection": ^1.0.11 + "@walletconnect/jsonrpc-ws-connection": 1.0.12 "@walletconnect/keyvaluestorage": ^1.0.2 "@walletconnect/logger": ^2.0.1 "@walletconnect/relay-api": ^1.0.9 "@walletconnect/relay-auth": ^1.0.4 "@walletconnect/safe-json": ^1.0.2 "@walletconnect/time": ^1.0.2 - "@walletconnect/types": 2.8.1 - "@walletconnect/utils": 2.8.1 + "@walletconnect/types": 2.9.0 + "@walletconnect/utils": 2.9.0 events: ^3.3.0 lodash.isequal: 4.5.0 uint8arrays: ^3.1.0 - checksum: 4f7603e510c8ab4acd0ec380740a872921a0b7fc053ef9920f405172c071259bc167fa06952d51244322caa7e282ec9debd8794b7fd3c703e3f1d1e7c7f4e512 + checksum: c2cba1746e9679bd03e55ecfbf8c0339d3122ee31e87e8a690778263ff5c8c371ab5301445da2139711e6522d33946e9fbf640e5238241b2b2e7a394b23c2a00 languageName: node linkType: hard -"@walletconnect/core@npm:2.9.0": - version: 2.9.0 - resolution: "@walletconnect/core@npm:2.9.0" +"@walletconnect/core@npm:2.9.2": + version: 2.9.2 + resolution: "@walletconnect/core@npm:2.9.2" dependencies: "@walletconnect/heartbeat": 1.2.1 "@walletconnect/jsonrpc-provider": 1.0.13 "@walletconnect/jsonrpc-types": 1.0.3 "@walletconnect/jsonrpc-utils": 1.0.8 - "@walletconnect/jsonrpc-ws-connection": 1.0.12 + "@walletconnect/jsonrpc-ws-connection": 1.0.13 "@walletconnect/keyvaluestorage": ^1.0.2 "@walletconnect/logger": ^2.0.1 "@walletconnect/relay-api": ^1.0.9 "@walletconnect/relay-auth": ^1.0.4 "@walletconnect/safe-json": ^1.0.2 "@walletconnect/time": ^1.0.2 - "@walletconnect/types": 2.9.0 - "@walletconnect/utils": 2.9.0 + "@walletconnect/types": 2.9.2 + "@walletconnect/utils": 2.9.2 events: ^3.3.0 lodash.isequal: 4.5.0 uint8arrays: ^3.1.0 - checksum: c2cba1746e9679bd03e55ecfbf8c0339d3122ee31e87e8a690778263ff5c8c371ab5301445da2139711e6522d33946e9fbf640e5238241b2b2e7a394b23c2a00 + checksum: f96fe5147ddae5ab08c72e946ebfc40b218ca2a985e243ebcbf2346c79286b33de9c1f6dfb0f9cb81ae52f29725b3437a8af8b856ed55ed3a089e06546b3db06 languageName: node linkType: hard @@ -11336,16 +11336,16 @@ __metadata: languageName: node linkType: hard -"@walletconnect/jsonrpc-ws-connection@npm:^1.0.11": - version: 1.0.11 - resolution: "@walletconnect/jsonrpc-ws-connection@npm:1.0.11" +"@walletconnect/jsonrpc-ws-connection@npm:1.0.13": + version: 1.0.13 + resolution: "@walletconnect/jsonrpc-ws-connection@npm:1.0.13" dependencies: "@walletconnect/jsonrpc-utils": ^1.0.6 "@walletconnect/safe-json": ^1.0.2 events: ^3.3.0 tslib: 1.14.1 ws: ^7.5.1 - checksum: 69fcc5ecb6eafd697fb88e22e6b7a2fd24d06129860feb6bcb5f702062233ebf5aef8b86a8502c67158f48370b98d0f5dffd930a0e5f6944752eb6a3c37a40cb + checksum: f2253b17564f7622e69b1252830f05efdf7f4d58b120adb3a3e950c2087845171c912307c39948d0b869aa8610688b83f54f54de4657091f7431aea95a59f8b9 languageName: node linkType: hard @@ -11394,6 +11394,27 @@ __metadata: languageName: node linkType: hard +"@walletconnect/modal-react-native@npm:^1.0.0-rc.9": + version: 1.0.0-rc.9 + resolution: "@walletconnect/modal-react-native@npm:1.0.0-rc.9" + dependencies: + "@ethersproject/shims": 5.7.0 + "@walletconnect/core": 2.9.2 + "@walletconnect/react-native-compat": 2.9.2 + "@walletconnect/universal-provider": 2.9.2 + qrcode: 1.5.3 + valtio: 1.10.5 + peerDependencies: + "@react-native-async-storage/async-storage": ">=1.17.0" + react: "*" + react-native: "*" + react-native-get-random-values: ">=1.8.0" + react-native-modal: ">=13" + react-native-svg: ">=13" + checksum: c44d646523e24383ef4b6472a9e8c070a1b717700d8b764f76a6ed36610b5ab88b5b30c023b8076209ef61a8e54d080a3038cc3ee11d57e2a577fff6b92dfb45 + languageName: node + linkType: hard + "@walletconnect/modal-ui@npm:2.5.9": version: 2.5.9 resolution: "@walletconnect/modal-ui@npm:2.5.9" @@ -11441,16 +11462,16 @@ __metadata: languageName: node linkType: hard -"@walletconnect/react-native-compat@npm:2.8.1": - version: 2.8.1 - resolution: "@walletconnect/react-native-compat@npm:2.8.1" +"@walletconnect/react-native-compat@npm:2.9.2": + version: 2.9.2 + resolution: "@walletconnect/react-native-compat@npm:2.9.2" dependencies: events: 3.3.0 fast-text-encoding: ^1.0.6 peerDependencies: "@react-native-async-storage/async-storage": "*" react-native-get-random-values: "*" - checksum: 180a05d71c333e2ab0a3d864e43f7071976748826a89079ddf16fa0cf3aa233ac55929cb615c3c9b90e3a795f0add289e794bae751ecd6034fd600a2b73f54a8 + checksum: 60f0e62b751e9a2a2ae47a1212b415ca37e620fbee32d52fb2455640269fbacdd477b39afd783660ace65c0c104d41ad28e7fe9b7f591bd90e25d329a0a02768 languageName: node linkType: hard @@ -11494,37 +11515,37 @@ __metadata: languageName: node linkType: hard -"@walletconnect/sign-client@npm:2.8.1": - version: 2.8.1 - resolution: "@walletconnect/sign-client@npm:2.8.1" +"@walletconnect/sign-client@npm:2.9.0": + version: 2.9.0 + resolution: "@walletconnect/sign-client@npm:2.9.0" dependencies: - "@walletconnect/core": 2.8.1 + "@walletconnect/core": 2.9.0 "@walletconnect/events": ^1.0.1 "@walletconnect/heartbeat": 1.2.1 "@walletconnect/jsonrpc-utils": 1.0.8 "@walletconnect/logger": ^2.0.1 "@walletconnect/time": ^1.0.2 - "@walletconnect/types": 2.8.1 - "@walletconnect/utils": 2.8.1 + "@walletconnect/types": 2.9.0 + "@walletconnect/utils": 2.9.0 events: ^3.3.0 - checksum: 1eecc9dde5aae2034f8c2ba1d1392140f1f9019e7f627ca803f5b126c18655d7b08347147622bdce6bb07355b28893c7f7ddbe13642616238695653da44632df + checksum: fe35b9b15c62efc9702fd34e883f95dcdbda954ff27b628d2d3d3eb7cb904b0fd6ec9c33b64c314305ba7a4b669d37769e7b9e9a723a0a2cb6b57d6a45aa6171 languageName: node linkType: hard -"@walletconnect/sign-client@npm:2.9.0": - version: 2.9.0 - resolution: "@walletconnect/sign-client@npm:2.9.0" +"@walletconnect/sign-client@npm:2.9.2": + version: 2.9.2 + resolution: "@walletconnect/sign-client@npm:2.9.2" dependencies: - "@walletconnect/core": 2.9.0 + "@walletconnect/core": 2.9.2 "@walletconnect/events": ^1.0.1 "@walletconnect/heartbeat": 1.2.1 "@walletconnect/jsonrpc-utils": 1.0.8 "@walletconnect/logger": ^2.0.1 "@walletconnect/time": ^1.0.2 - "@walletconnect/types": 2.9.0 - "@walletconnect/utils": 2.9.0 + "@walletconnect/types": 2.9.2 + "@walletconnect/utils": 2.9.2 events: ^3.3.0 - checksum: fe35b9b15c62efc9702fd34e883f95dcdbda954ff27b628d2d3d3eb7cb904b0fd6ec9c33b64c314305ba7a4b669d37769e7b9e9a723a0a2cb6b57d6a45aa6171 + checksum: b91b271130ab6404c89a94e31bcf9b987c23bc4c5f86a75344b7f4ea1cd887996ae7876038ae35b430175af17529c4caf9bc332abe6e986d878439c7a3dba31a languageName: node linkType: hard @@ -11562,9 +11583,9 @@ __metadata: languageName: node linkType: hard -"@walletconnect/types@npm:2.8.1": - version: 2.8.1 - resolution: "@walletconnect/types@npm:2.8.1" +"@walletconnect/types@npm:2.9.0": + version: 2.9.0 + resolution: "@walletconnect/types@npm:2.9.0" dependencies: "@walletconnect/events": ^1.0.1 "@walletconnect/heartbeat": 1.2.1 @@ -11572,13 +11593,13 @@ __metadata: "@walletconnect/keyvaluestorage": ^1.0.2 "@walletconnect/logger": ^2.0.1 events: ^3.3.0 - checksum: 8ac30f3e66c67bdd4ea18690eaa6d873bf170544a6bc67cdbbeb849ed3a50778158bf82789d047b983e25bd43c3841c5f0102bf2981fce400f5909e0968f0192 + checksum: 147bec3c89cd7194e6df7e3a59560c46bf5b0b8ef58e81f387b3bfeecaa3aecb04b4ac2dbffe11fe671ffdf2f1222178b2fac256ced39e9b3b56c21411362872 languageName: node linkType: hard -"@walletconnect/types@npm:2.9.0": - version: 2.9.0 - resolution: "@walletconnect/types@npm:2.9.0" +"@walletconnect/types@npm:2.9.2": + version: 2.9.2 + resolution: "@walletconnect/types@npm:2.9.2" dependencies: "@walletconnect/events": ^1.0.1 "@walletconnect/heartbeat": 1.2.1 @@ -11586,7 +11607,7 @@ __metadata: "@walletconnect/keyvaluestorage": ^1.0.2 "@walletconnect/logger": ^2.0.1 events: ^3.3.0 - checksum: 147bec3c89cd7194e6df7e3a59560c46bf5b0b8ef58e81f387b3bfeecaa3aecb04b4ac2dbffe11fe671ffdf2f1222178b2fac256ced39e9b3b56c21411362872 + checksum: 81d523cf337f456190b87242ae7843e09f0b1d84127c1138d73420a5cc8e7b05f7f1722dfeaa2ecd12be25331e3896c733e0327221bc51eb6bae192e43b4a99f languageName: node linkType: hard @@ -11597,44 +11618,43 @@ __metadata: languageName: node linkType: hard -"@walletconnect/universal-provider@npm:2.8.1": - version: 2.8.1 - resolution: "@walletconnect/universal-provider@npm:2.8.1" +"@walletconnect/universal-provider@npm:2.9.0": + version: 2.9.0 + resolution: "@walletconnect/universal-provider@npm:2.9.0" dependencies: "@walletconnect/jsonrpc-http-connection": ^1.0.7 "@walletconnect/jsonrpc-provider": 1.0.13 "@walletconnect/jsonrpc-types": ^1.0.2 "@walletconnect/jsonrpc-utils": ^1.0.7 "@walletconnect/logger": ^2.0.1 - "@walletconnect/sign-client": 2.8.1 - "@walletconnect/types": 2.8.1 - "@walletconnect/utils": 2.8.1 - eip1193-provider: 1.0.1 + "@walletconnect/sign-client": 2.9.0 + "@walletconnect/types": 2.9.0 + "@walletconnect/utils": 2.9.0 events: ^3.3.0 - checksum: 888afcbecd7db44fa7159e33c7e714553029ca88ac2a2848664eabc810bcac95290214137cce7c8661aad326274453a484be8e5f99d469e0bcc35c204c9cd4a6 + checksum: 924a4de3d17ff04d33c0acbab4ca9ef5893c286d866a91e4c4734ef260473f1163b2ad6555911b891a4793545b7f042f221dce6278e3c95e4f0e224ab17d9857 languageName: node linkType: hard -"@walletconnect/universal-provider@npm:2.9.0": - version: 2.9.0 - resolution: "@walletconnect/universal-provider@npm:2.9.0" +"@walletconnect/universal-provider@npm:2.9.2": + version: 2.9.2 + resolution: "@walletconnect/universal-provider@npm:2.9.2" dependencies: "@walletconnect/jsonrpc-http-connection": ^1.0.7 "@walletconnect/jsonrpc-provider": 1.0.13 "@walletconnect/jsonrpc-types": ^1.0.2 "@walletconnect/jsonrpc-utils": ^1.0.7 "@walletconnect/logger": ^2.0.1 - "@walletconnect/sign-client": 2.9.0 - "@walletconnect/types": 2.9.0 - "@walletconnect/utils": 2.9.0 + "@walletconnect/sign-client": 2.9.2 + "@walletconnect/types": 2.9.2 + "@walletconnect/utils": 2.9.2 events: ^3.3.0 - checksum: 924a4de3d17ff04d33c0acbab4ca9ef5893c286d866a91e4c4734ef260473f1163b2ad6555911b891a4793545b7f042f221dce6278e3c95e4f0e224ab17d9857 + checksum: 4f1003d63e5358fb45b15c1156911cda8287c98d606084c6168bda5fa9b9a376a3d08afc777823b9dfb71dad18c3f90896be0c0c7d5fc56c6061086b91177bc7 languageName: node linkType: hard -"@walletconnect/utils@npm:2.8.1": - version: 2.8.1 - resolution: "@walletconnect/utils@npm:2.8.1" +"@walletconnect/utils@npm:2.9.0": + version: 2.9.0 + resolution: "@walletconnect/utils@npm:2.9.0" dependencies: "@stablelib/chacha20poly1305": 1.0.1 "@stablelib/hkdf": 1.0.1 @@ -11644,19 +11664,19 @@ __metadata: "@walletconnect/relay-api": ^1.0.9 "@walletconnect/safe-json": ^1.0.2 "@walletconnect/time": ^1.0.2 - "@walletconnect/types": 2.8.1 + "@walletconnect/types": 2.9.0 "@walletconnect/window-getters": ^1.0.1 "@walletconnect/window-metadata": ^1.0.1 detect-browser: 5.3.0 query-string: 7.1.3 uint8arrays: ^3.1.0 - checksum: 2ca91486ba8704ae73ee51ff5c76099cc85ceccb692434bed70bf16b75b371e71e66c9d888c1de92b15d7fa853eee549a85af1d97b275853b827d2b1d31814fe + checksum: 83592e6b793d16ddcaa7d904cc1a420b1a7240c9a5263a8ff7d7304f7f1194a2f98e1a69f68b10628e1178541c135d722d3844509678a88f6660c03a076eb755 languageName: node linkType: hard -"@walletconnect/utils@npm:2.9.0": - version: 2.9.0 - resolution: "@walletconnect/utils@npm:2.9.0" +"@walletconnect/utils@npm:2.9.2": + version: 2.9.2 + resolution: "@walletconnect/utils@npm:2.9.2" dependencies: "@stablelib/chacha20poly1305": 1.0.1 "@stablelib/hkdf": 1.0.1 @@ -11666,13 +11686,13 @@ __metadata: "@walletconnect/relay-api": ^1.0.9 "@walletconnect/safe-json": ^1.0.2 "@walletconnect/time": ^1.0.2 - "@walletconnect/types": 2.9.0 + "@walletconnect/types": 2.9.2 "@walletconnect/window-getters": ^1.0.1 "@walletconnect/window-metadata": ^1.0.1 detect-browser: 5.3.0 query-string: 7.1.3 uint8arrays: ^3.1.0 - checksum: 83592e6b793d16ddcaa7d904cc1a420b1a7240c9a5263a8ff7d7304f7f1194a2f98e1a69f68b10628e1178541c135d722d3844509678a88f6660c03a076eb755 + checksum: 9caf05fa6f7c95945e675845e305220fc1e7832ae595a9ff39799195d2d5865972914f74a8768044473f45450e98db685a0ff965a09d9cd0220cfdc391279eab languageName: node linkType: hard @@ -11994,28 +12014,6 @@ __metadata: languageName: node linkType: hard -"@web3modal/react-native@npm:^1.0.0-alpha.8": - version: 1.0.0-alpha.8 - resolution: "@web3modal/react-native@npm:1.0.0-alpha.8" - dependencies: - "@ethersproject/shims": 5.7.0 - "@walletconnect/core": 2.8.1 - "@walletconnect/react-native-compat": 2.8.1 - "@walletconnect/universal-provider": 2.8.1 - ethers: 5.7.2 - qrcode: 1.5.3 - valtio: 1.10.5 - peerDependencies: - "@react-native-async-storage/async-storage": ">=1.17.0" - react: "*" - react-native: "*" - react-native-get-random-values: ">=1.8.0" - react-native-modal: ">=13" - react-native-svg: ">=13" - checksum: 3cc72a304611ed7429ee57420da7d99089294131506116bf46495db59b5d53f7f02c861341548e721168131aff95e6b41fefb96b152da9f789b7348bcca0cf46 - languageName: node - linkType: hard - "@whatwg-node/events@npm:^0.0.3": version: 0.0.3 resolution: "@whatwg-node/events@npm:0.0.3" @@ -20223,7 +20221,7 @@ __metadata: languageName: node linkType: hard -"ethers@npm:5, ethers@npm:5.7.2, ethers@npm:^5.*, ethers@npm:^5.0.0, ethers@npm:^5.0.1, ethers@npm:^5.0.13, ethers@npm:^5.0.2, ethers@npm:^5.5.2, ethers@npm:^5.5.3": +"ethers@npm:5, ethers@npm:^5.*, ethers@npm:^5.0.0, ethers@npm:^5.0.1, ethers@npm:^5.0.13, ethers@npm:^5.0.2, ethers@npm:^5.5.2, ethers@npm:^5.5.3": version: 5.7.2 resolution: "ethers@npm:5.7.2" dependencies: From 6883ab38fe7d87b90035b448ec5c811919576e51 Mon Sep 17 00:00:00 2001 From: sirpy Date: Mon, 7 Aug 2023 15:04:48 +0300 Subject: [PATCH 14/15] add: github test action --- .github/workflows/pull-request-nextjs.yml | 64 ---------------- .github/workflows/pull-request-vite.yml | 73 ------------------- .github/workflows/pull-request.yml | 45 ++++++++++++ package.json | 6 +- packages/app/.eslintignore | 2 + .../DirectPayments/DirectPaymentsPool.sol | 2 +- packages/contracts/package.json | 5 +- packages/contracts/scripts/deployContracts.sh | 5 ++ packages/sdk-js/.eslintignore | 3 +- packages/sdk-js/package.json | 3 +- 10 files changed, 65 insertions(+), 143 deletions(-) delete mode 100644 .github/workflows/pull-request-nextjs.yml delete mode 100644 .github/workflows/pull-request-vite.yml create mode 100644 .github/workflows/pull-request.yml create mode 100644 packages/app/.eslintignore create mode 100755 packages/contracts/scripts/deployContracts.sh diff --git a/.github/workflows/pull-request-nextjs.yml b/.github/workflows/pull-request-nextjs.yml deleted file mode 100644 index 0b8f7e6f..00000000 --- a/.github/workflows/pull-request-nextjs.yml +++ /dev/null @@ -1,64 +0,0 @@ -# This workflow will do a clean install of node dependencies, cache/restore them, build the source code and run tests across different versions of node -# For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions - -name: Pull Request CI - NextJS & Hardhat - -on: - workflow_dispatch: - push: - branches: [release, next] - pull_request: - types: [opened, reopened, ready_for_review, synchronize] - -jobs: - build: - runs-on: ubuntu-latest - - strategy: - matrix: - node-version: [16.x] - # See supported Node.js release schedule at https://nodejs.org/en/about/releases/ - - steps: - - uses: actions/checkout@v2 - - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v2 - with: - node-version: ${{ matrix.node-version }} - - - run: yarn install --immutable - - - name: 'Scaffold Configuration' - run: | - yarn create-config - yarn set-react nextjs - yarn set-solidity hardhat - - - name: 'Compile solidity' - run: | - yarn compile --force - - - name: 'Build contracts' - run: | - yarn contracts:build - - - name: 'Check hardhat run tasks' - run: | - yarn hardhat - - - name: 'Build nextjs production' - run: | - yarn cross-env NODE_OPTIONS=--max_old_space_size=4096 yarn build - - - name: 'Run tests' - run: yarn test - - - name: Publish unit test results - uses: EnricoMi/publish-unit-test-result-action@v1 - if: always() - with: - files: testresult.xml - comment_mode: update last - hide_comments: all but latest - compare_to_earlier_commit: true - check_run_annotations: all tests, skipped tests diff --git a/.github/workflows/pull-request-vite.yml b/.github/workflows/pull-request-vite.yml deleted file mode 100644 index 62e9031b..00000000 --- a/.github/workflows/pull-request-vite.yml +++ /dev/null @@ -1,73 +0,0 @@ -# This workflow will do a clean install of node dependencies, cache/restore them, build the source code and run tests across different versions of node -# For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions - -name: Pull Request CI - Vite & Foundry - -on: - workflow_dispatch: - push: - branches: [release, next] - pull_request: - types: [opened, reopened, ready_for_review, synchronize] - -jobs: - build: - runs-on: ubuntu-latest - - strategy: - matrix: - node-version: [16.x] - # See supported Node.js release schedule at https://nodejs.org/en/about/releases/ - - steps: - - uses: actions/checkout@v2 - - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v2 - with: - node-version: ${{ matrix.node-version }} - - - name: Install Foundry curl - run: | - curl -L https://foundry.paradigm.xyz | bash - - - name: Install Foundry - uses: foundry-rs/foundry-toolchain@v1 - with: - version: nightly - - - run: source /home/runner/.bashrc - - - run: yarn install --immutable - - - name: 'Scaffold Configuration' - run: | - yarn create-config - yarn set-react vite - yarn set-solidity foundry - - - name: 'Compile Solidity' - run: | - yarn forge install - yarn compile --force - - - name: 'Build contracts' - run: | - yarn contracts:build - - - name: 'Build vite production' - run: | - yarn start optimize --force - yarn cross-env NODE_OPTIONS=--max_old_space_size=4096 yarn build - - - name: 'Run tests' - run: yarn test - - - name: Publish unit test results - uses: EnricoMi/publish-unit-test-result-action@v1 - if: always() - with: - files: testresult.xml - comment_mode: update last - hide_comments: all but latest - compare_to_earlier_commit: true - check_run_annotations: all tests, skipped tests diff --git a/.github/workflows/pull-request.yml b/.github/workflows/pull-request.yml new file mode 100644 index 00000000..2e02ca36 --- /dev/null +++ b/.github/workflows/pull-request.yml @@ -0,0 +1,45 @@ +# This workflow will do a clean install of node dependencies, cache/restore them, build the source code and run tests across different versions of node +# For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions + +name: Pull Request CI - NextJS & Hardhat + +on: + workflow_dispatch: + push: + branches: [produciton, release, next] + pull_request: + types: [opened, reopened, ready_for_review, synchronize] + +jobs: + build: + runs-on: ubuntu-latest + + strategy: + matrix: + node-version: [18.x] + # See supported Node.js release schedule at https://nodejs.org/en/about/releases/ + + steps: + - uses: actions/checkout@v3 + - name: Use Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v3 + with: + node-version: ${{ matrix.node-version }} + + - run: yarn install --immutable + + - name: 'Build contracts' + run: | + yarn build:contracts + + - name: 'test sdk & contracts' + run: | + yarn test + + # - name: 'stop node' + # run: | + # pkill -f "hardhat node" + + - name: 'Build app production' + run: | + yarn build:app diff --git a/package.json b/package.json index 9e8c6c24..a7ab30b9 100644 --- a/package.json +++ b/package.json @@ -12,7 +12,11 @@ ], "private": true, "scripts": { - "publish": "yarn workspaces foreach --include '{@gooddollar/goodcollective-contracts,@gooddollar/goodcollective-sdk}' run publish" + "publish": "yarn workspaces foreach --include '{@gooddollar/goodcollective-contracts,@gooddollar/goodcollective-sdk}' run publish", + "build:contracts": "yarn workspace @gooddollar/goodcollective-contracts compile", + "deploy:contracts": "yarn workspace @gooddollar/goodcollective-contracts deploy", + "test:setup": "yarn workspace @gooddollar/goodcollective-contracts test:setup", + "test": "yarn workspaces foreach --include '{@gooddollar/goodcollective-contracts,@gooddollar/goodcollective-sdk}' run test" }, "workspaces": { "packages": [ diff --git a/packages/app/.eslintignore b/packages/app/.eslintignore new file mode 100644 index 00000000..f06235c4 --- /dev/null +++ b/packages/app/.eslintignore @@ -0,0 +1,2 @@ +node_modules +dist diff --git a/packages/contracts/contracts/DirectPayments/DirectPaymentsPool.sol b/packages/contracts/contracts/DirectPayments/DirectPaymentsPool.sol index cf92eeca..d2510c2a 100644 --- a/packages/contracts/contracts/DirectPayments/DirectPaymentsPool.sol +++ b/packages/contracts/contracts/DirectPayments/DirectPaymentsPool.sol @@ -136,7 +136,7 @@ contract DirectPaymentsPool is } function upgradeToLatest(bytes memory data) external payable virtual { - address impl = DirectPaymentsFactory(registry).impl(); + address impl = address(DirectPaymentsFactory(registry).impl()); _authorizeUpgrade(impl); _upgradeToAndCallUUPS(impl, data, false); } diff --git a/packages/contracts/package.json b/packages/contracts/package.json index 0ecea560..9f0d2ad7 100644 --- a/packages/contracts/package.json +++ b/packages/contracts/package.json @@ -61,6 +61,7 @@ "test:coverage": "npx hardhat coverage", "deploy": "hardhat deploy --export-all ./releases/deployment.json", "prepublish": "yarn version patch && yarn compile && git add package.json && git commit -m \"version bump\"", - "publish": "yarn npm publish --access public" + "publish": "yarn npm publish --access public", + "test:setup": "yarn exec ./scripts/deployContracts.sh" } -} +} \ No newline at end of file diff --git a/packages/contracts/scripts/deployContracts.sh b/packages/contracts/scripts/deployContracts.sh new file mode 100755 index 00000000..c571da71 --- /dev/null +++ b/packages/contracts/scripts/deployContracts.sh @@ -0,0 +1,5 @@ +#! /bin/bash +pushd ../contracts +yarn hardhat node --export-all 'releases/deployment.json' & +sleep 20 +popd \ No newline at end of file diff --git a/packages/sdk-js/.eslintignore b/packages/sdk-js/.eslintignore index 53c37a16..de4d1f00 100644 --- a/packages/sdk-js/.eslintignore +++ b/packages/sdk-js/.eslintignore @@ -1 +1,2 @@ -dist \ No newline at end of file +dist +node_modules diff --git a/packages/sdk-js/package.json b/packages/sdk-js/package.json index a50d246a..7ac97e50 100644 --- a/packages/sdk-js/package.json +++ b/packages/sdk-js/package.json @@ -15,7 +15,8 @@ "scripts": { "build": "rm -fr dist types && tsc && vite build", "test:setup": "yarn exec ./scripts/deployContracts.sh", - "test": "vitest", + "test": "vitest run", + "watch": "vitest", "prepublish": "yarn version patch && yarn build && git add package.json && git commit -m \"version bump\"", "publish": "yarn npm publish --access public", "lint": "eslint .", From ed2f6009f034f318b3026f581110bbcba1240db5 Mon Sep 17 00:00:00 2001 From: Lewis B Date: Mon, 7 Aug 2023 15:51:30 +0200 Subject: [PATCH 15/15] wip: add workflows for vercel deployment (#2) * wip: add workflows for vercel deployment * remove comments, add workflow dispatch for release. move vercel.json to configured root * add vercel as devdep to /app, use web tsconfig * revert using web/tsconfig * add skipping prompt to build * add path to --cwd * remove cwd option * set node-version * add cwd to releaseflow, wip: replace web3modal * run deploy, also from packages/app * trig redeploy * deploy vercel --- .github/workflows/deploy.yml | 33 ++ .github/workflows/preview.yml | 30 ++ .gitignore | 2 + package.json | 3 +- packages/app/.gitignore | 2 + packages/app/package.json | 1 + packages/app/vercel.json | 6 + vercel.json | 6 + yarn.lock | 864 +++++++++++++++++++++++++++++++++- 9 files changed, 933 insertions(+), 14 deletions(-) create mode 100644 .github/workflows/deploy.yml create mode 100644 .github/workflows/preview.yml create mode 100644 packages/app/vercel.json create mode 100644 vercel.json diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml new file mode 100644 index 00000000..8915aaf5 --- /dev/null +++ b/.github/workflows/deploy.yml @@ -0,0 +1,33 @@ +# .github/workflows/deploy.yml +name: Deploy Web - Production +on: + push: + branches: + - production + workflow_dispatch: + inputs: + release: + description: 'release type' + required: true + default: 'production' + targetbranch: + description: 'target deployment branch' + required: true + default: 'production' + +env: + VERCEL_ORG_ID: ${{ secrets.VERCEL_ORG_ID }} + VERCEL_PROJECT_ID: ${{ secrets.VERCEL_PROJECT_ID }} +jobs: + deploy: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - uses: actions/setup-node@v3 + with: + node-version: 16 + cache: yarn + - run: yarn install --immutable + - run: yarn vercel pull --yes --environment=production --token=${{ secrets.VERCEL_TOKEN }} + - run: yarn vercel build --prod --token=${{ secrets.VERCEL_TOKEN }} + - run: yarn vercel deploy --prod --prebuilt --token=${{ secrets.VERCEL_TOKEN }} diff --git a/.github/workflows/preview.yml b/.github/workflows/preview.yml new file mode 100644 index 00000000..43378263 --- /dev/null +++ b/.github/workflows/preview.yml @@ -0,0 +1,30 @@ +# .github/workflows/preview.yml +name: preview +on: + push: + branches: + - master + pull_request: + branches: + - master + workflow_dispatch: +env: + VERCEL_ORG_ID: ${{ secrets.VERCEL_ORG_ID }} + VERCEL_PROJECT_ID: ${{ secrets.VERCEL_PROJECT_ID }} +jobs: + preview: + runs-on: ubuntu-latest + environment: + name: preview + url: ${{ steps.deploy.outputs.url }} + steps: + - uses: actions/checkout@v3 + - uses: actions/setup-node@v3 + with: + node-version: 18 + cache: yarn + - run: yarn install --immutable + - run: yarn vercel pull --yes --cwd packages/app/ --environment=preview --token=${{ secrets.VERCEL_TOKEN }} + - run: yarn vercel build --cwd packages/app --token=${{ secrets.VERCEL_TOKEN }} + - id: deploy + run: echo "::set-output name=url::$(yarn vercel deploy --prebuilt --cwd packages/app --token=${{ secrets.VERCEL_TOKEN }})" diff --git a/.gitignore b/.gitignore index 4e126397..c01a6146 100644 --- a/.gitignore +++ b/.gitignore @@ -75,3 +75,5 @@ yarn-error.log* packages/contracts/deployments **/types packages/sdk-js/.yarn/install-state.gz +.vercel +.vscode/settings.json diff --git a/package.json b/package.json index a7ab30b9..3e782eb1 100644 --- a/package.json +++ b/package.json @@ -39,7 +39,8 @@ "prettier": "^2.7.1", "shx": "^0.3.4", "syncpack": "^8.2.4", - "ts-node": "^10.9.1" + "ts-node": "^10.9.1", + "vercel": "^31.2.2" }, "lint-staged": { "packages/app/**/*.{ts,tsx}": [ diff --git a/packages/app/.gitignore b/packages/app/.gitignore index 16f8c307..b385892c 100644 --- a/packages/app/.gitignore +++ b/packages/app/.gitignore @@ -61,3 +61,5 @@ yarn-error.log # Temporary files created by Metro to check the health of the file watcher .metro-health-check* + +tmp_sec diff --git a/packages/app/package.json b/packages/app/package.json index 29944398..f3d5c44a 100644 --- a/packages/app/package.json +++ b/packages/app/package.json @@ -66,6 +66,7 @@ "prettier": "^2.4.1", "react-test-renderer": "18.2.0", "typescript": "^5.1.3", + "vercel": "latest", "vite": "^4.3.9", "vite-plugin-node-polyfills": "^0.9.0" }, diff --git a/packages/app/vercel.json b/packages/app/vercel.json new file mode 100644 index 00000000..831b7a91 --- /dev/null +++ b/packages/app/vercel.json @@ -0,0 +1,6 @@ +{ + "buildCommand": "yarn build:web", + "git": { + "deploymentEnabled": false + } +} \ No newline at end of file diff --git a/vercel.json b/vercel.json new file mode 100644 index 00000000..831b7a91 --- /dev/null +++ b/vercel.json @@ -0,0 +1,6 @@ +{ + "buildCommand": "yarn build:web", + "git": { + "deploymentEnabled": false + } +} \ No newline at end of file diff --git a/yarn.lock b/yarn.lock index 82f25b22..cc1365ed 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2108,6 +2108,15 @@ __metadata: languageName: node linkType: hard +"@babel/runtime@npm:7.12.1": + version: 7.12.1 + resolution: "@babel/runtime@npm:7.12.1" + dependencies: + regenerator-runtime: ^0.13.4 + checksum: fb4b4c8f704a338d3500ff75bfd28a35927444e0c48254d60ce87a9402d7e149e2189e5f55fa3bd2927d4c10fa25fe34c239ae0be68df77af040b01561c5bcc8 + languageName: node + linkType: hard + "@babel/runtime@npm:^7.0.0, @babel/runtime@npm:^7.12.1, @babel/runtime@npm:^7.15.4, @babel/runtime@npm:^7.18.6, @babel/runtime@npm:^7.20.0, @babel/runtime@npm:^7.21.0, @babel/runtime@npm:^7.4.4, @babel/runtime@npm:^7.6.3, @babel/runtime@npm:^7.8.4, @babel/runtime@npm:^7.8.7": version: 7.22.5 resolution: "@babel/runtime@npm:7.22.5" @@ -2407,6 +2416,59 @@ __metadata: languageName: node linkType: hard +"@edge-runtime/format@npm:2.1.0": + version: 2.1.0 + resolution: "@edge-runtime/format@npm:2.1.0" + checksum: 6425124e27d4591497a6c629a0b4849d3c5eb3133f9f01dd6f5855e22a2f45e84925a936a699c93d7aaa234155053f4d1b9c23e6a2d738edb03dd54b3868e52a + languageName: node + linkType: hard + +"@edge-runtime/node-utils@npm:2.0.3": + version: 2.0.3 + resolution: "@edge-runtime/node-utils@npm:2.0.3" + checksum: dd409eb4fc3305b29082c3678f412aaf6d2cca2aef9bef4986e5d135dce032195f73a347c64723fd16e18cfcccdcea104378390f56b9104b5cc4bbc1280aa406 + languageName: node + linkType: hard + +"@edge-runtime/primitives@npm:2.1.2": + version: 2.1.2 + resolution: "@edge-runtime/primitives@npm:2.1.2" + checksum: 23863c517ef9dd9a8ff8fbaa739833ab417b80f2e4e8b3cb1723fd6b52e038ad22209a9744e53d066c1ad7ebeea5a00c7c6cee03c6f248bc351d0e4bde4bc96f + languageName: node + linkType: hard + +"@edge-runtime/primitives@npm:3.0.1": + version: 3.0.1 + resolution: "@edge-runtime/primitives@npm:3.0.1" + checksum: e8f1157043242695bf8ab06f8fe63b2fd641247970a1923445820354fbcf437004f87b5c5b307d7b70cf687b85fa3dd44922c066f42612c5c264f5ec9de68fd8 + languageName: node + linkType: hard + +"@edge-runtime/primitives@npm:3.0.3": + version: 3.0.3 + resolution: "@edge-runtime/primitives@npm:3.0.3" + checksum: 19e93f895c81832c94d327b080c849148bba105e1d70f3f526bd01cb791c970be6c0a7599e0a6ad2b99bbaa331b8d629994d401c18d441eb1d752c2c1ceb3131 + languageName: node + linkType: hard + +"@edge-runtime/vm@npm:3.0.1": + version: 3.0.1 + resolution: "@edge-runtime/vm@npm:3.0.1" + dependencies: + "@edge-runtime/primitives": 3.0.1 + checksum: d36191290a09faeda7501148771ec8b6056276321c7c8dc4054a9d01583e6cef115e8a481661f8bc6c2edee06e32bd78aa33a84529b7425d4cb7f33acfced216 + languageName: node + linkType: hard + +"@edge-runtime/vm@npm:3.0.3": + version: 3.0.3 + resolution: "@edge-runtime/vm@npm:3.0.3" + dependencies: + "@edge-runtime/primitives": 3.0.3 + checksum: ce1b1de2dde80ec8e27f2927638bd622907e54c626db61e320f6829d8b252156c0943a0ae63f350946bb38ac2d6aa24e49b452b703128f30b0e155730f2dc83c + languageName: node + linkType: hard + "@emotion/babel-plugin@npm:^11.10.0": version: 11.10.2 resolution: "@emotion/babel-plugin@npm:11.10.2" @@ -4250,6 +4312,7 @@ __metadata: react-native-web: 0.18.* react-test-renderer: 18.2.0 typescript: ^5.1.3 + vercel: latest vite: ^4.3.9 vite-plugin-node-polyfills: ^0.9.0 languageName: unknown @@ -4332,6 +4395,7 @@ __metadata: shx: ^0.3.4 syncpack: ^8.2.4 ts-node: ^10.9.1 + vercel: ^31.2.2 languageName: unknown linkType: soft @@ -5167,6 +5231,25 @@ __metadata: languageName: node linkType: hard +"@mapbox/node-pre-gyp@npm:^1.0.5": + version: 1.0.11 + resolution: "@mapbox/node-pre-gyp@npm:1.0.11" + dependencies: + detect-libc: ^2.0.0 + https-proxy-agent: ^5.0.0 + make-dir: ^3.1.0 + node-fetch: ^2.6.7 + nopt: ^5.0.0 + npmlog: ^5.0.1 + rimraf: ^3.0.2 + semver: ^7.3.5 + tar: ^6.1.11 + bin: + node-pre-gyp: bin/node-pre-gyp + checksum: b848f6abc531a11961d780db813cc510ca5a5b6bf3184d72134089c6875a91c44d571ba6c1879470020803f7803609e7b2e6e429651c026fe202facd11d444b8 + languageName: node + linkType: hard + "@metamask/detect-provider@npm:^2.0.0": version: 2.0.0 resolution: "@metamask/detect-provider@npm:2.0.0" @@ -7708,6 +7791,16 @@ __metadata: languageName: node linkType: hard +"@rollup/pluginutils@npm:^4.0.0": + version: 4.2.1 + resolution: "@rollup/pluginutils@npm:4.2.1" + dependencies: + estree-walker: ^2.0.1 + picomatch: ^2.2.2 + checksum: 6bc41f22b1a0f1efec3043899e4d3b6b1497b3dea4d94292d8f83b4cf07a1073ecbaedd562a22d11913ff7659f459677b01b09e9598a98936e746780ecc93a12 + languageName: node + linkType: hard + "@rollup/pluginutils@npm:^5.0.1": version: 5.0.2 resolution: "@rollup/pluginutils@npm:5.0.2" @@ -8261,7 +8354,7 @@ __metadata: languageName: node linkType: hard -"@sinclair/typebox@npm:^0.25.16": +"@sinclair/typebox@npm:0.25.24, @sinclair/typebox@npm:^0.25.16": version: 0.25.24 resolution: "@sinclair/typebox@npm:0.25.24" checksum: 10219c58f40b8414c50b483b0550445e9710d4fe7b2c4dccb9b66533dd90ba8e024acc776026cebe81e87f06fa24b07fdd7bc30dd277eb9cc386ec50151a3026 @@ -9601,6 +9694,18 @@ __metadata: languageName: node linkType: hard +"@ts-morph/common@npm:~0.11.0": + version: 0.11.1 + resolution: "@ts-morph/common@npm:0.11.1" + dependencies: + fast-glob: ^3.2.7 + minimatch: ^3.0.4 + mkdirp: ^1.0.4 + path-browserify: ^1.0.1 + checksum: 2853215cfdfb9b65f96ceef91b15a73ab6591fd27d072801884ea5acc1a8f0becd5ac214d5f3d840f5d650b7654585a9b9df86fc4287872e7be1c6f566381bfd + languageName: node + linkType: hard + "@tsconfig/node10@npm:^1.0.7": version: 1.0.9 resolution: "@tsconfig/node10@npm:1.0.9" @@ -10063,6 +10168,13 @@ __metadata: languageName: node linkType: hard +"@types/json-schema@npm:^7.0.6": + version: 7.0.12 + resolution: "@types/json-schema@npm:7.0.12" + checksum: 00239e97234eeb5ceefb0c1875d98ade6e922bfec39dd365ec6bd360b5c2f825e612ac4f6e5f1d13601b8b30f378f15e6faa805a3a732f4a1bbe61915163d293 + languageName: node + linkType: hard + "@types/json5@npm:^0.0.29": version: 0.0.29 resolution: "@types/json5@npm:0.0.29" @@ -10153,6 +10265,16 @@ __metadata: languageName: node linkType: hard +"@types/node-fetch@npm:2.6.3": + version: 2.6.3 + resolution: "@types/node-fetch@npm:2.6.3" + dependencies: + "@types/node": "*" + form-data: ^3.0.0 + checksum: b68cda58e91535a42dd5337932443c37f8e198ca1e8deeb95bd92a64a9a84d92071867b91c5eb84ee8e13f33d45a70549fe2bc11dd070a894dd561909f4d39f5 + languageName: node + linkType: hard + "@types/node-fetch@npm:^2.5.5": version: 2.6.4 resolution: "@types/node-fetch@npm:2.6.4" @@ -10170,6 +10292,13 @@ __metadata: languageName: node linkType: hard +"@types/node@npm:14.18.33": + version: 14.18.33 + resolution: "@types/node@npm:14.18.33" + checksum: 4e23f95186d8ae1d38c999bc6b46fe94e790da88744b0a3bfeedcbd0d9ffe2cb0ff39e85f43014f6739e5270292c1a1f6f97a1fc606fd573a0c17fda9a1d42de + languageName: node + linkType: hard + "@types/node@npm:>=13.7.0": version: 20.3.1 resolution: "@types/node@npm:20.3.1" @@ -10966,6 +11095,186 @@ __metadata: languageName: node linkType: hard +"@vercel/build-utils@npm:6.8.2": + version: 6.8.2 + resolution: "@vercel/build-utils@npm:6.8.2" + checksum: 51f6cf91a6cf6a9fe90c39d3cf3f0767577102f8020eac6b16ef2c71216b60ff05c0c6b67e97daad17e0bd2b00a3474d6372ae662a530eb589c97cea2da7de6d + languageName: node + linkType: hard + +"@vercel/error-utils@npm:1.0.10": + version: 1.0.10 + resolution: "@vercel/error-utils@npm:1.0.10" + checksum: 84d8233b1912b1fc5e83ba27230c70df10c41f558c70f5b8509e19b0fab72c396e7eea03886c9fa1e81dcc19acad30a07730c4c30fa366d9827bdaccfd0383a5 + languageName: node + linkType: hard + +"@vercel/gatsby-plugin-vercel-analytics@npm:1.0.10": + version: 1.0.10 + resolution: "@vercel/gatsby-plugin-vercel-analytics@npm:1.0.10" + dependencies: + "@babel/runtime": 7.12.1 + web-vitals: 0.2.4 + checksum: ff18c27b7512d8d6404d2fb526947c15ed9dbfd9e595d47c02cf82991dc4cb4f6b4fd2e3106d9492c095c1e270e3a57f1636209757a47269fa76c50e9cda4e75 + languageName: node + linkType: hard + +"@vercel/gatsby-plugin-vercel-builder@npm:1.3.16": + version: 1.3.16 + resolution: "@vercel/gatsby-plugin-vercel-builder@npm:1.3.16" + dependencies: + "@sinclair/typebox": 0.25.24 + "@vercel/build-utils": 6.8.2 + "@vercel/node": 2.15.8 + "@vercel/routing-utils": 2.2.1 + esbuild: 0.14.47 + etag: 1.8.1 + fs-extra: 11.1.0 + checksum: 3b51ff52447f7a6f9216f29b3902150ee5a4b532f5c426e11b3735d800b4b9ca7b13e43bd8896c68d67ee4d85912c31807379585bb29245272a1a32776e4e905 + languageName: node + linkType: hard + +"@vercel/go@npm:2.5.1": + version: 2.5.1 + resolution: "@vercel/go@npm:2.5.1" + checksum: f5871024939b9487b849f8cd8ca6bb2feb801d80f83bf594fafb83e8283ce8d896569d5c4d33f9eb549cae652863ec2e279a16f369385b2994c6ad50957e84de + languageName: node + linkType: hard + +"@vercel/hydrogen@npm:0.0.64": + version: 0.0.64 + resolution: "@vercel/hydrogen@npm:0.0.64" + checksum: 160f0d50c3d50bfd6af1ed454a541ae40a94077bf4eabcc6d6c64e3d5599d6fc547e572c26ad7666c5bd266471e68820196605dd247a0e9ca0ccf1b29baa05e5 + languageName: node + linkType: hard + +"@vercel/next@npm:3.9.3": + version: 3.9.3 + resolution: "@vercel/next@npm:3.9.3" + checksum: 12f3bfda23fd36394f1f6555142d8b21ded60bc395a77681797efd950b67a5a1bec21a7baf38327c4024999c39c8efbbc483991b4f3b5c30fbb5d3713c19116e + languageName: node + linkType: hard + +"@vercel/nft@npm:0.22.5": + version: 0.22.5 + resolution: "@vercel/nft@npm:0.22.5" + dependencies: + "@mapbox/node-pre-gyp": ^1.0.5 + "@rollup/pluginutils": ^4.0.0 + acorn: ^8.6.0 + async-sema: ^3.1.1 + bindings: ^1.4.0 + estree-walker: 2.0.2 + glob: ^7.1.3 + graceful-fs: ^4.2.9 + micromatch: ^4.0.2 + node-gyp-build: ^4.2.2 + resolve-from: ^5.0.0 + bin: + nft: out/cli.js + checksum: 9bc965a6b096c55ed14bfc761668fe3900db83cf379bf1e9741d31510579950dff12d8223867b3fd0c3af1bb96a1b4519c4b0f93d1c26949d2e216a4272f59b4 + languageName: node + linkType: hard + +"@vercel/node@npm:2.15.8": + version: 2.15.8 + resolution: "@vercel/node@npm:2.15.8" + dependencies: + "@edge-runtime/node-utils": 2.0.3 + "@edge-runtime/primitives": 2.1.2 + "@edge-runtime/vm": 3.0.1 + "@types/node": 14.18.33 + "@types/node-fetch": 2.6.3 + "@vercel/build-utils": 6.8.2 + "@vercel/error-utils": 1.0.10 + "@vercel/static-config": 2.0.17 + async-listen: 3.0.0 + content-type: 1.0.5 + edge-runtime: 2.4.3 + esbuild: 0.14.47 + exit-hook: 2.2.1 + node-fetch: 2.6.9 + path-to-regexp: 6.2.1 + ts-morph: 12.0.0 + ts-node: 10.9.1 + typescript: 4.9.5 + checksum: bb15fdf651b85c8f7ce056b013a386ad5c0d149bfd6e31ede3034fc1ad0835e675bfc21c6f21a1ae0154488449f6228d0516aa2c8e27877bf200bb8998f588de + languageName: node + linkType: hard + +"@vercel/python@npm:3.1.60": + version: 3.1.60 + resolution: "@vercel/python@npm:3.1.60" + checksum: d646873053e6bd8b782026f2bcc72be1ee964acdfe67597a61080e6cbf3ca010493b083b3cb497818711d82275c9fbd9328300f491f7996495647a2ec8a3dc19 + languageName: node + linkType: hard + +"@vercel/redwood@npm:1.1.15": + version: 1.1.15 + resolution: "@vercel/redwood@npm:1.1.15" + dependencies: + "@vercel/nft": 0.22.5 + "@vercel/routing-utils": 2.2.1 + semver: 6.1.1 + checksum: 7aa482841a3f24f57439a1113d726fd3cbe6aa78daf696fa212142f30884f1a7438ffab24480ee01fef4269168377af10f1ef638ace4670eb015721e63cf9243 + languageName: node + linkType: hard + +"@vercel/remix-builder@npm:1.9.1": + version: 1.9.1 + resolution: "@vercel/remix-builder@npm:1.9.1" + dependencies: + "@vercel/build-utils": 6.8.2 + "@vercel/nft": 0.22.5 + "@vercel/static-config": 2.0.17 + path-to-regexp: 6.2.1 + semver: 7.3.8 + ts-morph: 12.0.0 + checksum: f333e094a58e86be47664def962961dc848bd429a870b79afbfcda5209008b3781364eaa77c0772917f93956fe314780d2dca1ca3f52c44bf06446f86bd6649a + languageName: node + linkType: hard + +"@vercel/routing-utils@npm:2.2.1": + version: 2.2.1 + resolution: "@vercel/routing-utils@npm:2.2.1" + dependencies: + ajv: ^6.0.0 + path-to-regexp: 6.1.0 + dependenciesMeta: + ajv: + optional: true + checksum: b56ef0fa3f3c6c931f5b716697ef1dd604b67f5a32c76dc3f2a90c73c8d9b5839daffebceb03f548147ec9a18d5036873c6f6d21d3ca8c9bc2f4dd573166a58c + languageName: node + linkType: hard + +"@vercel/ruby@npm:1.3.76": + version: 1.3.76 + resolution: "@vercel/ruby@npm:1.3.76" + checksum: 4868880600fa93ce2970839574ec14d1196d2b8966f5c4f381f356a7ece3652e6182a21b941dddb1986f1ce8602bd0c1a0dcf73231e87ae8ad985c42cd2cb857 + languageName: node + linkType: hard + +"@vercel/static-build@npm:1.3.44": + version: 1.3.44 + resolution: "@vercel/static-build@npm:1.3.44" + dependencies: + "@vercel/gatsby-plugin-vercel-analytics": 1.0.10 + "@vercel/gatsby-plugin-vercel-builder": 1.3.16 + checksum: 58bd519daa590cba19cb720aead1f1117c10aac762f6627e7c74ea7f932b51c20c9722dbd1416b884421973098d842013f6adb63af6383aab4b8c5029997ba63 + languageName: node + linkType: hard + +"@vercel/static-config@npm:2.0.17": + version: 2.0.17 + resolution: "@vercel/static-config@npm:2.0.17" + dependencies: + ajv: 8.6.3 + json-schema-to-ts: 1.6.4 + ts-morph: 12.0.0 + checksum: d0f78dbcb596d2f7da642fd72d47f110edf1c3919e1d51c9a89743567f00f263e92f45b0be8026d2c2057d044456c83031e1b7a57c83981edc1687febbeab7ea + languageName: node + linkType: hard + "@vitejs/plugin-react@npm:^4.0.0": version: 4.0.0 resolution: "@vitejs/plugin-react@npm:4.0.0" @@ -12333,6 +12642,15 @@ __metadata: languageName: node linkType: hard +"acorn@npm:^8.6.0": + version: 8.10.0 + resolution: "acorn@npm:8.10.0" + bin: + acorn: bin/acorn + checksum: 538ba38af0cc9e5ef983aee196c4b8b4d87c0c94532334fa7e065b2c8a1f85863467bb774231aae91613fcda5e68740c15d97b1967ae3394d20faddddd8af61d + languageName: node + linkType: hard + "acorn@npm:^8.8.2": version: 8.8.2 resolution: "acorn@npm:8.8.2" @@ -12423,7 +12741,19 @@ __metadata: languageName: node linkType: hard -"ajv@npm:^6.10.0, ajv@npm:^6.12.3, ajv@npm:^6.12.4, ajv@npm:^6.12.5": +"ajv@npm:8.6.3": + version: 8.6.3 + resolution: "ajv@npm:8.6.3" + dependencies: + fast-deep-equal: ^3.1.1 + json-schema-traverse: ^1.0.0 + require-from-string: ^2.0.2 + uri-js: ^4.2.2 + checksum: 690ffb9408415fdab43686b3f92037ba0c8362f5d0709a123ba3fb546e6ad81414455f80a2b5cc432ce924afe9864671198f022bc331a19c072d4ede152ec3ca + languageName: node + linkType: hard + +"ajv@npm:^6.0.0, ajv@npm:^6.10.0, ajv@npm:^6.12.3, ajv@npm:^6.12.4, ajv@npm:^6.12.5": version: 6.12.6 resolution: "ajv@npm:6.12.6" dependencies: @@ -12866,6 +13196,16 @@ __metadata: languageName: node linkType: hard +"are-we-there-yet@npm:^2.0.0": + version: 2.0.0 + resolution: "are-we-there-yet@npm:2.0.0" + dependencies: + delegates: ^1.0.0 + readable-stream: ^3.6.0 + checksum: 6c80b4fd04ecee6ba6e737e0b72a4b41bdc64b7d279edfc998678567ff583c8df27e27523bc789f2c99be603ffa9eaa612803da1d886962d2086e7ff6fa90c7c + languageName: node + linkType: hard + "are-we-there-yet@npm:^3.0.0": version: 3.0.1 resolution: "are-we-there-yet@npm:3.0.1" @@ -13281,6 +13621,13 @@ __metadata: languageName: node linkType: hard +"async-listen@npm:3.0.0": + version: 3.0.0 + resolution: "async-listen@npm:3.0.0" + checksum: 3c238e213219ca71bd1239398a852d7c40b9fe212066616d5ab80861c2a014c100acebe48cd57b5ac2d8d66096ee0ea760b25d574f99a0236977921ff7149582 + languageName: node + linkType: hard + "async-mutex@npm:^0.2.6": version: 0.2.6 resolution: "async-mutex@npm:0.2.6" @@ -13317,6 +13664,13 @@ __metadata: languageName: node linkType: hard +"async-sema@npm:^3.1.1": + version: 3.1.1 + resolution: "async-sema@npm:3.1.1" + checksum: 07b8c51f6cab107417ecdd8126b7a9fe5a75151b7f69fdd420dcc8ee08f9e37c473a217247e894b56e999b088b32e902dbe41637e4e9b594d3f8dfcdddfadc5e + languageName: node + linkType: hard + "async-validator@npm:^4.1.0": version: 4.2.5 resolution: "async-validator@npm:4.2.5" @@ -14635,7 +14989,7 @@ __metadata: languageName: node linkType: hard -"bindings@npm:^1.2.1, bindings@npm:^1.3.0, bindings@npm:^1.5.0": +"bindings@npm:^1.2.1, bindings@npm:^1.3.0, bindings@npm:^1.4.0, bindings@npm:^1.5.0": version: 1.5.0 resolution: "bindings@npm:1.5.0" dependencies: @@ -16290,6 +16644,13 @@ __metadata: languageName: node linkType: hard +"code-block-writer@npm:^10.1.1": + version: 10.1.1 + resolution: "code-block-writer@npm:10.1.1" + checksum: e048037acbcbda19fca62a3a63e4a64226ea6b5dc0fad7632d34a88c1165b29a357e5e19f0497811e9911472e824ab85f68176f40e439da87e051908956eb47c + languageName: node + linkType: hard + "code-error-fragment@npm:0.0.230": version: 0.0.230 resolution: "code-error-fragment@npm:0.0.230" @@ -16353,7 +16714,7 @@ __metadata: languageName: node linkType: hard -"color-support@npm:^1.1.3": +"color-support@npm:^1.1.2, color-support@npm:^1.1.3": version: 1.1.3 resolution: "color-support@npm:1.1.3" bin: @@ -16700,13 +17061,20 @@ __metadata: languageName: node linkType: hard -"content-type@npm:~1.0.4, content-type@npm:~1.0.5": +"content-type@npm:1.0.5, content-type@npm:~1.0.4, content-type@npm:~1.0.5": version: 1.0.5 resolution: "content-type@npm:1.0.5" checksum: 566271e0a251642254cde0f845f9dd4f9856e52d988f4eb0d0dcffbb7a1f8ec98de7a5215fc628f3bce30fe2fb6fd2bc064b562d721658c59b544e2d34ea2766 languageName: node linkType: hard +"convert-hrtime@npm:^3.0.0": + version: 3.0.0 + resolution: "convert-hrtime@npm:3.0.0" + checksum: d022c950e99753ccb948583cacbc77353e7686982219d046da34957dc2924f8d6f198f55fef233d017b73d1afeb18541e7f7cd0ea5934bd8ca272edace83a7b9 + languageName: node + linkType: hard + "convert-source-map@npm:^1.1.0, convert-source-map@npm:^1.5.1, convert-source-map@npm:^1.6.0": version: 1.9.0 resolution: "convert-source-map@npm:1.9.0" @@ -17658,6 +18026,13 @@ __metadata: languageName: node linkType: hard +"detect-libc@npm:^2.0.0": + version: 2.0.2 + resolution: "detect-libc@npm:2.0.2" + checksum: 2b2cd3649b83d576f4be7cc37eb3b1815c79969c8b1a03a40a4d55d83bc74d010753485753448eacb98784abf22f7dbd3911fd3b60e29fda28fed2d1a997944d + languageName: node + linkType: hard + "detect-newline@npm:^3.0.0": version: 3.1.0 resolution: "detect-newline@npm:3.1.0" @@ -18005,6 +18380,25 @@ __metadata: languageName: node linkType: hard +"edge-runtime@npm:2.4.3": + version: 2.4.3 + resolution: "edge-runtime@npm:2.4.3" + dependencies: + "@edge-runtime/format": 2.1.0 + "@edge-runtime/vm": 3.0.3 + async-listen: 3.0.0 + mri: 1.2.0 + picocolors: 1.0.0 + pretty-bytes: 5.6.0 + pretty-ms: 7.0.1 + signal-exit: 4.0.2 + time-span: 4.0.0 + bin: + edge-runtime: dist/cli/index.js + checksum: 0233a249d1b3d32d303502a14bb2138f70f5c9eee4855d3faae3f76f0d45d5e9a185add43015caf27bacea65c758392a32875be5a3339fc55a1852de3a4188c6 + languageName: node + linkType: hard + "edit-json-file@npm:^1.7.0": version: 1.7.0 resolution: "edit-json-file@npm:1.7.0" @@ -18521,6 +18915,217 @@ __metadata: languageName: node linkType: hard +"esbuild-android-64@npm:0.14.47": + version: 0.14.47 + resolution: "esbuild-android-64@npm:0.14.47" + conditions: os=android & cpu=x64 + languageName: node + linkType: hard + +"esbuild-android-arm64@npm:0.14.47": + version: 0.14.47 + resolution: "esbuild-android-arm64@npm:0.14.47" + conditions: os=android & cpu=arm64 + languageName: node + linkType: hard + +"esbuild-darwin-64@npm:0.14.47": + version: 0.14.47 + resolution: "esbuild-darwin-64@npm:0.14.47" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + +"esbuild-darwin-arm64@npm:0.14.47": + version: 0.14.47 + resolution: "esbuild-darwin-arm64@npm:0.14.47" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + +"esbuild-freebsd-64@npm:0.14.47": + version: 0.14.47 + resolution: "esbuild-freebsd-64@npm:0.14.47" + conditions: os=freebsd & cpu=x64 + languageName: node + linkType: hard + +"esbuild-freebsd-arm64@npm:0.14.47": + version: 0.14.47 + resolution: "esbuild-freebsd-arm64@npm:0.14.47" + conditions: os=freebsd & cpu=arm64 + languageName: node + linkType: hard + +"esbuild-linux-32@npm:0.14.47": + version: 0.14.47 + resolution: "esbuild-linux-32@npm:0.14.47" + conditions: os=linux & cpu=ia32 + languageName: node + linkType: hard + +"esbuild-linux-64@npm:0.14.47": + version: 0.14.47 + resolution: "esbuild-linux-64@npm:0.14.47" + conditions: os=linux & cpu=x64 + languageName: node + linkType: hard + +"esbuild-linux-arm64@npm:0.14.47": + version: 0.14.47 + resolution: "esbuild-linux-arm64@npm:0.14.47" + conditions: os=linux & cpu=arm64 + languageName: node + linkType: hard + +"esbuild-linux-arm@npm:0.14.47": + version: 0.14.47 + resolution: "esbuild-linux-arm@npm:0.14.47" + conditions: os=linux & cpu=arm + languageName: node + linkType: hard + +"esbuild-linux-mips64le@npm:0.14.47": + version: 0.14.47 + resolution: "esbuild-linux-mips64le@npm:0.14.47" + conditions: os=linux & cpu=mips64el + languageName: node + linkType: hard + +"esbuild-linux-ppc64le@npm:0.14.47": + version: 0.14.47 + resolution: "esbuild-linux-ppc64le@npm:0.14.47" + conditions: os=linux & cpu=ppc64 + languageName: node + linkType: hard + +"esbuild-linux-riscv64@npm:0.14.47": + version: 0.14.47 + resolution: "esbuild-linux-riscv64@npm:0.14.47" + conditions: os=linux & cpu=riscv64 + languageName: node + linkType: hard + +"esbuild-linux-s390x@npm:0.14.47": + version: 0.14.47 + resolution: "esbuild-linux-s390x@npm:0.14.47" + conditions: os=linux & cpu=s390x + languageName: node + linkType: hard + +"esbuild-netbsd-64@npm:0.14.47": + version: 0.14.47 + resolution: "esbuild-netbsd-64@npm:0.14.47" + conditions: os=netbsd & cpu=x64 + languageName: node + linkType: hard + +"esbuild-openbsd-64@npm:0.14.47": + version: 0.14.47 + resolution: "esbuild-openbsd-64@npm:0.14.47" + conditions: os=openbsd & cpu=x64 + languageName: node + linkType: hard + +"esbuild-sunos-64@npm:0.14.47": + version: 0.14.47 + resolution: "esbuild-sunos-64@npm:0.14.47" + conditions: os=sunos & cpu=x64 + languageName: node + linkType: hard + +"esbuild-windows-32@npm:0.14.47": + version: 0.14.47 + resolution: "esbuild-windows-32@npm:0.14.47" + conditions: os=win32 & cpu=ia32 + languageName: node + linkType: hard + +"esbuild-windows-64@npm:0.14.47": + version: 0.14.47 + resolution: "esbuild-windows-64@npm:0.14.47" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + +"esbuild-windows-arm64@npm:0.14.47": + version: 0.14.47 + resolution: "esbuild-windows-arm64@npm:0.14.47" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + +"esbuild@npm:0.14.47": + version: 0.14.47 + resolution: "esbuild@npm:0.14.47" + dependencies: + esbuild-android-64: 0.14.47 + esbuild-android-arm64: 0.14.47 + esbuild-darwin-64: 0.14.47 + esbuild-darwin-arm64: 0.14.47 + esbuild-freebsd-64: 0.14.47 + esbuild-freebsd-arm64: 0.14.47 + esbuild-linux-32: 0.14.47 + esbuild-linux-64: 0.14.47 + esbuild-linux-arm: 0.14.47 + esbuild-linux-arm64: 0.14.47 + esbuild-linux-mips64le: 0.14.47 + esbuild-linux-ppc64le: 0.14.47 + esbuild-linux-riscv64: 0.14.47 + esbuild-linux-s390x: 0.14.47 + esbuild-netbsd-64: 0.14.47 + esbuild-openbsd-64: 0.14.47 + esbuild-sunos-64: 0.14.47 + esbuild-windows-32: 0.14.47 + esbuild-windows-64: 0.14.47 + esbuild-windows-arm64: 0.14.47 + dependenciesMeta: + esbuild-android-64: + optional: true + esbuild-android-arm64: + optional: true + esbuild-darwin-64: + optional: true + esbuild-darwin-arm64: + optional: true + esbuild-freebsd-64: + optional: true + esbuild-freebsd-arm64: + optional: true + esbuild-linux-32: + optional: true + esbuild-linux-64: + optional: true + esbuild-linux-arm: + optional: true + esbuild-linux-arm64: + optional: true + esbuild-linux-mips64le: + optional: true + esbuild-linux-ppc64le: + optional: true + esbuild-linux-riscv64: + optional: true + esbuild-linux-s390x: + optional: true + esbuild-netbsd-64: + optional: true + esbuild-openbsd-64: + optional: true + esbuild-sunos-64: + optional: true + esbuild-windows-32: + optional: true + esbuild-windows-64: + optional: true + esbuild-windows-arm64: + optional: true + bin: + esbuild: bin/esbuild + checksum: 77a8bff8c3fe52dc9d2823448843b0f53c9a9f3701e3637a54e396270c9ca04cc46a4b08ef86cbaa8d202854e02c790f61683bfa75ebff540b1e24414f536e91 + languageName: node + linkType: hard + "esbuild@npm:^0.17.5": version: 0.17.19 resolution: "esbuild@npm:0.17.19" @@ -19315,7 +19920,7 @@ __metadata: languageName: node linkType: hard -"estree-walker@npm:^2, estree-walker@npm:^2.0.2": +"estree-walker@npm:2.0.2, estree-walker@npm:^2, estree-walker@npm:^2.0.1, estree-walker@npm:^2.0.2": version: 2.0.2 resolution: "estree-walker@npm:2.0.2" checksum: 6151e6f9828abe2259e57f5fd3761335bb0d2ebd76dc1a01048ccee22fabcfef3c0859300f6d83ff0d1927849368775ec5a6d265dde2f6de5a1be1721cd94efc @@ -19329,7 +19934,7 @@ __metadata: languageName: node linkType: hard -"etag@npm:~1.8.1": +"etag@npm:1.8.1, etag@npm:~1.8.1": version: 1.8.1 resolution: "etag@npm:1.8.1" checksum: 571aeb3dbe0f2bbd4e4fadbdb44f325fc75335cd5f6f6b6a091e6a06a9f25ed5392f0863c5442acb0646787446e816f13cbfc6edce5b07658541dff573cab1ff @@ -20560,6 +21165,13 @@ __metadata: languageName: node linkType: hard +"exit-hook@npm:2.2.1": + version: 2.2.1 + resolution: "exit-hook@npm:2.2.1" + checksum: 1aa8359b6c5590a012d6cadf9cd337d227291bfcaa8970dc585d73dffef0582af34ed8ac56f6164f8979979fb417cff1eb49f03cdfd782f9332a30c773f0ada0 + languageName: node + linkType: hard + "exit@npm:^0.1.2": version: 0.1.2 resolution: "exit@npm:0.1.2" @@ -20813,6 +21425,19 @@ __metadata: languageName: node linkType: hard +"fast-glob@npm:^3.2.7": + version: 3.3.1 + resolution: "fast-glob@npm:3.3.1" + dependencies: + "@nodelib/fs.stat": ^2.0.2 + "@nodelib/fs.walk": ^1.2.3 + glob-parent: ^5.1.2 + merge2: ^1.3.0 + micromatch: ^4.0.4 + checksum: b6f3add6403e02cf3a798bfbb1183d0f6da2afd368f27456010c0bc1f9640aea308243d4cb2c0ab142f618276e65ecb8be1661d7c62a7b4e5ba774b9ce5432e5 + languageName: node + linkType: hard + "fast-json-stable-stringify@npm:^2.0.0, fast-json-stable-stringify@npm:^2.1.0": version: 2.1.0 resolution: "fast-json-stable-stringify@npm:2.1.0" @@ -21437,6 +22062,17 @@ __metadata: languageName: node linkType: hard +"fs-extra@npm:11.1.0": + version: 11.1.0 + resolution: "fs-extra@npm:11.1.0" + dependencies: + graceful-fs: ^4.2.0 + jsonfile: ^6.0.1 + universalify: ^2.0.0 + checksum: 5ca476103fa1f5ff4a9b3c4f331548f8a3c1881edaae323a4415d3153b5dc11dc6a981c8d1dd93eec8367ceee27b53f8bd27eecbbf66ffcdd04927510c171e7f + languageName: node + linkType: hard + "fs-extra@npm:9.1.0, fs-extra@npm:^9.0.0, fs-extra@npm:^9.1.0": version: 9.1.0 resolution: "fs-extra@npm:9.1.0" @@ -21681,6 +22317,23 @@ __metadata: languageName: node linkType: hard +"gauge@npm:^3.0.0": + version: 3.0.2 + resolution: "gauge@npm:3.0.2" + dependencies: + aproba: ^1.0.3 || ^2.0.0 + color-support: ^1.1.2 + console-control-strings: ^1.0.0 + has-unicode: ^2.0.1 + object-assign: ^4.1.1 + signal-exit: ^3.0.0 + string-width: ^4.2.3 + strip-ansi: ^6.0.1 + wide-align: ^1.1.2 + checksum: 81296c00c7410cdd48f997800155fbead4f32e4f82109be0719c63edc8560e6579946cc8abd04205297640691ec26d21b578837fd13a4e96288ab4b40b1dc3e9 + languageName: node + linkType: hard + "gauge@npm:^4.0.3": version: 4.0.4 resolution: "gauge@npm:4.0.4" @@ -25208,6 +25861,16 @@ __metadata: languageName: node linkType: hard +"json-schema-to-ts@npm:1.6.4": + version: 1.6.4 + resolution: "json-schema-to-ts@npm:1.6.4" + dependencies: + "@types/json-schema": ^7.0.6 + ts-toolbelt: ^6.15.5 + checksum: 35399baff3167abafb44c926bf10755fcaa46fa52a52c5c4e467ae18add779c39ad7a998f624d96cb265c6c0f6ba45ff81bc85c8cdb58bb47ba8c4e8f79835df + languageName: node + linkType: hard + "json-schema-traverse@npm:^0.4.1": version: 0.4.1 resolution: "json-schema-traverse@npm:0.4.1" @@ -26695,7 +27358,7 @@ __metadata: languageName: node linkType: hard -"make-dir@npm:^3.0.0": +"make-dir@npm:^3.0.0, make-dir@npm:^3.1.0": version: 3.1.0 resolution: "make-dir@npm:3.1.0" dependencies: @@ -28049,7 +28712,7 @@ __metadata: languageName: node linkType: hard -"mri@npm:^1.1.0": +"mri@npm:1.2.0, mri@npm:^1.1.0": version: 1.2.0 resolution: "mri@npm:1.2.0" checksum: 83f515abbcff60150873e424894a2f65d68037e5a7fcde8a9e2b285ee9c13ac581b63cfc1e6826c4732de3aeb84902f7c1e16b7aff46cd3f897a0f757a894e85 @@ -28493,6 +29156,20 @@ __metadata: languageName: node linkType: hard +"node-fetch@npm:2.6.9": + version: 2.6.9 + resolution: "node-fetch@npm:2.6.9" + dependencies: + whatwg-url: ^5.0.0 + peerDependencies: + encoding: ^0.1.0 + peerDependenciesMeta: + encoding: + optional: true + checksum: acb04f9ce7224965b2b59e71b33c639794d8991efd73855b0b250921382b38331ffc9d61bce502571f6cc6e11a8905ca9b1b6d4aeb586ab093e2756a1fd190d0 + languageName: node + linkType: hard + "node-fetch@npm:^1.0.1, node-fetch@npm:~1.7.1": version: 1.7.3 resolution: "node-fetch@npm:1.7.3" @@ -28550,6 +29227,17 @@ __metadata: languageName: node linkType: hard +"node-gyp-build@npm:^4.2.2": + version: 4.6.0 + resolution: "node-gyp-build@npm:4.6.0" + bin: + node-gyp-build: bin.js + node-gyp-build-optional: optional.js + node-gyp-build-test: build-test.js + checksum: 25d78c5ef1f8c24291f4a370c47ba52fcea14f39272041a90a7894cd50d766f7c8cb8fb06c0f42bf6f69b204b49d9be3c8fc344aac09714d5bdb95965499eb15 + languageName: node + linkType: hard + "node-gyp-build@npm:~4.1.0": version: 4.1.1 resolution: "node-gyp-build@npm:4.1.1" @@ -28838,6 +29526,18 @@ __metadata: languageName: node linkType: hard +"npmlog@npm:^5.0.1": + version: 5.0.1 + resolution: "npmlog@npm:5.0.1" + dependencies: + are-we-there-yet: ^2.0.0 + console-control-strings: ^1.1.0 + gauge: ^3.0.0 + set-blocking: ^2.0.0 + checksum: 516b2663028761f062d13e8beb3f00069c5664925871a9b57989642ebe09f23ab02145bf3ab88da7866c4e112cafff72401f61a672c7c8a20edc585a7016ef5f + languageName: node + linkType: hard + "npmlog@npm:^6.0.0": version: 6.0.2 resolution: "npmlog@npm:6.0.2" @@ -29606,6 +30306,13 @@ __metadata: languageName: node linkType: hard +"parse-ms@npm:^2.1.0": + version: 2.1.0 + resolution: "parse-ms@npm:2.1.0" + checksum: d5c66c76cca8df5bd0574e2d11b9c3752893b59b466e74308d4a2f09760dc5436a1633f549cad300fc8c3c19154d14959a3b8333d3b2f7bd75898fe18149d564 + languageName: node + linkType: hard + "parse-passwd@npm:^1.0.0": version: 1.0.0 resolution: "parse-passwd@npm:1.0.0" @@ -29848,6 +30555,20 @@ __metadata: languageName: node linkType: hard +"path-to-regexp@npm:6.1.0": + version: 6.1.0 + resolution: "path-to-regexp@npm:6.1.0" + checksum: dd5c6915c38683cf5bd2908a6b6af0801703fc6e78fce8d23d89b5a1510e1f5b75e3e44fe635e1fad2dc1ae71d34bc0d7cf00f098e890cc26e3570b10bc96c00 + languageName: node + linkType: hard + +"path-to-regexp@npm:6.2.1": + version: 6.2.1 + resolution: "path-to-regexp@npm:6.2.1" + checksum: f0227af8284ea13300f4293ba111e3635142f976d4197f14d5ad1f124aebd9118783dd2e5f1fe16f7273743cc3dbeddfb7493f237bb27c10fdae07020cc9b698 + languageName: node + linkType: hard + "path-to-regexp@npm:^2.2.1": version: 2.4.0 resolution: "path-to-regexp@npm:2.4.0" @@ -29939,14 +30660,14 @@ __metadata: languageName: node linkType: hard -"picocolors@npm:^1.0.0": +"picocolors@npm:1.0.0, picocolors@npm:^1.0.0": version: 1.0.0 resolution: "picocolors@npm:1.0.0" checksum: a2e8092dd86c8396bdba9f2b5481032848525b3dc295ce9b57896f931e63fc16f79805144321f72976383fc249584672a75cc18d6777c6b757603f372f745981 languageName: node linkType: hard -"picomatch@npm:^2.0.4, picomatch@npm:^2.2.1, picomatch@npm:^2.2.3, picomatch@npm:^2.3.0, picomatch@npm:^2.3.1": +"picomatch@npm:^2.0.4, picomatch@npm:^2.2.1, picomatch@npm:^2.2.2, picomatch@npm:^2.2.3, picomatch@npm:^2.3.0, picomatch@npm:^2.3.1": version: 2.3.1 resolution: "picomatch@npm:2.3.1" checksum: 050c865ce81119c4822c45d3c84f1ced46f93a0126febae20737bd05ca20589c564d6e9226977df859ed5e03dc73f02584a2b0faad36e896936238238b0446cf @@ -30574,6 +31295,13 @@ __metadata: languageName: node linkType: hard +"pretty-bytes@npm:5.6.0": + version: 5.6.0 + resolution: "pretty-bytes@npm:5.6.0" + checksum: 9c082500d1e93434b5b291bd651662936b8bd6204ec9fa17d563116a192d6d86b98f6d328526b4e8d783c07d5499e2614a807520249692da9ec81564b2f439cd + languageName: node + linkType: hard + "pretty-format@npm:^23.0.1": version: 23.6.0 resolution: "pretty-format@npm:23.6.0" @@ -30618,6 +31346,15 @@ __metadata: languageName: node linkType: hard +"pretty-ms@npm:7.0.1": + version: 7.0.1 + resolution: "pretty-ms@npm:7.0.1" + dependencies: + parse-ms: ^2.1.0 + checksum: d76c4920283b48be91f1d3797a2ce4bd51187d58d2a609ae993c028f73c92d16439449d857af57ccad91ae3a38b30c87307f5589749a056102ebb494c686957e + languageName: node + linkType: hard + "private@npm:^0.1.6, private@npm:^0.1.8": version: 0.1.8 resolution: "private@npm:0.1.8" @@ -33513,6 +34250,15 @@ __metadata: languageName: node linkType: hard +"semver@npm:6.1.1": + version: 6.1.1 + resolution: "semver@npm:6.1.1" + bin: + semver: ./bin/semver + checksum: 630e7d8a087d8f143c320dc381b2d9ca279295d2daa6ab4b707e6c9342ba0f25bd0b817530fe0eeb9ca62c24d7ad6d9eb660066818eee5554a1d5392f16e4ea0 + languageName: node + linkType: hard + "semver@npm:7.3.5": version: 7.3.5 resolution: "semver@npm:7.3.5" @@ -33535,6 +34281,17 @@ __metadata: languageName: node linkType: hard +"semver@npm:7.3.8": + version: 7.3.8 + resolution: "semver@npm:7.3.8" + dependencies: + lru-cache: ^6.0.0 + bin: + semver: bin/semver.js + checksum: ba9c7cbbf2b7884696523450a61fee1a09930d888b7a8d7579025ad93d459b2d1949ee5bbfeb188b2be5f4ac163544c5e98491ad6152df34154feebc2cc337c1 + languageName: node + linkType: hard + "semver@npm:7.4.0": version: 7.4.0 resolution: "semver@npm:7.4.0" @@ -33853,6 +34610,13 @@ __metadata: languageName: node linkType: hard +"signal-exit@npm:4.0.2": + version: 4.0.2 + resolution: "signal-exit@npm:4.0.2" + checksum: 41f5928431cc6e91087bf0343db786a6313dd7c6fd7e551dbc141c95bb5fb26663444fd9df8ea47c5d7fc202f60aa7468c3162a9365cbb0615fc5e1b1328fe31 + languageName: node + linkType: hard + "signal-exit@npm:^3.0.0, signal-exit@npm:^3.0.2, signal-exit@npm:^3.0.3, signal-exit@npm:^3.0.7": version: 3.0.7 resolution: "signal-exit@npm:3.0.7" @@ -35515,6 +36279,15 @@ __metadata: languageName: node linkType: hard +"time-span@npm:4.0.0": + version: 4.0.0 + resolution: "time-span@npm:4.0.0" + dependencies: + convert-hrtime: ^3.0.0 + checksum: 8bcecbda97142e804ba03acf52117cc771c2933277b299bdf2e8a949960fda3e70d8159b3ba5f49495d662c4b8cc15e30dbb1a703b1a735eecce11682b98e8f9 + languageName: node + linkType: hard + "time-zone@npm:^1.0.0": version: 1.0.0 resolution: "time-zone@npm:1.0.0" @@ -35992,7 +36765,17 @@ __metadata: languageName: node linkType: hard -"ts-node@npm:^10.9.1": +"ts-morph@npm:12.0.0": + version: 12.0.0 + resolution: "ts-morph@npm:12.0.0" + dependencies: + "@ts-morph/common": ~0.11.0 + code-block-writer: ^10.1.1 + checksum: c033708c76448625380daa3b8c2eeea1306300fa4367804029635f0d911a3723e4315a6e0824e6dfb256df0b99aac0ea0478cb3f14ed6fae2339d43ec882a427 + languageName: node + linkType: hard + +"ts-node@npm:10.9.1, ts-node@npm:^10.9.1": version: 10.9.1 resolution: "ts-node@npm:10.9.1" dependencies: @@ -36049,6 +36832,13 @@ __metadata: languageName: node linkType: hard +"ts-toolbelt@npm:^6.15.5": + version: 6.15.5 + resolution: "ts-toolbelt@npm:6.15.5" + checksum: 24ad00cfd9ce735c76c873a9b1347eac475b94e39ebbdf100c9019dce88dd5f4babed52884cf82bb456a38c28edd0099ab6f704b84b2e5e034852b618472c1f3 + languageName: node + linkType: hard + "ts-toolbelt@npm:^9.6.0": version: 9.6.0 resolution: "ts-toolbelt@npm:9.6.0" @@ -36399,6 +37189,16 @@ __metadata: languageName: node linkType: hard +"typescript@npm:4.9.5": + version: 4.9.5 + resolution: "typescript@npm:4.9.5" + bin: + tsc: bin/tsc + tsserver: bin/tsserver + checksum: ee000bc26848147ad423b581bd250075662a354d84f0e06eb76d3b892328d8d4440b7487b5a83e851b12b255f55d71835b008a66cbf8f255a11e4400159237db + languageName: node + linkType: hard + "typescript@npm:5, typescript@npm:^5.1.3": version: 5.1.3 resolution: "typescript@npm:5.1.3" @@ -36419,6 +37219,16 @@ __metadata: languageName: node linkType: hard +"typescript@patch:typescript@4.9.5#~builtin": + version: 4.9.5 + resolution: "typescript@patch:typescript@npm%3A4.9.5#~builtin::version=4.9.5&hash=289587" + bin: + tsc: bin/tsc + tsserver: bin/tsserver + checksum: 1f8f3b6aaea19f0f67cba79057674ba580438a7db55057eb89cc06950483c5d632115c14077f6663ea76fd09fce3c190e6414bb98582ec80aa5a4eaf345d5b68 + languageName: node + linkType: hard + "typescript@patch:typescript@5#~builtin, typescript@patch:typescript@^5.1.3#~builtin": version: 5.1.3 resolution: "typescript@patch:typescript@npm%3A5.1.3#~builtin::version=5.1.3&hash=5da071" @@ -37126,6 +37936,27 @@ __metadata: languageName: node linkType: hard +"vercel@npm:^31.2.2, vercel@npm:latest": + version: 31.2.2 + resolution: "vercel@npm:31.2.2" + dependencies: + "@vercel/build-utils": 6.8.2 + "@vercel/go": 2.5.1 + "@vercel/hydrogen": 0.0.64 + "@vercel/next": 3.9.3 + "@vercel/node": 2.15.8 + "@vercel/python": 3.1.60 + "@vercel/redwood": 1.1.15 + "@vercel/remix-builder": 1.9.1 + "@vercel/ruby": 1.3.76 + "@vercel/static-build": 1.3.44 + bin: + vc: dist/index.js + vercel: dist/index.js + checksum: 7479b038e023d3d0616c9435e47f78935f8d2a4b392f830d52d40ff22f38010cd4a26d14684b13ed3eff3cb50f9f390b401f09bf5ee436ec0dde0deebde33b11 + languageName: node + linkType: hard + "verror@npm:1.10.0": version: 1.10.0 resolution: "verror@npm:1.10.0" @@ -37346,6 +38177,13 @@ __metadata: languageName: node linkType: hard +"web-vitals@npm:0.2.4": + version: 0.2.4 + resolution: "web-vitals@npm:0.2.4" + checksum: 128a4e87730b0a02fb6af3eef7d31f9a79b4646e83cfe4465aa8ce6054fe16f7b1f4125a384f1b4f039091bd9513cb54b4e559c0b10ae953c01900786a16b1c2 + languageName: node + linkType: hard + "web3-bzz@npm:1.10.0": version: 1.10.0 resolution: "web3-bzz@npm:1.10.0" @@ -38848,7 +39686,7 @@ __metadata: languageName: node linkType: hard -"wide-align@npm:^1.1.0, wide-align@npm:^1.1.5": +"wide-align@npm:^1.1.0, wide-align@npm:^1.1.2, wide-align@npm:^1.1.5": version: 1.1.5 resolution: "wide-align@npm:1.1.5" dependencies: