@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,4 @@
1
+ {
2
+ "_format": "hh-sol-dbg-1",
3
+ "buildInfo": "../../../build-info/d302d9d63fbafb5c8d635cc62cb1cc7c.json"
4
+ }
@@ -0,0 +1,31 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "WETH9Like",
4
+ "sourceName": "contracts/insured-bridge/BridgePool.sol",
5
+ "abi": [
6
+ {
7
+ "inputs": [],
8
+ "name": "deposit",
9
+ "outputs": [],
10
+ "stateMutability": "payable",
11
+ "type": "function"
12
+ },
13
+ {
14
+ "inputs": [
15
+ {
16
+ "internalType": "uint256",
17
+ "name": "wad",
18
+ "type": "uint256"
19
+ }
20
+ ],
21
+ "name": "withdraw",
22
+ "outputs": [],
23
+ "stateMutability": "nonpayable",
24
+ "type": "function"
25
+ }
26
+ ],
27
+ "bytecode": "0x",
28
+ "deployedBytecode": "0x",
29
+ "linkReferences": {},
30
+ "deployedLinkReferences": {}
31
+ }
@@ -0,0 +1,4 @@
1
+ {
2
+ "_format": "hh-sol-dbg-1",
3
+ "buildInfo": "../../../../build-info/8e408b49e0ff2873bc28d45221a7ff71.json"
4
+ }
@@ -0,0 +1,564 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "AVM_BridgeDepositBox",
4
+ "sourceName": "contracts/insured-bridge/avm/AVM_BridgeDepositBox.sol",
5
+ "abi": [
6
+ {
7
+ "inputs": [
8
+ {
9
+ "internalType": "address",
10
+ "name": "_l2GatewayRouter",
11
+ "type": "address"
12
+ },
13
+ {
14
+ "internalType": "address",
15
+ "name": "_crossDomainAdmin",
16
+ "type": "address"
17
+ },
18
+ {
19
+ "internalType": "uint64",
20
+ "name": "_minimumBridgingDelay",
21
+ "type": "uint64"
22
+ },
23
+ {
24
+ "internalType": "uint256",
25
+ "name": "_chainId",
26
+ "type": "uint256"
27
+ },
28
+ {
29
+ "internalType": "address",
30
+ "name": "_l1Weth",
31
+ "type": "address"
32
+ },
33
+ {
34
+ "internalType": "address",
35
+ "name": "timerAddress",
36
+ "type": "address"
37
+ }
38
+ ],
39
+ "stateMutability": "nonpayable",
40
+ "type": "constructor"
41
+ },
42
+ {
43
+ "anonymous": false,
44
+ "inputs": [
45
+ {
46
+ "indexed": false,
47
+ "internalType": "address",
48
+ "name": "l2Token",
49
+ "type": "address"
50
+ },
51
+ {
52
+ "indexed": false,
53
+ "internalType": "bool",
54
+ "name": "depositsEnabled",
55
+ "type": "bool"
56
+ }
57
+ ],
58
+ "name": "DepositsEnabled",
59
+ "type": "event"
60
+ },
61
+ {
62
+ "anonymous": false,
63
+ "inputs": [
64
+ {
65
+ "indexed": false,
66
+ "internalType": "uint256",
67
+ "name": "chainId",
68
+ "type": "uint256"
69
+ },
70
+ {
71
+ "indexed": false,
72
+ "internalType": "uint256",
73
+ "name": "depositId",
74
+ "type": "uint256"
75
+ },
76
+ {
77
+ "indexed": false,
78
+ "internalType": "address",
79
+ "name": "l1Recipient",
80
+ "type": "address"
81
+ },
82
+ {
83
+ "indexed": false,
84
+ "internalType": "address",
85
+ "name": "l2Sender",
86
+ "type": "address"
87
+ },
88
+ {
89
+ "indexed": false,
90
+ "internalType": "address",
91
+ "name": "l1Token",
92
+ "type": "address"
93
+ },
94
+ {
95
+ "indexed": false,
96
+ "internalType": "address",
97
+ "name": "l2Token",
98
+ "type": "address"
99
+ },
100
+ {
101
+ "indexed": false,
102
+ "internalType": "uint256",
103
+ "name": "amount",
104
+ "type": "uint256"
105
+ },
106
+ {
107
+ "indexed": false,
108
+ "internalType": "uint64",
109
+ "name": "slowRelayFeePct",
110
+ "type": "uint64"
111
+ },
112
+ {
113
+ "indexed": false,
114
+ "internalType": "uint64",
115
+ "name": "instantRelayFeePct",
116
+ "type": "uint64"
117
+ },
118
+ {
119
+ "indexed": false,
120
+ "internalType": "uint64",
121
+ "name": "quoteTimestamp",
122
+ "type": "uint64"
123
+ }
124
+ ],
125
+ "name": "FundsDeposited",
126
+ "type": "event"
127
+ },
128
+ {
129
+ "anonymous": false,
130
+ "inputs": [
131
+ {
132
+ "indexed": true,
133
+ "internalType": "address",
134
+ "name": "from",
135
+ "type": "address"
136
+ },
137
+ {
138
+ "indexed": true,
139
+ "internalType": "address",
140
+ "name": "to",
141
+ "type": "address"
142
+ },
143
+ {
144
+ "indexed": true,
145
+ "internalType": "uint256",
146
+ "name": "id",
147
+ "type": "uint256"
148
+ },
149
+ {
150
+ "indexed": false,
151
+ "internalType": "bytes",
152
+ "name": "data",
153
+ "type": "bytes"
154
+ }
155
+ ],
156
+ "name": "SentCrossDomainMessage",
157
+ "type": "event"
158
+ },
159
+ {
160
+ "anonymous": false,
161
+ "inputs": [
162
+ {
163
+ "indexed": false,
164
+ "internalType": "uint64",
165
+ "name": "newMinimumBridgingDelay",
166
+ "type": "uint64"
167
+ }
168
+ ],
169
+ "name": "SetMinimumBridgingDelay",
170
+ "type": "event"
171
+ },
172
+ {
173
+ "anonymous": false,
174
+ "inputs": [
175
+ {
176
+ "indexed": true,
177
+ "internalType": "address",
178
+ "name": "newAdmin",
179
+ "type": "address"
180
+ }
181
+ ],
182
+ "name": "SetXDomainAdmin",
183
+ "type": "event"
184
+ },
185
+ {
186
+ "anonymous": false,
187
+ "inputs": [
188
+ {
189
+ "indexed": true,
190
+ "internalType": "address",
191
+ "name": "l2Token",
192
+ "type": "address"
193
+ },
194
+ {
195
+ "indexed": false,
196
+ "internalType": "uint256",
197
+ "name": "numberOfTokensBridged",
198
+ "type": "uint256"
199
+ },
200
+ {
201
+ "indexed": false,
202
+ "internalType": "uint256",
203
+ "name": "l1Gas",
204
+ "type": "uint256"
205
+ },
206
+ {
207
+ "indexed": true,
208
+ "internalType": "address",
209
+ "name": "caller",
210
+ "type": "address"
211
+ }
212
+ ],
213
+ "name": "TokensBridged",
214
+ "type": "event"
215
+ },
216
+ {
217
+ "anonymous": false,
218
+ "inputs": [
219
+ {
220
+ "indexed": false,
221
+ "internalType": "address",
222
+ "name": "l1Token",
223
+ "type": "address"
224
+ },
225
+ {
226
+ "indexed": false,
227
+ "internalType": "address",
228
+ "name": "l2Token",
229
+ "type": "address"
230
+ },
231
+ {
232
+ "indexed": false,
233
+ "internalType": "uint64",
234
+ "name": "lastBridgeTime",
235
+ "type": "uint64"
236
+ },
237
+ {
238
+ "indexed": false,
239
+ "internalType": "address",
240
+ "name": "bridgePool",
241
+ "type": "address"
242
+ }
243
+ ],
244
+ "name": "WhitelistToken",
245
+ "type": "event"
246
+ },
247
+ {
248
+ "inputs": [
249
+ {
250
+ "internalType": "address",
251
+ "name": "l2Token",
252
+ "type": "address"
253
+ },
254
+ {
255
+ "internalType": "uint32",
256
+ "name": "l1Gas",
257
+ "type": "uint32"
258
+ }
259
+ ],
260
+ "name": "bridgeTokens",
261
+ "outputs": [],
262
+ "stateMutability": "nonpayable",
263
+ "type": "function"
264
+ },
265
+ {
266
+ "inputs": [
267
+ {
268
+ "internalType": "address",
269
+ "name": "l2Token",
270
+ "type": "address"
271
+ }
272
+ ],
273
+ "name": "canBridge",
274
+ "outputs": [
275
+ {
276
+ "internalType": "bool",
277
+ "name": "",
278
+ "type": "bool"
279
+ }
280
+ ],
281
+ "stateMutability": "view",
282
+ "type": "function"
283
+ },
284
+ {
285
+ "inputs": [],
286
+ "name": "chainId",
287
+ "outputs": [
288
+ {
289
+ "internalType": "uint256",
290
+ "name": "",
291
+ "type": "uint256"
292
+ }
293
+ ],
294
+ "stateMutability": "view",
295
+ "type": "function"
296
+ },
297
+ {
298
+ "inputs": [],
299
+ "name": "crossDomainAdmin",
300
+ "outputs": [
301
+ {
302
+ "internalType": "address",
303
+ "name": "",
304
+ "type": "address"
305
+ }
306
+ ],
307
+ "stateMutability": "view",
308
+ "type": "function"
309
+ },
310
+ {
311
+ "inputs": [
312
+ {
313
+ "internalType": "address",
314
+ "name": "l1Recipient",
315
+ "type": "address"
316
+ },
317
+ {
318
+ "internalType": "address",
319
+ "name": "l2Token",
320
+ "type": "address"
321
+ },
322
+ {
323
+ "internalType": "uint256",
324
+ "name": "amount",
325
+ "type": "uint256"
326
+ },
327
+ {
328
+ "internalType": "uint64",
329
+ "name": "slowRelayFeePct",
330
+ "type": "uint64"
331
+ },
332
+ {
333
+ "internalType": "uint64",
334
+ "name": "instantRelayFeePct",
335
+ "type": "uint64"
336
+ },
337
+ {
338
+ "internalType": "uint64",
339
+ "name": "quoteTimestamp",
340
+ "type": "uint64"
341
+ }
342
+ ],
343
+ "name": "deposit",
344
+ "outputs": [],
345
+ "stateMutability": "payable",
346
+ "type": "function"
347
+ },
348
+ {
349
+ "inputs": [],
350
+ "name": "getCurrentTime",
351
+ "outputs": [
352
+ {
353
+ "internalType": "uint256",
354
+ "name": "",
355
+ "type": "uint256"
356
+ }
357
+ ],
358
+ "stateMutability": "view",
359
+ "type": "function"
360
+ },
361
+ {
362
+ "inputs": [
363
+ {
364
+ "internalType": "address",
365
+ "name": "l2Token",
366
+ "type": "address"
367
+ }
368
+ ],
369
+ "name": "isWhitelistToken",
370
+ "outputs": [
371
+ {
372
+ "internalType": "bool",
373
+ "name": "",
374
+ "type": "bool"
375
+ }
376
+ ],
377
+ "stateMutability": "view",
378
+ "type": "function"
379
+ },
380
+ {
381
+ "inputs": [],
382
+ "name": "l1Weth",
383
+ "outputs": [
384
+ {
385
+ "internalType": "address",
386
+ "name": "",
387
+ "type": "address"
388
+ }
389
+ ],
390
+ "stateMutability": "view",
391
+ "type": "function"
392
+ },
393
+ {
394
+ "inputs": [],
395
+ "name": "l2GatewayRouter",
396
+ "outputs": [
397
+ {
398
+ "internalType": "address",
399
+ "name": "",
400
+ "type": "address"
401
+ }
402
+ ],
403
+ "stateMutability": "view",
404
+ "type": "function"
405
+ },
406
+ {
407
+ "inputs": [],
408
+ "name": "minimumBridgingDelay",
409
+ "outputs": [
410
+ {
411
+ "internalType": "uint64",
412
+ "name": "",
413
+ "type": "uint64"
414
+ }
415
+ ],
416
+ "stateMutability": "view",
417
+ "type": "function"
418
+ },
419
+ {
420
+ "inputs": [],
421
+ "name": "numberOfDeposits",
422
+ "outputs": [
423
+ {
424
+ "internalType": "uint256",
425
+ "name": "",
426
+ "type": "uint256"
427
+ }
428
+ ],
429
+ "stateMutability": "view",
430
+ "type": "function"
431
+ },
432
+ {
433
+ "inputs": [
434
+ {
435
+ "internalType": "address",
436
+ "name": "newCrossDomainAdmin",
437
+ "type": "address"
438
+ }
439
+ ],
440
+ "name": "setCrossDomainAdmin",
441
+ "outputs": [],
442
+ "stateMutability": "nonpayable",
443
+ "type": "function"
444
+ },
445
+ {
446
+ "inputs": [
447
+ {
448
+ "internalType": "uint256",
449
+ "name": "time",
450
+ "type": "uint256"
451
+ }
452
+ ],
453
+ "name": "setCurrentTime",
454
+ "outputs": [],
455
+ "stateMutability": "nonpayable",
456
+ "type": "function"
457
+ },
458
+ {
459
+ "inputs": [
460
+ {
461
+ "internalType": "address",
462
+ "name": "l2Token",
463
+ "type": "address"
464
+ },
465
+ {
466
+ "internalType": "bool",
467
+ "name": "depositsEnabled",
468
+ "type": "bool"
469
+ }
470
+ ],
471
+ "name": "setEnableDeposits",
472
+ "outputs": [],
473
+ "stateMutability": "nonpayable",
474
+ "type": "function"
475
+ },
476
+ {
477
+ "inputs": [
478
+ {
479
+ "internalType": "uint64",
480
+ "name": "newMinimumBridgingDelay",
481
+ "type": "uint64"
482
+ }
483
+ ],
484
+ "name": "setMinimumBridgingDelay",
485
+ "outputs": [],
486
+ "stateMutability": "nonpayable",
487
+ "type": "function"
488
+ },
489
+ {
490
+ "inputs": [],
491
+ "name": "timerAddress",
492
+ "outputs": [
493
+ {
494
+ "internalType": "address",
495
+ "name": "",
496
+ "type": "address"
497
+ }
498
+ ],
499
+ "stateMutability": "view",
500
+ "type": "function"
501
+ },
502
+ {
503
+ "inputs": [
504
+ {
505
+ "internalType": "address",
506
+ "name": "l1Token",
507
+ "type": "address"
508
+ },
509
+ {
510
+ "internalType": "address",
511
+ "name": "l2Token",
512
+ "type": "address"
513
+ },
514
+ {
515
+ "internalType": "address",
516
+ "name": "l1BridgePool",
517
+ "type": "address"
518
+ }
519
+ ],
520
+ "name": "whitelistToken",
521
+ "outputs": [],
522
+ "stateMutability": "nonpayable",
523
+ "type": "function"
524
+ },
525
+ {
526
+ "inputs": [
527
+ {
528
+ "internalType": "address",
529
+ "name": "",
530
+ "type": "address"
531
+ }
532
+ ],
533
+ "name": "whitelistedTokens",
534
+ "outputs": [
535
+ {
536
+ "internalType": "address",
537
+ "name": "l1Token",
538
+ "type": "address"
539
+ },
540
+ {
541
+ "internalType": "address",
542
+ "name": "l1BridgePool",
543
+ "type": "address"
544
+ },
545
+ {
546
+ "internalType": "uint64",
547
+ "name": "lastBridgeTime",
548
+ "type": "uint64"
549
+ },
550
+ {
551
+ "internalType": "bool",
552
+ "name": "depositsEnabled",
553
+ "type": "bool"
554
+ }
555
+ ],
556
+ "stateMutability": "view",
557
+ "type": "function"
558
+ }
559
+ ],
560
+ "bytecode": "0x60806040523480156200001157600080fd5b5060405162002302380380620023028339810160408190526200003491620001ce565b600080546001600160a81b0319166001600160a01b03831617600160a01b179055838383836200006484620000b2565b50600191909155600280546001600160a01b03199081166001600160a01b03938416179091556006805490911691891691909117905550620000a68562000106565b50505050505062000255565b600580546001600160401b0319166001600160401b0383169081179091556040519081527f3f27163d4f4fe7a27a9d79683adf471b236f49fe9e8808717b3cc3c05a27611f9060200160405180910390a150565b6001600160a01b038116620001515760405162461bcd60e51b815260206004820152600d60248201526c456d707479206164647265737360981b604482015260640160405180910390fd5b60058054600160401b600160e01b031916680100000000000000006001600160a01b0384811682029290921792839055604051920416907fa9e8c42c9e7fca7f62755189a16b2f5314d43d8fb24e91ba54e6d65f9314e84990600090a250565b80516001600160a01b0381168114620001c957600080fd5b919050565b60008060008060008060c08789031215620001e857600080fd5b620001f387620001b1565b95506200020360208801620001b1565b60408801519095506001600160401b03811681146200022157600080fd5b606088015190945092506200023960808801620001b1565b91506200024960a08801620001b1565b90509295509295509295565b61209d80620002656000396000f3fe6080604052600436106101295760003560e01c80639a8a0592116100a5578063c2d9dca911610074578063daf9c21011610059578063daf9c21014610386578063de7eba7814610465578063fbb9fcf71461048557600080fd5b8063c2d9dca914610346578063c83568591461035957600080fd5b80639a8a0592146102c05780639bfd2cdc146102d6578063a1244c67146102f6578063b2d6f4d41461030c57600080fd5b80632ec35b31116100fc5780635285e058116100e15780635285e05814610237578063563c7f601461027057806363635fd91461029057600080fd5b80632ec35b31146101f75780634dedca281461021757600080fd5b8063146bf4b11461012e5780631c39c38d1461018557806322f8e566146101b257806329cb924d146101d4575b600080fd5b34801561013a57600080fd5b5060025461015b9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b34801561019157600080fd5b5060005461015b9073ffffffffffffffffffffffffffffffffffffffff1681565b3480156101be57600080fd5b506101d26101cd366004611c21565b6104ef565b005b3480156101e057600080fd5b506101e9610598565b60405190815260200161017c565b34801561020357600080fd5b506101d2610212366004611c57565b61065f565b34801561022357600080fd5b506101d2610232366004611c96565b610733565b34801561024357600080fd5b5060055461015b9068010000000000000000900473ffffffffffffffffffffffffffffffffffffffff1681565b34801561027c57600080fd5b506101d261028b366004611cea565b610806565b34801561029c57600080fd5b506102b06102ab366004611d21565b6108d7565b604051901515815260200161017c565b3480156102cc57600080fd5b506101e960015481565b3480156102e257600080fd5b506101d26102f1366004611d3c565b61093a565b34801561030257600080fd5b506101e960035481565b34801561031857600080fd5b5060055461032d9067ffffffffffffffff1681565b60405167ffffffffffffffff909116815260200161017c565b6101d2610354366004611d71565b610d0b565b34801561036557600080fd5b5060065461015b9073ffffffffffffffffffffffffffffffffffffffff1681565b34801561039257600080fd5b5061041c6103a1366004611d21565b6004602052600090815260409020805460019091015473ffffffffffffffffffffffffffffffffffffffff9182169181169074010000000000000000000000000000000000000000810467ffffffffffffffff16907c0100000000000000000000000000000000000000000000000000000000900460ff1684565b6040805173ffffffffffffffffffffffffffffffffffffffff958616815294909316602085015267ffffffffffffffff909116918301919091521515606082015260800161017c565b34801561047157600080fd5b506101d2610480366004611d21565b6112b5565b34801561049157600080fd5b506102b06104a0366004611d21565b73ffffffffffffffffffffffffffffffffffffffff1660009081526004602052604090206001015474010000000000000000000000000000000000000000900467ffffffffffffffff16151590565b60005473ffffffffffffffffffffffffffffffffffffffff1661051157600080fd5b6000546040517f22f8e5660000000000000000000000000000000000000000000000000000000081526004810183905273ffffffffffffffffffffffffffffffffffffffff909116906322f8e56690602401600060405180830381600087803b15801561057d57600080fd5b505af1158015610591573d6000803e3d6000fd5b5050505050565b6000805473ffffffffffffffffffffffffffffffffffffffff161561065a5760008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166329cb924d6040518163ffffffff1660e01b815260040160206040518083038186803b15801561061d57600080fd5b505afa158015610631573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106559190611dde565b905090565b504290565b60055468010000000000000000900473ffffffffffffffffffffffffffffffffffffffff1661068d81611380565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610726576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f4f4e4c595f434f554e544552504152545f47415445574159000000000000000060448201526064015b60405180910390fd5b61072f826113a0565b5050565b60055468010000000000000000900473ffffffffffffffffffffffffffffffffffffffff1661076181611380565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146107f5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f4f4e4c595f434f554e544552504152545f474154455741590000000000000000604482015260640161071d565b61080084848461140d565b50505050565b60055468010000000000000000900473ffffffffffffffffffffffffffffffffffffffff1661083481611380565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146108c8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f4f4e4c595f434f554e544552504152545f474154455741590000000000000000604482015260640161071d565b6108d283836115e5565b505050565b73ffffffffffffffffffffffffffffffffffffffff811660009081526004602052604081206001015474010000000000000000000000000000000000000000900467ffffffffffffffff1615158015610934575061093482611698565b92915050565b61094261170f565b61096f600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff169055565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015260009073ffffffffffffffffffffffffffffffffffffffff8416906370a0823190602401602060405180830381600087803b1580156109d957600080fd5b505af11580156109ed573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a119190611dde565b905060008111610a7d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f63616e277420627269646765207a65726f20746f6b656e730000000000000000604482015260640161071d565b610a86836108d7565b610b12576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602f60248201527f6e6f6e2d77686974656c697374656420746f6b656e206f72206c61737420627260448201527f6964676520746f6f20726563656e740000000000000000000000000000000000606482015260840161071d565b610b1a610598565b73ffffffffffffffffffffffffffffffffffffffff848116600090815260046020819052604080832060018101805467ffffffffffffffff9790971674010000000000000000000000000000000000000000027fffffffff0000000000000000ffffffffffffffffffffffffffffffffffffffff88168117909155600654915492517f7b3a3c8b00000000000000000000000000000000000000000000000000000000815292861693830193909352918416948416949094176024850152604484018590526080606485015260848401919091521690637b3a3c8b9060a401600060405180830381600087803b158015610c1357600080fd5b505af1158015610c27573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052610c6d9190810190611e52565b506040805182815263ffffffff84166020820152339173ffffffffffffffffffffffffffffffffffffffff8616917f95b5ec953bd38fbaa6f859725352bf73202c155a6809e5622c95ceef331eac6c910160405180910390a35061072f600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1674010000000000000000000000000000000000000000179055565b73ffffffffffffffffffffffffffffffffffffffff851660009081526004602052604090206001015485907c0100000000000000000000000000000000000000000000000000000000900460ff16610dbf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f436f6e74726163742069732064697361626c6564000000000000000000000000604482015260640161071d565b610dc761170f565b610df4600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff169055565b73ffffffffffffffffffffffffffffffffffffffff861660009081526004602052604090206001015474010000000000000000000000000000000000000000900467ffffffffffffffff16610ea5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f6465706f73697420746f6b656e206e6f742077686974656c6973746564000000604482015260640161071d565b6703782dace9d900008467ffffffffffffffff161115610f21576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f736c6f7752656c6179466565506374206d757374206265203c3d203235250000604482015260640161071d565b6703782dace9d900008367ffffffffffffffff161115610fc3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f696e7374616e7452656c6179466565506374206d757374206265203c3d20323560448201527f2500000000000000000000000000000000000000000000000000000000000000606482015260840161071d565b610fcf61025883611f41565b67ffffffffffffffff16610fe1610598565b1015801561100b5750610ff682610258611f6a565b67ffffffffffffffff16611008610598565b11155b611071576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f6465706f736974206d696e656420616674657220646561646c696e6500000000604482015260640161071d565b60025473ffffffffffffffffffffffffffffffffffffffff878116600090815260046020526040902054811691161480156110ac5750600034115b156111805784341461111a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f6d73672e76616c7565206d757374206d6174636820616d6f756e740000000000604482015260640161071d565b8573ffffffffffffffffffffffffffffffffffffffff1663d0e30db0346040518263ffffffff1660e01b81526004016000604051808303818588803b15801561116257600080fd5b505af1158015611176573d6000803e3d6000fd5b50505050506111a2565b6111a273ffffffffffffffffffffffffffffffffffffffff8716333088611795565b60015460035473ffffffffffffffffffffffffffffffffffffffff888116600081815260046020908152604091829020548251968752908601949094528b8316908501523360608501529116608083015260a082015260c0810186905267ffffffffffffffff80861660e083015280851661010083015283166101208201527fab77617f2b9bdbb101fc328e585470fb3c845c92b25c4b080cb7b66f7163cf72906101400160405180910390a16001600360008282546112629190611f96565b909155506112ac9050600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1674010000000000000000000000000000000000000000179055565b50505050505050565b60055468010000000000000000900473ffffffffffffffffffffffffffffffffffffffff166112e381611380565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611377576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f4f4e4c595f434f554e544552504152545f474154455741590000000000000000604482015260640161071d565b61072f8261182a565b600061093473111100000000000000000000000000000000111183611fae565b600580547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001667ffffffffffffffff83169081179091556040519081527f3f27163d4f4fe7a27a9d79683adf471b236f49fe9e8808717b3cc3c05a27611f9060200160405180910390a150565b60405180608001604052808473ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff168152602001611458610598565b67ffffffffffffffff90811682526001602092830181905273ffffffffffffffffffffffffffffffffffffffff868116600090815260048552604090819020865181547fffffffffffffffffffffffff0000000000000000000000000000000000000000169084161781559486015194909201805492860151606090960151949091167fffffffff0000000000000000000000000000000000000000000000000000000090921691909117740100000000000000000000000000000000000000009490921693909302177fffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff167c0100000000000000000000000000000000000000000000000000000000911515919091021790557f93f23add56b90352ea2ef3bc2123262792af300dc6060c99f6ee06a7026863bd8383611597610598565b6040805173ffffffffffffffffffffffffffffffffffffffff9485168152928416602084015267ffffffffffffffff90911690820152908316606082015260800160405180910390a1505050565b73ffffffffffffffffffffffffffffffffffffffff821660008181526004602090815260409182902060010180547fffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff167c0100000000000000000000000000000000000000000000000000000000861515908102919091179091558251938452908301527ff84482204ff927822d3068d71e16e14b51cb1b2adafa7d6e11edc1b8dfd8c0db910160405180910390a15050565b60055473ffffffffffffffffffffffffffffffffffffffff821660009081526004602052604081206001015490916116f69167ffffffffffffffff918216917401000000000000000000000000000000000000000090910416611f6a565b67ffffffffffffffff16611708610598565b1192915050565b60005474010000000000000000000000000000000000000000900460ff16611793576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161071d565b565b6040805173ffffffffffffffffffffffffffffffffffffffff85811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd00000000000000000000000000000000000000000000000000000000179052610800908590611929565b73ffffffffffffffffffffffffffffffffffffffff81166118a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600d60248201527f456d707479206164647265737300000000000000000000000000000000000000604482015260640161071d565b600580547fffffffff0000000000000000000000000000000000000000ffffffffffffffff166801000000000000000073ffffffffffffffffffffffffffffffffffffffff84811682029290921792839055604051920416907fa9e8c42c9e7fca7f62755189a16b2f5314d43d8fb24e91ba54e6d65f9314e84990600090a250565b600061198b826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff16611a359092919063ffffffff16565b8051909150156108d257808060200190518101906119a99190611fdd565b6108d2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f74207375636365656400000000000000000000000000000000000000000000606482015260840161071d565b6060611a448484600085611a4e565b90505b9392505050565b606082471015611ae0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c0000000000000000000000000000000000000000000000000000606482015260840161071d565b843b611b48576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161071d565b6000808673ffffffffffffffffffffffffffffffffffffffff168587604051611b719190611ffa565b60006040518083038185875af1925050503d8060008114611bae576040519150601f19603f3d011682016040523d82523d6000602084013e611bb3565b606091505b5091509150611bc3828286611bce565b979650505050505050565b60608315611bdd575081611a47565b825115611bed5782518084602001fd5b816040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161071d9190612016565b600060208284031215611c3357600080fd5b5035919050565b803567ffffffffffffffff81168114611c5257600080fd5b919050565b600060208284031215611c6957600080fd5b611a4782611c3a565b803573ffffffffffffffffffffffffffffffffffffffff81168114611c5257600080fd5b600080600060608486031215611cab57600080fd5b611cb484611c72565b9250611cc260208501611c72565b9150611cd060408501611c72565b90509250925092565b8015158114611ce757600080fd5b50565b60008060408385031215611cfd57600080fd5b611d0683611c72565b91506020830135611d1681611cd9565b809150509250929050565b600060208284031215611d3357600080fd5b611a4782611c72565b60008060408385031215611d4f57600080fd5b611d5883611c72565b9150602083013563ffffffff81168114611d1657600080fd5b60008060008060008060c08789031215611d8a57600080fd5b611d9387611c72565b9550611da160208801611c72565b945060408701359350611db660608801611c3a565b9250611dc460808801611c3a565b9150611dd260a08801611c3a565b90509295509295509295565b600060208284031215611df057600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60005b83811015611e41578181015183820152602001611e29565b838111156108005750506000910152565b600060208284031215611e6457600080fd5b815167ffffffffffffffff80821115611e7c57600080fd5b818401915084601f830112611e9057600080fd5b815181811115611ea257611ea2611df7565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908382118183101715611ee857611ee8611df7565b81604052828152876020848701011115611f0157600080fd5b611bc3836020830160208801611e26565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600067ffffffffffffffff83811690831681811015611f6257611f62611f12565b039392505050565b600067ffffffffffffffff808316818516808303821115611f8d57611f8d611f12565b01949350505050565b60008219821115611fa957611fa9611f12565b500190565b600073ffffffffffffffffffffffffffffffffffffffff808316818516808303821115611f8d57611f8d611f12565b600060208284031215611fef57600080fd5b8151611a4781611cd9565b6000825161200c818460208701611e26565b9190910192915050565b6020815260008251806020840152612035816040850160208701611e26565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016040019291505056fea26469706673582212206879f651a1ded06aa976c85f28b0500a44e7c6a812b3a840054191e1dd69dd7064736f6c63430008090033",
561
+ "deployedBytecode": "0x6080604052600436106101295760003560e01c80639a8a0592116100a5578063c2d9dca911610074578063daf9c21011610059578063daf9c21014610386578063de7eba7814610465578063fbb9fcf71461048557600080fd5b8063c2d9dca914610346578063c83568591461035957600080fd5b80639a8a0592146102c05780639bfd2cdc146102d6578063a1244c67146102f6578063b2d6f4d41461030c57600080fd5b80632ec35b31116100fc5780635285e058116100e15780635285e05814610237578063563c7f601461027057806363635fd91461029057600080fd5b80632ec35b31146101f75780634dedca281461021757600080fd5b8063146bf4b11461012e5780631c39c38d1461018557806322f8e566146101b257806329cb924d146101d4575b600080fd5b34801561013a57600080fd5b5060025461015b9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b34801561019157600080fd5b5060005461015b9073ffffffffffffffffffffffffffffffffffffffff1681565b3480156101be57600080fd5b506101d26101cd366004611c21565b6104ef565b005b3480156101e057600080fd5b506101e9610598565b60405190815260200161017c565b34801561020357600080fd5b506101d2610212366004611c57565b61065f565b34801561022357600080fd5b506101d2610232366004611c96565b610733565b34801561024357600080fd5b5060055461015b9068010000000000000000900473ffffffffffffffffffffffffffffffffffffffff1681565b34801561027c57600080fd5b506101d261028b366004611cea565b610806565b34801561029c57600080fd5b506102b06102ab366004611d21565b6108d7565b604051901515815260200161017c565b3480156102cc57600080fd5b506101e960015481565b3480156102e257600080fd5b506101d26102f1366004611d3c565b61093a565b34801561030257600080fd5b506101e960035481565b34801561031857600080fd5b5060055461032d9067ffffffffffffffff1681565b60405167ffffffffffffffff909116815260200161017c565b6101d2610354366004611d71565b610d0b565b34801561036557600080fd5b5060065461015b9073ffffffffffffffffffffffffffffffffffffffff1681565b34801561039257600080fd5b5061041c6103a1366004611d21565b6004602052600090815260409020805460019091015473ffffffffffffffffffffffffffffffffffffffff9182169181169074010000000000000000000000000000000000000000810467ffffffffffffffff16907c0100000000000000000000000000000000000000000000000000000000900460ff1684565b6040805173ffffffffffffffffffffffffffffffffffffffff958616815294909316602085015267ffffffffffffffff909116918301919091521515606082015260800161017c565b34801561047157600080fd5b506101d2610480366004611d21565b6112b5565b34801561049157600080fd5b506102b06104a0366004611d21565b73ffffffffffffffffffffffffffffffffffffffff1660009081526004602052604090206001015474010000000000000000000000000000000000000000900467ffffffffffffffff16151590565b60005473ffffffffffffffffffffffffffffffffffffffff1661051157600080fd5b6000546040517f22f8e5660000000000000000000000000000000000000000000000000000000081526004810183905273ffffffffffffffffffffffffffffffffffffffff909116906322f8e56690602401600060405180830381600087803b15801561057d57600080fd5b505af1158015610591573d6000803e3d6000fd5b5050505050565b6000805473ffffffffffffffffffffffffffffffffffffffff161561065a5760008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166329cb924d6040518163ffffffff1660e01b815260040160206040518083038186803b15801561061d57600080fd5b505afa158015610631573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106559190611dde565b905090565b504290565b60055468010000000000000000900473ffffffffffffffffffffffffffffffffffffffff1661068d81611380565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610726576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f4f4e4c595f434f554e544552504152545f47415445574159000000000000000060448201526064015b60405180910390fd5b61072f826113a0565b5050565b60055468010000000000000000900473ffffffffffffffffffffffffffffffffffffffff1661076181611380565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146107f5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f4f4e4c595f434f554e544552504152545f474154455741590000000000000000604482015260640161071d565b61080084848461140d565b50505050565b60055468010000000000000000900473ffffffffffffffffffffffffffffffffffffffff1661083481611380565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146108c8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f4f4e4c595f434f554e544552504152545f474154455741590000000000000000604482015260640161071d565b6108d283836115e5565b505050565b73ffffffffffffffffffffffffffffffffffffffff811660009081526004602052604081206001015474010000000000000000000000000000000000000000900467ffffffffffffffff1615158015610934575061093482611698565b92915050565b61094261170f565b61096f600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff169055565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015260009073ffffffffffffffffffffffffffffffffffffffff8416906370a0823190602401602060405180830381600087803b1580156109d957600080fd5b505af11580156109ed573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a119190611dde565b905060008111610a7d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f63616e277420627269646765207a65726f20746f6b656e730000000000000000604482015260640161071d565b610a86836108d7565b610b12576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602f60248201527f6e6f6e2d77686974656c697374656420746f6b656e206f72206c61737420627260448201527f6964676520746f6f20726563656e740000000000000000000000000000000000606482015260840161071d565b610b1a610598565b73ffffffffffffffffffffffffffffffffffffffff848116600090815260046020819052604080832060018101805467ffffffffffffffff9790971674010000000000000000000000000000000000000000027fffffffff0000000000000000ffffffffffffffffffffffffffffffffffffffff88168117909155600654915492517f7b3a3c8b00000000000000000000000000000000000000000000000000000000815292861693830193909352918416948416949094176024850152604484018590526080606485015260848401919091521690637b3a3c8b9060a401600060405180830381600087803b158015610c1357600080fd5b505af1158015610c27573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052610c6d9190810190611e52565b506040805182815263ffffffff84166020820152339173ffffffffffffffffffffffffffffffffffffffff8616917f95b5ec953bd38fbaa6f859725352bf73202c155a6809e5622c95ceef331eac6c910160405180910390a35061072f600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1674010000000000000000000000000000000000000000179055565b73ffffffffffffffffffffffffffffffffffffffff851660009081526004602052604090206001015485907c0100000000000000000000000000000000000000000000000000000000900460ff16610dbf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f436f6e74726163742069732064697361626c6564000000000000000000000000604482015260640161071d565b610dc761170f565b610df4600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff169055565b73ffffffffffffffffffffffffffffffffffffffff861660009081526004602052604090206001015474010000000000000000000000000000000000000000900467ffffffffffffffff16610ea5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f6465706f73697420746f6b656e206e6f742077686974656c6973746564000000604482015260640161071d565b6703782dace9d900008467ffffffffffffffff161115610f21576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f736c6f7752656c6179466565506374206d757374206265203c3d203235250000604482015260640161071d565b6703782dace9d900008367ffffffffffffffff161115610fc3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f696e7374616e7452656c6179466565506374206d757374206265203c3d20323560448201527f2500000000000000000000000000000000000000000000000000000000000000606482015260840161071d565b610fcf61025883611f41565b67ffffffffffffffff16610fe1610598565b1015801561100b5750610ff682610258611f6a565b67ffffffffffffffff16611008610598565b11155b611071576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f6465706f736974206d696e656420616674657220646561646c696e6500000000604482015260640161071d565b60025473ffffffffffffffffffffffffffffffffffffffff878116600090815260046020526040902054811691161480156110ac5750600034115b156111805784341461111a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f6d73672e76616c7565206d757374206d6174636820616d6f756e740000000000604482015260640161071d565b8573ffffffffffffffffffffffffffffffffffffffff1663d0e30db0346040518263ffffffff1660e01b81526004016000604051808303818588803b15801561116257600080fd5b505af1158015611176573d6000803e3d6000fd5b50505050506111a2565b6111a273ffffffffffffffffffffffffffffffffffffffff8716333088611795565b60015460035473ffffffffffffffffffffffffffffffffffffffff888116600081815260046020908152604091829020548251968752908601949094528b8316908501523360608501529116608083015260a082015260c0810186905267ffffffffffffffff80861660e083015280851661010083015283166101208201527fab77617f2b9bdbb101fc328e585470fb3c845c92b25c4b080cb7b66f7163cf72906101400160405180910390a16001600360008282546112629190611f96565b909155506112ac9050600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1674010000000000000000000000000000000000000000179055565b50505050505050565b60055468010000000000000000900473ffffffffffffffffffffffffffffffffffffffff166112e381611380565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611377576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f4f4e4c595f434f554e544552504152545f474154455741590000000000000000604482015260640161071d565b61072f8261182a565b600061093473111100000000000000000000000000000000111183611fae565b600580547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001667ffffffffffffffff83169081179091556040519081527f3f27163d4f4fe7a27a9d79683adf471b236f49fe9e8808717b3cc3c05a27611f9060200160405180910390a150565b60405180608001604052808473ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff168152602001611458610598565b67ffffffffffffffff90811682526001602092830181905273ffffffffffffffffffffffffffffffffffffffff868116600090815260048552604090819020865181547fffffffffffffffffffffffff0000000000000000000000000000000000000000169084161781559486015194909201805492860151606090960151949091167fffffffff0000000000000000000000000000000000000000000000000000000090921691909117740100000000000000000000000000000000000000009490921693909302177fffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff167c0100000000000000000000000000000000000000000000000000000000911515919091021790557f93f23add56b90352ea2ef3bc2123262792af300dc6060c99f6ee06a7026863bd8383611597610598565b6040805173ffffffffffffffffffffffffffffffffffffffff9485168152928416602084015267ffffffffffffffff90911690820152908316606082015260800160405180910390a1505050565b73ffffffffffffffffffffffffffffffffffffffff821660008181526004602090815260409182902060010180547fffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff167c0100000000000000000000000000000000000000000000000000000000861515908102919091179091558251938452908301527ff84482204ff927822d3068d71e16e14b51cb1b2adafa7d6e11edc1b8dfd8c0db910160405180910390a15050565b60055473ffffffffffffffffffffffffffffffffffffffff821660009081526004602052604081206001015490916116f69167ffffffffffffffff918216917401000000000000000000000000000000000000000090910416611f6a565b67ffffffffffffffff16611708610598565b1192915050565b60005474010000000000000000000000000000000000000000900460ff16611793576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161071d565b565b6040805173ffffffffffffffffffffffffffffffffffffffff85811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd00000000000000000000000000000000000000000000000000000000179052610800908590611929565b73ffffffffffffffffffffffffffffffffffffffff81166118a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600d60248201527f456d707479206164647265737300000000000000000000000000000000000000604482015260640161071d565b600580547fffffffff0000000000000000000000000000000000000000ffffffffffffffff166801000000000000000073ffffffffffffffffffffffffffffffffffffffff84811682029290921792839055604051920416907fa9e8c42c9e7fca7f62755189a16b2f5314d43d8fb24e91ba54e6d65f9314e84990600090a250565b600061198b826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff16611a359092919063ffffffff16565b8051909150156108d257808060200190518101906119a99190611fdd565b6108d2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f74207375636365656400000000000000000000000000000000000000000000606482015260840161071d565b6060611a448484600085611a4e565b90505b9392505050565b606082471015611ae0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c0000000000000000000000000000000000000000000000000000606482015260840161071d565b843b611b48576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161071d565b6000808673ffffffffffffffffffffffffffffffffffffffff168587604051611b719190611ffa565b60006040518083038185875af1925050503d8060008114611bae576040519150601f19603f3d011682016040523d82523d6000602084013e611bb3565b606091505b5091509150611bc3828286611bce565b979650505050505050565b60608315611bdd575081611a47565b825115611bed5782518084602001fd5b816040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161071d9190612016565b600060208284031215611c3357600080fd5b5035919050565b803567ffffffffffffffff81168114611c5257600080fd5b919050565b600060208284031215611c6957600080fd5b611a4782611c3a565b803573ffffffffffffffffffffffffffffffffffffffff81168114611c5257600080fd5b600080600060608486031215611cab57600080fd5b611cb484611c72565b9250611cc260208501611c72565b9150611cd060408501611c72565b90509250925092565b8015158114611ce757600080fd5b50565b60008060408385031215611cfd57600080fd5b611d0683611c72565b91506020830135611d1681611cd9565b809150509250929050565b600060208284031215611d3357600080fd5b611a4782611c72565b60008060408385031215611d4f57600080fd5b611d5883611c72565b9150602083013563ffffffff81168114611d1657600080fd5b60008060008060008060c08789031215611d8a57600080fd5b611d9387611c72565b9550611da160208801611c72565b945060408701359350611db660608801611c3a565b9250611dc460808801611c3a565b9150611dd260a08801611c3a565b90509295509295509295565b600060208284031215611df057600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60005b83811015611e41578181015183820152602001611e29565b838111156108005750506000910152565b600060208284031215611e6457600080fd5b815167ffffffffffffffff80821115611e7c57600080fd5b818401915084601f830112611e9057600080fd5b815181811115611ea257611ea2611df7565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908382118183101715611ee857611ee8611df7565b81604052828152876020848701011115611f0157600080fd5b611bc3836020830160208801611e26565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600067ffffffffffffffff83811690831681811015611f6257611f62611f12565b039392505050565b600067ffffffffffffffff808316818516808303821115611f8d57611f8d611f12565b01949350505050565b60008219821115611fa957611fa9611f12565b500190565b600073ffffffffffffffffffffffffffffffffffffffff808316818516808303821115611f8d57611f8d611f12565b600060208284031215611fef57600080fd5b8151611a4781611cd9565b6000825161200c818460208701611e26565b9190910192915050565b6020815260008251806020840152612035816040850160208701611e26565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016040019291505056fea26469706673582212206879f651a1ded06aa976c85f28b0500a44e7c6a812b3a840054191e1dd69dd7064736f6c63430008090033",
562
+ "linkReferences": {},
563
+ "deployedLinkReferences": {}
564
+ }
@@ -0,0 +1,4 @@
1
+ {
2
+ "_format": "hh-sol-dbg-1",
3
+ "buildInfo": "../../../../build-info/8e408b49e0ff2873bc28d45221a7ff71.json"
4
+ }