@layerzerolabs/proxy-v5-6-evm-contracts 1.2.20
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/.turbo/turbo-build.log +270 -0
- package/.turbo/turbo-lint.log +98 -0
- package/.turbo/turbo-test.log +124 -0
- package/LICENSE +23 -0
- package/artifacts/@openzeppelin/contracts/access/Ownable.sol/Ownable.dbg.json +4 -0
- package/artifacts/@openzeppelin/contracts/access/Ownable.sol/Ownable.json +85 -0
- package/artifacts/@openzeppelin/contracts/access/Ownable2Step.sol/Ownable2Step.dbg.json +4 -0
- package/artifacts/@openzeppelin/contracts/access/Ownable2Step.sol/Ownable2Step.json +124 -0
- package/artifacts/@openzeppelin/contracts/interfaces/IERC1967.sol/IERC1967.dbg.json +4 -0
- package/artifacts/@openzeppelin/contracts/interfaces/IERC1967.sol/IERC1967.json +56 -0
- package/artifacts/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol/ERC1967Proxy.dbg.json +4 -0
- package/artifacts/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol/ERC1967Proxy.json +81 -0
- package/artifacts/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol/ERC1967Utils.dbg.json +4 -0
- package/artifacts/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol/ERC1967Utils.json +49 -0
- package/artifacts/@openzeppelin/contracts/proxy/Proxy.sol/Proxy.dbg.json +4 -0
- package/artifacts/@openzeppelin/contracts/proxy/Proxy.sol/Proxy.json +15 -0
- package/artifacts/@openzeppelin/contracts/proxy/beacon/IBeacon.sol/IBeacon.dbg.json +4 -0
- package/artifacts/@openzeppelin/contracts/proxy/beacon/IBeacon.sol/IBeacon.json +24 -0
- package/artifacts/@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol/ProxyAdmin.dbg.json +4 -0
- package/artifacts/@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol/ProxyAdmin.json +132 -0
- package/artifacts/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/ITransparentUpgradeableProxy.dbg.json +4 -0
- package/artifacts/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/ITransparentUpgradeableProxy.json +74 -0
- package/artifacts/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.dbg.json +4 -0
- package/artifacts/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.json +121 -0
- package/artifacts/@openzeppelin/contracts/utils/Address.sol/Address.dbg.json +4 -0
- package/artifacts/@openzeppelin/contracts/utils/Address.sol/Address.json +22 -0
- package/artifacts/@openzeppelin/contracts/utils/Context.sol/Context.dbg.json +4 -0
- package/artifacts/@openzeppelin/contracts/utils/Context.sol/Context.json +10 -0
- package/artifacts/@openzeppelin/contracts/utils/Errors.sol/Errors.dbg.json +4 -0
- package/artifacts/@openzeppelin/contracts/utils/Errors.sol/Errors.json +48 -0
- package/artifacts/@openzeppelin/contracts/utils/LowLevelCall.sol/LowLevelCall.dbg.json +4 -0
- package/artifacts/@openzeppelin/contracts/utils/LowLevelCall.sol/LowLevelCall.json +10 -0
- package/artifacts/@openzeppelin/contracts/utils/StorageSlot.sol/StorageSlot.dbg.json +4 -0
- package/artifacts/@openzeppelin/contracts/utils/StorageSlot.sol/StorageSlot.json +10 -0
- package/artifacts/build-info/eb640ccbdf084d1d111d9ebf9250fdca.json +1 -0
- package/artifacts/contracts/ProxyAdmin2Step.sol/ProxyAdmin2Step.dbg.json +4 -0
- package/artifacts/contracts/ProxyAdmin2Step.sol/ProxyAdmin2Step.json +176 -0
- package/artifacts/contracts/TransparentUpgradeableProxy2Step.sol/TransparentUpgradeableProxy2Step.dbg.json +4 -0
- package/artifacts/contracts/TransparentUpgradeableProxy2Step.sol/TransparentUpgradeableProxy2Step.json +121 -0
- package/artifacts/contracts/interfaces/IProxyAdmin2Step.sol/IProxyAdmin2Step.dbg.json +4 -0
- package/artifacts/contracts/interfaces/IProxyAdmin2Step.sol/IProxyAdmin2Step.json +16 -0
- package/artifacts-flattened-contracts/contracts/ProxyAdmin2Step.flattened.sol +922 -0
- package/artifacts-flattened-contracts/contracts/TransparentUpgradeableProxy2Step.flattened.sol +1017 -0
- package/artifacts-tron/@openzeppelin/contracts/access/Ownable.sol/Ownable.dbg.json +4 -0
- package/artifacts-tron/@openzeppelin/contracts/access/Ownable.sol/Ownable.json +85 -0
- package/artifacts-tron/@openzeppelin/contracts/access/Ownable2Step.sol/Ownable2Step.dbg.json +4 -0
- package/artifacts-tron/@openzeppelin/contracts/access/Ownable2Step.sol/Ownable2Step.json +124 -0
- package/artifacts-tron/@openzeppelin/contracts/interfaces/IERC1967.sol/IERC1967.dbg.json +4 -0
- package/artifacts-tron/@openzeppelin/contracts/interfaces/IERC1967.sol/IERC1967.json +56 -0
- package/artifacts-tron/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol/ERC1967Proxy.dbg.json +4 -0
- package/artifacts-tron/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol/ERC1967Proxy.json +81 -0
- package/artifacts-tron/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol/ERC1967Utils.dbg.json +4 -0
- package/artifacts-tron/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol/ERC1967Utils.json +49 -0
- package/artifacts-tron/@openzeppelin/contracts/proxy/Proxy.sol/Proxy.dbg.json +4 -0
- package/artifacts-tron/@openzeppelin/contracts/proxy/Proxy.sol/Proxy.json +15 -0
- package/artifacts-tron/@openzeppelin/contracts/proxy/beacon/IBeacon.sol/IBeacon.dbg.json +4 -0
- package/artifacts-tron/@openzeppelin/contracts/proxy/beacon/IBeacon.sol/IBeacon.json +24 -0
- package/artifacts-tron/@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol/ProxyAdmin.dbg.json +4 -0
- package/artifacts-tron/@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol/ProxyAdmin.json +132 -0
- package/artifacts-tron/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/ITransparentUpgradeableProxy.dbg.json +4 -0
- package/artifacts-tron/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/ITransparentUpgradeableProxy.json +74 -0
- package/artifacts-tron/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.dbg.json +4 -0
- package/artifacts-tron/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.json +121 -0
- package/artifacts-tron/@openzeppelin/contracts/utils/Address.sol/Address.dbg.json +4 -0
- package/artifacts-tron/@openzeppelin/contracts/utils/Address.sol/Address.json +22 -0
- package/artifacts-tron/@openzeppelin/contracts/utils/Context.sol/Context.dbg.json +4 -0
- package/artifacts-tron/@openzeppelin/contracts/utils/Context.sol/Context.json +10 -0
- package/artifacts-tron/@openzeppelin/contracts/utils/Errors.sol/Errors.dbg.json +4 -0
- package/artifacts-tron/@openzeppelin/contracts/utils/Errors.sol/Errors.json +48 -0
- package/artifacts-tron/@openzeppelin/contracts/utils/LowLevelCall.sol/LowLevelCall.dbg.json +4 -0
- package/artifacts-tron/@openzeppelin/contracts/utils/LowLevelCall.sol/LowLevelCall.json +10 -0
- package/artifacts-tron/@openzeppelin/contracts/utils/StorageSlot.sol/StorageSlot.dbg.json +4 -0
- package/artifacts-tron/@openzeppelin/contracts/utils/StorageSlot.sol/StorageSlot.json +10 -0
- package/artifacts-tron/build-info/33e2b07450318007b249bcb542a1e222.json +1 -0
- package/artifacts-tron/contracts/ProxyAdmin2Step.sol/ProxyAdmin2Step.dbg.json +4 -0
- package/artifacts-tron/contracts/ProxyAdmin2Step.sol/ProxyAdmin2Step.json +176 -0
- package/artifacts-tron/contracts/TransparentUpgradeableProxy2Step.sol/TransparentUpgradeableProxy2Step.dbg.json +4 -0
- package/artifacts-tron/contracts/TransparentUpgradeableProxy2Step.sol/TransparentUpgradeableProxy2Step.json +121 -0
- package/artifacts-tron/contracts/interfaces/IProxyAdmin2Step.sol/IProxyAdmin2Step.dbg.json +4 -0
- package/artifacts-tron/contracts/interfaces/IProxyAdmin2Step.sol/IProxyAdmin2Step.json +16 -0
- package/artifacts-zk/@openzeppelin/contracts/access/Ownable.sol/Ownable.dbg.json +4 -0
- package/artifacts-zk/@openzeppelin/contracts/access/Ownable.sol/Ownable.json +86 -0
- package/artifacts-zk/@openzeppelin/contracts/access/Ownable2Step.sol/Ownable2Step.dbg.json +4 -0
- package/artifacts-zk/@openzeppelin/contracts/access/Ownable2Step.sol/Ownable2Step.json +125 -0
- package/artifacts-zk/@openzeppelin/contracts/interfaces/IERC1967.sol/IERC1967.dbg.json +4 -0
- package/artifacts-zk/@openzeppelin/contracts/interfaces/IERC1967.sol/IERC1967.json +57 -0
- package/artifacts-zk/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol/ERC1967Proxy.dbg.json +4 -0
- package/artifacts-zk/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol/ERC1967Proxy.json +82 -0
- package/artifacts-zk/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol/ERC1967Utils.dbg.json +4 -0
- package/artifacts-zk/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol/ERC1967Utils.json +50 -0
- package/artifacts-zk/@openzeppelin/contracts/proxy/Proxy.sol/Proxy.dbg.json +4 -0
- package/artifacts-zk/@openzeppelin/contracts/proxy/Proxy.sol/Proxy.json +16 -0
- package/artifacts-zk/@openzeppelin/contracts/proxy/beacon/IBeacon.sol/IBeacon.dbg.json +4 -0
- package/artifacts-zk/@openzeppelin/contracts/proxy/beacon/IBeacon.sol/IBeacon.json +25 -0
- package/artifacts-zk/@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol/ProxyAdmin.dbg.json +4 -0
- package/artifacts-zk/@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol/ProxyAdmin.json +133 -0
- package/artifacts-zk/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/ITransparentUpgradeableProxy.dbg.json +4 -0
- package/artifacts-zk/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/ITransparentUpgradeableProxy.json +75 -0
- package/artifacts-zk/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.dbg.json +4 -0
- package/artifacts-zk/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.json +124 -0
- package/artifacts-zk/@openzeppelin/contracts/utils/Address.sol/Address.dbg.json +4 -0
- package/artifacts-zk/@openzeppelin/contracts/utils/Address.sol/Address.json +23 -0
- package/artifacts-zk/@openzeppelin/contracts/utils/Context.sol/Context.dbg.json +4 -0
- package/artifacts-zk/@openzeppelin/contracts/utils/Context.sol/Context.json +11 -0
- package/artifacts-zk/@openzeppelin/contracts/utils/Errors.sol/Errors.dbg.json +4 -0
- package/artifacts-zk/@openzeppelin/contracts/utils/Errors.sol/Errors.json +49 -0
- package/artifacts-zk/@openzeppelin/contracts/utils/LowLevelCall.sol/LowLevelCall.dbg.json +4 -0
- package/artifacts-zk/@openzeppelin/contracts/utils/LowLevelCall.sol/LowLevelCall.json +11 -0
- package/artifacts-zk/@openzeppelin/contracts/utils/StorageSlot.sol/StorageSlot.dbg.json +4 -0
- package/artifacts-zk/@openzeppelin/contracts/utils/StorageSlot.sol/StorageSlot.json +11 -0
- package/artifacts-zk/build-info/9069f70cfc4c7329462d894dfdd2740c.json +1 -0
- package/artifacts-zk/contracts/ProxyAdmin2Step.sol/ProxyAdmin2Step.dbg.json +4 -0
- package/artifacts-zk/contracts/ProxyAdmin2Step.sol/ProxyAdmin2Step.json +177 -0
- package/artifacts-zk/contracts/TransparentUpgradeableProxy2Step.sol/TransparentUpgradeableProxy2Step.dbg.json +4 -0
- package/artifacts-zk/contracts/TransparentUpgradeableProxy2Step.sol/TransparentUpgradeableProxy2Step.json +124 -0
- package/artifacts-zk/contracts/interfaces/IProxyAdmin2Step.sol/IProxyAdmin2Step.dbg.json +4 -0
- package/artifacts-zk/contracts/interfaces/IProxyAdmin2Step.sol/IProxyAdmin2Step.json +17 -0
- package/contracts/ProxyAdmin2Step.sol +39 -0
- package/contracts/TransparentUpgradeableProxy2Step.sol +109 -0
- package/contracts/interfaces/IProxyAdmin2Step.sol +15 -0
- package/foundry.toml +23 -0
- package/hardhat.config.js +58 -0
- package/package.json +42 -0
- package/solhint.config.js +3 -0
- package/test/TransparentUpgradeableProxy2Step.t.sol +276 -0
- package/turbo-snapshot.lock.json +454 -0
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
{
|
|
2
|
+
"_format": "hh-zksolc-artifact-1",
|
|
3
|
+
"contractName": "ProxyAdmin2Step",
|
|
4
|
+
"sourceName": "contracts/ProxyAdmin2Step.sol",
|
|
5
|
+
"abi": [
|
|
6
|
+
{
|
|
7
|
+
"inputs": [
|
|
8
|
+
{
|
|
9
|
+
"internalType": "address",
|
|
10
|
+
"name": "_initialOwner",
|
|
11
|
+
"type": "address"
|
|
12
|
+
}
|
|
13
|
+
],
|
|
14
|
+
"stateMutability": "nonpayable",
|
|
15
|
+
"type": "constructor"
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"inputs": [],
|
|
19
|
+
"name": "CannotRenounceOwnership",
|
|
20
|
+
"type": "error"
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"inputs": [
|
|
24
|
+
{
|
|
25
|
+
"internalType": "address",
|
|
26
|
+
"name": "owner",
|
|
27
|
+
"type": "address"
|
|
28
|
+
}
|
|
29
|
+
],
|
|
30
|
+
"name": "OwnableInvalidOwner",
|
|
31
|
+
"type": "error"
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
"inputs": [
|
|
35
|
+
{
|
|
36
|
+
"internalType": "address",
|
|
37
|
+
"name": "account",
|
|
38
|
+
"type": "address"
|
|
39
|
+
}
|
|
40
|
+
],
|
|
41
|
+
"name": "OwnableUnauthorizedAccount",
|
|
42
|
+
"type": "error"
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
"anonymous": false,
|
|
46
|
+
"inputs": [
|
|
47
|
+
{
|
|
48
|
+
"indexed": true,
|
|
49
|
+
"internalType": "address",
|
|
50
|
+
"name": "previousOwner",
|
|
51
|
+
"type": "address"
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
"indexed": true,
|
|
55
|
+
"internalType": "address",
|
|
56
|
+
"name": "newOwner",
|
|
57
|
+
"type": "address"
|
|
58
|
+
}
|
|
59
|
+
],
|
|
60
|
+
"name": "OwnershipTransferStarted",
|
|
61
|
+
"type": "event"
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
"anonymous": false,
|
|
65
|
+
"inputs": [
|
|
66
|
+
{
|
|
67
|
+
"indexed": true,
|
|
68
|
+
"internalType": "address",
|
|
69
|
+
"name": "previousOwner",
|
|
70
|
+
"type": "address"
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
"indexed": true,
|
|
74
|
+
"internalType": "address",
|
|
75
|
+
"name": "newOwner",
|
|
76
|
+
"type": "address"
|
|
77
|
+
}
|
|
78
|
+
],
|
|
79
|
+
"name": "OwnershipTransferred",
|
|
80
|
+
"type": "event"
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
"inputs": [],
|
|
84
|
+
"name": "UPGRADE_INTERFACE_VERSION",
|
|
85
|
+
"outputs": [
|
|
86
|
+
{
|
|
87
|
+
"internalType": "string",
|
|
88
|
+
"name": "",
|
|
89
|
+
"type": "string"
|
|
90
|
+
}
|
|
91
|
+
],
|
|
92
|
+
"stateMutability": "view",
|
|
93
|
+
"type": "function"
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
"inputs": [],
|
|
97
|
+
"name": "acceptOwnership",
|
|
98
|
+
"outputs": [],
|
|
99
|
+
"stateMutability": "nonpayable",
|
|
100
|
+
"type": "function"
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
"inputs": [],
|
|
104
|
+
"name": "owner",
|
|
105
|
+
"outputs": [
|
|
106
|
+
{
|
|
107
|
+
"internalType": "address",
|
|
108
|
+
"name": "",
|
|
109
|
+
"type": "address"
|
|
110
|
+
}
|
|
111
|
+
],
|
|
112
|
+
"stateMutability": "view",
|
|
113
|
+
"type": "function"
|
|
114
|
+
},
|
|
115
|
+
{
|
|
116
|
+
"inputs": [],
|
|
117
|
+
"name": "pendingOwner",
|
|
118
|
+
"outputs": [
|
|
119
|
+
{
|
|
120
|
+
"internalType": "address",
|
|
121
|
+
"name": "",
|
|
122
|
+
"type": "address"
|
|
123
|
+
}
|
|
124
|
+
],
|
|
125
|
+
"stateMutability": "view",
|
|
126
|
+
"type": "function"
|
|
127
|
+
},
|
|
128
|
+
{
|
|
129
|
+
"inputs": [],
|
|
130
|
+
"name": "renounceOwnership",
|
|
131
|
+
"outputs": [],
|
|
132
|
+
"stateMutability": "nonpayable",
|
|
133
|
+
"type": "function"
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
"inputs": [
|
|
137
|
+
{
|
|
138
|
+
"internalType": "address",
|
|
139
|
+
"name": "_newOwner",
|
|
140
|
+
"type": "address"
|
|
141
|
+
}
|
|
142
|
+
],
|
|
143
|
+
"name": "transferOwnership",
|
|
144
|
+
"outputs": [],
|
|
145
|
+
"stateMutability": "nonpayable",
|
|
146
|
+
"type": "function"
|
|
147
|
+
},
|
|
148
|
+
{
|
|
149
|
+
"inputs": [
|
|
150
|
+
{
|
|
151
|
+
"internalType": "contract ITransparentUpgradeableProxy",
|
|
152
|
+
"name": "proxy",
|
|
153
|
+
"type": "address"
|
|
154
|
+
},
|
|
155
|
+
{
|
|
156
|
+
"internalType": "address",
|
|
157
|
+
"name": "implementation",
|
|
158
|
+
"type": "address"
|
|
159
|
+
},
|
|
160
|
+
{
|
|
161
|
+
"internalType": "bytes",
|
|
162
|
+
"name": "data",
|
|
163
|
+
"type": "bytes"
|
|
164
|
+
}
|
|
165
|
+
],
|
|
166
|
+
"name": "upgradeAndCall",
|
|
167
|
+
"outputs": [],
|
|
168
|
+
"stateMutability": "payable",
|
|
169
|
+
"type": "function"
|
|
170
|
+
}
|
|
171
|
+
],
|
|
172
|
+
"bytecode": "0x00020000000000020000006003100270000000810330019700000001002001900000002d0000c13d0000008002000039000000400020043f000000040030008c000000500000413d000000000201043b000000e0022002700000008b0020009c000000520000a13d0000008c0020009c0000005d0000213d0000008f0020009c0000008c0000613d000000900020009c000000500000c13d0000000001000416000000000001004b000000500000c13d00000080010000390000004002000039020101b20000040f0000000501000039000000800010043f0000009701000041000000a00010043f0000002001000039000000400200043d000200000002001d00000000021204360000008001000039020101c40000040f00000002020000290000000001210049000000810010009c00000081010080410000006001100210000000810020009c00000081020080410000004002200210000000000121019f000002020001042e0000000002000416000000000002004b000000500000c13d0000001f0230003900000082022001970000008002200039000000400020043f0000001f0430018f000000830530019800000080025000390000003e0000613d0000008006000039000000000701034f000000007807043c0000000006860436000000000026004b0000003a0000c13d000000000004004b0000004b0000613d000000000151034f0000000304400210000000000502043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000120435000000200030008c000000500000413d000000800100043d000000840010009c0000007e0000a13d00000000010000190000020300010430000000910020009c000000850000613d000000920020009c000000ce0000613d000000930020009c000000500000c13d0000000001000416000000000001004b000000500000c13d000000000100041a000000b10000013d0000008d0020009c000000ac0000613d0000008e0020009c000000500000c13d0000000002000416000000000002004b000000500000c13d000000240030008c000000500000413d0000000401100370000000000101043b000000840010009c000000500000213d000000000200041a00000084052001970000000002000411000000000025004b000000f00000c13d00000084061001970000000102000039000000000302041a0000008503300197000000000113019f000000000012041b0000000001000414000000810010009c0000008101008041000000c00110021000000086011001c70000800d0200003900000003030000390000009504000041000000e60000013d0000008406100198000000b50000c13d0000008901000041000000000010043f000000040000043f0000008a0100004100000203000104300000000001000416000000000001004b000000500000c13d000000a001000041000000000010043f000000a1010000410000020300010430000000640030008c000000500000413d0000000402100370000000000202043b000000840020009c000000500000213d0000002404100370000000000a04043b0000008400a0009c000000500000213d0000004404100370000000000504043b000000980050009c000000500000213d0000002304500039000000000034004b000000500000813d0000000406500039000000000461034f000000000404043b000000990040009c000000a60000813d0000001f074000390000009a077001970000009b0070009c000000f50000a13d0000009f01000041000000000010043f0000004101000039000000040010043f0000008a0100004100000203000104300000000001000416000000000001004b000000500000c13d0000000101000039000000000101041a0000008401100197000000800010043f0000009601000041000002020001042e0000000102000039000000000302041a0000008503300197000000000032041b000000000200041a0000008503200197000000000113019f000000000010041b00000000010004140000008405200197000000810010009c0000008101008041000000c00110021000000086011001c70000800d0200003900000003030000390000008704000041020101f70000040f0000000100200190000000500000613d0000002001000039000001000010044300000120000004430000008801000041000002020001042e0000000001000416000000000001004b000000500000c13d0000000101000039000000000201041a00000084032001970000000006000411000000000063004b000000eb0000c13d0000008502200197000000000021041b000000000100041a0000008502100197000000000262019f000000000020041b00000000020004140000008405100197000000810020009c0000008102008041000000c00120021000000086011001c70000800d0200003900000003030000390000008704000041020101f70000040f0000000100200190000000500000613d0000000001000019000002020001042e0000009401000041000000000010043f000000040060043f0000008a0100004100000203000104300000009401000041000000000010043f000000040020043f0000008a0100004100000203000104300000003f077000390000009a077001970000008007700039000000400070043f000000800040043f00000000054500190000002405500039000000000035004b000000500000213d0000002003600039000000000331034f000000a2054001980000001f0640018f000000a0015000390000010a0000613d000000a007000039000000000803034f000000008908043c0000000007970436000000000017004b000001060000c13d000000000006004b000001170000613d000000000353034f0000000305600210000000000601043300000000065601cf000000000656022f000000000303043b0000010005500089000000000353022f00000000035301cf000000000363019f0000000000310435000000a0014000390000000000010435000000000100041a00000084031001970000000001000411000000000013004b000001530000c13d00020000000a001d00000084022001970000009c010000410000000000100443000100000002001d00000004002004430000000001000414000000810010009c0000008101008041000000c0011002100000009d011001c70000800202000039020101fc0000040f0000000100200190000001580000613d000000000101043b000000000001004b0000000201000029000000500000613d0000008401100197000000400500043d0000002402500039000000400300003900000000003204350000009e020000410000000000250435000000040250003900000000001204350000004402500039000000800100043d0000000000120435000000a2041001970000001f0310018f000200000005001d0000006402500039000000a10020008c000001590000413d000000000004004b0000014e0000613d000000000632001900000080053001bf000000200660008a0000000007460019000000000845001900000000080804330000000000870435000000200440008c000001480000c13d000000000003004b0000016f0000613d000000a0040000390000000005020019000001650000013d0000009402000041000000000020043f000000040010043f0000008a010000410000020300010430000000000001042f0000000005420019000000000004004b000001620000613d000000a006000039000000000702001900000000680604340000000007870436000000000057004b0000015e0000c13d000000000003004b0000016f0000613d000000a0044000390000000303300210000000000605043300000000063601cf000000000636022f00000000040404330000010003300089000000000434022f00000000033401cf000000000363019f00000000003504350000001f03100039000000a203300197000000000121001900000000000104350000006401300039000000810010009c000000810100804100000060011002100000000202000029000000810020009c00000081020080410000004002200210000000000121019f0000000002000414000000810020009c0000008102008041000000c002200210000000000112019f0000000003000416000000000003004b000001860000c13d00000001020000290000018a0000013d00000086011001c7000080090200003900000001040000290000000005000019020101f70000040f0000000100200190000001920000613d00000002010000290000000002000019020101b20000040f0000000001000019000002020001042e00000060061002700000001f0460018f0000008305600198000000400200043d00000000035200190000019e0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000038004b0000019a0000c13d0000008106600197000000000004004b000001ac0000613d000000000151034f0000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001304350000006001600210000000810020009c00000081020080410000004002200210000000000121019f00000203000104300000001f02200039000000a2022001970000000001120019000000000021004b00000000020000390000000102004039000000980010009c000001be0000213d0000000100200190000001be0000c13d000000400010043f000000000001042d0000009f01000041000000000010043f0000004101000039000000040010043f0000008a01000041000002030001043000000000430104340000000001320436000000a2063001970000001f0530018f000000000014004b000001da0000813d000000000006004b000001d60000613d00000000085400190000000007510019000000200770008a000000200880008a0000000009670019000000000a680019000000000a0a04330000000000a90435000000200660008c000001d00000c13d000000000005004b000001f00000613d0000000007010019000001e60000013d0000000007610019000000000006004b000001e30000613d00000000080400190000000009010019000000008a0804340000000009a90436000000000079004b000001df0000c13d000000000005004b000001f00000613d00000000046400190000000305500210000000000607043300000000065601cf000000000656022f00000000040404330000010005500089000000000454022f00000000045401cf000000000464019f0000000000470435000000000431001900000000000404350000001f03300039000000a2023001970000000001210019000000000001042d000000000001042f000001fa002104210000000102000039000000000001042d0000000002000019000000000001042d000001ff002104230000000102000039000000000001042d0000000002000019000000000001042d0000020100000432000002020001042e000002030001043000000000000000000000000000000000000000000000000000000000ffffffff00000000000000000000000000000000000000000000000000000001ffffffe000000000000000000000000000000000000000000000000000000000ffffffe0000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000008be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e000000002000000000000000000000000000000400000010000000000000000001e4fbdf7000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024000000000000000000000000000000000000000000000000000000000000000000000000000000009623609c00000000000000000000000000000000000000000000000000000000e30c397700000000000000000000000000000000000000000000000000000000e30c397800000000000000000000000000000000000000000000000000000000f2fde38b000000000000000000000000000000000000000000000000000000009623609d00000000000000000000000000000000000000000000000000000000ad3cb1cc00000000000000000000000000000000000000000000000000000000715018a60000000000000000000000000000000000000000000000000000000079ba5097000000000000000000000000000000000000000000000000000000008da5cb5b118cdaa70000000000000000000000000000000000000000000000000000000038d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e227000000000000000000000000000000000000000020000000800000000000000000352e302e30000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffff0000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001ffffffffffffffe0000000000000000000000000000000000000000000000000ffffffffffffff401806aa1896bbf26568e884a7374b41e002500962caba6a15023a8d90e8508b8302000002000000000000000000000000000000240000000000000000000000004f1ef286000000000000000000000000000000000000000000000000000000004e487b710000000000000000000000000000000000000000000000000000000077aeb0ad000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe00000000000000000000000000000000000000000000000000000000000000000000000000000000000a264697066735822122070418d541715892949343eabcb5353a84760cd7f112cfa967ab20e1bbe4035e964736f6c6378247a6b736f6c633a312e352e31353b736f6c633a302e382e32363b6c6c766d3a312e302e320055",
|
|
173
|
+
"deployedBytecode": "0x00020000000000020000006003100270000000810330019700000001002001900000002d0000c13d0000008002000039000000400020043f000000040030008c000000500000413d000000000201043b000000e0022002700000008b0020009c000000520000a13d0000008c0020009c0000005d0000213d0000008f0020009c0000008c0000613d000000900020009c000000500000c13d0000000001000416000000000001004b000000500000c13d00000080010000390000004002000039020101b20000040f0000000501000039000000800010043f0000009701000041000000a00010043f0000002001000039000000400200043d000200000002001d00000000021204360000008001000039020101c40000040f00000002020000290000000001210049000000810010009c00000081010080410000006001100210000000810020009c00000081020080410000004002200210000000000121019f000002020001042e0000000002000416000000000002004b000000500000c13d0000001f0230003900000082022001970000008002200039000000400020043f0000001f0430018f000000830530019800000080025000390000003e0000613d0000008006000039000000000701034f000000007807043c0000000006860436000000000026004b0000003a0000c13d000000000004004b0000004b0000613d000000000151034f0000000304400210000000000502043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000120435000000200030008c000000500000413d000000800100043d000000840010009c0000007e0000a13d00000000010000190000020300010430000000910020009c000000850000613d000000920020009c000000ce0000613d000000930020009c000000500000c13d0000000001000416000000000001004b000000500000c13d000000000100041a000000b10000013d0000008d0020009c000000ac0000613d0000008e0020009c000000500000c13d0000000002000416000000000002004b000000500000c13d000000240030008c000000500000413d0000000401100370000000000101043b000000840010009c000000500000213d000000000200041a00000084052001970000000002000411000000000025004b000000f00000c13d00000084061001970000000102000039000000000302041a0000008503300197000000000113019f000000000012041b0000000001000414000000810010009c0000008101008041000000c00110021000000086011001c70000800d0200003900000003030000390000009504000041000000e60000013d0000008406100198000000b50000c13d0000008901000041000000000010043f000000040000043f0000008a0100004100000203000104300000000001000416000000000001004b000000500000c13d000000a001000041000000000010043f000000a1010000410000020300010430000000640030008c000000500000413d0000000402100370000000000202043b000000840020009c000000500000213d0000002404100370000000000a04043b0000008400a0009c000000500000213d0000004404100370000000000504043b000000980050009c000000500000213d0000002304500039000000000034004b000000500000813d0000000406500039000000000461034f000000000404043b000000990040009c000000a60000813d0000001f074000390000009a077001970000009b0070009c000000f50000a13d0000009f01000041000000000010043f0000004101000039000000040010043f0000008a0100004100000203000104300000000001000416000000000001004b000000500000c13d0000000101000039000000000101041a0000008401100197000000800010043f0000009601000041000002020001042e0000000102000039000000000302041a0000008503300197000000000032041b000000000200041a0000008503200197000000000113019f000000000010041b00000000010004140000008405200197000000810010009c0000008101008041000000c00110021000000086011001c70000800d0200003900000003030000390000008704000041020101f70000040f0000000100200190000000500000613d0000002001000039000001000010044300000120000004430000008801000041000002020001042e0000000001000416000000000001004b000000500000c13d0000000101000039000000000201041a00000084032001970000000006000411000000000063004b000000eb0000c13d0000008502200197000000000021041b000000000100041a0000008502100197000000000262019f000000000020041b00000000020004140000008405100197000000810020009c0000008102008041000000c00120021000000086011001c70000800d0200003900000003030000390000008704000041020101f70000040f0000000100200190000000500000613d0000000001000019000002020001042e0000009401000041000000000010043f000000040060043f0000008a0100004100000203000104300000009401000041000000000010043f000000040020043f0000008a0100004100000203000104300000003f077000390000009a077001970000008007700039000000400070043f000000800040043f00000000054500190000002405500039000000000035004b000000500000213d0000002003600039000000000331034f000000a2054001980000001f0640018f000000a0015000390000010a0000613d000000a007000039000000000803034f000000008908043c0000000007970436000000000017004b000001060000c13d000000000006004b000001170000613d000000000353034f0000000305600210000000000601043300000000065601cf000000000656022f000000000303043b0000010005500089000000000353022f00000000035301cf000000000363019f0000000000310435000000a0014000390000000000010435000000000100041a00000084031001970000000001000411000000000013004b000001530000c13d00020000000a001d00000084022001970000009c010000410000000000100443000100000002001d00000004002004430000000001000414000000810010009c0000008101008041000000c0011002100000009d011001c70000800202000039020101fc0000040f0000000100200190000001580000613d000000000101043b000000000001004b0000000201000029000000500000613d0000008401100197000000400500043d0000002402500039000000400300003900000000003204350000009e020000410000000000250435000000040250003900000000001204350000004402500039000000800100043d0000000000120435000000a2041001970000001f0310018f000200000005001d0000006402500039000000a10020008c000001590000413d000000000004004b0000014e0000613d000000000632001900000080053001bf000000200660008a0000000007460019000000000845001900000000080804330000000000870435000000200440008c000001480000c13d000000000003004b0000016f0000613d000000a0040000390000000005020019000001650000013d0000009402000041000000000020043f000000040010043f0000008a010000410000020300010430000000000001042f0000000005420019000000000004004b000001620000613d000000a006000039000000000702001900000000680604340000000007870436000000000057004b0000015e0000c13d000000000003004b0000016f0000613d000000a0044000390000000303300210000000000605043300000000063601cf000000000636022f00000000040404330000010003300089000000000434022f00000000033401cf000000000363019f00000000003504350000001f03100039000000a203300197000000000121001900000000000104350000006401300039000000810010009c000000810100804100000060011002100000000202000029000000810020009c00000081020080410000004002200210000000000121019f0000000002000414000000810020009c0000008102008041000000c002200210000000000112019f0000000003000416000000000003004b000001860000c13d00000001020000290000018a0000013d00000086011001c7000080090200003900000001040000290000000005000019020101f70000040f0000000100200190000001920000613d00000002010000290000000002000019020101b20000040f0000000001000019000002020001042e00000060061002700000001f0460018f0000008305600198000000400200043d00000000035200190000019e0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000038004b0000019a0000c13d0000008106600197000000000004004b000001ac0000613d000000000151034f0000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001304350000006001600210000000810020009c00000081020080410000004002200210000000000121019f00000203000104300000001f02200039000000a2022001970000000001120019000000000021004b00000000020000390000000102004039000000980010009c000001be0000213d0000000100200190000001be0000c13d000000400010043f000000000001042d0000009f01000041000000000010043f0000004101000039000000040010043f0000008a01000041000002030001043000000000430104340000000001320436000000a2063001970000001f0530018f000000000014004b000001da0000813d000000000006004b000001d60000613d00000000085400190000000007510019000000200770008a000000200880008a0000000009670019000000000a680019000000000a0a04330000000000a90435000000200660008c000001d00000c13d000000000005004b000001f00000613d0000000007010019000001e60000013d0000000007610019000000000006004b000001e30000613d00000000080400190000000009010019000000008a0804340000000009a90436000000000079004b000001df0000c13d000000000005004b000001f00000613d00000000046400190000000305500210000000000607043300000000065601cf000000000656022f00000000040404330000010005500089000000000454022f00000000045401cf000000000464019f0000000000470435000000000431001900000000000404350000001f03300039000000a2023001970000000001210019000000000001042d000000000001042f000001fa002104210000000102000039000000000001042d0000000002000019000000000001042d000001ff002104230000000102000039000000000001042d0000000002000019000000000001042d0000020100000432000002020001042e000002030001043000000000000000000000000000000000000000000000000000000000ffffffff00000000000000000000000000000000000000000000000000000001ffffffe000000000000000000000000000000000000000000000000000000000ffffffe0000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000008be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e000000002000000000000000000000000000000400000010000000000000000001e4fbdf7000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024000000000000000000000000000000000000000000000000000000000000000000000000000000009623609c00000000000000000000000000000000000000000000000000000000e30c397700000000000000000000000000000000000000000000000000000000e30c397800000000000000000000000000000000000000000000000000000000f2fde38b000000000000000000000000000000000000000000000000000000009623609d00000000000000000000000000000000000000000000000000000000ad3cb1cc00000000000000000000000000000000000000000000000000000000715018a60000000000000000000000000000000000000000000000000000000079ba5097000000000000000000000000000000000000000000000000000000008da5cb5b118cdaa70000000000000000000000000000000000000000000000000000000038d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e227000000000000000000000000000000000000000020000000800000000000000000352e302e30000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffff0000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001ffffffffffffffe0000000000000000000000000000000000000000000000000ffffffffffffff401806aa1896bbf26568e884a7374b41e002500962caba6a15023a8d90e8508b8302000002000000000000000000000000000000240000000000000000000000004f1ef286000000000000000000000000000000000000000000000000000000004e487b710000000000000000000000000000000000000000000000000000000077aeb0ad000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe00000000000000000000000000000000000000000000000000000000000000000000000000000000000a264697066735822122070418d541715892949343eabcb5353a84760cd7f112cfa967ab20e1bbe4035e964736f6c6378247a6b736f6c633a312e352e31353b736f6c633a302e382e32363b6c6c766d3a312e302e320055",
|
|
174
|
+
"linkReferences": {},
|
|
175
|
+
"deployedLinkReferences": {},
|
|
176
|
+
"factoryDeps": {}
|
|
177
|
+
}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
{
|
|
2
|
+
"_format": "hh-zksolc-artifact-1",
|
|
3
|
+
"contractName": "TransparentUpgradeableProxy2Step",
|
|
4
|
+
"sourceName": "contracts/TransparentUpgradeableProxy2Step.sol",
|
|
5
|
+
"abi": [
|
|
6
|
+
{
|
|
7
|
+
"inputs": [
|
|
8
|
+
{
|
|
9
|
+
"internalType": "address",
|
|
10
|
+
"name": "_logic",
|
|
11
|
+
"type": "address"
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
"internalType": "address",
|
|
15
|
+
"name": "initialOwner",
|
|
16
|
+
"type": "address"
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"internalType": "bytes",
|
|
20
|
+
"name": "_data",
|
|
21
|
+
"type": "bytes"
|
|
22
|
+
}
|
|
23
|
+
],
|
|
24
|
+
"stateMutability": "payable",
|
|
25
|
+
"type": "constructor"
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
"inputs": [
|
|
29
|
+
{
|
|
30
|
+
"internalType": "address",
|
|
31
|
+
"name": "target",
|
|
32
|
+
"type": "address"
|
|
33
|
+
}
|
|
34
|
+
],
|
|
35
|
+
"name": "AddressEmptyCode",
|
|
36
|
+
"type": "error"
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
"inputs": [
|
|
40
|
+
{
|
|
41
|
+
"internalType": "address",
|
|
42
|
+
"name": "admin",
|
|
43
|
+
"type": "address"
|
|
44
|
+
}
|
|
45
|
+
],
|
|
46
|
+
"name": "ERC1967InvalidAdmin",
|
|
47
|
+
"type": "error"
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
"inputs": [
|
|
51
|
+
{
|
|
52
|
+
"internalType": "address",
|
|
53
|
+
"name": "implementation",
|
|
54
|
+
"type": "address"
|
|
55
|
+
}
|
|
56
|
+
],
|
|
57
|
+
"name": "ERC1967InvalidImplementation",
|
|
58
|
+
"type": "error"
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
"inputs": [],
|
|
62
|
+
"name": "ERC1967NonPayable",
|
|
63
|
+
"type": "error"
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
"inputs": [],
|
|
67
|
+
"name": "ERC1967ProxyUninitialized",
|
|
68
|
+
"type": "error"
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
"inputs": [],
|
|
72
|
+
"name": "FailedCall",
|
|
73
|
+
"type": "error"
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
"inputs": [],
|
|
77
|
+
"name": "ProxyDeniedAdminAccess",
|
|
78
|
+
"type": "error"
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
"anonymous": false,
|
|
82
|
+
"inputs": [
|
|
83
|
+
{
|
|
84
|
+
"indexed": false,
|
|
85
|
+
"internalType": "address",
|
|
86
|
+
"name": "previousAdmin",
|
|
87
|
+
"type": "address"
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
"indexed": false,
|
|
91
|
+
"internalType": "address",
|
|
92
|
+
"name": "newAdmin",
|
|
93
|
+
"type": "address"
|
|
94
|
+
}
|
|
95
|
+
],
|
|
96
|
+
"name": "AdminChanged",
|
|
97
|
+
"type": "event"
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
"anonymous": false,
|
|
101
|
+
"inputs": [
|
|
102
|
+
{
|
|
103
|
+
"indexed": true,
|
|
104
|
+
"internalType": "address",
|
|
105
|
+
"name": "implementation",
|
|
106
|
+
"type": "address"
|
|
107
|
+
}
|
|
108
|
+
],
|
|
109
|
+
"name": "Upgraded",
|
|
110
|
+
"type": "event"
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
"stateMutability": "payable",
|
|
114
|
+
"type": "fallback"
|
|
115
|
+
}
|
|
116
|
+
],
|
|
117
|
+
"bytecode": "0x000400000000000200050000000000020000006004100270000000bc0340019700030000003103550002000000010355000000bc0040019d0000000100200190000000960000c13d0000008001000039000000400010043f000000d70100004100000000001004430000000001000412000000040010044300000024000004430000000001000414000000bc0010009c000000bc01008041000000c001100210000000d8011001c7000080050200003902e602dc0000040f00000001002001900000022d0000613d0000000203000367000000000101043b000000bf011001970000000002000411000000000012004b000000bb0000c13d000000000103043b000000d901100197000000da0010009c000000fc0000c13d00000000080004150000000002000031000000dc0020009c000000b90000213d000000440020008c000000b90000413d0000000401300370000000000a01043b000000bf00a0009c000000b90000213d0000002401300370000000000401043b000000c00040009c000000b90000213d0000002301400039000000000021004b000000b90000813d0000000405400039000000000153034f000000000101043b000000c00010009c0000010b0000213d0000001f06100039000000c2066001970000003f06600039000000c306600197000000400900043d0000000006690019000000000096004b00000000070000390000000107004039000000c00060009c0000010b0000213d00000001007001900000010b0000c13d000000400060043f000000000b19043600000000041400190000002404400039000000000024004b000000b90000213d000100000008001d0000002002500039000000000323034f000000e0041001980000001f0510018f00000000024b0019000000590000613d000000000603034f00000000070b0019000000006806043c0000000007870436000000000027004b000000550000c13d000400000009001d00030000000a001d000000bf06a00197000000000005004b000000690000613d000000000343034f0000000304500210000000000502043300000000054501cf000000000545022f000000000303043b0000010004400089000000000343022f00000000034301cf000000000353019f000000000032043500020000000b001d00000000011b00190000000000010435000000c4010000410000000000100443000500000006001d00000004006004430000000001000414000000bc0010009c000000bc01008041000000c001100210000000c5011001c7000080020200003902e602dc0000040f00000001002001900000022d0000613d000000000101043b000000000001004b0000016a0000613d000000c601000041000000000201041a000000c70220019700000003022001af000000000021041b0000000001000414000000bc0010009c000000bc01008041000000c001100210000000c8011001c70000800d020000390000000203000039000000c904000041000000050500002902e602d70000040f000000010020019000000004020000290000000203000029000000b90000613d0000000001020433000000000001004b000002020000c13d0000000001000416000000000001004b0000018b0000c13d000002840000013d0000001f02300039000000bd02200197000000a002200039000000400020043f0000001f0430018f000000be05300198000000a002500039000000a40000613d000000a006000039000000000701034f000000007807043c0000000006860436000000000026004b000000a00000c13d000000000004004b000000b10000613d000000000151034f0000000304400210000000000502043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001204350000005f0030008c000000b90000a13d000000a00a00043d000000bf00a0009c000000b90000213d000000c00900043d000000bf0090009c000001000000a13d0000000001000019000002e8000104300000000001000031000000e0041001980000001f0510018f000000c602000041000000000202041a000000c70000613d000000000603034f0000000007000019000000006806043c0000000007870436000000000047004b000000c30000c13d000000bf02200197000000000005004b000000d50000613d000000000343034f0000000305500210000000000604043300000000065601cf000000000656022f000000000303043b0000010005500089000000000353022f00000000035301cf000000000363019f0000000000340435000000bc0010009c000000bc0100804100000060011002100000000003000414000000bc0030009c000000bc03008041000000c003300210000000000113019f02e602e10000040f000300000001035500000060051002700000001f0450018f000100bc0050019d000000be03500198000000ea0000613d000000000601034f0000000007000019000000006806043c0000000007870436000000000037004b000000e60000c13d000000bc05500197000000000004004b000000f80000613d000000000131034f0000000304400210000000000603043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f000000000013043500000060015002100000000100200190000002c70000613d000002e70001042e000000db01000041000000000010043f000000d601000041000002e800010430000000e00200043d000000c00020009c000000b90000213d000000a003300039000000bf01200039000000000031004b000000b90000813d000000a0012000390000000001010433000000c10010009c000001110000413d000000df01000041000000000010043f0000004101000039000000040010043f000000cb01000041000002e8000104300000001f04100039000000c2044001970000003f04400039000000c304400197000000400b00043d00000000044b00190000000000b4004b00000000050000390000000105004039000000c00040009c0000010b0000213d00000001005001900000010b0000c13d000000400040043f000000000c1b0436000000c0022000390000000004120019000000000034004b000000b90000213d000000e0041001970000001f0310018f0000000000c2004b000001380000813d000000000004004b000001340000613d000000000632001900000000053c0019000000200550008a000000200660008a0000000007450019000000000846001900000000080804330000000000870435000000200440008c0000012e0000c13d000000000003004b0000014e0000613d00000000050c0019000001440000013d00000000054c0019000000000004004b000001410000613d000000000602001900000000070c001900000000680604340000000007870436000000000057004b0000013d0000c13d000000000003004b0000014e0000613d00000000024200190000000303300210000000000405043300000000043401cf000000000434022f00000000020204330000010003300089000000000232022f00000000023201cf000000000242019f000000000025043500000000011c0019000000000001043500000000010b0433000000000001004b000001570000c13d000000d501000041000000000010043f000000d601000041000002e80001043000020000000c001d00030000000b001d000400000009001d000000c401000041000000000010044300050000000a001d0000000400a004430000000001000414000000bc0010009c000000bc01008041000000c001100210000000c5011001c7000080020200003902e602dc0000040f00000001002001900000022d0000613d000000000101043b000000000001004b000001700000c13d000000d401000041000000000010043f0000000501000029000000040010043f000000cb01000041000002e800010430000000c601000041000000000201041a000000c7022001970000000505000029000000000252019f000000000021041b0000000001000414000000bc0010009c000000bc01008041000000c001100210000000c8011001c70000800d020000390000000203000039000000c90400004102e602d70000040f00000005040000290000000100200190000000040300002900000003020000290000000205000029000000b90000613d0000000001020433000000000001004b0000018f0000c13d0000000001000416000000000001004b000001d90000613d000000de01000041000000000010043f000000d601000041000002e800010430000000bc0050009c000000bc0500804100000040015002100000000003000415000200000003001d0000000002020433000000bc0020009c000000bc020080410000006002200210000000000112019f0000000002000414000000bc0020009c000000bc02008041000000c002200210000000000121019f000000000204001902e602e10000040f0000006003100270000100bc0030019d000000bc03300197000300000001035500000001002001900000022e0000613d000000000003004b000001b80000c13d000000c4010000410000000000100443000000050100002900000004001004430000000001000414000000bc0010009c000000bc01008041000000c001100210000000c5011001c7000080020200003902e602dc0000040f00000001002001900000022d0000613d000000000101043b000000000001004b0000022b0000613d0000000101000031000000400200043d0000000002120436000000e0041001980000001f0510018f00000000034200190000000306000367000001c60000613d000000000706034f0000000008020019000000007907043c0000000008980436000000000038004b000001c20000c13d000000000005004b000001d30000613d000000000446034f0000000305500210000000000603043300000000065601cf000000000656022f000000000404043b0000010005500089000000000454022f00000000045401cf000000000464019f00000000004304350000000001120019000000400010043f0000000001000415000000020110006900000000010000020000000403000029000000400100043d000000cc0010009c0000010b0000213d000000840210003900000000003204350000002402100039000000bb0300004100000000003204350000006402100039000000000300041400000020040000390000000000420435000000440210003900000060040000390000000000420435000000cd02000041000000000021043500000004021000390000000000020435000000bc0010009c000000bc010080410000004001100210000000bc0030009c000000bc03008041000000c002300210000000000112019f000000ce011001c7000080060200003902e602d70000040f0000000100200190000002420000613d000000000101043b000000000200003100000002030003670003000000230355000100000000003f000000000001004b000002a70000c13d000000000123034f0000000002000019000002460000013d000000bc0030009c000000bc0300804100000040013002100000000003000415000300000003001d0000000002020433000000bc0020009c000000bc020080410000006002200210000000000112019f0000000002000414000000bc0020009c000000bc02008041000000c002200210000000000121019f000000050200002902e602e10000040f0000006003100270000100bc0030019d000000bc03300197000300000001035500000001002001900000023c0000613d000000000003004b000002640000c13d000000c4010000410000000000100443000000050100002900000004001004430000000001000414000000bc0010009c000000bc01008041000000c001100210000000c5011001c7000080020200003902e602dc0000040f00000001002001900000022d0000613d000000000101043b000000000001004b000002640000c13d000000ca010000410000016b0000013d000000000001042f000000000003004b0000023e0000613d0000001f0530018f000000be06300198000000400200043d0000000004620019000002940000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000002370000c13d000002940000013d000000000003004b000002890000c13d000000dd01000041000000000010043f000000d601000041000002e80001043000030000000103550000006002100270000100bc0020019d000000bc022001970000001f0520018f000000be06200198000000400300043d0000000004630019000002510000613d000000000701034f0000000008030019000000007907043c0000000008980436000000000048004b0000024d0000c13d000000000005004b0000025e0000613d000000000161034f0000000305500210000000000604043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f00000000001404350000006001200210000000bc0030009c000000bc030080410000004002300210000000000112019f000002e8000104300000000101000031000000400200043d0000000002120436000000e0041001980000001f0510018f00000000034200190000000306000367000002720000613d000000000706034f0000000008020019000000007907043c0000000008980436000000000038004b0000026e0000c13d000000000005004b0000027f0000613d000000000446034f0000000305500210000000000603043300000000065601cf000000000656022f000000000404043b0000010005500089000000000454022f00000000045401cf000000000464019f00000000004304350000000001120019000000400010043f0000000001000415000000030110006900000000010000020000000001000415000000010110006900000000010000020000000001000019000002e70001042e0000001f0530018f000000be06300198000000400200043d0000000004620019000002940000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000002900000c13d000000000005004b000002a10000613d000000000161034f0000000305500210000000000604043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f00000000001404350000006001300210000000bc0020009c000000bc020080410000004002200210000000000112019f000002e800010430000000bf03100197000000800030043f000000cf01000041000000000401041a000000400100043d0000002002100039000500000003001d0000000000320435000400000004001d000000bf024001970000000000210435000000bc0010009c000000bc0100804100000040011002100000000002000414000000bc0020009c000000bc02008041000000c002200210000000000112019f000000d0011001c70000800d020000390000000103000039000000d10400004102e602d70000040f0000000100200190000000b90000613d000000050000006b000002c80000c13d000000d301000041000000000010043f000000040000043f000000cb01000041000002e8000104300000000401000029000000c70110019700000005011001af000000cf02000041000000000012041b000000800100043d000001400000044300000160001004430000002001000039000001000010044300000001010000390000012000100443000000d201000041000002e70001042e000000000001042f000002da002104210000000102000039000000000001042d0000000002000019000000000001042d000002df002104230000000102000039000000000001042d0000000002000019000000000001042d000002e4002104250000000102000039000000000001042d0000000002000019000000000001042d000002e600000432000002e70001042e000002e800010430000000000000000000000000000000000000000000000000010000a7bf449b127c1d894b54ee4fd3c57edf438d3cfaeb0497a4a43f4e2d5d00000000000000000000000000000000000000000000000000000000ffffffff00000000000000000000000000000000000000000000000000000001ffffffe000000000000000000000000000000000000000000000000000000000ffffffe0000000000000000000000000ffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000000000000000ffffffffffffffff0000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001ffffffffffffffe0000000000000000000000000000000000000000000000003ffffffffffffffe01806aa1896bbf26568e884a7374b41e002500962caba6a15023a8d90e8508b830200000200000000000000000000000000000024000000000000000000000000360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbcffffffffffffffffffffffff00000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000bc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b9996b315000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffff7b9c4d535bdea7cd8a978f128b93471df48c7dbab89d703809115bdc118c235bfd02000000000000000000000000000000000000a4000000000000000000000000b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610302000000000000000000000000000000000000400000000000000000000000007e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f000000020000000000000000000000000000008000000100000000000000000062e77ba2000000000000000000000000000000000000000000000000000000004c9c8ce300000000000000000000000000000000000000000000000000000000c28a273c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000310ab089e4439a4c15d089f94afb7896ff553aecb10793d0ab882de59d99a32e0200000200000000000000000000000000000044000000000000000000000000ffffffff000000000000000000000000000000000000000000000000000000004f1ef28600000000000000000000000000000000000000000000000000000000d2b576ec000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd6bda27500000000000000000000000000000000000000000000000000000000b398979f000000000000000000000000000000000000000000000000000000004e487b7100000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe00000000000000000000000000000000000000000000000000000000000000000000000000000000000a264697066735822122053b75cb49ef213836a938118627ce0291334fd709183b4cbe8b54ba413eb7d3764736f6c6378247a6b736f6c633a312e352e31353b736f6c633a302e382e32363b6c6c766d3a312e302e320055",
|
|
118
|
+
"deployedBytecode": "0x000400000000000200050000000000020000006004100270000000bc0340019700030000003103550002000000010355000000bc0040019d0000000100200190000000960000c13d0000008001000039000000400010043f000000d70100004100000000001004430000000001000412000000040010044300000024000004430000000001000414000000bc0010009c000000bc01008041000000c001100210000000d8011001c7000080050200003902e602dc0000040f00000001002001900000022d0000613d0000000203000367000000000101043b000000bf011001970000000002000411000000000012004b000000bb0000c13d000000000103043b000000d901100197000000da0010009c000000fc0000c13d00000000080004150000000002000031000000dc0020009c000000b90000213d000000440020008c000000b90000413d0000000401300370000000000a01043b000000bf00a0009c000000b90000213d0000002401300370000000000401043b000000c00040009c000000b90000213d0000002301400039000000000021004b000000b90000813d0000000405400039000000000153034f000000000101043b000000c00010009c0000010b0000213d0000001f06100039000000c2066001970000003f06600039000000c306600197000000400900043d0000000006690019000000000096004b00000000070000390000000107004039000000c00060009c0000010b0000213d00000001007001900000010b0000c13d000000400060043f000000000b19043600000000041400190000002404400039000000000024004b000000b90000213d000100000008001d0000002002500039000000000323034f000000e0041001980000001f0510018f00000000024b0019000000590000613d000000000603034f00000000070b0019000000006806043c0000000007870436000000000027004b000000550000c13d000400000009001d00030000000a001d000000bf06a00197000000000005004b000000690000613d000000000343034f0000000304500210000000000502043300000000054501cf000000000545022f000000000303043b0000010004400089000000000343022f00000000034301cf000000000353019f000000000032043500020000000b001d00000000011b00190000000000010435000000c4010000410000000000100443000500000006001d00000004006004430000000001000414000000bc0010009c000000bc01008041000000c001100210000000c5011001c7000080020200003902e602dc0000040f00000001002001900000022d0000613d000000000101043b000000000001004b0000016a0000613d000000c601000041000000000201041a000000c70220019700000003022001af000000000021041b0000000001000414000000bc0010009c000000bc01008041000000c001100210000000c8011001c70000800d020000390000000203000039000000c904000041000000050500002902e602d70000040f000000010020019000000004020000290000000203000029000000b90000613d0000000001020433000000000001004b000002020000c13d0000000001000416000000000001004b0000018b0000c13d000002840000013d0000001f02300039000000bd02200197000000a002200039000000400020043f0000001f0430018f000000be05300198000000a002500039000000a40000613d000000a006000039000000000701034f000000007807043c0000000006860436000000000026004b000000a00000c13d000000000004004b000000b10000613d000000000151034f0000000304400210000000000502043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001204350000005f0030008c000000b90000a13d000000a00a00043d000000bf00a0009c000000b90000213d000000c00900043d000000bf0090009c000001000000a13d0000000001000019000002e8000104300000000001000031000000e0041001980000001f0510018f000000c602000041000000000202041a000000c70000613d000000000603034f0000000007000019000000006806043c0000000007870436000000000047004b000000c30000c13d000000bf02200197000000000005004b000000d50000613d000000000343034f0000000305500210000000000604043300000000065601cf000000000656022f000000000303043b0000010005500089000000000353022f00000000035301cf000000000363019f0000000000340435000000bc0010009c000000bc0100804100000060011002100000000003000414000000bc0030009c000000bc03008041000000c003300210000000000113019f02e602e10000040f000300000001035500000060051002700000001f0450018f000100bc0050019d000000be03500198000000ea0000613d000000000601034f0000000007000019000000006806043c0000000007870436000000000037004b000000e60000c13d000000bc05500197000000000004004b000000f80000613d000000000131034f0000000304400210000000000603043300000000064601cf000000000646022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000161019f000000000013043500000060015002100000000100200190000002c70000613d000002e70001042e000000db01000041000000000010043f000000d601000041000002e800010430000000e00200043d000000c00020009c000000b90000213d000000a003300039000000bf01200039000000000031004b000000b90000813d000000a0012000390000000001010433000000c10010009c000001110000413d000000df01000041000000000010043f0000004101000039000000040010043f000000cb01000041000002e8000104300000001f04100039000000c2044001970000003f04400039000000c304400197000000400b00043d00000000044b00190000000000b4004b00000000050000390000000105004039000000c00040009c0000010b0000213d00000001005001900000010b0000c13d000000400040043f000000000c1b0436000000c0022000390000000004120019000000000034004b000000b90000213d000000e0041001970000001f0310018f0000000000c2004b000001380000813d000000000004004b000001340000613d000000000632001900000000053c0019000000200550008a000000200660008a0000000007450019000000000846001900000000080804330000000000870435000000200440008c0000012e0000c13d000000000003004b0000014e0000613d00000000050c0019000001440000013d00000000054c0019000000000004004b000001410000613d000000000602001900000000070c001900000000680604340000000007870436000000000057004b0000013d0000c13d000000000003004b0000014e0000613d00000000024200190000000303300210000000000405043300000000043401cf000000000434022f00000000020204330000010003300089000000000232022f00000000023201cf000000000242019f000000000025043500000000011c0019000000000001043500000000010b0433000000000001004b000001570000c13d000000d501000041000000000010043f000000d601000041000002e80001043000020000000c001d00030000000b001d000400000009001d000000c401000041000000000010044300050000000a001d0000000400a004430000000001000414000000bc0010009c000000bc01008041000000c001100210000000c5011001c7000080020200003902e602dc0000040f00000001002001900000022d0000613d000000000101043b000000000001004b000001700000c13d000000d401000041000000000010043f0000000501000029000000040010043f000000cb01000041000002e800010430000000c601000041000000000201041a000000c7022001970000000505000029000000000252019f000000000021041b0000000001000414000000bc0010009c000000bc01008041000000c001100210000000c8011001c70000800d020000390000000203000039000000c90400004102e602d70000040f00000005040000290000000100200190000000040300002900000003020000290000000205000029000000b90000613d0000000001020433000000000001004b0000018f0000c13d0000000001000416000000000001004b000001d90000613d000000de01000041000000000010043f000000d601000041000002e800010430000000bc0050009c000000bc0500804100000040015002100000000003000415000200000003001d0000000002020433000000bc0020009c000000bc020080410000006002200210000000000112019f0000000002000414000000bc0020009c000000bc02008041000000c002200210000000000121019f000000000204001902e602e10000040f0000006003100270000100bc0030019d000000bc03300197000300000001035500000001002001900000022e0000613d000000000003004b000001b80000c13d000000c4010000410000000000100443000000050100002900000004001004430000000001000414000000bc0010009c000000bc01008041000000c001100210000000c5011001c7000080020200003902e602dc0000040f00000001002001900000022d0000613d000000000101043b000000000001004b0000022b0000613d0000000101000031000000400200043d0000000002120436000000e0041001980000001f0510018f00000000034200190000000306000367000001c60000613d000000000706034f0000000008020019000000007907043c0000000008980436000000000038004b000001c20000c13d000000000005004b000001d30000613d000000000446034f0000000305500210000000000603043300000000065601cf000000000656022f000000000404043b0000010005500089000000000454022f00000000045401cf000000000464019f00000000004304350000000001120019000000400010043f0000000001000415000000020110006900000000010000020000000403000029000000400100043d000000cc0010009c0000010b0000213d000000840210003900000000003204350000002402100039000000bb0300004100000000003204350000006402100039000000000300041400000020040000390000000000420435000000440210003900000060040000390000000000420435000000cd02000041000000000021043500000004021000390000000000020435000000bc0010009c000000bc010080410000004001100210000000bc0030009c000000bc03008041000000c002300210000000000112019f000000ce011001c7000080060200003902e602d70000040f0000000100200190000002420000613d000000000101043b000000000200003100000002030003670003000000230355000100000000003f000000000001004b000002a70000c13d000000000123034f0000000002000019000002460000013d000000bc0030009c000000bc0300804100000040013002100000000003000415000300000003001d0000000002020433000000bc0020009c000000bc020080410000006002200210000000000112019f0000000002000414000000bc0020009c000000bc02008041000000c002200210000000000121019f000000050200002902e602e10000040f0000006003100270000100bc0030019d000000bc03300197000300000001035500000001002001900000023c0000613d000000000003004b000002640000c13d000000c4010000410000000000100443000000050100002900000004001004430000000001000414000000bc0010009c000000bc01008041000000c001100210000000c5011001c7000080020200003902e602dc0000040f00000001002001900000022d0000613d000000000101043b000000000001004b000002640000c13d000000ca010000410000016b0000013d000000000001042f000000000003004b0000023e0000613d0000001f0530018f000000be06300198000000400200043d0000000004620019000002940000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000002370000c13d000002940000013d000000000003004b000002890000c13d000000dd01000041000000000010043f000000d601000041000002e80001043000030000000103550000006002100270000100bc0020019d000000bc022001970000001f0520018f000000be06200198000000400300043d0000000004630019000002510000613d000000000701034f0000000008030019000000007907043c0000000008980436000000000048004b0000024d0000c13d000000000005004b0000025e0000613d000000000161034f0000000305500210000000000604043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f00000000001404350000006001200210000000bc0030009c000000bc030080410000004002300210000000000112019f000002e8000104300000000101000031000000400200043d0000000002120436000000e0041001980000001f0510018f00000000034200190000000306000367000002720000613d000000000706034f0000000008020019000000007907043c0000000008980436000000000038004b0000026e0000c13d000000000005004b0000027f0000613d000000000446034f0000000305500210000000000603043300000000065601cf000000000656022f000000000404043b0000010005500089000000000454022f00000000045401cf000000000464019f00000000004304350000000001120019000000400010043f0000000001000415000000030110006900000000010000020000000001000415000000010110006900000000010000020000000001000019000002e70001042e0000001f0530018f000000be06300198000000400200043d0000000004620019000002940000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000002900000c13d000000000005004b000002a10000613d000000000161034f0000000305500210000000000604043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f00000000001404350000006001300210000000bc0020009c000000bc020080410000004002200210000000000112019f000002e800010430000000bf03100197000000800030043f000000cf01000041000000000401041a000000400100043d0000002002100039000500000003001d0000000000320435000400000004001d000000bf024001970000000000210435000000bc0010009c000000bc0100804100000040011002100000000002000414000000bc0020009c000000bc02008041000000c002200210000000000112019f000000d0011001c70000800d020000390000000103000039000000d10400004102e602d70000040f0000000100200190000000b90000613d000000050000006b000002c80000c13d000000d301000041000000000010043f000000040000043f000000cb01000041000002e8000104300000000401000029000000c70110019700000005011001af000000cf02000041000000000012041b000000800100043d000001400000044300000160001004430000002001000039000001000010044300000001010000390000012000100443000000d201000041000002e70001042e000000000001042f000002da002104210000000102000039000000000001042d0000000002000019000000000001042d000002df002104230000000102000039000000000001042d0000000002000019000000000001042d000002e4002104250000000102000039000000000001042d0000000002000019000000000001042d000002e600000432000002e70001042e000002e800010430000000000000000000000000000000000000000000000000010000a7bf449b127c1d894b54ee4fd3c57edf438d3cfaeb0497a4a43f4e2d5d00000000000000000000000000000000000000000000000000000000ffffffff00000000000000000000000000000000000000000000000000000001ffffffe000000000000000000000000000000000000000000000000000000000ffffffe0000000000000000000000000ffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000000000000000ffffffffffffffff0000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001ffffffffffffffe0000000000000000000000000000000000000000000000003ffffffffffffffe01806aa1896bbf26568e884a7374b41e002500962caba6a15023a8d90e8508b830200000200000000000000000000000000000024000000000000000000000000360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbcffffffffffffffffffffffff00000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000bc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b9996b315000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffff7b9c4d535bdea7cd8a978f128b93471df48c7dbab89d703809115bdc118c235bfd02000000000000000000000000000000000000a4000000000000000000000000b53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610302000000000000000000000000000000000000400000000000000000000000007e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f000000020000000000000000000000000000008000000100000000000000000062e77ba2000000000000000000000000000000000000000000000000000000004c9c8ce300000000000000000000000000000000000000000000000000000000c28a273c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000310ab089e4439a4c15d089f94afb7896ff553aecb10793d0ab882de59d99a32e0200000200000000000000000000000000000044000000000000000000000000ffffffff000000000000000000000000000000000000000000000000000000004f1ef28600000000000000000000000000000000000000000000000000000000d2b576ec000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd6bda27500000000000000000000000000000000000000000000000000000000b398979f000000000000000000000000000000000000000000000000000000004e487b7100000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe00000000000000000000000000000000000000000000000000000000000000000000000000000000000a264697066735822122053b75cb49ef213836a938118627ce0291334fd709183b4cbe8b54ba413eb7d3764736f6c6378247a6b736f6c633a312e352e31353b736f6c633a302e382e32363b6c6c766d3a312e302e320055",
|
|
119
|
+
"linkReferences": {},
|
|
120
|
+
"deployedLinkReferences": {},
|
|
121
|
+
"factoryDeps": {
|
|
122
|
+
"0x010000a7bf449b127c1d894b54ee4fd3c57edf438d3cfaeb0497a4a43f4e2d5d": "contracts/ProxyAdmin2Step.sol:ProxyAdmin2Step"
|
|
123
|
+
}
|
|
124
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
{
|
|
2
|
+
"_format": "hh-zksolc-artifact-1",
|
|
3
|
+
"contractName": "IProxyAdmin2Step",
|
|
4
|
+
"sourceName": "contracts/interfaces/IProxyAdmin2Step.sol",
|
|
5
|
+
"abi": [
|
|
6
|
+
{
|
|
7
|
+
"inputs": [],
|
|
8
|
+
"name": "CannotRenounceOwnership",
|
|
9
|
+
"type": "error"
|
|
10
|
+
}
|
|
11
|
+
],
|
|
12
|
+
"bytecode": "0x",
|
|
13
|
+
"deployedBytecode": "0x",
|
|
14
|
+
"linkReferences": {},
|
|
15
|
+
"deployedLinkReferences": {},
|
|
16
|
+
"factoryDeps": {}
|
|
17
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT
|
|
2
|
+
pragma solidity ^0.8.22;
|
|
3
|
+
|
|
4
|
+
import { Ownable } from "@openzeppelin/contracts/access/Ownable.sol";
|
|
5
|
+
import { Ownable2Step } from "@openzeppelin/contracts/access/Ownable2Step.sol";
|
|
6
|
+
import { ProxyAdmin } from "@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol";
|
|
7
|
+
import { IProxyAdmin2Step } from "./interfaces/IProxyAdmin2Step.sol";
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* @title ProxyAdmin2Step
|
|
11
|
+
* @author LayerZero Labs (tinom.eth)
|
|
12
|
+
* @custom:version 1.0.0
|
|
13
|
+
* @notice OZ's `ProxyAdmin` with `Ownable2Step` ownership transfers and disallowed renouncement.
|
|
14
|
+
*/
|
|
15
|
+
contract ProxyAdmin2Step is IProxyAdmin2Step, ProxyAdmin, Ownable2Step {
|
|
16
|
+
constructor(address _initialOwner) ProxyAdmin(_initialOwner) {}
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* @inheritdoc Ownable2Step
|
|
20
|
+
*/
|
|
21
|
+
function transferOwnership(address _newOwner) public virtual override(Ownable, Ownable2Step) {
|
|
22
|
+
Ownable2Step.transferOwnership(_newOwner);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* @inheritdoc Ownable2Step
|
|
27
|
+
*/
|
|
28
|
+
function _transferOwnership(address _newOwner) internal virtual override(Ownable, Ownable2Step) {
|
|
29
|
+
Ownable2Step._transferOwnership(_newOwner);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* @dev Override to prevent renouncing ownership.
|
|
34
|
+
* @inheritdoc Ownable
|
|
35
|
+
*/
|
|
36
|
+
function renounceOwnership() public virtual override {
|
|
37
|
+
revert CannotRenounceOwnership();
|
|
38
|
+
}
|
|
39
|
+
}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT
|
|
2
|
+
// OpenZeppelin Contracts (last updated v5.5.0) (proxy/transparent/TransparentUpgradeableProxy.sol)
|
|
3
|
+
|
|
4
|
+
pragma solidity ^0.8.22;
|
|
5
|
+
|
|
6
|
+
import { ERC1967Proxy } from "@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol";
|
|
7
|
+
import { ERC1967Utils } from "@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol";
|
|
8
|
+
import { ITransparentUpgradeableProxy } from "@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol";
|
|
9
|
+
import { ProxyAdmin2Step } from "./ProxyAdmin2Step.sol";
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* @dev This contract implements a proxy that is upgradeable through an associated {ProxyAdmin2Step} instance.
|
|
13
|
+
*
|
|
14
|
+
* To avoid https://medium.com/nomic-labs-blog/malicious-backdoors-in-ethereum-proxies-62629adf3357[proxy selector
|
|
15
|
+
* clashing], which can potentially be used in an attack, this contract uses the
|
|
16
|
+
* https://blog.openzeppelin.com/the-transparent-proxy-pattern/[transparent proxy pattern]. This pattern implies two
|
|
17
|
+
* things that go hand in hand:
|
|
18
|
+
*
|
|
19
|
+
* 1. If any account other than the admin calls the proxy, the call will be forwarded to the implementation, even if
|
|
20
|
+
* that call matches the {ITransparentUpgradeableProxy-upgradeToAndCall} function exposed by the proxy itself.
|
|
21
|
+
* 2. If the admin calls the proxy, it can call the `upgradeToAndCall` function, but any other call won't be forwarded to
|
|
22
|
+
* the implementation. If the admin tries to call a function on the implementation it will fail with an error indicating
|
|
23
|
+
* the proxy admin cannot fallback to the target implementation.
|
|
24
|
+
*
|
|
25
|
+
* These properties mean that the admin account can only be used for upgrading the proxy, so it's best if it's a
|
|
26
|
+
* dedicated account that is not used for anything else. This will avoid headaches due to sudden errors when trying to
|
|
27
|
+
* call a function from the proxy implementation. For this reason, the proxy deploys an instance of {ProxyAdmin2Step} and
|
|
28
|
+
* allows upgrades only if they come through it. You should think of the `ProxyAdmin2Step` instance as the administrative
|
|
29
|
+
* interface of the proxy, including the ability to change who can trigger upgrades by transferring ownership.
|
|
30
|
+
*
|
|
31
|
+
* NOTE: The real interface of this proxy is that defined in `ITransparentUpgradeableProxy`. This contract does not
|
|
32
|
+
* inherit from that interface, and instead `upgradeToAndCall` is implicitly implemented using a custom dispatch
|
|
33
|
+
* mechanism in `_fallback`. Consequently, the compiler will not produce an ABI for this contract. This is necessary to
|
|
34
|
+
* fully implement transparency without decoding reverts caused by selector clashes between the proxy and the
|
|
35
|
+
* implementation.
|
|
36
|
+
*
|
|
37
|
+
* NOTE: This proxy does not inherit from {Context} deliberately. The {ProxyAdmin2Step} of this contract won't send a
|
|
38
|
+
* meta-transaction in any way, and any other meta-transaction setup should be made in the implementation contract.
|
|
39
|
+
*
|
|
40
|
+
* IMPORTANT: This contract avoids unnecessary storage reads by setting the admin only during construction as an
|
|
41
|
+
* immutable variable, preventing any changes thereafter. However, the admin slot defined in ERC-1967 can still be
|
|
42
|
+
* overwritten by the implementation logic pointed to by this proxy. In such cases, the contract may end up in an
|
|
43
|
+
* undesirable state where the admin slot is different from the actual admin. Relying on the value of the admin slot
|
|
44
|
+
* is generally fine if the implementation is trusted.
|
|
45
|
+
*
|
|
46
|
+
* WARNING: It is not recommended to extend this contract to add additional external functions. If you do so, the
|
|
47
|
+
* compiler will not check that there are no selector conflicts, due to the note above. A selector clash between any new
|
|
48
|
+
* function and the functions declared in {ITransparentUpgradeableProxy} will be resolved in favor of the new one. This
|
|
49
|
+
* could render the `upgradeToAndCall` function inaccessible, preventing upgradeability and compromising transparency.
|
|
50
|
+
*
|
|
51
|
+
* @dev Differs from OZ's `TransparentUpgradeableProxy` by deploying `ProxyAdmin2Step` instead of `ProxyAdmin`.
|
|
52
|
+
*/
|
|
53
|
+
contract TransparentUpgradeableProxy2Step is ERC1967Proxy {
|
|
54
|
+
// An immutable address for the admin to avoid unnecessary SLOADs before each call
|
|
55
|
+
// at the expense of removing the ability to change the admin once it's set.
|
|
56
|
+
// This is acceptable if the admin is always a ProxyAdmin2Step instance or similar contract
|
|
57
|
+
// with its own ability to transfer the permissions to another account.
|
|
58
|
+
address private immutable _admin;
|
|
59
|
+
|
|
60
|
+
/**
|
|
61
|
+
* @dev The proxy caller is the current admin, and can't fallback to the proxy target.
|
|
62
|
+
*/
|
|
63
|
+
error ProxyDeniedAdminAccess();
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* @dev Initializes an upgradeable proxy managed by an instance of a {ProxyAdmin2Step} with an `initialOwner`,
|
|
67
|
+
* backed by the implementation at `_logic`, and optionally initialized with `_data` as explained in
|
|
68
|
+
* {ERC1967Proxy-constructor}.
|
|
69
|
+
*/
|
|
70
|
+
constructor(address _logic, address initialOwner, bytes memory _data) payable ERC1967Proxy(_logic, _data) {
|
|
71
|
+
_admin = address(new ProxyAdmin2Step(initialOwner));
|
|
72
|
+
// Set the storage value and emit an event for ERC-1967 compatibility
|
|
73
|
+
ERC1967Utils.changeAdmin(_proxyAdmin());
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
/**
|
|
77
|
+
* @dev Returns the admin of this proxy.
|
|
78
|
+
*/
|
|
79
|
+
function _proxyAdmin() internal view virtual returns (address) {
|
|
80
|
+
return _admin;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
/**
|
|
84
|
+
* @dev If caller is the admin process the call internally, otherwise transparently fallback to the proxy behavior.
|
|
85
|
+
*/
|
|
86
|
+
function _fallback() internal virtual override {
|
|
87
|
+
if (msg.sender == _proxyAdmin()) {
|
|
88
|
+
if (msg.sig != ITransparentUpgradeableProxy.upgradeToAndCall.selector) {
|
|
89
|
+
revert ProxyDeniedAdminAccess();
|
|
90
|
+
} else {
|
|
91
|
+
_dispatchUpgradeToAndCall();
|
|
92
|
+
}
|
|
93
|
+
} else {
|
|
94
|
+
super._fallback();
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
/**
|
|
99
|
+
* @dev Upgrade the implementation of the proxy. See {ERC1967Utils-upgradeToAndCall}.
|
|
100
|
+
*
|
|
101
|
+
* Requirements:
|
|
102
|
+
*
|
|
103
|
+
* - If `data` is empty, `msg.value` must be zero.
|
|
104
|
+
*/
|
|
105
|
+
function _dispatchUpgradeToAndCall() private {
|
|
106
|
+
(address newImplementation, bytes memory data) = abi.decode(msg.data[4:], (address, bytes));
|
|
107
|
+
ERC1967Utils.upgradeToAndCall(newImplementation, data);
|
|
108
|
+
}
|
|
109
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT
|
|
2
|
+
pragma solidity ^0.8.22;
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* @title IProxyAdmin2Step
|
|
6
|
+
* @author LayerZero Labs (tinom.eth)
|
|
7
|
+
* @custom:version 1.0.0
|
|
8
|
+
* @notice Interface for the `ProxyAdmin2Step` contract.
|
|
9
|
+
*/
|
|
10
|
+
interface IProxyAdmin2Step {
|
|
11
|
+
/**
|
|
12
|
+
* @notice Thrown when trying to renounce ownership.
|
|
13
|
+
*/
|
|
14
|
+
error CannotRenounceOwnership();
|
|
15
|
+
}
|
package/foundry.toml
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
[profile.default]
|
|
2
|
+
solc = '0.8.26'
|
|
3
|
+
evm_version = 'cancun'
|
|
4
|
+
verbosity = 3
|
|
5
|
+
src = "contracts"
|
|
6
|
+
test = "test"
|
|
7
|
+
out = "out"
|
|
8
|
+
cache_path = "cache"
|
|
9
|
+
libs = ['node_modules', 'node_modules/@layerzerolabs/toolbox-foundry/lib']
|
|
10
|
+
optimizer = true
|
|
11
|
+
optimizer_runs = 20_000
|
|
12
|
+
via_ir = true
|
|
13
|
+
|
|
14
|
+
remappings = [
|
|
15
|
+
'ds-test/=node_modules/@layerzerolabs/toolbox-foundry/lib/ds-test/',
|
|
16
|
+
'forge-std/=node_modules/@layerzerolabs/toolbox-foundry/lib/forge-std/',
|
|
17
|
+
'solidity-bytes-utils/contracts/=node_modules/@layerzerolabs/toolbox-foundry/lib/solidity-bytes-utils/',
|
|
18
|
+
'@openzeppelin/=node_modules/@openzeppelin/',
|
|
19
|
+
'@layerzerolabs/=node_modules/@layerzerolabs/',
|
|
20
|
+
]
|
|
21
|
+
|
|
22
|
+
[fuzz]
|
|
23
|
+
runs = 1000
|