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