@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
@@ -16,17 +16,23 @@
16
16
  "type": "uint256"
17
17
  }
18
18
  ],
19
- "name": "InsufficientFee",
19
+ "name": "LZ_PriceFeed_InsufficientFee",
20
20
  "type": "error"
21
21
  },
22
22
  {
23
23
  "inputs": [],
24
- "name": "OnlyPriceUpdater",
24
+ "name": "LZ_PriceFeed_OnlyPriceUpdater",
25
25
  "type": "error"
26
26
  },
27
27
  {
28
- "inputs": [],
29
- "name": "ToAddressIsZero",
28
+ "inputs": [
29
+ {
30
+ "internalType": "uint32",
31
+ "name": "l2Eid",
32
+ "type": "uint32"
33
+ }
34
+ ],
35
+ "name": "LZ_PriceFeed_UnknownL2Eid",
30
36
  "type": "error"
31
37
  },
32
38
  {
@@ -42,18 +48,12 @@
42
48
  "type": "uint256"
43
49
  }
44
50
  ],
45
- "name": "TransferNativeFailed",
51
+ "name": "Transfer_NativeFailed",
46
52
  "type": "error"
47
53
  },
48
54
  {
49
- "inputs": [
50
- {
51
- "internalType": "uint32",
52
- "name": "l2Eid",
53
- "type": "uint32"
54
- }
55
- ],
56
- "name": "UnknownL2Eid",
55
+ "inputs": [],
56
+ "name": "Transfer_ToAddressIsZero",
57
57
  "type": "error"
58
58
  },
59
59
  {
@@ -643,8 +643,8 @@
643
643
  "type": "function"
644
644
  }
645
645
  ],
646
- "bytecode": "0x608060405234801561001057600080fd5b50611d78806100206000396000f3fe60806040526004361061018b5760003560e01c80638da5cb5b116100d6578063d350ad251161007f578063e0ad121a11610059578063e0ad121a14610653578063f2fde38b14610708578063fd9be5221461072857600080fd5b8063d350ad251461051c578063da26663a1461053c578063dbbb41551461063357600080fd5b8063c1840327116100b0578063c184032714610498578063c4d66de8146104bf578063cd68b79b146104df57600080fd5b80638da5cb5b1461041657806392807f5814610441578063c1723a1d1461048557600080fd5b80635e280f11116101385780637dc438a4116101125780637dc438a41461035e57806388a4124c1461037e5780638ca2fb08146103d657600080fd5b80635e280f11146102b1578063715018a6146103035780637bc3c9ab1461031857600080fd5b806336a5beba1161016957806336a5beba1461020957806352a72510146102715780635d6d7ccb1461029157600080fd5b806311f2c343146101905780632f7cb0b4146101c75780633161b7f6146101e9575b600080fd5b34801561019c57600080fd5b506101b46101ab36600461197b565b60009392505050565b6040519081526020015b60405180910390f35b3480156101d357600080fd5b506101e76101e23660046119ce565b610748565b005b3480156101f557600080fd5b506101e76102043660046119f0565b610785565b34801561021557600080fd5b5060408051808201825260008082526020918201528151808301835260685467ffffffffffffffff811680835263ffffffff680100000000000000009092048216928401928352845190815291511691810191909152016101be565b34801561027d57600080fd5b506101e761028c366004611a89565b610955565b34801561029d57600080fd5b506101e76102ac3660046119ce565b6109b3565b3480156102bd57600080fd5b50606a546102de9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101be565b34801561030f57600080fd5b506101e7610a7a565b34801561032457600080fd5b50610338610333366004611ad7565b610a8e565b604080519283526fffffffffffffffffffffffffffffffff9091166020830152016101be565b34801561036a57600080fd5b506101e7610379366004611af5565b610b29565b34801561038a57600080fd5b5061039e61039936600461197b565b610c36565b604080519485526fffffffffffffffffffffffffffffffff9384166020860152918316918401919091521660608201526080016101be565b3480156103e257600080fd5b506104066103f1366004611b0d565b60666020526000908152604090205460ff1681565b60405190151581526020016101be565b34801561042257600080fd5b5060335473ffffffffffffffffffffffffffffffffffffffff166102de565b34801561044d57600080fd5b506069546fffffffffffffffffffffffffffffffff165b6040516fffffffffffffffffffffffffffffffff90911681526020016101be565b61039e61049336600461197b565b610c58565b3480156104a457600080fd5b506065546fffffffffffffffffffffffffffffffff16610464565b3480156104cb57600080fd5b506101e76104da366004611b0d565b610c89565b3480156104eb57600080fd5b506069546104649070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff1681565b34801561052857600080fd5b506101e76105373660046119ce565b610f70565b34801561054857600080fd5b506105ef610557366004611b28565b60408051606080820183526000808352602080840182905292840181905263ffffffff94851681526067835283902083519182018452546fffffffffffffffffffffffffffffffff81168252700100000000000000000000000000000000810467ffffffffffffffff169282019290925278010000000000000000000000000000000000000000000000009091049092169082015290565b6040805182516fffffffffffffffffffffffffffffffff16815260208084015167ffffffffffffffff16908201529181015163ffffffff16908201526060016101be565b34801561063f57600080fd5b506101e761064e366004611b0d565b610fbb565b34801561065f57600080fd5b506105ef61066e366004611b43565b60408051606080820183526000808352602080840182905292840181905261ffff949094168452606782529282902082519384018352546fffffffffffffffffffffffffffffffff8116845267ffffffffffffffff700100000000000000000000000000000000820416918401919091527801000000000000000000000000000000000000000000000000900463ffffffff169082015290565b34801561071457600080fd5b506101e7610723366004611b0d565b61100a565b34801561073457600080fd5b506101e7610743366004611b5e565b6110c1565b6107506110d7565b606980546fffffffffffffffffffffffffffffffff928316700100000000000000000000000000000000029216919091179055565b336107a560335473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff1614610809573360009081526066602052604090205460ff16610809576040517fa5138d7100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005b81811015610950573683838381811061082757610827611b88565b60800291909101915061094790506108426020830183611b28565b61085436849003840160208501611bcf565b805160208083015160409384015184516060810186526fffffffffffffffffffffffffffffffff948516815267ffffffffffffffff92831681850190815263ffffffff9283168288019081529783166000908152606790955295909320925183549551965194167fffffffffffffffff000000000000000000000000000000000000000000000000909516949094177001000000000000000000000000000000009590911694909402939093177fffffffff00000000ffffffffffffffffffffffffffffffffffffffffffffffff1678010000000000000000000000000000000000000000000000009190921602179055565b5060010161080c565b505050565b61095d6110d7565b73ffffffffffffffffffffffffffffffffffffffff91909116600090815260666020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055565b336109d360335473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff1614610a37573360009081526066602052604090205460ff16610a37576040517fa5138d7100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b606980547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff92909216919091179055565b610a826110d7565b610a8c6000611158565b565b6000808461ffff16606e1480610aa957508461ffff1661279f145b80610ab957508461ffff16614eaf145b15610ad657610acd8561ffff1685856111cf565b91509150610b21565b8461ffff16606f1480610aee57508461ffff16612794145b80610afe57508461ffff16614ea4145b15610b1257610acd8561ffff16858561132c565b610acd8561ffff1685856114dd565b935093915050565b33610b4960335473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff1614610bad573360009081526066602052604090205460ff16610bad576040517fa5138d7100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610bbd6108426020830183611b28565b6000610bcf60a0830160808401611c62565b90506000610be360c0840160a08501611b28565b6068805463ffffffff90921668010000000000000000027fffffffffffffffffffffffffffffffffffffffff00000000000000000000000090921667ffffffffffffffff90941693909317179091555050565b600080600080610c478787876115b2565b935093509350935093509350935093565b600080808080610c6c565b60405180910390fd5b610c778888886115b2565b94509450945094505093509350935093565b6000610cb37fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b905073ffffffffffffffffffffffffffffffffffffffff8116610d0c5773ffffffffffffffffffffffffffffffffffffffff7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610355610d2e565b3373ffffffffffffffffffffffffffffffffffffffff821614610d2e57600080fd5b600054610100900460ff1615808015610d4e5750600054600160ff909116105b80610d685750303b158015610d68575060005460ff166001145b610df4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610c63565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015610e5257600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b610e5a611689565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260666020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055606580547fffffffffffffffffffffffffffffffff000000000000000000000000000000001668056bc75e2d6310000017905560698054702f000000000000000000000000000000006fffffffffffffffffffffffffffffffff91909116179055801561095057600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050565b610f786110d7565b606580547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff92909216919091179055565b610fc36110d7565b606a80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6110126110d7565b73ffffffffffffffffffffffffffffffffffffffff81166110b5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610c63565b6110be81611158565b50565b6110c96110d7565b6110d38282611728565b5050565b60335473ffffffffffffffffffffffffffffffffffffffff163314610a8c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610c63565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b63ffffffff8381166000908152606760205260408120606854606954929384938492680100000000000000009004909116906064906112349070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff1689611cac565b61123e9190611cf8565b6112489190611cac565b825490915060009061127c907801000000000000000000000000000000000000000000000000900463ffffffff1688611cac565b835460685491925060009167ffffffffffffffff700100000000000000000000000000000000909204821691849186916112b791168b611d0c565b6112c19190611d0c565b6112cb9190611d0c565b6112d59190611cac565b60655485549192506fffffffffffffffffffffffffffffffff908116916112fd911683611cac565b6113079190611cf8565b935493996fffffffffffffffffffffffffffffffff9094169850929650505050505050565b600080600061133a8661182e565b63ffffffff8082166000908152606760205260408120805493945092909161137f91780100000000000000000000000000000000000000000000000090041688611cac565b61138b90610c74611d0c565b82549091506000906113bb90700100000000000000000000000000000000900467ffffffffffffffff1683611cac565b63ffffffff808b16600090815260676020526040812080549394509290916114009178010000000000000000000000000000000000000000000000009004168b611cac565b8254909150600090700100000000000000000000000000000000900467ffffffffffffffff166114308b84611d0c565b61143a9190611cac565b60655487549192506000916fffffffffffffffffffffffffffffffff91821691611465911687611cac565b61146f9190611cf8565b60655485549192506000916fffffffffffffffffffffffffffffffff9182169161149a911685611cac565b6114a49190611cf8565b905060006114b28284611d0c565b9554959f6fffffffffffffffffffffffffffffffff9096169e50949c50505050505050505050505050565b63ffffffff8084166000908152606760205260408120805491928392839161152291780100000000000000000000000000000000000000000000000090041687611cac565b8254909150600090700100000000000000000000000000000000900467ffffffffffffffff166115528784611d0c565b61155c9190611cac565b60655484549192506fffffffffffffffffffffffffffffffff90811691611584911683611cac565b61158e9190611cf8565b925492986fffffffffffffffffffffffffffffffff90931697509195505050505050565b6000808080806115c461753089611d1f565b90508063ffffffff16606e14806115e257508063ffffffff1661279f145b806115f457508063ffffffff16614eaf145b1561160e576116048188886111cf565b909550935061165d565b8063ffffffff16606f148061162a57508063ffffffff16612794145b8061163c57508063ffffffff16614ea4145b1561164c5761160481888861132c565b6116578188886114dd565b90955093505b505060655460695493979296506fffffffffffffffffffffffffffffffff908116955090921692509050565b600054610100900460ff16611720576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610c63565b610a8c6118c2565b73ffffffffffffffffffffffffffffffffffffffff8216611775576040517f32fa6a1d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff168260405160006040518083038185875af1925050503d80600081146117cf576040519150601f19603f3d011682016040523d82523d6000602084013e6117d4565b606091505b5050905080610950576040517f2c024f9200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8416600482015260248101839052604401610c63565b60008061183d61753084611d1f565b90508063ffffffff16606f036118565750606592915050565b8063ffffffff166127940361186f575061278992915050565b8063ffffffff16614ea4036118885750614e9992915050565b6040517f8d2da58000000000000000000000000000000000000000000000000000000000815263ffffffff82166004820152602401610c63565b600054610100900460ff16611959576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610c63565b610a8c33611158565b803563ffffffff8116811461197657600080fd5b919050565b60008060006060848603121561199057600080fd5b61199984611962565b95602085013595506040909401359392505050565b80356fffffffffffffffffffffffffffffffff8116811461197657600080fd5b6000602082840312156119e057600080fd5b6119e9826119ae565b9392505050565b60008060208385031215611a0357600080fd5b823567ffffffffffffffff80821115611a1b57600080fd5b818501915085601f830112611a2f57600080fd5b813581811115611a3e57600080fd5b8660208260071b8501011115611a5357600080fd5b60209290920196919550909350505050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461197657600080fd5b60008060408385031215611a9c57600080fd5b611aa583611a65565b915060208301358015158114611aba57600080fd5b809150509250929050565b803561ffff8116811461197657600080fd5b600080600060608486031215611aec57600080fd5b61199984611ac5565b600060c08284031215611b0757600080fd5b50919050565b600060208284031215611b1f57600080fd5b6119e982611a65565b600060208284031215611b3a57600080fd5b6119e982611962565b600060208284031215611b5557600080fd5b6119e982611ac5565b60008060408385031215611b7157600080fd5b611b7a83611a65565b946020939093013593505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b803567ffffffffffffffff8116811461197657600080fd5b600060608284031215611be157600080fd5b6040516060810181811067ffffffffffffffff82111715611c2b577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604052611c37836119ae565b8152611c4560208401611bb7565b6020820152611c5660408401611962565b60408201529392505050565b600060208284031215611c7457600080fd5b6119e982611bb7565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8082028115828204841417611cc357611cc3611c7d565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600082611d0757611d07611cc9565b500490565b80820180821115611cc357611cc3611c7d565b600063ffffffff80841680611d3657611d36611cc9565b9216919091069291505056fea2646970667358221220914e0e3072b9f5d7c1ca228de1615ba8d6711be51203f933d6bde274cbb6f90d64736f6c63430008160033",
647
- "deployedBytecode": "0x60806040526004361061018b5760003560e01c80638da5cb5b116100d6578063d350ad251161007f578063e0ad121a11610059578063e0ad121a14610653578063f2fde38b14610708578063fd9be5221461072857600080fd5b8063d350ad251461051c578063da26663a1461053c578063dbbb41551461063357600080fd5b8063c1840327116100b0578063c184032714610498578063c4d66de8146104bf578063cd68b79b146104df57600080fd5b80638da5cb5b1461041657806392807f5814610441578063c1723a1d1461048557600080fd5b80635e280f11116101385780637dc438a4116101125780637dc438a41461035e57806388a4124c1461037e5780638ca2fb08146103d657600080fd5b80635e280f11146102b1578063715018a6146103035780637bc3c9ab1461031857600080fd5b806336a5beba1161016957806336a5beba1461020957806352a72510146102715780635d6d7ccb1461029157600080fd5b806311f2c343146101905780632f7cb0b4146101c75780633161b7f6146101e9575b600080fd5b34801561019c57600080fd5b506101b46101ab36600461197b565b60009392505050565b6040519081526020015b60405180910390f35b3480156101d357600080fd5b506101e76101e23660046119ce565b610748565b005b3480156101f557600080fd5b506101e76102043660046119f0565b610785565b34801561021557600080fd5b5060408051808201825260008082526020918201528151808301835260685467ffffffffffffffff811680835263ffffffff680100000000000000009092048216928401928352845190815291511691810191909152016101be565b34801561027d57600080fd5b506101e761028c366004611a89565b610955565b34801561029d57600080fd5b506101e76102ac3660046119ce565b6109b3565b3480156102bd57600080fd5b50606a546102de9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101be565b34801561030f57600080fd5b506101e7610a7a565b34801561032457600080fd5b50610338610333366004611ad7565b610a8e565b604080519283526fffffffffffffffffffffffffffffffff9091166020830152016101be565b34801561036a57600080fd5b506101e7610379366004611af5565b610b29565b34801561038a57600080fd5b5061039e61039936600461197b565b610c36565b604080519485526fffffffffffffffffffffffffffffffff9384166020860152918316918401919091521660608201526080016101be565b3480156103e257600080fd5b506104066103f1366004611b0d565b60666020526000908152604090205460ff1681565b60405190151581526020016101be565b34801561042257600080fd5b5060335473ffffffffffffffffffffffffffffffffffffffff166102de565b34801561044d57600080fd5b506069546fffffffffffffffffffffffffffffffff165b6040516fffffffffffffffffffffffffffffffff90911681526020016101be565b61039e61049336600461197b565b610c58565b3480156104a457600080fd5b506065546fffffffffffffffffffffffffffffffff16610464565b3480156104cb57600080fd5b506101e76104da366004611b0d565b610c89565b3480156104eb57600080fd5b506069546104649070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff1681565b34801561052857600080fd5b506101e76105373660046119ce565b610f70565b34801561054857600080fd5b506105ef610557366004611b28565b60408051606080820183526000808352602080840182905292840181905263ffffffff94851681526067835283902083519182018452546fffffffffffffffffffffffffffffffff81168252700100000000000000000000000000000000810467ffffffffffffffff169282019290925278010000000000000000000000000000000000000000000000009091049092169082015290565b6040805182516fffffffffffffffffffffffffffffffff16815260208084015167ffffffffffffffff16908201529181015163ffffffff16908201526060016101be565b34801561063f57600080fd5b506101e761064e366004611b0d565b610fbb565b34801561065f57600080fd5b506105ef61066e366004611b43565b60408051606080820183526000808352602080840182905292840181905261ffff949094168452606782529282902082519384018352546fffffffffffffffffffffffffffffffff8116845267ffffffffffffffff700100000000000000000000000000000000820416918401919091527801000000000000000000000000000000000000000000000000900463ffffffff169082015290565b34801561071457600080fd5b506101e7610723366004611b0d565b61100a565b34801561073457600080fd5b506101e7610743366004611b5e565b6110c1565b6107506110d7565b606980546fffffffffffffffffffffffffffffffff928316700100000000000000000000000000000000029216919091179055565b336107a560335473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff1614610809573360009081526066602052604090205460ff16610809576040517fa5138d7100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005b81811015610950573683838381811061082757610827611b88565b60800291909101915061094790506108426020830183611b28565b61085436849003840160208501611bcf565b805160208083015160409384015184516060810186526fffffffffffffffffffffffffffffffff948516815267ffffffffffffffff92831681850190815263ffffffff9283168288019081529783166000908152606790955295909320925183549551965194167fffffffffffffffff000000000000000000000000000000000000000000000000909516949094177001000000000000000000000000000000009590911694909402939093177fffffffff00000000ffffffffffffffffffffffffffffffffffffffffffffffff1678010000000000000000000000000000000000000000000000009190921602179055565b5060010161080c565b505050565b61095d6110d7565b73ffffffffffffffffffffffffffffffffffffffff91909116600090815260666020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055565b336109d360335473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff1614610a37573360009081526066602052604090205460ff16610a37576040517fa5138d7100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b606980547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff92909216919091179055565b610a826110d7565b610a8c6000611158565b565b6000808461ffff16606e1480610aa957508461ffff1661279f145b80610ab957508461ffff16614eaf145b15610ad657610acd8561ffff1685856111cf565b91509150610b21565b8461ffff16606f1480610aee57508461ffff16612794145b80610afe57508461ffff16614ea4145b15610b1257610acd8561ffff16858561132c565b610acd8561ffff1685856114dd565b935093915050565b33610b4960335473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff1614610bad573360009081526066602052604090205460ff16610bad576040517fa5138d7100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610bbd6108426020830183611b28565b6000610bcf60a0830160808401611c62565b90506000610be360c0840160a08501611b28565b6068805463ffffffff90921668010000000000000000027fffffffffffffffffffffffffffffffffffffffff00000000000000000000000090921667ffffffffffffffff90941693909317179091555050565b600080600080610c478787876115b2565b935093509350935093509350935093565b600080808080610c6c565b60405180910390fd5b610c778888886115b2565b94509450945094505093509350935093565b6000610cb37fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b905073ffffffffffffffffffffffffffffffffffffffff8116610d0c5773ffffffffffffffffffffffffffffffffffffffff7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610355610d2e565b3373ffffffffffffffffffffffffffffffffffffffff821614610d2e57600080fd5b600054610100900460ff1615808015610d4e5750600054600160ff909116105b80610d685750303b158015610d68575060005460ff166001145b610df4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610c63565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015610e5257600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b610e5a611689565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260666020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055606580547fffffffffffffffffffffffffffffffff000000000000000000000000000000001668056bc75e2d6310000017905560698054702f000000000000000000000000000000006fffffffffffffffffffffffffffffffff91909116179055801561095057600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050565b610f786110d7565b606580547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff92909216919091179055565b610fc36110d7565b606a80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6110126110d7565b73ffffffffffffffffffffffffffffffffffffffff81166110b5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610c63565b6110be81611158565b50565b6110c96110d7565b6110d38282611728565b5050565b60335473ffffffffffffffffffffffffffffffffffffffff163314610a8c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610c63565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b63ffffffff8381166000908152606760205260408120606854606954929384938492680100000000000000009004909116906064906112349070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff1689611cac565b61123e9190611cf8565b6112489190611cac565b825490915060009061127c907801000000000000000000000000000000000000000000000000900463ffffffff1688611cac565b835460685491925060009167ffffffffffffffff700100000000000000000000000000000000909204821691849186916112b791168b611d0c565b6112c19190611d0c565b6112cb9190611d0c565b6112d59190611cac565b60655485549192506fffffffffffffffffffffffffffffffff908116916112fd911683611cac565b6113079190611cf8565b935493996fffffffffffffffffffffffffffffffff9094169850929650505050505050565b600080600061133a8661182e565b63ffffffff8082166000908152606760205260408120805493945092909161137f91780100000000000000000000000000000000000000000000000090041688611cac565b61138b90610c74611d0c565b82549091506000906113bb90700100000000000000000000000000000000900467ffffffffffffffff1683611cac565b63ffffffff808b16600090815260676020526040812080549394509290916114009178010000000000000000000000000000000000000000000000009004168b611cac565b8254909150600090700100000000000000000000000000000000900467ffffffffffffffff166114308b84611d0c565b61143a9190611cac565b60655487549192506000916fffffffffffffffffffffffffffffffff91821691611465911687611cac565b61146f9190611cf8565b60655485549192506000916fffffffffffffffffffffffffffffffff9182169161149a911685611cac565b6114a49190611cf8565b905060006114b28284611d0c565b9554959f6fffffffffffffffffffffffffffffffff9096169e50949c50505050505050505050505050565b63ffffffff8084166000908152606760205260408120805491928392839161152291780100000000000000000000000000000000000000000000000090041687611cac565b8254909150600090700100000000000000000000000000000000900467ffffffffffffffff166115528784611d0c565b61155c9190611cac565b60655484549192506fffffffffffffffffffffffffffffffff90811691611584911683611cac565b61158e9190611cf8565b925492986fffffffffffffffffffffffffffffffff90931697509195505050505050565b6000808080806115c461753089611d1f565b90508063ffffffff16606e14806115e257508063ffffffff1661279f145b806115f457508063ffffffff16614eaf145b1561160e576116048188886111cf565b909550935061165d565b8063ffffffff16606f148061162a57508063ffffffff16612794145b8061163c57508063ffffffff16614ea4145b1561164c5761160481888861132c565b6116578188886114dd565b90955093505b505060655460695493979296506fffffffffffffffffffffffffffffffff908116955090921692509050565b600054610100900460ff16611720576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610c63565b610a8c6118c2565b73ffffffffffffffffffffffffffffffffffffffff8216611775576040517f32fa6a1d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff168260405160006040518083038185875af1925050503d80600081146117cf576040519150601f19603f3d011682016040523d82523d6000602084013e6117d4565b606091505b5050905080610950576040517f2c024f9200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8416600482015260248101839052604401610c63565b60008061183d61753084611d1f565b90508063ffffffff16606f036118565750606592915050565b8063ffffffff166127940361186f575061278992915050565b8063ffffffff16614ea4036118885750614e9992915050565b6040517f8d2da58000000000000000000000000000000000000000000000000000000000815263ffffffff82166004820152602401610c63565b600054610100900460ff16611959576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610c63565b610a8c33611158565b803563ffffffff8116811461197657600080fd5b919050565b60008060006060848603121561199057600080fd5b61199984611962565b95602085013595506040909401359392505050565b80356fffffffffffffffffffffffffffffffff8116811461197657600080fd5b6000602082840312156119e057600080fd5b6119e9826119ae565b9392505050565b60008060208385031215611a0357600080fd5b823567ffffffffffffffff80821115611a1b57600080fd5b818501915085601f830112611a2f57600080fd5b813581811115611a3e57600080fd5b8660208260071b8501011115611a5357600080fd5b60209290920196919550909350505050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461197657600080fd5b60008060408385031215611a9c57600080fd5b611aa583611a65565b915060208301358015158114611aba57600080fd5b809150509250929050565b803561ffff8116811461197657600080fd5b600080600060608486031215611aec57600080fd5b61199984611ac5565b600060c08284031215611b0757600080fd5b50919050565b600060208284031215611b1f57600080fd5b6119e982611a65565b600060208284031215611b3a57600080fd5b6119e982611962565b600060208284031215611b5557600080fd5b6119e982611ac5565b60008060408385031215611b7157600080fd5b611b7a83611a65565b946020939093013593505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b803567ffffffffffffffff8116811461197657600080fd5b600060608284031215611be157600080fd5b6040516060810181811067ffffffffffffffff82111715611c2b577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604052611c37836119ae565b8152611c4560208401611bb7565b6020820152611c5660408401611962565b60408201529392505050565b600060208284031215611c7457600080fd5b6119e982611bb7565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8082028115828204841417611cc357611cc3611c7d565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600082611d0757611d07611cc9565b500490565b80820180821115611cc357611cc3611c7d565b600063ffffffff80841680611d3657611d36611cc9565b9216919091069291505056fea2646970667358221220914e0e3072b9f5d7c1ca228de1615ba8d6711be51203f933d6bde274cbb6f90d64736f6c63430008160033",
646
+ "bytecode": "0x608060405234801561001057600080fd5b50611d78806100206000396000f3fe60806040526004361061018b5760003560e01c80638da5cb5b116100d6578063d350ad251161007f578063e0ad121a11610059578063e0ad121a14610653578063f2fde38b14610708578063fd9be5221461072857600080fd5b8063d350ad251461051c578063da26663a1461053c578063dbbb41551461063357600080fd5b8063c1840327116100b0578063c184032714610498578063c4d66de8146104bf578063cd68b79b146104df57600080fd5b80638da5cb5b1461041657806392807f5814610441578063c1723a1d1461048557600080fd5b80635e280f11116101385780637dc438a4116101125780637dc438a41461035e57806388a4124c1461037e5780638ca2fb08146103d657600080fd5b80635e280f11146102b1578063715018a6146103035780637bc3c9ab1461031857600080fd5b806336a5beba1161016957806336a5beba1461020957806352a72510146102715780635d6d7ccb1461029157600080fd5b806311f2c343146101905780632f7cb0b4146101c75780633161b7f6146101e9575b600080fd5b34801561019c57600080fd5b506101b46101ab36600461197b565b60009392505050565b6040519081526020015b60405180910390f35b3480156101d357600080fd5b506101e76101e23660046119ce565b610748565b005b3480156101f557600080fd5b506101e76102043660046119f0565b610785565b34801561021557600080fd5b5060408051808201825260008082526020918201528151808301835260685467ffffffffffffffff811680835263ffffffff680100000000000000009092048216928401928352845190815291511691810191909152016101be565b34801561027d57600080fd5b506101e761028c366004611a89565b610955565b34801561029d57600080fd5b506101e76102ac3660046119ce565b6109b3565b3480156102bd57600080fd5b50606a546102de9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101be565b34801561030f57600080fd5b506101e7610a7a565b34801561032457600080fd5b50610338610333366004611ad7565b610a8e565b604080519283526fffffffffffffffffffffffffffffffff9091166020830152016101be565b34801561036a57600080fd5b506101e7610379366004611af5565b610b29565b34801561038a57600080fd5b5061039e61039936600461197b565b610c36565b604080519485526fffffffffffffffffffffffffffffffff9384166020860152918316918401919091521660608201526080016101be565b3480156103e257600080fd5b506104066103f1366004611b0d565b60666020526000908152604090205460ff1681565b60405190151581526020016101be565b34801561042257600080fd5b5060335473ffffffffffffffffffffffffffffffffffffffff166102de565b34801561044d57600080fd5b506069546fffffffffffffffffffffffffffffffff165b6040516fffffffffffffffffffffffffffffffff90911681526020016101be565b61039e61049336600461197b565b610c58565b3480156104a457600080fd5b506065546fffffffffffffffffffffffffffffffff16610464565b3480156104cb57600080fd5b506101e76104da366004611b0d565b610c89565b3480156104eb57600080fd5b506069546104649070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff1681565b34801561052857600080fd5b506101e76105373660046119ce565b610f70565b34801561054857600080fd5b506105ef610557366004611b28565b60408051606080820183526000808352602080840182905292840181905263ffffffff94851681526067835283902083519182018452546fffffffffffffffffffffffffffffffff81168252700100000000000000000000000000000000810467ffffffffffffffff169282019290925278010000000000000000000000000000000000000000000000009091049092169082015290565b6040805182516fffffffffffffffffffffffffffffffff16815260208084015167ffffffffffffffff16908201529181015163ffffffff16908201526060016101be565b34801561063f57600080fd5b506101e761064e366004611b0d565b610fbb565b34801561065f57600080fd5b506105ef61066e366004611b43565b60408051606080820183526000808352602080840182905292840181905261ffff949094168452606782529282902082519384018352546fffffffffffffffffffffffffffffffff8116845267ffffffffffffffff700100000000000000000000000000000000820416918401919091527801000000000000000000000000000000000000000000000000900463ffffffff169082015290565b34801561071457600080fd5b506101e7610723366004611b0d565b61100a565b34801561073457600080fd5b506101e7610743366004611b5e565b6110c1565b6107506110d7565b606980546fffffffffffffffffffffffffffffffff928316700100000000000000000000000000000000029216919091179055565b336107a560335473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff1614610809573360009081526066602052604090205460ff16610809576040517f320ae52900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005b81811015610950573683838381811061082757610827611b88565b60800291909101915061094790506108426020830183611b28565b61085436849003840160208501611bcf565b805160208083015160409384015184516060810186526fffffffffffffffffffffffffffffffff948516815267ffffffffffffffff92831681850190815263ffffffff9283168288019081529783166000908152606790955295909320925183549551965194167fffffffffffffffff000000000000000000000000000000000000000000000000909516949094177001000000000000000000000000000000009590911694909402939093177fffffffff00000000ffffffffffffffffffffffffffffffffffffffffffffffff1678010000000000000000000000000000000000000000000000009190921602179055565b5060010161080c565b505050565b61095d6110d7565b73ffffffffffffffffffffffffffffffffffffffff91909116600090815260666020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055565b336109d360335473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff1614610a37573360009081526066602052604090205460ff16610a37576040517f320ae52900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b606980547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff92909216919091179055565b610a826110d7565b610a8c6000611158565b565b6000808461ffff16606e1480610aa957508461ffff1661279f145b80610ab957508461ffff16614eaf145b15610ad657610acd8561ffff1685856111cf565b91509150610b21565b8461ffff16606f1480610aee57508461ffff16612794145b80610afe57508461ffff16614ea4145b15610b1257610acd8561ffff16858561132c565b610acd8561ffff1685856114dd565b935093915050565b33610b4960335473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff1614610bad573360009081526066602052604090205460ff16610bad576040517f320ae52900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610bbd6108426020830183611b28565b6000610bcf60a0830160808401611c62565b90506000610be360c0840160a08501611b28565b6068805463ffffffff90921668010000000000000000027fffffffffffffffffffffffffffffffffffffffff00000000000000000000000090921667ffffffffffffffff90941693909317179091555050565b600080600080610c478787876115b2565b935093509350935093509350935093565b600080808080610c6c565b60405180910390fd5b610c778888886115b2565b94509450945094505093509350935093565b6000610cb37fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b905073ffffffffffffffffffffffffffffffffffffffff8116610d0c5773ffffffffffffffffffffffffffffffffffffffff7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610355610d2e565b3373ffffffffffffffffffffffffffffffffffffffff821614610d2e57600080fd5b600054610100900460ff1615808015610d4e5750600054600160ff909116105b80610d685750303b158015610d68575060005460ff166001145b610df4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610c63565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015610e5257600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b610e5a611689565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260666020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055606580547fffffffffffffffffffffffffffffffff000000000000000000000000000000001668056bc75e2d6310000017905560698054702f000000000000000000000000000000006fffffffffffffffffffffffffffffffff91909116179055801561095057600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050565b610f786110d7565b606580547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff92909216919091179055565b610fc36110d7565b606a80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6110126110d7565b73ffffffffffffffffffffffffffffffffffffffff81166110b5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610c63565b6110be81611158565b50565b6110c96110d7565b6110d38282611728565b5050565b60335473ffffffffffffffffffffffffffffffffffffffff163314610a8c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610c63565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b63ffffffff8381166000908152606760205260408120606854606954929384938492680100000000000000009004909116906064906112349070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff1689611cac565b61123e9190611cf8565b6112489190611cac565b825490915060009061127c907801000000000000000000000000000000000000000000000000900463ffffffff1688611cac565b835460685491925060009167ffffffffffffffff700100000000000000000000000000000000909204821691849186916112b791168b611d0c565b6112c19190611d0c565b6112cb9190611d0c565b6112d59190611cac565b60655485549192506fffffffffffffffffffffffffffffffff908116916112fd911683611cac565b6113079190611cf8565b935493996fffffffffffffffffffffffffffffffff9094169850929650505050505050565b600080600061133a8661182e565b63ffffffff8082166000908152606760205260408120805493945092909161137f91780100000000000000000000000000000000000000000000000090041688611cac565b61138b90610c74611d0c565b82549091506000906113bb90700100000000000000000000000000000000900467ffffffffffffffff1683611cac565b63ffffffff808b16600090815260676020526040812080549394509290916114009178010000000000000000000000000000000000000000000000009004168b611cac565b8254909150600090700100000000000000000000000000000000900467ffffffffffffffff166114308b84611d0c565b61143a9190611cac565b60655487549192506000916fffffffffffffffffffffffffffffffff91821691611465911687611cac565b61146f9190611cf8565b60655485549192506000916fffffffffffffffffffffffffffffffff9182169161149a911685611cac565b6114a49190611cf8565b905060006114b28284611d0c565b9554959f6fffffffffffffffffffffffffffffffff9096169e50949c50505050505050505050505050565b63ffffffff8084166000908152606760205260408120805491928392839161152291780100000000000000000000000000000000000000000000000090041687611cac565b8254909150600090700100000000000000000000000000000000900467ffffffffffffffff166115528784611d0c565b61155c9190611cac565b60655484549192506fffffffffffffffffffffffffffffffff90811691611584911683611cac565b61158e9190611cf8565b925492986fffffffffffffffffffffffffffffffff90931697509195505050505050565b6000808080806115c461753089611d1f565b90508063ffffffff16606e14806115e257508063ffffffff1661279f145b806115f457508063ffffffff16614eaf145b1561160e576116048188886111cf565b909550935061165d565b8063ffffffff16606f148061162a57508063ffffffff16612794145b8061163c57508063ffffffff16614ea4145b1561164c5761160481888861132c565b6116578188886114dd565b90955093505b505060655460695493979296506fffffffffffffffffffffffffffffffff908116955090921692509050565b600054610100900460ff16611720576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610c63565b610a8c6118c2565b73ffffffffffffffffffffffffffffffffffffffff8216611775576040517f6b7a931000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff168260405160006040518083038185875af1925050503d80600081146117cf576040519150601f19603f3d011682016040523d82523d6000602084013e6117d4565b606091505b5050905080610950576040517f465bc83400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8416600482015260248101839052604401610c63565b60008061183d61753084611d1f565b90508063ffffffff16606f036118565750606592915050565b8063ffffffff166127940361186f575061278992915050565b8063ffffffff16614ea4036118885750614e9992915050565b6040517fea25394500000000000000000000000000000000000000000000000000000000815263ffffffff82166004820152602401610c63565b600054610100900460ff16611959576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610c63565b610a8c33611158565b803563ffffffff8116811461197657600080fd5b919050565b60008060006060848603121561199057600080fd5b61199984611962565b95602085013595506040909401359392505050565b80356fffffffffffffffffffffffffffffffff8116811461197657600080fd5b6000602082840312156119e057600080fd5b6119e9826119ae565b9392505050565b60008060208385031215611a0357600080fd5b823567ffffffffffffffff80821115611a1b57600080fd5b818501915085601f830112611a2f57600080fd5b813581811115611a3e57600080fd5b8660208260071b8501011115611a5357600080fd5b60209290920196919550909350505050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461197657600080fd5b60008060408385031215611a9c57600080fd5b611aa583611a65565b915060208301358015158114611aba57600080fd5b809150509250929050565b803561ffff8116811461197657600080fd5b600080600060608486031215611aec57600080fd5b61199984611ac5565b600060c08284031215611b0757600080fd5b50919050565b600060208284031215611b1f57600080fd5b6119e982611a65565b600060208284031215611b3a57600080fd5b6119e982611962565b600060208284031215611b5557600080fd5b6119e982611ac5565b60008060408385031215611b7157600080fd5b611b7a83611a65565b946020939093013593505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b803567ffffffffffffffff8116811461197657600080fd5b600060608284031215611be157600080fd5b6040516060810181811067ffffffffffffffff82111715611c2b577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604052611c37836119ae565b8152611c4560208401611bb7565b6020820152611c5660408401611962565b60408201529392505050565b600060208284031215611c7457600080fd5b6119e982611bb7565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8082028115828204841417611cc357611cc3611c7d565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600082611d0757611d07611cc9565b500490565b80820180821115611cc357611cc3611c7d565b600063ffffffff80841680611d3657611d36611cc9565b9216919091069291505056fea264697066735822122077fab4a0c8c6f748b3aaf542af75c5aec874b38d73fa55a6625f260720eb82a864736f6c63430008160033",
647
+ "deployedBytecode": "0x60806040526004361061018b5760003560e01c80638da5cb5b116100d6578063d350ad251161007f578063e0ad121a11610059578063e0ad121a14610653578063f2fde38b14610708578063fd9be5221461072857600080fd5b8063d350ad251461051c578063da26663a1461053c578063dbbb41551461063357600080fd5b8063c1840327116100b0578063c184032714610498578063c4d66de8146104bf578063cd68b79b146104df57600080fd5b80638da5cb5b1461041657806392807f5814610441578063c1723a1d1461048557600080fd5b80635e280f11116101385780637dc438a4116101125780637dc438a41461035e57806388a4124c1461037e5780638ca2fb08146103d657600080fd5b80635e280f11146102b1578063715018a6146103035780637bc3c9ab1461031857600080fd5b806336a5beba1161016957806336a5beba1461020957806352a72510146102715780635d6d7ccb1461029157600080fd5b806311f2c343146101905780632f7cb0b4146101c75780633161b7f6146101e9575b600080fd5b34801561019c57600080fd5b506101b46101ab36600461197b565b60009392505050565b6040519081526020015b60405180910390f35b3480156101d357600080fd5b506101e76101e23660046119ce565b610748565b005b3480156101f557600080fd5b506101e76102043660046119f0565b610785565b34801561021557600080fd5b5060408051808201825260008082526020918201528151808301835260685467ffffffffffffffff811680835263ffffffff680100000000000000009092048216928401928352845190815291511691810191909152016101be565b34801561027d57600080fd5b506101e761028c366004611a89565b610955565b34801561029d57600080fd5b506101e76102ac3660046119ce565b6109b3565b3480156102bd57600080fd5b50606a546102de9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101be565b34801561030f57600080fd5b506101e7610a7a565b34801561032457600080fd5b50610338610333366004611ad7565b610a8e565b604080519283526fffffffffffffffffffffffffffffffff9091166020830152016101be565b34801561036a57600080fd5b506101e7610379366004611af5565b610b29565b34801561038a57600080fd5b5061039e61039936600461197b565b610c36565b604080519485526fffffffffffffffffffffffffffffffff9384166020860152918316918401919091521660608201526080016101be565b3480156103e257600080fd5b506104066103f1366004611b0d565b60666020526000908152604090205460ff1681565b60405190151581526020016101be565b34801561042257600080fd5b5060335473ffffffffffffffffffffffffffffffffffffffff166102de565b34801561044d57600080fd5b506069546fffffffffffffffffffffffffffffffff165b6040516fffffffffffffffffffffffffffffffff90911681526020016101be565b61039e61049336600461197b565b610c58565b3480156104a457600080fd5b506065546fffffffffffffffffffffffffffffffff16610464565b3480156104cb57600080fd5b506101e76104da366004611b0d565b610c89565b3480156104eb57600080fd5b506069546104649070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff1681565b34801561052857600080fd5b506101e76105373660046119ce565b610f70565b34801561054857600080fd5b506105ef610557366004611b28565b60408051606080820183526000808352602080840182905292840181905263ffffffff94851681526067835283902083519182018452546fffffffffffffffffffffffffffffffff81168252700100000000000000000000000000000000810467ffffffffffffffff169282019290925278010000000000000000000000000000000000000000000000009091049092169082015290565b6040805182516fffffffffffffffffffffffffffffffff16815260208084015167ffffffffffffffff16908201529181015163ffffffff16908201526060016101be565b34801561063f57600080fd5b506101e761064e366004611b0d565b610fbb565b34801561065f57600080fd5b506105ef61066e366004611b43565b60408051606080820183526000808352602080840182905292840181905261ffff949094168452606782529282902082519384018352546fffffffffffffffffffffffffffffffff8116845267ffffffffffffffff700100000000000000000000000000000000820416918401919091527801000000000000000000000000000000000000000000000000900463ffffffff169082015290565b34801561071457600080fd5b506101e7610723366004611b0d565b61100a565b34801561073457600080fd5b506101e7610743366004611b5e565b6110c1565b6107506110d7565b606980546fffffffffffffffffffffffffffffffff928316700100000000000000000000000000000000029216919091179055565b336107a560335473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff1614610809573360009081526066602052604090205460ff16610809576040517f320ae52900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005b81811015610950573683838381811061082757610827611b88565b60800291909101915061094790506108426020830183611b28565b61085436849003840160208501611bcf565b805160208083015160409384015184516060810186526fffffffffffffffffffffffffffffffff948516815267ffffffffffffffff92831681850190815263ffffffff9283168288019081529783166000908152606790955295909320925183549551965194167fffffffffffffffff000000000000000000000000000000000000000000000000909516949094177001000000000000000000000000000000009590911694909402939093177fffffffff00000000ffffffffffffffffffffffffffffffffffffffffffffffff1678010000000000000000000000000000000000000000000000009190921602179055565b5060010161080c565b505050565b61095d6110d7565b73ffffffffffffffffffffffffffffffffffffffff91909116600090815260666020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055565b336109d360335473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff1614610a37573360009081526066602052604090205460ff16610a37576040517f320ae52900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b606980547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff92909216919091179055565b610a826110d7565b610a8c6000611158565b565b6000808461ffff16606e1480610aa957508461ffff1661279f145b80610ab957508461ffff16614eaf145b15610ad657610acd8561ffff1685856111cf565b91509150610b21565b8461ffff16606f1480610aee57508461ffff16612794145b80610afe57508461ffff16614ea4145b15610b1257610acd8561ffff16858561132c565b610acd8561ffff1685856114dd565b935093915050565b33610b4960335473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff1614610bad573360009081526066602052604090205460ff16610bad576040517f320ae52900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610bbd6108426020830183611b28565b6000610bcf60a0830160808401611c62565b90506000610be360c0840160a08501611b28565b6068805463ffffffff90921668010000000000000000027fffffffffffffffffffffffffffffffffffffffff00000000000000000000000090921667ffffffffffffffff90941693909317179091555050565b600080600080610c478787876115b2565b935093509350935093509350935093565b600080808080610c6c565b60405180910390fd5b610c778888886115b2565b94509450945094505093509350935093565b6000610cb37fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b905073ffffffffffffffffffffffffffffffffffffffff8116610d0c5773ffffffffffffffffffffffffffffffffffffffff7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610355610d2e565b3373ffffffffffffffffffffffffffffffffffffffff821614610d2e57600080fd5b600054610100900460ff1615808015610d4e5750600054600160ff909116105b80610d685750303b158015610d68575060005460ff166001145b610df4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610c63565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015610e5257600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b610e5a611689565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260666020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055606580547fffffffffffffffffffffffffffffffff000000000000000000000000000000001668056bc75e2d6310000017905560698054702f000000000000000000000000000000006fffffffffffffffffffffffffffffffff91909116179055801561095057600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050565b610f786110d7565b606580547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff92909216919091179055565b610fc36110d7565b606a80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b6110126110d7565b73ffffffffffffffffffffffffffffffffffffffff81166110b5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610c63565b6110be81611158565b50565b6110c96110d7565b6110d38282611728565b5050565b60335473ffffffffffffffffffffffffffffffffffffffff163314610a8c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610c63565b6033805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b63ffffffff8381166000908152606760205260408120606854606954929384938492680100000000000000009004909116906064906112349070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff1689611cac565b61123e9190611cf8565b6112489190611cac565b825490915060009061127c907801000000000000000000000000000000000000000000000000900463ffffffff1688611cac565b835460685491925060009167ffffffffffffffff700100000000000000000000000000000000909204821691849186916112b791168b611d0c565b6112c19190611d0c565b6112cb9190611d0c565b6112d59190611cac565b60655485549192506fffffffffffffffffffffffffffffffff908116916112fd911683611cac565b6113079190611cf8565b935493996fffffffffffffffffffffffffffffffff9094169850929650505050505050565b600080600061133a8661182e565b63ffffffff8082166000908152606760205260408120805493945092909161137f91780100000000000000000000000000000000000000000000000090041688611cac565b61138b90610c74611d0c565b82549091506000906113bb90700100000000000000000000000000000000900467ffffffffffffffff1683611cac565b63ffffffff808b16600090815260676020526040812080549394509290916114009178010000000000000000000000000000000000000000000000009004168b611cac565b8254909150600090700100000000000000000000000000000000900467ffffffffffffffff166114308b84611d0c565b61143a9190611cac565b60655487549192506000916fffffffffffffffffffffffffffffffff91821691611465911687611cac565b61146f9190611cf8565b60655485549192506000916fffffffffffffffffffffffffffffffff9182169161149a911685611cac565b6114a49190611cf8565b905060006114b28284611d0c565b9554959f6fffffffffffffffffffffffffffffffff9096169e50949c50505050505050505050505050565b63ffffffff8084166000908152606760205260408120805491928392839161152291780100000000000000000000000000000000000000000000000090041687611cac565b8254909150600090700100000000000000000000000000000000900467ffffffffffffffff166115528784611d0c565b61155c9190611cac565b60655484549192506fffffffffffffffffffffffffffffffff90811691611584911683611cac565b61158e9190611cf8565b925492986fffffffffffffffffffffffffffffffff90931697509195505050505050565b6000808080806115c461753089611d1f565b90508063ffffffff16606e14806115e257508063ffffffff1661279f145b806115f457508063ffffffff16614eaf145b1561160e576116048188886111cf565b909550935061165d565b8063ffffffff16606f148061162a57508063ffffffff16612794145b8061163c57508063ffffffff16614ea4145b1561164c5761160481888861132c565b6116578188886114dd565b90955093505b505060655460695493979296506fffffffffffffffffffffffffffffffff908116955090921692509050565b600054610100900460ff16611720576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610c63565b610a8c6118c2565b73ffffffffffffffffffffffffffffffffffffffff8216611775576040517f6b7a931000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff168260405160006040518083038185875af1925050503d80600081146117cf576040519150601f19603f3d011682016040523d82523d6000602084013e6117d4565b606091505b5050905080610950576040517f465bc83400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8416600482015260248101839052604401610c63565b60008061183d61753084611d1f565b90508063ffffffff16606f036118565750606592915050565b8063ffffffff166127940361186f575061278992915050565b8063ffffffff16614ea4036118885750614e9992915050565b6040517fea25394500000000000000000000000000000000000000000000000000000000815263ffffffff82166004820152602401610c63565b600054610100900460ff16611959576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610c63565b610a8c33611158565b803563ffffffff8116811461197657600080fd5b919050565b60008060006060848603121561199057600080fd5b61199984611962565b95602085013595506040909401359392505050565b80356fffffffffffffffffffffffffffffffff8116811461197657600080fd5b6000602082840312156119e057600080fd5b6119e9826119ae565b9392505050565b60008060208385031215611a0357600080fd5b823567ffffffffffffffff80821115611a1b57600080fd5b818501915085601f830112611a2f57600080fd5b813581811115611a3e57600080fd5b8660208260071b8501011115611a5357600080fd5b60209290920196919550909350505050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461197657600080fd5b60008060408385031215611a9c57600080fd5b611aa583611a65565b915060208301358015158114611aba57600080fd5b809150509250929050565b803561ffff8116811461197657600080fd5b600080600060608486031215611aec57600080fd5b61199984611ac5565b600060c08284031215611b0757600080fd5b50919050565b600060208284031215611b1f57600080fd5b6119e982611a65565b600060208284031215611b3a57600080fd5b6119e982611962565b600060208284031215611b5557600080fd5b6119e982611ac5565b60008060408385031215611b7157600080fd5b611b7a83611a65565b946020939093013593505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b803567ffffffffffffffff8116811461197657600080fd5b600060608284031215611be157600080fd5b6040516060810181811067ffffffffffffffff82111715611c2b577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604052611c37836119ae565b8152611c4560208401611bb7565b6020820152611c5660408401611962565b60408201529392505050565b600060208284031215611c7457600080fd5b6119e982611bb7565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8082028115828204841417611cc357611cc3611c7d565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600082611d0757611d07611cc9565b500490565b80820180821115611cc357611cc3611c7d565b600063ffffffff80841680611d3657611d36611cc9565b9216919091069291505056fea264697066735822122077fab4a0c8c6f748b3aaf542af75c5aec874b38d73fa55a6625f260720eb82a864736f6c63430008160033",
648
648
  "linkReferences": {},
649
649
  "deployedLinkReferences": {}
650
650
  }
@@ -5,7 +5,7 @@
5
5
  "abi": [
6
6
  {
7
7
  "inputs": [],
8
- "name": "OnlyEndpoint",
8
+ "name": "LZ_MessageLib_OnlyEndpoint",
9
9
  "type": "error"
10
10
  },
11
11
  {
@@ -16,12 +16,12 @@
16
16
  "type": "uint256"
17
17
  }
18
18
  ],
19
- "name": "InvalidAmount",
19
+ "name": "LZ_MessageLib_InvalidAmount",
20
20
  "type": "error"
21
21
  },
22
22
  {
23
23
  "inputs": [],
24
- "name": "InvalidExecutor",
24
+ "name": "LZ_MessageLib_InvalidExecutor",
25
25
  "type": "error"
26
26
  },
27
27
  {
@@ -37,22 +37,22 @@
37
37
  "type": "uint256"
38
38
  }
39
39
  ],
40
- "name": "InvalidMessageSize",
40
+ "name": "LZ_MessageLib_InvalidMessageSize",
41
41
  "type": "error"
42
42
  },
43
43
  {
44
44
  "inputs": [],
45
- "name": "OnlyEndpoint",
45
+ "name": "LZ_MessageLib_OnlyEndpoint",
46
46
  "type": "error"
47
47
  },
48
48
  {
49
49
  "inputs": [],
50
- "name": "TransferFailed",
50
+ "name": "LZ_MessageLib_TransferFailed",
51
51
  "type": "error"
52
52
  },
53
53
  {
54
54
  "inputs": [],
55
- "name": "ZeroMessageSize",
55
+ "name": "LZ_MessageLib_ZeroMessageSize",
56
56
  "type": "error"
57
57
  },
58
58
  {
@@ -5,7 +5,7 @@
5
5
  "abi": [
6
6
  {
7
7
  "inputs": [],
8
- "name": "CannotWithdrawAltToken",
8
+ "name": "LZ_MessageLib_CannotWithdrawAltToken",
9
9
  "type": "error"
10
10
  },
11
11
  {
@@ -21,12 +21,12 @@
21
21
  "type": "uint256"
22
22
  }
23
23
  ],
24
- "name": "InvalidAmount",
24
+ "name": "LZ_MessageLib_InvalidAmount",
25
25
  "type": "error"
26
26
  },
27
27
  {
28
28
  "inputs": [],
29
- "name": "InvalidExecutor",
29
+ "name": "LZ_MessageLib_InvalidExecutor",
30
30
  "type": "error"
31
31
  },
32
32
  {
@@ -42,27 +42,27 @@
42
42
  "type": "uint256"
43
43
  }
44
44
  ],
45
- "name": "InvalidMessageSize",
45
+ "name": "LZ_MessageLib_InvalidMessageSize",
46
46
  "type": "error"
47
47
  },
48
48
  {
49
49
  "inputs": [],
50
- "name": "NotTreasury",
50
+ "name": "LZ_MessageLib_NotTreasury",
51
51
  "type": "error"
52
52
  },
53
53
  {
54
54
  "inputs": [],
55
- "name": "OnlyEndpoint",
55
+ "name": "LZ_MessageLib_OnlyEndpoint",
56
56
  "type": "error"
57
57
  },
58
58
  {
59
59
  "inputs": [],
60
- "name": "ToAddressIsZero",
60
+ "name": "LZ_MessageLib_TransferFailed",
61
61
  "type": "error"
62
62
  },
63
63
  {
64
64
  "inputs": [],
65
- "name": "TransferFailed",
65
+ "name": "LZ_MessageLib_ZeroMessageSize",
66
66
  "type": "error"
67
67
  },
68
68
  {
@@ -78,12 +78,12 @@
78
78
  "type": "uint256"
79
79
  }
80
80
  ],
81
- "name": "TransferNativeFailed",
81
+ "name": "Transfer_NativeFailed",
82
82
  "type": "error"
83
83
  },
84
84
  {
85
85
  "inputs": [],
86
- "name": "ZeroMessageSize",
86
+ "name": "Transfer_ToAddressIsZero",
87
87
  "type": "error"
88
88
  },
89
89
  {
@@ -5,12 +5,7 @@
5
5
  "abi": [
6
6
  {
7
7
  "inputs": [],
8
- "name": "LzTokenNotEnabled",
9
- "type": "error"
10
- },
11
- {
12
- "inputs": [],
13
- "name": "ToAddressIsZero",
8
+ "name": "LZ_Treasury_LzTokenNotEnabled",
14
9
  "type": "error"
15
10
  },
16
11
  {
@@ -26,7 +21,12 @@
26
21
  "type": "uint256"
27
22
  }
28
23
  ],
29
- "name": "TransferNativeFailed",
24
+ "name": "Transfer_NativeFailed",
25
+ "type": "error"
26
+ },
27
+ {
28
+ "inputs": [],
29
+ "name": "Transfer_ToAddressIsZero",
30
30
  "type": "error"
31
31
  },
32
32
  {
@@ -302,8 +302,8 @@
302
302
  "type": "function"
303
303
  }
304
304
  ],
305
- "bytecode": "0x608060405234801561001057600080fd5b5061001a3361001f565b61006f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610ddb8061007e6000396000f3fe6080604052600436106100dd5760003560e01c80638ee643a61161007f578063bf6e753611610059578063bf6e753614610237578063d424422114610257578063d51c548614610277578063f2fde38b1461028557600080fd5b80638ee643a6146101dd57806390953238146101fd57806396a141a01461022157600080fd5b80633972d46c116100bb5780633972d46c14610153578063715018a6146101735780637e8a0699146101885780638da5cb5b146101a857600080fd5b806301d9c2cb146100e257806301e336671461011157806301f1f6e814610133575b600080fd5b3480156100ee57600080fd5b506003546100fc9060ff1681565b60405190151581526020015b60405180910390f35b34801561011d57600080fd5b5061013161012c366004610b28565b6102a5565b005b34801561013f57600080fd5b5061013161014e366004610b77565b6102bd565b34801561015f57600080fd5b5061013161016e366004610b9b565b6102f6565b34801561017f57600080fd5b50610131610303565b34801561019457600080fd5b506101316101a3366004610bb4565b610317565b3480156101b457600080fd5b5060005460405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610108565b3480156101e957600080fd5b506101316101f8366004610b9b565b6103b5565b34801561020957600080fd5b5061021360025481565b604051908152602001610108565b34801561022d57600080fd5b5061021360015481565b34801561024357600080fd5b50610131610252366004610b28565b6103c2565b34801561026357600080fd5b50610213610272366004610c05565b610457565b610213610272366004610c05565b34801561029157600080fd5b506101316102a0366004610c61565b61046e565b6102ad61052a565b6102b88383836105ab565b505050565b6102c561052a565b600380547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055565b6102fe61052a565b600155565b61030b61052a565b61031560006105db565b565b61031f61052a565b6040517f200175f700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff848116600483015283811660248301526044820183905285169063200175f790606401600060405180830381600087803b15801561039757600080fd5b505af11580156103ab573d6000803e3d6000fd5b5050505050505050565b6103bd61052a565b600255565b6103ca61052a565b6040517ffd9be52200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83811660048301526024820183905284169063fd9be52290604401600060405180830381600087803b15801561043a57600080fd5b505af115801561044e573d6000803e3d6000fd5b50505050505050565b60006104638383610650565b90505b949350505050565b61047661052a565b73ffffffffffffffffffffffffffffffffffffffff811661051e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b610527816105db565b50565b60005473ffffffffffffffffffffffffffffffffffffffff163314610315576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610515565b73ffffffffffffffffffffffffffffffffffffffff83166105d0576102b882826106c1565b6102b88383836107c7565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000811561069d5760035460ff16610694576040517fd22af88c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b506002546106bb565b612710600154846106ae9190610c7e565b6106b89190610cbc565b90505b92915050565b73ffffffffffffffffffffffffffffffffffffffff821661070e576040517f32fa6a1d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff168260405160006040518083038185875af1925050503d8060008114610768576040519150601f19603f3d011682016040523d82523d6000602084013e61076d565b606091505b50509050806102b8576040517f2c024f9200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8416600482015260248101839052604401610515565b73ffffffffffffffffffffffffffffffffffffffff8216610814576040517f32fa6a1d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805173ffffffffffffffffffffffffffffffffffffffff848116602483015260448083018590528351808403909101815260649092018352602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb0000000000000000000000000000000000000000000000000000000017905283518085019094528084527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564908401526102b892908616918591859185918591906000906108e89084908490610995565b90508051600014806109095750808060200190518101906109099190610cf7565b6102b8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401610515565b60606104668484600085856000808673ffffffffffffffffffffffffffffffffffffffff1685876040516109c99190610d38565b60006040518083038185875af1925050503d8060008114610a06576040519150601f19603f3d011682016040523d82523d6000602084013e610a0b565b606091505b5091509150610a1c87838387610a27565b979650505050505050565b60608315610abd578251600003610ab65773ffffffffffffffffffffffffffffffffffffffff85163b610ab6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610515565b5081610466565b6104668383815115610ad25781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105159190610d54565b73ffffffffffffffffffffffffffffffffffffffff8116811461052757600080fd5b600080600060608486031215610b3d57600080fd5b8335610b4881610b06565b92506020840135610b5881610b06565b929592945050506040919091013590565b801515811461052757600080fd5b600060208284031215610b8957600080fd5b8135610b9481610b69565b9392505050565b600060208284031215610bad57600080fd5b5035919050565b60008060008060808587031215610bca57600080fd5b8435610bd581610b06565b93506020850135610be581610b06565b92506040850135610bf581610b06565b9396929550929360600135925050565b60008060008060808587031215610c1b57600080fd5b8435610c2681610b06565b9350602085013563ffffffff81168114610c3f57600080fd5b9250604085013591506060850135610c5681610b69565b939692955090935050565b600060208284031215610c7357600080fd5b8135610b9481610b06565b80820281158282048414176106bb577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600082610cf2577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b600060208284031215610d0957600080fd5b8151610b9481610b69565b60005b83811015610d2f578181015183820152602001610d17565b50506000910152565b60008251610d4a818460208701610d14565b9190910192915050565b6020815260008251806020840152610d73816040850160208701610d14565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016040019291505056fea2646970667358221220cae62a2788a6ff579ae01fb3f8e558344b48ee181f57c669a84b51501e544da364736f6c63430008160033",
306
- "deployedBytecode": "0x6080604052600436106100dd5760003560e01c80638ee643a61161007f578063bf6e753611610059578063bf6e753614610237578063d424422114610257578063d51c548614610277578063f2fde38b1461028557600080fd5b80638ee643a6146101dd57806390953238146101fd57806396a141a01461022157600080fd5b80633972d46c116100bb5780633972d46c14610153578063715018a6146101735780637e8a0699146101885780638da5cb5b146101a857600080fd5b806301d9c2cb146100e257806301e336671461011157806301f1f6e814610133575b600080fd5b3480156100ee57600080fd5b506003546100fc9060ff1681565b60405190151581526020015b60405180910390f35b34801561011d57600080fd5b5061013161012c366004610b28565b6102a5565b005b34801561013f57600080fd5b5061013161014e366004610b77565b6102bd565b34801561015f57600080fd5b5061013161016e366004610b9b565b6102f6565b34801561017f57600080fd5b50610131610303565b34801561019457600080fd5b506101316101a3366004610bb4565b610317565b3480156101b457600080fd5b5060005460405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610108565b3480156101e957600080fd5b506101316101f8366004610b9b565b6103b5565b34801561020957600080fd5b5061021360025481565b604051908152602001610108565b34801561022d57600080fd5b5061021360015481565b34801561024357600080fd5b50610131610252366004610b28565b6103c2565b34801561026357600080fd5b50610213610272366004610c05565b610457565b610213610272366004610c05565b34801561029157600080fd5b506101316102a0366004610c61565b61046e565b6102ad61052a565b6102b88383836105ab565b505050565b6102c561052a565b600380547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055565b6102fe61052a565b600155565b61030b61052a565b61031560006105db565b565b61031f61052a565b6040517f200175f700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff848116600483015283811660248301526044820183905285169063200175f790606401600060405180830381600087803b15801561039757600080fd5b505af11580156103ab573d6000803e3d6000fd5b5050505050505050565b6103bd61052a565b600255565b6103ca61052a565b6040517ffd9be52200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83811660048301526024820183905284169063fd9be52290604401600060405180830381600087803b15801561043a57600080fd5b505af115801561044e573d6000803e3d6000fd5b50505050505050565b60006104638383610650565b90505b949350505050565b61047661052a565b73ffffffffffffffffffffffffffffffffffffffff811661051e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b610527816105db565b50565b60005473ffffffffffffffffffffffffffffffffffffffff163314610315576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610515565b73ffffffffffffffffffffffffffffffffffffffff83166105d0576102b882826106c1565b6102b88383836107c7565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000811561069d5760035460ff16610694576040517fd22af88c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b506002546106bb565b612710600154846106ae9190610c7e565b6106b89190610cbc565b90505b92915050565b73ffffffffffffffffffffffffffffffffffffffff821661070e576040517f32fa6a1d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff168260405160006040518083038185875af1925050503d8060008114610768576040519150601f19603f3d011682016040523d82523d6000602084013e61076d565b606091505b50509050806102b8576040517f2c024f9200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8416600482015260248101839052604401610515565b73ffffffffffffffffffffffffffffffffffffffff8216610814576040517f32fa6a1d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805173ffffffffffffffffffffffffffffffffffffffff848116602483015260448083018590528351808403909101815260649092018352602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb0000000000000000000000000000000000000000000000000000000017905283518085019094528084527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564908401526102b892908616918591859185918591906000906108e89084908490610995565b90508051600014806109095750808060200190518101906109099190610cf7565b6102b8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401610515565b60606104668484600085856000808673ffffffffffffffffffffffffffffffffffffffff1685876040516109c99190610d38565b60006040518083038185875af1925050503d8060008114610a06576040519150601f19603f3d011682016040523d82523d6000602084013e610a0b565b606091505b5091509150610a1c87838387610a27565b979650505050505050565b60608315610abd578251600003610ab65773ffffffffffffffffffffffffffffffffffffffff85163b610ab6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610515565b5081610466565b6104668383815115610ad25781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105159190610d54565b73ffffffffffffffffffffffffffffffffffffffff8116811461052757600080fd5b600080600060608486031215610b3d57600080fd5b8335610b4881610b06565b92506020840135610b5881610b06565b929592945050506040919091013590565b801515811461052757600080fd5b600060208284031215610b8957600080fd5b8135610b9481610b69565b9392505050565b600060208284031215610bad57600080fd5b5035919050565b60008060008060808587031215610bca57600080fd5b8435610bd581610b06565b93506020850135610be581610b06565b92506040850135610bf581610b06565b9396929550929360600135925050565b60008060008060808587031215610c1b57600080fd5b8435610c2681610b06565b9350602085013563ffffffff81168114610c3f57600080fd5b9250604085013591506060850135610c5681610b69565b939692955090935050565b600060208284031215610c7357600080fd5b8135610b9481610b06565b80820281158282048414176106bb577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600082610cf2577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b600060208284031215610d0957600080fd5b8151610b9481610b69565b60005b83811015610d2f578181015183820152602001610d17565b50506000910152565b60008251610d4a818460208701610d14565b9190910192915050565b6020815260008251806020840152610d73816040850160208701610d14565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016040019291505056fea2646970667358221220cae62a2788a6ff579ae01fb3f8e558344b48ee181f57c669a84b51501e544da364736f6c63430008160033",
305
+ "bytecode": "0x608060405234801561001057600080fd5b5061001a3361001f565b61006f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610ddb8061007e6000396000f3fe6080604052600436106100dd5760003560e01c80638ee643a61161007f578063bf6e753611610059578063bf6e753614610237578063d424422114610257578063d51c548614610277578063f2fde38b1461028557600080fd5b80638ee643a6146101dd57806390953238146101fd57806396a141a01461022157600080fd5b80633972d46c116100bb5780633972d46c14610153578063715018a6146101735780637e8a0699146101885780638da5cb5b146101a857600080fd5b806301d9c2cb146100e257806301e336671461011157806301f1f6e814610133575b600080fd5b3480156100ee57600080fd5b506003546100fc9060ff1681565b60405190151581526020015b60405180910390f35b34801561011d57600080fd5b5061013161012c366004610b28565b6102a5565b005b34801561013f57600080fd5b5061013161014e366004610b77565b6102bd565b34801561015f57600080fd5b5061013161016e366004610b9b565b6102f6565b34801561017f57600080fd5b50610131610303565b34801561019457600080fd5b506101316101a3366004610bb4565b610317565b3480156101b457600080fd5b5060005460405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610108565b3480156101e957600080fd5b506101316101f8366004610b9b565b6103b5565b34801561020957600080fd5b5061021360025481565b604051908152602001610108565b34801561022d57600080fd5b5061021360015481565b34801561024357600080fd5b50610131610252366004610b28565b6103c2565b34801561026357600080fd5b50610213610272366004610c05565b610457565b610213610272366004610c05565b34801561029157600080fd5b506101316102a0366004610c61565b61046e565b6102ad61052a565b6102b88383836105ab565b505050565b6102c561052a565b600380547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055565b6102fe61052a565b600155565b61030b61052a565b61031560006105db565b565b61031f61052a565b6040517f200175f700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff848116600483015283811660248301526044820183905285169063200175f790606401600060405180830381600087803b15801561039757600080fd5b505af11580156103ab573d6000803e3d6000fd5b5050505050505050565b6103bd61052a565b600255565b6103ca61052a565b6040517ffd9be52200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83811660048301526024820183905284169063fd9be52290604401600060405180830381600087803b15801561043a57600080fd5b505af115801561044e573d6000803e3d6000fd5b50505050505050565b60006104638383610650565b90505b949350505050565b61047661052a565b73ffffffffffffffffffffffffffffffffffffffff811661051e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b610527816105db565b50565b60005473ffffffffffffffffffffffffffffffffffffffff163314610315576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610515565b73ffffffffffffffffffffffffffffffffffffffff83166105d0576102b882826106c1565b6102b88383836107c7565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000811561069d5760035460ff16610694576040517f1cf849b700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b506002546106bb565b612710600154846106ae9190610c7e565b6106b89190610cbc565b90505b92915050565b73ffffffffffffffffffffffffffffffffffffffff821661070e576040517f6b7a931000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff168260405160006040518083038185875af1925050503d8060008114610768576040519150601f19603f3d011682016040523d82523d6000602084013e61076d565b606091505b50509050806102b8576040517f465bc83400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8416600482015260248101839052604401610515565b73ffffffffffffffffffffffffffffffffffffffff8216610814576040517f6b7a931000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805173ffffffffffffffffffffffffffffffffffffffff848116602483015260448083018590528351808403909101815260649092018352602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb0000000000000000000000000000000000000000000000000000000017905283518085019094528084527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564908401526102b892908616918591859185918591906000906108e89084908490610995565b90508051600014806109095750808060200190518101906109099190610cf7565b6102b8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401610515565b60606104668484600085856000808673ffffffffffffffffffffffffffffffffffffffff1685876040516109c99190610d38565b60006040518083038185875af1925050503d8060008114610a06576040519150601f19603f3d011682016040523d82523d6000602084013e610a0b565b606091505b5091509150610a1c87838387610a27565b979650505050505050565b60608315610abd578251600003610ab65773ffffffffffffffffffffffffffffffffffffffff85163b610ab6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610515565b5081610466565b6104668383815115610ad25781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105159190610d54565b73ffffffffffffffffffffffffffffffffffffffff8116811461052757600080fd5b600080600060608486031215610b3d57600080fd5b8335610b4881610b06565b92506020840135610b5881610b06565b929592945050506040919091013590565b801515811461052757600080fd5b600060208284031215610b8957600080fd5b8135610b9481610b69565b9392505050565b600060208284031215610bad57600080fd5b5035919050565b60008060008060808587031215610bca57600080fd5b8435610bd581610b06565b93506020850135610be581610b06565b92506040850135610bf581610b06565b9396929550929360600135925050565b60008060008060808587031215610c1b57600080fd5b8435610c2681610b06565b9350602085013563ffffffff81168114610c3f57600080fd5b9250604085013591506060850135610c5681610b69565b939692955090935050565b600060208284031215610c7357600080fd5b8135610b9481610b06565b80820281158282048414176106bb577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600082610cf2577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b600060208284031215610d0957600080fd5b8151610b9481610b69565b60005b83811015610d2f578181015183820152602001610d17565b50506000910152565b60008251610d4a818460208701610d14565b9190910192915050565b6020815260008251806020840152610d73816040850160208701610d14565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016040019291505056fea2646970667358221220a5949451e7850e7552b1148776157165cebf6d96f7c3a9023511d15d7e04058d64736f6c63430008160033",
306
+ "deployedBytecode": "0x6080604052600436106100dd5760003560e01c80638ee643a61161007f578063bf6e753611610059578063bf6e753614610237578063d424422114610257578063d51c548614610277578063f2fde38b1461028557600080fd5b80638ee643a6146101dd57806390953238146101fd57806396a141a01461022157600080fd5b80633972d46c116100bb5780633972d46c14610153578063715018a6146101735780637e8a0699146101885780638da5cb5b146101a857600080fd5b806301d9c2cb146100e257806301e336671461011157806301f1f6e814610133575b600080fd5b3480156100ee57600080fd5b506003546100fc9060ff1681565b60405190151581526020015b60405180910390f35b34801561011d57600080fd5b5061013161012c366004610b28565b6102a5565b005b34801561013f57600080fd5b5061013161014e366004610b77565b6102bd565b34801561015f57600080fd5b5061013161016e366004610b9b565b6102f6565b34801561017f57600080fd5b50610131610303565b34801561019457600080fd5b506101316101a3366004610bb4565b610317565b3480156101b457600080fd5b5060005460405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610108565b3480156101e957600080fd5b506101316101f8366004610b9b565b6103b5565b34801561020957600080fd5b5061021360025481565b604051908152602001610108565b34801561022d57600080fd5b5061021360015481565b34801561024357600080fd5b50610131610252366004610b28565b6103c2565b34801561026357600080fd5b50610213610272366004610c05565b610457565b610213610272366004610c05565b34801561029157600080fd5b506101316102a0366004610c61565b61046e565b6102ad61052a565b6102b88383836105ab565b505050565b6102c561052a565b600380547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055565b6102fe61052a565b600155565b61030b61052a565b61031560006105db565b565b61031f61052a565b6040517f200175f700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff848116600483015283811660248301526044820183905285169063200175f790606401600060405180830381600087803b15801561039757600080fd5b505af11580156103ab573d6000803e3d6000fd5b5050505050505050565b6103bd61052a565b600255565b6103ca61052a565b6040517ffd9be52200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83811660048301526024820183905284169063fd9be52290604401600060405180830381600087803b15801561043a57600080fd5b505af115801561044e573d6000803e3d6000fd5b50505050505050565b60006104638383610650565b90505b949350505050565b61047661052a565b73ffffffffffffffffffffffffffffffffffffffff811661051e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b610527816105db565b50565b60005473ffffffffffffffffffffffffffffffffffffffff163314610315576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610515565b73ffffffffffffffffffffffffffffffffffffffff83166105d0576102b882826106c1565b6102b88383836107c7565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000811561069d5760035460ff16610694576040517f1cf849b700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b506002546106bb565b612710600154846106ae9190610c7e565b6106b89190610cbc565b90505b92915050565b73ffffffffffffffffffffffffffffffffffffffff821661070e576040517f6b7a931000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff168260405160006040518083038185875af1925050503d8060008114610768576040519150601f19603f3d011682016040523d82523d6000602084013e61076d565b606091505b50509050806102b8576040517f465bc83400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8416600482015260248101839052604401610515565b73ffffffffffffffffffffffffffffffffffffffff8216610814576040517f6b7a931000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805173ffffffffffffffffffffffffffffffffffffffff848116602483015260448083018590528351808403909101815260649092018352602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb0000000000000000000000000000000000000000000000000000000017905283518085019094528084527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564908401526102b892908616918591859185918591906000906108e89084908490610995565b90508051600014806109095750808060200190518101906109099190610cf7565b6102b8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401610515565b60606104668484600085856000808673ffffffffffffffffffffffffffffffffffffffff1685876040516109c99190610d38565b60006040518083038185875af1925050503d8060008114610a06576040519150601f19603f3d011682016040523d82523d6000602084013e610a0b565b606091505b5091509150610a1c87838387610a27565b979650505050505050565b60608315610abd578251600003610ab65773ffffffffffffffffffffffffffffffffffffffff85163b610ab6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610515565b5081610466565b6104668383815115610ad25781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105159190610d54565b73ffffffffffffffffffffffffffffffffffffffff8116811461052757600080fd5b600080600060608486031215610b3d57600080fd5b8335610b4881610b06565b92506020840135610b5881610b06565b929592945050506040919091013590565b801515811461052757600080fd5b600060208284031215610b8957600080fd5b8135610b9481610b69565b9392505050565b600060208284031215610bad57600080fd5b5035919050565b60008060008060808587031215610bca57600080fd5b8435610bd581610b06565b93506020850135610be581610b06565b92506040850135610bf581610b06565b9396929550929360600135925050565b60008060008060808587031215610c1b57600080fd5b8435610c2681610b06565b9350602085013563ffffffff81168114610c3f57600080fd5b9250604085013591506060850135610c5681610b69565b939692955090935050565b600060208284031215610c7357600080fd5b8135610b9481610b06565b80820281158282048414176106bb577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600082610cf2577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b600060208284031215610d0957600080fd5b8151610b9481610b69565b60005b83811015610d2f578181015183820152602001610d17565b50506000910152565b60008251610d4a818460208701610d14565b9190910192915050565b6020815260008251806020840152610d73816040850160208701610d14565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016040019291505056fea2646970667358221220a5949451e7850e7552b1148776157165cebf6d96f7c3a9023511d15d7e04058d64736f6c63430008160033",
307
307
  "linkReferences": {},
308
308
  "deployedLinkReferences": {}
309
309
  }
@@ -4,39 +4,39 @@
4
4
  "sourceName": "contracts/Worker.sol",
5
5
  "abi": [
6
6
  {
7
- "inputs": [],
8
- "name": "NotAllowed",
7
+ "inputs": [
8
+ {
9
+ "internalType": "address",
10
+ "name": "_to",
11
+ "type": "address"
12
+ },
13
+ {
14
+ "internalType": "uint256",
15
+ "name": "_value",
16
+ "type": "uint256"
17
+ }
18
+ ],
19
+ "name": "Transfer_NativeFailed",
9
20
  "type": "error"
10
21
  },
11
22
  {
12
23
  "inputs": [],
13
- "name": "OnlyMessageLib",
24
+ "name": "Transfer_ToAddressIsZero",
14
25
  "type": "error"
15
26
  },
16
27
  {
17
28
  "inputs": [],
18
- "name": "RoleRenouncingDisabled",
29
+ "name": "Worker_NotAllowed",
19
30
  "type": "error"
20
31
  },
21
32
  {
22
33
  "inputs": [],
23
- "name": "ToAddressIsZero",
34
+ "name": "Worker_OnlyMessageLib",
24
35
  "type": "error"
25
36
  },
26
37
  {
27
- "inputs": [
28
- {
29
- "internalType": "address",
30
- "name": "_to",
31
- "type": "address"
32
- },
33
- {
34
- "internalType": "uint256",
35
- "name": "_value",
36
- "type": "uint256"
37
- }
38
- ],
39
- "name": "TransferNativeFailed",
38
+ "inputs": [],
39
+ "name": "Worker_RoleRenouncingDisabled",
40
40
  "type": "error"
41
41
  },
42
42
  {
@@ -5,17 +5,17 @@
5
5
  "abi": [
6
6
  {
7
7
  "inputs": [],
8
- "name": "NotAllowed",
8
+ "name": "Worker_NotAllowed",
9
9
  "type": "error"
10
10
  },
11
11
  {
12
12
  "inputs": [],
13
- "name": "OnlyMessageLib",
13
+ "name": "Worker_OnlyMessageLib",
14
14
  "type": "error"
15
15
  },
16
16
  {
17
17
  "inputs": [],
18
- "name": "RoleRenouncingDisabled",
18
+ "name": "Worker_RoleRenouncingDisabled",
19
19
  "type": "error"
20
20
  },
21
21
  {
@@ -11,7 +11,7 @@
11
11
  "type": "uint256"
12
12
  }
13
13
  ],
14
- "name": "InvalidExecutorOptions",
14
+ "name": "Executor_InvalidExecutorOptions",
15
15
  "type": "error"
16
16
  },
17
17
  {
@@ -27,12 +27,12 @@
27
27
  "type": "uint256"
28
28
  }
29
29
  ],
30
- "name": "NativeAmountExceedsCap",
30
+ "name": "Executor_NativeAmountExceedsCap",
31
31
  "type": "error"
32
32
  },
33
33
  {
34
34
  "inputs": [],
35
- "name": "NoOptions",
35
+ "name": "Executor_NoOptions",
36
36
  "type": "error"
37
37
  },
38
38
  {
@@ -43,7 +43,7 @@
43
43
  "type": "uint8"
44
44
  }
45
45
  ],
46
- "name": "UnsupportedOptionType",
46
+ "name": "Executor_UnsupportedOptionType",
47
47
  "type": "error"
48
48
  },
49
49
  {
@@ -16,12 +16,12 @@
16
16
  "type": "uint256"
17
17
  }
18
18
  ],
19
- "name": "InsufficientFee",
19
+ "name": "LZ_PriceFeed_InsufficientFee",
20
20
  "type": "error"
21
21
  },
22
22
  {
23
23
  "inputs": [],
24
- "name": "OnlyPriceUpdater",
24
+ "name": "LZ_PriceFeed_OnlyPriceUpdater",
25
25
  "type": "error"
26
26
  },
27
27
  {
@@ -32,7 +32,7 @@
32
32
  "type": "uint32"
33
33
  }
34
34
  ],
35
- "name": "UnknownL2Eid",
35
+ "name": "LZ_PriceFeed_UnknownL2Eid",
36
36
  "type": "error"
37
37
  },
38
38
  {
@@ -5,17 +5,17 @@
5
5
  "abi": [
6
6
  {
7
7
  "inputs": [],
8
- "name": "NotAllowed",
8
+ "name": "Worker_NotAllowed",
9
9
  "type": "error"
10
10
  },
11
11
  {
12
12
  "inputs": [],
13
- "name": "OnlyMessageLib",
13
+ "name": "Worker_OnlyMessageLib",
14
14
  "type": "error"
15
15
  },
16
16
  {
17
17
  "inputs": [],
18
- "name": "RoleRenouncingDisabled",
18
+ "name": "Worker_RoleRenouncingDisabled",
19
19
  "type": "error"
20
20
  },
21
21
  {
@@ -0,0 +1,35 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "IReceiveUlnView",
4
+ "sourceName": "contracts/uln/LzExecutor.sol",
5
+ "abi": [
6
+ {
7
+ "inputs": [
8
+ {
9
+ "internalType": "bytes",
10
+ "name": "_packetHeader",
11
+ "type": "bytes"
12
+ },
13
+ {
14
+ "internalType": "bytes32",
15
+ "name": "_payloadHash",
16
+ "type": "bytes32"
17
+ }
18
+ ],
19
+ "name": "verifiable",
20
+ "outputs": [
21
+ {
22
+ "internalType": "enum VerificationState",
23
+ "name": "",
24
+ "type": "uint8"
25
+ }
26
+ ],
27
+ "stateMutability": "view",
28
+ "type": "function"
29
+ }
30
+ ],
31
+ "bytecode": "0x",
32
+ "deployedBytecode": "0x",
33
+ "linkReferences": {},
34
+ "deployedLinkReferences": {}
35
+ }