76 txs
101 calls
constructor
constructor(address _robotToken)
functions
calculateRedemptionAmount
viewfunction calculateRedemptionAmount(uint256 amount) view returns (uint256)
circulatingSupply
viewfunction circulatingSupply() view returns (uint256)
compostedTokens
viewfunction compostedTokens(address) view returns (uint256)
DEAD_ADDRESS
viewfunction DEAD_ADDRESS() view returns (address)
getTotalCompostedByUser
viewfunction getTotalCompostedByUser(address user) view returns (uint256)
isRedemptionPeriodOver
viewfunction isRedemptionPeriodOver() view returns (bool)
owner
viewfunction owner() view returns (address)
paused
viewfunction paused() view returns (bool)
redemptionActivated
viewfunction redemptionActivated() view returns (bool)
redemptionEndTime
viewfunction redemptionEndTime() view returns (uint256)
robotToken
viewfunction robotToken() view returns (address)
totalEthAllocated
viewfunction totalEthAllocated() view returns (uint256)
activateRedemption
nonpayablefunction activateRedemption()
compostAndRedeem
nonpayablefunction compostAndRedeem(uint256 amount, address passportRecipient)
fundRedemptions
payablefunction fundRedemptions() payable
pauseRedemption
nonpayablefunction pauseRedemption()
renounceOwnership
nonpayablefunction renounceOwnership()
setCirculatingSupply
nonpayablefunction setCirculatingSupply(uint256 _circulatingSupply)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
unpauseRedemption
nonpayablefunction unpauseRedemption()
withdrawEth
nonpayablefunction withdrawEth(address recipient)
events
CirculatingSupplyUpdated
event CirculatingSupplyUpdated(uint256 newSupply)
EthWithdrawn
event EthWithdrawn(address indexed recipient, uint256 amount)
FundsAdded
event FundsAdded(uint256 amount, uint256 totalAllocated)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
Paused
event Paused(address account)
Redeem
event Redeem(address indexed user, uint256 tokensComposted, uint256 totalComposted, uint256 ethRedeemed, address passportRecipient)
RedemptionActivated
event RedemptionActivated(uint256 endTime)
Unpaused
event Unpaused(address account)
errors
EnforcedPause
error EnforcedPause()
ExpectedPause
error ExpectedPause()
OwnableInvalidOwner
error OwnableInvalidOwner(address owner)
OwnableUnauthorizedAccount
error OwnableUnauthorizedAccount(address account)
ReentrancyGuardReentrantCall
error ReentrancyGuardReentrantCall()
creation bytecode
0x608060405234801561000f575f80fd5b5060405161235c38038061235c83398181016040528101906100319190610385565b335f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036100a2575f6040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161009991906103bf565b60405180910390fd5b6100b18161019560201b60201c565b50600180819055505f60025f6101000a81548160ff0219169083151502179055505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610140576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161013790610432565b60405180910390fd5b80600260016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061018f61025660201b60201c565b50610450565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6102646102c460201b60201c565b600160025f6101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586102ad61030b60201b60201c565b6040516102ba91906103bf565b60405180910390a1565b6102d261031260201b60201c565b15610309576040517fd93c066500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b5f33905090565b5f60025f9054906101000a900460ff16905090565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6103548261032b565b9050919050565b6103648161034a565b811461036e575f80fd5b50565b5f8151905061037f8161035b565b92915050565b5f6020828403121561039a57610399610327565b5b5f6103a784828501610371565b91505092915050565b6103b98161034a565b82525050565b5f6020820190506103d25f8301846103b0565b92915050565b5f82825260208201905092915050565b7f546f6b656e20616464726573732063616e6e6f74206265207a65726f000000005f82015250565b5f61041c601c836103d8565b9150610427826103e8565b602082019050919050565b5f6020820190508181035f83015261044981610410565b9050919050565b611eff8061045d5f395ff3fe608060405260043610610129575f3560e01c806376074b35116100aa57806394f820c41161006e57806394f820c414610367578063b17640711461038f578063b8520cec146103b7578063d2d562a4146103e1578063e9f26abc1461040b578063f2fde38b1461043557610129565b806376074b35146102ab5780638d044c06146102e75780638da5cb5b146102fd57806392bccb80146103275780639358928b1461033d57610129565b80635c975abb116100f15780635c975abb146101c95780635ff17d7c146101f3578063619a30981461022f5780636bf9ed591461026b578063715018a61461029557610129565b80630434bfbc1461012d57806325e1606314610143578063281155ba1461016b57806339c5f434146101755780634e6fd6c41461019f575b5f80fd5b348015610138575f80fd5b5061014161045d565b005b34801561014e575f80fd5b506101696004803603810190610164919061144b565b610568565b005b610173610795565b005b348015610180575f80fd5b50610189610841565b60405161019691906114d1565b60405180910390f35b3480156101aa575f80fd5b506101b3610867565b6040516101c091906114f9565b60405180910390f35b3480156101d4575f80fd5b506101dd61086d565b6040516101ea919061152c565b60405180910390f35b3480156101fe575f80fd5b506102196004803603810190610214919061144b565b610882565b604051610226919061155d565b60405180910390f35b34801561023a575f80fd5b506102556004803603810190610250919061144b565b6108c8565b604051610262919061155d565b60405180910390f35b348015610276575f80fd5b5061027f6108dd565b60405161028c919061155d565b60405180910390f35b3480156102a0575f80fd5b506102a96108e3565b005b3480156102b6575f80fd5b506102d160048036038101906102cc91906115a0565b6108f6565b6040516102de919061155d565b60405180910390f35b3480156102f2575f80fd5b506102fb610919565b005b348015610308575f80fd5b506103116109c5565b60405161031e91906114f9565b60405180910390f35b348015610332575f80fd5b5061033b6109ec565b005b348015610348575f80fd5b50610351610a06565b60405161035e919061155d565b60405180910390f35b348015610372575f80fd5b5061038d600480360381019061038891906115cb565b610a0c565b005b34801561039a575f80fd5b506103b560048036038101906103b091906115a0565b610ea2565b005b3480156103c2575f80fd5b506103cb61104d565b6040516103d8919061152c565b60405180910390f35b3480156103ec575f80fd5b506103f561105f565b604051610402919061155d565b60405180910390f35b348015610416575f80fd5b5061041f611065565b60405161042c919061152c565b60405180910390f35b348015610440575f80fd5b5061045b6004803603810190610456919061144b565b611087565b005b61046561110b565b61046d611192565b5f600354116104b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104a890611663565b60405180910390fd5b5f600454116104f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104ec906116cb565b60405180910390fd5b600160075f6101000a81548160ff0219169083151502179055506301e133804261051f9190611716565b6006819055507f4c67bda6d80af2a8e879e8df18fbda2cf6df45ff7958d9e6bb55f522ea476629600654604051610556919061155d565b60405180910390a16105666111d2565b565b61057061110b565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036105de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105d590611793565b60405180910390fd5b60075f9054906101000a900460ff1615806105fa575060065442115b610639576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161063090611821565b60405180910390fd5b5f4790505f811161067f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161067690611889565b60405180910390fd5b5f8273ffffffffffffffffffffffffffffffffffffffff16826040516106a4906118d4565b5f6040518083038185875af1925050503d805f81146106de576040519150601f19603f3d011682016040523d82523d5f602084013e6106e3565b606091505b5050905080610727576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161071e90611932565b60405180910390fd5b60075f9054906101000a900460ff16610742575f6003819055505b8273ffffffffffffffffffffffffffffffffffffffff167f8455ae6be5d92f1df1c3c1484388e247a36c7e60d72055ae216dbc258f257d4b83604051610788919061155d565b60405180910390a2505050565b61079d61110b565b60075f9054906101000a900460ff16156107ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107e39061199a565b60405180910390fd5b3460035f8282546107fd9190611716565b925050819055507ff5e4934928a1e45d88c7a5aa2661fe0a801ca5017922e15122d74f1880155e1a346003546040516108379291906119b8565b60405180910390a1565b600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61dead81565b5f60025f9054906101000a900460ff16905090565b5f60055f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6005602052805f5260405f205f915090505481565b60065481565b6108eb61110b565b6108f45f611233565b565b5f6004546003548361090891906119df565b6109129190611a4d565b9050919050565b61092161110b565b610929611192565b60075f9054906101000a900460ff16610977576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161096e90611ac7565b60405180910390fd5b60065442106109bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109b290611b2f565b60405180910390fd5b6109c36111d2565b565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6109f461110b565b6109fc6112f4565b610a04611335565b565b60045481565b610a14611397565b610a1c6112f4565b60075f9054906101000a900460ff16610a6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6190611ac7565b60405180910390fd5b5f8211610aac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aa390611b97565b60405180910390fd5b81600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff1660e01b8152600401610b0891906114f9565b602060405180830381865afa158015610b23573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b479190611bc9565b1015610b88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7f90611c3e565b60405180910390fd5b5f8073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614610bc25781610bc4565b335b90505f60045460035485610bd891906119df565b610be29190611a4d565b905080471015610c27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1e90611ca6565b60405180910390fd5b8360055f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610c739190611716565b92505081905550600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3361dead876040518463ffffffff1660e01b8152600401610cdb93929190611cc4565b6020604051808303815f875af1158015610cf7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d1b9190611d23565b610d5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5190611d98565b60405180910390fd5b5f3373ffffffffffffffffffffffffffffffffffffffff1682604051610d7f906118d4565b5f6040518083038185875af1925050503d805f8114610db9576040519150601f19603f3d011682016040523d82523d5f602084013e610dbe565b606091505b5050905080610e02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df990611932565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff167f4cbaede2de574837e61a98a30aa5d7353c76facef958abbb7768c4c46ff612d98660055f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20548587604051610e8b9493929190611db6565b60405180910390a2505050610e9e6113dd565b5050565b610eaa61110b565b60075f9054906101000a900460ff1615610ef9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ef09061199a565b60405180910390fd5b5f8111610f3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f3290611e43565b60405180910390fd5b600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fa6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fca9190611bc9565b81111561100c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100390611eab565b60405180910390fd5b806004819055507f6c94155fc9c34df6d34964ca1f93e622bb7ddc5232996336d7a838266c159f7381604051611042919061155d565b60405180910390a150565b60075f9054906101000a900460ff1681565b60035481565b5f60075f9054906101000a900460ff168015611082575060065442115b905090565b61108f61110b565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036110ff575f6040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016110f691906114f9565b60405180910390fd5b61110881611233565b50565b6111136113e6565b73ffffffffffffffffffffffffffffffffffffffff166111316109c5565b73ffffffffffffffffffffffffffffffffffffffff1614611190576111546113e6565b6040517f118cdaa700000000000000000000000000000000000000000000000000000000815260040161118791906114f9565b60405180910390fd5b565b61119a61086d565b6111d0576040517f8dfc202b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b6111da611192565b5f60025f6101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa61121c6113e6565b60405161122991906114f9565b60405180910390a1565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6112fc61086d565b15611333576040517fd93c066500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b61133d6112f4565b600160025f6101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586113806113e6565b60405161138d91906114f9565b60405180910390a1565b6002600154036113d3576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600181905550565b60018081905550565b5f33905090565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61141a826113f1565b9050919050565b61142a81611410565b8114611434575f80fd5b50565b5f8135905061144581611421565b92915050565b5f602082840312156114605761145f6113ed565b5b5f61146d84828501611437565b91505092915050565b5f819050919050565b5f61149961149461148f846113f1565b611476565b6113f1565b9050919050565b5f6114aa8261147f565b9050919050565b5f6114bb826114a0565b9050919050565b6114cb816114b1565b82525050565b5f6020820190506114e45f8301846114c2565b92915050565b6114f381611410565b82525050565b5f60208201905061150c5f8301846114ea565b92915050565b5f8115159050919050565b61152681611512565b82525050565b5f60208201905061153f5f83018461151d565b92915050565b5f819050919050565b61155781611545565b82525050565b5f6020820190506115705f83018461154e565b92915050565b61157f81611545565b8114611589575f80fd5b50565b5f8135905061159a81611576565b92915050565b5f602082840312156115b5576115b46113ed565b5b5f6115c28482850161158c565b91505092915050565b5f80604083850312156115e1576115e06113ed565b5b5f6115ee8582860161158c565b92505060206115ff85828601611437565b9150509250929050565b5f82825260208201905092915050565b7f4e6f2045544820616c6c6f636174656420666f7220726564656d7074696f6e735f82015250565b5f61164d602083611609565b915061165882611619565b602082019050919050565b5f6020820190508181035f83015261167a81611641565b9050919050565b7f43697263756c6174696e6720737570706c79206e6f74207365740000000000005f82015250565b5f6116b5601a83611609565b91506116c082611681565b602082019050919050565b5f6020820190508181035f8301526116e2816116a9565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61172082611545565b915061172b83611545565b9250828201905080821115611743576117426116e9565b5b92915050565b7f496e76616c696420726563697069656e740000000000000000000000000000005f82015250565b5f61177d601183611609565b915061178882611749565b602082019050919050565b5f6020820190508181035f8301526117aa81611771565b9050919050565b7f43616e6e6f7420776974686472617720647572696e67206163746976652072655f8201527f64656d7074696f6e000000000000000000000000000000000000000000000000602082015250565b5f61180b602883611609565b9150611816826117b1565b604082019050919050565b5f6020820190508181035f830152611838816117ff565b9050919050565b7f4e6f2045544820746f20776974686472617700000000000000000000000000005f82015250565b5f611873601283611609565b915061187e8261183f565b602082019050919050565b5f6020820190508181035f8301526118a081611867565b9050919050565b5f81905092915050565b50565b5f6118bf5f836118a7565b91506118ca826118b1565b5f82019050919050565b5f6118de826118b4565b9150819050919050565b7f455448207472616e73666572206661696c6564000000000000000000000000005f82015250565b5f61191c601383611609565b9150611927826118e8565b602082019050919050565b5f6020820190508181035f83015261194981611910565b9050919050565b7f526564656d7074696f6e20616c726561647920616374697661746564000000005f82015250565b5f611984601c83611609565b915061198f82611950565b602082019050919050565b5f6020820190508181035f8301526119b181611978565b9050919050565b5f6040820190506119cb5f83018561154e565b6119d8602083018461154e565b9392505050565b5f6119e982611545565b91506119f483611545565b9250828202611a0281611545565b91508282048414831517611a1957611a186116e9565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f611a5782611545565b9150611a6283611545565b925082611a7257611a71611a20565b5b828204905092915050565b7f526564656d7074696f6e206e6f742061637469766174656420796574000000005f82015250565b5f611ab1601c83611609565b9150611abc82611a7d565b602082019050919050565b5f6020820190508181035f830152611ade81611aa5565b9050919050565b7f526564656d7074696f6e20706572696f642068617320656e64656400000000005f82015250565b5f611b19601b83611609565b9150611b2482611ae5565b602082019050919050565b5f6020820190508181035f830152611b4681611b0d565b9050919050565b7f416d6f756e74206d7573742062652067726561746572207468616e20300000005f82015250565b5f611b81601d83611609565b9150611b8c82611b4d565b602082019050919050565b5f6020820190508181035f830152611bae81611b75565b9050919050565b5f81519050611bc381611576565b92915050565b5f60208284031215611bde57611bdd6113ed565b5b5f611beb84828501611bb5565b91505092915050565b7f496e73756666696369656e7420524f424f542062616c616e63650000000000005f82015250565b5f611c28601a83611609565b9150611c3382611bf4565b602082019050919050565b5f6020820190508181035f830152611c5581611c1c565b9050919050565b7f496e73756666696369656e742045544820696e20636f6e7472616374000000005f82015250565b5f611c90601c83611609565b9150611c9b82611c5c565b602082019050919050565b5f6020820190508181035f830152611cbd81611c84565b9050919050565b5f606082019050611cd75f8301866114ea565b611ce460208301856114ea565b611cf1604083018461154e565b949350505050565b611d0281611512565b8114611d0c575f80fd5b50565b5f81519050611d1d81611cf9565b92915050565b5f60208284031215611d3857611d376113ed565b5b5f611d4584828501611d0f565b91505092915050565b7f546f6b656e207472616e73666572206661696c656400000000000000000000005f82015250565b5f611d82601583611609565b9150611d8d82611d4e565b602082019050919050565b5f6020820190508181035f830152611daf81611d76565b9050919050565b5f608082019050611dc95f83018761154e565b611dd6602083018661154e565b611de3604083018561154e565b611df060608301846114ea565b95945050505050565b7f537570706c79206d7573742062652067726561746572207468616e20300000005f82015250565b5f611e2d601d83611609565b9150611e3882611df9565b602082019050919050565b5f6020820190508181035f830152611e5a81611e21565b9050919050565b7f496e76616c696420737570706c790000000000000000000000000000000000005f82015250565b5f611e95600e83611609565b9150611ea082611e61565b602082019050919050565b5f6020820190508181035f830152611ec281611e89565b905091905056fea2646970667358221220840294e7664975333f8266a4e9dfc9c420807025b84fc15ba045eb6bce5e20d864736f6c634300081a0033000000000000000000000000fb5453340c03db5ade474b27e68b6a9c6b2823eb