diff --git a/protocol-units/bridge/contracts/src/AtomicBridgeCounterpartyMOVE.sol b/protocol-units/bridge/contracts/src/AtomicBridgeCounterpartyMOVE.sol index b48b6f833..c38f835eb 100644 --- a/protocol-units/bridge/contracts/src/AtomicBridgeCounterpartyMOVE.sol +++ b/protocol-units/bridge/contracts/src/AtomicBridgeCounterpartyMOVE.sol @@ -1,12 +1,12 @@ // SPDX-License-Identifier: MIT pragma solidity ^0.8.22; -import {OwnableUpgradeable} from "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol"; +import {AccessControlUpgradeable} from "@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol"; import {IAtomicBridgeCounterpartyMOVE} from "./IAtomicBridgeCounterpartyMOVE.sol"; import {AtomicBridgeInitiatorMOVE} from "./AtomicBridgeInitiatorMOVE.sol"; import {RateLimiter} from "./RateLimiter.sol"; -contract AtomicBridgeCounterpartyMOVE is IAtomicBridgeCounterpartyMOVE, OwnableUpgradeable { +contract AtomicBridgeCounterpartyMOVE is IAtomicBridgeCounterpartyMOVE, AccessControlUpgradeable { enum MessageState { PENDING, COMPLETED, @@ -29,25 +29,41 @@ contract AtomicBridgeCounterpartyMOVE is IAtomicBridgeCounterpartyMOVE, OwnableU // Configurable time lock duration uint256 public counterpartyTimeLockDuration; - function initialize(address _atomicBridgeInitiator, address owner, uint256 _timeLockDuration) public initializer { + bytes32 public constant RELAYER_ROLE = keccak256("RELAYER_ROLE"); + bytes32 public constant REFUNDER_ROLE = keccak256("REFUNDER_ROLE"); + + // Prevents initialization of implementation contract exploits + constructor() { + _disableInitializers(); + } + + function initialize( + address _atomicBridgeInitiator, + address _owner, + address _relayer, + address _refunder, + uint256 _timeLockDuration + ) public initializer { if (_atomicBridgeInitiator == address(0)) revert ZeroAddress(); atomicBridgeInitiatorMOVE = AtomicBridgeInitiatorMOVE(_atomicBridgeInitiator); - __Ownable_init(owner); + _grantRole(DEFAULT_ADMIN_ROLE, _owner); + _grantRole(RELAYER_ROLE, _relayer); + _grantRole(REFUNDER_ROLE, _refunder); // Set the configurable time lock duration counterpartyTimeLockDuration = _timeLockDuration; } - function setAtomicBridgeInitiator(address _atomicBridgeInitiator) external onlyOwner { + function setAtomicBridgeInitiator(address _atomicBridgeInitiator) external onlyRole(DEFAULT_ADMIN_ROLE) { if (_atomicBridgeInitiator == address(0)) revert ZeroAddress(); atomicBridgeInitiatorMOVE = AtomicBridgeInitiatorMOVE(_atomicBridgeInitiator); } - function setTimeLockDuration(uint256 _timeLockDuration) external onlyOwner { + function setTimeLockDuration(uint256 _timeLockDuration) external onlyRole(DEFAULT_ADMIN_ROLE) { counterpartyTimeLockDuration = _timeLockDuration; } - function setRateLimiter(address _rateLimiter) external onlyOwner { + function setRateLimiter(address _rateLimiter) external onlyRole(DEFAULT_ADMIN_ROLE) { if (_rateLimiter == address(0)) revert ZeroAddress(); rateLimiter = RateLimiter(_rateLimiter); } @@ -58,9 +74,8 @@ contract AtomicBridgeCounterpartyMOVE is IAtomicBridgeCounterpartyMOVE, OwnableU bytes32 hashLock, address recipient, uint256 amount - ) external onlyOwner { + ) external onlyRole(RELAYER_ROLE) { if (amount == 0) revert ZeroAmount(); - // The time lock is now based on the configurable duration uint256 timeLock = block.timestamp + counterpartyTimeLockDuration; @@ -88,7 +103,7 @@ contract AtomicBridgeCounterpartyMOVE is IAtomicBridgeCounterpartyMOVE, OwnableU emit BridgeTransferCompleted(bridgeTransferId, preImage); } - function abortBridgeTransfer(bytes32 bridgeTransferId) external onlyOwner { + function abortBridgeTransfer(bytes32 bridgeTransferId) external onlyRole(REFUNDER_ROLE) { BridgeTransferDetails storage details = bridgeTransfers[bridgeTransferId]; if (details.state != MessageState.PENDING) revert BridgeTransferStateNotPending(); if (block.timestamp <= details.timeLock) revert TimeLockNotExpired(); diff --git a/protocol-units/bridge/contracts/src/AtomicBridgeInitiatorMOVE.sol b/protocol-units/bridge/contracts/src/AtomicBridgeInitiatorMOVE.sol index 3bff65592..57cf57f7e 100644 --- a/protocol-units/bridge/contracts/src/AtomicBridgeInitiatorMOVE.sol +++ b/protocol-units/bridge/contracts/src/AtomicBridgeInitiatorMOVE.sol @@ -2,12 +2,11 @@ pragma solidity ^0.8.22; import {IAtomicBridgeInitiatorMOVE} from "./IAtomicBridgeInitiatorMOVE.sol"; -import {MockMOVEToken} from "./MockMOVEToken.sol"; -import {OwnableUpgradeable} from "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol"; -import {ERC20Upgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol"; +import {AccessControlUpgradeable} from "@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol"; +import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; import {RateLimiter} from "./RateLimiter.sol"; -contract AtomicBridgeInitiatorMOVE is IAtomicBridgeInitiatorMOVE, OwnableUpgradeable { +contract AtomicBridgeInitiatorMOVE is IAtomicBridgeInitiatorMOVE, AccessControlUpgradeable { enum MessageState { INITIALIZED, COMPLETED, @@ -26,41 +25,49 @@ contract AtomicBridgeInitiatorMOVE is IAtomicBridgeInitiatorMOVE, OwnableUpgrade // Mapping of bridge transfer ids to BridgeTransfer structs mapping(bytes32 => BridgeTransfer) public bridgeTransfers; - // Total MOVE token pool balance - uint256 public poolBalance; - address public counterpartyAddress; RateLimiter public rateLimiter; - ERC20Upgradeable public moveToken; + IERC20 public moveToken; uint256 private nonce; // Configurable time lock duration uint256 public initiatorTimeLockDuration; - // Initialize the contract with MOVE token address, owner, custom time lock duration, and initial pool balance + bytes32 public constant RELAYER_ROLE = keccak256("RELAYER_ROLE"); + bytes32 public constant REFUNDER_ROLE = keccak256("REFUNDER_ROLE"); + + // Prevents initialization of implementation contract exploits + constructor() { + _disableInitializers(); + } + + // Initialize the contract with MOVE token address, owner, and custom time lock duration function initialize( address _moveToken, - address owner, - uint256 _timeLockDuration, - uint256 _initialPoolBalance + address _owner, + address _relayer, + address _refunder, + uint256 _timeLockDuration ) public initializer { - require(_moveToken != address(0) && owner != address(0), "ZeroAddress"); - moveToken = ERC20Upgradeable(_moveToken); - __Ownable_init(owner); + if (_moveToken == address(0) && _owner == address(0) && _relayer == address(0) && _refunder == address(0)) { + revert ZeroAddress(); + } + require(_timeLockDuration > 0, ZeroAmount()); + moveToken = IERC20(_moveToken); + _grantRole(DEFAULT_ADMIN_ROLE, _owner); + _grantRole(RELAYER_ROLE, _relayer); + _grantRole(REFUNDER_ROLE, _refunder); // Set the custom time lock duration initiatorTimeLockDuration = _timeLockDuration; - - // Set the initial pool balance - poolBalance = _initialPoolBalance; } - function setCounterpartyAddress(address _counterpartyAddress) external onlyOwner { + function setCounterpartyAddress(address _counterpartyAddress) external onlyRole(DEFAULT_ADMIN_ROLE) { require(_counterpartyAddress != address(0), "ZeroAddress"); counterpartyAddress = _counterpartyAddress; } - function setRateLimiter(address _rateLimiter) external onlyOwner { + function setRateLimiter(address _rateLimiter) external onlyRole(DEFAULT_ADMIN_ROLE) { if (_rateLimiter == address(0)) revert ZeroAddress(); rateLimiter = RateLimiter(_rateLimiter); } @@ -72,7 +79,7 @@ contract AtomicBridgeInitiatorMOVE is IAtomicBridgeInitiatorMOVE, OwnableUpgrade rateLimiter.rateLimitOutbound(moveAmount); address originator = msg.sender; - require(moveAmount > 0, "ZeroAmount"); + require(moveAmount > 0, ZeroAmount()); // Ensure there is a valid amount if (moveAmount == 0) { @@ -84,9 +91,6 @@ contract AtomicBridgeInitiatorMOVE is IAtomicBridgeInitiatorMOVE, OwnableUpgrade revert MOVETransferFailed(); } - // Update the pool balance - poolBalance += moveAmount; - // Generate a unique nonce to prevent replay attacks, and generate a transfer ID bridgeTransferId = keccak256(abi.encodePacked(originator, recipient, hashLock, initiatorTimeLockDuration, block.timestamp, nonce++)); @@ -103,7 +107,7 @@ contract AtomicBridgeInitiatorMOVE is IAtomicBridgeInitiatorMOVE, OwnableUpgrade return bridgeTransferId; } - function completeBridgeTransfer(bytes32 bridgeTransferId, bytes32 preImage) external onlyOwner { + function completeBridgeTransfer(bytes32 bridgeTransferId, bytes32 preImage) external onlyRole(RELAYER_ROLE) { BridgeTransfer storage bridgeTransfer = bridgeTransfers[bridgeTransferId]; rateLimiter.rateLimitInbound(bridgeTransfer.amount); @@ -116,7 +120,7 @@ contract AtomicBridgeInitiatorMOVE is IAtomicBridgeInitiatorMOVE, OwnableUpgrade emit BridgeTransferCompleted(bridgeTransferId, preImage); } - function refundBridgeTransfer(bytes32 bridgeTransferId) external onlyOwner { + function refundBridgeTransfer(bytes32 bridgeTransferId) external onlyRole(REFUNDER_ROLE) { BridgeTransfer storage bridgeTransfer = bridgeTransfers[bridgeTransferId]; rateLimiter.rateLimitInbound(bridgeTransfer.amount); require(bridgeTransfer.state == MessageState.INITIALIZED, "BridgeTransferStateNotInitialized"); @@ -131,8 +135,6 @@ contract AtomicBridgeInitiatorMOVE is IAtomicBridgeInitiatorMOVE, OwnableUpgrade function withdrawMOVE(address recipient, uint256 amount) external { if (msg.sender != counterpartyAddress) revert Unauthorized(); - if (poolBalance < amount) revert InsufficientMOVEBalance(); - poolBalance -= amount; if (!moveToken.transfer(recipient, amount)) revert MOVETransferFailed(); } } diff --git a/protocol-units/bridge/contracts/src/IAtomicBridgeCounterpartyMOVE.sol b/protocol-units/bridge/contracts/src/IAtomicBridgeCounterpartyMOVE.sol index 8d531c00f..73ac14900 100644 --- a/protocol-units/bridge/contracts/src/IAtomicBridgeCounterpartyMOVE.sol +++ b/protocol-units/bridge/contracts/src/IAtomicBridgeCounterpartyMOVE.sol @@ -31,7 +31,7 @@ interface IAtomicBridgeCounterpartyMOVE { * @param bridgeTransferId A unique id representing this BridgeTransfer * @param hashLock The hash of the secret (HASH) that will unlock the funds * @param recipient The address to which to transfer the funds - * @param amount The amount of WETH to lock + * @param amount The amount of MOVE to lock * */ function lockBridgeTransfer( @@ -43,7 +43,7 @@ interface IAtomicBridgeCounterpartyMOVE { ) external; /** - * @dev Completes the bridge transfer and withdraws WETH to the recipient + * @dev Completes the bridge transfer and withdraws MOVE to the recipient * @param bridgeTransferId Unique identifier for the BridgeTransfer * @param preImage The secret that unlocks the funds * diff --git a/protocol-units/bridge/contracts/src/IAtomicBridgeInitiatorMOVE.sol b/protocol-units/bridge/contracts/src/IAtomicBridgeInitiatorMOVE.sol index 45ffc2c61..1da8650a0 100644 --- a/protocol-units/bridge/contracts/src/IAtomicBridgeInitiatorMOVE.sol +++ b/protocol-units/bridge/contracts/src/IAtomicBridgeInitiatorMOVE.sol @@ -30,14 +30,14 @@ interface IAtomicBridgeInitiatorMOVE { /** - * @dev Creates a new atomic bridge transfer using native ETH - * @param _wethAmount The amount of WETH to send + * @dev Creates a new atomic bridge transfer using MOVE tokens + * @param _amount The amount of MOVE to send * @param _recipient The address on the other chain to which to transfer the funds * @param _hashLock The hash of the secret (HASH) that will unlock the funds * @return _bridgeTransferId A unique id representing this BridgeTransfer * */ - function initiateBridgeTransfer(uint256 _wethAmount, bytes32 _recipient, bytes32 _hashLock) + function initiateBridgeTransfer(uint256 _amount, bytes32 _recipient, bytes32 _hashLock) external returns (bytes32 _bridgeTransferId); diff --git a/protocol-units/bridge/contracts/test/AtomicBridgeCounterpartyMOVE.t.sol b/protocol-units/bridge/contracts/test/AtomicBridgeCounterpartyMOVE.t.sol index 91cbe7e17..4c6de806d 100644 --- a/protocol-units/bridge/contracts/test/AtomicBridgeCounterpartyMOVE.t.sol +++ b/protocol-units/bridge/contracts/test/AtomicBridgeCounterpartyMOVE.t.sol @@ -53,11 +53,12 @@ contract AtomicBridgeCounterpartyMOVETest is Test { address(atomicBridgeInitiatorMOVEImplementation), address(deployer), abi.encodeWithSignature( - "initialize(address,address,uint256,uint256)", + "initialize(address,address,address,address,uint256)", address(moveToken), deployer, - initiatorTimeLockDuration, - 0 ether // Initial pool balance + deployer, + deployer, + initiatorTimeLockDuration ) ); atomicBridgeInitiatorMOVE = AtomicBridgeInitiatorMOVE(address(proxy)); @@ -68,9 +69,11 @@ contract AtomicBridgeCounterpartyMOVETest is Test { address(atomicBridgeCounterpartyMOVEImplementation), address(deployer), abi.encodeWithSignature( - "initialize(address,address,uint256)", + "initialize(address,address,address,address,uint256)", address(atomicBridgeInitiatorMOVE), deployer, + deployer, + deployer, counterpartyTimeLockDuration ) ); diff --git a/protocol-units/bridge/contracts/test/AtomicBridgeInitiatorMOVE.t.sol b/protocol-units/bridge/contracts/test/AtomicBridgeInitiatorMOVE.t.sol index 4da72b316..8d7821225 100644 --- a/protocol-units/bridge/contracts/test/AtomicBridgeInitiatorMOVE.t.sol +++ b/protocol-units/bridge/contracts/test/AtomicBridgeInitiatorMOVE.t.sol @@ -3,12 +3,14 @@ pragma solidity ^0.8.22; pragma abicoder v2; import {Test, console} from "forge-std/Test.sol"; -import {AtomicBridgeInitiatorMOVE, IAtomicBridgeInitiatorMOVE, OwnableUpgradeable} from "../src/AtomicBridgeInitiatorMOVE.sol"; +import {AtomicBridgeInitiatorMOVE, IAtomicBridgeInitiatorMOVE} from "../src/AtomicBridgeInitiatorMOVE.sol"; +import {AccessControlUpgradeable, IAccessControl} from "@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol"; import {ProxyAdmin} from "@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol"; import {TransparentUpgradeableProxy} from "@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol"; import {MockMOVEToken} from "../src/MockMOVEToken.sol"; import {RateLimiter} from "../src/RateLimiter.sol"; + contract AtomicBridgeInitiatorMOVETest is Test { AtomicBridgeInitiatorMOVE public atomicBridgeInitiatorImplementation; MockMOVEToken public moveToken; @@ -40,11 +42,12 @@ contract AtomicBridgeInitiatorMOVETest is Test { address(atomicBridgeInitiatorImplementation), address(proxyAdmin), abi.encodeWithSignature( - "initialize(address,address,uint256,uint256)", + "initialize(address,address,address,address,uint256)", address(moveToken), - address(this), - timeLockDuration, - 0 ether + address(this), + address(this), + address(this), + timeLockDuration ) ); @@ -178,7 +181,7 @@ contract AtomicBridgeInitiatorMOVETest is Test { // Test that a non-owner cannot call refund vm.startPrank(originator); - vm.expectRevert(abi.encodeWithSelector(OwnableUpgradeable.OwnableUnauthorizedAccount.selector, originator)); + vm.expectRevert(abi.encodeWithSelector(IAccessControl.AccessControlUnauthorizedAccount.selector, originator, keccak256("REFUNDER_ROLE"))); atomicBridgeInitiatorMOVE.refundBridgeTransfer(bridgeTransferId); vm.stopPrank(); diff --git a/protocol-units/bridge/service/abis/AtomicBridgeCounterpartyMOVE.json b/protocol-units/bridge/service/abis/AtomicBridgeCounterpartyMOVE.json index bb11c3b16..622915863 100644 --- a/protocol-units/bridge/service/abis/AtomicBridgeCounterpartyMOVE.json +++ b/protocol-units/bridge/service/abis/AtomicBridgeCounterpartyMOVE.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"abortBridgeTransfer","inputs":[{"name":"bridgeTransferId","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"atomicBridgeInitiatorMOVE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract AtomicBridgeInitiatorMOVE"}],"stateMutability":"view"},{"type":"function","name":"bridgeTransfers","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"originator","type":"bytes32","internalType":"bytes32"},{"name":"recipient","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"hashLock","type":"bytes32","internalType":"bytes32"},{"name":"timeLock","type":"uint256","internalType":"uint256"},{"name":"state","type":"uint8","internalType":"enum AtomicBridgeCounterpartyMOVE.MessageState"}],"stateMutability":"view"},{"type":"function","name":"completeBridgeTransfer","inputs":[{"name":"bridgeTransferId","type":"bytes32","internalType":"bytes32"},{"name":"preImage","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"counterpartyTimeLockDuration","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"_atomicBridgeInitiator","type":"address","internalType":"address"},{"name":"owner","type":"address","internalType":"address"},{"name":"_timeLockDuration","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"lockBridgeTransfer","inputs":[{"name":"originator","type":"bytes32","internalType":"bytes32"},{"name":"bridgeTransferId","type":"bytes32","internalType":"bytes32"},{"name":"hashLock","type":"bytes32","internalType":"bytes32"},{"name":"recipient","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setAtomicBridgeInitiator","inputs":[{"name":"_atomicBridgeInitiator","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setTimeLockDuration","inputs":[{"name":"_timeLockDuration","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"BridgeTransferAborted","inputs":[{"name":"bridgeTransferId","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"BridgeTransferCompleted","inputs":[{"name":"bridgeTransferId","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"pre_image","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"BridgeTransferLocked","inputs":[{"name":"bridgeTransferId","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"recipient","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"hashLock","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"timeLock","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"BridgeTransferHasBeenCompleted","inputs":[]},{"type":"error","name":"BridgeTransferInvalid","inputs":[]},{"type":"error","name":"BridgeTransferStateNotInitialized","inputs":[]},{"type":"error","name":"BridgeTransferStateNotPending","inputs":[]},{"type":"error","name":"InsufficientMOVEBalance","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"InvalidSecret","inputs":[]},{"type":"error","name":"MOVETransferFailed","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"TimeLockExpired","inputs":[]},{"type":"error","name":"TimeLockNotExpired","inputs":[]},{"type":"error","name":"Unauthorized","inputs":[]},{"type":"error","name":"ZeroAddress","inputs":[]},{"type":"error","name":"ZeroAmount","inputs":[]}],"bytecode":{"object":"0x6080604052348015600e575f80fd5b50610a1a8061001c5f395ff3fe608060405234801561000f575f80fd5b50600436106100b1575f3560e01c80638da5cb5b1161006e5780638da5cb5b1461013a57806396d17d491461016a5780639f8f879914610181578063c95b659f14610194578063e0d9cbc4146101a7578063f2fde38b14610209575f80fd5b80631794bb3c146100b557806327b3ea07146100ca5780633b9b4640146100dd57806371115eb21461010c578063715018a61461011f5780637ce0874814610127575b5f80fd5b6100c86100c336600461087f565b61021c565b005b6100c86100d83660046108b9565b610372565b5f546100ef906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6100c861011a3660046108fc565b6104d3565b6100c86104e0565b6100c8610135366004610913565b6104f3565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b03166100ef565b61017360025481565b604051908152602001610103565b6100c861018f366004610933565b610543565b6100c86101a23660046108fc565b610647565b6101f76101b53660046108fc565b600160208190525f91825260409091208054918101546002820154600383015460048401546005909401546001600160a01b0390931693919290919060ff1686565b60405161010396959493929190610967565b6100c8610217366004610913565b6106f5565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff16159067ffffffffffffffff165f811580156102615750825b90505f8267ffffffffffffffff16600114801561027d5750303b155b90508115801561028b575080155b156102a95760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff1916600117855583156102d357845460ff60401b1916600160401b1785555b6001600160a01b0388166102fa5760405163d92e233d60e01b815260040160405180910390fd5b5f80546001600160a01b0319166001600160a01b038a1617905561031d87610737565b6002869055831561036857845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050505050565b61037a610748565b805f0361039a57604051631f2a200560e01b815260040160405180910390fd5b5f600254426103a991906109bf565b90506040518060c00160405280878152602001846001600160a01b031681526020018381526020018581526020018281526020015f60028111156103ef576103ef610953565b90525f86815260016020818152604092839020845181559084015181830180546001600160a01b0319166001600160a01b0390921691909117905591830151600280840191909155606084015160038401556080840151600484015560a08401516005840180549193909260ff1990921691849081111561047257610472610953565b0217905550506002546040805185815260208101889052908101919091526001600160a01b038516915086907fa03230f5967404ba170c5be8445486911e87267000597e4ba9ed9d4b014fa4bd9060600160405180910390a3505050505050565b6104db610748565b600255565b6104e8610748565b6104f15f6107a3565b565b6104fb610748565b6001600160a01b0381166105225760405163d92e233d60e01b815260040160405180910390fd5b5f80546001600160a01b0319166001600160a01b0392909216919091179055565b5f82815260016020526040812090600582015460ff16600281111561056a5761056a610953565b146105885760405163a92c04c760e01b815260040160405180910390fd5b5f8260405160200161059c91815260200190565b604051602081830303815290604052805190602001209050816003015481146105d85760405163abab6bd760e01b815260040160405180910390fd5b81600401544211156105fd5760405163179a39d160e01b815260040160405180910390fd5b60058201805460ff1916600117905560405183815284907f05ddc886acde01b77731bfad1dcfb6abf529f05c28ea66556fe87429bb2789ea9060200160405180910390a250505050565b61064f610748565b5f81815260016020526040812090600582015460ff16600281111561067657610676610953565b146106945760405163a92c04c760e01b815260040160405180910390fd5b806004015442116106b85760405163191f4d1b60e31b815260040160405180910390fd5b60058101805460ff1916600217905560405182907f9b398e0a546c4aa218ac0b98f5e2196a7aff605b50c19eb795f9cb3b2f5d5b55905f90a25050565b6106fd610748565b6001600160a01b03811661072b57604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b610734816107a3565b50565b61073f610813565b6107348161085c565b3361077a7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316146104f15760405163118cdaa760e01b8152336004820152602401610722565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff166104f157604051631afcd79f60e31b815260040160405180910390fd5b6106fd610813565b80356001600160a01b038116811461087a575f80fd5b919050565b5f805f60608486031215610891575f80fd5b61089a84610864565b92506108a860208501610864565b929592945050506040919091013590565b5f805f805f60a086880312156108cd575f80fd5b8535945060208601359350604086013592506108eb60608701610864565b949793965091946080013592915050565b5f6020828403121561090c575f80fd5b5035919050565b5f60208284031215610923575f80fd5b61092c82610864565b9392505050565b5f8060408385031215610944575f80fd5b50508035926020909101359150565b634e487b7160e01b5f52602160045260245ffd5b8681526001600160a01b038616602082015260408101859052606081018490526080810183905260c08101600383106109ae57634e487b7160e01b5f52602160045260245ffd5b8260a0830152979650505050505050565b808201808211156109de57634e487b7160e01b5f52601160045260245ffd5b9291505056fea26469706673582212201cf10841a18016e56cd91bcf2a5fb41a20b61d49418de88247d723340792edf864736f6c634300081a0033","sourceMap":"319:3265:42:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f80fd5b50600436106100b1575f3560e01c80638da5cb5b1161006e5780638da5cb5b1461013a57806396d17d491461016a5780639f8f879914610181578063c95b659f14610194578063e0d9cbc4146101a7578063f2fde38b14610209575f80fd5b80631794bb3c146100b557806327b3ea07146100ca5780633b9b4640146100dd57806371115eb21461010c578063715018a61461011f5780637ce0874814610127575b5f80fd5b6100c86100c336600461087f565b61021c565b005b6100c86100d83660046108b9565b610372565b5f546100ef906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6100c861011a3660046108fc565b6104d3565b6100c86104e0565b6100c8610135366004610913565b6104f3565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b03166100ef565b61017360025481565b604051908152602001610103565b6100c861018f366004610933565b610543565b6100c86101a23660046108fc565b610647565b6101f76101b53660046108fc565b600160208190525f91825260409091208054918101546002820154600383015460048401546005909401546001600160a01b0390931693919290919060ff1686565b60405161010396959493929190610967565b6100c8610217366004610913565b6106f5565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff16159067ffffffffffffffff165f811580156102615750825b90505f8267ffffffffffffffff16600114801561027d5750303b155b90508115801561028b575080155b156102a95760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff1916600117855583156102d357845460ff60401b1916600160401b1785555b6001600160a01b0388166102fa5760405163d92e233d60e01b815260040160405180910390fd5b5f80546001600160a01b0319166001600160a01b038a1617905561031d87610737565b6002869055831561036857845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050505050565b61037a610748565b805f0361039a57604051631f2a200560e01b815260040160405180910390fd5b5f600254426103a991906109bf565b90506040518060c00160405280878152602001846001600160a01b031681526020018381526020018581526020018281526020015f60028111156103ef576103ef610953565b90525f86815260016020818152604092839020845181559084015181830180546001600160a01b0319166001600160a01b0390921691909117905591830151600280840191909155606084015160038401556080840151600484015560a08401516005840180549193909260ff1990921691849081111561047257610472610953565b0217905550506002546040805185815260208101889052908101919091526001600160a01b038516915086907fa03230f5967404ba170c5be8445486911e87267000597e4ba9ed9d4b014fa4bd9060600160405180910390a3505050505050565b6104db610748565b600255565b6104e8610748565b6104f15f6107a3565b565b6104fb610748565b6001600160a01b0381166105225760405163d92e233d60e01b815260040160405180910390fd5b5f80546001600160a01b0319166001600160a01b0392909216919091179055565b5f82815260016020526040812090600582015460ff16600281111561056a5761056a610953565b146105885760405163a92c04c760e01b815260040160405180910390fd5b5f8260405160200161059c91815260200190565b604051602081830303815290604052805190602001209050816003015481146105d85760405163abab6bd760e01b815260040160405180910390fd5b81600401544211156105fd5760405163179a39d160e01b815260040160405180910390fd5b60058201805460ff1916600117905560405183815284907f05ddc886acde01b77731bfad1dcfb6abf529f05c28ea66556fe87429bb2789ea9060200160405180910390a250505050565b61064f610748565b5f81815260016020526040812090600582015460ff16600281111561067657610676610953565b146106945760405163a92c04c760e01b815260040160405180910390fd5b806004015442116106b85760405163191f4d1b60e31b815260040160405180910390fd5b60058101805460ff1916600217905560405182907f9b398e0a546c4aa218ac0b98f5e2196a7aff605b50c19eb795f9cb3b2f5d5b55905f90a25050565b6106fd610748565b6001600160a01b03811661072b57604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b610734816107a3565b50565b61073f610813565b6107348161085c565b3361077a7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316146104f15760405163118cdaa760e01b8152336004820152602401610722565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff166104f157604051631afcd79f60e31b815260040160405180910390fd5b6106fd610813565b80356001600160a01b038116811461087a575f80fd5b919050565b5f805f60608486031215610891575f80fd5b61089a84610864565b92506108a860208501610864565b929592945050506040919091013590565b5f805f805f60a086880312156108cd575f80fd5b8535945060208601359350604086013592506108eb60608701610864565b949793965091946080013592915050565b5f6020828403121561090c575f80fd5b5035919050565b5f60208284031215610923575f80fd5b61092c82610864565b9392505050565b5f8060408385031215610944575f80fd5b50508035926020909101359150565b634e487b7160e01b5f52602160045260245ffd5b8681526001600160a01b038616602082015260408101859052606081018490526080810183905260c08101600383106109ae57634e487b7160e01b5f52602160045260245ffd5b8260a0830152979650505050505050565b808201808211156109de57634e487b7160e01b5f52601160045260245ffd5b9291505056fea26469706673582212201cf10841a18016e56cd91bcf2a5fb41a20b61d49418de88247d723340792edf864736f6c634300081a0033","sourceMap":"319:3265:42:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;925:420;;;;;;:::i;:::-;;:::i;:::-;;1754:784;;;;;;:::i;:::-;;:::i;701:58::-;;;;;-1:-1:-1;;;;;701:58:42;;;;;;-1:-1:-1;;;;;1437:32:49;;;1419:51;;1407:2;1392:18;701:58:42;;;;;;;;1608:140;;;;;;:::i;:::-;;:::i;3155:101:23:-;;;:::i;1351:251:42:-;;;;;;:::i;:::-;;:::i;2441:144:23:-;1313:22;2570:8;-1:-1:-1;;;;;2570:8:23;2441:144;;875:43:42;;;;;;;;;2257:25:49;;;2245:2;2230:18;875:43:42;2111:177:49;2544:596:42;;;;;;:::i;:::-;;:::i;3146:436::-;;;;;;:::i;:::-;;:::i;765:64::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;765:64:42;;;;;;;;;;;;;;;;;;;;;;;;;:::i;3405:215:23:-;;;;;;:::i;:::-;;:::i;925:420:42:-;8870:21:24;4302:15;;-1:-1:-1;;;4302:15:24;;;;4301:16;;4348:14;;4158:30;4726:16;;:34;;;;;4746:14;4726:34;4706:54;;4770:17;4790:11;:16;;4805:1;4790:16;:50;;;;-1:-1:-1;4818:4:24;4810:25;:30;4790:50;4770:70;;4856:12;4855:13;:30;;;;;4873:12;4872:13;4855:30;4851:91;;;4908:23;;-1:-1:-1;;;4908:23:24;;;;;;;;;;;4851:91;4951:18;;-1:-1:-1;;4951:18:24;4968:1;4951:18;;;4979:67;;;;5013:22;;-1:-1:-1;;;;5013:22:24;-1:-1:-1;;;5013:22:24;;;4979:67;-1:-1:-1;;;;;1052:36:42;::::1;1048:62;;1097:13;;-1:-1:-1::0;;;1097:13:42::1;;;;;;;;;;;1048:62;1120:25;:77:::0;;-1:-1:-1;;;;;;1120:77:42::1;-1:-1:-1::0;;;;;1120:77:42;::::1;;::::0;;1207:21:::1;1222:5:::0;1207:14:::1;:21::i;:::-;1290:28;:48:::0;;;5066:101:24;;;;5100:23;;-1:-1:-1;;;;5100:23:24;;;5142:14;;-1:-1:-1;3895:50:49;;5142:14:24;;3883:2:49;3868:18;5142:14:24;;;;;;;5066:101;4092:1081;;;;;925:420:42;;;:::o;1754:784::-;2334:13:23;:11;:13::i;:::-;1960:6:42::1;1970:1;1960:11:::0;1956:36:::1;;1980:12;;-1:-1:-1::0;;;1980:12:42::1;;;;;;;;;;;1956:36;2070:16;2107:28;;2089:15;:46;;;;:::i;:::-;2070:65;;2182:236;;;;;;;;2264:10;2182:236;;;;2229:9;-1:-1:-1::0;;;;;2182:236:42::1;;;;;2296:6;2182:236;;;;2326:8;2182:236;;;;2358:8;2182:236;;;;2387:20;2182:236;;;;;;;;:::i;:::-;::::0;;2146:33:::1;::::0;;;:15:::1;:33;::::0;;;;;;;;:272;;;;;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;;;;;;2146:272:42::1;-1:-1:-1::0;;;;;2146:272:42;;::::1;::::0;;;::::1;::::0;;;;::::1;::::0;::::1;::::0;;::::1;::::0;;;;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;;2146:272:42;;::::1;::::0;;;;::::1;;;;;;:::i;:::-;;;::::0;;-1:-1:-1;;2502:28:42::1;::::0;2434:97:::1;::::0;;4385:25:49;;;4441:2;4426:18;;4419:34;;;4469:18;;;4462:34;;;;-1:-1:-1;;;;;2434:97:42;::::1;::::0;-1:-1:-1;2455:16:42;;2434:97:::1;::::0;4373:2:49;4358:18;2434:97:42::1;;;;;;;1946:592;1754:784:::0;;;;;:::o;1608:140::-;2334:13:23;:11;:13::i;:::-;1693:28:42::1;:48:::0;1608:140::o;3155:101:23:-;2334:13;:11;:13::i;:::-;3219:30:::1;3246:1;3219:18;:30::i;:::-;3155:101::o:0;1351:251:42:-;2334:13:23;:11;:13::i;:::-;-1:-1:-1;;;;;1450:36:42;::::1;1446:62;;1495:13;;-1:-1:-1::0;;;1495:13:42::1;;;;;;;;;;;1446:62;1518:25;:77:::0;;-1:-1:-1;;;;;;1518:77:42::1;-1:-1:-1::0;;;;;1518:77:42;;;::::1;::::0;;;::::1;::::0;;1351:251::o;2544:596::-;2639:37;2679:33;;;:15;:33;;;;;;2726:13;;;;;;:37;;;;;;;;:::i;:::-;;2722:81;;2772:31;;-1:-1:-1;;;2772:31:42;;;;;;;;;;;2722:81;2813:20;2863:8;2846:26;;;;;;4636:19:49;;4680:2;4671:12;;4507:182;2846:26:42;;;;;;;;;;;;;2836:37;;;;;;2813:60;;2903:7;:16;;;2887:12;:32;2883:60;;2928:15;;-1:-1:-1;;;2928:15:42;;;;;;;;;;;2883:60;2975:7;:16;;;2957:15;:34;2953:64;;;3000:17;;-1:-1:-1;;;3000:17:42;;;;;;;;;;;2953:64;3028:13;;;:38;;-1:-1:-1;;3028:38:42;3044:22;3028:38;;;3082:51;;2257:25:49;;;3106:16:42;;3082:51;;2245:2:49;2230:18;3082:51:42;;;;;;;2629:511;;2544:596;;:::o;3146:436::-;2334:13:23;:11;:13::i;:::-;3230:37:42::1;3270:33:::0;;;:15:::1;:33;::::0;;;;;3317:13:::1;::::0;::::1;::::0;::::1;;:37;::::0;::::1;;;;;;:::i;:::-;;3313:81;;3363:31;;-1:-1:-1::0;;;3363:31:42::1;;;;;;;;;;;3313:81;3427:7;:16;;;3408:15;:35;3404:68;;3452:20;;-1:-1:-1::0;;;3452:20:42::1;;;;;;;;;;;3404:68;3483:13;::::0;::::1;:37:::0;;-1:-1:-1;;3483:37:42::1;3499:21;3483:37;::::0;;3536:39:::1;::::0;3558:16;;3536:39:::1;::::0;-1:-1:-1;;3536:39:42::1;3220:362;3146:436:::0;:::o;3405:215:23:-;2334:13;:11;:13::i;:::-;-1:-1:-1;;;;;3489:22:23;::::1;3485:91;;3534:31;::::0;-1:-1:-1;;;3534:31:23;;3562:1:::1;3534:31;::::0;::::1;1419:51:49::0;1392:18;;3534:31:23::1;;;;;;;;3485:91;3585:28;3604:8;3585:18;:28::i;:::-;3405:215:::0;:::o;1847:127::-;6931:20:24;:18;:20::i;:::-;1929:38:23::1;1954:12;1929:24;:38::i;2658:162::-:0;966:10:26;2717:7:23;1313:22;2570:8;-1:-1:-1;;;;;2570:8:23;;2441:144;2717:7;-1:-1:-1;;;;;2717:23:23;;2713:101;;2763:40;;-1:-1:-1;;;2763:40:23;;966:10:26;2763:40:23;;;1419:51:49;1392:18;;2763:40:23;1238:238:49;3774:248:23;1313:22;3923:8;;-1:-1:-1;;;;;;3941:19:23;;-1:-1:-1;;;;;3941:19:23;;;;;;;;3975:40;;3923:8;;;;;3975:40;;3847:24;;3975:40;3837:185;;3774:248;:::o;7084:141:24:-;8870:21;8560:40;-1:-1:-1;;;8560:40:24;;;;7146:73;;7191:17;;-1:-1:-1;;;7191:17:24;;;;;;;;;;;1980:235:23;6931:20:24;:18;:20::i;14:173:49:-;82:20;;-1:-1:-1;;;;;131:31:49;;121:42;;111:70;;177:1;174;167:12;111:70;14:173;;;:::o;192:374::-;269:6;277;285;338:2;326:9;317:7;313:23;309:32;306:52;;;354:1;351;344:12;306:52;377:29;396:9;377:29;:::i;:::-;367:39;;425:38;459:2;448:9;444:18;425:38;:::i;:::-;192:374;;415:48;;-1:-1:-1;;;532:2:49;517:18;;;;504:32;;192:374::o;571:662::-;666:6;674;682;690;698;751:3;739:9;730:7;726:23;722:33;719:53;;;768:1;765;758:12;719:53;813:23;;;-1:-1:-1;933:2:49;918:18;;905:32;;-1:-1:-1;1036:2:49;1021:18;;1008:32;;-1:-1:-1;1085:38:49;1119:2;1104:18;;1085:38;:::i;:::-;571:662;;;;-1:-1:-1;571:662:49;;1196:3;1181:19;1168:33;;571:662;-1:-1:-1;;571:662:49:o;1481:226::-;1540:6;1593:2;1581:9;1572:7;1568:23;1564:32;1561:52;;;1609:1;1606;1599:12;1561:52;-1:-1:-1;1654:23:49;;1481:226;-1:-1:-1;1481:226:49:o;1712:186::-;1771:6;1824:2;1812:9;1803:7;1799:23;1795:32;1792:52;;;1840:1;1837;1830:12;1792:52;1863:29;1882:9;1863:29;:::i;:::-;1853:39;1712:186;-1:-1:-1;;;1712:186:49:o;2293:346::-;2361:6;2369;2422:2;2410:9;2401:7;2397:23;2393:32;2390:52;;;2438:1;2435;2428:12;2390:52;-1:-1:-1;;2483:23:49;;;2603:2;2588:18;;;2575:32;;-1:-1:-1;2293:346:49:o;2875:127::-;2936:10;2931:3;2927:20;2924:1;2917:31;2967:4;2964:1;2957:15;2991:4;2988:1;2981:15;3007:730;3310:25;;;-1:-1:-1;;;;;3371:32:49;;3366:2;3351:18;;3344:60;3435:2;3420:18;;3413:34;;;3478:2;3463:18;;3456:34;;;3521:3;3506:19;;3499:35;;;3297:3;3282:19;;3564:1;3553:13;;3543:144;;3609:10;3604:3;3600:20;3597:1;3590:31;3644:4;3641:1;3634:15;3672:4;3669:1;3662:15;3543:144;3724:6;3718:3;3707:9;3703:19;3696:35;3007:730;;;;;;;;;:::o;3956:222::-;4021:9;;;4042:10;;;4039:133;;;4094:10;4089:3;4085:20;4082:1;4075:31;4129:4;4126:1;4119:15;4157:4;4154:1;4147:15;4039:133;3956:222;;;;:::o","linkReferences":{}},"methodIdentifiers":{"abortBridgeTransfer(bytes32)":"c95b659f","atomicBridgeInitiatorMOVE()":"3b9b4640","bridgeTransfers(bytes32)":"e0d9cbc4","completeBridgeTransfer(bytes32,bytes32)":"9f8f8799","counterpartyTimeLockDuration()":"96d17d49","initialize(address,address,uint256)":"1794bb3c","lockBridgeTransfer(bytes32,bytes32,bytes32,address,uint256)":"27b3ea07","owner()":"8da5cb5b","renounceOwnership()":"715018a6","setAtomicBridgeInitiator(address)":"7ce08748","setTimeLockDuration(uint256)":"71115eb2","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"BridgeTransferHasBeenCompleted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BridgeTransferInvalid\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BridgeTransferStateNotInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BridgeTransferStateNotPending\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientMOVEBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidSecret\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MOVETransferFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TimeLockExpired\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TimeLockNotExpired\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroAmount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"bridgeTransferId\",\"type\":\"bytes32\"}],\"name\":\"BridgeTransferAborted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"bridgeTransferId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"pre_image\",\"type\":\"bytes32\"}],\"name\":\"BridgeTransferCompleted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"bridgeTransferId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"hashLock\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"timeLock\",\"type\":\"uint256\"}],\"name\":\"BridgeTransferLocked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"bridgeTransferId\",\"type\":\"bytes32\"}],\"name\":\"abortBridgeTransfer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"atomicBridgeInitiatorMOVE\",\"outputs\":[{\"internalType\":\"contract AtomicBridgeInitiatorMOVE\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"bridgeTransfers\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"originator\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"hashLock\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"timeLock\",\"type\":\"uint256\"},{\"internalType\":\"enum AtomicBridgeCounterpartyMOVE.MessageState\",\"name\":\"state\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"bridgeTransferId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"preImage\",\"type\":\"bytes32\"}],\"name\":\"completeBridgeTransfer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"counterpartyTimeLockDuration\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_atomicBridgeInitiator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_timeLockDuration\",\"type\":\"uint256\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"originator\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"bridgeTransferId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"hashLock\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"lockBridgeTransfer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_atomicBridgeInitiator\",\"type\":\"address\"}],\"name\":\"setAtomicBridgeInitiator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_timeLockDuration\",\"type\":\"uint256\"}],\"name\":\"setTimeLockDuration\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"}},\"kind\":\"dev\",\"methods\":{\"abortBridgeTransfer(bytes32)\":{\"details\":\"Cancels the bridge transfer and refunds the initiator if the timelock has expired\",\"params\":{\"bridgeTransferId\":\"Unique identifier for the BridgeTransfer\"}},\"completeBridgeTransfer(bytes32,bytes32)\":{\"details\":\"Completes the bridge transfer and withdraws WETH to the recipient\",\"params\":{\"bridgeTransferId\":\"Unique identifier for the BridgeTransfer\",\"preImage\":\"The secret that unlocks the funds\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/AtomicBridgeCounterpartyMOVE.sol\":\"AtomicBridgeCounterpartyMOVE\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts-upgradeable/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol\":{\"keccak256\":\"0xbb96dc9c468170c3224126e953de917e06332ec5909a3d85e6e5bb0df10c5139\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d14e6486e127e7e31c2ffccfc212c7ebaaecf8fb05677575128b449ee113def2\",\"dweb:/ipfs/QmabvyfStwBcum8mGfkmxcTV45rjyHmzHGCxfxyhmu48Yx\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf\",\"dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r\"]},\"src/AtomicBridgeCounterpartyMOVE.sol\":{\"keccak256\":\"0xb3885e04fe9d8a19b4a36a2c4976e3f3ca044d16addcfe8267f2ed4dbb9d785d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9a73ecee45f2dbc4a26c722b8d4ab7fde39d262ba628d0c899aa79e3c7d0dbb6\",\"dweb:/ipfs/QmdsTYt1JJjTXPA8Ykym3TFH7br3qcbqiwkKUwUF8apvrg\"]},\"src/AtomicBridgeInitiatorMOVE.sol\":{\"keccak256\":\"0x5b19ecc44068863e3cb0727feb40cf40e2704ad78c1cbcc46943e3dec0c2d276\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0489c79d358a014df14338776376728f35be92bc9d6338eae228077db567dc7c\",\"dweb:/ipfs/QmXqVmMCHqZkSe41LSpoxoEiNRP7UJp5qU6bN3UykCQRzE\"]},\"src/IAtomicBridgeCounterpartyMOVE.sol\":{\"keccak256\":\"0x6c7993557da48f7178593831ebe14d6ecc4d8e9a08172616d293428954a66a29\",\"urls\":[\"bzz-raw://287fb06824eaeb5619d7f2e016803463cc4f6fd7fdbfa1264308ea8d8168a9d6\",\"dweb:/ipfs/QmZUUjwLw48e9XKTVibqjC9mciNAezA2qUVsX2SRiunpoi\"]},\"src/IAtomicBridgeInitiatorMOVE.sol\":{\"keccak256\":\"0x3705cbaaf8910b786e5cb99d8d1bfa3f591add9a1d835703a69d6a77020ad841\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12cca43905283adf49be8a23853952b90be09d3ba38b583fd8c2821e97ad8c0a\",\"dweb:/ipfs/QmaxHt6YUKb97dCz1rUjvjfM3XLcoLNvoFrUkDA6a77ER5\"]},\"src/MockMOVEToken.sol\":{\"keccak256\":\"0x71768bf12ff974ee8589bee8b951fa63c7db1f74f251c5997232643bc749a8e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://38474add7fec1c814adf1ad614e4ca233b9f789f279690c698a3a94334c029cf\",\"dweb:/ipfs/Qmah2K8YEmLqnKjXcGvbSD55sm61zkKVvNMhehmrj6VzBs\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"BridgeTransferHasBeenCompleted"},{"inputs":[],"type":"error","name":"BridgeTransferInvalid"},{"inputs":[],"type":"error","name":"BridgeTransferStateNotInitialized"},{"inputs":[],"type":"error","name":"BridgeTransferStateNotPending"},{"inputs":[],"type":"error","name":"InsufficientMOVEBalance"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"InvalidSecret"},{"inputs":[],"type":"error","name":"MOVETransferFailed"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[],"type":"error","name":"TimeLockExpired"},{"inputs":[],"type":"error","name":"TimeLockNotExpired"},{"inputs":[],"type":"error","name":"Unauthorized"},{"inputs":[],"type":"error","name":"ZeroAddress"},{"inputs":[],"type":"error","name":"ZeroAmount"},{"inputs":[{"internalType":"bytes32","name":"bridgeTransferId","type":"bytes32","indexed":true}],"type":"event","name":"BridgeTransferAborted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"bridgeTransferId","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"pre_image","type":"bytes32","indexed":false}],"type":"event","name":"BridgeTransferCompleted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"bridgeTransferId","type":"bytes32","indexed":true},{"internalType":"address","name":"recipient","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"bytes32","name":"hashLock","type":"bytes32","indexed":false},{"internalType":"uint256","name":"timeLock","type":"uint256","indexed":false}],"type":"event","name":"BridgeTransferLocked","anonymous":false},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"bridgeTransferId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"abortBridgeTransfer"},{"inputs":[],"stateMutability":"view","type":"function","name":"atomicBridgeInitiatorMOVE","outputs":[{"internalType":"contract AtomicBridgeInitiatorMOVE","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","name":"bridgeTransfers","outputs":[{"internalType":"bytes32","name":"originator","type":"bytes32"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes32","name":"hashLock","type":"bytes32"},{"internalType":"uint256","name":"timeLock","type":"uint256"},{"internalType":"enum AtomicBridgeCounterpartyMOVE.MessageState","name":"state","type":"uint8"}]},{"inputs":[{"internalType":"bytes32","name":"bridgeTransferId","type":"bytes32"},{"internalType":"bytes32","name":"preImage","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"completeBridgeTransfer"},{"inputs":[],"stateMutability":"view","type":"function","name":"counterpartyTimeLockDuration","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"_atomicBridgeInitiator","type":"address"},{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"_timeLockDuration","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"bytes32","name":"originator","type":"bytes32"},{"internalType":"bytes32","name":"bridgeTransferId","type":"bytes32"},{"internalType":"bytes32","name":"hashLock","type":"bytes32"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"lockBridgeTransfer"},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"_atomicBridgeInitiator","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setAtomicBridgeInitiator"},{"inputs":[{"internalType":"uint256","name":"_timeLockDuration","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setTimeLockDuration"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"}],"devdoc":{"kind":"dev","methods":{"abortBridgeTransfer(bytes32)":{"details":"Cancels the bridge transfer and refunds the initiator if the timelock has expired","params":{"bridgeTransferId":"Unique identifier for the BridgeTransfer"}},"completeBridgeTransfer(bytes32,bytes32)":{"details":"Completes the bridge transfer and withdraws WETH to the recipient","params":{"bridgeTransferId":"Unique identifier for the BridgeTransfer","preImage":"The secret that unlocks the funds"}},"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts-upgradeable/lib/halmos-cheatcodes/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/AtomicBridgeCounterpartyMOVE.sol":"AtomicBridgeCounterpartyMOVE"},"evmVersion":"cancun","libraries":{}},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a","urls":["bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6","dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol":{"keccak256":"0xbb96dc9c468170c3224126e953de917e06332ec5909a3d85e6e5bb0df10c5139","urls":["bzz-raw://d14e6486e127e7e31c2ffccfc212c7ebaaecf8fb05677575128b449ee113def2","dweb:/ipfs/QmabvyfStwBcum8mGfkmxcTV45rjyHmzHGCxfxyhmu48Yx"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b","urls":["bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b","dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7","urls":["bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db","dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330","urls":["bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf","dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r"],"license":"MIT"},"src/AtomicBridgeCounterpartyMOVE.sol":{"keccak256":"0xb3885e04fe9d8a19b4a36a2c4976e3f3ca044d16addcfe8267f2ed4dbb9d785d","urls":["bzz-raw://9a73ecee45f2dbc4a26c722b8d4ab7fde39d262ba628d0c899aa79e3c7d0dbb6","dweb:/ipfs/QmdsTYt1JJjTXPA8Ykym3TFH7br3qcbqiwkKUwUF8apvrg"],"license":"MIT"},"src/AtomicBridgeInitiatorMOVE.sol":{"keccak256":"0x5b19ecc44068863e3cb0727feb40cf40e2704ad78c1cbcc46943e3dec0c2d276","urls":["bzz-raw://0489c79d358a014df14338776376728f35be92bc9d6338eae228077db567dc7c","dweb:/ipfs/QmXqVmMCHqZkSe41LSpoxoEiNRP7UJp5qU6bN3UykCQRzE"],"license":"MIT"},"src/IAtomicBridgeCounterpartyMOVE.sol":{"keccak256":"0x6c7993557da48f7178593831ebe14d6ecc4d8e9a08172616d293428954a66a29","urls":["bzz-raw://287fb06824eaeb5619d7f2e016803463cc4f6fd7fdbfa1264308ea8d8168a9d6","dweb:/ipfs/QmZUUjwLw48e9XKTVibqjC9mciNAezA2qUVsX2SRiunpoi"],"license":null},"src/IAtomicBridgeInitiatorMOVE.sol":{"keccak256":"0x3705cbaaf8910b786e5cb99d8d1bfa3f591add9a1d835703a69d6a77020ad841","urls":["bzz-raw://12cca43905283adf49be8a23853952b90be09d3ba38b583fd8c2821e97ad8c0a","dweb:/ipfs/QmaxHt6YUKb97dCz1rUjvjfM3XLcoLNvoFrUkDA6a77ER5"],"license":"MIT"},"src/MockMOVEToken.sol":{"keccak256":"0x71768bf12ff974ee8589bee8b951fa63c7db1f74f251c5997232643bc749a8e4","urls":["bzz-raw://38474add7fec1c814adf1ad614e4ca233b9f789f279690c698a3a94334c029cf","dweb:/ipfs/Qmah2K8YEmLqnKjXcGvbSD55sm61zkKVvNMhehmrj6VzBs"],"license":"MIT"}},"version":1},"id":42} \ No newline at end of file +{"abi":[{"type":"function","name":"abortBridgeTransfer","inputs":[{"name":"bridgeTransferId","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"atomicBridgeInitiatorMOVE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract AtomicBridgeInitiatorMOVE"}],"stateMutability":"view"},{"type":"function","name":"bridgeTransfers","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"originator","type":"bytes32","internalType":"bytes32"},{"name":"recipient","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"hashLock","type":"bytes32","internalType":"bytes32"},{"name":"timeLock","type":"uint256","internalType":"uint256"},{"name":"state","type":"uint8","internalType":"enum AtomicBridgeCounterpartyMOVE.MessageState"}],"stateMutability":"view"},{"type":"function","name":"completeBridgeTransfer","inputs":[{"name":"bridgeTransferId","type":"bytes32","internalType":"bytes32"},{"name":"preImage","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"counterpartyTimeLockDuration","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"_atomicBridgeInitiator","type":"address","internalType":"address"},{"name":"owner","type":"address","internalType":"address"},{"name":"_timeLockDuration","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"lockBridgeTransfer","inputs":[{"name":"originator","type":"bytes32","internalType":"bytes32"},{"name":"bridgeTransferId","type":"bytes32","internalType":"bytes32"},{"name":"hashLock","type":"bytes32","internalType":"bytes32"},{"name":"recipient","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setAtomicBridgeInitiator","inputs":[{"name":"_atomicBridgeInitiator","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setTimeLockDuration","inputs":[{"name":"_timeLockDuration","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"BridgeTransferAborted","inputs":[{"name":"bridgeTransferId","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"BridgeTransferCompleted","inputs":[{"name":"bridgeTransferId","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"pre_image","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"BridgeTransferLocked","inputs":[{"name":"bridgeTransferId","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"recipient","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"hashLock","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"timeLock","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"BridgeTransferHasBeenCompleted","inputs":[]},{"type":"error","name":"BridgeTransferInvalid","inputs":[]},{"type":"error","name":"BridgeTransferStateNotInitialized","inputs":[]},{"type":"error","name":"BridgeTransferStateNotPending","inputs":[]},{"type":"error","name":"InsufficientMOVEBalance","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"InvalidSecret","inputs":[]},{"type":"error","name":"MOVETransferFailed","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"TimeLockExpired","inputs":[]},{"type":"error","name":"TimeLockNotExpired","inputs":[]},{"type":"error","name":"Unauthorized","inputs":[]},{"type":"error","name":"ZeroAddress","inputs":[]},{"type":"error","name":"ZeroAmount","inputs":[]}],"bytecode":{"object":"0x6080604052348015600e575f80fd5b50610a1a8061001c5f395ff3fe608060405234801561000f575f80fd5b50600436106100b1575f3560e01c80638da5cb5b1161006e5780638da5cb5b1461013a57806396d17d491461016a5780639f8f879914610181578063c95b659f14610194578063e0d9cbc4146101a7578063f2fde38b14610209575f80fd5b80631794bb3c146100b557806327b3ea07146100ca5780633b9b4640146100dd57806371115eb21461010c578063715018a61461011f5780637ce0874814610127575b5f80fd5b6100c86100c336600461087f565b61021c565b005b6100c86100d83660046108b9565b610372565b5f546100ef906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6100c861011a3660046108fc565b6104d3565b6100c86104e0565b6100c8610135366004610913565b6104f3565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b03166100ef565b61017360025481565b604051908152602001610103565b6100c861018f366004610933565b610543565b6100c86101a23660046108fc565b610647565b6101f76101b53660046108fc565b600160208190525f91825260409091208054918101546002820154600383015460048401546005909401546001600160a01b0390931693919290919060ff1686565b60405161010396959493929190610967565b6100c8610217366004610913565b6106f5565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff16159067ffffffffffffffff165f811580156102615750825b90505f8267ffffffffffffffff16600114801561027d5750303b155b90508115801561028b575080155b156102a95760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff1916600117855583156102d357845460ff60401b1916600160401b1785555b6001600160a01b0388166102fa5760405163d92e233d60e01b815260040160405180910390fd5b5f80546001600160a01b0319166001600160a01b038a1617905561031d87610737565b6002869055831561036857845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050505050565b61037a610748565b805f0361039a57604051631f2a200560e01b815260040160405180910390fd5b5f600254426103a991906109bf565b90506040518060c00160405280878152602001846001600160a01b031681526020018381526020018581526020018281526020015f60028111156103ef576103ef610953565b90525f86815260016020818152604092839020845181559084015181830180546001600160a01b0319166001600160a01b0390921691909117905591830151600280840191909155606084015160038401556080840151600484015560a08401516005840180549193909260ff1990921691849081111561047257610472610953565b0217905550506002546040805185815260208101889052908101919091526001600160a01b038516915086907fa03230f5967404ba170c5be8445486911e87267000597e4ba9ed9d4b014fa4bd9060600160405180910390a3505050505050565b6104db610748565b600255565b6104e8610748565b6104f15f6107a3565b565b6104fb610748565b6001600160a01b0381166105225760405163d92e233d60e01b815260040160405180910390fd5b5f80546001600160a01b0319166001600160a01b0392909216919091179055565b5f82815260016020526040812090600582015460ff16600281111561056a5761056a610953565b146105885760405163a92c04c760e01b815260040160405180910390fd5b5f8260405160200161059c91815260200190565b604051602081830303815290604052805190602001209050816003015481146105d85760405163abab6bd760e01b815260040160405180910390fd5b81600401544211156105fd5760405163179a39d160e01b815260040160405180910390fd5b60058201805460ff1916600117905560405183815284907f05ddc886acde01b77731bfad1dcfb6abf529f05c28ea66556fe87429bb2789ea9060200160405180910390a250505050565b61064f610748565b5f81815260016020526040812090600582015460ff16600281111561067657610676610953565b146106945760405163a92c04c760e01b815260040160405180910390fd5b806004015442116106b85760405163191f4d1b60e31b815260040160405180910390fd5b60058101805460ff1916600217905560405182907f9b398e0a546c4aa218ac0b98f5e2196a7aff605b50c19eb795f9cb3b2f5d5b55905f90a25050565b6106fd610748565b6001600160a01b03811661072b57604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b610734816107a3565b50565b61073f610813565b6107348161085c565b3361077a7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316146104f15760405163118cdaa760e01b8152336004820152602401610722565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff166104f157604051631afcd79f60e31b815260040160405180910390fd5b6106fd610813565b80356001600160a01b038116811461087a575f80fd5b919050565b5f805f60608486031215610891575f80fd5b61089a84610864565b92506108a860208501610864565b929592945050506040919091013590565b5f805f805f60a086880312156108cd575f80fd5b8535945060208601359350604086013592506108eb60608701610864565b949793965091946080013592915050565b5f6020828403121561090c575f80fd5b5035919050565b5f60208284031215610923575f80fd5b61092c82610864565b9392505050565b5f8060408385031215610944575f80fd5b50508035926020909101359150565b634e487b7160e01b5f52602160045260245ffd5b8681526001600160a01b038616602082015260408101859052606081018490526080810183905260c08101600383106109ae57634e487b7160e01b5f52602160045260245ffd5b8260a0830152979650505050505050565b808201808211156109de57634e487b7160e01b5f52601160045260245ffd5b9291505056fea26469706673582212201cf10841a18016e56cd91bcf2a5fb41a20b61d49418de88247d723340792edf864736f6c634300081a0033","sourceMap":"319:3265:42:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f80fd5b50600436106100b1575f3560e01c80638da5cb5b1161006e5780638da5cb5b1461013a57806396d17d491461016a5780639f8f879914610181578063c95b659f14610194578063e0d9cbc4146101a7578063f2fde38b14610209575f80fd5b80631794bb3c146100b557806327b3ea07146100ca5780633b9b4640146100dd57806371115eb21461010c578063715018a61461011f5780637ce0874814610127575b5f80fd5b6100c86100c336600461087f565b61021c565b005b6100c86100d83660046108b9565b610372565b5f546100ef906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6100c861011a3660046108fc565b6104d3565b6100c86104e0565b6100c8610135366004610913565b6104f3565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b03166100ef565b61017360025481565b604051908152602001610103565b6100c861018f366004610933565b610543565b6100c86101a23660046108fc565b610647565b6101f76101b53660046108fc565b600160208190525f91825260409091208054918101546002820154600383015460048401546005909401546001600160a01b0390931693919290919060ff1686565b60405161010396959493929190610967565b6100c8610217366004610913565b6106f5565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff16159067ffffffffffffffff165f811580156102615750825b90505f8267ffffffffffffffff16600114801561027d5750303b155b90508115801561028b575080155b156102a95760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff1916600117855583156102d357845460ff60401b1916600160401b1785555b6001600160a01b0388166102fa5760405163d92e233d60e01b815260040160405180910390fd5b5f80546001600160a01b0319166001600160a01b038a1617905561031d87610737565b6002869055831561036857845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050505050565b61037a610748565b805f0361039a57604051631f2a200560e01b815260040160405180910390fd5b5f600254426103a991906109bf565b90506040518060c00160405280878152602001846001600160a01b031681526020018381526020018581526020018281526020015f60028111156103ef576103ef610953565b90525f86815260016020818152604092839020845181559084015181830180546001600160a01b0319166001600160a01b0390921691909117905591830151600280840191909155606084015160038401556080840151600484015560a08401516005840180549193909260ff1990921691849081111561047257610472610953565b0217905550506002546040805185815260208101889052908101919091526001600160a01b038516915086907fa03230f5967404ba170c5be8445486911e87267000597e4ba9ed9d4b014fa4bd9060600160405180910390a3505050505050565b6104db610748565b600255565b6104e8610748565b6104f15f6107a3565b565b6104fb610748565b6001600160a01b0381166105225760405163d92e233d60e01b815260040160405180910390fd5b5f80546001600160a01b0319166001600160a01b0392909216919091179055565b5f82815260016020526040812090600582015460ff16600281111561056a5761056a610953565b146105885760405163a92c04c760e01b815260040160405180910390fd5b5f8260405160200161059c91815260200190565b604051602081830303815290604052805190602001209050816003015481146105d85760405163abab6bd760e01b815260040160405180910390fd5b81600401544211156105fd5760405163179a39d160e01b815260040160405180910390fd5b60058201805460ff1916600117905560405183815284907f05ddc886acde01b77731bfad1dcfb6abf529f05c28ea66556fe87429bb2789ea9060200160405180910390a250505050565b61064f610748565b5f81815260016020526040812090600582015460ff16600281111561067657610676610953565b146106945760405163a92c04c760e01b815260040160405180910390fd5b806004015442116106b85760405163191f4d1b60e31b815260040160405180910390fd5b60058101805460ff1916600217905560405182907f9b398e0a546c4aa218ac0b98f5e2196a7aff605b50c19eb795f9cb3b2f5d5b55905f90a25050565b6106fd610748565b6001600160a01b03811661072b57604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b610734816107a3565b50565b61073f610813565b6107348161085c565b3361077a7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316146104f15760405163118cdaa760e01b8152336004820152602401610722565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff166104f157604051631afcd79f60e31b815260040160405180910390fd5b6106fd610813565b80356001600160a01b038116811461087a575f80fd5b919050565b5f805f60608486031215610891575f80fd5b61089a84610864565b92506108a860208501610864565b929592945050506040919091013590565b5f805f805f60a086880312156108cd575f80fd5b8535945060208601359350604086013592506108eb60608701610864565b949793965091946080013592915050565b5f6020828403121561090c575f80fd5b5035919050565b5f60208284031215610923575f80fd5b61092c82610864565b9392505050565b5f8060408385031215610944575f80fd5b50508035926020909101359150565b634e487b7160e01b5f52602160045260245ffd5b8681526001600160a01b038616602082015260408101859052606081018490526080810183905260c08101600383106109ae57634e487b7160e01b5f52602160045260245ffd5b8260a0830152979650505050505050565b808201808211156109de57634e487b7160e01b5f52601160045260245ffd5b9291505056fea26469706673582212201cf10841a18016e56cd91bcf2a5fb41a20b61d49418de88247d723340792edf864736f6c634300081a0033","sourceMap":"319:3265:42:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;925:420;;;;;;:::i;:::-;;:::i;:::-;;1754:784;;;;;;:::i;:::-;;:::i;701:58::-;;;;;-1:-1:-1;;;;;701:58:42;;;;;;-1:-1:-1;;;;;1437:32:49;;;1419:51;;1407:2;1392:18;701:58:42;;;;;;;;1608:140;;;;;;:::i;:::-;;:::i;3155:101:23:-;;;:::i;1351:251:42:-;;;;;;:::i;:::-;;:::i;2441:144:23:-;1313:22;2570:8;-1:-1:-1;;;;;2570:8:23;2441:144;;875:43:42;;;;;;;;;2257:25:49;;;2245:2;2230:18;875:43:42;2111:177:49;2544:596:42;;;;;;:::i;:::-;;:::i;3146:436::-;;;;;;:::i;:::-;;:::i;765:64::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;765:64:42;;;;;;;;;;;;;;;;;;;;;;;;;:::i;3405:215:23:-;;;;;;:::i;:::-;;:::i;925:420:42:-;8870:21:24;4302:15;;-1:-1:-1;;;4302:15:24;;;;4301:16;;4348:14;;4158:30;4726:16;;:34;;;;;4746:14;4726:34;4706:54;;4770:17;4790:11;:16;;4805:1;4790:16;:50;;;;-1:-1:-1;4818:4:24;4810:25;:30;4790:50;4770:70;;4856:12;4855:13;:30;;;;;4873:12;4872:13;4855:30;4851:91;;;4908:23;;-1:-1:-1;;;4908:23:24;;;;;;;;;;;4851:91;4951:18;;-1:-1:-1;;4951:18:24;4968:1;4951:18;;;4979:67;;;;5013:22;;-1:-1:-1;;;;5013:22:24;-1:-1:-1;;;5013:22:24;;;4979:67;-1:-1:-1;;;;;1052:36:42;::::1;1048:62;;1097:13;;-1:-1:-1::0;;;1097:13:42::1;;;;;;;;;;;1048:62;1120:25;:77:::0;;-1:-1:-1;;;;;;1120:77:42::1;-1:-1:-1::0;;;;;1120:77:42;::::1;;::::0;;1207:21:::1;1222:5:::0;1207:14:::1;:21::i;:::-;1290:28;:48:::0;;;5066:101:24;;;;5100:23;;-1:-1:-1;;;;5100:23:24;;;5142:14;;-1:-1:-1;3895:50:49;;5142:14:24;;3883:2:49;3868:18;5142:14:24;;;;;;;5066:101;4092:1081;;;;;925:420:42;;;:::o;1754:784::-;2334:13:23;:11;:13::i;:::-;1960:6:42::1;1970:1;1960:11:::0;1956:36:::1;;1980:12;;-1:-1:-1::0;;;1980:12:42::1;;;;;;;;;;;1956:36;2070:16;2107:28;;2089:15;:46;;;;:::i;:::-;2070:65;;2182:236;;;;;;;;2264:10;2182:236;;;;2229:9;-1:-1:-1::0;;;;;2182:236:42::1;;;;;2296:6;2182:236;;;;2326:8;2182:236;;;;2358:8;2182:236;;;;2387:20;2182:236;;;;;;;;:::i;:::-;::::0;;2146:33:::1;::::0;;;:15:::1;:33;::::0;;;;;;;;:272;;;;;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;;;;;;2146:272:42::1;-1:-1:-1::0;;;;;2146:272:42;;::::1;::::0;;;::::1;::::0;;;;::::1;::::0;::::1;::::0;;::::1;::::0;;;;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;;2146:272:42;;::::1;::::0;;;;::::1;;;;;;:::i;:::-;;;::::0;;-1:-1:-1;;2502:28:42::1;::::0;2434:97:::1;::::0;;4385:25:49;;;4441:2;4426:18;;4419:34;;;4469:18;;;4462:34;;;;-1:-1:-1;;;;;2434:97:42;::::1;::::0;-1:-1:-1;2455:16:42;;2434:97:::1;::::0;4373:2:49;4358:18;2434:97:42::1;;;;;;;1946:592;1754:784:::0;;;;;:::o;1608:140::-;2334:13:23;:11;:13::i;:::-;1693:28:42::1;:48:::0;1608:140::o;3155:101:23:-;2334:13;:11;:13::i;:::-;3219:30:::1;3246:1;3219:18;:30::i;:::-;3155:101::o:0;1351:251:42:-;2334:13:23;:11;:13::i;:::-;-1:-1:-1;;;;;1450:36:42;::::1;1446:62;;1495:13;;-1:-1:-1::0;;;1495:13:42::1;;;;;;;;;;;1446:62;1518:25;:77:::0;;-1:-1:-1;;;;;;1518:77:42::1;-1:-1:-1::0;;;;;1518:77:42;;;::::1;::::0;;;::::1;::::0;;1351:251::o;2544:596::-;2639:37;2679:33;;;:15;:33;;;;;;2726:13;;;;;;:37;;;;;;;;:::i;:::-;;2722:81;;2772:31;;-1:-1:-1;;;2772:31:42;;;;;;;;;;;2722:81;2813:20;2863:8;2846:26;;;;;;4636:19:49;;4680:2;4671:12;;4507:182;2846:26:42;;;;;;;;;;;;;2836:37;;;;;;2813:60;;2903:7;:16;;;2887:12;:32;2883:60;;2928:15;;-1:-1:-1;;;2928:15:42;;;;;;;;;;;2883:60;2975:7;:16;;;2957:15;:34;2953:64;;;3000:17;;-1:-1:-1;;;3000:17:42;;;;;;;;;;;2953:64;3028:13;;;:38;;-1:-1:-1;;3028:38:42;3044:22;3028:38;;;3082:51;;2257:25:49;;;3106:16:42;;3082:51;;2245:2:49;2230:18;3082:51:42;;;;;;;2629:511;;2544:596;;:::o;3146:436::-;2334:13:23;:11;:13::i;:::-;3230:37:42::1;3270:33:::0;;;:15:::1;:33;::::0;;;;;3317:13:::1;::::0;::::1;::::0;::::1;;:37;::::0;::::1;;;;;;:::i;:::-;;3313:81;;3363:31;;-1:-1:-1::0;;;3363:31:42::1;;;;;;;;;;;3313:81;3427:7;:16;;;3408:15;:35;3404:68;;3452:20;;-1:-1:-1::0;;;3452:20:42::1;;;;;;;;;;;3404:68;3483:13;::::0;::::1;:37:::0;;-1:-1:-1;;3483:37:42::1;3499:21;3483:37;::::0;;3536:39:::1;::::0;3558:16;;3536:39:::1;::::0;-1:-1:-1;;3536:39:42::1;3220:362;3146:436:::0;:::o;3405:215:23:-;2334:13;:11;:13::i;:::-;-1:-1:-1;;;;;3489:22:23;::::1;3485:91;;3534:31;::::0;-1:-1:-1;;;3534:31:23;;3562:1:::1;3534:31;::::0;::::1;1419:51:49::0;1392:18;;3534:31:23::1;;;;;;;;3485:91;3585:28;3604:8;3585:18;:28::i;:::-;3405:215:::0;:::o;1847:127::-;6931:20:24;:18;:20::i;:::-;1929:38:23::1;1954:12;1929:24;:38::i;2658:162::-:0;966:10:26;2717:7:23;1313:22;2570:8;-1:-1:-1;;;;;2570:8:23;;2441:144;2717:7;-1:-1:-1;;;;;2717:23:23;;2713:101;;2763:40;;-1:-1:-1;;;2763:40:23;;966:10:26;2763:40:23;;;1419:51:49;1392:18;;2763:40:23;1238:238:49;3774:248:23;1313:22;3923:8;;-1:-1:-1;;;;;;3941:19:23;;-1:-1:-1;;;;;3941:19:23;;;;;;;;3975:40;;3923:8;;;;;3975:40;;3847:24;;3975:40;3837:185;;3774:248;:::o;7084:141:24:-;8870:21;8560:40;-1:-1:-1;;;8560:40:24;;;;7146:73;;7191:17;;-1:-1:-1;;;7191:17:24;;;;;;;;;;;1980:235:23;6931:20:24;:18;:20::i;14:173:49:-;82:20;;-1:-1:-1;;;;;131:31:49;;121:42;;111:70;;177:1;174;167:12;111:70;14:173;;;:::o;192:374::-;269:6;277;285;338:2;326:9;317:7;313:23;309:32;306:52;;;354:1;351;344:12;306:52;377:29;396:9;377:29;:::i;:::-;367:39;;425:38;459:2;448:9;444:18;425:38;:::i;:::-;192:374;;415:48;;-1:-1:-1;;;532:2:49;517:18;;;;504:32;;192:374::o;571:662::-;666:6;674;682;690;698;751:3;739:9;730:7;726:23;722:33;719:53;;;768:1;765;758:12;719:53;813:23;;;-1:-1:-1;933:2:49;918:18;;905:32;;-1:-1:-1;1036:2:49;1021:18;;1008:32;;-1:-1:-1;1085:38:49;1119:2;1104:18;;1085:38;:::i;:::-;571:662;;;;-1:-1:-1;571:662:49;;1196:3;1181:19;1168:33;;571:662;-1:-1:-1;;571:662:49:o;1481:226::-;1540:6;1593:2;1581:9;1572:7;1568:23;1564:32;1561:52;;;1609:1;1606;1599:12;1561:52;-1:-1:-1;1654:23:49;;1481:226;-1:-1:-1;1481:226:49:o;1712:186::-;1771:6;1824:2;1812:9;1803:7;1799:23;1795:32;1792:52;;;1840:1;1837;1830:12;1792:52;1863:29;1882:9;1863:29;:::i;:::-;1853:39;1712:186;-1:-1:-1;;;1712:186:49:o;2293:346::-;2361:6;2369;2422:2;2410:9;2401:7;2397:23;2393:32;2390:52;;;2438:1;2435;2428:12;2390:52;-1:-1:-1;;2483:23:49;;;2603:2;2588:18;;;2575:32;;-1:-1:-1;2293:346:49:o;2875:127::-;2936:10;2931:3;2927:20;2924:1;2917:31;2967:4;2964:1;2957:15;2991:4;2988:1;2981:15;3007:730;3310:25;;;-1:-1:-1;;;;;3371:32:49;;3366:2;3351:18;;3344:60;3435:2;3420:18;;3413:34;;;3478:2;3463:18;;3456:34;;;3521:3;3506:19;;3499:35;;;3297:3;3282:19;;3564:1;3553:13;;3543:144;;3609:10;3604:3;3600:20;3597:1;3590:31;3644:4;3641:1;3634:15;3672:4;3669:1;3662:15;3543:144;3724:6;3718:3;3707:9;3703:19;3696:35;3007:730;;;;;;;;;:::o;3956:222::-;4021:9;;;4042:10;;;4039:133;;;4094:10;4089:3;4085:20;4082:1;4075:31;4129:4;4126:1;4119:15;4157:4;4154:1;4147:15;4039:133;3956:222;;;;:::o","linkReferences":{}},"methodIdentifiers":{"abortBridgeTransfer(bytes32)":"c95b659f","atomicBridgeInitiatorMOVE()":"3b9b4640","bridgeTransfers(bytes32)":"e0d9cbc4","completeBridgeTransfer(bytes32,bytes32)":"9f8f8799","counterpartyTimeLockDuration()":"96d17d49","initialize(address,address,uint256)":"1794bb3c","lockBridgeTransfer(bytes32,bytes32,bytes32,address,uint256)":"27b3ea07","owner()":"8da5cb5b","renounceOwnership()":"715018a6","setAtomicBridgeInitiator(address)":"7ce08748","setTimeLockDuration(uint256)":"71115eb2","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"BridgeTransferHasBeenCompleted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BridgeTransferInvalid\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BridgeTransferStateNotInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BridgeTransferStateNotPending\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientMOVEBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidSecret\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MOVETransferFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TimeLockExpired\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TimeLockNotExpired\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroAmount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"bridgeTransferId\",\"type\":\"bytes32\"}],\"name\":\"BridgeTransferAborted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"bridgeTransferId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"pre_image\",\"type\":\"bytes32\"}],\"name\":\"BridgeTransferCompleted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"bridgeTransferId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"hashLock\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"timeLock\",\"type\":\"uint256\"}],\"name\":\"BridgeTransferLocked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"bridgeTransferId\",\"type\":\"bytes32\"}],\"name\":\"abortBridgeTransfer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"atomicBridgeInitiatorMOVE\",\"outputs\":[{\"internalType\":\"contract AtomicBridgeInitiatorMOVE\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"bridgeTransfers\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"originator\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"hashLock\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"timeLock\",\"type\":\"uint256\"},{\"internalType\":\"enum AtomicBridgeCounterpartyMOVE.MessageState\",\"name\":\"state\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"bridgeTransferId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"preImage\",\"type\":\"bytes32\"}],\"name\":\"completeBridgeTransfer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"counterpartyTimeLockDuration\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_atomicBridgeInitiator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_timeLockDuration\",\"type\":\"uint256\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"originator\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"bridgeTransferId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"hashLock\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"lockBridgeTransfer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_atomicBridgeInitiator\",\"type\":\"address\"}],\"name\":\"setAtomicBridgeInitiator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_timeLockDuration\",\"type\":\"uint256\"}],\"name\":\"setTimeLockDuration\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"}},\"kind\":\"dev\",\"methods\":{\"abortBridgeTransfer(bytes32)\":{\"details\":\"Cancels the bridge transfer and refunds the initiator if the timelock has expired\",\"params\":{\"bridgeTransferId\":\"Unique identifier for the BridgeTransfer\"}},\"completeBridgeTransfer(bytes32,bytes32)\":{\"details\":\"Completes the bridge transfer and withdraws WETH to the recipient\",\"params\":{\"bridgeTransferId\":\"Unique identifier for the BridgeTransfer\",\"preImage\":\"The secret that unlocks the funds\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/AtomicBridgeCounterpartyMOVE.sol\":\"AtomicBridgeCounterpartyMOVE\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts-upgradeable/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol\":{\"keccak256\":\"0xbb96dc9c468170c3224126e953de917e06332ec5909a3d85e6e5bb0df10c5139\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d14e6486e127e7e31c2ffccfc212c7ebaaecf8fb05677575128b449ee113def2\",\"dweb:/ipfs/QmabvyfStwBcum8mGfkmxcTV45rjyHmzHGCxfxyhmu48Yx\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf\",\"dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r\"]},\"src/AtomicBridgeCounterpartyMOVE.sol\":{\"keccak256\":\"0xb3885e04fe9d8a19b4a36a2c4976e3f3ca044d16addcfe8267f2ed4dbb9d785d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9a73ecee45f2dbc4a26c722b8d4ab7fde39d262ba628d0c899aa79e3c7d0dbb6\",\"dweb:/ipfs/QmdsTYt1JJjTXPA8Ykym3TFH7br3qcbqiwkKUwUF8apvrg\"]},\"src/AtomicBridgeInitiatorMOVE.sol\":{\"keccak256\":\"0x5b19ecc44068863e3cb0727feb40cf40e2704ad78c1cbcc46943e3dec0c2d276\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0489c79d358a014df14338776376728f35be92bc9d6338eae228077db567dc7c\",\"dweb:/ipfs/QmXqVmMCHqZkSe41LSpoxoEiNRP7UJp5qU6bN3UykCQRzE\"]},\"src/IAtomicBridgeCounterpartyMOVE.sol\":{\"keccak256\":\"0x6c7993557da48f7178593831ebe14d6ecc4d8e9a08172616d293428954a66a29\",\"urls\":[\"bzz-raw://287fb06824eaeb5619d7f2e016803463cc4f6fd7fdbfa1264308ea8d8168a9d6\",\"dweb:/ipfs/QmZUUjwLw48e9XKTVibqjC9mciNAezA2qUVsX2SRiunpoi\"]},\"src/IAtomicBridgeInitiatorMOVE.sol\":{\"keccak256\":\"0x3705cbaaf8910b786e5cb99d8d1bfa3f591add9a1d835703a69d6a77020ad841\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12cca43905283adf49be8a23853952b90be09d3ba38b583fd8c2821e97ad8c0a\",\"dweb:/ipfs/QmaxHt6YUKb97dCz1rUjvjfM3XLcoLNvoFrUkDA6a77ER5\"]},\"src/MockMOVEToken.sol\":{\"keccak256\":\"0x71768bf12ff974ee8589bee8b951fa63c7db1f74f251c5997232643bc749a8e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://38474add7fec1c814adf1ad614e4ca233b9f789f279690c698a3a94334c029cf\",\"dweb:/ipfs/Qmah2K8YEmLqnKjXcGvbSD55sm61zkKVvNMhehmrj6VzBs\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"BridgeTransferHasBeenCompleted"},{"inputs":[],"type":"error","name":"BridgeTransferInvalid"},{"inputs":[],"type":"error","name":"BridgeTransferStateNotInitialized"},{"inputs":[],"type":"error","name":"BridgeTransferStateNotPending"},{"inputs":[],"type":"error","name":"InsufficientMOVEBalance"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"InvalidSecret"},{"inputs":[],"type":"error","name":"MOVETransferFailed"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[],"type":"error","name":"TimeLockExpired"},{"inputs":[],"type":"error","name":"TimeLockNotExpired"},{"inputs":[],"type":"error","name":"Unauthorized"},{"inputs":[],"type":"error","name":"ZeroAddress"},{"inputs":[],"type":"error","name":"ZeroAmount"},{"inputs":[{"internalType":"bytes32","name":"bridgeTransferId","type":"bytes32","indexed":true}],"type":"event","name":"BridgeTransferAborted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"bridgeTransferId","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"pre_image","type":"bytes32","indexed":false}],"type":"event","name":"BridgeTransferCompleted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"bridgeTransferId","type":"bytes32","indexed":true},{"internalType":"address","name":"recipient","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"bytes32","name":"hashLock","type":"bytes32","indexed":false},{"internalType":"uint256","name":"timeLock","type":"uint256","indexed":false}],"type":"event","name":"BridgeTransferLocked","anonymous":false},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"bridgeTransferId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"abortBridgeTransfer"},{"inputs":[],"stateMutability":"view","type":"function","name":"atomicBridgeInitiatorMOVE","outputs":[{"internalType":"contract AtomicBridgeInitiatorMOVE","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","name":"bridgeTransfers","outputs":[{"internalType":"bytes32","name":"originator","type":"bytes32"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes32","name":"hashLock","type":"bytes32"},{"internalType":"uint256","name":"timeLock","type":"uint256"},{"internalType":"enum AtomicBridgeCounterpartyMOVE.MessageState","name":"state","type":"uint8"}]},{"inputs":[{"internalType":"bytes32","name":"bridgeTransferId","type":"bytes32"},{"internalType":"bytes32","name":"preImage","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"completeBridgeTransfer"},{"inputs":[],"stateMutability":"view","type":"function","name":"counterpartyTimeLockDuration","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"_atomicBridgeInitiator","type":"address"},{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"_timeLockDuration","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"bytes32","name":"originator","type":"bytes32"},{"internalType":"bytes32","name":"bridgeTransferId","type":"bytes32"},{"internalType":"bytes32","name":"hashLock","type":"bytes32"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"lockBridgeTransfer"},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"_atomicBridgeInitiator","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setAtomicBridgeInitiator"},{"inputs":[{"internalType":"uint256","name":"_timeLockDuration","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setTimeLockDuration"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"}],"devdoc":{"kind":"dev","methods":{"abortBridgeTransfer(bytes32)":{"details":"Cancels the bridge transfer and refunds the initiator if the timelock has expired","params":{"bridgeTransferId":"Unique identifier for the BridgeTransfer"}},"completeBridgeTransfer(bytes32,bytes32)":{"details":"Completes the bridge transfer and withdraws WETH to the recipient","params":{"bridgeTransferId":"Unique identifier for the BridgeTransfer","preImage":"The secret that unlocks the funds"}},"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts-upgradeable/lib/halmos-cheatcodes/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/AtomicBridgeCounterpartyMOVE.sol":"AtomicBridgeCounterpartyMOVE"},"evmVersion":"cancun","libraries":{}},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a","urls":["bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6","dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol":{"keccak256":"0xbb96dc9c468170c3224126e953de917e06332ec5909a3d85e6e5bb0df10c5139","urls":["bzz-raw://d14e6486e127e7e31c2ffccfc212c7ebaaecf8fb05677575128b449ee113def2","dweb:/ipfs/QmabvyfStwBcum8mGfkmxcTV45rjyHmzHGCxfxyhmu48Yx"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b","urls":["bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b","dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7","urls":["bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db","dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330","urls":["bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf","dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r"],"license":"MIT"},"src/AtomicBridgeCounterpartyMOVE.sol":{"keccak256":"0xb3885e04fe9d8a19b4a36a2c4976e3f3ca044d16addcfe8267f2ed4dbb9d785d","urls":["bzz-raw://9a73ecee45f2dbc4a26c722b8d4ab7fde39d262ba628d0c899aa79e3c7d0dbb6","dweb:/ipfs/QmdsTYt1JJjTXPA8Ykym3TFH7br3qcbqiwkKUwUF8apvrg"],"license":"MIT"},"src/AtomicBridgeInitiatorMOVE.sol":{"keccak256":"0x5b19ecc44068863e3cb0727feb40cf40e2704ad78c1cbcc46943e3dec0c2d276","urls":["bzz-raw://0489c79d358a014df14338776376728f35be92bc9d6338eae228077db567dc7c","dweb:/ipfs/QmXqVmMCHqZkSe41LSpoxoEiNRP7UJp5qU6bN3UykCQRzE"],"license":"MIT"},"src/IAtomicBridgeCounterpartyMOVE.sol":{"keccak256":"0x6c7993557da48f7178593831ebe14d6ecc4d8e9a08172616d293428954a66a29","urls":["bzz-raw://287fb06824eaeb5619d7f2e016803463cc4f6fd7fdbfa1264308ea8d8168a9d6","dweb:/ipfs/QmZUUjwLw48e9XKTVibqjC9mciNAezA2qUVsX2SRiunpoi"],"license":null},"src/IAtomicBridgeInitiatorMOVE.sol":{"keccak256":"0x3705cbaaf8910b786e5cb99d8d1bfa3f591add9a1d835703a69d6a77020ad841","urls":["bzz-raw://12cca43905283adf49be8a23853952b90be09d3ba38b583fd8c2821e97ad8c0a","dweb:/ipfs/QmaxHt6YUKb97dCz1rUjvjfM3XLcoLNvoFrUkDA6a77ER5"],"license":"MIT"},"src/MockMOVEToken.sol":{"keccak256":"0x71768bf12ff974ee8589bee8b951fa63c7db1f74f251c5997232643bc749a8e4","urls":["bzz-raw://38474add7fec1c814adf1ad614e4ca233b9f789f279690c698a3a94334c029cf","dweb:/ipfs/Qmah2K8YEmLqnKjXcGvbSD55sm61zkKVvNMhehmrj6VzBs"],"license":"MIT"}},"version":1},"id":42} diff --git a/protocol-units/bridge/service/abis/AtomicBridgeInitiatorMOVE.json b/protocol-units/bridge/service/abis/AtomicBridgeInitiatorMOVE.json index 08998b03a..0f2260f1c 100644 --- a/protocol-units/bridge/service/abis/AtomicBridgeInitiatorMOVE.json +++ b/protocol-units/bridge/service/abis/AtomicBridgeInitiatorMOVE.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"bridgeTransfers","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"originator","type":"address","internalType":"address"},{"name":"recipient","type":"bytes32","internalType":"bytes32"},{"name":"hashLock","type":"bytes32","internalType":"bytes32"},{"name":"timeLock","type":"uint256","internalType":"uint256"},{"name":"state","type":"uint8","internalType":"enum AtomicBridgeInitiatorMOVE.MessageState"}],"stateMutability":"view"},{"type":"function","name":"completeBridgeTransfer","inputs":[{"name":"bridgeTransferId","type":"bytes32","internalType":"bytes32"},{"name":"preImage","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"counterpartyAddress","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"_moveToken","type":"address","internalType":"address"},{"name":"owner","type":"address","internalType":"address"},{"name":"_timeLockDuration","type":"uint256","internalType":"uint256"},{"name":"_initialPoolBalance","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"initiateBridgeTransfer","inputs":[{"name":"moveAmount","type":"uint256","internalType":"uint256"},{"name":"recipient","type":"bytes32","internalType":"bytes32"},{"name":"hashLock","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"bridgeTransferId","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"initiatorTimeLockDuration","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"moveToken","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract ERC20Upgradeable"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"poolBalance","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"refundBridgeTransfer","inputs":[{"name":"bridgeTransferId","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setCounterpartyAddress","inputs":[{"name":"_counterpartyAddress","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"withdrawMOVE","inputs":[{"name":"recipient","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"BridgeTransferCompleted","inputs":[{"name":"_bridgeTransferId","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"pre_image","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"BridgeTransferInitiated","inputs":[{"name":"_bridgeTransferId","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"_originator","type":"address","indexed":true,"internalType":"address"},{"name":"_recipient","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"_hashLock","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"_timeLock","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"BridgeTransferRefunded","inputs":[{"name":"_bridgeTransferId","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"BridgeTransferHasBeenCompleted","inputs":[]},{"type":"error","name":"BridgeTransferInvalid","inputs":[]},{"type":"error","name":"BridgeTransferStateNotInitialized","inputs":[]},{"type":"error","name":"InsufficientMOVEBalance","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"InvalidSecret","inputs":[]},{"type":"error","name":"MOVETransferFailed","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"TimeLockNotExpired","inputs":[]},{"type":"error","name":"TimelockExpired","inputs":[]},{"type":"error","name":"Unauthorized","inputs":[]},{"type":"error","name":"ZeroAddress","inputs":[]},{"type":"error","name":"ZeroAmount","inputs":[]}],"bytecode":{"object":"0x6080604052348015600e575f80fd5b50610ecf8061001c5f395ff3fe608060405234801561000f575f80fd5b50600436106100e4575f3560e01c806396365d4411610088578063e0d9cbc411610063578063e0d9cbc4146101d1578063e20c95ec14610232578063eb990c5914610245578063f2fde38b14610258575f80fd5b806396365d44146101a25780639f8f8799146101ab578063cacfb161146101be575f80fd5b80632b3948bb116100c35780632b3948bb1461014e5780635780802014610157578063715018a61461016a5780638da5cb5b14610172575f80fd5b80621a153e146100e85780631a8849a4146100fd5780631f92c08e14610123575b5f80fd5b6100fb6100f6366004610ccf565b61026b565b005b61011061010b366004610cef565b6102de565b6040519081526020015b60405180910390f35b600254610136906001600160a01b031681565b6040516001600160a01b03909116815260200161011a565b61011060055481565b6100fb610165366004610d18565b610580565b6100fb610740565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b0316610136565b61011060015481565b6100fb6101b9366004610d2f565b610753565b6100fb6101cc366004610d4f565b6108c2565b6102206101df366004610d18565b5f6020819052908152604090208054600182015460028301546003840154600485015460059095015493946001600160a01b03909316939192909160ff1686565b60405161011a96959493929190610d8b565b600354610136906001600160a01b031681565b6100fb610253366004610de3565b6109ba565b6100fb610266366004610ccf565b610b4a565b610273610b87565b6001600160a01b0381166102bc5760405162461bcd60e51b815260206004820152600b60248201526a5a65726f4164647265737360a81b60448201526064015b60405180910390fd5b600280546001600160a01b0319166001600160a01b0392909216919091179055565b5f338461031a5760405162461bcd60e51b815260206004820152600a60248201526916995c9bd05b5bdd5b9d60b21b60448201526064016102b3565b845f0361033a57604051631f2a200560e01b815260040160405180910390fd5b6003546040516323b872dd60e01b81526001600160a01b03838116600483015230602483015260448201889052909116906323b872dd906064016020604051808303815f875af1158015610390573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103b49190610e22565b6103d157604051631a67cf2760e31b815260040160405180910390fd5b8460015f8282546103e29190610e55565b90915550506005546004805483928792879242915f61040083610e6e565b9091555060405160609690961b6bffffffffffffffffffffffff19166020870152603486019490945260548501929092526074840152609483015260b482015260d4016040516020818303038152906040528051906020012091506040518060c00160405280868152602001826001600160a01b03168152602001858152602001848152602001600554426104959190610e55565b81525f60209182018190528481528082526040908190208351815591830151600180840180546001600160a01b0319166001600160a01b039093169290921790915590830151600280840191909155606084015160038401556080840151600484015560a08401516005840180549193909260ff1990921691849081111561051f5761051f610d77565b021790555050600554604080518881526020810187905280820192909252518692506001600160a01b0384169185917f44e287be4fbd3a2dcc143a376301094fd2f809dcc2a8d3c09d0a0715224766c49181900360600190a4509392505050565b5f81815260208190526040812090600582015460ff1660028111156105a7576105a7610d77565b146105fe5760405162461bcd60e51b815260206004820152602160248201527f4272696467655472616e7366657253746174654e6f74496e697469616c697a656044820152601960fa1b60648201526084016102b3565b80600401544210156106475760405162461bcd60e51b8152602060048201526012602482015271151a5b59531bd8dad39bdd115e1c1a5c995960721b60448201526064016102b3565b60058101805460ff191660021790556003546001820154825460405163a9059cbb60e01b81526001600160a01b039283166004820152602481019190915291169063a9059cbb906044016020604051808303815f875af11580156106ad573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106d19190610e22565b6107125760405162461bcd60e51b81526020600482015260126024820152711353d591551c985b9cd9995c91985a5b195960721b60448201526064016102b3565b60405182907f4fee0a65c921e50a9623c3abe10a4067e49c03ef491e7b406dace7cb79c12c61905f90a25050565b610748610b87565b6107515f610be2565b565b61075b610b87565b5f82815260208190526040812090600582015460ff16600281111561078257610782610d77565b146107cf5760405162461bcd60e51b815260206004820152601e60248201527f4272696467655472616e736665724861734265656e436f6d706c65746564000060448201526064016102b3565b600381015460408051602081018590520160405160208183030381529060405280519060200120146108335760405162461bcd60e51b815260206004820152600d60248201526c125b9d985b1a5914d958dc995d609a1b60448201526064016102b3565b80600401544211156108795760405162461bcd60e51b815260206004820152600f60248201526e151a5b595b1bd8dad15e1c1a5c9959608a1b60448201526064016102b3565b60058101805460ff1916600117905560405182815283907f05ddc886acde01b77731bfad1dcfb6abf529f05c28ea66556fe87429bb2789ea9060200160405180910390a2505050565b6002546001600160a01b031633146108ec576040516282b42960e81b815260040160405180910390fd5b80600154101561090f576040516381a6aee360e01b815260040160405180910390fd5b8060015f8282546109209190610e86565b909155505060035460405163a9059cbb60e01b81526001600160a01b038481166004830152602482018490529091169063a9059cbb906044016020604051808303815f875af1158015610975573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109999190610e22565b6109b657604051631a67cf2760e31b815260040160405180910390fd5b5050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff16159067ffffffffffffffff165f811580156109ff5750825b90505f8267ffffffffffffffff166001148015610a1b5750303b155b905081158015610a29575080155b15610a475760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610a7157845460ff60401b1916600160401b1785555b6001600160a01b03891615801590610a9157506001600160a01b03881615155b610acb5760405162461bcd60e51b815260206004820152600b60248201526a5a65726f4164647265737360a81b60448201526064016102b3565b600380546001600160a01b0319166001600160a01b038b16179055610aef88610c52565b600587905560018690558315610b3f57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050505050565b610b52610b87565b6001600160a01b038116610b7b57604051631e4fbdf760e01b81525f60048201526024016102b3565b610b8481610be2565b50565b33610bb97f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316146107515760405163118cdaa760e01b81523360048201526024016102b3565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b610c5a610c63565b610b8481610cac565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff1661075157604051631afcd79f60e31b815260040160405180910390fd5b610b52610c63565b80356001600160a01b0381168114610cca575f80fd5b919050565b5f60208284031215610cdf575f80fd5b610ce882610cb4565b9392505050565b5f805f60608486031215610d01575f80fd5b505081359360208301359350604090920135919050565b5f60208284031215610d28575f80fd5b5035919050565b5f8060408385031215610d40575f80fd5b50508035926020909101359150565b5f8060408385031215610d60575f80fd5b610d6983610cb4565b946020939093013593505050565b634e487b7160e01b5f52602160045260245ffd5b8681526001600160a01b038616602082015260408101859052606081018490526080810183905260c0810160038310610dd257634e487b7160e01b5f52602160045260245ffd5b8260a0830152979650505050505050565b5f805f8060808587031215610df6575f80fd5b610dff85610cb4565b9350610e0d60208601610cb4565b93969395505050506040820135916060013590565b5f60208284031215610e32575f80fd5b81518015158114610ce8575f80fd5b634e487b7160e01b5f52601160045260245ffd5b80820180821115610e6857610e68610e41565b92915050565b5f60018201610e7f57610e7f610e41565b5060010190565b81810381811115610e6857610e68610e4156fea264697066735822122005f975a8a8fa8ee2ccdc98a7f0d922184b6276f4f8fd040834da1d1d34fa214d64736f6c634300081a0033","sourceMap":"392:4505:43:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f80fd5b50600436106100e4575f3560e01c806396365d4411610088578063e0d9cbc411610063578063e0d9cbc4146101d1578063e20c95ec14610232578063eb990c5914610245578063f2fde38b14610258575f80fd5b806396365d44146101a25780639f8f8799146101ab578063cacfb161146101be575f80fd5b80632b3948bb116100c35780632b3948bb1461014e5780635780802014610157578063715018a61461016a5780638da5cb5b14610172575f80fd5b80621a153e146100e85780631a8849a4146100fd5780631f92c08e14610123575b5f80fd5b6100fb6100f6366004610ccf565b61026b565b005b61011061010b366004610cef565b6102de565b6040519081526020015b60405180910390f35b600254610136906001600160a01b031681565b6040516001600160a01b03909116815260200161011a565b61011060055481565b6100fb610165366004610d18565b610580565b6100fb610740565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b0316610136565b61011060015481565b6100fb6101b9366004610d2f565b610753565b6100fb6101cc366004610d4f565b6108c2565b6102206101df366004610d18565b5f6020819052908152604090208054600182015460028301546003840154600485015460059095015493946001600160a01b03909316939192909160ff1686565b60405161011a96959493929190610d8b565b600354610136906001600160a01b031681565b6100fb610253366004610de3565b6109ba565b6100fb610266366004610ccf565b610b4a565b610273610b87565b6001600160a01b0381166102bc5760405162461bcd60e51b815260206004820152600b60248201526a5a65726f4164647265737360a81b60448201526064015b60405180910390fd5b600280546001600160a01b0319166001600160a01b0392909216919091179055565b5f338461031a5760405162461bcd60e51b815260206004820152600a60248201526916995c9bd05b5bdd5b9d60b21b60448201526064016102b3565b845f0361033a57604051631f2a200560e01b815260040160405180910390fd5b6003546040516323b872dd60e01b81526001600160a01b03838116600483015230602483015260448201889052909116906323b872dd906064016020604051808303815f875af1158015610390573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103b49190610e22565b6103d157604051631a67cf2760e31b815260040160405180910390fd5b8460015f8282546103e29190610e55565b90915550506005546004805483928792879242915f61040083610e6e565b9091555060405160609690961b6bffffffffffffffffffffffff19166020870152603486019490945260548501929092526074840152609483015260b482015260d4016040516020818303038152906040528051906020012091506040518060c00160405280868152602001826001600160a01b03168152602001858152602001848152602001600554426104959190610e55565b81525f60209182018190528481528082526040908190208351815591830151600180840180546001600160a01b0319166001600160a01b039093169290921790915590830151600280840191909155606084015160038401556080840151600484015560a08401516005840180549193909260ff1990921691849081111561051f5761051f610d77565b021790555050600554604080518881526020810187905280820192909252518692506001600160a01b0384169185917f44e287be4fbd3a2dcc143a376301094fd2f809dcc2a8d3c09d0a0715224766c49181900360600190a4509392505050565b5f81815260208190526040812090600582015460ff1660028111156105a7576105a7610d77565b146105fe5760405162461bcd60e51b815260206004820152602160248201527f4272696467655472616e7366657253746174654e6f74496e697469616c697a656044820152601960fa1b60648201526084016102b3565b80600401544210156106475760405162461bcd60e51b8152602060048201526012602482015271151a5b59531bd8dad39bdd115e1c1a5c995960721b60448201526064016102b3565b60058101805460ff191660021790556003546001820154825460405163a9059cbb60e01b81526001600160a01b039283166004820152602481019190915291169063a9059cbb906044016020604051808303815f875af11580156106ad573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106d19190610e22565b6107125760405162461bcd60e51b81526020600482015260126024820152711353d591551c985b9cd9995c91985a5b195960721b60448201526064016102b3565b60405182907f4fee0a65c921e50a9623c3abe10a4067e49c03ef491e7b406dace7cb79c12c61905f90a25050565b610748610b87565b6107515f610be2565b565b61075b610b87565b5f82815260208190526040812090600582015460ff16600281111561078257610782610d77565b146107cf5760405162461bcd60e51b815260206004820152601e60248201527f4272696467655472616e736665724861734265656e436f6d706c65746564000060448201526064016102b3565b600381015460408051602081018590520160405160208183030381529060405280519060200120146108335760405162461bcd60e51b815260206004820152600d60248201526c125b9d985b1a5914d958dc995d609a1b60448201526064016102b3565b80600401544211156108795760405162461bcd60e51b815260206004820152600f60248201526e151a5b595b1bd8dad15e1c1a5c9959608a1b60448201526064016102b3565b60058101805460ff1916600117905560405182815283907f05ddc886acde01b77731bfad1dcfb6abf529f05c28ea66556fe87429bb2789ea9060200160405180910390a2505050565b6002546001600160a01b031633146108ec576040516282b42960e81b815260040160405180910390fd5b80600154101561090f576040516381a6aee360e01b815260040160405180910390fd5b8060015f8282546109209190610e86565b909155505060035460405163a9059cbb60e01b81526001600160a01b038481166004830152602482018490529091169063a9059cbb906044016020604051808303815f875af1158015610975573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109999190610e22565b6109b657604051631a67cf2760e31b815260040160405180910390fd5b5050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff16159067ffffffffffffffff165f811580156109ff5750825b90505f8267ffffffffffffffff166001148015610a1b5750303b155b905081158015610a29575080155b15610a475760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610a7157845460ff60401b1916600160401b1785555b6001600160a01b03891615801590610a9157506001600160a01b03881615155b610acb5760405162461bcd60e51b815260206004820152600b60248201526a5a65726f4164647265737360a81b60448201526064016102b3565b600380546001600160a01b0319166001600160a01b038b16179055610aef88610c52565b600587905560018690558315610b3f57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050505050565b610b52610b87565b6001600160a01b038116610b7b57604051631e4fbdf760e01b81525f60048201526024016102b3565b610b8481610be2565b50565b33610bb97f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316146107515760405163118cdaa760e01b81523360048201526024016102b3565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b610c5a610c63565b610b8481610cac565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff1661075157604051631afcd79f60e31b815260040160405180910390fd5b610b52610c63565b80356001600160a01b0381168114610cca575f80fd5b919050565b5f60208284031215610cdf575f80fd5b610ce882610cb4565b9392505050565b5f805f60608486031215610d01575f80fd5b505081359360208301359350604090920135919050565b5f60208284031215610d28575f80fd5b5035919050565b5f8060408385031215610d40575f80fd5b50508035926020909101359150565b5f8060408385031215610d60575f80fd5b610d6983610cb4565b946020939093013593505050565b634e487b7160e01b5f52602160045260245ffd5b8681526001600160a01b038616602082015260408101859052606081018490526080810183905260c0810160038310610dd257634e487b7160e01b5f52602160045260245ffd5b8260a0830152979650505050505050565b5f805f8060808587031215610df6575f80fd5b610dff85610cb4565b9350610e0d60208601610cb4565b93969395505050506040820135916060013590565b5f60208284031215610e32575f80fd5b81518015158114610ce8575f80fd5b634e487b7160e01b5f52601160045260245ffd5b80820180821115610e6857610e68610e41565b92915050565b5f60018201610e7f57610e7f610e41565b5060010190565b81810381811115610e6857610e68610e4156fea264697066735822122005f975a8a8fa8ee2ccdc98a7f0d922184b6276f4f8fd040834da1d1d34fa214d64736f6c634300081a0033","sourceMap":"392:4505:43:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1825:208;;;;;;:::i;:::-;;:::i;:::-;;2039:1358;;;;;;:::i;:::-;;:::i;:::-;;;1000:25:49;;;988:2;973:18;2039:1358:43;;;;;;;;989:34;;;;;-1:-1:-1;;;;;989:34:43;;;;;;-1:-1:-1;;;;;1200:32:49;;;1182:51;;1170:2;1155:18;989:34:43;1036:203:49;1135:40:43;;;;;;3999:567;;;;;;:::i;:::-;;:::i;3155:101:23:-;;;:::i;2441:144::-;1313:22;2570:8;-1:-1:-1;;;;;2570:8:23;2441:144;;956:26:43;;;;;;3403:590;;;;;;:::i;:::-;;:::i;4572:323::-;;;;;;:::i;:::-;;:::i;855:57::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;855:57:43;;;;;;;;;;;;;;;;;;;;;;;;:::i;1029:33::-;;;;;-1:-1:-1;;;;;1029:33:43;;;1297:522;;;;;;:::i;:::-;;:::i;3405:215:23:-;;;;;;:::i;:::-;;:::i;1825:208:43:-;2334:13:23;:11;:13::i;:::-;-1:-1:-1;;;;;1924:34:43;::::1;1916:58;;;::::0;-1:-1:-1;;;1916:58:43;;4116:2:49;1916:58:43::1;::::0;::::1;4098:21:49::0;4155:2;4135:18;;;4128:30;-1:-1:-1;;;4174:18:49;;;4167:41;4225:18;;1916:58:43::1;;;;;;;;;1984:19;:42:::0;;-1:-1:-1;;;;;;1984:42:43::1;-1:-1:-1::0;;;;;1984:42:43;;;::::1;::::0;;;::::1;::::0;;1825:208::o;2039:1358::-;2162:24;2223:10;2264:14;2256:37;;;;-1:-1:-1;;;2256:37:43;;4456:2:49;2256:37:43;;;4438:21:49;4495:2;4475:18;;;4468:30;-1:-1:-1;;;4514:18:49;;;4507:40;4564:18;;2256:37:43;4254:334:49;2256:37:43;2350:10;2364:1;2350:15;2346:65;;2388:12;;-1:-1:-1;;;2388:12:43;;;;;;;;;;;2346:65;2492:9;;:61;;-1:-1:-1;;;2492:61:43;;-1:-1:-1;;;;;4813:32:49;;;2492:61:43;;;4795:51:49;2535:4:43;4862:18:49;;;4855:60;4931:18;;;4924:34;;;2492:9:43;;;;:22;;4768:18:49;;2492:61:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2487:120;;2576:20;;-1:-1:-1;;;2576:20:43;;;;;;;;;;;2487:120;2667:10;2652:11;;:25;;;;;;;:::i;:::-;;;;-1:-1:-1;;2856:25:43;;2900:5;:7;;2823:10;;2835:9;;2846:8;;2883:15;;2900:5;:7;;;:::i;:::-;;;;-1:-1:-1;2806:102:43;;5942:2:49;5938:15;;;;-1:-1:-1;;5934:53:49;2806:102:43;;;5922:66:49;6004:12;;;5997:28;;;;6041:12;;;6034:28;;;;6078:12;;;6071:28;6115:13;;;6108:29;6153:13;;;6146:29;6191:13;;2806:102:43;;;;;;;;;;;;2796:113;;;;;;2777:132;;2956:272;;;;;;;;2993:10;2956:272;;;;3029:10;-1:-1:-1;;;;;2956:272:43;;;;;3064:9;2956:272;;;;3097:8;2956:272;;;;3147:25;;3129:15;:43;;;;:::i;:::-;2956:272;;3193:24;2956:272;;;;;;;2920:33;;;;;;;;;;;:308;;;;;;;;;;;;;;-1:-1:-1;;;;;;2920:308:43;-1:-1:-1;;;;;2920:308:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2920:308:43;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;3331:25:43;;3244:113;;;6417:25:49;;;6473:2;6458:18;;6451:34;;;6501:18;;;6494:34;;;;3244:113:43;3298:9;;-1:-1:-1;;;;;;3244:113:43;;;3268:16;;3244:113;;;;;6405:2:49;3244:113:43;;;3367:23;2039:1358;;;;;:::o;3999:567::-;4074:37;4114:33;;;;;;;;;;;4165:20;;;;;;:48;;;;;;;;:::i;:::-;;4157:94;;;;-1:-1:-1;;;4157:94:43;;6741:2:49;4157:94:43;;;6723:21:49;6780:2;6760:18;;;6753:30;6819:34;6799:18;;;6792:62;-1:-1:-1;;;6870:18:49;;;6863:31;6911:19;;4157:94:43;6539:397:49;4157:94:43;4288:14;:23;;;4269:15;:42;;4261:73;;;;-1:-1:-1;;;4261:73:43;;7143:2:49;4261:73:43;;;7125:21:49;7182:2;7162:18;;;7155:30;-1:-1:-1;;;7201:18:49;;;7194:48;7259:18;;4261:73:43;6941:342:49;4261:73:43;4345:20;;;:44;;-1:-1:-1;;4345:44:43;4368:21;4345:44;;;4405:9;;4345:44;4424:25;;;4451:21;;4405:68;;-1:-1:-1;;;4405:68:43;;-1:-1:-1;;;;;4424:25:43;;;4405:68;;;7462:51:49;7529:18;;;7522:34;;;;4405:9:43;;;:18;;7435::49;;4405:68:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4400:103;;4475:28;;-1:-1:-1;;;4475:28:43;;7769:2:49;4475:28:43;;;7751:21:49;7808:2;7788:18;;;7781:30;-1:-1:-1;;;7827:18:49;;;7820:48;7885:18;;4475:28:43;7567:342:49;4400:103:43;4519:40;;4542:16;;4519:40;;;;;4064:502;3999:567;:::o;3155:101:23:-;2334:13;:11;:13::i;:::-;3219:30:::1;3246:1;3219:18;:30::i;:::-;3155:101::o:0;3403:590:43:-;2334:13:23;:11;:13::i;:::-;3508:37:43::1;3548:33:::0;;;::::1;::::0;;;;;;;3600:20:::1;::::0;::::1;::::0;::::1;;:48;::::0;::::1;;;;;;:::i;:::-;;3592:91;;;::::0;-1:-1:-1;;;3592:91:43;;8116:2:49;3592:91:43::1;::::0;::::1;8098:21:49::0;8155:2;8135:18;;;8128:30;8194:32;8174:18;;;8167:60;8244:18;;3592:91:43::1;7914:354:49::0;3592:91:43::1;3742:23;::::0;::::1;::::0;3711:26:::1;::::0;;::::1;::::0;::::1;8402:19:49::0;;;8437:12;3711:26:43::1;;;;;;;;;;;;3701:37;;;;;;:64;3693:90;;;::::0;-1:-1:-1;;;3693:90:43;;8662:2:49;3693:90:43::1;::::0;::::1;8644:21:49::0;8701:2;8681:18;;;8674:30;-1:-1:-1;;;8720:18:49;;;8713:43;8773:18;;3693:90:43::1;8460:337:49::0;3693:90:43::1;3820:14;:23;;;3801:15;:42;;3793:70;;;::::0;-1:-1:-1;;;3793:70:43;;9004:2:49;3793:70:43::1;::::0;::::1;8986:21:49::0;9043:2;9023:18;;;9016:30;-1:-1:-1;;;9062:18:49;;;9055:45;9117:18;;3793:70:43::1;8802:339:49::0;3793:70:43::1;3874:20;::::0;::::1;:45:::0;;-1:-1:-1;;3874:45:43::1;3897:22;3874:45;::::0;;3935:51:::1;::::0;1000:25:49;;;3959:16:43;;3935:51:::1;::::0;988:2:49;973:18;3935:51:43::1;;;;;;;3498:495;3403:590:::0;;:::o;4572:323::-;4666:19;;-1:-1:-1;;;;;4666:19:43;4652:10;:33;4648:60;;4694:14;;-1:-1:-1;;;4694:14:43;;;;;;;;;;;4648:60;4736:6;4722:11;;:20;4718:58;;;4751:25;;-1:-1:-1;;;4751:25:43;;;;;;;;;;;4718:58;4801:6;4786:11;;:21;;;;;;;:::i;:::-;;;;-1:-1:-1;;4822:9:43;;:37;;-1:-1:-1;;;4822:37:43;;-1:-1:-1;;;;;7480:32:49;;;4822:37:43;;;7462:51:49;7529:18;;;7522:34;;;4822:9:43;;;;:18;;7435::49;;4822:37:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4817:71;;4868:20;;-1:-1:-1;;;4868:20:43;;;;;;;;;;;4817:71;4572:323;;:::o;1297:522::-;8870:21:24;4302:15;;-1:-1:-1;;;4302:15:24;;;;4301:16;;4348:14;;4158:30;4726:16;;:34;;;;;4746:14;4726:34;4706:54;;4770:17;4790:11;:16;;4805:1;4790:16;:50;;;;-1:-1:-1;4818:4:24;4810:25;:30;4790:50;4770:70;;4856:12;4855:13;:30;;;;;4873:12;4872:13;4855:30;4851:91;;;4908:23;;-1:-1:-1;;;4908:23:24;;;;;;;;;;;4851:91;4951:18;;-1:-1:-1;;4951:18:24;4968:1;4951:18;;;4979:67;;;;5013:22;;-1:-1:-1;;;;5013:22:24;-1:-1:-1;;;5013:22:24;;;4979:67;-1:-1:-1;;;;;1483:24:43;::::1;::::0;;::::1;::::0;:47:::1;;-1:-1:-1::0;;;;;;1511:19:43;::::1;::::0;::::1;1483:47;1475:71;;;::::0;-1:-1:-1;;;1475:71:43;;4116:2:49;1475:71:43::1;::::0;::::1;4098:21:49::0;4155:2;4135:18;;;4128:30;-1:-1:-1;;;4174:18:49;;;4167:41;4225:18;;1475:71:43::1;3914:335:49::0;1475:71:43::1;1556:9;:40:::0;;-1:-1:-1;;;;;;1556:40:43::1;-1:-1:-1::0;;;;;1556:40:43;::::1;;::::0;;1606:21:::1;1621:5:::0;1606:14:::1;:21::i;:::-;1683:25;:45:::0;;;1779:11:::1;:33:::0;;;5066:101:24;;;;5100:23;;-1:-1:-1;;;;5100:23:24;;;5142:14;;-1:-1:-1;9432:50:49;;5142:14:24;;9420:2:49;9405:18;5142:14:24;;;;;;;5066:101;4092:1081;;;;;1297:522:43;;;;:::o;3405:215:23:-;2334:13;:11;:13::i;:::-;-1:-1:-1;;;;;3489:22:23;::::1;3485:91;;3534:31;::::0;-1:-1:-1;;;3534:31:23;;3562:1:::1;3534:31;::::0;::::1;1182:51:49::0;1155:18;;3534:31:23::1;1036:203:49::0;3485:91:23::1;3585:28;3604:8;3585:18;:28::i;:::-;3405:215:::0;:::o;2658:162::-;966:10:26;2717:7:23;1313:22;2570:8;-1:-1:-1;;;;;2570:8:23;;2441:144;2717:7;-1:-1:-1;;;;;2717:23:23;;2713:101;;2763:40;;-1:-1:-1;;;2763:40:23;;966:10:26;2763:40:23;;;1182:51:49;1155:18;;2763:40:23;1036:203:49;3774:248:23;1313:22;3923:8;;-1:-1:-1;;;;;;3941:19:23;;-1:-1:-1;;;;;3941:19:23;;;;;;;;3975:40;;3923:8;;;;;3975:40;;3847:24;;3975:40;3837:185;;3774:248;:::o;1847:127::-;6931:20:24;:18;:20::i;:::-;1929:38:23::1;1954:12;1929:24;:38::i;7084:141:24:-:0;8870:21;8560:40;-1:-1:-1;;;8560:40:24;;;;7146:73;;7191:17;;-1:-1:-1;;;7191:17:24;;;;;;;;;;;1980:235:23;6931:20:24;:18;:20::i;14:173:49:-;82:20;;-1:-1:-1;;;;;131:31:49;;121:42;;111:70;;177:1;174;167:12;111:70;14:173;;;:::o;192:186::-;251:6;304:2;292:9;283:7;279:23;275:32;272:52;;;320:1;317;310:12;272:52;343:29;362:9;343:29;:::i;:::-;333:39;192:186;-1:-1:-1;;;192:186:49:o;383:466::-;460:6;468;476;529:2;517:9;508:7;504:23;500:32;497:52;;;545:1;542;535:12;497:52;-1:-1:-1;;590:23:49;;;710:2;695:18;;682:32;;-1:-1:-1;813:2:49;798:18;;;785:32;;383:466;-1:-1:-1;383:466:49:o;1426:226::-;1485:6;1538:2;1526:9;1517:7;1513:23;1509:32;1506:52;;;1554:1;1551;1544:12;1506:52;-1:-1:-1;1599:23:49;;1426:226;-1:-1:-1;1426:226:49:o;1657:346::-;1725:6;1733;1786:2;1774:9;1765:7;1761:23;1757:32;1754:52;;;1802:1;1799;1792:12;1754:52;-1:-1:-1;;1847:23:49;;;1967:2;1952:18;;;1939:32;;-1:-1:-1;1657:346:49:o;2008:300::-;2076:6;2084;2137:2;2125:9;2116:7;2112:23;2108:32;2105:52;;;2153:1;2150;2143:12;2105:52;2176:29;2195:9;2176:29;:::i;:::-;2166:39;2274:2;2259:18;;;;2246:32;;-1:-1:-1;;;2008:300:49:o;2313:127::-;2374:10;2369:3;2365:20;2362:1;2355:31;2405:4;2402:1;2395:15;2429:4;2426:1;2419:15;2445:730;2748:25;;;-1:-1:-1;;;;;2809:32:49;;2804:2;2789:18;;2782:60;2873:2;2858:18;;2851:34;;;2916:2;2901:18;;2894:34;;;2959:3;2944:19;;2937:35;;;2735:3;2720:19;;3002:1;2991:13;;2981:144;;3047:10;3042:3;3038:20;3035:1;3028:31;3082:4;3079:1;3072:15;3110:4;3107:1;3100:15;2981:144;3162:6;3156:3;3145:9;3141:19;3134:35;2445:730;;;;;;;;;:::o;3414:495::-;3500:6;3508;3516;3524;3577:3;3565:9;3556:7;3552:23;3548:33;3545:53;;;3594:1;3591;3584:12;3545:53;3617:29;3636:9;3617:29;:::i;:::-;3607:39;;3665:38;3699:2;3688:9;3684:18;3665:38;:::i;:::-;3414:495;;3655:48;;-1:-1:-1;;;;3772:2:49;3757:18;;3744:32;;3873:2;3858:18;3845:32;;3414:495::o;4969:277::-;5036:6;5089:2;5077:9;5068:7;5064:23;5060:32;5057:52;;;5105:1;5102;5095:12;5057:52;5137:9;5131:16;5190:5;5183:13;5176:21;5169:5;5166:32;5156:60;;5212:1;5209;5202:12;5251:127;5312:10;5307:3;5303:20;5300:1;5293:31;5343:4;5340:1;5333:15;5367:4;5364:1;5357:15;5383:125;5448:9;;;5469:10;;;5466:36;;;5482:18;;:::i;:::-;5383:125;;;;:::o;5513:135::-;5552:3;5573:17;;;5570:43;;5593:18;;:::i;:::-;-1:-1:-1;5640:1:49;5629:13;;5513:135::o;9146:128::-;9213:9;;;9234:11;;;9231:37;;;9248:18;;:::i","linkReferences":{}},"methodIdentifiers":{"bridgeTransfers(bytes32)":"e0d9cbc4","completeBridgeTransfer(bytes32,bytes32)":"9f8f8799","counterpartyAddress()":"1f92c08e","initialize(address,address,uint256,uint256)":"eb990c59","initiateBridgeTransfer(uint256,bytes32,bytes32)":"1a8849a4","initiatorTimeLockDuration()":"2b3948bb","moveToken()":"e20c95ec","owner()":"8da5cb5b","poolBalance()":"96365d44","refundBridgeTransfer(bytes32)":"57808020","renounceOwnership()":"715018a6","setCounterpartyAddress(address)":"001a153e","transferOwnership(address)":"f2fde38b","withdrawMOVE(address,uint256)":"cacfb161"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"BridgeTransferHasBeenCompleted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BridgeTransferInvalid\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BridgeTransferStateNotInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientMOVEBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidSecret\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MOVETransferFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TimeLockNotExpired\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TimelockExpired\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroAmount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_bridgeTransferId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"pre_image\",\"type\":\"bytes32\"}],\"name\":\"BridgeTransferCompleted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_bridgeTransferId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_originator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_recipient\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"_hashLock\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_timeLock\",\"type\":\"uint256\"}],\"name\":\"BridgeTransferInitiated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_bridgeTransferId\",\"type\":\"bytes32\"}],\"name\":\"BridgeTransferRefunded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"bridgeTransfers\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"originator\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"recipient\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"hashLock\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"timeLock\",\"type\":\"uint256\"},{\"internalType\":\"enum AtomicBridgeInitiatorMOVE.MessageState\",\"name\":\"state\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"bridgeTransferId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"preImage\",\"type\":\"bytes32\"}],\"name\":\"completeBridgeTransfer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"counterpartyAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_moveToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_timeLockDuration\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_initialPoolBalance\",\"type\":\"uint256\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"moveAmount\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"recipient\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"hashLock\",\"type\":\"bytes32\"}],\"name\":\"initiateBridgeTransfer\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"bridgeTransferId\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"initiatorTimeLockDuration\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"moveToken\",\"outputs\":[{\"internalType\":\"contract ERC20Upgradeable\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"poolBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"bridgeTransferId\",\"type\":\"bytes32\"}],\"name\":\"refundBridgeTransfer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_counterpartyAddress\",\"type\":\"address\"}],\"name\":\"setCounterpartyAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdrawMOVE\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"}},\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/AtomicBridgeInitiatorMOVE.sol\":\"AtomicBridgeInitiatorMOVE\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts-upgradeable/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol\":{\"keccak256\":\"0xbb96dc9c468170c3224126e953de917e06332ec5909a3d85e6e5bb0df10c5139\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d14e6486e127e7e31c2ffccfc212c7ebaaecf8fb05677575128b449ee113def2\",\"dweb:/ipfs/QmabvyfStwBcum8mGfkmxcTV45rjyHmzHGCxfxyhmu48Yx\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf\",\"dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r\"]},\"src/AtomicBridgeInitiatorMOVE.sol\":{\"keccak256\":\"0x5b19ecc44068863e3cb0727feb40cf40e2704ad78c1cbcc46943e3dec0c2d276\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0489c79d358a014df14338776376728f35be92bc9d6338eae228077db567dc7c\",\"dweb:/ipfs/QmXqVmMCHqZkSe41LSpoxoEiNRP7UJp5qU6bN3UykCQRzE\"]},\"src/IAtomicBridgeInitiatorMOVE.sol\":{\"keccak256\":\"0x3705cbaaf8910b786e5cb99d8d1bfa3f591add9a1d835703a69d6a77020ad841\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12cca43905283adf49be8a23853952b90be09d3ba38b583fd8c2821e97ad8c0a\",\"dweb:/ipfs/QmaxHt6YUKb97dCz1rUjvjfM3XLcoLNvoFrUkDA6a77ER5\"]},\"src/MockMOVEToken.sol\":{\"keccak256\":\"0x71768bf12ff974ee8589bee8b951fa63c7db1f74f251c5997232643bc749a8e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://38474add7fec1c814adf1ad614e4ca233b9f789f279690c698a3a94334c029cf\",\"dweb:/ipfs/Qmah2K8YEmLqnKjXcGvbSD55sm61zkKVvNMhehmrj6VzBs\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"BridgeTransferHasBeenCompleted"},{"inputs":[],"type":"error","name":"BridgeTransferInvalid"},{"inputs":[],"type":"error","name":"BridgeTransferStateNotInitialized"},{"inputs":[],"type":"error","name":"InsufficientMOVEBalance"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"InvalidSecret"},{"inputs":[],"type":"error","name":"MOVETransferFailed"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[],"type":"error","name":"TimeLockNotExpired"},{"inputs":[],"type":"error","name":"TimelockExpired"},{"inputs":[],"type":"error","name":"Unauthorized"},{"inputs":[],"type":"error","name":"ZeroAddress"},{"inputs":[],"type":"error","name":"ZeroAmount"},{"inputs":[{"internalType":"bytes32","name":"_bridgeTransferId","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"pre_image","type":"bytes32","indexed":false}],"type":"event","name":"BridgeTransferCompleted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"_bridgeTransferId","type":"bytes32","indexed":true},{"internalType":"address","name":"_originator","type":"address","indexed":true},{"internalType":"bytes32","name":"_recipient","type":"bytes32","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"bytes32","name":"_hashLock","type":"bytes32","indexed":false},{"internalType":"uint256","name":"_timeLock","type":"uint256","indexed":false}],"type":"event","name":"BridgeTransferInitiated","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"_bridgeTransferId","type":"bytes32","indexed":true}],"type":"event","name":"BridgeTransferRefunded","anonymous":false},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","name":"bridgeTransfers","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"originator","type":"address"},{"internalType":"bytes32","name":"recipient","type":"bytes32"},{"internalType":"bytes32","name":"hashLock","type":"bytes32"},{"internalType":"uint256","name":"timeLock","type":"uint256"},{"internalType":"enum AtomicBridgeInitiatorMOVE.MessageState","name":"state","type":"uint8"}]},{"inputs":[{"internalType":"bytes32","name":"bridgeTransferId","type":"bytes32"},{"internalType":"bytes32","name":"preImage","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"completeBridgeTransfer"},{"inputs":[],"stateMutability":"view","type":"function","name":"counterpartyAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_moveToken","type":"address"},{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"_timeLockDuration","type":"uint256"},{"internalType":"uint256","name":"_initialPoolBalance","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"uint256","name":"moveAmount","type":"uint256"},{"internalType":"bytes32","name":"recipient","type":"bytes32"},{"internalType":"bytes32","name":"hashLock","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"initiateBridgeTransfer","outputs":[{"internalType":"bytes32","name":"bridgeTransferId","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"initiatorTimeLockDuration","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"moveToken","outputs":[{"internalType":"contract ERC20Upgradeable","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"poolBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"bridgeTransferId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"refundBridgeTransfer"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"_counterpartyAddress","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setCounterpartyAddress"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"withdrawMOVE"}],"devdoc":{"kind":"dev","methods":{"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts-upgradeable/lib/halmos-cheatcodes/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/AtomicBridgeInitiatorMOVE.sol":"AtomicBridgeInitiatorMOVE"},"evmVersion":"cancun","libraries":{}},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a","urls":["bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6","dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol":{"keccak256":"0xbb96dc9c468170c3224126e953de917e06332ec5909a3d85e6e5bb0df10c5139","urls":["bzz-raw://d14e6486e127e7e31c2ffccfc212c7ebaaecf8fb05677575128b449ee113def2","dweb:/ipfs/QmabvyfStwBcum8mGfkmxcTV45rjyHmzHGCxfxyhmu48Yx"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b","urls":["bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b","dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7","urls":["bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db","dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330","urls":["bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf","dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r"],"license":"MIT"},"src/AtomicBridgeInitiatorMOVE.sol":{"keccak256":"0x5b19ecc44068863e3cb0727feb40cf40e2704ad78c1cbcc46943e3dec0c2d276","urls":["bzz-raw://0489c79d358a014df14338776376728f35be92bc9d6338eae228077db567dc7c","dweb:/ipfs/QmXqVmMCHqZkSe41LSpoxoEiNRP7UJp5qU6bN3UykCQRzE"],"license":"MIT"},"src/IAtomicBridgeInitiatorMOVE.sol":{"keccak256":"0x3705cbaaf8910b786e5cb99d8d1bfa3f591add9a1d835703a69d6a77020ad841","urls":["bzz-raw://12cca43905283adf49be8a23853952b90be09d3ba38b583fd8c2821e97ad8c0a","dweb:/ipfs/QmaxHt6YUKb97dCz1rUjvjfM3XLcoLNvoFrUkDA6a77ER5"],"license":"MIT"},"src/MockMOVEToken.sol":{"keccak256":"0x71768bf12ff974ee8589bee8b951fa63c7db1f74f251c5997232643bc749a8e4","urls":["bzz-raw://38474add7fec1c814adf1ad614e4ca233b9f789f279690c698a3a94334c029cf","dweb:/ipfs/Qmah2K8YEmLqnKjXcGvbSD55sm61zkKVvNMhehmrj6VzBs"],"license":"MIT"}},"version":1},"id":43} \ No newline at end of file +{"abi":[{"type":"function","name":"bridgeTransfers","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"originator","type":"address","internalType":"address"},{"name":"recipient","type":"bytes32","internalType":"bytes32"},{"name":"hashLock","type":"bytes32","internalType":"bytes32"},{"name":"timeLock","type":"uint256","internalType":"uint256"},{"name":"state","type":"uint8","internalType":"enum AtomicBridgeInitiatorMOVE.MessageState"}],"stateMutability":"view"},{"type":"function","name":"completeBridgeTransfer","inputs":[{"name":"bridgeTransferId","type":"bytes32","internalType":"bytes32"},{"name":"preImage","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"counterpartyAddress","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"_moveToken","type":"address","internalType":"address"},{"name":"owner","type":"address","internalType":"address"},{"name":"_timeLockDuration","type":"uint256","internalType":"uint256"},{"name":"_initialPoolBalance","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"initiateBridgeTransfer","inputs":[{"name":"moveAmount","type":"uint256","internalType":"uint256"},{"name":"recipient","type":"bytes32","internalType":"bytes32"},{"name":"hashLock","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"bridgeTransferId","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"initiatorTimeLockDuration","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"moveToken","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract ERC20Upgradeable"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"poolBalance","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"refundBridgeTransfer","inputs":[{"name":"bridgeTransferId","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setCounterpartyAddress","inputs":[{"name":"_counterpartyAddress","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"withdrawMOVE","inputs":[{"name":"recipient","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"BridgeTransferCompleted","inputs":[{"name":"_bridgeTransferId","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"pre_image","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"BridgeTransferInitiated","inputs":[{"name":"_bridgeTransferId","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"_originator","type":"address","indexed":true,"internalType":"address"},{"name":"_recipient","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"_hashLock","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"_timeLock","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"BridgeTransferRefunded","inputs":[{"name":"_bridgeTransferId","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"BridgeTransferHasBeenCompleted","inputs":[]},{"type":"error","name":"BridgeTransferInvalid","inputs":[]},{"type":"error","name":"BridgeTransferStateNotInitialized","inputs":[]},{"type":"error","name":"InsufficientMOVEBalance","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"InvalidSecret","inputs":[]},{"type":"error","name":"MOVETransferFailed","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"TimeLockNotExpired","inputs":[]},{"type":"error","name":"TimelockExpired","inputs":[]},{"type":"error","name":"Unauthorized","inputs":[]},{"type":"error","name":"ZeroAddress","inputs":[]},{"type":"error","name":"ZeroAmount","inputs":[]}],"bytecode":{"object":"0x6080604052348015600e575f80fd5b50610ecf8061001c5f395ff3fe608060405234801561000f575f80fd5b50600436106100e4575f3560e01c806396365d4411610088578063e0d9cbc411610063578063e0d9cbc4146101d1578063e20c95ec14610232578063eb990c5914610245578063f2fde38b14610258575f80fd5b806396365d44146101a25780639f8f8799146101ab578063cacfb161146101be575f80fd5b80632b3948bb116100c35780632b3948bb1461014e5780635780802014610157578063715018a61461016a5780638da5cb5b14610172575f80fd5b80621a153e146100e85780631a8849a4146100fd5780631f92c08e14610123575b5f80fd5b6100fb6100f6366004610ccf565b61026b565b005b61011061010b366004610cef565b6102de565b6040519081526020015b60405180910390f35b600254610136906001600160a01b031681565b6040516001600160a01b03909116815260200161011a565b61011060055481565b6100fb610165366004610d18565b610580565b6100fb610740565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b0316610136565b61011060015481565b6100fb6101b9366004610d2f565b610753565b6100fb6101cc366004610d4f565b6108c2565b6102206101df366004610d18565b5f6020819052908152604090208054600182015460028301546003840154600485015460059095015493946001600160a01b03909316939192909160ff1686565b60405161011a96959493929190610d8b565b600354610136906001600160a01b031681565b6100fb610253366004610de3565b6109ba565b6100fb610266366004610ccf565b610b4a565b610273610b87565b6001600160a01b0381166102bc5760405162461bcd60e51b815260206004820152600b60248201526a5a65726f4164647265737360a81b60448201526064015b60405180910390fd5b600280546001600160a01b0319166001600160a01b0392909216919091179055565b5f338461031a5760405162461bcd60e51b815260206004820152600a60248201526916995c9bd05b5bdd5b9d60b21b60448201526064016102b3565b845f0361033a57604051631f2a200560e01b815260040160405180910390fd5b6003546040516323b872dd60e01b81526001600160a01b03838116600483015230602483015260448201889052909116906323b872dd906064016020604051808303815f875af1158015610390573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103b49190610e22565b6103d157604051631a67cf2760e31b815260040160405180910390fd5b8460015f8282546103e29190610e55565b90915550506005546004805483928792879242915f61040083610e6e565b9091555060405160609690961b6bffffffffffffffffffffffff19166020870152603486019490945260548501929092526074840152609483015260b482015260d4016040516020818303038152906040528051906020012091506040518060c00160405280868152602001826001600160a01b03168152602001858152602001848152602001600554426104959190610e55565b81525f60209182018190528481528082526040908190208351815591830151600180840180546001600160a01b0319166001600160a01b039093169290921790915590830151600280840191909155606084015160038401556080840151600484015560a08401516005840180549193909260ff1990921691849081111561051f5761051f610d77565b021790555050600554604080518881526020810187905280820192909252518692506001600160a01b0384169185917f44e287be4fbd3a2dcc143a376301094fd2f809dcc2a8d3c09d0a0715224766c49181900360600190a4509392505050565b5f81815260208190526040812090600582015460ff1660028111156105a7576105a7610d77565b146105fe5760405162461bcd60e51b815260206004820152602160248201527f4272696467655472616e7366657253746174654e6f74496e697469616c697a656044820152601960fa1b60648201526084016102b3565b80600401544210156106475760405162461bcd60e51b8152602060048201526012602482015271151a5b59531bd8dad39bdd115e1c1a5c995960721b60448201526064016102b3565b60058101805460ff191660021790556003546001820154825460405163a9059cbb60e01b81526001600160a01b039283166004820152602481019190915291169063a9059cbb906044016020604051808303815f875af11580156106ad573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106d19190610e22565b6107125760405162461bcd60e51b81526020600482015260126024820152711353d591551c985b9cd9995c91985a5b195960721b60448201526064016102b3565b60405182907f4fee0a65c921e50a9623c3abe10a4067e49c03ef491e7b406dace7cb79c12c61905f90a25050565b610748610b87565b6107515f610be2565b565b61075b610b87565b5f82815260208190526040812090600582015460ff16600281111561078257610782610d77565b146107cf5760405162461bcd60e51b815260206004820152601e60248201527f4272696467655472616e736665724861734265656e436f6d706c65746564000060448201526064016102b3565b600381015460408051602081018590520160405160208183030381529060405280519060200120146108335760405162461bcd60e51b815260206004820152600d60248201526c125b9d985b1a5914d958dc995d609a1b60448201526064016102b3565b80600401544211156108795760405162461bcd60e51b815260206004820152600f60248201526e151a5b595b1bd8dad15e1c1a5c9959608a1b60448201526064016102b3565b60058101805460ff1916600117905560405182815283907f05ddc886acde01b77731bfad1dcfb6abf529f05c28ea66556fe87429bb2789ea9060200160405180910390a2505050565b6002546001600160a01b031633146108ec576040516282b42960e81b815260040160405180910390fd5b80600154101561090f576040516381a6aee360e01b815260040160405180910390fd5b8060015f8282546109209190610e86565b909155505060035460405163a9059cbb60e01b81526001600160a01b038481166004830152602482018490529091169063a9059cbb906044016020604051808303815f875af1158015610975573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109999190610e22565b6109b657604051631a67cf2760e31b815260040160405180910390fd5b5050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff16159067ffffffffffffffff165f811580156109ff5750825b90505f8267ffffffffffffffff166001148015610a1b5750303b155b905081158015610a29575080155b15610a475760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610a7157845460ff60401b1916600160401b1785555b6001600160a01b03891615801590610a9157506001600160a01b03881615155b610acb5760405162461bcd60e51b815260206004820152600b60248201526a5a65726f4164647265737360a81b60448201526064016102b3565b600380546001600160a01b0319166001600160a01b038b16179055610aef88610c52565b600587905560018690558315610b3f57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050505050565b610b52610b87565b6001600160a01b038116610b7b57604051631e4fbdf760e01b81525f60048201526024016102b3565b610b8481610be2565b50565b33610bb97f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316146107515760405163118cdaa760e01b81523360048201526024016102b3565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b610c5a610c63565b610b8481610cac565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff1661075157604051631afcd79f60e31b815260040160405180910390fd5b610b52610c63565b80356001600160a01b0381168114610cca575f80fd5b919050565b5f60208284031215610cdf575f80fd5b610ce882610cb4565b9392505050565b5f805f60608486031215610d01575f80fd5b505081359360208301359350604090920135919050565b5f60208284031215610d28575f80fd5b5035919050565b5f8060408385031215610d40575f80fd5b50508035926020909101359150565b5f8060408385031215610d60575f80fd5b610d6983610cb4565b946020939093013593505050565b634e487b7160e01b5f52602160045260245ffd5b8681526001600160a01b038616602082015260408101859052606081018490526080810183905260c0810160038310610dd257634e487b7160e01b5f52602160045260245ffd5b8260a0830152979650505050505050565b5f805f8060808587031215610df6575f80fd5b610dff85610cb4565b9350610e0d60208601610cb4565b93969395505050506040820135916060013590565b5f60208284031215610e32575f80fd5b81518015158114610ce8575f80fd5b634e487b7160e01b5f52601160045260245ffd5b80820180821115610e6857610e68610e41565b92915050565b5f60018201610e7f57610e7f610e41565b5060010190565b81810381811115610e6857610e68610e4156fea264697066735822122005f975a8a8fa8ee2ccdc98a7f0d922184b6276f4f8fd040834da1d1d34fa214d64736f6c634300081a0033","sourceMap":"392:4505:43:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561000f575f80fd5b50600436106100e4575f3560e01c806396365d4411610088578063e0d9cbc411610063578063e0d9cbc4146101d1578063e20c95ec14610232578063eb990c5914610245578063f2fde38b14610258575f80fd5b806396365d44146101a25780639f8f8799146101ab578063cacfb161146101be575f80fd5b80632b3948bb116100c35780632b3948bb1461014e5780635780802014610157578063715018a61461016a5780638da5cb5b14610172575f80fd5b80621a153e146100e85780631a8849a4146100fd5780631f92c08e14610123575b5f80fd5b6100fb6100f6366004610ccf565b61026b565b005b61011061010b366004610cef565b6102de565b6040519081526020015b60405180910390f35b600254610136906001600160a01b031681565b6040516001600160a01b03909116815260200161011a565b61011060055481565b6100fb610165366004610d18565b610580565b6100fb610740565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b0316610136565b61011060015481565b6100fb6101b9366004610d2f565b610753565b6100fb6101cc366004610d4f565b6108c2565b6102206101df366004610d18565b5f6020819052908152604090208054600182015460028301546003840154600485015460059095015493946001600160a01b03909316939192909160ff1686565b60405161011a96959493929190610d8b565b600354610136906001600160a01b031681565b6100fb610253366004610de3565b6109ba565b6100fb610266366004610ccf565b610b4a565b610273610b87565b6001600160a01b0381166102bc5760405162461bcd60e51b815260206004820152600b60248201526a5a65726f4164647265737360a81b60448201526064015b60405180910390fd5b600280546001600160a01b0319166001600160a01b0392909216919091179055565b5f338461031a5760405162461bcd60e51b815260206004820152600a60248201526916995c9bd05b5bdd5b9d60b21b60448201526064016102b3565b845f0361033a57604051631f2a200560e01b815260040160405180910390fd5b6003546040516323b872dd60e01b81526001600160a01b03838116600483015230602483015260448201889052909116906323b872dd906064016020604051808303815f875af1158015610390573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103b49190610e22565b6103d157604051631a67cf2760e31b815260040160405180910390fd5b8460015f8282546103e29190610e55565b90915550506005546004805483928792879242915f61040083610e6e565b9091555060405160609690961b6bffffffffffffffffffffffff19166020870152603486019490945260548501929092526074840152609483015260b482015260d4016040516020818303038152906040528051906020012091506040518060c00160405280868152602001826001600160a01b03168152602001858152602001848152602001600554426104959190610e55565b81525f60209182018190528481528082526040908190208351815591830151600180840180546001600160a01b0319166001600160a01b039093169290921790915590830151600280840191909155606084015160038401556080840151600484015560a08401516005840180549193909260ff1990921691849081111561051f5761051f610d77565b021790555050600554604080518881526020810187905280820192909252518692506001600160a01b0384169185917f44e287be4fbd3a2dcc143a376301094fd2f809dcc2a8d3c09d0a0715224766c49181900360600190a4509392505050565b5f81815260208190526040812090600582015460ff1660028111156105a7576105a7610d77565b146105fe5760405162461bcd60e51b815260206004820152602160248201527f4272696467655472616e7366657253746174654e6f74496e697469616c697a656044820152601960fa1b60648201526084016102b3565b80600401544210156106475760405162461bcd60e51b8152602060048201526012602482015271151a5b59531bd8dad39bdd115e1c1a5c995960721b60448201526064016102b3565b60058101805460ff191660021790556003546001820154825460405163a9059cbb60e01b81526001600160a01b039283166004820152602481019190915291169063a9059cbb906044016020604051808303815f875af11580156106ad573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106d19190610e22565b6107125760405162461bcd60e51b81526020600482015260126024820152711353d591551c985b9cd9995c91985a5b195960721b60448201526064016102b3565b60405182907f4fee0a65c921e50a9623c3abe10a4067e49c03ef491e7b406dace7cb79c12c61905f90a25050565b610748610b87565b6107515f610be2565b565b61075b610b87565b5f82815260208190526040812090600582015460ff16600281111561078257610782610d77565b146107cf5760405162461bcd60e51b815260206004820152601e60248201527f4272696467655472616e736665724861734265656e436f6d706c65746564000060448201526064016102b3565b600381015460408051602081018590520160405160208183030381529060405280519060200120146108335760405162461bcd60e51b815260206004820152600d60248201526c125b9d985b1a5914d958dc995d609a1b60448201526064016102b3565b80600401544211156108795760405162461bcd60e51b815260206004820152600f60248201526e151a5b595b1bd8dad15e1c1a5c9959608a1b60448201526064016102b3565b60058101805460ff1916600117905560405182815283907f05ddc886acde01b77731bfad1dcfb6abf529f05c28ea66556fe87429bb2789ea9060200160405180910390a2505050565b6002546001600160a01b031633146108ec576040516282b42960e81b815260040160405180910390fd5b80600154101561090f576040516381a6aee360e01b815260040160405180910390fd5b8060015f8282546109209190610e86565b909155505060035460405163a9059cbb60e01b81526001600160a01b038481166004830152602482018490529091169063a9059cbb906044016020604051808303815f875af1158015610975573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109999190610e22565b6109b657604051631a67cf2760e31b815260040160405180910390fd5b5050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff16159067ffffffffffffffff165f811580156109ff5750825b90505f8267ffffffffffffffff166001148015610a1b5750303b155b905081158015610a29575080155b15610a475760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610a7157845460ff60401b1916600160401b1785555b6001600160a01b03891615801590610a9157506001600160a01b03881615155b610acb5760405162461bcd60e51b815260206004820152600b60248201526a5a65726f4164647265737360a81b60448201526064016102b3565b600380546001600160a01b0319166001600160a01b038b16179055610aef88610c52565b600587905560018690558315610b3f57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050505050565b610b52610b87565b6001600160a01b038116610b7b57604051631e4fbdf760e01b81525f60048201526024016102b3565b610b8481610be2565b50565b33610bb97f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316146107515760405163118cdaa760e01b81523360048201526024016102b3565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b610c5a610c63565b610b8481610cac565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff1661075157604051631afcd79f60e31b815260040160405180910390fd5b610b52610c63565b80356001600160a01b0381168114610cca575f80fd5b919050565b5f60208284031215610cdf575f80fd5b610ce882610cb4565b9392505050565b5f805f60608486031215610d01575f80fd5b505081359360208301359350604090920135919050565b5f60208284031215610d28575f80fd5b5035919050565b5f8060408385031215610d40575f80fd5b50508035926020909101359150565b5f8060408385031215610d60575f80fd5b610d6983610cb4565b946020939093013593505050565b634e487b7160e01b5f52602160045260245ffd5b8681526001600160a01b038616602082015260408101859052606081018490526080810183905260c0810160038310610dd257634e487b7160e01b5f52602160045260245ffd5b8260a0830152979650505050505050565b5f805f8060808587031215610df6575f80fd5b610dff85610cb4565b9350610e0d60208601610cb4565b93969395505050506040820135916060013590565b5f60208284031215610e32575f80fd5b81518015158114610ce8575f80fd5b634e487b7160e01b5f52601160045260245ffd5b80820180821115610e6857610e68610e41565b92915050565b5f60018201610e7f57610e7f610e41565b5060010190565b81810381811115610e6857610e68610e4156fea264697066735822122005f975a8a8fa8ee2ccdc98a7f0d922184b6276f4f8fd040834da1d1d34fa214d64736f6c634300081a0033","sourceMap":"392:4505:43:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1825:208;;;;;;:::i;:::-;;:::i;:::-;;2039:1358;;;;;;:::i;:::-;;:::i;:::-;;;1000:25:49;;;988:2;973:18;2039:1358:43;;;;;;;;989:34;;;;;-1:-1:-1;;;;;989:34:43;;;;;;-1:-1:-1;;;;;1200:32:49;;;1182:51;;1170:2;1155:18;989:34:43;1036:203:49;1135:40:43;;;;;;3999:567;;;;;;:::i;:::-;;:::i;3155:101:23:-;;;:::i;2441:144::-;1313:22;2570:8;-1:-1:-1;;;;;2570:8:23;2441:144;;956:26:43;;;;;;3403:590;;;;;;:::i;:::-;;:::i;4572:323::-;;;;;;:::i;:::-;;:::i;855:57::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;855:57:43;;;;;;;;;;;;;;;;;;;;;;;;:::i;1029:33::-;;;;;-1:-1:-1;;;;;1029:33:43;;;1297:522;;;;;;:::i;:::-;;:::i;3405:215:23:-;;;;;;:::i;:::-;;:::i;1825:208:43:-;2334:13:23;:11;:13::i;:::-;-1:-1:-1;;;;;1924:34:43;::::1;1916:58;;;::::0;-1:-1:-1;;;1916:58:43;;4116:2:49;1916:58:43::1;::::0;::::1;4098:21:49::0;4155:2;4135:18;;;4128:30;-1:-1:-1;;;4174:18:49;;;4167:41;4225:18;;1916:58:43::1;;;;;;;;;1984:19;:42:::0;;-1:-1:-1;;;;;;1984:42:43::1;-1:-1:-1::0;;;;;1984:42:43;;;::::1;::::0;;;::::1;::::0;;1825:208::o;2039:1358::-;2162:24;2223:10;2264:14;2256:37;;;;-1:-1:-1;;;2256:37:43;;4456:2:49;2256:37:43;;;4438:21:49;4495:2;4475:18;;;4468:30;-1:-1:-1;;;4514:18:49;;;4507:40;4564:18;;2256:37:43;4254:334:49;2256:37:43;2350:10;2364:1;2350:15;2346:65;;2388:12;;-1:-1:-1;;;2388:12:43;;;;;;;;;;;2346:65;2492:9;;:61;;-1:-1:-1;;;2492:61:43;;-1:-1:-1;;;;;4813:32:49;;;2492:61:43;;;4795:51:49;2535:4:43;4862:18:49;;;4855:60;4931:18;;;4924:34;;;2492:9:43;;;;:22;;4768:18:49;;2492:61:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2487:120;;2576:20;;-1:-1:-1;;;2576:20:43;;;;;;;;;;;2487:120;2667:10;2652:11;;:25;;;;;;;:::i;:::-;;;;-1:-1:-1;;2856:25:43;;2900:5;:7;;2823:10;;2835:9;;2846:8;;2883:15;;2900:5;:7;;;:::i;:::-;;;;-1:-1:-1;2806:102:43;;5942:2:49;5938:15;;;;-1:-1:-1;;5934:53:49;2806:102:43;;;5922:66:49;6004:12;;;5997:28;;;;6041:12;;;6034:28;;;;6078:12;;;6071:28;6115:13;;;6108:29;6153:13;;;6146:29;6191:13;;2806:102:43;;;;;;;;;;;;2796:113;;;;;;2777:132;;2956:272;;;;;;;;2993:10;2956:272;;;;3029:10;-1:-1:-1;;;;;2956:272:43;;;;;3064:9;2956:272;;;;3097:8;2956:272;;;;3147:25;;3129:15;:43;;;;:::i;:::-;2956:272;;3193:24;2956:272;;;;;;;2920:33;;;;;;;;;;;:308;;;;;;;;;;;;;;-1:-1:-1;;;;;;2920:308:43;-1:-1:-1;;;;;2920:308:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2920:308:43;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;3331:25:43;;3244:113;;;6417:25:49;;;6473:2;6458:18;;6451:34;;;6501:18;;;6494:34;;;;3244:113:43;3298:9;;-1:-1:-1;;;;;;3244:113:43;;;3268:16;;3244:113;;;;;6405:2:49;3244:113:43;;;3367:23;2039:1358;;;;;:::o;3999:567::-;4074:37;4114:33;;;;;;;;;;;4165:20;;;;;;:48;;;;;;;;:::i;:::-;;4157:94;;;;-1:-1:-1;;;4157:94:43;;6741:2:49;4157:94:43;;;6723:21:49;6780:2;6760:18;;;6753:30;6819:34;6799:18;;;6792:62;-1:-1:-1;;;6870:18:49;;;6863:31;6911:19;;4157:94:43;6539:397:49;4157:94:43;4288:14;:23;;;4269:15;:42;;4261:73;;;;-1:-1:-1;;;4261:73:43;;7143:2:49;4261:73:43;;;7125:21:49;7182:2;7162:18;;;7155:30;-1:-1:-1;;;7201:18:49;;;7194:48;7259:18;;4261:73:43;6941:342:49;4261:73:43;4345:20;;;:44;;-1:-1:-1;;4345:44:43;4368:21;4345:44;;;4405:9;;4345:44;4424:25;;;4451:21;;4405:68;;-1:-1:-1;;;4405:68:43;;-1:-1:-1;;;;;4424:25:43;;;4405:68;;;7462:51:49;7529:18;;;7522:34;;;;4405:9:43;;;:18;;7435::49;;4405:68:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4400:103;;4475:28;;-1:-1:-1;;;4475:28:43;;7769:2:49;4475:28:43;;;7751:21:49;7808:2;7788:18;;;7781:30;-1:-1:-1;;;7827:18:49;;;7820:48;7885:18;;4475:28:43;7567:342:49;4400:103:43;4519:40;;4542:16;;4519:40;;;;;4064:502;3999:567;:::o;3155:101:23:-;2334:13;:11;:13::i;:::-;3219:30:::1;3246:1;3219:18;:30::i;:::-;3155:101::o:0;3403:590:43:-;2334:13:23;:11;:13::i;:::-;3508:37:43::1;3548:33:::0;;;::::1;::::0;;;;;;;3600:20:::1;::::0;::::1;::::0;::::1;;:48;::::0;::::1;;;;;;:::i;:::-;;3592:91;;;::::0;-1:-1:-1;;;3592:91:43;;8116:2:49;3592:91:43::1;::::0;::::1;8098:21:49::0;8155:2;8135:18;;;8128:30;8194:32;8174:18;;;8167:60;8244:18;;3592:91:43::1;7914:354:49::0;3592:91:43::1;3742:23;::::0;::::1;::::0;3711:26:::1;::::0;;::::1;::::0;::::1;8402:19:49::0;;;8437:12;3711:26:43::1;;;;;;;;;;;;3701:37;;;;;;:64;3693:90;;;::::0;-1:-1:-1;;;3693:90:43;;8662:2:49;3693:90:43::1;::::0;::::1;8644:21:49::0;8701:2;8681:18;;;8674:30;-1:-1:-1;;;8720:18:49;;;8713:43;8773:18;;3693:90:43::1;8460:337:49::0;3693:90:43::1;3820:14;:23;;;3801:15;:42;;3793:70;;;::::0;-1:-1:-1;;;3793:70:43;;9004:2:49;3793:70:43::1;::::0;::::1;8986:21:49::0;9043:2;9023:18;;;9016:30;-1:-1:-1;;;9062:18:49;;;9055:45;9117:18;;3793:70:43::1;8802:339:49::0;3793:70:43::1;3874:20;::::0;::::1;:45:::0;;-1:-1:-1;;3874:45:43::1;3897:22;3874:45;::::0;;3935:51:::1;::::0;1000:25:49;;;3959:16:43;;3935:51:::1;::::0;988:2:49;973:18;3935:51:43::1;;;;;;;3498:495;3403:590:::0;;:::o;4572:323::-;4666:19;;-1:-1:-1;;;;;4666:19:43;4652:10;:33;4648:60;;4694:14;;-1:-1:-1;;;4694:14:43;;;;;;;;;;;4648:60;4736:6;4722:11;;:20;4718:58;;;4751:25;;-1:-1:-1;;;4751:25:43;;;;;;;;;;;4718:58;4801:6;4786:11;;:21;;;;;;;:::i;:::-;;;;-1:-1:-1;;4822:9:43;;:37;;-1:-1:-1;;;4822:37:43;;-1:-1:-1;;;;;7480:32:49;;;4822:37:43;;;7462:51:49;7529:18;;;7522:34;;;4822:9:43;;;;:18;;7435::49;;4822:37:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4817:71;;4868:20;;-1:-1:-1;;;4868:20:43;;;;;;;;;;;4817:71;4572:323;;:::o;1297:522::-;8870:21:24;4302:15;;-1:-1:-1;;;4302:15:24;;;;4301:16;;4348:14;;4158:30;4726:16;;:34;;;;;4746:14;4726:34;4706:54;;4770:17;4790:11;:16;;4805:1;4790:16;:50;;;;-1:-1:-1;4818:4:24;4810:25;:30;4790:50;4770:70;;4856:12;4855:13;:30;;;;;4873:12;4872:13;4855:30;4851:91;;;4908:23;;-1:-1:-1;;;4908:23:24;;;;;;;;;;;4851:91;4951:18;;-1:-1:-1;;4951:18:24;4968:1;4951:18;;;4979:67;;;;5013:22;;-1:-1:-1;;;;5013:22:24;-1:-1:-1;;;5013:22:24;;;4979:67;-1:-1:-1;;;;;1483:24:43;::::1;::::0;;::::1;::::0;:47:::1;;-1:-1:-1::0;;;;;;1511:19:43;::::1;::::0;::::1;1483:47;1475:71;;;::::0;-1:-1:-1;;;1475:71:43;;4116:2:49;1475:71:43::1;::::0;::::1;4098:21:49::0;4155:2;4135:18;;;4128:30;-1:-1:-1;;;4174:18:49;;;4167:41;4225:18;;1475:71:43::1;3914:335:49::0;1475:71:43::1;1556:9;:40:::0;;-1:-1:-1;;;;;;1556:40:43::1;-1:-1:-1::0;;;;;1556:40:43;::::1;;::::0;;1606:21:::1;1621:5:::0;1606:14:::1;:21::i;:::-;1683:25;:45:::0;;;1779:11:::1;:33:::0;;;5066:101:24;;;;5100:23;;-1:-1:-1;;;;5100:23:24;;;5142:14;;-1:-1:-1;9432:50:49;;5142:14:24;;9420:2:49;9405:18;5142:14:24;;;;;;;5066:101;4092:1081;;;;;1297:522:43;;;;:::o;3405:215:23:-;2334:13;:11;:13::i;:::-;-1:-1:-1;;;;;3489:22:23;::::1;3485:91;;3534:31;::::0;-1:-1:-1;;;3534:31:23;;3562:1:::1;3534:31;::::0;::::1;1182:51:49::0;1155:18;;3534:31:23::1;1036:203:49::0;3485:91:23::1;3585:28;3604:8;3585:18;:28::i;:::-;3405:215:::0;:::o;2658:162::-;966:10:26;2717:7:23;1313:22;2570:8;-1:-1:-1;;;;;2570:8:23;;2441:144;2717:7;-1:-1:-1;;;;;2717:23:23;;2713:101;;2763:40;;-1:-1:-1;;;2763:40:23;;966:10:26;2763:40:23;;;1182:51:49;1155:18;;2763:40:23;1036:203:49;3774:248:23;1313:22;3923:8;;-1:-1:-1;;;;;;3941:19:23;;-1:-1:-1;;;;;3941:19:23;;;;;;;;3975:40;;3923:8;;;;;3975:40;;3847:24;;3975:40;3837:185;;3774:248;:::o;1847:127::-;6931:20:24;:18;:20::i;:::-;1929:38:23::1;1954:12;1929:24;:38::i;7084:141:24:-:0;8870:21;8560:40;-1:-1:-1;;;8560:40:24;;;;7146:73;;7191:17;;-1:-1:-1;;;7191:17:24;;;;;;;;;;;1980:235:23;6931:20:24;:18;:20::i;14:173:49:-;82:20;;-1:-1:-1;;;;;131:31:49;;121:42;;111:70;;177:1;174;167:12;111:70;14:173;;;:::o;192:186::-;251:6;304:2;292:9;283:7;279:23;275:32;272:52;;;320:1;317;310:12;272:52;343:29;362:9;343:29;:::i;:::-;333:39;192:186;-1:-1:-1;;;192:186:49:o;383:466::-;460:6;468;476;529:2;517:9;508:7;504:23;500:32;497:52;;;545:1;542;535:12;497:52;-1:-1:-1;;590:23:49;;;710:2;695:18;;682:32;;-1:-1:-1;813:2:49;798:18;;;785:32;;383:466;-1:-1:-1;383:466:49:o;1426:226::-;1485:6;1538:2;1526:9;1517:7;1513:23;1509:32;1506:52;;;1554:1;1551;1544:12;1506:52;-1:-1:-1;1599:23:49;;1426:226;-1:-1:-1;1426:226:49:o;1657:346::-;1725:6;1733;1786:2;1774:9;1765:7;1761:23;1757:32;1754:52;;;1802:1;1799;1792:12;1754:52;-1:-1:-1;;1847:23:49;;;1967:2;1952:18;;;1939:32;;-1:-1:-1;1657:346:49:o;2008:300::-;2076:6;2084;2137:2;2125:9;2116:7;2112:23;2108:32;2105:52;;;2153:1;2150;2143:12;2105:52;2176:29;2195:9;2176:29;:::i;:::-;2166:39;2274:2;2259:18;;;;2246:32;;-1:-1:-1;;;2008:300:49:o;2313:127::-;2374:10;2369:3;2365:20;2362:1;2355:31;2405:4;2402:1;2395:15;2429:4;2426:1;2419:15;2445:730;2748:25;;;-1:-1:-1;;;;;2809:32:49;;2804:2;2789:18;;2782:60;2873:2;2858:18;;2851:34;;;2916:2;2901:18;;2894:34;;;2959:3;2944:19;;2937:35;;;2735:3;2720:19;;3002:1;2991:13;;2981:144;;3047:10;3042:3;3038:20;3035:1;3028:31;3082:4;3079:1;3072:15;3110:4;3107:1;3100:15;2981:144;3162:6;3156:3;3145:9;3141:19;3134:35;2445:730;;;;;;;;;:::o;3414:495::-;3500:6;3508;3516;3524;3577:3;3565:9;3556:7;3552:23;3548:33;3545:53;;;3594:1;3591;3584:12;3545:53;3617:29;3636:9;3617:29;:::i;:::-;3607:39;;3665:38;3699:2;3688:9;3684:18;3665:38;:::i;:::-;3414:495;;3655:48;;-1:-1:-1;;;;3772:2:49;3757:18;;3744:32;;3873:2;3858:18;3845:32;;3414:495::o;4969:277::-;5036:6;5089:2;5077:9;5068:7;5064:23;5060:32;5057:52;;;5105:1;5102;5095:12;5057:52;5137:9;5131:16;5190:5;5183:13;5176:21;5169:5;5166:32;5156:60;;5212:1;5209;5202:12;5251:127;5312:10;5307:3;5303:20;5300:1;5293:31;5343:4;5340:1;5333:15;5367:4;5364:1;5357:15;5383:125;5448:9;;;5469:10;;;5466:36;;;5482:18;;:::i;:::-;5383:125;;;;:::o;5513:135::-;5552:3;5573:17;;;5570:43;;5593:18;;:::i;:::-;-1:-1:-1;5640:1:49;5629:13;;5513:135::o;9146:128::-;9213:9;;;9234:11;;;9231:37;;;9248:18;;:::i","linkReferences":{}},"methodIdentifiers":{"bridgeTransfers(bytes32)":"e0d9cbc4","completeBridgeTransfer(bytes32,bytes32)":"9f8f8799","counterpartyAddress()":"1f92c08e","initialize(address,address,uint256,uint256)":"eb990c59","initiateBridgeTransfer(uint256,bytes32,bytes32)":"1a8849a4","initiatorTimeLockDuration()":"2b3948bb","moveToken()":"e20c95ec","owner()":"8da5cb5b","poolBalance()":"96365d44","refundBridgeTransfer(bytes32)":"57808020","renounceOwnership()":"715018a6","setCounterpartyAddress(address)":"001a153e","transferOwnership(address)":"f2fde38b","withdrawMOVE(address,uint256)":"cacfb161"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"BridgeTransferHasBeenCompleted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BridgeTransferInvalid\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BridgeTransferStateNotInitialized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientMOVEBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidSecret\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MOVETransferFailed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TimeLockNotExpired\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TimelockExpired\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroAmount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_bridgeTransferId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"pre_image\",\"type\":\"bytes32\"}],\"name\":\"BridgeTransferCompleted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_bridgeTransferId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_originator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_recipient\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"_hashLock\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_timeLock\",\"type\":\"uint256\"}],\"name\":\"BridgeTransferInitiated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_bridgeTransferId\",\"type\":\"bytes32\"}],\"name\":\"BridgeTransferRefunded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"bridgeTransfers\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"originator\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"recipient\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"hashLock\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"timeLock\",\"type\":\"uint256\"},{\"internalType\":\"enum AtomicBridgeInitiatorMOVE.MessageState\",\"name\":\"state\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"bridgeTransferId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"preImage\",\"type\":\"bytes32\"}],\"name\":\"completeBridgeTransfer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"counterpartyAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_moveToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_timeLockDuration\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_initialPoolBalance\",\"type\":\"uint256\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"moveAmount\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"recipient\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"hashLock\",\"type\":\"bytes32\"}],\"name\":\"initiateBridgeTransfer\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"bridgeTransferId\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"initiatorTimeLockDuration\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"moveToken\",\"outputs\":[{\"internalType\":\"contract ERC20Upgradeable\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"poolBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"bridgeTransferId\",\"type\":\"bytes32\"}],\"name\":\"refundBridgeTransfer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_counterpartyAddress\",\"type\":\"address\"}],\"name\":\"setCounterpartyAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdrawMOVE\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"}},\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/AtomicBridgeInitiatorMOVE.sol\":\"AtomicBridgeInitiatorMOVE\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":halmos-cheatcodes/=lib/openzeppelin-contracts-upgradeable/lib/halmos-cheatcodes/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\"]},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol\":{\"keccak256\":\"0xbb96dc9c468170c3224126e953de917e06332ec5909a3d85e6e5bb0df10c5139\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d14e6486e127e7e31c2ffccfc212c7ebaaecf8fb05677575128b449ee113def2\",\"dweb:/ipfs/QmabvyfStwBcum8mGfkmxcTV45rjyHmzHGCxfxyhmu48Yx\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b\",\"dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf\",\"dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r\"]},\"src/AtomicBridgeInitiatorMOVE.sol\":{\"keccak256\":\"0x5b19ecc44068863e3cb0727feb40cf40e2704ad78c1cbcc46943e3dec0c2d276\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0489c79d358a014df14338776376728f35be92bc9d6338eae228077db567dc7c\",\"dweb:/ipfs/QmXqVmMCHqZkSe41LSpoxoEiNRP7UJp5qU6bN3UykCQRzE\"]},\"src/IAtomicBridgeInitiatorMOVE.sol\":{\"keccak256\":\"0x3705cbaaf8910b786e5cb99d8d1bfa3f591add9a1d835703a69d6a77020ad841\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12cca43905283adf49be8a23853952b90be09d3ba38b583fd8c2821e97ad8c0a\",\"dweb:/ipfs/QmaxHt6YUKb97dCz1rUjvjfM3XLcoLNvoFrUkDA6a77ER5\"]},\"src/MockMOVEToken.sol\":{\"keccak256\":\"0x71768bf12ff974ee8589bee8b951fa63c7db1f74f251c5997232643bc749a8e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://38474add7fec1c814adf1ad614e4ca233b9f789f279690c698a3a94334c029cf\",\"dweb:/ipfs/Qmah2K8YEmLqnKjXcGvbSD55sm61zkKVvNMhehmrj6VzBs\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"BridgeTransferHasBeenCompleted"},{"inputs":[],"type":"error","name":"BridgeTransferInvalid"},{"inputs":[],"type":"error","name":"BridgeTransferStateNotInitialized"},{"inputs":[],"type":"error","name":"InsufficientMOVEBalance"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"InvalidSecret"},{"inputs":[],"type":"error","name":"MOVETransferFailed"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[],"type":"error","name":"TimeLockNotExpired"},{"inputs":[],"type":"error","name":"TimelockExpired"},{"inputs":[],"type":"error","name":"Unauthorized"},{"inputs":[],"type":"error","name":"ZeroAddress"},{"inputs":[],"type":"error","name":"ZeroAmount"},{"inputs":[{"internalType":"bytes32","name":"_bridgeTransferId","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"pre_image","type":"bytes32","indexed":false}],"type":"event","name":"BridgeTransferCompleted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"_bridgeTransferId","type":"bytes32","indexed":true},{"internalType":"address","name":"_originator","type":"address","indexed":true},{"internalType":"bytes32","name":"_recipient","type":"bytes32","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"bytes32","name":"_hashLock","type":"bytes32","indexed":false},{"internalType":"uint256","name":"_timeLock","type":"uint256","indexed":false}],"type":"event","name":"BridgeTransferInitiated","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"_bridgeTransferId","type":"bytes32","indexed":true}],"type":"event","name":"BridgeTransferRefunded","anonymous":false},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","name":"bridgeTransfers","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"originator","type":"address"},{"internalType":"bytes32","name":"recipient","type":"bytes32"},{"internalType":"bytes32","name":"hashLock","type":"bytes32"},{"internalType":"uint256","name":"timeLock","type":"uint256"},{"internalType":"enum AtomicBridgeInitiatorMOVE.MessageState","name":"state","type":"uint8"}]},{"inputs":[{"internalType":"bytes32","name":"bridgeTransferId","type":"bytes32"},{"internalType":"bytes32","name":"preImage","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"completeBridgeTransfer"},{"inputs":[],"stateMutability":"view","type":"function","name":"counterpartyAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_moveToken","type":"address"},{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"_timeLockDuration","type":"uint256"},{"internalType":"uint256","name":"_initialPoolBalance","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"uint256","name":"moveAmount","type":"uint256"},{"internalType":"bytes32","name":"recipient","type":"bytes32"},{"internalType":"bytes32","name":"hashLock","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"initiateBridgeTransfer","outputs":[{"internalType":"bytes32","name":"bridgeTransferId","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"initiatorTimeLockDuration","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"moveToken","outputs":[{"internalType":"contract ERC20Upgradeable","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"poolBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"bridgeTransferId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"refundBridgeTransfer"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"_counterpartyAddress","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setCounterpartyAddress"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"withdrawMOVE"}],"devdoc":{"kind":"dev","methods":{"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","halmos-cheatcodes/=lib/openzeppelin-contracts-upgradeable/lib/halmos-cheatcodes/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/AtomicBridgeInitiatorMOVE.sol":"AtomicBridgeInitiatorMOVE"},"evmVersion":"cancun","libraries":{}},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a","urls":["bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6","dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/ERC20Upgradeable.sol":{"keccak256":"0xbb96dc9c468170c3224126e953de917e06332ec5909a3d85e6e5bb0df10c5139","urls":["bzz-raw://d14e6486e127e7e31c2ffccfc212c7ebaaecf8fb05677575128b449ee113def2","dweb:/ipfs/QmabvyfStwBcum8mGfkmxcTV45rjyHmzHGCxfxyhmu48Yx"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x880da465c203cec76b10d72dbd87c80f387df4102274f23eea1f9c9b0918792b","urls":["bzz-raw://399594cd8bb0143bc9e55e0f1d071d0d8c850a394fb7a319d50edd55d9ed822b","dweb:/ipfs/QmbPZzgtT6LEm9CMqWfagQFwETbV1ztpECBB1DtQHrKiRz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7","urls":["bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db","dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x70f2f713b13b7ce4610bcd0ac9fec0f3cc43693b043abcb8dc40a42a726eb330","urls":["bzz-raw://c13d13304ac79a83ab1c30168967d19e2203342ebbd6a9bbce4db7550522dcbf","dweb:/ipfs/QmeN5jKMN2vw5bhacr6tkg78afbTTZUeaacNHqjWt4Ew1r"],"license":"MIT"},"src/AtomicBridgeInitiatorMOVE.sol":{"keccak256":"0x5b19ecc44068863e3cb0727feb40cf40e2704ad78c1cbcc46943e3dec0c2d276","urls":["bzz-raw://0489c79d358a014df14338776376728f35be92bc9d6338eae228077db567dc7c","dweb:/ipfs/QmXqVmMCHqZkSe41LSpoxoEiNRP7UJp5qU6bN3UykCQRzE"],"license":"MIT"},"src/IAtomicBridgeInitiatorMOVE.sol":{"keccak256":"0x3705cbaaf8910b786e5cb99d8d1bfa3f591add9a1d835703a69d6a77020ad841","urls":["bzz-raw://12cca43905283adf49be8a23853952b90be09d3ba38b583fd8c2821e97ad8c0a","dweb:/ipfs/QmaxHt6YUKb97dCz1rUjvjfM3XLcoLNvoFrUkDA6a77ER5"],"license":"MIT"},"src/MockMOVEToken.sol":{"keccak256":"0x71768bf12ff974ee8589bee8b951fa63c7db1f74f251c5997232643bc749a8e4","urls":["bzz-raw://38474add7fec1c814adf1ad614e4ca233b9f789f279690c698a3a94334c029cf","dweb:/ipfs/Qmah2K8YEmLqnKjXcGvbSD55sm61zkKVvNMhehmrj6VzBs"],"license":"MIT"}},"version":1},"id":43} diff --git a/protocol-units/bridge/setup/src/deploy.rs b/protocol-units/bridge/setup/src/deploy.rs index 76762c1ec..e09da66d2 100644 --- a/protocol-units/bridge/setup/src/deploy.rs +++ b/protocol-units/bridge/setup/src/deploy.rs @@ -351,7 +351,7 @@ pub fn deploy_on_movement_framework(config: &mut MovementConfig) -> Result<(), a if !update_bridge_operator_output.stdout.is_empty() { println!( - "run-script update_bridge_operatorstdout: {}", + "run-script update_bridge_operator_stdout: {}", String::from_utf8_lossy(&update_bridge_operator_output.stdout) ); } @@ -362,6 +362,35 @@ pub fn deploy_on_movement_framework(config: &mut MovementConfig) -> Result<(), a ); } + let update_refunder_output = Command::new("movement") + .args(&[ + "move", + "run-script", + "--compiled-script-path", + "protocol-units/bridge/move-modules/build/bridge-modules/bytecode_scripts/update_refunder.mv", + "--args", + "address:0xf90391c81027f03cdea491ed8b36ffaced26b6df208a9b569e5baf2590eb9b16", + "--profile", + "default", + "--assume-yes", + ]) + .stdout(Stdio::piped()) + .stderr(Stdio::piped()) + .output()?; + + if !update_refunder_output.stdout.is_empty() { + println!( + "run-script update_refunder_stdout: {}", + String::from_utf8_lossy(&update_refunder_output.stdout) + ); + } + if !update_refunder_output.stderr.is_empty() { + eprintln!( + "run-script update_refunder supdate_refunder tderr: {}", + String::from_utf8_lossy(&update_refunder_output.stderr) + ); + } + let set_initiator_time_lock_script_output = Command::new("movement") .args(&[ "move",