@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.
Files changed (126) hide show
  1. package/.turbo/turbo-build.log +270 -0
  2. package/.turbo/turbo-lint.log +98 -0
  3. package/.turbo/turbo-test.log +124 -0
  4. package/LICENSE +23 -0
  5. package/artifacts/@openzeppelin/contracts/access/Ownable.sol/Ownable.dbg.json +4 -0
  6. package/artifacts/@openzeppelin/contracts/access/Ownable.sol/Ownable.json +85 -0
  7. package/artifacts/@openzeppelin/contracts/access/Ownable2Step.sol/Ownable2Step.dbg.json +4 -0
  8. package/artifacts/@openzeppelin/contracts/access/Ownable2Step.sol/Ownable2Step.json +124 -0
  9. package/artifacts/@openzeppelin/contracts/interfaces/IERC1967.sol/IERC1967.dbg.json +4 -0
  10. package/artifacts/@openzeppelin/contracts/interfaces/IERC1967.sol/IERC1967.json +56 -0
  11. package/artifacts/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol/ERC1967Proxy.dbg.json +4 -0
  12. package/artifacts/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol/ERC1967Proxy.json +81 -0
  13. package/artifacts/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol/ERC1967Utils.dbg.json +4 -0
  14. package/artifacts/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol/ERC1967Utils.json +49 -0
  15. package/artifacts/@openzeppelin/contracts/proxy/Proxy.sol/Proxy.dbg.json +4 -0
  16. package/artifacts/@openzeppelin/contracts/proxy/Proxy.sol/Proxy.json +15 -0
  17. package/artifacts/@openzeppelin/contracts/proxy/beacon/IBeacon.sol/IBeacon.dbg.json +4 -0
  18. package/artifacts/@openzeppelin/contracts/proxy/beacon/IBeacon.sol/IBeacon.json +24 -0
  19. package/artifacts/@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol/ProxyAdmin.dbg.json +4 -0
  20. package/artifacts/@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol/ProxyAdmin.json +132 -0
  21. package/artifacts/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/ITransparentUpgradeableProxy.dbg.json +4 -0
  22. package/artifacts/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/ITransparentUpgradeableProxy.json +74 -0
  23. package/artifacts/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.dbg.json +4 -0
  24. package/artifacts/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.json +121 -0
  25. package/artifacts/@openzeppelin/contracts/utils/Address.sol/Address.dbg.json +4 -0
  26. package/artifacts/@openzeppelin/contracts/utils/Address.sol/Address.json +22 -0
  27. package/artifacts/@openzeppelin/contracts/utils/Context.sol/Context.dbg.json +4 -0
  28. package/artifacts/@openzeppelin/contracts/utils/Context.sol/Context.json +10 -0
  29. package/artifacts/@openzeppelin/contracts/utils/Errors.sol/Errors.dbg.json +4 -0
  30. package/artifacts/@openzeppelin/contracts/utils/Errors.sol/Errors.json +48 -0
  31. package/artifacts/@openzeppelin/contracts/utils/LowLevelCall.sol/LowLevelCall.dbg.json +4 -0
  32. package/artifacts/@openzeppelin/contracts/utils/LowLevelCall.sol/LowLevelCall.json +10 -0
  33. package/artifacts/@openzeppelin/contracts/utils/StorageSlot.sol/StorageSlot.dbg.json +4 -0
  34. package/artifacts/@openzeppelin/contracts/utils/StorageSlot.sol/StorageSlot.json +10 -0
  35. package/artifacts/build-info/eb640ccbdf084d1d111d9ebf9250fdca.json +1 -0
  36. package/artifacts/contracts/ProxyAdmin2Step.sol/ProxyAdmin2Step.dbg.json +4 -0
  37. package/artifacts/contracts/ProxyAdmin2Step.sol/ProxyAdmin2Step.json +176 -0
  38. package/artifacts/contracts/TransparentUpgradeableProxy2Step.sol/TransparentUpgradeableProxy2Step.dbg.json +4 -0
  39. package/artifacts/contracts/TransparentUpgradeableProxy2Step.sol/TransparentUpgradeableProxy2Step.json +121 -0
  40. package/artifacts/contracts/interfaces/IProxyAdmin2Step.sol/IProxyAdmin2Step.dbg.json +4 -0
  41. package/artifacts/contracts/interfaces/IProxyAdmin2Step.sol/IProxyAdmin2Step.json +16 -0
  42. package/artifacts-flattened-contracts/contracts/ProxyAdmin2Step.flattened.sol +922 -0
  43. package/artifacts-flattened-contracts/contracts/TransparentUpgradeableProxy2Step.flattened.sol +1017 -0
  44. package/artifacts-tron/@openzeppelin/contracts/access/Ownable.sol/Ownable.dbg.json +4 -0
  45. package/artifacts-tron/@openzeppelin/contracts/access/Ownable.sol/Ownable.json +85 -0
  46. package/artifacts-tron/@openzeppelin/contracts/access/Ownable2Step.sol/Ownable2Step.dbg.json +4 -0
  47. package/artifacts-tron/@openzeppelin/contracts/access/Ownable2Step.sol/Ownable2Step.json +124 -0
  48. package/artifacts-tron/@openzeppelin/contracts/interfaces/IERC1967.sol/IERC1967.dbg.json +4 -0
  49. package/artifacts-tron/@openzeppelin/contracts/interfaces/IERC1967.sol/IERC1967.json +56 -0
  50. package/artifacts-tron/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol/ERC1967Proxy.dbg.json +4 -0
  51. package/artifacts-tron/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol/ERC1967Proxy.json +81 -0
  52. package/artifacts-tron/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol/ERC1967Utils.dbg.json +4 -0
  53. package/artifacts-tron/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol/ERC1967Utils.json +49 -0
  54. package/artifacts-tron/@openzeppelin/contracts/proxy/Proxy.sol/Proxy.dbg.json +4 -0
  55. package/artifacts-tron/@openzeppelin/contracts/proxy/Proxy.sol/Proxy.json +15 -0
  56. package/artifacts-tron/@openzeppelin/contracts/proxy/beacon/IBeacon.sol/IBeacon.dbg.json +4 -0
  57. package/artifacts-tron/@openzeppelin/contracts/proxy/beacon/IBeacon.sol/IBeacon.json +24 -0
  58. package/artifacts-tron/@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol/ProxyAdmin.dbg.json +4 -0
  59. package/artifacts-tron/@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol/ProxyAdmin.json +132 -0
  60. package/artifacts-tron/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/ITransparentUpgradeableProxy.dbg.json +4 -0
  61. package/artifacts-tron/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/ITransparentUpgradeableProxy.json +74 -0
  62. package/artifacts-tron/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.dbg.json +4 -0
  63. package/artifacts-tron/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.json +121 -0
  64. package/artifacts-tron/@openzeppelin/contracts/utils/Address.sol/Address.dbg.json +4 -0
  65. package/artifacts-tron/@openzeppelin/contracts/utils/Address.sol/Address.json +22 -0
  66. package/artifacts-tron/@openzeppelin/contracts/utils/Context.sol/Context.dbg.json +4 -0
  67. package/artifacts-tron/@openzeppelin/contracts/utils/Context.sol/Context.json +10 -0
  68. package/artifacts-tron/@openzeppelin/contracts/utils/Errors.sol/Errors.dbg.json +4 -0
  69. package/artifacts-tron/@openzeppelin/contracts/utils/Errors.sol/Errors.json +48 -0
  70. package/artifacts-tron/@openzeppelin/contracts/utils/LowLevelCall.sol/LowLevelCall.dbg.json +4 -0
  71. package/artifacts-tron/@openzeppelin/contracts/utils/LowLevelCall.sol/LowLevelCall.json +10 -0
  72. package/artifacts-tron/@openzeppelin/contracts/utils/StorageSlot.sol/StorageSlot.dbg.json +4 -0
  73. package/artifacts-tron/@openzeppelin/contracts/utils/StorageSlot.sol/StorageSlot.json +10 -0
  74. package/artifacts-tron/build-info/33e2b07450318007b249bcb542a1e222.json +1 -0
  75. package/artifacts-tron/contracts/ProxyAdmin2Step.sol/ProxyAdmin2Step.dbg.json +4 -0
  76. package/artifacts-tron/contracts/ProxyAdmin2Step.sol/ProxyAdmin2Step.json +176 -0
  77. package/artifacts-tron/contracts/TransparentUpgradeableProxy2Step.sol/TransparentUpgradeableProxy2Step.dbg.json +4 -0
  78. package/artifacts-tron/contracts/TransparentUpgradeableProxy2Step.sol/TransparentUpgradeableProxy2Step.json +121 -0
  79. package/artifacts-tron/contracts/interfaces/IProxyAdmin2Step.sol/IProxyAdmin2Step.dbg.json +4 -0
  80. package/artifacts-tron/contracts/interfaces/IProxyAdmin2Step.sol/IProxyAdmin2Step.json +16 -0
  81. package/artifacts-zk/@openzeppelin/contracts/access/Ownable.sol/Ownable.dbg.json +4 -0
  82. package/artifacts-zk/@openzeppelin/contracts/access/Ownable.sol/Ownable.json +86 -0
  83. package/artifacts-zk/@openzeppelin/contracts/access/Ownable2Step.sol/Ownable2Step.dbg.json +4 -0
  84. package/artifacts-zk/@openzeppelin/contracts/access/Ownable2Step.sol/Ownable2Step.json +125 -0
  85. package/artifacts-zk/@openzeppelin/contracts/interfaces/IERC1967.sol/IERC1967.dbg.json +4 -0
  86. package/artifacts-zk/@openzeppelin/contracts/interfaces/IERC1967.sol/IERC1967.json +57 -0
  87. package/artifacts-zk/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol/ERC1967Proxy.dbg.json +4 -0
  88. package/artifacts-zk/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol/ERC1967Proxy.json +82 -0
  89. package/artifacts-zk/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol/ERC1967Utils.dbg.json +4 -0
  90. package/artifacts-zk/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol/ERC1967Utils.json +50 -0
  91. package/artifacts-zk/@openzeppelin/contracts/proxy/Proxy.sol/Proxy.dbg.json +4 -0
  92. package/artifacts-zk/@openzeppelin/contracts/proxy/Proxy.sol/Proxy.json +16 -0
  93. package/artifacts-zk/@openzeppelin/contracts/proxy/beacon/IBeacon.sol/IBeacon.dbg.json +4 -0
  94. package/artifacts-zk/@openzeppelin/contracts/proxy/beacon/IBeacon.sol/IBeacon.json +25 -0
  95. package/artifacts-zk/@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol/ProxyAdmin.dbg.json +4 -0
  96. package/artifacts-zk/@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol/ProxyAdmin.json +133 -0
  97. package/artifacts-zk/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/ITransparentUpgradeableProxy.dbg.json +4 -0
  98. package/artifacts-zk/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/ITransparentUpgradeableProxy.json +75 -0
  99. package/artifacts-zk/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.dbg.json +4 -0
  100. package/artifacts-zk/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.json +124 -0
  101. package/artifacts-zk/@openzeppelin/contracts/utils/Address.sol/Address.dbg.json +4 -0
  102. package/artifacts-zk/@openzeppelin/contracts/utils/Address.sol/Address.json +23 -0
  103. package/artifacts-zk/@openzeppelin/contracts/utils/Context.sol/Context.dbg.json +4 -0
  104. package/artifacts-zk/@openzeppelin/contracts/utils/Context.sol/Context.json +11 -0
  105. package/artifacts-zk/@openzeppelin/contracts/utils/Errors.sol/Errors.dbg.json +4 -0
  106. package/artifacts-zk/@openzeppelin/contracts/utils/Errors.sol/Errors.json +49 -0
  107. package/artifacts-zk/@openzeppelin/contracts/utils/LowLevelCall.sol/LowLevelCall.dbg.json +4 -0
  108. package/artifacts-zk/@openzeppelin/contracts/utils/LowLevelCall.sol/LowLevelCall.json +11 -0
  109. package/artifacts-zk/@openzeppelin/contracts/utils/StorageSlot.sol/StorageSlot.dbg.json +4 -0
  110. package/artifacts-zk/@openzeppelin/contracts/utils/StorageSlot.sol/StorageSlot.json +11 -0
  111. package/artifacts-zk/build-info/9069f70cfc4c7329462d894dfdd2740c.json +1 -0
  112. package/artifacts-zk/contracts/ProxyAdmin2Step.sol/ProxyAdmin2Step.dbg.json +4 -0
  113. package/artifacts-zk/contracts/ProxyAdmin2Step.sol/ProxyAdmin2Step.json +177 -0
  114. package/artifacts-zk/contracts/TransparentUpgradeableProxy2Step.sol/TransparentUpgradeableProxy2Step.dbg.json +4 -0
  115. package/artifacts-zk/contracts/TransparentUpgradeableProxy2Step.sol/TransparentUpgradeableProxy2Step.json +124 -0
  116. package/artifacts-zk/contracts/interfaces/IProxyAdmin2Step.sol/IProxyAdmin2Step.dbg.json +4 -0
  117. package/artifacts-zk/contracts/interfaces/IProxyAdmin2Step.sol/IProxyAdmin2Step.json +17 -0
  118. package/contracts/ProxyAdmin2Step.sol +39 -0
  119. package/contracts/TransparentUpgradeableProxy2Step.sol +109 -0
  120. package/contracts/interfaces/IProxyAdmin2Step.sol +15 -0
  121. package/foundry.toml +23 -0
  122. package/hardhat.config.js +58 -0
  123. package/package.json +42 -0
  124. package/solhint.config.js +3 -0
  125. package/test/TransparentUpgradeableProxy2Step.t.sol +276 -0
  126. package/turbo-snapshot.lock.json +454 -0
@@ -0,0 +1,4 @@
1
+ {
2
+ "_format": "hh-sol-dbg-1",
3
+ "buildInfo": "../../build-info/9069f70cfc4c7329462d894dfdd2740c.json"
4
+ }
@@ -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,4 @@
1
+ {
2
+ "_format": "hh-sol-dbg-1",
3
+ "buildInfo": "../../build-info/9069f70cfc4c7329462d894dfdd2740c.json"
4
+ }
@@ -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,4 @@
1
+ {
2
+ "_format": "hh-sol-dbg-1",
3
+ "buildInfo": "../../../build-info/9069f70cfc4c7329462d894dfdd2740c.json"
4
+ }
@@ -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