1 tx
2 calls
constructor
constructor()
functions
campaignManager
viewfunction campaignManager() view returns (address)
claimedAmounts
viewfunction claimedAmounts(address token, address user) view returns (uint256)
DEFAULT_ADMIN_ROLE_TRANSFER_DELAY
viewfunction DEFAULT_ADMIN_ROLE_TRANSFER_DELAY() view returns (uint48)
DEFAULT_ADMIN_ROLE
viewfunction DEFAULT_ADMIN_ROLE() view returns (bytes32)
DEFAULT_DISPUTE_PERIOD
viewfunction DEFAULT_DISPUTE_PERIOD() view returns (uint256)
defaultAdmin
viewfunction defaultAdmin() view returns (address)
defaultAdminDelay
viewfunction defaultAdminDelay() view returns (uint48)
defaultAdminDelayIncreaseWait
viewfunction defaultAdminDelayIncreaseWait() view returns (uint48)
DISPUTE_RESOLVER_ROLE
viewfunction DISPUTE_RESOLVER_ROLE() view returns (bytes32)
disputeAmount
viewfunction disputeAmount() view returns (uint256)
disputePeriod
viewfunction disputePeriod() view returns (uint256)
disputer
viewfunction disputer() view returns (address)
disputeToken
viewfunction disputeToken() view returns (address)
endOfDisputePeriod
viewfunction endOfDisputePeriod() view returns (uint256)
getMerkleTreeRoot
viewfunction getMerkleTreeRoot() view returns (bytes32)
getRoleAdmin
viewfunction getRoleAdmin(bytes32 role) view returns (bytes32)
hasRole
viewfunction hasRole(bytes32 role, address account) view returns (bool)
lastMerkleTreeRoot
viewfunction lastMerkleTreeRoot() view returns (bytes32)
MERKLE_TREE_SETTER_ROLE
viewfunction MERKLE_TREE_SETTER_ROLE() view returns (bytes32)
merkleTreeRoot
viewfunction merkleTreeRoot() view returns (bytes32)
owner
viewfunction owner() view returns (address)
pendingDefaultAdmin
viewfunction pendingDefaultAdmin() view returns (address newAdmin, uint48 schedule)
pendingDefaultAdminDelay
viewfunction pendingDefaultAdminDelay() view returns (uint48 newDelay, uint48 schedule)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
acceptDefaultAdminTransfer
nonpayablefunction acceptDefaultAdminTransfer()
beginDefaultAdminTransfer
nonpayablefunction beginDefaultAdminTransfer(address newAdmin)
cancelDefaultAdminTransfer
nonpayablefunction cancelDefaultAdminTransfer()
changeDefaultAdminDelay
nonpayablefunction changeDefaultAdminDelay(uint48 newDelay)
claim
nonpayablefunction claim(tuple[] claimParams)
dispute
nonpayablefunction dispute(string reason)
grantRole
nonpayablefunction grantRole(bytes32 role, address account)
renounceRole
nonpayablefunction renounceRole(bytes32 role, address account)
resolveDispute
nonpayablefunction resolveDispute(bool isValid)
revokeMerkleTree
nonpayablefunction revokeMerkleTree()
revokeRole
nonpayablefunction revokeRole(bytes32 role, address account)
rollbackDefaultAdminDelay
nonpayablefunction rollbackDefaultAdminDelay()
setCampaignManager
nonpayablefunction setCampaignManager(address _campaignManager)
setDisputeAmount
nonpayablefunction setDisputeAmount(uint256 amount)
setDisputePeriod
nonpayablefunction setDisputePeriod(uint256 period)
setDisputeToken
nonpayablefunction setDisputeToken(address token)
setMerkleTree
nonpayablefunction setMerkleTree(bytes32 root, bytes32 ipfsHash)
withdrawRewardFromStoppedCampaign
nonpayablefunction withdrawRewardFromStoppedCampaign(address _token, address _recipient, uint256 _amount)
events
CampaignManagerSet
event CampaignManagerSet(address campaignManager)
Claimed
event Claimed(address indexed user, address indexed token, uint256 amount)
DefaultAdminDelayChangeCanceled
event DefaultAdminDelayChangeCanceled()
DefaultAdminDelayChangeScheduled
event DefaultAdminDelayChangeScheduled(uint48 newDelay, uint48 effectSchedule)
DefaultAdminTransferCanceled
event DefaultAdminTransferCanceled()
DefaultAdminTransferScheduled
event DefaultAdminTransferScheduled(address indexed newAdmin, uint48 acceptSchedule)
DisputeAmountUpdated
event DisputeAmountUpdated(uint256 amount)
Disputed
event Disputed(string reason)
DisputePeriodUpdated
event DisputePeriodUpdated(uint256 period)
DisputeResolved
event DisputeResolved(bool isValid)
DisputeTokenUpdated
event DisputeTokenUpdated(address token)
MerkleTreeRevoked
event MerkleTreeRevoked()
MerkleTreeUpdated
event MerkleTreeUpdated(bytes32 root, bytes32 ipfsHash)
RoleAdminChanged
event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole)
RoleGranted
event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender)
RoleRevoked
event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender)
WithdrawUnusedReward
event WithdrawUnusedReward(address indexed token, address recipient, uint256 amount)
errors
AccessControlBadConfirmation
error AccessControlBadConfirmation()
AccessControlEnforcedDefaultAdminDelay
error AccessControlEnforcedDefaultAdminDelay(uint48 schedule)
AccessControlEnforcedDefaultAdminRules
error AccessControlEnforcedDefaultAdminRules()
AccessControlInvalidDefaultAdmin
error AccessControlInvalidDefaultAdmin(address defaultAdmin)
AccessControlUnauthorizedAccount
error AccessControlUnauthorizedAccount(address account, bytes32 neededRole)
AddressEmptyCode
error AddressEmptyCode(address target)
AddressInsufficientBalance
error AddressInsufficientBalance(address account)
DisputePeriodEnded
error DisputePeriodEnded()
DisputePeriodNotEnded
error DisputePeriodNotEnded()
FailedInnerCall
error FailedInnerCall()
InvalidProof
error InvalidProof()
NoDispute
error NoDispute()
OnlyCampaignManager
error OnlyCampaignManager()
SafeCastOverflowedUintDowncast
error SafeCastOverflowedUintDowncast(uint8 bits, uint256 value)
SafeERC20FailedOperation
error SafeERC20FailedOperation(address token)
UnresolvedDispute
error UnresolvedDispute()
creation bytecode
0x60806040523461008d57331561007757600180546001600160d01b03166102a360d71b1790556002546001600160a01b038116610066576001600160a01b0319163390811760025561005090610092565b50610e10600655604051611d1f90816101218239f35b631fe1e13d60e11b60005260046000fd5b636116401160e11b600052600060045260246000fd5b600080fd5b6001600160a01b0381166000908152600080516020611e40833981519152602052604090205460ff1661011a576001600160a01b03166000818152600080516020611e4083398151915260205260408120805460ff191660011790553391907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b5060009056fe608080604052600436101561001357600080fd5b60003560e01c90816301ffc9a7146115ae57508063022d63fb1461159057806309454ba3146115725780630aa6220b146114cf5780630d10fca3146114725780630e2e9ffb14611437578063248a9ca31461140a5780632c3d2ac9146113ec5780632f2ff15d146113a65780632fb2c8b11461123257806335b979ca146111ca57806336568abe146110a65780633e78c309146110885780634868662614610d425780635bf31d4d14610d245780635cec892a14610d06578063623b9e9d14610c8d578063634e93da14610b97578063649a5ec7146109dd5780636ac56103146109b65780637e93f497146108a257806384ef8ffc1461075f57806389e1e82a146107a35780638a1f2f77146107865780638da5cb5b1461075f57806391d1485414610711578063a1eda53c146106ae578063a217fddf14610692578063a83ba53e14610646578063b000162d1461058f578063bfe42a3714610554578063c253b5da146104fc578063c3fc43f3146104d9578063c748d261146104b2578063cc8463c814610487578063cefc1429146103bf578063cf6eefb71461036c578063d547741f146102f7578063d602b9fd14610294578063e52068e614610237578063f716aee9146102195763fb5e76e6146101ed57600080fd5b346102145760003660031901126102145760206001600160a01b03600b5416604051908152f35b600080fd5b34610214576000366003190112610214576020600354604051908152f35b34610214576000366003190112610214576001600160a01b03600a541661026a576102606117c0565b6102686118eb565b005b7f058325740000000000000000000000000000000000000000000000000000000060005260046000fd5b34610214576000366003190112610214576102ad61176d565b600180546001600160d01b0319811690915560a01c65ffffffffffff166102d057005b7f8886ebfc4259abdbc16601dd8fb5678e54878f47b3c34836cfc51154a9605109600080a1005b346102145760403660031901126102145760043561031361167f565b8115610342578161033d61033861026894600052600060205260016040600020015490565b611832565b611aa2565b7f3fc3c27a0000000000000000000000000000000000000000000000000000000060005260046000fd5b3461021457600036600319011261021457604065ffffffffffff6103a66001549065ffffffffffff6001600160a01b0383169260a01c1690565b6001600160a01b03849392935193168352166020820152f35b34610214576000366003190112610214576001546001600160a01b031633036104595760015460a081901c65ffffffffffff16906001600160a01b03168115801561044f575b61043a57610427906104216001600160a01b0360025416611a66565b5061191d565b50600180546001600160d01b0319169055005b506319ca5ebb60e01b60005260045260246000fd5b5042821015610405565b7fc22c8022000000000000000000000000000000000000000000000000000000006000523360045260246000fd5b346102145760003660031901126102145760206104a2611734565b65ffffffffffff60405191168152f35b346102145760003660031901126102145760206001600160a01b0360085416604051908152f35b346102145760003660031901126102145760206104f4611704565b604051908152f35b3461021457604036600319011261021457610515611695565b6001600160a01b0361052561167f565b911660005260056020526001600160a01b03604060002091166000526020526020604060002054604051908152f35b346102145760003660031901126102145760206040517f7b8bb8356a3f32f5c111ff23f050d97f08988e0883529ea7bff3b918887a6e0e8152f35b34610214576060366003190112610214576004356001600160a01b03811690818103610214576105bd61167f565b604435906001600160a01b03600b5416330361061c576105ff82827f910d4eb0503de5d81c2bc537985ea3ea8b00fc367d607d17a1c522082ac5f4ee95611879565b604080516001600160a01b039290921682526020820192909252a2005b7fec583a020000000000000000000000000000000000000000000000000000000060005260046000fd5b34610214576020366003190112610214577fa07016194ad6cf69ce63d15e6172d7d8bff3221f58442571a1f4b14b202ee6f9602060043561068561176d565b80600655604051908152a1005b3461021457600036600319011261021457602060405160008152f35b34610214576000366003190112610214576002548060d01c9081151580610707575b156106fd5760a01c65ffffffffffff165b6040805165ffffffffffff928316815292909116602083015290f35b50506000806106e1565b50428210156106d0565b346102145760403660031901126102145761072a61167f565b60043560005260006020526001600160a01b0360406000209116600052602052602060ff604060002054166040519015158152f35b346102145760003660031901126102145760206001600160a01b0360025416604051908152f35b34610214576000366003190112610214576020604051610e108152f35b346102145760203660031901126102145760043580151590818103610214576107ca6117c0565b6001600160a01b03600a541615610878577f8015c5005d9ad5d85ca80d3f894f08e0159277704c54166e5cff108800fa80cd916020911561084a576108296001600160a01b03600854166001600160a01b03600a541660095491611879565b6108316118eb565b6001600160a01b0319600a5416600a55604051908152a1005b6108646001600160a01b0360085416600954903390611879565b610870600654426116f7565b600755610831565b7f937547480000000000000000000000000000000000000000000000000000000060005260046000fd5b34610214576040366003190112610214576004356001600160a01b03600a541661026a573360009081527f1ad04fddf5aadeb89aa886ee009f97de1414180b36be205f8a3d24d2b1f8b572602052604090205460ff161561097d5760075442106109535760407fdb020da028c104a616157bda2957f3b1f8d9f78829bc4177da1447de3b59cc3b9160035460045580600355610940600654426116f7565b60075581519081526024356020820152a1005b7f8bafc4fd0000000000000000000000000000000000000000000000000000000060005260046000fd5b63e2517d3f60e01b600052336004527f4a5561f79cf422ddc88aee07ed24396a108d5ffadb60f190c137922af74b2c3960245260446000fd5b346102145760003660031901126102145760206001600160a01b03600a5416604051908152f35b346102145760203660031901126102145760043565ffffffffffff81169081810361021457610a0a61176d565b610a1342611ae6565b9165ffffffffffff610a23611734565b1680821115610b4757507ff1038c18cf84a56e432fdbfaf746924b7ea511dfe03a6506a0ceba4888788d9b92610a6e9162069780811015610b365765ffffffffffff905b16906118cd565b906002548060d01c80610aca575b5050600280546001600160a01b031660a083901b65ffffffffffff60a01b161760d084901b6001600160d01b0319161790556040805165ffffffffffff9283168152919092166020820152a1005b421115610b0b5779ffffffffffffffffffffffffffffffffffffffffffffffffffff6001600160d01b03196001549260301b169116176001555b8380610a7c565b507f2b1fa2edafe6f7b9e97c1a9e0c3660e645beb2dcaa2d45bdbf9beaf5472e1ec5600080a1610b04565b5065ffffffffffff62069780610a67565b0365ffffffffffff8111610b81577ff1038c18cf84a56e432fdbfaf746924b7ea511dfe03a6506a0ceba4888788d9b92610a6e91906118cd565b634e487b7160e01b600052601160045260246000fd5b3461021457602036600319011261021457610bb0611695565b610bb861176d565b7f3377dc44241e779dd06afab5b788a35ca5f3b778836e2990bdb26a2a4b2e5ed66020610bf5610be742611ae6565b610bef611734565b906118cd565b65ffffffffffff6001600160a01b03610c246001549065ffffffffffff6001600160a01b0383169260a01c1690565b9690501694600154866001600160d01b031965ffffffffffff60a01b8660a01b169216171760015516610c63575b65ffffffffffff60405191168152a2005b7f8886ebfc4259abdbc16601dd8fb5678e54878f47b3c34836cfc51154a9605109600080a1610c52565b3461021457602036600319011261021457610ca6611695565b6001600160a01b03600a541661026a5760206001600160a01b037f1db8d6629941dcb63d5e0c927b89c174c714e139a4b9107a49de839d755f5d7492610cea61176d565b16806001600160a01b03196008541617600855604051908152a1005b34610214576000366003190112610214576020600754604051908152f35b34610214576000366003190112610214576020600654604051908152f35b346102145760203660031901126102145760043567ffffffffffffffff8111610214573660238201121561021457806004013567ffffffffffffffff8111610214573660248260051b840101116102145790610d9c611704565b903681900360a219019060005b848110156102685760009460248260051b8401013584811215611084578301906080602319833603011261108457604051936080850185811067ffffffffffffffff82111761107057604052610e01602484016116ab565b8552610e0f604484016116ab565b9160208601928352604086019360648101358552608481013567ffffffffffffffff811161106c5760249101019536601f880112156110685786359667ffffffffffffffff8811611054578760051b60405198610e6f602083018b6116bf565b89526020808a01918301019136831161105057602001905b828210611040575050506001600160a01b03818860608394015251169351169351916040516020810190610eeb81610edd878a8a876001600160a01b036040929594938160608401971683521660208201520152565b03601f1981018352826116bf565b5190206040516020810191825260208152610f076040826116bf565b519020918a925b8851841015610f515760208460051b8a01015190818110600014610f40578c52602052600160408c205b930192610f0e565b908c52602052600160408c20610f38565b909750899896959493925098909803611018578289526005602052604089206001600160a01b0383168a52602052604089205498898203828111611004576001969798999a8314610ffa577ff7a40077ff7a04c7e61f6f26fb13774259ddf1b6bce9ecf26a8276cdd3992683926040838760209552600585528181206001600160a01b038816825285522055610fe8818587611879565b604051908152a35b0193909193610da9565b5050505050610ff0565b602482634e487b7160e01b81526011600452fd5b6004897f09bde339000000000000000000000000000000000000000000000000000000008152fd5b8135815260209182019101610e87565b8c80fd5b60248b634e487b7160e01b81526041600452fd5b8980fd5b8a80fd5b602489634e487b7160e01b81526041600452fd5b8680fd5b34610214576000366003190112610214576020604051620151808152f35b34610214576040366003190112610214576004356110c261167f565b8115806111ad575b611112575b336001600160a01b038216036110e85761026891611aa2565b7f6697b2320000000000000000000000000000000000000000000000000000000060005260046000fd5b60015465ffffffffffff60a082901c16906001600160a01b03161580159061119d575b801561118b575b61116e57507fffffffffffff000000000000ffffffffffffffffffffffffffffffffffffffff600154166001556110cf565b65ffffffffffff906319ca5ebb60e01b6000521660045260246000fd5b504265ffffffffffff8216101561113c565b5065ffffffffffff811615611135565b506001600160a01b03600254166001600160a01b038216146110ca565b34610214576020366003190112610214577f7e36e8e515be7a5fe5799a92929ea32871db5f70f28da5aba3e5422d75db7f6160206001600160a01b0361120e611695565b61121661176d565b16806001600160a01b0319600b541617600b55604051908152a1005b346102145760203660031901126102145760043567ffffffffffffffff811161021457366023820112156102145780600401359067ffffffffffffffff8211610214573660248383010111610214576001600160a01b03600a541661026a5760075442101561137c5760406024917f5eca00b8ed745eee61451333090bfa56aa1f2a9e696a2aebe5f1f5b6cef6f2ff9361133e61132b6001600160a01b036008541661133960095487519384917f23b872dd00000000000000000000000000000000000000000000000000000000602084015230338c85016001600160a01b036040929594938160608401971683521660208201520152565b03601f1981018452836116bf565b611998565b336001600160a01b0319600a541617600a558083519485936020855282602086015201848401376000828201840152601f01601f19168101030190a1005b7f19e7a1480000000000000000000000000000000000000000000000000000000060005260046000fd5b34610214576040366003190112610214576004356113c261167f565b811561034257816113e761033861026894600052600060205260016040600020015490565b611956565b34610214576000366003190112610214576020600454604051908152f35b346102145760203660031901126102145760206104f4600435600052600060205260016040600020015490565b346102145760003660031901126102145760206040517f4a5561f79cf422ddc88aee07ed24396a108d5ffadb60f190c137922af74b2c398152f35b34610214576020366003190112610214576004356001600160a01b03600a541661026a5760207f39bb629f3d59f5eddf978050e1f5fabeca2b5d02dfc9c25e84f32e7da1069db4916114c261176d565b80600955604051908152a1005b34610214576000366003190112610214576114e861176d565b6002548060d01c80611506575b600280546001600160a01b03169055005b4211156115475779ffffffffffffffffffffffffffffffffffffffffffffffffffff6001600160d01b03196001549260301b169116176001555b80806114f5565b507f2b1fa2edafe6f7b9e97c1a9e0c3660e645beb2dcaa2d45bdbf9beaf5472e1ec5600080a1611540565b34610214576000366003190112610214576020600954604051908152f35b34610214576000366003190112610214576020604051620697808152f35b3461021457602036600319011261021457600435907fffffffff00000000000000000000000000000000000000000000000000000000821680920361021457817f314987860000000000000000000000000000000000000000000000000000000060209314908115611622575b5015158152f35b7f7965db0b00000000000000000000000000000000000000000000000000000000811491508115611655575b508361161b565b7f01ffc9a7000000000000000000000000000000000000000000000000000000009150148361164e565b602435906001600160a01b038216820361021457565b600435906001600160a01b038216820361021457565b35906001600160a01b038216820361021457565b90601f8019910116810190811067ffffffffffffffff8211176116e157604052565b634e487b7160e01b600052604160045260246000fd5b91908201809211610b8157565b6001600160a01b03600a541615801590611729575b6117235760035490565b60045490565b506007544210611719565b6002548060d01c8015159081611763575b50156117595760a01c65ffffffffffff1690565b5060015460d01c90565b9050421138611745565b3360009081527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5602052604090205460ff16156117a657565b63e2517d3f60e01b60005233600452600060245260446000fd5b3360009081527f1faa33813a4136802f43076b446350cf9588d040bfbd1df96ccd112768eab3e8602052604090205460ff16156117f957565b63e2517d3f60e01b600052336004527f7b8bb8356a3f32f5c111ff23f050d97f08988e0883529ea7bff3b918887a6e0e60245260446000fd5b80600052600060205260406000206001600160a01b03331660005260205260ff60406000205416156118615750565b63e2517d3f60e01b6000523360045260245260446000fd5b6040517fa9059cbb0000000000000000000000000000000000000000000000000000000060208201526001600160a01b03909216602483015260448201929092526118cb91611339826064810161132b565b565b9065ffffffffffff8091169116019065ffffffffffff8211610b8157565b60045460035560006007557f49b20b160d008cf8f6008cc40bf995c4d6e97576699b538a374f970518f199c7600080a1565b600254906001600160a01b03821661034257611953916001600160a01b03196001600160a01b0383169116176002556000611b30565b90565b908115611967575b61195391611b30565b600254916001600160a01b038316610342576001600160a01b03199092166001600160a01b0382161760025561195e565b60006001600160a01b038192169260208151910182855af13d15611a5a573d67ffffffffffffffff81116116e1576119f391604051916119e26020601f19601f84011601846116bf565b82523d6000602084013e5b83611c59565b8051908115159182611a36575b5050611a095750565b7f5274afe70000000000000000000000000000000000000000000000000000000060005260045260246000fd5b81925090602091810103126102145760200151801590811503610214573880611a00565b6119f3906060906119ed565b611953906001600160a01b03600254166001600160a01b03821614611a8d575b6000611bca565b6001600160a01b031960025416600255611a86565b9061195391801580611ac9575b15611bca576001600160a01b031960025416600255611bca565b506001600160a01b03600254166001600160a01b03831614611aaf565b65ffffffffffff8111611afe5765ffffffffffff1690565b7f6dfcc65000000000000000000000000000000000000000000000000000000000600052603060045260245260446000fd5b80600052600060205260406000206001600160a01b03831660005260205260ff6040600020541615600014611bc35780600052600060205260406000206001600160a01b0383166000526020526040600020600160ff198254161790556001600160a01b03339216907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d600080a4600190565b5050600090565b80600052600060205260406000206001600160a01b03831660005260205260ff60406000205416600014611bc35780600052600060205260406000206001600160a01b038316600052602052604060002060ff1981541690556001600160a01b03339216907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b600080a4600190565b90611c985750805115611c6e57805190602001fd5b7f1425ea420000000000000000000000000000000000000000000000000000000060005260046000fd5b81511580611ce0575b611ca9575090565b6001600160a01b03907f9996b315000000000000000000000000000000000000000000000000000000006000521660045260246000fd5b50803b15611ca156fea2646970667358221220371dbaeddebd55a8b556385d0fe9a08ce658d2a1c080eb8a4534b24a6e0c565764736f6c634300081a0033ad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5