@layerzerolabs/lz-evm-sdk-v1 1.5.7 → 1.5.9

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 (77) hide show
  1. package/artifacts/contracts/interfaces/IContractOne.sol/IContractOne.json +24 -0
  2. package/artifacts/contracts/interfaces/ILayerZeroEndpoint.sol/ILayerZeroEndpoint.json +447 -0
  3. package/artifacts/contracts/interfaces/ILayerZeroMessagingLibrary.sol/ILayerZeroMessagingLibrary.json +160 -0
  4. package/artifacts/contracts/interfaces/ILayerZeroMessagingLibraryV2.sol/ILayerZeroMessagingLibraryV2.json +184 -0
  5. package/artifacts/contracts/interfaces/ILayerZeroOracle.sol/ILayerZeroOracle.json +77 -0
  6. package/artifacts/contracts/interfaces/ILayerZeroOracleV2.sol/ILayerZeroOracleV2.json +97 -0
  7. package/artifacts/contracts/interfaces/ILayerZeroPriceFeed.sol/ILayerZeroPriceFeed.json +107 -0
  8. package/artifacts/contracts/interfaces/ILayerZeroReceiver.sol/ILayerZeroReceiver.json +39 -0
  9. package/artifacts/contracts/interfaces/ILayerZeroRelayer.sol/ILayerZeroRelayer.json +92 -0
  10. package/artifacts/contracts/interfaces/ILayerZeroRelayerV2.sol/ILayerZeroRelayerV2.json +107 -0
  11. package/artifacts/contracts/interfaces/ILayerZeroRelayerV2PriceData.sol/ILayerZeroRelayerV2PriceData.json +83 -0
  12. package/artifacts/contracts/interfaces/ILayerZeroTreasury.sol/ILayerZeroTreasury.json +40 -0
  13. package/artifacts/contracts/interfaces/ILayerZeroUltraLightNodeV1.sol/ILayerZeroUltraLightNodeV1.json +156 -0
  14. package/artifacts/contracts/interfaces/ILayerZeroUltraLightNodeV2.sol/ILayerZeroUltraLightNodeV2.json +582 -0
  15. package/artifacts/contracts/interfaces/ILayerZeroUserApplicationConfig.sol/ILayerZeroUserApplicationConfig.json +83 -0
  16. package/artifacts/contracts/interfaces/ILayerZeroValidationLibrary.sol/ILayerZeroValidationLibrary.json +77 -0
  17. package/artifacts/contracts/interfaces/IValidationLibraryHelper.sol/IValidationLibraryHelper.json +146 -0
  18. package/artifacts/contracts/interfaces/IValidationLibraryHelperV2.sol/IValidationLibraryHelperV2.json +154 -0
  19. package/artifacts/contracts/proof/FPValidator.sol/FPValidator.json +326 -0
  20. package/artifacts/contracts/proof/FPValidator.sol/IStargate.json +10 -0
  21. package/artifacts/contracts/proof/MPTValidator.sol/MPTValidator.json +146 -0
  22. package/artifacts/contracts/proof/MPTValidator01.sol/IStargate.json +10 -0
  23. package/artifacts/contracts/proof/MPTValidator01.sol/MPTValidator01.json +339 -0
  24. package/artifacts/contracts/proof/MPTValidatorStgV3.sol/MPTValidatorStgV3.json +310 -0
  25. package/artifacts/contracts/proof/MPTValidatorV2.sol/MPTValidatorV2.json +212 -0
  26. package/artifacts/contracts/proof/MPTValidatorV4.sol/IStargate.json +10 -0
  27. package/artifacts/contracts/proof/MPTValidatorV4.sol/IUltraLightNode.json +108 -0
  28. package/artifacts/contracts/proof/MPTValidatorV4.sol/MPTValidatorV4.json +414 -0
  29. package/artifacts/contracts/proof/MPTValidatorV5.sol/IStargate.json +10 -0
  30. package/artifacts/contracts/proof/MPTValidatorV5.sol/IUltraLightNode.json +108 -0
  31. package/artifacts/contracts/proof/MPTValidatorV5.sol/MPTValidatorV5.json +432 -0
  32. package/artifacts/contracts/proof/utility/Buffer.sol/Buffer.json +10 -0
  33. package/artifacts/contracts/proof/utility/LayerZeroPacket.sol/LayerZeroPacket.json +10 -0
  34. package/artifacts/contracts/proof/utility/RLPDecode.sol/RLPDecode.json +10 -0
  35. package/artifacts/contracts/proof/utility/UltraLightNodeEVMDecoder.sol/UltraLightNodeEVMDecoder.json +10 -0
  36. package/deployments/cathay-testnet/DefaultProxyAdmin.json +273 -0
  37. package/deployments/cathay-testnet/Endpoint.json +1282 -0
  38. package/deployments/cathay-testnet/FPValidator.json +382 -0
  39. package/deployments/cathay-testnet/MPTValidator01.json +395 -0
  40. package/deployments/cathay-testnet/NonceContract.json +159 -0
  41. package/deployments/cathay-testnet/PriceFeed.json +760 -0
  42. package/deployments/cathay-testnet/PriceFeed_Implementation.json +776 -0
  43. package/deployments/cathay-testnet/PriceFeed_Proxy.json +233 -0
  44. package/deployments/cathay-testnet/RelayerV2.json +1169 -0
  45. package/deployments/cathay-testnet/RelayerV2_Implementation.json +1270 -0
  46. package/deployments/cathay-testnet/RelayerV2_Proxy.json +245 -0
  47. package/deployments/cathay-testnet/TreasuryV2.json +458 -0
  48. package/deployments/cathay-testnet/UltraLightNodeV2.json +1816 -0
  49. package/deployments/kava-testnet/DefaultProxyAdmin.json +273 -0
  50. package/deployments/scroll-testnet/DefaultProxyAdmin.json +273 -0
  51. package/deployments/scroll-testnet/Endpoint.json +1282 -0
  52. package/deployments/scroll-testnet/FPValidator.json +382 -0
  53. package/deployments/scroll-testnet/MPTValidator01.json +395 -0
  54. package/deployments/scroll-testnet/NonceContract.json +159 -0
  55. package/deployments/scroll-testnet/PriceFeed.json +760 -0
  56. package/deployments/scroll-testnet/PriceFeed_Implementation.json +776 -0
  57. package/deployments/scroll-testnet/PriceFeed_Proxy.json +233 -0
  58. package/deployments/scroll-testnet/RelayerV2.json +1169 -0
  59. package/deployments/scroll-testnet/RelayerV2_Implementation.json +1270 -0
  60. package/deployments/scroll-testnet/RelayerV2_Proxy.json +245 -0
  61. package/deployments/scroll-testnet/TreasuryV2.json +458 -0
  62. package/deployments/scroll-testnet/UltraLightNodeV2.json +1816 -0
  63. package/deployments/tenet-testnet/DefaultProxyAdmin.json +273 -0
  64. package/deployments/tenet-testnet/Endpoint.json +1282 -0
  65. package/deployments/tenet-testnet/FPValidator.json +382 -0
  66. package/deployments/tenet-testnet/MPTValidator01.json +395 -0
  67. package/deployments/tenet-testnet/NonceContract.json +159 -0
  68. package/deployments/tenet-testnet/PriceFeed.json +760 -0
  69. package/deployments/tenet-testnet/PriceFeed_Implementation.json +776 -0
  70. package/deployments/tenet-testnet/PriceFeed_Proxy.json +233 -0
  71. package/deployments/tenet-testnet/RelayerV2.json +1169 -0
  72. package/deployments/tenet-testnet/RelayerV2_Implementation.json +1270 -0
  73. package/deployments/tenet-testnet/RelayerV2_Proxy.json +245 -0
  74. package/deployments/tenet-testnet/TreasuryV2.json +458 -0
  75. package/deployments/tenet-testnet/UltraLightNodeV2.json +1816 -0
  76. package/package.json +8 -4
  77. package/artifacts/contracts/oracle/MultiSigOracle.sol/MultiSigOracle.json +0 -827
@@ -0,0 +1,310 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "MPTValidatorStgV3",
4
+ "sourceName": "contracts/proof/MPTValidatorStgV3.sol",
5
+ "abi": [
6
+ {
7
+ "inputs": [
8
+ {
9
+ "internalType": "address",
10
+ "name": "_stargateBridgeAddress",
11
+ "type": "address"
12
+ },
13
+ {
14
+ "internalType": "address",
15
+ "name": "_stgTokenAddress",
16
+ "type": "address"
17
+ },
18
+ {
19
+ "internalType": "uint16",
20
+ "name": "_localChainId",
21
+ "type": "uint16"
22
+ }
23
+ ],
24
+ "stateMutability": "nonpayable",
25
+ "type": "constructor"
26
+ },
27
+ {
28
+ "inputs": [],
29
+ "name": "PACKET_SIGNATURE",
30
+ "outputs": [
31
+ {
32
+ "internalType": "bytes32",
33
+ "name": "",
34
+ "type": "bytes32"
35
+ }
36
+ ],
37
+ "stateMutability": "view",
38
+ "type": "function"
39
+ },
40
+ {
41
+ "inputs": [
42
+ {
43
+ "internalType": "bytes",
44
+ "name": "data",
45
+ "type": "bytes"
46
+ },
47
+ {
48
+ "internalType": "uint16",
49
+ "name": "srcChain",
50
+ "type": "uint16"
51
+ },
52
+ {
53
+ "internalType": "uint256",
54
+ "name": "sizeOfSrcAddress",
55
+ "type": "uint256"
56
+ },
57
+ {
58
+ "internalType": "bytes32",
59
+ "name": "ulnAddress",
60
+ "type": "bytes32"
61
+ }
62
+ ],
63
+ "name": "getPacket",
64
+ "outputs": [
65
+ {
66
+ "components": [
67
+ {
68
+ "internalType": "uint16",
69
+ "name": "srcChainId",
70
+ "type": "uint16"
71
+ },
72
+ {
73
+ "internalType": "uint16",
74
+ "name": "dstChainId",
75
+ "type": "uint16"
76
+ },
77
+ {
78
+ "internalType": "uint64",
79
+ "name": "nonce",
80
+ "type": "uint64"
81
+ },
82
+ {
83
+ "internalType": "address",
84
+ "name": "dstAddress",
85
+ "type": "address"
86
+ },
87
+ {
88
+ "internalType": "bytes",
89
+ "name": "srcAddress",
90
+ "type": "bytes"
91
+ },
92
+ {
93
+ "internalType": "bytes32",
94
+ "name": "ulnAddress",
95
+ "type": "bytes32"
96
+ },
97
+ {
98
+ "internalType": "bytes",
99
+ "name": "payload",
100
+ "type": "bytes"
101
+ }
102
+ ],
103
+ "internalType": "struct LayerZeroPacket.Packet",
104
+ "name": "",
105
+ "type": "tuple"
106
+ }
107
+ ],
108
+ "stateMutability": "pure",
109
+ "type": "function"
110
+ },
111
+ {
112
+ "inputs": [
113
+ {
114
+ "internalType": "bytes32",
115
+ "name": "hashRoot",
116
+ "type": "bytes32"
117
+ },
118
+ {
119
+ "internalType": "uint256[]",
120
+ "name": "receiptSlotIndex",
121
+ "type": "uint256[]"
122
+ },
123
+ {
124
+ "internalType": "uint256",
125
+ "name": "logIndex",
126
+ "type": "uint256"
127
+ },
128
+ {
129
+ "internalType": "bytes[]",
130
+ "name": "proof",
131
+ "type": "bytes[]"
132
+ }
133
+ ],
134
+ "name": "getVerifyLog",
135
+ "outputs": [
136
+ {
137
+ "components": [
138
+ {
139
+ "internalType": "bytes32",
140
+ "name": "contractAddress",
141
+ "type": "bytes32"
142
+ },
143
+ {
144
+ "internalType": "bytes32",
145
+ "name": "topicZeroSig",
146
+ "type": "bytes32"
147
+ },
148
+ {
149
+ "internalType": "bytes",
150
+ "name": "data",
151
+ "type": "bytes"
152
+ }
153
+ ],
154
+ "internalType": "struct MPTValidatorStgV3.ULNLog",
155
+ "name": "",
156
+ "type": "tuple"
157
+ }
158
+ ],
159
+ "stateMutability": "pure",
160
+ "type": "function"
161
+ },
162
+ {
163
+ "inputs": [],
164
+ "name": "localChainId",
165
+ "outputs": [
166
+ {
167
+ "internalType": "uint16",
168
+ "name": "",
169
+ "type": "uint16"
170
+ }
171
+ ],
172
+ "stateMutability": "view",
173
+ "type": "function"
174
+ },
175
+ {
176
+ "inputs": [
177
+ {
178
+ "internalType": "bytes",
179
+ "name": "_payload",
180
+ "type": "bytes"
181
+ }
182
+ ],
183
+ "name": "secureStgPayload",
184
+ "outputs": [
185
+ {
186
+ "internalType": "bytes",
187
+ "name": "",
188
+ "type": "bytes"
189
+ }
190
+ ],
191
+ "stateMutability": "view",
192
+ "type": "function"
193
+ },
194
+ {
195
+ "inputs": [
196
+ {
197
+ "internalType": "bytes",
198
+ "name": "_payload",
199
+ "type": "bytes"
200
+ }
201
+ ],
202
+ "name": "secureStgTokenPayload",
203
+ "outputs": [
204
+ {
205
+ "internalType": "bytes",
206
+ "name": "",
207
+ "type": "bytes"
208
+ }
209
+ ],
210
+ "stateMutability": "pure",
211
+ "type": "function"
212
+ },
213
+ {
214
+ "inputs": [],
215
+ "name": "stargateBridgeAddress",
216
+ "outputs": [
217
+ {
218
+ "internalType": "address",
219
+ "name": "",
220
+ "type": "address"
221
+ }
222
+ ],
223
+ "stateMutability": "view",
224
+ "type": "function"
225
+ },
226
+ {
227
+ "inputs": [],
228
+ "name": "stgTokenAddress",
229
+ "outputs": [
230
+ {
231
+ "internalType": "address",
232
+ "name": "",
233
+ "type": "address"
234
+ }
235
+ ],
236
+ "stateMutability": "view",
237
+ "type": "function"
238
+ },
239
+ {
240
+ "inputs": [
241
+ {
242
+ "internalType": "bytes32",
243
+ "name": "_receiptsRoot",
244
+ "type": "bytes32"
245
+ },
246
+ {
247
+ "internalType": "bytes",
248
+ "name": "_transactionProof",
249
+ "type": "bytes"
250
+ },
251
+ {
252
+ "internalType": "uint256",
253
+ "name": "_remoteAddressSize",
254
+ "type": "uint256"
255
+ }
256
+ ],
257
+ "name": "validateProof",
258
+ "outputs": [
259
+ {
260
+ "components": [
261
+ {
262
+ "internalType": "uint16",
263
+ "name": "srcChainId",
264
+ "type": "uint16"
265
+ },
266
+ {
267
+ "internalType": "uint16",
268
+ "name": "dstChainId",
269
+ "type": "uint16"
270
+ },
271
+ {
272
+ "internalType": "uint64",
273
+ "name": "nonce",
274
+ "type": "uint64"
275
+ },
276
+ {
277
+ "internalType": "address",
278
+ "name": "dstAddress",
279
+ "type": "address"
280
+ },
281
+ {
282
+ "internalType": "bytes",
283
+ "name": "srcAddress",
284
+ "type": "bytes"
285
+ },
286
+ {
287
+ "internalType": "bytes32",
288
+ "name": "ulnAddress",
289
+ "type": "bytes32"
290
+ },
291
+ {
292
+ "internalType": "bytes",
293
+ "name": "payload",
294
+ "type": "bytes"
295
+ }
296
+ ],
297
+ "internalType": "struct LayerZeroPacket.Packet",
298
+ "name": "",
299
+ "type": "tuple"
300
+ }
301
+ ],
302
+ "stateMutability": "view",
303
+ "type": "function"
304
+ }
305
+ ],
306
+ "bytecode": "0x60e06040523480156200001157600080fd5b506040516200213d3803806200213d833981016040819052620000349162000083565b606092831b6001600160601b03199081166080529190921b1660a05260f01b6001600160f01b03191660c052620000d5565b80516001600160a01b03811681146200007e57600080fd5b919050565b60008060006060848603121562000098578283fd5b620000a38462000066565b9250620000b36020850162000066565b9150604084015161ffff81168114620000ca578182fd5b809150509250925092565b60805160601c60a05160601c60c05160f01c6120236200011a600039806101d452806102cc52508061019d528061039c5250806101f8528061033152506120236000f3fe608060405234801561001057600080fd5b50600436106100a35760003560e01c80636348d26911610076578063be9d395e1161005b578063be9d395e14610143578063e0cabadd14610158578063ea455df91461016b576100a3565b80636348d2691461011b578063b71e0f7114610123576100a3565b80630f222e65146100a85780633fc18d4c146100d15780635711c2a8146100e65780635b056da514610106575b600080fd5b6100bb6100b6366004611861565b61017e565b6040516100c89190611df5565b60405180910390f35b6100d961019b565b6040516100c89190611bef565b6100f96100f4366004611952565b6101bf565b6040516100c89190611c19565b61010e6101d2565b6040516100c89190611e24565b6100d96101f6565b6101366101313660046118d5565b61021a565b6040516100c89190611d50565b61014b610413565b6040516100c89190611c10565b610136610166366004611985565b610437565b6100f9610179366004611952565b61044b565b61018661158b565b61019285858585610456565b95945050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60606101ca826105d0565b90505b919050565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b6102226115aa565b600080808061023387890189611a25565b935093509350935060006102498a848487610456565b60208101519091507fe8d23d927749ec8e512eb885679c2977d57068839d8cca1a85685dbbea0648f6146102b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102a990611cbc565b60405180910390fd5b60006102c88260400151878a85600001516106f1565b90507f000000000000000000000000000000000000000000000000000000000000000061ffff16816020015161ffff161461032f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102a990611cf3565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16816060015173ffffffffffffffffffffffffffffffffffffffff16141561039a576103948160c001516105d0565b60c08201525b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16816060015173ffffffffffffffffffffffffffffffffffffffff161415610405576103ff8160c001516107e7565b60c08201525b9a9950505050505050505050565b7fe8d23d927749ec8e512eb885679c2977d57068839d8cca1a85685dbbea0648f681565b61043f6115aa565b610192858585856106f1565b60606101ca826107e7565b61045e61158b565b8151845114610499576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102a990611c4e565b6104a16115e8565b606060005b845181101561054d578481815181106104bb57fe5b6020026020010151915081805190602001208814610505576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102a990611c85565b61052b87828151811061051457fe5b602002602001015161052584610891565b90610905565b925060018551038110156105455761054283610ac1565b97505b6001016104a6565b50600061055e600361052585610bde565b9050600061057461056f8389610905565b610c6a565b905061057e61158b565b61058f61058a83610d16565b610ac1565b81526105a861058a60006105a285610d16565b90610dc6565b60208201526105be6105b983610d16565b610e8d565b60408201529998505050505050505050565b6020810151606090600160ff821614156106ea576000806000806000806000898060200190518101906106039190611a9e565b9750975097509750975097509750506000815111156106e25781516000901561062d575060148201515b803b806106df576000826040516020016106479190611bbf565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181526020838101835260008085529251919450919261069d928f928f928f928f928f928f928b9201611e33565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190529c506101cd9b505050505050505050505050565b50505b505050505050505b5090919050565b6106f96115aa565b602085015160608601516068870151858801607c01519190610719611602565b6107238189610fba565b506107338160008c60888c610ff4565b50600061074b896107458660146110ce565b906110ce565b9050610755611602565b61075f8183610fba565b5061077b60008d6107718d609c611145565b8492919086610ff4565b506040805160e08101825261ffff808e16825298909816602089015267ffffffffffffffff909416938701939093525073ffffffffffffffffffffffffffffffffffffffff9093166060850152915160808401525060a082018490525160c08201529050949350505050565b60606000808380602001905181019061080091906119e0565b9150915060008083511115610816575060148201515b73ffffffffffffffffffffffffffffffffffffffff81166108885760405161dead90600090610849908390602001611bbf565b6040516020818303038152906040529050808460405160200161086d929190611c2c565b604051602081830303815290604052955050505050506101cd565b50929392505050565b6108996115e8565b602082018051835160009190911a9080158015906108ba575060c060ff8316105b156108e957600192909201917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff015b6040805180820190915290815260208101929092525092915050565b61090d6115e8565b610916836111c0565b61096b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180611fac6021913960400191505060405180910390fd5b610974836111fa565b82106109e157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f524c50206974656d206f7574206f6620626f756e647300000000000000000000604482015290519081900360640190fd5b82516020840151908101906000906109f890611252565b60208601510190506000805b85811015610a2357610a15836112f1565b928301929150600101610a04565b50610a2d826112f1565b9050828183011115610aa057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f524c50206974656d206f766572666c6f77000000000000000000000000000000604482015290519081900360640190fd5b60405180604001604052808281526020018381525093505050505b92915050565b805160009015801590610ad657508151602110155b610b4157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f524c504465636f64657220746f55696e7420696e76616c6964206c656e677468604482015290519081900360640190fd5b6000610b508360200151611252565b90508083600001511015610baf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180611f846028913960400191505060405180910390fd5b825160208085015183018051928490039291831015610bd557826020036101000a820491505b50949350505050565b610be66115e8565b6000610bf58360200151611252565b60208401518451908201805192935060009290921a91908015801590610c1e575060c060ff8416105b15610c4d57600191909101907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff015b604080518082019091529081526020810191909152949350505050565b610c7261161c565b610c7b826111c0565b610ce657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f524c504465636f646572206974657261746f72206973206e6f74206c69737400604482015290519081900360640190fd5b6000610cf58360200151611252565b60208085015160408051808201909152868152920190820152915050919050565b610d1e6115e8565b610d27826113c6565b610d9257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f524c504465636f646572206974657261746f7220686173206e6f206e65787400604482015290519081900360640190fd5b60208201516000610da2826112f1565b80830160209586015260408051808201909152908152938401919091525090919050565b610dce6115e8565b610dd7836111c0565b610e2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180611fac6021913960400191505060405180910390fd5b6000610e3b8460200151611252565b60208501510190506000805b84811015610e6657610e58836112f1565b928301929150600101610e47565b50610e70826112f1565b604080518082019091529081526020810192909252509392505050565b8051606090610ee7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180611fcd6021913960400191505060405180910390fd5b6000610ef68360200151611252565b90508083600001511015610f55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180611f846028913960400191505060405180910390fd5b825181900360008167ffffffffffffffff81118015610f7357600080fd5b506040519080825280601f01601f191660200182016040528015610f9e576020820181803683370190505b5090506000816020019050610bd58487602001510182856113db565b610fc2611602565b6020820615610fd75760208206602003820191505b506020828101829052604080518085526000815290920101905290565b610ffc611602565b85602001518286011115611026576110268661101e8860200151888601611462565b600202611479565b6000808751805188602083010193508089870111156110455788860182525b5050508484015b6020841061108957805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909301926020918201910161104c565b5181517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60208690036101000a01908116901991909116179052508495945050505050565b60008282111561113f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b6000828201838110156111b957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b80516000906111d1575060006101cd565b6020820151805160001a9060c08210156111f0576000925050506101cd565b5060019392505050565b805160009061120b575060006101cd565b60008061121b8460200151611252565b602085015185519181019250015b808210156112495761123a826112f1565b60019093019290910190611229565b50909392505050565b8051600090811a608081101561126c5760009150506101cd565b60b8811080611287575060c08110801590611287575060f881105b156112965760019150506101cd565b60c08110156112c8577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff4a0190506101cd565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0a0190506101cd565b80516000908190811a608081101561130c57600191506113bf565b60b881101561133f577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81810191506113bf565b60c081101561136c5760b78103600185019450806020036101000a855104600182018101935050506113bf565b60f881101561139f577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff41810191506113bf565b60f78103600185019450806020036101000a855104600182018101935050505b5092915050565b80518051602091820151919092015191011190565b806113e55761145d565b5b602081106114235782518252602092830192909101907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0016113e6565b8251825160208390036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161782525b505050565b600081831115611473575081610abb565b50919050565b81516114858383610fba565b506114908382611496565b50505050565b61149e611602565b6111b9838460000151518485516114b3611602565b82518211156114c157600080fd5b846020015182850111156114e3576114e38561101e8760200151878601611462565b6000808651805187602083010193508088870111156115025787860182525b505050602084015b6020841061154757805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909301926020918201910161150a565b5181517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60208690036101000a019081169019919091161790525083949350505050565b6040805160608082018352600080835260208301529181019190915290565b6040805160e08101825260008082526020820181905291810182905260608082018390526080820181905260a082019290925260c081019190915290565b604051806040016040528060008152602001600081525090565b604051806040016040528060608152602001600081525090565b604051806040016040528061162f6115e8565b8152602001600081525090565b600082601f83011261164c578081fd5b8135602061166161165c83611ef9565b611ed5565b82815281810190858301855b8581101561169657611684898684358b01016116fd565b8452928401929084019060010161166d565b5090979650505050505050565b600082601f8301126116b3578081fd5b813560206116c361165c83611ef9565b82815281810190858301838502870184018810156116df578586fd5b855b85811015611696578135845292840192908401906001016116e1565b600082601f83011261170d578081fd5b813561171b61165c82611f17565b81815284602083860101111561172f578283fd5b816020850160208301379081016020019190915292915050565b600082601f830112611759578081fd5b815161176761165c82611f17565b81815284602083860101111561177b578283fd5b61178c826020830160208701611f57565b949350505050565b6000604082840312156117a5578081fd5b6040516040810181811067ffffffffffffffff821117156117c257fe5b604052825181526020928301519281019290925250919050565b600060c082840312156117ed578081fd5b60405160c0810181811067ffffffffffffffff8211171561180a57fe5b8060405250809150825181526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a08201525092915050565b803561ffff811681146101cd57600080fd5b60008060008060808587031215611876578384fd5b84359350602085013567ffffffffffffffff80821115611894578485fd5b6118a0888389016116a3565b94506040870135935060608701359150808211156118bc578283fd5b506118c98782880161163c565b91505092959194509250565b600080600080606085870312156118ea578384fd5b84359350602085013567ffffffffffffffff80821115611908578485fd5b818701915087601f83011261191b578485fd5b813581811115611929578586fd5b88602082850101111561193a578586fd5b95986020929092019750949560400135945092505050565b600060208284031215611963578081fd5b813567ffffffffffffffff811115611979578182fd5b61178c848285016116fd565b6000806000806080858703121561199a578384fd5b843567ffffffffffffffff8111156119b0578485fd5b6119bc878288016116fd565b9450506119cb6020860161184f565b93969395505050506040820135916060013590565b600080604083850312156119f2578182fd5b825167ffffffffffffffff811115611a08578283fd5b611a1485828601611749565b925050602083015190509250929050565b60008060008060808587031215611a3a578182fd5b611a438561184f565b9350602085013567ffffffffffffffff80821115611a5f578384fd5b611a6b8883890161163c565b94506040870135915080821115611a80578384fd5b50611a8d878288016116a3565b949793965093946060013593505050565b6000806000806000806000806101c0898b031215611aba578586fd5b885160ff81168114611aca578687fd5b80985050602089015196506040890151955060608901519450611af08a60808b01611794565b9350611aff8a60c08b016117dc565b925061018089015167ffffffffffffffff80821115611b1c578384fd5b611b288c838d01611749565b93506101a08b0151915080821115611b3e578283fd5b50611b4b8b828c01611749565b9150509295985092959890939650565b73ffffffffffffffffffffffffffffffffffffffff169052565b60008151808452611b8d816020860160208601611f57565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60609190911b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016815260140190565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b90815260200190565b6000602082526111b96020830184611b75565b600060408252611c3f6040830185611b75565b90508260208301529392505050565b6020808252601c908201527f50726f6f664c69623a20696e76616c69642070726f6f662073697a6500000000604082015260600190565b6020808252601a908201527f50726f6f664c69623a20696e76616c696420686173686c696e6b000000000000604082015260600190565b6020808252601f908201527f50726f6f664c69623a207061636b6574206e6f74207265636f676e697a656400604082015260600190565b60208082526026908201527f50726f6f664c69623a20696e76616c69642064657374696e6174696f6e20636860408201527f61696e2049440000000000000000000000000000000000000000000000000000606082015260800190565b60006020825261ffff8084511660208401528060208501511660408401525067ffffffffffffffff60408401511660608301526060830151611d956080840182611b5b565b50608083015160e060a0840152611db0610100840182611b75565b905060a084015160c084015260c08401517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08483030160e08501526101928282611b75565b6000602082528251602083015260208301516040830152604083015160608084015261178c6080840182611b75565b61ffff91909116815260200190565b60006101c060ff8b16835289602084015288604084015287606084015286516080840152602087015160a0840152855160c0840152602086015160e084015260408601516101008401526060860151610120840152608086015161014084015260a086015161016084015280610180840152611eb181840186611b75565b90508281036101a0840152611ec68185611b75565b9b9a5050505050505050505050565b60405181810167ffffffffffffffff81118282101715611ef157fe5b604052919050565b600067ffffffffffffffff821115611f0d57fe5b5060209081020190565b600067ffffffffffffffff821115611f2b57fe5b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b60005b83811015611f72578181015183820152602001611f5a565b83811115611490575050600091015256fe524c504465636f6465723a20696e76616c696420524c50206974656d206f66667365742073697a65524c504465636f646572206974657261746f72206973206e6f742061206c697374524c504465636f64657220746f427974657320696e76616c6964206c656e677468a2646970667358221220f151b1a1e2d6a947dd0698be80c16db57c185d6c53a9d0ce4b634664b3e6da2f64736f6c63430007060033",
307
+ "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100a35760003560e01c80636348d26911610076578063be9d395e1161005b578063be9d395e14610143578063e0cabadd14610158578063ea455df91461016b576100a3565b80636348d2691461011b578063b71e0f7114610123576100a3565b80630f222e65146100a85780633fc18d4c146100d15780635711c2a8146100e65780635b056da514610106575b600080fd5b6100bb6100b6366004611861565b61017e565b6040516100c89190611df5565b60405180910390f35b6100d961019b565b6040516100c89190611bef565b6100f96100f4366004611952565b6101bf565b6040516100c89190611c19565b61010e6101d2565b6040516100c89190611e24565b6100d96101f6565b6101366101313660046118d5565b61021a565b6040516100c89190611d50565b61014b610413565b6040516100c89190611c10565b610136610166366004611985565b610437565b6100f9610179366004611952565b61044b565b61018661158b565b61019285858585610456565b95945050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60606101ca826105d0565b90505b919050565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b6102226115aa565b600080808061023387890189611a25565b935093509350935060006102498a848487610456565b60208101519091507fe8d23d927749ec8e512eb885679c2977d57068839d8cca1a85685dbbea0648f6146102b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102a990611cbc565b60405180910390fd5b60006102c88260400151878a85600001516106f1565b90507f000000000000000000000000000000000000000000000000000000000000000061ffff16816020015161ffff161461032f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102a990611cf3565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16816060015173ffffffffffffffffffffffffffffffffffffffff16141561039a576103948160c001516105d0565b60c08201525b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16816060015173ffffffffffffffffffffffffffffffffffffffff161415610405576103ff8160c001516107e7565b60c08201525b9a9950505050505050505050565b7fe8d23d927749ec8e512eb885679c2977d57068839d8cca1a85685dbbea0648f681565b61043f6115aa565b610192858585856106f1565b60606101ca826107e7565b61045e61158b565b8151845114610499576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102a990611c4e565b6104a16115e8565b606060005b845181101561054d578481815181106104bb57fe5b6020026020010151915081805190602001208814610505576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102a990611c85565b61052b87828151811061051457fe5b602002602001015161052584610891565b90610905565b925060018551038110156105455761054283610ac1565b97505b6001016104a6565b50600061055e600361052585610bde565b9050600061057461056f8389610905565b610c6a565b905061057e61158b565b61058f61058a83610d16565b610ac1565b81526105a861058a60006105a285610d16565b90610dc6565b60208201526105be6105b983610d16565b610e8d565b60408201529998505050505050505050565b6020810151606090600160ff821614156106ea576000806000806000806000898060200190518101906106039190611a9e565b9750975097509750975097509750506000815111156106e25781516000901561062d575060148201515b803b806106df576000826040516020016106479190611bbf565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181526020838101835260008085529251919450919261069d928f928f928f928f928f928f928b9201611e33565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190529c506101cd9b505050505050505050505050565b50505b505050505050505b5090919050565b6106f96115aa565b602085015160608601516068870151858801607c01519190610719611602565b6107238189610fba565b506107338160008c60888c610ff4565b50600061074b896107458660146110ce565b906110ce565b9050610755611602565b61075f8183610fba565b5061077b60008d6107718d609c611145565b8492919086610ff4565b506040805160e08101825261ffff808e16825298909816602089015267ffffffffffffffff909416938701939093525073ffffffffffffffffffffffffffffffffffffffff9093166060850152915160808401525060a082018490525160c08201529050949350505050565b60606000808380602001905181019061080091906119e0565b9150915060008083511115610816575060148201515b73ffffffffffffffffffffffffffffffffffffffff81166108885760405161dead90600090610849908390602001611bbf565b6040516020818303038152906040529050808460405160200161086d929190611c2c565b604051602081830303815290604052955050505050506101cd565b50929392505050565b6108996115e8565b602082018051835160009190911a9080158015906108ba575060c060ff8316105b156108e957600192909201917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff015b6040805180820190915290815260208101929092525092915050565b61090d6115e8565b610916836111c0565b61096b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180611fac6021913960400191505060405180910390fd5b610974836111fa565b82106109e157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f524c50206974656d206f7574206f6620626f756e647300000000000000000000604482015290519081900360640190fd5b82516020840151908101906000906109f890611252565b60208601510190506000805b85811015610a2357610a15836112f1565b928301929150600101610a04565b50610a2d826112f1565b9050828183011115610aa057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f524c50206974656d206f766572666c6f77000000000000000000000000000000604482015290519081900360640190fd5b60405180604001604052808281526020018381525093505050505b92915050565b805160009015801590610ad657508151602110155b610b4157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f524c504465636f64657220746f55696e7420696e76616c6964206c656e677468604482015290519081900360640190fd5b6000610b508360200151611252565b90508083600001511015610baf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180611f846028913960400191505060405180910390fd5b825160208085015183018051928490039291831015610bd557826020036101000a820491505b50949350505050565b610be66115e8565b6000610bf58360200151611252565b60208401518451908201805192935060009290921a91908015801590610c1e575060c060ff8416105b15610c4d57600191909101907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff015b604080518082019091529081526020810191909152949350505050565b610c7261161c565b610c7b826111c0565b610ce657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f524c504465636f646572206974657261746f72206973206e6f74206c69737400604482015290519081900360640190fd5b6000610cf58360200151611252565b60208085015160408051808201909152868152920190820152915050919050565b610d1e6115e8565b610d27826113c6565b610d9257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f524c504465636f646572206974657261746f7220686173206e6f206e65787400604482015290519081900360640190fd5b60208201516000610da2826112f1565b80830160209586015260408051808201909152908152938401919091525090919050565b610dce6115e8565b610dd7836111c0565b610e2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180611fac6021913960400191505060405180910390fd5b6000610e3b8460200151611252565b60208501510190506000805b84811015610e6657610e58836112f1565b928301929150600101610e47565b50610e70826112f1565b604080518082019091529081526020810192909252509392505050565b8051606090610ee7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180611fcd6021913960400191505060405180910390fd5b6000610ef68360200151611252565b90508083600001511015610f55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180611f846028913960400191505060405180910390fd5b825181900360008167ffffffffffffffff81118015610f7357600080fd5b506040519080825280601f01601f191660200182016040528015610f9e576020820181803683370190505b5090506000816020019050610bd58487602001510182856113db565b610fc2611602565b6020820615610fd75760208206602003820191505b506020828101829052604080518085526000815290920101905290565b610ffc611602565b85602001518286011115611026576110268661101e8860200151888601611462565b600202611479565b6000808751805188602083010193508089870111156110455788860182525b5050508484015b6020841061108957805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909301926020918201910161104c565b5181517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60208690036101000a01908116901991909116179052508495945050505050565b60008282111561113f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b6000828201838110156111b957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b80516000906111d1575060006101cd565b6020820151805160001a9060c08210156111f0576000925050506101cd565b5060019392505050565b805160009061120b575060006101cd565b60008061121b8460200151611252565b602085015185519181019250015b808210156112495761123a826112f1565b60019093019290910190611229565b50909392505050565b8051600090811a608081101561126c5760009150506101cd565b60b8811080611287575060c08110801590611287575060f881105b156112965760019150506101cd565b60c08110156112c8577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff4a0190506101cd565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0a0190506101cd565b80516000908190811a608081101561130c57600191506113bf565b60b881101561133f577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81810191506113bf565b60c081101561136c5760b78103600185019450806020036101000a855104600182018101935050506113bf565b60f881101561139f577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff41810191506113bf565b60f78103600185019450806020036101000a855104600182018101935050505b5092915050565b80518051602091820151919092015191011190565b806113e55761145d565b5b602081106114235782518252602092830192909101907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0016113e6565b8251825160208390036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161782525b505050565b600081831115611473575081610abb565b50919050565b81516114858383610fba565b506114908382611496565b50505050565b61149e611602565b6111b9838460000151518485516114b3611602565b82518211156114c157600080fd5b846020015182850111156114e3576114e38561101e8760200151878601611462565b6000808651805187602083010193508088870111156115025787860182525b505050602084015b6020841061154757805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909301926020918201910161150a565b5181517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60208690036101000a019081169019919091161790525083949350505050565b6040805160608082018352600080835260208301529181019190915290565b6040805160e08101825260008082526020820181905291810182905260608082018390526080820181905260a082019290925260c081019190915290565b604051806040016040528060008152602001600081525090565b604051806040016040528060608152602001600081525090565b604051806040016040528061162f6115e8565b8152602001600081525090565b600082601f83011261164c578081fd5b8135602061166161165c83611ef9565b611ed5565b82815281810190858301855b8581101561169657611684898684358b01016116fd565b8452928401929084019060010161166d565b5090979650505050505050565b600082601f8301126116b3578081fd5b813560206116c361165c83611ef9565b82815281810190858301838502870184018810156116df578586fd5b855b85811015611696578135845292840192908401906001016116e1565b600082601f83011261170d578081fd5b813561171b61165c82611f17565b81815284602083860101111561172f578283fd5b816020850160208301379081016020019190915292915050565b600082601f830112611759578081fd5b815161176761165c82611f17565b81815284602083860101111561177b578283fd5b61178c826020830160208701611f57565b949350505050565b6000604082840312156117a5578081fd5b6040516040810181811067ffffffffffffffff821117156117c257fe5b604052825181526020928301519281019290925250919050565b600060c082840312156117ed578081fd5b60405160c0810181811067ffffffffffffffff8211171561180a57fe5b8060405250809150825181526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a08201525092915050565b803561ffff811681146101cd57600080fd5b60008060008060808587031215611876578384fd5b84359350602085013567ffffffffffffffff80821115611894578485fd5b6118a0888389016116a3565b94506040870135935060608701359150808211156118bc578283fd5b506118c98782880161163c565b91505092959194509250565b600080600080606085870312156118ea578384fd5b84359350602085013567ffffffffffffffff80821115611908578485fd5b818701915087601f83011261191b578485fd5b813581811115611929578586fd5b88602082850101111561193a578586fd5b95986020929092019750949560400135945092505050565b600060208284031215611963578081fd5b813567ffffffffffffffff811115611979578182fd5b61178c848285016116fd565b6000806000806080858703121561199a578384fd5b843567ffffffffffffffff8111156119b0578485fd5b6119bc878288016116fd565b9450506119cb6020860161184f565b93969395505050506040820135916060013590565b600080604083850312156119f2578182fd5b825167ffffffffffffffff811115611a08578283fd5b611a1485828601611749565b925050602083015190509250929050565b60008060008060808587031215611a3a578182fd5b611a438561184f565b9350602085013567ffffffffffffffff80821115611a5f578384fd5b611a6b8883890161163c565b94506040870135915080821115611a80578384fd5b50611a8d878288016116a3565b949793965093946060013593505050565b6000806000806000806000806101c0898b031215611aba578586fd5b885160ff81168114611aca578687fd5b80985050602089015196506040890151955060608901519450611af08a60808b01611794565b9350611aff8a60c08b016117dc565b925061018089015167ffffffffffffffff80821115611b1c578384fd5b611b288c838d01611749565b93506101a08b0151915080821115611b3e578283fd5b50611b4b8b828c01611749565b9150509295985092959890939650565b73ffffffffffffffffffffffffffffffffffffffff169052565b60008151808452611b8d816020860160208601611f57565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b60609190911b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016815260140190565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b90815260200190565b6000602082526111b96020830184611b75565b600060408252611c3f6040830185611b75565b90508260208301529392505050565b6020808252601c908201527f50726f6f664c69623a20696e76616c69642070726f6f662073697a6500000000604082015260600190565b6020808252601a908201527f50726f6f664c69623a20696e76616c696420686173686c696e6b000000000000604082015260600190565b6020808252601f908201527f50726f6f664c69623a207061636b6574206e6f74207265636f676e697a656400604082015260600190565b60208082526026908201527f50726f6f664c69623a20696e76616c69642064657374696e6174696f6e20636860408201527f61696e2049440000000000000000000000000000000000000000000000000000606082015260800190565b60006020825261ffff8084511660208401528060208501511660408401525067ffffffffffffffff60408401511660608301526060830151611d956080840182611b5b565b50608083015160e060a0840152611db0610100840182611b75565b905060a084015160c084015260c08401517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08483030160e08501526101928282611b75565b6000602082528251602083015260208301516040830152604083015160608084015261178c6080840182611b75565b61ffff91909116815260200190565b60006101c060ff8b16835289602084015288604084015287606084015286516080840152602087015160a0840152855160c0840152602086015160e084015260408601516101008401526060860151610120840152608086015161014084015260a086015161016084015280610180840152611eb181840186611b75565b90508281036101a0840152611ec68185611b75565b9b9a5050505050505050505050565b60405181810167ffffffffffffffff81118282101715611ef157fe5b604052919050565b600067ffffffffffffffff821115611f0d57fe5b5060209081020190565b600067ffffffffffffffff821115611f2b57fe5b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b60005b83811015611f72578181015183820152602001611f5a565b83811115611490575050600091015256fe524c504465636f6465723a20696e76616c696420524c50206974656d206f66667365742073697a65524c504465636f646572206974657261746f72206973206e6f742061206c697374524c504465636f64657220746f427974657320696e76616c6964206c656e677468a2646970667358221220f151b1a1e2d6a947dd0698be80c16db57c185d6c53a9d0ce4b634664b3e6da2f64736f6c63430007060033",
308
+ "linkReferences": {},
309
+ "deployedLinkReferences": {}
310
+ }
@@ -0,0 +1,212 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "MPTValidatorV2",
4
+ "sourceName": "contracts/proof/MPTValidatorV2.sol",
5
+ "abi": [
6
+ {
7
+ "inputs": [],
8
+ "name": "PACKET_SIGNATURE",
9
+ "outputs": [
10
+ {
11
+ "internalType": "bytes32",
12
+ "name": "",
13
+ "type": "bytes32"
14
+ }
15
+ ],
16
+ "stateMutability": "view",
17
+ "type": "function"
18
+ },
19
+ {
20
+ "inputs": [
21
+ {
22
+ "internalType": "bytes",
23
+ "name": "data",
24
+ "type": "bytes"
25
+ },
26
+ {
27
+ "internalType": "uint16",
28
+ "name": "srcChain",
29
+ "type": "uint16"
30
+ },
31
+ {
32
+ "internalType": "uint256",
33
+ "name": "sizeOfSrcAddress",
34
+ "type": "uint256"
35
+ },
36
+ {
37
+ "internalType": "bytes32",
38
+ "name": "ulnAddress",
39
+ "type": "bytes32"
40
+ }
41
+ ],
42
+ "name": "getPacket",
43
+ "outputs": [
44
+ {
45
+ "components": [
46
+ {
47
+ "internalType": "uint16",
48
+ "name": "srcChainId",
49
+ "type": "uint16"
50
+ },
51
+ {
52
+ "internalType": "uint16",
53
+ "name": "dstChainId",
54
+ "type": "uint16"
55
+ },
56
+ {
57
+ "internalType": "uint64",
58
+ "name": "nonce",
59
+ "type": "uint64"
60
+ },
61
+ {
62
+ "internalType": "address",
63
+ "name": "dstAddress",
64
+ "type": "address"
65
+ },
66
+ {
67
+ "internalType": "bytes",
68
+ "name": "srcAddress",
69
+ "type": "bytes"
70
+ },
71
+ {
72
+ "internalType": "bytes32",
73
+ "name": "ulnAddress",
74
+ "type": "bytes32"
75
+ },
76
+ {
77
+ "internalType": "bytes",
78
+ "name": "payload",
79
+ "type": "bytes"
80
+ }
81
+ ],
82
+ "internalType": "struct LayerZeroPacket.Packet",
83
+ "name": "",
84
+ "type": "tuple"
85
+ }
86
+ ],
87
+ "stateMutability": "pure",
88
+ "type": "function"
89
+ },
90
+ {
91
+ "inputs": [
92
+ {
93
+ "internalType": "bytes32",
94
+ "name": "hashRoot",
95
+ "type": "bytes32"
96
+ },
97
+ {
98
+ "internalType": "uint256[]",
99
+ "name": "receiptSlotIndex",
100
+ "type": "uint256[]"
101
+ },
102
+ {
103
+ "internalType": "uint256",
104
+ "name": "logIndex",
105
+ "type": "uint256"
106
+ },
107
+ {
108
+ "internalType": "bytes[]",
109
+ "name": "proof",
110
+ "type": "bytes[]"
111
+ }
112
+ ],
113
+ "name": "getVerifyLog",
114
+ "outputs": [
115
+ {
116
+ "components": [
117
+ {
118
+ "internalType": "bytes32",
119
+ "name": "contractAddress",
120
+ "type": "bytes32"
121
+ },
122
+ {
123
+ "internalType": "bytes32",
124
+ "name": "topicZeroSig",
125
+ "type": "bytes32"
126
+ },
127
+ {
128
+ "internalType": "bytes",
129
+ "name": "data",
130
+ "type": "bytes"
131
+ }
132
+ ],
133
+ "internalType": "struct MPTValidatorV2.ULNLog",
134
+ "name": "",
135
+ "type": "tuple"
136
+ }
137
+ ],
138
+ "stateMutability": "pure",
139
+ "type": "function"
140
+ },
141
+ {
142
+ "inputs": [
143
+ {
144
+ "internalType": "bytes32",
145
+ "name": "_receiptsRoot",
146
+ "type": "bytes32"
147
+ },
148
+ {
149
+ "internalType": "bytes",
150
+ "name": "_transactionProof",
151
+ "type": "bytes"
152
+ },
153
+ {
154
+ "internalType": "uint256",
155
+ "name": "_remoteAddressSize",
156
+ "type": "uint256"
157
+ }
158
+ ],
159
+ "name": "validateProof",
160
+ "outputs": [
161
+ {
162
+ "components": [
163
+ {
164
+ "internalType": "uint16",
165
+ "name": "srcChainId",
166
+ "type": "uint16"
167
+ },
168
+ {
169
+ "internalType": "uint16",
170
+ "name": "dstChainId",
171
+ "type": "uint16"
172
+ },
173
+ {
174
+ "internalType": "uint64",
175
+ "name": "nonce",
176
+ "type": "uint64"
177
+ },
178
+ {
179
+ "internalType": "address",
180
+ "name": "dstAddress",
181
+ "type": "address"
182
+ },
183
+ {
184
+ "internalType": "bytes",
185
+ "name": "srcAddress",
186
+ "type": "bytes"
187
+ },
188
+ {
189
+ "internalType": "bytes32",
190
+ "name": "ulnAddress",
191
+ "type": "bytes32"
192
+ },
193
+ {
194
+ "internalType": "bytes",
195
+ "name": "payload",
196
+ "type": "bytes"
197
+ }
198
+ ],
199
+ "internalType": "struct LayerZeroPacket.Packet",
200
+ "name": "packet",
201
+ "type": "tuple"
202
+ }
203
+ ],
204
+ "stateMutability": "pure",
205
+ "type": "function"
206
+ }
207
+ ],
208
+ "bytecode": "0x608060405234801561001057600080fd5b506117fa806100206000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c80630f222e6514610051578063b71e0f711461007a578063be9d395e1461009a578063e0cabadd146100af575b600080fd5b61006461005f366004611346565b6100c2565b60405161007191906116e1565b60405180910390f35b61008d6100883660046113ba565b6100df565b604051610071919061163c565b6100a2610199565b604051610071919061158e565b61008d6100bd366004611437565b6101bd565b6100ca61113f565b6100d6858585856101d1565b95945050505050565b6100e761115e565b60008080806100f887890189611492565b9350935093509350600061010e8a8484876101d1565b60208101519091507fe8d23d927749ec8e512eb885679c2977d57068839d8cca1a85685dbbea0648f614610177576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161016e90611605565b60405180910390fd5b61018b81604001518689846000015161034b565b9a9950505050505050505050565b7fe8d23d927749ec8e512eb885679c2977d57068839d8cca1a85685dbbea0648f681565b6101c561115e565b6100d68585858561034b565b6101d961113f565b8151845114610214576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161016e90611597565b61021c61119c565b606060005b84518110156102c85784818151811061023657fe5b6020026020010151915081805190602001208814610280576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161016e906115ce565b6102a687828151811061028f57fe5b60200260200101516102a084610441565b906104b9565b925060018551038110156102c0576102bd83610675565b97505b600101610221565b5060006102d960036102a085610792565b905060006102ef6102ea83896104b9565b61081e565b90506102f961113f565b61030a610305836108ca565b610675565b8152610323610305600061031d856108ca565b9061097a565b6020820152610339610334836108ca565b610a41565b60408201529998505050505050505050565b61035361115e565b602085015160608601516068870151858801607c015191906103736111b6565b61037d8189610b6e565b5061038d8160008c60888c610ba8565b5060006103a58961039f866014610c82565b90610c82565b90506103af6111b6565b6103b98183610b6e565b506103d560008d6103cb8d609c610cf9565b8492919086610ba8565b506040805160e08101825261ffff808e16825298909816602089015267ffffffffffffffff909416938701939093525073ffffffffffffffffffffffffffffffffffffffff9093166060850152915160808401525060a082018490525160c08201529050949350505050565b61044961119c565b602082018051835160009190911a90801580159061046a575060c060ff8316105b1561049957600192909201917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff015b60405180604001604052808281526020018481525093505050505b919050565b6104c161119c565b6104ca83610d74565b61051f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806117836021913960400191505060405180910390fd5b61052883610dae565b821061059557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f524c50206974656d206f7574206f6620626f756e647300000000000000000000604482015290519081900360640190fd5b82516020840151908101906000906105ac90610e06565b60208601510190506000805b858110156105d7576105c983610ea5565b9283019291506001016105b8565b506105e182610ea5565b905082818301111561065457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f524c50206974656d206f766572666c6f77000000000000000000000000000000604482015290519081900360640190fd5b60405180604001604052808281526020018381525093505050505b92915050565b80516000901580159061068a57508151602110155b6106f557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f524c504465636f64657220746f55696e7420696e76616c6964206c656e677468604482015290519081900360640190fd5b60006107048360200151610e06565b90508083600001511015610763576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602881526020018061175b6028913960400191505060405180910390fd5b82516020808501518301805192849003929183101561078957826020036101000a820491505b50949350505050565b61079a61119c565b60006107a98360200151610e06565b60208401518451908201805192935060009290921a919080158015906107d2575060c060ff8416105b1561080157600191909101907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff015b604080518082019091529081526020810191909152949350505050565b6108266111d0565b61082f82610d74565b61089a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f524c504465636f646572206974657261746f72206973206e6f74206c69737400604482015290519081900360640190fd5b60006108a98360200151610e06565b60208085015160408051808201909152868152920190820152915050919050565b6108d261119c565b6108db82610f7a565b61094657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f524c504465636f646572206974657261746f7220686173206e6f206e65787400604482015290519081900360640190fd5b6020820151600061095682610ea5565b80830160209586015260408051808201909152908152938401919091525090919050565b61098261119c565b61098b83610d74565b6109e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806117836021913960400191505060405180910390fd5b60006109ef8460200151610e06565b60208501510190506000805b84811015610a1a57610a0c83610ea5565b9283019291506001016109fb565b50610a2482610ea5565b604080518082019091529081526020810192909252509392505050565b8051606090610a9b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806117a46021913960400191505060405180910390fd5b6000610aaa8360200151610e06565b90508083600001511015610b09576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602881526020018061175b6028913960400191505060405180910390fd5b825181900360008167ffffffffffffffff81118015610b2757600080fd5b506040519080825280601f01601f191660200182016040528015610b52576020820181803683370190505b5090506000816020019050610789848760200151018285610f8f565b610b766111b6565b6020820615610b8b5760208206602003820191505b506020828101829052604080518085526000815290920101905290565b610bb06111b6565b85602001518286011115610bda57610bda86610bd28860200151888601611016565b60020261102d565b600080875180518860208301019350808987011115610bf95788860182525b5050508484015b60208410610c3d57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09093019260209182019101610c00565b5181517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60208690036101000a01908116901991909116179052508495945050505050565b600082821115610cf357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b600082820183811015610d6d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b8051600090610d85575060006104b4565b6020820151805160001a9060c0821015610da4576000925050506104b4565b5060019392505050565b8051600090610dbf575060006104b4565b600080610dcf8460200151610e06565b602085015185519181019250015b80821015610dfd57610dee82610ea5565b60019093019290910190610ddd565b50909392505050565b8051600090811a6080811015610e205760009150506104b4565b60b8811080610e3b575060c08110801590610e3b575060f881105b15610e4a5760019150506104b4565b60c0811015610e7c577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff4a0190506104b4565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0a0190506104b4565b80516000908190811a6080811015610ec05760019150610f73565b60b8811015610ef3577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8181019150610f73565b60c0811015610f205760b78103600185019450806020036101000a85510460018201810193505050610f73565b60f8811015610f53577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff4181019150610f73565b60f78103600185019450806020036101000a855104600182018101935050505b5092915050565b80518051602091820151919092015191011190565b80610f9957611011565b5b60208110610fd75782518252602092830192909101907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe001610f9a565b8251825160208390036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161782525b505050565b60008183111561102757508161066f565b50919050565b81516110398383610b6e565b50611044838261104a565b50505050565b6110526111b6565b610d6d838460000151518485516110676111b6565b825182111561107557600080fd5b846020015182850111156110975761109785610bd28760200151878601611016565b6000808651805187602083010193508088870111156110b65787860182525b505050602084015b602084106110fb57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090930192602091820191016110be565b5181517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60208690036101000a019081169019919091161790525083949350505050565b6040805160608082018352600080835260208301529181019190915290565b6040805160e08101825260008082526020820181905291810182905260608082018390526080820181905260a082019290925260c081019190915290565b604051806040016040528060008152602001600081525090565b604051806040016040528060608152602001600081525090565b60405180604001604052806111e361119c565b8152602001600081525090565b600082601f830112611200578081fd5b813560206112156112108361173c565b611718565b82815281810190858301855b8581101561124a57611238898684358b01016112b1565b84529284019290840190600101611221565b5090979650505050505050565b600082601f830112611267578081fd5b813560206112776112108361173c565b8281528181019085830183850287018401881015611293578586fd5b855b8581101561124a57813584529284019290840190600101611295565b600082601f8301126112c1578081fd5b813567ffffffffffffffff8111156112d557fe5b61130660207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601611718565b81815284602083860101111561131a578283fd5b816020850160208301379081016020019190915292915050565b803561ffff811681146104b457600080fd5b6000806000806080858703121561135b578384fd5b84359350602085013567ffffffffffffffff80821115611379578485fd5b61138588838901611257565b94506040870135935060608701359150808211156113a1578283fd5b506113ae878288016111f0565b91505092959194509250565b600080600080606085870312156113cf578384fd5b84359350602085013567ffffffffffffffff808211156113ed578485fd5b818701915087601f830112611400578485fd5b81358181111561140e578586fd5b88602082850101111561141f578586fd5b95986020929092019750949560400135945092505050565b6000806000806080858703121561144c578384fd5b843567ffffffffffffffff811115611462578485fd5b61146e878288016112b1565b94505061147d60208601611334565b93969395505050506040820135916060013590565b600080600080608085870312156114a7578384fd5b6114b085611334565b9350602085013567ffffffffffffffff808211156114cc578485fd5b6114d8888389016111f0565b945060408701359150808211156114ed578384fd5b506114fa87828801611257565b949793965093946060013593505050565b73ffffffffffffffffffffffffffffffffffffffff169052565b60008151808452815b8181101561154a5760208185018101518683018201520161152e565b8181111561155b5782602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b90815260200190565b6020808252601c908201527f50726f6f664c69623a20696e76616c69642070726f6f662073697a6500000000604082015260600190565b6020808252601a908201527f50726f6f664c69623a20696e76616c696420686173686c696e6b000000000000604082015260600190565b6020808252601f908201527f50726f6f664c69623a207061636b6574206e6f74207265636f676e697a656400604082015260600190565b60006020825261ffff8084511660208401528060208501511660408401525067ffffffffffffffff60408401511660608301526060830151611681608084018261150b565b50608083015160e060a084015261169c610100840182611525565b905060a084015160c084015260c08401517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08483030160e08501526100d68282611525565b600060208252825160208301526020830151604083015260408301516060808401526117106080840182611525565b949350505050565b60405181810167ffffffffffffffff8111828210171561173457fe5b604052919050565b600067ffffffffffffffff82111561175057fe5b506020908102019056fe524c504465636f6465723a20696e76616c696420524c50206974656d206f66667365742073697a65524c504465636f646572206974657261746f72206973206e6f742061206c697374524c504465636f64657220746f427974657320696e76616c6964206c656e677468a26469706673582212204abd4a3caed7ce8e16f1012d6f7c4c766b6721997b435710fe4b54a002857c7464736f6c63430007060033",
209
+ "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061004c5760003560e01c80630f222e6514610051578063b71e0f711461007a578063be9d395e1461009a578063e0cabadd146100af575b600080fd5b61006461005f366004611346565b6100c2565b60405161007191906116e1565b60405180910390f35b61008d6100883660046113ba565b6100df565b604051610071919061163c565b6100a2610199565b604051610071919061158e565b61008d6100bd366004611437565b6101bd565b6100ca61113f565b6100d6858585856101d1565b95945050505050565b6100e761115e565b60008080806100f887890189611492565b9350935093509350600061010e8a8484876101d1565b60208101519091507fe8d23d927749ec8e512eb885679c2977d57068839d8cca1a85685dbbea0648f614610177576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161016e90611605565b60405180910390fd5b61018b81604001518689846000015161034b565b9a9950505050505050505050565b7fe8d23d927749ec8e512eb885679c2977d57068839d8cca1a85685dbbea0648f681565b6101c561115e565b6100d68585858561034b565b6101d961113f565b8151845114610214576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161016e90611597565b61021c61119c565b606060005b84518110156102c85784818151811061023657fe5b6020026020010151915081805190602001208814610280576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161016e906115ce565b6102a687828151811061028f57fe5b60200260200101516102a084610441565b906104b9565b925060018551038110156102c0576102bd83610675565b97505b600101610221565b5060006102d960036102a085610792565b905060006102ef6102ea83896104b9565b61081e565b90506102f961113f565b61030a610305836108ca565b610675565b8152610323610305600061031d856108ca565b9061097a565b6020820152610339610334836108ca565b610a41565b60408201529998505050505050505050565b61035361115e565b602085015160608601516068870151858801607c015191906103736111b6565b61037d8189610b6e565b5061038d8160008c60888c610ba8565b5060006103a58961039f866014610c82565b90610c82565b90506103af6111b6565b6103b98183610b6e565b506103d560008d6103cb8d609c610cf9565b8492919086610ba8565b506040805160e08101825261ffff808e16825298909816602089015267ffffffffffffffff909416938701939093525073ffffffffffffffffffffffffffffffffffffffff9093166060850152915160808401525060a082018490525160c08201529050949350505050565b61044961119c565b602082018051835160009190911a90801580159061046a575060c060ff8316105b1561049957600192909201917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff015b60405180604001604052808281526020018481525093505050505b919050565b6104c161119c565b6104ca83610d74565b61051f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806117836021913960400191505060405180910390fd5b61052883610dae565b821061059557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f524c50206974656d206f7574206f6620626f756e647300000000000000000000604482015290519081900360640190fd5b82516020840151908101906000906105ac90610e06565b60208601510190506000805b858110156105d7576105c983610ea5565b9283019291506001016105b8565b506105e182610ea5565b905082818301111561065457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f524c50206974656d206f766572666c6f77000000000000000000000000000000604482015290519081900360640190fd5b60405180604001604052808281526020018381525093505050505b92915050565b80516000901580159061068a57508151602110155b6106f557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f524c504465636f64657220746f55696e7420696e76616c6964206c656e677468604482015290519081900360640190fd5b60006107048360200151610e06565b90508083600001511015610763576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602881526020018061175b6028913960400191505060405180910390fd5b82516020808501518301805192849003929183101561078957826020036101000a820491505b50949350505050565b61079a61119c565b60006107a98360200151610e06565b60208401518451908201805192935060009290921a919080158015906107d2575060c060ff8416105b1561080157600191909101907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff015b604080518082019091529081526020810191909152949350505050565b6108266111d0565b61082f82610d74565b61089a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f524c504465636f646572206974657261746f72206973206e6f74206c69737400604482015290519081900360640190fd5b60006108a98360200151610e06565b60208085015160408051808201909152868152920190820152915050919050565b6108d261119c565b6108db82610f7a565b61094657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f524c504465636f646572206974657261746f7220686173206e6f206e65787400604482015290519081900360640190fd5b6020820151600061095682610ea5565b80830160209586015260408051808201909152908152938401919091525090919050565b61098261119c565b61098b83610d74565b6109e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806117836021913960400191505060405180910390fd5b60006109ef8460200151610e06565b60208501510190506000805b84811015610a1a57610a0c83610ea5565b9283019291506001016109fb565b50610a2482610ea5565b604080518082019091529081526020810192909252509392505050565b8051606090610a9b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806117a46021913960400191505060405180910390fd5b6000610aaa8360200151610e06565b90508083600001511015610b09576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602881526020018061175b6028913960400191505060405180910390fd5b825181900360008167ffffffffffffffff81118015610b2757600080fd5b506040519080825280601f01601f191660200182016040528015610b52576020820181803683370190505b5090506000816020019050610789848760200151018285610f8f565b610b766111b6565b6020820615610b8b5760208206602003820191505b506020828101829052604080518085526000815290920101905290565b610bb06111b6565b85602001518286011115610bda57610bda86610bd28860200151888601611016565b60020261102d565b600080875180518860208301019350808987011115610bf95788860182525b5050508484015b60208410610c3d57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09093019260209182019101610c00565b5181517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60208690036101000a01908116901991909116179052508495945050505050565b600082821115610cf357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b600082820183811015610d6d57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b8051600090610d85575060006104b4565b6020820151805160001a9060c0821015610da4576000925050506104b4565b5060019392505050565b8051600090610dbf575060006104b4565b600080610dcf8460200151610e06565b602085015185519181019250015b80821015610dfd57610dee82610ea5565b60019093019290910190610ddd565b50909392505050565b8051600090811a6080811015610e205760009150506104b4565b60b8811080610e3b575060c08110801590610e3b575060f881105b15610e4a5760019150506104b4565b60c0811015610e7c577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff4a0190506104b4565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0a0190506104b4565b80516000908190811a6080811015610ec05760019150610f73565b60b8811015610ef3577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8181019150610f73565b60c0811015610f205760b78103600185019450806020036101000a85510460018201810193505050610f73565b60f8811015610f53577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff4181019150610f73565b60f78103600185019450806020036101000a855104600182018101935050505b5092915050565b80518051602091820151919092015191011190565b80610f9957611011565b5b60208110610fd75782518252602092830192909101907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe001610f9a565b8251825160208390036101000a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01801990921691161782525b505050565b60008183111561102757508161066f565b50919050565b81516110398383610b6e565b50611044838261104a565b50505050565b6110526111b6565b610d6d838460000151518485516110676111b6565b825182111561107557600080fd5b846020015182850111156110975761109785610bd28760200151878601611016565b6000808651805187602083010193508088870111156110b65787860182525b505050602084015b602084106110fb57805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090930192602091820191016110be565b5181517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60208690036101000a019081169019919091161790525083949350505050565b6040805160608082018352600080835260208301529181019190915290565b6040805160e08101825260008082526020820181905291810182905260608082018390526080820181905260a082019290925260c081019190915290565b604051806040016040528060008152602001600081525090565b604051806040016040528060608152602001600081525090565b60405180604001604052806111e361119c565b8152602001600081525090565b600082601f830112611200578081fd5b813560206112156112108361173c565b611718565b82815281810190858301855b8581101561124a57611238898684358b01016112b1565b84529284019290840190600101611221565b5090979650505050505050565b600082601f830112611267578081fd5b813560206112776112108361173c565b8281528181019085830183850287018401881015611293578586fd5b855b8581101561124a57813584529284019290840190600101611295565b600082601f8301126112c1578081fd5b813567ffffffffffffffff8111156112d557fe5b61130660207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601611718565b81815284602083860101111561131a578283fd5b816020850160208301379081016020019190915292915050565b803561ffff811681146104b457600080fd5b6000806000806080858703121561135b578384fd5b84359350602085013567ffffffffffffffff80821115611379578485fd5b61138588838901611257565b94506040870135935060608701359150808211156113a1578283fd5b506113ae878288016111f0565b91505092959194509250565b600080600080606085870312156113cf578384fd5b84359350602085013567ffffffffffffffff808211156113ed578485fd5b818701915087601f830112611400578485fd5b81358181111561140e578586fd5b88602082850101111561141f578586fd5b95986020929092019750949560400135945092505050565b6000806000806080858703121561144c578384fd5b843567ffffffffffffffff811115611462578485fd5b61146e878288016112b1565b94505061147d60208601611334565b93969395505050506040820135916060013590565b600080600080608085870312156114a7578384fd5b6114b085611334565b9350602085013567ffffffffffffffff808211156114cc578485fd5b6114d8888389016111f0565b945060408701359150808211156114ed578384fd5b506114fa87828801611257565b949793965093946060013593505050565b73ffffffffffffffffffffffffffffffffffffffff169052565b60008151808452815b8181101561154a5760208185018101518683018201520161152e565b8181111561155b5782602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b90815260200190565b6020808252601c908201527f50726f6f664c69623a20696e76616c69642070726f6f662073697a6500000000604082015260600190565b6020808252601a908201527f50726f6f664c69623a20696e76616c696420686173686c696e6b000000000000604082015260600190565b6020808252601f908201527f50726f6f664c69623a207061636b6574206e6f74207265636f676e697a656400604082015260600190565b60006020825261ffff8084511660208401528060208501511660408401525067ffffffffffffffff60408401511660608301526060830151611681608084018261150b565b50608083015160e060a084015261169c610100840182611525565b905060a084015160c084015260c08401517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08483030160e08501526100d68282611525565b600060208252825160208301526020830151604083015260408301516060808401526117106080840182611525565b949350505050565b60405181810167ffffffffffffffff8111828210171561173457fe5b604052919050565b600067ffffffffffffffff82111561175057fe5b506020908102019056fe524c504465636f6465723a20696e76616c696420524c50206974656d206f66667365742073697a65524c504465636f646572206974657261746f72206973206e6f742061206c697374524c504465636f64657220746f427974657320696e76616c6964206c656e677468a26469706673582212204abd4a3caed7ce8e16f1012d6f7c4c766b6721997b435710fe4b54a002857c7464736f6c63430007060033",
210
+ "linkReferences": {},
211
+ "deployedLinkReferences": {}
212
+ }
@@ -0,0 +1,10 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "IStargate",
4
+ "sourceName": "contracts/proof/MPTValidatorV4.sol",
5
+ "abi": [],
6
+ "bytecode": "0x",
7
+ "deployedBytecode": "0x",
8
+ "linkReferences": {},
9
+ "deployedLinkReferences": {}
10
+ }