@zoralabs/comments-contracts 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.env.example +11 -0
- package/.turbo/turbo-build.log +60 -0
- package/LICENSE +21 -0
- package/README.md +70 -0
- package/_imagine/Enjoy.sol +41 -0
- package/abis/AccessControlUpgradeable.json +250 -0
- package/abis/Address.json +29 -0
- package/abis/Comments.json +62 -0
- package/abis/CommentsDeployerBase.json +15 -0
- package/abis/CommentsImpl.json +1750 -0
- package/abis/CommentsPermitTest.json +847 -0
- package/abis/CommentsTest.json +986 -0
- package/abis/CommentsTestBase.json +577 -0
- package/abis/Comments_mintAndCommentTest.json +690 -0
- package/abis/ContextUpgradeable.json +25 -0
- package/abis/ContractVersionBase.json +15 -0
- package/abis/Create2.json +28 -0
- package/abis/DeployImpl.json +22 -0
- package/abis/DeployNonDeterministic.json +22 -0
- package/abis/DeployScript.json +22 -0
- package/abis/DeterministicDeployerAndCaller.json +315 -0
- package/abis/DeterministicUUPSProxyDeployer.json +167 -0
- package/abis/ECDSA.json +29 -0
- package/abis/EIP712.json +67 -0
- package/abis/EIP712UpgradeableWithChainId.json +25 -0
- package/abis/ERC1155.json +416 -0
- package/abis/ERC1155Holder.json +99 -0
- package/abis/ERC165.json +21 -0
- package/abis/ERC165Upgradeable.json +44 -0
- package/abis/ERC1967Proxy.json +67 -0
- package/abis/ERC1967Utils.json +85 -0
- package/abis/GenerateDeterministicParams.json +22 -0
- package/abis/IAccessControl.json +195 -0
- package/abis/IBeacon.json +15 -0
- package/abis/IComments.json +654 -0
- package/abis/IContractMetadata.json +28 -0
- package/abis/IERC1155.json +295 -0
- package/abis/IERC1155Errors.json +104 -0
- package/abis/IERC1155MetadataURI.json +314 -0
- package/abis/IERC1155Receiver.json +99 -0
- package/abis/IERC1271.json +26 -0
- package/abis/IERC165.json +21 -0
- package/abis/IERC1822Proxiable.json +15 -0
- package/abis/IERC20.json +224 -0
- package/abis/IERC20Errors.json +88 -0
- package/abis/IERC5267.json +51 -0
- package/abis/IERC721.json +287 -0
- package/abis/IERC721Enumerable.json +343 -0
- package/abis/IERC721Errors.json +105 -0
- package/abis/IERC721Metadata.json +332 -0
- package/abis/IERC721TokenReceiver.json +36 -0
- package/abis/IHasContractName.json +15 -0
- package/abis/IImmutableCreate2Factory.json +93 -0
- package/abis/IMulticall3.json +440 -0
- package/abis/IProtocolRewards.json +342 -0
- package/abis/ISafe.json +15 -0
- package/abis/ISymbol.json +15 -0
- package/abis/IVersionedContract.json +15 -0
- package/abis/IZoraCreator1155.json +343 -0
- package/abis/ImmutableCreate2FactoryUtils.json +15 -0
- package/abis/Initializable.json +25 -0
- package/abis/LibString.json +7 -0
- package/abis/Math.json +7 -0
- package/abis/Mock1155.json +547 -0
- package/abis/MockERC20.json +322 -0
- package/abis/MockERC721.json +350 -0
- package/abis/MockMinter.json +64 -0
- package/abis/OwnableUpgradeable.json +99 -0
- package/abis/ProtocolRewards.json +494 -0
- package/abis/Proxy.json +6 -0
- package/abis/ProxyDeployerScript.json +15 -0
- package/abis/ProxyShim.json +112 -0
- package/abis/Script.json +15 -0
- package/abis/ShortStrings.json +18 -0
- package/abis/StdAssertions.json +379 -0
- package/abis/StdInvariant.json +180 -0
- package/abis/Strings.json +18 -0
- package/abis/Test.json +570 -0
- package/abis/UUPSUpgradeable.json +130 -0
- package/abis/UnorderedNoncesUpgradeable.json +42 -0
- package/abis/Vm.json +8627 -0
- package/abis/VmSafe.json +7297 -0
- package/abis/stdError.json +119 -0
- package/abis/stdStorageSafe.json +52 -0
- package/addresses/999999999.json +4 -0
- package/deterministicConfig/comments.json +8 -0
- package/dist/index.cjs +935 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +908 -0
- package/dist/index.js.map +1 -0
- package/dist/types.d.ts +4 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/wagmiGenerated.d.ts +1354 -0
- package/dist/wagmiGenerated.d.ts.map +1 -0
- package/foundry.toml +24 -0
- package/package/index.ts +4 -0
- package/package/types.ts +5 -0
- package/package/wagmiGenerated.ts +907 -0
- package/package.json +62 -0
- package/remappings.txt +8 -0
- package/script/CommentsDeployerBase.sol +60 -0
- package/script/Deploy.s.sol +66 -0
- package/script/DeployImpl.s.sol +26 -0
- package/script/DeployNonDeterministic.s.sol +43 -0
- package/script/GenerateDeterministicParams.s.sol +55 -0
- package/script/bundle-abis.ts +109 -0
- package/script/storage-check.sh +57 -0
- package/script/update-contract-version.ts +63 -0
- package/scripts/abis.ts +3 -0
- package/scripts/backfillComments.ts +176 -0
- package/scripts/generateCommentsTestData.ts +247 -0
- package/scripts/getCommentsAddresses.ts +10 -0
- package/scripts/queries.ts +73 -0
- package/scripts/queryAndSaveComments.ts +48 -0
- package/scripts/queryQuantityOfComments.ts +53 -0
- package/scripts/signDeployAndCall.ts +51 -0
- package/scripts/turnkey.ts +36 -0
- package/scripts/utils.ts +127 -0
- package/scripts/writeComments.ts +198 -0
- package/slither.config.json +7 -0
- package/src/CommentsImpl.sol +552 -0
- package/src/deployments/CommentsDeployment.sol +14 -0
- package/src/interfaces/IComments.sol +156 -0
- package/src/interfaces/IZoraCreator1155.sol +12 -0
- package/src/proxy/Comments.sol +43 -0
- package/src/utils/EIP712UpgradeableWithChainId.sol +36 -0
- package/src/version/ContractVersionBase.sol +14 -0
- package/test/Comments.t.sol +482 -0
- package/test/CommentsTestBase.sol +86 -0
- package/test/Comments_mintAndComment.t.sol +101 -0
- package/test/Comments_permit.t.sol +397 -0
- package/test/mocks/Mock1155.sol +50 -0
- package/test/mocks/MockMinter.sol +29 -0
- package/test/mocks/ProtocolRewards.sol +1497 -0
- package/tsconfig.build.json +10 -0
- package/tsconfig.json +9 -0
- package/tsup.config.ts +11 -0
- package/wagmi.config.ts +14 -0
package/.env.example
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
ALCHEMY_KEY=
|
|
2
|
+
TENDERLY_KEY=
|
|
3
|
+
|
|
4
|
+
CONDUIT_KEY=
|
|
5
|
+
|
|
6
|
+
# Turnkey authentication and private key information
|
|
7
|
+
TURNKEY_API_PUBLIC_KEY=""
|
|
8
|
+
TURNKEY_API_PRIVATE_KEY=""
|
|
9
|
+
TURNKEY_ORGANIZATION_ID=""
|
|
10
|
+
TURNKEY_PRIVATE_KEY_ID="xxxx-xxx-xxxx-xxxx-xxxxxxxx"
|
|
11
|
+
TURNKEY_TARGET_ADDRESS="xxxxxxxx"
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
|
|
2
|
+
> @zoralabs/comments-contracts@0.0.1 build /home/runner/work/zora-protocol-private/zora-protocol-private/packages/comments
|
|
3
|
+
> pnpm run wagmi:generate && pnpm run copy-abis && pnpm run prettier:write && tsup
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
> @zoralabs/comments-contracts@0.0.1 wagmi:generate /home/runner/work/zora-protocol-private/zora-protocol-private/packages/comments
|
|
7
|
+
> FOUNDRY_PROFILE=dev forge build && wagmi generate
|
|
8
|
+
|
|
9
|
+
Compiling 93 files with Solc 0.8.23
|
|
10
|
+
Solc 0.8.23 finished in 23.33s
|
|
11
|
+
Compiler run successful!
|
|
12
|
+
- Validating plugins
|
|
13
|
+
✔ Validating plugins
|
|
14
|
+
- Resolving contracts
|
|
15
|
+
✔ Resolving contracts
|
|
16
|
+
- Running plugins
|
|
17
|
+
✔ Running plugins
|
|
18
|
+
- Writing to [90mpackage/wagmiGenerated.ts[39m
|
|
19
|
+
✔ Writing to [90mpackage/wagmiGenerated.ts[39m
|
|
20
|
+
|
|
21
|
+
> @zoralabs/comments-contracts@0.0.1 copy-abis /home/runner/work/zora-protocol-private/zora-protocol-private/packages/comments
|
|
22
|
+
> pnpm tsx script/bundle-abis.ts
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
> @zoralabs/comments-contracts@0.0.1 prettier:write /home/runner/work/zora-protocol-private/zora-protocol-private/packages/comments
|
|
26
|
+
> prettier --write 'src/**/*.sol' 'test/**/*.sol' 'script/**/*.sol'
|
|
27
|
+
|
|
28
|
+
src/CommentsImpl.sol 1251ms (unchanged)
|
|
29
|
+
src/deployments/CommentsDeployment.sol 19ms (unchanged)
|
|
30
|
+
src/interfaces/IComments.sol 55ms (unchanged)
|
|
31
|
+
src/interfaces/IZoraCreator1155.sol 10ms (unchanged)
|
|
32
|
+
src/proxy/Comments.sol 25ms (unchanged)
|
|
33
|
+
src/utils/EIP712UpgradeableWithChainId.sol 36ms (unchanged)
|
|
34
|
+
src/version/ContractVersionBase.sol 4ms (unchanged)
|
|
35
|
+
test/Comments_mintAndComment.t.sol 162ms (unchanged)
|
|
36
|
+
test/Comments_permit.t.sol 423ms (unchanged)
|
|
37
|
+
test/Comments.t.sol 577ms (unchanged)
|
|
38
|
+
test/CommentsTestBase.sol 68ms (unchanged)
|
|
39
|
+
test/mocks/Mock1155.sol 34ms (unchanged)
|
|
40
|
+
test/mocks/MockMinter.sol 17ms (unchanged)
|
|
41
|
+
test/mocks/ProtocolRewards.sol 693ms (unchanged)
|
|
42
|
+
script/CommentsDeployerBase.sol 63ms (unchanged)
|
|
43
|
+
script/Deploy.s.sol 57ms (unchanged)
|
|
44
|
+
script/DeployImpl.s.sol 39ms (unchanged)
|
|
45
|
+
script/DeployNonDeterministic.s.sol 29ms (unchanged)
|
|
46
|
+
script/GenerateDeterministicParams.s.sol 31ms (unchanged)
|
|
47
|
+
CLI Building entry: package/index.ts
|
|
48
|
+
CLI Using tsconfig: tsconfig.json
|
|
49
|
+
CLI tsup v7.3.0
|
|
50
|
+
CLI Using tsup config: /home/runner/work/zora-protocol-private/zora-protocol-private/packages/comments/tsup.config.ts
|
|
51
|
+
CLI Target: es2021
|
|
52
|
+
CLI Cleaning output folder
|
|
53
|
+
CJS Build start
|
|
54
|
+
ESM Build start
|
|
55
|
+
ESM dist/index.js 27.14 KB
|
|
56
|
+
ESM dist/index.js.map 47.24 KB
|
|
57
|
+
ESM ⚡️ Build success in 30ms
|
|
58
|
+
CJS dist/index.cjs 28.16 KB
|
|
59
|
+
CJS dist/index.cjs.map 47.51 KB
|
|
60
|
+
CJS ⚡️ Build success in 32ms
|
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2023 Zora Labs
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
# Comments
|
|
2
|
+
|
|
3
|
+
## Deployment
|
|
4
|
+
|
|
5
|
+
The `Comments` contract is deployed deterministically using a turnkey account. The deployment process uses a helper contract, [DeterministicDeployerAndCaller](../../packages/shared-contracts/src/deployment/DeterministicDeployerAndCaller.sol).
|
|
6
|
+
|
|
7
|
+
### Prerequisites
|
|
8
|
+
|
|
9
|
+
- Ensure you have [Forge](https://book.getfoundry.sh/getting-started/installation) installed.
|
|
10
|
+
- Familiarity with [turnkey accounts](https://docs.turnkey.com/) is recommended.
|
|
11
|
+
|
|
12
|
+
### Setting up environment variables
|
|
13
|
+
|
|
14
|
+
In the `packages/comments` directory:
|
|
15
|
+
|
|
16
|
+
1. Copy `.env.example` to `.env`
|
|
17
|
+
2. Populate the parameters in `.env`
|
|
18
|
+
3. Set `TURNKEY_TARGET_ADDRESS` to the address of the turnkey account that will sign the deployment.
|
|
19
|
+
|
|
20
|
+
### Deploying the Comments Contract
|
|
21
|
+
|
|
22
|
+
1. Generate deterministic config (if not already done):
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
DEPLOYER={TURNKEY_DEPLOYER_ADDRESS} forge script script/GenerateDeterministicParams.s.sol $(chains zora --rpc) --ffi
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
This saves the config to `./deterministicConfig/comments.json`.
|
|
29
|
+
|
|
30
|
+
2. Deploy the `Comments` contract:
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
forge script script/Deploy.s.sol $(chains {chainName} --rpc) --broadcast --verify
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
where `{chainName}` is the emdash name of the chain you want to deploy on.
|
|
37
|
+
|
|
38
|
+
## Seeding a Comments Contract
|
|
39
|
+
|
|
40
|
+
### Backfilling MintComments
|
|
41
|
+
|
|
42
|
+
`MintComment` events are legacy events for commenting when minting on
|
|
43
|
+
Zora 1155 contracts. To import the into a Comments contract, so that
|
|
44
|
+
they can be replied to and sparked, the following script can be run.
|
|
45
|
+
|
|
46
|
+
```
|
|
47
|
+
pnpm tsx scripts/backfillComments.ts {chainName}
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
where `{chainName}` is the emdash name of the chain you want to backfill on.
|
|
51
|
+
|
|
52
|
+
Example usages:
|
|
53
|
+
|
|
54
|
+
```
|
|
55
|
+
// for zora sepolia
|
|
56
|
+
pnpm tsx scripts/backfillComments.ts zora-sepolia
|
|
57
|
+
// for zora mainnet
|
|
58
|
+
pnpm tsx scripts/backfillComments.ts zora
|
|
59
|
+
// for base
|
|
60
|
+
pnpm tsx scripts/backfillComments.ts base
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
### Seeding Comments Contract with some Test Data
|
|
64
|
+
|
|
65
|
+
Currently only on Zora Sepolia, this will create some comments, replies,
|
|
66
|
+
and sparked comments.
|
|
67
|
+
|
|
68
|
+
```
|
|
69
|
+
pnpm tsx scripts/generateCommentsTestData.ts
|
|
70
|
+
```
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT
|
|
2
|
+
pragma solidity ^0.8.23;
|
|
3
|
+
|
|
4
|
+
/*
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
░░░░░░░░░░░░░░
|
|
11
|
+
░░▒▒░░░░░░░░░░░░░░░░░░░░
|
|
12
|
+
░░▒▒▒▒░░░░░░░░░░░░░░░░░░░░░░
|
|
13
|
+
░░▒▒▒▒░░░░░░░░░░░░░░ ░░░░░░░░
|
|
14
|
+
░▓▓▒▒▒▒░░░░░░░░░░░░ ░░░░░░░
|
|
15
|
+
░▓▓▓▒▒▒▒░░░░░░░░░░░░ ░░░░░░░░
|
|
16
|
+
░▓▓▓▒▒▒▒░░░░░░░░░░░░░░ ░░░░░░░░░░
|
|
17
|
+
░▓▓▓▒▒▒▒▒▒░░░░░░░░░░░░░░░░░░░░░░░░░░░
|
|
18
|
+
░▓▓▓▓▓▒▒▒▒░░░░░░░░░░░░░░░░░░░░░░░░░░
|
|
19
|
+
░▓▓▓▓▒▒▒▒▒▒░░░░░░░░░░░░░░░░░░░░░░░
|
|
20
|
+
░░▓▓▓▓▒▒▒▒▒▒░░░░░░░░░░░░░░░░░░░░
|
|
21
|
+
░░▓▓▓▓▓▓▒▒▒▒▒▒▒▒░░░░░░░░░▒▒▒▒▒░░
|
|
22
|
+
░░▓▓▓▓▓▓▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒░░
|
|
23
|
+
░░▓▓▓▓▓▓▓▓▓▓▓▓▒▒░░░
|
|
24
|
+
|
|
25
|
+
OURS TRULY,
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
*/
|
|
38
|
+
|
|
39
|
+
interface Enjoy {
|
|
40
|
+
|
|
41
|
+
}
|
|
@@ -0,0 +1,250 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"type": "function",
|
|
4
|
+
"name": "DEFAULT_ADMIN_ROLE",
|
|
5
|
+
"inputs": [],
|
|
6
|
+
"outputs": [
|
|
7
|
+
{
|
|
8
|
+
"name": "",
|
|
9
|
+
"type": "bytes32",
|
|
10
|
+
"internalType": "bytes32"
|
|
11
|
+
}
|
|
12
|
+
],
|
|
13
|
+
"stateMutability": "view"
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
"type": "function",
|
|
17
|
+
"name": "getRoleAdmin",
|
|
18
|
+
"inputs": [
|
|
19
|
+
{
|
|
20
|
+
"name": "role",
|
|
21
|
+
"type": "bytes32",
|
|
22
|
+
"internalType": "bytes32"
|
|
23
|
+
}
|
|
24
|
+
],
|
|
25
|
+
"outputs": [
|
|
26
|
+
{
|
|
27
|
+
"name": "",
|
|
28
|
+
"type": "bytes32",
|
|
29
|
+
"internalType": "bytes32"
|
|
30
|
+
}
|
|
31
|
+
],
|
|
32
|
+
"stateMutability": "view"
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
"type": "function",
|
|
36
|
+
"name": "grantRole",
|
|
37
|
+
"inputs": [
|
|
38
|
+
{
|
|
39
|
+
"name": "role",
|
|
40
|
+
"type": "bytes32",
|
|
41
|
+
"internalType": "bytes32"
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
"name": "account",
|
|
45
|
+
"type": "address",
|
|
46
|
+
"internalType": "address"
|
|
47
|
+
}
|
|
48
|
+
],
|
|
49
|
+
"outputs": [],
|
|
50
|
+
"stateMutability": "nonpayable"
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
"type": "function",
|
|
54
|
+
"name": "hasRole",
|
|
55
|
+
"inputs": [
|
|
56
|
+
{
|
|
57
|
+
"name": "role",
|
|
58
|
+
"type": "bytes32",
|
|
59
|
+
"internalType": "bytes32"
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
"name": "account",
|
|
63
|
+
"type": "address",
|
|
64
|
+
"internalType": "address"
|
|
65
|
+
}
|
|
66
|
+
],
|
|
67
|
+
"outputs": [
|
|
68
|
+
{
|
|
69
|
+
"name": "",
|
|
70
|
+
"type": "bool",
|
|
71
|
+
"internalType": "bool"
|
|
72
|
+
}
|
|
73
|
+
],
|
|
74
|
+
"stateMutability": "view"
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
"type": "function",
|
|
78
|
+
"name": "renounceRole",
|
|
79
|
+
"inputs": [
|
|
80
|
+
{
|
|
81
|
+
"name": "role",
|
|
82
|
+
"type": "bytes32",
|
|
83
|
+
"internalType": "bytes32"
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
"name": "callerConfirmation",
|
|
87
|
+
"type": "address",
|
|
88
|
+
"internalType": "address"
|
|
89
|
+
}
|
|
90
|
+
],
|
|
91
|
+
"outputs": [],
|
|
92
|
+
"stateMutability": "nonpayable"
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
"type": "function",
|
|
96
|
+
"name": "revokeRole",
|
|
97
|
+
"inputs": [
|
|
98
|
+
{
|
|
99
|
+
"name": "role",
|
|
100
|
+
"type": "bytes32",
|
|
101
|
+
"internalType": "bytes32"
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
"name": "account",
|
|
105
|
+
"type": "address",
|
|
106
|
+
"internalType": "address"
|
|
107
|
+
}
|
|
108
|
+
],
|
|
109
|
+
"outputs": [],
|
|
110
|
+
"stateMutability": "nonpayable"
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
"type": "function",
|
|
114
|
+
"name": "supportsInterface",
|
|
115
|
+
"inputs": [
|
|
116
|
+
{
|
|
117
|
+
"name": "interfaceId",
|
|
118
|
+
"type": "bytes4",
|
|
119
|
+
"internalType": "bytes4"
|
|
120
|
+
}
|
|
121
|
+
],
|
|
122
|
+
"outputs": [
|
|
123
|
+
{
|
|
124
|
+
"name": "",
|
|
125
|
+
"type": "bool",
|
|
126
|
+
"internalType": "bool"
|
|
127
|
+
}
|
|
128
|
+
],
|
|
129
|
+
"stateMutability": "view"
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
"type": "event",
|
|
133
|
+
"name": "Initialized",
|
|
134
|
+
"inputs": [
|
|
135
|
+
{
|
|
136
|
+
"name": "version",
|
|
137
|
+
"type": "uint64",
|
|
138
|
+
"indexed": false,
|
|
139
|
+
"internalType": "uint64"
|
|
140
|
+
}
|
|
141
|
+
],
|
|
142
|
+
"anonymous": false
|
|
143
|
+
},
|
|
144
|
+
{
|
|
145
|
+
"type": "event",
|
|
146
|
+
"name": "RoleAdminChanged",
|
|
147
|
+
"inputs": [
|
|
148
|
+
{
|
|
149
|
+
"name": "role",
|
|
150
|
+
"type": "bytes32",
|
|
151
|
+
"indexed": true,
|
|
152
|
+
"internalType": "bytes32"
|
|
153
|
+
},
|
|
154
|
+
{
|
|
155
|
+
"name": "previousAdminRole",
|
|
156
|
+
"type": "bytes32",
|
|
157
|
+
"indexed": true,
|
|
158
|
+
"internalType": "bytes32"
|
|
159
|
+
},
|
|
160
|
+
{
|
|
161
|
+
"name": "newAdminRole",
|
|
162
|
+
"type": "bytes32",
|
|
163
|
+
"indexed": true,
|
|
164
|
+
"internalType": "bytes32"
|
|
165
|
+
}
|
|
166
|
+
],
|
|
167
|
+
"anonymous": false
|
|
168
|
+
},
|
|
169
|
+
{
|
|
170
|
+
"type": "event",
|
|
171
|
+
"name": "RoleGranted",
|
|
172
|
+
"inputs": [
|
|
173
|
+
{
|
|
174
|
+
"name": "role",
|
|
175
|
+
"type": "bytes32",
|
|
176
|
+
"indexed": true,
|
|
177
|
+
"internalType": "bytes32"
|
|
178
|
+
},
|
|
179
|
+
{
|
|
180
|
+
"name": "account",
|
|
181
|
+
"type": "address",
|
|
182
|
+
"indexed": true,
|
|
183
|
+
"internalType": "address"
|
|
184
|
+
},
|
|
185
|
+
{
|
|
186
|
+
"name": "sender",
|
|
187
|
+
"type": "address",
|
|
188
|
+
"indexed": true,
|
|
189
|
+
"internalType": "address"
|
|
190
|
+
}
|
|
191
|
+
],
|
|
192
|
+
"anonymous": false
|
|
193
|
+
},
|
|
194
|
+
{
|
|
195
|
+
"type": "event",
|
|
196
|
+
"name": "RoleRevoked",
|
|
197
|
+
"inputs": [
|
|
198
|
+
{
|
|
199
|
+
"name": "role",
|
|
200
|
+
"type": "bytes32",
|
|
201
|
+
"indexed": true,
|
|
202
|
+
"internalType": "bytes32"
|
|
203
|
+
},
|
|
204
|
+
{
|
|
205
|
+
"name": "account",
|
|
206
|
+
"type": "address",
|
|
207
|
+
"indexed": true,
|
|
208
|
+
"internalType": "address"
|
|
209
|
+
},
|
|
210
|
+
{
|
|
211
|
+
"name": "sender",
|
|
212
|
+
"type": "address",
|
|
213
|
+
"indexed": true,
|
|
214
|
+
"internalType": "address"
|
|
215
|
+
}
|
|
216
|
+
],
|
|
217
|
+
"anonymous": false
|
|
218
|
+
},
|
|
219
|
+
{
|
|
220
|
+
"type": "error",
|
|
221
|
+
"name": "AccessControlBadConfirmation",
|
|
222
|
+
"inputs": []
|
|
223
|
+
},
|
|
224
|
+
{
|
|
225
|
+
"type": "error",
|
|
226
|
+
"name": "AccessControlUnauthorizedAccount",
|
|
227
|
+
"inputs": [
|
|
228
|
+
{
|
|
229
|
+
"name": "account",
|
|
230
|
+
"type": "address",
|
|
231
|
+
"internalType": "address"
|
|
232
|
+
},
|
|
233
|
+
{
|
|
234
|
+
"name": "neededRole",
|
|
235
|
+
"type": "bytes32",
|
|
236
|
+
"internalType": "bytes32"
|
|
237
|
+
}
|
|
238
|
+
]
|
|
239
|
+
},
|
|
240
|
+
{
|
|
241
|
+
"type": "error",
|
|
242
|
+
"name": "InvalidInitialization",
|
|
243
|
+
"inputs": []
|
|
244
|
+
},
|
|
245
|
+
{
|
|
246
|
+
"type": "error",
|
|
247
|
+
"name": "NotInitializing",
|
|
248
|
+
"inputs": []
|
|
249
|
+
}
|
|
250
|
+
]
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"type": "error",
|
|
4
|
+
"name": "AddressEmptyCode",
|
|
5
|
+
"inputs": [
|
|
6
|
+
{
|
|
7
|
+
"name": "target",
|
|
8
|
+
"type": "address",
|
|
9
|
+
"internalType": "address"
|
|
10
|
+
}
|
|
11
|
+
]
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
"type": "error",
|
|
15
|
+
"name": "AddressInsufficientBalance",
|
|
16
|
+
"inputs": [
|
|
17
|
+
{
|
|
18
|
+
"name": "account",
|
|
19
|
+
"type": "address",
|
|
20
|
+
"internalType": "address"
|
|
21
|
+
}
|
|
22
|
+
]
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
"type": "error",
|
|
26
|
+
"name": "FailedInnerCall",
|
|
27
|
+
"inputs": []
|
|
28
|
+
}
|
|
29
|
+
]
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"type": "constructor",
|
|
4
|
+
"inputs": [
|
|
5
|
+
{
|
|
6
|
+
"name": "_logic",
|
|
7
|
+
"type": "address",
|
|
8
|
+
"internalType": "address"
|
|
9
|
+
}
|
|
10
|
+
],
|
|
11
|
+
"stateMutability": "nonpayable"
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
"type": "fallback",
|
|
15
|
+
"stateMutability": "payable"
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"type": "event",
|
|
19
|
+
"name": "Upgraded",
|
|
20
|
+
"inputs": [
|
|
21
|
+
{
|
|
22
|
+
"name": "implementation",
|
|
23
|
+
"type": "address",
|
|
24
|
+
"indexed": true,
|
|
25
|
+
"internalType": "address"
|
|
26
|
+
}
|
|
27
|
+
],
|
|
28
|
+
"anonymous": false
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
"type": "error",
|
|
32
|
+
"name": "AddressEmptyCode",
|
|
33
|
+
"inputs": [
|
|
34
|
+
{
|
|
35
|
+
"name": "target",
|
|
36
|
+
"type": "address",
|
|
37
|
+
"internalType": "address"
|
|
38
|
+
}
|
|
39
|
+
]
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
"type": "error",
|
|
43
|
+
"name": "ERC1967InvalidImplementation",
|
|
44
|
+
"inputs": [
|
|
45
|
+
{
|
|
46
|
+
"name": "implementation",
|
|
47
|
+
"type": "address",
|
|
48
|
+
"internalType": "address"
|
|
49
|
+
}
|
|
50
|
+
]
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
"type": "error",
|
|
54
|
+
"name": "ERC1967NonPayable",
|
|
55
|
+
"inputs": []
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
"type": "error",
|
|
59
|
+
"name": "FailedInnerCall",
|
|
60
|
+
"inputs": []
|
|
61
|
+
}
|
|
62
|
+
]
|