1.3k txs
1.3k calls
constructor
constructor(address _staking, address _bnb48er, uint256 _votingPeriod, uint256 _quorumThresholdBps, uint256 _forVotesThresholdBps, uint256 _minDeposit, uint256 _rewardBps, uint256 _minReward, uint256 _maxReward, uint256 _proposerRewardBps, uint256 _lastProposalId)
functions
bnb48er
viewfunction bnb48er() view returns (address)
bnb48ersInUse
viewfunction bnb48ersInUse(uint256) view returns (uint256)
calcRewardFromPool
viewfunction calcRewardFromPool() view returns (uint256)
forVotesThresholdBps
viewfunction forVotesThresholdBps() view returns (uint256)
getClaimableRewardInfo
viewfunction getClaimableRewardInfo(address _account, uint256 _proposalId) view returns (bool isProposer, bool isVoter, uint256 claimableAmount)
isNftInUse
viewfunction isNftInUse(uint256 _tokenId) view returns (bool)
maxReward
viewfunction maxReward() view returns (uint256)
minDeposit
viewfunction minDeposit() view returns (uint256)
minReward
viewfunction minReward() view returns (uint256)
owner
viewfunction owner() view returns (address)
paused
viewfunction paused() view returns (bool)
proposals
viewfunction proposals(uint256) view returns (address proposer, bool proposerRewardClaimed, uint64 voteStart, uint64 voteEnd, uint256 totalStakeAtStart, uint256 totalReward, uint256 quorumThresholdBps, uint256 forVotesThresholdBps, uint256 proposerRewardBps, bool refunded)
proposalVoteCounts
viewfunction proposalVoteCounts(uint256 _proposalId) view returns (uint256 _againstVotes, uint256 _forVotes, uint256 _abstainVotes)
proposalVoteInfo
viewfunction proposalVoteInfo(uint256 _proposalId, address _account) view returns (tuple _voteInfo)
proposalVotes
viewfunction proposalVotes(uint256) view returns (uint256 againstVotes, uint256 forVotes, uint256 abstainVotes)
proposerRewardBps
viewfunction proposerRewardBps() view returns (uint256)
quorumThresholdBps
viewfunction quorumThresholdBps() view returns (uint256)
rewardBps
viewfunction rewardBps() view returns (uint256)
rewardPool
viewfunction rewardPool() view returns (uint256)
staking
viewfunction staking() view returns (address)
state
viewfunction state(uint256 _proposalId) view returns (uint8)
votingPeriod
viewfunction votingPeriod() view returns (uint256)
castVote
nonpayablefunction castVote(uint256 _proposalId, uint8 _support, string _reason) returns (uint256)
claimReward
nonpayablefunction claimReward(uint256 _proposalId)
contributeToRewardPool
nonpayablefunction contributeToRewardPool(uint256 _amount)
pause
nonpayablefunction pause()
propose
nonpayablefunction propose(uint256 _tokenId, uint256 _deposit, string _title, string _description) returns (uint256 proposalId)
refundInvalidProposal
nonpayablefunction refundInvalidProposal(uint256 _proposalId)
removeFromRewardPool
nonpayablefunction removeFromRewardPool(uint256 _amount)
renounceOwnership
nonpayablefunction renounceOwnership()
setForVotesThresholdBps
nonpayablefunction setForVotesThresholdBps(uint256 _forVotesThresholdBps)
setMaxReward
nonpayablefunction setMaxReward(uint256 _maxReward)
setMinDeposit
nonpayablefunction setMinDeposit(uint256 _minDeposit)
setMinReward
nonpayablefunction setMinReward(uint256 _minReward)
setProposerRewardBps
nonpayablefunction setProposerRewardBps(uint256 _proposerRewardBps)
setQuorumThresholdBps
nonpayablefunction setQuorumThresholdBps(uint256 _quorumThresholdBps)
setRewardBps
nonpayablefunction setRewardBps(uint256 _rewardBps)
setVotingPeriod
nonpayablefunction setVotingPeriod(uint256 _votingPeriod)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
unpause
nonpayablefunction unpause()
events
ForVotesThresholdBpsUpdated
event ForVotesThresholdBpsUpdated(address indexed caller, uint256 value)
InvalidProposalRefunded
event InvalidProposalRefunded(address indexed caller, uint256 indexed proposalId)
MaxRewardUpdated
event MaxRewardUpdated(address indexed caller, uint256 amount)
MinDepositUpdated
event MinDepositUpdated(address indexed caller, uint256 amount)
MinRewardUpdated
event MinRewardUpdated(address indexed caller, uint256 amount)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
Paused
event Paused(address account)
ProposalCreated
event ProposalCreated(uint256 indexed proposalId, address indexed proposer, uint64 voteStart, uint64 voteEnd, string title, string description)
ProposerRewardBpsUpdated
event ProposerRewardBpsUpdated(address indexed caller, uint256 value)
QuorumThresholdBpsUpdated
event QuorumThresholdBpsUpdated(address indexed caller, uint256 value)
RewardBpsUpdated
event RewardBpsUpdated(address indexed caller, uint256 value)
RewardClaimed
event RewardClaimed(address indexed caller, uint256 indexed proposalId, uint256 amount)
RewardPoolContributed
event RewardPoolContributed(address indexed caller, uint256 amount)
RewardPoolRemoved
event RewardPoolRemoved(address indexed caller, uint256 amount)
Unpaused
event Unpaused(address account)
VoteCast
event VoteCast(address indexed voter, uint256 indexed proposalId, uint8 support, uint256 weight, string reason)
VotingPeriodUpdated
event VotingPeriodUpdated(address indexed caller, uint256 value)
errors
EnforcedPause
error EnforcedPause()
ExpectedPause
error ExpectedPause()
OwnableInvalidOwner
error OwnableInvalidOwner(address owner)
OwnableUnauthorizedAccount
error OwnableUnauthorizedAccount(address account)
SafeCastOverflowedUintDowncast
error SafeCastOverflowedUintDowncast(uint8 bits, uint256 value)
SafeERC20FailedOperation
error SafeERC20FailedOperation(address token)
creation bytecode
0x60c03461015f57601f611de438819003918201601f19168301916001600160401b03831184841017610164578084926101609460405283398101031261015f576100488161017a565b906100556020820161017a565b9060408101516060820151608083015160a084015160c08501519160e0860151936101008701519561014061012089015198015198331561014957600080546040519c9133906001600160a01b038316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a36001600160a81b0319163360ff60a01b19161760005560805260a052600155600255600355600455600555600655600755600855600d55611c55908161018f823960805181818161052f0152818161099401528181610b9a01528181610ef4015281816112740152611436015260a0518181816101f70152610a340152f35b631e4fbdf760e01b600052600060045260246000fd5b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b038216820361015f5756fe608080604052600436101561001357600080fd5b60003560e01c908163013cf08b146115c45750806301ea83ea1461092357806302a251a3146115a65780630507377e146114d45780630a300b09146113f65780630a542fa7146113a85780630d9b22261461137c5780631a35c6021461135e57806325c33e1314611310578063287a66c9146112345780633bec7f5b146112165780633e4f49e6146111e75780633f4ba83a1461117857806341b3d1851461115a578063428548b81461110c578063470b762214610e7657806347ee3b95146109b85780634cf088d914610974578063544ffc9c146109235780635c975abb146108fd57806366666aa9146108df57806366a78e6c146108c15780636f7af91f14610873578063715018a61461080d57806382328ffc146107ef5780638456cb591461078f5780638da5cb5b146107685780638fcc9cfb1461071a57806391e71e26146106cc578063a60c117c14610658578063ae169a50146104a7578063b6a1cb2b14610459578063ba16d6001461043b578063bd149d711461041d578063d301c89d146103f5578063dd2fc2b014610327578063ea0217cf146102d9578063f2fde38b14610243578063f3d1202d146102205763f5be257d146101d757600080fd5b3461021b57600036600319011261021b5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b600080fd5b3461021b57600036600319011261021b57602061023b611957565b604051908152f35b3461021b57602036600319011261021b576001600160a01b0361026461171f565b61026c611a00565b1680156102c3576001600160a01b036000548273ffffffffffffffffffffffffffffffffffffffff19821617600055167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a3005b631e4fbdf760e01b600052600060045260246000fd5b3461021b57602036600319011261021b576004356102f5611a00565b806001556040519081527fb425f2f96d1b8d8416bf9a28254b80398b92febc9cc90ec2c147e704385e577b60203392a2005b3461021b57604036600319011261021b576024356001600160a01b038116810361021b57604090600082805161035c81611674565b8281528260208201520152600435600052600c602052600382600020016001600160a01b036000921682526020522060405161039781611674565b60ff8254169060038210156103df57606092828252604060ff600260018401549360208601948552015416920191151582526040519283525160208301525115156040820152f35b634e487b7160e01b600052602160045260246000fd5b3461021b57602036600319011261021b576020610413600435611909565b6040519015158152f35b3461021b57600036600319011261021b576020600854604051908152f35b3461021b57600036600319011261021b576020600654604051908152f35b3461021b57602036600319011261021b57600435610475611a00565b806006556040519081527f4bbac275695f9391c6b8166c70b337feb1adcbd278175a119aaf59dce5ffe49060203392a2005b3461021b57602036600319011261021b576004356104c3611998565b80600052600b602052604060002081600052600c60205260406000206001600160a01b0333166000526003810160205261050560406000208092848633611a95565b9390918415610613576105fc575b506105e8575b506040516368bfce9960e01b81526020816004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156105dc5761057f9183916000916105ad575b506001600160a01b03339116611a29565b6040519081527ff01da32686223933d8a18a391060918c7f11a3648639edd87ae013e2e273174360203392a3005b6105cf915060203d6020116105d5575b6105c781836116a6565b810190611742565b8561056e565b503d6105bd565b6040513d6000823e3d90fd5b600201805460ff1916600117905582610519565b600160a01b60ff60a01b1982541617905584610513565b60405162461bcd60e51b815260206004820152601360248201527f6e6f20636c61696d61626c6520616d6f756e74000000000000000000000000006044820152606490fd5b3461021b57604036600319011261021b5760606106b561067661171f565b60243580600052600b602052604060002081600052600c6020526040600020916001600160a01b03841660005260038301602052604060002093611a95565b906040519215158352151560208301526040820152f35b3461021b57602036600319011261021b576004356106e8611a00565b806008556040519081527f9d45ce5169732da6af34329ae6e425c283cdad15df3263a3200b9e0e1191ee5260203392a2005b3461021b57602036600319011261021b57600435610736611a00565b806004556040519081527f0f48d517989455cd80ed52427e80553e66f9b69fd5cee8e26bd1a1f9c364fba660203392a2005b3461021b57600036600319011261021b5760206001600160a01b0360005416604051908152f35b3461021b57600036600319011261021b576107a8611a00565b6107b0611998565b600160a01b60ff60a01b1960005416176000557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a1005b3461021b57600036600319011261021b576020600554604051908152f35b3461021b57600036600319011261021b57610826611a00565b60006001600160a01b03815473ffffffffffffffffffffffffffffffffffffffff1981168355167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461021b57602036600319011261021b5760043561088f611a00565b806002556040519081527f1f8d3c40deb0ed6be05c1490c226e6d0b0f23cab543f975fae8c3a615d49eed360203392a2005b3461021b57600036600319011261021b576020600754604051908152f35b3461021b57600036600319011261021b576020600954604051908152f35b3461021b57600036600319011261021b57602060ff60005460a01c166040519015158152f35b3461021b57602036600319011261021b57600435600052600c6020526040600020805461097060026001840154930154604051938493846040919493926060820195825260208201520152565b0390f35b3461021b57600036600319011261021b5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461021b57608036600319011261021b5760243560043560443567ffffffffffffffff811161021b576109ef9036906004016116c8565b60643567ffffffffffffffff811161021b57610a0f9036906004016116c8565b90610a18611998565b6040516331a9108f60e11b8152600481018490526020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156105dc57600091610e57575b506001600160a01b0333911603610e1257610a8783611909565b610dcd576004548410610d8857600d546000198114610d2d576001019283600d5583600052600b602052604060002067ffffffffffffffff815460a81c16610d43573373ffffffffffffffffffffffffffffffffffffffff19825416178155610aef42611a60565b90610afb600154611a60565b9067ffffffffffffffff808416921682019267ffffffffffffffff8411610d2d5781547fffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffff1660a89190911b7cffffffffffffffff0000000000000000000000000000000000000000001617815560018101805467ffffffffffffffff191667ffffffffffffffff94909416938417905560405163bf9befb160e01b81527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031691602082600481865afa80156105dc578a92600091610cef575b506020939282610c2492600260049a95015560025489820155600354600582015560085460068201556003610c19610c12611957565b9384611735565b910155600954611761565b600955600052600a825287604060002055604051948580926368bfce9960e01b82525afa9687156105dc57610cb88795610c9b610cc79360209b7fd8ddd70cf5ecd6d6017ed4145b845744e8a96f0800df501d124d1b4ddf56a2a998600091610cd2575b5030906001600160a01b033391166119b8565b60405194859485528a8501526080604085015260808401906118c8565b828103606084015233966118c8565b0390a3604051908152f35b610ce991508d3d8f116105d5576105c781836116a6565b8d610c88565b93925050946020833d602011610d25575b81610d0d602093836116a6565b8101031261021b579151919490918991906020610bdc565b3d9150610d00565b634e487b7160e01b600052601160045260246000fd5b60405162461bcd60e51b815260206004820152601760248201527f70726f706f73616c20616c7265616479206578697374730000000000000000006044820152606490fd5b60405162461bcd60e51b815260206004820152601260248201527f6465706f736974206e6f7420656e6f75676800000000000000000000000000006044820152606490fd5b60405162461bcd60e51b815260206004820152600a60248201527f4e465420696e20757365000000000000000000000000000000000000000000006044820152606490fd5b60405162461bcd60e51b815260206004820152600d60248201527f6e6f74204e4654206f776e6572000000000000000000000000000000000000006044820152606490fd5b610e70915060203d6020116105d5576105c781836116a6565b85610a6d565b3461021b57606036600319011261021b576004356024359060ff821680920361021b5760443567ffffffffffffffff811161021b57610eb99036906004016116c8565b90610ec2611998565b610ecb8161176e565b60058110156103df576110c7576040516303d3b32360e51b8152336004820152916020836024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9283156105dc57600093611090575b5081600052600c6020526040600020604060006001600160a01b033316815260038301602052209060018201805461104b57859187610fcf57610f71838254611735565b90555b5560038510156103df576020947fb8e138887d0aa13bab447e82de9d5c1777041ecd21ca36ba824ff1e6c07ddda4918160ff1982541617905560405190815284868201526060604082015280610cc7339460608301906118c8565b60018803610fec57600101610fe5838254611735565b9055610f74565b915060028703611006576002869201610fe5838254611735565b60405162461bcd60e51b815260206004820152601f60248201527f696e76616c69642076616c756520666f7220656e756d20566f746554797065006044820152606490fd5b60405162461bcd60e51b815260206004820152601160248201527f766f746520616c726561647920636173740000000000000000000000000000006044820152606490fd5b90926020823d6020116110bf575b816110ab602093836116a6565b810103126110bc5750519184610f2d565b80fd5b3d915061109e565b60405162461bcd60e51b815260206004820152600f60248201527f766f7465206e6f742061637469766500000000000000000000000000000000006044820152606490fd5b3461021b57602036600319011261021b57600435611128611a00565b806003556040519081527fbafdea067f81b214052ed0f40d39cd7d056ec2cb017f6b575f9addc4a54abe6360203392a2005b3461021b57600036600319011261021b576020600454604051908152f35b3461021b57600036600319011261021b57611191611a00565b60005460ff8160a01c16156111d65760ff60a01b19166000557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a1005b638dfc202b60e01b60005260046000fd5b3461021b57602036600319011261021b5761120360043561176e565b60405160058210156103df576020918152f35b3461021b57600036600319011261021b576020600254604051908152f35b3461021b57602036600319011261021b57600435611250611a00565b61125c81600954611761565b6009556040516368bfce9960e01b81526020816004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156105dc576112c39183916000916112f157506001600160a01b03339116611a29565b6040519081527ff157e68e2245c70cbc79c5da7477f57616bf886825f65d57b9ff756847672e7b60203392a2005b61130a915060203d6020116105d5576105c781836116a6565b8461056e565b3461021b57602036600319011261021b5760043561132c611a00565b806007556040519081527fbc32502cec79c9838d553dcb8fbff010442b820c0648512429a9b8fdcda05d5860203392a2005b3461021b57600036600319011261021b576020600354604051908152f35b3461021b57602036600319011261021b57600435600052600a6020526020604060002054604051908152f35b3461021b57602036600319011261021b576004356113c4611a00565b806005556040519081527f01e1bd213446551b865be02b533d852d27c7d7ba6a95013ddcd85d9146fe5a7760203392a2005b3461021b57602036600319011261021b57600435611412611998565b61141e81600954611735565b6009556040516368bfce9960e01b81526020816004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156105dc576114879183916000916114b5575030906001600160a01b033391166119b8565b6040519081527fc8b1cd545919a25e3c6ccfef8cd44d97376832801c6a7c7bbefdb3cee824edd860203392a2005b6114ce915060203d6020116105d5576105c781836116a6565b84610c88565b3461021b57602036600319011261021b576004356114f0611998565b80600052600b60205260406000206115078261176e565b60058110156103df576003036115615760038160076115369301600160ff198254161790550154600954611735565b600955337fddd8ea0b68d501f3fec76e2e93b695c2a332f0099b4e6290a0c75c51ec8063f7600080a3005b60405162461bcd60e51b815260206004820152601460248201527f6e6f7420696e76616c69642070726f706f73616c0000000000000000000000006044820152606490fd5b3461021b57600036600319011261021b576020600154604051908152f35b3461021b57602036600319011261021b5761014090600435600052600b602052604060002080549067ffffffffffffffff6001820154166002820154600383015460048401549160058501549367ffffffffffffffff60ff6007600689015498015416976001600160a01b0381168a5260ff8160a01c16151560208b015260a81c1660408901526060880152608087015260a086015260c085015260e08401526101008301521515610120820152f35b6060810190811067ffffffffffffffff82111761169057604052565b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff82111761169057604052565b81601f8201121561021b5780359067ffffffffffffffff821161169057604051926116fd601f8401601f1916602001856116a6565b8284526020838301011161021b57816000926020809301838601378301015290565b600435906001600160a01b038216820361021b57565b91908201809211610d2d57565b9081602091031261021b57516001600160a01b038116810361021b5790565b91908203918211610d2d57565b80600052600b60205260ff600760406000200154166118c25780600052600b60205267ffffffffffffffff60406000205460a81c161561187d5780600052600b60205267ffffffffffffffff600160406000200154164211156118775780600052600b602052604060002081600052600c60205261271061181c61180b604060002060026118028254600184015490611735565b91015490611735565b926004600282015491015490611944565b04116118715780600052600b602052604060002090600052600c60205261271061186060406000209260056118576001860154809654611735565b91015490611944565b04111561186c57600190565b600290565b50600390565b50600090565b60405162461bcd60e51b815260206004820152601360248201527f756e6b6e6f776e2070726f706f73616c204944000000000000000000000000006044820152606490fd5b50600490565b919082519283825260005b8481106118f4575050826000602080949584010152601f8019910116010190565b806020809284010151828286010152016118d3565b600052600a602052604060002054806119225750600090565b61192b9061176e565b60058110156103df571561193f5738611877565b600190565b81810292918115918404141715610d2d57565b6009546006549081811061198d576119756127109160055490611944565b0490600754808311611992575080821061198d575090565b905090565b91505090565b60ff60005460a01c166119a757565b63d93c066560e01b60005260046000fd5b9091926001600160a01b036119fe9481604051956323b872dd60e01b60208801521660248601521660448401526064830152606482526119f96084836116a6565b611bc7565b565b6001600160a01b03600054163303611a1457565b63118cdaa760e01b6000523360045260246000fd5b6119fe926001600160a01b036040519363a9059cbb60e01b60208601521660248401526044830152604482526119f96064836116a6565b67ffffffffffffffff8111611a7c5767ffffffffffffffff1690565b6306dfcc6560e41b600052604060045260245260446000fd5b94929190936001600160a01b03825496166001600160a01b038716149460018201549182151597611ac6899361176e565b60058110156103df5760028114159081611bbb575b50611bad57879081611b9f575b50611b925781611b83575b50611b7857611b25611b3891611b20612710611b186006600388015497015487611944565b048095611761565b611944565b9260026118026001830154835490611735565b8015611b62578492048094611b4f575b5050929190565b611b5a929450611735565b913880611b48565b634e487b7160e01b600052601260045260246000fd5b505050909190600090565b60ff9150600201541638611af3565b5050505050909190600090565b60ff915060a01c1638611ae8565b505050505050909190600090565b60019150141538611adb565b906000602091828151910182855af1156105dc576000513d611c1657506001600160a01b0381163b155b611bf85750565b6001600160a01b0390635274afe760e01b6000521660045260246000fd5b60011415611bf156fea26469706673582212209f8ee8846f8ac19a7edb2820c438d9aeb25dc03d9936fa3761b4b03f1e1a059d64736f6c634300081d0033000000000000000000000000a31f6b577704b4622d2ba63f6aa1b7e92fe8c8a900000000000000000000000057b81c140bdfd35dbfbb395360a66d54a650666d00000000000000000000000000000000000000000000000000000000000697800000000000000000000000000000000000000000000000000000000000001a0a0000000000000000000000000000000000000000000000000000000000001a0a000000000000000000000000000000000000000000000000429d069189e0000000000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000029a2241af62c0000000000000000000000000000000000000000000000000001a055690d9db80000000000000000000000000000000000000000000000000000000000000000001e000000000000000000000000000000000000000000000000000000000000000a5