avantis-trader-sdk 0.8.10__py3-none-any.whl → 0.8.12__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- avantis_trader_sdk/__init__.py +1 -1
- avantis_trader_sdk/abis/Multicall.sol/Multicall.json +3 -1
- avantis_trader_sdk/config.py +1 -1
- avantis_trader_sdk/rpc/pairs_cache.py +33 -1
- avantis_trader_sdk/rpc/trade.py +5 -1
- avantis_trader_sdk/rpc/trading_parameters.py +2 -5
- avantis_trader_sdk/types.py +1 -0
- {avantis_trader_sdk-0.8.10.dist-info → avantis_trader_sdk-0.8.12.dist-info}/METADATA +1 -1
- {avantis_trader_sdk-0.8.10.dist-info → avantis_trader_sdk-0.8.12.dist-info}/RECORD +11 -11
- {avantis_trader_sdk-0.8.10.dist-info → avantis_trader_sdk-0.8.12.dist-info}/WHEEL +0 -0
- {avantis_trader_sdk-0.8.10.dist-info → avantis_trader_sdk-0.8.12.dist-info}/top_level.txt +0 -0
|
@@ -1 +1,3 @@
|
|
|
1
|
-
{"abi":[{"type":"constructor","inputs":[{"name":"_storage","type":"address","internalType":"address"},{"name":"_pairInfos","type":"address","internalType":"address"},{"name":"_pairsStorage","type":"address","internalType":"address"},{"name":"_trading","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"aggregate","inputs":[{"name":"calls","type":"tuple[]","internalType":"struct Multicall3.Call[]","components":[{"name":"target","type":"address","internalType":"address"},{"name":"callData","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"blockNumber","type":"uint256","internalType":"uint256"},{"name":"returnData","type":"bytes[]","internalType":"bytes[]"}],"stateMutability":"payable"},{"type":"function","name":"aggregate3","inputs":[{"name":"calls","type":"tuple[]","internalType":"struct Multicall3.Call3[]","components":[{"name":"target","type":"address","internalType":"address"},{"name":"allowFailure","type":"bool","internalType":"bool"},{"name":"callData","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"returnData","type":"tuple[]","internalType":"struct Multicall3.Result[]","components":[{"name":"success","type":"bool","internalType":"bool"},{"name":"returnData","type":"bytes","internalType":"bytes"}]}],"stateMutability":"payable"},{"type":"function","name":"aggregate3Value","inputs":[{"name":"calls","type":"tuple[]","internalType":"struct Multicall3.Call3Value[]","components":[{"name":"target","type":"address","internalType":"address"},{"name":"allowFailure","type":"bool","internalType":"bool"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"callData","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"returnData","type":"tuple[]","internalType":"struct Multicall3.Result[]","components":[{"name":"success","type":"bool","internalType":"bool"},{"name":"returnData","type":"bytes","internalType":"bytes"}]}],"stateMutability":"payable"},{"type":"function","name":"blockAndAggregate","inputs":[{"name":"calls","type":"tuple[]","internalType":"struct Multicall3.Call[]","components":[{"name":"target","type":"address","internalType":"address"},{"name":"callData","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"blockNumber","type":"uint256","internalType":"uint256"},{"name":"blockHash","type":"bytes32","internalType":"bytes32"},{"name":"returnData","type":"tuple[]","internalType":"struct Multicall3.Result[]","components":[{"name":"success","type":"bool","internalType":"bool"},{"name":"returnData","type":"bytes","internalType":"bytes"}]}],"stateMutability":"payable"},{"type":"function","name":"getBasefee","inputs":[],"outputs":[{"name":"basefee","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getBlockHash","inputs":[{"name":"blockNumber","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"blockHash","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getBlockNumber","inputs":[],"outputs":[{"name":"blockNumber","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getChainId","inputs":[],"outputs":[{"name":"chainid","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getCurrentBlockCoinbase","inputs":[],"outputs":[{"name":"coinbase","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getCurrentBlockDifficulty","inputs":[],"outputs":[{"name":"difficulty","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getCurrentBlockGasLimit","inputs":[],"outputs":[{"name":"gaslimit","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getCurrentBlockTimestamp","inputs":[],"outputs":[{"name":"timestamp","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getEthBalance","inputs":[{"name":"addr","type":"address","internalType":"address"}],"outputs":[{"name":"balance","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getFirstEmptyTradeIndexes","inputs":[{"name":"userAddress","type":"address","internalType":"address"}],"outputs":[{"name":"firstEmptyTradeIndexes","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"getLastBlockHash","inputs":[],"outputs":[{"name":"blockHash","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getLongShortRatios","inputs":[],"outputs":[{"name":"longRatio","type":"uint256[]","internalType":"uint256[]"},{"name":"shortRatio","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"getMargins","inputs":[],"outputs":[{"name":"rolloverFeePerBlockP","type":"uint256[]","internalType":"uint256[]"},{"name":"rolloverFeePerBlockLong","type":"uint256[]","internalType":"uint256[]"},{"name":"rolloverFeePerBlockShort","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"getOpenLimitOrdersCounts","inputs":[{"name":"userAddress","type":"address","internalType":"address"}],"outputs":[{"name":"openLimitOrdersCounts","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"getPositions","inputs":[{"name":"userAddress","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"tuple[]","internalType":"struct IMulticall.AggregatedTrade[]","components":[{"name":"trade","type":"tuple","internalType":"struct ITradingStorage.Trade","components":[{"name":"trader","type":"address","internalType":"address"},{"name":"pairIndex","type":"uint256","internalType":"uint256"},{"name":"index","type":"uint256","internalType":"uint256"},{"name":"initialPosToken","type":"uint256","internalType":"uint256"},{"name":"positionSizeUSDC","type":"uint256","internalType":"uint256"},{"name":"openPrice","type":"uint256","internalType":"uint256"},{"name":"buy","type":"bool","internalType":"bool"},{"name":"leverage","type":"uint256","internalType":"uint256"},{"name":"tp","type":"uint256","internalType":"uint256"},{"name":"sl","type":"uint256","internalType":"uint256"},{"name":"timestamp","type":"uint256","internalType":"uint256"}]},{"name":"tradeInfo","type":"tuple","internalType":"struct ITradingStorage.TradeInfo","components":[{"name":"openInterestUSDC","type":"uint256","internalType":"uint256"},{"name":"tpLastUpdated","type":"uint256","internalType":"uint256"},{"name":"slLastUpdated","type":"uint256","internalType":"uint256"},{"name":"beingMarketClosed","type":"bool","internalType":"bool"},{"name":"lossProtection","type":"uint256","internalType":"uint256"}]},{"name":"rolloverFee","type":"uint256","internalType":"uint256"},{"name":"liquidationPrice","type":"uint256","internalType":"uint256"}]},{"name":"","type":"tuple[]","internalType":"struct IMulticall.AggregatedOrder[]","components":[{"name":"order","type":"tuple","internalType":"struct ITradingStorage.OpenLimitOrder","components":[{"name":"trader","type":"address","internalType":"address"},{"name":"pairIndex","type":"uint256","internalType":"uint256"},{"name":"index","type":"uint256","internalType":"uint256"},{"name":"positionSize","type":"uint256","internalType":"uint256"},{"name":"buy","type":"bool","internalType":"bool"},{"name":"leverage","type":"uint256","internalType":"uint256"},{"name":"tp","type":"uint256","internalType":"uint256"},{"name":"sl","type":"uint256","internalType":"uint256"},{"name":"price","type":"uint256","internalType":"uint256"},{"name":"slippageP","type":"uint256","internalType":"uint256"},{"name":"block","type":"uint256","internalType":"uint256"},{"name":"executionFee","type":"uint256","internalType":"uint256"}]},{"name":"liquidationPrice","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"tryAggregate","inputs":[{"name":"requireSuccess","type":"bool","internalType":"bool"},{"name":"calls","type":"tuple[]","internalType":"struct Multicall3.Call[]","components":[{"name":"target","type":"address","internalType":"address"},{"name":"callData","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"returnData","type":"tuple[]","internalType":"struct Multicall3.Result[]","components":[{"name":"success","type":"bool","internalType":"bool"},{"name":"returnData","type":"bytes","internalType":"bytes"}]}],"stateMutability":"payable"},{"type":"function","name":"tryBlockAndAggregate","inputs":[{"name":"requireSuccess","type":"bool","internalType":"bool"},{"name":"calls","type":"tuple[]","internalType":"struct Multicall3.Call[]","components":[{"name":"target","type":"address","internalType":"address"},{"name":"callData","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"blockNumber","type":"uint256","internalType":"uint256"},{"name":"blockHash","type":"bytes32","internalType":"bytes32"},{"name":"returnData","type":"tuple[]","internalType":"struct Multicall3.Result[]","components":[{"name":"success","type":"bool","internalType":"bool"},{"name":"returnData","type":"bytes","internalType":"bytes"}]}],"stateMutability":"payable"},{"type":"function","name":"updateContracts","inputs":[{"name":"_storage","type":"address","internalType":"address"},{"name":"_pairInfos","type":"address","internalType":"address"},{"name":"_pairsStorage","type":"address","internalType":"address"},{"name":"_trading","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x60806040523480156200001157600080fd5b5060405162002abb38038062002abb8339810160408190526200003491620000a5565b600080546001600160a01b039586166001600160a01b031991821617909155600180549486169482169490941790935560028054928516928416929092179091556003805491909316911617905562000102565b80516001600160a01b0381168114620000a057600080fd5b919050565b60008060008060808587031215620000bc57600080fd5b620000c78562000088565b9350620000d76020860162000088565b9250620000e76040860162000088565b9150620000f76060860162000088565b905092959194509250565b6129a980620001126000396000f3fe6080604052600436106101355760003560e01c8063582b175f116100ab578063977ca6041161006f578063977ca60414610308578063a8b0574e14610335578063bce38bd714610350578063c3077fa914610363578063ed4a96a914610376578063ee82ac5e1461039657600080fd5b8063582b175f1461028857806372425d9d146102ab57806382ad56cb146102be5780638693da43146102d157806386d516e8146102f557600080fd5b80633408e470116100fd5780633408e470146101d7578063399542e9146101ea5780633e64a6961461020c5780633eeb530e1461021f57806342cbb15c1461024d5780634d2301cc1461026057600080fd5b80630b7512791461013a5780630f28c97d1461015c578063174dea711461017e578063252dba421461019e57806327e86d6e146101bf575b600080fd5b34801561014657600080fd5b5061015a61015536600461207c565b6103b5565b005b34801561016857600080fd5b50425b6040519081526020015b60405180910390f35b61019161018c3660046120d8565b6104d9565b604051610175919061267e565b6101b16101ac3660046120d8565b6106c1565b604051610175929190612715565b3480156101cb57600080fd5b5043600019014061016b565b3480156101e357600080fd5b504661016b565b6101fd6101f8366004612119565b610834565b6040516101759392919061277f565b34801561021857600080fd5b504861016b565b34801561022b57600080fd5b5061023f61023a36600461203b565b61084f565b604051610175929190612564565b34801561025957600080fd5b504361016b565b34801561026c57600080fd5b5061016b61027b36600461203b565b6001600160a01b03163190565b34801561029457600080fd5b5061029d610a48565b6040516101759291906126a4565b3480156102b757600080fd5b504461016b565b6101916102cc3660046120d8565b610cc0565b3480156102dd57600080fd5b506102e6610e41565b604051610175939291906126d2565b34801561030157600080fd5b504561016b565b34801561031457600080fd5b5061032861032336600461203b565b61147b565b6040516101759190612691565b34801561034157600080fd5b50604051418152602001610175565b61019161035e366004612119565b611610565b6101fd6103713660046120d8565b6117a2565b34801561038257600080fd5b5061032861039136600461203b565b6117c1565b3480156103a257600080fd5b5061016b6103b1366004612337565b4090565b60008054906101000a90046001600160a01b03166001600160a01b03166312d43a516040518163ffffffff1660e01b815260040160206040518083038186803b15801561040157600080fd5b505afa158015610415573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610439919061205f565b6001600160a01b0316336001600160a01b0316146104895760405162461bcd60e51b8152602060048201526008602482015267474f565f4f4e4c5960c01b60448201526064015b60405180910390fd5b600080546001600160a01b039586166001600160a01b0319918216179091556001805494861694821694909417909355600280549285169284169290921790915560038054919093169116179055565b6060600082806001600160401b038111156104f6576104f6612937565b60405190808252806020026020018201604052801561053c57816020015b6040805180820190915260008152606060208201528152602001906001900390816105145790505b5092503660005b8281101561066857600085828151811061055f5761055f612921565b6020026020010151905087878381811061057b5761057b612921565b905060200281019061058d91906127e4565b6040810135958601959093506105a6602085018561203b565b6001600160a01b0316816105bd606087018761279e565b6040516105cb929190612517565b60006040518083038185875af1925050503d8060008114610608576040519150601f19603f3d011682016040523d82523d6000602084013e61060d565b606091505b50602080850191909152901515808452908501351761065e5762461bcd60e51b6000526020600452601760245276135d5b1d1a58d85b1b0cce8818d85b1b0819985a5b1959604a1b60445260846000fd5b5050600101610543565b508234146106b85760405162461bcd60e51b815260206004820152601a60248201527f4d756c746963616c6c333a2076616c7565206d69736d617463680000000000006044820152606401610480565b50505092915050565b43606082806001600160401b038111156106dd576106dd612937565b60405190808252806020026020018201604052801561071057816020015b60608152602001906001900390816106fb5790505b5091503660005b8281101561082a57600087878381811061073357610733612921565b9050602002810190610745919061281a565b9250610754602084018461203b565b6001600160a01b031661076a602085018561279e565b604051610778929190612517565b6000604051808303816000865af19150503d80600081146107b5576040519150601f19603f3d011682016040523d82523d6000602084013e6107ba565b606091505b508684815181106107cd576107cd612921565b60209081029190910101529050806108215760405162461bcd60e51b8152602060048201526017602482015276135d5b1d1a58d85b1b0cce8818d85b1b0819985a5b1959604a1b6044820152606401610480565b50600101610717565b5050509250929050565b4380406060610844868686611610565b905093509350939050565b6060806000600260009054906101000a90046001600160a01b03166001600160a01b031663b81b2b716040518163ffffffff1660e01b815260040160206040518083038186803b1580156108a257600080fd5b505afa1580156108b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108da9190612350565b905060008060009054906101000a90046001600160a01b03166001600160a01b031663f65d9dbe6040518163ffffffff1660e01b815260040160206040518083038186803b15801561092b57600080fd5b505afa15801561093f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109639190612350565b9050600061097183836128ba565b90506000816001600160401b0381111561098d5761098d612937565b6040519080825280602002602001820160405280156109c657816020015b6109b3611e8e565b8152602001906001900390816109ab5790505b5090506000826001600160401b038111156109e3576109e3612937565b604051908082528060200260200182016040528015610a1c57816020015b610a09611f4e565b815260200190600190039081610a015790505b509050610a2b8886868561194f565b9150610a3988868684611c9f565b91989197509095505050505050565b6060806000600260009054906101000a90046001600160a01b03166001600160a01b031663b81b2b716040518163ffffffff1660e01b815260040160206040518083038186803b158015610a9b57600080fd5b505afa158015610aaf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ad39190612350565b9050806001600160401b03811115610aed57610aed612937565b604051908082528060200260200182016040528015610b16578160200160208202803683370190505b509250806001600160401b03811115610b3157610b31612937565b604051908082528060200260200182016040528015610b5a578160200160208202803683370190505b50915060005b81811015610cba5760008054604051639cb87f2360e01b81526004810184905260248101929092526001600160a01b031690639cb87f239060440160206040518083038186803b158015610bb357600080fd5b505afa158015610bc7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610beb9190612350565b848281518110610bfd57610bfd612921565b6020908102919091010152600054604051639cb87f2360e01b815260048101839052600160248201526001600160a01b0390911690639cb87f239060440160206040518083038186803b158015610c5357600080fd5b505afa158015610c67573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c8b9190612350565b838281518110610c9d57610c9d612921565b602090810291909101015280610cb2816128f0565b915050610b60565b50509091565b606081806001600160401b03811115610cdb57610cdb612937565b604051908082528060200260200182016040528015610d2157816020015b604080518082019091526000815260606020820152815260200190600190039081610cf95790505b5091503660005b828110156106b8576000848281518110610d4457610d44612921565b60200260200101519050868683818110610d6057610d60612921565b9050602002810190610d729190612804565b9250610d81602084018461203b565b6001600160a01b0316610d97604085018561279e565b604051610da5929190612517565b6000604051808303816000865af19150503d8060008114610de2576040519150601f19603f3d011682016040523d82523d6000602084013e610de7565b606091505b506020808401919091529015158083529084013517610e385762461bcd60e51b6000526020600452601760245276135d5b1d1a58d85b1b0cce8818d85b1b0819985a5b1959604a1b60445260646000fd5b50600101610d28565b60608060606000600260009054906101000a90046001600160a01b03166001600160a01b031663b81b2b716040518163ffffffff1660e01b815260040160206040518083038186803b158015610e9657600080fd5b505afa158015610eaa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ece9190612350565b90506402540be400816001600160401b03811115610eee57610eee612937565b604051908082528060200260200182016040528015610f17578160200160208202803683370190505b509450816001600160401b03811115610f3257610f32612937565b604051908082528060200260200182016040528015610f5b578160200160208202803683370190505b509350816001600160401b03811115610f7657610f76612937565b604051908082528060200260200182016040528015610f9f578160200160208202803683370190505b50925060005b828110156114735760015460405163338139ad60e01b8152600481018390526001600160a01b039091169063338139ad9060240160206040518083038186803b158015610ff157600080fd5b505afa158015611005573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110299190612350565b86828151811061103b5761103b612921565b602090810291909101015260008054604051639cb87f2360e01b815260048101849052602481018390526001600160a01b0390911690639cb87f239060440160206040518083038186803b15801561109257600080fd5b505afa1580156110a6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110ca9190612350565b60008054604051639cb87f2360e01b8152600481018690526001602482015292935090916001600160a01b0390911690639cb87f239060440160206040518083038186803b15801561111b57600080fd5b505afa15801561112f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111539190612350565b600154604051633254cfaf60e21b81526004810186905260248101859052604481018390529192506000916001600160a01b039091169063c9533ebc9060640160206040518083038186803b1580156111ab57600080fd5b505afa1580156111bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111e39190612350565b600180546040516306676d8560e41b815260048101889052602481019290925260448201869052606482018590529192506000916001600160a01b031690636676d8509060840160206040518083038186803b15801561124257600080fd5b505afa158015611256573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061127a9190612350565b9050600061128882846128ba565b6112938860646128ba565b61129d91906128d9565b6112a783856128ba565b6112b190896128ba565b6112bb9190612898565b905086878c88815181106112d1576112d1612921565b602002602001015189846112e591906128ba565b6112ef91906128ba565b6112f99190612898565b6113039190612898565b8a878151811061131557611315612921565b60209081029190910101526001546040516306676d8560e41b8152600481018890526000602482018190526044820188905260648201879052916001600160a01b031690636676d8509060840160206040518083038186803b15801561137a57600080fd5b505afa15801561138e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113b29190612350565b905060006113c082866128ba565b6113cb8a60646128ba565b6113d591906128d9565b6113df83876128ba565b6113e9908b6128ba565b6113f39190612898565b905088898e8a8151811061140957611409612921565b60200260200101518b8461141d91906128ba565b61142791906128ba565b6114319190612898565b61143b9190612898565b8b898151811061144d5761144d612921565b60200260200101818152505050505050505050808061146b906128f0565b915050610fa5565b505050909192565b60606000600260009054906101000a90046001600160a01b03166001600160a01b031663b81b2b716040518163ffffffff1660e01b815260040160206040518083038186803b1580156114cd57600080fd5b505afa1580156114e1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115059190612350565b9050806001600160401b0381111561151f5761151f612937565b604051908082528060200260200182016040528015611548578160200160208202803683370190505b50915060005b818110156116095760005460405163292c161760e01b81526001600160a01b038681166004830152602482018490529091169063292c16179060440160206040518083038186803b1580156115a257600080fd5b505afa1580156115b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115da9190612350565b8382815181106115ec576115ec612921565b602090810291909101015280611601816128f0565b91505061154e565b5050919050565b606081806001600160401b0381111561162b5761162b612937565b60405190808252806020026020018201604052801561167157816020015b6040805180820190915260008152606060208201528152602001906001900390816116495790505b5091503660005b8281101561179857600084828151811061169457611694612921565b602002602001015190508686838181106116b0576116b0612921565b90506020028101906116c2919061281a565b92506116d1602084018461203b565b6001600160a01b03166116e7602085018561279e565b6040516116f5929190612517565b6000604051808303816000865af19150503d8060008114611732576040519150601f19603f3d011682016040523d82523d6000602084013e611737565b606091505b50602083015215158152871561178f57805161178f5760405162461bcd60e51b8152602060048201526017602482015276135d5b1d1a58d85b1b0cce8818d85b1b0819985a5b1959604a1b6044820152606401610480565b50600101611678565b5050509392505050565b60008060606117b360018686610834565b919790965090945092505050565b60606000600260009054906101000a90046001600160a01b03166001600160a01b031663b81b2b716040518163ffffffff1660e01b815260040160206040518083038186803b15801561181357600080fd5b505afa158015611827573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061184b9190612350565b9050806001600160401b0381111561186557611865612937565b60405190808252806020026020018201604052801561188e578160200160208202803683370190505b50915060005b8181101561160957600054604051634bf3ccad60e11b81526001600160a01b03868116600483015260248201849052909116906397e7995a9060440160206040518083038186803b1580156118e857600080fd5b505afa1580156118fc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119209190612350565b83828151811061193257611932612921565b602090810291909101015280611947816128f0565b915050611894565b60606000805b85811015611c945760005b85811015611c81576000546040516351d407ff60e11b81526001600160a01b038a8116600483015260248201859052604482018490529091169063a3a80ffe906064016101606040518083038186803b1580156119bc57600080fd5b505afa9250505080156119ec575060408051601f3d908101601f191682019092526119e99181019061229a565b60015b611a0257826119fa816128f0565b935050611c6f565b60e0810151611a1e5783611a15816128f0565b94505050611c6f565b60015460c0820151606083015160e0840151604051630284c13960e11b81526001600160a01b038e8116600483015260248201899052604482018890529315156064820152608481019290925260a4820152600092919091169063050982729060c40160206040518083038186803b158015611a9957600080fd5b505afa158015611aad573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ad19190612350565b9050600160009054906101000a90046001600160a01b03166001600160a01b0316636bc84d598b86868660a001518760c0015188606001518960e001516040518863ffffffff1660e01b8152600401611b309796959493929190612527565b60206040518083038186803b158015611b4857600080fd5b505afa925050508015611b78575060408051601f3d908101601f19168201909252611b7591810190612350565b60015b611b905784611b86816128f0565b9550505050611c6f565b60008054604051638c8ff1d560e01b81526001600160a01b038e81166004830152602482018990526044820188905290911690638c8ff1d59060640160a06040518083038186803b158015611be457600080fd5b505afa158015611bf8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c1c9190612215565b9050604051806080016040528085815260200182815260200184815260200183815250898881518110611c5157611c51612921565b60200260200101819052508680611c67906128f0565b975050505050505b80611c79816128f0565b915050611960565b5080611c8c816128f0565b915050611955565b509195945050505050565b60606000805b85811015611c945760005b85811015611e7b57600054604051632e21e28b60e21b81526001600160a01b038a8116600483015260248201859052604482018490529091169063b8878a2c906064016101806040518083038186803b158015611d0c57600080fd5b505afa925050508015611d3c575060408051601f3d908101601f19168201909252611d399181019061216d565b60015b611d525782611d4a816128f0565b935050611e69565b60a0810151611d6e5783611d65816128f0565b94505050611e69565b600160009054906101000a90046001600160a01b03166001600160a01b0316636bc84d598a858460400151856101000151866080015187606001518860a001516040518863ffffffff1660e01b8152600401611dd09796959493929190612527565b60206040518083038186803b158015611de857600080fd5b505afa925050508015611e18575060408051601f3d908101601f19168201909252611e1591810190612350565b60015b611e265783611d65816128f0565b604051806040016040528083815260200182815250878681518110611e4d57611e4d612921565b60200260200101819052508480611e63906128f0565b95505050505b80611e73816128f0565b915050611cb0565b5080611e86816128f0565b915050611ca5565b6040518060800160405280611f0160405180610160016040528060006001600160a01b031681526020016000815260200160008152602001600081526020016000815260200160008152602001600015158152602001600081526020016000815260200160008152602001600081525090565b8152602001611f3a6040518060a00160405280600081526020016000815260200160008152602001600015158152602001600081525090565b815260200160008152602001600081525090565b6040518060400160405280611fc860405180610180016040528060006001600160a01b03168152602001600081526020016000815260200160008152602001600015158152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b8152602001600081525090565b8051611fe08161294d565b919050565b60008083601f840112611ff757600080fd5b5081356001600160401b0381111561200e57600080fd5b6020830191508360208260051b850101111561202957600080fd5b9250929050565b8051611fe081612965565b60006020828403121561204d57600080fd5b81356120588161294d565b9392505050565b60006020828403121561207157600080fd5b81516120588161294d565b6000806000806080858703121561209257600080fd5b843561209d8161294d565b935060208501356120ad8161294d565b925060408501356120bd8161294d565b915060608501356120cd8161294d565b939692955090935050565b600080602083850312156120eb57600080fd5b82356001600160401b0381111561210157600080fd5b61210d85828601611fe5565b90969095509350505050565b60008060006040848603121561212e57600080fd5b833561213981612965565b925060208401356001600160401b0381111561215457600080fd5b61216086828701611fe5565b9497909650939450505050565b6000610180828403121561218057600080fd5b612188612830565b61219183611fd5565b81526020830151602082015260408301516040820152606083015160608201526121bd60808401612030565b608082015260a0838101519082015260c0808401519082015260e08084015190820152610100808401519082015261012080840151908201526101408084015190820152610160928301519281019290925250919050565b600060a0828403121561222757600080fd5b60405160a081018181106001600160401b038211171561225757634e487b7160e01b600052604160045260246000fd5b8060405250825181526020830151602082015260408301516040820152606083015161228281612965565b60608201526080928301519281019290925250919050565b600061016082840312156122ad57600080fd5b6122b5612867565b6122be83611fd5565b81526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a08201526122fe60c08401612030565b60c082015260e0838101519082015261010080840151908201526101208084015190820152610140928301519281019290925250919050565b60006020828403121561234957600080fd5b5035919050565b60006020828403121561236257600080fd5b5051919050565b600081518084526020808501945080840160005b83811015612424578151805180516001600160a01b0316895284810151858a0152604080820151908a0152606080820151908a01526080808201511515908a015260a080820151908a015260c080820151908a015260e080820151908a015261010080820151908a015261012080820151908a015261014080820151908a015261016090810151908901528301516101808801526101a0909601959082019060010161237d565b509495945050505050565b600081518084526020808501808196508360051b8101915082860160005b8581101561248d57828403895281518051151585528501516040868601819052612479818701836124ca565b9a87019a955050509084019060010161244d565b5091979650505050505050565b600081518084526020808501945080840160005b83811015612424578151875295820195908201906001016124ae565b6000815180845260005b818110156124f0576020818501810151868301820152016124d4565b81811115612502576000602083870101525b50601f01601f19169290920160200192915050565b8183823760009101908152919050565b6001600160a01b039790971687526020870195909552604086019390935260608501919091521515608084015260a083015260c082015260e00190565b6040808252835182820181905260009190606090818501906020808901865b8381101561265f578151805180516001600160a01b031687528481015185880152888101518988015287810151888801526080808201518189015260a0808301519089015260c08083015115159089015260e08083015190890152610100808301519089015261012080830151908901526101409182015191880191909152848201518051610160890152602081015161018089015260408101516101a0890152606081015115156101c089015201516101e0870152878101516102008701528601516102208601526102409094019390820190600101612583565b505086830390870152506126738187612369565b979650505050505050565b602081526000612058602083018461242f565b602081526000612058602083018461249a565b6040815260006126b7604083018561249a565b82810360208401526126c9818561249a565b95945050505050565b6060815260006126e5606083018661249a565b82810360208401526126f7818661249a565b9050828103604084015261270b818561249a565b9695505050505050565b600060408201848352602060408185015281855180845260608601915060608160051b870101935082870160005b8281101561277157605f1988870301845261275f8683516124ca565b95509284019290840190600101612743565b509398975050505050505050565b8381528260208201526060604082015260006126c9606083018461242f565b6000808335601e198436030181126127b557600080fd5b8301803591506001600160401b038211156127cf57600080fd5b60200191503681900382131561202957600080fd5b60008235607e198336030181126127fa57600080fd5b9190910192915050565b60008235605e198336030181126127fa57600080fd5b60008235603e198336030181126127fa57600080fd5b60405161018081016001600160401b038111828210171561286157634e487b7160e01b600052604160045260246000fd5b60405290565b60405161016081016001600160401b038111828210171561286157634e487b7160e01b600052604160045260246000fd5b6000826128b557634e487b7160e01b600052601260045260246000fd5b500490565b60008160001904831182151516156128d4576128d461290b565b500290565b6000828210156128eb576128eb61290b565b500390565b60006000198214156129045761290461290b565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461296257600080fd5b50565b801515811461296257600080fdfea2646970667358221220baf5ae0918b5cc9cf8193cfb27a50b86409be9643a75464086ceaadd570ff05d64736f6c63430008070033","sourceMap":"356:13798:102:-:0;;;1077:340;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1216:8;:36;;-1:-1:-1;;;;;1216:36:102;;;-1:-1:-1;;;;;;1216:36:102;;;;;;;-1:-1:-1;1262:42:102;;;;;;;;;;;;;;;1314:12;:50;;;;;;;;;;;;;;;1374:7;:36;;;;;;;;;;;356:13798;;14:177:150;93:13;;-1:-1:-1;;;;;135:31:150;;125:42;;115:70;;181:1;178;171:12;115:70;14:177;;;:::o;196:464::-;293:6;301;309;317;370:3;358:9;349:7;345:23;341:33;338:53;;;387:1;384;377:12;338:53;410:40;440:9;410:40;:::i;:::-;400:50;;469:49;514:2;503:9;499:18;469:49;:::i;:::-;459:59;;537:49;582:2;571:9;567:18;537:49;:::i;:::-;527:59;;605:49;650:2;639:9;635:18;605:49;:::i;:::-;595:59;;196:464;;;;;;;:::o;:::-;356:13798:102;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436106101355760003560e01c8063582b175f116100ab578063977ca6041161006f578063977ca60414610308578063a8b0574e14610335578063bce38bd714610350578063c3077fa914610363578063ed4a96a914610376578063ee82ac5e1461039657600080fd5b8063582b175f1461028857806372425d9d146102ab57806382ad56cb146102be5780638693da43146102d157806386d516e8146102f557600080fd5b80633408e470116100fd5780633408e470146101d7578063399542e9146101ea5780633e64a6961461020c5780633eeb530e1461021f57806342cbb15c1461024d5780634d2301cc1461026057600080fd5b80630b7512791461013a5780630f28c97d1461015c578063174dea711461017e578063252dba421461019e57806327e86d6e146101bf575b600080fd5b34801561014657600080fd5b5061015a61015536600461207c565b6103b5565b005b34801561016857600080fd5b50425b6040519081526020015b60405180910390f35b61019161018c3660046120d8565b6104d9565b604051610175919061267e565b6101b16101ac3660046120d8565b6106c1565b604051610175929190612715565b3480156101cb57600080fd5b5043600019014061016b565b3480156101e357600080fd5b504661016b565b6101fd6101f8366004612119565b610834565b6040516101759392919061277f565b34801561021857600080fd5b504861016b565b34801561022b57600080fd5b5061023f61023a36600461203b565b61084f565b604051610175929190612564565b34801561025957600080fd5b504361016b565b34801561026c57600080fd5b5061016b61027b36600461203b565b6001600160a01b03163190565b34801561029457600080fd5b5061029d610a48565b6040516101759291906126a4565b3480156102b757600080fd5b504461016b565b6101916102cc3660046120d8565b610cc0565b3480156102dd57600080fd5b506102e6610e41565b604051610175939291906126d2565b34801561030157600080fd5b504561016b565b34801561031457600080fd5b5061032861032336600461203b565b61147b565b6040516101759190612691565b34801561034157600080fd5b50604051418152602001610175565b61019161035e366004612119565b611610565b6101fd6103713660046120d8565b6117a2565b34801561038257600080fd5b5061032861039136600461203b565b6117c1565b3480156103a257600080fd5b5061016b6103b1366004612337565b4090565b60008054906101000a90046001600160a01b03166001600160a01b03166312d43a516040518163ffffffff1660e01b815260040160206040518083038186803b15801561040157600080fd5b505afa158015610415573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610439919061205f565b6001600160a01b0316336001600160a01b0316146104895760405162461bcd60e51b8152602060048201526008602482015267474f565f4f4e4c5960c01b60448201526064015b60405180910390fd5b600080546001600160a01b039586166001600160a01b0319918216179091556001805494861694821694909417909355600280549285169284169290921790915560038054919093169116179055565b6060600082806001600160401b038111156104f6576104f6612937565b60405190808252806020026020018201604052801561053c57816020015b6040805180820190915260008152606060208201528152602001906001900390816105145790505b5092503660005b8281101561066857600085828151811061055f5761055f612921565b6020026020010151905087878381811061057b5761057b612921565b905060200281019061058d91906127e4565b6040810135958601959093506105a6602085018561203b565b6001600160a01b0316816105bd606087018761279e565b6040516105cb929190612517565b60006040518083038185875af1925050503d8060008114610608576040519150601f19603f3d011682016040523d82523d6000602084013e61060d565b606091505b50602080850191909152901515808452908501351761065e5762461bcd60e51b6000526020600452601760245276135d5b1d1a58d85b1b0cce8818d85b1b0819985a5b1959604a1b60445260846000fd5b5050600101610543565b508234146106b85760405162461bcd60e51b815260206004820152601a60248201527f4d756c746963616c6c333a2076616c7565206d69736d617463680000000000006044820152606401610480565b50505092915050565b43606082806001600160401b038111156106dd576106dd612937565b60405190808252806020026020018201604052801561071057816020015b60608152602001906001900390816106fb5790505b5091503660005b8281101561082a57600087878381811061073357610733612921565b9050602002810190610745919061281a565b9250610754602084018461203b565b6001600160a01b031661076a602085018561279e565b604051610778929190612517565b6000604051808303816000865af19150503d80600081146107b5576040519150601f19603f3d011682016040523d82523d6000602084013e6107ba565b606091505b508684815181106107cd576107cd612921565b60209081029190910101529050806108215760405162461bcd60e51b8152602060048201526017602482015276135d5b1d1a58d85b1b0cce8818d85b1b0819985a5b1959604a1b6044820152606401610480565b50600101610717565b5050509250929050565b4380406060610844868686611610565b905093509350939050565b6060806000600260009054906101000a90046001600160a01b03166001600160a01b031663b81b2b716040518163ffffffff1660e01b815260040160206040518083038186803b1580156108a257600080fd5b505afa1580156108b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108da9190612350565b905060008060009054906101000a90046001600160a01b03166001600160a01b031663f65d9dbe6040518163ffffffff1660e01b815260040160206040518083038186803b15801561092b57600080fd5b505afa15801561093f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109639190612350565b9050600061097183836128ba565b90506000816001600160401b0381111561098d5761098d612937565b6040519080825280602002602001820160405280156109c657816020015b6109b3611e8e565b8152602001906001900390816109ab5790505b5090506000826001600160401b038111156109e3576109e3612937565b604051908082528060200260200182016040528015610a1c57816020015b610a09611f4e565b815260200190600190039081610a015790505b509050610a2b8886868561194f565b9150610a3988868684611c9f565b91989197509095505050505050565b6060806000600260009054906101000a90046001600160a01b03166001600160a01b031663b81b2b716040518163ffffffff1660e01b815260040160206040518083038186803b158015610a9b57600080fd5b505afa158015610aaf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ad39190612350565b9050806001600160401b03811115610aed57610aed612937565b604051908082528060200260200182016040528015610b16578160200160208202803683370190505b509250806001600160401b03811115610b3157610b31612937565b604051908082528060200260200182016040528015610b5a578160200160208202803683370190505b50915060005b81811015610cba5760008054604051639cb87f2360e01b81526004810184905260248101929092526001600160a01b031690639cb87f239060440160206040518083038186803b158015610bb357600080fd5b505afa158015610bc7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610beb9190612350565b848281518110610bfd57610bfd612921565b6020908102919091010152600054604051639cb87f2360e01b815260048101839052600160248201526001600160a01b0390911690639cb87f239060440160206040518083038186803b158015610c5357600080fd5b505afa158015610c67573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c8b9190612350565b838281518110610c9d57610c9d612921565b602090810291909101015280610cb2816128f0565b915050610b60565b50509091565b606081806001600160401b03811115610cdb57610cdb612937565b604051908082528060200260200182016040528015610d2157816020015b604080518082019091526000815260606020820152815260200190600190039081610cf95790505b5091503660005b828110156106b8576000848281518110610d4457610d44612921565b60200260200101519050868683818110610d6057610d60612921565b9050602002810190610d729190612804565b9250610d81602084018461203b565b6001600160a01b0316610d97604085018561279e565b604051610da5929190612517565b6000604051808303816000865af19150503d8060008114610de2576040519150601f19603f3d011682016040523d82523d6000602084013e610de7565b606091505b506020808401919091529015158083529084013517610e385762461bcd60e51b6000526020600452601760245276135d5b1d1a58d85b1b0cce8818d85b1b0819985a5b1959604a1b60445260646000fd5b50600101610d28565b60608060606000600260009054906101000a90046001600160a01b03166001600160a01b031663b81b2b716040518163ffffffff1660e01b815260040160206040518083038186803b158015610e9657600080fd5b505afa158015610eaa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ece9190612350565b90506402540be400816001600160401b03811115610eee57610eee612937565b604051908082528060200260200182016040528015610f17578160200160208202803683370190505b509450816001600160401b03811115610f3257610f32612937565b604051908082528060200260200182016040528015610f5b578160200160208202803683370190505b509350816001600160401b03811115610f7657610f76612937565b604051908082528060200260200182016040528015610f9f578160200160208202803683370190505b50925060005b828110156114735760015460405163338139ad60e01b8152600481018390526001600160a01b039091169063338139ad9060240160206040518083038186803b158015610ff157600080fd5b505afa158015611005573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110299190612350565b86828151811061103b5761103b612921565b602090810291909101015260008054604051639cb87f2360e01b815260048101849052602481018390526001600160a01b0390911690639cb87f239060440160206040518083038186803b15801561109257600080fd5b505afa1580156110a6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110ca9190612350565b60008054604051639cb87f2360e01b8152600481018690526001602482015292935090916001600160a01b0390911690639cb87f239060440160206040518083038186803b15801561111b57600080fd5b505afa15801561112f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111539190612350565b600154604051633254cfaf60e21b81526004810186905260248101859052604481018390529192506000916001600160a01b039091169063c9533ebc9060640160206040518083038186803b1580156111ab57600080fd5b505afa1580156111bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111e39190612350565b600180546040516306676d8560e41b815260048101889052602481019290925260448201869052606482018590529192506000916001600160a01b031690636676d8509060840160206040518083038186803b15801561124257600080fd5b505afa158015611256573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061127a9190612350565b9050600061128882846128ba565b6112938860646128ba565b61129d91906128d9565b6112a783856128ba565b6112b190896128ba565b6112bb9190612898565b905086878c88815181106112d1576112d1612921565b602002602001015189846112e591906128ba565b6112ef91906128ba565b6112f99190612898565b6113039190612898565b8a878151811061131557611315612921565b60209081029190910101526001546040516306676d8560e41b8152600481018890526000602482018190526044820188905260648201879052916001600160a01b031690636676d8509060840160206040518083038186803b15801561137a57600080fd5b505afa15801561138e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113b29190612350565b905060006113c082866128ba565b6113cb8a60646128ba565b6113d591906128d9565b6113df83876128ba565b6113e9908b6128ba565b6113f39190612898565b905088898e8a8151811061140957611409612921565b60200260200101518b8461141d91906128ba565b61142791906128ba565b6114319190612898565b61143b9190612898565b8b898151811061144d5761144d612921565b60200260200101818152505050505050505050808061146b906128f0565b915050610fa5565b505050909192565b60606000600260009054906101000a90046001600160a01b03166001600160a01b031663b81b2b716040518163ffffffff1660e01b815260040160206040518083038186803b1580156114cd57600080fd5b505afa1580156114e1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115059190612350565b9050806001600160401b0381111561151f5761151f612937565b604051908082528060200260200182016040528015611548578160200160208202803683370190505b50915060005b818110156116095760005460405163292c161760e01b81526001600160a01b038681166004830152602482018490529091169063292c16179060440160206040518083038186803b1580156115a257600080fd5b505afa1580156115b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115da9190612350565b8382815181106115ec576115ec612921565b602090810291909101015280611601816128f0565b91505061154e565b5050919050565b606081806001600160401b0381111561162b5761162b612937565b60405190808252806020026020018201604052801561167157816020015b6040805180820190915260008152606060208201528152602001906001900390816116495790505b5091503660005b8281101561179857600084828151811061169457611694612921565b602002602001015190508686838181106116b0576116b0612921565b90506020028101906116c2919061281a565b92506116d1602084018461203b565b6001600160a01b03166116e7602085018561279e565b6040516116f5929190612517565b6000604051808303816000865af19150503d8060008114611732576040519150601f19603f3d011682016040523d82523d6000602084013e611737565b606091505b50602083015215158152871561178f57805161178f5760405162461bcd60e51b8152602060048201526017602482015276135d5b1d1a58d85b1b0cce8818d85b1b0819985a5b1959604a1b6044820152606401610480565b50600101611678565b5050509392505050565b60008060606117b360018686610834565b919790965090945092505050565b60606000600260009054906101000a90046001600160a01b03166001600160a01b031663b81b2b716040518163ffffffff1660e01b815260040160206040518083038186803b15801561181357600080fd5b505afa158015611827573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061184b9190612350565b9050806001600160401b0381111561186557611865612937565b60405190808252806020026020018201604052801561188e578160200160208202803683370190505b50915060005b8181101561160957600054604051634bf3ccad60e11b81526001600160a01b03868116600483015260248201849052909116906397e7995a9060440160206040518083038186803b1580156118e857600080fd5b505afa1580156118fc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119209190612350565b83828151811061193257611932612921565b602090810291909101015280611947816128f0565b915050611894565b60606000805b85811015611c945760005b85811015611c81576000546040516351d407ff60e11b81526001600160a01b038a8116600483015260248201859052604482018490529091169063a3a80ffe906064016101606040518083038186803b1580156119bc57600080fd5b505afa9250505080156119ec575060408051601f3d908101601f191682019092526119e99181019061229a565b60015b611a0257826119fa816128f0565b935050611c6f565b60e0810151611a1e5783611a15816128f0565b94505050611c6f565b60015460c0820151606083015160e0840151604051630284c13960e11b81526001600160a01b038e8116600483015260248201899052604482018890529315156064820152608481019290925260a4820152600092919091169063050982729060c40160206040518083038186803b158015611a9957600080fd5b505afa158015611aad573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ad19190612350565b9050600160009054906101000a90046001600160a01b03166001600160a01b0316636bc84d598b86868660a001518760c0015188606001518960e001516040518863ffffffff1660e01b8152600401611b309796959493929190612527565b60206040518083038186803b158015611b4857600080fd5b505afa925050508015611b78575060408051601f3d908101601f19168201909252611b7591810190612350565b60015b611b905784611b86816128f0565b9550505050611c6f565b60008054604051638c8ff1d560e01b81526001600160a01b038e81166004830152602482018990526044820188905290911690638c8ff1d59060640160a06040518083038186803b158015611be457600080fd5b505afa158015611bf8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c1c9190612215565b9050604051806080016040528085815260200182815260200184815260200183815250898881518110611c5157611c51612921565b60200260200101819052508680611c67906128f0565b975050505050505b80611c79816128f0565b915050611960565b5080611c8c816128f0565b915050611955565b509195945050505050565b60606000805b85811015611c945760005b85811015611e7b57600054604051632e21e28b60e21b81526001600160a01b038a8116600483015260248201859052604482018490529091169063b8878a2c906064016101806040518083038186803b158015611d0c57600080fd5b505afa925050508015611d3c575060408051601f3d908101601f19168201909252611d399181019061216d565b60015b611d525782611d4a816128f0565b935050611e69565b60a0810151611d6e5783611d65816128f0565b94505050611e69565b600160009054906101000a90046001600160a01b03166001600160a01b0316636bc84d598a858460400151856101000151866080015187606001518860a001516040518863ffffffff1660e01b8152600401611dd09796959493929190612527565b60206040518083038186803b158015611de857600080fd5b505afa925050508015611e18575060408051601f3d908101601f19168201909252611e1591810190612350565b60015b611e265783611d65816128f0565b604051806040016040528083815260200182815250878681518110611e4d57611e4d612921565b60200260200101819052508480611e63906128f0565b95505050505b80611e73816128f0565b915050611cb0565b5080611e86816128f0565b915050611ca5565b6040518060800160405280611f0160405180610160016040528060006001600160a01b031681526020016000815260200160008152602001600081526020016000815260200160008152602001600015158152602001600081526020016000815260200160008152602001600081525090565b8152602001611f3a6040518060a00160405280600081526020016000815260200160008152602001600015158152602001600081525090565b815260200160008152602001600081525090565b6040518060400160405280611fc860405180610180016040528060006001600160a01b03168152602001600081526020016000815260200160008152602001600015158152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b8152602001600081525090565b8051611fe08161294d565b919050565b60008083601f840112611ff757600080fd5b5081356001600160401b0381111561200e57600080fd5b6020830191508360208260051b850101111561202957600080fd5b9250929050565b8051611fe081612965565b60006020828403121561204d57600080fd5b81356120588161294d565b9392505050565b60006020828403121561207157600080fd5b81516120588161294d565b6000806000806080858703121561209257600080fd5b843561209d8161294d565b935060208501356120ad8161294d565b925060408501356120bd8161294d565b915060608501356120cd8161294d565b939692955090935050565b600080602083850312156120eb57600080fd5b82356001600160401b0381111561210157600080fd5b61210d85828601611fe5565b90969095509350505050565b60008060006040848603121561212e57600080fd5b833561213981612965565b925060208401356001600160401b0381111561215457600080fd5b61216086828701611fe5565b9497909650939450505050565b6000610180828403121561218057600080fd5b612188612830565b61219183611fd5565b81526020830151602082015260408301516040820152606083015160608201526121bd60808401612030565b608082015260a0838101519082015260c0808401519082015260e08084015190820152610100808401519082015261012080840151908201526101408084015190820152610160928301519281019290925250919050565b600060a0828403121561222757600080fd5b60405160a081018181106001600160401b038211171561225757634e487b7160e01b600052604160045260246000fd5b8060405250825181526020830151602082015260408301516040820152606083015161228281612965565b60608201526080928301519281019290925250919050565b600061016082840312156122ad57600080fd5b6122b5612867565b6122be83611fd5565b81526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a08201526122fe60c08401612030565b60c082015260e0838101519082015261010080840151908201526101208084015190820152610140928301519281019290925250919050565b60006020828403121561234957600080fd5b5035919050565b60006020828403121561236257600080fd5b5051919050565b600081518084526020808501945080840160005b83811015612424578151805180516001600160a01b0316895284810151858a0152604080820151908a0152606080820151908a01526080808201511515908a015260a080820151908a015260c080820151908a015260e080820151908a015261010080820151908a015261012080820151908a015261014080820151908a015261016090810151908901528301516101808801526101a0909601959082019060010161237d565b509495945050505050565b600081518084526020808501808196508360051b8101915082860160005b8581101561248d57828403895281518051151585528501516040868601819052612479818701836124ca565b9a87019a955050509084019060010161244d565b5091979650505050505050565b600081518084526020808501945080840160005b83811015612424578151875295820195908201906001016124ae565b6000815180845260005b818110156124f0576020818501810151868301820152016124d4565b81811115612502576000602083870101525b50601f01601f19169290920160200192915050565b8183823760009101908152919050565b6001600160a01b039790971687526020870195909552604086019390935260608501919091521515608084015260a083015260c082015260e00190565b6040808252835182820181905260009190606090818501906020808901865b8381101561265f578151805180516001600160a01b031687528481015185880152888101518988015287810151888801526080808201518189015260a0808301519089015260c08083015115159089015260e08083015190890152610100808301519089015261012080830151908901526101409182015191880191909152848201518051610160890152602081015161018089015260408101516101a0890152606081015115156101c089015201516101e0870152878101516102008701528601516102208601526102409094019390820190600101612583565b505086830390870152506126738187612369565b979650505050505050565b602081526000612058602083018461242f565b602081526000612058602083018461249a565b6040815260006126b7604083018561249a565b82810360208401526126c9818561249a565b95945050505050565b6060815260006126e5606083018661249a565b82810360208401526126f7818661249a565b9050828103604084015261270b818561249a565b9695505050505050565b600060408201848352602060408185015281855180845260608601915060608160051b870101935082870160005b8281101561277157605f1988870301845261275f8683516124ca565b95509284019290840190600101612743565b509398975050505050505050565b8381528260208201526060604082015260006126c9606083018461242f565b6000808335601e198436030181126127b557600080fd5b8301803591506001600160401b038211156127cf57600080fd5b60200191503681900382131561202957600080fd5b60008235607e198336030181126127fa57600080fd5b9190910192915050565b60008235605e198336030181126127fa57600080fd5b60008235603e198336030181126127fa57600080fd5b60405161018081016001600160401b038111828210171561286157634e487b7160e01b600052604160045260246000fd5b60405290565b60405161016081016001600160401b038111828210171561286157634e487b7160e01b600052604160045260246000fd5b6000826128b557634e487b7160e01b600052601260045260246000fd5b500490565b60008160001904831182151516156128d4576128d461290b565b500290565b6000828210156128eb576128eb61290b565b500390565b60006000198214156129045761290461290b565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461296257600080fd5b50565b801515811461296257600080fdfea2646970667358221220baf5ae0918b5cc9cf8193cfb27a50b86409be9643a75464086ceaadd570ff05d64736f6c63430008070033","sourceMap":"356:13798:102:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1896:370;;;;;;;;;;-1:-1:-1;1896:370:102;;;;;:::i;:::-;;:::i;:::-;;8897:120:126;;;;;;;;;;-1:-1:-1;8995:15:126;8897:120;;;17376:25:150;;;17364:2;17349:18;8897:120:126;;;;;;;;5915:2018;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;1165:563::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;9261:158::-;;;;;;;;;;-1:-1:-1;9385:12:126;-1:-1:-1;;9385:16:126;9375:27;9261:158;;9708:100;;;;;;;;;;-1:-1:-1;9788:13:126;9708:100;;3011:334;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;:::i;9565:100::-;;;;;;;;;;-1:-1:-1;9645:13:126;9565:100;;2640:1023:102;;;;;;;;;;-1:-1:-1;2640:1023:102;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;8230:111:126:-;;;;;;;;;;-1:-1:-1;8322:12:126;8230:111;;9084:114;;;;;;;;;;-1:-1:-1;9084:114:126;;;;;:::i;:::-;-1:-1:-1;;;;;9179:12:126;;;9084:114;9945:515:102;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;8557:124:126:-;;;;;;;;;;-1:-1:-1;8658:16:126;8557:124;;4154:1523;;;;;;:::i;:::-;;:::i;12333:1819:102:-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;8731:116:126:-;;;;;;;;;;-1:-1:-1;8826:14:126;8731:116;;10762:453:102;;;;;;;;;;-1:-1:-1;10762:453:102;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;8390:116:126:-;;;;;;;;;;-1:-1:-1;8390:116:126;;8485:14;11470:51:150;;11458:2;11443:18;8390:116:126;11324:203:150;2013:616:126;;;;;;:::i;:::-;;:::i;3727:245::-;;;;;;:::i;:::-;;:::i;11501:449:102:-;;;;;;;;;;-1:-1:-1;11501:449:102;;;;;:::i;:::-;;:::i;8049:134:126:-;;;;;;;;;;-1:-1:-1;8049:134:126;;;;;:::i;:::-;8154:22;;8049:134;1896:370:102;626:8;;:14;;;-1:-1:-1;;;626:14:102;;;;-1:-1:-1;;;;;626:8:102;;;;-1:-1:-1;;626:14:102;;;;;;;;;;;;;;;:8;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;612:28:102;:10;:28;604:49;;;;-1:-1:-1;;;604:49:102;;18321:2:150;604:49:102;;;18303:21:150;18360:1;18340:18;;;18333:29;-1:-1:-1;;;18378:18:150;;;18371:38;18426:18;;604:49:102;;;;;;;;;2065:8:::1;:36:::0;;-1:-1:-1;;;;;2065:36:102;;::::1;-1:-1:-1::0;;;;;;2065:36:102;;::::1;;::::0;;;-1:-1:-1;2111:42:102;;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;2163:12:::1;:50:::0;;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;2223:7:::1;:36:::0;;;;;::::1;::::0;::::1;;::::0;;1896:370::o;5915:2018:126:-;5993:26;6031:22;6080:5;;-1:-1:-1;;;;;6115:20:126;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;6115:20:126;;;;;;;;;;;;;;;;6102:33;;6145:25;6185:9;6180:1602;6204:6;6200:1;:10;6180:1602;;;6228:20;6251:10;6262:1;6251:13;;;;;;;;:::i;:::-;;;;;;;6228:36;;6286:5;;6292:1;6286:8;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;6322:11;;;;6550:21;;;;6278:16;;-1:-1:-1;6637:12:126;;;;6278:16;6637:12;:::i;:::-;-1:-1:-1;;;;;6637:17:126;6662:3;6667:14;;;;;;:::i;:::-;6637:45;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6616:17:126;;;;6599:83;;;;;;;;;;6919:16;;;6906:30;6903:49;6893:806;;-1:-1:-1;;;7081:4:126;7074:80;;;7227:66;7221:4;7214:80;7379:66;7373:4;7366:80;-1:-1:-1;;;7569:4:126;7562:80;7676:4;;7663:18;6893:806;-1:-1:-1;;7754:3:126;;6180:1602;;;;7881:14;7868:9;:27;7860:66;;;;-1:-1:-1;;;7860:66:126;;17966:2:150;7860:66:126;;;17948:21:150;18005:2;17985:18;;;17978:30;18044:28;18024:18;;;18017:56;18090:18;;7860:66:126;17764:350:150;7860:66:126;6021:1912;;;5915:2018;;;;:::o;1165:563::-;1303:12;1252:25;1342:5;;-1:-1:-1;;;;;1377:19:126;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1364:32;;1406:18;1439:9;1434:288;1458:6;1454:1;:10;1434:288;;;1482:12;1515:5;;1521:1;1515:8;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;1508:15;-1:-1:-1;1564:11:126;;;;1508:15;1564:11;:::i;:::-;-1:-1:-1;;;;;1564:16:126;1581:13;;;;;;:::i;:::-;1564:31;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1547:10;1558:1;1547:13;;;;;;;;:::i;:::-;;;;;;;;;;1537:58;;-1:-1:-1;1537:58:126;1609:43;;;;-1:-1:-1;;;1609:43:126;;17614:2:150;1609:43:126;;;17596:21:150;17653:2;17633:18;;;17626:30;-1:-1:-1;;;17672:18:150;;;17665:53;17735:18;;1609:43:126;17412:347:150;1609:43:126;-1:-1:-1;1694:3:126;;1434:288;;;;1279:449;;1165:563;;;;;:::o;3011:334::-;3223:12;3257:23;;3171:26;3303:35;3316:14;3332:5;;3303:12;:35::i;:::-;3290:48;;3011:334;;;;;;;:::o;2640:1023:102:-;2847:12;;:25;;;-1:-1:-1;;;2847:25:102;;;;2761:24;;;;2827:17;;-1:-1:-1;;;;;2847:12:102;;;;-1:-1:-1;;2847:25:102;;;;;;;;;;;;;;;:12;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2883:24;2910:8;;:27;;;-1:-1:-1;;;2910:27:102;;;;2827:45;;-1:-1:-1;2883:24:102;;-1:-1:-1;;;;;2910:8:102;;;;:25;;:27;;;;;;;;;;;;;;:8;:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2883:54;-1:-1:-1;2948:22:102;2973:28;2992:9;2883:54;2973:28;:::i;:::-;2948:53;-1:-1:-1;3071:41:102;2948:53;-1:-1:-1;;;;;3115:59:102;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;3071:103:102;-1:-1:-1;3184:41:102;3263:14;-1:-1:-1;;;;;3228:59:102;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;3184:103;;3317:128;3341:11;3366:9;3389:16;3419;3317:10;:128::i;:::-;3298:147;;3474:128;3498:11;3523:9;3546:16;3576;3474:10;:128::i;:::-;3621:16;;3455:147;;-1:-1:-1;2640:1023:102;;-1:-1:-1;;;;;;2640:1023:102:o;9945:515::-;10158:12;;:25;;;-1:-1:-1;;;10158:25:102;;;;10052:23;;;;10138:17;;-1:-1:-1;;;;;10158:12:102;;;;-1:-1:-1;;10158:25:102;;;;;;;;;;;;;;;:12;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10138:45;-1:-1:-1;10138:45:102;-1:-1:-1;;;;;10206:21:102;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10206:21:102;-1:-1:-1;10194:33:102;-1:-1:-1;10261:9:102;-1:-1:-1;;;;;10250:21:102;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10250:21:102;;10237:34;;10287:9;10282:172;10306:9;10302:1;:13;10282:172;;;10351:8;;;:31;;-1:-1:-1;;;10351:31:102;;;;;20565:25:150;;;20606:18;;;20599:34;;;;-1:-1:-1;;;;;10351:8:102;;:25;;20538:18:150;;10351:31:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10336:9;10346:1;10336:12;;;;;;;;:::i;:::-;;;;;;;;;;:46;10412:8;;:31;;-1:-1:-1;;;10412:31:102;;;;;20565:25:150;;;10412:8:102;20606:18:150;;;20599:34;-1:-1:-1;;;;;10412:8:102;;;;:25;;20538:18:150;;10412:31:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10396:10;10407:1;10396:13;;;;;;;;:::i;:::-;;;;;;;;;;:47;10317:3;;;;:::i;:::-;;;;10282:172;;;;10128:332;9945:515;;:::o;4154:1523:126:-;4222:26;4277:5;;-1:-1:-1;;;;;4312:20:126;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;4312:20:126;;;;;;;;;;;;;;;;4299:33;;4342:20;4377:9;4372:1299;4396:6;4392:1;:10;4372:1299;;;4420:20;4443:10;4454:1;4443:13;;;;;;;;:::i;:::-;;;;;;;4420:36;;4478:5;;4484:1;4478:8;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;4470:16;-1:-1:-1;4538:12:126;;;;4470:16;4538:12;:::i;:::-;-1:-1:-1;;;;;4538:17:126;4556:14;;;;;;:::i;:::-;4538:33;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4517:17:126;;;;4500:71;;;;;;;;;;4808:16;;;4795:30;4792:49;4782:806;;-1:-1:-1;;;4970:4:126;4963:80;;;5116:66;5110:4;5103:80;5268:66;5262:4;5255:80;-1:-1:-1;;;5458:4:126;5451:80;5565:4;;5552:18;4782:806;-1:-1:-1;5643:3:126;;4372:1299;;12333:1819:102;12614:12;;:25;;;-1:-1:-1;;;12614:25:102;;;;12432:34;;;;;;12594:17;;-1:-1:-1;;;;;12614:12:102;;-1:-1:-1;;12614:25:102;;;;;;;;;;;;;;:12;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12594:45;-1:-1:-1;12670:4:102;12594:45;-1:-1:-1;;;;;12707:21:102;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12707:21:102;-1:-1:-1;12684:44:102;-1:-1:-1;12775:9:102;-1:-1:-1;;;;;12764:21:102;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12764:21:102;-1:-1:-1;12738:47:102;-1:-1:-1;12833:9:102;-1:-1:-1;;;;;12822:21:102;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12822:21:102;;12795:48;;12859:9;12854:1292;12878:9;12874:1;:13;12854:1292;;;12934:9;;:36;;-1:-1:-1;;;12934:36:102;;;;;17376:25:150;;;-1:-1:-1;;;;;12934:9:102;;;;:33;;17349:18:150;;12934:36:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12908:20;12929:1;12908:23;;;;;;;;:::i;:::-;;;;;;;;;;:62;12984:25;13012:8;;:31;;-1:-1:-1;;;13012:31:102;;;;;20565:25:150;;;20606:18;;;20599:34;;;-1:-1:-1;;;;;13012:8:102;;;;:25;;20538:18:150;;13012:31:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13057:26;13086:8;;:31;;-1:-1:-1;;;13086:31:102;;;;;20565:25:150;;;13086:8:102;20606:18:150;;;20599:34;12984:59:102;;-1:-1:-1;13057:26:102;;-1:-1:-1;;;;;13086:8:102;;;;:25;;20538:18:150;;13086:31:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13163:9;;:83;;-1:-1:-1;;;13163:83:102;;;;;21107:25:150;;;21148:18;;;21141:34;;;21191:18;;;21184:34;;;13057:60:102;;-1:-1:-1;13132:28:102;;-1:-1:-1;;;;;13163:9:102;;;;:36;;21080:18:150;;13163:83:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13277:9;;;:78;;-1:-1:-1;;;13277:78:102;;;;;19738:25:150;;;19779:18;;;19772:50;;;;19838:18;;;19831:34;;;19881:18;;;19874:34;;;13132:114:102;;-1:-1:-1;13260:14:102;;-1:-1:-1;;;;;13277:9:102;;:24;;19710:19:150;;13277:78:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13260:95;-1:-1:-1;13369:19:102;13454:33;13260:95;13454:23;:33;:::i;:::-;13438:13;:9;13448:3;13438:13;:::i;:::-;:49;;;;:::i;:::-;13402:33;13426:9;13402:23;:33;:::i;:::-;13391:45;;:9;:45;:::i;:::-;:97;;;;:::i;:::-;13369:119;;13664:9;13636;13593:20;13614:1;13593:23;;;;;;;;:::i;:::-;;;;;;;13566:9;13533:14;:42;;;;:::i;:::-;:83;;;;:::i;:::-;13532:113;;;;:::i;:::-;:141;;;;:::i;:::-;13503:23;13527:1;13503:26;;;;;;;;:::i;:::-;;;;;;;;;;:170;13711:9;;:79;;-1:-1:-1;;;13711:79:102;;;;;19738:25:150;;;13689:19:102;19779:18:150;;;19772:50;;;19838:18;;;19831:34;;;19881:18;;;19874:34;;;13689:19:102;-1:-1:-1;;;;;13711:9:102;;:24;;19710:19:150;;13711:79:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13689:101;-1:-1:-1;13804:20:102;13895:38;13689:101;13895:23;:38;:::i;:::-;13879:13;:9;13889:3;13879:13;:::i;:::-;:54;;;;:::i;:::-;13838:38;13862:14;13838:23;:38;:::i;:::-;13827:50;;:9;:50;:::i;:::-;:107;;;;:::i;:::-;13804:130;;14125:9;14097;14054:20;14075:1;14054:23;;;;;;;;:::i;:::-;;;;;;;14026:9;13992:15;:43;;;;:::i;:::-;:85;;;;:::i;:::-;13991:115;;;;:::i;:::-;:143;;;;:::i;:::-;13961:24;13986:1;13961:27;;;;;;;;:::i;:::-;;;;;;:173;;;;;12894:1252;;;;;;;12889:3;;;;;:::i;:::-;;;;12854:1292;;;;12584:1568;;12333:1819;;;:::o;10762:453::-;10932:12;;:25;;;-1:-1:-1;;;10932:25:102;;;;10864:36;;10912:17;;-1:-1:-1;;;;;10932:12:102;;;;-1:-1:-1;;10932:25:102;;;;;;;;;;;;;;;:12;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10912:45;-1:-1:-1;10912:45:102;-1:-1:-1;;;;;10993:21:102;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10993:21:102;;10968:46;;11030:9;11025:184;11049:9;11045:1;:13;11025:184;;;11107:8;;:91;;-1:-1:-1;;;11107:91:102;;-1:-1:-1;;;;;11724:32:150;;;11107:91:102;;;11706:51:150;11773:18;;;11766:34;;;11107:8:102;;;;:29;;11679:18:150;;11107:91:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11079:22;11102:1;11079:25;;;;;;;;:::i;:::-;;;;;;;;;;:119;11060:3;;;;:::i;:::-;;;;11025:184;;;;10902:313;10762:453;;;:::o;2013:616:126:-;2125:26;2180:5;;-1:-1:-1;;;;;2215:20:126;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;2215:20:126;;;;;;;;;;;;;;;;2202:33;;2245:18;2278:9;2273:350;2297:6;2293:1;:10;2273:350;;;2321:20;2344:10;2355:1;2344:13;;;;;;;;:::i;:::-;;;;;;;2321:36;;2378:5;;2384:1;2378:8;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;2371:15;-1:-1:-1;2438:11:126;;;;2371:15;2438:11;:::i;:::-;-1:-1:-1;;;;;2438:16:126;2455:13;;;;;;:::i;:::-;2438:31;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2417:17:126;;;2400:69;;;;;2483:70;;;;2511:14;;2503:50;;;;-1:-1:-1;;;2503:50:126;;17614:2:150;2503:50:126;;;17596:21:150;17653:2;17633:18;;;17626:30;-1:-1:-1;;;17672:18:150;;;17665:53;17735:18;;2503:50:126;17412:347:150;2503:50:126;-1:-1:-1;2595:3:126;;2273:350;;;;2153:476;;2013:616;;;;;:::o;3727:245::-;3815:19;3836:17;3855:26;3932:33;3953:4;3959:5;;3932:20;:33::i;:::-;3893:72;;;;-1:-1:-1;3893:72:126;;-1:-1:-1;3727:245:126;-1:-1:-1;;;3727:245:126:o;11501:449:102:-;11669:12;;:25;;;-1:-1:-1;;;11669:25:102;;;;11602:35;;11649:17;;-1:-1:-1;;;;;11669:12:102;;;;-1:-1:-1;;11669:25:102;;;;;;;;;;;;;;;:12;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11649:45;-1:-1:-1;11649:45:102;-1:-1:-1;;;;;11729:21:102;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11729:21:102;;11705:45;;11766:9;11761:183;11785:9;11781:1;:13;11761:183;;;11842:8;;:91;;-1:-1:-1;;;11842:91:102;;-1:-1:-1;;;;;11724:32:150;;;11842:91:102;;;11706:51:150;11773:18;;;11766:34;;;11842:8:102;;;;:29;;11679:18:150;;11842:91:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11815:21;11837:1;11815:24;;;;;;;;:::i;:::-;;;;;;;;;;:118;11796:3;;;;:::i;:::-;;;;11761:183;;4145:2816;4335:24;4371:20;4410:17;4405:2517;4445:9;4433;:21;4405:2517;;;4505:18;4483:2429;4558:16;4545:10;:29;4483:2429;;;4736:8;;:55;;-1:-1:-1;;;4736:55:102;;-1:-1:-1;;;;;12031:32:150;;;4736:55:102;;;12013:51:150;12080:18;;;12073:34;;;12123:18;;;12116:34;;;4736:8:102;;;;:19;;11986:18:150;;4736:55:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4736:55:102;;;;;;;;-1:-1:-1;;4736:55:102;;;;;;;;;;;;:::i;:::-;;;4712:2186;;6835:14;;;;:::i;:::-;;;;6871:8;;4712:2186;4883:18;;;;4879:126;;4934:14;;;;:::i;:::-;;;;4974:8;;;4879:126;5086:9;;5249:13;;;;5288:25;;;;5339:18;;;;5086:293;;-1:-1:-1;;;5086:293:102;;-1:-1:-1;;;;;12460:32:150;;;5086:293:102;;;12442:51:150;12509:18;;;12502:34;;;12552:18;;;12545:34;;;12622:14;;12615:22;12595:18;;;12588:50;12654:19;;;12647:35;;;;12698:19;;;12691:35;5067:16:102;;5086:9;;;;;:29;;12414:19:150;;5086:293:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5067:312;;5526:9;;;;;;;;;-1:-1:-1;;;;;5526:9:102;-1:-1:-1;;;;;5526:34:102;;5590:11;5631:9;5670:10;5710:9;:19;;;5759:9;:13;;;5802:9;:25;;;5857:9;:18;;;5526:375;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13064:32:150;;;;13046:51;;13128:2;13113:18;;13106:34;;;;13171:2;13156:18;;13149:34;;;;13214:2;13199:18;;13192:34;;;;13270:14;13263:22;13257:3;13242:19;;13235:51;13084:3;13302:19;;13295:35;13361:3;13346:19;;13339:35;13033:3;13018:19;;12737:643;5526:375:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5526:375:102;;;;;;;;-1:-1:-1;;5526:375:102;;;;;;;;;;;;:::i;:::-;;;5498:1249;;6676:14;;;;:::i;:::-;;;;6716:8;;;;5498:1249;6022:42;6067:8;;:88;;-1:-1:-1;;;6067:88:102;;-1:-1:-1;;;;;12031:32:150;;;6067:88:102;;;12013:51:150;12080:18;;;12073:34;;;12123:18;;;12116:34;;;6067:8:102;;;;:52;;11986:18:150;;6067:88:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6022:133;;6272:257;;;;;;;;6325:9;6272:257;;;;6375:9;6272:257;;;;6427:11;6272:257;;;;6486:16;6272:257;;;6239:16;6256:12;6239:30;;;;;;;;:::i;:::-;;;;;;:290;;;;6555:14;;;;;:::i;:::-;;;;5954:638;5922:670;4857:1908;4808:1957;4712:2186;4592:12;;;;:::i;:::-;;;;4483:2429;;;-1:-1:-1;4456:11:102;;;;:::i;:::-;;;;4405:2517;;;-1:-1:-1;6938:16:102;;4145:2816;-1:-1:-1;;;;;4145:2816:102:o;7443:2245::-;7633:24;7669:20;7708:17;7703:1946;7743:9;7731;:21;7703:1946;;;7803:18;7781:1858;7856:16;7843:10;:29;7781:1858;;;8035:8;;:156;;-1:-1:-1;;;8035:156:102;;-1:-1:-1;;;;;12031:32:150;;;8035:156:102;;;12013:51:150;12080:18;;;12073:34;;;12123:18;;;12116:34;;;8035:8:102;;;;:26;;11986:18:150;;8035:156:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8035:156:102;;;;;;;;-1:-1:-1;;8035:156:102;;;;;;;;;;;;:::i;:::-;;;8011:1614;;9562:14;;;;:::i;:::-;;;;9598:8;;8011:1614;8292:18;;;;8288:126;;8343:14;;;;:::i;:::-;;;;8383:8;;;8288:126;8560:9;;;;;;;;;-1:-1:-1;;;;;8560:9:102;-1:-1:-1;;;;;8560:34:102;;8624:11;8665:9;8704;:15;;;8749:9;:15;;;8794:9;:13;;;8837:9;:22;;;8889:9;:18;;;8560:373;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13064:32:150;;;;13046:51;;13128:2;13113:18;;13106:34;;;;13171:2;13156:18;;13149:34;;;;13214:2;13199:18;;13192:34;;;;13270:14;13263:22;13257:3;13242:19;;13235:51;13084:3;13302:19;;13295:35;13361:3;13346:19;;13339:35;13033:3;13018:19;;12737:643;8560:373:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8560:373:102;;;;;;;;-1:-1:-1;;8560:373:102;;;;;;;;;;;;:::i;:::-;;;8532:941;;9402:14;;;;:::i;8532:941::-;9102:153;;;;;;;;9155:9;9102:153;;;;9212:16;9102:153;;;9069:16;9086:12;9069:30;;;;;;;;:::i;:::-;;;;;;:186;;;;9281:14;;;;;:::i;:::-;;;;8954:364;8208:1283;8011:1614;7890:12;;;;:::i;:::-;;;;7781:1858;;;-1:-1:-1;7754:11:102;;;;:::i;:::-;;;;7703:1946;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:138:150:-;93:13;;115:31;93:13;115:31;:::i;:::-;14:138;;;:::o;157:386::-;239:8;249:6;303:3;296:4;288:6;284:17;280:27;270:55;;321:1;318;311:12;270:55;-1:-1:-1;344:20:150;;-1:-1:-1;;;;;376:30:150;;373:50;;;419:1;416;409:12;373:50;456:4;448:6;444:17;432:29;;516:3;509:4;499:6;496:1;492:14;484:6;480:27;476:38;473:47;470:67;;;533:1;530;523:12;470:67;157:386;;;;;:::o;548:132::-;624:13;;646:28;624:13;646:28;:::i;685:247::-;744:6;797:2;785:9;776:7;772:23;768:32;765:52;;;813:1;810;803:12;765:52;852:9;839:23;871:31;896:5;871:31;:::i;:::-;921:5;685:247;-1:-1:-1;;;685:247:150:o;937:251::-;1007:6;1060:2;1048:9;1039:7;1035:23;1031:32;1028:52;;;1076:1;1073;1066:12;1028:52;1108:9;1102:16;1127:31;1152:5;1127:31;:::i;1193:671::-;1279:6;1287;1295;1303;1356:3;1344:9;1335:7;1331:23;1327:33;1324:53;;;1373:1;1370;1363:12;1324:53;1412:9;1399:23;1431:31;1456:5;1431:31;:::i;:::-;1481:5;-1:-1:-1;1538:2:150;1523:18;;1510:32;1551:33;1510:32;1551:33;:::i;:::-;1603:7;-1:-1:-1;1662:2:150;1647:18;;1634:32;1675:33;1634:32;1675:33;:::i;:::-;1727:7;-1:-1:-1;1786:2:150;1771:18;;1758:32;1799:33;1758:32;1799:33;:::i;:::-;1193:671;;;;-1:-1:-1;1193:671:150;;-1:-1:-1;;1193:671:150:o;1869:487::-;1986:6;1994;2047:2;2035:9;2026:7;2022:23;2018:32;2015:52;;;2063:1;2060;2053:12;2015:52;2090:23;;-1:-1:-1;;;;;2125:30:150;;2122:50;;;2168:1;2165;2158:12;2122:50;2207:89;2288:7;2279:6;2268:9;2264:22;2207:89;:::i;:::-;2315:8;;2181:115;;-1:-1:-1;1869:487:150;-1:-1:-1;;;;1869:487:150:o;3334:610::-;3451:6;3459;3467;3520:2;3508:9;3499:7;3495:23;3491:32;3488:52;;;3536:1;3533;3526:12;3488:52;3575:9;3562:23;3594:28;3616:5;3594:28;:::i;:::-;3641:5;-1:-1:-1;3697:2:150;3682:18;;3669:32;-1:-1:-1;;;;;3713:30:150;;3710:50;;;3756:1;3753;3746:12;3710:50;3795:89;3876:7;3867:6;3856:9;3852:22;3795:89;:::i;:::-;3334:610;;3903:8;;-1:-1:-1;3769:115:150;;-1:-1:-1;;;;3334:610:150:o;3949:1070::-;4052:6;4105:3;4093:9;4084:7;4080:23;4076:33;4073:53;;;4122:1;4119;4112:12;4073:53;4148:22;;:::i;:::-;4193:40;4223:9;4193:40;:::i;:::-;4186:5;4179:55;4287:2;4276:9;4272:18;4266:25;4261:2;4254:5;4250:14;4243:49;4345:2;4334:9;4330:18;4324:25;4319:2;4312:5;4308:14;4301:49;4403:2;4392:9;4388:18;4382:25;4377:2;4370:5;4366:14;4359:49;4441:47;4483:3;4472:9;4468:19;4441:47;:::i;:::-;4435:3;4424:15;;4417:72;4543:3;4528:19;;;4522:26;4505:15;;;4498:51;4603:3;4588:19;;;4582:26;4565:15;;;4558:51;4663:3;4648:19;;;4642:26;4625:15;;;4618:51;4688:3;4729:18;;;4723:25;4707:14;;;4700:49;4768:3;4809:18;;;4803:25;4787:14;;;4780:49;4848:3;4889:18;;;4883:25;4867:14;;;4860:49;4928:3;4969:18;;;4963:25;4947:14;;;4940:49;;;;-1:-1:-1;4428:5:150;3949:1070;-1:-1:-1;3949:1070:150:o;5024:846::-;5122:6;5175:3;5163:9;5154:7;5150:23;5146:33;5143:53;;;5192:1;5189;5182:12;5143:53;5225:2;5219:9;5267:3;5255:16;;5322:22;;;-1:-1:-1;;;;;5286:34:150;;5283:62;5280:185;;;5387:10;5382:3;5378:20;5375:1;5368:31;5422:4;5419:1;5412:15;5450:4;5447:1;5440:15;5280:185;5485:10;5481:2;5474:22;;5526:9;5520:16;5512:6;5505:32;5591:2;5580:9;5576:18;5570:25;5565:2;5557:6;5553:15;5546:50;5650:2;5639:9;5635:18;5629:25;5624:2;5616:6;5612:15;5605:50;5698:2;5687:9;5683:18;5677:25;5711:28;5733:5;5711:28;:::i;:::-;5767:2;5755:15;;5748:30;5833:3;5818:19;;;5812:26;5794:16;;;5787:52;;;;-1:-1:-1;5759:6:150;5024:846;-1:-1:-1;5024:846:150:o;5875:976::-;5969:6;6022:3;6010:9;6001:7;5997:23;5993:33;5990:53;;;6039:1;6036;6029:12;5990:53;6065:17;;:::i;:::-;6105:40;6135:9;6105:40;:::i;:::-;6098:5;6091:55;6199:2;6188:9;6184:18;6178:25;6173:2;6166:5;6162:14;6155:49;6257:2;6246:9;6242:18;6236:25;6231:2;6224:5;6220:14;6213:49;6315:2;6304:9;6300:18;6294:25;6289:2;6282:5;6278:14;6271:49;6374:3;6363:9;6359:19;6353:26;6347:3;6340:5;6336:15;6329:51;6434:3;6423:9;6419:19;6413:26;6407:3;6400:5;6396:15;6389:51;6473:47;6515:3;6504:9;6500:19;6473:47;:::i;:::-;6467:3;6456:15;;6449:72;6575:3;6560:19;;;6554:26;6537:15;;;6530:51;6600:3;6641:18;;;6635:25;6619:14;;;6612:49;6680:3;6721:18;;;6715:25;6699:14;;;6692:49;6760:3;6801:18;;;6795:25;6779:14;;;6772:49;;;;-1:-1:-1;6460:5:150;5875:976;-1:-1:-1;5875:976:150:o;6856:180::-;6915:6;6968:2;6956:9;6947:7;6943:23;6939:32;6936:52;;;6984:1;6981;6974:12;6936:52;-1:-1:-1;7007:23:150;;6856:180;-1:-1:-1;6856:180:150:o;7041:184::-;7111:6;7164:2;7152:9;7143:7;7139:23;7135:32;7132:52;;;7180:1;7177;7170:12;7132:52;-1:-1:-1;7203:16:150;;7041:184;-1:-1:-1;7041:184:150:o;7339:1514::-;7407:3;7445:5;7439:12;7472:6;7467:3;7460:19;7498:4;7527:2;7522:3;7518:12;7511:19;;7564:2;7557:5;7553:14;7585:1;7595:1233;7609:6;7606:1;7603:13;7595:1233;;;7668:13;;7704:9;;7745;;-1:-1:-1;;;;;7296:31:150;7284:44;;7800:11;;;7794:18;7780:12;;;7773:40;7836:4;7880:11;;;7874:18;7860:12;;;7853:40;7916:4;7960:11;;;7954:18;7940:12;;;7933:40;7996:4;8039:11;;;8033:18;10207:13;10200:21;8094:12;;;10188:34;-1:-1:-1;8174:11:150;;;8168:18;8154:12;;;8147:40;8210:4;8254:11;;;8248:18;8234:12;;;8227:40;8290:4;8334:11;;;8328:18;8314:12;;;8307:40;8371:6;8418:12;;;8412:19;8397:13;;;8390:42;8456:6;8503:12;;;8497:19;8482:13;;;8475:42;8541:6;8588:12;;;8582:19;8567:13;;;8560:42;8626:6;8673:12;;;8667:19;8652:13;;;8645:42;8731:11;;8725:18;8716:6;8707:16;;8700:44;8773:6;8764:16;;;;8803:15;;;;-1:-1:-1;7624:9:150;7595:1233;;;-1:-1:-1;8844:3:150;;7339:1514;-1:-1:-1;;;;;7339:1514:150:o;8858:834::-;8917:3;8955:5;8949:12;8982:6;8977:3;8970:19;9008:4;9049:2;9044:3;9040:12;9074:11;9101;9094:18;;9151:6;9148:1;9144:14;9137:5;9133:26;9121:38;;9193:2;9186:5;9182:14;9214:1;9224:442;9238:6;9235:1;9232:13;9224:442;;;9299:16;;;9287:29;;9339:13;;9419:9;;9412:17;9405:25;9392:39;;9470:11;;9464:18;9375:4;9502:13;;;9495:25;;;9541:45;9572:13;;;9464:18;9541:45;:::i;:::-;9644:12;;;;9533:53;-1:-1:-1;;;9609:15:150;;;;9260:1;9253:9;9224:442;;;-1:-1:-1;9682:4:150;;8858:834;-1:-1:-1;;;;;;;8858:834:150:o;9697:435::-;9750:3;9788:5;9782:12;9815:6;9810:3;9803:19;9841:4;9870:2;9865:3;9861:12;9854:19;;9907:2;9900:5;9896:14;9928:1;9938:169;9952:6;9949:1;9946:13;9938:169;;;10013:13;;10001:26;;10047:12;;;;10082:15;;;;9974:1;9967:9;9938:169;;10233:471;10274:3;10312:5;10306:12;10339:6;10334:3;10327:19;10364:1;10374:162;10388:6;10385:1;10382:13;10374:162;;;10450:4;10506:13;;;10502:22;;10496:29;10478:11;;;10474:20;;10467:59;10403:12;10374:162;;;10554:6;10551:1;10548:13;10545:87;;;10620:1;10613:4;10604:6;10599:3;10595:16;10591:27;10584:38;10545:87;-1:-1:-1;10686:2:150;10665:15;-1:-1:-1;;10661:29:150;10652:39;;;;10693:4;10648:50;;10233:471;-1:-1:-1;;10233:471:150:o;11048:271::-;11231:6;11223;11218:3;11205:33;11187:3;11257:16;;11282:13;;;11257:16;11048:271;-1:-1:-1;11048:271:150:o;13385:2108::-;13770:2;13822:21;;;13892:13;;13795:18;;;13914:22;;;13741:4;;13770:2;13955;;13973:18;;;;14010:4;14037:15;;;13741:4;14080:1278;14094:6;14091:1;14088:13;14080:1278;;;14153:13;;14189:9;;14230;;-1:-1:-1;;;;;7296:31:150;7284:44;;14285:11;;;14279:18;14265:12;;;14258:40;14338:11;;;14332:18;14318:12;;;14311:40;14391:11;;;14385:18;14371:12;;;14364:40;14427:4;14471:11;;;14465:18;14451:12;;;14444:40;-1:-1:-1;14551:11:150;;;14545:18;14531:12;;;14524:40;14587:4;14630:11;;;14624:18;10207:13;10200:21;14685:12;;;10188:34;14721:4;14765:11;;;14759:18;14745:12;;;14738:40;14802:6;14849:12;;;14843:19;14828:13;;;14821:42;14887:6;14934:12;;;14928:19;14913:13;;;14906:42;14972:6;15019:12;;;15013:19;14998:13;;;14991:42;;;;15074:11;;;15068:18;10784:12;;15152:6;15143:16;;10772:25;10846:4;10835:16;;10829:23;10813:14;;;10806:47;10902:4;10891:16;;10885:23;10869:14;;;10862:47;10972:4;10961:16;;10955:23;10948:31;10941:39;10925:14;;;10918:63;11019:16;11013:23;10997:14;;;10990:47;15204:11;;;15198:18;15189:6;15180:16;;15173:44;15261:11;;15255:18;15246:6;15237:16;;15230:44;15303:6;15294:16;;;;15333:15;;;;-1:-1:-1;14109:9:150;14080:1278;;;-1:-1:-1;;15394:19:150;;;15374:18;;;15367:47;-1:-1:-1;15431:56:150;15398:3;15475:6;15431:56;:::i;:::-;15423:64;13385:2108;-1:-1:-1;;;;;;;13385:2108:150:o;15498:317::-;15727:2;15716:9;15709:21;15690:4;15747:62;15805:2;15794:9;15790:18;15782:6;15747:62;:::i;15820:261::-;15999:2;15988:9;15981:21;15962:4;16019:56;16071:2;16060:9;16056:18;16048:6;16019:56;:::i;16086:465::-;16343:2;16332:9;16325:21;16306:4;16369:56;16421:2;16410:9;16406:18;16398:6;16369:56;:::i;:::-;16473:9;16465:6;16461:22;16456:2;16445:9;16441:18;16434:50;16501:44;16538:6;16530;16501:44;:::i;:::-;16493:52;16086:465;-1:-1:-1;;;;;16086:465:150:o;16556:669::-;16891:2;16880:9;16873:21;16854:4;16917:56;16969:2;16958:9;16954:18;16946:6;16917:56;:::i;:::-;17021:9;17013:6;17009:22;17004:2;16993:9;16989:18;16982:50;17055:44;17092:6;17084;17055:44;:::i;:::-;17041:58;;17147:9;17139:6;17135:22;17130:2;17119:9;17115:18;17108:50;17175:44;17212:6;17204;17175:44;:::i;:::-;17167:52;16556:669;-1:-1:-1;;;;;;16556:669:150:o;18637:871::-;18825:4;18873:2;18862:9;18858:18;18903:6;18892:9;18885:25;18929:2;18967;18962;18951:9;18947:18;18940:30;18990:6;19025;19019:13;19056:6;19048;19041:22;19094:2;19083:9;19079:18;19072:25;;19156:2;19146:6;19143:1;19139:14;19128:9;19124:30;19120:39;19106:53;;19194:2;19186:6;19182:15;19215:1;19225:254;19239:6;19236:1;19233:13;19225:254;;;19332:2;19328:7;19316:9;19308:6;19304:22;19300:36;19295:3;19288:49;19360:39;19392:6;19383;19377:13;19360:39;:::i;:::-;19350:49;-1:-1:-1;19457:12:150;;;;19422:15;;;;19261:1;19254:9;19225:254;;;-1:-1:-1;19496:6:150;;18637:871;-1:-1:-1;;;;;;;;18637:871:150:o;19919:459::-;20204:6;20193:9;20186:25;20247:6;20242:2;20231:9;20227:18;20220:34;20290:2;20285;20274:9;20270:18;20263:30;20167:4;20310:62;20368:2;20357:9;20353:18;20345:6;20310:62;:::i;21229:521::-;21306:4;21312:6;21372:11;21359:25;21466:2;21462:7;21451:8;21435:14;21431:29;21427:43;21407:18;21403:68;21393:96;;21485:1;21482;21475:12;21393:96;21512:33;;21564:20;;;-1:-1:-1;;;;;;21596:30:150;;21593:50;;;21639:1;21636;21629:12;21593:50;21672:4;21660:17;;-1:-1:-1;21703:14:150;21699:27;;;21689:38;;21686:58;;;21740:1;21737;21730:12;21755:329;21852:4;21910:11;21897:25;22004:3;22000:8;21989;21973:14;21969:29;21965:44;21945:18;21941:69;21931:97;;22024:1;22021;22014:12;21931:97;22045:33;;;;;21755:329;-1:-1:-1;;21755:329:150:o;22089:323::-;22181:4;22239:11;22226:25;22333:2;22329:7;22318:8;22302:14;22298:29;22294:43;22274:18;22270:68;22260:96;;22352:1;22349;22342:12;22417:322;22508:4;22566:11;22553:25;22660:2;22656:7;22645:8;22629:14;22625:29;22621:43;22601:18;22597:68;22587:96;;22679:1;22676;22669:12;22744:349;22816:2;22810:9;22858:3;22846:16;;-1:-1:-1;;;;;22877:34:150;;22913:22;;;22874:62;22871:185;;;22978:10;22973:3;22969:20;22966:1;22959:31;23013:4;23010:1;23003:15;23041:4;23038:1;23031:15;22871:185;23072:2;23065:22;22744:349;:::o;23098:344::-;23165:2;23159:9;23207:3;23195:16;;-1:-1:-1;;;;;23226:34:150;;23262:22;;;23223:62;23220:185;;;23327:10;23322:3;23318:20;23315:1;23308:31;23362:4;23359:1;23352:15;23390:4;23387:1;23380:15;23447:217;23487:1;23513;23503:132;;23557:10;23552:3;23548:20;23545:1;23538:31;23592:4;23589:1;23582:15;23620:4;23617:1;23610:15;23503:132;-1:-1:-1;23649:9:150;;23447:217::o;23669:168::-;23709:7;23775:1;23771;23767:6;23763:14;23760:1;23757:21;23752:1;23745:9;23738:17;23734:45;23731:71;;;23782:18;;:::i;:::-;-1:-1:-1;23822:9:150;;23669:168::o;23842:125::-;23882:4;23910:1;23907;23904:8;23901:34;;;23915:18;;:::i;:::-;-1:-1:-1;23952:9:150;;23842:125::o;23972:135::-;24011:3;-1:-1:-1;;24032:17:150;;24029:43;;;24052:18;;:::i;:::-;-1:-1:-1;24099:1:150;24088:13;;23972:135::o;24112:127::-;24173:10;24168:3;24164:20;24161:1;24154:31;24204:4;24201:1;24194:15;24228:4;24225:1;24218:15;24244:127;24305:10;24300:3;24296:20;24293:1;24286:31;24336:4;24333:1;24326:15;24360:4;24357:1;24350:15;24376:127;24437:10;24432:3;24428:20;24425:1;24418:31;24468:4;24465:1;24458:15;24492:4;24489:1;24482:15;24508:131;-1:-1:-1;;;;;24583:31:150;;24573:42;;24563:70;;24629:1;24626;24619:12;24563:70;24508:131;:::o;24644:118::-;24730:5;24723:13;24716:21;24709:5;24706:32;24696:60;;24752:1;24749;24742:12","linkReferences":{}},"methodIdentifiers":{"aggregate((address,bytes)[])":"252dba42","aggregate3((address,bool,bytes)[])":"82ad56cb","aggregate3Value((address,bool,uint256,bytes)[])":"174dea71","blockAndAggregate((address,bytes)[])":"c3077fa9","getBasefee()":"3e64a696","getBlockHash(uint256)":"ee82ac5e","getBlockNumber()":"42cbb15c","getChainId()":"3408e470","getCurrentBlockCoinbase()":"a8b0574e","getCurrentBlockDifficulty()":"72425d9d","getCurrentBlockGasLimit()":"86d516e8","getCurrentBlockTimestamp()":"0f28c97d","getEthBalance(address)":"4d2301cc","getFirstEmptyTradeIndexes(address)":"977ca604","getLastBlockHash()":"27e86d6e","getLongShortRatios()":"582b175f","getMargins()":"8693da43","getOpenLimitOrdersCounts(address)":"ed4a96a9","getPositions(address)":"3eeb530e","tryAggregate(bool,(address,bytes)[])":"bce38bd7","tryBlockAndAggregate(bool,(address,bytes)[])":"399542e9","updateContracts(address,address,address,address)":"0b751279"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.7+commit.e28d00a7\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_storage\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_pairInfos\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_pairsStorage\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_trading\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"internalType\":\"struct Multicall3.Call[]\",\"name\":\"calls\",\"type\":\"tuple[]\"}],\"name\":\"aggregate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"bytes[]\",\"name\":\"returnData\",\"type\":\"bytes[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"allowFailure\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"internalType\":\"struct Multicall3.Call3[]\",\"name\":\"calls\",\"type\":\"tuple[]\"}],\"name\":\"aggregate3\",\"outputs\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"internalType\":\"struct Multicall3.Result[]\",\"name\":\"returnData\",\"type\":\"tuple[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"allowFailure\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"internalType\":\"struct Multicall3.Call3Value[]\",\"name\":\"calls\",\"type\":\"tuple[]\"}],\"name\":\"aggregate3Value\",\"outputs\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"internalType\":\"struct Multicall3.Result[]\",\"name\":\"returnData\",\"type\":\"tuple[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"internalType\":\"struct Multicall3.Call[]\",\"name\":\"calls\",\"type\":\"tuple[]\"}],\"name\":\"blockAndAggregate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"internalType\":\"struct Multicall3.Result[]\",\"name\":\"returnData\",\"type\":\"tuple[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBasefee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"basefee\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"name\":\"getBlockHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBlockNumber\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getChainId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"chainid\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCurrentBlockCoinbase\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"coinbase\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCurrentBlockDifficulty\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"difficulty\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCurrentBlockGasLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"gaslimit\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCurrentBlockTimestamp\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"getEthBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"userAddress\",\"type\":\"address\"}],\"name\":\"getFirstEmptyTradeIndexes\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"firstEmptyTradeIndexes\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getLastBlockHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getLongShortRatios\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"longRatio\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"shortRatio\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getMargins\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"rolloverFeePerBlockP\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"rolloverFeePerBlockLong\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"rolloverFeePerBlockShort\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"userAddress\",\"type\":\"address\"}],\"name\":\"getOpenLimitOrdersCounts\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"openLimitOrdersCounts\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"userAddress\",\"type\":\"address\"}],\"name\":\"getPositions\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"trader\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"pairIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"initialPosToken\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"positionSizeUSDC\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"openPrice\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"buy\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"leverage\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tp\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"sl\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"internalType\":\"struct ITradingStorage.Trade\",\"name\":\"trade\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"openInterestUSDC\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tpLastUpdated\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"slLastUpdated\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"beingMarketClosed\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"lossProtection\",\"type\":\"uint256\"}],\"internalType\":\"struct ITradingStorage.TradeInfo\",\"name\":\"tradeInfo\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"rolloverFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidationPrice\",\"type\":\"uint256\"}],\"internalType\":\"struct IMulticall.AggregatedTrade[]\",\"name\":\"\",\"type\":\"tuple[]\"},{\"components\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"trader\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"pairIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"positionSize\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"buy\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"leverage\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tp\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"sl\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"slippageP\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"block\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"executionFee\",\"type\":\"uint256\"}],\"internalType\":\"struct ITradingStorage.OpenLimitOrder\",\"name\":\"order\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"liquidationPrice\",\"type\":\"uint256\"}],\"internalType\":\"struct IMulticall.AggregatedOrder[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"requireSuccess\",\"type\":\"bool\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"internalType\":\"struct Multicall3.Call[]\",\"name\":\"calls\",\"type\":\"tuple[]\"}],\"name\":\"tryAggregate\",\"outputs\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"internalType\":\"struct Multicall3.Result[]\",\"name\":\"returnData\",\"type\":\"tuple[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"requireSuccess\",\"type\":\"bool\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"}],\"internalType\":\"struct Multicall3.Call[]\",\"name\":\"calls\",\"type\":\"tuple[]\"}],\"name\":\"tryBlockAndAggregate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"blockHash\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnData\",\"type\":\"bytes\"}],\"internalType\":\"struct Multicall3.Result[]\",\"name\":\"returnData\",\"type\":\"tuple[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_storage\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_pairInfos\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_pairsStorage\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_trading\",\"type\":\"address\"}],\"name\":\"updateContracts\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"aggregate((address,bytes)[])\":{\"params\":{\"calls\":\"An array of Call structs\"},\"returns\":{\"blockNumber\":\"The block number where the calls were executed\",\"returnData\":\"An array of bytes containing the responses\"}},\"aggregate3((address,bool,bytes)[])\":{\"params\":{\"calls\":\"An array of Call3 structs\"},\"returns\":{\"returnData\":\"An array of Result structs\"}},\"aggregate3Value((address,bool,uint256,bytes)[])\":{\"params\":{\"calls\":\"An array of Call3Value structs\"},\"returns\":{\"returnData\":\"An array of Result structs\"}},\"blockAndAggregate((address,bytes)[])\":{\"params\":{\"calls\":\"An array of Call structs\"},\"returns\":{\"blockHash\":\"The hash of the block where the calls were executed\",\"blockNumber\":\"The block number where the calls were executed\",\"returnData\":\"An array of Result structs\"}},\"constructor\":{\"details\":\"This constructor is used to set the addresses of the storage and pair infos contracts\",\"params\":{\"_pairInfos\":\"The address of the pair infos contract\",\"_pairsStorage\":\"The address of the pair storage contract\",\"_storage\":\"The address of the trading storage contract\",\"_trading\":\"The address of the trading contract\"}},\"getBlockHash(uint256)\":{\"params\":{\"blockNumber\":\"The block number\"}},\"getFirstEmptyTradeIndexes(address)\":{\"details\":\"This function is used to get all empty trade indexes for a given user address\",\"params\":{\"userAddress\":\"The address of the user\"},\"returns\":{\"firstEmptyTradeIndexes\":\"An array of first empty trade indexes\"}},\"getLongShortRatios()\":{\"details\":\"This function is used to get long, and short ratios for all pairs\",\"returns\":{\"longRatio\":\"An array of long ratios\",\"shortRatio\":\"An array of short ratios\"}},\"getMargins()\":{\"details\":\"This function is used to get margins for all pairs\",\"returns\":{\"rolloverFeePerBlockLong\":\"An array of rollover fee per block for long\",\"rolloverFeePerBlockP\":\"An array of rollover fee per block\",\"rolloverFeePerBlockShort\":\"An array of rollover fee per block for short in 1e10 precision\"}},\"getOpenLimitOrdersCounts(address)\":{\"details\":\"This function is used to get all order counts for a given user address\",\"params\":{\"userAddress\":\"The address of the user\"},\"returns\":{\"openLimitOrdersCounts\":\"An array of open limit orders counts\"}},\"getPositions(address)\":{\"details\":\"This function is used to get the aggregated trades and orders for a given user address *\",\"params\":{\"userAddress\":\"The address of the user\"},\"returns\":{\"_0\":\"AggregatedTrade An array of aggregated trades\",\"_1\":\"AggregatedOrder An array of aggregated orders\"}},\"tryAggregate(bool,(address,bytes)[])\":{\"params\":{\"calls\":\"An array of Call structs\",\"requireSuccess\":\"If true, require all calls to succeed\"},\"returns\":{\"returnData\":\"An array of Result structs\"}},\"tryBlockAndAggregate(bool,(address,bytes)[])\":{\"params\":{\"calls\":\"An array of Call structs\"},\"returns\":{\"blockHash\":\"The hash of the block where the calls were executed\",\"blockNumber\":\"The block number where the calls were executed\",\"returnData\":\"An array of Result structs\"}},\"updateContracts(address,address,address,address)\":{\"details\":\"This function is used to change the addresses of the storage and pair infos contracts. Only gov can call it.\",\"params\":{\"_pairInfos\":\"The address of the pair infos contract\",\"_pairsStorage\":\"The address of the pair storage contract\",\"_storage\":\"The address of the trading storage contract\",\"_trading\":\"The address of the trading contract\"}}},\"title\":\"Avantis Multicall\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"aggregate((address,bytes)[])\":{\"notice\":\"Backwards-compatible call aggregation with Multicall\"},\"aggregate3((address,bool,bytes)[])\":{\"notice\":\"Aggregate calls, ensuring each returns success if required\"},\"aggregate3Value((address,bool,uint256,bytes)[])\":{\"notice\":\"Aggregate calls with a msg valueReverts if msg.value is less than the sum of the call values\"},\"blockAndAggregate((address,bytes)[])\":{\"notice\":\"Backwards-compatible with Multicall2Aggregate calls and allow failures using tryAggregate\"},\"constructor\":{\"notice\":\"Constructor\"},\"getBasefee()\":{\"notice\":\"Gets the base fee of the given blockCan revert if the BASEFEE opcode is not implemented by the given chain\"},\"getBlockHash(uint256)\":{\"notice\":\"Returns the block hash for the given block number\"},\"getBlockNumber()\":{\"notice\":\"Returns the block number\"},\"getChainId()\":{\"notice\":\"Returns the chain id\"},\"getCurrentBlockCoinbase()\":{\"notice\":\"Returns the block coinbase\"},\"getCurrentBlockDifficulty()\":{\"notice\":\"Returns the block difficulty\"},\"getCurrentBlockGasLimit()\":{\"notice\":\"Returns the block gas limit\"},\"getCurrentBlockTimestamp()\":{\"notice\":\"Returns the block timestamp\"},\"getEthBalance(address)\":{\"notice\":\"Returns the (ETH) balance of a given address\"},\"getFirstEmptyTradeIndexes(address)\":{\"notice\":\"Get empty trade indexes for a given user address\"},\"getLastBlockHash()\":{\"notice\":\"Returns the block hash of the last block\"},\"getLongShortRatios()\":{\"notice\":\"Gets long, and short ratios for all pairs\"},\"getMargins()\":{\"notice\":\"Get margins for all pairs\"},\"getOpenLimitOrdersCounts(address)\":{\"notice\":\"Get order counts for a given user address\"},\"getPositions(address)\":{\"notice\":\"Gets the aggregated trades and orders for a given user address\"},\"tryAggregate(bool,(address,bytes)[])\":{\"notice\":\"Backwards-compatible with Multicall2Aggregate calls without requiring success\"},\"tryBlockAndAggregate(bool,(address,bytes)[])\":{\"notice\":\"Backwards-compatible with Multicall2Aggregate calls and allow failures using tryAggregate\"},\"updateContracts(address,address,address,address)\":{\"notice\":\"Updates the addresses of the storage and pair infos contracts\"}},\"notice\":\"Built on top of MultiCall3. Helpers deep aggregate results from multiple function calls.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/Multicall.sol\":\"Multicall\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@chainlink/=lib/chainlink/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":chainlink/=lib/chainlink/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":pyth-sdk-solidity/=lib/pyth-sdk-solidity/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5\",\"dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53\"]},\"src/Multicall.sol\":{\"keccak256\":\"0xa952ba46292834373e45869c3b62a599a4faf8c3c3df6d55fcbcc62c6e3efbad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://082f468ce1473203fe736c7c0b5a28f294995874dc1940918b23f33a32bf313f\",\"dweb:/ipfs/QmXEuiBNNZ3ijVzfBYd8RBzMviTCmMpsmRerYYVBSbtxcy\"]},\"src/interfaces/ICallbacks.sol\":{\"keccak256\":\"0x29a3caaa16b7a336e7670a433468716569c2bb227691bf21b53279be0d43d9ac\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://682f1631658e298794d902b2fe61a66eb72363131cc08cb39bea49f8084c7712\",\"dweb:/ipfs/QmZngteZUFLYRQrx2QEEoTFvov5FpjAGntS53GrfTqgysA\"]},\"src/interfaces/IExecute.sol\":{\"keccak256\":\"0x189f78c460465dcdaab444248da17059e96e76e862bb08540e7054296512b9b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c757cbde37e2932a25fca5ed1ef8fdd49cf1521b8d9f1cfa1d512d1e94862a3b\",\"dweb:/ipfs/QmVvbrLcDBFo9oMdNqaYTmhhtgnH2WzgX8nbMTKuJU6Y1m\"]},\"src/interfaces/IMulticall.sol\":{\"keccak256\":\"0x7ed35fffa72f8a3e5294240a0e5611391a69082a297a5e8a1a648e5fbd5d19f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04f4e13341861d64e70b2c446479d1e11fe50894fd0163bd49a107f5067b34db\",\"dweb:/ipfs/QmfQXdXKks2CXwsU8T5zsyhmV7pHqLAVtuHSrLy5jW98N3\"]},\"src/interfaces/IPairInfos.sol\":{\"keccak256\":\"0xf9fe387fdcef5ddd217632154ff64741f6b2d7f944b45e985a9a326799f13003\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a214b58dc1ec86de11ed4fed6e63afd51b793a1bbdca99e1d46abf4efa931d43\",\"dweb:/ipfs/QmckDVNNeMv6MdYgih78SAfhFNtGtrM4D4wRMdaAE2riCu\"]},\"src/interfaces/IPairStorage.sol\":{\"keccak256\":\"0x5263d6aeb4ddae325132a38df89f9cbdc4432f44b2d4a657500b29a8b1705fdb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a0a5a03ab14963ec685d8b2c8f2833755136abd84074100eec057fb234ec2616\",\"dweb:/ipfs/QmdV2B3wVYhtkCT6ajU8HKsj824LXCBuF82dkhco6sGPch\"]},\"src/interfaces/IPausable.sol\":{\"keccak256\":\"0x0cf760757842bd332ce27fac78b8dc0f7a36406529a213954bc463c2be174ecd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c69ee15b814b76caed732b47b729d1c2b361ed158b85220da30ea9aac893ad0e\",\"dweb:/ipfs/QmbF9HWVA7DCtNzK2LkRdvhMV1TuqTf9dzUzAKwQadHZnY\"]},\"src/interfaces/IPriceAggregator.sol\":{\"keccak256\":\"0xd07d98635205ba6650fc5427145869f1ec803fb370f0f3dad836c7b0ce2686a5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e3cef3626f7384e4a3876137f27716c0ef9b4a13e8443d5591b94a09f4c211a\",\"dweb:/ipfs/QmUJSKSDNUxuxz42jo9hbNrHncsyw41hJvk7kZqGSeNL7c\"]},\"src/interfaces/ITradingStorage.sol\":{\"keccak256\":\"0x43ffc276291a1a728e97af0eab1057c55ed8f4180a79ea8023384a33ec135ba6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8f3aca6840be01265d57ad5f141cec52b238bec7a4b9feb39a428727685c0e8b\",\"dweb:/ipfs/QmcFUiJFw6A8jhxKVUMY7jjxQiqBaTSmdkcehqSLtnN1pg\"]},\"src/interfaces/IVaultManager.sol\":{\"keccak256\":\"0x167daac6e885fa066e910a79d7f602ba52f321141af1992b83c842fe264e9219\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://77790089333c8783cc836eec99e4dc10f6554f0c6a3ea4f7fd2c727e4d4605e6\",\"dweb:/ipfs/QmNRP5WJKfwDu4S5TK8fQc6MGk8JeDf51DNeevtLfjQnoJ\"]},\"src/library/Multicall3.sol\":{\"keccak256\":\"0xc23235f532cc10f88e358fd124fcddcafe59ef8d9a507fc27d3ae4a73b19895a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f3a40172674448e913c0cb826cd49fcd37ee9955933785ff828161d19a4ad266\",\"dweb:/ipfs/QmbDhJ9AHSP9wdzfMTQd9zBTG9cBeg6mSkDMat1osxRNrX\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.7+commit.e28d00a7"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_storage","type":"address"},{"internalType":"address","name":"_pairInfos","type":"address"},{"internalType":"address","name":"_pairsStorage","type":"address"},{"internalType":"address","name":"_trading","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"struct Multicall3.Call[]","name":"calls","type":"tuple[]","components":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"callData","type":"bytes"}]}],"stateMutability":"payable","type":"function","name":"aggregate","outputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"bytes[]","name":"returnData","type":"bytes[]"}]},{"inputs":[{"internalType":"struct Multicall3.Call3[]","name":"calls","type":"tuple[]","components":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bool","name":"allowFailure","type":"bool"},{"internalType":"bytes","name":"callData","type":"bytes"}]}],"stateMutability":"payable","type":"function","name":"aggregate3","outputs":[{"internalType":"struct Multicall3.Result[]","name":"returnData","type":"tuple[]","components":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"returnData","type":"bytes"}]}]},{"inputs":[{"internalType":"struct Multicall3.Call3Value[]","name":"calls","type":"tuple[]","components":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bool","name":"allowFailure","type":"bool"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"callData","type":"bytes"}]}],"stateMutability":"payable","type":"function","name":"aggregate3Value","outputs":[{"internalType":"struct Multicall3.Result[]","name":"returnData","type":"tuple[]","components":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"returnData","type":"bytes"}]}]},{"inputs":[{"internalType":"struct Multicall3.Call[]","name":"calls","type":"tuple[]","components":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"callData","type":"bytes"}]}],"stateMutability":"payable","type":"function","name":"blockAndAggregate","outputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"},{"internalType":"struct Multicall3.Result[]","name":"returnData","type":"tuple[]","components":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"returnData","type":"bytes"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getBasefee","outputs":[{"internalType":"uint256","name":"basefee","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"stateMutability":"view","type":"function","name":"getBlockHash","outputs":[{"internalType":"bytes32","name":"blockHash","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getBlockNumber","outputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getChainId","outputs":[{"internalType":"uint256","name":"chainid","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getCurrentBlockCoinbase","outputs":[{"internalType":"address","name":"coinbase","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getCurrentBlockDifficulty","outputs":[{"internalType":"uint256","name":"difficulty","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getCurrentBlockGasLimit","outputs":[{"internalType":"uint256","name":"gaslimit","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getCurrentBlockTimestamp","outputs":[{"internalType":"uint256","name":"timestamp","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"stateMutability":"view","type":"function","name":"getEthBalance","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"userAddress","type":"address"}],"stateMutability":"view","type":"function","name":"getFirstEmptyTradeIndexes","outputs":[{"internalType":"uint256[]","name":"firstEmptyTradeIndexes","type":"uint256[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getLastBlockHash","outputs":[{"internalType":"bytes32","name":"blockHash","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getLongShortRatios","outputs":[{"internalType":"uint256[]","name":"longRatio","type":"uint256[]"},{"internalType":"uint256[]","name":"shortRatio","type":"uint256[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getMargins","outputs":[{"internalType":"uint256[]","name":"rolloverFeePerBlockP","type":"uint256[]"},{"internalType":"uint256[]","name":"rolloverFeePerBlockLong","type":"uint256[]"},{"internalType":"uint256[]","name":"rolloverFeePerBlockShort","type":"uint256[]"}]},{"inputs":[{"internalType":"address","name":"userAddress","type":"address"}],"stateMutability":"view","type":"function","name":"getOpenLimitOrdersCounts","outputs":[{"internalType":"uint256[]","name":"openLimitOrdersCounts","type":"uint256[]"}]},{"inputs":[{"internalType":"address","name":"userAddress","type":"address"}],"stateMutability":"view","type":"function","name":"getPositions","outputs":[{"internalType":"struct IMulticall.AggregatedTrade[]","name":"","type":"tuple[]","components":[{"internalType":"struct ITradingStorage.Trade","name":"trade","type":"tuple","components":[{"internalType":"address","name":"trader","type":"address"},{"internalType":"uint256","name":"pairIndex","type":"uint256"},{"internalType":"uint256","name":"index","type":"uint256"},{"internalType":"uint256","name":"initialPosToken","type":"uint256"},{"internalType":"uint256","name":"positionSizeUSDC","type":"uint256"},{"internalType":"uint256","name":"openPrice","type":"uint256"},{"internalType":"bool","name":"buy","type":"bool"},{"internalType":"uint256","name":"leverage","type":"uint256"},{"internalType":"uint256","name":"tp","type":"uint256"},{"internalType":"uint256","name":"sl","type":"uint256"},{"internalType":"uint256","name":"timestamp","type":"uint256"}]},{"internalType":"struct ITradingStorage.TradeInfo","name":"tradeInfo","type":"tuple","components":[{"internalType":"uint256","name":"openInterestUSDC","type":"uint256"},{"internalType":"uint256","name":"tpLastUpdated","type":"uint256"},{"internalType":"uint256","name":"slLastUpdated","type":"uint256"},{"internalType":"bool","name":"beingMarketClosed","type":"bool"},{"internalType":"uint256","name":"lossProtection","type":"uint256"}]},{"internalType":"uint256","name":"rolloverFee","type":"uint256"},{"internalType":"uint256","name":"liquidationPrice","type":"uint256"}]},{"internalType":"struct IMulticall.AggregatedOrder[]","name":"","type":"tuple[]","components":[{"internalType":"struct ITradingStorage.OpenLimitOrder","name":"order","type":"tuple","components":[{"internalType":"address","name":"trader","type":"address"},{"internalType":"uint256","name":"pairIndex","type":"uint256"},{"internalType":"uint256","name":"index","type":"uint256"},{"internalType":"uint256","name":"positionSize","type":"uint256"},{"internalType":"bool","name":"buy","type":"bool"},{"internalType":"uint256","name":"leverage","type":"uint256"},{"internalType":"uint256","name":"tp","type":"uint256"},{"internalType":"uint256","name":"sl","type":"uint256"},{"internalType":"uint256","name":"price","type":"uint256"},{"internalType":"uint256","name":"slippageP","type":"uint256"},{"internalType":"uint256","name":"block","type":"uint256"},{"internalType":"uint256","name":"executionFee","type":"uint256"}]},{"internalType":"uint256","name":"liquidationPrice","type":"uint256"}]}]},{"inputs":[{"internalType":"bool","name":"requireSuccess","type":"bool"},{"internalType":"struct Multicall3.Call[]","name":"calls","type":"tuple[]","components":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"callData","type":"bytes"}]}],"stateMutability":"payable","type":"function","name":"tryAggregate","outputs":[{"internalType":"struct Multicall3.Result[]","name":"returnData","type":"tuple[]","components":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"returnData","type":"bytes"}]}]},{"inputs":[{"internalType":"bool","name":"requireSuccess","type":"bool"},{"internalType":"struct Multicall3.Call[]","name":"calls","type":"tuple[]","components":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"callData","type":"bytes"}]}],"stateMutability":"payable","type":"function","name":"tryBlockAndAggregate","outputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"},{"internalType":"struct Multicall3.Result[]","name":"returnData","type":"tuple[]","components":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"returnData","type":"bytes"}]}]},{"inputs":[{"internalType":"address","name":"_storage","type":"address"},{"internalType":"address","name":"_pairInfos","type":"address"},{"internalType":"address","name":"_pairsStorage","type":"address"},{"internalType":"address","name":"_trading","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"updateContracts"}],"devdoc":{"kind":"dev","methods":{"aggregate((address,bytes)[])":{"params":{"calls":"An array of Call structs"},"returns":{"blockNumber":"The block number where the calls were executed","returnData":"An array of bytes containing the responses"}},"aggregate3((address,bool,bytes)[])":{"params":{"calls":"An array of Call3 structs"},"returns":{"returnData":"An array of Result structs"}},"aggregate3Value((address,bool,uint256,bytes)[])":{"params":{"calls":"An array of Call3Value structs"},"returns":{"returnData":"An array of Result structs"}},"blockAndAggregate((address,bytes)[])":{"params":{"calls":"An array of Call structs"},"returns":{"blockHash":"The hash of the block where the calls were executed","blockNumber":"The block number where the calls were executed","returnData":"An array of Result structs"}},"constructor":{"details":"This constructor is used to set the addresses of the storage and pair infos contracts","params":{"_pairInfos":"The address of the pair infos contract","_pairsStorage":"The address of the pair storage contract","_storage":"The address of the trading storage contract","_trading":"The address of the trading contract"}},"getBlockHash(uint256)":{"params":{"blockNumber":"The block number"}},"getFirstEmptyTradeIndexes(address)":{"details":"This function is used to get all empty trade indexes for a given user address","params":{"userAddress":"The address of the user"},"returns":{"firstEmptyTradeIndexes":"An array of first empty trade indexes"}},"getLongShortRatios()":{"details":"This function is used to get long, and short ratios for all pairs","returns":{"longRatio":"An array of long ratios","shortRatio":"An array of short ratios"}},"getMargins()":{"details":"This function is used to get margins for all pairs","returns":{"rolloverFeePerBlockLong":"An array of rollover fee per block for long","rolloverFeePerBlockP":"An array of rollover fee per block","rolloverFeePerBlockShort":"An array of rollover fee per block for short in 1e10 precision"}},"getOpenLimitOrdersCounts(address)":{"details":"This function is used to get all order counts for a given user address","params":{"userAddress":"The address of the user"},"returns":{"openLimitOrdersCounts":"An array of open limit orders counts"}},"getPositions(address)":{"details":"This function is used to get the aggregated trades and orders for a given user address *","params":{"userAddress":"The address of the user"},"returns":{"_0":"AggregatedTrade An array of aggregated trades","_1":"AggregatedOrder An array of aggregated orders"}},"tryAggregate(bool,(address,bytes)[])":{"params":{"calls":"An array of Call structs","requireSuccess":"If true, require all calls to succeed"},"returns":{"returnData":"An array of Result structs"}},"tryBlockAndAggregate(bool,(address,bytes)[])":{"params":{"calls":"An array of Call structs"},"returns":{"blockHash":"The hash of the block where the calls were executed","blockNumber":"The block number where the calls were executed","returnData":"An array of Result structs"}},"updateContracts(address,address,address,address)":{"details":"This function is used to change the addresses of the storage and pair infos contracts. Only gov can call it.","params":{"_pairInfos":"The address of the pair infos contract","_pairsStorage":"The address of the pair storage contract","_storage":"The address of the trading storage contract","_trading":"The address of the trading contract"}}},"version":1},"userdoc":{"kind":"user","methods":{"aggregate((address,bytes)[])":{"notice":"Backwards-compatible call aggregation with Multicall"},"aggregate3((address,bool,bytes)[])":{"notice":"Aggregate calls, ensuring each returns success if required"},"aggregate3Value((address,bool,uint256,bytes)[])":{"notice":"Aggregate calls with a msg valueReverts if msg.value is less than the sum of the call values"},"blockAndAggregate((address,bytes)[])":{"notice":"Backwards-compatible with Multicall2Aggregate calls and allow failures using tryAggregate"},"constructor":{"notice":"Constructor"},"getBasefee()":{"notice":"Gets the base fee of the given blockCan revert if the BASEFEE opcode is not implemented by the given chain"},"getBlockHash(uint256)":{"notice":"Returns the block hash for the given block number"},"getBlockNumber()":{"notice":"Returns the block number"},"getChainId()":{"notice":"Returns the chain id"},"getCurrentBlockCoinbase()":{"notice":"Returns the block coinbase"},"getCurrentBlockDifficulty()":{"notice":"Returns the block difficulty"},"getCurrentBlockGasLimit()":{"notice":"Returns the block gas limit"},"getCurrentBlockTimestamp()":{"notice":"Returns the block timestamp"},"getEthBalance(address)":{"notice":"Returns the (ETH) balance of a given address"},"getFirstEmptyTradeIndexes(address)":{"notice":"Get empty trade indexes for a given user address"},"getLastBlockHash()":{"notice":"Returns the block hash of the last block"},"getLongShortRatios()":{"notice":"Gets long, and short ratios for all pairs"},"getMargins()":{"notice":"Get margins for all pairs"},"getOpenLimitOrdersCounts(address)":{"notice":"Get order counts for a given user address"},"getPositions(address)":{"notice":"Gets the aggregated trades and orders for a given user address"},"tryAggregate(bool,(address,bytes)[])":{"notice":"Backwards-compatible with Multicall2Aggregate calls without requiring success"},"tryBlockAndAggregate(bool,(address,bytes)[])":{"notice":"Backwards-compatible with Multicall2Aggregate calls and allow failures using tryAggregate"},"updateContracts(address,address,address,address)":{"notice":"Updates the addresses of the storage and pair infos contracts"}},"version":1}},"settings":{"remappings":["@chainlink/=lib/chainlink/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","chainlink/=lib/chainlink/","ds-test/=lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/","pyth-sdk-solidity/=lib/pyth-sdk-solidity/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/Multicall.sol":"Multicall"},"evmVersion":"london","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305","urls":["bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5","dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53"],"license":"MIT"},"src/Multicall.sol":{"keccak256":"0xa952ba46292834373e45869c3b62a599a4faf8c3c3df6d55fcbcc62c6e3efbad","urls":["bzz-raw://082f468ce1473203fe736c7c0b5a28f294995874dc1940918b23f33a32bf313f","dweb:/ipfs/QmXEuiBNNZ3ijVzfBYd8RBzMviTCmMpsmRerYYVBSbtxcy"],"license":"MIT"},"src/interfaces/ICallbacks.sol":{"keccak256":"0x29a3caaa16b7a336e7670a433468716569c2bb227691bf21b53279be0d43d9ac","urls":["bzz-raw://682f1631658e298794d902b2fe61a66eb72363131cc08cb39bea49f8084c7712","dweb:/ipfs/QmZngteZUFLYRQrx2QEEoTFvov5FpjAGntS53GrfTqgysA"],"license":"MIT"},"src/interfaces/IExecute.sol":{"keccak256":"0x189f78c460465dcdaab444248da17059e96e76e862bb08540e7054296512b9b4","urls":["bzz-raw://c757cbde37e2932a25fca5ed1ef8fdd49cf1521b8d9f1cfa1d512d1e94862a3b","dweb:/ipfs/QmVvbrLcDBFo9oMdNqaYTmhhtgnH2WzgX8nbMTKuJU6Y1m"],"license":"MIT"},"src/interfaces/IMulticall.sol":{"keccak256":"0x7ed35fffa72f8a3e5294240a0e5611391a69082a297a5e8a1a648e5fbd5d19f4","urls":["bzz-raw://04f4e13341861d64e70b2c446479d1e11fe50894fd0163bd49a107f5067b34db","dweb:/ipfs/QmfQXdXKks2CXwsU8T5zsyhmV7pHqLAVtuHSrLy5jW98N3"],"license":"MIT"},"src/interfaces/IPairInfos.sol":{"keccak256":"0xf9fe387fdcef5ddd217632154ff64741f6b2d7f944b45e985a9a326799f13003","urls":["bzz-raw://a214b58dc1ec86de11ed4fed6e63afd51b793a1bbdca99e1d46abf4efa931d43","dweb:/ipfs/QmckDVNNeMv6MdYgih78SAfhFNtGtrM4D4wRMdaAE2riCu"],"license":"MIT"},"src/interfaces/IPairStorage.sol":{"keccak256":"0x5263d6aeb4ddae325132a38df89f9cbdc4432f44b2d4a657500b29a8b1705fdb","urls":["bzz-raw://a0a5a03ab14963ec685d8b2c8f2833755136abd84074100eec057fb234ec2616","dweb:/ipfs/QmdV2B3wVYhtkCT6ajU8HKsj824LXCBuF82dkhco6sGPch"],"license":"MIT"},"src/interfaces/IPausable.sol":{"keccak256":"0x0cf760757842bd332ce27fac78b8dc0f7a36406529a213954bc463c2be174ecd","urls":["bzz-raw://c69ee15b814b76caed732b47b729d1c2b361ed158b85220da30ea9aac893ad0e","dweb:/ipfs/QmbF9HWVA7DCtNzK2LkRdvhMV1TuqTf9dzUzAKwQadHZnY"],"license":"MIT"},"src/interfaces/IPriceAggregator.sol":{"keccak256":"0xd07d98635205ba6650fc5427145869f1ec803fb370f0f3dad836c7b0ce2686a5","urls":["bzz-raw://6e3cef3626f7384e4a3876137f27716c0ef9b4a13e8443d5591b94a09f4c211a","dweb:/ipfs/QmUJSKSDNUxuxz42jo9hbNrHncsyw41hJvk7kZqGSeNL7c"],"license":"MIT"},"src/interfaces/ITradingStorage.sol":{"keccak256":"0x43ffc276291a1a728e97af0eab1057c55ed8f4180a79ea8023384a33ec135ba6","urls":["bzz-raw://8f3aca6840be01265d57ad5f141cec52b238bec7a4b9feb39a428727685c0e8b","dweb:/ipfs/QmcFUiJFw6A8jhxKVUMY7jjxQiqBaTSmdkcehqSLtnN1pg"],"license":"MIT"},"src/interfaces/IVaultManager.sol":{"keccak256":"0x167daac6e885fa066e910a79d7f602ba52f321141af1992b83c842fe264e9219","urls":["bzz-raw://77790089333c8783cc836eec99e4dc10f6554f0c6a3ea4f7fd2c727e4d4605e6","dweb:/ipfs/QmNRP5WJKfwDu4S5TK8fQc6MGk8JeDf51DNeevtLfjQnoJ"],"license":"MIT"},"src/library/Multicall3.sol":{"keccak256":"0xc23235f532cc10f88e358fd124fcddcafe59ef8d9a507fc27d3ae4a73b19895a","urls":["bzz-raw://f3a40172674448e913c0cb826cd49fcd37ee9955933785ff828161d19a4ad266","dweb:/ipfs/QmbDhJ9AHSP9wdzfMTQd9zBTG9cBeg6mSkDMat1osxRNrX"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"src/Multicall.sol","id":71103,"exportedSymbols":{"ICallbacks":[88257],"IERC20":[51481],"IExecute":[88371],"IExtendedPairInfos":[88510],"IExtendedPairStorage":[88455],"IExtendedTrading":[88532],"IMulticall":[88444],"IPairInfos":[88745],"IPairStorage":[89055],"IPausable":[89063],"IPriceAggregator":[89248],"ITradingStorage":[89943],"IVaultManager":[90188],"Multicall":[71102],"Multicall3":[90801]},"nodeType":"SourceUnit","src":"32:14122:102","nodes":[{"id":70304,"nodeType":"PragmaDirective","src":"32:22:102","nodes":[],"literals":["solidity","0.8",".7"]},{"id":70305,"nodeType":"ImportDirective","src":"79:42:102","nodes":[],"absolutePath":"src/interfaces/ITradingStorage.sol","file":"./interfaces/ITradingStorage.sol","nameLocation":"-1:-1:-1","scope":71103,"sourceUnit":89944,"symbolAliases":[],"unitAlias":""},{"id":70306,"nodeType":"ImportDirective","src":"122:37:102","nodes":[],"absolutePath":"src/interfaces/IMulticall.sol","file":"./interfaces/IMulticall.sol","nameLocation":"-1:-1:-1","scope":71103,"sourceUnit":88533,"symbolAliases":[],"unitAlias":""},{"id":70307,"nodeType":"ImportDirective","src":"184:34:102","nodes":[],"absolutePath":"src/library/Multicall3.sol","file":"./library/Multicall3.sol","nameLocation":"-1:-1:-1","scope":71103,"sourceUnit":90802,"symbolAliases":[],"unitAlias":""},{"id":71102,"nodeType":"ContractDefinition","src":"356:13798:102","nodes":[{"id":70315,"nodeType":"VariableDeclaration","src":"424:24:102","nodes":[],"constant":false,"mutability":"mutable","name":"storageT","nameLocation":"440:8:102","scope":71102,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ITradingStorage_$89943","typeString":"contract ITradingStorage"},"typeName":{"id":70314,"nodeType":"UserDefinedTypeName","pathNode":{"id":70313,"name":"ITradingStorage","nodeType":"IdentifierPath","referencedDeclaration":89943,"src":"424:15:102"},"referencedDeclaration":89943,"src":"424:15:102","typeDescriptions":{"typeIdentifier":"t_contract$_ITradingStorage_$89943","typeString":"contract ITradingStorage"}},"visibility":"internal"},{"id":70318,"nodeType":"VariableDeclaration","src":"454:28:102","nodes":[],"constant":false,"mutability":"mutable","name":"pairInfos","nameLocation":"473:9:102","scope":71102,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IExtendedPairInfos_$88510","typeString":"contract IExtendedPairInfos"},"typeName":{"id":70317,"nodeType":"UserDefinedTypeName","pathNode":{"id":70316,"name":"IExtendedPairInfos","nodeType":"IdentifierPath","referencedDeclaration":88510,"src":"454:18:102"},"referencedDeclaration":88510,"src":"454:18:102","typeDescriptions":{"typeIdentifier":"t_contract$_IExtendedPairInfos_$88510","typeString":"contract IExtendedPairInfos"}},"visibility":"internal"},{"id":70321,"nodeType":"VariableDeclaration","src":"488:33:102","nodes":[],"constant":false,"mutability":"mutable","name":"pairsStorage","nameLocation":"509:12:102","scope":71102,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IExtendedPairStorage_$88455","typeString":"contract IExtendedPairStorage"},"typeName":{"id":70320,"nodeType":"UserDefinedTypeName","pathNode":{"id":70319,"name":"IExtendedPairStorage","nodeType":"IdentifierPath","referencedDeclaration":88455,"src":"488:20:102"},"referencedDeclaration":88455,"src":"488:20:102","typeDescriptions":{"typeIdentifier":"t_contract$_IExtendedPairStorage_$88455","typeString":"contract IExtendedPairStorage"}},"visibility":"internal"},{"id":70324,"nodeType":"VariableDeclaration","src":"527:24:102","nodes":[],"constant":false,"mutability":"mutable","name":"trading","nameLocation":"544:7:102","scope":71102,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IExtendedTrading_$88532","typeString":"contract IExtendedTrading"},"typeName":{"id":70323,"nodeType":"UserDefinedTypeName","pathNode":{"id":70322,"name":"IExtendedTrading","nodeType":"IdentifierPath","referencedDeclaration":88532,"src":"527:16:102"},"referencedDeclaration":88532,"src":"527:16:102","typeDescriptions":{"typeIdentifier":"t_contract$_IExtendedTrading_$88532","typeString":"contract IExtendedTrading"}},"visibility":"internal"},{"id":70338,"nodeType":"ModifierDefinition","src":"575:96:102","nodes":[],"body":{"id":70337,"nodeType":"Block","src":"594:77:102","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":70332,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":70327,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"612:3:102","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":70328,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"612:10:102","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":70329,"name":"storageT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70315,"src":"626:8:102","typeDescriptions":{"typeIdentifier":"t_contract$_ITradingStorage_$89943","typeString":"contract ITradingStorage"}},"id":70330,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"gov","nodeType":"MemberAccess","referencedDeclaration":89575,"src":"626:12:102","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":70331,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"626:14:102","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"612:28:102","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"474f565f4f4e4c59","id":70333,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"642:10:102","typeDescriptions":{"typeIdentifier":"t_stringliteral_e24bb66e7063bdafcf2e5ceff578e6b6ea2c27ad98f30b9e10f9fe144c21c798","typeString":"literal_string \"GOV_ONLY\""},"value":"GOV_ONLY"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e24bb66e7063bdafcf2e5ceff578e6b6ea2c27ad98f30b9e10f9fe144c21c798","typeString":"literal_string \"GOV_ONLY\""}],"id":70326,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"604:7:102","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":70334,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"604:49:102","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":70335,"nodeType":"ExpressionStatement","src":"604:49:102"},{"id":70336,"nodeType":"PlaceholderStatement","src":"663:1:102"}]},"name":"onlyGov","nameLocation":"584:7:102","parameters":{"id":70325,"nodeType":"ParameterList","parameters":[],"src":"591:2:102"},"virtual":false,"visibility":"internal"},{"id":70375,"nodeType":"FunctionDefinition","src":"1077:340:102","nodes":[],"body":{"id":70374,"nodeType":"Block","src":"1206:211:102","nodes":[],"statements":[{"expression":{"id":70354,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":70350,"name":"storageT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70315,"src":"1216:8:102","typeDescriptions":{"typeIdentifier":"t_contract$_ITradingStorage_$89943","typeString":"contract ITradingStorage"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":70352,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70341,"src":"1243:8:102","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":70351,"name":"ITradingStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":89943,"src":"1227:15:102","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ITradingStorage_$89943_$","typeString":"type(contract ITradingStorage)"}},"id":70353,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1227:25:102","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ITradingStorage_$89943","typeString":"contract ITradingStorage"}},"src":"1216:36:102","typeDescriptions":{"typeIdentifier":"t_contract$_ITradingStorage_$89943","typeString":"contract ITradingStorage"}},"id":70355,"nodeType":"ExpressionStatement","src":"1216:36:102"},{"expression":{"id":70360,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":70356,"name":"pairInfos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70318,"src":"1262:9:102","typeDescriptions":{"typeIdentifier":"t_contract$_IExtendedPairInfos_$88510","typeString":"contract IExtendedPairInfos"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":70358,"name":"_pairInfos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70343,"src":"1293:10:102","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":70357,"name":"IExtendedPairInfos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":88510,"src":"1274:18:102","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IExtendedPairInfos_$88510_$","typeString":"type(contract IExtendedPairInfos)"}},"id":70359,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1274:30:102","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IExtendedPairInfos_$88510","typeString":"contract IExtendedPairInfos"}},"src":"1262:42:102","typeDescriptions":{"typeIdentifier":"t_contract$_IExtendedPairInfos_$88510","typeString":"contract IExtendedPairInfos"}},"id":70361,"nodeType":"ExpressionStatement","src":"1262:42:102"},{"expression":{"id":70366,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":70362,"name":"pairsStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70321,"src":"1314:12:102","typeDescriptions":{"typeIdentifier":"t_contract$_IExtendedPairStorage_$88455","typeString":"contract IExtendedPairStorage"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":70364,"name":"_pairsStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70345,"src":"1350:13:102","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":70363,"name":"IExtendedPairStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":88455,"src":"1329:20:102","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IExtendedPairStorage_$88455_$","typeString":"type(contract IExtendedPairStorage)"}},"id":70365,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1329:35:102","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IExtendedPairStorage_$88455","typeString":"contract IExtendedPairStorage"}},"src":"1314:50:102","typeDescriptions":{"typeIdentifier":"t_contract$_IExtendedPairStorage_$88455","typeString":"contract IExtendedPairStorage"}},"id":70367,"nodeType":"ExpressionStatement","src":"1314:50:102"},{"expression":{"id":70372,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":70368,"name":"trading","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70324,"src":"1374:7:102","typeDescriptions":{"typeIdentifier":"t_contract$_IExtendedTrading_$88532","typeString":"contract IExtendedTrading"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":70370,"name":"_trading","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70347,"src":"1401:8:102","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":70369,"name":"IExtendedTrading","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":88532,"src":"1384:16:102","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IExtendedTrading_$88532_$","typeString":"type(contract IExtendedTrading)"}},"id":70371,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1384:26:102","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IExtendedTrading_$88532","typeString":"contract IExtendedTrading"}},"src":"1374:36:102","typeDescriptions":{"typeIdentifier":"t_contract$_IExtendedTrading_$88532","typeString":"contract IExtendedTrading"}},"id":70373,"nodeType":"ExpressionStatement","src":"1374:36:102"}]},"documentation":{"id":70339,"nodeType":"StructuredDocumentation","src":"677:395:102","text":" @notice Constructor\n @param _storage The address of the trading storage contract\n @param _pairInfos The address of the pair infos contract\n @param _pairsStorage The address of the pair storage contract\n @param _trading The address of the trading contract\n @dev This constructor is used to set the addresses of the storage and pair infos contracts"},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":70348,"nodeType":"ParameterList","parameters":[{"constant":false,"id":70341,"mutability":"mutable","name":"_storage","nameLocation":"1106:8:102","nodeType":"VariableDeclaration","scope":70375,"src":"1098:16:102","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":70340,"name":"address","nodeType":"ElementaryTypeName","src":"1098:7:102","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":70343,"mutability":"mutable","name":"_pairInfos","nameLocation":"1132:10:102","nodeType":"VariableDeclaration","scope":70375,"src":"1124:18:102","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":70342,"name":"address","nodeType":"ElementaryTypeName","src":"1124:7:102","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":70345,"mutability":"mutable","name":"_pairsStorage","nameLocation":"1160:13:102","nodeType":"VariableDeclaration","scope":70375,"src":"1152:21:102","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":70344,"name":"address","nodeType":"ElementaryTypeName","src":"1152:7:102","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":70347,"mutability":"mutable","name":"_trading","nameLocation":"1191:8:102","nodeType":"VariableDeclaration","scope":70375,"src":"1183:16:102","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":70346,"name":"address","nodeType":"ElementaryTypeName","src":"1183:7:102","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1088:117:102"},"returnParameters":{"id":70349,"nodeType":"ParameterList","parameters":[],"src":"1206:0:102"},"scope":71102,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":70414,"nodeType":"FunctionDefinition","src":"1896:370:102","nodes":[],"body":{"id":70413,"nodeType":"Block","src":"2055:211:102","nodes":[],"statements":[{"expression":{"id":70393,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":70389,"name":"storageT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70315,"src":"2065:8:102","typeDescriptions":{"typeIdentifier":"t_contract$_ITradingStorage_$89943","typeString":"contract ITradingStorage"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":70391,"name":"_storage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70378,"src":"2092:8:102","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":70390,"name":"ITradingStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":89943,"src":"2076:15:102","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ITradingStorage_$89943_$","typeString":"type(contract ITradingStorage)"}},"id":70392,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2076:25:102","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ITradingStorage_$89943","typeString":"contract ITradingStorage"}},"src":"2065:36:102","typeDescriptions":{"typeIdentifier":"t_contract$_ITradingStorage_$89943","typeString":"contract ITradingStorage"}},"id":70394,"nodeType":"ExpressionStatement","src":"2065:36:102"},{"expression":{"id":70399,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":70395,"name":"pairInfos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70318,"src":"2111:9:102","typeDescriptions":{"typeIdentifier":"t_contract$_IExtendedPairInfos_$88510","typeString":"contract IExtendedPairInfos"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":70397,"name":"_pairInfos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70380,"src":"2142:10:102","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":70396,"name":"IExtendedPairInfos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":88510,"src":"2123:18:102","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IExtendedPairInfos_$88510_$","typeString":"type(contract IExtendedPairInfos)"}},"id":70398,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2123:30:102","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IExtendedPairInfos_$88510","typeString":"contract IExtendedPairInfos"}},"src":"2111:42:102","typeDescriptions":{"typeIdentifier":"t_contract$_IExtendedPairInfos_$88510","typeString":"contract IExtendedPairInfos"}},"id":70400,"nodeType":"ExpressionStatement","src":"2111:42:102"},{"expression":{"id":70405,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":70401,"name":"pairsStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70321,"src":"2163:12:102","typeDescriptions":{"typeIdentifier":"t_contract$_IExtendedPairStorage_$88455","typeString":"contract IExtendedPairStorage"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":70403,"name":"_pairsStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70382,"src":"2199:13:102","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":70402,"name":"IExtendedPairStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":88455,"src":"2178:20:102","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IExtendedPairStorage_$88455_$","typeString":"type(contract IExtendedPairStorage)"}},"id":70404,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2178:35:102","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IExtendedPairStorage_$88455","typeString":"contract IExtendedPairStorage"}},"src":"2163:50:102","typeDescriptions":{"typeIdentifier":"t_contract$_IExtendedPairStorage_$88455","typeString":"contract IExtendedPairStorage"}},"id":70406,"nodeType":"ExpressionStatement","src":"2163:50:102"},{"expression":{"id":70411,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":70407,"name":"trading","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70324,"src":"2223:7:102","typeDescriptions":{"typeIdentifier":"t_contract$_IExtendedTrading_$88532","typeString":"contract IExtendedTrading"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":70409,"name":"_trading","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70384,"src":"2250:8:102","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":70408,"name":"IExtendedTrading","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":88532,"src":"2233:16:102","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IExtendedTrading_$88532_$","typeString":"type(contract IExtendedTrading)"}},"id":70410,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2233:26:102","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IExtendedTrading_$88532","typeString":"contract IExtendedTrading"}},"src":"2223:36:102","typeDescriptions":{"typeIdentifier":"t_contract$_IExtendedTrading_$88532","typeString":"contract IExtendedTrading"}},"id":70412,"nodeType":"ExpressionStatement","src":"2223:36:102"}]},"documentation":{"id":70376,"nodeType":"StructuredDocumentation","src":"1423:468:102","text":" @notice Updates the addresses of the storage and pair infos contracts\n @param _storage The address of the trading storage contract\n @param _pairInfos The address of the pair infos contract\n @param _pairsStorage The address of the pair storage contract\n @param _trading The address of the trading contract\n @dev This function is used to change the addresses of the storage and pair infos contracts. Only gov can call it."},"functionSelector":"0b751279","implemented":true,"kind":"function","modifiers":[{"id":70387,"kind":"modifierInvocation","modifierName":{"id":70386,"name":"onlyGov","nodeType":"IdentifierPath","referencedDeclaration":70338,"src":"2047:7:102"},"nodeType":"ModifierInvocation","src":"2047:7:102"}],"name":"updateContracts","nameLocation":"1905:15:102","parameters":{"id":70385,"nodeType":"ParameterList","parameters":[{"constant":false,"id":70378,"mutability":"mutable","name":"_storage","nameLocation":"1938:8:102","nodeType":"VariableDeclaration","scope":70414,"src":"1930:16:102","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":70377,"name":"address","nodeType":"ElementaryTypeName","src":"1930:7:102","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":70380,"mutability":"mutable","name":"_pairInfos","nameLocation":"1964:10:102","nodeType":"VariableDeclaration","scope":70414,"src":"1956:18:102","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":70379,"name":"address","nodeType":"ElementaryTypeName","src":"1956:7:102","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":70382,"mutability":"mutable","name":"_pairsStorage","nameLocation":"1992:13:102","nodeType":"VariableDeclaration","scope":70414,"src":"1984:21:102","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":70381,"name":"address","nodeType":"ElementaryTypeName","src":"1984:7:102","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":70384,"mutability":"mutable","name":"_trading","nameLocation":"2023:8:102","nodeType":"VariableDeclaration","scope":70414,"src":"2015:16:102","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":70383,"name":"address","nodeType":"ElementaryTypeName","src":"2015:7:102","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1920:117:102"},"returnParameters":{"id":70388,"nodeType":"ParameterList","parameters":[],"src":"2055:0:102"},"scope":71102,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":70494,"nodeType":"FunctionDefinition","src":"2640:1023:102","nodes":[],"body":{"id":70493,"nodeType":"Block","src":"2817:846:102","nodes":[],"statements":[{"assignments":[70430],"declarations":[{"constant":false,"id":70430,"mutability":"mutable","name":"pairCount","nameLocation":"2835:9:102","nodeType":"VariableDeclaration","scope":70493,"src":"2827:17:102","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":70429,"name":"uint256","nodeType":"ElementaryTypeName","src":"2827:7:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":70434,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":70431,"name":"pairsStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70321,"src":"2847:12:102","typeDescriptions":{"typeIdentifier":"t_contract$_IExtendedPairStorage_$88455","typeString":"contract IExtendedPairStorage"}},"id":70432,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"pairsCount","nodeType":"MemberAccess","referencedDeclaration":89026,"src":"2847:23:102","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":70433,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2847:25:102","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2827:45:102"},{"assignments":[70436],"declarations":[{"constant":false,"id":70436,"mutability":"mutable","name":"maxTradesPerPair","nameLocation":"2891:16:102","nodeType":"VariableDeclaration","scope":70493,"src":"2883:24:102","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":70435,"name":"uint256","nodeType":"ElementaryTypeName","src":"2883:7:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":70440,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":70437,"name":"storageT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70315,"src":"2910:8:102","typeDescriptions":{"typeIdentifier":"t_contract$_ITradingStorage_$89943","typeString":"contract ITradingStorage"}},"id":70438,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"maxTradesPerPair","nodeType":"MemberAccess","referencedDeclaration":89864,"src":"2910:25:102","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":70439,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2910:27:102","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2883:54:102"},{"assignments":[70442],"declarations":[{"constant":false,"id":70442,"mutability":"mutable","name":"totalPositions","nameLocation":"2956:14:102","nodeType":"VariableDeclaration","scope":70493,"src":"2948:22:102","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":70441,"name":"uint256","nodeType":"ElementaryTypeName","src":"2948:7:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":70446,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":70445,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":70443,"name":"maxTradesPerPair","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70436,"src":"2973:16:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":70444,"name":"pairCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70430,"src":"2992:9:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2973:28:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2948:53:102"},{"assignments":[70451],"declarations":[{"constant":false,"id":70451,"mutability":"mutable","name":"aggregatedTrades","nameLocation":"3096:16:102","nodeType":"VariableDeclaration","scope":70493,"src":"3071:41:102","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_AggregatedTrade_$88387_memory_ptr_$dyn_memory_ptr","typeString":"struct IMulticall.AggregatedTrade[]"},"typeName":{"baseType":{"id":70449,"nodeType":"UserDefinedTypeName","pathNode":{"id":70448,"name":"AggregatedTrade","nodeType":"IdentifierPath","referencedDeclaration":88387,"src":"3071:15:102"},"referencedDeclaration":88387,"src":"3071:15:102","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedTrade_$88387_storage_ptr","typeString":"struct IMulticall.AggregatedTrade"}},"id":70450,"nodeType":"ArrayTypeName","src":"3071:17:102","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_AggregatedTrade_$88387_storage_$dyn_storage_ptr","typeString":"struct IMulticall.AggregatedTrade[]"}},"visibility":"internal"}],"id":70458,"initialValue":{"arguments":[{"id":70456,"name":"totalPositions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70442,"src":"3150:14:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":70455,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"3115:21:102","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_AggregatedTrade_$88387_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct IMulticall.AggregatedTrade memory[] memory)"},"typeName":{"baseType":{"id":70453,"nodeType":"UserDefinedTypeName","pathNode":{"id":70452,"name":"AggregatedTrade","nodeType":"IdentifierPath","referencedDeclaration":88387,"src":"3119:15:102"},"referencedDeclaration":88387,"src":"3119:15:102","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedTrade_$88387_storage_ptr","typeString":"struct IMulticall.AggregatedTrade"}},"id":70454,"nodeType":"ArrayTypeName","src":"3119:17:102","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_AggregatedTrade_$88387_storage_$dyn_storage_ptr","typeString":"struct IMulticall.AggregatedTrade[]"}}},"id":70457,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3115:59:102","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_AggregatedTrade_$88387_memory_ptr_$dyn_memory_ptr","typeString":"struct IMulticall.AggregatedTrade memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"3071:103:102"},{"assignments":[70463],"declarations":[{"constant":false,"id":70463,"mutability":"mutable","name":"aggregatedOrders","nameLocation":"3209:16:102","nodeType":"VariableDeclaration","scope":70493,"src":"3184:41:102","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_AggregatedOrder_$88393_memory_ptr_$dyn_memory_ptr","typeString":"struct IMulticall.AggregatedOrder[]"},"typeName":{"baseType":{"id":70461,"nodeType":"UserDefinedTypeName","pathNode":{"id":70460,"name":"AggregatedOrder","nodeType":"IdentifierPath","referencedDeclaration":88393,"src":"3184:15:102"},"referencedDeclaration":88393,"src":"3184:15:102","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedOrder_$88393_storage_ptr","typeString":"struct IMulticall.AggregatedOrder"}},"id":70462,"nodeType":"ArrayTypeName","src":"3184:17:102","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_AggregatedOrder_$88393_storage_$dyn_storage_ptr","typeString":"struct IMulticall.AggregatedOrder[]"}},"visibility":"internal"}],"id":70470,"initialValue":{"arguments":[{"id":70468,"name":"totalPositions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70442,"src":"3263:14:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":70467,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"3228:21:102","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_AggregatedOrder_$88393_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct IMulticall.AggregatedOrder memory[] memory)"},"typeName":{"baseType":{"id":70465,"nodeType":"UserDefinedTypeName","pathNode":{"id":70464,"name":"AggregatedOrder","nodeType":"IdentifierPath","referencedDeclaration":88393,"src":"3232:15:102"},"referencedDeclaration":88393,"src":"3232:15:102","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedOrder_$88393_storage_ptr","typeString":"struct IMulticall.AggregatedOrder"}},"id":70466,"nodeType":"ArrayTypeName","src":"3232:17:102","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_AggregatedOrder_$88393_storage_$dyn_storage_ptr","typeString":"struct IMulticall.AggregatedOrder[]"}}},"id":70469,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3228:59:102","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_AggregatedOrder_$88393_memory_ptr_$dyn_memory_ptr","typeString":"struct IMulticall.AggregatedOrder memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"3184:103:102"},{"expression":{"id":70478,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":70471,"name":"aggregatedTrades","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70451,"src":"3298:16:102","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_AggregatedTrade_$88387_memory_ptr_$dyn_memory_ptr","typeString":"struct IMulticall.AggregatedTrade memory[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":70473,"name":"userAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70417,"src":"3341:11:102","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":70474,"name":"pairCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70430,"src":"3366:9:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":70475,"name":"maxTradesPerPair","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70436,"src":"3389:16:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":70476,"name":"aggregatedTrades","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70451,"src":"3419:16:102","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_AggregatedTrade_$88387_memory_ptr_$dyn_memory_ptr","typeString":"struct IMulticall.AggregatedTrade memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_array$_t_struct$_AggregatedTrade_$88387_memory_ptr_$dyn_memory_ptr","typeString":"struct IMulticall.AggregatedTrade memory[] memory"}],"id":70472,"name":"_getTrades","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70639,"src":"3317:10:102","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$_t_uint256_$_t_array$_t_struct$_AggregatedTrade_$88387_memory_ptr_$dyn_memory_ptr_$returns$_t_array$_t_struct$_AggregatedTrade_$88387_memory_ptr_$dyn_memory_ptr_$","typeString":"function (address,uint256,uint256,struct IMulticall.AggregatedTrade memory[] memory) view returns (struct IMulticall.AggregatedTrade memory[] memory)"}},"id":70477,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3317:128:102","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_AggregatedTrade_$88387_memory_ptr_$dyn_memory_ptr","typeString":"struct IMulticall.AggregatedTrade memory[] memory"}},"src":"3298:147:102","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_AggregatedTrade_$88387_memory_ptr_$dyn_memory_ptr","typeString":"struct IMulticall.AggregatedTrade memory[] memory"}},"id":70479,"nodeType":"ExpressionStatement","src":"3298:147:102"},{"expression":{"id":70487,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":70480,"name":"aggregatedOrders","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70463,"src":"3455:16:102","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_AggregatedOrder_$88393_memory_ptr_$dyn_memory_ptr","typeString":"struct IMulticall.AggregatedOrder memory[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":70482,"name":"userAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70417,"src":"3498:11:102","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":70483,"name":"pairCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70430,"src":"3523:9:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":70484,"name":"maxTradesPerPair","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70436,"src":"3546:16:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":70485,"name":"aggregatedOrders","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70463,"src":"3576:16:102","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_AggregatedOrder_$88393_memory_ptr_$dyn_memory_ptr","typeString":"struct IMulticall.AggregatedOrder memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_array$_t_struct$_AggregatedOrder_$88393_memory_ptr_$dyn_memory_ptr","typeString":"struct IMulticall.AggregatedOrder memory[] memory"}],"id":70481,"name":"_getOrders","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70756,"src":"3474:10:102","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$_t_uint256_$_t_array$_t_struct$_AggregatedOrder_$88393_memory_ptr_$dyn_memory_ptr_$returns$_t_array$_t_struct$_AggregatedOrder_$88393_memory_ptr_$dyn_memory_ptr_$","typeString":"function (address,uint256,uint256,struct IMulticall.AggregatedOrder memory[] memory) view returns (struct IMulticall.AggregatedOrder memory[] memory)"}},"id":70486,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3474:128:102","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_AggregatedOrder_$88393_memory_ptr_$dyn_memory_ptr","typeString":"struct IMulticall.AggregatedOrder memory[] memory"}},"src":"3455:147:102","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_AggregatedOrder_$88393_memory_ptr_$dyn_memory_ptr","typeString":"struct IMulticall.AggregatedOrder memory[] memory"}},"id":70488,"nodeType":"ExpressionStatement","src":"3455:147:102"},{"expression":{"components":[{"id":70489,"name":"aggregatedTrades","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70451,"src":"3621:16:102","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_AggregatedTrade_$88387_memory_ptr_$dyn_memory_ptr","typeString":"struct IMulticall.AggregatedTrade memory[] memory"}},{"id":70490,"name":"aggregatedOrders","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70463,"src":"3639:16:102","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_AggregatedOrder_$88393_memory_ptr_$dyn_memory_ptr","typeString":"struct IMulticall.AggregatedOrder memory[] memory"}}],"id":70491,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3620:36:102","typeDescriptions":{"typeIdentifier":"t_tuple$_t_array$_t_struct$_AggregatedTrade_$88387_memory_ptr_$dyn_memory_ptr_$_t_array$_t_struct$_AggregatedOrder_$88393_memory_ptr_$dyn_memory_ptr_$","typeString":"tuple(struct IMulticall.AggregatedTrade memory[] memory,struct IMulticall.AggregatedOrder memory[] memory)"}},"functionReturnParameters":70428,"id":70492,"nodeType":"Return","src":"3613:43:102"}]},"baseFunctions":[88406],"documentation":{"id":70415,"nodeType":"StructuredDocumentation","src":"2272:363:102","text":" @notice Gets the aggregated trades and orders for a given user address\n @param userAddress The address of the user\n @return AggregatedTrade An array of aggregated trades\n @return AggregatedOrder An array of aggregated orders\n @dev This function is used to get the aggregated trades and orders for a given user address\n *"},"functionSelector":"3eeb530e","implemented":true,"kind":"function","modifiers":[],"name":"getPositions","nameLocation":"2649:12:102","overrides":{"id":70419,"nodeType":"OverrideSpecifier","overrides":[],"src":"2735:8:102"},"parameters":{"id":70418,"nodeType":"ParameterList","parameters":[{"constant":false,"id":70417,"mutability":"mutable","name":"userAddress","nameLocation":"2679:11:102","nodeType":"VariableDeclaration","scope":70494,"src":"2671:19:102","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":70416,"name":"address","nodeType":"ElementaryTypeName","src":"2671:7:102","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2661:35:102"},"returnParameters":{"id":70428,"nodeType":"ParameterList","parameters":[{"constant":false,"id":70423,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":70494,"src":"2761:24:102","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_AggregatedTrade_$88387_memory_ptr_$dyn_memory_ptr","typeString":"struct IMulticall.AggregatedTrade[]"},"typeName":{"baseType":{"id":70421,"nodeType":"UserDefinedTypeName","pathNode":{"id":70420,"name":"AggregatedTrade","nodeType":"IdentifierPath","referencedDeclaration":88387,"src":"2761:15:102"},"referencedDeclaration":88387,"src":"2761:15:102","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedTrade_$88387_storage_ptr","typeString":"struct IMulticall.AggregatedTrade"}},"id":70422,"nodeType":"ArrayTypeName","src":"2761:17:102","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_AggregatedTrade_$88387_storage_$dyn_storage_ptr","typeString":"struct IMulticall.AggregatedTrade[]"}},"visibility":"internal"},{"constant":false,"id":70427,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":70494,"src":"2787:24:102","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_AggregatedOrder_$88393_memory_ptr_$dyn_memory_ptr","typeString":"struct IMulticall.AggregatedOrder[]"},"typeName":{"baseType":{"id":70425,"nodeType":"UserDefinedTypeName","pathNode":{"id":70424,"name":"AggregatedOrder","nodeType":"IdentifierPath","referencedDeclaration":88393,"src":"2787:15:102"},"referencedDeclaration":88393,"src":"2787:15:102","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedOrder_$88393_storage_ptr","typeString":"struct IMulticall.AggregatedOrder"}},"id":70426,"nodeType":"ArrayTypeName","src":"2787:17:102","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_AggregatedOrder_$88393_storage_$dyn_storage_ptr","typeString":"struct IMulticall.AggregatedOrder[]"}},"visibility":"internal"}],"src":"2760:52:102"},"scope":71102,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":70639,"nodeType":"FunctionDefinition","src":"4145:2816:102","nodes":[],"body":{"id":70638,"nodeType":"Block","src":"4361:2600:102","nodes":[],"statements":[{"assignments":[70513],"declarations":[{"constant":false,"id":70513,"mutability":"mutable","name":"tradeCounter","nameLocation":"4379:12:102","nodeType":"VariableDeclaration","scope":70638,"src":"4371:20:102","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":70512,"name":"uint256","nodeType":"ElementaryTypeName","src":"4371:7:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":70515,"initialValue":{"hexValue":"30","id":70514,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4394:1:102","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"4371:24:102"},{"body":{"id":70634,"nodeType":"Block","src":"4469:2453:102","statements":[{"body":{"id":70632,"nodeType":"Block","src":"4619:2293:102","statements":[{"clauses":[{"block":{"id":70623,"nodeType":"Block","src":"4857:1908:102","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":70549,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":70546,"name":"tradeData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70544,"src":"4883:9:102","typeDescriptions":{"typeIdentifier":"t_struct$_Trade_$89438_memory_ptr","typeString":"struct ITradingStorage.Trade memory"}},"id":70547,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"leverage","nodeType":"MemberAccess","referencedDeclaration":89431,"src":"4883:18:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":70548,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4905:1:102","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4883:23:102","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":70555,"nodeType":"IfStatement","src":"4879:126:102","trueBody":{"id":70554,"nodeType":"Block","src":"4908:97:102","statements":[{"expression":{"id":70551,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"4934:14:102","subExpression":{"id":70550,"name":"tradeCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70513,"src":"4934:12:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":70552,"nodeType":"ExpressionStatement","src":"4934:14:102"},{"id":70553,"nodeType":"Continue","src":"4974:8:102"}]}},{"assignments":[70557],"declarations":[{"constant":false,"id":70557,"mutability":"mutable","name":"rolloverFee","nameLocation":"5072:11:102","nodeType":"VariableDeclaration","scope":70623,"src":"5067:16:102","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":70556,"name":"uint","nodeType":"ElementaryTypeName","src":"5067:4:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":70570,"initialValue":{"arguments":[{"id":70560,"name":"userAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70497,"src":"5141:11:102","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":70561,"name":"pairIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70517,"src":"5178:9:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":70562,"name":"tradeIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70527,"src":"5213:10:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":70563,"name":"tradeData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70544,"src":"5249:9:102","typeDescriptions":{"typeIdentifier":"t_struct$_Trade_$89438_memory_ptr","typeString":"struct ITradingStorage.Trade memory"}},"id":70564,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"buy","nodeType":"MemberAccess","referencedDeclaration":89429,"src":"5249:13:102","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"expression":{"id":70565,"name":"tradeData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70544,"src":"5288:9:102","typeDescriptions":{"typeIdentifier":"t_struct$_Trade_$89438_memory_ptr","typeString":"struct ITradingStorage.Trade memory"}},"id":70566,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"initialPosToken","nodeType":"MemberAccess","referencedDeclaration":89423,"src":"5288:25:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":70567,"name":"tradeData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70544,"src":"5339:9:102","typeDescriptions":{"typeIdentifier":"t_struct$_Trade_$89438_memory_ptr","typeString":"struct ITradingStorage.Trade memory"}},"id":70568,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"leverage","nodeType":"MemberAccess","referencedDeclaration":89431,"src":"5339:18:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":70558,"name":"pairInfos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70318,"src":"5086:9:102","typeDescriptions":{"typeIdentifier":"t_contract$_IExtendedPairInfos_$88510","typeString":"contract IExtendedPairInfos"}},"id":70559,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getTradeRolloverFee","nodeType":"MemberAccess","referencedDeclaration":88736,"src":"5086:29:102","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_uint256_$_t_uint256_$_t_bool_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256,uint256,bool,uint256,uint256) view external returns (uint256)"}},"id":70569,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5086:293:102","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5067:312:102"},{"clauses":[{"block":{"id":70614,"nodeType":"Block","src":"5954:638:102","statements":[{"assignments":[70592],"declarations":[{"constant":false,"id":70592,"mutability":"mutable","name":"tradeInfo","nameLocation":"6055:9:102","nodeType":"VariableDeclaration","scope":70614,"src":"6022:42:102","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_TradeInfo_$89449_memory_ptr","typeString":"struct ITradingStorage.TradeInfo"},"typeName":{"id":70591,"nodeType":"UserDefinedTypeName","pathNode":{"id":70590,"name":"ITradingStorage.TradeInfo","nodeType":"IdentifierPath","referencedDeclaration":89449,"src":"6022:25:102"},"referencedDeclaration":89449,"src":"6022:25:102","typeDescriptions":{"typeIdentifier":"t_struct$_TradeInfo_$89449_storage_ptr","typeString":"struct ITradingStorage.TradeInfo"}},"visibility":"internal"}],"id":70599,"initialValue":{"arguments":[{"id":70595,"name":"userAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70497,"src":"6120:11:102","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":70596,"name":"pairIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70517,"src":"6133:9:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":70597,"name":"tradeIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70527,"src":"6144:10:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":70593,"name":"storageT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70315,"src":"6067:8:102","typeDescriptions":{"typeIdentifier":"t_contract$_ITradingStorage_$89943","typeString":"contract ITradingStorage"}},"id":70594,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"openTradesInfo","nodeType":"MemberAccess","referencedDeclaration":89698,"src":"6067:52:102","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_uint256_$_t_uint256_$returns$_t_struct$_TradeInfo_$89449_memory_ptr_$","typeString":"function (address,uint256,uint256) view external returns (struct ITradingStorage.TradeInfo memory)"}},"id":70598,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6067:88:102","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_TradeInfo_$89449_memory_ptr","typeString":"struct ITradingStorage.TradeInfo memory"}},"nodeType":"VariableDeclarationStatement","src":"6022:133:102"},{"expression":{"id":70609,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":70600,"name":"aggregatedTrades","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70505,"src":"6239:16:102","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_AggregatedTrade_$88387_memory_ptr_$dyn_memory_ptr","typeString":"struct IMulticall.AggregatedTrade memory[] memory"}},"id":70602,"indexExpression":{"id":70601,"name":"tradeCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70513,"src":"6256:12:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6239:30:102","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedTrade_$88387_memory_ptr","typeString":"struct IMulticall.AggregatedTrade memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":70604,"name":"tradeData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70544,"src":"6325:9:102","typeDescriptions":{"typeIdentifier":"t_struct$_Trade_$89438_memory_ptr","typeString":"struct ITradingStorage.Trade memory"}},{"id":70605,"name":"tradeInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70592,"src":"6375:9:102","typeDescriptions":{"typeIdentifier":"t_struct$_TradeInfo_$89449_memory_ptr","typeString":"struct ITradingStorage.TradeInfo memory"}},{"id":70606,"name":"rolloverFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70557,"src":"6427:11:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":70607,"name":"liquidationPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70586,"src":"6486:16:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Trade_$89438_memory_ptr","typeString":"struct ITradingStorage.Trade memory"},{"typeIdentifier":"t_struct$_TradeInfo_$89449_memory_ptr","typeString":"struct ITradingStorage.TradeInfo memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":70603,"name":"AggregatedTrade","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":88387,"src":"6272:15:102","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_AggregatedTrade_$88387_storage_ptr_$","typeString":"type(struct IMulticall.AggregatedTrade storage pointer)"}},"id":70608,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":["trade","tradeInfo","rolloverFee","liquidationPrice"],"nodeType":"FunctionCall","src":"6272:257:102","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedTrade_$88387_memory_ptr","typeString":"struct IMulticall.AggregatedTrade memory"}},"src":"6239:290:102","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedTrade_$88387_memory_ptr","typeString":"struct IMulticall.AggregatedTrade memory"}},"id":70610,"nodeType":"ExpressionStatement","src":"6239:290:102"},{"expression":{"id":70612,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"6555:14:102","subExpression":{"id":70611,"name":"tradeCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70513,"src":"6555:12:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":70613,"nodeType":"ExpressionStatement","src":"6555:14:102"}]},"errorName":"","id":70615,"nodeType":"TryCatchClause","parameters":{"id":70587,"nodeType":"ParameterList","parameters":[{"constant":false,"id":70586,"mutability":"mutable","name":"liquidationPrice","nameLocation":"5936:16:102","nodeType":"VariableDeclaration","scope":70615,"src":"5931:21:102","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":70585,"name":"uint","nodeType":"ElementaryTypeName","src":"5931:4:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5930:23:102"},"src":"5922:670:102"},{"block":{"id":70620,"nodeType":"Block","src":"6599:148:102","statements":[{"expression":{"id":70617,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"6676:14:102","subExpression":{"id":70616,"name":"tradeCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70513,"src":"6676:12:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":70618,"nodeType":"ExpressionStatement","src":"6676:14:102"},{"id":70619,"nodeType":"Continue","src":"6716:8:102"}]},"errorName":"","id":70621,"nodeType":"TryCatchClause","src":"6593:154:102"}],"externalCall":{"arguments":[{"id":70573,"name":"userAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70497,"src":"5590:11:102","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":70574,"name":"pairIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70517,"src":"5631:9:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":70575,"name":"tradeIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70527,"src":"5670:10:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":70576,"name":"tradeData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70544,"src":"5710:9:102","typeDescriptions":{"typeIdentifier":"t_struct$_Trade_$89438_memory_ptr","typeString":"struct ITradingStorage.Trade memory"}},"id":70577,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"openPrice","nodeType":"MemberAccess","referencedDeclaration":89427,"src":"5710:19:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":70578,"name":"tradeData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70544,"src":"5759:9:102","typeDescriptions":{"typeIdentifier":"t_struct$_Trade_$89438_memory_ptr","typeString":"struct ITradingStorage.Trade memory"}},"id":70579,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"buy","nodeType":"MemberAccess","referencedDeclaration":89429,"src":"5759:13:102","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"expression":{"id":70580,"name":"tradeData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70544,"src":"5802:9:102","typeDescriptions":{"typeIdentifier":"t_struct$_Trade_$89438_memory_ptr","typeString":"struct ITradingStorage.Trade memory"}},"id":70581,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"initialPosToken","nodeType":"MemberAccess","referencedDeclaration":89423,"src":"5802:25:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":70582,"name":"tradeData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70544,"src":"5857:9:102","typeDescriptions":{"typeIdentifier":"t_struct$_Trade_$89438_memory_ptr","typeString":"struct ITradingStorage.Trade memory"}},"id":70583,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"leverage","nodeType":"MemberAccess","referencedDeclaration":89431,"src":"5857:18:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":70571,"name":"pairInfos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70318,"src":"5526:9:102","typeDescriptions":{"typeIdentifier":"t_contract$_IExtendedPairInfos_$88510","typeString":"contract IExtendedPairInfos"}},"id":70572,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getTradeLiquidationPrice","nodeType":"MemberAccess","referencedDeclaration":88699,"src":"5526:34:102","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_bool_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256,uint256,uint256,bool,uint256,uint256) view external returns (uint256)"}},"id":70584,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5526:375:102","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":70622,"nodeType":"TryStatement","src":"5498:1249:102"}]},"errorName":"","id":70624,"nodeType":"TryCatchClause","parameters":{"id":70545,"nodeType":"ParameterList","parameters":[{"constant":false,"id":70544,"mutability":"mutable","name":"tradeData","nameLocation":"4846:9:102","nodeType":"VariableDeclaration","scope":70624,"src":"4817:38:102","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Trade_$89438_memory_ptr","typeString":"struct ITradingStorage.Trade"},"typeName":{"id":70543,"nodeType":"UserDefinedTypeName","pathNode":{"id":70542,"name":"ITradingStorage.Trade","nodeType":"IdentifierPath","referencedDeclaration":89438,"src":"4817:21:102"},"referencedDeclaration":89438,"src":"4817:21:102","typeDescriptions":{"typeIdentifier":"t_struct$_Trade_$89438_storage_ptr","typeString":"struct ITradingStorage.Trade"}},"visibility":"internal"}],"src":"4816:40:102"},"src":"4808:1957:102"},{"block":{"id":70629,"nodeType":"Block","src":"6772:126:102","statements":[{"expression":{"id":70626,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"6835:14:102","subExpression":{"id":70625,"name":"tradeCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70513,"src":"6835:12:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":70627,"nodeType":"ExpressionStatement","src":"6835:14:102"},{"id":70628,"nodeType":"Continue","src":"6871:8:102"}]},"errorName":"","id":70630,"nodeType":"TryCatchClause","src":"6766:132:102"}],"externalCall":{"arguments":[{"id":70538,"name":"userAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70497,"src":"4756:11:102","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":70539,"name":"pairIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70517,"src":"4769:9:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":70540,"name":"tradeIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70527,"src":"4780:10:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":70536,"name":"storageT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70315,"src":"4736:8:102","typeDescriptions":{"typeIdentifier":"t_contract$_ITradingStorage_$89943","typeString":"contract ITradingStorage"}},"id":70537,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"openTrades","nodeType":"MemberAccess","referencedDeclaration":89686,"src":"4736:19:102","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_uint256_$_t_uint256_$returns$_t_struct$_Trade_$89438_memory_ptr_$","typeString":"function (address,uint256,uint256) view external returns (struct ITradingStorage.Trade memory)"}},"id":70541,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4736:55:102","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_struct$_Trade_$89438_memory_ptr","typeString":"struct ITradingStorage.Trade memory"}},"id":70631,"nodeType":"TryStatement","src":"4712:2186:102"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":70532,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":70530,"name":"tradeIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70527,"src":"4545:10:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":70531,"name":"maxTradesPerPair","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70501,"src":"4558:16:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4545:29:102","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":70633,"initializationExpression":{"assignments":[70527],"declarations":[{"constant":false,"id":70527,"mutability":"mutable","name":"tradeIndex","nameLocation":"4513:10:102","nodeType":"VariableDeclaration","scope":70633,"src":"4505:18:102","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":70526,"name":"uint256","nodeType":"ElementaryTypeName","src":"4505:7:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":70529,"initialValue":{"hexValue":"30","id":70528,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4526:1:102","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"4505:22:102"},"loopExpression":{"expression":{"id":70534,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"4592:12:102","subExpression":{"id":70533,"name":"tradeIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70527,"src":"4592:10:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":70535,"nodeType":"ExpressionStatement","src":"4592:12:102"},"nodeType":"ForStatement","src":"4483:2429:102"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":70522,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":70520,"name":"pairIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70517,"src":"4433:9:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":70521,"name":"pairCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70499,"src":"4445:9:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4433:21:102","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":70635,"initializationExpression":{"assignments":[70517],"declarations":[{"constant":false,"id":70517,"mutability":"mutable","name":"pairIndex","nameLocation":"4418:9:102","nodeType":"VariableDeclaration","scope":70635,"src":"4410:17:102","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":70516,"name":"uint256","nodeType":"ElementaryTypeName","src":"4410:7:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":70519,"initialValue":{"hexValue":"30","id":70518,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4430:1:102","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"4410:21:102"},"loopExpression":{"expression":{"id":70524,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"4456:11:102","subExpression":{"id":70523,"name":"pairIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70517,"src":"4456:9:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":70525,"nodeType":"ExpressionStatement","src":"4456:11:102"},"nodeType":"ForStatement","src":"4405:2517:102"},{"expression":{"id":70636,"name":"aggregatedTrades","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70505,"src":"6938:16:102","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_AggregatedTrade_$88387_memory_ptr_$dyn_memory_ptr","typeString":"struct IMulticall.AggregatedTrade memory[] memory"}},"functionReturnParameters":70511,"id":70637,"nodeType":"Return","src":"6931:23:102"}]},"documentation":{"id":70495,"nodeType":"StructuredDocumentation","src":"3669:471:102","text":" @notice [INTERNAL] Gets the aggregated trades for a given user address\n @param userAddress The address of the user\n @param pairCount The number of pairs\n @param maxTradesPerPair The maximum number of trades per pair\n @param aggregatedTrades An array of aggregated trades\n @return AggregatedTrade An array of aggregated trades\n @dev This internal function is used to get the aggregated trades for a given user address"},"implemented":true,"kind":"function","modifiers":[],"name":"_getTrades","nameLocation":"4154:10:102","parameters":{"id":70506,"nodeType":"ParameterList","parameters":[{"constant":false,"id":70497,"mutability":"mutable","name":"userAddress","nameLocation":"4182:11:102","nodeType":"VariableDeclaration","scope":70639,"src":"4174:19:102","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":70496,"name":"address","nodeType":"ElementaryTypeName","src":"4174:7:102","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":70499,"mutability":"mutable","name":"pairCount","nameLocation":"4211:9:102","nodeType":"VariableDeclaration","scope":70639,"src":"4203:17:102","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":70498,"name":"uint256","nodeType":"ElementaryTypeName","src":"4203:7:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":70501,"mutability":"mutable","name":"maxTradesPerPair","nameLocation":"4238:16:102","nodeType":"VariableDeclaration","scope":70639,"src":"4230:24:102","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":70500,"name":"uint256","nodeType":"ElementaryTypeName","src":"4230:7:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":70505,"mutability":"mutable","name":"aggregatedTrades","nameLocation":"4289:16:102","nodeType":"VariableDeclaration","scope":70639,"src":"4264:41:102","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_AggregatedTrade_$88387_memory_ptr_$dyn_memory_ptr","typeString":"struct IMulticall.AggregatedTrade[]"},"typeName":{"baseType":{"id":70503,"nodeType":"UserDefinedTypeName","pathNode":{"id":70502,"name":"AggregatedTrade","nodeType":"IdentifierPath","referencedDeclaration":88387,"src":"4264:15:102"},"referencedDeclaration":88387,"src":"4264:15:102","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedTrade_$88387_storage_ptr","typeString":"struct IMulticall.AggregatedTrade"}},"id":70504,"nodeType":"ArrayTypeName","src":"4264:17:102","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_AggregatedTrade_$88387_storage_$dyn_storage_ptr","typeString":"struct IMulticall.AggregatedTrade[]"}},"visibility":"internal"}],"src":"4164:147:102"},"returnParameters":{"id":70511,"nodeType":"ParameterList","parameters":[{"constant":false,"id":70510,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":70639,"src":"4335:24:102","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_AggregatedTrade_$88387_memory_ptr_$dyn_memory_ptr","typeString":"struct IMulticall.AggregatedTrade[]"},"typeName":{"baseType":{"id":70508,"nodeType":"UserDefinedTypeName","pathNode":{"id":70507,"name":"AggregatedTrade","nodeType":"IdentifierPath","referencedDeclaration":88387,"src":"4335:15:102"},"referencedDeclaration":88387,"src":"4335:15:102","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedTrade_$88387_storage_ptr","typeString":"struct IMulticall.AggregatedTrade"}},"id":70509,"nodeType":"ArrayTypeName","src":"4335:17:102","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_AggregatedTrade_$88387_storage_$dyn_storage_ptr","typeString":"struct IMulticall.AggregatedTrade[]"}},"visibility":"internal"}],"src":"4334:26:102"},"scope":71102,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":70756,"nodeType":"FunctionDefinition","src":"7443:2245:102","nodes":[],"body":{"id":70755,"nodeType":"Block","src":"7659:2029:102","nodes":[],"statements":[{"assignments":[70658],"declarations":[{"constant":false,"id":70658,"mutability":"mutable","name":"orderCounter","nameLocation":"7677:12:102","nodeType":"VariableDeclaration","scope":70755,"src":"7669:20:102","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":70657,"name":"uint256","nodeType":"ElementaryTypeName","src":"7669:7:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":70660,"initialValue":{"hexValue":"30","id":70659,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7692:1:102","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"7669:24:102"},{"body":{"id":70751,"nodeType":"Block","src":"7767:1882:102","statements":[{"body":{"id":70749,"nodeType":"Block","src":"7917:1722:102","statements":[{"clauses":[{"block":{"id":70740,"nodeType":"Block","src":"8266:1225:102","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":70694,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":70691,"name":"orderData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70689,"src":"8292:9:102","typeDescriptions":{"typeIdentifier":"t_struct$_OpenLimitOrder_$89474_memory_ptr","typeString":"struct ITradingStorage.OpenLimitOrder memory"}},"id":70692,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"leverage","nodeType":"MemberAccess","referencedDeclaration":89461,"src":"8292:18:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":70693,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8314:1:102","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8292:23:102","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":70700,"nodeType":"IfStatement","src":"8288:126:102","trueBody":{"id":70699,"nodeType":"Block","src":"8317:97:102","statements":[{"expression":{"id":70696,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"8343:14:102","subExpression":{"id":70695,"name":"orderCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70658,"src":"8343:12:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":70697,"nodeType":"ExpressionStatement","src":"8343:14:102"},{"id":70698,"nodeType":"Continue","src":"8383:8:102"}]}},{"clauses":[{"block":{"id":70731,"nodeType":"Block","src":"8986:332:102","statements":[{"expression":{"id":70726,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":70719,"name":"aggregatedOrders","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70650,"src":"9069:16:102","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_AggregatedOrder_$88393_memory_ptr_$dyn_memory_ptr","typeString":"struct IMulticall.AggregatedOrder memory[] memory"}},"id":70721,"indexExpression":{"id":70720,"name":"orderCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70658,"src":"9086:12:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9069:30:102","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedOrder_$88393_memory_ptr","typeString":"struct IMulticall.AggregatedOrder memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":70723,"name":"orderData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70689,"src":"9155:9:102","typeDescriptions":{"typeIdentifier":"t_struct$_OpenLimitOrder_$89474_memory_ptr","typeString":"struct ITradingStorage.OpenLimitOrder memory"}},{"id":70724,"name":"liquidationPrice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70717,"src":"9212:16:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_OpenLimitOrder_$89474_memory_ptr","typeString":"struct ITradingStorage.OpenLimitOrder memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":70722,"name":"AggregatedOrder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":88393,"src":"9102:15:102","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_AggregatedOrder_$88393_storage_ptr_$","typeString":"type(struct IMulticall.AggregatedOrder storage pointer)"}},"id":70725,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":["order","liquidationPrice"],"nodeType":"FunctionCall","src":"9102:153:102","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedOrder_$88393_memory_ptr","typeString":"struct IMulticall.AggregatedOrder memory"}},"src":"9069:186:102","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedOrder_$88393_memory_ptr","typeString":"struct IMulticall.AggregatedOrder memory"}},"id":70727,"nodeType":"ExpressionStatement","src":"9069:186:102"},{"expression":{"id":70729,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"9281:14:102","subExpression":{"id":70728,"name":"orderCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70658,"src":"9281:12:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":70730,"nodeType":"ExpressionStatement","src":"9281:14:102"}]},"errorName":"","id":70732,"nodeType":"TryCatchClause","parameters":{"id":70718,"nodeType":"ParameterList","parameters":[{"constant":false,"id":70717,"mutability":"mutable","name":"liquidationPrice","nameLocation":"8968:16:102","nodeType":"VariableDeclaration","scope":70732,"src":"8963:21:102","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":70716,"name":"uint","nodeType":"ElementaryTypeName","src":"8963:4:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8962:23:102"},"src":"8954:364:102"},{"block":{"id":70737,"nodeType":"Block","src":"9325:148:102","statements":[{"expression":{"id":70734,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"9402:14:102","subExpression":{"id":70733,"name":"orderCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70658,"src":"9402:12:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":70735,"nodeType":"ExpressionStatement","src":"9402:14:102"},{"id":70736,"nodeType":"Continue","src":"9442:8:102"}]},"errorName":"","id":70738,"nodeType":"TryCatchClause","src":"9319:154:102"}],"externalCall":{"arguments":[{"id":70703,"name":"userAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70642,"src":"8624:11:102","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":70704,"name":"pairIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70662,"src":"8665:9:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":70705,"name":"orderData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70689,"src":"8704:9:102","typeDescriptions":{"typeIdentifier":"t_struct$_OpenLimitOrder_$89474_memory_ptr","typeString":"struct ITradingStorage.OpenLimitOrder memory"}},"id":70706,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"index","nodeType":"MemberAccess","referencedDeclaration":89455,"src":"8704:15:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":70707,"name":"orderData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70689,"src":"8749:9:102","typeDescriptions":{"typeIdentifier":"t_struct$_OpenLimitOrder_$89474_memory_ptr","typeString":"struct ITradingStorage.OpenLimitOrder memory"}},"id":70708,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"price","nodeType":"MemberAccess","referencedDeclaration":89467,"src":"8749:15:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":70709,"name":"orderData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70689,"src":"8794:9:102","typeDescriptions":{"typeIdentifier":"t_struct$_OpenLimitOrder_$89474_memory_ptr","typeString":"struct ITradingStorage.OpenLimitOrder memory"}},"id":70710,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"buy","nodeType":"MemberAccess","referencedDeclaration":89459,"src":"8794:13:102","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"expression":{"id":70711,"name":"orderData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70689,"src":"8837:9:102","typeDescriptions":{"typeIdentifier":"t_struct$_OpenLimitOrder_$89474_memory_ptr","typeString":"struct ITradingStorage.OpenLimitOrder memory"}},"id":70712,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"positionSize","nodeType":"MemberAccess","referencedDeclaration":89457,"src":"8837:22:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":70713,"name":"orderData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70689,"src":"8889:9:102","typeDescriptions":{"typeIdentifier":"t_struct$_OpenLimitOrder_$89474_memory_ptr","typeString":"struct ITradingStorage.OpenLimitOrder memory"}},"id":70714,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"leverage","nodeType":"MemberAccess","referencedDeclaration":89461,"src":"8889:18:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":70701,"name":"pairInfos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70318,"src":"8560:9:102","typeDescriptions":{"typeIdentifier":"t_contract$_IExtendedPairInfos_$88510","typeString":"contract IExtendedPairInfos"}},"id":70702,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getTradeLiquidationPrice","nodeType":"MemberAccess","referencedDeclaration":88699,"src":"8560:34:102","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_bool_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256,uint256,uint256,bool,uint256,uint256) view external returns (uint256)"}},"id":70715,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8560:373:102","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":70739,"nodeType":"TryStatement","src":"8532:941:102"}]},"errorName":"","id":70741,"nodeType":"TryCatchClause","parameters":{"id":70690,"nodeType":"ParameterList","parameters":[{"constant":false,"id":70689,"mutability":"mutable","name":"orderData","nameLocation":"8255:9:102","nodeType":"VariableDeclaration","scope":70741,"src":"8217:47:102","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_OpenLimitOrder_$89474_memory_ptr","typeString":"struct ITradingStorage.OpenLimitOrder"},"typeName":{"id":70688,"nodeType":"UserDefinedTypeName","pathNode":{"id":70687,"name":"ITradingStorage.OpenLimitOrder","nodeType":"IdentifierPath","referencedDeclaration":89474,"src":"8217:30:102"},"referencedDeclaration":89474,"src":"8217:30:102","typeDescriptions":{"typeIdentifier":"t_struct$_OpenLimitOrder_$89474_storage_ptr","typeString":"struct ITradingStorage.OpenLimitOrder"}},"visibility":"internal"}],"src":"8216:49:102"},"src":"8208:1283:102"},{"block":{"id":70746,"nodeType":"Block","src":"9498:127:102","statements":[{"expression":{"id":70743,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"9562:14:102","subExpression":{"id":70742,"name":"orderCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70658,"src":"9562:12:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":70744,"nodeType":"ExpressionStatement","src":"9562:14:102"},{"id":70745,"nodeType":"Continue","src":"9598:8:102"}]},"errorName":"","id":70747,"nodeType":"TryCatchClause","src":"9492:133:102"}],"externalCall":{"arguments":[{"id":70683,"name":"userAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70642,"src":"8087:11:102","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":70684,"name":"pairIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70662,"src":"8124:9:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":70685,"name":"orderIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70672,"src":"8159:10:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":70681,"name":"storageT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70315,"src":"8035:8:102","typeDescriptions":{"typeIdentifier":"t_contract$_ITradingStorage_$89943","typeString":"contract ITradingStorage"}},"id":70682,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getOpenLimitOrder","nodeType":"MemberAccess","referencedDeclaration":89732,"src":"8035:26:102","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_uint256_$_t_uint256_$returns$_t_struct$_OpenLimitOrder_$89474_memory_ptr_$","typeString":"function (address,uint256,uint256) view external returns (struct ITradingStorage.OpenLimitOrder memory)"}},"id":70686,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8035:156:102","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_struct$_OpenLimitOrder_$89474_memory_ptr","typeString":"struct ITradingStorage.OpenLimitOrder memory"}},"id":70748,"nodeType":"TryStatement","src":"8011:1614:102"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":70677,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":70675,"name":"orderIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70672,"src":"7843:10:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":70676,"name":"maxTradesPerPair","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70646,"src":"7856:16:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7843:29:102","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":70750,"initializationExpression":{"assignments":[70672],"declarations":[{"constant":false,"id":70672,"mutability":"mutable","name":"orderIndex","nameLocation":"7811:10:102","nodeType":"VariableDeclaration","scope":70750,"src":"7803:18:102","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":70671,"name":"uint256","nodeType":"ElementaryTypeName","src":"7803:7:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":70674,"initialValue":{"hexValue":"30","id":70673,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7824:1:102","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"7803:22:102"},"loopExpression":{"expression":{"id":70679,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"7890:12:102","subExpression":{"id":70678,"name":"orderIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70672,"src":"7890:10:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":70680,"nodeType":"ExpressionStatement","src":"7890:12:102"},"nodeType":"ForStatement","src":"7781:1858:102"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":70667,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":70665,"name":"pairIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70662,"src":"7731:9:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":70666,"name":"pairCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70644,"src":"7743:9:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7731:21:102","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":70752,"initializationExpression":{"assignments":[70662],"declarations":[{"constant":false,"id":70662,"mutability":"mutable","name":"pairIndex","nameLocation":"7716:9:102","nodeType":"VariableDeclaration","scope":70752,"src":"7708:17:102","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":70661,"name":"uint256","nodeType":"ElementaryTypeName","src":"7708:7:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":70664,"initialValue":{"hexValue":"30","id":70663,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7728:1:102","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"7708:21:102"},"loopExpression":{"expression":{"id":70669,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"7754:11:102","subExpression":{"id":70668,"name":"pairIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70662,"src":"7754:9:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":70670,"nodeType":"ExpressionStatement","src":"7754:11:102"},"nodeType":"ForStatement","src":"7703:1946:102"},{"expression":{"id":70753,"name":"aggregatedOrders","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70650,"src":"9665:16:102","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_AggregatedOrder_$88393_memory_ptr_$dyn_memory_ptr","typeString":"struct IMulticall.AggregatedOrder memory[] memory"}},"functionReturnParameters":70656,"id":70754,"nodeType":"Return","src":"9658:23:102"}]},"documentation":{"id":70640,"nodeType":"StructuredDocumentation","src":"6967:471:102","text":" @notice [INTERNAL] Gets the aggregated orders for a given user address\n @param userAddress The address of the user\n @param pairCount The number of pairs\n @param maxTradesPerPair The maximum number of trades per pair\n @param aggregatedOrders An array of aggregated orders\n @return AggregatedOrder An array of aggregated orders\n @dev This internal function is used to get the aggregated orders for a given user address"},"implemented":true,"kind":"function","modifiers":[],"name":"_getOrders","nameLocation":"7452:10:102","parameters":{"id":70651,"nodeType":"ParameterList","parameters":[{"constant":false,"id":70642,"mutability":"mutable","name":"userAddress","nameLocation":"7480:11:102","nodeType":"VariableDeclaration","scope":70756,"src":"7472:19:102","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":70641,"name":"address","nodeType":"ElementaryTypeName","src":"7472:7:102","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":70644,"mutability":"mutable","name":"pairCount","nameLocation":"7509:9:102","nodeType":"VariableDeclaration","scope":70756,"src":"7501:17:102","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":70643,"name":"uint256","nodeType":"ElementaryTypeName","src":"7501:7:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":70646,"mutability":"mutable","name":"maxTradesPerPair","nameLocation":"7536:16:102","nodeType":"VariableDeclaration","scope":70756,"src":"7528:24:102","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":70645,"name":"uint256","nodeType":"ElementaryTypeName","src":"7528:7:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":70650,"mutability":"mutable","name":"aggregatedOrders","nameLocation":"7587:16:102","nodeType":"VariableDeclaration","scope":70756,"src":"7562:41:102","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_AggregatedOrder_$88393_memory_ptr_$dyn_memory_ptr","typeString":"struct IMulticall.AggregatedOrder[]"},"typeName":{"baseType":{"id":70648,"nodeType":"UserDefinedTypeName","pathNode":{"id":70647,"name":"AggregatedOrder","nodeType":"IdentifierPath","referencedDeclaration":88393,"src":"7562:15:102"},"referencedDeclaration":88393,"src":"7562:15:102","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedOrder_$88393_storage_ptr","typeString":"struct IMulticall.AggregatedOrder"}},"id":70649,"nodeType":"ArrayTypeName","src":"7562:17:102","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_AggregatedOrder_$88393_storage_$dyn_storage_ptr","typeString":"struct IMulticall.AggregatedOrder[]"}},"visibility":"internal"}],"src":"7462:147:102"},"returnParameters":{"id":70656,"nodeType":"ParameterList","parameters":[{"constant":false,"id":70655,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":70756,"src":"7633:24:102","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_AggregatedOrder_$88393_memory_ptr_$dyn_memory_ptr","typeString":"struct IMulticall.AggregatedOrder[]"},"typeName":{"baseType":{"id":70653,"nodeType":"UserDefinedTypeName","pathNode":{"id":70652,"name":"AggregatedOrder","nodeType":"IdentifierPath","referencedDeclaration":88393,"src":"7633:15:102"},"referencedDeclaration":88393,"src":"7633:15:102","typeDescriptions":{"typeIdentifier":"t_struct$_AggregatedOrder_$88393_storage_ptr","typeString":"struct IMulticall.AggregatedOrder"}},"id":70654,"nodeType":"ArrayTypeName","src":"7633:17:102","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_AggregatedOrder_$88393_storage_$dyn_storage_ptr","typeString":"struct IMulticall.AggregatedOrder[]"}},"visibility":"internal"}],"src":"7632:26:102"},"scope":71102,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":70822,"nodeType":"FunctionDefinition","src":"9945:515:102","nodes":[],"body":{"id":70821,"nodeType":"Block","src":"10128:332:102","nodes":[],"statements":[{"assignments":[70768],"declarations":[{"constant":false,"id":70768,"mutability":"mutable","name":"pairCount","nameLocation":"10146:9:102","nodeType":"VariableDeclaration","scope":70821,"src":"10138:17:102","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":70767,"name":"uint256","nodeType":"ElementaryTypeName","src":"10138:7:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":70772,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":70769,"name":"pairsStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70321,"src":"10158:12:102","typeDescriptions":{"typeIdentifier":"t_contract$_IExtendedPairStorage_$88455","typeString":"contract IExtendedPairStorage"}},"id":70770,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"pairsCount","nodeType":"MemberAccess","referencedDeclaration":89026,"src":"10158:23:102","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":70771,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10158:25:102","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10138:45:102"},{"expression":{"id":70779,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":70773,"name":"longRatio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70762,"src":"10194:9:102","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":70777,"name":"pairCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70768,"src":"10217:9:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":70776,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"10206:10:102","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":70774,"name":"uint","nodeType":"ElementaryTypeName","src":"10210:4:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":70775,"nodeType":"ArrayTypeName","src":"10210:6:102","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":70778,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10206:21:102","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"src":"10194:33:102","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":70780,"nodeType":"ExpressionStatement","src":"10194:33:102"},{"expression":{"id":70787,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":70781,"name":"shortRatio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70765,"src":"10237:10:102","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":70785,"name":"pairCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70768,"src":"10261:9:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":70784,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"10250:10:102","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":70782,"name":"uint","nodeType":"ElementaryTypeName","src":"10254:4:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":70783,"nodeType":"ArrayTypeName","src":"10254:6:102","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":70786,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10250:21:102","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"src":"10237:34:102","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":70788,"nodeType":"ExpressionStatement","src":"10237:34:102"},{"body":{"id":70819,"nodeType":"Block","src":"10322:132:102","statements":[{"expression":{"id":70807,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":70799,"name":"longRatio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70762,"src":"10336:9:102","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":70801,"indexExpression":{"id":70800,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70790,"src":"10346:1:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10336:12:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":70804,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70790,"src":"10377:1:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":70805,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10380:1:102","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":70802,"name":"storageT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70315,"src":"10351:8:102","typeDescriptions":{"typeIdentifier":"t_contract$_ITradingStorage_$89943","typeString":"contract ITradingStorage"}},"id":70803,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"openInterestUSDC","nodeType":"MemberAccess","referencedDeclaration":89890,"src":"10351:25:102","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) view external returns (uint256)"}},"id":70806,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10351:31:102","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10336:46:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":70808,"nodeType":"ExpressionStatement","src":"10336:46:102"},{"expression":{"id":70817,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":70809,"name":"shortRatio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70765,"src":"10396:10:102","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":70811,"indexExpression":{"id":70810,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70790,"src":"10407:1:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10396:13:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":70814,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70790,"src":"10438:1:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"31","id":70815,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10441:1:102","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":70812,"name":"storageT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70315,"src":"10412:8:102","typeDescriptions":{"typeIdentifier":"t_contract$_ITradingStorage_$89943","typeString":"contract ITradingStorage"}},"id":70813,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"openInterestUSDC","nodeType":"MemberAccess","referencedDeclaration":89890,"src":"10412:25:102","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) view external returns (uint256)"}},"id":70816,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10412:31:102","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10396:47:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":70818,"nodeType":"ExpressionStatement","src":"10396:47:102"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":70795,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":70793,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70790,"src":"10302:1:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":70794,"name":"pairCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70768,"src":"10306:9:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10302:13:102","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":70820,"initializationExpression":{"assignments":[70790],"declarations":[{"constant":false,"id":70790,"mutability":"mutable","name":"i","nameLocation":"10295:1:102","nodeType":"VariableDeclaration","scope":70820,"src":"10287:9:102","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":70789,"name":"uint256","nodeType":"ElementaryTypeName","src":"10287:7:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":70792,"initialValue":{"hexValue":"30","id":70791,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10299:1:102","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"10287:13:102"},"loopExpression":{"expression":{"id":70797,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"10317:3:102","subExpression":{"id":70796,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70790,"src":"10317:1:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":70798,"nodeType":"ExpressionStatement","src":"10317:3:102"},"nodeType":"ForStatement","src":"10282:172:102"}]},"baseFunctions":[88415],"documentation":{"id":70757,"nodeType":"StructuredDocumentation","src":"9694:246:102","text":" @notice Gets long, and short ratios for all pairs\n @return longRatio An array of long ratios\n @return shortRatio An array of short ratios\n @dev This function is used to get long, and short ratios for all pairs"},"functionSelector":"582b175f","implemented":true,"kind":"function","modifiers":[],"name":"getLongShortRatios","nameLocation":"9954:18:102","overrides":{"id":70759,"nodeType":"OverrideSpecifier","overrides":[],"src":"10013:8:102"},"parameters":{"id":70758,"nodeType":"ParameterList","parameters":[],"src":"9972:2:102"},"returnParameters":{"id":70766,"nodeType":"ParameterList","parameters":[{"constant":false,"id":70762,"mutability":"mutable","name":"longRatio","nameLocation":"10066:9:102","nodeType":"VariableDeclaration","scope":70822,"src":"10052:23:102","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":70760,"name":"uint","nodeType":"ElementaryTypeName","src":"10052:4:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":70761,"nodeType":"ArrayTypeName","src":"10052:6:102","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":70765,"mutability":"mutable","name":"shortRatio","nameLocation":"10103:10:102","nodeType":"VariableDeclaration","scope":70822,"src":"10089:24:102","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":70763,"name":"uint","nodeType":"ElementaryTypeName","src":"10089:4:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":70764,"nodeType":"ArrayTypeName","src":"10089:6:102","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"10038:85:102"},"scope":71102,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":70869,"nodeType":"FunctionDefinition","src":"10762:453:102","nodes":[],"body":{"id":70868,"nodeType":"Block","src":"10902:313:102","nodes":[],"statements":[{"assignments":[70833],"declarations":[{"constant":false,"id":70833,"mutability":"mutable","name":"pairCount","nameLocation":"10920:9:102","nodeType":"VariableDeclaration","scope":70868,"src":"10912:17:102","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":70832,"name":"uint256","nodeType":"ElementaryTypeName","src":"10912:7:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":70837,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":70834,"name":"pairsStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70321,"src":"10932:12:102","typeDescriptions":{"typeIdentifier":"t_contract$_IExtendedPairStorage_$88455","typeString":"contract IExtendedPairStorage"}},"id":70835,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"pairsCount","nodeType":"MemberAccess","referencedDeclaration":89026,"src":"10932:23:102","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":70836,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10932:25:102","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10912:45:102"},{"expression":{"id":70844,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":70838,"name":"firstEmptyTradeIndexes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70830,"src":"10968:22:102","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":70842,"name":"pairCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70833,"src":"11004:9:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":70841,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"10993:10:102","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":70839,"name":"uint","nodeType":"ElementaryTypeName","src":"10997:4:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":70840,"nodeType":"ArrayTypeName","src":"10997:6:102","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":70843,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10993:21:102","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"src":"10968:46:102","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":70845,"nodeType":"ExpressionStatement","src":"10968:46:102"},{"body":{"id":70866,"nodeType":"Block","src":"11065:144:102","statements":[{"expression":{"id":70864,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":70856,"name":"firstEmptyTradeIndexes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70830,"src":"11079:22:102","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":70858,"indexExpression":{"id":70857,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70847,"src":"11102:1:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11079:25:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":70861,"name":"userAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70825,"src":"11154:11:102","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":70862,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70847,"src":"11183:1:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":70859,"name":"storageT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70315,"src":"11107:8:102","typeDescriptions":{"typeIdentifier":"t_contract$_ITradingStorage_$89943","typeString":"contract ITradingStorage"}},"id":70860,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"firstEmptyTradeIndex","nodeType":"MemberAccess","referencedDeclaration":89777,"src":"11107:29:102","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256) view external returns (uint256)"}},"id":70863,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11107:91:102","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11079:119:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":70865,"nodeType":"ExpressionStatement","src":"11079:119:102"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":70852,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":70850,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70847,"src":"11045:1:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":70851,"name":"pairCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70833,"src":"11049:9:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11045:13:102","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":70867,"initializationExpression":{"assignments":[70847],"declarations":[{"constant":false,"id":70847,"mutability":"mutable","name":"i","nameLocation":"11038:1:102","nodeType":"VariableDeclaration","scope":70867,"src":"11030:9:102","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":70846,"name":"uint256","nodeType":"ElementaryTypeName","src":"11030:7:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":70849,"initialValue":{"hexValue":"30","id":70848,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11042:1:102","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"11030:13:102"},"loopExpression":{"expression":{"id":70854,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"11060:3:102","subExpression":{"id":70853,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70847,"src":"11060:1:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":70855,"nodeType":"ExpressionStatement","src":"11060:3:102"},"nodeType":"ForStatement","src":"11025:184:102"}]},"baseFunctions":[88423],"documentation":{"id":70823,"nodeType":"StructuredDocumentation","src":"10466:291:102","text":" @notice Get empty trade indexes for a given user address\n @param userAddress The address of the user\n @return firstEmptyTradeIndexes An array of first empty trade indexes\n @dev This function is used to get all empty trade indexes for a given user address"},"functionSelector":"977ca604","implemented":true,"kind":"function","modifiers":[],"name":"getFirstEmptyTradeIndexes","nameLocation":"10771:25:102","overrides":{"id":70827,"nodeType":"OverrideSpecifier","overrides":[],"src":"10846:8:102"},"parameters":{"id":70826,"nodeType":"ParameterList","parameters":[{"constant":false,"id":70825,"mutability":"mutable","name":"userAddress","nameLocation":"10814:11:102","nodeType":"VariableDeclaration","scope":70869,"src":"10806:19:102","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":70824,"name":"address","nodeType":"ElementaryTypeName","src":"10806:7:102","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10796:35:102"},"returnParameters":{"id":70831,"nodeType":"ParameterList","parameters":[{"constant":false,"id":70830,"mutability":"mutable","name":"firstEmptyTradeIndexes","nameLocation":"10878:22:102","nodeType":"VariableDeclaration","scope":70869,"src":"10864:36:102","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":70828,"name":"uint","nodeType":"ElementaryTypeName","src":"10864:4:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":70829,"nodeType":"ArrayTypeName","src":"10864:6:102","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"10863:38:102"},"scope":71102,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":70916,"nodeType":"FunctionDefinition","src":"11501:449:102","nodes":[],"body":{"id":70915,"nodeType":"Block","src":"11639:311:102","nodes":[],"statements":[{"assignments":[70880],"declarations":[{"constant":false,"id":70880,"mutability":"mutable","name":"pairCount","nameLocation":"11657:9:102","nodeType":"VariableDeclaration","scope":70915,"src":"11649:17:102","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":70879,"name":"uint256","nodeType":"ElementaryTypeName","src":"11649:7:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":70884,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":70881,"name":"pairsStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70321,"src":"11669:12:102","typeDescriptions":{"typeIdentifier":"t_contract$_IExtendedPairStorage_$88455","typeString":"contract IExtendedPairStorage"}},"id":70882,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"pairsCount","nodeType":"MemberAccess","referencedDeclaration":89026,"src":"11669:23:102","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":70883,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11669:25:102","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11649:45:102"},{"expression":{"id":70891,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":70885,"name":"openLimitOrdersCounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70877,"src":"11705:21:102","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":70889,"name":"pairCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70880,"src":"11740:9:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":70888,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"11729:10:102","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":70886,"name":"uint","nodeType":"ElementaryTypeName","src":"11733:4:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":70887,"nodeType":"ArrayTypeName","src":"11733:6:102","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":70890,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11729:21:102","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"src":"11705:45:102","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":70892,"nodeType":"ExpressionStatement","src":"11705:45:102"},{"body":{"id":70913,"nodeType":"Block","src":"11801:143:102","statements":[{"expression":{"id":70911,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":70903,"name":"openLimitOrdersCounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70877,"src":"11815:21:102","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":70905,"indexExpression":{"id":70904,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70894,"src":"11837:1:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11815:24:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":70908,"name":"userAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70872,"src":"11889:11:102","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":70909,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70894,"src":"11918:1:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":70906,"name":"storageT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70315,"src":"11842:8:102","typeDescriptions":{"typeIdentifier":"t_contract$_ITradingStorage_$89943","typeString":"contract ITradingStorage"}},"id":70907,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"openLimitOrdersCount","nodeType":"MemberAccess","referencedDeclaration":89832,"src":"11842:29:102","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256) view external returns (uint256)"}},"id":70910,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11842:91:102","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11815:118:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":70912,"nodeType":"ExpressionStatement","src":"11815:118:102"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":70899,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":70897,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70894,"src":"11781:1:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":70898,"name":"pairCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70880,"src":"11785:9:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11781:13:102","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":70914,"initializationExpression":{"assignments":[70894],"declarations":[{"constant":false,"id":70894,"mutability":"mutable","name":"i","nameLocation":"11774:1:102","nodeType":"VariableDeclaration","scope":70914,"src":"11766:9:102","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":70893,"name":"uint256","nodeType":"ElementaryTypeName","src":"11766:7:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":70896,"initialValue":{"hexValue":"30","id":70895,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11778:1:102","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"11766:13:102"},"loopExpression":{"expression":{"id":70901,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"11796:3:102","subExpression":{"id":70900,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70894,"src":"11796:1:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":70902,"nodeType":"ExpressionStatement","src":"11796:3:102"},"nodeType":"ForStatement","src":"11761:183:102"}]},"baseFunctions":[88431],"documentation":{"id":70870,"nodeType":"StructuredDocumentation","src":"11221:275:102","text":" @notice Get order counts for a given user address\n @param userAddress The address of the user\n @return openLimitOrdersCounts An array of open limit orders counts\n @dev This function is used to get all order counts for a given user address"},"functionSelector":"ed4a96a9","implemented":true,"kind":"function","modifiers":[],"name":"getOpenLimitOrdersCounts","nameLocation":"11510:24:102","overrides":{"id":70874,"nodeType":"OverrideSpecifier","overrides":[],"src":"11584:8:102"},"parameters":{"id":70873,"nodeType":"ParameterList","parameters":[{"constant":false,"id":70872,"mutability":"mutable","name":"userAddress","nameLocation":"11552:11:102","nodeType":"VariableDeclaration","scope":70916,"src":"11544:19:102","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":70871,"name":"address","nodeType":"ElementaryTypeName","src":"11544:7:102","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"11534:35:102"},"returnParameters":{"id":70878,"nodeType":"ParameterList","parameters":[{"constant":false,"id":70877,"mutability":"mutable","name":"openLimitOrdersCounts","nameLocation":"11616:21:102","nodeType":"VariableDeclaration","scope":70916,"src":"11602:35:102","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":70875,"name":"uint","nodeType":"ElementaryTypeName","src":"11602:4:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":70876,"nodeType":"ArrayTypeName","src":"11602:6:102","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"11601:37:102"},"scope":71102,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":71101,"nodeType":"FunctionDefinition","src":"12333:1819:102","nodes":[],"body":{"id":71100,"nodeType":"Block","src":"12584:1568:102","nodes":[],"statements":[{"assignments":[70931],"declarations":[{"constant":false,"id":70931,"mutability":"mutable","name":"pairCount","nameLocation":"12602:9:102","nodeType":"VariableDeclaration","scope":71100,"src":"12594:17:102","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":70930,"name":"uint256","nodeType":"ElementaryTypeName","src":"12594:7:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":70935,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":70932,"name":"pairsStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70321,"src":"12614:12:102","typeDescriptions":{"typeIdentifier":"t_contract$_IExtendedPairStorage_$88455","typeString":"contract IExtendedPairStorage"}},"id":70933,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"pairsCount","nodeType":"MemberAccess","referencedDeclaration":89026,"src":"12614:23:102","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":70934,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12614:25:102","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"12594:45:102"},{"assignments":[70937],"declarations":[{"constant":false,"id":70937,"mutability":"mutable","name":"precision","nameLocation":"12658:9:102","nodeType":"VariableDeclaration","scope":71100,"src":"12650:17:102","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":70936,"name":"uint256","nodeType":"ElementaryTypeName","src":"12650:7:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":70939,"initialValue":{"hexValue":"31653130","id":70938,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12670:4:102","typeDescriptions":{"typeIdentifier":"t_rational_10000000000_by_1","typeString":"int_const 10000000000"},"value":"1e10"},"nodeType":"VariableDeclarationStatement","src":"12650:24:102"},{"expression":{"id":70946,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":70940,"name":"rolloverFeePerBlockP","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70922,"src":"12684:20:102","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":70944,"name":"pairCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70931,"src":"12718:9:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":70943,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"12707:10:102","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":70941,"name":"uint","nodeType":"ElementaryTypeName","src":"12711:4:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":70942,"nodeType":"ArrayTypeName","src":"12711:6:102","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":70945,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12707:21:102","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"src":"12684:44:102","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":70947,"nodeType":"ExpressionStatement","src":"12684:44:102"},{"expression":{"id":70954,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":70948,"name":"rolloverFeePerBlockLong","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70925,"src":"12738:23:102","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":70952,"name":"pairCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70931,"src":"12775:9:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":70951,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"12764:10:102","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":70949,"name":"uint","nodeType":"ElementaryTypeName","src":"12768:4:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":70950,"nodeType":"ArrayTypeName","src":"12768:6:102","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":70953,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12764:21:102","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"src":"12738:47:102","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":70955,"nodeType":"ExpressionStatement","src":"12738:47:102"},{"expression":{"id":70962,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":70956,"name":"rolloverFeePerBlockShort","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70928,"src":"12795:24:102","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":70960,"name":"pairCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70931,"src":"12833:9:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":70959,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"12822:10:102","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":70957,"name":"uint","nodeType":"ElementaryTypeName","src":"12826:4:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":70958,"nodeType":"ArrayTypeName","src":"12826:6:102","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":70961,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12822:21:102","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"src":"12795:48:102","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":70963,"nodeType":"ExpressionStatement","src":"12795:48:102"},{"body":{"id":71098,"nodeType":"Block","src":"12894:1252:102","statements":[{"expression":{"id":70981,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":70974,"name":"rolloverFeePerBlockP","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70922,"src":"12908:20:102","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":70976,"indexExpression":{"id":70975,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70965,"src":"12929:1:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12908:23:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":70979,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70965,"src":"12968:1:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":70977,"name":"pairInfos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70318,"src":"12934:9:102","typeDescriptions":{"typeIdentifier":"t_contract$_IExtendedPairInfos_$88510","typeString":"contract IExtendedPairInfos"}},"id":70978,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getRolloverFeePerBlockP","nodeType":"MemberAccess","referencedDeclaration":88464,"src":"12934:33:102","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view external returns (uint256)"}},"id":70980,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12934:36:102","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12908:62:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":70982,"nodeType":"ExpressionStatement","src":"12908:62:102"},{"assignments":[70984],"declarations":[{"constant":false,"id":70984,"mutability":"mutable","name":"openInterestUSDCLong","nameLocation":"12989:20:102","nodeType":"VariableDeclaration","scope":71098,"src":"12984:25:102","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":70983,"name":"uint","nodeType":"ElementaryTypeName","src":"12984:4:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":70990,"initialValue":{"arguments":[{"id":70987,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70965,"src":"13038:1:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"30","id":70988,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13041:1:102","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":70985,"name":"storageT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70315,"src":"13012:8:102","typeDescriptions":{"typeIdentifier":"t_contract$_ITradingStorage_$89943","typeString":"contract ITradingStorage"}},"id":70986,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"openInterestUSDC","nodeType":"MemberAccess","referencedDeclaration":89890,"src":"13012:25:102","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) view external returns (uint256)"}},"id":70989,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13012:31:102","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"12984:59:102"},{"assignments":[70992],"declarations":[{"constant":false,"id":70992,"mutability":"mutable","name":"openInterestUSDCShort","nameLocation":"13062:21:102","nodeType":"VariableDeclaration","scope":71098,"src":"13057:26:102","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":70991,"name":"uint","nodeType":"ElementaryTypeName","src":"13057:4:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":70998,"initialValue":{"arguments":[{"id":70995,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70965,"src":"13112:1:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"31","id":70996,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13115:1:102","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"id":70993,"name":"storageT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70315,"src":"13086:8:102","typeDescriptions":{"typeIdentifier":"t_contract$_ITradingStorage_$89943","typeString":"contract ITradingStorage"}},"id":70994,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"openInterestUSDC","nodeType":"MemberAccess","referencedDeclaration":89890,"src":"13086:25:102","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) view external returns (uint256)"}},"id":70997,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13086:31:102","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"13057:60:102"},{"assignments":[71000],"declarations":[{"constant":false,"id":71000,"mutability":"mutable","name":"blendedUtilizationRatio","nameLocation":"13137:23:102","nodeType":"VariableDeclaration","scope":71098,"src":"13132:28:102","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":70999,"name":"uint","nodeType":"ElementaryTypeName","src":"13132:4:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":71007,"initialValue":{"arguments":[{"id":71003,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70965,"src":"13200:1:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":71004,"name":"openInterestUSDCLong","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70984,"src":"13202:20:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":71005,"name":"openInterestUSDCShort","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70992,"src":"13224:21:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":71001,"name":"pairInfos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70318,"src":"13163:9:102","typeDescriptions":{"typeIdentifier":"t_contract$_IExtendedPairInfos_$88510","typeString":"contract IExtendedPairInfos"}},"id":71002,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getBlendedUtilizationRatio","nodeType":"MemberAccess","referencedDeclaration":88496,"src":"13163:36:102","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) view external returns (uint256)"}},"id":71006,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13163:83:102","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"13132:114:102"},{"assignments":[71009],"declarations":[{"constant":false,"id":71009,"mutability":"mutable","name":"skewRatio","nameLocation":"13265:9:102","nodeType":"VariableDeclaration","scope":71098,"src":"13260:14:102","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":71008,"name":"uint","nodeType":"ElementaryTypeName","src":"13260:4:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":71017,"initialValue":{"arguments":[{"id":71012,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70965,"src":"13302:1:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"74727565","id":71013,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"13305:4:102","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"id":71014,"name":"openInterestUSDCLong","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70984,"src":"13311:20:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":71015,"name":"openInterestUSDCShort","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70992,"src":"13333:21:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":71010,"name":"pairInfos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70318,"src":"13277:9:102","typeDescriptions":{"typeIdentifier":"t_contract$_IExtendedPairInfos_$88510","typeString":"contract IExtendedPairInfos"}},"id":71011,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getBlendedSkew","nodeType":"MemberAccess","referencedDeclaration":88509,"src":"13277:24:102","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$_t_bool_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,bool,uint256,uint256) view external returns (uint256)"}},"id":71016,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13277:78:102","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"13260:95:102"},{"assignments":[71019],"declarations":[{"constant":false,"id":71019,"mutability":"mutable","name":"longMultiplier","nameLocation":"13374:14:102","nodeType":"VariableDeclaration","scope":71098,"src":"13369:19:102","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":71018,"name":"uint","nodeType":"ElementaryTypeName","src":"13369:4:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":71035,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":71034,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":71025,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":71020,"name":"precision","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70937,"src":"13391:9:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":71023,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":71021,"name":"blendedUtilizationRatio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71000,"src":"13402:23:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":71022,"name":"skewRatio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71009,"src":"13426:9:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13402:33:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":71024,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"13401:35:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13391:45:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":71032,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":71028,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":71026,"name":"precision","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70937,"src":"13438:9:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"316532","id":71027,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13448:3:102","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"1e2"},"src":"13438:13:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":71031,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":71029,"name":"blendedUtilizationRatio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71000,"src":"13454:23:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":71030,"name":"skewRatio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71009,"src":"13478:9:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13454:33:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13438:49:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":71033,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"13437:51:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13391:97:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"13369:119:102"},{"expression":{"id":71051,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":71036,"name":"rolloverFeePerBlockLong","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70925,"src":"13503:23:102","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":71038,"indexExpression":{"id":71037,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70965,"src":"13527:1:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"13503:26:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":71050,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":71048,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":71045,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":71041,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":71039,"name":"longMultiplier","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71019,"src":"13533:14:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":71040,"name":"precision","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70937,"src":"13566:9:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13533:42:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"baseExpression":{"id":71042,"name":"rolloverFeePerBlockP","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70922,"src":"13593:20:102","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":71044,"indexExpression":{"id":71043,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70965,"src":"13614:1:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13593:23:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13533:83:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":71046,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"13532:85:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":71047,"name":"precision","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70937,"src":"13636:9:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13532:113:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":71049,"name":"precision","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70937,"src":"13664:9:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13532:141:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13503:170:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":71052,"nodeType":"ExpressionStatement","src":"13503:170:102"},{"assignments":[71054],"declarations":[{"constant":false,"id":71054,"mutability":"mutable","name":"shortSkewRatio","nameLocation":"13694:14:102","nodeType":"VariableDeclaration","scope":71098,"src":"13689:19:102","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":71053,"name":"uint","nodeType":"ElementaryTypeName","src":"13689:4:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":71062,"initialValue":{"arguments":[{"id":71057,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70965,"src":"13736:1:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"66616c7365","id":71058,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"13739:5:102","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"id":71059,"name":"openInterestUSDCLong","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70984,"src":"13746:20:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":71060,"name":"openInterestUSDCShort","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70992,"src":"13768:21:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":71055,"name":"pairInfos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70318,"src":"13711:9:102","typeDescriptions":{"typeIdentifier":"t_contract$_IExtendedPairInfos_$88510","typeString":"contract IExtendedPairInfos"}},"id":71056,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getBlendedSkew","nodeType":"MemberAccess","referencedDeclaration":88509,"src":"13711:24:102","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$_t_bool_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,bool,uint256,uint256) view external returns (uint256)"}},"id":71061,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13711:79:102","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"13689:101:102"},{"assignments":[71064],"declarations":[{"constant":false,"id":71064,"mutability":"mutable","name":"shortMultiplier","nameLocation":"13809:15:102","nodeType":"VariableDeclaration","scope":71098,"src":"13804:20:102","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":71063,"name":"uint","nodeType":"ElementaryTypeName","src":"13804:4:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":71080,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":71079,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":71070,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":71065,"name":"precision","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70937,"src":"13827:9:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":71068,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":71066,"name":"blendedUtilizationRatio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71000,"src":"13838:23:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":71067,"name":"shortSkewRatio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71054,"src":"13862:14:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13838:38:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":71069,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"13837:40:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13827:50:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":71077,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":71073,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":71071,"name":"precision","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70937,"src":"13879:9:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"316532","id":71072,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13889:3:102","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"1e2"},"src":"13879:13:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":71076,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":71074,"name":"blendedUtilizationRatio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71000,"src":"13895:23:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":71075,"name":"shortSkewRatio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71054,"src":"13919:14:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13895:38:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13879:54:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":71078,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"13878:56:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13827:107:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"13804:130:102"},{"expression":{"id":71096,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":71081,"name":"rolloverFeePerBlockShort","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70928,"src":"13961:24:102","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":71083,"indexExpression":{"id":71082,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70965,"src":"13986:1:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"13961:27:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":71095,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":71093,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":71090,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":71086,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":71084,"name":"shortMultiplier","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71064,"src":"13992:15:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":71085,"name":"precision","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70937,"src":"14026:9:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13992:43:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"baseExpression":{"id":71087,"name":"rolloverFeePerBlockP","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70922,"src":"14054:20:102","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":71089,"indexExpression":{"id":71088,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70965,"src":"14075:1:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14054:23:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13992:85:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":71091,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"13991:87:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":71092,"name":"precision","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70937,"src":"14097:9:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13991:115:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":71094,"name":"precision","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70937,"src":"14125:9:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13991:143:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13961:173:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":71097,"nodeType":"ExpressionStatement","src":"13961:173:102"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":70970,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":70968,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70965,"src":"12874:1:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":70969,"name":"pairCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70931,"src":"12878:9:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12874:13:102","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":71099,"initializationExpression":{"assignments":[70965],"declarations":[{"constant":false,"id":70965,"mutability":"mutable","name":"i","nameLocation":"12867:1:102","nodeType":"VariableDeclaration","scope":71099,"src":"12859:9:102","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":70964,"name":"uint256","nodeType":"ElementaryTypeName","src":"12859:7:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":70967,"initialValue":{"hexValue":"30","id":70966,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12871:1:102","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"12859:13:102"},"loopExpression":{"expression":{"id":70972,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"12889:3:102","subExpression":{"id":70971,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70965,"src":"12889:1:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":70973,"nodeType":"ExpressionStatement","src":"12889:3:102"},"nodeType":"ForStatement","src":"12854:1292:102"}]},"baseFunctions":[88443],"documentation":{"id":70917,"nodeType":"StructuredDocumentation","src":"11956:372:102","text":" @notice Get margins for all pairs\n @return rolloverFeePerBlockP An array of rollover fee per block\n @return rolloverFeePerBlockLong An array of rollover fee per block for long\n @return rolloverFeePerBlockShort An array of rollover fee per block for short in 1e10 precision\n @dev This function is used to get margins for all pairs"},"functionSelector":"8693da43","implemented":true,"kind":"function","modifiers":[],"name":"getMargins","nameLocation":"12342:10:102","overrides":{"id":70919,"nodeType":"OverrideSpecifier","overrides":[],"src":"12393:8:102"},"parameters":{"id":70918,"nodeType":"ParameterList","parameters":[],"src":"12352:2:102"},"returnParameters":{"id":70929,"nodeType":"ParameterList","parameters":[{"constant":false,"id":70922,"mutability":"mutable","name":"rolloverFeePerBlockP","nameLocation":"12446:20:102","nodeType":"VariableDeclaration","scope":71101,"src":"12432:34:102","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":70920,"name":"uint","nodeType":"ElementaryTypeName","src":"12432:4:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":70921,"nodeType":"ArrayTypeName","src":"12432:6:102","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":70925,"mutability":"mutable","name":"rolloverFeePerBlockLong","nameLocation":"12494:23:102","nodeType":"VariableDeclaration","scope":71101,"src":"12480:37:102","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":70923,"name":"uint","nodeType":"ElementaryTypeName","src":"12480:4:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":70924,"nodeType":"ArrayTypeName","src":"12480:6:102","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":70928,"mutability":"mutable","name":"rolloverFeePerBlockShort","nameLocation":"12545:24:102","nodeType":"VariableDeclaration","scope":71101,"src":"12531:38:102","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":70926,"name":"uint","nodeType":"ElementaryTypeName","src":"12531:4:102","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":70927,"nodeType":"ArrayTypeName","src":"12531:6:102","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"12418:161:102"},"scope":71102,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":70309,"name":"Multicall3","nodeType":"IdentifierPath","referencedDeclaration":90801,"src":"378:10:102"},"id":70310,"nodeType":"InheritanceSpecifier","src":"378:10:102"},{"baseName":{"id":70311,"name":"IMulticall","nodeType":"IdentifierPath","referencedDeclaration":88444,"src":"390:10:102"},"id":70312,"nodeType":"InheritanceSpecifier","src":"390:10:102"}],"contractDependencies":[],"contractKind":"contract","documentation":{"id":70308,"nodeType":"StructuredDocumentation","src":"220:135:102","text":" @title Avantis Multicall\n @notice Built on top of MultiCall3. Helpers deep aggregate results from multiple function calls."},"fullyImplemented":true,"linearizedBaseContracts":[71102,88444,90801],"name":"Multicall","nameLocation":"365:9:102","scope":71103,"usedErrors":[]}],"license":"MIT"},"id":102}
|
|
1
|
+
{
|
|
2
|
+
"abi": [{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"inputs":[{"components":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"callData","type":"bytes"}],"internalType":"struct Multicall3.Call[]","name":"calls","type":"tuple[]"}],"name":"aggregate","outputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"bytes[]","name":"returnData","type":"bytes[]"}],"stateMutability":"payable","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bool","name":"allowFailure","type":"bool"},{"internalType":"bytes","name":"callData","type":"bytes"}],"internalType":"struct Multicall3.Call3[]","name":"calls","type":"tuple[]"}],"name":"aggregate3","outputs":[{"components":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"returnData","type":"bytes"}],"internalType":"struct Multicall3.Result[]","name":"returnData","type":"tuple[]"}],"stateMutability":"payable","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bool","name":"allowFailure","type":"bool"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"callData","type":"bytes"}],"internalType":"struct Multicall3.Call3Value[]","name":"calls","type":"tuple[]"}],"name":"aggregate3Value","outputs":[{"components":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"returnData","type":"bytes"}],"internalType":"struct Multicall3.Result[]","name":"returnData","type":"tuple[]"}],"stateMutability":"payable","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"callData","type":"bytes"}],"internalType":"struct Multicall3.Call[]","name":"calls","type":"tuple[]"}],"name":"blockAndAggregate","outputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"},{"components":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"returnData","type":"bytes"}],"internalType":"struct Multicall3.Result[]","name":"returnData","type":"tuple[]"}],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"getBasefee","outputs":[{"internalType":"uint256","name":"basefee","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"name":"getBlockHash","outputs":[{"internalType":"bytes32","name":"blockHash","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getBlockNumber","outputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getChainId","outputs":[{"internalType":"uint256","name":"chainid","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCurrentBlockCoinbase","outputs":[{"internalType":"address","name":"coinbase","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCurrentBlockDifficulty","outputs":[{"internalType":"uint256","name":"difficulty","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCurrentBlockGasLimit","outputs":[{"internalType":"uint256","name":"gaslimit","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCurrentBlockTimestamp","outputs":[{"internalType":"uint256","name":"timestamp","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"getEthBalance","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"userAddress","type":"address"}],"name":"getFirstEmptyTradeIndexes","outputs":[{"internalType":"uint256[]","name":"firstEmptyTradeIndexes","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getLastBlockHash","outputs":[{"internalType":"bytes32","name":"blockHash","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"trader","type":"address"},{"internalType":"uint256","name":"pairIndex","type":"uint256"},{"internalType":"uint256","name":"index","type":"uint256"}],"name":"getLiquidationPrice","outputs":[{"internalType":"uint256","name":"liquidationPrice","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getLongShortRatios","outputs":[{"internalType":"uint256[]","name":"longRatio","type":"uint256[]"},{"internalType":"uint256[]","name":"shortRatio","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMargins","outputs":[{"internalType":"uint256[]","name":"rolloverFeePerBlockP","type":"uint256[]"},{"internalType":"uint256[]","name":"rolloverFeePerBlockLong","type":"uint256[]"},{"internalType":"uint256[]","name":"rolloverFeePerBlockShort","type":"uint256[]"},{"internalType":"uint256[]","name":"openInterestUSDCLong","type":"uint256[]"},{"internalType":"uint256[]","name":"openInterestUSDCShort","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"pairIndex","type":"uint256"}],"name":"getMarginsForPair","outputs":[{"internalType":"uint256","name":"rolloverFeePerBlockP","type":"uint256"},{"internalType":"uint256","name":"rolloverFeePerBlockLong","type":"uint256"},{"internalType":"uint256","name":"rolloverFeePerBlockShort","type":"uint256"},{"internalType":"uint256","name":"openInterestUSDCLong","type":"uint256"},{"internalType":"uint256","name":"openInterestUSDCShort","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"userAddress","type":"address"}],"name":"getOpenLimitOrdersCounts","outputs":[{"internalType":"uint256[]","name":"openLimitOrdersCounts","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_trader","type":"address"}],"name":"getPendingOrder","outputs":[{"components":[{"internalType":"uint256","name":"orderId","type":"uint256"},{"components":[{"components":[{"internalType":"address","name":"trader","type":"address"},{"internalType":"uint256","name":"pairIndex","type":"uint256"},{"internalType":"uint256","name":"index","type":"uint256"},{"internalType":"uint256","name":"initialPosToken","type":"uint256"},{"internalType":"uint256","name":"positionSizeUSDC","type":"uint256"},{"internalType":"uint256","name":"openPrice","type":"uint256"},{"internalType":"bool","name":"buy","type":"bool"},{"internalType":"uint256","name":"leverage","type":"uint256"},{"internalType":"uint256","name":"tp","type":"uint256"},{"internalType":"uint256","name":"sl","type":"uint256"},{"internalType":"uint256","name":"timestamp","type":"uint256"}],"internalType":"struct ITradingStorage.Trade","name":"trade","type":"tuple"},{"internalType":"uint256","name":"block","type":"uint256"},{"internalType":"uint256","name":"wantedPrice","type":"uint256"},{"internalType":"uint256","name":"slippageP","type":"uint256"}],"internalType":"struct ITradingStorage.PendingMarketOrder","name":"orderInfo","type":"tuple"}],"internalType":"struct IMulticall.AggregatedPendingOrder[]","name":"pendingOrders","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"userAddress","type":"address"}],"name":"getPositions","outputs":[{"components":[{"components":[{"internalType":"address","name":"trader","type":"address"},{"internalType":"uint256","name":"pairIndex","type":"uint256"},{"internalType":"uint256","name":"index","type":"uint256"},{"internalType":"uint256","name":"initialPosToken","type":"uint256"},{"internalType":"uint256","name":"positionSizeUSDC","type":"uint256"},{"internalType":"uint256","name":"openPrice","type":"uint256"},{"internalType":"bool","name":"buy","type":"bool"},{"internalType":"uint256","name":"leverage","type":"uint256"},{"internalType":"uint256","name":"tp","type":"uint256"},{"internalType":"uint256","name":"sl","type":"uint256"},{"internalType":"uint256","name":"timestamp","type":"uint256"}],"internalType":"struct ITradingStorage.Trade","name":"trade","type":"tuple"},{"components":[{"internalType":"uint256","name":"openInterestUSDC","type":"uint256"},{"internalType":"uint256","name":"tpLastUpdated","type":"uint256"},{"internalType":"uint256","name":"slLastUpdated","type":"uint256"},{"internalType":"bool","name":"beingMarketClosed","type":"bool"},{"internalType":"uint256","name":"lossProtection","type":"uint256"}],"internalType":"struct ITradingStorage.TradeInfo","name":"tradeInfo","type":"tuple"},{"internalType":"uint256","name":"rolloverFee","type":"uint256"},{"internalType":"uint256","name":"liquidationPrice","type":"uint256"},{"internalType":"bool","name":"isPnl","type":"bool"}],"internalType":"struct IMulticall.AggregatedTrade[]","name":"","type":"tuple[]"},{"components":[{"components":[{"internalType":"address","name":"trader","type":"address"},{"internalType":"uint256","name":"pairIndex","type":"uint256"},{"internalType":"uint256","name":"index","type":"uint256"},{"internalType":"uint256","name":"positionSize","type":"uint256"},{"internalType":"bool","name":"buy","type":"bool"},{"internalType":"uint256","name":"leverage","type":"uint256"},{"internalType":"uint256","name":"tp","type":"uint256"},{"internalType":"uint256","name":"sl","type":"uint256"},{"internalType":"uint256","name":"price","type":"uint256"},{"internalType":"uint256","name":"slippageP","type":"uint256"},{"internalType":"uint256","name":"block","type":"uint256"},{"internalType":"uint256","name":"executionFee","type":"uint256"}],"internalType":"struct ITradingStorage.OpenLimitOrder","name":"order","type":"tuple"},{"internalType":"uint256","name":"liquidationPrice","type":"uint256"}],"internalType":"struct IMulticall.AggregatedOrder[]","name":"","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"userAddress","type":"address"},{"internalType":"uint256","name":"startPairIndex","type":"uint256"},{"internalType":"uint256","name":"endPairIndex","type":"uint256"},{"internalType":"uint256","name":"maxTradesPerPair","type":"uint256"}],"name":"getPositionsForPairIndexes","outputs":[{"components":[{"components":[{"internalType":"address","name":"trader","type":"address"},{"internalType":"uint256","name":"pairIndex","type":"uint256"},{"internalType":"uint256","name":"index","type":"uint256"},{"internalType":"uint256","name":"initialPosToken","type":"uint256"},{"internalType":"uint256","name":"positionSizeUSDC","type":"uint256"},{"internalType":"uint256","name":"openPrice","type":"uint256"},{"internalType":"bool","name":"buy","type":"bool"},{"internalType":"uint256","name":"leverage","type":"uint256"},{"internalType":"uint256","name":"tp","type":"uint256"},{"internalType":"uint256","name":"sl","type":"uint256"},{"internalType":"uint256","name":"timestamp","type":"uint256"}],"internalType":"struct ITradingStorage.Trade","name":"trade","type":"tuple"},{"components":[{"internalType":"uint256","name":"openInterestUSDC","type":"uint256"},{"internalType":"uint256","name":"tpLastUpdated","type":"uint256"},{"internalType":"uint256","name":"slLastUpdated","type":"uint256"},{"internalType":"bool","name":"beingMarketClosed","type":"bool"},{"internalType":"uint256","name":"lossProtection","type":"uint256"}],"internalType":"struct ITradingStorage.TradeInfo","name":"tradeInfo","type":"tuple"},{"internalType":"uint256","name":"rolloverFee","type":"uint256"},{"internalType":"uint256","name":"liquidationPrice","type":"uint256"},{"internalType":"bool","name":"isPnl","type":"bool"}],"internalType":"struct IMulticall.AggregatedTrade[]","name":"","type":"tuple[]"},{"components":[{"components":[{"internalType":"address","name":"trader","type":"address"},{"internalType":"uint256","name":"pairIndex","type":"uint256"},{"internalType":"uint256","name":"index","type":"uint256"},{"internalType":"uint256","name":"positionSize","type":"uint256"},{"internalType":"bool","name":"buy","type":"bool"},{"internalType":"uint256","name":"leverage","type":"uint256"},{"internalType":"uint256","name":"tp","type":"uint256"},{"internalType":"uint256","name":"sl","type":"uint256"},{"internalType":"uint256","name":"price","type":"uint256"},{"internalType":"uint256","name":"slippageP","type":"uint256"},{"internalType":"uint256","name":"block","type":"uint256"},{"internalType":"uint256","name":"executionFee","type":"uint256"}],"internalType":"struct ITradingStorage.OpenLimitOrder","name":"order","type":"tuple"},{"internalType":"uint256","name":"liquidationPrice","type":"uint256"}],"internalType":"struct IMulticall.AggregatedOrder[]","name":"","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_storage","type":"address"},{"internalType":"address","name":"_pairInfos","type":"address"},{"internalType":"address","name":"_pairsStorage","type":"address"},{"internalType":"address","name":"_trading","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"pairInfos","outputs":[{"internalType":"contract IExtendedPairInfos","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pairsStorage","outputs":[{"internalType":"contract IExtendedPairStorage","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"storageT","outputs":[{"internalType":"contract ITradingStorage","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"trading","outputs":[{"internalType":"contract IExtendedTrading","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"requireSuccess","type":"bool"},{"components":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"callData","type":"bytes"}],"internalType":"struct Multicall3.Call[]","name":"calls","type":"tuple[]"}],"name":"tryAggregate","outputs":[{"components":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"returnData","type":"bytes"}],"internalType":"struct Multicall3.Result[]","name":"returnData","type":"tuple[]"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bool","name":"requireSuccess","type":"bool"},{"components":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"callData","type":"bytes"}],"internalType":"struct Multicall3.Call[]","name":"calls","type":"tuple[]"}],"name":"tryBlockAndAggregate","outputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"bytes32","name":"blockHash","type":"bytes32"},{"components":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"returnData","type":"bytes"}],"internalType":"struct Multicall3.Result[]","name":"returnData","type":"tuple[]"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"_storage","type":"address"},{"internalType":"address","name":"_pairInfos","type":"address"},{"internalType":"address","name":"_pairsStorage","type":"address"},{"internalType":"address","name":"_trading","type":"address"}],"name":"updateContracts","outputs":[],"stateMutability":"nonpayable","type":"function"}]
|
|
3
|
+
}
|