[
{
"inputs": [
{
"internalType": "address",
"name": "_l1CrossDomainMessenger",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "bytes32",
"name": "msgHash",
"type": "bytes32"
}
],
"name": "FailedRelayedMessage",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "bytes32",
"name": "msgHash",
"type": "bytes32"
}
],
"name": "RelayedMessage",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "target",
"type": "address"
},
{
"indexed": false,
"internalType": "address",
"name": "sender",
"type": "address"
},
{
"indexed": false,
"internalType": "bytes",
"name": "message",
"type": "bytes"
},
{
"indexed": false,
"internalType": "uint256",
"name": "messageNonce",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "gasLimit",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "chainId",
"type": "uint256"
}
],
"name": "SentMessage",
"type": "event"
},
{
"inputs": [],
"name": "l1CrossDomainMessenger",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "messageNonce",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_target",
"type": "address"
},
{
"internalType": "address",
"name": "_sender",
"type": "address"
},
{
"internalType": "bytes",
"name": "_message",
"type": "bytes"
},
{
"internalType": "uint256",
"name": "_messageNonce",
"type": "uint256"
}
],
"name": "relayMessage",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"name": "relayedMessages",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_target",
"type": "address"
},
{
"internalType": "bytes",
"name": "_message",
"type": "bytes"
},
{
"internalType": "uint32",
"name": "_gasLimit",
"type": "uint32"
}
],
"name": "sendMessage",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_chainId",
"type": "uint256"
},
{
"internalType": "address",
"name": "_target",
"type": "address"
},
{
"internalType": "bytes",
"name": "_message",
"type": "bytes"
},
{
"internalType": "uint32",
"name": "_gasLimit",
"type": "uint32"
}
],
"name": "sendMessageViaChainId",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"name": "sentMessages",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"name": "successfulMessages",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "xDomainMessageSender",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
}
]0x6080604052600436106100965760003560e01c806382e3702d11610069578063b1b1b2091161004e578063b1b1b209146101a1578063cbd4ece9146101d1578063ecc70428146101f157600080fd5b806382e3702d14610144578063a71198691461017457600080fd5b806321d800ec1461009b5780633dbb202b146100e057806344dd5ed6146100f55780636e296e451461010a575b600080fd5b3480156100a757600080fd5b506100cb6100b6366004610a92565b60006020819052908152604090205460ff1681565b60405190151581526020015b60405180910390f35b6100f36100ee366004610bc2565b610215565b005b6100f3610103366004610c20565b5050505050565b34801561011657600080fd5b5061011f610553565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100d7565b34801561015057600080fd5b506100cb61015f366004610a92565b60026020526000908152604090205460ff1681565b34801561018057600080fd5b5060055461011f9073ffffffffffffffffffffffffffffffffffffffff1681565b3480156101ad57600080fd5b506100cb6101bc366004610a92565b60016020526000908152604090205460ff1681565b3480156101dd57600080fd5b506100f36101ec366004610cbe565b6105f7565b3480156101fd57600080fd5b5061020760035481565b6040519081526020016100d7565b6040517fe426541d0000000000000000000000000000000000000000000000000000000081523360048201527342000000000000000000000000000000000000029063e426541d9060240160206040518083038186803b15801561027857600080fd5b505afa15801561028c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102b09190610d24565b610341576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603860248201527f4c3220746f204c31206d6573736167657320617265207265737472696374656460448201527f20746f2077686974656c69737465642073656e646572732e000000000000000060648201526084015b60405180910390fd5b60006103518433856003546109f9565b805160208083019190912060009081526002909152604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905551919250907342000000000000000000000000000000000000119034908381818185875af1925050503d80600081146103e9576040519150601f19603f3d011682016040523d82523d6000602084013e6103ee565b606091505b5050905080610459576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f4661696c656420746f2073656e642062726964676520666565000000000000006044820152606401610338565b6040517fcafa81dc0000000000000000000000000000000000000000000000000000000081527342000000000000000000000000000000000000009063cafa81dc906104a9908590600401610dc3565b600060405180830381600087803b1580156104c357600080fd5b505af11580156104d7573d6000803e3d6000fd5b505050508473ffffffffffffffffffffffffffffffffffffffff167f678d1db16886696652bddc90d68217be474de2ce959bf7383cb63eaa8c6f1afa338660035487600160405161052c959493929190610dd6565b60405180910390a26001600360008282546105479190610e28565b90915550505050505050565b60045460009073ffffffffffffffffffffffffffffffffffffffff1661dead14156105da576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f78446f6d61696e4d65737361676553656e646572206973206e6f7420736574006044820152606401610338565b5060045473ffffffffffffffffffffffffffffffffffffffff1690565b60055473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffeeeeffffffffffffffffffffffffffffffffeeef330173ffffffffffffffffffffffffffffffffffffffff16146106d6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f50726f7669646564206d65737361676520636f756c64206e6f7420626520766560448201527f7269666965642e000000000000000000000000000000000000000000000000006064820152608401610338565b60006106e4858585856109f9565b8051602080830191909120600081815260019092526040909120549192509060ff1615610793576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f50726f7669646564206d6573736167652068617320616c72656164792062656560448201527f6e2072656365697665642e0000000000000000000000000000000000000000006064820152608401610338565b73ffffffffffffffffffffffffffffffffffffffff8616734200000000000000000000000000000000000000141561080557600090815260016020819052604090912080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169091179055506109f3565b600480547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8781169190911790915560405160009188169061085e908790610e67565b6000604051808303816000865af19150503d806000811461089b576040519150601f19603f3d011682016040523d82523d6000602084013e6108a0565b606091505b5050600480547fffffffffffffffffffffffff00000000000000000000000000000000000000001661dead17905590508015156001141561094157600082815260016020819052604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169092179091555183917f4641df4a962071e12719d8c8c8e5ac7fc4d97b927346a3d7a335b1f7517e133c91a261096d565b60405182907f99d0e048484baa1b1540b1367cb128acd7ab2946d1ed91ec10e3c85e4bf51b8f90600090a25b600083334360405160200161098493929190610e83565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181528151602092830120600090815291829052902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055505050505b50505050565b606084848484604051602401610a129493929190610ed5565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fcbd4ece9000000000000000000000000000000000000000000000000000000001790529050949350505050565b600060208284031215610aa457600080fd5b5035919050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610acf57600080fd5b919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600082601f830112610b1457600080fd5b813567ffffffffffffffff80821115610b2f57610b2f610ad4565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908282118183101715610b7557610b75610ad4565b81604052838152866020858801011115610b8e57600080fd5b836020870160208301376000602085830101528094505050505092915050565b803563ffffffff81168114610acf57600080fd5b600080600060608486031215610bd757600080fd5b610be084610aab565b9250602084013567ffffffffffffffff811115610bfc57600080fd5b610c0886828701610b03565b925050610c1760408501610bae565b90509250925092565b600080600080600060808688031215610c3857600080fd5b85359450610c4860208701610aab565b9350604086013567ffffffffffffffff80821115610c6557600080fd5b818801915088601f830112610c7957600080fd5b813581811115610c8857600080fd5b896020828501011115610c9a57600080fd5b602083019550809450505050610cb260608701610bae565b90509295509295909350565b60008060008060808587031215610cd457600080fd5b610cdd85610aab565b9350610ceb60208601610aab565b9250604085013567ffffffffffffffff811115610d0757600080fd5b610d1387828801610b03565b949793965093946060013593505050565b600060208284031215610d3657600080fd5b81518015158114610d4657600080fd5b9392505050565b60005b83811015610d68578181015183820152602001610d50565b838111156109f35750506000910152565b60008151808452610d91816020860160208601610d4d565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000610d466020830184610d79565b73ffffffffffffffffffffffffffffffffffffffff8616815260a060208201526000610e0560a0830187610d79565b60408301959095525063ffffffff92909216606083015260809091015292915050565b60008219821115610e62577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b500190565b60008251610e79818460208701610d4d565b9190910192915050565b60008451610e95818460208901610d4d565b60609490941b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000001691909301908152601481019190915260340192915050565b600073ffffffffffffffffffffffffffffffffffffffff808716835280861660208401525060806040830152610f0e6080830185610d79565b90508260608301529594505050505056fea2646970667358221220e51d491ea6ef2fe42979f2b972b03ca8bec8911d4bceac90e07aaf3f510d58c964736f6c63430008090033
0x6080604052600436106100965760003560e01c806382e3702d11610069578063b1b1b2091161004e578063b1b1b209146101a1578063cbd4ece9146101d1578063ecc70428146101f157600080fd5b806382e3702d14610144578063a71198691461017457600080fd5b806321d800ec1461009b5780633dbb202b146100e057806344dd5ed6146100f55780636e296e451461010a575b600080fd5b3480156100a757600080fd5b506100cb6100b6366004610a92565b60006020819052908152604090205460ff1681565b60405190151581526020015b60405180910390f35b6100f36100ee366004610bc2565b610215565b005b6100f3610103366004610c20565b5050505050565b34801561011657600080fd5b5061011f610553565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100d7565b34801561015057600080fd5b506100cb61015f366004610a92565b60026020526000908152604090205460ff1681565b34801561018057600080fd5b5060055461011f9073ffffffffffffffffffffffffffffffffffffffff1681565b3480156101ad57600080fd5b506100cb6101bc366004610a92565b60016020526000908152604090205460ff1681565b3480156101dd57600080fd5b506100f36101ec366004610cbe565b6105f7565b3480156101fd57600080fd5b5061020760035481565b6040519081526020016100d7565b6040517fe426541d0000000000000000000000000000000000000000000000000000000081523360048201527342000000000000000000000000000000000000029063e426541d9060240160206040518083038186803b15801561027857600080fd5b505afa15801561028c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102b09190610d24565b610341576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603860248201527f4c3220746f204c31206d6573736167657320617265207265737472696374656460448201527f20746f2077686974656c69737465642073656e646572732e000000000000000060648201526084015b60405180910390fd5b60006103518433856003546109f9565b805160208083019190912060009081526002909152604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905551919250907342000000000000000000000000000000000000119034908381818185875af1925050503d80600081146103e9576040519150601f19603f3d011682016040523d82523d6000602084013e6103ee565b606091505b5050905080610459576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f4661696c656420746f2073656e642062726964676520666565000000000000006044820152606401610338565b6040517fcafa81dc0000000000000000000000000000000000000000000000000000000081527342000000000000000000000000000000000000009063cafa81dc906104a9908590600401610dc3565b600060405180830381600087803b1580156104c357600080fd5b505af11580156104d7573d6000803e3d6000fd5b505050508473ffffffffffffffffffffffffffffffffffffffff167f678d1db16886696652bddc90d68217be474de2ce959bf7383cb63eaa8c6f1afa338660035487600160405161052c959493929190610dd6565b60405180910390a26001600360008282546105479190610e28565b90915550505050505050565b60045460009073ffffffffffffffffffffffffffffffffffffffff1661dead14156105da576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f78446f6d61696e4d65737361676553656e646572206973206e6f7420736574006044820152606401610338565b5060045473ffffffffffffffffffffffffffffffffffffffff1690565b60055473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffeeeeffffffffffffffffffffffffffffffffeeef330173ffffffffffffffffffffffffffffffffffffffff16146106d6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f50726f7669646564206d65737361676520636f756c64206e6f7420626520766560448201527f7269666965642e000000000000000000000000000000000000000000000000006064820152608401610338565b60006106e4858585856109f9565b8051602080830191909120600081815260019092526040909120549192509060ff1615610793576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f50726f7669646564206d6573736167652068617320616c72656164792062656560448201527f6e2072656365697665642e0000000000000000000000000000000000000000006064820152608401610338565b73ffffffffffffffffffffffffffffffffffffffff8616734200000000000000000000000000000000000000141561080557600090815260016020819052604090912080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169091179055506109f3565b600480547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8781169190911790915560405160009188169061085e908790610e67565b6000604051808303816000865af19150503d806000811461089b576040519150601f19603f3d011682016040523d82523d6000602084013e6108a0565b606091505b5050600480547fffffffffffffffffffffffff00000000000000000000000000000000000000001661dead17905590508015156001141561094157600082815260016020819052604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169092179091555183917f4641df4a962071e12719d8c8c8e5ac7fc4d97b927346a3d7a335b1f7517e133c91a261096d565b60405182907f99d0e048484baa1b1540b1367cb128acd7ab2946d1ed91ec10e3c85e4bf51b8f90600090a25b600083334360405160200161098493929190610e83565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181528151602092830120600090815291829052902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055505050505b50505050565b606084848484604051602401610a129493929190610ed5565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fcbd4ece9000000000000000000000000000000000000000000000000000000001790529050949350505050565b600060208284031215610aa457600080fd5b5035919050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610acf57600080fd5b919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600082601f830112610b1457600080fd5b813567ffffffffffffffff80821115610b2f57610b2f610ad4565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908282118183101715610b7557610b75610ad4565b81604052838152866020858801011115610b8e57600080fd5b836020870160208301376000602085830101528094505050505092915050565b803563ffffffff81168114610acf57600080fd5b600080600060608486031215610bd757600080fd5b610be084610aab565b9250602084013567ffffffffffffffff811115610bfc57600080fd5b610c0886828701610b03565b925050610c1760408501610bae565b90509250925092565b600080600080600060808688031215610c3857600080fd5b85359450610c4860208701610aab565b9350604086013567ffffffffffffffff80821115610c6557600080fd5b818801915088601f830112610c7957600080fd5b813581811115610c8857600080fd5b896020828501011115610c9a57600080fd5b602083019550809450505050610cb260608701610bae565b90509295509295909350565b60008060008060808587031215610cd457600080fd5b610cdd85610aab565b9350610ceb60208601610aab565b9250604085013567ffffffffffffffff811115610d0757600080fd5b610d1387828801610b03565b949793965093946060013593505050565b600060208284031215610d3657600080fd5b81518015158114610d4657600080fd5b9392505050565b60005b83811015610d68578181015183820152602001610d50565b838111156109f35750506000910152565b60008151808452610d91816020860160208601610d4d565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000610d466020830184610d79565b73ffffffffffffffffffffffffffffffffffffffff8616815260a060208201526000610e0560a0830187610d79565b60408301959095525063ffffffff92909216606083015260809091015292915050565b60008219821115610e62577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b500190565b60008251610e79818460208701610d4d565b9190910192915050565b60008451610e95818460208901610d4d565b60609490941b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000001691909301908152601481019190915260340192915050565b600073ffffffffffffffffffffffffffffffffffffffff808716835280861660208401525060806040830152610f0e6080830185610d79565b90508260608301529594505050505056fea2646970667358221220e51d491ea6ef2fe42979f2b972b03ca8bec8911d4bceac90e07aaf3f510d58c964736f6c63430008090033