9.6k txs
30.7k calls
constructor
constructor(address primeTokenAddress, uint256 maxLockTimestamp)
functions
deposits
viewfunction deposits(address, uint256) view returns (uint256 amount, uint256 endTimestamp, uint256 createdTimestamp, uint256 updatedTimestamp, bool isWithdrawn)
getDepositCount
viewfunction getDepositCount(address user) view returns (uint256)
getDeposits
viewfunction getDeposits(address user, uint256 fromIndex, uint256 toIndex) view returns (tuple[] depositList)
MAX_LOCK_DURATION
viewfunction MAX_LOCK_DURATION() view returns (uint256)
MAX_LOCK_TIMESTAMP
viewfunction MAX_LOCK_TIMESTAMP() view returns (uint256)
primeToken
viewfunction primeToken() view returns (address)
extendDeposit
nonpayablefunction extendDeposit(uint256 depositIndex, uint256 lockDuration)
handleInvokeEchelon
payablefunction handleInvokeEchelon(address from, address, address, uint256, uint256, uint256 primeAmount, bytes data) payable
withdrawDeposits
nonpayablefunction withdrawDeposits(uint256[] depositIndexes)
events
DepositCreated
event DepositCreated(address indexed user, uint256 depositIndex, uint256 amount, uint256 endTimestamp, uint256 createdTimestamp)
DepositExtended
event DepositExtended(address indexed user, uint256 depositIndex, uint256 endTimestamp, uint256 createdTimestamp, uint256 updatedTimestamp)
DepositsWithdrawn
event DepositsWithdrawn(address indexed user, uint256[] depositIndexes, uint256 totalAmount, uint256 updatedTimestamp)
errors
AddressEmptyCode
error AddressEmptyCode(address target)
AddressInsufficientBalance
error AddressInsufficientBalance(address account)
FailedInnerCall
error FailedInnerCall()
SafeERC20FailedOperation
error SafeERC20FailedOperation(address token)
creation bytecode
0x60a06040523480156200001157600080fd5b506040516200220b3803806200220b83398181016040528101906200003791906200012d565b81600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060808181525050505062000174565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620000ba826200008d565b9050919050565b620000cc81620000ad565b8114620000d857600080fd5b50565b600081519050620000ec81620000c1565b92915050565b6000819050919050565b6200010781620000f2565b81146200011357600080fd5b50565b6000815190506200012781620000fc565b92915050565b6000806040838503121562000147576200014662000088565b5b60006200015785828601620000db565b92505060206200016a8582860162000116565b9150509250929050565b608051612066620001a56000396000818161023701528181610d8601528181610dbd0152610e0901526120666000f3fe6080604052600436106100865760003560e01c80634f1bfc9e116100595780634f1bfc9e14610138578063b1adef7914610163578063d6d681771461018c578063e1584a2a146101cd578063fe5a451a1461020a57610086565b8063096d3b891461008b57806313fcaf54146100b6578063427a0a17146100f35780634ceb6dfe1461011c575b600080fd5b34801561009757600080fd5b506100a0610235565b6040516100ad9190611148565b60405180910390f35b3480156100c257600080fd5b506100dd60048036038101906100d891906111d5565b610259565b6040516100ea9190611148565b60405180910390f35b3480156100ff57600080fd5b5061011a60048036038101906101159190611267565b6102a4565b005b61013660048036038101906101319190611421565b610572565b005b34801561014457600080fd5b5061014d610801565b60405161015a9190611148565b60405180910390f35b34801561016f57600080fd5b5061018a600480360381019061018591906114df565b610809565b005b34801561019857600080fd5b506101b360048036038101906101ae919061151f565b6109d2565b6040516101c495949392919061157a565b60405180910390f35b3480156101d957600080fd5b506101f460048036038101906101ef91906115cd565b610a32565b6040516102019190611755565b60405180910390f35b34801561021657600080fd5b5061021f610c68565b60405161022c91906117d6565b60405180910390f35b7f000000000000000000000000000000000000000000000000000000000000000081565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490509050919050565b6000805b838390508110156104bd576000806102be610c8e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905084848381811061030f5761030e6117f1565b5b9050602002013510610356576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161034d9061187d565b60405180910390fd5b6000806000610363610c8e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208585848181106103b0576103af6117f1565b5b90506020020135815481106103c8576103c76117f1565b5b90600052602060002090600502019050806001015442101561041f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610416906118e9565b60405180910390fd5b8060040160009054906101000a900460ff1615610471576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104689061197b565b60405180910390fd5b60018160040160006101000a81548160ff0219169083151502179055504281600301819055508060000154836104a791906119ca565b92505080806104b5906119fe565b9150506102a8565b506105126104c9610c8e565b82600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c969092919063ffffffff16565b61051a610c8e565b73ffffffffffffffffffffffffffffffffffffffff167f895945fd510ab8b9524cccfcc9841758f68c28fc806b2138f32ebb5cbce58787848484426040516105659493929190611ac1565b60405180910390a2505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166105b3610c8e565b73ffffffffffffffffffffffffffffffffffffffff1614610609576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161060090611b4d565b60405180910390fd5b670de0b6b3a76400008211610653576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161064a90611bb9565b60405180910390fd5b6000818060200190518101906106699190611bee565b90506000610678824242610d15565b90506000808a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060a001604052808681526020018381526020014281526020014281526020016000151581525090806001815401808255809150506001900390600052602060002090600502016000909190919091506000820151816000015560208201518160010155604082015181600201556060820151816003015560808201518160040160006101000a81548160ff02191690831515021790555050508873ffffffffffffffffffffffffffffffffffffffff167f554f20505671494900b631b0e443e9e7a59743ec9889b05e28d8ac9ea158266b60016000808d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490506107db9190611c1b565b8684426040516107ee9493929190611c4f565b60405180910390a2505050505050505050565b6305a39a8081565b600080610814610c8e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490508210610893576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161088a9061187d565b60405180910390fd5b60008060006108a0610c8e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002083815481106108ec576108eb6117f1565b5b9060005260206000209060050201905080600101544210610942576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161093990611ce0565b60405180910390fd5b6109558282600101548360020154610d15565b816001018190555042816003018190555061096e610c8e565b73ffffffffffffffffffffffffffffffffffffffff167f431443e9d10bd3a688b8f8554f4c479262ae505022d7b37c3d6849f8ef7324f6848360010154846002015485600301546040516109c59493929190611c4f565b60405180910390a2505050565b600060205281600052604060002081815481106109ee57600080fd5b9060005260206000209060050201600091509150508060000154908060010154908060020154908060030154908060040160009054906101000a900460ff16905085565b606081831115610a77576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6e90611d4c565b60405180910390fd5b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490508210610afa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610af190611db8565b60405180910390fd5b600060018484610b0a9190611c1b565b610b1491906119ca565b90508067ffffffffffffffff811115610b3057610b2f6112f6565b5b604051908082528060200260200182016040528015610b6957816020015b610b566110fe565b815260200190600190039081610b4e5790505b50915060005b81811015610c5f576000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208186610bc191906119ca565b81548110610bd257610bd16117f1565b5b90600052602060002090600502016040518060a0016040529081600082015481526020016001820154815260200160028201548152602001600382015481526020016004820160009054906101000a900460ff161515151581525050838281518110610c4157610c406117f1565b5b60200260200101819052508080610c57906119fe565b915050610b6f565b50509392505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600033905090565b610d10838473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8585604051602401610cc9929190611de7565b604051602081830303815290604052915060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050610eb0565b505050565b6000621baf80841015610d5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5490611e82565b60405180910390fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8403610dfa577f00000000000000000000000000000000000000000000000000000000000000006305a39a8083610db591906119ca565b1115610de3577f00000000000000000000000000000000000000000000000000000000000000009050610ea9565b6305a39a8082610df391906119ca565b9050610ea9565b6305a39a80841180610e3657507f00000000000000000000000000000000000000000000000000000000000000008385610e3491906119ca565b115b80610e5a57506305a39a80848385610e4e9190611c1b565b610e5891906119ca565b115b15610e9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9190611f14565b60405180910390fd5b8383610ea691906119ca565b90505b9392505050565b6000610edb828473ffffffffffffffffffffffffffffffffffffffff16610f4790919063ffffffff16565b90506000815114158015610f00575080806020019051810190610efe9190611f60565b155b15610f4257826040517f5274afe7000000000000000000000000000000000000000000000000000000008152600401610f399190611f8d565b60405180910390fd5b505050565b6060610f5583836000610f5d565b905092915050565b606081471015610fa457306040517fcd786059000000000000000000000000000000000000000000000000000000008152600401610f9b9190611f8d565b60405180910390fd5b6000808573ffffffffffffffffffffffffffffffffffffffff168486604051610fcd9190612019565b60006040518083038185875af1925050503d806000811461100a576040519150601f19603f3d011682016040523d82523d6000602084013e61100f565b606091505b509150915061101f86838361102a565b925050509392505050565b60608261103f5761103a826110b9565b6110b1565b60008251148015611067575060008473ffffffffffffffffffffffffffffffffffffffff163b145b156110a957836040517f9996b3150000000000000000000000000000000000000000000000000000000081526004016110a09190611f8d565b60405180910390fd5b8190506110b2565b5b9392505050565b6000815111156110cc5780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040518060a00160405280600081526020016000815260200160008152602001600081526020016000151581525090565b6000819050919050565b6111428161112f565b82525050565b600060208201905061115d6000830184611139565b92915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006111a282611177565b9050919050565b6111b281611197565b81146111bd57600080fd5b50565b6000813590506111cf816111a9565b92915050565b6000602082840312156111eb576111ea61116d565b5b60006111f9848285016111c0565b91505092915050565b600080fd5b600080fd5b600080fd5b60008083601f84011261122757611226611202565b5b8235905067ffffffffffffffff81111561124457611243611207565b5b6020830191508360208202830111156112605761125f61120c565b5b9250929050565b6000806020838503121561127e5761127d61116d565b5b600083013567ffffffffffffffff81111561129c5761129b611172565b5b6112a885828601611211565b92509250509250929050565b6112bd8161112f565b81146112c857600080fd5b50565b6000813590506112da816112b4565b92915050565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61132e826112e5565b810181811067ffffffffffffffff8211171561134d5761134c6112f6565b5b80604052505050565b6000611360611163565b905061136c8282611325565b919050565b600067ffffffffffffffff82111561138c5761138b6112f6565b5b611395826112e5565b9050602081019050919050565b82818337600083830152505050565b60006113c46113bf84611371565b611356565b9050828152602081018484840111156113e0576113df6112e0565b5b6113eb8482856113a2565b509392505050565b600082601f83011261140857611407611202565b5b81356114188482602086016113b1565b91505092915050565b600080600080600080600060e0888a0312156114405761143f61116d565b5b600061144e8a828b016111c0565b975050602061145f8a828b016111c0565b96505060406114708a828b016111c0565b95505060606114818a828b016112cb565b94505060806114928a828b016112cb565b93505060a06114a38a828b016112cb565b92505060c088013567ffffffffffffffff8111156114c4576114c3611172565b5b6114d08a828b016113f3565b91505092959891949750929550565b600080604083850312156114f6576114f561116d565b5b6000611504858286016112cb565b9250506020611515858286016112cb565b9150509250929050565b600080604083850312156115365761153561116d565b5b6000611544858286016111c0565b9250506020611555858286016112cb565b9150509250929050565b60008115159050919050565b6115748161155f565b82525050565b600060a08201905061158f6000830188611139565b61159c6020830187611139565b6115a96040830186611139565b6115b66060830185611139565b6115c3608083018461156b565b9695505050505050565b6000806000606084860312156115e6576115e561116d565b5b60006115f4868287016111c0565b9350506020611605868287016112cb565b9250506040611616868287016112cb565b9150509250925092565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6116558161112f565b82525050565b6116648161155f565b82525050565b60a082016000820151611680600085018261164c565b506020820151611693602085018261164c565b5060408201516116a6604085018261164c565b5060608201516116b9606085018261164c565b5060808201516116cc608085018261165b565b50505050565b60006116de838361166a565b60a08301905092915050565b6000602082019050919050565b600061170282611620565b61170c818561162b565b93506117178361163c565b8060005b8381101561174857815161172f88826116d2565b975061173a836116ea565b92505060018101905061171b565b5085935050505092915050565b6000602082019050818103600083015261176f81846116f7565b905092915050565b6000819050919050565b600061179c61179761179284611177565b611777565b611177565b9050919050565b60006117ae82611781565b9050919050565b60006117c0826117a3565b9050919050565b6117d0816117b5565b82525050565b60006020820190506117eb60008301846117c7565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600082825260208201905092915050565b7f496e76616c6964206465706f73697420696e6465780000000000000000000000600082015250565b6000611867601583611820565b915061187282611831565b602082019050919050565b600060208201905081810360008301526118968161185a565b9050919050565b7f4465706f73697420686173206e6f7420656e6465642079657400000000000000600082015250565b60006118d3601983611820565b91506118de8261189d565b602082019050919050565b60006020820190508181036000830152611902816118c6565b9050919050565b7f4465706f7369742068617320616c7265616479206265656e207769746864726160008201527f776e000000000000000000000000000000000000000000000000000000000000602082015250565b6000611965602283611820565b915061197082611909565b604082019050919050565b6000602082019050818103600083015261199481611958565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006119d58261112f565b91506119e08361112f565b92508282019050808211156119f8576119f761199b565b5b92915050565b6000611a098261112f565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611a3b57611a3a61199b565b5b600182019050919050565b600082825260208201905092915050565b600080fd5b82818337505050565b6000611a718385611a46565b93507f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff831115611aa457611aa3611a57565b5b602083029250611ab5838584611a5c565b82840190509392505050565b60006060820190508181036000830152611adc818688611a65565b9050611aeb6020830185611139565b611af86040830184611139565b95945050505050565b7f496e76616c696420696e766f6b65720000000000000000000000000000000000600082015250565b6000611b37600f83611820565b9150611b4282611b01565b602082019050919050565b60006020820190508181036000830152611b6681611b2a565b9050919050565b7f416d6f756e74206d7573742062652067726561746572207468616e206f6e6500600082015250565b6000611ba3601f83611820565b9150611bae82611b6d565b602082019050919050565b60006020820190508181036000830152611bd281611b96565b9050919050565b600081519050611be8816112b4565b92915050565b600060208284031215611c0457611c0361116d565b5b6000611c1284828501611bd9565b91505092915050565b6000611c268261112f565b9150611c318361112f565b9250828203905081811115611c4957611c4861199b565b5b92915050565b6000608082019050611c646000830187611139565b611c716020830186611139565b611c7e6040830185611139565b611c8b6060830184611139565b95945050505050565b7f4465706f7369742068617320616c726561647920656e64656400000000000000600082015250565b6000611cca601983611820565b9150611cd582611c94565b602082019050919050565b60006020820190508181036000830152611cf981611cbd565b9050919050565b7f496e76616c696420696e64657820696e70757473000000000000000000000000600082015250565b6000611d36601483611820565b9150611d4182611d00565b602082019050919050565b60006020820190508181036000830152611d6581611d29565b9050919050565b7f496e76616c696420696e6465782072616e676500000000000000000000000000600082015250565b6000611da2601383611820565b9150611dad82611d6c565b602082019050919050565b60006020820190508181036000830152611dd181611d95565b9050919050565b611de181611197565b82525050565b6000604082019050611dfc6000830185611dd8565b611e096020830184611139565b9392505050565b7f4c6f636b206475726174696f6e206d757374206265206174206c65617374203260008201527f3120646179730000000000000000000000000000000000000000000000000000602082015250565b6000611e6c602683611820565b9150611e7782611e10565b604082019050919050565b60006020820190508181036000830152611e9b81611e5f565b9050919050565b7f546f74616c206c6f636b206475726174696f6e206d757374206265206c65737360008201527f207468616e203130393520646179730000000000000000000000000000000000602082015250565b6000611efe602f83611820565b9150611f0982611ea2565b604082019050919050565b60006020820190508181036000830152611f2d81611ef1565b9050919050565b611f3d8161155f565b8114611f4857600080fd5b50565b600081519050611f5a81611f34565b92915050565b600060208284031215611f7657611f7561116d565b5b6000611f8484828501611f4b565b91505092915050565b6000602082019050611fa26000830184611dd8565b92915050565b600081519050919050565b600081905092915050565b60005b83811015611fdc578082015181840152602081019050611fc1565b60008484015250505050565b6000611ff382611fa8565b611ffd8185611fb3565b935061200d818560208601611fbe565b80840191505092915050565b60006120258284611fe8565b91508190509291505056fea2646970667358221220b5f009e68c832ab8dc295790cf3640911c34ffbe53f98173a4e63f51e9e6d6b464736f6c63430008140033000000000000000000000000b23d80f5fefcddaa212212f028021b41ded428cf000000000000000000000000000000000000000000000000000000006c169b00