0 txs
12 calls
constructor
constructor(address _credi_addr, address _xcredi_addr, uint256 _DIFFICULTY, uint256 _DIFFICULTY_INTERVAL)
functions
calculateReward
viewfunction calculateReward(uint256 stake_amount) view returns (uint256)
CREDI
viewfunction CREDI() view returns (address)
DIFFICULTY_INTERVAL
viewfunction DIFFICULTY_INTERVAL() view returns (uint256)
getCREDIAddress
viewfunction getCREDIAddress() view returns (address)
getDifficulty
viewfunction getDifficulty() view returns (uint256)
getStake
viewfunction getStake(uint256 stake_id) view returns (address owner, uint256 maturity, uint256 stake_amount, uint256 reward_amount)
getStakesCount
viewfunction getStakesCount() view returns (uint256)
getxCREDIAddress
viewfunction getxCREDIAddress() view returns (address)
MATURITY
viewfunction MATURITY() view returns (uint96)
owner
viewfunction owner() view returns (address)
pending_payments
viewfunction pending_payments() view returns (uint256)
stopped
viewfunction stopped() view returns (bool)
total_staked
viewfunction total_staked() view returns (uint256)
xCREDI
viewfunction xCREDI() view returns (address)
addRewards
nonpayablefunction addRewards(uint256 amount)
batchWithdrawCREDI
nonpayablefunction batchWithdrawCREDI(uint256[] stake_ids)
claim
nonpayablefunction claim(uint256 stake_id) returns (uint256)
renounceOwnership
nonpayablefunction renounceOwnership()
setDifficulty
nonpayablefunction setDifficulty(uint256 _DIFFICULTY, uint256 _DIFFICULTY_INTERVAL, uint256 _total_staked)
stake
nonpayablefunction stake(uint96 lock_period, uint256 stake_amount) returns (uint256, uint256)
stop
nonpayablefunction stop()
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
withdrawCREDI
nonpayablefunction withdrawCREDI(uint256 stake_id, uint256 amount)
withdrawRewards
nonpayablefunction withdrawRewards(address to, uint256 amount)
events
CREDIWithdrawn
event CREDIWithdrawn(uint256 stake_id, uint256 amount)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
RewardAdded
event RewardAdded(uint256 amount)
RewardPaid
event RewardPaid(uint256 stake_id)
RewardWithdrawn
event RewardWithdrawn(address indexed to, uint256 amount)
Staked
event Staked(address indexed user, uint256 stake_id, uint96 maturity, uint256 stake_amount, uint256 rewards_amount)
Stopped
event Stopped()
errors
OwnableInvalidOwner
error OwnableInvalidOwner(address owner)
OwnableUnauthorizedAccount
error OwnableUnauthorizedAccount(address account)
SafeERC20FailedOperation
error SafeERC20FailedOperation(address token)
creation bytecode
0x60c06040525f805460ff60a01b191681556001818155600555600655348015610026575f5ffd5b5060405161185a38038061185a833981016040819052610045916100fe565b338061006a57604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b61007381610094565b506001600160a01b039384166080529190921660a05260035560025561013e565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b03811681146100f9575f5ffd5b919050565b5f5f5f5f60808587031215610111575f5ffd5b61011a856100e3565b9350610128602086016100e3565b6040860151606090960151949790965092505050565b60805160a0516116bc61019e5f395f8181610238015281816102b8015281816105fb01528181610b6d01528181610e3c0152610f0801525f81816101d1015281816103750152818161083801528181610ad301526110a801526116bc5ff3fe608060405234801561000f575f5ffd5b506004361061018f575f3560e01c8063b109beec116100dd578063ce325bf811610088578063d6ef7af011610063578063d6ef7af014610399578063d93c04a0146103ac578063f2fde38b146103d4575f5ffd5b8063ce325bf814610323578063d2d7231f14610360578063d46149a214610373575f5ffd5b8063bc854352116100b8578063bc854352146102ea578063beceed39146102fd578063c9ea62c114610310575f5ffd5b8063b109beec146102b3578063b5fa91fe146102da578063b6baffe3146102e2575f5ffd5b80637c2fdeb51161013d5780638f4729b7116101185780638f4729b71461028e578063ac00500f14610297578063af7568dd146102aa575f5ffd5b80637c2fdeb5146102365780638da5cb5b1461025c5780638e12c0cd1461026c575f5ffd5b80636db08f251161016d5780636db08f25146101cc578063715018a61461020b57806375f12b2114610213575f5ffd5b806307da68f514610193578063109cf3991461019d578063379607f5146101b9575b5f5ffd5b61019b6103e7565b005b6101a660035481565b6040519081526020015b60405180910390f35b6101a66101c7366004611453565b610445565b6101f37f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016101b0565b61019b610681565b5f5461022690600160a01b900460ff1681565b60405190151581526020016101b0565b7f00000000000000000000000000000000000000000000000000000000000000006101f3565b5f546001600160a01b03166101f3565b61027662ed4e0081565b6040516001600160601b0390911681526020016101b0565b6101a660065481565b61019b6102a536600461146a565b610694565b6101a660015481565b6101f37f000000000000000000000000000000000000000000000000000000000000000081565b6101a66108b6565b6101a66108cb565b61019b6102f836600461148a565b6108e9565b61019b61030b366004611453565b610b07565b61019b61031e3660046114fb565b610bd3565b610336610331366004611453565b610be9565b604080516001600160a01b03909516855260208501939093529183015260608201526080016101b0565b6101a661036e366004611453565b610c89565b7f00000000000000000000000000000000000000000000000000000000000000006101f3565b61019b6103a736600461153f565b610df9565b6103bf6103ba366004611567565b610f76565b604080519283526020830191909152016101b0565b61019b6103e236600461158e565b611219565b6103ef61126f565b5f80547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16600160a01b1781556040517f7acc84e34091ae817647a4c49116f5cc07f319078ba80f8f5fde37ea7e25cbd69190a1565b5f815f81118015610457575060055481105b6104a85760405162461bcd60e51b815260206004820152601960248201527f4d6f64756c65583a496e76616c6964205374616b65204944210000000000000060448201526064015b60405180910390fd5b5f83815260046020526040902080546001600160a01b0316331461050e5760405162461bcd60e51b815260206004820152601f60248201527f4d6f64756c65583a43616c6c6572206973206e6f7420746865206f776e657200604482015260640161049f565b8054600160a01b90046001600160601b0316426001600160601b0316101561059e5760405162461bcd60e51b815260206004820152602a60248201527f4d6f64756c65583a4561726c79205769746864726177616c206973206e6f742060448201527f7065726d69747465642100000000000000000000000000000000000000000000606482015260840161049f565b5f8160020154116105f15760405162461bcd60e51b815260206004820152601860248201527f4d6f64756c65583a4e6f7468696e6720746f20636c61696d0000000000000000604482015260640161049f565b600281015461062a7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633836112b4565b8060065f82825461063b91906115c2565b90915550505f60028301556040518581527f67bb155fcabb99400c32b640dc7704c8f18aae4c817704c7267c5a8cd26dfc199060200160405180910390a1949350505050565b61068961126f565b6106925f611328565b565b61069c61126f565b815f811180156106ad575060055481105b6106f95760405162461bcd60e51b815260206004820152601960248201527f4d6f64756c65583a496e76616c6964205374616b652049442100000000000000604482015260640161049f565b5f821161075a5760405162461bcd60e51b815260206004820152602960248201527f4d6f64756c65583a616d6f756e74206d7573742062652067726561746572207460448201526868616e207a65726f2160b81b606482015260840161049f565b5f8381526004602052604090208054600160a01b90046001600160601b0316426001600160601b031611156107d15760405162461bcd60e51b815260206004820152601560248201527f4d6f64756c65583a4275726e7420746f6b656e73210000000000000000000000604482015260640161049f565b80600101548311156108255760405162461bcd60e51b815260206004820152601d60248201527f4d6f64756c65583a496e73756666696369656e742062616c616e636521000000604482015260640161049f565b61085f3360018301546001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691906112b4565b82816001015f82825461087291906115c2565b909155505060408051858152602081018590527f03a00e6132085cbc9ea18899cd135ef9cad5d305d58506e08e7b1a9b96199a9c910160405180910390a150505050565b5f60016005546108c691906115c2565b905090565b5f6002546003546001546108df91906115db565b6108c691906115fa565b6108f161126f565b5f805b82811015610a7e576005548484838181106109115761091161160d565b90506020020135106109655760405162461bcd60e51b815260206004820152601960248201527f4d6f64756c65583a496e76616c6964205374616b652049442100000000000000604482015260640161049f565b5f60045f86868581811061097b5761097b61160d565b602090810292909201358352508101919091526040015f208054909150600160a01b90046001600160601b0316426001600160601b03161115610a005760405162461bcd60e51b815260206004820152601560248201527f4d6f64756c65583a4275726e7420746f6b656e73210000000000000000000000604482015260640161049f565b6001810154610a0f90846115fa565b5f600183015592507f03a00e6132085cbc9ea18899cd135ef9cad5d305d58506e08e7b1a9b96199a9c858584818110610a4a57610a4a61160d565b905060200201358260010154604051610a6d929190918252602082015260400190565b60405180910390a1506001016108f4565b505f8111610ace5760405162461bcd60e51b815260206004820152601a60248201527f4d6f64756c65583a546f74616c20616d6f756e74206973203021000000000000604482015260640161049f565b610b027f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633836112b4565b505050565b5f8111610b685760405162461bcd60e51b815260206004820152602960248201527f4d6f64756c65583a616d6f756e74206d7573742062652067726561746572207460448201526868616e207a65726f2160b81b606482015260840161049f565b610b9d7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633308461138f565b6040518181527fde88a922e0d3b88b24e9623efeb464919c6bf9f66857a65e2bfcf2ce87a9433d9060200160405180910390a150565b610bdb61126f565b600292909255600355600155565b5f5f5f5f845f81118015610bfe575060055481105b610c4a5760405162461bcd60e51b815260206004820152601960248201527f4d6f64756c65583a496e76616c6964205374616b652049442100000000000000604482015260640161049f565b5050505f9283525050600460205260409020805460018201546002909201546001600160a01b03821693600160a01b9092046001600160601b03169291565b5f5f670de0b6b3a764000090505f83600154610ca591906115fa565b90505f600354600154610cb891906115db565b90505f60035483610cc991906115db565b9050808203610cf357600254610cdf90836115fa565b610ce990876115db565b9695505050505050565b5f60025483610d0291906115fa565b600154600354856001610d1591906115fa565b610d1f9190611621565b610d2991906115c2565b610d339087611621565b610d3d91906115db565b90505f60025483610d4e91906115fa565b600354610d5b9085611621565b610d6590876115c2565b610d6f9088611621565b610d7991906115db565b90505f80610d888660016115fa565b90505b84811015610dcb57600254610da090826115fa565b600354610dad908a611621565b610db791906115db565b610dc190836115fa565b9150600101610d8b565b508682610dd883866115fa565b610de291906115fa565b610dec91906115db565b9998505050505050505050565b610e0161126f565b600654610e0e90826115fa565b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa158015610e89573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ead9190611638565b1015610efb5760405162461bcd60e51b815260206004820152601d60248201527f4d6f64756c65583a496e73756666696369656e742062616c616e636521000000604482015260640161049f565b610f2f6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001683836112b4565b816001600160a01b03167f1d3eee4ca001cff39eec6ec7615aacf2f2bd61791273830728ba00ccbd6e133782604051610f6a91815260200190565b60405180910390a25050565b5f80548190600160a01b900460ff1615610fd25760405162461bcd60e51b815260206004820152601060248201527f4d6f64756c65583a53544f505045442100000000000000000000000000000000604482015260640161049f565b5f83116110475760405162461bcd60e51b815260206004820152602c60248201527f4d6f64756c65583a5374616b6520616d6f756e74206d7573742062652067726560448201527f61746572207468616e2030210000000000000000000000000000000000000000606482015260840161049f565b62ed4e006001600160601b03851610156110a35760405162461bcd60e51b815260206004820152601f60248201527f4d6f64756c65583a557365206c6f6e676572206c6f636b5f706572696f642100604482015260640161049f565b6110d87f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633308661138f565b5f6110e3854261164f565b90505f6110ef85610c89565b90505f600554905060405180608001604052806111093390565b6001600160a01b0390811682526001600160601b0380871660208085019190915260408085018c905260609485018890525f87815260048352818120875193880151909416600160a01b029290941691909117825584015160018083019190915593909201516002909201919091558154889291906111899084906115fa565b925050819055508160065f8282546111a191906115fa565b9091555050604080518281526001600160601b038516602082015280820188905260608101849052905133917f24fe2d25c10eb2c67b5ac1e3edbcadc94191e154ed388ad667a9480c44f47146919081900360800190a260058054905f6112078361166e565b90915550909791965090945050505050565b61122161126f565b6001600160a01b038116611263576040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081525f600482015260240161049f565b61126c81611328565b50565b5f546001600160a01b03163314610692576040517f118cdaa700000000000000000000000000000000000000000000000000000000815233600482015260240161049f565b6040516001600160a01b03838116602483015260448201839052610b0291859182169063a9059cbb906064015b604051602081830303815290604052915060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506113ce565b5f80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6040516001600160a01b0384811660248301528381166044830152606482018390526113c89186918216906323b872dd906084016112e1565b50505050565b5f5f60205f8451602086015f885af1806113ed576040513d5f823e3d81fd5b50505f513d91508115611404578060011415611411565b6001600160a01b0384163b155b156113c8576040517f5274afe70000000000000000000000000000000000000000000000000000000081526001600160a01b038516600482015260240161049f565b5f60208284031215611463575f5ffd5b5035919050565b5f5f6040838503121561147b575f5ffd5b50508035926020909101359150565b5f5f6020838503121561149b575f5ffd5b823567ffffffffffffffff8111156114b1575f5ffd5b8301601f810185136114c1575f5ffd5b803567ffffffffffffffff8111156114d7575f5ffd5b8560208260051b84010111156114eb575f5ffd5b6020919091019590945092505050565b5f5f5f6060848603121561150d575f5ffd5b505081359360208301359350604090920135919050565b80356001600160a01b038116811461153a575f5ffd5b919050565b5f5f60408385031215611550575f5ffd5b61155983611524565b946020939093013593505050565b5f5f60408385031215611578575f5ffd5b82356001600160601b0381168114611559575f5ffd5b5f6020828403121561159e575f5ffd5b6115a782611524565b9392505050565b634e487b7160e01b5f52601160045260245ffd5b818103818111156115d5576115d56115ae565b92915050565b5f826115f557634e487b7160e01b5f52601260045260245ffd5b500490565b808201808211156115d5576115d56115ae565b634e487b7160e01b5f52603260045260245ffd5b80820281158282048414176115d5576115d56115ae565b5f60208284031215611648575f5ffd5b5051919050565b6001600160601b0381811683821601908111156115d5576115d56115ae565b5f6001820161167f5761167f6115ae565b506001019056fea264697066735822122041ec4aa51bdd4f7f24560d5cc94a9260ac837715231c8eec9d689001f6fd1c2064736f6c634300081e0033000000000000000000000000ae6e307c3fe9e922e5674dbd7f830ed49c014c6b0000000000000000000000003bbfb303842dd4a76da4c927be644e9cf3170afd000000000000000000000000000000000000000000000000000000000000000b00000000000000000000000000000000000000000000d3c21bcecceda1000000