@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
@@ -4,47 +4,403 @@
4
4
  "sourceName": "contracts/uln/dvn/adapters/CCIP/CCIPDVNAdapterFeeLib.sol",
5
5
  "abi": [
6
6
  {
7
+ "inputs": [],
8
+ "name": "CCIPDVN_OptionsUnsupported",
9
+ "type": "error"
10
+ },
11
+ {
12
+ "anonymous": false,
7
13
  "inputs": [
8
14
  {
9
- "internalType": "uint32",
10
- "name": "",
11
- "type": "uint32"
15
+ "components": [
16
+ {
17
+ "internalType": "uint32",
18
+ "name": "dstEid",
19
+ "type": "uint32"
20
+ },
21
+ {
22
+ "internalType": "uint128",
23
+ "name": "floorMarginUSD",
24
+ "type": "uint128"
25
+ }
26
+ ],
27
+ "indexed": false,
28
+ "internalType": "struct ICCIPDVNAdapterFeeLib.DstConfigParam[]",
29
+ "name": "params",
30
+ "type": "tuple[]"
31
+ }
32
+ ],
33
+ "name": "DstConfigSet",
34
+ "type": "event"
35
+ },
36
+ {
37
+ "anonymous": false,
38
+ "inputs": [
39
+ {
40
+ "indexed": false,
41
+ "internalType": "uint8",
42
+ "name": "version",
43
+ "type": "uint8"
44
+ }
45
+ ],
46
+ "name": "Initialized",
47
+ "type": "event"
48
+ },
49
+ {
50
+ "anonymous": false,
51
+ "inputs": [
52
+ {
53
+ "indexed": true,
54
+ "internalType": "address",
55
+ "name": "previousOwner",
56
+ "type": "address"
12
57
  },
13
58
  {
59
+ "indexed": true,
14
60
  "internalType": "address",
15
- "name": "",
61
+ "name": "newOwner",
16
62
  "type": "address"
63
+ }
64
+ ],
65
+ "name": "OwnershipTransferred",
66
+ "type": "event"
67
+ },
68
+ {
69
+ "inputs": [
70
+ {
71
+ "internalType": "uint32",
72
+ "name": "dstEid",
73
+ "type": "uint32"
74
+ }
75
+ ],
76
+ "name": "dstConfig",
77
+ "outputs": [
78
+ {
79
+ "internalType": "uint128",
80
+ "name": "floorMarginUSD",
81
+ "type": "uint128"
82
+ }
83
+ ],
84
+ "stateMutability": "view",
85
+ "type": "function"
86
+ },
87
+ {
88
+ "inputs": [
89
+ {
90
+ "components": [
91
+ {
92
+ "internalType": "uint32",
93
+ "name": "dstEid",
94
+ "type": "uint32"
95
+ },
96
+ {
97
+ "internalType": "uint64",
98
+ "name": "confirmations",
99
+ "type": "uint64"
100
+ },
101
+ {
102
+ "internalType": "address",
103
+ "name": "sender",
104
+ "type": "address"
105
+ },
106
+ {
107
+ "internalType": "uint16",
108
+ "name": "defaultMultiplierBps",
109
+ "type": "uint16"
110
+ }
111
+ ],
112
+ "internalType": "struct ICCIPDVNAdapterFeeLib.Param",
113
+ "name": "_params",
114
+ "type": "tuple"
17
115
  },
18
116
  {
19
- "internalType": "uint16",
20
- "name": "_defaultMultiplierBps",
21
- "type": "uint16"
117
+ "components": [
118
+ {
119
+ "internalType": "uint64",
120
+ "name": "chainSelector",
121
+ "type": "uint64"
122
+ },
123
+ {
124
+ "internalType": "uint16",
125
+ "name": "multiplierBps",
126
+ "type": "uint16"
127
+ },
128
+ {
129
+ "internalType": "bytes",
130
+ "name": "peer",
131
+ "type": "bytes"
132
+ },
133
+ {
134
+ "internalType": "uint256",
135
+ "name": "gas",
136
+ "type": "uint256"
137
+ }
138
+ ],
139
+ "internalType": "struct ICCIPDVNAdapter.DstConfig",
140
+ "name": "_dstConfig",
141
+ "type": "tuple"
22
142
  },
23
143
  {
24
- "internalType": "uint16",
25
- "name": "_multiplierBps",
26
- "type": "uint16"
144
+ "components": [
145
+ {
146
+ "internalType": "bytes",
147
+ "name": "receiver",
148
+ "type": "bytes"
149
+ },
150
+ {
151
+ "internalType": "bytes",
152
+ "name": "data",
153
+ "type": "bytes"
154
+ },
155
+ {
156
+ "components": [
157
+ {
158
+ "internalType": "address",
159
+ "name": "token",
160
+ "type": "address"
161
+ },
162
+ {
163
+ "internalType": "uint256",
164
+ "name": "amount",
165
+ "type": "uint256"
166
+ }
167
+ ],
168
+ "internalType": "struct Client.EVMTokenAmount[]",
169
+ "name": "tokenAmounts",
170
+ "type": "tuple[]"
171
+ },
172
+ {
173
+ "internalType": "address",
174
+ "name": "feeToken",
175
+ "type": "address"
176
+ },
177
+ {
178
+ "internalType": "bytes",
179
+ "name": "extraArgs",
180
+ "type": "bytes"
181
+ }
182
+ ],
183
+ "internalType": "struct Client.EVM2AnyMessage",
184
+ "name": "_message",
185
+ "type": "tuple"
27
186
  },
187
+ {
188
+ "internalType": "bytes",
189
+ "name": "_options",
190
+ "type": "bytes"
191
+ },
192
+ {
193
+ "internalType": "contract IRouterClient",
194
+ "name": "_router",
195
+ "type": "address"
196
+ }
197
+ ],
198
+ "name": "getFee",
199
+ "outputs": [
28
200
  {
29
201
  "internalType": "uint256",
30
- "name": "_executionFee",
202
+ "name": "totalFee",
31
203
  "type": "uint256"
32
204
  }
33
205
  ],
34
- "name": "getFee",
206
+ "stateMutability": "view",
207
+ "type": "function"
208
+ },
209
+ {
210
+ "inputs": [
211
+ {
212
+ "components": [
213
+ {
214
+ "internalType": "uint32",
215
+ "name": "dstEid",
216
+ "type": "uint32"
217
+ },
218
+ {
219
+ "internalType": "uint64",
220
+ "name": "confirmations",
221
+ "type": "uint64"
222
+ },
223
+ {
224
+ "internalType": "address",
225
+ "name": "sender",
226
+ "type": "address"
227
+ },
228
+ {
229
+ "internalType": "uint16",
230
+ "name": "defaultMultiplierBps",
231
+ "type": "uint16"
232
+ }
233
+ ],
234
+ "internalType": "struct ICCIPDVNAdapterFeeLib.Param",
235
+ "name": "_params",
236
+ "type": "tuple"
237
+ },
238
+ {
239
+ "components": [
240
+ {
241
+ "internalType": "uint64",
242
+ "name": "chainSelector",
243
+ "type": "uint64"
244
+ },
245
+ {
246
+ "internalType": "uint16",
247
+ "name": "multiplierBps",
248
+ "type": "uint16"
249
+ },
250
+ {
251
+ "internalType": "bytes",
252
+ "name": "peer",
253
+ "type": "bytes"
254
+ },
255
+ {
256
+ "internalType": "uint256",
257
+ "name": "gas",
258
+ "type": "uint256"
259
+ }
260
+ ],
261
+ "internalType": "struct ICCIPDVNAdapter.DstConfig",
262
+ "name": "_dstConfig",
263
+ "type": "tuple"
264
+ },
265
+ {
266
+ "components": [
267
+ {
268
+ "internalType": "bytes",
269
+ "name": "receiver",
270
+ "type": "bytes"
271
+ },
272
+ {
273
+ "internalType": "bytes",
274
+ "name": "data",
275
+ "type": "bytes"
276
+ },
277
+ {
278
+ "components": [
279
+ {
280
+ "internalType": "address",
281
+ "name": "token",
282
+ "type": "address"
283
+ },
284
+ {
285
+ "internalType": "uint256",
286
+ "name": "amount",
287
+ "type": "uint256"
288
+ }
289
+ ],
290
+ "internalType": "struct Client.EVMTokenAmount[]",
291
+ "name": "tokenAmounts",
292
+ "type": "tuple[]"
293
+ },
294
+ {
295
+ "internalType": "address",
296
+ "name": "feeToken",
297
+ "type": "address"
298
+ },
299
+ {
300
+ "internalType": "bytes",
301
+ "name": "extraArgs",
302
+ "type": "bytes"
303
+ }
304
+ ],
305
+ "internalType": "struct Client.EVM2AnyMessage",
306
+ "name": "_message",
307
+ "type": "tuple"
308
+ },
309
+ {
310
+ "internalType": "bytes",
311
+ "name": "_options",
312
+ "type": "bytes"
313
+ },
314
+ {
315
+ "internalType": "contract IRouterClient",
316
+ "name": "_router",
317
+ "type": "address"
318
+ }
319
+ ],
320
+ "name": "getFeeOnSend",
35
321
  "outputs": [
36
322
  {
37
323
  "internalType": "uint256",
38
- "name": "fee",
324
+ "name": "ccipFee",
325
+ "type": "uint256"
326
+ },
327
+ {
328
+ "internalType": "uint256",
329
+ "name": "totalFee",
39
330
  "type": "uint256"
40
331
  }
41
332
  ],
42
- "stateMutability": "pure",
333
+ "stateMutability": "payable",
334
+ "type": "function"
335
+ },
336
+ {
337
+ "inputs": [],
338
+ "name": "initialize",
339
+ "outputs": [],
340
+ "stateMutability": "nonpayable",
341
+ "type": "function"
342
+ },
343
+ {
344
+ "inputs": [],
345
+ "name": "owner",
346
+ "outputs": [
347
+ {
348
+ "internalType": "address",
349
+ "name": "",
350
+ "type": "address"
351
+ }
352
+ ],
353
+ "stateMutability": "view",
354
+ "type": "function"
355
+ },
356
+ {
357
+ "inputs": [],
358
+ "name": "renounceOwnership",
359
+ "outputs": [],
360
+ "stateMutability": "nonpayable",
361
+ "type": "function"
362
+ },
363
+ {
364
+ "inputs": [
365
+ {
366
+ "components": [
367
+ {
368
+ "internalType": "uint32",
369
+ "name": "dstEid",
370
+ "type": "uint32"
371
+ },
372
+ {
373
+ "internalType": "uint128",
374
+ "name": "floorMarginUSD",
375
+ "type": "uint128"
376
+ }
377
+ ],
378
+ "internalType": "struct ICCIPDVNAdapterFeeLib.DstConfigParam[]",
379
+ "name": "_param",
380
+ "type": "tuple[]"
381
+ }
382
+ ],
383
+ "name": "setDstConfig",
384
+ "outputs": [],
385
+ "stateMutability": "nonpayable",
386
+ "type": "function"
387
+ },
388
+ {
389
+ "inputs": [
390
+ {
391
+ "internalType": "address",
392
+ "name": "newOwner",
393
+ "type": "address"
394
+ }
395
+ ],
396
+ "name": "transferOwnership",
397
+ "outputs": [],
398
+ "stateMutability": "nonpayable",
43
399
  "type": "function"
44
400
  }
45
401
  ],
46
- "bytecode": "0x608060405234801561001057600080fd5b506101e0806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063212cf54f14610030575b600080fd5b61004361003e3660046100a9565b610055565b60405190815260200160405180910390f35b60008061ffff841615610068578361006a565b845b61ffff16905061271061007d828561012b565b610087919061016f565b979650505050505050565b803561ffff811681146100a457600080fd5b919050565b600080600080600060a086880312156100c157600080fd5b853563ffffffff811681146100d557600080fd5b9450602086013573ffffffffffffffffffffffffffffffffffffffff811681146100fe57600080fd5b935061010c60408701610092565b925061011a60608701610092565b949793965091946080013592915050565b8082028115828204841417610169577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b92915050565b6000826101a5577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b50049056fea26469706673582212202d58142d82e028b594095a30c0b41d9bc4b0afec0d520a122c94ea8074d2dea964736f6c63430008160033",
47
- "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061002b5760003560e01c8063212cf54f14610030575b600080fd5b61004361003e3660046100a9565b610055565b60405190815260200160405180910390f35b60008061ffff841615610068578361006a565b845b61ffff16905061271061007d828561012b565b610087919061016f565b979650505050505050565b803561ffff811681146100a457600080fd5b919050565b600080600080600060a086880312156100c157600080fd5b853563ffffffff811681146100d557600080fd5b9450602086013573ffffffffffffffffffffffffffffffffffffffff811681146100fe57600080fd5b935061010c60408701610092565b925061011a60608701610092565b949793965091946080013592915050565b8082028115828204841417610169577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b92915050565b6000826101a5577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b50049056fea26469706673582212202d58142d82e028b594095a30c0b41d9bc4b0afec0d520a122c94ea8074d2dea964736f6c63430008160033",
402
+ "bytecode": "0x608060405234801561001057600080fd5b50611093806100206000396000f3fe60806040526004361061007b5760003560e01c80638da5cb5b1161004e5780638da5cb5b146100f95780639e9449651461012e578063cbe56fcc1461018e578063f2fde38b146101bc57600080fd5b806334378d4814610080578063715018a6146100a25780637e034df8146100b75780638129fc1c146100e4575b600080fd5b34801561008c57600080fd5b506100a061009b366004610a4b565b6101dc565b005b3480156100ae57600080fd5b506100a06102e7565b6100ca6100c5366004610b0a565b6102fb565b604080519283526020830191909152015b60405180910390f35b3480156100f057600080fd5b506100a06103f6565b34801561010557600080fd5b5060335460405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100db565b34801561013a57600080fd5b5061016d610149366004610c04565b6065602052600090815260409020546fffffffffffffffffffffffffffffffff1681565b6040516fffffffffffffffffffffffffffffffff90911681526020016100db565b34801561019a57600080fd5b506101ae6101a9366004610b0a565b61062f565b6040519081526020016100db565b3480156101c857600080fd5b506100a06101d7366004610c26565b610727565b6101e46107de565b60005b818110156102a9573683838381811061020257610202610c43565b905060400201905060405180602001604052808260200160208101906102289190610c92565b6fffffffffffffffffffffffffffffffff1690526065600061024d6020850185610c04565b63ffffffff1681526020810191909152604001600020905181547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff909116179055506001016101e7565b507ff7b6cda39b1452736c50bab7ae8d79d01c5ce740d844f51fe6e1c9a2b5dd43d382826040516102db929190610cad565b60405180910390a15050565b6102ef6107de565b6102f9600061085f565b565b6000808315610336576040517fc47d60d500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff83166320487ded61035f60208a018a610d1a565b886040518363ffffffff1660e01b815260040161037d929190610e58565b602060405180830381865afa15801561039a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103be9190610fa1565b91506103e96103d36040890160208a01610fba565b6103e360808b0160608c01610fba565b846108d6565b9050965096945050505050565b60006104207fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b905073ffffffffffffffffffffffffffffffffffffffff81166104795773ffffffffffffffffffffffffffffffffffffffff7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035561049b565b3373ffffffffffffffffffffffffffffffffffffffff82161461049b57600080fd5b600054610100900460ff16158080156104bb5750600054600160ff909116105b806104d55750303b1580156104d5575060005460ff166001145b610566576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084015b60405180910390fd5b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905580156105c457600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6105cc610911565b801561062b57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020016102db565b5050565b60008215610669576040517fc47d60d500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff82166320487ded6106926020890189610d1a565b876040518363ffffffff1660e01b81526004016106b0929190610e58565b602060405180830381865afa1580156106cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106f19190610fa1565b905061071c6107066040880160208901610fba565b61071660808a0160608b01610fba565b836108d6565b979650505050505050565b61072f6107de565b73ffffffffffffffffffffffffffffffffffffffff81166107d2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161055d565b6107db8161085f565b50565b60335473ffffffffffffffffffffffffffffffffffffffff1633146102f9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161055d565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60008061ffff8516156108e957846108eb565b835b61ffff1690506127106108fe8285610fde565b6109089190611022565b95945050505050565b600054610100900460ff166109a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161055d565b6102f9600054610100900460ff16610a42576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161055d565b6102f93361085f565b60008060208385031215610a5e57600080fd5b823567ffffffffffffffff80821115610a7657600080fd5b818501915085601f830112610a8a57600080fd5b813581811115610a9957600080fd5b8660208260061b8501011115610aae57600080fd5b60209290920196919550909350505050565b600060808284031215610ad257600080fd5b50919050565b73ffffffffffffffffffffffffffffffffffffffff811681146107db57600080fd5b8035610b0581610ad8565b919050565b6000806000806000806101008789031215610b2457600080fd5b610b2e8888610ac0565b9550608087013567ffffffffffffffff80821115610b4b57600080fd5b610b578a838b01610ac0565b965060a0890135915080821115610b6d57600080fd5b9088019060a0828b031215610b8157600080fd5b90945060c08801359080821115610b9757600080fd5b818901915089601f830112610bab57600080fd5b813581811115610bba57600080fd5b8a6020828501011115610bcc57600080fd5b602083019550809450505050610be460e08801610afa565b90509295509295509295565b803563ffffffff81168114610b0557600080fd5b600060208284031215610c1657600080fd5b610c1f82610bf0565b9392505050565b600060208284031215610c3857600080fd5b8135610c1f81610ad8565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b80356fffffffffffffffffffffffffffffffff81168114610b0557600080fd5b600060208284031215610ca457600080fd5b610c1f82610c72565b6020808252818101839052600090604080840186845b87811015610d0d5763ffffffff610cd983610bf0565b1683526fffffffffffffffffffffffffffffffff610cf8868401610c72565b16838601529183019190830190600101610cc3565b5090979650505050505050565b600060208284031215610d2c57600080fd5b813567ffffffffffffffff81168114610c1f57600080fd5b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112610d7957600080fd5b830160208101925035905067ffffffffffffffff811115610d9957600080fd5b803603821315610da857600080fd5b9250929050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b8183526000602080850194508260005b85811015610e4d578135610e1b81610ad8565b73ffffffffffffffffffffffffffffffffffffffff168752818301358388015260409687019690910190600101610e08565b509495945050505050565b600067ffffffffffffffff808516835260406020840152610e798485610d44565b60a06040860152610e8e60e086018284610daf565b915050610e9e6020860186610d44565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc080878503016060880152610ed4848385610daf565b9350604088013592507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1883603018312610f0d57600080fd5b60209288019283019235915084821115610f2657600080fd5b8160061b3603831315610f3857600080fd5b80878503016080880152610f4d848385610df8565b9450610f5b60608901610afa565b73ffffffffffffffffffffffffffffffffffffffff811660a08901529350610f866080890189610d44565b94509250808786030160c0880152505061071c838383610daf565b600060208284031215610fb357600080fd5b5051919050565b600060208284031215610fcc57600080fd5b813561ffff81168114610c1f57600080fd5b808202811582820484141761101c577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b92915050565b600082611058577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b50049056fea26469706673582212203a495abdc99a1141e517801f7e0731200a4eaa1b352ca5131430a3c0681ee0dd64736f6c63430008160033",
403
+ "deployedBytecode": "0x60806040526004361061007b5760003560e01c80638da5cb5b1161004e5780638da5cb5b146100f95780639e9449651461012e578063cbe56fcc1461018e578063f2fde38b146101bc57600080fd5b806334378d4814610080578063715018a6146100a25780637e034df8146100b75780638129fc1c146100e4575b600080fd5b34801561008c57600080fd5b506100a061009b366004610a4b565b6101dc565b005b3480156100ae57600080fd5b506100a06102e7565b6100ca6100c5366004610b0a565b6102fb565b604080519283526020830191909152015b60405180910390f35b3480156100f057600080fd5b506100a06103f6565b34801561010557600080fd5b5060335460405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100db565b34801561013a57600080fd5b5061016d610149366004610c04565b6065602052600090815260409020546fffffffffffffffffffffffffffffffff1681565b6040516fffffffffffffffffffffffffffffffff90911681526020016100db565b34801561019a57600080fd5b506101ae6101a9366004610b0a565b61062f565b6040519081526020016100db565b3480156101c857600080fd5b506100a06101d7366004610c26565b610727565b6101e46107de565b60005b818110156102a9573683838381811061020257610202610c43565b905060400201905060405180602001604052808260200160208101906102289190610c92565b6fffffffffffffffffffffffffffffffff1690526065600061024d6020850185610c04565b63ffffffff1681526020810191909152604001600020905181547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff909116179055506001016101e7565b507ff7b6cda39b1452736c50bab7ae8d79d01c5ce740d844f51fe6e1c9a2b5dd43d382826040516102db929190610cad565b60405180910390a15050565b6102ef6107de565b6102f9600061085f565b565b6000808315610336576040517fc47d60d500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff83166320487ded61035f60208a018a610d1a565b886040518363ffffffff1660e01b815260040161037d929190610e58565b602060405180830381865afa15801561039a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103be9190610fa1565b91506103e96103d36040890160208a01610fba565b6103e360808b0160608c01610fba565b846108d6565b9050965096945050505050565b60006104207fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b905073ffffffffffffffffffffffffffffffffffffffff81166104795773ffffffffffffffffffffffffffffffffffffffff7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035561049b565b3373ffffffffffffffffffffffffffffffffffffffff82161461049b57600080fd5b600054610100900460ff16158080156104bb5750600054600160ff909116105b806104d55750303b1580156104d5575060005460ff166001145b610566576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084015b60405180910390fd5b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905580156105c457600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6105cc610911565b801561062b57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020016102db565b5050565b60008215610669576040517fc47d60d500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff82166320487ded6106926020890189610d1a565b876040518363ffffffff1660e01b81526004016106b0929190610e58565b602060405180830381865afa1580156106cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106f19190610fa1565b905061071c6107066040880160208901610fba565b61071660808a0160608b01610fba565b836108d6565b979650505050505050565b61072f6107de565b73ffffffffffffffffffffffffffffffffffffffff81166107d2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161055d565b6107db8161085f565b50565b60335473ffffffffffffffffffffffffffffffffffffffff1633146102f9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161055d565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60008061ffff8516156108e957846108eb565b835b61ffff1690506127106108fe8285610fde565b6109089190611022565b95945050505050565b600054610100900460ff166109a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161055d565b6102f9600054610100900460ff16610a42576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161055d565b6102f93361085f565b60008060208385031215610a5e57600080fd5b823567ffffffffffffffff80821115610a7657600080fd5b818501915085601f830112610a8a57600080fd5b813581811115610a9957600080fd5b8660208260061b8501011115610aae57600080fd5b60209290920196919550909350505050565b600060808284031215610ad257600080fd5b50919050565b73ffffffffffffffffffffffffffffffffffffffff811681146107db57600080fd5b8035610b0581610ad8565b919050565b6000806000806000806101008789031215610b2457600080fd5b610b2e8888610ac0565b9550608087013567ffffffffffffffff80821115610b4b57600080fd5b610b578a838b01610ac0565b965060a0890135915080821115610b6d57600080fd5b9088019060a0828b031215610b8157600080fd5b90945060c08801359080821115610b9757600080fd5b818901915089601f830112610bab57600080fd5b813581811115610bba57600080fd5b8a6020828501011115610bcc57600080fd5b602083019550809450505050610be460e08801610afa565b90509295509295509295565b803563ffffffff81168114610b0557600080fd5b600060208284031215610c1657600080fd5b610c1f82610bf0565b9392505050565b600060208284031215610c3857600080fd5b8135610c1f81610ad8565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b80356fffffffffffffffffffffffffffffffff81168114610b0557600080fd5b600060208284031215610ca457600080fd5b610c1f82610c72565b6020808252818101839052600090604080840186845b87811015610d0d5763ffffffff610cd983610bf0565b1683526fffffffffffffffffffffffffffffffff610cf8868401610c72565b16838601529183019190830190600101610cc3565b5090979650505050505050565b600060208284031215610d2c57600080fd5b813567ffffffffffffffff81168114610c1f57600080fd5b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112610d7957600080fd5b830160208101925035905067ffffffffffffffff811115610d9957600080fd5b803603821315610da857600080fd5b9250929050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b8183526000602080850194508260005b85811015610e4d578135610e1b81610ad8565b73ffffffffffffffffffffffffffffffffffffffff168752818301358388015260409687019690910190600101610e08565b509495945050505050565b600067ffffffffffffffff808516835260406020840152610e798485610d44565b60a06040860152610e8e60e086018284610daf565b915050610e9e6020860186610d44565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc080878503016060880152610ed4848385610daf565b9350604088013592507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1883603018312610f0d57600080fd5b60209288019283019235915084821115610f2657600080fd5b8160061b3603831315610f3857600080fd5b80878503016080880152610f4d848385610df8565b9450610f5b60608901610afa565b73ffffffffffffffffffffffffffffffffffffffff811660a08901529350610f866080890189610d44565b94509250808786030160c0880152505061071c838383610daf565b600060208284031215610fb357600080fd5b5051919050565b600060208284031215610fcc57600080fd5b813561ffff81168114610c1f57600080fd5b808202811582820484141761101c577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b92915050565b600082611058577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b50049056fea26469706673582212203a495abdc99a1141e517801f7e0731200a4eaa1b352ca5131430a3c0681ee0dd64736f6c63430008160033",
48
404
  "linkReferences": {},
49
405
  "deployedLinkReferences": {}
50
406
  }