@layerzerolabs/lz-evm-sdk-v2 2.0.12-tron-rc.2 → 2.0.12

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 (218) hide show
  1. package/artifacts/contracts/EndpointV2.sol/EndpointV2.json +2 -2
  2. package/artifacts/contracts/EndpointV2Alt.sol/EndpointV2Alt.json +2 -2
  3. package/artifacts/contracts/Executor.sol/Executor.json +2 -2
  4. package/artifacts/contracts/ExecutorFeeLib.sol/ExecutorFeeLib.json +2 -2
  5. package/artifacts/contracts/PriceFeed.sol/PriceFeed.json +2 -2
  6. package/artifacts/contracts/Treasury.sol/Treasury.json +2 -2
  7. package/artifacts/contracts/libs/AddressCast.sol/AddressCast.json +2 -2
  8. package/artifacts/contracts/libs/CalldataBytesLib.sol/CalldataBytesLib.json +2 -2
  9. package/artifacts/contracts/libs/Errors.sol/Errors.json +2 -2
  10. package/artifacts/contracts/libs/GUID.sol/GUID.json +2 -2
  11. package/artifacts/contracts/libs/SafeCall.sol/SafeCall.json +2 -2
  12. package/artifacts/contracts/libs/Transfer.sol/Transfer.json +2 -2
  13. package/artifacts/contracts/messagelib/BlockedMessageLib.sol/BlockedMessageLib.json +2 -2
  14. package/artifacts/contracts/messagelib/SimpleMessageLib.sol/SimpleMessageLib.json +2 -2
  15. package/artifacts/contracts/messagelib/libs/BitMaps.sol/BitMaps.json +2 -2
  16. package/artifacts/contracts/messagelib/libs/ExecutorOptions.sol/ExecutorOptions.json +2 -2
  17. package/artifacts/contracts/messagelib/libs/PacketV1Codec.sol/PacketV1Codec.json +2 -2
  18. package/artifacts/contracts/oapp/examples/OmniCounter.sol/MsgCodec.json +2 -2
  19. package/artifacts/contracts/oapp/examples/OmniCounter.sol/OmniCounter.json +2 -2
  20. package/artifacts/contracts/oapp/examples/OmniCounterPreCrime.sol/OmniCounterPreCrime.json +2 -2
  21. package/artifacts/contracts/oapp/libs/OptionsBuilder.sol/OptionsBuilder.json +2 -2
  22. package/artifacts/contracts/oft/OFT.sol/OFT.json +2 -2
  23. package/artifacts/contracts/oft/OFTAdapter.sol/OFTAdapter.json +2 -2
  24. package/artifacts/contracts/oft/libs/OFTComposeMsgCodec.sol/OFTComposeMsgCodec.json +2 -2
  25. package/artifacts/contracts/oft/libs/OFTMsgCodec.sol/OFTMsgCodec.json +2 -2
  26. package/artifacts/contracts/precrime/libs/Packet.sol/PacketDecoder.json +2 -2
  27. package/artifacts/contracts/uln/LzExecutor.sol/LzExecutor.json +5 -5
  28. package/artifacts/contracts/uln/dvn/DVN.sol/DVN.json +2 -2
  29. package/artifacts/contracts/uln/dvn/DVNFeeLib.sol/DVNFeeLib.json +2 -2
  30. package/artifacts/contracts/uln/dvn/adapters/CCIP/CCIPDVNAdapter.sol/CCIPDVNAdapter.json +2 -2
  31. package/artifacts/contracts/uln/dvn/adapters/CCIP/CCIPDVNAdapterFeeLib.sol/CCIPDVNAdapterFeeLib.json +2 -2
  32. package/artifacts/contracts/uln/dvn/adapters/DVNAdapterFeeLibBase.sol/DVNAdapterFeeLibBase.json +2 -2
  33. package/artifacts/contracts/uln/dvn/adapters/axelar/AxelarDVNAdapter.sol/AxelarDVNAdapter.json +2 -2
  34. package/artifacts/contracts/uln/dvn/adapters/axelar/AxelarDVNAdapterFeeLib.sol/AxelarDVNAdapterFeeLib.json +2 -2
  35. package/artifacts/contracts/uln/libs/DVNOptions.sol/DVNOptions.json +2 -2
  36. package/artifacts/contracts/uln/libs/UlnOptions.sol/UlnOptions.json +2 -2
  37. package/artifacts/contracts/uln/uln301/ReceiveUln301.sol/ReceiveUln301.json +2 -2
  38. package/artifacts/contracts/uln/uln301/SendUln301.sol/SendUln301.json +2 -2
  39. package/artifacts/contracts/uln/uln301/TreasuryFeeHandler.sol/TreasuryFeeHandler.json +2 -2
  40. package/artifacts/contracts/uln/uln302/ReceiveUln302.sol/ReceiveUln302.json +2 -2
  41. package/artifacts/contracts/uln/uln302/SendUln302.sol/SendUln302.json +2 -2
  42. package/deployments/{arbitrum-sandbox-local → bera-testnet}/DVN.json +76 -43
  43. package/deployments/{bsc-sandbox-local → bera-testnet}/DVNFeeLib.json +13 -13
  44. package/deployments/{arbitrum-sandbox-local → bera-testnet}/EndpointV2.json +114 -60
  45. package/deployments/{tron-sandbox-local → bera-testnet}/Executor.json +88 -105
  46. package/deployments/{bsc-sandbox-local → bera-testnet}/ExecutorFeeLib.json +13 -13
  47. package/deployments/{bsc-sandbox-local → bera-testnet}/ExecutorProxyAdmin.json +20 -20
  48. package/deployments/{bsc-sandbox-local → bera-testnet}/Executor_Implementation.json +7 -7
  49. package/deployments/{tron-sandbox-local → bera-testnet}/Executor_Proxy.json +79 -94
  50. package/deployments/bera-testnet/LzExecutor.json +332 -0
  51. package/deployments/bera-testnet/PriceFeed.json +35 -35
  52. package/deployments/bera-testnet/PriceFeedProxyAdmin.json +17 -17
  53. package/deployments/bera-testnet/PriceFeed_Implementation.json +6 -6
  54. package/deployments/bera-testnet/PriceFeed_Proxy.json +34 -34
  55. package/deployments/{bsc-sandbox-local → bera-testnet}/ReceiveUln301.json +15 -15
  56. package/deployments/{avalanche-sandbox-local → bera-testnet}/ReceiveUln302.json +18 -18
  57. package/deployments/{arbitrum-sandbox-local → bera-testnet}/SendUln301.json +17 -17
  58. package/deployments/{arbitrum-sandbox-local → bera-testnet}/SendUln302.json +14 -14
  59. package/deployments/{bsc-sandbox-local → bera-testnet}/Treasury.json +13 -13
  60. package/deployments/{avalanche-sandbox-local → bera-testnet}/TreasuryFeeHandler.json +8 -8
  61. package/deployments/ethereum-sandbox-local/BlockedMessageLib.json +90 -0
  62. package/deployments/ethereum-sandbox-local/DVN.json +5 -5
  63. package/deployments/ethereum-sandbox-local/DVNFeeLib.json +2 -2
  64. package/deployments/ethereum-sandbox-local/Endpoint.json +2355 -0
  65. package/deployments/ethereum-sandbox-local/EndpointV2.json +4 -4
  66. package/deployments/ethereum-sandbox-local/Executor.json +14 -14
  67. package/deployments/ethereum-sandbox-local/ExecutorFeeLib.json +2 -2
  68. package/deployments/ethereum-sandbox-local/ExecutorProxyAdmin.json +3 -3
  69. package/deployments/ethereum-sandbox-local/Executor_Implementation.json +1 -1
  70. package/deployments/ethereum-sandbox-local/Executor_Proxy.json +14 -14
  71. package/deployments/ethereum-sandbox-local/MultiSigOracle.json +1448 -0
  72. package/deployments/ethereum-sandbox-local/NonceContract.json +158 -0
  73. package/deployments/ethereum-sandbox-local/NonceContractMock.json +1 -1
  74. package/deployments/ethereum-sandbox-local/OmniCounter.json +1133 -0
  75. package/deployments/ethereum-sandbox-local/OmniCounterPreCrime.json +493 -0
  76. package/deployments/ethereum-sandbox-local/OmniCounterPreCrimeView.json +672 -0
  77. package/deployments/ethereum-sandbox-local/OmniCounterViewer.json +214 -0
  78. package/deployments/ethereum-sandbox-local/OmniCounterWithPreCrime.json +1646 -0
  79. package/deployments/{arbitrum-sandbox-local/Executor.json → ethereum-sandbox-local/Oracle.json} +400 -658
  80. package/deployments/ethereum-sandbox-local/OracleFeeLib.json +166 -0
  81. package/deployments/ethereum-sandbox-local/OracleProxyAdmin.json +272 -0
  82. package/deployments/ethereum-sandbox-local/Oracle_Implementation.json +1326 -0
  83. package/deployments/{bsc-sandbox-local/PriceFeed_Proxy.json → ethereum-sandbox-local/Oracle_Proxy.json} +96 -35
  84. package/deployments/ethereum-sandbox-local/PriceFeed.json +5 -5
  85. package/deployments/ethereum-sandbox-local/PriceFeedProxyAdmin.json +3 -3
  86. package/deployments/ethereum-sandbox-local/PriceFeed_Implementation.json +1 -1
  87. package/deployments/ethereum-sandbox-local/PriceFeed_Proxy.json +5 -5
  88. package/deployments/ethereum-sandbox-local/ReceiveUln301.json +2 -2
  89. package/deployments/ethereum-sandbox-local/ReceiveUln302.json +2 -2
  90. package/deployments/{tron-sandbox-local/PriceFeed.json → ethereum-sandbox-local/Relayer.json} +445 -339
  91. package/deployments/ethereum-sandbox-local/RelayerFeeLib.json +130 -0
  92. package/deployments/ethereum-sandbox-local/RelayerProxyAdmin.json +272 -0
  93. package/deployments/ethereum-sandbox-local/Relayer_Implementation.json +1014 -0
  94. package/deployments/{tron-sandbox-local/PriceFeed_Proxy.json → ethereum-sandbox-local/Relayer_Proxy.json} +64 -33
  95. package/deployments/ethereum-sandbox-local/SendUln301.json +2 -2
  96. package/deployments/ethereum-sandbox-local/SendUln302.json +2 -2
  97. package/deployments/ethereum-sandbox-local/SimpleMessageLib.json +2 -2
  98. package/deployments/ethereum-sandbox-local/Treasury.json +2 -2
  99. package/deployments/ethereum-sandbox-local/TreasuryFeeHandler.json +1 -1
  100. package/deployments/ethereum-sandbox-local/UlnConfig301.json +1003 -0
  101. package/deployments/ethereum-sandbox-local/UlnConfig302.json +1003 -0
  102. package/deployments/ethereum-sandbox-local/UltraLightNodeE302.json +1696 -0
  103. package/deployments/{bsc-sandbox-local → etherlink-testnet}/PriceFeed.json +34 -34
  104. package/deployments/{arbitrum-sandbox-local/ExecutorProxyAdmin.json → etherlink-testnet/PriceFeedProxyAdmin.json} +22 -22
  105. package/deployments/{arbitrum-sandbox-local → etherlink-testnet}/PriceFeed_Implementation.json +9 -9
  106. package/deployments/{avalanche-sandbox-local → etherlink-testnet}/PriceFeed_Proxy.json +32 -32
  107. package/deployments/{avalanche-sandbox-local → etherlink-testnet}/Treasury.json +15 -15
  108. package/deployments/polygon-sandbox-local/BlockedMessageLib.json +90 -0
  109. package/deployments/polygon-sandbox-local/DVN.json +5 -5
  110. package/deployments/polygon-sandbox-local/DVNFeeLib.json +2 -2
  111. package/deployments/polygon-sandbox-local/Endpoint.json +2355 -0
  112. package/deployments/polygon-sandbox-local/EndpointV2.json +4 -4
  113. package/deployments/polygon-sandbox-local/Executor.json +14 -14
  114. package/deployments/polygon-sandbox-local/ExecutorFeeLib.json +2 -2
  115. package/deployments/polygon-sandbox-local/ExecutorProxyAdmin.json +3 -3
  116. package/deployments/polygon-sandbox-local/Executor_Implementation.json +1 -1
  117. package/deployments/polygon-sandbox-local/Executor_Proxy.json +14 -14
  118. package/deployments/polygon-sandbox-local/MultiSigOracle.json +1448 -0
  119. package/deployments/polygon-sandbox-local/NonceContract.json +158 -0
  120. package/deployments/polygon-sandbox-local/NonceContractMock.json +1 -1
  121. package/deployments/polygon-sandbox-local/OmniCounter.json +1133 -0
  122. package/deployments/polygon-sandbox-local/OmniCounterPreCrime.json +493 -0
  123. package/deployments/polygon-sandbox-local/OmniCounterPreCrimeView.json +672 -0
  124. package/deployments/polygon-sandbox-local/OmniCounterViewer.json +214 -0
  125. package/deployments/polygon-sandbox-local/OmniCounterWithPreCrime.json +1646 -0
  126. package/deployments/{bsc-sandbox-local/Executor.json → polygon-sandbox-local/Oracle.json} +400 -658
  127. package/deployments/polygon-sandbox-local/OracleFeeLib.json +166 -0
  128. package/deployments/polygon-sandbox-local/OracleProxyAdmin.json +272 -0
  129. package/deployments/polygon-sandbox-local/Oracle_Implementation.json +1326 -0
  130. package/deployments/polygon-sandbox-local/Oracle_Proxy.json +305 -0
  131. package/deployments/polygon-sandbox-local/PriceFeed.json +5 -5
  132. package/deployments/polygon-sandbox-local/PriceFeedProxyAdmin.json +3 -3
  133. package/deployments/polygon-sandbox-local/PriceFeed_Implementation.json +1 -1
  134. package/deployments/polygon-sandbox-local/PriceFeed_Proxy.json +5 -5
  135. package/deployments/polygon-sandbox-local/ReceiveUln301.json +2 -2
  136. package/deployments/polygon-sandbox-local/ReceiveUln302.json +2 -2
  137. package/deployments/{arbitrum-sandbox-local/PriceFeed.json → polygon-sandbox-local/Relayer.json} +445 -339
  138. package/deployments/polygon-sandbox-local/RelayerFeeLib.json +130 -0
  139. package/deployments/polygon-sandbox-local/RelayerProxyAdmin.json +272 -0
  140. package/deployments/polygon-sandbox-local/Relayer_Implementation.json +1014 -0
  141. package/deployments/{arbitrum-sandbox-local/PriceFeed_Proxy.json → polygon-sandbox-local/Relayer_Proxy.json} +64 -33
  142. package/deployments/polygon-sandbox-local/SendUln301.json +2 -2
  143. package/deployments/polygon-sandbox-local/SendUln302.json +2 -2
  144. package/deployments/polygon-sandbox-local/SimpleMessageLib.json +2 -2
  145. package/deployments/polygon-sandbox-local/Treasury.json +2 -2
  146. package/deployments/polygon-sandbox-local/TreasuryFeeHandler.json +1 -1
  147. package/deployments/polygon-sandbox-local/UlnConfig301.json +1003 -0
  148. package/deployments/polygon-sandbox-local/UlnConfig302.json +1003 -0
  149. package/deployments/polygon-sandbox-local/UltraLightNodeE302.json +1696 -0
  150. package/dist/{index-cijKSBLK.d.cts → index-pO8kCANF.d.mts} +41 -41
  151. package/dist/{index-cijKSBLK.d.ts → index-pO8kCANF.d.ts} +41 -41
  152. package/dist/index.browser.cjs +34 -34
  153. package/dist/index.browser.cjs.map +1 -1
  154. package/dist/{index.browser.d.cts → index.browser.d.mts} +1 -1
  155. package/dist/index.browser.d.ts +1 -1
  156. package/dist/index.browser.mjs +34 -34
  157. package/dist/index.browser.mjs.map +1 -1
  158. package/dist/index.cjs +34 -34
  159. package/dist/index.cjs.map +1 -1
  160. package/dist/{index.d.cts → index.d.mts} +1 -1
  161. package/dist/index.d.ts +1 -1
  162. package/dist/index.mjs +34 -34
  163. package/dist/index.mjs.map +1 -1
  164. package/package.json +15 -14
  165. package/deployments/arbitrum-sandbox-local/DVNFeeLib.json +0 -387
  166. package/deployments/arbitrum-sandbox-local/ExecutorFeeLib.json +0 -407
  167. package/deployments/arbitrum-sandbox-local/Executor_Implementation.json +0 -1591
  168. package/deployments/arbitrum-sandbox-local/Executor_Proxy.json +0 -380
  169. package/deployments/arbitrum-sandbox-local/NonceContractMock.json +0 -163
  170. package/deployments/arbitrum-sandbox-local/PriceFeedProxyAdmin.json +0 -283
  171. package/deployments/arbitrum-sandbox-local/ReceiveUln301.json +0 -1264
  172. package/deployments/arbitrum-sandbox-local/ReceiveUln302.json +0 -954
  173. package/deployments/arbitrum-sandbox-local/SimpleMessageLib.json +0 -708
  174. package/deployments/arbitrum-sandbox-local/Treasury.json +0 -412
  175. package/deployments/arbitrum-sandbox-local/TreasuryFeeHandler.json +0 -125
  176. package/deployments/avalanche-sandbox-local/DVN.json +0 -1896
  177. package/deployments/avalanche-sandbox-local/DVNFeeLib.json +0 -387
  178. package/deployments/avalanche-sandbox-local/EndpointV2.json +0 -2955
  179. package/deployments/avalanche-sandbox-local/Executor.json +0 -1549
  180. package/deployments/avalanche-sandbox-local/ExecutorFeeLib.json +0 -407
  181. package/deployments/avalanche-sandbox-local/ExecutorProxyAdmin.json +0 -283
  182. package/deployments/avalanche-sandbox-local/Executor_Implementation.json +0 -1591
  183. package/deployments/avalanche-sandbox-local/Executor_Proxy.json +0 -380
  184. package/deployments/avalanche-sandbox-local/NonceContractMock.json +0 -163
  185. package/deployments/avalanche-sandbox-local/PriceFeed.json +0 -890
  186. package/deployments/avalanche-sandbox-local/PriceFeedProxyAdmin.json +0 -283
  187. package/deployments/avalanche-sandbox-local/PriceFeed_Implementation.json +0 -912
  188. package/deployments/avalanche-sandbox-local/ReceiveUln301.json +0 -1264
  189. package/deployments/avalanche-sandbox-local/SendUln301.json +0 -1569
  190. package/deployments/avalanche-sandbox-local/SendUln302.json +0 -1527
  191. package/deployments/avalanche-sandbox-local/SimpleMessageLib.json +0 -708
  192. package/deployments/bsc-sandbox-local/DVN.json +0 -1896
  193. package/deployments/bsc-sandbox-local/EndpointV2.json +0 -2955
  194. package/deployments/bsc-sandbox-local/Executor_Proxy.json +0 -380
  195. package/deployments/bsc-sandbox-local/NonceContractMock.json +0 -163
  196. package/deployments/bsc-sandbox-local/PriceFeedProxyAdmin.json +0 -283
  197. package/deployments/bsc-sandbox-local/PriceFeed_Implementation.json +0 -912
  198. package/deployments/bsc-sandbox-local/ReceiveUln302.json +0 -954
  199. package/deployments/bsc-sandbox-local/SendUln301.json +0 -1569
  200. package/deployments/bsc-sandbox-local/SendUln302.json +0 -1527
  201. package/deployments/bsc-sandbox-local/SimpleMessageLib.json +0 -708
  202. package/deployments/bsc-sandbox-local/TreasuryFeeHandler.json +0 -125
  203. package/deployments/tron-sandbox-local/DVN.json +0 -1896
  204. package/deployments/tron-sandbox-local/DVNFeeLib.json +0 -387
  205. package/deployments/tron-sandbox-local/EndpointV2.json +0 -2955
  206. package/deployments/tron-sandbox-local/ExecutorFeeLib.json +0 -407
  207. package/deployments/tron-sandbox-local/ExecutorProxyAdmin.json +0 -283
  208. package/deployments/tron-sandbox-local/Executor_Implementation.json +0 -1591
  209. package/deployments/tron-sandbox-local/NonceContractMock.json +0 -163
  210. package/deployments/tron-sandbox-local/PriceFeedProxyAdmin.json +0 -283
  211. package/deployments/tron-sandbox-local/PriceFeed_Implementation.json +0 -912
  212. package/deployments/tron-sandbox-local/ReceiveUln301.json +0 -1264
  213. package/deployments/tron-sandbox-local/ReceiveUln302.json +0 -954
  214. package/deployments/tron-sandbox-local/SendUln301.json +0 -1569
  215. package/deployments/tron-sandbox-local/SendUln302.json +0 -1527
  216. package/deployments/tron-sandbox-local/SimpleMessageLib.json +0 -708
  217. package/deployments/tron-sandbox-local/Treasury.json +0 -412
  218. package/deployments/tron-sandbox-local/TreasuryFeeHandler.json +0 -125
@@ -1,1264 +0,0 @@
1
- {
2
- "address": "0x381445710b5e73d34aF196c53A3D5cDa58EDBf7A",
3
- "abi": [
4
- {
5
- "inputs": [
6
- {
7
- "internalType": "address",
8
- "name": "_endpoint",
9
- "type": "address"
10
- },
11
- {
12
- "internalType": "uint32",
13
- "name": "_localEid",
14
- "type": "uint32"
15
- }
16
- ],
17
- "stateMutability": "nonpayable",
18
- "type": "constructor"
19
- },
20
- {
21
- "inputs": [],
22
- "name": "AddressSizeAlreadySet",
23
- "type": "error"
24
- },
25
- {
26
- "inputs": [],
27
- "name": "AtLeastOneDVN",
28
- "type": "error"
29
- },
30
- {
31
- "inputs": [],
32
- "name": "InvalidAddressSize",
33
- "type": "error"
34
- },
35
- {
36
- "inputs": [
37
- {
38
- "internalType": "uint256",
39
- "name": "configType",
40
- "type": "uint256"
41
- }
42
- ],
43
- "name": "InvalidConfigType",
44
- "type": "error"
45
- },
46
- {
47
- "inputs": [],
48
- "name": "InvalidConfirmations",
49
- "type": "error"
50
- },
51
- {
52
- "inputs": [],
53
- "name": "InvalidEid",
54
- "type": "error"
55
- },
56
- {
57
- "inputs": [],
58
- "name": "InvalidExecutor",
59
- "type": "error"
60
- },
61
- {
62
- "inputs": [],
63
- "name": "InvalidOptionalDVNCount",
64
- "type": "error"
65
- },
66
- {
67
- "inputs": [],
68
- "name": "InvalidOptionalDVNThreshold",
69
- "type": "error"
70
- },
71
- {
72
- "inputs": [],
73
- "name": "InvalidPacketHeader",
74
- "type": "error"
75
- },
76
- {
77
- "inputs": [],
78
- "name": "InvalidPacketVersion",
79
- "type": "error"
80
- },
81
- {
82
- "inputs": [],
83
- "name": "InvalidRequiredDVNCount",
84
- "type": "error"
85
- },
86
- {
87
- "inputs": [],
88
- "name": "InvalidSizeForAddress",
89
- "type": "error"
90
- },
91
- {
92
- "inputs": [],
93
- "name": "OnlyEndpoint",
94
- "type": "error"
95
- },
96
- {
97
- "inputs": [],
98
- "name": "OnlyExecutor",
99
- "type": "error"
100
- },
101
- {
102
- "inputs": [],
103
- "name": "Unsorted",
104
- "type": "error"
105
- },
106
- {
107
- "inputs": [
108
- {
109
- "internalType": "uint32",
110
- "name": "eid",
111
- "type": "uint32"
112
- }
113
- ],
114
- "name": "UnsupportedEid",
115
- "type": "error"
116
- },
117
- {
118
- "inputs": [],
119
- "name": "Verifying",
120
- "type": "error"
121
- },
122
- {
123
- "anonymous": false,
124
- "inputs": [
125
- {
126
- "indexed": false,
127
- "internalType": "uint16",
128
- "name": "eid",
129
- "type": "uint16"
130
- },
131
- {
132
- "indexed": false,
133
- "internalType": "uint256",
134
- "name": "size",
135
- "type": "uint256"
136
- }
137
- ],
138
- "name": "AddressSizeSet",
139
- "type": "event"
140
- },
141
- {
142
- "anonymous": false,
143
- "inputs": [
144
- {
145
- "components": [
146
- {
147
- "internalType": "uint32",
148
- "name": "eid",
149
- "type": "uint32"
150
- },
151
- {
152
- "internalType": "address",
153
- "name": "executor",
154
- "type": "address"
155
- }
156
- ],
157
- "indexed": false,
158
- "internalType": "struct SetDefaultExecutorParam[]",
159
- "name": "params",
160
- "type": "tuple[]"
161
- }
162
- ],
163
- "name": "DefaultExecutorsSet",
164
- "type": "event"
165
- },
166
- {
167
- "anonymous": false,
168
- "inputs": [
169
- {
170
- "components": [
171
- {
172
- "internalType": "uint32",
173
- "name": "eid",
174
- "type": "uint32"
175
- },
176
- {
177
- "components": [
178
- {
179
- "internalType": "uint64",
180
- "name": "confirmations",
181
- "type": "uint64"
182
- },
183
- {
184
- "internalType": "uint8",
185
- "name": "requiredDVNCount",
186
- "type": "uint8"
187
- },
188
- {
189
- "internalType": "uint8",
190
- "name": "optionalDVNCount",
191
- "type": "uint8"
192
- },
193
- {
194
- "internalType": "uint8",
195
- "name": "optionalDVNThreshold",
196
- "type": "uint8"
197
- },
198
- {
199
- "internalType": "address[]",
200
- "name": "requiredDVNs",
201
- "type": "address[]"
202
- },
203
- {
204
- "internalType": "address[]",
205
- "name": "optionalDVNs",
206
- "type": "address[]"
207
- }
208
- ],
209
- "internalType": "struct UlnConfig",
210
- "name": "config",
211
- "type": "tuple"
212
- }
213
- ],
214
- "indexed": false,
215
- "internalType": "struct SetDefaultUlnConfigParam[]",
216
- "name": "params",
217
- "type": "tuple[]"
218
- }
219
- ],
220
- "name": "DefaultUlnConfigsSet",
221
- "type": "event"
222
- },
223
- {
224
- "anonymous": false,
225
- "inputs": [
226
- {
227
- "indexed": false,
228
- "internalType": "address",
229
- "name": "oapp",
230
- "type": "address"
231
- },
232
- {
233
- "indexed": false,
234
- "internalType": "uint32",
235
- "name": "eid",
236
- "type": "uint32"
237
- },
238
- {
239
- "indexed": false,
240
- "internalType": "address",
241
- "name": "executor",
242
- "type": "address"
243
- }
244
- ],
245
- "name": "ExecutorSet",
246
- "type": "event"
247
- },
248
- {
249
- "anonymous": false,
250
- "inputs": [
251
- {
252
- "indexed": true,
253
- "internalType": "uint16",
254
- "name": "srcChainId",
255
- "type": "uint16"
256
- },
257
- {
258
- "indexed": false,
259
- "internalType": "bytes32",
260
- "name": "srcAddress",
261
- "type": "bytes32"
262
- },
263
- {
264
- "indexed": true,
265
- "internalType": "address",
266
- "name": "dstAddress",
267
- "type": "address"
268
- },
269
- {
270
- "indexed": false,
271
- "internalType": "uint64",
272
- "name": "nonce",
273
- "type": "uint64"
274
- },
275
- {
276
- "indexed": false,
277
- "internalType": "bytes32",
278
- "name": "payloadHash",
279
- "type": "bytes32"
280
- }
281
- ],
282
- "name": "InvalidDst",
283
- "type": "event"
284
- },
285
- {
286
- "anonymous": false,
287
- "inputs": [
288
- {
289
- "indexed": true,
290
- "internalType": "address",
291
- "name": "previousOwner",
292
- "type": "address"
293
- },
294
- {
295
- "indexed": true,
296
- "internalType": "address",
297
- "name": "newOwner",
298
- "type": "address"
299
- }
300
- ],
301
- "name": "OwnershipTransferred",
302
- "type": "event"
303
- },
304
- {
305
- "anonymous": false,
306
- "inputs": [
307
- {
308
- "components": [
309
- {
310
- "internalType": "uint32",
311
- "name": "srcEid",
312
- "type": "uint32"
313
- },
314
- {
315
- "internalType": "bytes32",
316
- "name": "sender",
317
- "type": "bytes32"
318
- },
319
- {
320
- "internalType": "uint64",
321
- "name": "nonce",
322
- "type": "uint64"
323
- }
324
- ],
325
- "indexed": false,
326
- "internalType": "struct Origin",
327
- "name": "origin",
328
- "type": "tuple"
329
- },
330
- {
331
- "indexed": false,
332
- "internalType": "address",
333
- "name": "receiver",
334
- "type": "address"
335
- }
336
- ],
337
- "name": "PacketDelivered",
338
- "type": "event"
339
- },
340
- {
341
- "anonymous": false,
342
- "inputs": [
343
- {
344
- "indexed": false,
345
- "internalType": "address",
346
- "name": "dvn",
347
- "type": "address"
348
- },
349
- {
350
- "indexed": false,
351
- "internalType": "bytes",
352
- "name": "header",
353
- "type": "bytes"
354
- },
355
- {
356
- "indexed": false,
357
- "internalType": "uint256",
358
- "name": "confirmations",
359
- "type": "uint256"
360
- },
361
- {
362
- "indexed": false,
363
- "internalType": "bytes32",
364
- "name": "proofHash",
365
- "type": "bytes32"
366
- }
367
- ],
368
- "name": "PayloadVerified",
369
- "type": "event"
370
- },
371
- {
372
- "anonymous": false,
373
- "inputs": [
374
- {
375
- "indexed": false,
376
- "internalType": "address",
377
- "name": "oapp",
378
- "type": "address"
379
- },
380
- {
381
- "indexed": false,
382
- "internalType": "uint32",
383
- "name": "eid",
384
- "type": "uint32"
385
- },
386
- {
387
- "components": [
388
- {
389
- "internalType": "uint64",
390
- "name": "confirmations",
391
- "type": "uint64"
392
- },
393
- {
394
- "internalType": "uint8",
395
- "name": "requiredDVNCount",
396
- "type": "uint8"
397
- },
398
- {
399
- "internalType": "uint8",
400
- "name": "optionalDVNCount",
401
- "type": "uint8"
402
- },
403
- {
404
- "internalType": "uint8",
405
- "name": "optionalDVNThreshold",
406
- "type": "uint8"
407
- },
408
- {
409
- "internalType": "address[]",
410
- "name": "requiredDVNs",
411
- "type": "address[]"
412
- },
413
- {
414
- "internalType": "address[]",
415
- "name": "optionalDVNs",
416
- "type": "address[]"
417
- }
418
- ],
419
- "indexed": false,
420
- "internalType": "struct UlnConfig",
421
- "name": "config",
422
- "type": "tuple"
423
- }
424
- ],
425
- "name": "UlnConfigSet",
426
- "type": "event"
427
- },
428
- {
429
- "inputs": [
430
- {
431
- "internalType": "uint32",
432
- "name": "dstEid",
433
- "type": "uint32"
434
- }
435
- ],
436
- "name": "addressSizes",
437
- "outputs": [
438
- {
439
- "internalType": "uint256",
440
- "name": "size",
441
- "type": "uint256"
442
- }
443
- ],
444
- "stateMutability": "view",
445
- "type": "function"
446
- },
447
- {
448
- "inputs": [
449
- {
450
- "internalType": "bytes",
451
- "name": "_packet",
452
- "type": "bytes"
453
- },
454
- {
455
- "internalType": "uint256",
456
- "name": "_gasLimit",
457
- "type": "uint256"
458
- }
459
- ],
460
- "name": "commitVerification",
461
- "outputs": [],
462
- "stateMutability": "nonpayable",
463
- "type": "function"
464
- },
465
- {
466
- "inputs": [
467
- {
468
- "internalType": "uint32",
469
- "name": "eid",
470
- "type": "uint32"
471
- }
472
- ],
473
- "name": "defaultExecutors",
474
- "outputs": [
475
- {
476
- "internalType": "address",
477
- "name": "executor",
478
- "type": "address"
479
- }
480
- ],
481
- "stateMutability": "view",
482
- "type": "function"
483
- },
484
- {
485
- "inputs": [
486
- {
487
- "internalType": "bytes",
488
- "name": "_packetHeader",
489
- "type": "bytes"
490
- },
491
- {
492
- "internalType": "bytes32",
493
- "name": "_payloadHash",
494
- "type": "bytes32"
495
- }
496
- ],
497
- "name": "executable",
498
- "outputs": [
499
- {
500
- "internalType": "enum ExecutionState",
501
- "name": "",
502
- "type": "uint8"
503
- }
504
- ],
505
- "stateMutability": "view",
506
- "type": "function"
507
- },
508
- {
509
- "inputs": [
510
- {
511
- "internalType": "address",
512
- "name": "oapp",
513
- "type": "address"
514
- },
515
- {
516
- "internalType": "uint32",
517
- "name": "eid",
518
- "type": "uint32"
519
- }
520
- ],
521
- "name": "executors",
522
- "outputs": [
523
- {
524
- "internalType": "address",
525
- "name": "executor",
526
- "type": "address"
527
- }
528
- ],
529
- "stateMutability": "view",
530
- "type": "function"
531
- },
532
- {
533
- "inputs": [
534
- {
535
- "internalType": "address",
536
- "name": "_oapp",
537
- "type": "address"
538
- },
539
- {
540
- "internalType": "uint32",
541
- "name": "_remoteEid",
542
- "type": "uint32"
543
- }
544
- ],
545
- "name": "getAppUlnConfig",
546
- "outputs": [
547
- {
548
- "components": [
549
- {
550
- "internalType": "uint64",
551
- "name": "confirmations",
552
- "type": "uint64"
553
- },
554
- {
555
- "internalType": "uint8",
556
- "name": "requiredDVNCount",
557
- "type": "uint8"
558
- },
559
- {
560
- "internalType": "uint8",
561
- "name": "optionalDVNCount",
562
- "type": "uint8"
563
- },
564
- {
565
- "internalType": "uint8",
566
- "name": "optionalDVNThreshold",
567
- "type": "uint8"
568
- },
569
- {
570
- "internalType": "address[]",
571
- "name": "requiredDVNs",
572
- "type": "address[]"
573
- },
574
- {
575
- "internalType": "address[]",
576
- "name": "optionalDVNs",
577
- "type": "address[]"
578
- }
579
- ],
580
- "internalType": "struct UlnConfig",
581
- "name": "",
582
- "type": "tuple"
583
- }
584
- ],
585
- "stateMutability": "view",
586
- "type": "function"
587
- },
588
- {
589
- "inputs": [
590
- {
591
- "internalType": "uint16",
592
- "name": "_eid",
593
- "type": "uint16"
594
- },
595
- {
596
- "internalType": "address",
597
- "name": "_oapp",
598
- "type": "address"
599
- },
600
- {
601
- "internalType": "uint256",
602
- "name": "_configType",
603
- "type": "uint256"
604
- }
605
- ],
606
- "name": "getConfig",
607
- "outputs": [
608
- {
609
- "internalType": "bytes",
610
- "name": "",
611
- "type": "bytes"
612
- }
613
- ],
614
- "stateMutability": "view",
615
- "type": "function"
616
- },
617
- {
618
- "inputs": [
619
- {
620
- "internalType": "address",
621
- "name": "_oapp",
622
- "type": "address"
623
- },
624
- {
625
- "internalType": "uint32",
626
- "name": "_remoteEid",
627
- "type": "uint32"
628
- }
629
- ],
630
- "name": "getExecutor",
631
- "outputs": [
632
- {
633
- "internalType": "address",
634
- "name": "",
635
- "type": "address"
636
- }
637
- ],
638
- "stateMutability": "view",
639
- "type": "function"
640
- },
641
- {
642
- "inputs": [
643
- {
644
- "internalType": "address",
645
- "name": "_oapp",
646
- "type": "address"
647
- },
648
- {
649
- "internalType": "uint32",
650
- "name": "_remoteEid",
651
- "type": "uint32"
652
- }
653
- ],
654
- "name": "getUlnConfig",
655
- "outputs": [
656
- {
657
- "components": [
658
- {
659
- "internalType": "uint64",
660
- "name": "confirmations",
661
- "type": "uint64"
662
- },
663
- {
664
- "internalType": "uint8",
665
- "name": "requiredDVNCount",
666
- "type": "uint8"
667
- },
668
- {
669
- "internalType": "uint8",
670
- "name": "optionalDVNCount",
671
- "type": "uint8"
672
- },
673
- {
674
- "internalType": "uint8",
675
- "name": "optionalDVNThreshold",
676
- "type": "uint8"
677
- },
678
- {
679
- "internalType": "address[]",
680
- "name": "requiredDVNs",
681
- "type": "address[]"
682
- },
683
- {
684
- "internalType": "address[]",
685
- "name": "optionalDVNs",
686
- "type": "address[]"
687
- }
688
- ],
689
- "internalType": "struct UlnConfig",
690
- "name": "rtnConfig",
691
- "type": "tuple"
692
- }
693
- ],
694
- "stateMutability": "view",
695
- "type": "function"
696
- },
697
- {
698
- "inputs": [
699
- {
700
- "internalType": "bytes32",
701
- "name": "headerHash",
702
- "type": "bytes32"
703
- },
704
- {
705
- "internalType": "bytes32",
706
- "name": "payloadHash",
707
- "type": "bytes32"
708
- },
709
- {
710
- "internalType": "address",
711
- "name": "dvn",
712
- "type": "address"
713
- }
714
- ],
715
- "name": "hashLookup",
716
- "outputs": [
717
- {
718
- "internalType": "bool",
719
- "name": "submitted",
720
- "type": "bool"
721
- },
722
- {
723
- "internalType": "uint64",
724
- "name": "confirmations",
725
- "type": "uint64"
726
- }
727
- ],
728
- "stateMutability": "view",
729
- "type": "function"
730
- },
731
- {
732
- "inputs": [],
733
- "name": "owner",
734
- "outputs": [
735
- {
736
- "internalType": "address",
737
- "name": "",
738
- "type": "address"
739
- }
740
- ],
741
- "stateMutability": "view",
742
- "type": "function"
743
- },
744
- {
745
- "inputs": [],
746
- "name": "renounceOwnership",
747
- "outputs": [],
748
- "stateMutability": "nonpayable",
749
- "type": "function"
750
- },
751
- {
752
- "inputs": [
753
- {
754
- "internalType": "uint16",
755
- "name": "_eid",
756
- "type": "uint16"
757
- },
758
- {
759
- "internalType": "uint256",
760
- "name": "_size",
761
- "type": "uint256"
762
- }
763
- ],
764
- "name": "setAddressSize",
765
- "outputs": [],
766
- "stateMutability": "nonpayable",
767
- "type": "function"
768
- },
769
- {
770
- "inputs": [
771
- {
772
- "internalType": "uint16",
773
- "name": "_eid",
774
- "type": "uint16"
775
- },
776
- {
777
- "internalType": "address",
778
- "name": "_oapp",
779
- "type": "address"
780
- },
781
- {
782
- "internalType": "uint256",
783
- "name": "_configType",
784
- "type": "uint256"
785
- },
786
- {
787
- "internalType": "bytes",
788
- "name": "_config",
789
- "type": "bytes"
790
- }
791
- ],
792
- "name": "setConfig",
793
- "outputs": [],
794
- "stateMutability": "nonpayable",
795
- "type": "function"
796
- },
797
- {
798
- "inputs": [
799
- {
800
- "components": [
801
- {
802
- "internalType": "uint32",
803
- "name": "eid",
804
- "type": "uint32"
805
- },
806
- {
807
- "internalType": "address",
808
- "name": "executor",
809
- "type": "address"
810
- }
811
- ],
812
- "internalType": "struct SetDefaultExecutorParam[]",
813
- "name": "_params",
814
- "type": "tuple[]"
815
- }
816
- ],
817
- "name": "setDefaultExecutors",
818
- "outputs": [],
819
- "stateMutability": "nonpayable",
820
- "type": "function"
821
- },
822
- {
823
- "inputs": [
824
- {
825
- "components": [
826
- {
827
- "internalType": "uint32",
828
- "name": "eid",
829
- "type": "uint32"
830
- },
831
- {
832
- "components": [
833
- {
834
- "internalType": "uint64",
835
- "name": "confirmations",
836
- "type": "uint64"
837
- },
838
- {
839
- "internalType": "uint8",
840
- "name": "requiredDVNCount",
841
- "type": "uint8"
842
- },
843
- {
844
- "internalType": "uint8",
845
- "name": "optionalDVNCount",
846
- "type": "uint8"
847
- },
848
- {
849
- "internalType": "uint8",
850
- "name": "optionalDVNThreshold",
851
- "type": "uint8"
852
- },
853
- {
854
- "internalType": "address[]",
855
- "name": "requiredDVNs",
856
- "type": "address[]"
857
- },
858
- {
859
- "internalType": "address[]",
860
- "name": "optionalDVNs",
861
- "type": "address[]"
862
- }
863
- ],
864
- "internalType": "struct UlnConfig",
865
- "name": "config",
866
- "type": "tuple"
867
- }
868
- ],
869
- "internalType": "struct SetDefaultUlnConfigParam[]",
870
- "name": "_params",
871
- "type": "tuple[]"
872
- }
873
- ],
874
- "name": "setDefaultUlnConfigs",
875
- "outputs": [],
876
- "stateMutability": "nonpayable",
877
- "type": "function"
878
- },
879
- {
880
- "inputs": [
881
- {
882
- "internalType": "address",
883
- "name": "newOwner",
884
- "type": "address"
885
- }
886
- ],
887
- "name": "transferOwnership",
888
- "outputs": [],
889
- "stateMutability": "nonpayable",
890
- "type": "function"
891
- },
892
- {
893
- "inputs": [
894
- {
895
- "internalType": "bytes",
896
- "name": "_packetHeader",
897
- "type": "bytes"
898
- },
899
- {
900
- "internalType": "bytes32",
901
- "name": "_payloadHash",
902
- "type": "bytes32"
903
- }
904
- ],
905
- "name": "verifiable",
906
- "outputs": [
907
- {
908
- "internalType": "enum VerificationState",
909
- "name": "",
910
- "type": "uint8"
911
- }
912
- ],
913
- "stateMutability": "view",
914
- "type": "function"
915
- },
916
- {
917
- "inputs": [
918
- {
919
- "internalType": "bytes",
920
- "name": "_packetHeader",
921
- "type": "bytes"
922
- },
923
- {
924
- "internalType": "bytes32",
925
- "name": "_payloadHash",
926
- "type": "bytes32"
927
- },
928
- {
929
- "internalType": "uint64",
930
- "name": "_confirmations",
931
- "type": "uint64"
932
- }
933
- ],
934
- "name": "verify",
935
- "outputs": [],
936
- "stateMutability": "nonpayable",
937
- "type": "function"
938
- },
939
- {
940
- "inputs": [],
941
- "name": "version",
942
- "outputs": [
943
- {
944
- "internalType": "uint64",
945
- "name": "major",
946
- "type": "uint64"
947
- },
948
- {
949
- "internalType": "uint8",
950
- "name": "minor",
951
- "type": "uint8"
952
- },
953
- {
954
- "internalType": "uint8",
955
- "name": "endpointVersion",
956
- "type": "uint8"
957
- }
958
- ],
959
- "stateMutability": "pure",
960
- "type": "function"
961
- }
962
- ],
963
- "transactionHash": "0x17f772a26948e1dc82b2ddfe5d81e263d8b8c7038d25c216f17d52ab1489fcbc",
964
- "receipt": {
965
- "to": null,
966
- "from": "0x70997970C51812dc3A010C7d01b50e0d17dc79C8",
967
- "contractAddress": "0x381445710b5e73d34aF196c53A3D5cDa58EDBf7A",
968
- "transactionIndex": 0,
969
- "gasUsed": "2987436",
970
- "logsBloom": "0x00000000000000000002000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000001000000000000000000000000000000000800020000000000000000000800000000000000000000000000000000400000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000001000000000000000000000000000000",
971
- "blockHash": "0xb2f8ee799d7364719923d8426d954c8306c78b44da30483318ae91e80862bd06",
972
- "transactionHash": "0x17f772a26948e1dc82b2ddfe5d81e263d8b8c7038d25c216f17d52ab1489fcbc",
973
- "logs": [
974
- {
975
- "transactionIndex": 0,
976
- "blockNumber": 43,
977
- "transactionHash": "0x17f772a26948e1dc82b2ddfe5d81e263d8b8c7038d25c216f17d52ab1489fcbc",
978
- "address": "0x381445710b5e73d34aF196c53A3D5cDa58EDBf7A",
979
- "topics": [
980
- "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0",
981
- "0x0000000000000000000000000000000000000000000000000000000000000000",
982
- "0x00000000000000000000000070997970c51812dc3a010c7d01b50e0d17dc79c8"
983
- ],
984
- "data": "0x",
985
- "logIndex": 0,
986
- "blockHash": "0xb2f8ee799d7364719923d8426d954c8306c78b44da30483318ae91e80862bd06"
987
- }
988
- ],
989
- "blockNumber": 43,
990
- "cumulativeGasUsed": "2987436",
991
- "status": 1,
992
- "byzantium": true
993
- },
994
- "args": [
995
- "0x8464135c8F25Da09e49BC8782676a84730C318bC",
996
- 20110
997
- ],
998
- "numDeployments": 1,
999
- "solcInputHash": "9a77f541806fd95ff35b8613e526dae5",
1000
- "bytecode": "0x60c06040523480156200001157600080fd5b506040516200361c3803806200361c8339810160408190526200003491620000b2565b6001600160a01b03821660805263ffffffff811660a0528181620000583362000062565b5050505062000104565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60008060408385031215620000c657600080fd5b82516001600160a01b0381168114620000de57600080fd5b602084015190925063ffffffff81168114620000f957600080fd5b809150509250929050565b60805160a0516134dd6200013f60003960008181610e97015261111b015260008181610f9a015281816112bd01526120e101526134dd6000f3fe608060405234801561001057600080fd5b506004361061016c5760003560e01c806354fd4d50116100cd5780639653a70411610081578063e65106f811610066578063e65106f8146103d2578063f2fde38b146103e5578063f8e1734c146103f857600080fd5b80639653a7041461037e57806398678a111461039157600080fd5b8063715018a6116100b2578063715018a6146103455780637401fccc1461034d5780638da5cb5b1461036057600080fd5b806354fd4d50146103125780636d26e5d01461033257600080fd5b806339e3f938116101245780633c782a52116101095780633c782a521461027a57806343ea4fa9146102df57806352d2871f146102f257600080fd5b806339e3f9381461024757806339e928a81461026757600080fd5b806327d12cd91161015557806327d12cd9146101b957806329460b0b146101d95780632fed39ae146101ec57600080fd5b80630223536e146101715780630f8355c014610186575b600080fd5b61018461017f366004612604565b61040b565b005b6101a6610194366004612677565b60036020526000908152604090205481565b6040519081526020015b60405180910390f35b6101cc6101c7366004612692565b61041d565b6040516101b09190612744565b6101846101e7366004612757565b610454565b6102226101fa366004612677565b60056020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101b0565b61025a6102553660046127ee565b610639565b6040516101b091906128e7565b6101846102753660046128fa565b6107db565b6102bf61028836600461295d565b600260209081526000938452604080852082529284528284209052825290205460ff811690610100900467ffffffffffffffff1682565b60408051921515835267ffffffffffffffff9091166020830152016101b0565b61025a6102ed3660046127ee565b610936565b6103056103003660046129a8565b610cf0565b6040516101b09190612a55565b6040805160038152600060208201526001918101919091526060016101b0565b610184610340366004612a68565b610da1565b610184610e7a565b6101cc61035b366004612692565b610e8e565b60005473ffffffffffffffffffffffffffffffffffffffff16610222565b61022261038c3660046127ee565b611088565b61022261039f3660046127ee565b600460209081526000928352604080842090915290825290205473ffffffffffffffffffffffffffffffffffffffff1681565b6101846103e0366004612692565b611103565b6101846103f3366004612a92565b611204565b610184610406366004612aaf565b6112bb565b610417848484846113bc565b50505050565b60008061042b858585610e8e565b600281111561043c5761043c6126de565b036104495750600061044d565b5060025b9392505050565b61045c6114d0565b60005b818110156105fb573683838381811061047a5761047a612b20565b905060200281019061048c9190612b4f565b905060ff61049d6020830183612b8d565b6104ae906040810190602001612bd2565b60ff16036104e8576040517f1b66804100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60ff6104f76020830183612b8d565b610508906060810190604001612bd2565b60ff1603610542576040517f05f7ab6200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b67ffffffffffffffff6105586020830183612b8d565b610566906020810190612bed565b67ffffffffffffffff16036105a7576040517f8f6ae8f800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6105c56105b76020830183612b8d565b6105c090612dda565b611551565b6105f260006105d76020840184612677565b6105e46020850185612b8d565b6105ed90612dda565b6115a2565b5060010161045f565b507faaf3aaa0c11056e86ac56eb653e25b005ca1a7d4dcd21ba24647f7ab63f3b560828260405161062d929190612e98565b60405180910390a15050565b6040805160c0810182526000808252602082018190529181018290526060808201929092526080810182905260a081019190915273ffffffffffffffffffffffffffffffffffffffff8316600090815260016020818152604080842063ffffffff87168552825292839020835160c081018552815467ffffffffffffffff8116825260ff680100000000000000008204811683860152690100000000000000000082048116838801526a0100000000000000000000909104166060820152928101805485518185028101850190965280865293949193608086019383018282801561075a57602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff16815260019091019060200180831161072f575b50505050508152602001600282018054806020026020016040519081016040528092919081815260200182805480156107c957602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff16815260019091019060200180831161079e575b50505050508152505090505b92915050565b6107e36114d0565b60005b81811015610904573683838381811061080157610801612b20565b9050604002019050600073ffffffffffffffffffffffffffffffffffffffff168160200160208101906108349190612a92565b73ffffffffffffffffffffffffffffffffffffffff1603610881576040517f710c949700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6108916040820160208301612a92565b600560006108a26020850185612677565b63ffffffff168152602081019190915260400160002080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055506001016107e6565b507f2a2676897ce6724d11fb8016f9bcdfe9fe564bc3524411d5df7914aac78aeeb3828260405161062d929190613037565b6040805160c0810182526000808252602080830182905282840182905260608084018390526080840181905260a084015263ffffffff85168083527fa6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb49825284832073ffffffffffffffffffffffffffffffffffffffff88168452600183528584209184529152929020805491929167ffffffffffffffff16806109e657825467ffffffffffffffff168452610a05565b67ffffffffffffffff81811614610a055767ffffffffffffffff811684525b815468010000000000000000900460ff16610abb57825468010000000000000000900460ff1615610ab65782600101805480602002602001604051908101604052809291908181526020018280548015610a9557602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311610a6a575b50505050506080850152825468010000000000000000900460ff1660208501525b610b59565b815468010000000000000000900460ff90811614610b595781600101805480602002602001604051908101604052809291908181526020018280548015610b3857602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311610b0d575b50505050506080850152815468010000000000000000900460ff1660208501525b81546901000000000000000000900460ff16610c285782546901000000000000000000900460ff1615610c235782600201805480602002602001604051908101604052809291908181526020018280548015610beb57602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311610bc0575b505050505060a0850152825460ff69010000000000000000008204811660408701526a01000000000000000000009091041660608501525b610cde565b81546901000000000000000000900460ff90811614610cde5781600201805480602002602001604051908101604052809291908181526020018280548015610ca657602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311610c7b575b505050505060a0850152815460ff69010000000000000000008204811660408701526a01000000000000000000009091041660608501525b610ce784611551565b50505092915050565b606060018203610d4157610d08838561ffff16611088565b6040805173ffffffffffffffffffffffffffffffffffffffff9092166020830152015b604051602081830303815290604052905061044d565b60028203610d6757610d57838561ffff16610936565b604051602001610d2b91906128e7565b6040517f961a995f000000000000000000000000000000000000000000000000000000008152600481018390526024015b60405180910390fd5b610da96114d0565b6020811115610de4576040517fbcfcf59e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61ffff821660009081526003602052604090205415610e2f576040517f831ad0ad00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61ffff8216600081815260036020908152604091829020849055815192835282018390527ee9ab3709e58edd0db46318d63673d8ae4681fa3e51d9f9dc07cde5109ff748910161062d565b610e826114d0565b610e8c6000611936565b565b6000610ebb84847f00000000000000000000000000000000000000000000000000000000000000006119ab565b6000610ec78585611a7e565b90506000610ee3610ed88787611a90565b63ffffffff16611ab3565b90506000610ef18787611b4b565b61ffff831660009081526003602052604081205491925090610f1d90610f178a8a611b6e565b90611b87565b84604051602001610f2f9291906130aa565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152908290527ffdc07c70000000000000000000000000000000000000000000000000000000008252915073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063fdc07c7090610fd190869085906004016130f4565b602060405180830381865afa158015610fee573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110129190613111565b67ffffffffffffffff168267ffffffffffffffff161161103957600294505050505061044d565b61106861104a858561ffff16610936565b898960405161105a92919061312e565b604051809103902088611c28565b1561107a57600194505050505061044d565b506000979650505050505050565b73ffffffffffffffffffffffffffffffffffffffff808316600090815260046020908152604080832063ffffffff86168452909152812054909116806110f95763ffffffff831660009081526005602052604090205473ffffffffffffffffffffffffffffffffffffffff166110fb565b805b949350505050565b3660006111108585611d31565b9150915061113f82827f00000000000000000000000000000000000000000000000000000000000000006119ab565b600061114b8686611a7e565b9050600061115c610ed88888611a90565b9050600061116e838361ffff16610936565b905061119b81868660405161118492919061312e565b60405180910390206111968b8b611d4d565b611d77565b6111fa826111a98a8a611b6e565b856111b48c8c611b4b565b6111be8d8d611f26565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508e9250611f36915050565b5050505050505050565b61120c6114d0565b73ffffffffffffffffffffffffffffffffffffffff81166112af576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610d98565b6112b881611936565b50565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16331461132a576040517f7eb966c800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6113378561ffff166121e9565b6001830361135e5761135961ffff86168561135484860186612a92565b612230565b6113b5565b600283036113805761135961ffff86168561137b8486018661313e565b6122db565b6040517f961a995f00000000000000000000000000000000000000000000000000000000815260048101849052602401610d98565b5050505050565b6040805180820182526001815267ffffffffffffffff8316602082015290516002906000906113ee908890889061312e565b6040805191829003909120825260208083019390935290810160009081208682528352818120338083529084529082902084518154959094015167ffffffffffffffff16610100027fffffffffffffffffffffffffffffffffffffffffffffff0000000000000000ff941515949094167fffffffffffffffffffffffffffffffffffffffffffffff000000000000000000909516949094179290921790925590517f2cb0eed7538baeae4c6fde038c0fd0384d27de0dd55a228c65847bda6aa1ab56916114c2918790879086908890613173565b60405180910390a150505050565b60005473ffffffffffffffffffffffffffffffffffffffff163314610e8c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610d98565b602081015160ff1615801561156b5750606081015160ff16155b156112b8576040517f7e36c28400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b602081015160ff90811614806115bd5750602081015160ff16155b1561160457608081015151156115ff576040517f1b66804100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611683565b806020015160ff1681608001515114158061163f57506002611628600160ff613227565b6116329190613240565b60ff16816020015160ff16115b15611676576040517f1b66804100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6116838160800151612324565b604081015160ff908116148061169e5750604081015160ff16155b156117245760a081015151156116e0576040517f05f7ab6200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b606081015160ff161561171f576040517f81da67ee00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6117fb565b806040015160ff168160a001515114158061175f57506002611748600160ff613227565b6117529190613240565b60ff16816040015160ff16115b15611796576040517f05f7ab6200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b606081015160ff1615806117b75750806040015160ff16816060015160ff16115b156117ee576040517f81da67ee00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6117fb8160a00151612324565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260016020818152604080842063ffffffff87168552825292839020845181548684015195870151606088015167ffffffffffffffff9093167fffffffffffffffffffffffffffffffffffffffffffffff000000000000000000909216919091176801000000000000000060ff97881602177fffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffff166901000000000000000000918716919091027fffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffff16176a010000000000000000000095909116949094029390931783556080840151805185949361191293908501920190612506565b5060a0820151805161192e916002840191602090910190612506565b505050505050565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b605182146119e5576040517f0666bafd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60016119f184846123be565b60ff1614611a2b576040517f28fac06600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8063ffffffff16611a3c84846123e0565b63ffffffff1614611a79576040517f9a61cd2600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050565b600061044d611a8d84846123f0565b90565b6000611aa0600d60098486613289565b611aa9916132b3565b60e01c9392505050565b600061ffff821115611b47576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203160448201527f36206269747300000000000000000000000000000000000000000000000000006064820152608401610d98565b5090565b6000611b5b600960018486613289565b611b64916132fb565b60c01c9392505050565b6000611b7e602d600d8486613289565b61044d91613341565b6060811580611b965750602082115b15611bcd576040517f59baef1d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8167ffffffffffffffff811115611be657611be6612c0a565b6040519080825280601f01601f191660200182016040528015611c10576020820181803683370190505b506008909202610100039290921b6020820152919050565b602083015160009060ff1615611cab5760005b846020015160ff168160ff161015611c9357611c7d85608001518260ff1681518110611c6957611c69612b20565b602002602001015185858860000151612400565b611c8b57600091505061044d565b600101611c3b565b50836040015160ff16600003611cab5750600161044d565b606084015160005b856040015160ff168160ff161015611d2557611cf58660a001518260ff1681518110611ce157611ce1612b20565b602002602001015186868960000151612400565b15611d1d5781611d048161337d565b9250508160ff16600003611d1d5760019250505061044d565b600101611cb3565b50600095945050505050565b366000611d416051828587613289565b915091505b9250929050565b6000611d59838361248f565b604051611d6792919061312e565b6040518091039020905092915050565b611d82838383611c28565b611db8576040517f692c93cb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b602083015160ff1615611e705760005b836020015160ff168160ff161015611e6e57600083815260026020908152604080832085845290915281206080860151805191929160ff8516908110611e1057611e10612b20565b60209081029190910181015173ffffffffffffffffffffffffffffffffffffffff16825281019190915260400160002080547fffffffffffffffffffffffffffffffffffffffffffffff000000000000000000169055600101611dc8565b505b604083015160ff1615611a795760005b836040015160ff168160ff161015610417576000838152600260209081526040808320858452909152812060a0860151805191929160ff8516908110611ec857611ec8612b20565b60209081029190910181015173ffffffffffffffffffffffffffffffffffffffff16825281019190915260400160002080547fffffffffffffffffffffffffffffffffffffffffffffff000000000000000000169055600101611e80565b366000611d418360718187613289565b611f44848761ffff16611088565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611fa8576040517f7fb6be0200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff163b600003612045578373ffffffffffffffffffffffffffffffffffffffff168661ffff167feca5e9e3d49c3ee9d9362efa82baa91c668a7f032b3a403638ae65e273680136878686805190602001206040516120389392919092835267ffffffffffffffff919091166020830152604082015260600190565b60405180910390a361192e565b61ffff8616600090815260036020526040812054612064908790611b87565b856040516020016120769291906130aa565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152908290527fc2fa4813000000000000000000000000000000000000000000000000000000008252915073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063c2fa481390612120908a9085908a908a9089908b906004016133b8565b600060405180830381600087803b15801561213a57600080fd5b505af115801561214e573d6000803e3d6000fd5b5050604080516060808201835261ffff8c1680835260208084018d815267ffffffffffffffff8c8116868801908152875194855291519284019290925251169381019390935273ffffffffffffffffffffffffffffffffffffffff8a169083015292507f3cd5e48f9730b129dc7550f0fcea9c767b7be37837cd10e55eb35f734f4bca04915060800160405180910390a15050505050505050565b6121f28161249f565b6112b8576040517f2146a07a00000000000000000000000000000000000000000000000000000000815263ffffffff82166004820152602401610d98565b73ffffffffffffffffffffffffffffffffffffffff828116600081815260046020908152604080832063ffffffff89168085529083529281902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001695871695861790558051938452908301919091528101919091527f2bef5fe6b6383925f8e9893d464521c5fcd4f9d4dc14d32d900849c5ae0af710906060015b60405180910390a1505050565b6122e68284836115a2565b6122f08284610936565b507f82118522aa536ac0e96cc5c689407ae42b89d592aa133890a01f1509842f50818284836040516122ce93929190613426565b6000805b8251811015611a7957600083828151811061234557612345612b20565b602002602001015190508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16116123b4576040517fa228a30b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b9150600101612328565b60006123cd6001828486613289565b6123d691613461565b60f81c9392505050565b6000611aa06031602d8486613289565b6000611b7e605160318486613289565b6000838152600260209081526040808320858452825280832073ffffffffffffffffffffffffffffffffffffffff88168452825280832081518083019092525460ff811615801580845261010090920467ffffffffffffffff1693830193909352909161248557508267ffffffffffffffff16816020015167ffffffffffffffff1610155b9695505050505050565b366000611d418360518187613289565b63ffffffff811660009081527fa6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb4960205260408120805468010000000000000000900460ff1615158061044d5750546a0100000000000000000000900460ff16151592915050565b828054828255906000526020600020908101928215612580579160200282015b8281111561258057825182547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff909116178255602090920191600190910190612526565b50611b479291505b80821115611b475760008155600101612588565b60008083601f8401126125ae57600080fd5b50813567ffffffffffffffff8111156125c657600080fd5b602083019150836020828501011115611d4657600080fd5b67ffffffffffffffff811681146112b857600080fd5b80356125ff816125de565b919050565b6000806000806060858703121561261a57600080fd5b843567ffffffffffffffff81111561263157600080fd5b61263d8782880161259c565b909550935050602085013591506040850135612658816125de565b939692955090935050565b803563ffffffff811681146125ff57600080fd5b60006020828403121561268957600080fd5b61044d82612663565b6000806000604084860312156126a757600080fd5b833567ffffffffffffffff8111156126be57600080fd5b6126ca8682870161259c565b909790965060209590950135949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600381106112b8577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b602081016127518361270d565b91905290565b6000806020838503121561276a57600080fd5b823567ffffffffffffffff8082111561278257600080fd5b818501915085601f83011261279657600080fd5b8135818111156127a557600080fd5b8660208260051b85010111156127ba57600080fd5b60209290920196919550909350505050565b73ffffffffffffffffffffffffffffffffffffffff811681146112b857600080fd5b6000806040838503121561280157600080fd5b823561280c816127cc565b915061281a60208401612663565b90509250929050565b60008151808452602080850194506020840160005b8381101561286a57815173ffffffffffffffffffffffffffffffffffffffff1687529582019590820190600101612838565b509495945050505050565b67ffffffffffffffff815116825260ff602082015116602083015260ff604082015116604083015260ff60608201511660608301526000608082015160c060808501526128c560c0850182612823565b905060a083015184820360a08601526128de8282612823565b95945050505050565b60208152600061044d6020830184612875565b6000806020838503121561290d57600080fd5b823567ffffffffffffffff8082111561292557600080fd5b818501915085601f83011261293957600080fd5b81358181111561294857600080fd5b8660208260061b85010111156127ba57600080fd5b60008060006060848603121561297257600080fd5b8335925060208401359150604084013561298b816127cc565b809150509250925092565b803561ffff811681146125ff57600080fd5b6000806000606084860312156129bd57600080fd5b6129c684612996565b925060208401356129d6816127cc565b929592945050506040919091013590565b60005b83811015612a025781810151838201526020016129ea565b50506000910152565b60008151808452612a238160208601602086016129e7565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60208152600061044d6020830184612a0b565b60008060408385031215612a7b57600080fd5b612a8483612996565b946020939093013593505050565b600060208284031215612aa457600080fd5b81356110f9816127cc565b600080600080600060808688031215612ac757600080fd5b612ad086612996565b94506020860135612ae0816127cc565b935060408601359250606086013567ffffffffffffffff811115612b0357600080fd5b612b0f8882890161259c565b969995985093965092949392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc1833603018112612b8357600080fd5b9190910192915050565b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff41833603018112612b8357600080fd5b803560ff811681146125ff57600080fd5b600060208284031215612be457600080fd5b61044d82612bc1565b600060208284031215612bff57600080fd5b81356110f9816125de565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405160c0810167ffffffffffffffff81118282101715612c5c57612c5c612c0a565b60405290565b600082601f830112612c7357600080fd5b8135602067ffffffffffffffff80831115612c9057612c90612c0a565b8260051b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f83011681018181108482111715612cd357612cd3612c0a565b6040529384526020818701810194908101925087851115612cf357600080fd5b6020870191505b84821015612d1c578135612d0d816127cc565b83529183019190830190612cfa565b979650505050505050565b600060c08284031215612d3957600080fd5b612d41612c39565b9050612d4c826125f4565b8152612d5a60208301612bc1565b6020820152612d6b60408301612bc1565b6040820152612d7c60608301612bc1565b6060820152608082013567ffffffffffffffff80821115612d9c57600080fd5b612da885838601612c62565b608084015260a0840135915080821115612dc157600080fd5b50612dce84828501612c62565b60a08301525092915050565b60006107d53683612d27565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112612e1b57600080fd5b830160208101925035905067ffffffffffffffff811115612e3b57600080fd5b8060051b3603821315611d4657600080fd5b8183526000602080850194508260005b8581101561286a578135612e70816127cc565b73ffffffffffffffffffffffffffffffffffffffff1687529582019590820190600101612e5d565b60208082528181018390526000906040808401600586901b8501820187855b88811015613029577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08089850301855282357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc18c3603018112612f1957600080fd5b8b0163ffffffff612f2982612663565b168552878101357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff41823603018112612f6057600080fd5b858901889052018035612f72816125de565b67ffffffffffffffff1685880152612f8b818901612bc1565b606060ff80831682890152612fa18a8501612bc1565b92506080818416818a0152612fb7838601612bc1565b935060a09250818416838a0152612fd081860186612de6565b60c08b81015294509150612feb905061010089018483612e4d565b925050612ffa81840184612de6565b93509050838783030160e0880152613013828483612e4d565b978a019796505050928701925050600101612eb7565b509098975050505050505050565b6020808252818101839052600090604080840186845b8781101561309d5763ffffffff61306383612663565b16835284820135613073816127cc565b73ffffffffffffffffffffffffffffffffffffffff1683860152918301919083019060010161304d565b5090979650505050505050565b600083516130bc8184602088016129e7565b60609390931b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000169190920190815260140192915050565b61ffff831681526040602082015260006110fb6040830184612a0b565b60006020828403121561312357600080fd5b81516110f9816125de565b8183823760009101908152919050565b60006020828403121561315057600080fd5b813567ffffffffffffffff81111561316757600080fd5b6110fb84828501612d27565b73ffffffffffffffffffffffffffffffffffffffff8616815260806020820152836080820152838560a0830137600060a08583010152600060a07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f870116830101905067ffffffffffffffff841660408301528260608301529695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60ff82811682821603908111156107d5576107d56131f8565b600060ff83168061327a577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b8060ff84160491505092915050565b6000808585111561329957600080fd5b838611156132a657600080fd5b5050820193919092039150565b7fffffffff0000000000000000000000000000000000000000000000000000000081358181169160048510156132f35780818660040360031b1b83161692505b505092915050565b7fffffffffffffffff00000000000000000000000000000000000000000000000081358181169160088510156132f35760089490940360031b84901b1690921692915050565b803560208310156107d5577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff602084900360031b1b1692915050565b600060ff821680613390576133906131f8565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0192915050565b61ffff8716815260c0602082015260006133d560c0830188612a0b565b73ffffffffffffffffffffffffffffffffffffffff8716604084015267ffffffffffffffff8616606084015284608084015282810360a08401526134198185612a0b565b9998505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff8416815263ffffffff831660208201526060604082015260006128de6060830184612875565b7fff0000000000000000000000000000000000000000000000000000000000000081358181169160018510156132f35760019490940360031b84901b169092169291505056fea264697066735822122016ab2a1b86b2d496018d630e2accfc9427a51856284c4ab0d6b61e232d3575c664736f6c63430008160033",
1001
- "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061016c5760003560e01c806354fd4d50116100cd5780639653a70411610081578063e65106f811610066578063e65106f8146103d2578063f2fde38b146103e5578063f8e1734c146103f857600080fd5b80639653a7041461037e57806398678a111461039157600080fd5b8063715018a6116100b2578063715018a6146103455780637401fccc1461034d5780638da5cb5b1461036057600080fd5b806354fd4d50146103125780636d26e5d01461033257600080fd5b806339e3f938116101245780633c782a52116101095780633c782a521461027a57806343ea4fa9146102df57806352d2871f146102f257600080fd5b806339e3f9381461024757806339e928a81461026757600080fd5b806327d12cd91161015557806327d12cd9146101b957806329460b0b146101d95780632fed39ae146101ec57600080fd5b80630223536e146101715780630f8355c014610186575b600080fd5b61018461017f366004612604565b61040b565b005b6101a6610194366004612677565b60036020526000908152604090205481565b6040519081526020015b60405180910390f35b6101cc6101c7366004612692565b61041d565b6040516101b09190612744565b6101846101e7366004612757565b610454565b6102226101fa366004612677565b60056020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101b0565b61025a6102553660046127ee565b610639565b6040516101b091906128e7565b6101846102753660046128fa565b6107db565b6102bf61028836600461295d565b600260209081526000938452604080852082529284528284209052825290205460ff811690610100900467ffffffffffffffff1682565b60408051921515835267ffffffffffffffff9091166020830152016101b0565b61025a6102ed3660046127ee565b610936565b6103056103003660046129a8565b610cf0565b6040516101b09190612a55565b6040805160038152600060208201526001918101919091526060016101b0565b610184610340366004612a68565b610da1565b610184610e7a565b6101cc61035b366004612692565b610e8e565b60005473ffffffffffffffffffffffffffffffffffffffff16610222565b61022261038c3660046127ee565b611088565b61022261039f3660046127ee565b600460209081526000928352604080842090915290825290205473ffffffffffffffffffffffffffffffffffffffff1681565b6101846103e0366004612692565b611103565b6101846103f3366004612a92565b611204565b610184610406366004612aaf565b6112bb565b610417848484846113bc565b50505050565b60008061042b858585610e8e565b600281111561043c5761043c6126de565b036104495750600061044d565b5060025b9392505050565b61045c6114d0565b60005b818110156105fb573683838381811061047a5761047a612b20565b905060200281019061048c9190612b4f565b905060ff61049d6020830183612b8d565b6104ae906040810190602001612bd2565b60ff16036104e8576040517f1b66804100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60ff6104f76020830183612b8d565b610508906060810190604001612bd2565b60ff1603610542576040517f05f7ab6200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b67ffffffffffffffff6105586020830183612b8d565b610566906020810190612bed565b67ffffffffffffffff16036105a7576040517f8f6ae8f800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6105c56105b76020830183612b8d565b6105c090612dda565b611551565b6105f260006105d76020840184612677565b6105e46020850185612b8d565b6105ed90612dda565b6115a2565b5060010161045f565b507faaf3aaa0c11056e86ac56eb653e25b005ca1a7d4dcd21ba24647f7ab63f3b560828260405161062d929190612e98565b60405180910390a15050565b6040805160c0810182526000808252602082018190529181018290526060808201929092526080810182905260a081019190915273ffffffffffffffffffffffffffffffffffffffff8316600090815260016020818152604080842063ffffffff87168552825292839020835160c081018552815467ffffffffffffffff8116825260ff680100000000000000008204811683860152690100000000000000000082048116838801526a0100000000000000000000909104166060820152928101805485518185028101850190965280865293949193608086019383018282801561075a57602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff16815260019091019060200180831161072f575b50505050508152602001600282018054806020026020016040519081016040528092919081815260200182805480156107c957602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff16815260019091019060200180831161079e575b50505050508152505090505b92915050565b6107e36114d0565b60005b81811015610904573683838381811061080157610801612b20565b9050604002019050600073ffffffffffffffffffffffffffffffffffffffff168160200160208101906108349190612a92565b73ffffffffffffffffffffffffffffffffffffffff1603610881576040517f710c949700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6108916040820160208301612a92565b600560006108a26020850185612677565b63ffffffff168152602081019190915260400160002080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055506001016107e6565b507f2a2676897ce6724d11fb8016f9bcdfe9fe564bc3524411d5df7914aac78aeeb3828260405161062d929190613037565b6040805160c0810182526000808252602080830182905282840182905260608084018390526080840181905260a084015263ffffffff85168083527fa6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb49825284832073ffffffffffffffffffffffffffffffffffffffff88168452600183528584209184529152929020805491929167ffffffffffffffff16806109e657825467ffffffffffffffff168452610a05565b67ffffffffffffffff81811614610a055767ffffffffffffffff811684525b815468010000000000000000900460ff16610abb57825468010000000000000000900460ff1615610ab65782600101805480602002602001604051908101604052809291908181526020018280548015610a9557602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311610a6a575b50505050506080850152825468010000000000000000900460ff1660208501525b610b59565b815468010000000000000000900460ff90811614610b595781600101805480602002602001604051908101604052809291908181526020018280548015610b3857602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311610b0d575b50505050506080850152815468010000000000000000900460ff1660208501525b81546901000000000000000000900460ff16610c285782546901000000000000000000900460ff1615610c235782600201805480602002602001604051908101604052809291908181526020018280548015610beb57602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311610bc0575b505050505060a0850152825460ff69010000000000000000008204811660408701526a01000000000000000000009091041660608501525b610cde565b81546901000000000000000000900460ff90811614610cde5781600201805480602002602001604051908101604052809291908181526020018280548015610ca657602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311610c7b575b505050505060a0850152815460ff69010000000000000000008204811660408701526a01000000000000000000009091041660608501525b610ce784611551565b50505092915050565b606060018203610d4157610d08838561ffff16611088565b6040805173ffffffffffffffffffffffffffffffffffffffff9092166020830152015b604051602081830303815290604052905061044d565b60028203610d6757610d57838561ffff16610936565b604051602001610d2b91906128e7565b6040517f961a995f000000000000000000000000000000000000000000000000000000008152600481018390526024015b60405180910390fd5b610da96114d0565b6020811115610de4576040517fbcfcf59e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61ffff821660009081526003602052604090205415610e2f576040517f831ad0ad00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61ffff8216600081815260036020908152604091829020849055815192835282018390527ee9ab3709e58edd0db46318d63673d8ae4681fa3e51d9f9dc07cde5109ff748910161062d565b610e826114d0565b610e8c6000611936565b565b6000610ebb84847f00000000000000000000000000000000000000000000000000000000000000006119ab565b6000610ec78585611a7e565b90506000610ee3610ed88787611a90565b63ffffffff16611ab3565b90506000610ef18787611b4b565b61ffff831660009081526003602052604081205491925090610f1d90610f178a8a611b6e565b90611b87565b84604051602001610f2f9291906130aa565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152908290527ffdc07c70000000000000000000000000000000000000000000000000000000008252915073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063fdc07c7090610fd190869085906004016130f4565b602060405180830381865afa158015610fee573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110129190613111565b67ffffffffffffffff168267ffffffffffffffff161161103957600294505050505061044d565b61106861104a858561ffff16610936565b898960405161105a92919061312e565b604051809103902088611c28565b1561107a57600194505050505061044d565b506000979650505050505050565b73ffffffffffffffffffffffffffffffffffffffff808316600090815260046020908152604080832063ffffffff86168452909152812054909116806110f95763ffffffff831660009081526005602052604090205473ffffffffffffffffffffffffffffffffffffffff166110fb565b805b949350505050565b3660006111108585611d31565b9150915061113f82827f00000000000000000000000000000000000000000000000000000000000000006119ab565b600061114b8686611a7e565b9050600061115c610ed88888611a90565b9050600061116e838361ffff16610936565b905061119b81868660405161118492919061312e565b60405180910390206111968b8b611d4d565b611d77565b6111fa826111a98a8a611b6e565b856111b48c8c611b4b565b6111be8d8d611f26565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508e9250611f36915050565b5050505050505050565b61120c6114d0565b73ffffffffffffffffffffffffffffffffffffffff81166112af576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610d98565b6112b881611936565b50565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16331461132a576040517f7eb966c800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6113378561ffff166121e9565b6001830361135e5761135961ffff86168561135484860186612a92565b612230565b6113b5565b600283036113805761135961ffff86168561137b8486018661313e565b6122db565b6040517f961a995f00000000000000000000000000000000000000000000000000000000815260048101849052602401610d98565b5050505050565b6040805180820182526001815267ffffffffffffffff8316602082015290516002906000906113ee908890889061312e565b6040805191829003909120825260208083019390935290810160009081208682528352818120338083529084529082902084518154959094015167ffffffffffffffff16610100027fffffffffffffffffffffffffffffffffffffffffffffff0000000000000000ff941515949094167fffffffffffffffffffffffffffffffffffffffffffffff000000000000000000909516949094179290921790925590517f2cb0eed7538baeae4c6fde038c0fd0384d27de0dd55a228c65847bda6aa1ab56916114c2918790879086908890613173565b60405180910390a150505050565b60005473ffffffffffffffffffffffffffffffffffffffff163314610e8c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610d98565b602081015160ff1615801561156b5750606081015160ff16155b156112b8576040517f7e36c28400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b602081015160ff90811614806115bd5750602081015160ff16155b1561160457608081015151156115ff576040517f1b66804100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611683565b806020015160ff1681608001515114158061163f57506002611628600160ff613227565b6116329190613240565b60ff16816020015160ff16115b15611676576040517f1b66804100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6116838160800151612324565b604081015160ff908116148061169e5750604081015160ff16155b156117245760a081015151156116e0576040517f05f7ab6200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b606081015160ff161561171f576040517f81da67ee00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6117fb565b806040015160ff168160a001515114158061175f57506002611748600160ff613227565b6117529190613240565b60ff16816040015160ff16115b15611796576040517f05f7ab6200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b606081015160ff1615806117b75750806040015160ff16816060015160ff16115b156117ee576040517f81da67ee00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6117fb8160a00151612324565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260016020818152604080842063ffffffff87168552825292839020845181548684015195870151606088015167ffffffffffffffff9093167fffffffffffffffffffffffffffffffffffffffffffffff000000000000000000909216919091176801000000000000000060ff97881602177fffffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffff166901000000000000000000918716919091027fffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffff16176a010000000000000000000095909116949094029390931783556080840151805185949361191293908501920190612506565b5060a0820151805161192e916002840191602090910190612506565b505050505050565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b605182146119e5576040517f0666bafd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60016119f184846123be565b60ff1614611a2b576040517f28fac06600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8063ffffffff16611a3c84846123e0565b63ffffffff1614611a79576040517f9a61cd2600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050565b600061044d611a8d84846123f0565b90565b6000611aa0600d60098486613289565b611aa9916132b3565b60e01c9392505050565b600061ffff821115611b47576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203160448201527f36206269747300000000000000000000000000000000000000000000000000006064820152608401610d98565b5090565b6000611b5b600960018486613289565b611b64916132fb565b60c01c9392505050565b6000611b7e602d600d8486613289565b61044d91613341565b6060811580611b965750602082115b15611bcd576040517f59baef1d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8167ffffffffffffffff811115611be657611be6612c0a565b6040519080825280601f01601f191660200182016040528015611c10576020820181803683370190505b506008909202610100039290921b6020820152919050565b602083015160009060ff1615611cab5760005b846020015160ff168160ff161015611c9357611c7d85608001518260ff1681518110611c6957611c69612b20565b602002602001015185858860000151612400565b611c8b57600091505061044d565b600101611c3b565b50836040015160ff16600003611cab5750600161044d565b606084015160005b856040015160ff168160ff161015611d2557611cf58660a001518260ff1681518110611ce157611ce1612b20565b602002602001015186868960000151612400565b15611d1d5781611d048161337d565b9250508160ff16600003611d1d5760019250505061044d565b600101611cb3565b50600095945050505050565b366000611d416051828587613289565b915091505b9250929050565b6000611d59838361248f565b604051611d6792919061312e565b6040518091039020905092915050565b611d82838383611c28565b611db8576040517f692c93cb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b602083015160ff1615611e705760005b836020015160ff168160ff161015611e6e57600083815260026020908152604080832085845290915281206080860151805191929160ff8516908110611e1057611e10612b20565b60209081029190910181015173ffffffffffffffffffffffffffffffffffffffff16825281019190915260400160002080547fffffffffffffffffffffffffffffffffffffffffffffff000000000000000000169055600101611dc8565b505b604083015160ff1615611a795760005b836040015160ff168160ff161015610417576000838152600260209081526040808320858452909152812060a0860151805191929160ff8516908110611ec857611ec8612b20565b60209081029190910181015173ffffffffffffffffffffffffffffffffffffffff16825281019190915260400160002080547fffffffffffffffffffffffffffffffffffffffffffffff000000000000000000169055600101611e80565b366000611d418360718187613289565b611f44848761ffff16611088565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611fa8576040517f7fb6be0200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff163b600003612045578373ffffffffffffffffffffffffffffffffffffffff168661ffff167feca5e9e3d49c3ee9d9362efa82baa91c668a7f032b3a403638ae65e273680136878686805190602001206040516120389392919092835267ffffffffffffffff919091166020830152604082015260600190565b60405180910390a361192e565b61ffff8616600090815260036020526040812054612064908790611b87565b856040516020016120769291906130aa565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152908290527fc2fa4813000000000000000000000000000000000000000000000000000000008252915073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063c2fa481390612120908a9085908a908a9089908b906004016133b8565b600060405180830381600087803b15801561213a57600080fd5b505af115801561214e573d6000803e3d6000fd5b5050604080516060808201835261ffff8c1680835260208084018d815267ffffffffffffffff8c8116868801908152875194855291519284019290925251169381019390935273ffffffffffffffffffffffffffffffffffffffff8a169083015292507f3cd5e48f9730b129dc7550f0fcea9c767b7be37837cd10e55eb35f734f4bca04915060800160405180910390a15050505050505050565b6121f28161249f565b6112b8576040517f2146a07a00000000000000000000000000000000000000000000000000000000815263ffffffff82166004820152602401610d98565b73ffffffffffffffffffffffffffffffffffffffff828116600081815260046020908152604080832063ffffffff89168085529083529281902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001695871695861790558051938452908301919091528101919091527f2bef5fe6b6383925f8e9893d464521c5fcd4f9d4dc14d32d900849c5ae0af710906060015b60405180910390a1505050565b6122e68284836115a2565b6122f08284610936565b507f82118522aa536ac0e96cc5c689407ae42b89d592aa133890a01f1509842f50818284836040516122ce93929190613426565b6000805b8251811015611a7957600083828151811061234557612345612b20565b602002602001015190508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16116123b4576040517fa228a30b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b9150600101612328565b60006123cd6001828486613289565b6123d691613461565b60f81c9392505050565b6000611aa06031602d8486613289565b6000611b7e605160318486613289565b6000838152600260209081526040808320858452825280832073ffffffffffffffffffffffffffffffffffffffff88168452825280832081518083019092525460ff811615801580845261010090920467ffffffffffffffff1693830193909352909161248557508267ffffffffffffffff16816020015167ffffffffffffffff1610155b9695505050505050565b366000611d418360518187613289565b63ffffffff811660009081527fa6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb4960205260408120805468010000000000000000900460ff1615158061044d5750546a0100000000000000000000900460ff16151592915050565b828054828255906000526020600020908101928215612580579160200282015b8281111561258057825182547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff909116178255602090920191600190910190612526565b50611b479291505b80821115611b475760008155600101612588565b60008083601f8401126125ae57600080fd5b50813567ffffffffffffffff8111156125c657600080fd5b602083019150836020828501011115611d4657600080fd5b67ffffffffffffffff811681146112b857600080fd5b80356125ff816125de565b919050565b6000806000806060858703121561261a57600080fd5b843567ffffffffffffffff81111561263157600080fd5b61263d8782880161259c565b909550935050602085013591506040850135612658816125de565b939692955090935050565b803563ffffffff811681146125ff57600080fd5b60006020828403121561268957600080fd5b61044d82612663565b6000806000604084860312156126a757600080fd5b833567ffffffffffffffff8111156126be57600080fd5b6126ca8682870161259c565b909790965060209590950135949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600381106112b8577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b602081016127518361270d565b91905290565b6000806020838503121561276a57600080fd5b823567ffffffffffffffff8082111561278257600080fd5b818501915085601f83011261279657600080fd5b8135818111156127a557600080fd5b8660208260051b85010111156127ba57600080fd5b60209290920196919550909350505050565b73ffffffffffffffffffffffffffffffffffffffff811681146112b857600080fd5b6000806040838503121561280157600080fd5b823561280c816127cc565b915061281a60208401612663565b90509250929050565b60008151808452602080850194506020840160005b8381101561286a57815173ffffffffffffffffffffffffffffffffffffffff1687529582019590820190600101612838565b509495945050505050565b67ffffffffffffffff815116825260ff602082015116602083015260ff604082015116604083015260ff60608201511660608301526000608082015160c060808501526128c560c0850182612823565b905060a083015184820360a08601526128de8282612823565b95945050505050565b60208152600061044d6020830184612875565b6000806020838503121561290d57600080fd5b823567ffffffffffffffff8082111561292557600080fd5b818501915085601f83011261293957600080fd5b81358181111561294857600080fd5b8660208260061b85010111156127ba57600080fd5b60008060006060848603121561297257600080fd5b8335925060208401359150604084013561298b816127cc565b809150509250925092565b803561ffff811681146125ff57600080fd5b6000806000606084860312156129bd57600080fd5b6129c684612996565b925060208401356129d6816127cc565b929592945050506040919091013590565b60005b83811015612a025781810151838201526020016129ea565b50506000910152565b60008151808452612a238160208601602086016129e7565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60208152600061044d6020830184612a0b565b60008060408385031215612a7b57600080fd5b612a8483612996565b946020939093013593505050565b600060208284031215612aa457600080fd5b81356110f9816127cc565b600080600080600060808688031215612ac757600080fd5b612ad086612996565b94506020860135612ae0816127cc565b935060408601359250606086013567ffffffffffffffff811115612b0357600080fd5b612b0f8882890161259c565b969995985093965092949392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc1833603018112612b8357600080fd5b9190910192915050565b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff41833603018112612b8357600080fd5b803560ff811681146125ff57600080fd5b600060208284031215612be457600080fd5b61044d82612bc1565b600060208284031215612bff57600080fd5b81356110f9816125de565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405160c0810167ffffffffffffffff81118282101715612c5c57612c5c612c0a565b60405290565b600082601f830112612c7357600080fd5b8135602067ffffffffffffffff80831115612c9057612c90612c0a565b8260051b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f83011681018181108482111715612cd357612cd3612c0a565b6040529384526020818701810194908101925087851115612cf357600080fd5b6020870191505b84821015612d1c578135612d0d816127cc565b83529183019190830190612cfa565b979650505050505050565b600060c08284031215612d3957600080fd5b612d41612c39565b9050612d4c826125f4565b8152612d5a60208301612bc1565b6020820152612d6b60408301612bc1565b6040820152612d7c60608301612bc1565b6060820152608082013567ffffffffffffffff80821115612d9c57600080fd5b612da885838601612c62565b608084015260a0840135915080821115612dc157600080fd5b50612dce84828501612c62565b60a08301525092915050565b60006107d53683612d27565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112612e1b57600080fd5b830160208101925035905067ffffffffffffffff811115612e3b57600080fd5b8060051b3603821315611d4657600080fd5b8183526000602080850194508260005b8581101561286a578135612e70816127cc565b73ffffffffffffffffffffffffffffffffffffffff1687529582019590820190600101612e5d565b60208082528181018390526000906040808401600586901b8501820187855b88811015613029577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08089850301855282357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc18c3603018112612f1957600080fd5b8b0163ffffffff612f2982612663565b168552878101357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff41823603018112612f6057600080fd5b858901889052018035612f72816125de565b67ffffffffffffffff1685880152612f8b818901612bc1565b606060ff80831682890152612fa18a8501612bc1565b92506080818416818a0152612fb7838601612bc1565b935060a09250818416838a0152612fd081860186612de6565b60c08b81015294509150612feb905061010089018483612e4d565b925050612ffa81840184612de6565b93509050838783030160e0880152613013828483612e4d565b978a019796505050928701925050600101612eb7565b509098975050505050505050565b6020808252818101839052600090604080840186845b8781101561309d5763ffffffff61306383612663565b16835284820135613073816127cc565b73ffffffffffffffffffffffffffffffffffffffff1683860152918301919083019060010161304d565b5090979650505050505050565b600083516130bc8184602088016129e7565b60609390931b7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000169190920190815260140192915050565b61ffff831681526040602082015260006110fb6040830184612a0b565b60006020828403121561312357600080fd5b81516110f9816125de565b8183823760009101908152919050565b60006020828403121561315057600080fd5b813567ffffffffffffffff81111561316757600080fd5b6110fb84828501612d27565b73ffffffffffffffffffffffffffffffffffffffff8616815260806020820152836080820152838560a0830137600060a08583010152600060a07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f870116830101905067ffffffffffffffff841660408301528260608301529695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60ff82811682821603908111156107d5576107d56131f8565b600060ff83168061327a577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b8060ff84160491505092915050565b6000808585111561329957600080fd5b838611156132a657600080fd5b5050820193919092039150565b7fffffffff0000000000000000000000000000000000000000000000000000000081358181169160048510156132f35780818660040360031b1b83161692505b505092915050565b7fffffffffffffffff00000000000000000000000000000000000000000000000081358181169160088510156132f35760089490940360031b84901b1690921692915050565b803560208310156107d5577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff602084900360031b1b1692915050565b600060ff821680613390576133906131f8565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0192915050565b61ffff8716815260c0602082015260006133d560c0830188612a0b565b73ffffffffffffffffffffffffffffffffffffffff8716604084015267ffffffffffffffff8616606084015284608084015282810360a08401526134198185612a0b565b9998505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff8416815263ffffffff831660208201526060604082015260006128de6060830184612875565b7fff0000000000000000000000000000000000000000000000000000000000000081358181169160018510156132f35760019490940360031b84901b169092169291505056fea264697066735822122016ab2a1b86b2d496018d630e2accfc9427a51856284c4ab0d6b61e232d3575c664736f6c63430008160033",
1002
- "devdoc": {
1003
- "details": "ULN301 will be deployed on EndpointV1 and is for backward compatibility with ULN302 on EndpointV2. 301 can talk to both 301 and 302This is a gluing contract. It simply parses the requests and forward to the super.impl() accordingly.In this case, it combines the logic of ReceiveUlnBase and ReceiveLibBaseE1",
1004
- "kind": "dev",
1005
- "methods": {
1006
- "commitVerification(bytes,uint256)": {
1007
- "details": "in 301, this is equivalent to execution as in Endpoint V2dont need to check endpoint verifiable here to save gas, as it will reverts if not verifiable."
1008
- },
1009
- "getAppUlnConfig(address,uint32)": {
1010
- "details": "Get the uln config without the default config for the given remoteEid."
1011
- },
1012
- "owner()": {
1013
- "details": "Returns the address of the current owner."
1014
- },
1015
- "renounceOwnership()": {
1016
- "details": "Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."
1017
- },
1018
- "setDefaultUlnConfigs((uint32,(uint64,uint8,uint8,uint8,address[],address[]))[])": {
1019
- "details": "about the DEFAULT ULN config 1) its values are all LITERAL (e.g. 0 is 0). whereas in the oapp ULN config, 0 (default value) points to the default ULN config this design enables the oapp to point to DEFAULT config without explicitly setting the config 2) its configuration is more restrictive than the oapp ULN config that a) it must not use NIL value, where NIL is used only by oapps to indicate the LITERAL 0 b) it must have at least one DVN"
1020
- },
1021
- "transferOwnership(address)": {
1022
- "details": "Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."
1023
- },
1024
- "verifiable(bytes,bytes32)": {
1025
- "details": "keeping the same interface as 302a verifiable message requires it to be ULN verifiable only, excluding the endpoint verifiable check"
1026
- }
1027
- },
1028
- "version": 1
1029
- },
1030
- "userdoc": {
1031
- "kind": "user",
1032
- "methods": {},
1033
- "version": 1
1034
- },
1035
- "storageLayout": {
1036
- "storage": [
1037
- {
1038
- "astId": 6813,
1039
- "contract": "contracts/uln/uln301/ReceiveUln301.sol:ReceiveUln301",
1040
- "label": "_owner",
1041
- "offset": 0,
1042
- "slot": "0",
1043
- "type": "t_address"
1044
- },
1045
- {
1046
- "astId": 16927,
1047
- "contract": "contracts/uln/uln301/ReceiveUln301.sol:ReceiveUln301",
1048
- "label": "ulnConfigs",
1049
- "offset": 0,
1050
- "slot": "1",
1051
- "type": "t_mapping(t_address,t_mapping(t_uint32,t_struct(UlnConfig)16876_storage))"
1052
- },
1053
- {
1054
- "astId": 16033,
1055
- "contract": "contracts/uln/uln301/ReceiveUln301.sol:ReceiveUln301",
1056
- "label": "hashLookup",
1057
- "offset": 0,
1058
- "slot": "2",
1059
- "type": "t_mapping(t_bytes32,t_mapping(t_bytes32,t_mapping(t_address,t_struct(Verification)16018_storage)))"
1060
- },
1061
- {
1062
- "astId": 21564,
1063
- "contract": "contracts/uln/uln301/ReceiveUln301.sol:ReceiveUln301",
1064
- "label": "addressSizes",
1065
- "offset": 0,
1066
- "slot": "3",
1067
- "type": "t_mapping(t_uint32,t_uint256)"
1068
- },
1069
- {
1070
- "astId": 21668,
1071
- "contract": "contracts/uln/uln301/ReceiveUln301.sol:ReceiveUln301",
1072
- "label": "executors",
1073
- "offset": 0,
1074
- "slot": "4",
1075
- "type": "t_mapping(t_address,t_mapping(t_uint32,t_address))"
1076
- },
1077
- {
1078
- "astId": 21672,
1079
- "contract": "contracts/uln/uln301/ReceiveUln301.sol:ReceiveUln301",
1080
- "label": "defaultExecutors",
1081
- "offset": 0,
1082
- "slot": "5",
1083
- "type": "t_mapping(t_uint32,t_address)"
1084
- }
1085
- ],
1086
- "types": {
1087
- "t_address": {
1088
- "encoding": "inplace",
1089
- "label": "address",
1090
- "numberOfBytes": "20"
1091
- },
1092
- "t_array(t_address)dyn_storage": {
1093
- "base": "t_address",
1094
- "encoding": "dynamic_array",
1095
- "label": "address[]",
1096
- "numberOfBytes": "32"
1097
- },
1098
- "t_bool": {
1099
- "encoding": "inplace",
1100
- "label": "bool",
1101
- "numberOfBytes": "1"
1102
- },
1103
- "t_bytes32": {
1104
- "encoding": "inplace",
1105
- "label": "bytes32",
1106
- "numberOfBytes": "32"
1107
- },
1108
- "t_mapping(t_address,t_mapping(t_uint32,t_address))": {
1109
- "encoding": "mapping",
1110
- "key": "t_address",
1111
- "label": "mapping(address => mapping(uint32 => address))",
1112
- "numberOfBytes": "32",
1113
- "value": "t_mapping(t_uint32,t_address)"
1114
- },
1115
- "t_mapping(t_address,t_mapping(t_uint32,t_struct(UlnConfig)16876_storage))": {
1116
- "encoding": "mapping",
1117
- "key": "t_address",
1118
- "label": "mapping(address => mapping(uint32 => struct UlnConfig))",
1119
- "numberOfBytes": "32",
1120
- "value": "t_mapping(t_uint32,t_struct(UlnConfig)16876_storage)"
1121
- },
1122
- "t_mapping(t_address,t_struct(Verification)16018_storage)": {
1123
- "encoding": "mapping",
1124
- "key": "t_address",
1125
- "label": "mapping(address => struct Verification)",
1126
- "numberOfBytes": "32",
1127
- "value": "t_struct(Verification)16018_storage"
1128
- },
1129
- "t_mapping(t_bytes32,t_mapping(t_address,t_struct(Verification)16018_storage))": {
1130
- "encoding": "mapping",
1131
- "key": "t_bytes32",
1132
- "label": "mapping(bytes32 => mapping(address => struct Verification))",
1133
- "numberOfBytes": "32",
1134
- "value": "t_mapping(t_address,t_struct(Verification)16018_storage)"
1135
- },
1136
- "t_mapping(t_bytes32,t_mapping(t_bytes32,t_mapping(t_address,t_struct(Verification)16018_storage)))": {
1137
- "encoding": "mapping",
1138
- "key": "t_bytes32",
1139
- "label": "mapping(bytes32 => mapping(bytes32 => mapping(address => struct Verification)))",
1140
- "numberOfBytes": "32",
1141
- "value": "t_mapping(t_bytes32,t_mapping(t_address,t_struct(Verification)16018_storage))"
1142
- },
1143
- "t_mapping(t_uint32,t_address)": {
1144
- "encoding": "mapping",
1145
- "key": "t_uint32",
1146
- "label": "mapping(uint32 => address)",
1147
- "numberOfBytes": "32",
1148
- "value": "t_address"
1149
- },
1150
- "t_mapping(t_uint32,t_struct(UlnConfig)16876_storage)": {
1151
- "encoding": "mapping",
1152
- "key": "t_uint32",
1153
- "label": "mapping(uint32 => struct UlnConfig)",
1154
- "numberOfBytes": "32",
1155
- "value": "t_struct(UlnConfig)16876_storage"
1156
- },
1157
- "t_mapping(t_uint32,t_uint256)": {
1158
- "encoding": "mapping",
1159
- "key": "t_uint32",
1160
- "label": "mapping(uint32 => uint256)",
1161
- "numberOfBytes": "32",
1162
- "value": "t_uint256"
1163
- },
1164
- "t_struct(UlnConfig)16876_storage": {
1165
- "encoding": "inplace",
1166
- "label": "struct UlnConfig",
1167
- "members": [
1168
- {
1169
- "astId": 16863,
1170
- "contract": "contracts/uln/uln301/ReceiveUln301.sol:ReceiveUln301",
1171
- "label": "confirmations",
1172
- "offset": 0,
1173
- "slot": "0",
1174
- "type": "t_uint64"
1175
- },
1176
- {
1177
- "astId": 16865,
1178
- "contract": "contracts/uln/uln301/ReceiveUln301.sol:ReceiveUln301",
1179
- "label": "requiredDVNCount",
1180
- "offset": 8,
1181
- "slot": "0",
1182
- "type": "t_uint8"
1183
- },
1184
- {
1185
- "astId": 16867,
1186
- "contract": "contracts/uln/uln301/ReceiveUln301.sol:ReceiveUln301",
1187
- "label": "optionalDVNCount",
1188
- "offset": 9,
1189
- "slot": "0",
1190
- "type": "t_uint8"
1191
- },
1192
- {
1193
- "astId": 16869,
1194
- "contract": "contracts/uln/uln301/ReceiveUln301.sol:ReceiveUln301",
1195
- "label": "optionalDVNThreshold",
1196
- "offset": 10,
1197
- "slot": "0",
1198
- "type": "t_uint8"
1199
- },
1200
- {
1201
- "astId": 16872,
1202
- "contract": "contracts/uln/uln301/ReceiveUln301.sol:ReceiveUln301",
1203
- "label": "requiredDVNs",
1204
- "offset": 0,
1205
- "slot": "1",
1206
- "type": "t_array(t_address)dyn_storage"
1207
- },
1208
- {
1209
- "astId": 16875,
1210
- "contract": "contracts/uln/uln301/ReceiveUln301.sol:ReceiveUln301",
1211
- "label": "optionalDVNs",
1212
- "offset": 0,
1213
- "slot": "2",
1214
- "type": "t_array(t_address)dyn_storage"
1215
- }
1216
- ],
1217
- "numberOfBytes": "96"
1218
- },
1219
- "t_struct(Verification)16018_storage": {
1220
- "encoding": "inplace",
1221
- "label": "struct Verification",
1222
- "members": [
1223
- {
1224
- "astId": 16015,
1225
- "contract": "contracts/uln/uln301/ReceiveUln301.sol:ReceiveUln301",
1226
- "label": "submitted",
1227
- "offset": 0,
1228
- "slot": "0",
1229
- "type": "t_bool"
1230
- },
1231
- {
1232
- "astId": 16017,
1233
- "contract": "contracts/uln/uln301/ReceiveUln301.sol:ReceiveUln301",
1234
- "label": "confirmations",
1235
- "offset": 1,
1236
- "slot": "0",
1237
- "type": "t_uint64"
1238
- }
1239
- ],
1240
- "numberOfBytes": "32"
1241
- },
1242
- "t_uint256": {
1243
- "encoding": "inplace",
1244
- "label": "uint256",
1245
- "numberOfBytes": "32"
1246
- },
1247
- "t_uint32": {
1248
- "encoding": "inplace",
1249
- "label": "uint32",
1250
- "numberOfBytes": "4"
1251
- },
1252
- "t_uint64": {
1253
- "encoding": "inplace",
1254
- "label": "uint64",
1255
- "numberOfBytes": "8"
1256
- },
1257
- "t_uint8": {
1258
- "encoding": "inplace",
1259
- "label": "uint8",
1260
- "numberOfBytes": "1"
1261
- }
1262
- }
1263
- }
1264
- }