@layerzerolabs/lz-evm-messagelib-v2 2.0.13 → 2.0.15

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 (110) hide show
  1. package/artifacts/contracts/Executor.sol/Executor.json +20 -20
  2. package/artifacts/contracts/ExecutorFeeLib.sol/ExecutorFeeLib.json +19 -19
  3. package/artifacts/contracts/MessageLibBase.sol/MessageLibBase.json +1 -1
  4. package/artifacts/contracts/PriceFeed.sol/PriceFeed.json +15 -15
  5. package/artifacts/contracts/ReceiveLibBaseE2.sol/ReceiveLibBaseE2.json +1 -1
  6. package/artifacts/contracts/SendLibBase.sol/SendLibBase.json +6 -6
  7. package/artifacts/contracts/SendLibBaseE2.sol/SendLibBaseE2.json +10 -10
  8. package/artifacts/contracts/Treasury.sol/Treasury.json +9 -9
  9. package/artifacts/contracts/Worker.sol/Worker.json +18 -18
  10. package/artifacts/contracts/interfaces/IExecutor.sol/IExecutor.json +3 -3
  11. package/artifacts/contracts/interfaces/IExecutorFeeLib.sol/IExecutorFeeLib.json +4 -4
  12. package/artifacts/contracts/interfaces/ILayerZeroPriceFeed.sol/ILayerZeroPriceFeed.json +3 -3
  13. package/artifacts/contracts/interfaces/IWorker.sol/IWorker.json +3 -3
  14. package/artifacts/contracts/uln/LzExecutor.sol/IReceiveUlnView.json +35 -0
  15. package/artifacts/contracts/uln/LzExecutor.sol/LzExecutor.json +279 -20
  16. package/artifacts/contracts/uln/ReceiveUlnBase.sol/ReceiveUlnBase.json +90 -11
  17. package/artifacts/contracts/uln/SendUlnBase.sol/SendUlnBase.json +7 -7
  18. package/artifacts/contracts/uln/UlnBase.sol/UlnBase.json +7 -7
  19. package/artifacts/contracts/uln/dvn/DVN.sol/DVN.json +31 -31
  20. package/artifacts/contracts/uln/dvn/DVNFeeLib.sol/DVNFeeLib.json +14 -14
  21. package/artifacts/contracts/uln/dvn/MultiSig.sol/MultiSig.json +5 -5
  22. package/artifacts/contracts/uln/dvn/adapters/CCIP/CCIPDVNAdapter.sol/CCIPDVNAdapter.json +488 -169
  23. package/artifacts/contracts/uln/dvn/adapters/CCIP/CCIPDVNAdapterFeeLib.sol/CCIPDVNAdapterFeeLib.json +372 -16
  24. package/artifacts/contracts/uln/dvn/adapters/DVNAdapterBase.sol/DVNAdapterBase.json +419 -93
  25. package/artifacts/contracts/uln/dvn/adapters/DVNAdapterBase.sol/IReceiveUln.json +34 -0
  26. package/artifacts/contracts/uln/dvn/adapters/DVNAdapterBase.sol/ISendLibBase.json +30 -0
  27. package/artifacts/contracts/uln/dvn/adapters/arbitrum/ArbitrumDVNAdapterL1.sol/ArbitrumDVNAdapterL1.json +936 -0
  28. package/artifacts/contracts/uln/dvn/adapters/arbitrum/ArbitrumDVNAdapterL2.sol/ArbitrumDVNAdapterL2.json +868 -0
  29. package/artifacts/contracts/uln/dvn/adapters/axelar/AxelarDVNAdapter.sol/AxelarDVNAdapter.json +611 -249
  30. package/artifacts/contracts/uln/dvn/adapters/axelar/AxelarDVNAdapter.sol/ISendLibBase.json +30 -0
  31. package/artifacts/contracts/uln/dvn/adapters/axelar/AxelarDVNAdapterFeeLib.sol/AxelarDVNAdapterFeeLib.json +526 -13
  32. package/artifacts/contracts/uln/dvn/adapters/libs/DVNAdapterMessageCodec.sol/DVNAdapterMessageCodec.json +16 -0
  33. package/artifacts/contracts/uln/dvn/adapters/optimism/OptimismDVNAdapterL1.sol/OptimismDVNAdapterL1.json +924 -0
  34. package/artifacts/contracts/uln/dvn/adapters/optimism/OptimismDVNAdapterL2.sol/OptimismDVNAdapterL2.json +891 -0
  35. package/artifacts/contracts/uln/interfaces/IDVN.sol/IDVN.json +3 -3
  36. package/artifacts/contracts/uln/interfaces/IDVNFeeLib.sol/IDVNFeeLib.json +1 -1
  37. package/artifacts/contracts/uln/interfaces/IReceiveUlnE2.sol/IReceiveUlnE2.json +0 -24
  38. package/artifacts/contracts/uln/interfaces/adapters/IAxelarDVNAdapter.sol/IAxelarDVNAdapter.json +160 -0
  39. package/artifacts/contracts/uln/interfaces/adapters/IAxelarDVNAdapterFeeLib.sol/IAxelarDVNAdapterFeeLib.json +282 -0
  40. package/artifacts/contracts/uln/interfaces/adapters/ICCIPDVNAdapter.sol/ICCIPDVNAdapter.json +91 -0
  41. package/artifacts/contracts/uln/interfaces/adapters/ICCIPDVNAdapterFeeLib.sol/ICCIPDVNAdapterFeeLib.json +290 -0
  42. package/artifacts/contracts/uln/libs/DVNOptions.sol/DVNOptions.json +4 -4
  43. package/artifacts/contracts/uln/libs/UlnOptions.sol/UlnOptions.json +7 -7
  44. package/artifacts/contracts/uln/uln301/AddressSizeConfig.sol/AddressSizeConfig.json +2 -2
  45. package/artifacts/contracts/uln/uln301/ReceiveLibBaseE1.sol/ReceiveLibBaseE1.json +5 -5
  46. package/artifacts/contracts/uln/uln301/ReceiveUln301.sol/ReceiveUln301.json +88 -57
  47. package/artifacts/contracts/uln/uln301/ReceiveUln301View.sol/IReceiveUln301.json +178 -0
  48. package/artifacts/contracts/uln/uln301/ReceiveUln301View.sol/ReceiveUln301View.json +126 -0
  49. package/artifacts/contracts/uln/uln301/SendLibBaseE1.sol/SendLibBaseE1.json +15 -15
  50. package/artifacts/contracts/uln/uln301/SendUln301.sol/SendUln301.json +76 -76
  51. package/artifacts/contracts/uln/uln301/TreasuryFeeHandler.sol/TreasuryFeeHandler.json +5 -5
  52. package/artifacts/contracts/uln/uln301/interfaces/IMessageLibE1.sol/IMessageLibE1.json +4 -4
  53. package/artifacts/contracts/uln/uln302/ReceiveUln302.sol/ReceiveUln302.json +79 -24
  54. package/artifacts/contracts/uln/uln302/ReceiveUln302View.sol/IReceiveUln302.json +146 -0
  55. package/artifacts/contracts/uln/uln302/ReceiveUln302View.sol/ReceiveUln302View.json +251 -0
  56. package/artifacts/contracts/uln/uln302/SendUln302.sol/SendUln302.json +75 -75
  57. package/artifacts/contracts/upgradeable/WorkerUpgradeable.sol/WorkerUpgradeable.json +18 -18
  58. package/contracts/ExecutorFeeLib.sol +6 -6
  59. package/contracts/MessageLibBase.sol +2 -2
  60. package/contracts/PriceFeed.sol +3 -3
  61. package/contracts/ReceiveLibBaseE2.sol +0 -26
  62. package/contracts/SendLibBase.sol +10 -10
  63. package/contracts/SendLibBaseE2.sol +4 -4
  64. package/contracts/Treasury.sol +2 -2
  65. package/contracts/Worker.sol +3 -3
  66. package/contracts/interfaces/IExecutorFeeLib.sol +4 -4
  67. package/contracts/interfaces/ILayerZeroPriceFeed.sol +3 -3
  68. package/contracts/interfaces/IWorker.sol +3 -3
  69. package/contracts/uln/LzExecutor.sol +51 -19
  70. package/contracts/uln/ReceiveUlnBase.sol +21 -14
  71. package/contracts/uln/UlnBase.sol +19 -19
  72. package/contracts/uln/dvn/DVN.sol +16 -16
  73. package/contracts/uln/dvn/DVNFeeLib.sol +2 -2
  74. package/contracts/uln/dvn/MultiSig.sol +13 -13
  75. package/contracts/uln/dvn/adapters/CCIP/CCIPDVNAdapter.sol +95 -97
  76. package/contracts/uln/dvn/adapters/CCIP/CCIPDVNAdapterFeeLib.sol +64 -2
  77. package/contracts/uln/dvn/adapters/DVNAdapterBase.sol +74 -124
  78. package/contracts/uln/dvn/adapters/arbitrum/ArbitrumDVNAdapterL1.sol +126 -0
  79. package/contracts/uln/dvn/adapters/arbitrum/ArbitrumDVNAdapterL2.sol +50 -0
  80. package/contracts/uln/dvn/adapters/avalanche/NOTES.md +4 -0
  81. package/contracts/uln/dvn/adapters/axelar/AxelarDVNAdapter.sol +85 -100
  82. package/contracts/uln/dvn/adapters/axelar/AxelarDVNAdapterFeeLib.sol +121 -2
  83. package/contracts/uln/dvn/adapters/libs/DVNAdapterMessageCodec.sol +36 -0
  84. package/contracts/uln/dvn/adapters/optimism/OptimismDVNAdapterL1.sol +86 -0
  85. package/contracts/uln/dvn/adapters/optimism/OptimismDVNAdapterL2.sol +58 -0
  86. package/contracts/uln/interfaces/IDVNFeeLib.sol +1 -1
  87. package/contracts/uln/interfaces/IReceiveUlnE2.sol +0 -5
  88. package/contracts/uln/interfaces/adapters/IAxelarDVNAdapter.sol +45 -0
  89. package/contracts/uln/interfaces/adapters/IAxelarDVNAdapterFeeLib.sol +48 -0
  90. package/contracts/uln/interfaces/adapters/ICCIPDVNAdapter.sol +30 -0
  91. package/contracts/uln/interfaces/adapters/ICCIPDVNAdapterFeeLib.sol +45 -0
  92. package/contracts/uln/libs/DVNOptions.sol +6 -6
  93. package/contracts/uln/libs/UlnOptions.sol +13 -13
  94. package/contracts/uln/uln301/AddressSizeConfig.sol +4 -4
  95. package/contracts/uln/uln301/ReceiveLibBaseE1.sol +4 -4
  96. package/contracts/uln/uln301/ReceiveUln301.sol +4 -41
  97. package/contracts/uln/uln301/ReceiveUln301View.sol +89 -0
  98. package/contracts/uln/uln301/SendLibBaseE1.sol +5 -5
  99. package/contracts/uln/uln301/SendUln301.sol +3 -3
  100. package/contracts/uln/uln301/TreasuryFeeHandler.sol +6 -6
  101. package/contracts/uln/uln301/interfaces/IMessageLibE1.sol +4 -4
  102. package/contracts/uln/uln302/ReceiveUln302.sol +4 -27
  103. package/contracts/uln/uln302/ReceiveUln302View.sol +89 -0
  104. package/contracts/uln/uln302/SendUln302.sol +3 -3
  105. package/contracts/upgradeable/WorkerUpgradeable.sol +3 -3
  106. package/package.json +7 -5
  107. package/artifacts/contracts/uln/dvn/adapters/DVNAdapterFeeLibBase.sol/DVNAdapterFeeLibBase.json +0 -50
  108. package/artifacts/contracts/uln/interfaces/IDVNAdapterFeeLib.sol/IDVNAdapterFeeLib.json +0 -50
  109. package/contracts/uln/dvn/adapters/DVNAdapterFeeLibBase.sol +0 -20
  110. package/contracts/uln/interfaces/IDVNAdapterFeeLib.sol +0 -13
@@ -0,0 +1,251 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "ReceiveUln302View",
4
+ "sourceName": "contracts/uln/uln302/ReceiveUln302View.sol",
5
+ "abi": [
6
+ {
7
+ "anonymous": false,
8
+ "inputs": [
9
+ {
10
+ "indexed": false,
11
+ "internalType": "uint8",
12
+ "name": "version",
13
+ "type": "uint8"
14
+ }
15
+ ],
16
+ "name": "Initialized",
17
+ "type": "event"
18
+ },
19
+ {
20
+ "inputs": [],
21
+ "name": "EMPTY_PAYLOAD_HASH",
22
+ "outputs": [
23
+ {
24
+ "internalType": "bytes32",
25
+ "name": "",
26
+ "type": "bytes32"
27
+ }
28
+ ],
29
+ "stateMutability": "view",
30
+ "type": "function"
31
+ },
32
+ {
33
+ "inputs": [],
34
+ "name": "NIL_PAYLOAD_HASH",
35
+ "outputs": [
36
+ {
37
+ "internalType": "bytes32",
38
+ "name": "",
39
+ "type": "bytes32"
40
+ }
41
+ ],
42
+ "stateMutability": "view",
43
+ "type": "function"
44
+ },
45
+ {
46
+ "inputs": [],
47
+ "name": "endpoint",
48
+ "outputs": [
49
+ {
50
+ "internalType": "contract ILayerZeroEndpointV2",
51
+ "name": "",
52
+ "type": "address"
53
+ }
54
+ ],
55
+ "stateMutability": "view",
56
+ "type": "function"
57
+ },
58
+ {
59
+ "inputs": [
60
+ {
61
+ "components": [
62
+ {
63
+ "internalType": "uint32",
64
+ "name": "srcEid",
65
+ "type": "uint32"
66
+ },
67
+ {
68
+ "internalType": "bytes32",
69
+ "name": "sender",
70
+ "type": "bytes32"
71
+ },
72
+ {
73
+ "internalType": "uint64",
74
+ "name": "nonce",
75
+ "type": "uint64"
76
+ }
77
+ ],
78
+ "internalType": "struct Origin",
79
+ "name": "_origin",
80
+ "type": "tuple"
81
+ },
82
+ {
83
+ "internalType": "address",
84
+ "name": "_receiver",
85
+ "type": "address"
86
+ }
87
+ ],
88
+ "name": "executable",
89
+ "outputs": [
90
+ {
91
+ "internalType": "enum ExecutionState",
92
+ "name": "",
93
+ "type": "uint8"
94
+ }
95
+ ],
96
+ "stateMutability": "view",
97
+ "type": "function"
98
+ },
99
+ {
100
+ "inputs": [
101
+ {
102
+ "components": [
103
+ {
104
+ "internalType": "uint32",
105
+ "name": "srcEid",
106
+ "type": "uint32"
107
+ },
108
+ {
109
+ "internalType": "bytes32",
110
+ "name": "sender",
111
+ "type": "bytes32"
112
+ },
113
+ {
114
+ "internalType": "uint64",
115
+ "name": "nonce",
116
+ "type": "uint64"
117
+ }
118
+ ],
119
+ "internalType": "struct Origin",
120
+ "name": "_origin",
121
+ "type": "tuple"
122
+ },
123
+ {
124
+ "internalType": "address",
125
+ "name": "_receiver",
126
+ "type": "address"
127
+ }
128
+ ],
129
+ "name": "initializable",
130
+ "outputs": [
131
+ {
132
+ "internalType": "bool",
133
+ "name": "",
134
+ "type": "bool"
135
+ }
136
+ ],
137
+ "stateMutability": "view",
138
+ "type": "function"
139
+ },
140
+ {
141
+ "inputs": [
142
+ {
143
+ "internalType": "address",
144
+ "name": "_endpoint",
145
+ "type": "address"
146
+ },
147
+ {
148
+ "internalType": "address",
149
+ "name": "_receiveUln302",
150
+ "type": "address"
151
+ }
152
+ ],
153
+ "name": "initialize",
154
+ "outputs": [],
155
+ "stateMutability": "nonpayable",
156
+ "type": "function"
157
+ },
158
+ {
159
+ "inputs": [],
160
+ "name": "receiveUln302",
161
+ "outputs": [
162
+ {
163
+ "internalType": "contract IReceiveUln302",
164
+ "name": "",
165
+ "type": "address"
166
+ }
167
+ ],
168
+ "stateMutability": "view",
169
+ "type": "function"
170
+ },
171
+ {
172
+ "inputs": [
173
+ {
174
+ "internalType": "bytes",
175
+ "name": "_packetHeader",
176
+ "type": "bytes"
177
+ },
178
+ {
179
+ "internalType": "bytes32",
180
+ "name": "_payloadHash",
181
+ "type": "bytes32"
182
+ }
183
+ ],
184
+ "name": "verifiable",
185
+ "outputs": [
186
+ {
187
+ "internalType": "enum VerificationState",
188
+ "name": "",
189
+ "type": "uint8"
190
+ }
191
+ ],
192
+ "stateMutability": "view",
193
+ "type": "function"
194
+ },
195
+ {
196
+ "inputs": [
197
+ {
198
+ "components": [
199
+ {
200
+ "internalType": "uint32",
201
+ "name": "srcEid",
202
+ "type": "uint32"
203
+ },
204
+ {
205
+ "internalType": "bytes32",
206
+ "name": "sender",
207
+ "type": "bytes32"
208
+ },
209
+ {
210
+ "internalType": "uint64",
211
+ "name": "nonce",
212
+ "type": "uint64"
213
+ }
214
+ ],
215
+ "internalType": "struct Origin",
216
+ "name": "_origin",
217
+ "type": "tuple"
218
+ },
219
+ {
220
+ "internalType": "address",
221
+ "name": "_receiver",
222
+ "type": "address"
223
+ },
224
+ {
225
+ "internalType": "address",
226
+ "name": "_receiveLib",
227
+ "type": "address"
228
+ },
229
+ {
230
+ "internalType": "bytes32",
231
+ "name": "_payloadHash",
232
+ "type": "bytes32"
233
+ }
234
+ ],
235
+ "name": "verifiable",
236
+ "outputs": [
237
+ {
238
+ "internalType": "bool",
239
+ "name": "",
240
+ "type": "bool"
241
+ }
242
+ ],
243
+ "stateMutability": "view",
244
+ "type": "function"
245
+ }
246
+ ],
247
+ "bytecode": "0x608060405234801561001057600080fd5b50611768806100206000396000f3fe608060405234801561001057600080fd5b50600436106100a35760003560e01c80635e280f1111610076578063861e1ca51161005b578063861e1ca514610199578063cb5026b9146101bc578063e1e3a7df146101c457600080fd5b80635e280f111461012e578063843c7b0e1461017957600080fd5b806327d12cd9146100a85780632baf0be7146100d1578063485cc955146101065780634b4b2efb1461011b575b600080fd5b6100bb6100b6366004611020565b6101d7565b6040516100c891906110cf565b60405180910390f35b6100f87fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81565b6040519081526020016100c8565b610119610114366004611104565b610487565b005b6100bb61012936600461122a565b6107b1565b6000546101549062010000900473ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100c8565b6032546101549073ffffffffffffffffffffffffffffffffffffffff1681565b6101ac6101a736600461122a565b610a90565b60405190151581526020016100c8565b6100f8600081565b6101ac6101d2366004611257565b610b57565b6032546040517fc40ff83500000000000000000000000000000000000000000000000000000000815260009173ffffffffffffffffffffffffffffffffffffffff81169163c40ff8359161025191889188917401000000000000000000000000000000000000000090910463ffffffff16906004016112a7565b60006040518083038186803b15801561026957600080fd5b505afa15801561027d573d6000803e3d6000fd5b50505050600061028d8585610cff565b9050600060405180606001604052806102a68888610d11565b63ffffffff1681526020016102bb8888610d34565b81526020016102ca8888610d4d565b67ffffffffffffffff16905290506102e28183610a90565b6102f157600392505050610480565b6102fc818386610d70565b61030b57600292505050610480565b60325481516040517f43ea4fa900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff858116600483015263ffffffff909216602482015291169063e084d9529082906343ea4fa990604401600060405180830381865afa158015610391573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526103d791908101906113ea565b88886040516103e79291906114bf565b6040519081900381207fffffffff0000000000000000000000000000000000000000000000000000000060e085901b16825261042892918990600401611521565b602060405180830381865afa158015610445573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061046991906115c9565b1561047957600192505050610480565b6000925050505b9392505050565b60006104b17fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b905073ffffffffffffffffffffffffffffffffffffffff811661050a5773ffffffffffffffffffffffffffffffffffffffff7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035561052c565b3373ffffffffffffffffffffffffffffffffffffffff82161461052c57600080fd5b600054610100900460ff161580801561054c5750600054600160ff909116105b806105665750303b158015610566575060005460ff166001145b6105f7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084015b60405180910390fd5b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055801561065557600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b61065e84610e89565b603280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff85811691909117909155600054604080517f416ecebf0000000000000000000000000000000000000000000000000000000081529051620100009092049092169163416ecebf9160048083019260209291908290030181865afa158015610704573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061072891906115eb565b603260146101000a81548163ffffffff021916908363ffffffff16021790555080156107ab57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b600080548351602085015160408087015190517fc9fc7bcd00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff878116600483015263ffffffff9094166024820152604481019290925267ffffffffffffffff16606482015283926201000090049091169063c9fc7bcd90608401602060405180830381865afa15801561085a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061087e9190611608565b90508015801561095a5750600054845160208601516040517f5b17bb7000000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff878116600483015263ffffffff90931660248201526044810191909152620100009092041690635b17bb7090606401602060405180830381865afa15801561091a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061093e9190611621565b67ffffffffffffffff16846040015167ffffffffffffffff1611155b15610969576003915050610a8a565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114801590610a655750600054845160208601516040517fa0dd43fc00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff878116600483015263ffffffff9093166024820152604481019190915262010000909204169063a0dd43fc90606401602060405180830381865afa158015610a25573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a499190611621565b67ffffffffffffffff16846040015167ffffffffffffffff1611155b15610a74576002915050610a8a565b8015610a84576001915050610a8a565b60009150505b92915050565b60008054604080517f861e1ca5000000000000000000000000000000000000000000000000000000008152855163ffffffff166004820152602086015160248201529085015167ffffffffffffffff16604482015273ffffffffffffffffffffffffffffffffffffffff8481166064830152620100009092049091169063861e1ca590608401602060405180830381865afa158015610b33573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061048091906115c9565b6000805485516040517f9d7f977500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff878116600483015263ffffffff90921660248201528582166044820152620100009092041690639d7f977590606401602060405180830381865afa158015610be4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c0891906115c9565b610c1457506000610cf7565b600054604080517fc9a54a99000000000000000000000000000000000000000000000000000000008152875163ffffffff166004820152602088015160248201529087015167ffffffffffffffff16604482015273ffffffffffffffffffffffffffffffffffffffff8681166064830152620100009092049091169063c9a54a9990608401602060405180830381865afa158015610cb6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cda91906115c9565b610ce657506000610cf7565b81610cf357506000610cf7565b5060015b949350505050565b6000610480610d0e8484610f2c565b90565b6000610d21600d6009848661163e565b610d2a91611668565b60e01c9392505050565b6000610d44602d600d848661163e565b610480916116b0565b6000610d5d60096001848661163e565b610d66916116ec565b60c01c9392505050565b603254600090610d9a908590859073ffffffffffffffffffffffffffffffffffffffff1685610b57565b610da657506000610480565b6000548451602086015160408088015190517fc9fc7bcd00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff888116600483015263ffffffff9094166024820152604481019290925267ffffffffffffffff16606482015284926201000090049091169063c9fc7bcd90608401602060405180830381865afa158015610e4e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e729190611608565b03610e7f57506000610480565b5060019392505050565b600054610100900460ff16610f20576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016105ee565b610f2981610f3c565b50565b6000610d4460516031848661163e565b600054610100900460ff16610fd3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016105ee565b6000805473ffffffffffffffffffffffffffffffffffffffff90921662010000027fffffffffffffffffffff0000000000000000000000000000000000000000ffff909216919091179055565b60008060006040848603121561103557600080fd5b833567ffffffffffffffff8082111561104d57600080fd5b818601915086601f83011261106157600080fd5b81358181111561107057600080fd5b87602082850101111561108257600080fd5b6020928301989097509590910135949350505050565b60048110610f29577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b602081016110dc83611098565b91905290565b73ffffffffffffffffffffffffffffffffffffffff81168114610f2957600080fd5b6000806040838503121561111757600080fd5b8235611122816110e2565b91506020830135611132816110e2565b809150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405160c0810167ffffffffffffffff8111828210171561118f5761118f61113d565b60405290565b63ffffffff81168114610f2957600080fd5b67ffffffffffffffff81168114610f2957600080fd5b6000606082840312156111cf57600080fd5b6040516060810181811067ffffffffffffffff821117156111f2576111f261113d565b604052905080823561120381611195565b815260208381013590820152604083013561121d816111a7565b6040919091015292915050565b6000806080838503121561123d57600080fd5b61124784846111bd565b91506060830135611132816110e2565b60008060008060c0858703121561126d57600080fd5b61127786866111bd565b93506060850135611287816110e2565b92506080850135611297816110e2565b9396929550929360a00135925050565b6040815282604082015282846060830137600060608483010152600060607fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f860116830101905063ffffffff83166020830152949350505050565b805161130f816111a7565b919050565b805160ff8116811461130f57600080fd5b600082601f83011261133657600080fd5b8151602067ffffffffffffffff808311156113535761135361113d565b8260051b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f830116810181811084821117156113965761139661113d565b60405293845260208187018101949081019250878511156113b657600080fd5b6020870191505b848210156113df5781516113d0816110e2565b835291830191908301906113bd565b979650505050505050565b6000602082840312156113fc57600080fd5b815167ffffffffffffffff8082111561141457600080fd5b9083019060c0828603121561142857600080fd5b61143061116c565b61143983611304565b815261144760208401611314565b602082015261145860408401611314565b604082015261146960608401611314565b606082015260808301518281111561148057600080fd5b61148c87828601611325565b60808301525060a0830151828111156114a457600080fd5b6114b087828601611325565b60a08301525095945050505050565b8183823760009101908152919050565b60008151808452602080850194506020840160005b8381101561151657815173ffffffffffffffffffffffffffffffffffffffff16875295820195908201906001016114e4565b509495945050505050565b6060815267ffffffffffffffff845116606082015260ff602085015116608082015260ff60408501511660a082015260ff60608501511660c08201526000608085015160c060e08401526115796101208401826114cf565b905060a08601517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0848303016101008501526115b582826114cf565b602085019690965250505060400152919050565b6000602082840312156115db57600080fd5b8151801515811461048057600080fd5b6000602082840312156115fd57600080fd5b815161048081611195565b60006020828403121561161a57600080fd5b5051919050565b60006020828403121561163357600080fd5b8151610480816111a7565b6000808585111561164e57600080fd5b8386111561165b57600080fd5b5050820193919092039150565b7fffffffff0000000000000000000000000000000000000000000000000000000081358181169160048510156116a85780818660040360031b1b83161692505b505092915050565b80356020831015610a8a577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff602084900360031b1b1692915050565b7fffffffffffffffff00000000000000000000000000000000000000000000000081358181169160088510156116a85760089490940360031b84901b169092169291505056fea26469706673582212206e026e4fceecbf2adf585fe61d64dfd2135d1866afa15877b834c9f89f5b1d5b64736f6c63430008160033",
248
+ "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100a35760003560e01c80635e280f1111610076578063861e1ca51161005b578063861e1ca514610199578063cb5026b9146101bc578063e1e3a7df146101c457600080fd5b80635e280f111461012e578063843c7b0e1461017957600080fd5b806327d12cd9146100a85780632baf0be7146100d1578063485cc955146101065780634b4b2efb1461011b575b600080fd5b6100bb6100b6366004611020565b6101d7565b6040516100c891906110cf565b60405180910390f35b6100f87fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81565b6040519081526020016100c8565b610119610114366004611104565b610487565b005b6100bb61012936600461122a565b6107b1565b6000546101549062010000900473ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100c8565b6032546101549073ffffffffffffffffffffffffffffffffffffffff1681565b6101ac6101a736600461122a565b610a90565b60405190151581526020016100c8565b6100f8600081565b6101ac6101d2366004611257565b610b57565b6032546040517fc40ff83500000000000000000000000000000000000000000000000000000000815260009173ffffffffffffffffffffffffffffffffffffffff81169163c40ff8359161025191889188917401000000000000000000000000000000000000000090910463ffffffff16906004016112a7565b60006040518083038186803b15801561026957600080fd5b505afa15801561027d573d6000803e3d6000fd5b50505050600061028d8585610cff565b9050600060405180606001604052806102a68888610d11565b63ffffffff1681526020016102bb8888610d34565b81526020016102ca8888610d4d565b67ffffffffffffffff16905290506102e28183610a90565b6102f157600392505050610480565b6102fc818386610d70565b61030b57600292505050610480565b60325481516040517f43ea4fa900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff858116600483015263ffffffff909216602482015291169063e084d9529082906343ea4fa990604401600060405180830381865afa158015610391573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526103d791908101906113ea565b88886040516103e79291906114bf565b6040519081900381207fffffffff0000000000000000000000000000000000000000000000000000000060e085901b16825261042892918990600401611521565b602060405180830381865afa158015610445573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061046991906115c9565b1561047957600192505050610480565b6000925050505b9392505050565b60006104b17fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b905073ffffffffffffffffffffffffffffffffffffffff811661050a5773ffffffffffffffffffffffffffffffffffffffff7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035561052c565b3373ffffffffffffffffffffffffffffffffffffffff82161461052c57600080fd5b600054610100900460ff161580801561054c5750600054600160ff909116105b806105665750303b158015610566575060005460ff166001145b6105f7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084015b60405180910390fd5b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055801561065557600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b61065e84610e89565b603280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff85811691909117909155600054604080517f416ecebf0000000000000000000000000000000000000000000000000000000081529051620100009092049092169163416ecebf9160048083019260209291908290030181865afa158015610704573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061072891906115eb565b603260146101000a81548163ffffffff021916908363ffffffff16021790555080156107ab57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050565b600080548351602085015160408087015190517fc9fc7bcd00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff878116600483015263ffffffff9094166024820152604481019290925267ffffffffffffffff16606482015283926201000090049091169063c9fc7bcd90608401602060405180830381865afa15801561085a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061087e9190611608565b90508015801561095a5750600054845160208601516040517f5b17bb7000000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff878116600483015263ffffffff90931660248201526044810191909152620100009092041690635b17bb7090606401602060405180830381865afa15801561091a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061093e9190611621565b67ffffffffffffffff16846040015167ffffffffffffffff1611155b15610969576003915050610a8a565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114801590610a655750600054845160208601516040517fa0dd43fc00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff878116600483015263ffffffff9093166024820152604481019190915262010000909204169063a0dd43fc90606401602060405180830381865afa158015610a25573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a499190611621565b67ffffffffffffffff16846040015167ffffffffffffffff1611155b15610a74576002915050610a8a565b8015610a84576001915050610a8a565b60009150505b92915050565b60008054604080517f861e1ca5000000000000000000000000000000000000000000000000000000008152855163ffffffff166004820152602086015160248201529085015167ffffffffffffffff16604482015273ffffffffffffffffffffffffffffffffffffffff8481166064830152620100009092049091169063861e1ca590608401602060405180830381865afa158015610b33573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061048091906115c9565b6000805485516040517f9d7f977500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff878116600483015263ffffffff90921660248201528582166044820152620100009092041690639d7f977590606401602060405180830381865afa158015610be4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c0891906115c9565b610c1457506000610cf7565b600054604080517fc9a54a99000000000000000000000000000000000000000000000000000000008152875163ffffffff166004820152602088015160248201529087015167ffffffffffffffff16604482015273ffffffffffffffffffffffffffffffffffffffff8681166064830152620100009092049091169063c9a54a9990608401602060405180830381865afa158015610cb6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cda91906115c9565b610ce657506000610cf7565b81610cf357506000610cf7565b5060015b949350505050565b6000610480610d0e8484610f2c565b90565b6000610d21600d6009848661163e565b610d2a91611668565b60e01c9392505050565b6000610d44602d600d848661163e565b610480916116b0565b6000610d5d60096001848661163e565b610d66916116ec565b60c01c9392505050565b603254600090610d9a908590859073ffffffffffffffffffffffffffffffffffffffff1685610b57565b610da657506000610480565b6000548451602086015160408088015190517fc9fc7bcd00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff888116600483015263ffffffff9094166024820152604481019290925267ffffffffffffffff16606482015284926201000090049091169063c9fc7bcd90608401602060405180830381865afa158015610e4e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e729190611608565b03610e7f57506000610480565b5060019392505050565b600054610100900460ff16610f20576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016105ee565b610f2981610f3c565b50565b6000610d4460516031848661163e565b600054610100900460ff16610fd3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016105ee565b6000805473ffffffffffffffffffffffffffffffffffffffff90921662010000027fffffffffffffffffffff0000000000000000000000000000000000000000ffff909216919091179055565b60008060006040848603121561103557600080fd5b833567ffffffffffffffff8082111561104d57600080fd5b818601915086601f83011261106157600080fd5b81358181111561107057600080fd5b87602082850101111561108257600080fd5b6020928301989097509590910135949350505050565b60048110610f29577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b602081016110dc83611098565b91905290565b73ffffffffffffffffffffffffffffffffffffffff81168114610f2957600080fd5b6000806040838503121561111757600080fd5b8235611122816110e2565b91506020830135611132816110e2565b809150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405160c0810167ffffffffffffffff8111828210171561118f5761118f61113d565b60405290565b63ffffffff81168114610f2957600080fd5b67ffffffffffffffff81168114610f2957600080fd5b6000606082840312156111cf57600080fd5b6040516060810181811067ffffffffffffffff821117156111f2576111f261113d565b604052905080823561120381611195565b815260208381013590820152604083013561121d816111a7565b6040919091015292915050565b6000806080838503121561123d57600080fd5b61124784846111bd565b91506060830135611132816110e2565b60008060008060c0858703121561126d57600080fd5b61127786866111bd565b93506060850135611287816110e2565b92506080850135611297816110e2565b9396929550929360a00135925050565b6040815282604082015282846060830137600060608483010152600060607fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f860116830101905063ffffffff83166020830152949350505050565b805161130f816111a7565b919050565b805160ff8116811461130f57600080fd5b600082601f83011261133657600080fd5b8151602067ffffffffffffffff808311156113535761135361113d565b8260051b6040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0603f830116810181811084821117156113965761139661113d565b60405293845260208187018101949081019250878511156113b657600080fd5b6020870191505b848210156113df5781516113d0816110e2565b835291830191908301906113bd565b979650505050505050565b6000602082840312156113fc57600080fd5b815167ffffffffffffffff8082111561141457600080fd5b9083019060c0828603121561142857600080fd5b61143061116c565b61143983611304565b815261144760208401611314565b602082015261145860408401611314565b604082015261146960608401611314565b606082015260808301518281111561148057600080fd5b61148c87828601611325565b60808301525060a0830151828111156114a457600080fd5b6114b087828601611325565b60a08301525095945050505050565b8183823760009101908152919050565b60008151808452602080850194506020840160005b8381101561151657815173ffffffffffffffffffffffffffffffffffffffff16875295820195908201906001016114e4565b509495945050505050565b6060815267ffffffffffffffff845116606082015260ff602085015116608082015260ff60408501511660a082015260ff60608501511660c08201526000608085015160c060e08401526115796101208401826114cf565b905060a08601517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0848303016101008501526115b582826114cf565b602085019690965250505060400152919050565b6000602082840312156115db57600080fd5b8151801515811461048057600080fd5b6000602082840312156115fd57600080fd5b815161048081611195565b60006020828403121561161a57600080fd5b5051919050565b60006020828403121561163357600080fd5b8151610480816111a7565b6000808585111561164e57600080fd5b8386111561165b57600080fd5b5050820193919092039150565b7fffffffff0000000000000000000000000000000000000000000000000000000081358181169160048510156116a85780818660040360031b1b83161692505b505092915050565b80356020831015610a8a577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff602084900360031b1b1692915050565b7fffffffffffffffff00000000000000000000000000000000000000000000000081358181169160088510156116a85760089490940360031b84901b169092169291505056fea26469706673582212206e026e4fceecbf2adf585fe61d64dfd2135d1866afa15877b834c9f89f5b1d5b64736f6c63430008160033",
249
+ "linkReferences": {},
250
+ "deployedLinkReferences": {}
251
+ }