828 lines
42 KiB
JSON
828 lines
42 KiB
JSON
{
|
|
"_format": "hh-sol-artifact-1",
|
|
"contractName": "BridgeVerifier",
|
|
"sourceName": "contracts/bridge/interop/BridgeVerifier.sol",
|
|
"abi": [
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "admin",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "_quorumThreshold",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"stateMutability": "nonpayable",
|
|
"type": "constructor"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "AccessControlBadConfirmation",
|
|
"type": "error"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "account",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "neededRole",
|
|
"type": "bytes32"
|
|
}
|
|
],
|
|
"name": "AccessControlUnauthorizedAccount",
|
|
"type": "error"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "AlreadyAttested",
|
|
"type": "error"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "AttestorNotFound",
|
|
"type": "error"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "DeadlineExpired",
|
|
"type": "error"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "ECDSAInvalidSignature",
|
|
"type": "error"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "length",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"name": "ECDSAInvalidSignatureLength",
|
|
"type": "error"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "s",
|
|
"type": "bytes32"
|
|
}
|
|
],
|
|
"name": "ECDSAInvalidSignatureS",
|
|
"type": "error"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "InvalidQuorum",
|
|
"type": "error"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "InvalidShortString",
|
|
"type": "error"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "InvalidSignature",
|
|
"type": "error"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "NonceAlreadyUsed",
|
|
"type": "error"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "string",
|
|
"name": "str",
|
|
"type": "string"
|
|
}
|
|
],
|
|
"name": "StringTooLong",
|
|
"type": "error"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "ZeroAddress",
|
|
"type": "error"
|
|
},
|
|
{
|
|
"anonymous": false,
|
|
"inputs": [
|
|
{
|
|
"indexed": true,
|
|
"internalType": "bytes32",
|
|
"name": "transferId",
|
|
"type": "bytes32"
|
|
},
|
|
{
|
|
"indexed": true,
|
|
"internalType": "address",
|
|
"name": "attestor",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"indexed": false,
|
|
"internalType": "bytes32",
|
|
"name": "proofHash",
|
|
"type": "bytes32"
|
|
}
|
|
],
|
|
"name": "AttestationSubmitted",
|
|
"type": "event"
|
|
},
|
|
{
|
|
"anonymous": false,
|
|
"inputs": [
|
|
{
|
|
"indexed": true,
|
|
"internalType": "bytes32",
|
|
"name": "transferId",
|
|
"type": "bytes32"
|
|
},
|
|
{
|
|
"indexed": false,
|
|
"internalType": "uint256",
|
|
"name": "totalWeight",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"indexed": false,
|
|
"internalType": "bool",
|
|
"name": "quorumMet",
|
|
"type": "bool"
|
|
}
|
|
],
|
|
"name": "AttestationVerified",
|
|
"type": "event"
|
|
},
|
|
{
|
|
"anonymous": false,
|
|
"inputs": [
|
|
{
|
|
"indexed": true,
|
|
"internalType": "address",
|
|
"name": "attestor",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"indexed": false,
|
|
"internalType": "uint256",
|
|
"name": "weight",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"name": "AttestorAdded",
|
|
"type": "event"
|
|
},
|
|
{
|
|
"anonymous": false,
|
|
"inputs": [
|
|
{
|
|
"indexed": true,
|
|
"internalType": "address",
|
|
"name": "attestor",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"name": "AttestorRemoved",
|
|
"type": "event"
|
|
},
|
|
{
|
|
"anonymous": false,
|
|
"inputs": [
|
|
{
|
|
"indexed": true,
|
|
"internalType": "address",
|
|
"name": "attestor",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"indexed": false,
|
|
"internalType": "bool",
|
|
"name": "enabled",
|
|
"type": "bool"
|
|
},
|
|
{
|
|
"indexed": false,
|
|
"internalType": "uint256",
|
|
"name": "weight",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"name": "AttestorUpdated",
|
|
"type": "event"
|
|
},
|
|
{
|
|
"anonymous": false,
|
|
"inputs": [],
|
|
"name": "EIP712DomainChanged",
|
|
"type": "event"
|
|
},
|
|
{
|
|
"anonymous": false,
|
|
"inputs": [
|
|
{
|
|
"indexed": false,
|
|
"internalType": "uint256",
|
|
"name": "oldThreshold",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"indexed": false,
|
|
"internalType": "uint256",
|
|
"name": "newThreshold",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"name": "QuorumThresholdUpdated",
|
|
"type": "event"
|
|
},
|
|
{
|
|
"anonymous": false,
|
|
"inputs": [
|
|
{
|
|
"indexed": true,
|
|
"internalType": "bytes32",
|
|
"name": "role",
|
|
"type": "bytes32"
|
|
},
|
|
{
|
|
"indexed": true,
|
|
"internalType": "bytes32",
|
|
"name": "previousAdminRole",
|
|
"type": "bytes32"
|
|
},
|
|
{
|
|
"indexed": true,
|
|
"internalType": "bytes32",
|
|
"name": "newAdminRole",
|
|
"type": "bytes32"
|
|
}
|
|
],
|
|
"name": "RoleAdminChanged",
|
|
"type": "event"
|
|
},
|
|
{
|
|
"anonymous": false,
|
|
"inputs": [
|
|
{
|
|
"indexed": true,
|
|
"internalType": "bytes32",
|
|
"name": "role",
|
|
"type": "bytes32"
|
|
},
|
|
{
|
|
"indexed": true,
|
|
"internalType": "address",
|
|
"name": "account",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"indexed": true,
|
|
"internalType": "address",
|
|
"name": "sender",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"name": "RoleGranted",
|
|
"type": "event"
|
|
},
|
|
{
|
|
"anonymous": false,
|
|
"inputs": [
|
|
{
|
|
"indexed": true,
|
|
"internalType": "bytes32",
|
|
"name": "role",
|
|
"type": "bytes32"
|
|
},
|
|
{
|
|
"indexed": true,
|
|
"internalType": "address",
|
|
"name": "account",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"indexed": true,
|
|
"internalType": "address",
|
|
"name": "sender",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"name": "RoleRevoked",
|
|
"type": "event"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "ATTESTOR_ROLE",
|
|
"outputs": [
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "",
|
|
"type": "bytes32"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "DEFAULT_ADMIN_ROLE",
|
|
"outputs": [
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "",
|
|
"type": "bytes32"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "attestor",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "weight",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"name": "addAttestor",
|
|
"outputs": [],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "",
|
|
"type": "bytes32"
|
|
}
|
|
],
|
|
"name": "attestationWeights",
|
|
"outputs": [
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "",
|
|
"type": "bytes32"
|
|
},
|
|
{
|
|
"internalType": "address",
|
|
"name": "",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"name": "attestations",
|
|
"outputs": [
|
|
{
|
|
"internalType": "bool",
|
|
"name": "",
|
|
"type": "bool"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"name": "attestorList",
|
|
"outputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"name": "attestors",
|
|
"outputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "attestor",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"internalType": "bool",
|
|
"name": "enabled",
|
|
"type": "bool"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "weight",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "eip712Domain",
|
|
"outputs": [
|
|
{
|
|
"internalType": "bytes1",
|
|
"name": "fields",
|
|
"type": "bytes1"
|
|
},
|
|
{
|
|
"internalType": "string",
|
|
"name": "name",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"internalType": "string",
|
|
"name": "version",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "chainId",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"internalType": "address",
|
|
"name": "verifyingContract",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "salt",
|
|
"type": "bytes32"
|
|
},
|
|
{
|
|
"internalType": "uint256[]",
|
|
"name": "extensions",
|
|
"type": "uint256[]"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "getAllAttestors",
|
|
"outputs": [
|
|
{
|
|
"internalType": "address[]",
|
|
"name": "",
|
|
"type": "address[]"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "role",
|
|
"type": "bytes32"
|
|
}
|
|
],
|
|
"name": "getRoleAdmin",
|
|
"outputs": [
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "",
|
|
"type": "bytes32"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "role",
|
|
"type": "bytes32"
|
|
},
|
|
{
|
|
"internalType": "address",
|
|
"name": "account",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"name": "grantRole",
|
|
"outputs": [],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "transferId",
|
|
"type": "bytes32"
|
|
},
|
|
{
|
|
"internalType": "address",
|
|
"name": "attestor",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"name": "hasAttested",
|
|
"outputs": [
|
|
{
|
|
"internalType": "bool",
|
|
"name": "",
|
|
"type": "bool"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "role",
|
|
"type": "bytes32"
|
|
},
|
|
{
|
|
"internalType": "address",
|
|
"name": "account",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"name": "hasRole",
|
|
"outputs": [
|
|
{
|
|
"internalType": "bool",
|
|
"name": "",
|
|
"type": "bool"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "quorumThreshold",
|
|
"outputs": [
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "attestor",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"name": "removeAttestor",
|
|
"outputs": [],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "role",
|
|
"type": "bytes32"
|
|
},
|
|
{
|
|
"internalType": "address",
|
|
"name": "callerConfirmation",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"name": "renounceRole",
|
|
"outputs": [],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "role",
|
|
"type": "bytes32"
|
|
},
|
|
{
|
|
"internalType": "address",
|
|
"name": "account",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"name": "revokeRole",
|
|
"outputs": [],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "newThreshold",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"name": "setQuorumThreshold",
|
|
"outputs": [],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"components": [
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "transferId",
|
|
"type": "bytes32"
|
|
},
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "proofHash",
|
|
"type": "bytes32"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "nonce",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "deadline",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"internalType": "bytes",
|
|
"name": "signature",
|
|
"type": "bytes"
|
|
}
|
|
],
|
|
"internalType": "struct BridgeVerifier.Attestation",
|
|
"name": "attestation",
|
|
"type": "tuple"
|
|
}
|
|
],
|
|
"name": "submitAttestation",
|
|
"outputs": [],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "bytes4",
|
|
"name": "interfaceId",
|
|
"type": "bytes4"
|
|
}
|
|
],
|
|
"name": "supportsInterface",
|
|
"outputs": [
|
|
{
|
|
"internalType": "bool",
|
|
"name": "",
|
|
"type": "bool"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "totalAttestorWeight",
|
|
"outputs": [
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "attestor",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"internalType": "bool",
|
|
"name": "enabled",
|
|
"type": "bool"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "weight",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"name": "updateAttestor",
|
|
"outputs": [],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"name": "usedNonces",
|
|
"outputs": [
|
|
{
|
|
"internalType": "bool",
|
|
"name": "",
|
|
"type": "bool"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "transferId",
|
|
"type": "bytes32"
|
|
}
|
|
],
|
|
"name": "verifyQuorum",
|
|
"outputs": [
|
|
{
|
|
"internalType": "bool",
|
|
"name": "quorumMet",
|
|
"type": "bool"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "totalWeight",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "requiredWeight",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
}
|
|
],
|
|
"bytecode": "0x61016034620001d6576001600160401b0362001bef601f38829003908101601f191684019083821185831017620001c05780859160409485948552833981010312620001d6578251926001600160a01b0384168403620001d65760200151908051916200006c83620001db565b600e835260208301936d213934b233b2ab32b934b334b2b960911b85528251956200009787620001db565b6001875260208701603160f81b8152620000b18662000319565b96610120978852620000c389620004f0565b96610140978852519020978860e05251902096610100978089524660a05285519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f84528783015260608201524660808201523060a082015260a0815260c081019381851090851117620001c057620001599386525190206080523060c0526200015281620001f7565b5062000277565b506127108111620001af5760095551916115269384620006a98539608051846110b9015260a05184611174015260c05184611083015260e051846111080152518361112e015251826105630152518161058d0152f35b815163d173577960e01b8152600490fd5b634e487b7160e01b600052604160045260246000fd5b600080fd5b604081019081106001600160401b03821117620001c057604052565b6001600160a01b031660008181527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5602052604081205490919060ff166200027357818052816020526040822081835260205260408220600160ff19825416179055339160008051602062001bcf8339815191528180a4600190565b5090565b6001600160a01b031660008181527f158ce6b8b15b31f27d2e55fc663f1cad7f7703488e44e0532708385221a6677060205260408120549091907fa7e0cd0f2772b23ee4c329892293a6bd99d48c306b094d6d008c9a8bb8b731e49060ff166200031457808352826020526040832082845260205260408320600160ff1982541617905560008051602062001bcf833981519152339380a4600190565b505090565b805160209081811015620003b65750601f8251116200035557808251920151908083106200034657501790565b82600019910360031b1b161790565b90604051809263305a27a960e01b82528060048301528251908160248401526000935b8285106200039c575050604492506000838284010152601f80199101168101030190fd5b848101820151868601604401529381019385935062000378565b9192916001600160401b038111620001c05760019182548381811c91168015620004e5575b82821014620004cf57601f811162000496575b5080601f83116001146200042e57508192939460009262000422575b5050600019600383901b1c191690821b17905560ff90565b0151905038806200040a565b90601f198316958460005282600020926000905b8882106200047e575050838596971062000464575b505050811b01905560ff90565b015160001960f88460031b161c1916905538808062000457565b80878596829496860151815501950193019062000442565b8360005283601f83600020920160051c820191601f850160051c015b828110620004c2575050620003ee565b60008155018490620004b2565b634e487b7160e01b600052602260045260246000fd5b90607f1690620003db565b8051602090818110156200057e5750601f8251116200051d57808251920151908083106200034657501790565b90604051809263305a27a960e01b82528060048301528251908160248401526000935b82851062000564575050604492506000838284010152601f80199101168101030190fd5b848101820151868601604401529381019385935062000540565b906001600160401b038211620001c057600254926001938481811c911680156200069d575b83821014620004cf57601f811162000663575b5081601f8411600114620005f75750928293918392600094620005eb575b50501b916000199060031b1c19161760025560ff90565b015192503880620005d4565b919083601f198116600260005284600020946000905b888383106200064857505050106200062e575b505050811b0160025560ff90565b015160001960f88460031b161c1916905538808062000620565b8587015188559096019594850194879350908101906200060d565b600260005284601f84600020920160051c820191601f860160051c015b82811062000690575050620005b6565b6000815501859062000680565b90607f1690620005a356fe608060408181526004908136101561001657600080fd5b600092833560e01c90816301ffc9a714610d41575080631338e95714610ceb57806313b9d67c14610a4d57806316485475146109e3578063248a9ca3146109b95780632f2ff15d1461099157806336568abe1461094a57806341adea0e146108855780634524c7e1146108165780634e2b6d47146107d257806362723644146107975780636717e41c1461076a5780637b7a91dd1461074b5780638208da4f1461066b57806384b0196e1461054d57806391d14854146105075780639cdf22d4146104e8578063a217fddf146104cd578063a464e27b146104a5578063b391202314610310578063bfd103fb146102ca578063cf1aab95146102ca578063d547741f1461028d5763ea6469f81461012c57600080fd5b34610289578060031936011261028957610144610d95565b9060243591610151610f0f565b6001600160a01b038181169490851561027a57858752600360205280848820541661026b57600184519161018483610e53565b87835260208084018381528785018981528a8c526003909252878b2094518554915160ff60a01b1991909416166001600160a81b03199091161791151560a01b60ff60a01b169190911783555191015560075490680100000000000000008210156102585750916102417f3048c9ea63a33da5ed9a73829970fa3c31e6a8b32bbc5747e24632f61c027e8e949261022385600160209701600755610dc6565b90919060018060a01b038084549260031b9316831b921b1916179055565b61024d82600854610edf565b60085551908152a280f35b634e487b7160e01b875260419052602486fd5b50825163115197e160e01b8152fd5b50825163d92e233d60e01b8152fd5b8280fd5b50346102895780600319360112610289576102c691356102c160016102b0610db0565b938387528660205286200154610f67565b61100b565b5080f35b5090346102895781600319360112610289578160209360ff926102eb610db0565b813583529086528282206001600160a01b039091168252855220549151911615158152f35b509190346104a15760203660031901126104a15761032c610d95565b610334610f0f565b60018060a01b0380911691828452600390600360205285852092865161035981610e53565b845460ff8382169182845260a01c16151560208301528860018097015492019182521561049157956001819861039487989951600854610f02565b60085588835260036020528220828155015586945b6103d7575b86867f7b1e5155c9ac76eaa3c56fcf63a3383cd696a6fa84c49901c7ae374c0a5086128280a280f35b600780548087101561048a5787836103ee89610dc6565b905490881b1c161461040657505083809501946103a9565b929193959094506000199283810190811161047757906102238561042c61043994610dc6565b9054908a1b1c1691610dc6565b83549081156104645750019261044e84610dc6565b81939154921b1b191690555538808080806103ae565b634e487b7160e01b885260319052602487fd5b634e487b7160e01b895260118352602489fd5b50506103ae565b875163115197e160e01b81528390fd5b5080fd5b5090346102895760203660031901126102895760209282913581526005845220549051908152f35b8382346104a157816003193601126104a15751908152602090f35b8382346104a157816003193601126104a1576020906008549051908152f35b5090346102895781600319360112610289578160209360ff92610528610db0565b903582528186528282206001600160a01b039091168252855220549151911615158152f35b50346102895782600319360112610289576105877f000000000000000000000000000000000000000000000000000000000000000061125b565b926105b17f0000000000000000000000000000000000000000000000000000000000000000611388565b90825192602092602085019585871067ffffffffffffffff881117610658575092602061060e838896610601998b9996528686528151998a99600f60f81b8b5260e0868c015260e08b0190610e13565b91898303908a0152610e13565b924660608801523060808801528460a088015286840360c088015251928381520193925b82811061064157505050500390f35b835185528695509381019392810192600101610632565b634e487b7160e01b845260419052602483fd5b509190346104a15760603660031901126104a157610687610d95565b926024358015159081810361074757604435906106a2610f0f565b6001600160a01b03968716808752600360205284872080549098919691161561073957508661072a839260017f2f80175758bf39560d562907a712541e12ffd30e07d5aeeb747642f82eabbf2198999a019261070a856107058654600854610f02565b610edf565b600855805460ff60a01b191691151560a01b60ff60a01b16919091179055565b5582519182526020820152a280f35b845163115197e160e01b8152fd5b8480fd5b8382346104a157816003193601126104a1576020906009549051908152f35b509034610289576020366003190112610289578160209360ff923581526006855220541690519015158152f35b8382346104a157816003193601126104a157602090517fa7e0cd0f2772b23ee4c329892293a6bd99d48c306b094d6d008c9a8bb8b731e48152f35b50903461028957602036600319011261028957359160075483101561081357506107fd602092610dc6565b905491519160018060a01b039160031b1c168152f35b80fd5b50903461028957602036600319011261028957803590610834610f0f565b61271082116108775750907fc33728fb6bc64ec1c5596c946e1406ccdfb7369404098c1d6a5f4a7a29c97b6391600954908060095582519182526020820152a180f35b825163d173577960e01b8152fd5b5082346108135780600319360112610813579080519182906007549182855260208095018093600784527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c68890845b81811061092d57505050816108e9910382610ebd565b83519485948186019282875251809352850193925b82811061090d57505050500390f35b83516001600160a01b0316855286955093810193928101926001016108fe565b82546001600160a01b0316845292880192600192830192016108d3565b508290346104a157806003193601126104a157610965610db0565b90336001600160a01b0383160361098257506102c691923561100b565b5163334bd91960e11b81528390fd5b50346102895780600319360112610289576102c691356109b460016102b0610db0565b610f8d565b50903461028957602036600319011261028957816020936001923581528085522001549051908152f35b508290346104a15760203660031901126104a15782358252600560205280822054916008549060095491828102928184041490151715610a3a57606084846127108504908051928281101584526020840152820152f35b634e487b7160e01b815260118552602490fd5b508290346104a15760031960203682018113610ce75767ffffffffffffffff928535848111610ce35760a081360394850112610ce3573386526003835281862090825191610a9a83610e53565b80546001600160a01b0380821680865260a09290921c60ff1615801588870152600190930154948601948552919015908115610cdb575b50610ccb57606482013596874211610cbb57604483013592838a526006875260ff868b205416610cac57808b013597888b528b8852868b20338c52885260ff878c205416610c9c57604260248301359a88518a8101917f6ff663cd8981c59d112e83d04ae35da97941e698b4d38d5100ecbce28d18a99c83528c8b8301528d606083015288608083015260a082015260a08152610b6d81610e85565b519020610b78611080565b9089519161190160f01b835260028301526022820152209160848101359160221901821215610c945701918b830135908111610c9857602483018136038113610c9457875193610bd1601f8401601f19168b0186610ebd565b8285526024833692010111610c9457918b89838694610bfb9683610c049a9901378401015261119a565b909391936111d6565b33911603610c84579686977f1c408be43d95b6590cb91d239fa78b236dc1f39126a2dd6f94f2ef1b65e35c6e95969752600684528288209060ff1991600183825416179055868952845282882033895284526001838920918254161790555184875260058352610c78828820918254610edf565b9055519384523393a380f35b8251638baa579f60e01b81528890fd5b8b80fd5b8a80fd5b86516335d9080560e01b81528c90fd5b8551623f613760e71b81528b90fd5b8451631ab7da6b60e01b81528a90fd5b835163115197e160e01b81528990fd5b90508a610ad1565b8580fd5b8380fd5b8382346104a15760203660031901126104a1576060916001600160a01b039190819083610d16610d95565b1681526003602052209060ff60018354930154928251948116855260a01c1615156020840152820152f35b84908434610289576020366003190112610289573563ffffffff60e01b81168091036102895760209250637965db0b60e01b8114908115610d84575b5015158152f35b6301ffc9a760e01b14905083610d7d565b600435906001600160a01b0382168203610dab57565b600080fd5b602435906001600160a01b0382168203610dab57565b600754811015610dfd5760076000527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6880190600090565b634e487b7160e01b600052603260045260246000fd5b919082519283825260005b848110610e3f575050826000602080949584010152601f8019910116010190565b602081830181015184830182015201610e1e565b6060810190811067ffffffffffffffff821117610e6f57604052565b634e487b7160e01b600052604160045260246000fd5b60c0810190811067ffffffffffffffff821117610e6f57604052565b6040810190811067ffffffffffffffff821117610e6f57604052565b90601f8019910116810190811067ffffffffffffffff821117610e6f57604052565b91908201809211610eec57565b634e487b7160e01b600052601160045260246000fd5b91908203918211610eec57565b3360009081527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5602052604081205460ff1615610f495750565b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b80600052600060205260406000203360005260205260ff6040600020541615610f495750565b9060009180835282602052604083209160018060a01b03169182845260205260ff6040842054161560001461100657808352826020526040832082845260205260408320600160ff198254161790557f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d339380a4600190565b505090565b9060009180835282602052604083209160018060a01b03169182845260205260ff6040842054166000146110065780835282602052604083208284526020526040832060ff1981541690557ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b339380a4600190565b307f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161480611171575b156110db577f000000000000000000000000000000000000000000000000000000000000000090565b60405160208101907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527f000000000000000000000000000000000000000000000000000000000000000060408201527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260a0815261116b81610e85565b51902090565b507f000000000000000000000000000000000000000000000000000000000000000046146110b2565b81519190604183036111cb576111c492506020820151906060604084015193015160001a90611460565b9192909190565b505060009160029190565b600481101561124557806111e8575050565b600181036112025760405163f645eedf60e01b8152600490fd5b600281036112235760405163fce698f760e01b815260048101839052602490fd5b60031461122d5750565b602490604051906335e2f38360e21b82526004820152fd5b634e487b7160e01b600052602160045260246000fd5b60ff81146112995760ff811690601f8211611287576040519161127d83610ea1565b8252602082015290565b604051632cd44ac360e21b8152600490fd5b506040516000600190600154918260011c906001841693841561137e575b602094858410811461136a578387528694939291811561134a57506001146112eb575b50506112e892500382610ebd565b90565b9093915060016000527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6936000915b8183106113325750506112e8935082010138806112da565b8554878401850152948501948694509183019161131a565b9150506112e894925060ff191682840152151560051b82010138806112da565b634e487b7160e01b85526022600452602485fd5b91607f16916112b7565b60ff81146113aa5760ff811690601f8211611287576040519161127d83610ea1565b5060405160006002549060018260011c9060018416938415611456575b602094858410811461136a578387528694939291811561134a57506001146113f75750506112e892500382610ebd565b9093915060026000527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace936000915b81831061143e5750506112e8935082010138806112da565b85548784018501529485019486945091830191611426565b91607f16916113c7565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a084116114e457926020929160ff608095604051948552168484015260408301526060820152600092839182805260015afa156114d85780516001600160a01b038116156114cf57918190565b50809160019190565b604051903d90823e3d90fd5b5050506000916003919056fea2646970667358221220af8505c9c6e13822cb3ad5f82c0493e6ea3ce947c0afde696c2efd1ba6094d9c64736f6c634300081600332f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d",
|
|
"deployedBytecode": "0x608060408181526004908136101561001657600080fd5b600092833560e01c90816301ffc9a714610d41575080631338e95714610ceb57806313b9d67c14610a4d57806316485475146109e3578063248a9ca3146109b95780632f2ff15d1461099157806336568abe1461094a57806341adea0e146108855780634524c7e1146108165780634e2b6d47146107d257806362723644146107975780636717e41c1461076a5780637b7a91dd1461074b5780638208da4f1461066b57806384b0196e1461054d57806391d14854146105075780639cdf22d4146104e8578063a217fddf146104cd578063a464e27b146104a5578063b391202314610310578063bfd103fb146102ca578063cf1aab95146102ca578063d547741f1461028d5763ea6469f81461012c57600080fd5b34610289578060031936011261028957610144610d95565b9060243591610151610f0f565b6001600160a01b038181169490851561027a57858752600360205280848820541661026b57600184519161018483610e53565b87835260208084018381528785018981528a8c526003909252878b2094518554915160ff60a01b1991909416166001600160a81b03199091161791151560a01b60ff60a01b169190911783555191015560075490680100000000000000008210156102585750916102417f3048c9ea63a33da5ed9a73829970fa3c31e6a8b32bbc5747e24632f61c027e8e949261022385600160209701600755610dc6565b90919060018060a01b038084549260031b9316831b921b1916179055565b61024d82600854610edf565b60085551908152a280f35b634e487b7160e01b875260419052602486fd5b50825163115197e160e01b8152fd5b50825163d92e233d60e01b8152fd5b8280fd5b50346102895780600319360112610289576102c691356102c160016102b0610db0565b938387528660205286200154610f67565b61100b565b5080f35b5090346102895781600319360112610289578160209360ff926102eb610db0565b813583529086528282206001600160a01b039091168252855220549151911615158152f35b509190346104a15760203660031901126104a15761032c610d95565b610334610f0f565b60018060a01b0380911691828452600390600360205285852092865161035981610e53565b845460ff8382169182845260a01c16151560208301528860018097015492019182521561049157956001819861039487989951600854610f02565b60085588835260036020528220828155015586945b6103d7575b86867f7b1e5155c9ac76eaa3c56fcf63a3383cd696a6fa84c49901c7ae374c0a5086128280a280f35b600780548087101561048a5787836103ee89610dc6565b905490881b1c161461040657505083809501946103a9565b929193959094506000199283810190811161047757906102238561042c61043994610dc6565b9054908a1b1c1691610dc6565b83549081156104645750019261044e84610dc6565b81939154921b1b191690555538808080806103ae565b634e487b7160e01b885260319052602487fd5b634e487b7160e01b895260118352602489fd5b50506103ae565b875163115197e160e01b81528390fd5b5080fd5b5090346102895760203660031901126102895760209282913581526005845220549051908152f35b8382346104a157816003193601126104a15751908152602090f35b8382346104a157816003193601126104a1576020906008549051908152f35b5090346102895781600319360112610289578160209360ff92610528610db0565b903582528186528282206001600160a01b039091168252855220549151911615158152f35b50346102895782600319360112610289576105877f000000000000000000000000000000000000000000000000000000000000000061125b565b926105b17f0000000000000000000000000000000000000000000000000000000000000000611388565b90825192602092602085019585871067ffffffffffffffff881117610658575092602061060e838896610601998b9996528686528151998a99600f60f81b8b5260e0868c015260e08b0190610e13565b91898303908a0152610e13565b924660608801523060808801528460a088015286840360c088015251928381520193925b82811061064157505050500390f35b835185528695509381019392810192600101610632565b634e487b7160e01b845260419052602483fd5b509190346104a15760603660031901126104a157610687610d95565b926024358015159081810361074757604435906106a2610f0f565b6001600160a01b03968716808752600360205284872080549098919691161561073957508661072a839260017f2f80175758bf39560d562907a712541e12ffd30e07d5aeeb747642f82eabbf2198999a019261070a856107058654600854610f02565b610edf565b600855805460ff60a01b191691151560a01b60ff60a01b16919091179055565b5582519182526020820152a280f35b845163115197e160e01b8152fd5b8480fd5b8382346104a157816003193601126104a1576020906009549051908152f35b509034610289576020366003190112610289578160209360ff923581526006855220541690519015158152f35b8382346104a157816003193601126104a157602090517fa7e0cd0f2772b23ee4c329892293a6bd99d48c306b094d6d008c9a8bb8b731e48152f35b50903461028957602036600319011261028957359160075483101561081357506107fd602092610dc6565b905491519160018060a01b039160031b1c168152f35b80fd5b50903461028957602036600319011261028957803590610834610f0f565b61271082116108775750907fc33728fb6bc64ec1c5596c946e1406ccdfb7369404098c1d6a5f4a7a29c97b6391600954908060095582519182526020820152a180f35b825163d173577960e01b8152fd5b5082346108135780600319360112610813579080519182906007549182855260208095018093600784527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c68890845b81811061092d57505050816108e9910382610ebd565b83519485948186019282875251809352850193925b82811061090d57505050500390f35b83516001600160a01b0316855286955093810193928101926001016108fe565b82546001600160a01b0316845292880192600192830192016108d3565b508290346104a157806003193601126104a157610965610db0565b90336001600160a01b0383160361098257506102c691923561100b565b5163334bd91960e11b81528390fd5b50346102895780600319360112610289576102c691356109b460016102b0610db0565b610f8d565b50903461028957602036600319011261028957816020936001923581528085522001549051908152f35b508290346104a15760203660031901126104a15782358252600560205280822054916008549060095491828102928184041490151715610a3a57606084846127108504908051928281101584526020840152820152f35b634e487b7160e01b815260118552602490fd5b508290346104a15760031960203682018113610ce75767ffffffffffffffff928535848111610ce35760a081360394850112610ce3573386526003835281862090825191610a9a83610e53565b80546001600160a01b0380821680865260a09290921c60ff1615801588870152600190930154948601948552919015908115610cdb575b50610ccb57606482013596874211610cbb57604483013592838a526006875260ff868b205416610cac57808b013597888b528b8852868b20338c52885260ff878c205416610c9c57604260248301359a88518a8101917f6ff663cd8981c59d112e83d04ae35da97941e698b4d38d5100ecbce28d18a99c83528c8b8301528d606083015288608083015260a082015260a08152610b6d81610e85565b519020610b78611080565b9089519161190160f01b835260028301526022820152209160848101359160221901821215610c945701918b830135908111610c9857602483018136038113610c9457875193610bd1601f8401601f19168b0186610ebd565b8285526024833692010111610c9457918b89838694610bfb9683610c049a9901378401015261119a565b909391936111d6565b33911603610c84579686977f1c408be43d95b6590cb91d239fa78b236dc1f39126a2dd6f94f2ef1b65e35c6e95969752600684528288209060ff1991600183825416179055868952845282882033895284526001838920918254161790555184875260058352610c78828820918254610edf565b9055519384523393a380f35b8251638baa579f60e01b81528890fd5b8b80fd5b8a80fd5b86516335d9080560e01b81528c90fd5b8551623f613760e71b81528b90fd5b8451631ab7da6b60e01b81528a90fd5b835163115197e160e01b81528990fd5b90508a610ad1565b8580fd5b8380fd5b8382346104a15760203660031901126104a1576060916001600160a01b039190819083610d16610d95565b1681526003602052209060ff60018354930154928251948116855260a01c1615156020840152820152f35b84908434610289576020366003190112610289573563ffffffff60e01b81168091036102895760209250637965db0b60e01b8114908115610d84575b5015158152f35b6301ffc9a760e01b14905083610d7d565b600435906001600160a01b0382168203610dab57565b600080fd5b602435906001600160a01b0382168203610dab57565b600754811015610dfd5760076000527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6880190600090565b634e487b7160e01b600052603260045260246000fd5b919082519283825260005b848110610e3f575050826000602080949584010152601f8019910116010190565b602081830181015184830182015201610e1e565b6060810190811067ffffffffffffffff821117610e6f57604052565b634e487b7160e01b600052604160045260246000fd5b60c0810190811067ffffffffffffffff821117610e6f57604052565b6040810190811067ffffffffffffffff821117610e6f57604052565b90601f8019910116810190811067ffffffffffffffff821117610e6f57604052565b91908201809211610eec57565b634e487b7160e01b600052601160045260246000fd5b91908203918211610eec57565b3360009081527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5602052604081205460ff1615610f495750565b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b80600052600060205260406000203360005260205260ff6040600020541615610f495750565b9060009180835282602052604083209160018060a01b03169182845260205260ff6040842054161560001461100657808352826020526040832082845260205260408320600160ff198254161790557f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d339380a4600190565b505090565b9060009180835282602052604083209160018060a01b03169182845260205260ff6040842054166000146110065780835282602052604083208284526020526040832060ff1981541690557ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b339380a4600190565b307f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161480611171575b156110db577f000000000000000000000000000000000000000000000000000000000000000090565b60405160208101907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527f000000000000000000000000000000000000000000000000000000000000000060408201527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260a0815261116b81610e85565b51902090565b507f000000000000000000000000000000000000000000000000000000000000000046146110b2565b81519190604183036111cb576111c492506020820151906060604084015193015160001a90611460565b9192909190565b505060009160029190565b600481101561124557806111e8575050565b600181036112025760405163f645eedf60e01b8152600490fd5b600281036112235760405163fce698f760e01b815260048101839052602490fd5b60031461122d5750565b602490604051906335e2f38360e21b82526004820152fd5b634e487b7160e01b600052602160045260246000fd5b60ff81146112995760ff811690601f8211611287576040519161127d83610ea1565b8252602082015290565b604051632cd44ac360e21b8152600490fd5b506040516000600190600154918260011c906001841693841561137e575b602094858410811461136a578387528694939291811561134a57506001146112eb575b50506112e892500382610ebd565b90565b9093915060016000527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6936000915b8183106113325750506112e8935082010138806112da565b8554878401850152948501948694509183019161131a565b9150506112e894925060ff191682840152151560051b82010138806112da565b634e487b7160e01b85526022600452602485fd5b91607f16916112b7565b60ff81146113aa5760ff811690601f8211611287576040519161127d83610ea1565b5060405160006002549060018260011c9060018416938415611456575b602094858410811461136a578387528694939291811561134a57506001146113f75750506112e892500382610ebd565b9093915060026000527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace936000915b81831061143e5750506112e8935082010138806112da565b85548784018501529485019486945091830191611426565b91607f16916113c7565b91907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a084116114e457926020929160ff608095604051948552168484015260408301526060820152600092839182805260015afa156114d85780516001600160a01b038116156114cf57918190565b50809160019190565b604051903d90823e3d90fd5b5050506000916003919056fea2646970667358221220af8505c9c6e13822cb3ad5f82c0493e6ea3ce947c0afde696c2efd1ba6094d9c64736f6c63430008160033",
|
|
"linkReferences": {},
|
|
"deployedLinkReferences": {}
|
|
}
|