mirror of
https://github.com/Instadapp/fluid-contracts-public.git
synced 2024-07-29 21:57:37 +00:00
926 lines
115 KiB
JSON
926 lines
115 KiB
JSON
|
{
|
||
|
"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"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|