{
  "_format": "hh-sol-artifact-1",
  "contractName": "CrossChainPortal",
  "sourceName": "contracts/cross-chain/CrossChainPortal.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "permissionController_",
          "type": "address"
        },
        {
          "internalType": "uint32",
          "name": "borosLzEid_",
          "type": "uint32"
        },
        {
          "internalType": "address",
          "name": "depositBoxFactory_",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "inputs": [],
      "name": "PortalInvalidMessenger",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "PortalMessengerNotSet",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "Unauthorized",
      "type": "error"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "root",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint32",
          "name": "boxId",
          "type": "uint32"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "token",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "messenger",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "amountSent",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "amountReceived",
          "type": "uint256"
        }
      ],
      "name": "BridgeOFT",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "token",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "messenger",
          "type": "address"
        }
      ],
      "name": "SetOFTMessenger",
      "type": "event"
    },
    {
      "inputs": [],
      "name": "BOROS_LZ_EID",
      "outputs": [
        {
          "internalType": "uint32",
          "name": "",
          "type": "uint32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "DEPOSIT_BOX_FACTORY",
      "outputs": [
        {
          "internalType": "contract IPDepositBoxFactory",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "root",
          "type": "address"
        },
        {
          "internalType": "uint32",
          "name": "boxId",
          "type": "uint32"
        },
        {
          "internalType": "address",
          "name": "token",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "bridgeOFT",
      "outputs": [],
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "token",
          "type": "address"
        }
      ],
      "name": "oftMessenger",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "token",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "messenger",
          "type": "address"
        }
      ],
      "name": "setOFTMessenger",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": "0x60e060405234801561000f575f5ffd5b50604051610c43380380610c4383398101604081905261002e9161006b565b6001600160a01b0392831660805263ffffffff90911660a0521660c0526100b5565b80516001600160a01b0381168114610066575f5ffd5b919050565b5f5f5f6060848603121561007d575f5ffd5b61008684610050565b9250602084015163ffffffff8116811461009e575f5ffd5b91506100ac60408501610050565b90509250925092565b60805160a05160c051610b516100f25f395f818160df01526103dc01525f8181607f015261052b01525f818161016401526103100152610b515ff3fe608060405260043610610049575f3560e01c806316c743ad1461004d5780633d0fa5d21461006e57806352e4db5f146100bb57806387be6d9a146100ce578063cb2aadc614610119575b5f5ffd5b348015610058575f5ffd5b5061006c6100673660046106f7565b61014d565b005b348015610079575f5ffd5b506100a17f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff90911681526020015b60405180910390f35b61006c6100c936600461072e565b6102f9565b3480156100d9575f5ffd5b506101017f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016100b2565b348015610124575f5ffd5b50610101610133366004610784565b5f602081905290815260409020546001600160a01b031681565b60405163b700961360e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063b7009613906101a890339030906001600160e01b03195f3516906004016107a6565b602060405180830381865afa1580156101c3573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101e791906107d3565b610203576040516282b42960e81b815260040160405180910390fd5b6001600160a01b038116156102a357816001600160a01b0316816001600160a01b031663fc0c546a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610258573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061027c91906107f2565b6001600160a01b0316146102a357604051634ff9349d60e01b815260040160405180910390fd5b6001600160a01b038281165f8181526020819052604080822080546001600160a01b0319169486169485179055517f323983f5343e25b2c1396361b1b791be31484841fdfb95b8615cd02d910b1e089190a35050565b60405163b700961360e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063b70096139061035490339030906001600160e01b03195f3516906004016107a6565b602060405180830381865afa15801561036f573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061039391906107d3565b6103af576040516282b42960e81b815260040160405180910390fd5b604051637f6bc3fd60e01b81526001600160a01b03858116600483015263ffffffff851660248301525f917f000000000000000000000000000000000000000000000000000000000000000090911690637f6bc3fd906044016020604051808303815f875af1158015610424573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061044891906107f2565b6001600160a01b038085165f90815260208190526040902054919250168061048357604051639bfda19960e01b815260040160405180910390fd5b5f61049283868487343361050a565b80516020808301516040805163ffffffff8c1681526001600160a01b038b8116948201949094528784168183015260608101949094526080840191909152519293508916917fbd61d2d7217d7a7be226e5f8109a2d70f81796ff3e886e95ba8b2c48a12ca1319181900360a00190a250505050505050565b604080518082019091525f80825260208201525f6040518060e001604052807f000000000000000000000000000000000000000000000000000000000000000063ffffffff1681526020016105658a6001600160a01b031690565b81526020018681526020015f815260200160405180602001604052805f815250815260200160405180602001604052805f815250815260200160405180602001604052805f81525081525090505f60405180604001604052808681526020015f81525090505f6040518060a001604052808a6001600160a01b03168152602001888152602001896001600160a01b03168152602001896001600160a01b0316815260200184848860405160240161061e9392919061083b565b60408051601f198184030181529181526020820180516001600160e01b031663c7c7f5b360e01b1790529152516328dc830760e01b81529091506001600160a01b038b16906328dc830790889061067b9085908a906004016108f5565b5f6040518083038185885af1158015610696573d5f5f3e3d5ffd5b50505050506040513d5f823e601f3d908101601f191682016040526106be91908101906109ac565b8060200190518101906106d19190610a8a565b9b9a5050505050505050505050565b6001600160a01b03811681146106f4575f5ffd5b50565b5f5f60408385031215610708575f5ffd5b8235610713816106e0565b91506020830135610723816106e0565b809150509250929050565b5f5f5f5f60808587031215610741575f5ffd5b843561074c816106e0565b9350602085013563ffffffff81168114610764575f5ffd5b92506040850135610774816106e0565b9396929550929360600135925050565b5f60208284031215610794575f5ffd5b813561079f816106e0565b9392505050565b6001600160a01b0393841681529190921660208201526001600160e01b0319909116604082015260600190565b5f602082840312156107e3575f5ffd5b8151801515811461079f575f5ffd5b5f60208284031215610802575f5ffd5b815161079f816106e0565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b6080815263ffffffff8451166080820152602084015160a0820152604084015160c0820152606084015160e08201525f608085015160e061010084015261088661016084018261080d565b905060a0860151607f19848303016101208501526108a4828261080d565b91505060c0860151607f19848303016101408501526108c3828261080d565b925050506108de602083018580518252602090810151910152565b6001600160a01b0383166060830152949350505050565b6040815260018060a01b0383511660408201526020830151606082015260018060a01b03604084015116608082015260018060a01b0360608401511660a08201525f608084015160a060c084015261095060e084018261080d565b91505060018060a01b03831660208301529392505050565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f191681016001600160401b03811182821017156109a4576109a4610968565b604052919050565b5f602082840312156109bc575f5ffd5b81516001600160401b038111156109d1575f5ffd5b8201601f810184136109e1575f5ffd5b80516001600160401b038111156109fa576109fa610968565b610a0d601f8201601f191660200161097c565b818152856020838501011115610a21575f5ffd5b8160208401602083015e5f91810160200191909152949350505050565b5f60408284031215610a4e575f5ffd5b604080519081016001600160401b0381118282101715610a7057610a70610968565b604052825181526020928301519281019290925250919050565b5f5f82840360c0811215610a9c575f5ffd5b6080811215610aa9575f5ffd5b50604051606081016001600160401b0381118282101715610acc57610acc610968565b6040528351815260208401516001600160401b0381168114610aec575f5ffd5b6020820152610afe8560408601610a3e565b60408201529150610b128460808501610a3e565b9050925092905056fea264697066735822122023f989eb1e934dba8883c0cf82e8769a0e910ca74b544d72039e4fb29ec4d6a164736f6c634300081c0033",
  "deployedBytecode": "0x608060405260043610610049575f3560e01c806316c743ad1461004d5780633d0fa5d21461006e57806352e4db5f146100bb57806387be6d9a146100ce578063cb2aadc614610119575b5f5ffd5b348015610058575f5ffd5b5061006c6100673660046106f7565b61014d565b005b348015610079575f5ffd5b506100a17f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff90911681526020015b60405180910390f35b61006c6100c936600461072e565b6102f9565b3480156100d9575f5ffd5b506101017f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016100b2565b348015610124575f5ffd5b50610101610133366004610784565b5f602081905290815260409020546001600160a01b031681565b60405163b700961360e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063b7009613906101a890339030906001600160e01b03195f3516906004016107a6565b602060405180830381865afa1580156101c3573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101e791906107d3565b610203576040516282b42960e81b815260040160405180910390fd5b6001600160a01b038116156102a357816001600160a01b0316816001600160a01b031663fc0c546a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610258573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061027c91906107f2565b6001600160a01b0316146102a357604051634ff9349d60e01b815260040160405180910390fd5b6001600160a01b038281165f8181526020819052604080822080546001600160a01b0319169486169485179055517f323983f5343e25b2c1396361b1b791be31484841fdfb95b8615cd02d910b1e089190a35050565b60405163b700961360e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063b70096139061035490339030906001600160e01b03195f3516906004016107a6565b602060405180830381865afa15801561036f573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061039391906107d3565b6103af576040516282b42960e81b815260040160405180910390fd5b604051637f6bc3fd60e01b81526001600160a01b03858116600483015263ffffffff851660248301525f917f000000000000000000000000000000000000000000000000000000000000000090911690637f6bc3fd906044016020604051808303815f875af1158015610424573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061044891906107f2565b6001600160a01b038085165f90815260208190526040902054919250168061048357604051639bfda19960e01b815260040160405180910390fd5b5f61049283868487343361050a565b80516020808301516040805163ffffffff8c1681526001600160a01b038b8116948201949094528784168183015260608101949094526080840191909152519293508916917fbd61d2d7217d7a7be226e5f8109a2d70f81796ff3e886e95ba8b2c48a12ca1319181900360a00190a250505050505050565b604080518082019091525f80825260208201525f6040518060e001604052807f000000000000000000000000000000000000000000000000000000000000000063ffffffff1681526020016105658a6001600160a01b031690565b81526020018681526020015f815260200160405180602001604052805f815250815260200160405180602001604052805f815250815260200160405180602001604052805f81525081525090505f60405180604001604052808681526020015f81525090505f6040518060a001604052808a6001600160a01b03168152602001888152602001896001600160a01b03168152602001896001600160a01b0316815260200184848860405160240161061e9392919061083b565b60408051601f198184030181529181526020820180516001600160e01b031663c7c7f5b360e01b1790529152516328dc830760e01b81529091506001600160a01b038b16906328dc830790889061067b9085908a906004016108f5565b5f6040518083038185885af1158015610696573d5f5f3e3d5ffd5b50505050506040513d5f823e601f3d908101601f191682016040526106be91908101906109ac565b8060200190518101906106d19190610a8a565b9b9a5050505050505050505050565b6001600160a01b03811681146106f4575f5ffd5b50565b5f5f60408385031215610708575f5ffd5b8235610713816106e0565b91506020830135610723816106e0565b809150509250929050565b5f5f5f5f60808587031215610741575f5ffd5b843561074c816106e0565b9350602085013563ffffffff81168114610764575f5ffd5b92506040850135610774816106e0565b9396929550929360600135925050565b5f60208284031215610794575f5ffd5b813561079f816106e0565b9392505050565b6001600160a01b0393841681529190921660208201526001600160e01b0319909116604082015260600190565b5f602082840312156107e3575f5ffd5b8151801515811461079f575f5ffd5b5f60208284031215610802575f5ffd5b815161079f816106e0565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b6080815263ffffffff8451166080820152602084015160a0820152604084015160c0820152606084015160e08201525f608085015160e061010084015261088661016084018261080d565b905060a0860151607f19848303016101208501526108a4828261080d565b91505060c0860151607f19848303016101408501526108c3828261080d565b925050506108de602083018580518252602090810151910152565b6001600160a01b0383166060830152949350505050565b6040815260018060a01b0383511660408201526020830151606082015260018060a01b03604084015116608082015260018060a01b0360608401511660a08201525f608084015160a060c084015261095060e084018261080d565b91505060018060a01b03831660208301529392505050565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f191681016001600160401b03811182821017156109a4576109a4610968565b604052919050565b5f602082840312156109bc575f5ffd5b81516001600160401b038111156109d1575f5ffd5b8201601f810184136109e1575f5ffd5b80516001600160401b038111156109fa576109fa610968565b610a0d601f8201601f191660200161097c565b818152856020838501011115610a21575f5ffd5b8160208401602083015e5f91810160200191909152949350505050565b5f60408284031215610a4e575f5ffd5b604080519081016001600160401b0381118282101715610a7057610a70610968565b604052825181526020928301519281019290925250919050565b5f5f82840360c0811215610a9c575f5ffd5b6080811215610aa9575f5ffd5b50604051606081016001600160401b0381118282101715610acc57610acc610968565b6040528351815260208401516001600160401b0381168114610aec575f5ffd5b6020820152610afe8560408601610a3e565b60408201529150610b128460808501610a3e565b9050925092905056fea264697066735822122023f989eb1e934dba8883c0cf82e8769a0e910ca74b544d72039e4fb29ec4d6a164736f6c634300081c0033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
