fluid-contracts-public/deployments/mainnet/dump/0x23900f3F7c6Ca24b29023980f131FeCA0398add0.json

926 lines
115 KiB
JSON
Raw Permalink Normal View History

{
"address": "0x23900f3F7c6Ca24b29023980f131FeCA0398add0",
"abi": [
{
"inputs": [
{
"internalType": "address",
"name": "owner_",
"type": "address"
},
{
"internalType": "address",
"name": "proposer_",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [],
"name": "InvalidCycle",
"type": "error"
},
{
"inputs": [],
"name": "InvalidParams",
"type": "error"
},
{
"inputs": [],
"name": "InvalidProof",
"type": "error"
},
{
"inputs": [],
"name": "NothingToClaim",
"type": "error"
},
{
"inputs": [],
"name": "Unauthorized",
"type": "error"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "user",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "cycle",
"type": "uint256"
},
{
"indexed": false,
"internalType": "address",
"name": "fToken",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "timestamp",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "blockNumber",
"type": "uint256"
}
],
"name": "LogClaimed",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "cycle",
"type": "uint256"
},
{
"indexed": false,
"internalType": "bytes32",
"name": "root",
"type": "bytes32"
},
{
"indexed": false,
"internalType": "bytes32",
"name": "contentHash",
"type": "bytes32"
},
{
"indexed": false,
"internalType": "uint256",
"name": "timestamp",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "blockNumber",
"type": "uint256"
}
],
"name": "LogRootProposed",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "cycle",
"type": "uint256"
},
{
"indexed": false,
"internalType": "bytes32",
"name": "root",
"type": "bytes32"
},
{
"indexed": false,
"internalType": "bytes32",
"name": "contentHash",
"type": "bytes32"
},
{
"indexed": false,
"internalType": "uint256",
"name": "timestamp",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "blockNumber",
"type": "uint256"
}
],
"name": "LogRootUpdated",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "proposer",
"type": "address"
},
{
"indexed": false,
"internalType": "bool",
"name": "isProposer",
"type": "bool"
}
],
"name": "LogUpdateProposer",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "user",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "newOwner",
"type": "address"
}
],
"name": "OwnershipTransferred",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "Paused",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "Unpaused",
"type": "event"
},
{
"inputs": [],
"name": "TOKEN",
"outputs": [
{
"internalType": "contract IERC20",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "root_",
"type": "bytes32"
},
{
"internalType": "bytes32",
"name": "contentHash_",
"type": "bytes32"
},
{
"internalType": "uint40",
"name": "cycle_",
"type": "uint40"
},
{
"internalType": "uint40",
"name": "startBlock_",
"type": "uint40"
},
{
"internalType": "uint40",
"name": "endBlock_",
"type": "uint40"
}
],
"name": "approveRoot",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "recipient_",
"type": "address"
},
{
"internalType": "uint256",
"name": "cumulativeAmount_",
"type": "uint256"
},
{
"internalType": "address",
"name": "fToken_",
"type": "address"
},
{
"internalType": "uint256",
"name": "cycle_",
"type": "uint256"
},
{
"internalType": "bytes32[]",
"name": "merkleProof_",
"type": "bytes32[]"
}
],
"name": "claim",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "claimed",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "currentMerkleCycle",
"outputs": [
{
"components": [
{
"internalType": "bytes32",
"name": "merkleRoot",
"type": "bytes32"
},
{
"internalType": "bytes32",
"name": "merkleContentHash",
"type": "bytes32"
},
{
"internalType": "uint40",
"name": "cycle",
"type": "uint40"
},
{
"internalType": "uint40",
"name": "timestamp",
"type": "uint40"
},
{
"internalType": "uint40",
"name": "publishBlock",
"type": "uint40"
},
{
"internalType": "uint40",
"name": "startBlock",
"type": "uint40"
},
{
"internalType": "uint40",
"name": "endBlock",
"type": "uint40"
}
],
"internalType": "struct Structs.MerkleCycle",
"name": "",
"type": "tuple"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "recipient_",
"type": "address"
},
{
"internalType": "uint256",
"name": "cumulativeAmount_",
"type": "uint256"
},
{
"internalType": "address",
"name": "fToken_",
"type": "address"
},
{
"internalType": "uint256",
"name": "cycle_",
"type": "uint256"
}
],
"name": "encodeClaim",
"outputs": [
{
"internalType": "bytes",
"name": "encoded_",
"type": "bytes"
},
{
"internalType": "bytes32",
"name": "hash_",
"type": "bytes32"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [],
"name": "hasPendingRoot",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "proposer_",
"type": "address"
}
],
"name": "isProposer",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "owner",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "pause",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "paused",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "pendingMerkleCycle",
"outputs": [
{
"components": [
{
"internalType": "bytes32",
"name": "merkleRoot",
"type": "bytes32"
},
{
"internalType": "bytes32",
"name": "merkleContentHash",
"type": "bytes32"
},
{
"internalType": "uint40",
"name": "cycle",
"type": "uint40"
},
{
"internalType": "uint40",
"name": "timestamp",
"type": "uint40"
},
{
"internalType": "uint40",
"name": "publishBlock",
"type": "uint40"
},
{
"internalType": "uint40",
"name": "startBlock",
"type": "uint40"
},
{
"internalType": "uint40",
"name": "endBlock",
"type": "uint40"
}
],
"internalType": "struct Structs.MerkleCycle",
"name": "",
"type": "tuple"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "previousMerkleRoot",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "root_",
"type": "bytes32"
},
{
"internalType": "bytes32",
"name": "contentHash_",
"type": "bytes32"
},
{
"internalType": "uint40",
"name": "cycle_",
"type": "uint40"
},
{
"internalType": "uint40",
"name": "startBlock_",
"type": "uint40"
},
{
"internalType": "uint40",
"name": "endBlock_",
"type": "uint40"
}
],
"name": "proposeRoot",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address[]",
"name": "targets_",
"type": "address[]"
},
{
"internalType": "bytes[]",
"name": "calldatas_",
"type": "bytes[]"
}
],
"name": "spell",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "newOwner",
"type": "address"
}
],
"name": "transferOwnership",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "unpause",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "proposer_",
"type": "address"
},
{
"internalType": "bool",
"name": "isProposer_",
"type": "bool"
}
],
"name": "updateProposer",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
],
"transactionHash": "0xbdb4ce817acf803d3c70e49d0f65caea8616f2ee2907f9a78d82a5bb9065be6b",
"receipt": {
"to": "0x4e59b44847b379578588920cA78FbF26c0B4956C",
"from": "0x0Ed35B1609Ec45c7079E80d11149a52717e4859A",
"contractAddress": null,
"transactionIndex": 10,
"gasUsed": "1843516",
"logsBloom": "0x00010000000000000000000000000000000000000000000000800000000000000000000000000000000000400000000000000080000000000000000000000000000000000000000000000000000002000001002000000000000000000000000000000002020000000000000000000800000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000020000000000000000000100000000000000000000000000000400000000000000000",
"blockHash": "0x9351e6b9e77ad37b2743f52ba540695eecfdbfd416179e301ce3bc71110d18c5",
"transactionHash": "0xbdb4ce817acf803d3c70e49d0f65caea8616f2ee2907f9a78d82a5bb9065be6b",
"logs": [
{
"transactionIndex": 10,
"blockNumber": 19910807,
"transactionHash": "0xbdb4ce817acf803d3c70e49d0f65caea8616f2ee2907f9a78d82a5bb9065be6b",
"address": "0x23900f3F7c6Ca24b29023980f131FeCA0398add0",
"topics": [
"0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0",
"0x0000000000000000000000000000000000000000000000000000000000000000",
"0x0000000000000000000000004f6f977acdd1177dcd81ab83074855ecb9c2d49e"
],
"data": "0x",
"logIndex": 85,
"blockHash": "0x9351e6b9e77ad37b2743f52ba540695eecfdbfd416179e301ce3bc71110d18c5"
},
{
"transactionIndex": 10,
"blockNumber": 19910807,
"transactionHash": "0xbdb4ce817acf803d3c70e49d0f65caea8616f2ee2907f9a78d82a5bb9065be6b",
"address": "0x23900f3F7c6Ca24b29023980f131FeCA0398add0",
"topics": [
"0x780d738f356a91be5dfe8ffb87990c655a36b3430a233c71a209eb1e9a1a1a75"
],
"data": "0x0000000000000000000000003be5c671b20649dca5d916b5698328d54bdaaf880000000000000000000000000000000000000000000000000000000000000001",
"logIndex": 86,
"blockHash": "0x9351e6b9e77ad37b2743f52ba540695eecfdbfd416179e301ce3bc71110d18c5"
}
],
"blockNumber": 19910807,
"cumulativeGasUsed": "3632307",
"status": 1,
"byzantium": true
},
"args": [
"0x4F6F977aCDD1177DCD81aB83074855EcB9C2D49e",
"0x3BE5C671b20649DCA5D916b5698328D54BdAAf88"
],
"numDeployments": 1,
"solcInputHash": "efdd2a5c55bd6e967261f15aacf56e11",
"metadata": "{\"compiler\":{\"version\":\"0.8.21+commit.d9974bed\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"proposer_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"InvalidCycle\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidParams\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidProof\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NothingToClaim\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"cycle\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"fToken\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"LogClaimed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"cycle\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"root\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"contentHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"LogRootProposed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"cycle\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"root\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"contentHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"LogRootUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"proposer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isProposer\",\"type\":\"bool\"}],\"name\":\"LogUpdateProposer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"TOKEN\",\"outputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"root_\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"contentHash_\",\"type\":\"bytes32\"},{\"internalType\":\"uint40\",\"name\":\"cycle_\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"startBlock_\",\"type\":\"uint40\"},{\"internalType\":\"uint40\",\"name\":\"endBlock_\",\"type\":\"uint40\"}],\"name\":\"approveRoot\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"cumulativeAmount_\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"fToken_\",\
"bytecode": "0x60806040523480156200001157600080fd5b506040516200213b3803806200213b83398101604081905262000034916200015f565b600080546001600160a01b0319166001600160a01b038416908117825560405184928392917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350506000805460ff60a01b19169055816001600160a01b038116620000b657604051635435b28960e11b815260040160405180910390fd5b816001600160a01b038116620000df57604051635435b28960e11b815260040160405180910390fd5b6001600160a01b038316600081815260016020818152604092839020805460ff19168317905582519384528301527f780d738f356a91be5dfe8ffb87990c655a36b3430a233c71a209eb1e9a1a1a75910160405180910390a15050505062000197565b80516001600160a01b03811681146200015a57600080fd5b919050565b600080604083850312156200017357600080fd5b6200017e8362000142565b91506200018e6020840162000142565b90509250929050565b611f9480620001a76000396000f3fe608060405234801561001057600080fd5b50600436106101365760003560e01c806382bc4aaf116100b25780639d01a27d11610081578063c884ef8311610066578063c884ef831461047f578063caf3791e146104ad578063f2fde38b146104b657600080fd5b80639d01a27d146103a3578063c81eec66146103b657600080fd5b806382bc4aaf1461032857806382bfefc81461033b5780638456cb591461037b5780638da5cb5b1461038357600080fd5b806335c1dd99116101095780634617c06a116100ee5780634617c06a146102df5780635c975abb146102f257806374ec29a01461031557600080fd5b806335c1dd99146102c45780633f4ba83a146102d757600080fd5b806312d18ed61461013b5780632274c5cd1461015057806329cec05e1461028b5780632f37a774146102ac575b600080fd5b61014e610149366004611968565b6104c9565b005b6102196040805160e081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810191909152506040805160e0810182526005548152600654602082015260075464ffffffffff80821693830193909352650100000000008104831660608301526a01000000000000000000008104831660808301526f010000000000000000000000000000008104831660a083015274010000000000000000000000000000000000000000900490911660c082015290565b6040516102829190600060e0820190508251825260208301516020830152604083015164ffffffffff80821660408501528060608601511660608501528060808601511660808501528060a08601511660a08501528060c08601511660c0850152505092915050565b60405180910390f35b61029e610299366004611a11565b610772565b604051610282929190611ac3565b6102b46107eb565b6040519015158152602001610282565b61014e6102d2366004611afa565b610817565b61014e610b51565b61014e6102ed366004611afa565b610bdc565b60005474010000000000000000000000000000000000000000900460ff166102b4565b6102b4610323366004611b51565b610e4d565b61014e610336366004611d15565b610ea1565b610356736f40d4a6237c257fff2db00fa0510deeecd303eb81565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610282565b61014e610f82565b6000546103569073ffffffffffffffffffffffffffffffffffffffff1681565b61014e6103b1366004611de6565b61100b565b6102196040805160e081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810191909152506040805160e0810182526002548152600354602082015260045464ffffffffff80821693830193909352650100000000008104831660608301526a01000000000000000000008104831660808301526f010000000000000000000000000000008104831660a083015274010000000000000000000000000000000000000000900490911660c082015290565b61049f61048d366004611b51565b60096020526000908152604090205481565b604051908152602001610282565b61049f60085481565b61014e6104c4366004611b51565b611169565b6104d161125a565b60045464ffffffffff16838114806104fd57506000811180156104fd57506104fa600182611e4c565b84145b610533576040517f9b8febfe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805173ffffffffffffffffffffffffffffffffffffffff8088166020830152891691810191909152606081018590526080810187905260009060a001604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152828252805160209182012090830152016040516020818303038152906040528051906020012090506106148484808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152505050878514905061060a5760085461060e565b6002545b836112df565b61064a576040517f09bde33900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffff
"deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101365760003560e01c806382bc4aaf116100b25780639d01a27d11610081578063c884ef8311610066578063c884ef831461047f578063caf3791e146104ad578063f2fde38b146104b657600080fd5b80639d01a27d146103a3578063c81eec66146103b657600080fd5b806382bc4aaf1461032857806382bfefc81461033b5780638456cb591461037b5780638da5cb5b1461038357600080fd5b806335c1dd99116101095780634617c06a116100ee5780634617c06a146102df5780635c975abb146102f257806374ec29a01461031557600080fd5b806335c1dd99146102c45780633f4ba83a146102d757600080fd5b806312d18ed61461013b5780632274c5cd1461015057806329cec05e1461028b5780632f37a774146102ac575b600080fd5b61014e610149366004611968565b6104c9565b005b6102196040805160e081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810191909152506040805160e0810182526005548152600654602082015260075464ffffffffff80821693830193909352650100000000008104831660608301526a01000000000000000000008104831660808301526f010000000000000000000000000000008104831660a083015274010000000000000000000000000000000000000000900490911660c082015290565b6040516102829190600060e0820190508251825260208301516020830152604083015164ffffffffff80821660408501528060608601511660608501528060808601511660808501528060a08601511660a08501528060c08601511660c0850152505092915050565b60405180910390f35b61029e610299366004611a11565b610772565b604051610282929190611ac3565b6102b46107eb565b6040519015158152602001610282565b61014e6102d2366004611afa565b610817565b61014e610b51565b61014e6102ed366004611afa565b610bdc565b60005474010000000000000000000000000000000000000000900460ff166102b4565b6102b4610323366004611b51565b610e4d565b61014e610336366004611d15565b610ea1565b610356736f40d4a6237c257fff2db00fa0510deeecd303eb81565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610282565b61014e610f82565b6000546103569073ffffffffffffffffffffffffffffffffffffffff1681565b61014e6103b1366004611de6565b61100b565b6102196040805160e081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810191909152506040805160e0810182526002548152600354602082015260045464ffffffffff80821693830193909352650100000000008104831660608301526a01000000000000000000008104831660808301526f010000000000000000000000000000008104831660a083015274010000000000000000000000000000000000000000900490911660c082015290565b61049f61048d366004611b51565b60096020526000908152604090205481565b604051908152602001610282565b61049f60085481565b61014e6104c4366004611b51565b611169565b6104d161125a565b60045464ffffffffff16838114806104fd57506000811180156104fd57506104fa600182611e4c565b84145b610533576040517f9b8febfe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805173ffffffffffffffffffffffffffffffffffffffff8088166020830152891691810191909152606081018590526080810187905260009060a001604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152828252805160209182012090830152016040516020818303038152906040528051906020012090506106148484808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152505050878514905061060a5760085461060e565b6002545b836112df565b61064a576040517f09bde33900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff881660009081526009602052604081205461067a9089611e4c565b9050806000036106b6576040517f969bf72800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff891660009081526009602052604090208890556106fd736f40d4a6237c257fff2db00fa0510deeecd303eb8a836112f5565b6040805173ffffffffffffffffffffffffffffffffffffffff8b8116825260208201849052818301899052891660608201524260808201524360a082015290517fe3cb74c4f6ae065f9508dfb15b98c41cad69168caffe847b56ce21bfeddeec079181900360c00190a1505050505050505050565b6040805173ffffffffffffffffffffffffffffffffffffffff84811660208301528616818301526060810183905260808082018690528251808303909101815260a082019092526000906107ca90839060c001611e5f565b60405160208183030381529060405280519060200120905094509492505050565b60045460009061
"devdoc": {
"events": {
"Paused(address)": {
"details": "Emitted when the pause is triggered by `account`."
},
"Unpaused(address)": {
"details": "Emitted when the pause is lifted by `account`."
}
},
"kind": "dev",
"methods": {
"paused()": {
"details": "Returns true if the contract is paused, and false otherwise."
},
"spell(address[],bytes[])": {
"details": "open payload method for admin to resolve emergency cases"
},
"updateProposer(address,bool)": {
"params": {
"isProposer_": "Whether or not the address should be an allowed proposer",
"proposer_": "The address to update"
}
}
},
"version": 1
},
"userdoc": {
"events": {
"LogClaimed(address,uint256,uint256,address,uint256,uint256)": {
"notice": "Emitted when a `user` claims `amount` via a valid merkle proof"
},
"LogRootProposed(uint256,bytes32,bytes32,uint256,uint256)": {
"notice": "Emitted when a new cycle root hash is proposed"
},
"LogRootUpdated(uint256,bytes32,bytes32,uint256,uint256)": {
"notice": "Emitted when a new cycle root hash is approved by the owner and becomes the new active root"
},
"LogUpdateProposer(address,bool)": {
"notice": "Emitted when an address is added or removed from the allowed proposers"
}
},
"kind": "user",
"methods": {
"approveRoot(bytes32,bytes32,uint40,uint40,uint40)": {
"notice": "Approve the current pending root and content hash"
},
"claimed(address)": {
"notice": "total claimed amount per user address"
},
"currentMerkleCycle()": {
"notice": "merkle root data related to current cycle (proposed and approved)."
},
"hasPendingRoot()": {
"notice": "checks if there is a proposed root waiting to be approved"
},
"isProposer(address)": {
"notice": "checks if the `proposer_` is an allowed root proposer"
},
"pause()": {
"notice": "Pause contract functionality of new roots and claiming"
},
"pendingMerkleCycle()": {
"notice": "merkle root data related to pending cycle (proposed but not yet approved)."
},
"previousMerkleRoot()": {
"notice": "merkle root of the previous cycle"
},
"proposeRoot(bytes32,bytes32,uint40,uint40,uint40)": {
"notice": "Propose a new root and content hash, which will be stored as pending until approved"
},
"unpause()": {
"notice": "Unpause contract functionality of new roots and claiming"
},
"updateProposer(address,bool)": {
"notice": "Updates an address status as a root proposer"
}
},
"version": 1
},
"storageLayout": {
"storage": [
{
"astId": 48512,
"contract": "contracts/periphery/merkleDistributor/main.sol:FluidMerkleDistributor",
"label": "owner",
"offset": 0,
"slot": "0",
"type": "t_address"
},
{
"astId": 1269,
"contract": "contracts/periphery/merkleDistributor/main.sol:FluidMerkleDistributor",
"label": "_paused",
"offset": 20,
"slot": "0",
"type": "t_bool"
},
{
"astId": 20195,
"contract": "contracts/periphery/merkleDistributor/main.sol:FluidMerkleDistributor",
"label": "_proposers",
"offset": 0,
"slot": "1",
"type": "t_mapping(t_address,t_bool)"
},
{
"astId": 20199,
"contract": "contracts/periphery/merkleDistributor/main.sol:FluidMerkleDistributor",
"label": "_currentMerkleCycle",
"offset": 0,
"slot": "2",
"type": "t_struct(MerkleCycle)20164_storage"
},
{
"astId": 20203,
"contract": "contracts/periphery/merkleDistributor/main.sol:FluidMerkleDistributor",
"label": "_pendingMerkleCycle",
"offset": 0,
"slot": "5",
"type": "t_struct(MerkleCycle)20164_storage"
},
{
"astId": 20206,
"contract": "contracts/periphery/merkleDistributor/main.sol:FluidMerkleDistributor",
"label": "previousMerkleRoot",
"offset": 0,
"slot": "8",
"type": "t_bytes32"
},
{
"astId": 20211,
"contract": "contracts/periphery/merkleDistributor/main.sol:FluidMerkleDistributor",
"label": "claimed",
"offset": 0,
"slot": "9",
"type": "t_mapping(t_address,t_uint256)"
}
],
"types": {
"t_address": {
"encoding": "inplace",
"label": "address",
"numberOfBytes": "20"
},
"t_bool": {
"encoding": "inplace",
"label": "bool",
"numberOfBytes": "1"
},
"t_bytes32": {
"encoding": "inplace",
"label": "bytes32",
"numberOfBytes": "32"
},
"t_mapping(t_address,t_bool)": {
"encoding": "mapping",
"key": "t_address",
"label": "mapping(address => bool)",
"numberOfBytes": "32",
"value": "t_bool"
},
"t_mapping(t_address,t_uint256)": {
"encoding": "mapping",
"key": "t_address",
"label": "mapping(address => uint256)",
"numberOfBytes": "32",
"value": "t_uint256"
},
"t_struct(MerkleCycle)20164_storage": {
"encoding": "inplace",
"label": "struct Structs.MerkleCycle",
"members": [
{
"astId": 20151,
"contract": "contracts/periphery/merkleDistributor/main.sol:FluidMerkleDistributor",
"label": "merkleRoot",
"offset": 0,
"slot": "0",
"type": "t_bytes32"
},
{
"astId": 20153,
"contract": "contracts/periphery/merkleDistributor/main.sol:FluidMerkleDistributor",
"label": "merkleContentHash",
"offset": 0,
"slot": "1",
"type": "t_bytes32"
},
{
"astId": 20155,
"contract": "contracts/periphery/merkleDistributor/main.sol:FluidMerkleDistributor",
"label": "cycle",
"offset": 0,
"slot": "2",
"type": "t_uint40"
},
{
"astId": 20157,
"contract": "contracts/periphery/merkleDistributor/main.sol:FluidMerkleDistributor",
"label": "timestamp",
"offset": 5,
"slot": "2",
"type": "t_uint40"
},
{
"astId": 20159,
"contract": "contracts/periphery/merkleDistributor/main.sol:FluidMerkleDistributor",
"label": "publishBlock",
"offset": 10,
"slot": "2",
"type": "t_uint40"
},
{
"astId": 20161,
"contract": "contracts/periphery/merkleDistributor/main.sol:FluidMerkleDistributor",
"label": "startBlock",
"offset": 15,
"slot": "2",
"type": "t_uint40"
},
{
"astId": 20163,
"contract": "contracts/periphery/merkleDistributor/main.sol:FluidMerkleDistributor",
"label": "endBlock",
"offset": 20,
"slot": "2",
"type": "t_uint40"
}
],
"numberOfBytes": "96"
},
"t_uint256": {
"encoding": "inplace",
"label": "uint256",
"numberOfBytes": "32"
},
"t_uint40": {
"encoding": "inplace",
"label": "uint40",
"numberOfBytes": "5"
}
}
}
}