610 lines
33 KiB
JSON
610 lines
33 KiB
JSON
{
|
|
"_format": "hh-sol-artifact-1",
|
|
"contractName": "FeeCollector",
|
|
"sourceName": "contracts/utils/FeeCollector.sol",
|
|
"abi": [
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "admin",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"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": [
|
|
{
|
|
"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": [],
|
|
"name": "ReentrancyGuardReentrantCall",
|
|
"type": "error"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "token",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"name": "SafeERC20FailedOperation",
|
|
"type": "error"
|
|
},
|
|
{
|
|
"anonymous": false,
|
|
"inputs": [
|
|
{
|
|
"indexed": true,
|
|
"internalType": "address",
|
|
"name": "token",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"indexed": true,
|
|
"internalType": "address",
|
|
"name": "recipient",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"indexed": false,
|
|
"internalType": "uint256",
|
|
"name": "shareBps",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"indexed": false,
|
|
"internalType": "uint256",
|
|
"name": "timestamp",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"name": "FeeRecipientAdded",
|
|
"type": "event"
|
|
},
|
|
{
|
|
"anonymous": false,
|
|
"inputs": [
|
|
{
|
|
"indexed": true,
|
|
"internalType": "address",
|
|
"name": "token",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"indexed": true,
|
|
"internalType": "address",
|
|
"name": "recipient",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"indexed": false,
|
|
"internalType": "uint256",
|
|
"name": "timestamp",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"name": "FeeRecipientRemoved",
|
|
"type": "event"
|
|
},
|
|
{
|
|
"anonymous": false,
|
|
"inputs": [
|
|
{
|
|
"indexed": true,
|
|
"internalType": "address",
|
|
"name": "token",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"indexed": true,
|
|
"internalType": "address",
|
|
"name": "from",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"indexed": false,
|
|
"internalType": "uint256",
|
|
"name": "amount",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"indexed": false,
|
|
"internalType": "uint256",
|
|
"name": "timestamp",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"name": "FeesCollected",
|
|
"type": "event"
|
|
},
|
|
{
|
|
"anonymous": false,
|
|
"inputs": [
|
|
{
|
|
"indexed": true,
|
|
"internalType": "address",
|
|
"name": "token",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"indexed": true,
|
|
"internalType": "address",
|
|
"name": "recipient",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"indexed": false,
|
|
"internalType": "uint256",
|
|
"name": "amount",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"indexed": false,
|
|
"internalType": "uint256",
|
|
"name": "timestamp",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"name": "FeesDistributed",
|
|
"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": "DEFAULT_ADMIN_ROLE",
|
|
"outputs": [
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "",
|
|
"type": "bytes32"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [],
|
|
"name": "FEE_MANAGER_ROLE",
|
|
"outputs": [
|
|
{
|
|
"internalType": "bytes32",
|
|
"name": "",
|
|
"type": "bytes32"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "token",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"internalType": "address",
|
|
"name": "recipient",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "shareBps",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"name": "addFeeRecipient",
|
|
"outputs": [],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "token",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "amount",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"name": "collectFees",
|
|
"outputs": [],
|
|
"stateMutability": "payable",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "token",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"name": "distributeFees",
|
|
"outputs": [],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "token",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"internalType": "address",
|
|
"name": "to",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "amount",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"name": "emergencyWithdraw",
|
|
"outputs": [],
|
|
"stateMutability": "nonpayable",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "token",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"name": "getBalance",
|
|
"outputs": [
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "token",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"name": "getFeeRecipients",
|
|
"outputs": [
|
|
{
|
|
"components": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "recipient",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "shareBps",
|
|
"type": "uint256"
|
|
},
|
|
{
|
|
"internalType": "bool",
|
|
"name": "isActive",
|
|
"type": "bool"
|
|
}
|
|
],
|
|
"internalType": "struct FeeCollector.FeeRecipient[]",
|
|
"name": "",
|
|
"type": "tuple[]"
|
|
}
|
|
],
|
|
"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": "address",
|
|
"name": "token",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"name": "getTotalCollected",
|
|
"outputs": [
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "token",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"name": "getTotalDistributed",
|
|
"outputs": [
|
|
{
|
|
"internalType": "uint256",
|
|
"name": "",
|
|
"type": "uint256"
|
|
}
|
|
],
|
|
"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": "role",
|
|
"type": "bytes32"
|
|
},
|
|
{
|
|
"internalType": "address",
|
|
"name": "account",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"name": "hasRole",
|
|
"outputs": [
|
|
{
|
|
"internalType": "bool",
|
|
"name": "",
|
|
"type": "bool"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
},
|
|
{
|
|
"inputs": [
|
|
{
|
|
"internalType": "address",
|
|
"name": "token",
|
|
"type": "address"
|
|
},
|
|
{
|
|
"internalType": "address",
|
|
"name": "recipient",
|
|
"type": "address"
|
|
}
|
|
],
|
|
"name": "removeFeeRecipient",
|
|
"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": "bytes4",
|
|
"name": "interfaceId",
|
|
"type": "bytes4"
|
|
}
|
|
],
|
|
"name": "supportsInterface",
|
|
"outputs": [
|
|
{
|
|
"internalType": "bool",
|
|
"name": "",
|
|
"type": "bool"
|
|
}
|
|
],
|
|
"stateMutability": "view",
|
|
"type": "function"
|
|
}
|
|
],
|
|
"bytecode": "0x60803461007857601f6200159938819003918201601f19168301916001600160401b0383118484101761007d5780849260209460405283398101031261007857516001600160a01b038116810361007857610067906001805561006181610093565b50610112565b506040516113c59081620001b48239f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b031660008181527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5602052604081205490919060ff1661010e57818052816020526040822081835260205260408220600160ff198254161790553391600080516020620015798339815191528180a4600190565b5090565b6001600160a01b031660008181527f175e50102ecf9cfc73f21ab2786f3296b7cae96dee56a3f6a84b3c656d591ada60205260408120549091907f6c0757dc3e6b28b2580c03fd9e96c274acf4f99d91fbec9b418fa1d70604ff1c9060ff166101ae57808352826020526040832082845260205260408320600160ff1982541617905560008051602062001579833981519152339380a4600190565b50509056fe60806040908082526004918236101561001757600080fd5b600091823560e01c90816301ffc9a714610bf95750806305db2f4114610bbf57806306905e0314610b8b578063248a9ca314610b615780632f2ff15d14610b3757806336568abe14610af25780638743c54914610abb57806389c20f4f1461099557806391d148541461094f5780639413f25c146105e2578063964265e2146105ac578063a033fcd41461040a578063a217fddf146103f0578063d547741f146103ad578063e63ea40814610308578063f8b2cb4f146102dc5763fccee182146100e057600080fd5b346102d8576100ee36610c7e565b6100fa939192936110a2565b6001600160a01b0392831693610111851515610fd8565b811515806102cc575b1561028957831692838652602060026020528387209087908254915b82811061021b57505084519261014b84610eb7565b8784526020840191858352868501936001855268010000000000000000821015610208579061017f91600182018155610cb3565b9490946101f657927f38759365af5333c6808834e2c3d045183272b49f466e5c00bd5aba92f33b82e7969594926002926101e79551166bffffffffffffffffffffffff60a01b85541617845551600184015551151591019060ff801983541691151516179055565b8151908152426020820152a380f35b634e487b7160e01b8a52898b5260248afd5b634e487b7160e01b8b5260418c5260248bfd5b88856102278387610cb3565b5054161461023757600101610136565b865162461bcd60e51b8152808c01839052602660248201527f466565436f6c6c6563746f723a20726563697069656e7420616c72656164792060448201526565786973747360d01b6064820152608490fd5b825162461bcd60e51b8152602081890152601b60248201527f466565436f6c6c6563746f723a20696e76616c696420736861726500000000006044820152606490fd5b5061271082111561011a565b5080fd5b50346102d85760203660031901126102d8576020906103016102fc610c4d565b611024565b9051908152f35b5091346102d85761031836610c7e565b928480939293528460205285852033865260205260ff8686205416156103905750839450610344611235565b6001600160a01b039061035a8383161515610fd8565b16806103815750918080809361037a955af1610374610f1f565b50610f5f565b6001805580f35b61038b9350611258565b61037a565b6044908587519163e2517d3f60e01b835233908301526024820152fd5b508290346103ec57806003193601126103ec576103e891356103e360016103d2610c68565b93838752866020528620015461111c565b6111c0565b5080f35b8280fd5b50346102d857816003193601126102d85751908152602090f35b5082816003193601126103ec5761041f610c4d565b916024359261042c611235565b6001600160a01b031691826104df5783340361049357507f28a87b6059180e46de5fb9ab35eb043e8fe00ab45afcc7789e3934ecbbcde3ea905b828552600360205280852061047c858254610fb5565b905580519384524260208501523393a36001805580f35b6020608492519162461bcd60e51b8352820152602160248201527f466565436f6c6c6563746f723a2045544820616d6f756e74206d69736d6174636044820152600d60fb1b6064820152fd5b3461056a5781516323b872dd60e01b6020820152336024820152306044820152606480820186905281529060a082019067ffffffffffffffff82118383101761055757508291610552917f28a87b6059180e46de5fb9ab35eb043e8fe00ab45afcc7789e3934ecbbcde3ea9452846112aa565b610466565b634e487b7160e01b875260419052602486fd5b6020606492519162461bcd60e51b8352820152601d60248201527f466565436f6c6c6563746f723a206e6f204554482065787065637465640000006044820152fd5b5082346103ec5760203660031901126103ec5760209282916001600160a01b036105d4610c4d565b168252845220549051908152f35b50346102d857602090816003193601126103ec576105fe610c4d565b906106076110a2565b61060f611235565b6001600160a01b039182168085526002808552828620805492949092909167ffffffffffffffff821161093c579284519361064f888460051b0186610ee9565b8285529088528688208891888087015b858510610900575050505050508151156108ae5783159586156108495747965b87156107fa5781805b855182101561079a578661069c8388610f0b565b5101511561079057886106af8388610f0b565b510151808b02908b82040361077d579189897ff227c93b6b816f85ef75ee32431495d61932665acd4193a40431a42f1502701a8a8f97968a61074c878e858e6107338a8f9e60019f84908a896127108a9e049d8e96879460001461076457509380938193610721839461072e98610f0b565b5151165af1610374610f1f565b610fb5565b9e8a82528b5220610745868254610fb5565b9055610f0b565b5151169482519182524290820152a35b019091610688565b929161072e955061077491610f0b565b51511690611258565b634e487b7160e01b855260118c52602485fd5b919060019061075c565b8a89888c8794116107ad57836001805580f35b5162461bcd60e51b815291820152602360248201527f466565436f6c6c6563746f723a20646973747269627574696f6e206f766572666044820152626c6f7760e81b606482015260849150fd5b845162461bcd60e51b8152808a01889052602360248201527f466565436f6c6c6563746f723a206e6f206665657320746f206469737472696260448201526275746560e81b6064820152608490fd5b83516370a0823160e01b815230898201528681602481895afa9081156108a4578291610877575b509661067f565b90508681813d831161089d575b61088e8183610ee9565b810103126102d8575138610870565b503d610884565b85513d84823e3d90fd5b825162461bcd60e51b8152808801869052602660248201527f466565436f6c6c6563746f723a206e6f20726563697069656e747320636f6e666044820152651a59dd5c995960d21b6064820152608490fd5b6001916003918a5161091181610eb7565b898754168152848701548382015260ff868801541615158c820152815201930193019291899061065f565b634e487b7160e01b885260418952602488fd5b5082346103ec57816003193601126103ec578160209360ff92610970610c68565b903582528186528282206001600160a01b039091168252855220549151911615158152f35b5082346103ec5760209283600319360112610ab8576001600160a01b0393846109bc610c4d565b168252600291600282528481209384549067ffffffffffffffff8211610aa55750859392919351926109f3838360051b0185610ee9565b81845282840190819686528386209086925b848410610a6157505050505084519481860192828752518093528086019493905b838210610a335786860387f35b8451805189168752808401518785015281015115158682015260609095019493820193600190910190610a26565b6003866001928d8d9b999a9b5190610a7882610eb7565b875416815284870154838201528d60ff878901541615159082015281520193019301929196959496610a05565b634e487b7160e01b835260419052602482fd5b80fd5b50346102d85760203660031901126102d85760209181906001600160a01b03610ae2610c4d565b1681526003845220549051908152f35b50346102d857806003193601126102d857610b0b610c68565b90336001600160a01b03831603610b2857506103e89192356111c0565b5163334bd91960e11b81528390fd5b508290346103ec57806003193601126103ec576103e89135610b5c60016103d2610c68565b611142565b5082346103ec5760203660031901126103ec57816020936001923581528085522001549051908152f35b50346102d857366003190112610ab857610bbc610ba6610c4d565b610bae610c68565b90610bb76110a2565b610ce5565b80f35b50346102d857816003193601126102d857602090517f6c0757dc3e6b28b2580c03fd9e96c274acf4f99d91fbec9b418fa1d70604ff1c8152f35b839085346103ec5760203660031901126103ec573563ffffffff60e01b81168091036103ec5760209250637965db0b60e01b8114908115610c3c575b5015158152f35b6301ffc9a760e01b14905083610c35565b600435906001600160a01b0382168203610c6357565b600080fd5b602435906001600160a01b0382168203610c6357565b6060906003190112610c63576001600160a01b03906004358281168103610c6357916024359081168103610c63579060443590565b8054821015610ccf576000526003602060002091020190600090565b634e487b7160e01b600052603260045260246000fd5b909160018060a01b0380921692600093808552600294602090600260205260409060408120815b815480821015610e685789610d218385610cb3565b505416908a8916809214610d39575050600101610d0c565b9293949596975097989060001992838101908111610e5457610d5e610d669186610cb3565b509185610cb3565b919091610e4057808c918303610df6575b5050505081548015610de2570191610d8f8383610cb3565b999099610dce5789827fe9d903860ed5c46c6ccf02ea1e5e1dacdb5ee893cf6bcaf10a010c3b11b461d198999a9b5582600182015501555551428152a3565b634e487b7160e01b82526004829052602482fd5b634e487b7160e01b84526031600452602484fd5b8181610e379560ff9354166bffffffffffffffffffffffff60a01b8654161785556001808201549086015501541691019060ff801983541691151516179055565b38808a81610d77565b634e487b7160e01b86526004869052602486fd5b634e487b7160e01b86526011600452602486fd5b60405162461bcd60e51b815260206004820152602160248201527f466565436f6c6c6563746f723a20726563697069656e74206e6f7420666f756e6044820152601960fa1b6064820152608490fd5b6060810190811067ffffffffffffffff821117610ed357604052565b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff821117610ed357604052565b8051821015610ccf5760209160051b010190565b3d15610f5a573d9067ffffffffffffffff8211610ed35760405191610f4e601f8201601f191660200184610ee9565b82523d6000602084013e565b606090565b15610f6657565b60405162461bcd60e51b815260206004820152602160248201527f466565436f6c6c6563746f723a20455448207472616e73666572206661696c656044820152601960fa1b6064820152608490fd5b91908201809211610fc257565b634e487b7160e01b600052601160045260246000fd5b15610fdf57565b60405162461bcd60e51b815260206004820152601c60248201527f466565436f6c6c6563746f723a207a65726f20726563697069656e74000000006044820152606490fd5b6001600160a01b03168061103757504790565b6020602491604051928380926370a0823160e01b82523060048301525afa90811561109657600091611067575090565b90506020813d60201161108e575b8161108260209383610ee9565b81010312610c63575190565b3d9150611075565b6040513d6000823e3d90fd5b3360009081527f175e50102ecf9cfc73f21ab2786f3296b7cae96dee56a3f6a84b3c656d591ada60205260409020547f6c0757dc3e6b28b2580c03fd9e96c274acf4f99d91fbec9b418fa1d70604ff1c9060ff16156110fe5750565b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b80600052600060205260406000203360005260205260ff60406000205416156110fe5750565b9060009180835282602052604083209160018060a01b03169182845260205260ff604084205416156000146111bb57808352826020526040832082845260205260408320600160ff198254161790557f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d339380a4600190565b505090565b9060009180835282602052604083209160018060a01b03169182845260205260ff6040842054166000146111bb5780835282602052604083208284526020526040832060ff1981541690557ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b339380a4600190565b600260015414611246576002600155565b604051633ee5aeb560e01b8152600490fd5b60405163a9059cbb60e01b60208201526001600160a01b039092166024830152604480830193909352918152608081019167ffffffffffffffff831182841017610ed3576112a8926040526112aa565b565b60018060a01b0316906112d4600080836020829551910182875af16112cd610f1f565b908461132c565b908151918215159283611304575b5050506112ec5750565b60249060405190635274afe760e01b82526004820152fd5b8192935090602091810103126102d8576020015190811591821503610ab857503880806112e2565b90611353575080511561134157805190602001fd5b604051630a12f52160e11b8152600490fd5b81511580611386575b611364575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b50803b1561135c56fea2646970667358221220483c816d8ff603f2633da1f087a2ca949da91a7e0b3f1798026d49036d46687764736f6c634300081600332f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d",
|
|
"deployedBytecode": "0x60806040908082526004918236101561001757600080fd5b600091823560e01c90816301ffc9a714610bf95750806305db2f4114610bbf57806306905e0314610b8b578063248a9ca314610b615780632f2ff15d14610b3757806336568abe14610af25780638743c54914610abb57806389c20f4f1461099557806391d148541461094f5780639413f25c146105e2578063964265e2146105ac578063a033fcd41461040a578063a217fddf146103f0578063d547741f146103ad578063e63ea40814610308578063f8b2cb4f146102dc5763fccee182146100e057600080fd5b346102d8576100ee36610c7e565b6100fa939192936110a2565b6001600160a01b0392831693610111851515610fd8565b811515806102cc575b1561028957831692838652602060026020528387209087908254915b82811061021b57505084519261014b84610eb7565b8784526020840191858352868501936001855268010000000000000000821015610208579061017f91600182018155610cb3565b9490946101f657927f38759365af5333c6808834e2c3d045183272b49f466e5c00bd5aba92f33b82e7969594926002926101e79551166bffffffffffffffffffffffff60a01b85541617845551600184015551151591019060ff801983541691151516179055565b8151908152426020820152a380f35b634e487b7160e01b8a52898b5260248afd5b634e487b7160e01b8b5260418c5260248bfd5b88856102278387610cb3565b5054161461023757600101610136565b865162461bcd60e51b8152808c01839052602660248201527f466565436f6c6c6563746f723a20726563697069656e7420616c72656164792060448201526565786973747360d01b6064820152608490fd5b825162461bcd60e51b8152602081890152601b60248201527f466565436f6c6c6563746f723a20696e76616c696420736861726500000000006044820152606490fd5b5061271082111561011a565b5080fd5b50346102d85760203660031901126102d8576020906103016102fc610c4d565b611024565b9051908152f35b5091346102d85761031836610c7e565b928480939293528460205285852033865260205260ff8686205416156103905750839450610344611235565b6001600160a01b039061035a8383161515610fd8565b16806103815750918080809361037a955af1610374610f1f565b50610f5f565b6001805580f35b61038b9350611258565b61037a565b6044908587519163e2517d3f60e01b835233908301526024820152fd5b508290346103ec57806003193601126103ec576103e891356103e360016103d2610c68565b93838752866020528620015461111c565b6111c0565b5080f35b8280fd5b50346102d857816003193601126102d85751908152602090f35b5082816003193601126103ec5761041f610c4d565b916024359261042c611235565b6001600160a01b031691826104df5783340361049357507f28a87b6059180e46de5fb9ab35eb043e8fe00ab45afcc7789e3934ecbbcde3ea905b828552600360205280852061047c858254610fb5565b905580519384524260208501523393a36001805580f35b6020608492519162461bcd60e51b8352820152602160248201527f466565436f6c6c6563746f723a2045544820616d6f756e74206d69736d6174636044820152600d60fb1b6064820152fd5b3461056a5781516323b872dd60e01b6020820152336024820152306044820152606480820186905281529060a082019067ffffffffffffffff82118383101761055757508291610552917f28a87b6059180e46de5fb9ab35eb043e8fe00ab45afcc7789e3934ecbbcde3ea9452846112aa565b610466565b634e487b7160e01b875260419052602486fd5b6020606492519162461bcd60e51b8352820152601d60248201527f466565436f6c6c6563746f723a206e6f204554482065787065637465640000006044820152fd5b5082346103ec5760203660031901126103ec5760209282916001600160a01b036105d4610c4d565b168252845220549051908152f35b50346102d857602090816003193601126103ec576105fe610c4d565b906106076110a2565b61060f611235565b6001600160a01b039182168085526002808552828620805492949092909167ffffffffffffffff821161093c579284519361064f888460051b0186610ee9565b8285529088528688208891888087015b858510610900575050505050508151156108ae5783159586156108495747965b87156107fa5781805b855182101561079a578661069c8388610f0b565b5101511561079057886106af8388610f0b565b510151808b02908b82040361077d579189897ff227c93b6b816f85ef75ee32431495d61932665acd4193a40431a42f1502701a8a8f97968a61074c878e858e6107338a8f9e60019f84908a896127108a9e049d8e96879460001461076457509380938193610721839461072e98610f0b565b5151165af1610374610f1f565b610fb5565b9e8a82528b5220610745868254610fb5565b9055610f0b565b5151169482519182524290820152a35b019091610688565b929161072e955061077491610f0b565b51511690611258565b634e487b7160e01b855260118c52602485fd5b919060019061075c565b8a89888c8794116107ad57836001805580f35b5162461bcd60e51b815291820152602360248201527f466565436f6c6c6563746f723a20646973747269627574696f6e206f766572666044820152626c6f7760e81b606482015260849150fd5b845162461bcd60e51b8152808a01889052602360248201527f466565436f6c6c6563746f723a206e6f206665657320746f206469737472696260448201526275746560e81b6064820152608490fd5b83516370a0823160e01b815230898201528681602481895afa9081156108a4578291610877575b509661067f565b90508681813d831161089d575b61088e8183610ee9565b810103126102d8575138610870565b503d610884565b85513d84823e3d90fd5b825162461bcd60e51b8152808801869052602660248201527f466565436f6c6c6563746f723a206e6f20726563697069656e747320636f6e666044820152651a59dd5c995960d21b6064820152608490fd5b6001916003918a5161091181610eb7565b898754168152848701548382015260ff868801541615158c820152815201930193019291899061065f565b634e487b7160e01b885260418952602488fd5b5082346103ec57816003193601126103ec578160209360ff92610970610c68565b903582528186528282206001600160a01b039091168252855220549151911615158152f35b5082346103ec5760209283600319360112610ab8576001600160a01b0393846109bc610c4d565b168252600291600282528481209384549067ffffffffffffffff8211610aa55750859392919351926109f3838360051b0185610ee9565b81845282840190819686528386209086925b848410610a6157505050505084519481860192828752518093528086019493905b838210610a335786860387f35b8451805189168752808401518785015281015115158682015260609095019493820193600190910190610a26565b6003866001928d8d9b999a9b5190610a7882610eb7565b875416815284870154838201528d60ff878901541615159082015281520193019301929196959496610a05565b634e487b7160e01b835260419052602482fd5b80fd5b50346102d85760203660031901126102d85760209181906001600160a01b03610ae2610c4d565b1681526003845220549051908152f35b50346102d857806003193601126102d857610b0b610c68565b90336001600160a01b03831603610b2857506103e89192356111c0565b5163334bd91960e11b81528390fd5b508290346103ec57806003193601126103ec576103e89135610b5c60016103d2610c68565b611142565b5082346103ec5760203660031901126103ec57816020936001923581528085522001549051908152f35b50346102d857366003190112610ab857610bbc610ba6610c4d565b610bae610c68565b90610bb76110a2565b610ce5565b80f35b50346102d857816003193601126102d857602090517f6c0757dc3e6b28b2580c03fd9e96c274acf4f99d91fbec9b418fa1d70604ff1c8152f35b839085346103ec5760203660031901126103ec573563ffffffff60e01b81168091036103ec5760209250637965db0b60e01b8114908115610c3c575b5015158152f35b6301ffc9a760e01b14905083610c35565b600435906001600160a01b0382168203610c6357565b600080fd5b602435906001600160a01b0382168203610c6357565b6060906003190112610c63576001600160a01b03906004358281168103610c6357916024359081168103610c63579060443590565b8054821015610ccf576000526003602060002091020190600090565b634e487b7160e01b600052603260045260246000fd5b909160018060a01b0380921692600093808552600294602090600260205260409060408120815b815480821015610e685789610d218385610cb3565b505416908a8916809214610d39575050600101610d0c565b9293949596975097989060001992838101908111610e5457610d5e610d669186610cb3565b509185610cb3565b919091610e4057808c918303610df6575b5050505081548015610de2570191610d8f8383610cb3565b999099610dce5789827fe9d903860ed5c46c6ccf02ea1e5e1dacdb5ee893cf6bcaf10a010c3b11b461d198999a9b5582600182015501555551428152a3565b634e487b7160e01b82526004829052602482fd5b634e487b7160e01b84526031600452602484fd5b8181610e379560ff9354166bffffffffffffffffffffffff60a01b8654161785556001808201549086015501541691019060ff801983541691151516179055565b38808a81610d77565b634e487b7160e01b86526004869052602486fd5b634e487b7160e01b86526011600452602486fd5b60405162461bcd60e51b815260206004820152602160248201527f466565436f6c6c6563746f723a20726563697069656e74206e6f7420666f756e6044820152601960fa1b6064820152608490fd5b6060810190811067ffffffffffffffff821117610ed357604052565b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff821117610ed357604052565b8051821015610ccf5760209160051b010190565b3d15610f5a573d9067ffffffffffffffff8211610ed35760405191610f4e601f8201601f191660200184610ee9565b82523d6000602084013e565b606090565b15610f6657565b60405162461bcd60e51b815260206004820152602160248201527f466565436f6c6c6563746f723a20455448207472616e73666572206661696c656044820152601960fa1b6064820152608490fd5b91908201809211610fc257565b634e487b7160e01b600052601160045260246000fd5b15610fdf57565b60405162461bcd60e51b815260206004820152601c60248201527f466565436f6c6c6563746f723a207a65726f20726563697069656e74000000006044820152606490fd5b6001600160a01b03168061103757504790565b6020602491604051928380926370a0823160e01b82523060048301525afa90811561109657600091611067575090565b90506020813d60201161108e575b8161108260209383610ee9565b81010312610c63575190565b3d9150611075565b6040513d6000823e3d90fd5b3360009081527f175e50102ecf9cfc73f21ab2786f3296b7cae96dee56a3f6a84b3c656d591ada60205260409020547f6c0757dc3e6b28b2580c03fd9e96c274acf4f99d91fbec9b418fa1d70604ff1c9060ff16156110fe5750565b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b80600052600060205260406000203360005260205260ff60406000205416156110fe5750565b9060009180835282602052604083209160018060a01b03169182845260205260ff604084205416156000146111bb57808352826020526040832082845260205260408320600160ff198254161790557f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d339380a4600190565b505090565b9060009180835282602052604083209160018060a01b03169182845260205260ff6040842054166000146111bb5780835282602052604083208284526020526040832060ff1981541690557ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b339380a4600190565b600260015414611246576002600155565b604051633ee5aeb560e01b8152600490fd5b60405163a9059cbb60e01b60208201526001600160a01b039092166024830152604480830193909352918152608081019167ffffffffffffffff831182841017610ed3576112a8926040526112aa565b565b60018060a01b0316906112d4600080836020829551910182875af16112cd610f1f565b908461132c565b908151918215159283611304575b5050506112ec5750565b60249060405190635274afe760e01b82526004820152fd5b8192935090602091810103126102d8576020015190811591821503610ab857503880806112e2565b90611353575080511561134157805190602001fd5b604051630a12f52160e11b8152600490fd5b81511580611386575b611364575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b50803b1561135c56fea2646970667358221220483c816d8ff603f2633da1f087a2ca949da91a7e0b3f1798026d49036d46687764736f6c63430008160033",
|
|
"linkReferences": {},
|
|
"deployedLinkReferences": {}
|
|
}
|