446 lines
29 KiB
JSON
446 lines
29 KiB
JSON
|
|
{
|
||
|
|
"_format": "hh-sol-artifact-1",
|
||
|
|
"contractName": "TwoWayTokenBridgeL2",
|
||
|
|
"sourceName": "contracts/bridge/TwoWayTokenBridgeL2.sol",
|
||
|
|
"abi": [
|
||
|
|
{
|
||
|
|
"inputs": [
|
||
|
|
{
|
||
|
|
"internalType": "address",
|
||
|
|
"name": "_router",
|
||
|
|
"type": "address"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"internalType": "address",
|
||
|
|
"name": "_token",
|
||
|
|
"type": "address"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"internalType": "address",
|
||
|
|
"name": "_feeToken",
|
||
|
|
"type": "address"
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"stateMutability": "nonpayable",
|
||
|
|
"type": "constructor"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"anonymous": false,
|
||
|
|
"inputs": [
|
||
|
|
{
|
||
|
|
"indexed": true,
|
||
|
|
"internalType": "address",
|
||
|
|
"name": "user",
|
||
|
|
"type": "address"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"indexed": false,
|
||
|
|
"internalType": "uint256",
|
||
|
|
"name": "amount",
|
||
|
|
"type": "uint256"
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"name": "Burned",
|
||
|
|
"type": "event"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"anonymous": false,
|
||
|
|
"inputs": [
|
||
|
|
{
|
||
|
|
"indexed": true,
|
||
|
|
"internalType": "bytes32",
|
||
|
|
"name": "messageId",
|
||
|
|
"type": "bytes32"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"indexed": false,
|
||
|
|
"internalType": "uint64",
|
||
|
|
"name": "destChain",
|
||
|
|
"type": "uint64"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"indexed": false,
|
||
|
|
"internalType": "address",
|
||
|
|
"name": "recipient",
|
||
|
|
"type": "address"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"indexed": false,
|
||
|
|
"internalType": "uint256",
|
||
|
|
"name": "amount",
|
||
|
|
"type": "uint256"
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"name": "CcipSend",
|
||
|
|
"type": "event"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"anonymous": false,
|
||
|
|
"inputs": [
|
||
|
|
{
|
||
|
|
"indexed": false,
|
||
|
|
"internalType": "uint64",
|
||
|
|
"name": "chainSelector",
|
||
|
|
"type": "uint64"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"indexed": false,
|
||
|
|
"internalType": "address",
|
||
|
|
"name": "l1Bridge",
|
||
|
|
"type": "address"
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"name": "DestinationAdded",
|
||
|
|
"type": "event"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"anonymous": false,
|
||
|
|
"inputs": [
|
||
|
|
{
|
||
|
|
"indexed": false,
|
||
|
|
"internalType": "uint64",
|
||
|
|
"name": "chainSelector",
|
||
|
|
"type": "uint64"
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"name": "DestinationRemoved",
|
||
|
|
"type": "event"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"anonymous": false,
|
||
|
|
"inputs": [
|
||
|
|
{
|
||
|
|
"indexed": false,
|
||
|
|
"internalType": "uint64",
|
||
|
|
"name": "chainSelector",
|
||
|
|
"type": "uint64"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"indexed": false,
|
||
|
|
"internalType": "address",
|
||
|
|
"name": "l1Bridge",
|
||
|
|
"type": "address"
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"name": "DestinationUpdated",
|
||
|
|
"type": "event"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"anonymous": false,
|
||
|
|
"inputs": [
|
||
|
|
{
|
||
|
|
"indexed": true,
|
||
|
|
"internalType": "address",
|
||
|
|
"name": "recipient",
|
||
|
|
"type": "address"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"indexed": false,
|
||
|
|
"internalType": "uint256",
|
||
|
|
"name": "amount",
|
||
|
|
"type": "uint256"
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"name": "Minted",
|
||
|
|
"type": "event"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"inputs": [
|
||
|
|
{
|
||
|
|
"internalType": "uint64",
|
||
|
|
"name": "chainSelector",
|
||
|
|
"type": "uint64"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"internalType": "address",
|
||
|
|
"name": "l1Bridge",
|
||
|
|
"type": "address"
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"name": "addDestination",
|
||
|
|
"outputs": [],
|
||
|
|
"stateMutability": "nonpayable",
|
||
|
|
"type": "function"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"inputs": [],
|
||
|
|
"name": "admin",
|
||
|
|
"outputs": [
|
||
|
|
{
|
||
|
|
"internalType": "address",
|
||
|
|
"name": "",
|
||
|
|
"type": "address"
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"stateMutability": "view",
|
||
|
|
"type": "function"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"inputs": [
|
||
|
|
{
|
||
|
|
"internalType": "uint64",
|
||
|
|
"name": "destSelector",
|
||
|
|
"type": "uint64"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"internalType": "address",
|
||
|
|
"name": "recipient",
|
||
|
|
"type": "address"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"internalType": "uint256",
|
||
|
|
"name": "amount",
|
||
|
|
"type": "uint256"
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"name": "burnAndSend",
|
||
|
|
"outputs": [
|
||
|
|
{
|
||
|
|
"internalType": "bytes32",
|
||
|
|
"name": "messageId",
|
||
|
|
"type": "bytes32"
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"stateMutability": "nonpayable",
|
||
|
|
"type": "function"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"inputs": [
|
||
|
|
{
|
||
|
|
"components": [
|
||
|
|
{
|
||
|
|
"internalType": "bytes32",
|
||
|
|
"name": "messageId",
|
||
|
|
"type": "bytes32"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"internalType": "uint64",
|
||
|
|
"name": "sourceChainSelector",
|
||
|
|
"type": "uint64"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"internalType": "bytes",
|
||
|
|
"name": "sender",
|
||
|
|
"type": "bytes"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"internalType": "bytes",
|
||
|
|
"name": "data",
|
||
|
|
"type": "bytes"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"components": [
|
||
|
|
{
|
||
|
|
"internalType": "address",
|
||
|
|
"name": "token",
|
||
|
|
"type": "address"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"internalType": "uint256",
|
||
|
|
"name": "amount",
|
||
|
|
"type": "uint256"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"internalType": "enum IRouterClient.TokenAmountType",
|
||
|
|
"name": "amountType",
|
||
|
|
"type": "uint8"
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"internalType": "struct IRouterClient.TokenAmount[]",
|
||
|
|
"name": "tokenAmounts",
|
||
|
|
"type": "tuple[]"
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"internalType": "struct IRouterClient.Any2EVMMessage",
|
||
|
|
"name": "message",
|
||
|
|
"type": "tuple"
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"name": "ccipReceive",
|
||
|
|
"outputs": [],
|
||
|
|
"stateMutability": "nonpayable",
|
||
|
|
"type": "function"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"inputs": [],
|
||
|
|
"name": "ccipRouter",
|
||
|
|
"outputs": [
|
||
|
|
{
|
||
|
|
"internalType": "contract IRouterClient",
|
||
|
|
"name": "",
|
||
|
|
"type": "address"
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"stateMutability": "view",
|
||
|
|
"type": "function"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"inputs": [
|
||
|
|
{
|
||
|
|
"internalType": "address",
|
||
|
|
"name": "newAdmin",
|
||
|
|
"type": "address"
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"name": "changeAdmin",
|
||
|
|
"outputs": [],
|
||
|
|
"stateMutability": "nonpayable",
|
||
|
|
"type": "function"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"inputs": [
|
||
|
|
{
|
||
|
|
"internalType": "uint256",
|
||
|
|
"name": "",
|
||
|
|
"type": "uint256"
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"name": "destinationChains",
|
||
|
|
"outputs": [
|
||
|
|
{
|
||
|
|
"internalType": "uint64",
|
||
|
|
"name": "",
|
||
|
|
"type": "uint64"
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"stateMutability": "view",
|
||
|
|
"type": "function"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"inputs": [
|
||
|
|
{
|
||
|
|
"internalType": "uint64",
|
||
|
|
"name": "",
|
||
|
|
"type": "uint64"
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"name": "destinations",
|
||
|
|
"outputs": [
|
||
|
|
{
|
||
|
|
"internalType": "uint64",
|
||
|
|
"name": "chainSelector",
|
||
|
|
"type": "uint64"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"internalType": "address",
|
||
|
|
"name": "l1Bridge",
|
||
|
|
"type": "address"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"internalType": "bool",
|
||
|
|
"name": "enabled",
|
||
|
|
"type": "bool"
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"stateMutability": "view",
|
||
|
|
"type": "function"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"inputs": [],
|
||
|
|
"name": "feeToken",
|
||
|
|
"outputs": [
|
||
|
|
{
|
||
|
|
"internalType": "address",
|
||
|
|
"name": "",
|
||
|
|
"type": "address"
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"stateMutability": "view",
|
||
|
|
"type": "function"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"inputs": [],
|
||
|
|
"name": "getDestinationChains",
|
||
|
|
"outputs": [
|
||
|
|
{
|
||
|
|
"internalType": "uint64[]",
|
||
|
|
"name": "",
|
||
|
|
"type": "uint64[]"
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"stateMutability": "view",
|
||
|
|
"type": "function"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"inputs": [],
|
||
|
|
"name": "mirroredToken",
|
||
|
|
"outputs": [
|
||
|
|
{
|
||
|
|
"internalType": "address",
|
||
|
|
"name": "",
|
||
|
|
"type": "address"
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"stateMutability": "view",
|
||
|
|
"type": "function"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"inputs": [
|
||
|
|
{
|
||
|
|
"internalType": "bytes32",
|
||
|
|
"name": "",
|
||
|
|
"type": "bytes32"
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"name": "processed",
|
||
|
|
"outputs": [
|
||
|
|
{
|
||
|
|
"internalType": "bool",
|
||
|
|
"name": "",
|
||
|
|
"type": "bool"
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"stateMutability": "view",
|
||
|
|
"type": "function"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"inputs": [
|
||
|
|
{
|
||
|
|
"internalType": "uint64",
|
||
|
|
"name": "chainSelector",
|
||
|
|
"type": "uint64"
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"name": "removeDestination",
|
||
|
|
"outputs": [],
|
||
|
|
"stateMutability": "nonpayable",
|
||
|
|
"type": "function"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"inputs": [
|
||
|
|
{
|
||
|
|
"internalType": "uint64",
|
||
|
|
"name": "chainSelector",
|
||
|
|
"type": "uint64"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"internalType": "address",
|
||
|
|
"name": "l1Bridge",
|
||
|
|
"type": "address"
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"name": "updateDestination",
|
||
|
|
"outputs": [],
|
||
|
|
"stateMutability": "nonpayable",
|
||
|
|
"type": "function"
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"inputs": [
|
||
|
|
{
|
||
|
|
"internalType": "address",
|
||
|
|
"name": "newFee",
|
||
|
|
"type": "address"
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"name": "updateFeeToken",
|
||
|
|
"outputs": [],
|
||
|
|
"stateMutability": "nonpayable",
|
||
|
|
"type": "function"
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"bytecode": "0x60c0346200013657601f620014a738819003918201601f19168301916001600160401b038311848410176200013b5780849260609460405283398101031262000136576200004d8162000151565b620000696040620000616020850162000151565b930162000151565b916001600160a01b03918216801515806200012a575b806200011e575b15620000ed5760805260a05260018060a01b031991168160005416176000553390600154161760015560405161134090816200016782396080518181816102d301528181610d920152610fc1015260a05181818161018501528181610cf80152610e390152f35b60405162461bcd60e51b81526020600482015260096024820152683d32b9379030b2323960b91b6044820152606490fd5b50828416151562000086565b5082821615156200007f565b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b0382168203620001365756fe608060408181526004918236101561001657600080fd5b60009260e0908435821c9283630de2298414610fad575082634c133f0614610d50578263647846a514610d275782637623f13f14610ce25782638f28397014610c9057826396c75c5e14610c38578263abc343a714610ab3578263b217be241461092a578263c1f0808a146108fd578263c89245d5146108ab578263ced719f31461070a578263e0620a941461061e578263f2c2af43146105db578263f7d0ae44146100f857505063f851a440146100cd57600080fd5b346100f457816003193601126100f45760015490516001600160a01b039091168152602090f35b5080fd5b838591346105d75760603660031901126105d757610114611021565b9361011d61100b565b9060443591821515806105c5575b15610597576001600160401b03938488169485885260209860028a5287808a2060ff8c83519261015a846110b6565b54988991878316855260018060a01b039a8b918601961c1685521c1615908a821591015261056457857f000000000000000000000000000000000000000000000000000000000000000016803b156104a057895163079cc67960e41b815233868201908152602081018a905290918c9183919082908490829060400103925af180156104ab57918c898c8e8b958b989761053c575b505061025192918161024392518281527f696de425f79f4a40bc6d2122ca50507f0efbeabbff86a84871b7196ab8ea8df7853392a2516001600160a01b039098169288019283526020830152869160400190565b03601f1981018652856110d1565b5116928951938c8501528b8452898401848110828211176104fd576060850181811083821117610527578b528b8152878c5416938b519560a0870187811085821117610512578d5286528d8601528a8501528260608501528951908c820190828210908211176104fd578a528a815260808401528851632bb74f2960e11b81527f0000000000000000000000000000000000000000000000000000000000000000871692908c818061030688878b8401611209565b0381875afa9081156104f3578b959493928d928f9284916104b5575b50806103e3575b5050855163306ab04160e21b8152968795869485935061034a928401611209565b03925af19687156103d857809761039a575b5050845193845216858301528183015282907fb1228efac11bdc49c10342577751fdf1418dff5e719621b7825cfe54dfe58c5290606090a251908152f35b909194939296508582813d83116103d1575b6103b681836110d1565b810103126103ce57505194919290919082606061035c565b80fd5b503d6103ac565b8651903d90823e3d90fd5b965163095ea7b360e01b81526001600160a01b038616818a0190815260208101989098529597949693959391928492839190829060400103925af19081156104ab578b91610471575b50156104405792909188928a8c8e80610329565b885162461bcd60e51b81529081018b9052600b60248201526a66656520617070726f766560a81b6044820152606490fd5b90508b81813d83116104a4575b61048881836110d1565b810103126104a0575180151581036104a0578c61042c565b8a80fd5b503d61047e565b8a513d8d823e3d90fd5b935050929394955081813d83116104ec575b6104d181836110d1565b810103126104e8578c8b959493928d925138610322565b8b80fd5b503d6104c7565b8b513d8e823e3d90fd5b604186634e487b7160e01b6000525260246000fd5b604189634e487b7160e01b6000525260246000fd5b604187634e487b7160e01b6000525260246000fd5b93509450505061054e9193945061108d565b61056057908585928c898c8e386101ef565b8980fd5b885162461bcd60e51b81528085018c9052600d60248201526c19195cdd08191a5cd8589b1959609a1b6044820152606490fd5b845162461bcd60e51b81526020818601526008602482015267626164206172677360c01b6044820152606490fd5b506001600160a01b038116151561012b565b8280fd5b915050346105d75760203660031901126105d75735916003548310156103ce57506001600160401b0361060f602093611037565b90549060031b1c169051908152f35b509050346105d757816003193601126105d7577f2dae8bd8211b67fa11381d1e0de2945698c5910d9ba2cabc120b161ea802e6809161070461065e611021565b9161066761100b565b936106ae60018060a01b03610681816001541633146110f2565b6106a560ff6001600160401b0388
|
||
|
|
"deployedBytecode": "0x608060408181526004918236101561001657600080fd5b60009260e0908435821c9283630de2298414610fad575082634c133f0614610d50578263647846a514610d275782637623f13f14610ce25782638f28397014610c9057826396c75c5e14610c38578263abc343a714610ab3578263b217be241461092a578263c1f0808a146108fd578263c89245d5146108ab578263ced719f31461070a578263e0620a941461061e578263f2c2af43146105db578263f7d0ae44146100f857505063f851a440146100cd57600080fd5b346100f457816003193601126100f45760015490516001600160a01b039091168152602090f35b5080fd5b838591346105d75760603660031901126105d757610114611021565b9361011d61100b565b9060443591821515806105c5575b15610597576001600160401b03938488169485885260209860028a5287808a2060ff8c83519261015a846110b6565b54988991878316855260018060a01b039a8b918601961c1685521c1615908a821591015261056457857f000000000000000000000000000000000000000000000000000000000000000016803b156104a057895163079cc67960e41b815233868201908152602081018a905290918c9183919082908490829060400103925af180156104ab57918c898c8e8b958b989761053c575b505061025192918161024392518281527f696de425f79f4a40bc6d2122ca50507f0efbeabbff86a84871b7196ab8ea8df7853392a2516001600160a01b039098169288019283526020830152869160400190565b03601f1981018652856110d1565b5116928951938c8501528b8452898401848110828211176104fd576060850181811083821117610527578b528b8152878c5416938b519560a0870187811085821117610512578d5286528d8601528a8501528260608501528951908c820190828210908211176104fd578a528a815260808401528851632bb74f2960e11b81527f0000000000000000000000000000000000000000000000000000000000000000871692908c818061030688878b8401611209565b0381875afa9081156104f3578b959493928d928f9284916104b5575b50806103e3575b5050855163306ab04160e21b8152968795869485935061034a928401611209565b03925af19687156103d857809761039a575b5050845193845216858301528183015282907fb1228efac11bdc49c10342577751fdf1418dff5e719621b7825cfe54dfe58c5290606090a251908152f35b909194939296508582813d83116103d1575b6103b681836110d1565b810103126103ce57505194919290919082606061035c565b80fd5b503d6103ac565b8651903d90823e3d90fd5b965163095ea7b360e01b81526001600160a01b038616818a0190815260208101989098529597949693959391928492839190829060400103925af19081156104ab578b91610471575b50156104405792909188928a8c8e80610329565b885162461bcd60e51b81529081018b9052600b60248201526a66656520617070726f766560a81b6044820152606490fd5b90508b81813d83116104a4575b61048881836110d1565b810103126104a0575180151581036104a0578c61042c565b8a80fd5b503d61047e565b8a513d8d823e3d90fd5b935050929394955081813d83116104ec575b6104d181836110d1565b810103126104e8578c8b959493928d925138610322565b8b80fd5b503d6104c7565b8b513d8e823e3d90fd5b604186634e487b7160e01b6000525260246000fd5b604189634e487b7160e01b6000525260246000fd5b604187634e487b7160e01b6000525260246000fd5b93509450505061054e9193945061108d565b61056057908585928c898c8e386101ef565b8980fd5b885162461bcd60e51b81528085018c9052600d60248201526c19195cdd08191a5cd8589b1959609a1b6044820152606490fd5b845162461bcd60e51b81526020818601526008602482015267626164206172677360c01b6044820152606490fd5b506001600160a01b038116151561012b565b8280fd5b915050346105d75760203660031901126105d75735916003548310156103ce57506001600160401b0361060f602093611037565b90549060031b1c169051908152f35b509050346105d757816003193601126105d7577f2dae8bd8211b67fa11381d1e0de2945698c5910d9ba2cabc120b161ea802e6809161070461065e611021565b9161066761100b565b936106ae60018060a01b03610681816001541633146110f2565b6106a560ff6001600160401b03881694858c526002602052868c2054901c1661115d565b86161515611193565b865260026020528086208054600160401b600160e01b031916604086901b600160401b600160e01b03161790555b516001600160401b0390921682526001600160a01b0390921660208201529081906040820190565b0390a180f35b848285346105d757806003193601126105d757610725611021565b9061072e61100b565b60015490936001600160a01b039161074990831633146110f2565b818516610757811515611193565b6001600160401b039283861691828952600260205260ff868a2054851c1661087f57906107e59186519561078a876110b6565b84875260208088019283526001898901908152958c5260029052878b20965187549251600160401b600160e01b03941660401b939093166001600160e01b03199092169216600160401b600160e01b03191691909117178455565b51825460ff60e01b1916901515
|
||
|
|
"linkReferences": {},
|
||
|
|
"deployedLinkReferences": {}
|
||
|
|
}
|