247 txs
305 calls
constructor
constructor(address token_)
functions
deposits
viewfunction deposits(uint64) view returns (uint256 amount, uint64 depositId, uint64 timestamp, uint32 term, bool withdrawn, address user)
getDepositTerms
viewfunction getDepositTerms() view returns (uint32[])
getUserDeposits
viewfunction getUserDeposits(address user, uint256 limit, uint256 offset) view returns (tuple[])
nextDepositId
viewfunction nextDepositId() view returns (uint64)
owner
viewfunction owner() view returns (address)
paused
viewfunction paused() view returns (bool)
pendingOwner
viewfunction pendingOwner() view returns (address)
token
viewfunction token() view returns (address)
userDepositIds
viewfunction userDepositIds(address, uint256) view returns (uint64)
acceptOwnership
nonpayablefunction acceptOwnership()
deposit
nonpayablefunction deposit(uint256 amount, uint32 term)
pause
nonpayablefunction pause()
renounceOwnership
nonpayablefunction renounceOwnership()
setDepositTerms
nonpayablefunction setDepositTerms(uint32[] terms)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
unpause
nonpayablefunction unpause()
withdraw
nonpayablefunction withdraw(uint64 depositId)
events
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
OwnershipTransferStarted
event OwnershipTransferStarted(address indexed previousOwner, address indexed newOwner)
Paused
event Paused(address account)
Unpaused
event Unpaused(address account)
UserDepositedFixed
event UserDepositedFixed(uint64 depositId, address user, uint256 amount, uint32 term)
UserWithdrawnFixed
event UserWithdrawnFixed(uint64 depositId, address user, uint256 amount)
errors
AddressEmptyCode
error AddressEmptyCode(address target)
AddressInsufficientBalance
error AddressInsufficientBalance(address account)
AlreadyWithdrawn
error AlreadyWithdrawn()
CannotWithdraw
error CannotWithdraw()
EnforcedPause
error EnforcedPause()
ExpectedPause
error ExpectedPause()
FailedInnerCall
error FailedInnerCall()
InsufficientBalance
error InsufficientBalance()
InvalidDepositAmount
error InvalidDepositAmount()
InvalidDepositId
error InvalidDepositId()
InvalidDepositTerm
error InvalidDepositTerm()
InvalidUser
error InvalidUser()
OwnableInvalidOwner
error OwnableInvalidOwner(address owner)
OwnableUnauthorizedAccount
error OwnableUnauthorizedAccount(address account)
SafeERC20FailedOperation
error SafeERC20FailedOperation(address token)
creation bytecode
0x60a0604052600160045f6101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550604051806020016040528062278d0062ffffff1681525060059060016200005692919062000273565b5034801562000063575f80fd5b50604051620026b2380380620026b28339818101604052810190620000899190620003a8565b620000996200017360201b60201c565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036200010c575f6040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401620001039190620003e9565b60405180910390fd5b6200011d816200017a60201b60201c565b505f600160146101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250505062000404565b5f33905090565b60015f6101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055620001af81620001b260201b60201c565b50565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b828054828255905f5260205f209060070160089004810192821562000313579160200282015f5b83821115620002df57835183826101000a81548163ffffffff021916908362ffffff16021790555092602001926004016020816003010492830192600103026200029a565b8015620003115782816101000a81549063ffffffff0219169055600401602081600301049283019260010302620002df565b505b50905062000322919062000326565b5090565b5b808211156200033f575f815f90555060010162000327565b5090565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f620003728262000347565b9050919050565b620003848162000366565b81146200038f575f80fd5b50565b5f81519050620003a28162000379565b92915050565b5f60208284031215620003c057620003bf62000343565b5b5f620003cf8482850162000392565b91505092915050565b620003e38162000366565b82525050565b5f602082019050620003fe5f830184620003d8565b92915050565b6080516122876200042b5f395f818161063b01528181610cef0152610ff301526122875ff3fe608060405234801561000f575f80fd5b5060043610610109575f3560e01c80638070a4bd116100a05780638da5cb5b1161006f5780638da5cb5b14610248578063d623662814610266578063e30c397814610296578063f2fde38b146102b4578063fc0c546a146102d057610109565b80638070a4bd146101cf5780638456cb59146101ed5780638bb30963146101f75780638c32a2b11461021357610109565b80636cf6f524116100dc5780636cf6f52414610181578063715018a61461019f578063750f0acc146101a957806379ba5097146101c557610109565b80632b2dfd2c1461010d5780633f4ba83a146101295780634698b883146101335780635c975abb14610163575b5f80fd5b6101276004803603810190610122919061184c565b6102ee565b005b610131610685565b005b61014d600480360381019061014891906118e4565b610697565b60405161015a9190611abe565b60405180910390f35b61016b6109f6565b6040516101789190611aed565b60405180910390f35b610189610a0c565b6040516101969190611bae565b60405180910390f35b6101a7610a8d565b005b6101c360048036038101906101be9190611bf8565b610aa0565b005b6101cd610d38565b005b6101d7610dc6565b6040516101e49190611c32565b60405180910390f35b6101f5610ddf565b005b610211600480360381019061020c9190611d9b565b610df1565b005b61022d60048036038101906102289190611bf8565b610e13565b60405161023f96959493929190611e0f565b60405180910390f35b610250610eae565b60405161025d9190611e6e565b60405180910390f35b610280600480360381019061027b9190611e87565b610ed5565b60405161028d9190611c32565b60405180910390f35b61029e610f1d565b6040516102ab9190611e6e565b60405180910390f35b6102ce60048036038101906102c99190611ec5565b610f45565b005b6102d8610ff1565b6040516102e59190611f4b565b60405180910390f35b6102f6611015565b5f820361032f576040517ffe9ba5cd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61033881611056565b61036e576040517f35bfeea800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f60045f9054906101000a900467ffffffffffffffff169050600160045f8282829054906101000a900467ffffffffffffffff166103ac9190611f91565b92506101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055506040518060c001604052808481526020018267ffffffffffffffff1681526020014267ffffffffffffffff1681526020018363ffffffff1681526020015f1515815260200161041f6110dd565b73ffffffffffffffffffffffffffffffffffffffff1681525060035f8367ffffffffffffffff1667ffffffffffffffff1681526020019081526020015f205f820151815f01556020820151816001015f6101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060408201518160010160086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060608201518160010160106101000a81548163ffffffff021916908363ffffffff16021790555060808201518160010160146101000a81548160ff02191690831515021790555060a0820151816002015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555090505060025f61055d6110dd565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081908060018154018082558091505060019003905f5260205f2090600491828204019190066008029091909190916101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055507faf2b6edca0a77a8df97274e2319ffb40ce2042964fe9b36b852e93b0fb43de8e816106126110dd565b85856040516106249493929190611fcc565b60405180910390a16106806106376110dd565b30857f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166110e4909392919063ffffffff16565b505050565b61068d611166565b6106956111ed565b565b60605f60025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2080548060200260200160405190810160405280929190818152602001828054801561075257602002820191905f5260205f20905f905b82829054906101000a900467ffffffffffffffff1667ffffffffffffffff168152602001906008019060208260070104928301926001038202915080841161070d5790505b505050505090505f815190505f81036107c2575f67ffffffffffffffff81111561077f5761077e611c5f565b5b6040519080825280602002602001820160405280156107b857816020015b6107a56116a5565b81526020019060019003908161079d5790505b50925050506109ef565b5f8490505f8287876107d4919061200f565b116107ea5786866107e5919061200f565b6107ec565b825b90505f82826107fb9190612042565b67ffffffffffffffff81111561081457610813611c5f565b5b60405190808252806020026020018201604052801561084d57816020015b61083a6116a5565b8152602001906001900390816108325790505b5090505f8390505b828110156109e55760035f87838151811061087357610872612075565b5b602002602001015167ffffffffffffffff1667ffffffffffffffff1681526020019081526020015f206040518060c00160405290815f8201548152602001600182015f9054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff1681526020016001820160089054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff1681526020016001820160109054906101000a900463ffffffff1663ffffffff1663ffffffff1681526020016001820160149054906101000a900460ff16151515158152602001600282015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815250508285836109b69190612042565b815181106109c7576109c6612075565b5b602002602001018190525080806109dd906120a2565b915050610855565b5080955050505050505b9392505050565b5f600160149054906101000a900460ff16905090565b60606005805480602002602001604051908101604052809291908181526020018280548015610a8357602002820191905f5260205f20905f905b82829054906101000a900463ffffffff1663ffffffff1681526020019060040190602082600301049283019260010382029150808411610a465790505b5050505050905090565b610a95611166565b610a9e5f61124f565b565b5f60035f8367ffffffffffffffff1667ffffffffffffffff1681526020019081526020015f2090505f816001015f9054906101000a900467ffffffffffffffff1667ffffffffffffffff1603610b22576040517fa2ca05e100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060010160149054906101000a900460ff1615610b6b576040517f6507689f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b428160010160109054906101000a900463ffffffff1663ffffffff168260010160089054906101000a900467ffffffffffffffff16610baa9190611f91565b67ffffffffffffffff161115610bec576040517f23499aa100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610bf46110dd565b73ffffffffffffffffffffffffffffffffffffffff16816002015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c7b576040517ffd684c3b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f815f0154905060018260010160146101000a81548160ff0219169083151502179055507f2471f4f4321b198ddf113e696b06593002cabe43e94cf537b021a0ba95edd87883610cc96110dd565b83604051610cd9939291906120e9565b60405180910390a1610d33610cec6110dd565b827f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1661127f9092919063ffffffff16565b505050565b5f610d416110dd565b90508073ffffffffffffffffffffffffffffffffffffffff16610d62610f1d565b73ffffffffffffffffffffffffffffffffffffffff1614610dba57806040517f118cdaa7000000000000000000000000000000000000000000000000000000008152600401610db19190611e6e565b60405180910390fd5b610dc38161124f565b50565b60045f9054906101000a900467ffffffffffffffff1681565b610de7611166565b610def6112fe565b565b610df9611166565b8060059080519060200190610e0f929190611707565b5050565b6003602052805f5260405f205f91509050805f015490806001015f9054906101000a900467ffffffffffffffff16908060010160089054906101000a900467ffffffffffffffff16908060010160109054906101000a900463ffffffff16908060010160149054906101000a900460ff1690806002015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905086565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6002602052815f5260405f208181548110610eee575f80fd5b905f5260205f209060049182820401919006600802915091509054906101000a900467ffffffffffffffff1681565b5f60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610f4d611166565b8060015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16610fac610eae565b73ffffffffffffffffffffffffffffffffffffffff167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b7f000000000000000000000000000000000000000000000000000000000000000081565b61101d6109f6565b15611054576040517fd93c066500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b5f8060058054905090505f5b818110156110d2578363ffffffff166005828154811061108557611084612075565b5b905f5260205f2090600891828204019190066004029054906101000a900463ffffffff1663ffffffff16036110bf576001925050506110d8565b80806110ca906120a2565b915050611062565b505f9150505b919050565b5f33905090565b611160848573ffffffffffffffffffffffffffffffffffffffff166323b872dd8686866040516024016111199392919061211e565b604051602081830303815290604052915060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611360565b50505050565b61116e6110dd565b73ffffffffffffffffffffffffffffffffffffffff1661118c610eae565b73ffffffffffffffffffffffffffffffffffffffff16146111eb576111af6110dd565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016111e29190611e6e565b60405180910390fd5b565b6111f56113f5565b5f600160146101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6112386110dd565b6040516112459190611e6e565b60405180910390a1565b60015f6101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905561127c81611435565b50565b6112f9838473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb85856040516024016112b2929190612153565b604051602081830303815290604052915060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050611360565b505050565b611306611015565b60018060146101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586113496110dd565b6040516113569190611e6e565b60405180910390a1565b5f61138a828473ffffffffffffffffffffffffffffffffffffffff166114f690919063ffffffff16565b90505f8151141580156113ae5750808060200190518101906113ac91906121a4565b155b156113f057826040517f5274afe70000000000000000000000000000000000000000000000000000000081526004016113e79190611e6e565b60405180910390fd5b505050565b6113fd6109f6565b611433576040517f8dfc202b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b606061150383835f61150b565b905092915050565b60608147101561155257306040517fcd7860590000000000000000000000000000000000000000000000000000000081526004016115499190611e6e565b60405180910390fd5b5f808573ffffffffffffffffffffffffffffffffffffffff16848660405161157a919061223b565b5f6040518083038185875af1925050503d805f81146115b4576040519150601f19603f3d011682016040523d82523d5f602084013e6115b9565b606091505b50915091506115c98683836115d4565b925050509392505050565b6060826115e9576115e482611661565b611659565b5f825114801561160f57505f8473ffffffffffffffffffffffffffffffffffffffff163b145b1561165157836040517f9996b3150000000000000000000000000000000000000000000000000000000081526004016116489190611e6e565b60405180910390fd5b81905061165a565b5b9392505050565b5f815111156116735780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040518060c001604052805f81526020015f67ffffffffffffffff1681526020015f67ffffffffffffffff1681526020015f63ffffffff1681526020015f151581526020015f73ffffffffffffffffffffffffffffffffffffffff1681525090565b828054828255905f5260205f20906007016008900481019282156117a3579160200282015f5b8382111561177157835183826101000a81548163ffffffff021916908363ffffffff160217905550926020019260040160208160030104928301926001030261172d565b80156117a15782816101000a81549063ffffffff0219169055600401602081600301049283019260010302611771565b505b5090506117b091906117b4565b5090565b5b808211156117cb575f815f9055506001016117b5565b5090565b5f604051905090565b5f80fd5b5f80fd5b5f819050919050565b6117f2816117e0565b81146117fc575f80fd5b50565b5f8135905061180d816117e9565b92915050565b5f63ffffffff82169050919050565b61182b81611813565b8114611835575f80fd5b50565b5f8135905061184681611822565b92915050565b5f8060408385031215611862576118616117d8565b5b5f61186f858286016117ff565b925050602061188085828601611838565b9150509250929050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6118b38261188a565b9050919050565b6118c3816118a9565b81146118cd575f80fd5b50565b5f813590506118de816118ba565b92915050565b5f805f606084860312156118fb576118fa6117d8565b5b5f611908868287016118d0565b9350506020611919868287016117ff565b925050604061192a868287016117ff565b9150509250925092565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b611966816117e0565b82525050565b5f67ffffffffffffffff82169050919050565b6119888161196c565b82525050565b61199781611813565b82525050565b5f8115159050919050565b6119b18161199d565b82525050565b6119c0816118a9565b82525050565b60c082015f8201516119da5f85018261195d565b5060208201516119ed602085018261197f565b506040820151611a00604085018261197f565b506060820151611a13606085018261198e565b506080820151611a2660808501826119a8565b5060a0820151611a3960a08501826119b7565b50505050565b5f611a4a83836119c6565b60c08301905092915050565b5f602082019050919050565b5f611a6c82611934565b611a76818561193e565b9350611a818361194e565b805f5b83811015611ab1578151611a988882611a3f565b9750611aa383611a56565b925050600181019050611a84565b5085935050505092915050565b5f6020820190508181035f830152611ad68184611a62565b905092915050565b611ae78161199d565b82525050565b5f602082019050611b005f830184611ade565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f611b3a838361198e565b60208301905092915050565b5f602082019050919050565b5f611b5c82611b06565b611b668185611b10565b9350611b7183611b20565b805f5b83811015611ba1578151611b888882611b2f565b9750611b9383611b46565b925050600181019050611b74565b5085935050505092915050565b5f6020820190508181035f830152611bc68184611b52565b905092915050565b611bd78161196c565b8114611be1575f80fd5b50565b5f81359050611bf281611bce565b92915050565b5f60208284031215611c0d57611c0c6117d8565b5b5f611c1a84828501611be4565b91505092915050565b611c2c8161196c565b82525050565b5f602082019050611c455f830184611c23565b92915050565b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b611c9582611c4f565b810181811067ffffffffffffffff82111715611cb457611cb3611c5f565b5b80604052505050565b5f611cc66117cf565b9050611cd28282611c8c565b919050565b5f67ffffffffffffffff821115611cf157611cf0611c5f565b5b602082029050602081019050919050565b5f80fd5b5f611d18611d1384611cd7565b611cbd565b90508083825260208201905060208402830185811115611d3b57611d3a611d02565b5b835b81811015611d645780611d508882611838565b845260208401935050602081019050611d3d565b5050509392505050565b5f82601f830112611d8257611d81611c4b565b5b8135611d92848260208601611d06565b91505092915050565b5f60208284031215611db057611daf6117d8565b5b5f82013567ffffffffffffffff811115611dcd57611dcc6117dc565b5b611dd984828501611d6e565b91505092915050565b611deb816117e0565b82525050565b611dfa81611813565b82525050565b611e09816118a9565b82525050565b5f60c082019050611e225f830189611de2565b611e2f6020830188611c23565b611e3c6040830187611c23565b611e496060830186611df1565b611e566080830185611ade565b611e6360a0830184611e00565b979650505050505050565b5f602082019050611e815f830184611e00565b92915050565b5f8060408385031215611e9d57611e9c6117d8565b5b5f611eaa858286016118d0565b9250506020611ebb858286016117ff565b9150509250929050565b5f60208284031215611eda57611ed96117d8565b5b5f611ee7848285016118d0565b91505092915050565b5f819050919050565b5f611f13611f0e611f098461188a565b611ef0565b61188a565b9050919050565b5f611f2482611ef9565b9050919050565b5f611f3582611f1a565b9050919050565b611f4581611f2b565b82525050565b5f602082019050611f5e5f830184611f3c565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611f9b8261196c565b9150611fa68361196c565b9250828201905067ffffffffffffffff811115611fc657611fc5611f64565b5b92915050565b5f608082019050611fdf5f830187611c23565b611fec6020830186611e00565b611ff96040830185611de2565b6120066060830184611df1565b95945050505050565b5f612019826117e0565b9150612024836117e0565b925082820190508082111561203c5761203b611f64565b5b92915050565b5f61204c826117e0565b9150612057836117e0565b925082820390508181111561206f5761206e611f64565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f6120ac826117e0565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036120de576120dd611f64565b5b600182019050919050565b5f6060820190506120fc5f830186611c23565b6121096020830185611e00565b6121166040830184611de2565b949350505050565b5f6060820190506121315f830186611e00565b61213e6020830185611e00565b61214b6040830184611de2565b949350505050565b5f6040820190506121665f830185611e00565b6121736020830184611de2565b9392505050565b6121838161199d565b811461218d575f80fd5b50565b5f8151905061219e8161217a565b92915050565b5f602082840312156121b9576121b86117d8565b5b5f6121c684828501612190565b91505092915050565b5f81519050919050565b5f81905092915050565b5f5b838110156122005780820151818401526020810190506121e5565b5f8484015250505050565b5f612215826121cf565b61221f81856121d9565b935061222f8185602086016121e3565b80840191505092915050565b5f612246828461220b565b91508190509291505056fea26469706673582212209368c8658b8ea25abb6391694970d116b023ac87cb44121b0bc4b13cf4e0d2a364736f6c634300081400330000000000000000000000000e7779e698052f8fe56c415c3818fcf89de9ac6d