0 txs
2k calls
constructor
constructor()
functions
allowance
viewfunction allowance(address owner, address spender) view returns (uint256)
alpha
viewfunction alpha() view returns (uint256)
balanceOf
viewfunction balanceOf(address account) view returns (uint256)
calculateUMO
viewfunction calculateUMO(uint256 currentRate, uint256 startTime, uint256 endTime, uint256 staked, uint256 currentAlpha) view returns (uint256)
decimals
viewfunction decimals() view returns (uint8)
getBalanceAtTime
viewfunction getBalanceAtTime(address account, uint256 currentTime) view returns (uint256)
name
viewfunction name() view returns (string)
owner
viewfunction owner() view returns (address)
proxiableUUID
viewfunction proxiableUUID() view returns (bytes32)
rate
viewfunction rate() view returns (uint256)
stake
viewfunction stake(address) view returns (uint256 startTime, uint256 UMJAStaked, uint256 currentRate, uint256 currentAlpha)
symbol
viewfunction symbol() view returns (string)
totalSupply
viewfunction totalSupply() view returns (uint256)
totalUMJA
viewfunction totalUMJA() view returns (uint256)
transfer
purefunction transfer(address to, uint256 amount) pure returns (bool)
transferFrom
purefunction transferFrom(address from, address to, uint256 amount) pure returns (bool)
UMJA
viewfunction UMJA() view returns (address)
UPGRADE_INTERFACE_VERSION
viewfunction UPGRADE_INTERFACE_VERSION() view returns (string)
approve
nonpayablefunction approve(address spender, uint256 value) returns (bool)
initialize
nonpayablefunction initialize(address umjaAddress, uint256 initialRate, uint256 initialAlpha)
removeStake
nonpayablefunction removeStake(uint256 amount)
renounceOwnership
nonpayablefunction renounceOwnership()
setRewardDistributor
nonpayablefunction setRewardDistributor(address _rewardContract)
stakeUMJA
nonpayablefunction stakeUMJA(uint256 amount)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
updateAlpha
nonpayablefunction updateAlpha(uint256 newAlpha)
updateRate
nonpayablefunction updateRate(uint256 newRate)
upgradeToAndCall
payablefunction upgradeToAndCall(address newImplementation, bytes data) payable
events
AddStake
event AddStake(address user, uint256 amount, uint256 UMOSaved)
Approval
event Approval(address indexed owner, address indexed spender, uint256 value)
Initialized
event Initialized(uint64 version)
NewAlpha
event NewAlpha(uint256 newAlpha)
NewRate
event NewRate(uint256 newRate)
NewRewardDistributor
event NewRewardDistributor(address contractAddr)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
RemoveStake
event RemoveStake(address user, uint256 amount, uint256 UMOSaved)
Transfer
event Transfer(address indexed from, address indexed to, uint256 value)
Upgraded
event Upgraded(address indexed implementation)
errors
AddressEmptyCode
error AddressEmptyCode(address target)
AmountZero
error AmountZero()
ERC1967InvalidImplementation
error ERC1967InvalidImplementation(address implementation)
ERC1967NonPayable
error ERC1967NonPayable()
ERC20InsufficientAllowance
error ERC20InsufficientAllowance(address spender, uint256 allowance, uint256 needed)
ERC20InsufficientBalance
error ERC20InsufficientBalance(address sender, uint256 balance, uint256 needed)
ERC20InvalidApprover
error ERC20InvalidApprover(address approver)
ERC20InvalidReceiver
error ERC20InvalidReceiver(address receiver)
ERC20InvalidSender
error ERC20InvalidSender(address sender)
ERC20InvalidSpender
error ERC20InvalidSpender(address spender)
FailedCall
error FailedCall()
InsufficientStake
error InsufficientStake(uint256 available, uint256 required)
InvalidAlpha
error InvalidAlpha(uint256 alpha)
InvalidInitialization
error InvalidInitialization()
NotInitializing
error NotInitializing()
OwnableInvalidOwner
error OwnableInvalidOwner(address owner)
OwnableUnauthorizedAccount
error OwnableUnauthorizedAccount(address account)
ReentrancyGuardReentrantCall
error ReentrancyGuardReentrantCall()
SafeERC20FailedOperation
error SafeERC20FailedOperation(address token)
TransferNotAllowed
error TransferNotAllowed()
UUPSUnauthorizedCallContext
error UUPSUnauthorizedCallContext()
UUPSUnsupportedProxiableUUID
error UUPSUnsupportedProxiableUUID(bytes32 slot)
creation bytecode
0x60a080604052346100ea57306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c166100d9576002600160401b03196001600160401b03821601610073575b60405161195a90816100f08239608051818181610cb00152610d810152f35b6001600160401b0319166001600160401b039081177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005581527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a13880610054565b63f92ee8a960e01b60005260046000fd5b600080fdfe6080604052600436101561001257600080fd5b6000803560e01c8062e19719146113d357806306d2d3dc1461136a57806306fdde03146112a9578063095ea7b3146111db57806318160ddd1461119e5780631d54c6e11461118057806323b872dd1461115a57806326476204146110fe5780632c4e722e146110e0578063313ce567146110c457806333fa2c2414610f5a5780634f1ef28614610d0557806352d1902d14610c9d5780635a9e74ae14610c5657806369ea177114610c0857806370a0823114610b72578063715018a614610b085780637a1ac61e146105cf5780638da5cb5b14610599578063939624ab1461041557806395d89b4114610320578063a1809b95146102b2578063a9059cbb14610288578063ad3cb1cc14610243578063db1d0fd514610225578063dd62ed3e146101a6578063de8cbf641461017f5763f2fde38b1461015057600080fd5b3461017c57602036600319011261017c5761017961016c611447565b61017461160d565b611597565b80f35b80fd5b503461017c578060031936011261017c57546040516001600160a01b039091168152602090f35b503461017c57604036600319011261017c576101c0611447565b6102066101cb611462565b6001600160a01b0390921660009081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace016020526040902090565b9060018060a01b03166000526020526020604060002054604051908152f35b503461017c578060031936011261017c576020600354604051908152f35b503461017c578060031936011261017c5750610284604051610266604082611478565b60058152640352e302e360dc1b6020820152604051918291826113fe565b0390f35b503461017c57604036600319011261017c576004906102a5611447565b50638cd22d1960e01b8152fd5b503461017c57602036600319011261017c577f2c5d736fe33491aec26599d23d58d215d9668f314ffca09d4316c8c4d6bcc72a60206102ef611447565b6102f761160d565b600480546001600160a01b0319166001600160a01b03929092169182179055604051908152a180f35b503461017c578060031936011261017c576040519080600080516020611885833981519152549061035082611550565b80855291600181169081156103ee5750600114610384575b6102848461037881860382611478565b604051918291826113fe565b60008051602061188583398151915281527f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa939250905b8082106103d45750909150810160200161037882610368565b9192600181602092548385880101520191019092916103bb565b60ff191660208087019190915292151560051b850190920192506103789150839050610368565b503461017c57602036600319011261017c57600435610432611643565b3382526005602052604082209060018201908154818110610584575060045484906001600160a01b0316803b156105805781809160246040518094819363632447c960e01b83523360048401525af1801561057557610560575b50836104b87f1fe15ea5d7dbc5d90323d1effa01c82150326aa1ecc0397d0624498f1d7eb4c89561167f565b936104c48482546114cc565b81556104d2846001546114cc565b600155541561054b575b5050835460405163a9059cbb60e01b60208201523360248201526044808201849052815261051d916001600160a01b0316610518606483611478565b61176e565b604080513381526020810192909252810191909152606090a160016000805160206118e58339815191525580f35b808260039255826002820155015583386104dc565b61056b828092611478565b61017c573861048c565b6040513d84823e3d90fd5b5080fd5b6322df051360e11b8552600452602452604483fd5b503461017c578060031936011261017c576000805160206118a5833981519152546040516001600160a01b039091168152602090f35b503461017c57606036600319011261017c576105e9611447565b604435600080516020611905833981519152549060ff8260401c16159167ffffffffffffffff811680159081610b00575b6001149081610af6575b159081610aed575b50610ade5767ffffffffffffffff1981166001176000805160206119058339815191525582610ab1575b5060409283516106668582611478565b601081526f556d6f6a6120476f7665726e616e636560801b60208201528451906106908683611478565b6003825262554d4f60e81b60208301526106a86117d5565b6106b06117d5565b80519067ffffffffffffffff8211610a9d5781906106dc60008051602061186583398151915254611550565b601f8111610a22575b50602090601f83116001146109a3578992610998575b50508160011b916000199060031b1c191617600080516020611865833981519152555b80519067ffffffffffffffff821161098457819061074a60008051602061188583398151915254611550565b601f8111610909575b50602090601f831160011461088a57889261087f575b50508160011b916000199060031b1c191617600080516020611885833981519152555b6107946117d5565b61079c6117d5565b6107a533611597565b6107ad6117d5565b6107b56117d5565b6107bd6117d5565b60016000805160206118e58339815191525584546001600160a01b0319166001600160a01b0391909116178455602435600255600581111580610876575b156108645760035561080b575080f35b60207fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29168ff0000000000000000196000805160206119058339815191525416600080516020611905833981519152555160018152a180f35b63a84d03e160e01b8452600452602483fd5b508015156107fb565b015190503880610769565b60008051602061188583398151915289528189209250601f198416895b8181106108f157509084600195949392106108d8575b505050811b016000805160206118858339815191525561078c565b015160001960f88460031b161c191690553880806108bd565b929360206001819287860151815501950193016108a7565b60008051602061188583398151915289529091507f46a2803e59a4de4e7a4c574b1243f25977ac4c77d5a1a4a609b5394cebb4a2aa601f840160051c8101916020851061097a575b90601f859493920160051c01905b81811061096c5750610753565b89815584935060010161095f565b9091508190610951565b634e487b7160e01b87526041600452602487fd5b0151905038806106fb565b6000805160206118658339815191528a52818a209250601f1984168a5b818110610a0a57509084600195949392106109f1575b505050811b016000805160206118658339815191525561071e565b015160001960f88460031b161c191690553880806109d6565b929360206001819287860151815501950193016109c0565b6000805160206118658339815191528a529091507f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab0601f840160051c81019160208510610a93575b90601f859493920160051c01905b818110610a8557506106e5565b8a8155849350600101610a78565b9091508190610a6a565b634e487b7160e01b88526041600452602488fd5b68ffffffffffffffffff191668010000000000000001176000805160206119058339815191525538610656565b63f92ee8a960e01b8552600485fd5b9050153861062c565b303b159150610624565b84915061061a565b503461017c578060031936011261017c57610b2161160d565b6000805160206118a583398151915280546001600160a01b0319811690915581906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b503461017c57602036600319011261017c57610c00602091610bfa610bdd6040610b9a611447565b6001600160a01b031680855260058752932060009384527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00602052604090932090565b549160028101549080549160036001830154920154924291611502565b9061158a565b604051908152f35b503461017c57602036600319011261017c577f5f59bbb6b0817a56189984f1e855b3c290edd6825846b4e3c47e4b594ae9630c6020600435610c4861160d565b80600255604051908152a180f35b503461017c57604036600319011261017c57610c00602091610bfa610c7e6040610b9a611447565b5491600281015490805491600360018301549201549260243591611502565b503461017c578060031936011261017c577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163003610cf65760206040516000805160206118c58339815191528152f35b63703e46dd60e11b8152600490fd5b50604036600319011261017c57610d1a611447565b6024359067ffffffffffffffff8211610f565736602383011215610f565781600401359083610d48836114b0565b93610d566040519586611478565b83855260208501933660248284010111610f5657806024602093018637850101526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016308114908115610f33575b50610f2457610db961160d565b6040516352d1902d60e01b81526001600160a01b0382169390602081600481885afa869181610eec575b50610dfc57634c9c8ce360e01b86526004859052602486fd5b93846000805160206118c5833981519152879603610eda5750823b15610ec8576000805160206118c583398151915280546001600160a01b031916821790558491907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8380a2805115610ead57610ea19382915190845af43d15610ea5573d91610e85836114b0565b92610e936040519485611478565b83523d85602085013e611803565b5080f35b606091611803565b5050505034610eb95780f35b63b398979f60e01b8152600490fd5b634c9c8ce360e01b8552600452602484fd5b632a87526960e21b8652600452602485fd5b9091506020813d602011610f1c575b81610f0860209383611478565b81010312610f1857519038610de3565b8680fd5b3d9150610efb565b63703e46dd60e11b8452600484fd5b6000805160206118c5833981519152546001600160a01b03161415905038610dac565b8280fd5b503461017c57602036600319011261017c57600435610f77611643565b80156110b55760045482906001600160a01b0316803b1561058057819060246040518094819363632447c960e01b83523360048401525af180156110aa57611076575b507f454558f821e516381f5735afdf706c1069e066bc2f6c62ac498eb191dc57b42890338352600560205260408320908391600181018054611065575b6110038360015461158a565b60015542825561101483825461158a565b905560028054908201556003805491015583546040516323b872dd60e01b60208201523360248201523060448201526064808201849052815261051d916001600160a01b0316610518608483611478565b92506110708161167f565b92610ff7565b916110a3817f454558f821e516381f5735afdf706c1069e066bc2f6c62ac498eb191dc57b4289394611478565b9190610fba565b6040513d85823e3d90fd5b6365e52d5160e11b8252600482fd5b503461017c578060031936011261017c57602060405160128152f35b503461017c578060031936011261017c576020600254604051908152f35b503461017c57602036600319011261017c576080906040906001600160a01b03611126611447565b1681526005602052208054906001810154906003600282015491015491604051938452602084015260408301526060820152f35b503461017c57606036600319011261017c57600490611177611447565b506102a5611462565b503461017c578060031936011261017c576020600154604051908152f35b503461017c578060031936011261017c5760207f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0254604051908152f35b503461017c57604036600319011261017c576111f5611447565b602435903315611295576001600160a01b0316918215611281573360009081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0160205260409081902083929085825260205220556040519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560203392a3602060405160018152f35b634a1406b160e11b81526004819052602490fd5b63e602df0560e01b83526004839052602483fd5b503461017c578060031936011261017c57604051908060008051602061186583398151915254906112d982611550565b80855291600181169081156103ee5750600114611300576102848461037881860382611478565b60008051602061186583398151915281527f2ae08a8e29253f69ac5d979a101956ab8f8d9d7ded63fa7a83b16fc47648eab0939250905b8082106113505750909150810160200161037882610368565b919260018160209254838588010152019101909291611337565b503461017c57602036600319011261017c5760043561138761160d565b600581116113c1576020817f5412620b1314aafc05ea3ddc58d0723b3b1476bfb4d007e5d60caae43e85259b92600355604051908152a180f35b63a84d03e160e01b8252600452602490fd5b503461017c5760a036600319011261017c576020610c00608435606435604435602435600435611502565b91909160208152825180602083015260005b818110611431575060409293506000838284010152601f8019910116010190565b8060208092870101516040828601015201611410565b600435906001600160a01b038216820361145d57565b600080fd5b602435906001600160a01b038216820361145d57565b90601f8019910116810190811067ffffffffffffffff82111761149a57604052565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff811161149a57601f01601f191660200190565b919082039182116114d957565b634e487b7160e01b600052601160045260246000fd5b818102929181159184041417156114d957565b92919061150e916114cc565b6001936000915b818310611538575050509161152f611534926064946114ef565b6114ef565b0490565b909194611547826001926114ef565b95019190611515565b90600182811c92168015611580575b602083101461156a57565b634e487b7160e01b600052602260045260246000fd5b91607f169161155f565b919082018092116114d957565b6001600160a01b031680156115f7576000805160206118a583398151915280546001600160a01b0319811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a3565b631e4fbdf760e01b600052600060045260246000fd5b6000805160206118a5833981519152546001600160a01b0316330361162e57565b63118cdaa760e01b6000523360045260246000fd5b60026000805160206118e5833981519152541461166e5760026000805160206118e583398151915255565b633ee5aeb560e01b60005260046000fd5b9061169e60028301548354906001850154906003860154924291611502565b913315611758576116d0837f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace025461158a565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0255336000527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00602052604060002083815401905560405183815260007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60203393a3429055565b63ec442f0560e01b600052600060045260246000fd5b906000602091828151910182855af1156117c9576000513d6117c057506001600160a01b0381163b155b61179f5750565b635274afe760e01b60009081526001600160a01b0391909116600452602490fd5b60011415611798565b6040513d6000823e3d90fd5b60ff6000805160206119058339815191525460401c16156117f257565b631afcd79f60e31b60005260046000fd5b90611829575080511561181857805190602001fd5b63d6bda27560e01b60005260046000fd5b8151158061185b575b61183a575090565b639996b31560e01b60009081526001600160a01b0391909116600452602490fd5b50803b1561183256fe52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0352c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace049016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220c920da277419778325f322170b64db1f2f421572c124654e64cdc49bda0e409d64736f6c634300081a0033