0 txs
2.9k calls
constructor
No constructor.
functions
calculateFilledAmount
viewfunction calculateFilledAmount(uint8 _orderBookId, ProtocolTypes.Side _side, uint256 _amount, uint256 _unitPrice) view returns (uint256 lastUnitPrice, uint256 filledAmount, uint256 filledAmountInFV, uint256 orderFeeInFV, uint256 placedAmount)
calculateFilledAmountFromFV
viewfunction calculateFilledAmountFromFV(uint8 _orderBookId, ProtocolTypes.Side _side, uint256 _amountInFV) view returns (uint256 lastUnitPrice, uint256 filledAmount, uint256 filledAmountInFV, uint256 orderFeeInFV)
calculateFutureValueWithFee
viewfunction calculateFutureValueWithFee(uint256 _futureValue, ProtocolTypes.Side _side, uint256 _maturity) view returns (uint256 futureValueWithFee)
calculateOrderFeeAmount
viewfunction calculateOrderFeeAmount(uint256 _maturity, uint256 _amount) view returns (uint256 orderFeeAmount)
getBorrowOrderIds
viewfunction getBorrowOrderIds(uint8 _orderBookId, address _user) view returns (uint48[] activeOrderIds, uint48[] inActiveOrderIds)
getLendOrderIds
viewfunction getLendOrderIds(uint8 _orderBookId, address _user) view returns (uint48[] activeOrderIds, uint48[] inActiveOrderIds)
getOrder
viewfunction getOrder(uint8 _orderBookId, uint48 _orderId) view returns (ProtocolTypes.Side side, uint256 unitPrice, uint256 maturity, address maker, uint256 amount, uint256 timestamp, bool isPreOrder)
getTotalAmountFromBorrowOrders
viewfunction getTotalAmountFromBorrowOrders(uint8 _orderBookId, address _user, uint256 _minUnitPrice) view returns (uint256 activeAmount, uint256 inactiveAmount, uint256 inactiveFutureValue, uint256 maturity)
getTotalAmountFromLendOrders
viewfunction getTotalAmountFromLendOrders(uint8 _orderBookId, address _user) view returns (uint256 activeAmount, uint256 inactiveAmount, uint256 inactiveFutureValue, uint256 maturity)
events
No events.
errors
No errors.
creation bytecode
0x61211c61003a600b82828239805160001a60731461002d57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100b35760003560e01c80635fee0bba1161007b5780635fee0bba146101875780637ce51861146101a8578063c022097a146101bb578063c8707723146101ce578063de9f5fed146101fc578063ff5cce971461022257600080fd5b806313a4451c146100b8578063260b2382146100f05780633d0157ef146101115780634a864e22146101395780634c60afc814610174575b600080fd5b6100cb6100c6366004611d51565b610235565b6040805194855260208501939093529183015260608201526080015b60405180910390f35b6101036100fe366004611d93565b61037e565b6040519081526020016100e7565b61012461011f366004611dde565b610451565b604080519283526020830191909152016100e7565b61014c610147366004611e01565b6104e6565b604080519586526020860194909452928401919091526060830152608082015260a0016100e7565b6100cb610182366004611e43565b610578565b61019a610195366004611d51565b610687565b6040516100e7929190611eb2565b6100cb6101b6366004611ed7565b6106a8565b6101036101c9366004611f03565b61072a565b6101e16101dc366004611dde565b61077e565b604080519384526020840192909252908201526060016100e7565b61020f61020a366004611f25565b610810565b6040516100e79796959493929190611f65565b61019a610230366004611d51565b610910565b600080600080600061024687610926565b9050600080610255838961094b565b6001600160a01b038a166000908152600886016020526040812054965091935091505b82518110156103175760006102af84838151811061029857610298611fc0565b602002602001015186610be690919063ffffffff16565b905060006102fd82602001518685815181106102cd576102cd611fc0565b602002602001015188600b0160008a600001548152602001908152602001600020610c819092919063ffffffff16565b915061030b9050818b611fec565b99505050600101610278565b5060005b81518110156103715760008061034a8685858151811061033d5761033d611fc0565b6020026020010151610451565b9092509050610359828a611fec565b98506103658189611fec565b9750505060010161031b565b5050505092959194509250565b600081421061038e57508261044a565b600061039a4284611fff565b905060018460018111156103b0576103b0611f4f565b036104115761040a816103c1610d01565b600201546103cf9190612012565b6103df6127106301e13380612012565b6103e99190611fec565b6127106103fa6301e1338089612012565b6104049190612012565b90610d2f565b9150610448565b6104458161041d610d01565b6002015461042b9190612012565b61043b6127106301e13380612012565b6103e99190611fff565b91505b505b9392505050565b6000808061045f8585610be6565b6020808201516040808401516000908152600b8a01909352822092935090916104889187610c81565b835160408086015160208088015165ffffffffffff8c166000908152600a8e019092529281205494965094506104c39390919060ff16610da0565b90508194506104da81612710846104049190612012565b93505050509250929050565b6000806000806000806104f88a610926565b9050600080600061051b8c8b61050c610d01565b60030154879291906001610e71565b50925092509250821561056057610534848d8d85610f73565b919a50985096508061054d5761054a888c611fff565b94505b8354610559908861072a565b9550610569565b80610569578a94505b50505050945094509450945094565b600080600080600061058988610926565b9050600080610598838a610ff8565b6001600160a01b038b166000908152600886016020526040812054965091935091505b825181101561062c5760008060006105ec878786815181106105df576105df611fc0565b602002602001015161077e565b9250925092508b81101561060f5761060a6127106104048e85612012565b610611565b825b61061b908c611fec565b9a5050600190920191506105bb9050565b5060005b815181101561067a57600080610652868585815181106105df576105df611fc0565b509092509050610662828a611fec565b985061066e8189611fec565b97505050600101610630565b5050505093509350935093565b60608061069d8361069786610926565b9061094b565b909590945092505050565b60008060008060006106b988610926565b90506000806106db8960006106cc610d01565b60030154869291906001610e71565b505091509150811561071e5760006106f8898b866000015461037e565b9050610706848b8385611285565b8654929a50909850965061071a908761072a565b9450505b50505093509350935093565b600082421061073b57506000610778565b60006107474285611fff565b905061077461075c6127106301e13380612012565b8483610766610d01565b600201546103fa9190612012565b9150505b92915050565b600080808061078d8686610be6565b6020808201516040808401516000908152600c8b01909352822092935090916107b69188610c81565b835160408086015160208088015165ffffffffffff8d166000908152600a8f01909252929020549395506107ef9450919260ff16610da0565b9094509150836108058361040461271084612012565b935050509250925092565b6000806000806000806000806108258a610926565b90506000610833828b610be6565b905060008151600181111561084a5761084a611f4f565b0361087e576020808201516040808401516000908152600b8601909352909120610874918c610c81565b90965094506108a9565b6020808201516040808401516000908152600c86019093529091206108a3918c610c81565b90965094505b6001600160a01b03861615610902578051604080830151606084015165ffffffffffff8e166000908152600a870160209081529390205492850151939c50909950955060ff1693506108ff908a90899086610da0565b97505b505092959891949750929550565b60608061069d8361092086610926565b90610ff8565b6000610930610d01565b60ff9092166000908152600492909201602052506040902090565b6001600160a01b0381166000908152600883016020908152604080832054600686018352818420805483518186028101860190945280845260609586959094859493428511159386938301828280156109f357602002820191906000526020600020906000905b82829054906101000a900465ffffffffffff1665ffffffffffff16815260200190600601906020826005010492830192600103820291508084116109b25790505b5050505050905060008151905082610a0b5780610a0e565b60005b67ffffffffffffffff811115610a2657610a26612029565b604051908082528060200260200182016040528015610a4f578160200160208202803683370190505b5097508067ffffffffffffffff811115610a6b57610a6b612029565b604051908082528060200260200182016040528015610a94578160200160208202803683370190505b50965060005b81811015610bd8576000838281518110610ab657610ab6611fc0565b602002602001015190506000610af08d60090160008465ffffffffffff1665ffffffffffff168152602001908152602001600020546112f3565b5050915050610b1e81838f600b0160008b81526020019081526020016000206113399092919063ffffffff16565b610b755760019790970196818a610b358b86611fff565b81518110610b4557610b45611fc0565b602002602001019065ffffffffffff16908165ffffffffffff168152505085610b705760018b51038b525b610bc3565b60018901985085610bbb57818b610b8c8a86611fff565b81518110610b9c57610b9c611fc0565b602002602001019065ffffffffffff16908165ffffffffffff16815250505b60018a51038a525b50508080610bd09061203f565b915050610a9a565b505050505050509250929050565b610c12604080516080810190915280600081526020016000815260200160008152602001600081525090565b65ffffffffffff82166000908152600984016020526040812054819081908190610c3b906112f3565b93509350935093506040518060800160405280856001811115610c6057610c60611f4f565b81526020018481526020018381526020018281525094505050505092915050565b600091825260019283016020908152604080842065ffffffffffff9384168552600601825292839020835160a08101855281548085168252600160301b8104851693820193909352600160601b90920490921692810192909252918201546001600160a01b03166060820181905260029092015460809091018190529091565b60008061077860017ffc2836757f9146445fc75bc3c897a210ec004e4ee60fc8627ef5cbf2842b3d0a611fff565b6000808211610d3d57600080fd5b6005610d498385612058565b610d5490600a612012565b83610d6086600a612012565b610d6a9190612058565b610d749190611fff565b1015610d8b57610d848284612058565b9050610778565b610d958284612058565b610d84906001611fec565b600081610dae575081610e69565b6000610db8610d01565b6006016000868152602001908152602001600020604051806060016040529081600082015481526020016001820154815260200160028201548152505090508060000151600014158015610e5757506001866001811115610e1b57610e1b611f4f565b148015610e2c575080604001518411155b80610e5757506000866001811115610e4657610e46611f4f565b148015610e57575080602001518410155b15610e6457519050610e69565b839150505b949350505050565b60008080808080896001811115610e8a57610e8a611f4f565b1490506000808215610ec5578b546000908152600c8d0160205260409020610eb190611357565b9050610ebe8c8a8a61139e565b9150610ef0565b8b546000908152600b8d0160205260409020610ee090611414565b9050610eed8c8a8a611456565b91505b8015159350891580610f2f5750838015610f0957508115155b8015610f2f5750828015610f1c5750818a115b80610f2f575082158015610f2f5750818a105b15610f405781955060019450610f48565b899550600094505b8315610f645782610f5c5785811015610f61565b858111155b96505b50505095509550955095915050565b600080600084600003610f8e57506000915081905080610fee565b6000866001811115610fa257610fa2611f4f565b03610fd05786546000908152600c880160205260408120610fc5918790876114bb565b925092509250610fee565b86546000908152600b880160205260408120610fc5918790876114e8565b9450945094915050565b6001600160a01b0381166000908152600883016020908152604080832054600786018352818420805483518186028101860190945280845260609586959094859493428511159386938301828280156110a057602002820191906000526020600020906000905b82829054906101000a900465ffffffffffff1665ffffffffffff168152602001906006019060208260050104928301926001038202915080841161105f5790505b50505050509050600081519050826110b857806110bb565b60005b67ffffffffffffffff8111156110d3576110d3612029565b6040519080825280602002602001820160405280156110fc578160200160208202803683370190505b5097508067ffffffffffffffff81111561111857611118612029565b604051908082528060200260200182016040528015611141578160200160208202803683370190505b50965060005b81811015610bd857600083828151811061116357611163611fc0565b60200260200101519050600061119d8d60090160008465ffffffffffff1665ffffffffffff168152602001908152602001600020546112f3565b50509150506111cb81838f600c0160008b81526020019081526020016000206113399092919063ffffffff16565b6112225760019790970196818a6111e28b86611fff565b815181106111f2576111f2611fc0565b602002602001019065ffffffffffff16908165ffffffffffff16815250508561121d5760018b51038b525b611270565b6001890198508561126857818b6112398a86611fff565b8151811061124957611249611fc0565b602002602001019065ffffffffffff16908165ffffffffffff16815250505b60018a51038a525b5050808061127d9061203f565b915050611147565b6000806000846000036112a057506000915081905080610fee565b60008660018111156112b4576112b4611f4f565b036112d65786546000908152600c880160205260408120610fc59187876114bb565b86546000908152600b880160205260408120610fc59187876114e8565b6000806000808460ff16600181111561130e5761130e611f4f565b9561ffff600887901c169567ffffffffffffffff601882901c8116965060589190911c169350915050565b6000611346848484611502565b8015610e695750610e698484611637565b80548061136657506000919050565b5b600081815260018084016020526040909120015415611399576000908152600180830160205260409091200154611367565b919050565b6000806113ad856003856116c8565b90506113d66127106113c0866002612012565b6113cc90612710611fec565b6104049084612012565b91506127108211806113e6575080155b156113f5576127109150610448565b6114016102bc82611fec565b821015610448576104456102bc82611fec565b80548061142357506000919050565b5b600081815260018301602052604090206002015415611399576000908152600182016020526040902060020154611424565b600080611465856005856116c8565b90506114776127106113cc8682611fff565b9150811580611484575080155b80611490575060c88111155b1561149e5760019150610448565b6114a960c883611fec565b8110156104485761044560c882611fff565b60008060006114d5878787876114d08c611357565b611804565b50949c919b509950975050505050505050565b60008060006114d5878787876114fd8c611414565b61192f565b600082815260018085016020908152604080842065ffffffffffff808716808752600683018552838720845160a0810186528154808516808352600160301b8204861698830198909852600160601b900490931694830194909452948301546001600160a01b031660608201526002909201546080830152859390921461158f576000935050505061044a565b5b604081015165ffffffffffff16156116185760409081015165ffffffffffff808216600090815260068501602090815290849020845160a08101865281548085168252600160301b8104851693820193909352600160601b9092049092169381019390935260018101546001600160a01b031660608401526002015460808301529250611590565b5060030154610100900465ffffffffffff908116911614949350505050565b8154600090820361164a57506001610778565b815b6000818152600185016020526040902054156116be57600081815260018086016020526040808320548084529220908101548314801590611691575082816002015414155b156116a25760009350505050610778565b855482036116b65760019350505050610778565b50905061164c565b5060009392505050565b6000806116eb85600301600d9054906101000a90046001600160501b0316611a25565b8051600387015491925090600090819065ffffffffffff600160301b90910416421415806117165750855b801561172d57506003880154600160601b900460ff165b156117605761174c88600501546127108a600401546104049190612012565b9150600190508661175c8161207a565b9750505b60005b878110156117de578381101580611793575084818151811061178757611787611fc0565b60200260200101516000145b6117de578481815181106117a9576117a9611fc0565b6020026020010151836117bc9190611fec565b9250816117c88161203f565b92505080806117d69061203f565b915050611763565b50600081116117ee5760006117f8565b6117f88282610d2f565b98975050505050505050565b60008181808080805b8a84108061181957508a155b801561182c57508983108061182c575089155b801561183757508515155b801561184b5750888611158061184b575088155b156118fa57600086815260018d016020526040902060050154959650869594506118758686611b35565b61187f9084611fec565b925061188b8585611fec565b93508a8411801561189b57508a15155b156118bd576118aa8b85611fff565b91506118b68683611b35565b90506118e9565b89831180156118cb57508915155b156118e9576118da8a84611fff565b90506118e68682611b47565b91505b6118f38c87611b59565b955061180d565b811561190d5761190a8285611fff565b93505b80156119205761191d8184611fff565b92505b959b949a509550955095509550565b60008181808080805b8a84108061194457508a155b8015611957575089831080611957575089155b801561196257508515155b801561197657508886101580611976575088155b156118fa57600086815260018d016020526040902060050154959650869594506119a08686611b35565b6119aa9084611fec565b92506119b68585611fec565b93508a841180156119c657508a15155b156119e8576119d58b85611fff565b91506119e18683611b35565b9050611a14565b89831180156119f657508915155b15611a1457611a058a84611fff565b9050611a118682611b47565b91505b611a1e8c87611c0b565b9550611938565b60408051600580825260c082019092526060916020820160a0803683370190505090508161ffff1681600081518110611a6057611a60611fc0565b6020026020010181815250506010826001600160501b0316901c61ffff1681600181518110611a9157611a91611fc0565b6020026020010181815250506020826001600160501b0316901c61ffff1681600281518110611ac257611ac2611fc0565b6020026020010181815250506030826001600160501b0316901c61ffff1681600381518110611af357611af3611fc0565b6020026020010181815250506040826001600160501b0316901c61ffff1681600481518110611b2457611b24611fc0565b602002602001018181525050919050565b600061044a8361040461271085612012565b600061044a6127106104048585612012565b600081611b815760405162461bcd60e51b8152600401611b7890612091565b60405180910390fd5b600082815260018401602052604090206002015415611bb9576000828152600184016020526040902060020154610d84908490611cb4565b5060008181526001830160205260409020545b8015801590611bed5750600081815260018401602052604090206002015482145b15610778576000818152600184016020526040902054909150611bcc565b600081611c2a5760405162461bcd60e51b8152600401611b7890612091565b600082815260018085016020526040909120015415611c62576000828152600180850160205260409091200154610d84908490611cf2565b5060008181526001830160205260409020545b8015801590611c965750600081815260018085016020526040909120015482145b15610778576000818152600184016020526040902054909150611c75565b60005b600082815260018085016020526040909120015415611cec576000918252600180840160205260409092209091015490611cb7565b50919050565b60005b600082815260018401602052604090206002015415611cec5760009182526001830160205260409091206002015490611cf5565b803560ff8116811461139957600080fd5b80356001600160a01b038116811461139957600080fd5b60008060408385031215611d6457600080fd5b611d6d83611d29565b9150611d7b60208401611d3a565b90509250929050565b80356002811061139957600080fd5b600080600060608486031215611da857600080fd5b83359250611db860208501611d84565b9150604084013590509250925092565b803565ffffffffffff8116811461139957600080fd5b60008060408385031215611df157600080fd5b82359150611d7b60208401611dc8565b60008060008060808587031215611e1757600080fd5b611e2085611d29565b9350611e2e60208601611d84565b93969395505050506040820135916060013590565b600080600060608486031215611e5857600080fd5b611e6184611d29565b9250611db860208501611d3a565b600081518084526020808501945080840160005b83811015611ea757815165ffffffffffff1687529582019590820190600101611e83565b509495945050505050565b604081526000611ec56040830185611e6f565b82810360208401526104458185611e6f565b600080600060608486031215611eec57600080fd5b611ef584611d29565b9250611db860208501611d84565b60008060408385031215611f1657600080fd5b50508035926020909101359150565b60008060408385031215611f3857600080fd5b611f4183611d29565b9150611d7b60208401611dc8565b634e487b7160e01b600052602160045260246000fd5b60e0810160028910611f8757634e487b7160e01b600052602160045260246000fd5b978152602081019690965260408601949094526001600160a01b03929092166060850152608084015260a0830152151560c09091015290565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b8082018082111561077857610778611fd6565b8181038181111561077857610778611fd6565b808202811582820484141761077857610778611fd6565b634e487b7160e01b600052604160045260246000fd5b60006001820161205157612051611fd6565b5060010190565b60008261207557634e487b7160e01b600052601260045260246000fd5b500490565b60008161208957612089611fd6565b506000190190565b60208082526035908201527f4f7264657253746174697374696373547265654c69623a205374617274696e676040820152742076616c75652063616e6e6f74206265207a65726f60581b60608201526080019056fea2646970667358221220e311d6b75b1f4ec7777dccbe56e4e2d05dc2e3943ed201d4a31f8c699836d4b564736f6c63430008130033