{
  "_format": "hh-sol-artifact-1",
  "contractName": "BridgeFunder",
  "sourceName": "contracts/cross-chain/funder/BridgeFunder.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "depositBoxFactory_",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint8",
          "name": "version",
          "type": "uint8"
        }
      ],
      "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": [],
      "name": "DEPOSIT_BOX_FACTORY",
      "outputs": [
        {
          "internalType": "contract IPDepositBoxFactory",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "address",
              "name": "bridgeToken",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "bridgeAmount",
              "type": "uint256"
            },
            {
              "internalType": "address",
              "name": "feeToken",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "feeAmount",
              "type": "uint256"
            },
            {
              "internalType": "address",
              "name": "bridgeExtRouter",
              "type": "address"
            },
            {
              "internalType": "bytes",
              "name": "bridgeCalldata",
              "type": "bytes"
            }
          ],
          "internalType": "struct BridgeData",
          "name": "$",
          "type": "tuple"
        }
      ],
      "name": "bridge",
      "outputs": [
        {
          "internalType": "bytes",
          "name": "result",
          "type": "bytes"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "claimOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_owner",
          "type": "address"
        }
      ],
      "name": "initialize",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "owner",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "pendingOwner",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        },
        {
          "internalType": "bool",
          "name": "direct",
          "type": "bool"
        },
        {
          "internalType": "bool",
          "name": "renounce",
          "type": "bool"
        }
      ],
      "name": "transferOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "receiver",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "token",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "withdraw",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": "0x60a060405234801561000f575f5ffd5b506040516112f53803806112f583398101604081905261002e91610113565b610036610047565b6001600160a01b0316608052610140565b600154600160a81b900460ff16156100b55760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b600154600160a01b900460ff90811614610111576001805460ff60a01b191660ff60a01b17905560405160ff81527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b5f60208284031215610123575f5ffd5b81516001600160a01b0381168114610139575f5ffd5b9392505050565b60805161119761015e5f395f818160c5015261034501526111975ff3fe608060405234801561000f575f5ffd5b5060043610610076575f3560e01c8063078dfbe71461007a5780633cd7ddba1461008f5780634e71e0c8146100b857806387be6d9a146100c05780638da5cb5b146100ff578063c4d66de814610111578063d9caed1214610124578063e30c397814610137575b5f5ffd5b61008d610088366004610dce565b61014a565b005b6100a261009d366004610edb565b61024b565b6040516100af9190610fdf565b60405180910390f35b61008d61054c565b6100e77f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016100af565b5f546100e7906001600160a01b031681565b61008d61011f366004610ff1565b6105f4565b61008d61013236600461100c565b610725565b6001546100e7906001600160a01b031681565b5f546001600160a01b0316331461017c5760405162461bcd60e51b81526004016101739061104a565b60405180910390fd5b811561022a576001600160a01b0383161515806101965750805b6101da5760405162461bcd60e51b81526020600482015260156024820152744f776e61626c653a207a65726f206164647265737360581b6044820152606401610173565b5f80546040516001600160a01b03808716939216915f5160206111425f395f51905f5291a35f80546001600160a01b0385166001600160a01b031991821617909155600180549091169055505050565b600180546001600160a01b0319166001600160a01b0385161790555b505050565b60605f3390505f816001600160a01b031663117803e36040518163ffffffff1660e01b8152600401602060405180830381865afa15801561028e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102b2919061107f565b90505f826001600160a01b031663a817c1136040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102f1573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610315919061109a565b604051633c8ba77560e21b81526001600160a01b03848116600483015263ffffffff831660248301529192505f917f0000000000000000000000000000000000000000000000000000000000000000169063f22e9dd490604401606060405180830381865afa15801561038a573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103ae91906110bd565b50509050836001600160a01b0316816001600160a01b0316146104235760405162461bcd60e51b815260206004820152602760248201527f42726964676546756e6465723a2063616c6c6572206973206e6f74206465706f6044820152660e6d2e840c4def60cb1b6064820152608401610173565b85604001516001600160a01b0316865f01516001600160a01b031614158015610455575085516001600160a01b031615155b801561046d575060408601516001600160a01b031615155b6104b95760405162461bcd60e51b815260206004820152601f60248201527f42726964676546756e6465723a20756e737570706f7274656420746f6b656e006044820152606401610173565b6104cb865f0151338860200151610759565b6104e1865f0151876080015188602001516107c0565b6104f88660400151876080015188606001516107c0565b61051c8660a0015187608001516001600160a01b03166107d490919063ffffffff16565b9450610530865f015187608001515f6107c0565b610543866040015187608001515f6107c0565b50505050919050565b6001546001600160a01b03163381146105a75760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c657220213d2070656e64696e67206f776e65726044820152606401610173565b5f80546040516001600160a01b03808516939216915f5160206111425f395f51905f5291a35f80546001600160a01b039092166001600160a01b0319928316179055600180549091169055565b600154600160a81b900460ff161580801561061a575060018054600160a01b900460ff16105b8061064157506106293061081e565b158015610641575060018054600160a01b900460ff16145b6106a45760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610173565b6001805460ff60a01b1916600160a01b17905580156106d1576001805460ff60a81b1916600160a81b1790555b6106da8261082d565b8015610721576001805460ff60a81b191681556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b5f546001600160a01b0316331461074e5760405162461bcd60e51b81526004016101739061104a565b6102468284836108bb565b6001600160a01b0383166107a5578034146102465760405162461bcd60e51b815260206004820152600c60248201526b0cae8d040dad2e6dac2e8c6d60a31b6044820152606401610173565b8015610246576102466001600160a01b038416833084610993565b6102466001600160a01b03841683836109fe565b606061081783835f6040518060400160405280601e81526020017f416464726573733a206c6f772d6c6576656c2063616c6c206661696c65640000815250610a95565b9392505050565b6001600160a01b03163b151590565b600154600160a81b900460ff1661089a5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610173565b5f80546001600160a01b0319166001600160a01b0392909216919091179055565b8015806108d057506001600160a01b03821630145b156108da57505050565b6001600160a01b03831661097f575f826001600160a01b0316826040515f6040518083038185875af1925050503d805f8114610931576040519150601f19603f3d011682016040523d82523d5f602084013e610936565b606091505b50509050806109795760405162461bcd60e51b815260206004820152600f60248201526e195d1a081cd95b990819985a5b1959608a1b6044820152606401610173565b50505050565b6102466001600160a01b0384168383610b6e565b6040516001600160a01b03808516602483015283166044820152606481018290526109799085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152610b8d565b5f63095ea7b360e01b8383604051602401610a1a9291906110f2565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091529050610a588482610c60565b610979576040516001600160a01b03841660248201525f6044820152610a8b90859063095ea7b360e01b906064016109c7565b6109798482610b8d565b606082471015610af65760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610173565b5f5f866001600160a01b03168587604051610b11919061110b565b5f6040518083038185875af1925050503d805f8114610b4b576040519150601f19603f3d011682016040523d82523d5f602084013e610b50565b606091505b5091509150610b6187838387610cfc565b925050505b949350505050565b6102468363a9059cbb60e01b84846040516024016109c79291906110f2565b5f610be1826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316610d729092919063ffffffff16565b905080515f1480610c01575080806020019051810190610c019190611126565b6102465760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610173565b5f5f5f846001600160a01b031684604051610c7b919061110b565b5f604051808303815f865af19150503d805f8114610cb4576040519150601f19603f3d011682016040523d82523d5f602084013e610cb9565b606091505b5091509150818015610ce3575080511580610ce3575080806020019051810190610ce39190611126565b8015610cf35750610cf38561081e565b95945050505050565b60608315610d685782515f03610d6157610d158561081e565b610d615760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610173565b5081610b66565b610b668383610d80565b6060610b6684845f85610a95565b815115610d905781518083602001fd5b8060405162461bcd60e51b81526004016101739190610fdf565b6001600160a01b0381168114610dbe575f5ffd5b50565b8015158114610dbe575f5ffd5b5f5f5f60608486031215610de0575f5ffd5b8335610deb81610daa565b92506020840135610dfb81610dc1565b91506040840135610e0b81610dc1565b809150509250925092565b634e487b7160e01b5f52604160045260245ffd5b60405160c081016001600160401b0381118282101715610e4c57610e4c610e16565b60405290565b5f82601f830112610e61575f5ffd5b81356001600160401b03811115610e7a57610e7a610e16565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610ea857610ea8610e16565b604052818152838201602001851015610ebf575f5ffd5b816020850160208301375f918101602001919091529392505050565b5f60208284031215610eeb575f5ffd5b81356001600160401b03811115610f00575f5ffd5b820160c08185031215610f11575f5ffd5b610f19610e2a565b8135610f2481610daa565b8152602082810135908201526040820135610f3e81610daa565b6040820152606082810135908201526080820135610f5b81610daa565b608082015260a08201356001600160401b03811115610f78575f5ffd5b610f8486828501610e52565b60a083015250949350505050565b5f5b83811015610fac578181015183820152602001610f94565b50505f910152565b5f8151808452610fcb816020860160208601610f92565b601f01601f19169290920160200192915050565b602081525f6108176020830184610fb4565b5f60208284031215611001575f5ffd5b813561081781610daa565b5f5f5f6060848603121561101e575f5ffd5b833561102981610daa565b9250602084013561103981610daa565b929592945050506040919091013590565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f6020828403121561108f575f5ffd5b815161081781610daa565b5f602082840312156110aa575f5ffd5b815163ffffffff81168114610817575f5ffd5b5f5f5f606084860312156110cf575f5ffd5b83516110da81610daa565b602085015160408601519194509250610e0b81610dc1565b6001600160a01b03929092168252602082015260400190565b5f825161111c818460208701610f92565b9190910192915050565b5f60208284031215611136575f5ffd5b815161081781610dc156fe8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0a2646970667358221220d146599d14cb39864c0c0dc0615c5a57720d6376897bf985698d7dfbe5094c4164736f6c634300081e0033",
  "deployedBytecode": "0x608060405234801561000f575f5ffd5b5060043610610076575f3560e01c8063078dfbe71461007a5780633cd7ddba1461008f5780634e71e0c8146100b857806387be6d9a146100c05780638da5cb5b146100ff578063c4d66de814610111578063d9caed1214610124578063e30c397814610137575b5f5ffd5b61008d610088366004610dce565b61014a565b005b6100a261009d366004610edb565b61024b565b6040516100af9190610fdf565b60405180910390f35b61008d61054c565b6100e77f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016100af565b5f546100e7906001600160a01b031681565b61008d61011f366004610ff1565b6105f4565b61008d61013236600461100c565b610725565b6001546100e7906001600160a01b031681565b5f546001600160a01b0316331461017c5760405162461bcd60e51b81526004016101739061104a565b60405180910390fd5b811561022a576001600160a01b0383161515806101965750805b6101da5760405162461bcd60e51b81526020600482015260156024820152744f776e61626c653a207a65726f206164647265737360581b6044820152606401610173565b5f80546040516001600160a01b03808716939216915f5160206111425f395f51905f5291a35f80546001600160a01b0385166001600160a01b031991821617909155600180549091169055505050565b600180546001600160a01b0319166001600160a01b0385161790555b505050565b60605f3390505f816001600160a01b031663117803e36040518163ffffffff1660e01b8152600401602060405180830381865afa15801561028e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102b2919061107f565b90505f826001600160a01b031663a817c1136040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102f1573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610315919061109a565b604051633c8ba77560e21b81526001600160a01b03848116600483015263ffffffff831660248301529192505f917f0000000000000000000000000000000000000000000000000000000000000000169063f22e9dd490604401606060405180830381865afa15801561038a573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103ae91906110bd565b50509050836001600160a01b0316816001600160a01b0316146104235760405162461bcd60e51b815260206004820152602760248201527f42726964676546756e6465723a2063616c6c6572206973206e6f74206465706f6044820152660e6d2e840c4def60cb1b6064820152608401610173565b85604001516001600160a01b0316865f01516001600160a01b031614158015610455575085516001600160a01b031615155b801561046d575060408601516001600160a01b031615155b6104b95760405162461bcd60e51b815260206004820152601f60248201527f42726964676546756e6465723a20756e737570706f7274656420746f6b656e006044820152606401610173565b6104cb865f0151338860200151610759565b6104e1865f0151876080015188602001516107c0565b6104f88660400151876080015188606001516107c0565b61051c8660a0015187608001516001600160a01b03166107d490919063ffffffff16565b9450610530865f015187608001515f6107c0565b610543866040015187608001515f6107c0565b50505050919050565b6001546001600160a01b03163381146105a75760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c657220213d2070656e64696e67206f776e65726044820152606401610173565b5f80546040516001600160a01b03808516939216915f5160206111425f395f51905f5291a35f80546001600160a01b039092166001600160a01b0319928316179055600180549091169055565b600154600160a81b900460ff161580801561061a575060018054600160a01b900460ff16105b8061064157506106293061081e565b158015610641575060018054600160a01b900460ff16145b6106a45760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610173565b6001805460ff60a01b1916600160a01b17905580156106d1576001805460ff60a81b1916600160a81b1790555b6106da8261082d565b8015610721576001805460ff60a81b191681556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b5f546001600160a01b0316331461074e5760405162461bcd60e51b81526004016101739061104a565b6102468284836108bb565b6001600160a01b0383166107a5578034146102465760405162461bcd60e51b815260206004820152600c60248201526b0cae8d040dad2e6dac2e8c6d60a31b6044820152606401610173565b8015610246576102466001600160a01b038416833084610993565b6102466001600160a01b03841683836109fe565b606061081783835f6040518060400160405280601e81526020017f416464726573733a206c6f772d6c6576656c2063616c6c206661696c65640000815250610a95565b9392505050565b6001600160a01b03163b151590565b600154600160a81b900460ff1661089a5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610173565b5f80546001600160a01b0319166001600160a01b0392909216919091179055565b8015806108d057506001600160a01b03821630145b156108da57505050565b6001600160a01b03831661097f575f826001600160a01b0316826040515f6040518083038185875af1925050503d805f8114610931576040519150601f19603f3d011682016040523d82523d5f602084013e610936565b606091505b50509050806109795760405162461bcd60e51b815260206004820152600f60248201526e195d1a081cd95b990819985a5b1959608a1b6044820152606401610173565b50505050565b6102466001600160a01b0384168383610b6e565b6040516001600160a01b03808516602483015283166044820152606481018290526109799085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152610b8d565b5f63095ea7b360e01b8383604051602401610a1a9291906110f2565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091529050610a588482610c60565b610979576040516001600160a01b03841660248201525f6044820152610a8b90859063095ea7b360e01b906064016109c7565b6109798482610b8d565b606082471015610af65760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610173565b5f5f866001600160a01b03168587604051610b11919061110b565b5f6040518083038185875af1925050503d805f8114610b4b576040519150601f19603f3d011682016040523d82523d5f602084013e610b50565b606091505b5091509150610b6187838387610cfc565b925050505b949350505050565b6102468363a9059cbb60e01b84846040516024016109c79291906110f2565b5f610be1826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316610d729092919063ffffffff16565b905080515f1480610c01575080806020019051810190610c019190611126565b6102465760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610173565b5f5f5f846001600160a01b031684604051610c7b919061110b565b5f604051808303815f865af19150503d805f8114610cb4576040519150601f19603f3d011682016040523d82523d5f602084013e610cb9565b606091505b5091509150818015610ce3575080511580610ce3575080806020019051810190610ce39190611126565b8015610cf35750610cf38561081e565b95945050505050565b60608315610d685782515f03610d6157610d158561081e565b610d615760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610173565b5081610b66565b610b668383610d80565b6060610b6684845f85610a95565b815115610d905781518083602001fd5b8060405162461bcd60e51b81526004016101739190610fdf565b6001600160a01b0381168114610dbe575f5ffd5b50565b8015158114610dbe575f5ffd5b5f5f5f60608486031215610de0575f5ffd5b8335610deb81610daa565b92506020840135610dfb81610dc1565b91506040840135610e0b81610dc1565b809150509250925092565b634e487b7160e01b5f52604160045260245ffd5b60405160c081016001600160401b0381118282101715610e4c57610e4c610e16565b60405290565b5f82601f830112610e61575f5ffd5b81356001600160401b03811115610e7a57610e7a610e16565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610ea857610ea8610e16565b604052818152838201602001851015610ebf575f5ffd5b816020850160208301375f918101602001919091529392505050565b5f60208284031215610eeb575f5ffd5b81356001600160401b03811115610f00575f5ffd5b820160c08185031215610f11575f5ffd5b610f19610e2a565b8135610f2481610daa565b8152602082810135908201526040820135610f3e81610daa565b6040820152606082810135908201526080820135610f5b81610daa565b608082015260a08201356001600160401b03811115610f78575f5ffd5b610f8486828501610e52565b60a083015250949350505050565b5f5b83811015610fac578181015183820152602001610f94565b50505f910152565b5f8151808452610fcb816020860160208601610f92565b601f01601f19169290920160200192915050565b602081525f6108176020830184610fb4565b5f60208284031215611001575f5ffd5b813561081781610daa565b5f5f5f6060848603121561101e575f5ffd5b833561102981610daa565b9250602084013561103981610daa565b929592945050506040919091013590565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f6020828403121561108f575f5ffd5b815161081781610daa565b5f602082840312156110aa575f5ffd5b815163ffffffff81168114610817575f5ffd5b5f5f5f606084860312156110cf575f5ffd5b83516110da81610daa565b602085015160408601519194509250610e0b81610dc1565b6001600160a01b03929092168252602082015260400190565b5f825161111c818460208701610f92565b9190910192915050565b5f60208284031215611136575f5ffd5b815161081781610dc156fe8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0a2646970667358221220d146599d14cb39864c0c0dc0615c5a57720d6376897bf985698d7dfbe5094c4164736f6c634300081e0033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
