0 txs
3 calls
constructor
No constructor.
functions
getExecutionPrice
viewfunction getExecutionPrice(DataStore dataStore, tuple market, tuple prices, uint256 positionSizeInUsd, uint256 positionSizeInTokens, int256 sizeDeltaUsd, int256 pendingImpactAmount, bool isLong) view returns (tuple)
getSwapAmountOut
viewfunction getSwapAmountOut(DataStore dataStore, tuple market, tuple prices, address tokenIn, uint256 amountIn, address uiFeeReceiver) view returns (uint256, int256, tuple)
getSwapPriceImpact
viewfunction getSwapPriceImpact(DataStore dataStore, tuple market, address tokenIn, address tokenOut, uint256 amountIn, tuple tokenInPrice, tuple tokenOutPrice) view returns (int256 priceImpactUsdBeforeCap, int256 priceImpactAmount, int256 tokenInPriceImpactAmount)
events
No events.
errors
DisabledMarket
error DisabledMarket(address market)
EmptyMarket
error EmptyMarket()
InvalidSwapMarket
error InvalidSwapMarket(address market)
InvalidTokenIn
error InvalidTokenIn(address tokenIn, address market)
UnableToGetCachedTokenPrice
error UnableToGetCachedTokenPrice(address token, address market)
UnableToGetOppositeToken
error UnableToGetOppositeToken(address inputToken, address market)
creation bytecode
0x61284d610039600b82828239805160001a607314602c57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe730000000000000000000000000000000000000000301460806040526004361061004b5760003560e01c806381eba89e14610050578063da1d77b914610083578063dafa66bf146100e4575b600080fd5b61006361005e366004611d74565b610156565b604080519384526020840192909252908201526060015b60405180910390f35b610096610091366004611e8c565b6102df565b60405161007a9190600060c0820190508251825260208301516020830152604083015115156040830152606083015160608301526080830151608083015260a083015160a083015292915050565b6100f76100f2366004611f14565b6105d1565b604080519384526020808501939093528151848201529181015160608085019190915291810151608080850191909152918101516001600160a01b031660a0808501919091529181015160c0840152015160e08201526101000161007a565b60008060007308f96361d3d67e107ecf968bf0cf706f706ba7fa633b89b2366040518061012001604052808d6001600160a01b031681526020018c81526020018b6001600160a01b031681526020018a6001600160a01b031681526020016101bd896109e4565b81526020016101cb886109e4565b81526020016101eb6101dc8a6109e4565b6101e6908c611fb2565b610a0c565b81526020016101fc6101dc8a6109e4565b61020590611fc9565b815260016020909101526040516001600160e01b031960e084901b1681526102309190600401612018565b6040805180830381865af415801561024c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061027091906120ab565b50925060008313156102bd57600061028f8b8b600001518a8888610a7a565b909350905080156102b7576102b38b8b600001518b896102ae86610a0c565b610a7a565b5091505b506102d2565b6102ce8a8a600001518a8887610a7a565b5091505b9750975097945050505050565b6102e7611980565b6102ef6119b8565b80516001600160a01b038b1690526020810189905261031e61031086610b03565b604083810151602001510152565b604081810151015183151590526000808613908161033d57841561033f565b845b905061036381610350576000610354565b6000195b60408501516020015160a00152565b6080830180516020908101518b9052815181015181018a9052815160400151871515905290510151606001869052610399611980565b60008813156104315760405163610e3cb960e01b815273f718ae0025504577b18f8773e56986b6e29c819f9063610e3cb9906103db9087908f906004016124e8565b60a060405180830381865af41580156103f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061041c9190612530565b151560408601526020850152505081526105c1565b8a5160405163103b6c3760e31b815273f718ae0025504577b18f8773e56986b6e29c819f916381db61b89161046a91889160040161257f565b606060405180830381865af4158015610487573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104ab91906125a1565b151560408401526020830152815260808401516104ee906104ce90602001515190565b608086015160200151606001516040808801516020015101518e51610b16565b606082018190528151610500916125db565b60808201819052600013156105835760006105218e8e600001516000610b71565b905060006105446101e661053e8860400151602001516040015190565b84610b9d565b61054d90611fc9565b905080836080015112156105805761057383608001518261056e9190612603565b610bb6565b60a0840152608083018190525b50505b83515160208501515160808301516105a59291906105a08c611fc9565b610c08565b608082018190526105bb908e908e908e90610c51565b60808201525b9c9b505050505050505050505050565b6000806106166040518060c0016040528060008152602001600081526020016000815260200160006001600160a01b0316815260200160008152602001600081525090565b61061e611a56565b88604001516001600160a01b0316876001600160a01b03161415801561065a575088606001516001600160a01b0316876001600160a01b031614155b156106855788516040516353f8171160e01b815261067c918991600401612623565b60405180910390fd5b61068f8a8a610e47565b610699878a610e92565b6001600160a01b031681526106af878a8a610f01565b602082015280516106c1908a8a610f01565b81604001819052506000807308f96361d3d67e107ecf968bf0cf706f706ba7fa633b89b2366040518061012001604052808f6001600160a01b031681526020018e81526020018c6001600160a01b0316815260200186600001516001600160a01b0316815260200161073687602001516109e4565b815260200161074887604001516109e4565b815260200161076761075d88602001516109e4565b6101e6908e611fb2565b815260200161077c61075d88602001516109e4565b61078590611fc9565b815260016020909101526040516001600160e01b031960e084901b1681526107b09190600401612018565b6040805180830381865af41580156107cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107f091906120ab565b9150915060007308f96361d3d67e107ecf968bf0cf706f706ba7fa63b5f97bcd8e8e600001518c868d60006040518763ffffffff1660e01b815260040161083c9695949392919061263d565b60c060405180830381865af4158015610859573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061087d919061268d565b905060008084131561095d5781604001518560600181815250506108b08e8e600001518760000151886040015188610a7a565b610140870181905290915015610904576108dd8e8e600001518d88602001516102ae8a6101400151610a0c565b5061016086018190526108ef90610bb6565b85606001818151610900919061271f565b9052505b84604001516020015185602001516000015186606001516109259190611fb2565b61092f9190612748565b60a0860181905260c086015261094481610bb6565b8560a001818151610955919061271f565b9052506109ca565b6109728e8e600001518d886020015188610a7a565b50905061098161056e82611fc9565b8260400151610990919061275c565b606086018190526040860151602090810151908701515190916109b39190611fb2565b6109bd9190612748565b60a0860181905260c08601525b60a094909401519d939c509a509198505050505050505050565b60006002826000015183602001516109fc919061271f565b610a069190612748565b92915050565b60006001600160ff1b03821115610a765760405162461bcd60e51b815260206004820152602860248201527f53616665436173743a2076616c756520646f65736e27742066697420696e2061604482015267371034b73a191a9b60c11b606482015260840161067c565b5090565b6000806000806000851315610ae457610a968660200151610a0c565b610aa0908661276f565b91506000610ab26101e68b8b8b610f9b565b905080831315610ade576020870151610ace61056e8386612603565b610ad89190611fb2565b91508092505b50610af5565b610af2858760000151611015565b91505b909890975095505050505050565b600080821215610a765781600003610a06565b600080610b2885858860008912611089565b90506000808213610b4f57610b408460200151610a0c565b610b4a908361279d565b610b64565b8351610b5a90610a0c565b610b64908361279d565b925050505b949350505050565b6000806000610b8086866110d4565b9150915083610b8f5780610b91565b815b925050505b9392505050565b6000610b96838368327cb2734119d3b7a9601e1b6111e8565b600080821215610a765760405162461bcd60e51b815260206004820181905260248201527f53616665436173743a2076616c7565206d75737420626520706f736974697665604482015260640161067c565b600080831215610c19575081610b69565b6000610c2786866001610b71565b90506000610c386101e68584610b9d565b905080851315610c46578094505b509295945050505050565b6000808213610c61575080610b69565b610ca960405180610100016040528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b610cb78686600001516111f5565b808252845151610cc691611fb2565b60208201819052610cd684610bb6565b1115610cfa578060200151610cea84610bb6565b610cf4919061275c565b60e08201525b60e081015115610e3d57856001600160a01b031663bd02d0f5610d20876000015161126e565b6040518263ffffffff1660e01b8152600401610d3e91815260200190565b602060405180830381865afa158015610d5b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d7f91906127cd565b816040018181525050836020015160000151610da0878788604001516112f9565b610daa9190611fb2565b816060018181525050836040015160000151610dcb878788606001516112f9565b610dd59190611fb2565b6080820181905285516060830151610e0492899291610df4919061271f565b87516020015160408601516113a0565b60a0820181905260e08201511115610e3d57610e238160a00151610a0c565b610e308260200151610a0c565b610e3a91906125db565b92505b5090949350505050565b610e5182826114ec565b80606001516001600160a01b031681604001516001600160a01b031603610e8e5780516040516332e6f44d60e21b815261067c91906004016127e6565b5050565b600081604001516001600160a01b0316836001600160a01b031603610ebc57506060810151610a06565b81606001516001600160a01b0316836001600160a01b031603610ee457506040810151610a06565b8151604051637a0ca68160e01b815261067c918591600401612623565b610f09611ace565b82604001516001600160a01b0316846001600160a01b031603610f3157506020810151610b96565b82606001516001600160a01b0316846001600160a01b031603610f5957506040810151610b96565b82602001516001600160a01b0316846001600160a01b031603610f7e57508051610b96565b8251604051635f2394d160e11b815261067c918691600401612623565b6000836001600160a01b031663bd02d0f5610fb685856115ba565b6040518263ffffffff1660e01b8152600401610fd491815260200190565b602060405180830381865afa158015610ff1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b6991906127cd565b6000808312156110575761102882610a0c565b61103183610a0c565b61103b9085612603565b6110469060016125db565b611050919061276f565b9050610a06565b61106082610a0c565b600161106b84610a0c565b61107590866125db565b61107f9190612603565b610b96919061276f565b6000806110a061109887610b03565b86868661164e565b9050600086136110c1576110b381610a0c565b6110bc90611fc9565b6110ca565b6110ca81610a0c565b9695505050505050565b6000806000846001600160a01b031663bd02d0f56110f3866001611675565b6040518263ffffffff1660e01b815260040161111191815260200190565b602060405180830381865afa15801561112e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061115291906127cd565b90506000856001600160a01b031663bd02d0f5611170876000611675565b6040518263ffffffff1660e01b815260040161118e91815260200190565b602060405180830381865afa1580156111ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111cf91906127cd565b9050808211156111dd578091505b909590945092505050565b6000610b698484846116ef565b6000826001600160a01b031663bd02d0f561120f846117d9565b6040518263ffffffff1660e01b815260040161122d91815260200190565b602060405180830381865afa15801561124a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b9691906127cd565b60006040516020016112af906020808252818101527f4c454e545f504f534954494f4e5f494d504143545f504f4f4c5f414d4f554e54604082015260600190565b60408051601f198184030181528282528051602091820120908301526001600160a01b03841690820152606001604051602081830303815290604052805190602001209050919050565b60008061130e8460400151856060015161181a565b905080856001600160a01b031663bd02d0f561132e876000015187611849565b6040518263ffffffff1660e01b815260040161134c91815260200190565b602060405180830381865afa158015611369573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061138d91906127cd565b6113979190612748565b95945050505050565b600080866001600160a01b031663bd02d0f56113bb8861187a565b6040518263ffffffff1660e01b81526004016113d991815260200190565b602060405180830381865afa1580156113f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061141a91906127cd565b905060006114288683610b9d565b90506000886001600160a01b031663bd02d0f56114448a6118ba565b6040518263ffffffff1660e01b815260040161146291815260200190565b602060405180830381865afa15801561147f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114a391906127cd565b9050808211156114b1578091505b60006114bd8787611fb2565b9050828111156114d4576000945050505050611397565b6114de818461275c565b9a9950505050505050505050565b80516001600160a01b0316611514576040516302fde0d760e11b815260040160405180910390fd5b6000826001600160a01b0316637ae1cfca61153284600001516118f7565b6040518263ffffffff1660e01b815260040161155091815260200190565b602060405180830381865afa15801561156d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061159191906127fa565b905080156115b55781516040516309f8c93760e01b815261067c91906004016127e6565b505050565b60006040516020016115f79060208082526017908201527614d5d05417d253541050d517d413d3d317d05353d55395604a1b604082015260600190565b60408051601f198184030181528282528051602091820120908301526001600160a01b0380861691830191909152831660608201526080015b60405160208183030381529060405280519060200120905092915050565b6000811561166a57611663858585600161192f565b9050610b69565b6113978585856116ef565b60006040516020016116b5906020808252601a908201527926a0ac2fa827a9a4aa24a7a72fa4a6a820a1aa2fa320a1aa27a960311b604082015260600190565b60408051601f198184030181528282528051602091820120908301526001600160a01b038516908201528215156060820152608001611630565b60008080600019858709858702925082811083820303915050806000036117295783828161171f5761171f612732565b0492505050610b96565b8084116117705760405162461bcd60e51b81526020600482015260156024820152744d6174683a206d756c446976206f766572666c6f7760581b604482015260640161067c565b60008486880960026001871981018816978890046003810283188082028403028082028403028082028403028082028403028082028403029081029092039091026000889003889004909101858311909403939093029303949094049190911702949350505050565b60006040516020016112af906020808252601b908201527a1413d4d2551253d397d253541050d517d413d3d317d05353d55395602a1b604082015260600190565b6000816001600160a01b0316836001600160a01b03161461183c57600161183f565b60025b60ff169392505050565b60006040516020016115f7906020808252600b908201526a1413d3d317d05353d5539560aa1b604082015260600190565b60006040516020016112af906020808252601a908201527926a0ac2fa622a72220a12622afa4a6a820a1aa2fa320a1aa27a960311b604082015260600190565b60006040516020016112af9060208082526017908201527613505617d31153911050931157d253541050d517d554d1604a1b604082015260600190565b60006040516020016112af906020808252601290820152711254d7d3505492d15517d11254d05093115160721b604082015260600190565b60008061193d8686866116ef565b9050600183600281111561195357611953612121565b14801561197057506000848061196b5761196b612732565b868809115b15611397576110ca60018261271f565b6040518060c0016040528060008152602001600081526020016000151581526020016000815260200160008152602001600081525090565b604080516101c081018252600060e08201818152610100830182905261012083018290526101408301829052610160830182905261018083018290526101a08301829052825282516080810184528181526020808201839052818501839052606082019290925290820152908101611a2e611ae8565b815260006020820152604001611a42611bd2565b815260006020820181905260409091015290565b60405180610180016040528060006001600160a01b03168152602001611a7a611ace565b8152602001611a87611ace565b815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160001515815260200160008152602001600081525090565b604051806040016040528060008152602001600081525090565b60408051610180810190915260006080820181815260a0830182905260c0830182905260e08301829052610100830182905261012083018290526101408301919091526060610160830152815260208101611b9e604080516101808101909152806000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b8152604080516080810182526000808252602082810182905292820181905260608201529101908152602001606081525090565b6040805160c081019091526000606082018181526080830182905260a083019190915281908152602001611c52604051806101400160405280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b81526040805160208181019092526000815291015290565b6001600160a01b0381168114611c7f57600080fd5b50565b600060808284031215611c9457600080fd5b604051608081016001600160401b0381118282101715611cc457634e487b7160e01b600052604160045260246000fd5b6040529050808235611cd581611c6a565b81526020830135611ce581611c6a565b60208201526040830135611cf881611c6a565b60408201526060830135611d0b81611c6a565b6060919091015292915050565b600060408284031215611d2a57600080fd5b604080519081016001600160401b0381118282101715611d5a57634e487b7160e01b600052604160045260246000fd5b604052823581526020928301359281019290925250919050565b6000806000806000806000610180888a031215611d9057600080fd5b8735611d9b81611c6a565b9650611daa8960208a01611c82565b955060a0880135611dba81611c6a565b945060c0880135611dca81611c6a565b935060e08801359250611de1896101008a01611d18565b9150611df1896101408a01611d18565b905092959891949750929550565b600060c08284031215611e1157600080fd5b604051606081016001600160401b0381118282101715611e4157634e487b7160e01b600052604160045260246000fd5b604052905080611e518484611d18565b8152611e608460408501611d18565b6020820152611e728460808501611d18565b60408201525092915050565b8015158114611c7f57600080fd5b600080600080600080600080610200898b031215611ea957600080fd5b8835611eb481611c6a565b9750611ec38a60208b01611c82565b9650611ed28a60a08b01611dff565b9550610160890135945061018089013593506101a089013592506101c089013591506101e0890135611f0381611e7e565b809150509295985092959890939650565b6000806000806000806101c08789031215611f2e57600080fd5b8635611f3981611c6a565b9550611f488860208901611c82565b9450611f578860a08901611dff565b9350610160870135611f6881611c6a565b925061018087013591506101a0870135611f8181611c6a565b809150509295509295509295565b6001600160a01b03169052565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417610a0657610a06611f9c565b6000600160ff1b8201611fde57611fde611f9c565b5060000390565b80516001600160a01b03908116835260208083015182169084015260408083015182169084015260609182015116910152565b81516001600160a01b0316815260208083015161018083019161203d90840182611fe5565b50604083015161205060a0840182611f8f565b50606083015161206360c0840182611f8f565b50608083015160e083015260a083015161010083015260c083015161012083015260e08301516101408301526101008301516120a461016084018215159052565b5092915050565b600080604083850312156120be57600080fd5b825160208401519092506120d181611e7e565b809150509250929050565b600081518084526020840193506020830160005b828110156121175781516001600160a01b03168652602095860195909101906001016120f0565b5093949350505050565b634e487b7160e01b600052602160045260246000fd5b6009811061214757612147612121565b9052565b6003811061214757612147612121565b612166828251612137565b6020810151612178602084018261214b565b5060408101516040830152606081015160608301526080810151608083015260a081015160a083015260c081015160c083015260e081015160e08301526101008101516101008301526101208101516101208301526101408101516101408301526101608101516101608301525050565b600081518084526020840193506020830160005b828110156121175781518652602095860195909101906001016121fd565b805161024080845281516001600160a01b039081169185019190915260208201511661026084015260408101516000919061225a610280860182611f8f565b50606081015161226e6102a0860182611f8f565b5060808101516122826102c0860182611f8f565b5060a08101516122966102e0860182611f8f565b5060c08101516122aa610300860182611f8f565b5060e001516101006103208501526122c66103408501826120dc565b905060208301516122da602086018261215b565b50604083810151805115156101a0870152602081015115156101c08701529081015115156101e0860152606090810151151561020086015283015184820361022086015261139782826121e9565b805160018060a01b03815116835260018060a01b03602082015116602084015260018060a01b0360408201511660408401525060208101518051606084015260208101516080840152604081015160a0840152606081015160c0840152608081015160e084015260a081015161010084015260c081015161012084015260e08101516101408401526101008101516101608401526101208101516101808401525060408101516115b56101a08401825115159052565b6002811061214757612147612121565b805180516001600160a01b039081168452602080830151821690850152604080830151821690850152606080830151909116908401526080808201516000929161243a90860182611f8f565b5060a081015161244d60a0860182611f8f565b5060c0810151905061246260c0850182611f8f565b50602082015161247560e0850182611fe5565b5060408201516103a06101608501526124926103a085018261221b565b9050606083015161018085015260808301516124b26101a0860182612328565b5060a083015161036085015260c08301516124d16103808601826123de565b509392505050565b80518252602090810151910152565b60e0815260006124fb60e08301856123ee565b905061250b6020830184516124d9565b602083015161251d60608401826124d9565b5060408301516124d160a08401826124d9565b600080600080600060a0868803121561254857600080fd5b855160208701516040880151606089015160808a01519398509196509450925061257181611e7e565b809150509295509295909350565b60608152600061259260608301856123ee565b9050610b9660208301846124d9565b6000806000606084860312156125b657600080fd5b83516020850151604086015191945092506125d081611e7e565b809150509250925092565b80820182811260008312801582168215821617156125fb576125fb611f9c565b505092915050565b81810360008312801583831316838312821617156120a4576120a4611f9c565b6001600160a01b0392831681529116602082015260400190565b6001600160a01b03878116825286811660208301526040820186905284151560608301528316608082015260c081016006831061267c5761267c612121565b8260a0830152979650505050505050565b600060c08284031280156126a057600080fd5b5060405160009060c081016001600160401b03811182821017156126d257634e487b7160e01b83526041600452602483fd5b60409081528451825260208086015190830152848101519082015260608401516126fb81611c6a565b60608201526080848101519082015260a09384015193810193909352509092915050565b80820180821115610a0657610a06611f9c565b634e487b7160e01b600052601260045260246000fd5b60008261275757612757612732565b500490565b81810381811115610a0657610a06611f9c565b60008261277e5761277e612732565b600160ff1b82146000198414161561279857612798611f9c565b500590565b80820260008212600160ff1b841416156127b9576127b9611f9c565b8181058314821517610a0657610a06611f9c565b6000602082840312156127df57600080fd5b5051919050565b6001600160a01b0391909116815260200190565b60006020828403121561280c57600080fd5b8151610b9681611e7e56fea2646970667358221220ba2791a98b4ccb5555489807c27acb1d3a4f079186c904c16b757aaece3ce20264736f6c634300081d0033