@across-protocol/contracts 0.1.0

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 (257) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/LICENSE +661 -0
  3. package/README.md +53 -0
  4. package/artifacts/@eth-optimism/contracts/L2/messaging/IL2ERC20Bridge.sol/IL2ERC20Bridge.dbg.json +4 -0
  5. package/artifacts/@eth-optimism/contracts/L2/messaging/IL2ERC20Bridge.sol/IL2ERC20Bridge.json +252 -0
  6. package/artifacts/@eth-optimism/contracts/libraries/bridge/CrossDomainEnabled.sol/CrossDomainEnabled.dbg.json +4 -0
  7. package/artifacts/@eth-optimism/contracts/libraries/bridge/CrossDomainEnabled.sol/CrossDomainEnabled.json +35 -0
  8. package/artifacts/@eth-optimism/contracts/libraries/bridge/ICrossDomainMessenger.sol/ICrossDomainMessenger.dbg.json +4 -0
  9. package/artifacts/@eth-optimism/contracts/libraries/bridge/ICrossDomainMessenger.sol/ICrossDomainMessenger.json +110 -0
  10. package/artifacts/@eth-optimism/contracts/libraries/constants/Lib_PredeployAddresses.sol/Lib_PredeployAddresses.dbg.json +4 -0
  11. package/artifacts/@eth-optimism/contracts/libraries/constants/Lib_PredeployAddresses.sol/Lib_PredeployAddresses.json +10 -0
  12. package/artifacts/@openzeppelin/contracts/access/AccessControl.sol/AccessControl.dbg.json +4 -0
  13. package/artifacts/@openzeppelin/contracts/access/AccessControl.sol/AccessControl.json +215 -0
  14. package/artifacts/@openzeppelin/contracts/access/AccessControl.sol/IAccessControl.dbg.json +4 -0
  15. package/artifacts/@openzeppelin/contracts/access/AccessControl.sol/IAccessControl.json +108 -0
  16. package/artifacts/@openzeppelin/contracts/access/Ownable.sol/Ownable.dbg.json +4 -0
  17. package/artifacts/@openzeppelin/contracts/access/Ownable.sol/Ownable.json +63 -0
  18. package/artifacts/@openzeppelin/contracts/security/Pausable.sol/Pausable.dbg.json +4 -0
  19. package/artifacts/@openzeppelin/contracts/security/Pausable.sol/Pausable.json +50 -0
  20. package/artifacts/@openzeppelin/contracts/token/ERC20/ERC20.sol/ERC20.dbg.json +4 -0
  21. package/artifacts/@openzeppelin/contracts/token/ERC20/ERC20.sol/ERC20.json +297 -0
  22. package/artifacts/@openzeppelin/contracts/token/ERC20/IERC20.sol/IERC20.dbg.json +4 -0
  23. package/artifacts/@openzeppelin/contracts/token/ERC20/IERC20.sol/IERC20.json +194 -0
  24. package/artifacts/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol/IERC20Metadata.dbg.json +4 -0
  25. package/artifacts/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol/IERC20Metadata.json +233 -0
  26. package/artifacts/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol/SafeERC20.dbg.json +4 -0
  27. package/artifacts/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol/SafeERC20.json +10 -0
  28. package/artifacts/@openzeppelin/contracts/utils/Address.sol/Address.dbg.json +4 -0
  29. package/artifacts/@openzeppelin/contracts/utils/Address.sol/Address.json +10 -0
  30. package/artifacts/@openzeppelin/contracts/utils/Context.sol/Context.dbg.json +4 -0
  31. package/artifacts/@openzeppelin/contracts/utils/Context.sol/Context.json +10 -0
  32. package/artifacts/@openzeppelin/contracts/utils/Strings.sol/Strings.dbg.json +4 -0
  33. package/artifacts/@openzeppelin/contracts/utils/Strings.sol/Strings.json +10 -0
  34. package/artifacts/@openzeppelin/contracts/utils/introspection/ERC165.sol/ERC165.dbg.json +4 -0
  35. package/artifacts/@openzeppelin/contracts/utils/introspection/ERC165.sol/ERC165.json +30 -0
  36. package/artifacts/@openzeppelin/contracts/utils/introspection/IERC165.sol/IERC165.dbg.json +4 -0
  37. package/artifacts/@openzeppelin/contracts/utils/introspection/IERC165.sol/IERC165.json +30 -0
  38. package/artifacts/@openzeppelin/contracts/utils/math/SafeMath.sol/SafeMath.dbg.json +4 -0
  39. package/artifacts/@openzeppelin/contracts/utils/math/SafeMath.sol/SafeMath.json +10 -0
  40. package/artifacts/@openzeppelin/contracts/utils/math/SignedSafeMath.sol/SignedSafeMath.dbg.json +4 -0
  41. package/artifacts/@openzeppelin/contracts/utils/math/SignedSafeMath.sol/SignedSafeMath.json +10 -0
  42. package/artifacts/@uma/core/contracts/common/implementation/Lockable.sol/Lockable.dbg.json +4 -0
  43. package/artifacts/@uma/core/contracts/common/implementation/Lockable.sol/Lockable.json +16 -0
  44. package/artifacts/@uma/core/contracts/cross-chain-oracle/chain-adapters/Arbitrum_ParentMessenger.sol/Arbitrum_ParentMessenger.dbg.json +4 -0
  45. package/artifacts/@uma/core/contracts/cross-chain-oracle/chain-adapters/Arbitrum_ParentMessenger.sol/Arbitrum_ParentMessenger.json +611 -0
  46. package/artifacts/@uma/core/contracts/cross-chain-oracle/chain-adapters/ParentMessengerBase.sol/ParentMessengerBase.dbg.json +4 -0
  47. package/artifacts/@uma/core/contracts/cross-chain-oracle/chain-adapters/ParentMessengerBase.sol/ParentMessengerBase.json +297 -0
  48. package/artifacts/@uma/core/contracts/cross-chain-oracle/interfaces/ParentMessengerConsumerInterface.sol/ParentMessengerConsumerInterface.dbg.json +4 -0
  49. package/artifacts/@uma/core/contracts/cross-chain-oracle/interfaces/ParentMessengerConsumerInterface.sol/ParentMessengerConsumerInterface.json +29 -0
  50. package/artifacts/@uma/core/contracts/cross-chain-oracle/interfaces/ParentMessengerInterface.sol/ParentMessengerInterface.dbg.json +4 -0
  51. package/artifacts/@uma/core/contracts/cross-chain-oracle/interfaces/ParentMessengerInterface.sol/ParentMessengerInterface.json +37 -0
  52. package/artifacts/@uma/core/contracts/external/avm/interfaces/iArbitrum_Inbox.sol/IBridge.dbg.json +4 -0
  53. package/artifacts/@uma/core/contracts/external/avm/interfaces/iArbitrum_Inbox.sol/IBridge.json +24 -0
  54. package/artifacts/@uma/core/contracts/external/avm/interfaces/iArbitrum_Inbox.sol/iArbitrum_Inbox.dbg.json +4 -0
  55. package/artifacts/@uma/core/contracts/external/avm/interfaces/iArbitrum_Inbox.sol/iArbitrum_Inbox.json +78 -0
  56. package/artifacts/@uma/core/contracts/external/avm/interfaces/iArbitrum_Outbox.sol/iArbitrum_Outbox.dbg.json +4 -0
  57. package/artifacts/@uma/core/contracts/external/avm/interfaces/iArbitrum_Outbox.sol/iArbitrum_Outbox.json +24 -0
  58. package/artifacts/@uma/core/contracts/insured-bridge/avm/Arbitrum_CrossDomainEnabled.sol/Arbitrum_CrossDomainEnabled.dbg.json +4 -0
  59. package/artifacts/@uma/core/contracts/insured-bridge/avm/Arbitrum_CrossDomainEnabled.sol/Arbitrum_CrossDomainEnabled.json +24 -0
  60. package/artifacts/build-info/1cd64db7a8ac0a153df93d26826ad4e9.json +1653 -0
  61. package/artifacts/build-info/1f738b56edd7602183f2f8d2f23f6e90.json +1592 -0
  62. package/artifacts/build-info/343b9221be36acd9ddaca3f3b83d2e75.json +3943 -0
  63. package/artifacts/build-info/622e561692c193f4cd0ff989b5a231e2.json +5661 -0
  64. package/artifacts/build-info/8e408b49e0ff2873bc28d45221a7ff71.json +277715 -0
  65. package/artifacts/build-info/9d1a3182633612bd337d811d567d5d60.json +2072 -0
  66. package/artifacts/build-info/a8cd9c443d245fe513d6650634b60f93.json +23776 -0
  67. package/artifacts/build-info/d302d9d63fbafb5c8d635cc62cb1cc7c.json +167529 -0
  68. package/artifacts/contracts/common/implementation/AncillaryData.sol/AncillaryData.dbg.json +4 -0
  69. package/artifacts/contracts/common/implementation/AncillaryData.sol/AncillaryData.json +10 -0
  70. package/artifacts/contracts/common/implementation/FixedPoint.sol/FixedPoint.dbg.json +4 -0
  71. package/artifacts/contracts/common/implementation/FixedPoint.sol/FixedPoint.json +10 -0
  72. package/artifacts/contracts/common/implementation/Lockable.sol/Lockable.dbg.json +4 -0
  73. package/artifacts/contracts/common/implementation/Lockable.sol/Lockable.json +16 -0
  74. package/artifacts/contracts/common/implementation/MultiCaller.sol/MultiCaller.dbg.json +4 -0
  75. package/artifacts/contracts/common/implementation/MultiCaller.sol/MultiCaller.json +30 -0
  76. package/artifacts/contracts/common/implementation/Testable.sol/Testable.dbg.json +4 -0
  77. package/artifacts/contracts/common/implementation/Testable.sol/Testable.json +50 -0
  78. package/artifacts/contracts/common/implementation/Timer.sol/Timer.dbg.json +4 -0
  79. package/artifacts/contracts/common/implementation/Timer.sol/Timer.json +42 -0
  80. package/artifacts/contracts/common/interfaces/AddressWhitelistInterface.sol/AddressWhitelistInterface.dbg.json +4 -0
  81. package/artifacts/contracts/common/interfaces/AddressWhitelistInterface.sol/AddressWhitelistInterface.json +69 -0
  82. package/artifacts/contracts/external/avm/AVM_CrossDomainEnabled.sol/AVM_CrossDomainEnabled.dbg.json +4 -0
  83. package/artifacts/contracts/external/avm/AVM_CrossDomainEnabled.sol/AVM_CrossDomainEnabled.json +42 -0
  84. package/artifacts/contracts/external/avm/interfaces/ArbSys.sol/ArbSys.dbg.json +4 -0
  85. package/artifacts/contracts/external/avm/interfaces/ArbSys.sol/ArbSys.json +235 -0
  86. package/artifacts/contracts/external/avm/interfaces/iArbitrum_Inbox.sol/IBridge.dbg.json +4 -0
  87. package/artifacts/contracts/external/avm/interfaces/iArbitrum_Inbox.sol/IBridge.json +24 -0
  88. package/artifacts/contracts/external/avm/interfaces/iArbitrum_Inbox.sol/iArbitrum_Inbox.dbg.json +4 -0
  89. package/artifacts/contracts/external/avm/interfaces/iArbitrum_Inbox.sol/iArbitrum_Inbox.json +78 -0
  90. package/artifacts/contracts/external/avm/interfaces/iArbitrum_Outbox.sol/iArbitrum_Outbox.dbg.json +4 -0
  91. package/artifacts/contracts/external/avm/interfaces/iArbitrum_Outbox.sol/iArbitrum_Outbox.json +24 -0
  92. package/artifacts/contracts/external/chainbridge/Bridge.sol/Bridge.dbg.json +4 -0
  93. package/artifacts/contracts/external/chainbridge/Bridge.sol/Bridge.json +1019 -0
  94. package/artifacts/contracts/external/chainbridge/handlers/GenericHandler.sol/GenericHandler.dbg.json +4 -0
  95. package/artifacts/contracts/external/chainbridge/handlers/GenericHandler.sol/GenericHandler.json +314 -0
  96. package/artifacts/contracts/external/chainbridge/interfaces/IBridge.sol/IBridge.dbg.json +4 -0
  97. package/artifacts/contracts/external/chainbridge/interfaces/IBridge.sol/IBridge.json +47 -0
  98. package/artifacts/contracts/external/chainbridge/interfaces/IDepositExecute.sol/IDepositExecute.dbg.json +4 -0
  99. package/artifacts/contracts/external/chainbridge/interfaces/IDepositExecute.sol/IDepositExecute.json +62 -0
  100. package/artifacts/contracts/external/chainbridge/interfaces/IERCHandler.sol/IERCHandler.dbg.json +4 -0
  101. package/artifacts/contracts/external/chainbridge/interfaces/IERCHandler.sol/IERCHandler.json +65 -0
  102. package/artifacts/contracts/external/chainbridge/interfaces/IGenericHandler.sol/IGenericHandler.dbg.json +4 -0
  103. package/artifacts/contracts/external/chainbridge/interfaces/IGenericHandler.sol/IGenericHandler.json +39 -0
  104. package/artifacts/contracts/external/ovm/OVM_CrossDomainEnabled.sol/OVM_CrossDomainEnabled.dbg.json +4 -0
  105. package/artifacts/contracts/external/ovm/OVM_CrossDomainEnabled.sol/OVM_CrossDomainEnabled.json +35 -0
  106. package/artifacts/contracts/external/ovm/OVM_CrossDomainEnabled.sol/iOVM_CrossDomainMessenger.dbg.json +4 -0
  107. package/artifacts/contracts/external/ovm/OVM_CrossDomainEnabled.sol/iOVM_CrossDomainMessenger.json +86 -0
  108. package/artifacts/contracts/external/polygon/lib/Merkle.sol/Merkle.dbg.json +4 -0
  109. package/artifacts/contracts/external/polygon/lib/Merkle.sol/Merkle.json +10 -0
  110. package/artifacts/contracts/external/polygon/lib/MerklePatriciaProof.sol/MerklePatriciaProof.dbg.json +4 -0
  111. package/artifacts/contracts/external/polygon/lib/MerklePatriciaProof.sol/MerklePatriciaProof.json +10 -0
  112. package/artifacts/contracts/external/polygon/lib/RLPReader.sol/RLPReader.dbg.json +4 -0
  113. package/artifacts/contracts/external/polygon/lib/RLPReader.sol/RLPReader.json +10 -0
  114. package/artifacts/contracts/external/polygon/test/FxChildMock.sol/FxChildMock.dbg.json +4 -0
  115. package/artifacts/contracts/external/polygon/test/FxChildMock.sol/FxChildMock.json +104 -0
  116. package/artifacts/contracts/external/polygon/test/FxChildMock.sol/IFxMessageProcessor.dbg.json +4 -0
  117. package/artifacts/contracts/external/polygon/test/FxChildMock.sol/IFxMessageProcessor.json +34 -0
  118. package/artifacts/contracts/external/polygon/test/FxChildMock.sol/IStateReceiver.dbg.json +4 -0
  119. package/artifacts/contracts/external/polygon/test/FxChildMock.sol/IStateReceiver.json +29 -0
  120. package/artifacts/contracts/external/polygon/test/FxRootMock.sol/FxRootMock.dbg.json +4 -0
  121. package/artifacts/contracts/external/polygon/test/FxRootMock.sol/FxRootMock.json +79 -0
  122. package/artifacts/contracts/external/polygon/test/FxRootMock.sol/IFxStateSender.dbg.json +4 -0
  123. package/artifacts/contracts/external/polygon/test/FxRootMock.sol/IFxStateSender.json +29 -0
  124. package/artifacts/contracts/external/polygon/test/FxRootMock.sol/IStateSender.dbg.json +4 -0
  125. package/artifacts/contracts/external/polygon/test/FxRootMock.sol/IStateSender.json +29 -0
  126. package/artifacts/contracts/external/polygon/test/StateSyncMock.sol/StateSyncMock.dbg.json +4 -0
  127. package/artifacts/contracts/external/polygon/test/StateSyncMock.sol/StateSyncMock.json +54 -0
  128. package/artifacts/contracts/external/polygon/tunnel/FxBaseChildTunnel.sol/FxBaseChildTunnel.dbg.json +4 -0
  129. package/artifacts/contracts/external/polygon/tunnel/FxBaseChildTunnel.sol/FxBaseChildTunnel.json +86 -0
  130. package/artifacts/contracts/external/polygon/tunnel/FxBaseChildTunnel.sol/IFxMessageProcessor.dbg.json +4 -0
  131. package/artifacts/contracts/external/polygon/tunnel/FxBaseChildTunnel.sol/IFxMessageProcessor.json +34 -0
  132. package/artifacts/contracts/external/polygon/tunnel/FxBaseRootTunnel.sol/FxBaseRootTunnel.dbg.json +4 -0
  133. package/artifacts/contracts/external/polygon/tunnel/FxBaseRootTunnel.sol/FxBaseRootTunnel.json +108 -0
  134. package/artifacts/contracts/external/polygon/tunnel/FxBaseRootTunnel.sol/ICheckpointManager.dbg.json +4 -0
  135. package/artifacts/contracts/external/polygon/tunnel/FxBaseRootTunnel.sol/ICheckpointManager.json +50 -0
  136. package/artifacts/contracts/external/polygon/tunnel/FxBaseRootTunnel.sol/IFxStateSender.dbg.json +4 -0
  137. package/artifacts/contracts/external/polygon/tunnel/FxBaseRootTunnel.sol/IFxStateSender.json +29 -0
  138. package/artifacts/contracts/insured-bridge/BridgeAdmin.sol/BridgeAdmin.dbg.json +4 -0
  139. package/artifacts/contracts/insured-bridge/BridgeAdmin.sol/BridgeAdmin.json +662 -0
  140. package/artifacts/contracts/insured-bridge/BridgeDepositBox.sol/BridgeDepositBox.dbg.json +4 -0
  141. package/artifacts/contracts/insured-bridge/BridgeDepositBox.sol/BridgeDepositBox.json +391 -0
  142. package/artifacts/contracts/insured-bridge/BridgeDepositBox.sol/TokenLike.dbg.json +4 -0
  143. package/artifacts/contracts/insured-bridge/BridgeDepositBox.sol/TokenLike.json +30 -0
  144. package/artifacts/contracts/insured-bridge/BridgeDepositBox.sol/WETH9Like.dbg.json +4 -0
  145. package/artifacts/contracts/insured-bridge/BridgeDepositBox.sol/WETH9Like.json +31 -0
  146. package/artifacts/contracts/insured-bridge/BridgePool.sol/BridgePool.dbg.json +4 -0
  147. package/artifacts/contracts/insured-bridge/BridgePool.sol/BridgePool.json +1709 -0
  148. package/artifacts/contracts/insured-bridge/BridgePool.sol/BridgePoolProd.dbg.json +4 -0
  149. package/artifacts/contracts/insured-bridge/BridgePool.sol/BridgePoolProd.json +1709 -0
  150. package/artifacts/contracts/insured-bridge/BridgePool.sol/WETH9Like.dbg.json +4 -0
  151. package/artifacts/contracts/insured-bridge/BridgePool.sol/WETH9Like.json +31 -0
  152. package/artifacts/contracts/insured-bridge/avm/AVM_BridgeDepositBox.sol/AVM_BridgeDepositBox.dbg.json +4 -0
  153. package/artifacts/contracts/insured-bridge/avm/AVM_BridgeDepositBox.sol/AVM_BridgeDepositBox.json +564 -0
  154. package/artifacts/contracts/insured-bridge/avm/AVM_BridgeDepositBox.sol/StandardBridgeLike.dbg.json +4 -0
  155. package/artifacts/contracts/insured-bridge/avm/AVM_BridgeDepositBox.sol/StandardBridgeLike.json +45 -0
  156. package/artifacts/contracts/insured-bridge/avm/Arbitrum_CrossDomainEnabled.sol/Arbitrum_CrossDomainEnabled.dbg.json +4 -0
  157. package/artifacts/contracts/insured-bridge/avm/Arbitrum_CrossDomainEnabled.sol/Arbitrum_CrossDomainEnabled.json +24 -0
  158. package/artifacts/contracts/insured-bridge/avm/Arbitrum_Messenger.sol/Arbitrum_Messenger.dbg.json +4 -0
  159. package/artifacts/contracts/insured-bridge/avm/Arbitrum_Messenger.sol/Arbitrum_Messenger.json +191 -0
  160. package/artifacts/contracts/insured-bridge/interfaces/BridgeAdminInterface.sol/BridgeAdminInterface.dbg.json +4 -0
  161. package/artifacts/contracts/insured-bridge/interfaces/BridgeAdminInterface.sol/BridgeAdminInterface.json +319 -0
  162. package/artifacts/contracts/insured-bridge/interfaces/BridgePoolInterface.sol/BridgePoolInterface.dbg.json +4 -0
  163. package/artifacts/contracts/insured-bridge/interfaces/BridgePoolInterface.sol/BridgePoolInterface.json +63 -0
  164. package/artifacts/contracts/insured-bridge/interfaces/MessengerInterface.sol/MessengerInterface.dbg.json +4 -0
  165. package/artifacts/contracts/insured-bridge/interfaces/MessengerInterface.sol/MessengerInterface.json +54 -0
  166. package/artifacts/contracts/insured-bridge/ovm/OVM_BridgeDepositBox.sol/OVM_BridgeDepositBox.dbg.json +4 -0
  167. package/artifacts/contracts/insured-bridge/ovm/OVM_BridgeDepositBox.sol/OVM_BridgeDepositBox.json +528 -0
  168. package/artifacts/contracts/insured-bridge/ovm/OVM_CrossDomainEnabled.sol/OVM_CrossDomainEnabled.dbg.json +4 -0
  169. package/artifacts/contracts/insured-bridge/ovm/OVM_CrossDomainEnabled.sol/OVM_CrossDomainEnabled.json +35 -0
  170. package/artifacts/contracts/insured-bridge/ovm/OVM_OETH_BridgeDepositBox.sol/OVM_OETH_BridgeDepositBox.dbg.json +4 -0
  171. package/artifacts/contracts/insured-bridge/ovm/OVM_OETH_BridgeDepositBox.sol/OVM_OETH_BridgeDepositBox.json +572 -0
  172. package/artifacts/contracts/insured-bridge/ovm/Optimism_Messenger.sol/Optimism_Messenger.dbg.json +4 -0
  173. package/artifacts/contracts/insured-bridge/ovm/Optimism_Messenger.sol/Optimism_Messenger.json +130 -0
  174. package/artifacts/contracts/insured-bridge/ovm/Optimism_Wrapper.sol/Optimism_Wrapper.dbg.json +4 -0
  175. package/artifacts/contracts/insured-bridge/ovm/Optimism_Wrapper.sol/Optimism_Wrapper.json +142 -0
  176. package/artifacts/contracts/insured-bridge/ovm/Optimism_Wrapper.sol/WETH9Like.dbg.json +4 -0
  177. package/artifacts/contracts/insured-bridge/ovm/Optimism_Wrapper.sol/WETH9Like.json +55 -0
  178. package/artifacts/contracts/insured-bridge/ovm/iOVM_CrossDomainMessenger.sol/iOVM_CrossDomainMessenger.dbg.json +4 -0
  179. package/artifacts/contracts/insured-bridge/ovm/iOVM_CrossDomainMessenger.sol/iOVM_CrossDomainMessenger.json +86 -0
  180. package/artifacts/contracts/insured-bridge/test/Arbitrum_InboxMock.sol/Arbitrum_BridgeMock.dbg.json +4 -0
  181. package/artifacts/contracts/insured-bridge/test/Arbitrum_InboxMock.sol/Arbitrum_BridgeMock.json +68 -0
  182. package/artifacts/contracts/insured-bridge/test/Arbitrum_InboxMock.sol/Arbitrum_InboxMock.dbg.json +4 -0
  183. package/artifacts/contracts/insured-bridge/test/Arbitrum_InboxMock.sol/Arbitrum_InboxMock.json +78 -0
  184. package/artifacts/contracts/insured-bridge/test/Arbitrum_InboxMock.sol/Arbitrum_OutboxMock.dbg.json +4 -0
  185. package/artifacts/contracts/insured-bridge/test/Arbitrum_InboxMock.sol/Arbitrum_OutboxMock.json +24 -0
  186. package/artifacts/contracts/insured-bridge/test/BridgeDepositBoxMock.sol/BridgeDepositBoxMock.dbg.json +4 -0
  187. package/artifacts/contracts/insured-bridge/test/BridgeDepositBoxMock.sol/BridgeDepositBoxMock.json +510 -0
  188. package/artifacts/contracts/insured-bridge/test/MessengerMock.sol/MessengerMock.dbg.json +4 -0
  189. package/artifacts/contracts/insured-bridge/test/MessengerMock.sol/MessengerMock.json +85 -0
  190. package/artifacts/contracts/insured-bridge/test/OVM_L1CrossDomainMessengerMock.sol/OVM_L1CrossDomainMessengerMock.dbg.json +4 -0
  191. package/artifacts/contracts/insured-bridge/test/OVM_L1CrossDomainMessengerMock.sol/OVM_L1CrossDomainMessengerMock.json +110 -0
  192. package/artifacts/contracts/oracle/implementation/Constants.sol/OptimisticOracleConstraints.dbg.json +4 -0
  193. package/artifacts/contracts/oracle/implementation/Constants.sol/OptimisticOracleConstraints.json +24 -0
  194. package/artifacts/contracts/oracle/implementation/Constants.sol/OracleInterfaces.dbg.json +4 -0
  195. package/artifacts/contracts/oracle/implementation/Constants.sol/OracleInterfaces.json +141 -0
  196. package/artifacts/contracts/oracle/interfaces/FinderInterface.sol/FinderInterface.dbg.json +4 -0
  197. package/artifacts/contracts/oracle/interfaces/FinderInterface.sol/FinderInterface.json +48 -0
  198. package/artifacts/contracts/oracle/interfaces/IdentifierWhitelistInterface.sol/IdentifierWhitelistInterface.dbg.json +4 -0
  199. package/artifacts/contracts/oracle/interfaces/IdentifierWhitelistInterface.sol/IdentifierWhitelistInterface.json +56 -0
  200. package/artifacts/contracts/oracle/interfaces/OptimisticOracleInterface.sol/OptimisticOracleInterface.dbg.json +4 -0
  201. package/artifacts/contracts/oracle/interfaces/OptimisticOracleInterface.sol/OptimisticOracleInterface.json +555 -0
  202. package/artifacts/contracts/oracle/interfaces/SkinnyOptimisticOracleInterface.sol/SkinnyOptimisticOracleInterface.dbg.json +4 -0
  203. package/artifacts/contracts/oracle/interfaces/SkinnyOptimisticOracleInterface.sol/SkinnyOptimisticOracleInterface.json +853 -0
  204. package/artifacts/contracts/oracle/interfaces/StoreInterface.sol/StoreInterface.dbg.json +4 -0
  205. package/artifacts/contracts/oracle/interfaces/StoreInterface.sol/StoreInterface.json +124 -0
  206. package/contracts/common/implementation/AncillaryData.sol +144 -0
  207. package/contracts/common/implementation/FixedPoint.sol +763 -0
  208. package/contracts/common/implementation/Lockable.sol +61 -0
  209. package/contracts/common/implementation/MultiCaller.sol +27 -0
  210. package/contracts/common/implementation/Testable.sol +52 -0
  211. package/contracts/common/implementation/Timer.sol +30 -0
  212. package/contracts/common/interfaces/AddressWhitelistInterface.sol +12 -0
  213. package/contracts/external/avm/AVM_CrossDomainEnabled.sol +43 -0
  214. package/contracts/external/avm/interfaces/ArbSys.sol +79 -0
  215. package/contracts/external/avm/interfaces/iArbitrum_Inbox.sol +28 -0
  216. package/contracts/external/avm/interfaces/iArbitrum_Outbox.sol +26 -0
  217. package/contracts/external/chainbridge/Bridge.sol +454 -0
  218. package/contracts/external/chainbridge/handlers/GenericHandler.sol +237 -0
  219. package/contracts/external/chainbridge/interfaces/IBridge.sol +20 -0
  220. package/contracts/external/chainbridge/interfaces/IDepositExecute.sol +29 -0
  221. package/contracts/external/chainbridge/interfaces/IERCHandler.sol +33 -0
  222. package/contracts/external/chainbridge/interfaces/IGenericHandler.sol +23 -0
  223. package/contracts/external/ovm/OVM_CrossDomainEnabled.sol +114 -0
  224. package/contracts/external/polygon/lib/Merkle.sol +36 -0
  225. package/contracts/external/polygon/lib/MerklePatriciaProof.sol +139 -0
  226. package/contracts/external/polygon/lib/RLPReader.sol +251 -0
  227. package/contracts/external/polygon/test/FxChildMock.sol +42 -0
  228. package/contracts/external/polygon/test/FxRootMock.sol +32 -0
  229. package/contracts/external/polygon/test/StateSyncMock.sol +26 -0
  230. package/contracts/external/polygon/tunnel/FxBaseChildTunnel.sol +80 -0
  231. package/contracts/external/polygon/tunnel/FxBaseRootTunnel.sol +185 -0
  232. package/contracts/insured-bridge/BridgeAdmin.sol +394 -0
  233. package/contracts/insured-bridge/BridgeDepositBox.sol +245 -0
  234. package/contracts/insured-bridge/BridgePool.sol +980 -0
  235. package/contracts/insured-bridge/avm/AVM_BridgeDepositBox.sol +144 -0
  236. package/contracts/insured-bridge/avm/Arbitrum_CrossDomainEnabled.sol +67 -0
  237. package/contracts/insured-bridge/avm/Arbitrum_Messenger.sol +72 -0
  238. package/contracts/insured-bridge/interfaces/BridgeAdminInterface.sol +44 -0
  239. package/contracts/insured-bridge/interfaces/BridgePoolInterface.sol +14 -0
  240. package/contracts/insured-bridge/interfaces/MessengerInterface.sol +18 -0
  241. package/contracts/insured-bridge/ovm/OVM_BridgeDepositBox.sol +135 -0
  242. package/contracts/insured-bridge/ovm/OVM_CrossDomainEnabled.sol +84 -0
  243. package/contracts/insured-bridge/ovm/OVM_OETH_BridgeDepositBox.sol +89 -0
  244. package/contracts/insured-bridge/ovm/Optimism_Messenger.sol +34 -0
  245. package/contracts/insured-bridge/ovm/Optimism_Wrapper.sol +59 -0
  246. package/contracts/insured-bridge/ovm/iOVM_CrossDomainMessenger.sol +41 -0
  247. package/contracts/insured-bridge/test/Arbitrum_InboxMock.sol +50 -0
  248. package/contracts/insured-bridge/test/BridgeDepositBoxMock.sol +113 -0
  249. package/contracts/insured-bridge/test/MessengerMock.sol +32 -0
  250. package/contracts/insured-bridge/test/OVM_L1CrossDomainMessengerMock.sol +16 -0
  251. package/contracts/oracle/implementation/Constants.sol +29 -0
  252. package/contracts/oracle/interfaces/FinderInterface.sol +22 -0
  253. package/contracts/oracle/interfaces/IdentifierWhitelistInterface.sol +28 -0
  254. package/contracts/oracle/interfaces/OptimisticOracleInterface.sol +263 -0
  255. package/contracts/oracle/interfaces/SkinnyOptimisticOracleInterface.sol +251 -0
  256. package/contracts/oracle/interfaces/StoreInterface.sol +46 -0
  257. package/package.json +60 -0
@@ -0,0 +1,572 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "OVM_OETH_BridgeDepositBox",
4
+ "sourceName": "contracts/insured-bridge/ovm/OVM_OETH_BridgeDepositBox.sol",
5
+ "abi": [
6
+ {
7
+ "inputs": [
8
+ {
9
+ "internalType": "address",
10
+ "name": "_crossDomainAdmin",
11
+ "type": "address"
12
+ },
13
+ {
14
+ "internalType": "uint64",
15
+ "name": "_minimumBridgingDelay",
16
+ "type": "uint64"
17
+ },
18
+ {
19
+ "internalType": "uint256",
20
+ "name": "_chainId",
21
+ "type": "uint256"
22
+ },
23
+ {
24
+ "internalType": "address",
25
+ "name": "_l1Weth",
26
+ "type": "address"
27
+ },
28
+ {
29
+ "internalType": "address",
30
+ "name": "_l2Eth",
31
+ "type": "address"
32
+ },
33
+ {
34
+ "internalType": "address",
35
+ "name": "_l1EthWrapper",
36
+ "type": "address"
37
+ },
38
+ {
39
+ "internalType": "address",
40
+ "name": "timerAddress",
41
+ "type": "address"
42
+ }
43
+ ],
44
+ "stateMutability": "nonpayable",
45
+ "type": "constructor"
46
+ },
47
+ {
48
+ "anonymous": false,
49
+ "inputs": [
50
+ {
51
+ "indexed": false,
52
+ "internalType": "address",
53
+ "name": "l2Token",
54
+ "type": "address"
55
+ },
56
+ {
57
+ "indexed": false,
58
+ "internalType": "bool",
59
+ "name": "depositsEnabled",
60
+ "type": "bool"
61
+ }
62
+ ],
63
+ "name": "DepositsEnabled",
64
+ "type": "event"
65
+ },
66
+ {
67
+ "anonymous": false,
68
+ "inputs": [
69
+ {
70
+ "indexed": false,
71
+ "internalType": "uint256",
72
+ "name": "chainId",
73
+ "type": "uint256"
74
+ },
75
+ {
76
+ "indexed": false,
77
+ "internalType": "uint256",
78
+ "name": "depositId",
79
+ "type": "uint256"
80
+ },
81
+ {
82
+ "indexed": false,
83
+ "internalType": "address",
84
+ "name": "l1Recipient",
85
+ "type": "address"
86
+ },
87
+ {
88
+ "indexed": false,
89
+ "internalType": "address",
90
+ "name": "l2Sender",
91
+ "type": "address"
92
+ },
93
+ {
94
+ "indexed": false,
95
+ "internalType": "address",
96
+ "name": "l1Token",
97
+ "type": "address"
98
+ },
99
+ {
100
+ "indexed": false,
101
+ "internalType": "address",
102
+ "name": "l2Token",
103
+ "type": "address"
104
+ },
105
+ {
106
+ "indexed": false,
107
+ "internalType": "uint256",
108
+ "name": "amount",
109
+ "type": "uint256"
110
+ },
111
+ {
112
+ "indexed": false,
113
+ "internalType": "uint64",
114
+ "name": "slowRelayFeePct",
115
+ "type": "uint64"
116
+ },
117
+ {
118
+ "indexed": false,
119
+ "internalType": "uint64",
120
+ "name": "instantRelayFeePct",
121
+ "type": "uint64"
122
+ },
123
+ {
124
+ "indexed": false,
125
+ "internalType": "uint64",
126
+ "name": "quoteTimestamp",
127
+ "type": "uint64"
128
+ }
129
+ ],
130
+ "name": "FundsDeposited",
131
+ "type": "event"
132
+ },
133
+ {
134
+ "anonymous": false,
135
+ "inputs": [
136
+ {
137
+ "indexed": false,
138
+ "internalType": "uint64",
139
+ "name": "newMinimumBridgingDelay",
140
+ "type": "uint64"
141
+ }
142
+ ],
143
+ "name": "SetMinimumBridgingDelay",
144
+ "type": "event"
145
+ },
146
+ {
147
+ "anonymous": false,
148
+ "inputs": [
149
+ {
150
+ "indexed": true,
151
+ "internalType": "address",
152
+ "name": "newAdmin",
153
+ "type": "address"
154
+ }
155
+ ],
156
+ "name": "SetXDomainAdmin",
157
+ "type": "event"
158
+ },
159
+ {
160
+ "anonymous": false,
161
+ "inputs": [
162
+ {
163
+ "indexed": true,
164
+ "internalType": "address",
165
+ "name": "l2Token",
166
+ "type": "address"
167
+ },
168
+ {
169
+ "indexed": false,
170
+ "internalType": "uint256",
171
+ "name": "numberOfTokensBridged",
172
+ "type": "uint256"
173
+ },
174
+ {
175
+ "indexed": false,
176
+ "internalType": "uint256",
177
+ "name": "l1Gas",
178
+ "type": "uint256"
179
+ },
180
+ {
181
+ "indexed": true,
182
+ "internalType": "address",
183
+ "name": "caller",
184
+ "type": "address"
185
+ }
186
+ ],
187
+ "name": "TokensBridged",
188
+ "type": "event"
189
+ },
190
+ {
191
+ "anonymous": false,
192
+ "inputs": [
193
+ {
194
+ "indexed": false,
195
+ "internalType": "address",
196
+ "name": "l1Token",
197
+ "type": "address"
198
+ },
199
+ {
200
+ "indexed": false,
201
+ "internalType": "address",
202
+ "name": "l2Token",
203
+ "type": "address"
204
+ },
205
+ {
206
+ "indexed": false,
207
+ "internalType": "uint64",
208
+ "name": "lastBridgeTime",
209
+ "type": "uint64"
210
+ },
211
+ {
212
+ "indexed": false,
213
+ "internalType": "address",
214
+ "name": "bridgePool",
215
+ "type": "address"
216
+ }
217
+ ],
218
+ "name": "WhitelistToken",
219
+ "type": "event"
220
+ },
221
+ {
222
+ "stateMutability": "payable",
223
+ "type": "fallback"
224
+ },
225
+ {
226
+ "inputs": [
227
+ {
228
+ "internalType": "address",
229
+ "name": "l2Token",
230
+ "type": "address"
231
+ },
232
+ {
233
+ "internalType": "uint32",
234
+ "name": "l1Gas",
235
+ "type": "uint32"
236
+ }
237
+ ],
238
+ "name": "bridgeTokens",
239
+ "outputs": [],
240
+ "stateMutability": "nonpayable",
241
+ "type": "function"
242
+ },
243
+ {
244
+ "inputs": [
245
+ {
246
+ "internalType": "address",
247
+ "name": "l2Token",
248
+ "type": "address"
249
+ }
250
+ ],
251
+ "name": "canBridge",
252
+ "outputs": [
253
+ {
254
+ "internalType": "bool",
255
+ "name": "",
256
+ "type": "bool"
257
+ }
258
+ ],
259
+ "stateMutability": "view",
260
+ "type": "function"
261
+ },
262
+ {
263
+ "inputs": [],
264
+ "name": "chainId",
265
+ "outputs": [
266
+ {
267
+ "internalType": "uint256",
268
+ "name": "",
269
+ "type": "uint256"
270
+ }
271
+ ],
272
+ "stateMutability": "view",
273
+ "type": "function"
274
+ },
275
+ {
276
+ "inputs": [],
277
+ "name": "crossDomainAdmin",
278
+ "outputs": [
279
+ {
280
+ "internalType": "address",
281
+ "name": "",
282
+ "type": "address"
283
+ }
284
+ ],
285
+ "stateMutability": "view",
286
+ "type": "function"
287
+ },
288
+ {
289
+ "inputs": [
290
+ {
291
+ "internalType": "address",
292
+ "name": "l1Recipient",
293
+ "type": "address"
294
+ },
295
+ {
296
+ "internalType": "address",
297
+ "name": "l2Token",
298
+ "type": "address"
299
+ },
300
+ {
301
+ "internalType": "uint256",
302
+ "name": "amount",
303
+ "type": "uint256"
304
+ },
305
+ {
306
+ "internalType": "uint64",
307
+ "name": "slowRelayFeePct",
308
+ "type": "uint64"
309
+ },
310
+ {
311
+ "internalType": "uint64",
312
+ "name": "instantRelayFeePct",
313
+ "type": "uint64"
314
+ },
315
+ {
316
+ "internalType": "uint64",
317
+ "name": "quoteTimestamp",
318
+ "type": "uint64"
319
+ }
320
+ ],
321
+ "name": "deposit",
322
+ "outputs": [],
323
+ "stateMutability": "payable",
324
+ "type": "function"
325
+ },
326
+ {
327
+ "inputs": [],
328
+ "name": "getCurrentTime",
329
+ "outputs": [
330
+ {
331
+ "internalType": "uint256",
332
+ "name": "",
333
+ "type": "uint256"
334
+ }
335
+ ],
336
+ "stateMutability": "view",
337
+ "type": "function"
338
+ },
339
+ {
340
+ "inputs": [
341
+ {
342
+ "internalType": "address",
343
+ "name": "l2Token",
344
+ "type": "address"
345
+ }
346
+ ],
347
+ "name": "isWhitelistToken",
348
+ "outputs": [
349
+ {
350
+ "internalType": "bool",
351
+ "name": "",
352
+ "type": "bool"
353
+ }
354
+ ],
355
+ "stateMutability": "view",
356
+ "type": "function"
357
+ },
358
+ {
359
+ "inputs": [],
360
+ "name": "l1EthWrapper",
361
+ "outputs": [
362
+ {
363
+ "internalType": "address",
364
+ "name": "",
365
+ "type": "address"
366
+ }
367
+ ],
368
+ "stateMutability": "view",
369
+ "type": "function"
370
+ },
371
+ {
372
+ "inputs": [],
373
+ "name": "l1Weth",
374
+ "outputs": [
375
+ {
376
+ "internalType": "address",
377
+ "name": "",
378
+ "type": "address"
379
+ }
380
+ ],
381
+ "stateMutability": "view",
382
+ "type": "function"
383
+ },
384
+ {
385
+ "inputs": [],
386
+ "name": "l2Eth",
387
+ "outputs": [
388
+ {
389
+ "internalType": "address",
390
+ "name": "",
391
+ "type": "address"
392
+ }
393
+ ],
394
+ "stateMutability": "view",
395
+ "type": "function"
396
+ },
397
+ {
398
+ "inputs": [],
399
+ "name": "messenger",
400
+ "outputs": [
401
+ {
402
+ "internalType": "address",
403
+ "name": "",
404
+ "type": "address"
405
+ }
406
+ ],
407
+ "stateMutability": "view",
408
+ "type": "function"
409
+ },
410
+ {
411
+ "inputs": [],
412
+ "name": "minimumBridgingDelay",
413
+ "outputs": [
414
+ {
415
+ "internalType": "uint64",
416
+ "name": "",
417
+ "type": "uint64"
418
+ }
419
+ ],
420
+ "stateMutability": "view",
421
+ "type": "function"
422
+ },
423
+ {
424
+ "inputs": [],
425
+ "name": "numberOfDeposits",
426
+ "outputs": [
427
+ {
428
+ "internalType": "uint256",
429
+ "name": "",
430
+ "type": "uint256"
431
+ }
432
+ ],
433
+ "stateMutability": "view",
434
+ "type": "function"
435
+ },
436
+ {
437
+ "inputs": [
438
+ {
439
+ "internalType": "address",
440
+ "name": "newCrossDomainAdmin",
441
+ "type": "address"
442
+ }
443
+ ],
444
+ "name": "setCrossDomainAdmin",
445
+ "outputs": [],
446
+ "stateMutability": "nonpayable",
447
+ "type": "function"
448
+ },
449
+ {
450
+ "inputs": [
451
+ {
452
+ "internalType": "uint256",
453
+ "name": "time",
454
+ "type": "uint256"
455
+ }
456
+ ],
457
+ "name": "setCurrentTime",
458
+ "outputs": [],
459
+ "stateMutability": "nonpayable",
460
+ "type": "function"
461
+ },
462
+ {
463
+ "inputs": [
464
+ {
465
+ "internalType": "address",
466
+ "name": "l2Token",
467
+ "type": "address"
468
+ },
469
+ {
470
+ "internalType": "bool",
471
+ "name": "depositsEnabled",
472
+ "type": "bool"
473
+ }
474
+ ],
475
+ "name": "setEnableDeposits",
476
+ "outputs": [],
477
+ "stateMutability": "nonpayable",
478
+ "type": "function"
479
+ },
480
+ {
481
+ "inputs": [
482
+ {
483
+ "internalType": "uint64",
484
+ "name": "newMinimumBridgingDelay",
485
+ "type": "uint64"
486
+ }
487
+ ],
488
+ "name": "setMinimumBridgingDelay",
489
+ "outputs": [],
490
+ "stateMutability": "nonpayable",
491
+ "type": "function"
492
+ },
493
+ {
494
+ "inputs": [],
495
+ "name": "timerAddress",
496
+ "outputs": [
497
+ {
498
+ "internalType": "address",
499
+ "name": "",
500
+ "type": "address"
501
+ }
502
+ ],
503
+ "stateMutability": "view",
504
+ "type": "function"
505
+ },
506
+ {
507
+ "inputs": [
508
+ {
509
+ "internalType": "address",
510
+ "name": "l1Token",
511
+ "type": "address"
512
+ },
513
+ {
514
+ "internalType": "address",
515
+ "name": "l2Token",
516
+ "type": "address"
517
+ },
518
+ {
519
+ "internalType": "address",
520
+ "name": "l1BridgePool",
521
+ "type": "address"
522
+ }
523
+ ],
524
+ "name": "whitelistToken",
525
+ "outputs": [],
526
+ "stateMutability": "nonpayable",
527
+ "type": "function"
528
+ },
529
+ {
530
+ "inputs": [
531
+ {
532
+ "internalType": "address",
533
+ "name": "",
534
+ "type": "address"
535
+ }
536
+ ],
537
+ "name": "whitelistedTokens",
538
+ "outputs": [
539
+ {
540
+ "internalType": "address",
541
+ "name": "l1Token",
542
+ "type": "address"
543
+ },
544
+ {
545
+ "internalType": "address",
546
+ "name": "l1BridgePool",
547
+ "type": "address"
548
+ },
549
+ {
550
+ "internalType": "uint64",
551
+ "name": "lastBridgeTime",
552
+ "type": "uint64"
553
+ },
554
+ {
555
+ "internalType": "bool",
556
+ "name": "depositsEnabled",
557
+ "type": "bool"
558
+ }
559
+ ],
560
+ "stateMutability": "view",
561
+ "type": "function"
562
+ },
563
+ {
564
+ "stateMutability": "payable",
565
+ "type": "receive"
566
+ }
567
+ ],
568
+ "bytecode": "0x60806040523480156200001157600080fd5b50604051620029843803806200298483398101604081905262000034916200022b565b600080546001600160a81b0319166001600160a01b03831617600160a01b1790558686868684734200000000000000000000000000000000000007848484846200007e8462000115565b50600191909155600280546001600160a01b0319166001600160a01b0392831617905560058054600160401b600160e01b0319166801000000000000000094909216939093021790915550620000d48562000169565b5050600780546001600160a01b039788166001600160a01b031991821617909155600880549690971695169490941790945550620002c69650505050505050565b600580546001600160401b0319166001600160401b0383169081179091556040519081527f3f27163d4f4fe7a27a9d79683adf471b236f49fe9e8808717b3cc3c05a27611f9060200160405180910390a150565b6001600160a01b038116620001c45760405162461bcd60e51b815260206004820152601960248201527f4261642062726964676520726f75746572206164647265737300000000000000604482015260640160405180910390fd5b600680546001600160a01b0319166001600160a01b0383169081179091556040517fa9e8c42c9e7fca7f62755189a16b2f5314d43d8fb24e91ba54e6d65f9314e84990600090a250565b80516001600160a01b03811681146200022657600080fd5b919050565b600080600080600080600060e0888a0312156200024757600080fd5b62000252886200020e565b60208901519097506001600160401b03811681146200027057600080fd5b6040890151909650945062000288606089016200020e565b935062000298608089016200020e565b9250620002a860a089016200020e565b9150620002b860c089016200020e565b905092959891949750929550565b6126ae80620002d66000396000f3fe60806040526004361061014b5760003560e01c806363635fd9116100b4578063c2d9dca91161006e578063de7eba7811610056578063de7eba78146104b6578063e3229211146104d6578063fbb9fcf71461050357005b8063c2d9dca9146103c4578063daf9c210146103d757005b80639bfd2cdc1161009c5780639bfd2cdc14610354578063a1244c6714610374578063b2d6f4d41461038a57005b806363635fd91461030e5780639a8a05921461033e57005b80633cb747bf116101055780635285e058116100ed5780635285e05814610294578063563c7f60146102c15780635facafbd146102e157005b80633cb747bf1461023b5780634dedca281461027457005b806322f8e5661161013357806322f8e566146101d857806329cb924d146101f85780632ec35b311461021b57005b8063146bf4b1146101545780631c39c38d146101ab57005b3661015257005b005b34801561016057600080fd5b506002546101819073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b3480156101b757600080fd5b506000546101819073ffffffffffffffffffffffffffffffffffffffff1681565b3480156101e457600080fd5b506101526101f3366004612323565b61056d565b34801561020457600080fd5b5061020d610616565b6040519081526020016101a2565b34801561022757600080fd5b50610152610236366004612359565b6106dd565b34801561024757600080fd5b506005546101819068010000000000000000900473ffffffffffffffffffffffffffffffffffffffff1681565b34801561028057600080fd5b5061015261028f366004612399565b610937565b3480156102a057600080fd5b506006546101819073ffffffffffffffffffffffffffffffffffffffff1681565b3480156102cd57600080fd5b506101526102dc3660046123f2565b610b90565b3480156102ed57600080fd5b506008546101819073ffffffffffffffffffffffffffffffffffffffff1681565b34801561031a57600080fd5b5061032e61032936600461242b565b610de7565b60405190151581526020016101a2565b34801561034a57600080fd5b5061020d60015481565b34801561036057600080fd5b5061015261036f366004612448565b610e4a565b34801561038057600080fd5b5061020d60035481565b34801561039657600080fd5b506005546103ab9067ffffffffffffffff1681565b60405167ffffffffffffffff90911681526020016101a2565b6101526103d236600461247f565b6112ba565b3480156103e357600080fd5b5061046d6103f236600461242b565b6004602052600090815260409020805460019091015473ffffffffffffffffffffffffffffffffffffffff9182169181169074010000000000000000000000000000000000000000810467ffffffffffffffff16907c0100000000000000000000000000000000000000000000000000000000900460ff1684565b6040805173ffffffffffffffffffffffffffffffffffffffff958616815294909316602085015267ffffffffffffffff90911691830191909152151560608201526080016101a2565b3480156104c257600080fd5b506101526104d136600461242b565b611864565b3480156104e257600080fd5b506007546101819073ffffffffffffffffffffffffffffffffffffffff1681565b34801561050f57600080fd5b5061032e61051e36600461242b565b73ffffffffffffffffffffffffffffffffffffffff1660009081526004602052604090206001015474010000000000000000000000000000000000000000900467ffffffffffffffff16151590565b60005473ffffffffffffffffffffffffffffffffffffffff1661058f57600080fd5b6000546040517f22f8e5660000000000000000000000000000000000000000000000000000000081526004810183905273ffffffffffffffffffffffffffffffffffffffff909116906322f8e56690602401600060405180830381600087803b1580156105fb57600080fd5b505af115801561060f573d6000803e3d6000fd5b5050505050565b6000805473ffffffffffffffffffffffffffffffffffffffff16156106d85760008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166329cb924d6040518163ffffffff1660e01b815260040160206040518083038186803b15801561069b57600080fd5b505afa1580156106af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106d391906124f0565b905090565b504290565b60065473ffffffffffffffffffffffffffffffffffffffff1661072260055473ffffffffffffffffffffffffffffffffffffffff680100000000000000009091041690565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146107e1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f4f564d5f58434841494e3a206d657373656e67657220636f6e7472616374207560448201527f6e61757468656e7469636174656400000000000000000000000000000000000060648201526084015b60405180910390fd5b60055473ffffffffffffffffffffffffffffffffffffffff808316916801000000000000000090041673ffffffffffffffffffffffffffffffffffffffff16636e296e456040518163ffffffff1660e01b815260040160206040518083038186803b15801561084f57600080fd5b505afa158015610863573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108879190612509565b73ffffffffffffffffffffffffffffffffffffffff161461092a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603060248201527f4f564d5f58434841494e3a2077726f6e672073656e646572206f662063726f7360448201527f732d646f6d61696e206d6573736167650000000000000000000000000000000060648201526084016107d8565b61093382611ab5565b5050565b60065473ffffffffffffffffffffffffffffffffffffffff1661097c60055473ffffffffffffffffffffffffffffffffffffffff680100000000000000009091041690565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610a36576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f4f564d5f58434841494e3a206d657373656e67657220636f6e7472616374207560448201527f6e61757468656e7469636174656400000000000000000000000000000000000060648201526084016107d8565b60055473ffffffffffffffffffffffffffffffffffffffff808316916801000000000000000090041673ffffffffffffffffffffffffffffffffffffffff16636e296e456040518163ffffffff1660e01b815260040160206040518083038186803b158015610aa457600080fd5b505afa158015610ab8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610adc9190612509565b73ffffffffffffffffffffffffffffffffffffffff1614610b7f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603060248201527f4f564d5f58434841494e3a2077726f6e672073656e646572206f662063726f7360448201527f732d646f6d61696e206d6573736167650000000000000000000000000000000060648201526084016107d8565b610b8a848484611b22565b50505050565b60065473ffffffffffffffffffffffffffffffffffffffff16610bd560055473ffffffffffffffffffffffffffffffffffffffff680100000000000000009091041690565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610c8f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f4f564d5f58434841494e3a206d657373656e67657220636f6e7472616374207560448201527f6e61757468656e7469636174656400000000000000000000000000000000000060648201526084016107d8565b60055473ffffffffffffffffffffffffffffffffffffffff808316916801000000000000000090041673ffffffffffffffffffffffffffffffffffffffff16636e296e456040518163ffffffff1660e01b815260040160206040518083038186803b158015610cfd57600080fd5b505afa158015610d11573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d359190612509565b73ffffffffffffffffffffffffffffffffffffffff1614610dd8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603060248201527f4f564d5f58434841494e3a2077726f6e672073656e646572206f662063726f7360448201527f732d646f6d61696e206d6573736167650000000000000000000000000000000060648201526084016107d8565b610de28383611cfa565b505050565b73ffffffffffffffffffffffffffffffffffffffff811660009081526004602052604081206001015474010000000000000000000000000000000000000000900467ffffffffffffffff1615158015610e445750610e4482611dad565b92915050565b610e52611e24565b610e7f600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff169055565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015260009073ffffffffffffffffffffffffffffffffffffffff8416906370a0823190602401602060405180830381600087803b158015610ee957600080fd5b505af1158015610efd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f2191906124f0565b905060008111610f8d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f63616e277420627269646765207a65726f20746f6b656e73000000000000000060448201526064016107d8565b610f9683610de7565b611022576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602f60248201527f6e6f6e2d77686974656c697374656420746f6b656e206f72206c61737420627260448201527f6964676520746f6f20726563656e74000000000000000000000000000000000060648201526084016107d8565b61102a610616565b73ffffffffffffffffffffffffffffffffffffffff808516600090815260046020526040902060018101805467ffffffffffffffff9490941674010000000000000000000000000000000000000000027fffffffff0000000000000000ffffffffffffffffffffffffffffffffffffffff8516811790915560025491549083169383169390931792821691161415611160576040517f2e1a7d4d0000000000000000000000000000000000000000000000000000000081526004810183905273ffffffffffffffffffffffffffffffffffffffff851690632e1a7d4d90602401600060405180830381600087803b15801561112457600080fd5b505af1158015611138573d6000803e3d6000fd5b505060075460085473ffffffffffffffffffffffffffffffffffffffff918216975016925050505b6040517fa3a7954800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8086166004830152821660248201526044810183905263ffffffff8416606482015260a06084820152600060a48201527342000000000000000000000000000000000000109063a3a795489060c401600060405180830381600087803b15801561120457600080fd5b505af1158015611218573d6000803e3d6000fd5b50506040805185815263ffffffff8716602082015233935073ffffffffffffffffffffffffffffffffffffffff881692507f95b5ec953bd38fbaa6f859725352bf73202c155a6809e5622c95ceef331eac6c910160405180910390a35050610933600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1674010000000000000000000000000000000000000000179055565b73ffffffffffffffffffffffffffffffffffffffff851660009081526004602052604090206001015485907c0100000000000000000000000000000000000000000000000000000000900460ff1661136e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f436f6e74726163742069732064697361626c656400000000000000000000000060448201526064016107d8565b611376611e24565b6113a3600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff169055565b73ffffffffffffffffffffffffffffffffffffffff861660009081526004602052604090206001015474010000000000000000000000000000000000000000900467ffffffffffffffff16611454576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f6465706f73697420746f6b656e206e6f742077686974656c697374656400000060448201526064016107d8565b6703782dace9d900008467ffffffffffffffff1611156114d0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f736c6f7752656c6179466565506374206d757374206265203c3d20323525000060448201526064016107d8565b6703782dace9d900008367ffffffffffffffff161115611572576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f696e7374616e7452656c6179466565506374206d757374206265203c3d20323560448201527f250000000000000000000000000000000000000000000000000000000000000060648201526084016107d8565b61157e61025883612555565b67ffffffffffffffff16611590610616565b101580156115ba57506115a58261025861257e565b67ffffffffffffffff166115b7610616565b11155b611620576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f6465706f736974206d696e656420616674657220646561646c696e650000000060448201526064016107d8565b60025473ffffffffffffffffffffffffffffffffffffffff8781166000908152600460205260409020548116911614801561165b5750600034115b1561172f578434146116c9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f6d73672e76616c7565206d757374206d6174636820616d6f756e74000000000060448201526064016107d8565b8573ffffffffffffffffffffffffffffffffffffffff1663d0e30db0346040518263ffffffff1660e01b81526004016000604051808303818588803b15801561171157600080fd5b505af1158015611725573d6000803e3d6000fd5b5050505050611751565b61175173ffffffffffffffffffffffffffffffffffffffff8716333088611eaa565b60015460035473ffffffffffffffffffffffffffffffffffffffff888116600081815260046020908152604091829020548251968752908601949094528b8316908501523360608501529116608083015260a082015260c0810186905267ffffffffffffffff80861660e083015280851661010083015283166101208201527fab77617f2b9bdbb101fc328e585470fb3c845c92b25c4b080cb7b66f7163cf72906101400160405180910390a160016003600082825461181191906125aa565b9091555061185b9050600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1674010000000000000000000000000000000000000000179055565b50505050505050565b60065473ffffffffffffffffffffffffffffffffffffffff166118a960055473ffffffffffffffffffffffffffffffffffffffff680100000000000000009091041690565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611963576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f4f564d5f58434841494e3a206d657373656e67657220636f6e7472616374207560448201527f6e61757468656e7469636174656400000000000000000000000000000000000060648201526084016107d8565b60055473ffffffffffffffffffffffffffffffffffffffff808316916801000000000000000090041673ffffffffffffffffffffffffffffffffffffffff16636e296e456040518163ffffffff1660e01b815260040160206040518083038186803b1580156119d157600080fd5b505afa1580156119e5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a099190612509565b73ffffffffffffffffffffffffffffffffffffffff1614611aac576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603060248201527f4f564d5f58434841494e3a2077726f6e672073656e646572206f662063726f7360448201527f732d646f6d61696e206d6573736167650000000000000000000000000000000060648201526084016107d8565b61093382611f3f565b600580547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001667ffffffffffffffff83169081179091556040519081527f3f27163d4f4fe7a27a9d79683adf471b236f49fe9e8808717b3cc3c05a27611f9060200160405180910390a150565b60405180608001604052808473ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff168152602001611b6d610616565b67ffffffffffffffff90811682526001602092830181905273ffffffffffffffffffffffffffffffffffffffff868116600090815260048552604090819020865181547fffffffffffffffffffffffff0000000000000000000000000000000000000000169084161781559486015194909201805492860151606090960151949091167fffffffff0000000000000000000000000000000000000000000000000000000090921691909117740100000000000000000000000000000000000000009490921693909302177fffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff167c0100000000000000000000000000000000000000000000000000000000911515919091021790557f93f23add56b90352ea2ef3bc2123262792af300dc6060c99f6ee06a7026863bd8383611cac610616565b6040805173ffffffffffffffffffffffffffffffffffffffff9485168152928416602084015267ffffffffffffffff90911690820152908316606082015260800160405180910390a1505050565b73ffffffffffffffffffffffffffffffffffffffff821660008181526004602090815260409182902060010180547fffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff167c0100000000000000000000000000000000000000000000000000000000861515908102919091179091558251938452908301527ff84482204ff927822d3068d71e16e14b51cb1b2adafa7d6e11edc1b8dfd8c0db910160405180910390a15050565b60055473ffffffffffffffffffffffffffffffffffffffff82166000908152600460205260408120600101549091611e0b9167ffffffffffffffff91821691740100000000000000000000000000000000000000009091041661257e565b67ffffffffffffffff16611e1d610616565b1192915050565b60005474010000000000000000000000000000000000000000900460ff16611ea8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016107d8565b565b6040805173ffffffffffffffffffffffffffffffffffffffff85811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd00000000000000000000000000000000000000000000000000000000179052610b8a90859061202b565b73ffffffffffffffffffffffffffffffffffffffff8116611fbc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f4261642062726964676520726f7574657220616464726573730000000000000060448201526064016107d8565b600680547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517fa9e8c42c9e7fca7f62755189a16b2f5314d43d8fb24e91ba54e6d65f9314e84990600090a250565b600061208d826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166121379092919063ffffffff16565b805190915015610de257808060200190518101906120ab91906125c2565b610de2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f7420737563636565640000000000000000000000000000000000000000000060648201526084016107d8565b60606121468484600085612150565b90505b9392505050565b6060824710156121e2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c000000000000000000000000000000000000000000000000000060648201526084016107d8565b843b61224a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016107d8565b6000808673ffffffffffffffffffffffffffffffffffffffff168587604051612273919061260b565b60006040518083038185875af1925050503d80600081146122b0576040519150601f19603f3d011682016040523d82523d6000602084013e6122b5565b606091505b50915091506122c58282866122d0565b979650505050505050565b606083156122df575081612149565b8251156122ef5782518084602001fd5b816040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107d89190612627565b60006020828403121561233557600080fd5b5035919050565b803567ffffffffffffffff8116811461235457600080fd5b919050565b60006020828403121561236b57600080fd5b6121498261233c565b73ffffffffffffffffffffffffffffffffffffffff8116811461239657600080fd5b50565b6000806000606084860312156123ae57600080fd5b83356123b981612374565b925060208401356123c981612374565b915060408401356123d981612374565b809150509250925092565b801515811461239657600080fd5b6000806040838503121561240557600080fd5b823561241081612374565b91506020830135612420816123e4565b809150509250929050565b60006020828403121561243d57600080fd5b813561214981612374565b6000806040838503121561245b57600080fd5b823561246681612374565b9150602083013563ffffffff8116811461242057600080fd5b60008060008060008060c0878903121561249857600080fd5b86356124a381612374565b955060208701356124b381612374565b9450604087013593506124c86060880161233c565b92506124d66080880161233c565b91506124e460a0880161233c565b90509295509295509295565b60006020828403121561250257600080fd5b5051919050565b60006020828403121561251b57600080fd5b815161214981612374565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600067ffffffffffffffff8381169083168181101561257657612576612526565b039392505050565b600067ffffffffffffffff8083168185168083038211156125a1576125a1612526565b01949350505050565b600082198211156125bd576125bd612526565b500190565b6000602082840312156125d457600080fd5b8151612149816123e4565b60005b838110156125fa5781810151838201526020016125e2565b83811115610b8a5750506000910152565b6000825161261d8184602087016125df565b9190910192915050565b60208152600082518060208401526126468160408501602087016125df565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016040019291505056fea2646970667358221220bff8579e0703fae79661b0b44218007636bde40f2bd24c1c342936353367f5e064736f6c63430008090033",
569
+ "deployedBytecode": "0x60806040526004361061014b5760003560e01c806363635fd9116100b4578063c2d9dca91161006e578063de7eba7811610056578063de7eba78146104b6578063e3229211146104d6578063fbb9fcf71461050357005b8063c2d9dca9146103c4578063daf9c210146103d757005b80639bfd2cdc1161009c5780639bfd2cdc14610354578063a1244c6714610374578063b2d6f4d41461038a57005b806363635fd91461030e5780639a8a05921461033e57005b80633cb747bf116101055780635285e058116100ed5780635285e05814610294578063563c7f60146102c15780635facafbd146102e157005b80633cb747bf1461023b5780634dedca281461027457005b806322f8e5661161013357806322f8e566146101d857806329cb924d146101f85780632ec35b311461021b57005b8063146bf4b1146101545780631c39c38d146101ab57005b3661015257005b005b34801561016057600080fd5b506002546101819073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b3480156101b757600080fd5b506000546101819073ffffffffffffffffffffffffffffffffffffffff1681565b3480156101e457600080fd5b506101526101f3366004612323565b61056d565b34801561020457600080fd5b5061020d610616565b6040519081526020016101a2565b34801561022757600080fd5b50610152610236366004612359565b6106dd565b34801561024757600080fd5b506005546101819068010000000000000000900473ffffffffffffffffffffffffffffffffffffffff1681565b34801561028057600080fd5b5061015261028f366004612399565b610937565b3480156102a057600080fd5b506006546101819073ffffffffffffffffffffffffffffffffffffffff1681565b3480156102cd57600080fd5b506101526102dc3660046123f2565b610b90565b3480156102ed57600080fd5b506008546101819073ffffffffffffffffffffffffffffffffffffffff1681565b34801561031a57600080fd5b5061032e61032936600461242b565b610de7565b60405190151581526020016101a2565b34801561034a57600080fd5b5061020d60015481565b34801561036057600080fd5b5061015261036f366004612448565b610e4a565b34801561038057600080fd5b5061020d60035481565b34801561039657600080fd5b506005546103ab9067ffffffffffffffff1681565b60405167ffffffffffffffff90911681526020016101a2565b6101526103d236600461247f565b6112ba565b3480156103e357600080fd5b5061046d6103f236600461242b565b6004602052600090815260409020805460019091015473ffffffffffffffffffffffffffffffffffffffff9182169181169074010000000000000000000000000000000000000000810467ffffffffffffffff16907c0100000000000000000000000000000000000000000000000000000000900460ff1684565b6040805173ffffffffffffffffffffffffffffffffffffffff958616815294909316602085015267ffffffffffffffff90911691830191909152151560608201526080016101a2565b3480156104c257600080fd5b506101526104d136600461242b565b611864565b3480156104e257600080fd5b506007546101819073ffffffffffffffffffffffffffffffffffffffff1681565b34801561050f57600080fd5b5061032e61051e36600461242b565b73ffffffffffffffffffffffffffffffffffffffff1660009081526004602052604090206001015474010000000000000000000000000000000000000000900467ffffffffffffffff16151590565b60005473ffffffffffffffffffffffffffffffffffffffff1661058f57600080fd5b6000546040517f22f8e5660000000000000000000000000000000000000000000000000000000081526004810183905273ffffffffffffffffffffffffffffffffffffffff909116906322f8e56690602401600060405180830381600087803b1580156105fb57600080fd5b505af115801561060f573d6000803e3d6000fd5b5050505050565b6000805473ffffffffffffffffffffffffffffffffffffffff16156106d85760008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166329cb924d6040518163ffffffff1660e01b815260040160206040518083038186803b15801561069b57600080fd5b505afa1580156106af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106d391906124f0565b905090565b504290565b60065473ffffffffffffffffffffffffffffffffffffffff1661072260055473ffffffffffffffffffffffffffffffffffffffff680100000000000000009091041690565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146107e1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f4f564d5f58434841494e3a206d657373656e67657220636f6e7472616374207560448201527f6e61757468656e7469636174656400000000000000000000000000000000000060648201526084015b60405180910390fd5b60055473ffffffffffffffffffffffffffffffffffffffff808316916801000000000000000090041673ffffffffffffffffffffffffffffffffffffffff16636e296e456040518163ffffffff1660e01b815260040160206040518083038186803b15801561084f57600080fd5b505afa158015610863573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108879190612509565b73ffffffffffffffffffffffffffffffffffffffff161461092a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603060248201527f4f564d5f58434841494e3a2077726f6e672073656e646572206f662063726f7360448201527f732d646f6d61696e206d6573736167650000000000000000000000000000000060648201526084016107d8565b61093382611ab5565b5050565b60065473ffffffffffffffffffffffffffffffffffffffff1661097c60055473ffffffffffffffffffffffffffffffffffffffff680100000000000000009091041690565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610a36576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f4f564d5f58434841494e3a206d657373656e67657220636f6e7472616374207560448201527f6e61757468656e7469636174656400000000000000000000000000000000000060648201526084016107d8565b60055473ffffffffffffffffffffffffffffffffffffffff808316916801000000000000000090041673ffffffffffffffffffffffffffffffffffffffff16636e296e456040518163ffffffff1660e01b815260040160206040518083038186803b158015610aa457600080fd5b505afa158015610ab8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610adc9190612509565b73ffffffffffffffffffffffffffffffffffffffff1614610b7f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603060248201527f4f564d5f58434841494e3a2077726f6e672073656e646572206f662063726f7360448201527f732d646f6d61696e206d6573736167650000000000000000000000000000000060648201526084016107d8565b610b8a848484611b22565b50505050565b60065473ffffffffffffffffffffffffffffffffffffffff16610bd560055473ffffffffffffffffffffffffffffffffffffffff680100000000000000009091041690565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610c8f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f4f564d5f58434841494e3a206d657373656e67657220636f6e7472616374207560448201527f6e61757468656e7469636174656400000000000000000000000000000000000060648201526084016107d8565b60055473ffffffffffffffffffffffffffffffffffffffff808316916801000000000000000090041673ffffffffffffffffffffffffffffffffffffffff16636e296e456040518163ffffffff1660e01b815260040160206040518083038186803b158015610cfd57600080fd5b505afa158015610d11573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d359190612509565b73ffffffffffffffffffffffffffffffffffffffff1614610dd8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603060248201527f4f564d5f58434841494e3a2077726f6e672073656e646572206f662063726f7360448201527f732d646f6d61696e206d6573736167650000000000000000000000000000000060648201526084016107d8565b610de28383611cfa565b505050565b73ffffffffffffffffffffffffffffffffffffffff811660009081526004602052604081206001015474010000000000000000000000000000000000000000900467ffffffffffffffff1615158015610e445750610e4482611dad565b92915050565b610e52611e24565b610e7f600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff169055565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015260009073ffffffffffffffffffffffffffffffffffffffff8416906370a0823190602401602060405180830381600087803b158015610ee957600080fd5b505af1158015610efd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f2191906124f0565b905060008111610f8d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f63616e277420627269646765207a65726f20746f6b656e73000000000000000060448201526064016107d8565b610f9683610de7565b611022576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602f60248201527f6e6f6e2d77686974656c697374656420746f6b656e206f72206c61737420627260448201527f6964676520746f6f20726563656e74000000000000000000000000000000000060648201526084016107d8565b61102a610616565b73ffffffffffffffffffffffffffffffffffffffff808516600090815260046020526040902060018101805467ffffffffffffffff9490941674010000000000000000000000000000000000000000027fffffffff0000000000000000ffffffffffffffffffffffffffffffffffffffff8516811790915560025491549083169383169390931792821691161415611160576040517f2e1a7d4d0000000000000000000000000000000000000000000000000000000081526004810183905273ffffffffffffffffffffffffffffffffffffffff851690632e1a7d4d90602401600060405180830381600087803b15801561112457600080fd5b505af1158015611138573d6000803e3d6000fd5b505060075460085473ffffffffffffffffffffffffffffffffffffffff918216975016925050505b6040517fa3a7954800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8086166004830152821660248201526044810183905263ffffffff8416606482015260a06084820152600060a48201527342000000000000000000000000000000000000109063a3a795489060c401600060405180830381600087803b15801561120457600080fd5b505af1158015611218573d6000803e3d6000fd5b50506040805185815263ffffffff8716602082015233935073ffffffffffffffffffffffffffffffffffffffff881692507f95b5ec953bd38fbaa6f859725352bf73202c155a6809e5622c95ceef331eac6c910160405180910390a35050610933600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1674010000000000000000000000000000000000000000179055565b73ffffffffffffffffffffffffffffffffffffffff851660009081526004602052604090206001015485907c0100000000000000000000000000000000000000000000000000000000900460ff1661136e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f436f6e74726163742069732064697361626c656400000000000000000000000060448201526064016107d8565b611376611e24565b6113a3600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff169055565b73ffffffffffffffffffffffffffffffffffffffff861660009081526004602052604090206001015474010000000000000000000000000000000000000000900467ffffffffffffffff16611454576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f6465706f73697420746f6b656e206e6f742077686974656c697374656400000060448201526064016107d8565b6703782dace9d900008467ffffffffffffffff1611156114d0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f736c6f7752656c6179466565506374206d757374206265203c3d20323525000060448201526064016107d8565b6703782dace9d900008367ffffffffffffffff161115611572576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f696e7374616e7452656c6179466565506374206d757374206265203c3d20323560448201527f250000000000000000000000000000000000000000000000000000000000000060648201526084016107d8565b61157e61025883612555565b67ffffffffffffffff16611590610616565b101580156115ba57506115a58261025861257e565b67ffffffffffffffff166115b7610616565b11155b611620576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f6465706f736974206d696e656420616674657220646561646c696e650000000060448201526064016107d8565b60025473ffffffffffffffffffffffffffffffffffffffff8781166000908152600460205260409020548116911614801561165b5750600034115b1561172f578434146116c9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f6d73672e76616c7565206d757374206d6174636820616d6f756e74000000000060448201526064016107d8565b8573ffffffffffffffffffffffffffffffffffffffff1663d0e30db0346040518263ffffffff1660e01b81526004016000604051808303818588803b15801561171157600080fd5b505af1158015611725573d6000803e3d6000fd5b5050505050611751565b61175173ffffffffffffffffffffffffffffffffffffffff8716333088611eaa565b60015460035473ffffffffffffffffffffffffffffffffffffffff888116600081815260046020908152604091829020548251968752908601949094528b8316908501523360608501529116608083015260a082015260c0810186905267ffffffffffffffff80861660e083015280851661010083015283166101208201527fab77617f2b9bdbb101fc328e585470fb3c845c92b25c4b080cb7b66f7163cf72906101400160405180910390a160016003600082825461181191906125aa565b9091555061185b9050600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1674010000000000000000000000000000000000000000179055565b50505050505050565b60065473ffffffffffffffffffffffffffffffffffffffff166118a960055473ffffffffffffffffffffffffffffffffffffffff680100000000000000009091041690565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611963576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f4f564d5f58434841494e3a206d657373656e67657220636f6e7472616374207560448201527f6e61757468656e7469636174656400000000000000000000000000000000000060648201526084016107d8565b60055473ffffffffffffffffffffffffffffffffffffffff808316916801000000000000000090041673ffffffffffffffffffffffffffffffffffffffff16636e296e456040518163ffffffff1660e01b815260040160206040518083038186803b1580156119d157600080fd5b505afa1580156119e5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a099190612509565b73ffffffffffffffffffffffffffffffffffffffff1614611aac576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603060248201527f4f564d5f58434841494e3a2077726f6e672073656e646572206f662063726f7360448201527f732d646f6d61696e206d6573736167650000000000000000000000000000000060648201526084016107d8565b61093382611f3f565b600580547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001667ffffffffffffffff83169081179091556040519081527f3f27163d4f4fe7a27a9d79683adf471b236f49fe9e8808717b3cc3c05a27611f9060200160405180910390a150565b60405180608001604052808473ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff168152602001611b6d610616565b67ffffffffffffffff90811682526001602092830181905273ffffffffffffffffffffffffffffffffffffffff868116600090815260048552604090819020865181547fffffffffffffffffffffffff0000000000000000000000000000000000000000169084161781559486015194909201805492860151606090960151949091167fffffffff0000000000000000000000000000000000000000000000000000000090921691909117740100000000000000000000000000000000000000009490921693909302177fffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff167c0100000000000000000000000000000000000000000000000000000000911515919091021790557f93f23add56b90352ea2ef3bc2123262792af300dc6060c99f6ee06a7026863bd8383611cac610616565b6040805173ffffffffffffffffffffffffffffffffffffffff9485168152928416602084015267ffffffffffffffff90911690820152908316606082015260800160405180910390a1505050565b73ffffffffffffffffffffffffffffffffffffffff821660008181526004602090815260409182902060010180547fffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff167c0100000000000000000000000000000000000000000000000000000000861515908102919091179091558251938452908301527ff84482204ff927822d3068d71e16e14b51cb1b2adafa7d6e11edc1b8dfd8c0db910160405180910390a15050565b60055473ffffffffffffffffffffffffffffffffffffffff82166000908152600460205260408120600101549091611e0b9167ffffffffffffffff91821691740100000000000000000000000000000000000000009091041661257e565b67ffffffffffffffff16611e1d610616565b1192915050565b60005474010000000000000000000000000000000000000000900460ff16611ea8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016107d8565b565b6040805173ffffffffffffffffffffffffffffffffffffffff85811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd00000000000000000000000000000000000000000000000000000000179052610b8a90859061202b565b73ffffffffffffffffffffffffffffffffffffffff8116611fbc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f4261642062726964676520726f7574657220616464726573730000000000000060448201526064016107d8565b600680547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040517fa9e8c42c9e7fca7f62755189a16b2f5314d43d8fb24e91ba54e6d65f9314e84990600090a250565b600061208d826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166121379092919063ffffffff16565b805190915015610de257808060200190518101906120ab91906125c2565b610de2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f7420737563636565640000000000000000000000000000000000000000000060648201526084016107d8565b60606121468484600085612150565b90505b9392505050565b6060824710156121e2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c000000000000000000000000000000000000000000000000000060648201526084016107d8565b843b61224a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016107d8565b6000808673ffffffffffffffffffffffffffffffffffffffff168587604051612273919061260b565b60006040518083038185875af1925050503d80600081146122b0576040519150601f19603f3d011682016040523d82523d6000602084013e6122b5565b606091505b50915091506122c58282866122d0565b979650505050505050565b606083156122df575081612149565b8251156122ef5782518084602001fd5b816040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107d89190612627565b60006020828403121561233557600080fd5b5035919050565b803567ffffffffffffffff8116811461235457600080fd5b919050565b60006020828403121561236b57600080fd5b6121498261233c565b73ffffffffffffffffffffffffffffffffffffffff8116811461239657600080fd5b50565b6000806000606084860312156123ae57600080fd5b83356123b981612374565b925060208401356123c981612374565b915060408401356123d981612374565b809150509250925092565b801515811461239657600080fd5b6000806040838503121561240557600080fd5b823561241081612374565b91506020830135612420816123e4565b809150509250929050565b60006020828403121561243d57600080fd5b813561214981612374565b6000806040838503121561245b57600080fd5b823561246681612374565b9150602083013563ffffffff8116811461242057600080fd5b60008060008060008060c0878903121561249857600080fd5b86356124a381612374565b955060208701356124b381612374565b9450604087013593506124c86060880161233c565b92506124d66080880161233c565b91506124e460a0880161233c565b90509295509295509295565b60006020828403121561250257600080fd5b5051919050565b60006020828403121561251b57600080fd5b815161214981612374565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600067ffffffffffffffff8381169083168181101561257657612576612526565b039392505050565b600067ffffffffffffffff8083168185168083038211156125a1576125a1612526565b01949350505050565b600082198211156125bd576125bd612526565b500190565b6000602082840312156125d457600080fd5b8151612149816123e4565b60005b838110156125fa5781810151838201526020016125e2565b83811115610b8a5750506000910152565b6000825161261d8184602087016125df565b9190910192915050565b60208152600082518060208401526126468160408501602087016125df565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016040019291505056fea2646970667358221220bff8579e0703fae79661b0b44218007636bde40f2bd24c1c342936353367f5e064736f6c63430008090033",
570
+ "linkReferences": {},
571
+ "deployedLinkReferences": {}
572
+ }
@@ -0,0 +1,4 @@
1
+ {
2
+ "_format": "hh-sol-dbg-1",
3
+ "buildInfo": "../../../../build-info/8e408b49e0ff2873bc28d45221a7ff71.json"
4
+ }