779 lines
36 KiB
JSON
779 lines
36 KiB
JSON
{
|
|
"_format": "hh-sol-artifact-1",
|
|
"contractName": "CCIPRouterOptimized",
|
|
"sourceName": "contracts/ccip/CCIPRouterOptimized.sol",
|
|
"abi": [
|
|
{
|
|
"inputs": [],
|
|
"stateMutability": "nonpayable",
|
|
"type": "constructor"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "target",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"name": "AddressEmptyCode",
|
|
"type": "error"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "account",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"name": "AddressInsufficientBalance",
|
|
"type": "error"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "FailedInnerCall",
|
|
"type": "error"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "token",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"name": "SafeERC20FailedOperation",
|
|
"type": "error"
|
|
},
|
|
{
|
|
"anonymous": false,
|
|
"inputs": [
|
|
{
|
|
"indexed": false,
|
|
"internalType": "uint256",
|
|
"name": "oldFee",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"indexed": false,
|
|
"internalType": "uint256",
|
|
"name": "newFee",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"name": "BaseFeeUpdated",
|
|
"type": "event"
|
|
},
|
|
{
|
|
"anonymous": false,
|
|
"inputs": [
|
|
{
|
|
"indexed": true,
|
|
"internalType": "bytes32",
|
|
"name": "cacheKey",
|
|
"type": "bytes32"
|
|
},
|
|
{
|
|
"indexed": false,
|
|
"internalType": "uint256",
|
|
"name": "fee",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"name": "FeeCached",
|
|
"type": "event"
|
|
},
|
|
{
|
|
"anonymous": false,
|
|
"inputs": [
|
|
{
|
|
"indexed": true,
|
|
"internalType": "uint256",
|
|
"name": "batchId",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"indexed": false,
|
|
"internalType": "uint256",
|
|
"name": "messageCount",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"name": "MessageBatched",
|
|
"type": "event"
|
|
},
|
|
{
|
|
"anonymous": false,
|
|
"inputs": [
|
|
{
|
|
"indexed": true,
|
|
"internalType": "bytes32",
|
|
"name": "messageId",
|
|
"type": "bytes32"
|
|
},
|
|
{
|
|
"indexed": true,
|
|
"internalType": "uint64",
|
|
"name": "sourceChainSelector",
|
|
"type": "uint64"
|
|
},
|
|
{
|
|
"indexed": true,
|
|
"internalType": "address",
|
|
"name": "sender",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"indexed": false,
|
|
"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"
|
|
}
|
|
],
|
|
"indexed": false,
|
|
"internalType": "struct IRouterClient.TokenAmount[]",
|
|
"name": "tokenAmounts",
|
|
"type": "tuple[]"
|
|
}
|
|
],
|
|
"name": "MessageReceived",
|
|
"type": "event"
|
|
},
|
|
{
|
|
"anonymous": false,
|
|
"inputs": [
|
|
{
|
|
"indexed": true,
|
|
"internalType": "bytes32",
|
|
"name": "messageId",
|
|
"type": "bytes32"
|
|
},
|
|
{
|
|
"indexed": true,
|
|
"internalType": "uint64",
|
|
"name": "destinationChainSelector",
|
|
"type": "uint64"
|
|
},
|
|
{
|
|
"indexed": true,
|
|
"internalType": "address",
|
|
"name": "sender",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"indexed": false,
|
|
"internalType": "bytes",
|
|
"name": "receiver",
|
|
"type": "bytes"
|
|
},
|
|
{
|
|
"indexed": false,
|
|
"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"
|
|
}
|
|
],
|
|
"indexed": false,
|
|
"internalType": "struct IRouterClient.TokenAmount[]",
|
|
"name": "tokenAmounts",
|
|
"type": "tuple[]"
|
|
},
|
|
{
|
|
"indexed": false,
|
|
"internalType": "address",
|
|
"name": "feeToken",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"indexed": false,
|
|
"internalType": "bytes",
|
|
"name": "extraArgs",
|
|
"type": "bytes"
|
|
}
|
|
],
|
|
"name": "MessageSent",
|
|
"type": "event"
|
|
},
|
|
{
|
|
"anonymous": false,
|
|
"inputs": [
|
|
{
|
|
"indexed": true,
|
|
"internalType": "address",
|
|
"name": "oldAdmin",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"indexed": true,
|
|
"internalType": "address",
|
|
"name": "newAdmin",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"name": "RouterAdminChanged",
|
|
"type": "event"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "admin",
|
|
"outputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "baseFee",
|
|
"outputs": [
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "batchId",
|
|
"outputs": [
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "uint64",
|
|
"name": "destinationChainSelector",
|
|
"type": "uint64"
|
|
},
|
|
{
|
|
"components": [
|
|
{
|
|
"internalType": "bytes",
|
|
"name": "receiver",
|
|
"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": "address",
|
|
"name": "feeToken",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"internalType": "bytes",
|
|
"name": "extraArgs",
|
|
"type": "bytes"
|
|
}
|
|
],
|
|
"internalType": "struct IRouterClient.EVM2AnyMessage[]",
|
|
"name": "messages",
|
|
"type": "tuple[]"
|
|
}
|
|
],
|
|
"name": "batchSend",
|
|
"outputs": [
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "batchId_",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"internalType": "bytes32[]",
|
|
"name": "messageIds",
|
|
"type": "bytes32[]"
|
|
}
|
|
],
|
|
"stateMutability": "payable",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "batchWindow",
|
|
"outputs": [
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"name": "batches",
|
|
"outputs": [
|
|
{
|
|
"internalType": "uint64",
|
|
"name": "destinationChainSelector",
|
|
"type": "uint64"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "totalFee",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "timestamp",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "cacheExpiry",
|
|
"outputs": [
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "uint64",
|
|
"name": "destinationChainSelector",
|
|
"type": "uint64"
|
|
},
|
|
{
|
|
"internalType": "bytes",
|
|
"name": "receiver",
|
|
"type": "bytes"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "dataLength",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"name": "cacheFee",
|
|
"outputs": [
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "fee",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "",
|
|
"type": "bytes32"
|
|
}
|
|
],
|
|
"name": "cacheTimestamp",
|
|
"outputs": [
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "",
|
|
"type": "bytes32"
|
|
}
|
|
],
|
|
"name": "cachedFees",
|
|
"outputs": [
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "uint64",
|
|
"name": "destinationChainSelector",
|
|
"type": "uint64"
|
|
},
|
|
{
|
|
"components": [
|
|
{
|
|
"internalType": "bytes",
|
|
"name": "receiver",
|
|
"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": "address",
|
|
"name": "feeToken",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"internalType": "bytes",
|
|
"name": "extraArgs",
|
|
"type": "bytes"
|
|
}
|
|
],
|
|
"internalType": "struct IRouterClient.EVM2AnyMessage",
|
|
"name": "message",
|
|
"type": "tuple"
|
|
}
|
|
],
|
|
"name": "ccipSend",
|
|
"outputs": [
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "messageId",
|
|
"type": "bytes32"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "fees",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"stateMutability": "payable",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "newAdmin",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"name": "changeAdmin",
|
|
"outputs": [],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "dataFeePerByte",
|
|
"outputs": [
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "uint64",
|
|
"name": "destinationChainSelector",
|
|
"type": "uint64"
|
|
},
|
|
{
|
|
"components": [
|
|
{
|
|
"internalType": "bytes",
|
|
"name": "receiver",
|
|
"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": "address",
|
|
"name": "feeToken",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"internalType": "bytes",
|
|
"name": "extraArgs",
|
|
"type": "bytes"
|
|
}
|
|
],
|
|
"internalType": "struct IRouterClient.EVM2AnyMessage",
|
|
"name": "message",
|
|
"type": "tuple"
|
|
}
|
|
],
|
|
"name": "getFee",
|
|
"outputs": [
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "fee",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "uint64",
|
|
"name": "destinationChainSelector",
|
|
"type": "uint64"
|
|
}
|
|
],
|
|
"name": "getSupportedTokens",
|
|
"outputs": [
|
|
{
|
|
"internalType": "address[]",
|
|
"name": "",
|
|
"type": "address[]"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "maxBatchSize",
|
|
"outputs": [
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "newWindow",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"name": "setBatchWindow",
|
|
"outputs": [],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "newExpiry",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"name": "setCacheExpiry",
|
|
"outputs": [],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "newSize",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"name": "setMaxBatchSize",
|
|
"outputs": [],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "uint64",
|
|
"name": "",
|
|
"type": "uint64"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"name": "supportedTokens",
|
|
"outputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "tokenFeePerToken",
|
|
"outputs": [
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "newFee",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"name": "updateBaseFee",
|
|
"outputs": [],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function"
|
|
}
|
|
],
|
|
"bytecode": "0x6080806040523461005057670de0b6b3a764000060018190556103e8600255600355610e1060065561012c600a556064600b55600080546001600160a01b031916331790556112dc90816100568239f35b600080fdfe60806040908082526004918236101561001757600080fd5b600091823560e01c9081630352d6bb14610daf575080630feb7ce514610d9157806313bceaac14610d735780632913daa014610d555780632b26a6bf14610cc157806340be7fe3146109055780634972134a146108e757806349afd5d8146108c9578063531cdd4b146108a1578063576e9e521461087f5780636ef25c3a14610861578063769dd8d31461080e5780638e6901861461074b5780638f28397014610684578063b32c4d8d14610636578063c1aac10414610347578063c7fe2e0414610319578063e9889be1146102fb578063f45c0e25146102cd578063f851a440146102a6578063fbca3b74146101e45763ff7293471461011757600080fd5b346101e05760603660031901126101e057610130610dd5565b926024356001600160401b0381116101dc5760209461015861017e9361019893369101610e59565b60443593849161017087519384928b84019687611134565b03601f198101835282610df0565b5190209161019260015491600254906110fc565b906110b6565b928181526005855283838220556007855282429120557f350d2c2bd9e70c4432dd66cace4b442fe11796fecc7159a3df3b9905e4c5b9fc848351858152a251908152f35b8380fd5b5080fd5b509190346102a357602091826003193601126101e0576001600160401b0361020d949394610dd5565b1682528352818120908251808584549182815201908194845286842090845b8181106102865750505081610242910382610df0565b83519485948186019282875251809352850193925b82811061026657505050500390f35b83516001600160a01b031685528695509381019392810192600101610257565b82546001600160a01b03168452928801926001928301920161022c565b80fd5b50346101e057816003193601126101e057905490516001600160a01b039091168152602090f35b8284346101e05760203660031901126101e0576102f460018060a01b038354163314611040565b3560065580f35b50346101e057816003193601126101e0576020906006549051908152f35b8284346101e05760203660031901126101e05761034060018060a01b038354163314611040565b35600a5580f35b50919061035336611005565b919084610360848361115f565b93846104c5575b929050602092838101805188516103a8606082898101944286528d4390830152610399815180928d86860191016110d9565b8101038c810184520182610df0565b51902096828893519251948a8201519260018060a01b03918c6103f2608085606088015116960151996103e583519960a08b5260a08b019061110f565b8981038a8f01529061110f565b91878303828901528b808851948581520197019481925b84841061046a57505050505050509161045d81927f3e9ab9625e2124db7ba80fa471e9750c5ab5b060d19ff325020b0f00fcdc489794606084015282810360808401526001600160401b033398169661110f565b0390a48351928352820152f35b909294969791939580999a50518381511683528d8082015190840152015160028110156104b2578f828e926060926001950152019801930190918d989796959394928f610409565b634e487b7160e01b845260218752602484fd5b60608101519091506001600160a01b03168061054857508334106104ea578590610367565b855162461bcd60e51b8152602081870152603260248201527f43434950526f757465724f7074696d697a65643a20696e73756666696369656e60448201527174206e617469766520746f6b656e2066656560701b6064820152608490fd5b865160208101906323b872dd60e01b82523360248201523060448201528660648201526064815260a081018181106001600160401b03821117610623578952516105c2918691829182865af13d1561061b573d906105a582610e3e565b916105b28b519384610df0565b82523d87602084013e5b83611243565b80519081151591826105f3575b50506105dd57508590610367565b85602491885191635274afe760e01b8352820152fd5b819250906020918101031261061757602001518015908115036106175738806105cf565b8480fd5b6060906105bc565b634e487b7160e01b875260418952602487fd5b5082346106805760203660031901126106805760609282913581526008602052206001600160401b0360018201541691600360028301549201549181519384526020840152820152f35b8280fd5b508234610680576020366003190112610680576001600160a01b03813581811693919290849003610617578454928316916106c0833314611040565b84156106fe57505082907fe23b80c73a660924729e3a56cc85a00d5599a0270943d409a14d777d91d675d58580a36001600160a01b03191617815580f35b906020608492519162461bcd60e51b8352820152602160248201527f43434950526f757465724f7074696d697a65643a207a65726f206164647265736044820152607360f81b6064820152fd5b508290346106805760203660031901126106805781359161077660018060a01b038554163314611040565b82156107b457507f19ad72acd40a59cad104f97c7897cc5675e52fe1e2679088c4bfffd96a9d58a7906001548151908152836020820152a160015580f35b6020608492519162461bcd60e51b8352820152602f60248201527f43434950526f757465724f7074696d697a65643a20666565206d75737420626560448201526e02067726561746572207468616e203608c1b6064820152fd5b5090346102a357816003193601126102a357610828610dd5565b926001600160401b03602435941682526020528181209283548110156101e05760209382528360018060a01b0392200154169051908152f35b50346101e057816003193601126101e0576020906001549051908152f35b50346101e05760209061089a61089436611005565b9061115f565b9051908152f35b5082346106805760203660031901126106805760209282913581526007845220549051908152f35b50346101e057816003193601126101e0576020906002549051908152f35b50346101e057816003193601126101e0576020906009549051908152f35b509190826003193601126102a35761091b610dd5565b9160248035906001600160401b0394858311610617573660238401121561061757828401359361094a85610e27565b9361095789519586610df0565b858552602095848787019160051b83010191368311610cbd57858101915b838310610c9357505050508351600b5410610c46576009546000198114610c3457600181016009558451966109c16109ac89610e27565b986109b98c519a8b610df0565b808a52610e27565b8888019390601f1901368537819582965b8851881015610a62576109e5888a61108c565b516109f0908861115f565b6109f9916110b6565b968c8a610a06838c61108c565b5101518151908c82019242845243908301528c82606091868383015260809380518092868501920191610a38926110d9565b810103908101835201610a4b9082610df0565b519020610a58828d61108c565b52600101966109d2565b8993928b928a928f998f823410610be3578b51946080860186811083821117610bd1578d52878652818a8701931683528c860193845260608601944286528b8a5260088b528d8a20965190815192848411610bc057680100000000000000008411610bc05750508a908754838955808410610b98575b509d9c9b999a989d01868b52888b208b5b838110610b8657505050508693889693869360039360017f625294838a4300d7957f58e17a58077c20921b5f521128cbd778ed68b0eb5db699019151166001600160401b031982541617905551600284015551910155518851908152a2845195858796870193875282870152518092526060850193925b828110610b6f57505050500390f35b835185528695509381019392810192600101610b60565b825182820155918a0191600101610ae9565b888c5283838d2091820191015b818110610bb25750610ad8565b8c81558d9350600101610ba5565b634e487b7160e01b8c52604190528afd5b634e487b7160e01b8a5260418252858afd5b508a5162461bcd60e51b81528085018990526025818501527f43434950526f757465724f7074696d697a65643a20696e73756666696369656e604482015264742066656560d81b6064820152608490fd5b634e487b7160e01b8752601182528387fd5b60849083868a519262461bcd60e51b8452830152808201527f43434950526f757465724f7074696d697a65643a20626174636820746f6f206c6044820152636172676560e01b6064820152fd5b82358b8111610cb9578991610cae83928a3691870101610eb4565b815201920191610975565b8a80fd5b8880fd5b50823461068057602036600319011261068057803591610ceb60018060a01b038554163314611040565b8215610cf9575050600b5580f35b906020608492519162461bcd60e51b8352820152603060248201527f43434950526f757465724f7074696d697a65643a2073697a65206d757374206260448201526f0652067726561746572207468616e20360841b6064820152fd5b50346101e057816003193601126101e057602090600b549051908152f35b50346101e057816003193601126101e0576020906003549051908152f35b50346101e057816003193601126101e057602090600a549051908152f35b92939050346101dc5760203660031901126101dc57926020933581526005845220548152f35b600435906001600160401b0382168203610deb57565b600080fd5b90601f801991011681019081106001600160401b03821117610e1157604052565b634e487b7160e01b600052604160045260246000fd5b6001600160401b038111610e115760051b60200190565b6001600160401b038111610e1157601f01601f191660200190565b81601f82011215610deb57803590610e7082610e3e565b92610e7e6040519485610df0565b82845260208383010111610deb57816000926020809301838601378301015290565b35906001600160a01b0382168203610deb57565b91909160a081840312610deb5760409283519160a08301916001600160401b039284811084821117610e1157865283958235848111610deb5782610ef9918501610e59565b8552602080840135858111610deb5783610f14918601610e59565b8187015281840135858111610deb5784019183601f84011215610deb57823592610f3d84610e27565b92610f4a83519485610df0565b84845280840181606080970284010192878411610deb578201905b838210610fa05750505050860152610f7e818401610ea0565b908501526080820135928311610deb57608092610f9b9201610e59565b910152565b8682890312610deb578451908782018281108c821117610ff0578652610fc583610ea0565b8252838301358483015285830135906002821015610deb57828592888b950152815201910190610f65565b60246000634e487b7160e01b81526041600452fd5b906040600319830112610deb576001600160401b036004358181168103610deb5792602435918211610deb5761103d91600401610eb4565b90565b1561104757565b60405162461bcd60e51b815260206004820152601f60248201527f43434950526f757465724f7074696d697a65643a206f6e6c792061646d696e006044820152606490fd5b80518210156110a05760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b919082018092116110c357565b634e487b7160e01b600052601160045260246000fd5b60005b8381106110ec5750506000910152565b81810151838201526020016110dc565b818102929181159184041417156110c357565b90602091611128815180928185528580860191016110d9565b601f01601f1916010190565b93929161115a906001600160401b0360409316865260606020870152606086019061110f565b930152565b908051906020926020820190815151611188604095610170604051938492602084019687611134565b51902093846000526007602052604060002054801515908161122d575b50611218576111c8929394506001928392610192600154915151600254906110fc565b94600094600354935b6111df575b50505050505090565b8181015180518710156112125761120a879861019287876112028b9c8c9761108c565b5101516110fc565b9701956111d1565b506111d6565b50505050600052600560205260406000205490565b61123b9150600654906110b6565b4210386111a5565b9061126a575080511561125857805190602001fd5b604051630a12f52160e11b8152600490fd5b8151158061129d575b61127b575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b50803b1561127356fea26469706673582212200d0dd14a42997a92463ab461e4b011845e9b4e9f4c6c97168794e6ef5752110364736f6c63430008160033",
|
|
"deployedBytecode": "0x60806040908082526004918236101561001757600080fd5b600091823560e01c9081630352d6bb14610daf575080630feb7ce514610d9157806313bceaac14610d735780632913daa014610d555780632b26a6bf14610cc157806340be7fe3146109055780634972134a146108e757806349afd5d8146108c9578063531cdd4b146108a1578063576e9e521461087f5780636ef25c3a14610861578063769dd8d31461080e5780638e6901861461074b5780638f28397014610684578063b32c4d8d14610636578063c1aac10414610347578063c7fe2e0414610319578063e9889be1146102fb578063f45c0e25146102cd578063f851a440146102a6578063fbca3b74146101e45763ff7293471461011757600080fd5b346101e05760603660031901126101e057610130610dd5565b926024356001600160401b0381116101dc5760209461015861017e9361019893369101610e59565b60443593849161017087519384928b84019687611134565b03601f198101835282610df0565b5190209161019260015491600254906110fc565b906110b6565b928181526005855283838220556007855282429120557f350d2c2bd9e70c4432dd66cace4b442fe11796fecc7159a3df3b9905e4c5b9fc848351858152a251908152f35b8380fd5b5080fd5b509190346102a357602091826003193601126101e0576001600160401b0361020d949394610dd5565b1682528352818120908251808584549182815201908194845286842090845b8181106102865750505081610242910382610df0565b83519485948186019282875251809352850193925b82811061026657505050500390f35b83516001600160a01b031685528695509381019392810192600101610257565b82546001600160a01b03168452928801926001928301920161022c565b80fd5b50346101e057816003193601126101e057905490516001600160a01b039091168152602090f35b8284346101e05760203660031901126101e0576102f460018060a01b038354163314611040565b3560065580f35b50346101e057816003193601126101e0576020906006549051908152f35b8284346101e05760203660031901126101e05761034060018060a01b038354163314611040565b35600a5580f35b50919061035336611005565b919084610360848361115f565b93846104c5575b929050602092838101805188516103a8606082898101944286528d4390830152610399815180928d86860191016110d9565b8101038c810184520182610df0565b51902096828893519251948a8201519260018060a01b03918c6103f2608085606088015116960151996103e583519960a08b5260a08b019061110f565b8981038a8f01529061110f565b91878303828901528b808851948581520197019481925b84841061046a57505050505050509161045d81927f3e9ab9625e2124db7ba80fa471e9750c5ab5b060d19ff325020b0f00fcdc489794606084015282810360808401526001600160401b033398169661110f565b0390a48351928352820152f35b909294969791939580999a50518381511683528d8082015190840152015160028110156104b2578f828e926060926001950152019801930190918d989796959394928f610409565b634e487b7160e01b845260218752602484fd5b60608101519091506001600160a01b03168061054857508334106104ea578590610367565b855162461bcd60e51b8152602081870152603260248201527f43434950526f757465724f7074696d697a65643a20696e73756666696369656e60448201527174206e617469766520746f6b656e2066656560701b6064820152608490fd5b865160208101906323b872dd60e01b82523360248201523060448201528660648201526064815260a081018181106001600160401b03821117610623578952516105c2918691829182865af13d1561061b573d906105a582610e3e565b916105b28b519384610df0565b82523d87602084013e5b83611243565b80519081151591826105f3575b50506105dd57508590610367565b85602491885191635274afe760e01b8352820152fd5b819250906020918101031261061757602001518015908115036106175738806105cf565b8480fd5b6060906105bc565b634e487b7160e01b875260418952602487fd5b5082346106805760203660031901126106805760609282913581526008602052206001600160401b0360018201541691600360028301549201549181519384526020840152820152f35b8280fd5b508234610680576020366003190112610680576001600160a01b03813581811693919290849003610617578454928316916106c0833314611040565b84156106fe57505082907fe23b80c73a660924729e3a56cc85a00d5599a0270943d409a14d777d91d675d58580a36001600160a01b03191617815580f35b906020608492519162461bcd60e51b8352820152602160248201527f43434950526f757465724f7074696d697a65643a207a65726f206164647265736044820152607360f81b6064820152fd5b508290346106805760203660031901126106805781359161077660018060a01b038554163314611040565b82156107b457507f19ad72acd40a59cad104f97c7897cc5675e52fe1e2679088c4bfffd96a9d58a7906001548151908152836020820152a160015580f35b6020608492519162461bcd60e51b8352820152602f60248201527f43434950526f757465724f7074696d697a65643a20666565206d75737420626560448201526e02067726561746572207468616e203608c1b6064820152fd5b5090346102a357816003193601126102a357610828610dd5565b926001600160401b03602435941682526020528181209283548110156101e05760209382528360018060a01b0392200154169051908152f35b50346101e057816003193601126101e0576020906001549051908152f35b50346101e05760209061089a61089436611005565b9061115f565b9051908152f35b5082346106805760203660031901126106805760209282913581526007845220549051908152f35b50346101e057816003193601126101e0576020906002549051908152f35b50346101e057816003193601126101e0576020906009549051908152f35b509190826003193601126102a35761091b610dd5565b9160248035906001600160401b0394858311610617573660238401121561061757828401359361094a85610e27565b9361095789519586610df0565b858552602095848787019160051b83010191368311610cbd57858101915b838310610c9357505050508351600b5410610c46576009546000198114610c3457600181016009558451966109c16109ac89610e27565b986109b98c519a8b610df0565b808a52610e27565b8888019390601f1901368537819582965b8851881015610a62576109e5888a61108c565b516109f0908861115f565b6109f9916110b6565b968c8a610a06838c61108c565b5101518151908c82019242845243908301528c82606091868383015260809380518092868501920191610a38926110d9565b810103908101835201610a4b9082610df0565b519020610a58828d61108c565b52600101966109d2565b8993928b928a928f998f823410610be3578b51946080860186811083821117610bd1578d52878652818a8701931683528c860193845260608601944286528b8a5260088b528d8a20965190815192848411610bc057680100000000000000008411610bc05750508a908754838955808410610b98575b509d9c9b999a989d01868b52888b208b5b838110610b8657505050508693889693869360039360017f625294838a4300d7957f58e17a58077c20921b5f521128cbd778ed68b0eb5db699019151166001600160401b031982541617905551600284015551910155518851908152a2845195858796870193875282870152518092526060850193925b828110610b6f57505050500390f35b835185528695509381019392810192600101610b60565b825182820155918a0191600101610ae9565b888c5283838d2091820191015b818110610bb25750610ad8565b8c81558d9350600101610ba5565b634e487b7160e01b8c52604190528afd5b634e487b7160e01b8a5260418252858afd5b508a5162461bcd60e51b81528085018990526025818501527f43434950526f757465724f7074696d697a65643a20696e73756666696369656e604482015264742066656560d81b6064820152608490fd5b634e487b7160e01b8752601182528387fd5b60849083868a519262461bcd60e51b8452830152808201527f43434950526f757465724f7074696d697a65643a20626174636820746f6f206c6044820152636172676560e01b6064820152fd5b82358b8111610cb9578991610cae83928a3691870101610eb4565b815201920191610975565b8a80fd5b8880fd5b50823461068057602036600319011261068057803591610ceb60018060a01b038554163314611040565b8215610cf9575050600b5580f35b906020608492519162461bcd60e51b8352820152603060248201527f43434950526f757465724f7074696d697a65643a2073697a65206d757374206260448201526f0652067726561746572207468616e20360841b6064820152fd5b50346101e057816003193601126101e057602090600b549051908152f35b50346101e057816003193601126101e0576020906003549051908152f35b50346101e057816003193601126101e057602090600a549051908152f35b92939050346101dc5760203660031901126101dc57926020933581526005845220548152f35b600435906001600160401b0382168203610deb57565b600080fd5b90601f801991011681019081106001600160401b03821117610e1157604052565b634e487b7160e01b600052604160045260246000fd5b6001600160401b038111610e115760051b60200190565b6001600160401b038111610e1157601f01601f191660200190565b81601f82011215610deb57803590610e7082610e3e565b92610e7e6040519485610df0565b82845260208383010111610deb57816000926020809301838601378301015290565b35906001600160a01b0382168203610deb57565b91909160a081840312610deb5760409283519160a08301916001600160401b039284811084821117610e1157865283958235848111610deb5782610ef9918501610e59565b8552602080840135858111610deb5783610f14918601610e59565b8187015281840135858111610deb5784019183601f84011215610deb57823592610f3d84610e27565b92610f4a83519485610df0565b84845280840181606080970284010192878411610deb578201905b838210610fa05750505050860152610f7e818401610ea0565b908501526080820135928311610deb57608092610f9b9201610e59565b910152565b8682890312610deb578451908782018281108c821117610ff0578652610fc583610ea0565b8252838301358483015285830135906002821015610deb57828592888b950152815201910190610f65565b60246000634e487b7160e01b81526041600452fd5b906040600319830112610deb576001600160401b036004358181168103610deb5792602435918211610deb5761103d91600401610eb4565b90565b1561104757565b60405162461bcd60e51b815260206004820152601f60248201527f43434950526f757465724f7074696d697a65643a206f6e6c792061646d696e006044820152606490fd5b80518210156110a05760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b919082018092116110c357565b634e487b7160e01b600052601160045260246000fd5b60005b8381106110ec5750506000910152565b81810151838201526020016110dc565b818102929181159184041417156110c357565b90602091611128815180928185528580860191016110d9565b601f01601f1916010190565b93929161115a906001600160401b0360409316865260606020870152606086019061110f565b930152565b908051906020926020820190815151611188604095610170604051938492602084019687611134565b51902093846000526007602052604060002054801515908161122d575b50611218576111c8929394506001928392610192600154915151600254906110fc565b94600094600354935b6111df575b50505050505090565b8181015180518710156112125761120a879861019287876112028b9c8c9761108c565b5101516110fc565b9701956111d1565b506111d6565b50505050600052600560205260406000205490565b61123b9150600654906110b6565b4210386111a5565b9061126a575080511561125857805190602001fd5b604051630a12f52160e11b8152600490fd5b8151158061129d575b61127b575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b50803b1561127356fea26469706673582212200d0dd14a42997a92463ab461e4b011845e9b4e9f4c6c97168794e6ef5752110364736f6c63430008160033",
|
|
"linkReferences": {},
|
|
"deployedLinkReferences": {}
|
|
}
|