{"version":3,"file":"static/js/vendor~229eafb5.e9003480.js","mappings":"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CT,CACIC,KAAM,cACNC,OAAQ,CACJ,CACIE,KAAM,UACNH,KAAM,UACNK,aAAc,oBAGtBH,gBAAiB,cAErB,CACIF,KAAM,WACNG,KAAM,SACNF,OAAQ,GACRG,QAAS,CACL,CACID,KAAM,GACNH,KAAM,UACNK,aAAc,oBAGtBH,gBAAiB,QAErB,CACIF,KAAM,WACNG,KAAM,mBACNF,OAAQ,CACJ,CACIE,KAAM,YACNH,KAAM,UACNK,aAAc,WAElB,CACIF,KAAM,UACNH,KAAM,UACNK,aAAc,WAElB,CACIF,KAAM,aACNH,KAAM,UACNK,aAAc,WAElB,CACIF,KAAM,UACNH,KAAM,UACNK,aAAc,YAGtBD,QAAS,CACL,CACID,KAAM,YACNH,KAAM,QACNK,aAAc,+BACdC,WAAY,CACR,CACIH,KAAM,aACNH,KAAM,UACNK,aAAc,WAElB,CACIF,KAAM,WACNH,KAAM,UACNK,aAAc,aAI1B,CACIF,KAAM,WACNH,KAAM,YACNK,aAAc,aAElB,CACIF,KAAM,eACNH,KAAM,UACNK,aAAc,yBACdC,WAAY,CACR,CACIH,KAAM,SACNH,KAAM,UACNK,aAAc,WAElB,CACIF,KAAM,SACNH,KAAM,UACNK,aAAc,WAElB,CACIF,KAAM,WACNH,KAAM,UACNK,aAAc,WAElB,CACIF,KAAM,WACNH,KAAM,SACNK,aAAc,UAElB,CACIF,KAAM,MACNH,KAAM,UACNK,aAAc,WAElB,CACIF,KAAM,WACNH,KAAM,QACNK,aAAc,6BAK9BH,gBAAiB,cAErB,CACIF,KAAM,WACNG,KAAM,mBACNF,OAAQ,CACJ,CACIE,KAAM,YACNH,KAAM,UACNK,aAAc,WAElB,CACIF,KAAM,UACNH,KAAM,UACNK,aAAc,WAElB,CACIF,KAAM,aACNH,KAAM,UACNK,aAAc,WAElB,CACIF,KAAM,UACNH,KAAM,UACNK,aAAc,YAGtBD,QAAS,CACL,CACID,KAAM,YACNH,KAAM,QACNK,aAAc,+BACdC,WAAY,CACR,CACIH,KAAM,aACNH,KAAM,UACNK,aAAc,WAElB,CACIF,KAAM,WACNH,KAAM,UACNK,aAAc,aAI1B,CACIF,K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","sources":["../node_modules/@synfutures/sdks-aggregator-datasource/dist/aggregatorDataSource.interface.js","../node_modules/@synfutures/sdks-aggregator-datasource/dist/aggregatorDataSource.module.js","../node_modules/@synfutures/sdks-aggregator-datasource/dist/aggregatorDataSource.plugin.js","../node_modules/@synfutures/sdks-aggregator-datasource/dist/index.js","../node_modules/@synfutures/sdks-aggregator-datasource/dist/params.js","../node_modules/@synfutures/sdks-aggregator/dist/abis/index.js","../node_modules/@synfutures/sdks-aggregator/dist/aggregator.interface.js","../node_modules/@synfutures/sdks-aggregator/dist/aggregator.module.js","../node_modules/@synfutures/sdks-aggregator/dist/aggregator.plugin.js","../node_modules/@synfutures/sdks-aggregator/dist/constants.js","../node_modules/@synfutures/sdks-aggregator/dist/index.js","../node_modules/@synfutures/sdks-aggregator/dist/params.js","../node_modules/@synfutures/sdks-aggregator/dist/typechain/factories/Config__factory.js","../node_modules/@synfutures/sdks-aggregator/dist/typechain/factories/IWETH__factory.js","../node_modules/@synfutures/sdks-aggregator/dist/typechain/factories/OysterAggregator__factory.js","../node_modules/@synfutures/sdks-aggregator/dist/typechain/factories/QuerySingleRoute__factory.js","../node_modules/@synfutures/sdks-aggregator/dist/typechain/factories/QuerySplitRoute__factory.js","../node_modules/@synfutures/sdks-aggregator/dist/typechain/factories/index.js","../node_modules/@synfutures/sdks-aggregator/dist/typechain/index.js","../node_modules/@synfutures/sdks-aggregator/dist/types.js","../node_modules/@synfutures/sdks-aggregator/dist/utils.js","../node_modules/@synfutures/sdks-perp-datasource/dist/constants.js","../node_modules/@synfutures/sdks-perp-datasource/dist/enum.js","../node_modules/@synfutures/sdks-perp-datasource/dist/errors/index.js","../node_modules/@synfutures/sdks-perp-datasource/dist/errors/theGraphError.js","../node_modules/@synfutures/sdks-perp-datasource/dist/index.js","../node_modules/@synfutures/sdks-perp-datasource/dist/modules/dataSource.interface.js","../node_modules/@synfutures/sdks-perp-datasource/dist/modules/dataSource.module.js","../node_modules/@synfutures/sdks-perp-datasource/dist/modules/dataSource.plugin.js","../node_modules/@synfutures/sdks-perp-datasource/dist/modules/dataSource/depth.js","../node_modules/@synfutures/sdks-perp-datasource/dist/modules/dataSource/funding.js","../node_modules/@synfutures/sdks-perp-datasource/dist/modules/dataSource/history.js","../node_modules/@synfutures/sdks-perp-datasource/dist/modules/dataSource/index.js","../node_modules/@synfutures/sdks-perp-datasource/dist/modules/dataSource/kline.js","../node_modules/@synfutures/sdks-perp-datasource/dist/modules/dataSource/liquidity.js","../node_modules/@synfutures/sdks-perp-datasource/dist/modules/dataSource/statistics.js","../node_modules/@synfutures/sdks-perp-datasource/dist/modules/dataSource/user.js","../node_modules/@synfutures/sdks-perp-datasource/dist/modules/dataSource/volume.js","../node_modules/@synfutures/sdks-perp-datasource/dist/modules/index.js","../node_modules/@synfutures/sdks-perp-datasource/dist/modules/inverse/depth.js","../node_modules/@synfutures/sdks-perp-datasource/dist/modules/inverse/history.js","../node_modules/@synfutures/sdks-perp-datasource/dist/modules/inverse/index.js","../node_modules/@synfutures/sdks-perp-datasource/dist/modules/inverse/kline.js","../node_modules/@synfutures/sdks-perp-datasource/dist/modules/inverse/liquidity.js","../node_modules/@synfutures/sdks-perp-datasource/dist/types.js","../node_modules/@synfutures/sdks-perp-datasource/dist/utils.js","../node_modules/@synfutures/sdks-perp-datasource/node_modules/@synfutures/sdks-perp/dist/constants.js","../node_modules/@synfutures/sdks-perp-datasource/node_modules/@synfutures/sdks-perp/dist/enum.js","../node_modules/@synfutures/sdks-perp-datasource/node_modules/@synfutures/sdks-perp/dist/errors/calculationError.js","../node_modules/@synfutures/sdks-perp-datasource/node_modules/@synfutures/sdks-perp/dist/errors/index.js","../node_modules/@synfutures/sdks-perp-datasource/node_modules/@synfutures/sdks-perp/dist/errors/paramsEncodeError.js","../node_modules/@synfutures/sdks-perp-datasource/node_modules/@synfutures/sdks-perp/dist/errors/simulationError.js","../node_modules/@synfutures/sdks-perp-datasource/node_modules/@synfutures/sdks-perp/dist/errors/synfError.js","../node_modules/@synfutures/sdks-perp-datasource/node_modules/@synfutures/sdks-perp/dist/index.js","../node_modules/@synfutures/sdks-perp-datasource/node_modules/@synfutures/sdks-perp/dist/math/basic.js","../node_modules/@synfutures/sdks-perp-datasource/node_modules/@synfutures/sdks-perp/dist/math/constants.js","../node_modules/@synfutures/sdks-perp-datasource/node_modules/@synfutures/sdks-perp/dist/math/index.js","../node_modules/@synfutures/sdks-perp-datasource/node_modules/@synfutures/sdks-perp/dist/math/numeric.js","../node_modules/@synfutures/sdks-perp-datasource/node_modules/@synfutures/sdks-perp/dist/math/sqrtPriceMath.js","../node_modules/@synfutures/sdks-perp-datasource/node_modules/@synfutures/sdks-perp/dist/math/swapMath.js","../node_modules/@synfutures/sdks-perp-datasource/node_modules/@synfutures/sdks-perp/dist/math/tickMath.js","../node_modules/@synfutures/sdks-perp-datasource/node_modules/@synfutures/sdks-perp/dist/modules/calc.interface.js","../node_modules/@synfutures/sdks-perp-datasource/node_modules/@synfutures/sdks-perp/dist/modules/calc.module.js","../node_modules/@synfutures/sdks-perp-datasource/node_modules/@synfutures/sdks-perp/dist/modules/config.interface.js","../node_modules/@synfutures/sdks-perp-datasource/node_modules/@synfutures/sdks-perp/dist/modules/config.module.js","../node_modules/@synfutures/sdks-perp-datasource/node_modules/@synfutures/sdks-perp/dist/modules/configuration/configuration.base.module.js","../node_modules/@synfutures/sdks-perp-datasource/node_modules/@synfutures/sdks-perp/dist/modules/configuration/configuration.interface.js","../node_modules/@synfutures/sdks-perp-datasource/node_modules/@synfutures/sdks-perp/dist/modules/configuration/configuration.local.module.js","../node_modules/@synfutures/sdks-perp-datasource/node_modules/@synfutures/sdks-perp/dist/modules/configuration/configuration.s3.module.js","../node_modules/@synfutures/sdks-perp-datasource/node_modules/@synfutures/sdks-perp/dist/modules/configuration/index.js","../node_modules/@synfutures/sdks-perp-datasource/node_modules/@synfutures/sdks-perp/dist/modules/gate.interface.js","../node_modules/@synfutures/sdks-perp-datasource/node_modules/@synfutures/sdks-perp/dist/modules/gate.module.js","../node_modules/@synfutures/sdks-perp-datasource/node_modules/@synfutures/sdks-perp/dist/modules/index.js","../node_modules/@synfutures/sdks-perp-datasource/node_modules/@synfutures/sdks-perp/dist/modules/instrument.interface.js","../node_modules/@synfutures/sdks-perp-datasource/node_modules/@synfutures/sdks-perp/dist/modules/instrument.module.js","../node_modules/@synfutures/sdks-perp-datasource/node_modules/@synfutures/sdks-perp/dist/modules/inverse/calc.moudle.js","../node_modules/@synfutures/sdks-perp-datasource/node_modules/@synfutures/sdks-perp/dist/modules/inverse/index.js","../node_modules/@synfutures/sdks-perp-datasource/node_modules/@synfutures/sdks-perp/dist/modules/inverse/instrument.module.js","../node_modules/@synfutures/sdks-perp-datasource/node_modules/@synfutures/sdks-perp/dist/modules/inverse/observer.module.js","../node_modules/@synfutures/sdks-perp-datasource/node_modules/@synfutures/sdks-perp/dist/modules/inverse/simulate.module.js","../node_modules/@synfutures/sdks-perp-datasource/node_modules/@synfutures/sdks-perp/dist/modules/observer.interface.js","../node_modules/@synfutures/sdks-perp-datasource/node_modules/@synfutures/sdks-perp/dist/modules/observer.module.js","../node_modules/@synfutures/sdks-perp-datasource/node_modules/@synfutures/sdks-perp/dist/modules/simulate.interface.js","../node_modules/@synfutures/sdks-perp-datasource/node_modules/@synfutures/sdks-perp/dist/modules/simulate.module.js","../node_modules/@synfutures/sdks-perp-datasource/node_modules/@synfutures/sdks-perp/dist/parser/cexMarket.js","../node_modules/@synfutures/sdks-perp-datasource/node_modules/@synfutures/sdks-perp/dist/parser/config.js","../node_modules/@synfutures/sdks-perp-datasource/node_modules/@synfutures/sdks-perp/dist/parser/dexV2market.js","../node_modules/@synfutures/sdks-perp-datasource/node_modules/@synfutures/sdks-perp/dist/parser/farmat.js","../node_modules/@synfutures/sdks-perp-datasource/node_modules/@synfutures/sdks-perp/dist/parser/gate.js","../node_modules/@synfutures/sdks-perp-datasource/node_modules/@synfutures/sdks-perp/dist/parser/guardian.js","../node_modules/@synfutures/sdks-perp-datasource/node_modules/@synfutures/sdks-perp/dist/parser/index.js","../node_modules/@synfutures/sdks-perp-datasource/node_modules/@synfutures/sdks-perp/dist/parser/instrument.js","../node_modules/@synfutures/sdks-perp-datasource/node_modules/@synfutures/sdks-perp/dist/perp.interface.js","../node_modules/@synfutures/sdks-perp-datasource/node_modules/@synfutures/sdks-perp/dist/perp.module.js","../node_modules/@synfutures/sdks-perp-datasource/node_modules/@synfutures/sdks-perp/dist/perp.plugin.js","../node_modules/@synfutures/sdks-perp-datasource/node_modules/@synfutures/sdks-perp/dist/typechain/factories/Beacon__factory.js","../node_modules/@synfutures/sdks-perp-datasource/node_modules/@synfutures/sdks-perp/dist/typechain/factories/CexMarket__factory.js","../node_modules/@synfutures/sdks-perp-datasource/node_modules/@synfutures/sdks-perp/dist/typechain/factories/Config__factory.js","../node_modules/@synfutures/sdks-perp-datasource/node_modules/@synfutures/sdks-perp/dist/typechain/factories/DexV2Market__factory.js","../node_modules/@synfutures/sdks-perp-datasource/node_modules/@synfutures/sdks-perp/dist/typechain/factories/EmergingFeederFactory__factory.js","../node_modules/@synfutures/sdks-perp-datasource/node_modules/@synfutures/sdks-perp/dist/typechain/factories/EmergingFeeder__factory.js","../node_modules/@synfutures/sdks-perp-datasource/node_modules/@synfutures/sdks-perp/dist/typechain/factories/Gate__factory.js","../node_modules/@synfutures/sdks-perp-datasource/node_modules/@synfutures/sdks-perp/dist/typechain/factories/Guardian__factory.js","../node_modules/@synfutures/sdks-perp-datasource/node_modules/@synfutures/sdks-perp/dist/typechain/factories/ICexPriceFeeder__factory.js","../node_modules/@synfutures/sdks-perp-datasource/node_modules/@synfutures/sdks-perp/dist/typechain/factories/Instrument__factory.js","../node_modules/@synfutures/sdks-perp-datasource/node_modules/@synfutures/sdks-perp/dist/typechain/factories/MerkleDistributorWithDeadline__factory.js","../node_modules/@synfutures/sdks-perp-datasource/node_modules/@synfutures/sdks-perp/dist/typechain/factories/Observer__factory.js","../node_modules/@synfutures/sdks-perp-datasource/node_modules/@synfutures/sdks-perp/dist/typechain/factories/PythFeederFactory__factory.js","../node_modules/@synfutures/sdks-perp-datasource/node_modules/@synfutures/sdks-perp/dist/typechain/factories/PythFeeder__factory.js","../node_modules/@synfutures/sdks-perp-datasource/node_modules/@synfutures/sdks-perp/dist/typechain/factories/index.js","../node_modules/@synfutures/sdks-perp-datasource/node_modules/@synfutures/sdks-perp/dist/typechain/index.js","../node_modules/@synfutures/sdks-perp-datasource/node_modules/@synfutures/sdks-perp/dist/types/index.js","../node_modules/@synfutures/sdks-perp-datasource/node_modules/@synfutures/sdks-perp/dist/types/params.js","../node_modules/@synfutures/sdks-perp-datasource/node_modules/@synfutures/sdks-perp/dist/types/types.js","../node_modules/@synfutures/sdks-perp-datasource/node_modules/@synfutures/sdks-perp/dist/utils/calculation.js","../node_modules/@synfutures/sdks-perp-datasource/node_modules/@synfutures/sdks-perp/dist/utils/config.js","../node_modules/@synfutures/sdks-perp-datasource/node_modules/@synfutures/sdks-perp/dist/utils/encode.js","../node_modules/@synfutures/sdks-perp-datasource/node_modules/@synfutures/sdks-perp/dist/utils/factory.js","../node_modules/@synfutures/sdks-perp-datasource/node_modules/@synfutures/sdks-perp/dist/utils/format.js","../node_modules/@synfutures/sdks-perp-datasource/node_modules/@synfutures/sdks-perp/dist/utils/index.js","../node_modules/@synfutures/sdks-perp-datasource/node_modules/@synfutures/sdks-perp/dist/utils/limited.js","../node_modules/@synfutures/sdks-perp-datasource/node_modules/@synfutures/sdks-perp/dist/utils/lowLevel.js","../node_modules/@synfutures/sdks-perp-datasource/node_modules/@synfutures/sdks-perp/dist/utils/reverse.js","../node_modules/@synfutures/sdks-perp-datasource/node_modules/@synfutures/sdks-perp/dist/utils/utils.js","../node_modules/@synfutures/sdks-perp-launchpad-datasource/dist/index.js","../node_modules/@synfutures/sdks-perp-launchpad-datasource/dist/modules/index.js","../node_modules/@synfutures/sdks-perp-launchpad-datasource/dist/modules/perpLuanchpadDataSource.interface.js","../node_modules/@synfutures/sdks-perp-launchpad-datasource/dist/modules/perpLuanchpadDataSource.module.js","../node_modules/@synfutures/sdks-perp-launchpad-datasource/dist/modules/perpLuanchpadDataSource.plugin.js","../node_modules/@synfutures/sdks-perp-launchpad-datasource/dist/types.js","../node_modules/@synfutures/sdks-perp-launchpad/dist/abis/index.js","../node_modules/@synfutures/sdks-perp-launchpad/dist/constants.js","../node_modules/@synfutures/sdks-perp-launchpad/dist/enum.js","../node_modules/@synfutures/sdks-perp-launchpad/dist/errors/index.js","../node_modules/@synfutures/sdks-perp-launchpad/dist/errors/vaultError.js","../node_modules/@synfutures/sdks-perp-launchpad/dist/index.js","../node_modules/@synfutures/sdks-perp-launchpad/dist/modules/factory.js","../node_modules/@synfutures/sdks-perp-launchpad/dist/modules/index.js","../node_modules/@synfutures/sdks-perp-launchpad/dist/modules/perplaunchpad.interface.js","../node_modules/@synfutures/sdks-perp-launchpad/dist/modules/perplaunchpad.module.js","../node_modules/@synfutures/sdks-perp-launchpad/dist/modules/perplaunchpad.plugin.js","../node_modules/@synfutures/sdks-perp-launchpad/dist/parser.js","../node_modules/@synfutures/sdks-perp-launchpad/dist/typechain/factories/VaultFactory__factory.js","../node_modules/@synfutures/sdks-perp-launchpad/dist/typechain/factories/Vault__factory.js","../node_modules/@synfutures/sdks-perp-launchpad/dist/typechain/factories/index.js","../node_modules/@synfutures/sdks-perp-launchpad/dist/typechain/index.js","../node_modules/@synfutures/sdks-perp-launchpad/dist/utils.js","../node_modules/@synfutures/sdks-perp-launchpad/node_modules/@synfutures/sdks-perp/dist/constants.js","../node_modules/@synfutures/sdks-perp-launchpad/node_modules/@synfutures/sdks-perp/dist/enum.js","../node_modules/@synfutures/sdks-perp-launchpad/node_modules/@synfutures/sdks-perp/dist/errors/calculationError.js","../node_modules/@synfutures/sdks-perp-launchpad/node_modules/@synfutures/sdks-perp/dist/errors/index.js","../node_modules/@synfutures/sdks-perp-launchpad/node_modules/@synfutures/sdks-perp/dist/errors/paramsEncodeError.js","../node_modules/@synfutures/sdks-perp-launchpad/node_modules/@synfutures/sdks-perp/dist/errors/simulationError.js","../node_modules/@synfutures/sdks-perp-launchpad/node_modules/@synfutures/sdks-perp/dist/errors/synfError.js","../node_modules/@synfutures/sdks-perp-launchpad/node_modules/@synfutures/sdks-perp/dist/index.js","../node_modules/@synfutures/sdks-perp-launchpad/node_modules/@synfutures/sdks-perp/dist/math/basic.js","../node_modules/@synfutures/sdks-perp-launchpad/node_modules/@synfutures/sdks-perp/dist/math/constants.js","../node_modules/@synfutures/sdks-perp-launchpad/node_modules/@synfutures/sdks-perp/dist/math/index.js","../node_modules/@synfutures/sdks-perp-launchpad/node_modules/@synfutures/sdks-perp/dist/math/numeric.js","../node_modules/@synfutures/sdks-perp-launchpad/node_modules/@synfutures/sdks-perp/dist/math/sqrtPriceMath.js","../node_modules/@synfutures/sdks-perp-launchpad/node_modules/@synfutures/sdks-perp/dist/math/swapMath.js","../node_modules/@synfutures/sdks-perp-launchpad/node_modules/@synfutures/sdks-perp/dist/math/tickMath.js","../node_modules/@synfutures/sdks-perp-launchpad/node_modules/@synfutures/sdks-perp/dist/modules/calc.interface.js","../node_modules/@synfutures/sdks-perp-launchpad/node_modules/@synfutures/sdks-perp/dist/modules/calc.module.js","../node_modules/@synfutures/sdks-perp-launchpad/node_modules/@synfutures/sdks-perp/dist/modules/config.interface.js","../node_modules/@synfutures/sdks-perp-launchpad/node_modules/@synfutures/sdks-perp/dist/modules/config.module.js","../node_modules/@synfutures/sdks-perp-launchpad/node_modules/@synfutures/sdks-perp/dist/modules/configuration/configuration.base.module.js","../node_modules/@synfutures/sdks-perp-launchpad/node_modules/@synfutures/sdks-perp/dist/modules/configuration/configuration.interface.js","../node_modules/@synfutures/sdks-perp-launchpad/node_modules/@synfutures/sdks-perp/dist/modules/configuration/configuration.local.module.js","../node_modules/@synfutures/sdks-perp-launchpad/node_modules/@synfutures/sdks-perp/dist/modules/configuration/configuration.s3.module.js","../node_modules/@synfutures/sdks-perp-launchpad/node_modules/@synfutures/sdks-perp/dist/modules/configuration/index.js","../node_modules/@synfutures/sdks-perp-launchpad/node_modules/@synfutures/sdks-perp/dist/modules/gate.interface.js","../node_modules/@synfutures/sdks-perp-launchpad/node_modules/@synfutures/sdks-perp/dist/modules/gate.module.js","../node_modules/@synfutures/sdks-perp-launchpad/node_modules/@synfutures/sdks-perp/dist/modules/index.js","../node_modules/@synfutures/sdks-perp-launchpad/node_modules/@synfutures/sdks-perp/dist/modules/instrument.interface.js","../node_modules/@synfutures/sdks-perp-launchpad/node_modules/@synfutures/sdks-perp/dist/modules/instrument.module.js","../node_modules/@synfutures/sdks-perp-launchpad/node_modules/@synfutures/sdks-perp/dist/modules/inverse/calc.moudle.js","../node_modules/@synfutures/sdks-perp-launchpad/node_modules/@synfutures/sdks-perp/dist/modules/inverse/index.js","../node_modules/@synfutures/sdks-perp-launchpad/node_modules/@synfutures/sdks-perp/dist/modules/inverse/instrument.module.js","../node_modules/@synfutures/sdks-perp-launchpad/node_modules/@synfutures/sdks-perp/dist/modules/inverse/observer.module.js","../node_modules/@synfutures/sdks-perp-launchpad/node_modules/@synfutures/sdks-perp/dist/modules/inverse/simulate.module.js","../node_modules/@synfutures/sdks-perp-launchpad/node_modules/@synfutures/sdks-perp/dist/modules/observer.interface.js","../node_modules/@synfutures/sdks-perp-launchpad/node_modules/@synfutures/sdks-perp/dist/modules/observer.module.js","../node_modules/@synfutures/sdks-perp-launchpad/node_modules/@synfutures/sdks-perp/dist/modules/simulate.interface.js","../node_modules/@synfutures/sdks-perp-launchpad/node_modules/@synfutures/sdks-perp/dist/modules/simulate.module.js","../node_modules/@synfutures/sdks-perp-launchpad/node_modules/@synfutures/sdks-perp/dist/parser/cexMarket.js","../node_modules/@synfutures/sdks-perp-launchpad/node_modules/@synfutures/sdks-perp/dist/parser/config.js","../node_modules/@synfutures/sdks-perp-launchpad/node_modules/@synfutures/sdks-perp/dist/parser/dexV2market.js","../node_modules/@synfutures/sdks-perp-launchpad/node_modules/@synfutures/sdks-perp/dist/parser/farmat.js","../node_modules/@synfutures/sdks-perp-launchpad/node_modules/@synfutures/sdks-perp/dist/parser/gate.js","../node_modules/@synfutures/sdks-perp-launchpad/node_modules/@synfutures/sdks-perp/dist/parser/guardian.js","../node_modules/@synfutures/sdks-perp-launchpad/node_modules/@synfutures/sdks-perp/dist/parser/index.js","../node_modules/@synfutures/sdks-perp-launchpad/node_modules/@synfutures/sdks-perp/dist/parser/instrument.js","../node_modules/@synfutures/sdks-perp-launchpad/node_modules/@synfutures/sdks-perp/dist/perp.interface.js","../node_modules/@synfutures/sdks-perp-launchpad/node_modules/@synfutures/sdks-perp/dist/perp.module.js","../node_modules/@synfutures/sdks-perp-launchpad/node_modules/@synfutures/sdks-perp/dist/perp.plugin.js","../node_modules/@synfutures/sdks-perp-launchpad/node_modules/@synfutures/sdks-perp/dist/typechain/factories/Beacon__factory.js","../node_modules/@synfutures/sdks-perp-launchpad/node_modules/@synfutures/sdks-perp/dist/typechain/factories/CexMarket__factory.js","../node_modules/@synfutures/sdks-perp-launchpad/node_modules/@synfutures/sdks-perp/dist/typechain/factories/Config__factory.js","../node_modules/@synfutures/sdks-perp-launchpad/node_modules/@synfutures/sdks-perp/dist/typechain/factories/DexV2Market__factory.js","../node_modules/@synfutures/sdks-perp-launchpad/node_modules/@synfutures/sdks-perp/dist/typechain/factories/EmergingFeederFactory__factory.js","../node_modules/@synfutures/sdks-perp-launchpad/node_modules/@synfutures/sdks-perp/dist/typechain/factories/EmergingFeeder__factory.js","../node_modules/@synfutures/sdks-perp-launchpad/node_modules/@synfutures/sdks-perp/dist/typechain/factories/Gate__factory.js","../node_modules/@synfutures/sdks-perp-launchpad/node_modules/@synfutures/sdks-perp/dist/typechain/factories/Guardian__factory.js","../node_modules/@synfutures/sdks-perp-launchpad/node_modules/@synfutures/sdks-perp/dist/typechain/factories/ICexPriceFeeder__factory.js","../node_modules/@synfutures/sdks-perp-launchpad/node_modules/@synfutures/sdks-perp/dist/typechain/factories/Instrument__factory.js","../node_modules/@synfutures/sdks-perp-launchpad/node_modules/@synfutures/sdks-perp/dist/typechain/factories/MerkleDistributorWithDeadline__factory.js","../node_modules/@synfutures/sdks-perp-launchpad/node_modules/@synfutures/sdks-perp/dist/typechain/factories/Observer__factory.js","../node_modules/@synfutures/sdks-perp-launchpad/node_modules/@synfutures/sdks-perp/dist/typechain/factories/PythFeederFactory__factory.js","../node_modules/@synfutures/sdks-perp-launchpad/node_modules/@synfutures/sdks-perp/dist/typechain/factories/PythFeeder__factory.js","../node_modules/@synfutures/sdks-perp-launchpad/node_modules/@synfutures/sdks-perp/dist/typechain/factories/index.js","../node_modules/@synfutures/sdks-perp-launchpad/node_modules/@synfutures/sdks-perp/dist/typechain/index.js","../node_modules/@synfutures/sdks-perp-launchpad/node_modules/@synfutures/sdks-perp/dist/types/index.js","../node_modules/@synfutures/sdks-perp-launchpad/node_modules/@synfutures/sdks-perp/dist/types/params.js","../node_modules/@synfutures/sdks-perp-launchpad/node_modules/@synfutures/sdks-perp/dist/types/types.js","../node_modules/@synfutures/sdks-perp-launchpad/node_modules/@synfutures/sdks-perp/dist/utils/calculation.js","../node_modules/@synfutures/sdks-perp-launchpad/node_modules/@synfutures/sdks-perp/dist/utils/config.js","../node_modules/@synfutures/sdks-perp-launchpad/node_modules/@synfutures/sdks-perp/dist/utils/encode.js","../node_modules/@synfutures/sdks-perp-launchpad/node_modules/@synfutures/sdks-perp/dist/utils/factory.js","../node_modules/@synfutures/sdks-perp-launchpad/node_modules/@synfutures/sdks-perp/dist/utils/format.js","../node_modules/@synfutures/sdks-perp-launchpad/node_modules/@synfutures/sdks-perp/dist/utils/index.js","../node_modules/@synfutures/sdks-perp-launchpad/node_modules/@synfutures/sdks-perp/dist/utils/limited.js","../node_modules/@synfutures/sdks-perp-launchpad/node_modules/@synfutures/sdks-perp/dist/utils/lowLevel.js","../node_modules/@synfutures/sdks-perp-launchpad/node_modules/@synfutures/sdks-perp/dist/utils/reverse.js","../node_modules/@synfutures/sdks-perp-launchpad/node_modules/@synfutures/sdks-perp/dist/utils/utils.js","../node_modules/@synfutures/sdks-perp/dist/constants.js","../node_modules/@synfutures/sdks-perp/dist/enum.js","../node_modules/@synfutures/sdks-perp/dist/errors/calculationError.js","../node_modules/@synfutures/sdks-perp/dist/errors/index.js","../node_modules/@synfutures/sdks-perp/dist/errors/paramsEncodeError.js","../node_modules/@synfutures/sdks-perp/dist/errors/simulationError.js","../node_modules/@synfutures/sdks-perp/dist/errors/synfError.js","../node_modules/@synfutures/sdks-perp/dist/index.js","../node_modules/@synfutures/sdks-perp/dist/math/basic.js","../node_modules/@synfutures/sdks-perp/dist/math/constants.js","../node_modules/@synfutures/sdks-perp/dist/math/index.js","../node_modules/@synfutures/sdks-perp/dist/math/numeric.js","../node_modules/@synfutures/sdks-perp/dist/math/sqrtPriceMath.js","../node_modules/@synfutures/sdks-perp/dist/math/swapMath.js","../node_modules/@synfutures/sdks-perp/dist/math/tickMath.js","../node_modules/@synfutures/sdks-perp/dist/modules/calc.interface.js","../node_modules/@synfutures/sdks-perp/dist/modules/calc.module.js","../node_modules/@synfutures/sdks-perp/dist/modules/config.interface.js","../node_modules/@synfutures/sdks-perp/dist/modules/config.module.js","../node_modules/@synfutures/sdks-perp/dist/modules/configuration/configuration.base.module.js","../node_modules/@synfutures/sdks-perp/dist/modules/configuration/configuration.interface.js","../node_modules/@synfutures/sdks-perp/dist/modules/configuration/configuration.local.module.js","../node_modules/@synfutures/sdks-perp/dist/modules/configuration/configuration.s3.module.js","../node_modules/@synfutures/sdks-perp/dist/modules/configuration/index.js","../node_modules/@synfutures/sdks-perp/dist/modules/gate.interface.js","../node_modules/@synfutures/sdks-perp/dist/modules/gate.module.js","../node_modules/@synfutures/sdks-perp/dist/modules/index.js","../node_modules/@synfutures/sdks-perp/dist/modules/instrument.interface.js","../node_modules/@synfutures/sdks-perp/dist/modules/instrument.module.js","../node_modules/@synfutures/sdks-perp/dist/modules/inverse/calc.moudle.js","../node_modules/@synfutures/sdks-perp/dist/modules/inverse/index.js","../node_modules/@synfutures/sdks-perp/dist/modules/inverse/instrument.module.js","../node_modules/@synfutures/sdks-perp/dist/modules/inverse/observer.module.js","../node_modules/@synfutures/sdks-perp/dist/modules/inverse/simulate.module.js","../node_modules/@synfutures/sdks-perp/dist/modules/observer.interface.js","../node_modules/@synfutures/sdks-perp/dist/modules/observer.module.js","../node_modules/@synfutures/sdks-perp/dist/modules/simulate.interface.js","../node_modules/@synfutures/sdks-perp/dist/modules/simulate.module.js","../node_modules/@synfutures/sdks-perp/dist/parser/cexMarket.js","../node_modules/@synfutures/sdks-perp/dist/parser/config.js","../node_modules/@synfutures/sdks-perp/dist/parser/dexV2market.js","../node_modules/@synfutures/sdks-perp/dist/parser/farmat.js","../node_modules/@synfutures/sdks-perp/dist/parser/gate.js","../node_modules/@synfutures/sdks-perp/dist/parser/guardian.js","../node_modules/@synfutures/sdks-perp/dist/parser/index.js","../node_modules/@synfutures/sdks-perp/dist/parser/instrument.js","../node_modules/@synfutures/sdks-perp/dist/perp.interface.js","../node_modules/@synfutures/sdks-perp/dist/perp.module.js","../node_modules/@synfutures/sdks-perp/dist/perp.plugin.js","../node_modules/@synfutures/sdks-perp/dist/typechain/factories/Beacon__factory.js","../node_modules/@synfutures/sdks-perp/dist/typechain/factories/CexMarket__factory.js","../node_modules/@synfutures/sdks-perp/dist/typechain/factories/Config__factory.js","../node_modules/@synfutures/sdks-perp/dist/typechain/factories/DexV2Market__factory.js","../node_modules/@synfutures/sdks-perp/dist/typechain/factories/EmergingFeederFactory__factory.js","../node_modules/@synfutures/sdks-perp/dist/typechain/factories/EmergingFeeder__factory.js","../node_modules/@synfutures/sdks-perp/dist/typechain/factories/Gate__factory.js","../node_modules/@synfutures/sdks-perp/dist/typechain/factories/Guardian__factory.js","../node_modules/@synfutures/sdks-perp/dist/typechain/factories/ICexPriceFeeder__factory.js","../node_modules/@synfutures/sdks-perp/dist/typechain/factories/Instrument__factory.js","../node_modules/@synfutures/sdks-perp/dist/typechain/factories/MerkleDistributorWithDeadline__factory.js","../node_modules/@synfutures/sdks-perp/dist/typechain/factories/Observer__factory.js","../node_modules/@synfutures/sdks-perp/dist/typechain/factories/PythFeederFactory__factory.js","../node_modules/@synfutures/sdks-perp/dist/typechain/factories/PythFeeder__factory.js","../node_modules/@synfutures/sdks-perp/dist/typechain/factories/index.js","../node_modules/@synfutures/sdks-perp/dist/typechain/index.js","../node_modules/@synfutures/sdks-perp/dist/types/index.js","../node_modules/@synfutures/sdks-perp/dist/types/params.js","../node_modules/@synfutures/sdks-perp/dist/types/types.js","../node_modules/@synfutures/sdks-perp/dist/utils/calculation.js","../node_modules/@synfutures/sdks-perp/dist/utils/config.js","../node_modules/@synfutures/sdks-perp/dist/utils/encode.js","../node_modules/@synfutures/sdks-perp/dist/utils/factory.js","../node_modules/@synfutures/sdks-perp/dist/utils/format.js","../node_modules/@synfutures/sdks-perp/dist/utils/index.js","../node_modules/@synfutures/sdks-perp/dist/utils/limited.js","../node_modules/@synfutures/sdks-perp/dist/utils/lowLevel.js","../node_modules/@synfutures/sdks-perp/dist/utils/reverse.js","../node_modules/@synfutures/sdks-perp/dist/utils/utils.js","../node_modules/strict-uri-encode/index.js","../node_modules/string-convert/camel2hyphen.js","../node_modules/string_decoder/lib/string_decoder.js","../node_modules/style-to-js/cjs/index.js","../node_modules/style-to-js/cjs/utilities.js","../node_modules/style-to-object/cjs/index.js","../node_modules/styled-components/node_modules/@emotion/is-prop-valid/dist/emotion-is-prop-valid.esm.js","../node_modules/styled-components/dist/styled-components.browser.esm.js","../node_modules/styled-components/node_modules/@emotion/memoize/dist/emotion-memoize.esm.js","../node_modules/superstruct/dist/index.mjs","../node_modules/supports-color/browser.js","../node_modules/three.js/shim.js","../node_modules/three/build/three.module.js","../node_modules/toggle-selection/index.js","../node_modules/treeify/treeify.js","../node_modules/tslib/tslib.es6.js","../node_modules/type-detect/type-detect.js","../node_modules/@tanstack/query-persist-client-core/build/modern/persist.js","../node_modules/@tanstack/query-persist-client-core/node_modules/@tanstack/query-core/build/modern/hydration.js","../node_modules/@tanstack/query-sync-storage-persister/build/modern/index.js","../node_modules/@tanstack/query-sync-storage-persister/build/modern/utils.js","../node_modules/@tanstack/react-query-devtools/build/modern/index.js","../node_modules/@tanstack/react-query-persist-client/build/modern/PersistQueryClientProvider.js","../node_modules/@tanstack/react-query/build/modern/QueryClientProvider.js","../node_modules/@tanstack/react-query/build/modern/QueryErrorResetBoundary.js","../node_modules/@tanstack/react-query/build/modern/errorBoundaryUtils.js","../node_modules/@tanstack/react-query/build/modern/isRestoring.js","../node_modules/@tanstack/react-query/build/modern/suspense.js","../node_modules/@tanstack/react-query/build/modern/useBaseQuery.js","../node_modules/@tanstack/react-query/build/modern/useInfiniteQuery.js","../node_modules/@tanstack/react-query/build/modern/useMutation.js","../node_modules/@tanstack/react-query/build/modern/useQuery.js","../node_modules/@tanstack/react-query/build/modern/utils.js","../node_modules/@tanstack/react-query/node_modules/@tanstack/query-core/build/modern/focusManager.js","../node_modules/@tanstack/react-query/node_modules/@tanstack/query-core/build/modern/infiniteQueryBehavior.js","../node_modules/@tanstack/react-query/node_modules/@tanstack/query-core/build/modern/infiniteQueryObserver.js","../node_modules/@tanstack/react-query/node_modules/@tanstack/query-core/build/modern/mutation.js","../node_modules/@tanstack/react-query/node_modules/@tanstack/query-core/build/modern/mutationObserver.js","../node_modules/@tanstack/react-query/node_modules/@tanstack/query-core/build/modern/notifyManager.js","../node_modules/@tanstack/react-query/node_modules/@tanstack/query-core/build/modern/onlineManager.js","../node_modules/@tanstack/react-query/node_modules/@tanstack/query-core/build/modern/query.js","../node_modules/@tanstack/react-query/node_modules/@tanstack/query-core/build/modern/queryCache.js","../node_modules/@tanstack/react-query/node_modules/@tanstack/query-core/build/modern/mutationCache.js","../node_modules/@tanstack/react-query/node_modules/@tanstack/query-core/build/modern/queryClient.js","../node_modules/@tanstack/react-query/node_modules/@tanstack/query-core/build/modern/queryObserver.js","../node_modules/@tanstack/react-query/node_modules/@tanstack/query-core/build/modern/removable.js","../node_modules/@tanstack/react-query/node_modules/@tanstack/query-core/build/modern/retryer.js","../node_modules/@tanstack/react-query/node_modules/@tanstack/query-core/build/modern/subscribable.js","../node_modules/@tanstack/react-query/node_modules/@tanstack/query-core/build/modern/thenable.js","../node_modules/@tanstack/react-query/node_modules/@tanstack/query-core/build/modern/utils.js","../node_modules/stylis/src/Enum.js","../node_modules/stylis/src/Tokenizer.js","../node_modules/stylis/src/Parser.js","../node_modules/stylis/src/Serializer.js","../node_modules/stylis/src/Utility.js","../node_modules/throttle-debounce/esm/index.js","../node_modules/tinycolor2/esm/tinycolor.js"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AggregatorDataSourceModule = exports.ETH_ADDRESS = void 0;\nconst ethers_1 = require(\"ethers\");\nconst contracts_1 = require(\"@derivation-tech/contracts\");\nconst graph_1 = require(\"@derivation-tech/context/dist/utils/graph\");\nexports.ETH_ADDRESS = '0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE';\nclass AggregatorDataSourceModule extends graph_1.Graph {\n constructor(context, endpoint, retryOption) {\n super(endpoint, retryOption);\n this.context = context;\n }\n async getOrderHistory(params) {\n const graphQL = `query($skip: Int, $first: Int, $lastID: String){\n orderHistoryEvents(\n where: {user: \"${params.user.toLowerCase()}\"}\n orderBy: transaction__timestamp\n orderDirection: desc\n ) {\n id\n logIndex\n transaction {\n id\n timestamp\n input\n }\n address\n fromToken\n toToken\n sender\n fromAmount\n returnAmount\n }\n }`;\n const orderHistoryEvents = await this.queryAll(graphQL, graph_1.GRAPH_PAGE_SIZE, true);\n const tokens = Array.from(new Set(orderHistoryEvents.map((orderHistory) => [orderHistory.fromToken, orderHistory.toToken]).flat()));\n const calls = [];\n const erc20Interface = contracts_1.ERC20__factory.createInterface();\n for (const token of tokens) {\n const targetAddress = token.toLowerCase() === exports.ETH_ADDRESS.toLowerCase() ? this.context.wrappedNativeToken.address : token;\n calls.push({\n target: targetAddress,\n callData: erc20Interface.encodeFunctionData('symbol'),\n });\n calls.push({\n target: targetAddress,\n callData: erc20Interface.encodeFunctionData('decimals'),\n });\n }\n const rawData = await this.context.multiCall3.callStatic.aggregate(calls);\n const tokenMap = new Map();\n for (let i = 0; i < tokens.length; i++) {\n try {\n const token = tokens[i];\n const isETH = token.toLowerCase() === exports.ETH_ADDRESS.toLowerCase();\n const symbol = isETH\n ? 'ETH'\n : erc20Interface.decodeFunctionResult('symbol', rawData.returnData[i * 2])[0];\n const decimals = erc20Interface.decodeFunctionResult('decimals', rawData.returnData[i * 2 + 1])[0];\n tokenMap.set(token, {\n symbol,\n decimals: Number(decimals),\n address: token,\n });\n }\n catch (e) {\n console.warn(`Failed to get symbol and decimals for ${tokens[i]}, error: ${e}`);\n }\n }\n const result = [];\n for (const orderHistory of orderHistoryEvents) {\n result.push({\n timestamp: Number(orderHistory.transaction.timestamp),\n transactionHash: orderHistory.transaction.id,\n logIndex: orderHistory.logIndex,\n fromToken: tokenMap.get(orderHistory.fromToken),\n toToken: tokenMap.get(orderHistory.toToken),\n sender: orderHistory.sender,\n fromAmount: ethers_1.BigNumber.from(orderHistory.fromAmount),\n returnAmount: ethers_1.BigNumber.from(orderHistory.returnAmount),\n });\n }\n return {\n orderHistory: result,\n };\n }\n}\nexports.AggregatorDataSourceModule = AggregatorDataSourceModule;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.aggregatorDataSourcePlugin = void 0;\nconst aggregatorDataSource_module_1 = require(\"./aggregatorDataSource.module\");\nconst aggregatorDataSourcePlugin = (endpoint, retryOption) => {\n return {\n install(ctx) {\n ctx.aggregatorDataSource = new aggregatorDataSource_module_1.AggregatorDataSourceModule(ctx, endpoint, retryOption);\n },\n };\n};\nexports.aggregatorDataSourcePlugin = aggregatorDataSourcePlugin;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./aggregatorDataSource.module\"), exports);\n__exportStar(require(\"./aggregatorDataSource.plugin\"), exports);\n__exportStar(require(\"./aggregatorDataSource.interface\"), exports);\n__exportStar(require(\"./params\"), exports);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || (function () {\n var ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n };\n return function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.QUERY_SPLIT_ROUTE_ABI = exports.QUERY_SINGLE_ROUTE_ABI = exports.OYSTER_AGGREGATOR_ABI = exports.CONFIG_ABI = void 0;\nconst CONFIG_ABI = __importStar(require(\"./Config.json\"));\nexports.CONFIG_ABI = CONFIG_ABI;\nconst OYSTER_AGGREGATOR_ABI = __importStar(require(\"./OysterAggregator.json\"));\nexports.OYSTER_AGGREGATOR_ABI = OYSTER_AGGREGATOR_ABI;\nconst QUERY_SINGLE_ROUTE_ABI = __importStar(require(\"./QuerySingleRoute.json\"));\nexports.QUERY_SINGLE_ROUTE_ABI = QUERY_SINGLE_ROUTE_ABI;\nconst QUERY_SPLIT_ROUTE_ABI = __importStar(require(\"./QuerySplitRoute.json\"));\nexports.QUERY_SPLIT_ROUTE_ABI = QUERY_SPLIT_ROUTE_ABI;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AggregatorModule = void 0;\nconst ethers_1 = require(\"ethers\");\nconst utils_1 = require(\"ethers/lib/utils\");\nconst sdks_perp_1 = require(\"@synfutures/sdks-perp\");\nconst typechain_1 = require(\"./typechain\");\nconst context_1 = require(\"@derivation-tech/context\");\nconst constants_1 = require(\"./constants\");\nconst types_1 = require(\"./types\");\nconst utils_2 = require(\"./utils\");\nclass AggregatorModule {\n get querySingleRouteContract() {\n return typechain_1.QuerySingleRoute__factory.connect(constants_1.QUERY_SINGLE_ROUTE_ADDRESS[this.context.chainId] ?? context_1.ZERO_ADDRESS, this.context.provider);\n }\n get querySplitRouteContract() {\n return typechain_1.QuerySplitRoute__factory.connect(constants_1.QUERY_SPLIT_ROUTE_ADDRESS[this.context.chainId] ?? context_1.ZERO_ADDRESS, this.context.provider);\n }\n get oysterAggregator() {\n return typechain_1.OysterAggregator__factory.connect(constants_1.OYSTER_AGGREGATOR_ADDRESS[this.context.chainId] ?? context_1.ZERO_ADDRESS, this.context.provider);\n }\n get config() {\n return typechain_1.Config__factory.connect(constants_1.CONFIG_ADDRESS[this.context.chainId] ?? context_1.ZERO_ADDRESS, this.context.provider);\n }\n async getPoolList(token0Address, token1Address, excludePoolTypes = []) {\n const res = await this.config.callStatic.getPoolsWithFlag(token0Address, token1Address, (0, utils_2.getDexFlag)(excludePoolTypes));\n return res;\n }\n async getPoolAdapter(poolType) {\n const res = this.poolAdapters.get(poolType);\n if (!res) {\n try {\n const poolAdapter = await this.config.getPoolAdapter(poolType);\n this.poolAdapters.set(poolType, poolAdapter);\n return poolAdapter;\n }\n catch (e) {\n throw new Error(`Pool adapter not found for pool type ${poolType}, reason: ${e}`);\n }\n }\n return res;\n }\n constructor(context) {\n this.poolAdapters = new Map();\n this.DEFAULT_GAS_LIMIT_MULTIPLE = 1.5;\n this.context = context;\n }\n async init() {\n if (this.config.address === context_1.ZERO_ADDRESS) {\n return;\n }\n const poolTypes = Object.values(types_1.PoolType).filter((value) => !isNaN(Number(value)));\n const multicallCalls = poolTypes.map((poolType) => ({\n target: this.config.address,\n callData: this.config.interface.encodeFunctionData('getPoolAdapter', [poolType]),\n }));\n const multicallResults = (await this.context.multiCall3.callStatic.aggregate(multicallCalls)).returnData;\n for (let i = 0; i < poolTypes.length; i++) {\n const decoded = this.config.interface.decodeFunctionResult('getPoolAdapter', multicallResults[i]);\n this.poolAdapters.set(Number(poolTypes[i]), decoded[0]);\n }\n }\n async getMidPrices(params) {\n const res = await this.config.callStatic.getMidPrices(params.poolAddresses, params.poolTypes, params.isBuy);\n return {\n midPrices: res.prices,\n token0Balances: res.token0bals,\n token1Balances: res.token1bals,\n };\n }\n async getAmountsOut(params) {\n const res = await this.config.callStatic.getAmountsOut(params.pool, params.poolType, params.zeroForOne, params.amountsIn);\n return {\n amountsOut: res,\n };\n }\n async queryDirectRoute(params) {\n params.fromTokenAddress = (0, utils_2.toWrappedETH)(this.context, params.fromTokenAddress);\n params.toTokenAddress = (0, utils_2.toWrappedETH)(this.context, params.toTokenAddress);\n const res = await this.querySingleRouteContract.callStatic.querySingleRoute(params.fromTokenAddress, params.toTokenAddress, params.fromAmount, (0, utils_2.getDexFlag)(params.excludePoolTypes));\n return {\n bestAmount: res.resAmount.bestAmount,\n midPrice: res.resAmount.midPrice,\n bestPath: res.bestPath,\n bestPoolPath: res.bestPoolPath,\n };\n }\n async querySingleRoute(params) {\n params.fromTokenAddress = (0, utils_2.toWrappedETH)(this.context, params.fromTokenAddress);\n params.toTokenAddress = (0, utils_2.toWrappedETH)(this.context, params.toTokenAddress);\n const res = await this.querySingleRouteContract.callStatic.querySingleRoute(params.fromTokenAddress, params.toTokenAddress, params.fromAmount, (0, utils_2.getDexFlag)(params.excludePoolTypes));\n return {\n bestAmount: res.resAmount.bestAmount,\n midPrice: res.resAmount.midPrice,\n bestPath: res.bestPath,\n bestPoolPath: res.bestPoolPath,\n };\n }\n async querySplitRoute(params) {\n params.fromTokenAddress = (0, utils_2.toWrappedETH)(this.context, params.fromTokenAddress);\n params.toTokenAddress = (0, utils_2.toWrappedETH)(this.context, params.toTokenAddress);\n const res = await this.querySplitRouteContract.callStatic.querySplitRoute(params.fromTokenAddress, params.toTokenAddress, params.fromAmount, params.isDirect, (0, utils_2.getDexFlagAndSplits)(params.excludePoolTypes, params.splitNumber ?? 0), params.specifiedMiddleToken ?? context_1.ZERO_ADDRESS);\n const filteredOneHops = res.bestPathInfo.oneHops.map((hop) => ({\n ...hop,\n pools: hop.pools.filter((pool) => hop.weights[hop.pools.indexOf(pool)].gt(context_1.ZERO)),\n weights: hop.weights.filter((weight) => weight.gt(context_1.ZERO)),\n }));\n return {\n bestAmount: res.resAmount.bestAmount,\n midPrice: res.resAmount.midPrice,\n bestPathInfo: {\n ...res.bestPathInfo,\n oneHops: filteredOneHops,\n },\n };\n }\n async simulateMixSwap(params) {\n const querySingleRouteResult = await this.querySingleRoute({\n fromTokenAddress: params.fromTokenAddress,\n toTokenAddress: params.toTokenAddress,\n fromAmount: params.fromAmount,\n excludePoolTypes: params.excludePoolTypes,\n });\n const minReturnAmount = querySingleRouteResult.bestAmount\n .mul(sdks_perp_1.RATIO_BASE - params.slippageInBps)\n .div(sdks_perp_1.RATIO_BASE);\n const bestAmount = Number((0, context_1.formatUnits)(querySingleRouteResult.bestAmount, params.toTokenDecimals));\n const midPrice = Number((0, context_1.formatUnits)(querySingleRouteResult.midPrice, 18));\n const numberFromTokenAmount = Number((0, context_1.formatUnits)(params.fromAmount, params.fromTokenDecimals));\n return {\n priceImpact: Math.max(bestAmount / (numberFromTokenAmount * midPrice) - 1, 0),\n minReceivedAmount: minReturnAmount,\n route: querySingleRouteResult.bestPoolPath.map((pool) => pool.poolType),\n };\n }\n async simulateMultiSwap(params) {\n const querySplitRouteResult = await this.querySplitRoute({\n fromTokenAddress: params.fromTokenAddress,\n toTokenAddress: params.toTokenAddress,\n fromAmount: params.fromAmount,\n excludePoolTypes: params.excludePoolTypes,\n isDirect: params.isDirect,\n });\n const minReturnAmount = querySplitRouteResult.bestAmount.mul(sdks_perp_1.RATIO_BASE - params.slippageInBps).div(sdks_perp_1.RATIO_BASE);\n const WAD = ethers_1.BigNumber.from(10).pow(18);\n const fromTokenDecimalCorrect = ethers_1.BigNumber.from(10).pow(params.fromTokenDecimals);\n const toTokenDecimalCorrect = ethers_1.BigNumber.from(10).pow(params.toTokenDecimals);\n const priceImpactBN = querySplitRouteResult.bestAmount\n .mul(fromTokenDecimalCorrect)\n .mul(WAD)\n .div(params.fromAmount.mul(toTokenDecimalCorrect).mul(querySplitRouteResult.midPrice).div(WAD));\n return {\n priceImpact: Math.min(Number((0, context_1.formatUnits)(priceImpactBN, 18)) - 1, 0),\n minReceivedAmount: minReturnAmount,\n route: querySplitRouteResult.bestPathInfo.oneHops.map((hop) => hop.pools.map((pool) => ({\n poolAddr: pool.poolAddr,\n poolType: pool.poolType,\n ratio: hop.weights[hop.pools.indexOf(pool)],\n fee: pool.fee,\n }))),\n tokens: querySplitRouteResult.bestPathInfo.tokens,\n };\n }\n async getPoolLiquidity(params) {\n params.blockTag = params.blockTag ?? (await this.context.provider.getBlockNumber());\n const [{ prices: sellPrices, token0bals, token1bals }, { prices: buyPrices }] = await Promise.all([\n this.config.getMidPrices(params.pools.map((pool) => pool.poolAddr), params.pools.map((pool) => pool.poolType), false, {\n blockTag: params.blockTag,\n }),\n this.config.getMidPrices(params.pools.map((pool) => pool.poolAddr), params.pools.map((pool) => pool.poolType), true, {\n blockTag: params.blockTag,\n }),\n ]);\n const avgSellPrice = sellPrices.reduce((sum, price) => sum + (0, context_1.fromWad)(price), 0) / sellPrices.length;\n const avgBuyPrice = buyPrices.reduce((sum, price) => sum + (0, context_1.fromWad)(price), 0) / buyPrices.length;\n const avgMidPrice = (avgSellPrice + avgBuyPrice) / 2;\n const allPoolCurves = await sdks_perp_1.utils.limitedMap(params.pools, (pool) => (0, utils_2.fitPoolCurves)(this.config, pool.poolAddr, pool.poolType, token0bals[params.pools.indexOf(pool)], token1bals[params.pools.indexOf(pool)], params.token0Decimal, params.token1Decimal, params.ratio, params.steps, params.batchSize, params.blockTag), params.parallel ?? 3);\n const allPoolMinBuyPrices = allPoolCurves.map((curves) => {\n const buyCurves = curves.buyCurves;\n if (!buyCurves || buyCurves.length === 0)\n return Infinity;\n return buyCurves.reduce((minPrice, curve) => {\n if (curve && curve.range && typeof curve.range.min === 'number') {\n return Math.min(minPrice, curve.range.min);\n }\n return minPrice;\n }, Infinity);\n });\n const minPoolBuyPrice = Math.min(...allPoolMinBuyPrices);\n const buyQueryPrices = params.priceMultipliers\n .map((priceMultiplier) => avgBuyPrice * priceMultiplier)\n .filter((price) => price > avgBuyPrice);\n if (Math.min(...buyQueryPrices) < minPoolBuyPrice) {\n const adjustmentRatio = minPoolBuyPrice / avgBuyPrice;\n const adjustedPrices = buyQueryPrices.map((price) => price * adjustmentRatio);\n buyQueryPrices.splice(0, buyQueryPrices.length, ...adjustedPrices);\n }\n const buyResults = (0, utils_2.adjustLiquidityResults)((0, utils_2.analyzePoolLiquidity)(params.pools.map((pool) => pool.poolAddr), allPoolCurves, buyQueryPrices, true), true);\n const allPoolMaxSellPrices = allPoolCurves.map((curves) => {\n const sellCurves = curves.sellCurves;\n if (!sellCurves || sellCurves.length === 0)\n return -Infinity;\n return sellCurves.reduce((maxPrice, curve) => {\n if (curve && curve.range && typeof curve.range.max === 'number') {\n return Math.max(maxPrice, curve.range.max);\n }\n return maxPrice;\n }, -Infinity);\n });\n const maxPoolSellPrice = Math.max(...allPoolMaxSellPrices);\n const sellQueryPrices = params.priceMultipliers\n .map((priceMultiplier) => avgSellPrice * priceMultiplier)\n .filter((price) => price < avgSellPrice);\n if (Math.max(...sellQueryPrices) < maxPoolSellPrice) {\n const adjustmentRatio = maxPoolSellPrice / avgSellPrice;\n const adjustedPrices = sellQueryPrices.map((price) => price * adjustmentRatio);\n sellQueryPrices.splice(0, sellQueryPrices.length, ...adjustedPrices);\n }\n const sellResults = (0, utils_2.adjustLiquidityResults)((0, utils_2.analyzePoolLiquidity)(params.pools.map((pool) => pool.poolAddr), allPoolCurves, sellQueryPrices, false), false);\n return {\n midPrice: avgMidPrice,\n buyLiquidityResults: buyResults,\n sellLiquidityResults: sellResults,\n };\n }\n async _mixSwap(params) {\n const { fromTokenAddress, fromTokenAmount, toTokenAddress, bestPath, bestPoolPath, bestAmount, slippageInBps, broker, brokerFeeRate, deadline, } = params;\n const fromTokenAddressNonZero = (0, utils_2.zeroToETHForSwap)(fromTokenAddress);\n const toTokenAddressNonZero = (0, utils_2.zeroToETHForSwap)(toTokenAddress);\n const minReturnAmount = bestAmount.mul(sdks_perp_1.RATIO_BASE - slippageInBps).div(sdks_perp_1.RATIO_BASE);\n const mixAdapters = await Promise.all(bestPoolPath.map((pair) => this.getPoolAdapter(pair.poolType)));\n const mixPairs = bestPoolPath.map((pair) => pair.poolAddr);\n const assetTo = await Promise.all(bestPoolPath.map((pair) => {\n if (pair.swapType === types_1.SwapType.DIRECT) {\n return pair.poolAddr;\n }\n else if (pair.swapType === types_1.SwapType.ADAPTER) {\n return this.getPoolAdapter(pair.poolType);\n }\n else {\n throw new Error(`Invalid swap type: ${pair.swapType}`);\n }\n }));\n assetTo.push(this.oysterAggregator.address);\n const moreInfos = new Array(bestPoolPath.length).fill('0x');\n const feeData = new ethers_1.ethers.utils.AbiCoder().encode(['address', 'uint256'], [broker, brokerFeeRate]);\n let directions = context_1.ZERO;\n for (let i = 0; i < bestPoolPath.length; i++) {\n const token0 = bestPoolPath[i].token0;\n const sellToken = bestPath[i];\n if (sellToken !== token0) {\n directions = directions.add(context_1.ONE.shl(i));\n }\n }\n if (mixPairs.length === 0)\n throw new Error('RouteProxy: PAIRS_EMPTY');\n if (mixPairs.length !== mixAdapters.length)\n throw new Error('RouteProxy: PAIR_ADAPTER_NOT_MATCH');\n if (mixPairs.length !== assetTo.length - 1)\n throw new Error('RouteProxy: PAIR_ASSETTO_NOT_MATCH');\n if (minReturnAmount.eq(context_1.ZERO))\n throw new Error('RouteProxy: RETURN_AMOUNT_ZERO');\n return {\n fromTokenAddress: fromTokenAddressNonZero,\n toTokenAddress: toTokenAddressNonZero,\n fromTokenAmount,\n minReturnAmount,\n mixAdapters,\n mixPairs,\n assetTo,\n directions,\n moreInfos,\n feeData,\n deadline,\n };\n }\n async mixSwap(params, txOptions) {\n const { fromTokenAddress, toTokenAddress, fromTokenAmount, minReturnAmount, mixAdapters, mixPairs, assetTo, directions, moreInfos, feeData, deadline, } = await this._mixSwap(params);\n txOptions = {\n ...txOptions,\n value: fromTokenAddress === constants_1.ETH_ADDRESS ? fromTokenAmount : context_1.ZERO,\n gasLimitMultiple: txOptions?.gasLimitMultiple ?? this.DEFAULT_GAS_LIMIT_MULTIPLE,\n };\n const tx = await this.oysterAggregator.populateTransaction.mixSwap(fromTokenAddress, toTokenAddress, fromTokenAmount, minReturnAmount, mixAdapters, mixPairs, assetTo, directions, moreInfos, feeData, deadline, { ...sdks_perp_1.utils.toPopulatedTxOverrides(txOptions), from: await txOptions?.from });\n return await this.context.tx.sendTx(tx, txOptions);\n }\n async _multiSwap(params) {\n const { fromTokenAddress, fromTokenAmount, toTokenAddress, bestPathInfo, bestAmount, slippageInBps, broker, brokerFeeRate, deadline, } = params;\n const fromTokenAddressNonZero = (0, utils_2.zeroToETHForSwap)(fromTokenAddress);\n const toTokenAddressNonZero = (0, utils_2.zeroToETHForSwap)(toTokenAddress);\n const minReturnAmount = bestAmount.mul(sdks_perp_1.RATIO_BASE - slippageInBps).div(sdks_perp_1.RATIO_BASE);\n const splitNumber = [0];\n const assetTo = [];\n const sequence = [];\n for (let i = 0; i < bestPathInfo.oneHops.length; i++) {\n const token0 = bestPathInfo.tokens[i];\n const pools = bestPathInfo.oneHops[i].pools;\n const weights = bestPathInfo.oneHops[i].weights;\n splitNumber.push(splitNumber[i] + pools.length);\n if (pools.length > 1) {\n assetTo.push(this.oysterAggregator.address);\n }\n else {\n const poolInfo = bestPathInfo.oneHops[i].pools[0];\n if (poolInfo.swapType === types_1.SwapType.DIRECT) {\n assetTo.push(poolInfo.poolAddr);\n }\n else if (poolInfo.swapType === types_1.SwapType.ADAPTER) {\n assetTo.push(await this.getPoolAdapter(poolInfo.poolType));\n }\n else {\n throw new Error(`Invalid swap type: ${poolInfo.swapType}`);\n }\n }\n for (let j = 0; j < pools.length; j++) {\n const poolInfo = pools[j];\n const sequencePool = poolInfo.poolAddr;\n const sequenceMixAdapter = await this.getPoolAdapter(poolInfo.poolType);\n const direction = token0 === poolInfo.token0 ? context_1.ZERO : context_1.ONE;\n const poolEdition = ethers_1.BigNumber.from(poolInfo.swapType).mask(3);\n const weight = weights[j];\n const mixPara = direction.add(poolEdition.shl(1)).add(weight.shl(3));\n const sequenceMixPara = mixPara;\n const sequenceMoreInfo = '0x';\n const abiCoder = new utils_1.AbiCoder();\n sequence.push(abiCoder.encode(['address', 'address', 'uint256', 'bytes'], [sequencePool, sequenceMixAdapter, sequenceMixPara, sequenceMoreInfo]));\n }\n }\n assetTo.push(this.oysterAggregator.address);\n const midToken = [...bestPathInfo.tokens];\n midToken[0] = fromTokenAddressNonZero;\n midToken[midToken.length - 1] = toTokenAddressNonZero;\n const feeData = new ethers_1.ethers.utils.AbiCoder().encode(['address', 'uint256'], [broker, brokerFeeRate]);\n if (assetTo.length !== splitNumber.length)\n throw new Error('RouteProxy: PAIR_ASSETTO_NOT_MATCH');\n if (minReturnAmount.eq(context_1.ZERO))\n throw new Error('RouteProxy: RETURN_AMOUNT_ZERO');\n return {\n fromTokenAddress: fromTokenAddressNonZero,\n fromTokenAmount,\n minReturnAmount,\n splitNumber,\n midToken,\n assetTo,\n sequence,\n feeData,\n deadline,\n };\n }\n async multiSwap(params, txOptions) {\n const { fromTokenAddress, fromTokenAmount, minReturnAmount, splitNumber, midToken, assetTo, sequence, feeData, deadline, } = await this._multiSwap(params);\n txOptions = {\n ...txOptions,\n value: fromTokenAddress === constants_1.ETH_ADDRESS ? fromTokenAmount : context_1.ZERO,\n gasLimitMultiple: txOptions?.gasLimitMultiple ?? this.DEFAULT_GAS_LIMIT_MULTIPLE,\n };\n const tx = await this.oysterAggregator.populateTransaction.multiSwap(fromTokenAmount, minReturnAmount, splitNumber, midToken, assetTo, sequence, feeData, deadline, { ...sdks_perp_1.utils.toPopulatedTxOverrides(txOptions), from: await txOptions?.from });\n return await this.context.tx.sendTx(tx, txOptions);\n }\n async _wethConvert(params) {\n const isFromETH = params.fromTokenAddress.toLowerCase() === context_1.ZERO_ADDRESS.toLowerCase();\n const isToETH = params.toTokenAddress.toLowerCase() === context_1.ZERO_ADDRESS.toLowerCase();\n if ((!isFromETH && !isToETH) || isFromETH == isToETH) {\n throw new Error('At least one token must be ETH for WETH conversion');\n }\n return {\n fromTokenAddress: params.fromTokenAddress,\n amount: params.amount,\n };\n }\n async wethConvert(params, txOptions) {\n const { fromTokenAddress, amount } = await this._wethConvert(params);\n const isFromETH = fromTokenAddress.toLowerCase() === context_1.ZERO_ADDRESS.toLowerCase();\n const weth = typechain_1.IWETH__factory.connect(this.context.wrappedNativeToken.address, this.context.provider);\n txOptions = {\n ...txOptions,\n value: isFromETH ? amount : context_1.ZERO,\n gasLimitMultiple: txOptions?.gasLimitMultiple ?? this.DEFAULT_GAS_LIMIT_MULTIPLE,\n };\n const tx = isFromETH\n ? await weth.populateTransaction.deposit({\n ...sdks_perp_1.utils.toPopulatedTxOverrides(txOptions),\n value: amount,\n from: await txOptions?.from,\n })\n : await weth.populateTransaction.withdraw(amount, {\n ...sdks_perp_1.utils.toPopulatedTxOverrides(txOptions),\n from: await txOptions?.from,\n });\n return await this.context.tx.sendTx(tx, txOptions);\n }\n}\nexports.AggregatorModule = AggregatorModule;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.aggregatorPlugin = void 0;\nconst aggregator_module_1 = require(\"./aggregator.module\");\nconst aggregatorPlugin = () => {\n return {\n install(ctx) {\n ctx.aggregator = new aggregator_module_1.AggregatorModule(ctx);\n },\n };\n};\nexports.aggregatorPlugin = aggregatorPlugin;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.OYSTER_AGGREGATOR_ADDRESS = exports.QUERY_SPLIT_ROUTE_ADDRESS = exports.QUERY_SINGLE_ROUTE_ADDRESS = exports.CONFIG_ADDRESS = exports.ZERO_ADDRESS = exports.ETH_ADDRESS = void 0;\nconst context_1 = require(\"@derivation-tech/context\");\nexports.ETH_ADDRESS = '0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE';\nexports.ZERO_ADDRESS = '0x0000000000000000000000000000000000000000';\nexports.CONFIG_ADDRESS = {\n [context_1.CHAIN_ID.BASE]: '0xA9A78c647561A3823F1E48b4e151318Ed42C4eC4',\n};\nexports.QUERY_SINGLE_ROUTE_ADDRESS = {\n [context_1.CHAIN_ID.BASE]: '0x57C2beA8e020af706f737836061F23ca1E9fd8a5',\n};\nexports.QUERY_SPLIT_ROUTE_ADDRESS = {\n [context_1.CHAIN_ID.BASE]: '0x0DE5690A91c559d520A075792DCa1405ebA9ED33',\n};\nexports.OYSTER_AGGREGATOR_ADDRESS = {\n [context_1.CHAIN_ID.BASE]: '0x58d4adD76f2Ad83C2996f06fcd22b0f15FfBC725',\n};\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./constants\"), exports);\n__exportStar(require(\"./params\"), exports);\n__exportStar(require(\"./types\"), exports);\n__exportStar(require(\"./utils\"), exports);\n__exportStar(require(\"./typechain\"), exports);\n__exportStar(require(\"./abis\"), exports);\n__exportStar(require(\"./aggregator.interface\"), exports);\n__exportStar(require(\"./aggregator.module\"), exports);\n__exportStar(require(\"./aggregator.plugin\"), exports);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Config__factory = void 0;\nconst ethers_1 = require(\"ethers\");\nconst _abi = [\n {\n type: 'constructor',\n inputs: [],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'acceptBot',\n inputs: [],\n outputs: [],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'addMiddleTokens',\n inputs: [\n {\n name: 'tokens',\n type: 'address[]',\n internalType: 'address[]',\n },\n {\n name: 'limits',\n type: 'uint256[]',\n internalType: 'uint256[]',\n },\n ],\n outputs: [],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'addPools',\n inputs: [\n {\n name: 'pools',\n type: 'tuple[]',\n internalType: 'struct Config.PoolInput[]',\n components: [\n {\n name: 'poolAddr',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'poolType',\n type: 'uint24',\n internalType: 'uint24',\n },\n ],\n },\n ],\n outputs: [],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'bot',\n inputs: [],\n outputs: [\n {\n name: '',\n type: 'address',\n internalType: 'address',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'changeSplits',\n inputs: [\n {\n name: 'newComplex',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'newSimple',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n outputs: [],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'complexSplits',\n inputs: [],\n outputs: [\n {\n name: '',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'getAmountsOut',\n inputs: [\n {\n name: 'pool',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'poolType',\n type: 'uint24',\n internalType: 'uint24',\n },\n {\n name: 'isToken0',\n type: 'bool',\n internalType: 'bool',\n },\n {\n name: 'amountsIn',\n type: 'uint256[]',\n internalType: 'uint256[]',\n },\n ],\n outputs: [\n {\n name: 'amountsOut',\n type: 'uint256[]',\n internalType: 'uint256[]',\n },\n ],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'getMidPrices',\n inputs: [\n {\n name: 'pools',\n type: 'address[]',\n internalType: 'address[]',\n },\n {\n name: 'poolTypes',\n type: 'uint24[]',\n internalType: 'uint24[]',\n },\n {\n name: 'isBuy',\n type: 'bool',\n internalType: 'bool',\n },\n ],\n outputs: [\n {\n name: 'prices',\n type: 'uint256[]',\n internalType: 'uint256[]',\n },\n {\n name: 'token0bals',\n type: 'uint256[]',\n internalType: 'uint256[]',\n },\n {\n name: 'token1bals',\n type: 'uint256[]',\n internalType: 'uint256[]',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'getMiddleTokens',\n inputs: [],\n outputs: [\n {\n name: '',\n type: 'address[]',\n internalType: 'address[]',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'getPoolAdapter',\n inputs: [\n {\n name: 'poolType',\n type: 'uint24',\n internalType: 'uint24',\n },\n ],\n outputs: [\n {\n name: '',\n type: 'address',\n internalType: 'address',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'getPoolsWithFlag',\n inputs: [\n {\n name: 'token0',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'token1',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'dexFlag',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n outputs: [\n {\n name: '',\n type: 'tuple[]',\n internalType: 'struct LibTypes.Pair[]',\n components: [\n {\n name: 'token0',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'token1',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'poolAddr',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'poolType',\n type: 'uint24',\n internalType: 'uint24',\n },\n {\n name: 'fee',\n type: 'uint128',\n internalType: 'uint128',\n },\n {\n name: 'swapType',\n type: 'uint8',\n internalType: 'enum LibTypes.SwapType',\n },\n ],\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'getSplits',\n inputs: [\n {\n name: 'poolLength',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n outputs: [\n {\n name: '',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'initialize',\n inputs: [\n {\n name: '_owner',\n type: 'address',\n internalType: 'address',\n },\n {\n name: '_bot',\n type: 'address',\n internalType: 'address',\n },\n ],\n outputs: [],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'isMiddleToken',\n inputs: [\n {\n name: '',\n type: 'address',\n internalType: 'address',\n },\n ],\n outputs: [\n {\n name: '',\n type: 'bool',\n internalType: 'bool',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'isPoolExist',\n inputs: [\n {\n name: '',\n type: 'address',\n internalType: 'address',\n },\n {\n name: '',\n type: 'address',\n internalType: 'address',\n },\n {\n name: '',\n type: 'address',\n internalType: 'address',\n },\n ],\n outputs: [\n {\n name: '',\n type: 'bool',\n internalType: 'bool',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'middleTokenConstraints',\n inputs: [\n {\n name: '',\n type: 'address',\n internalType: 'address',\n },\n ],\n outputs: [\n {\n name: '',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'middleTokenList',\n inputs: [\n {\n name: '',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n outputs: [\n {\n name: '',\n type: 'address',\n internalType: 'address',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'owner',\n inputs: [],\n outputs: [\n {\n name: '',\n type: 'address',\n internalType: 'address',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'pendingBot',\n inputs: [],\n outputs: [\n {\n name: '',\n type: 'address',\n internalType: 'address',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'poolAdapter',\n inputs: [\n {\n name: '',\n type: 'uint24',\n internalType: 'uint24',\n },\n ],\n outputs: [\n {\n name: '',\n type: 'address',\n internalType: 'address',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'poolList',\n inputs: [\n {\n name: '',\n type: 'address',\n internalType: 'address',\n },\n {\n name: '',\n type: 'address',\n internalType: 'address',\n },\n {\n name: '',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n outputs: [\n {\n name: 'token0',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'token1',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'poolAddr',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'poolType',\n type: 'uint24',\n internalType: 'uint24',\n },\n {\n name: 'fee',\n type: 'uint128',\n internalType: 'uint128',\n },\n {\n name: 'swapType',\n type: 'uint8',\n internalType: 'enum LibTypes.SwapType',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'poolTypeCount',\n inputs: [],\n outputs: [\n {\n name: '',\n type: 'uint24',\n internalType: 'uint24',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'removeMiddleTokens',\n inputs: [\n {\n name: 'tokens',\n type: 'address[]',\n internalType: 'address[]',\n },\n ],\n outputs: [],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'removePoolsWithTokens',\n inputs: [\n {\n name: 'poolInputs',\n type: 'tuple[]',\n internalType: 'struct Config.PoolRemoveInput[]',\n components: [\n {\n name: 'token0',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'token1',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'poolAddr',\n type: 'address',\n internalType: 'address',\n },\n ],\n },\n ],\n outputs: [],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'renounceOwnership',\n inputs: [],\n outputs: [],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'resetPoolAdapter',\n inputs: [\n {\n name: 'poolType',\n type: 'uint24',\n internalType: 'uint24',\n },\n {\n name: 'newAdapter',\n type: 'address',\n internalType: 'address',\n },\n ],\n outputs: [],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'setMiddleTokenConstraints',\n inputs: [\n {\n name: 'token',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'limit',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n outputs: [],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'setPoolAdapter',\n inputs: [\n {\n name: 'poolType',\n type: 'uint24',\n internalType: 'uint24',\n },\n {\n name: 'adapter',\n type: 'address',\n internalType: 'address',\n },\n ],\n outputs: [],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'setPoolAdapters',\n inputs: [\n {\n name: 'poolTypes',\n type: 'uint24[]',\n internalType: 'uint24[]',\n },\n {\n name: 'adapters',\n type: 'address[]',\n internalType: 'address[]',\n },\n ],\n outputs: [],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'simpleSplits',\n inputs: [],\n outputs: [\n {\n name: '',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'transferBot',\n inputs: [\n {\n name: 'newBot',\n type: 'address',\n internalType: 'address',\n },\n ],\n outputs: [],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'transferOwnership',\n inputs: [\n {\n name: 'newOwner',\n type: 'address',\n internalType: 'address',\n },\n ],\n outputs: [],\n stateMutability: 'nonpayable',\n },\n {\n type: 'event',\n name: 'BotTransferCompleted',\n inputs: [\n {\n name: 'oldBot',\n type: 'address',\n indexed: true,\n internalType: 'address',\n },\n {\n name: 'newBot',\n type: 'address',\n indexed: true,\n internalType: 'address',\n },\n ],\n anonymous: false,\n },\n {\n type: 'event',\n name: 'BotTransferInitiated',\n inputs: [\n {\n name: 'currentBot',\n type: 'address',\n indexed: true,\n internalType: 'address',\n },\n {\n name: 'newBot',\n type: 'address',\n indexed: true,\n internalType: 'address',\n },\n ],\n anonymous: false,\n },\n {\n type: 'event',\n name: 'Initialized',\n inputs: [\n {\n name: 'version',\n type: 'uint8',\n indexed: false,\n internalType: 'uint8',\n },\n ],\n anonymous: false,\n },\n {\n type: 'event',\n name: 'MiddleTokensAdded',\n inputs: [\n {\n name: 'tokens',\n type: 'address[]',\n indexed: false,\n internalType: 'address[]',\n },\n ],\n anonymous: false,\n },\n {\n type: 'event',\n name: 'MiddleTokensRemoved',\n inputs: [\n {\n name: 'tokens',\n type: 'address[]',\n indexed: false,\n internalType: 'address[]',\n },\n ],\n anonymous: false,\n },\n {\n type: 'event',\n name: 'OwnershipTransferred',\n inputs: [\n {\n name: 'previousOwner',\n type: 'address',\n indexed: true,\n internalType: 'address',\n },\n {\n name: 'newOwner',\n type: 'address',\n indexed: true,\n internalType: 'address',\n },\n ],\n anonymous: false,\n },\n {\n type: 'event',\n name: 'PoolAdapterNotSet',\n inputs: [\n {\n name: 'pool',\n type: 'address',\n indexed: true,\n internalType: 'address',\n },\n {\n name: 'poolType',\n type: 'uint24',\n indexed: true,\n internalType: 'uint24',\n },\n ],\n anonymous: false,\n },\n {\n type: 'event',\n name: 'PoolAdapterReset',\n inputs: [\n {\n name: 'poolType',\n type: 'uint24',\n indexed: true,\n internalType: 'uint24',\n },\n {\n name: 'newAdapter',\n type: 'address',\n indexed: true,\n internalType: 'address',\n },\n ],\n anonymous: false,\n },\n {\n type: 'event',\n name: 'PoolAdapterSet',\n inputs: [\n {\n name: 'poolType',\n type: 'uint24',\n indexed: true,\n internalType: 'uint24',\n },\n {\n name: 'adapter',\n type: 'address',\n indexed: true,\n internalType: 'address',\n },\n ],\n anonymous: false,\n },\n {\n type: 'event',\n name: 'PoolAdded',\n inputs: [\n {\n name: 'token0',\n type: 'address',\n indexed: true,\n internalType: 'address',\n },\n {\n name: 'token1',\n type: 'address',\n indexed: true,\n internalType: 'address',\n },\n {\n name: 'pool',\n type: 'address',\n indexed: false,\n internalType: 'address',\n },\n ],\n anonymous: false,\n },\n {\n type: 'event',\n name: 'PoolsRemoved',\n inputs: [\n {\n name: 'pools',\n type: 'address[]',\n indexed: false,\n internalType: 'address[]',\n },\n ],\n anonymous: false,\n },\n {\n type: 'event',\n name: 'ResetSplitNumber',\n inputs: [\n {\n name: 'newComplex',\n type: 'uint256',\n indexed: false,\n internalType: 'uint256',\n },\n {\n name: 'newSimple',\n type: 'uint256',\n indexed: false,\n internalType: 'uint256',\n },\n ],\n anonymous: false,\n },\n {\n type: 'error',\n name: 'AdapterNotFound',\n inputs: [],\n },\n {\n type: 'error',\n name: 'InvalidTokenAddress',\n inputs: [],\n },\n {\n type: 'error',\n name: 'LengthMismatch',\n inputs: [],\n },\n {\n type: 'error',\n name: 'OnlyBotCanCall',\n inputs: [],\n },\n {\n type: 'error',\n name: 'OnlyPendingBotCanAccept',\n inputs: [],\n },\n {\n type: 'error',\n name: 'PoolAdapterAlreadySet',\n inputs: [],\n },\n {\n type: 'error',\n name: 'PoolAdapterNotSet',\n inputs: [],\n },\n {\n type: 'error',\n name: 'SplitNumberError',\n inputs: [],\n },\n];\nclass Config__factory {\n static createInterface() {\n return new ethers_1.utils.Interface(_abi);\n }\n static connect(address, signerOrProvider) {\n return new ethers_1.Contract(address, _abi, signerOrProvider);\n }\n}\nexports.Config__factory = Config__factory;\nConfig__factory.abi = _abi;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.IWETH__factory = void 0;\nconst ethers_1 = require(\"ethers\");\nconst _abi = [\n {\n inputs: [],\n name: 'deposit',\n outputs: [],\n stateMutability: 'payable',\n type: 'function',\n },\n {\n inputs: [\n {\n name: 'amount',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n name: 'withdraw',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n];\nclass IWETH__factory {\n static createInterface() {\n return new ethers_1.utils.Interface(_abi);\n }\n static connect(address, signerOrProvider) {\n return new ethers_1.Contract(address, _abi, signerOrProvider);\n }\n}\nexports.IWETH__factory = IWETH__factory;\nIWETH__factory.abi = _abi;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.OysterAggregator__factory = void 0;\nconst ethers_1 = require(\"ethers\");\nconst _abi = [\n {\n type: 'constructor',\n inputs: [\n {\n name: 'weth',\n type: 'address',\n internalType: 'address payable',\n },\n {\n name: 'feeReceiver',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'initialOwner',\n type: 'address',\n internalType: 'address',\n },\n ],\n stateMutability: 'nonpayable',\n },\n {\n type: 'fallback',\n stateMutability: 'payable',\n },\n {\n type: 'receive',\n stateMutability: 'payable',\n },\n {\n type: 'function',\n name: '_WETH_',\n inputs: [],\n outputs: [\n {\n name: '',\n type: 'address',\n internalType: 'address',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'acceptOwnership',\n inputs: [],\n outputs: [],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'changeRouteFeeRate',\n inputs: [\n {\n name: 'newFeeRate',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n outputs: [],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'changeRouteFeeReceiver',\n inputs: [\n {\n name: 'newFeeReceiver',\n type: 'address',\n internalType: 'address',\n },\n ],\n outputs: [],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'mixSwap',\n inputs: [\n {\n name: 'fromToken',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'toToken',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'fromTokenAmount',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'minReturnAmount',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'mixAdapters',\n type: 'address[]',\n internalType: 'address[]',\n },\n {\n name: 'mixPairs',\n type: 'address[]',\n internalType: 'address[]',\n },\n {\n name: 'assetTo',\n type: 'address[]',\n internalType: 'address[]',\n },\n {\n name: 'directions',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'moreInfos',\n type: 'bytes[]',\n internalType: 'bytes[]',\n },\n {\n name: 'feeData',\n type: 'bytes',\n internalType: 'bytes',\n },\n {\n name: 'deadLine',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n outputs: [\n {\n name: 'receiveAmount',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n stateMutability: 'payable',\n },\n {\n type: 'function',\n name: 'multiSwap',\n inputs: [\n {\n name: 'fromTokenAmount',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'minReturnAmount',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'splitNumber',\n type: 'uint256[]',\n internalType: 'uint256[]',\n },\n {\n name: 'midToken',\n type: 'address[]',\n internalType: 'address[]',\n },\n {\n name: 'assetFrom',\n type: 'address[]',\n internalType: 'address[]',\n },\n {\n name: 'sequence',\n type: 'bytes[]',\n internalType: 'bytes[]',\n },\n {\n name: 'feeData',\n type: 'bytes',\n internalType: 'bytes',\n },\n {\n name: 'deadLine',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n outputs: [\n {\n name: 'receiveAmount',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n stateMutability: 'payable',\n },\n {\n type: 'function',\n name: 'owner',\n inputs: [],\n outputs: [\n {\n name: '',\n type: 'address',\n internalType: 'address',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'pendingOwner',\n inputs: [],\n outputs: [\n {\n name: '',\n type: 'address',\n internalType: 'address',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'renounceOwnership',\n inputs: [],\n outputs: [],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'routeFeeRate',\n inputs: [],\n outputs: [\n {\n name: '',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'routeFeeReceiver',\n inputs: [],\n outputs: [\n {\n name: '',\n type: 'address',\n internalType: 'address',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'superWithdraw',\n inputs: [\n {\n name: 'token',\n type: 'address',\n internalType: 'address',\n },\n ],\n outputs: [],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'totalWeight',\n inputs: [],\n outputs: [\n {\n name: '',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'transferOwnership',\n inputs: [\n {\n name: 'newOwner',\n type: 'address',\n internalType: 'address',\n },\n ],\n outputs: [],\n stateMutability: 'nonpayable',\n },\n {\n type: 'event',\n name: 'OrderHistory',\n inputs: [\n {\n name: 'fromToken',\n type: 'address',\n indexed: false,\n internalType: 'address',\n },\n {\n name: 'toToken',\n type: 'address',\n indexed: false,\n internalType: 'address',\n },\n {\n name: 'sender',\n type: 'address',\n indexed: false,\n internalType: 'address',\n },\n {\n name: 'fromAmount',\n type: 'uint256',\n indexed: false,\n internalType: 'uint256',\n },\n {\n name: 'returnAmount',\n type: 'uint256',\n indexed: false,\n internalType: 'uint256',\n },\n ],\n anonymous: false,\n },\n {\n type: 'event',\n name: 'OwnershipTransferStarted',\n inputs: [\n {\n name: 'previousOwner',\n type: 'address',\n indexed: true,\n internalType: 'address',\n },\n {\n name: 'newOwner',\n type: 'address',\n indexed: true,\n internalType: 'address',\n },\n ],\n anonymous: false,\n },\n {\n type: 'event',\n name: 'OwnershipTransferred',\n inputs: [\n {\n name: 'previousOwner',\n type: 'address',\n indexed: true,\n internalType: 'address',\n },\n {\n name: 'newOwner',\n type: 'address',\n indexed: true,\n internalType: 'address',\n },\n ],\n anonymous: false,\n },\n {\n type: 'error',\n name: 'BrokerFeeRateOverflowed',\n inputs: [],\n },\n {\n type: 'error',\n name: 'EthValueWrong',\n inputs: [],\n },\n {\n type: 'error',\n name: 'Expired',\n inputs: [],\n },\n {\n type: 'error',\n name: 'FeeReceiverInvalid',\n inputs: [],\n },\n {\n type: 'error',\n name: 'MinReturnAmountZero',\n inputs: [],\n },\n {\n type: 'error',\n name: 'NewFeeRateOverflowed',\n inputs: [],\n },\n {\n type: 'error',\n name: 'OwnerInvalid',\n inputs: [],\n },\n {\n type: 'error',\n name: 'PairAdapterNotMatch',\n inputs: [],\n },\n {\n type: 'error',\n name: 'PairAssetToNotMatch',\n inputs: [],\n },\n {\n type: 'error',\n name: 'PairsEmpty',\n inputs: [],\n },\n {\n type: 'error',\n name: 'ReturnAmountNotEnough',\n inputs: [],\n },\n {\n type: 'error',\n name: 'ReturnAmountZero',\n inputs: [],\n },\n {\n type: 'error',\n name: 'SplitAssetFromNotMatch',\n inputs: [],\n },\n {\n type: 'error',\n name: 'WethAddressInvalid',\n inputs: [],\n },\n];\nclass OysterAggregator__factory {\n static createInterface() {\n return new ethers_1.utils.Interface(_abi);\n }\n static connect(address, signerOrProvider) {\n return new ethers_1.Contract(address, _abi, signerOrProvider);\n }\n}\nexports.OysterAggregator__factory = OysterAggregator__factory;\nOysterAggregator__factory.abi = _abi;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.QuerySingleRoute__factory = void 0;\nconst ethers_1 = require(\"ethers\");\nconst _abi = [\n {\n type: 'constructor',\n inputs: [\n {\n name: '_config',\n type: 'address',\n internalType: 'contract Config',\n },\n ],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'config',\n inputs: [],\n outputs: [\n {\n name: '',\n type: 'address',\n internalType: 'contract Config',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'queryDirectRoute',\n inputs: [\n {\n name: 'fromToken',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'toToken',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'fromAmount',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'dexFlag',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n outputs: [\n {\n name: 'resAmount',\n type: 'tuple',\n internalType: 'struct LibTypes.ResultAmount',\n components: [\n {\n name: 'bestAmount',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'midPrice',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n },\n {\n name: 'bestPath',\n type: 'address[]',\n internalType: 'address[]',\n },\n {\n name: 'bestPoolPath',\n type: 'tuple[]',\n internalType: 'struct LibTypes.Pair[]',\n components: [\n {\n name: 'token0',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'token1',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'poolAddr',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'poolType',\n type: 'uint24',\n internalType: 'uint24',\n },\n {\n name: 'fee',\n type: 'uint128',\n internalType: 'uint128',\n },\n {\n name: 'swapType',\n type: 'uint8',\n internalType: 'enum LibTypes.SwapType',\n },\n ],\n },\n ],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'querySingleRoute',\n inputs: [\n {\n name: 'fromToken',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'toToken',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'fromAmount',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'dexFlag',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n outputs: [\n {\n name: 'resAmount',\n type: 'tuple',\n internalType: 'struct LibTypes.ResultAmount',\n components: [\n {\n name: 'bestAmount',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'midPrice',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n },\n {\n name: 'bestPath',\n type: 'address[]',\n internalType: 'address[]',\n },\n {\n name: 'bestPoolPath',\n type: 'tuple[]',\n internalType: 'struct LibTypes.Pair[]',\n components: [\n {\n name: 'token0',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'token1',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'poolAddr',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'poolType',\n type: 'uint24',\n internalType: 'uint24',\n },\n {\n name: 'fee',\n type: 'uint128',\n internalType: 'uint128',\n },\n {\n name: 'swapType',\n type: 'uint8',\n internalType: 'enum LibTypes.SwapType',\n },\n ],\n },\n ],\n stateMutability: 'nonpayable',\n },\n {\n type: 'error',\n name: 'InvalidPathLength',\n inputs: [],\n },\n];\nclass QuerySingleRoute__factory {\n static createInterface() {\n return new ethers_1.utils.Interface(_abi);\n }\n static connect(address, signerOrProvider) {\n return new ethers_1.Contract(address, _abi, signerOrProvider);\n }\n}\nexports.QuerySingleRoute__factory = QuerySingleRoute__factory;\nQuerySingleRoute__factory.abi = _abi;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.QuerySplitRoute__factory = void 0;\nconst ethers_1 = require(\"ethers\");\nconst _abi = [\n {\n type: 'constructor',\n inputs: [\n {\n name: '_config',\n type: 'address',\n internalType: 'contract Config',\n },\n ],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'config',\n inputs: [],\n outputs: [\n {\n name: '',\n type: 'address',\n internalType: 'contract Config',\n },\n ],\n stateMutability: 'view',\n },\n {\n type: 'function',\n name: 'querySplitRoute',\n inputs: [\n {\n name: 'fromToken',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'toToken',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'fromAmount',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'isDirect',\n type: 'bool',\n internalType: 'bool',\n },\n {\n name: 'dexFlagAndSplits',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'specifiedMiddleToken',\n type: 'address',\n internalType: 'address',\n },\n ],\n outputs: [\n {\n name: 'resAmount',\n type: 'tuple',\n internalType: 'struct LibTypes.ResultAmount',\n components: [\n {\n name: 'bestAmount',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'midPrice',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n },\n {\n name: 'bestPathInfo',\n type: 'tuple',\n internalType: 'struct LibTypes.SplitPathInfo',\n components: [\n {\n name: 'tokens',\n type: 'address[]',\n internalType: 'address[]',\n },\n {\n name: 'oneHops',\n type: 'tuple[]',\n internalType: 'struct LibTypes.OneHop[]',\n components: [\n {\n name: 'pools',\n type: 'tuple[]',\n internalType: 'struct LibTypes.Pair[]',\n components: [\n {\n name: 'token0',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'token1',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'poolAddr',\n type: 'address',\n internalType: 'address',\n },\n {\n name: 'poolType',\n type: 'uint24',\n internalType: 'uint24',\n },\n {\n name: 'fee',\n type: 'uint128',\n internalType: 'uint128',\n },\n {\n name: 'swapType',\n type: 'uint8',\n internalType: 'enum LibTypes.SwapType',\n },\n ],\n },\n {\n name: 'weights',\n type: 'uint256[]',\n internalType: 'uint256[]',\n },\n ],\n },\n {\n name: 'finalAmountOut',\n type: 'uint256',\n internalType: 'uint256',\n },\n {\n name: 'isValid',\n type: 'bool',\n internalType: 'bool',\n },\n ],\n },\n ],\n stateMutability: 'nonpayable',\n },\n {\n type: 'function',\n name: 'splits',\n inputs: [],\n outputs: [\n {\n name: '',\n type: 'uint256',\n internalType: 'uint256',\n },\n ],\n stateMutability: 'view',\n },\n];\nclass QuerySplitRoute__factory {\n static createInterface() {\n return new ethers_1.utils.Interface(_abi);\n }\n static connect(address, signerOrProvider) {\n return new ethers_1.Contract(address, _abi, signerOrProvider);\n }\n}\nexports.QuerySplitRoute__factory = QuerySplitRoute__factory;\nQuerySplitRoute__factory.abi = _abi;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.QuerySplitRoute__factory = exports.QuerySingleRoute__factory = exports.OysterAggregator__factory = exports.Config__factory = void 0;\nvar Config__factory_1 = require(\"./Config__factory\");\nObject.defineProperty(exports, \"Config__factory\", { enumerable: true, get: function () { return Config__factory_1.Config__factory; } });\nvar OysterAggregator__factory_1 = require(\"./OysterAggregator__factory\");\nObject.defineProperty(exports, \"OysterAggregator__factory\", { enumerable: true, get: function () { return OysterAggregator__factory_1.OysterAggregator__factory; } });\nvar QuerySingleRoute__factory_1 = require(\"./QuerySingleRoute__factory\");\nObject.defineProperty(exports, \"QuerySingleRoute__factory\", { enumerable: true, get: function () { return QuerySingleRoute__factory_1.QuerySingleRoute__factory; } });\nvar QuerySplitRoute__factory_1 = require(\"./QuerySplitRoute__factory\");\nObject.defineProperty(exports, \"QuerySplitRoute__factory\", { enumerable: true, get: function () { return QuerySplitRoute__factory_1.QuerySplitRoute__factory; } });\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || (function () {\n var ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n };\n return function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.IWETH__factory = exports.QuerySplitRoute__factory = exports.QuerySingleRoute__factory = exports.OysterAggregator__factory = exports.Config__factory = exports.factories = void 0;\nexports.factories = __importStar(require(\"./factories\"));\nvar Config__factory_1 = require(\"./factories/Config__factory\");\nObject.defineProperty(exports, \"Config__factory\", { enumerable: true, get: function () { return Config__factory_1.Config__factory; } });\nvar OysterAggregator__factory_1 = require(\"./factories/OysterAggregator__factory\");\nObject.defineProperty(exports, \"OysterAggregator__factory\", { enumerable: true, get: function () { return OysterAggregator__factory_1.OysterAggregator__factory; } });\nvar QuerySingleRoute__factory_1 = require(\"./factories/QuerySingleRoute__factory\");\nObject.defineProperty(exports, \"QuerySingleRoute__factory\", { enumerable: true, get: function () { return QuerySingleRoute__factory_1.QuerySingleRoute__factory; } });\nvar QuerySplitRoute__factory_1 = require(\"./factories/QuerySplitRoute__factory\");\nObject.defineProperty(exports, \"QuerySplitRoute__factory\", { enumerable: true, get: function () { return QuerySplitRoute__factory_1.QuerySplitRoute__factory; } });\nvar IWETH__factory_1 = require(\"./factories/IWETH__factory\");\nObject.defineProperty(exports, \"IWETH__factory\", { enumerable: true, get: function () { return IWETH__factory_1.IWETH__factory; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PoolType = exports.SwapType = exports.QueryType = void 0;\nvar QueryType;\n(function (QueryType) {\n QueryType[QueryType[\"SINGLE_ROUTE\"] = 0] = \"SINGLE_ROUTE\";\n QueryType[QueryType[\"SPLIT_ROUTE\"] = 1] = \"SPLIT_ROUTE\";\n})(QueryType || (exports.QueryType = QueryType = {}));\nvar SwapType;\n(function (SwapType) {\n SwapType[SwapType[\"INVALID\"] = 0] = \"INVALID\";\n SwapType[SwapType[\"ADAPTER\"] = 1] = \"ADAPTER\";\n SwapType[SwapType[\"DIRECT\"] = 2] = \"DIRECT\";\n})(SwapType || (exports.SwapType = SwapType = {}));\nvar PoolType;\n(function (PoolType) {\n PoolType[PoolType[\"PANCAKE_V3\"] = 1] = \"PANCAKE_V3\";\n PoolType[PoolType[\"UNISWAP_V3\"] = 2] = \"UNISWAP_V3\";\n PoolType[PoolType[\"UNISWAP_V2\"] = 3] = \"UNISWAP_V2\";\n PoolType[PoolType[\"AERODROME_V3\"] = 4] = \"AERODROME_V3\";\n PoolType[PoolType[\"AERODROME_V2\"] = 5] = \"AERODROME_V2\";\n PoolType[PoolType[\"SUSHISWAP_V3\"] = 6] = \"SUSHISWAP_V3\";\n PoolType[PoolType[\"ALB_V3\"] = 7] = \"ALB_V3\";\n})(PoolType || (exports.PoolType = PoolType = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toWrappedETH = toWrappedETH;\nexports.zeroToETHForSwap = zeroToETHForSwap;\nexports.fromWei = fromWei;\nexports.toWei = toWei;\nexports.fitPoolCurves = fitPoolCurves;\nexports.analyzePoolLiquidity = analyzePoolLiquidity;\nexports.adjustLiquidityResults = adjustLiquidityResults;\nexports.getDexFlag = getDexFlag;\nexports.getDexFlagAndSplits = getDexFlagAndSplits;\nconst context_1 = require(\"@derivation-tech/context\");\nconst constants_1 = require(\"./constants\");\nconst ethers_1 = require(\"ethers\");\nconst utils_1 = require(\"ethers/lib/utils\");\nfunction toWrappedETH(ctx, tokenAddress) {\n return tokenAddress.toLowerCase() === context_1.ZERO_ADDRESS.toLowerCase() ? ctx.wrappedNativeToken.address : tokenAddress;\n}\nfunction zeroToETHForSwap(tokenAddress) {\n return tokenAddress.toLowerCase() == context_1.ZERO_ADDRESS.toLocaleLowerCase() ? constants_1.ETH_ADDRESS : tokenAddress;\n}\nfunction fromWei(amount, decimals = 18) {\n return Number((0, context_1.formatUnits)(amount, decimals));\n}\nfunction toWei(amount, decimals = 18) {\n return (0, utils_1.parseUnits)(amount.toFixed(decimals), decimals);\n}\nasync function fitPoolCurves(config, pool, poolType, token0Balance, token1Balance, token0Decimal, token1Decimal, ratio = 0.5, steps = 50, batchSize = 10, blockTag) {\n const token0Bal = fromWei(token0Balance, token0Decimal);\n const token1Bal = fromWei(token1Balance, token1Decimal);\n const maxToken0In = token0Bal * ratio;\n const maxToken1In = token1Bal * ratio;\n const token0Step = maxToken0In / steps;\n const token1Step = maxToken1In / steps;\n let token0Inputs = [toWei(token0Bal * 0.0001, token0Decimal).toString()].concat(Array.from({ length: steps }, (_, i) => toWei(token0Step * (i + 1), token0Decimal).toString()));\n let token1Inputs = [toWei(token1Bal * 0.0001, token1Decimal).toString()].concat(Array.from({ length: steps }, (_, i) => toWei(token1Step * (i + 1), token1Decimal).toString()));\n let sellAmountsOut = [];\n let buyAmountsOut = [];\n for (let i = 0; i < token0Inputs.length; i += batchSize) {\n const batchInputs = token0Inputs.slice(i, i + batchSize);\n const batchResults = await config.callStatic\n .getAmountsOut(pool, poolType, true, batchInputs, { blockTag })\n .catch((err) => {\n throw err;\n });\n sellAmountsOut = sellAmountsOut.concat(batchResults);\n }\n for (let i = 0; i < token1Inputs.length; i += batchSize) {\n const batchInputs = token1Inputs.slice(i, i + batchSize);\n const batchResults = await config.callStatic\n .getAmountsOut(pool, poolType, false, batchInputs, { blockTag })\n .catch((err) => {\n throw err;\n });\n buyAmountsOut = buyAmountsOut.concat(batchResults);\n }\n const [filteredToken0Inputs, filteredSellAmountsOut] = (() => {\n let cutoffIndex = token0Inputs.length;\n for (let i = 1; i < token0Inputs.length; i++) {\n if (ethers_1.BigNumber.from(sellAmountsOut[i]).eq(ethers_1.BigNumber.from(sellAmountsOut[i - 1]))) {\n cutoffIndex = i;\n break;\n }\n }\n return [token0Inputs.slice(0, cutoffIndex), sellAmountsOut.slice(0, cutoffIndex)];\n })();\n const [filteredToken1Inputs, filteredBuyAmountsOut] = (() => {\n let cutoffIndex = token1Inputs.length;\n for (let i = 1; i < token1Inputs.length; i++) {\n if (ethers_1.BigNumber.from(buyAmountsOut[i]).eq(ethers_1.BigNumber.from(buyAmountsOut[i - 1]))) {\n cutoffIndex = i;\n break;\n }\n }\n return [token1Inputs.slice(0, cutoffIndex), buyAmountsOut.slice(0, cutoffIndex)];\n })();\n token0Inputs = filteredToken0Inputs;\n token1Inputs = filteredToken1Inputs;\n sellAmountsOut = filteredSellAmountsOut;\n buyAmountsOut = filteredBuyAmountsOut;\n const sellPoints = token0Inputs\n .map((amountInWei, i) => {\n const amountIn = fromWei(ethers_1.BigNumber.from(amountInWei), token0Decimal);\n const amountOut = fromWei(ethers_1.BigNumber.from(sellAmountsOut[i]), token1Decimal);\n const price = amountOut / amountIn;\n return [price, amountOut];\n })\n .filter((point, i, arr) => {\n if (i === 0)\n return true;\n return point[0] < arr[i - 1][0] && point[1] > arr[i - 1][1];\n });\n const buyPoints = token1Inputs\n .map((amountInWei, i) => {\n const amountIn = fromWei(ethers_1.BigNumber.from(amountInWei), token1Decimal);\n const amountOut = fromWei(ethers_1.BigNumber.from(buyAmountsOut[i]), token0Decimal);\n const price = amountIn / amountOut;\n return [price, amountOut];\n })\n .filter((point, i, arr) => {\n if (i === 0)\n return true;\n return point[0] > arr[i - 1][0] && point[1] > arr[i - 1][1];\n });\n const sellPricePoints = sellPoints.map((p) => [p[0], p[1]]);\n const buyPricePoints = buyPoints.map((p) => [p[0], p[1]]);\n const sellCurves = calculateSplineParams(sellPricePoints);\n const buyCurves = calculateSplineParams(buyPricePoints);\n return {\n sellCurves,\n buyCurves,\n };\n}\nfunction calculateSplineParams(points) {\n const x = points.map((p) => p[0]);\n const a = points.map((p) => p[1]);\n const n = x.length - 1;\n const h = new Array(n);\n const A = new Array(n);\n const l = new Array(n + 1);\n const u = new Array(n);\n const z = new Array(n + 1);\n const c = new Array(n + 1);\n const b = new Array(n);\n const d = new Array(n);\n for (let i = 0; i < n; i++) {\n h[i] = x[i + 1] - x[i];\n }\n for (let i = 1; i < n; i++) {\n A[i] = (3 * (a[i + 1] - a[i])) / h[i] - (3 * (a[i] - a[i - 1])) / h[i - 1];\n }\n l[0] = 1;\n u[0] = 0;\n z[0] = 0;\n for (let i = 1; i < n; i++) {\n l[i] = 2 * (x[i + 1] - x[i - 1]) - h[i - 1] * u[i - 1];\n u[i] = h[i] / l[i];\n z[i] = (A[i] - h[i - 1] * z[i - 1]) / l[i];\n }\n l[n] = 1;\n z[n] = 0;\n c[n] = 0;\n for (let j = n - 1; j >= 0; j--) {\n c[j] = z[j] - u[j] * c[j + 1];\n b[j] = (a[j + 1] - a[j]) / h[j] - (h[j] * (c[j + 1] + 2 * c[j])) / 3;\n d[j] = (c[j + 1] - c[j]) / (3 * h[j]);\n }\n return points.slice(0, -1).map((_, i) => ({\n range: {\n min: x[i],\n max: x[i + 1],\n },\n coefficients: [a[i], b[i], c[i], d[i]],\n }));\n}\nfunction analyzePoolLiquidity(pools, allPoolCurves, testPrices, isBuy) {\n const results = testPrices.map((price) => {\n const poolAmounts = pools.map((pool) => {\n if (isBuy) {\n const curves = allPoolCurves[pools.indexOf(pool)].buyCurves;\n const maxPriceCurve = curves.reduce((max, curve) => (curve.range.max > (max?.range.max || -Infinity) ? curve : max), curves[0]);\n for (const curve of curves) {\n const amount0 = getAmountOutFromPrice(price, curve);\n if (amount0 !== null) {\n const amount1 = amount0 * price;\n return { pool, amount0, amount1 };\n }\n }\n if (price > maxPriceCurve.range.max) {\n const amount0 = getAmountOutFromPrice(maxPriceCurve.range.max, maxPriceCurve);\n if (amount0 !== null) {\n const amount1 = amount0 * maxPriceCurve.range.max;\n return { pool, amount0, amount1 };\n }\n }\n }\n else {\n const curves = allPoolCurves[pools.indexOf(pool)].sellCurves;\n const minPriceCurve = curves.reduce((min, curve) => (curve.range.min < (min?.range.min || Infinity) ? curve : min), curves[0]);\n for (const curve of curves) {\n const amount1 = getAmountOutFromPrice(price, curve);\n if (amount1 !== null) {\n const amount0 = amount1 / price;\n return { pool, amount0, amount1 };\n }\n }\n if (price < minPriceCurve.range.min) {\n const amount1 = getAmountOutFromPrice(minPriceCurve.range.min, minPriceCurve);\n if (amount1 !== null) {\n const amount0 = amount1 / minPriceCurve.range.min;\n return { pool, amount0, amount1 };\n }\n }\n }\n return { pool, amount0: 0, amount1: 0 };\n });\n return {\n price,\n poolAmounts,\n };\n });\n return results;\n}\nfunction getAmountOutFromPrice(price, curve) {\n const [a, b, c, d] = curve.coefficients;\n const lower = Math.min(curve.range.min, curve.range.max);\n const upper = Math.max(curve.range.min, curve.range.max);\n const x0 = curve.range.min;\n const dx = price - x0;\n const amountOut = a + b * dx + c * dx * dx + d * dx * dx * dx;\n if (price >= lower && price <= upper) {\n return amountOut;\n }\n return null;\n}\nfunction adjustLiquidityResults(results, isBuy) {\n const sortedResults = [...results].sort((a, b) => (isBuy ? a.price - b.price : b.price - a.price));\n const poolMap = new Map();\n sortedResults[0].poolAmounts.forEach(({ pool }) => {\n poolMap.set(pool, {\n maxAmount: isBuy\n ? sortedResults[0].poolAmounts.find((p) => p.pool === pool)?.amount0 || 0\n : sortedResults[0].poolAmounts.find((p) => p.pool === pool)?.amount1 || 0,\n lastValidIndex: 0,\n });\n });\n for (let i = 1; i < sortedResults.length; i++) {\n sortedResults[i].poolAmounts.forEach(({ pool, amount0, amount1 }) => {\n const poolData = poolMap.get(pool);\n if (!poolData)\n return;\n const currentAmount = isBuy ? amount0 : amount1;\n if (currentAmount > poolData.maxAmount) {\n poolData.maxAmount = currentAmount;\n poolData.lastValidIndex = i;\n }\n });\n }\n poolMap.forEach((poolData, pool) => {\n for (let i = poolData.lastValidIndex + 1; i < sortedResults.length; i++) {\n const poolAmount = sortedResults[i].poolAmounts.find((p) => p.pool === pool);\n if (poolAmount) {\n if (isBuy) {\n poolAmount.amount0 = poolData.maxAmount;\n }\n else {\n poolAmount.amount1 = poolData.maxAmount;\n }\n }\n }\n });\n return sortedResults;\n}\nfunction getDexFlag(poolTypes) {\n return poolTypes.reduce((acc, poolType) => acc.or(context_1.ONE.shl(poolType)), context_1.ZERO);\n}\nfunction getDexFlagAndSplits(poolTypes, splitNumber = 0) {\n const maxSplitNumber = 127;\n if (poolTypes.length > maxSplitNumber) {\n throw new Error(`poolTypes length must be less than ${maxSplitNumber}`);\n }\n return getDexFlag(poolTypes).or(ethers_1.BigNumber.from(splitNumber).shl(maxSplitNumber));\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fundingChartDataLength = exports.blockInterval = void 0;\nconst enum_1 = require(\"./enum\");\nexports.blockInterval = {\n BLAST: 2,\n BASE: 2,\n};\nexports.fundingChartDataLength = new Map([\n [enum_1.FundingChartInterval.HOUR, 72],\n [enum_1.FundingChartInterval.EIGHT_HOUR, 42],\n]);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.KlineInterval = exports.FundingChartInterval = exports.VirtualTradeType = exports.OrderStatus = void 0;\nvar OrderStatus;\n(function (OrderStatus) {\n OrderStatus[\"OPEN\"] = \"OPEN\";\n OrderStatus[\"FILLED\"] = \"FILLED\";\n OrderStatus[\"CANCELLED\"] = \"CANCELLED\";\n})(OrderStatus || (exports.OrderStatus = OrderStatus = {}));\nvar VirtualTradeType;\n(function (VirtualTradeType) {\n VirtualTradeType[\"MARKET\"] = \"MARKET\";\n VirtualTradeType[\"LIMIT\"] = \"LIMIT\";\n VirtualTradeType[\"RANGE\"] = \"RANGE\";\n VirtualTradeType[\"LIQUIDATION\"] = \"LIQUIDATION\";\n VirtualTradeType[\"TAKE_OVER\"] = \"TAKE_OVER\";\n})(VirtualTradeType || (exports.VirtualTradeType = VirtualTradeType = {}));\nvar FundingChartInterval;\n(function (FundingChartInterval) {\n FundingChartInterval[\"HOUR\"] = \"1h\";\n FundingChartInterval[\"EIGHT_HOUR\"] = \"8h\";\n})(FundingChartInterval || (exports.FundingChartInterval = FundingChartInterval = {}));\nvar KlineInterval;\n(function (KlineInterval) {\n KlineInterval[\"MINUTE\"] = \"1m\";\n KlineInterval[\"FIVE_MINUTE\"] = \"5m\";\n KlineInterval[\"FIFTEEN_MINUTE\"] = \"15m\";\n KlineInterval[\"THIRTY_MINUTE\"] = \"30m\";\n KlineInterval[\"HOUR\"] = \"1h\";\n KlineInterval[\"FOUR_HOUR\"] = \"4h\";\n KlineInterval[\"WEEK\"] = \"1w\";\n KlineInterval[\"DAY\"] = \"1d\";\n})(KlineInterval || (exports.KlineInterval = KlineInterval = {}));\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./theGraphError\"), exports);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TheGraphError = void 0;\nconst sdks_perp_1 = require(\"@synfutures/sdks-perp\");\nclass TheGraphError extends sdks_perp_1.SynfError {\n constructor(message) {\n super(message);\n this.name = 'TheGraph';\n }\n}\nexports.TheGraphError = TheGraphError;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nvar __importStar = (this && this.__importStar) || (function () {\n var ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n };\n return function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.utils = void 0;\n__exportStar(require(\"./modules\"), exports);\n__exportStar(require(\"./constants\"), exports);\n__exportStar(require(\"./enum\"), exports);\n__exportStar(require(\"./types\"), exports);\nexports.utils = __importStar(require(\"./utils\"));\n__exportStar(require(\"./errors\"), exports);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DataSourceModule = void 0;\nconst graph_1 = require(\"@derivation-tech/context/dist/utils/graph\");\nconst dataSource_1 = require(\"./dataSource\");\nconst inverse_1 = require(\"./inverse\");\nclass DataSourceModule extends graph_1.Graph {\n constructor(ctx, options) {\n super(options.endpoint, options.retryOption);\n this.ctx = ctx;\n this.depth = options.inverse ? new inverse_1.InverseDepth(this) : new dataSource_1.Depth(this);\n this.funding = new dataSource_1.Funding(this);\n this.history = options.inverse ? new inverse_1.InverseHistory(this) : new dataSource_1.History(this);\n this.kline = options.inverse ? new inverse_1.InverseKline(this) : new dataSource_1.Kline(this);\n this.liquidity = options.inverse ? new inverse_1.InverseLiquidity(this) : new dataSource_1.Liquidity(this);\n this.volume = new dataSource_1.Volume(this);\n this.statistics = new dataSource_1.Statistics(this);\n this.user = new dataSource_1.User(this);\n }\n}\nexports.DataSourceModule = DataSourceModule;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.perpDataSourcePlugin = void 0;\nconst dataSource_module_1 = require(\"./dataSource.module\");\nconst perpDataSourcePlugin = (options) => {\n return {\n install(ctx) {\n ctx.perpDataSource = new dataSource_module_1.DataSourceModule(ctx, options);\n },\n };\n};\nexports.perpDataSourcePlugin = perpDataSourcePlugin;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Depth = void 0;\nconst ethers_1 = require(\"ethers\");\nconst context_1 = require(\"@derivation-tech/context\");\nconst sdks_perp_1 = require(\"@synfutures/sdks-perp\");\nconst utils_1 = require(\"../../utils\");\nclass Depth {\n constructor(dataSource) {\n this.dataSource = dataSource;\n }\n get ctx() {\n return this.dataSource.ctx;\n }\n _page(currTick, tick, pageAdjustmentDelta, size, right) {\n const adjustedCurrTick = currTick - pageAdjustmentDelta;\n let tmp;\n if (right) {\n tmp = tick - adjustedCurrTick;\n }\n else {\n tmp = adjustedCurrTick - tick;\n }\n if (tmp <= 0)\n return 0;\n const page = right ? Math.ceil(tmp / size) - 1 : Math.ceil(tmp / size) - (pageAdjustmentDelta == 0 ? 1 : 0);\n return page;\n }\n buildDepthChartData(currPX96, currLiquidity, currTick, tickDelta, tick2Pearl, size, length, pageAdjustmentDelta, right) {\n const ret = [];\n const page2BaseSize = new Map();\n const lastPageTick = new Map();\n for (let tick = currTick; right ? tick < currTick + tickDelta : tick > currTick - tickDelta; right ? (tick += 1) : (tick -= 1)) {\n const page = this._page(currTick, tick, pageAdjustmentDelta, size, right);\n if (page >= length)\n break;\n lastPageTick.set(page, tick);\n const pearl = tick2Pearl.get(tick);\n let currBaseSize = page2BaseSize.get(page) ?? context_1.ZERO;\n if (pearl) {\n if ((right && pearl.left.isNegative()) || (!right && pearl.left.gt(0))) {\n currBaseSize = pearl.left.abs().add(currBaseSize);\n }\n const targetPX96 = sdks_perp_1.TickMath.getSqrtRatioAtTick(tick);\n currBaseSize = currBaseSize.add(sdks_perp_1.SqrtPriceMath.getDeltaBase(currPX96, targetPX96, currLiquidity, false));\n currPX96 = targetPX96;\n if (!pearl.liquidityNet.isZero()) {\n currLiquidity = currLiquidity.add(pearl.liquidityNet.mul(right ? 1 : -1));\n }\n page2BaseSize.set(page, currBaseSize);\n }\n else if (tick % size === 0) {\n const targetPX96 = sdks_perp_1.TickMath.getSqrtRatioAtTick(tick);\n currBaseSize = currBaseSize.add(sdks_perp_1.SqrtPriceMath.getDeltaBase(currPX96, targetPX96, currLiquidity, !right).abs());\n currPX96 = targetPX96;\n page2BaseSize.set(page, currBaseSize);\n }\n }\n for (const [page, baseSize] of page2BaseSize) {\n const tick = lastPageTick.get(page);\n const price = (0, utils_1.fromWad)(sdks_perp_1.TickMath.getWadAtTick(tick));\n const base = (0, utils_1.fromWad)(baseSize);\n ret.push({ tick, price, base });\n }\n return ret;\n }\n getDepthRangeDataByLiquidityDetails(liquidityDetails, size, stepRatio, isInverse = false, lowerPrice, upperPrice) {\n let pageAdjustmentDelta = 0;\n if (liquidityDetails.amm.tick % size !== 0) {\n pageAdjustmentDelta =\n liquidityDetails.amm.tick > 0\n ? liquidityDetails.amm.tick % size\n : size - (-liquidityDetails.amm.tick % size);\n }\n const maxTick = liquidityDetails.tids.reduce((prev, curr) => (prev > curr ? prev : curr));\n const minTick = liquidityDetails.tids.reduce((prev, curr) => (prev < curr ? prev : curr));\n const bnMin = (left, right) => (left.gt(right) ? right : left);\n let minPriceDelta;\n if (!isInverse) {\n minPriceDelta = bnMin(sdks_perp_1.TickMath.getWadAtTick(maxTick).sub(sdks_perp_1.TickMath.getWadAtTick(liquidityDetails.amm.tick)), sdks_perp_1.TickMath.getWadAtTick(liquidityDetails.amm.tick).sub(sdks_perp_1.TickMath.getWadAtTick(minTick)));\n }\n else {\n minPriceDelta = bnMin(sdks_perp_1.TickMath.getWadAtTick(-liquidityDetails.amm.tick).sub(sdks_perp_1.TickMath.getWadAtTick(-maxTick)), sdks_perp_1.TickMath.getWadAtTick(-minTick).sub(sdks_perp_1.TickMath.getWadAtTick(-liquidityDetails.amm.tick)));\n lowerPrice = (0, sdks_perp_1.wdiv)(context_1.WAD, sdks_perp_1.TickMath.getWadAtTick(-liquidityDetails.amm.tick).add(minPriceDelta));\n upperPrice = (0, sdks_perp_1.wdiv)(context_1.WAD, sdks_perp_1.TickMath.getWadAtTick(-liquidityDetails.amm.tick).sub(minPriceDelta));\n }\n const rightTickDelta = upperPrice\n ? sdks_perp_1.TickMath.getTickAtPWad(upperPrice) - liquidityDetails.amm.tick\n : sdks_perp_1.TickMath.getTickAtPWad(sdks_perp_1.TickMath.getWadAtTick(liquidityDetails.amm.tick).add(minPriceDelta)) -\n liquidityDetails.amm.tick;\n const rightLength = Number(sdks_perp_1.TickMath.getWadAtTick(rightTickDelta).div(ethers_1.BigNumber.from(10).pow(14)).div(stepRatio).toString());\n const right = this.buildDepthChartData(liquidityDetails.amm.sqrtPX96, liquidityDetails.amm.liquidity, liquidityDetails.amm.tick, rightTickDelta, liquidityDetails.tick2Pearl, size, rightLength, pageAdjustmentDelta, true);\n const leftTickDelta = lowerPrice\n ? liquidityDetails.amm.tick - sdks_perp_1.TickMath.getTickAtPWad(lowerPrice)\n : liquidityDetails.amm.tick -\n sdks_perp_1.TickMath.getTickAtPWad(sdks_perp_1.TickMath.getWadAtTick(liquidityDetails.amm.tick).sub(minPriceDelta));\n const leftLength = Number(sdks_perp_1.TickMath.getWadAtTick(leftTickDelta).div(ethers_1.BigNumber.from(10).pow(14)).div(stepRatio).toString());\n const left = this.buildDepthChartData(liquidityDetails.amm.sqrtPX96, liquidityDetails.amm.liquidity, liquidityDetails.amm.tick, leftTickDelta, liquidityDetails.tick2Pearl, size, leftLength, pageAdjustmentDelta, false);\n return { left, right };\n }\n async getDepthRangeData(instrumentAddr, expiry, stepRatio, isInverse = false, lowerPrice, upperPrice, overrides) {\n const tickDelta = sdks_perp_1.TICK_DELTA_MAX * 2;\n const size = sdks_perp_1.utils.alphaWadToTickDelta((0, sdks_perp_1.r2w)(Math.round(stepRatio + sdks_perp_1.RATIO_BASE)));\n const liquidityDetails = await this.ctx.perp._observer.getLiquidityDetails(instrumentAddr, expiry, tickDelta, overrides ?? {});\n return this.getDepthRangeDataByLiquidityDetails(liquidityDetails, size, stepRatio, isInverse, lowerPrice, upperPrice);\n }\n getDepthDataByLiquidityDetails(liquidityDetails, size, tickDelta, length = 10) {\n let pageAdjustmentDelta = 0;\n if (liquidityDetails.amm.tick % size !== 0) {\n pageAdjustmentDelta =\n liquidityDetails.amm.tick > 0\n ? liquidityDetails.amm.tick % size\n : size - (-liquidityDetails.amm.tick % size);\n }\n const right = this.buildDepthChartData(liquidityDetails.amm.sqrtPX96, liquidityDetails.amm.liquidity, liquidityDetails.amm.tick, tickDelta, liquidityDetails.tick2Pearl, size, length, pageAdjustmentDelta, true);\n const left = this.buildDepthChartData(liquidityDetails.amm.sqrtPX96, liquidityDetails.amm.liquidity, liquidityDetails.amm.tick, tickDelta, liquidityDetails.tick2Pearl, size, length, pageAdjustmentDelta, false);\n return { left, right };\n }\n async getDepthData(instrumentAddr, expiry, stepRatio, length = 10, overrides) {\n let tickDelta = sdks_perp_1.utils.alphaWadToTickDelta((0, sdks_perp_1.r2w)(Math.round(1.1 * stepRatio * length + sdks_perp_1.RATIO_BASE)));\n tickDelta = Math.ceil(tickDelta / length) * length;\n const size = sdks_perp_1.utils.alphaWadToTickDelta((0, sdks_perp_1.r2w)(stepRatio + sdks_perp_1.RATIO_BASE));\n const liquidityDetails = await this.ctx.perp._observer.getLiquidityDetails(instrumentAddr, expiry, tickDelta, overrides ?? {});\n return this.getDepthDataByLiquidityDetails(liquidityDetails, size, tickDelta, length);\n }\n}\nexports.Depth = Depth;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Funding = void 0;\nconst ethers_1 = require(\"ethers\");\nconst async_retry_1 = __importDefault(require(\"async-retry\"));\nconst node_fetch_1 = __importDefault(require(\"node-fetch\"));\nconst context_1 = require(\"@derivation-tech/context\");\nconst sdks_perp_1 = require(\"@synfutures/sdks-perp\");\nconst utils_1 = require(\"../../utils\");\nconst constants_1 = require(\"../../constants\");\nconst errors_1 = require(\"../../errors\");\nclass Funding {\n constructor(dataSource) {\n this.dataSource = dataSource;\n }\n get ctx() {\n return this.dataSource.ctx;\n }\n async getBlockNumberBefore(timestamp) {\n const blockNumber = await this.ctx.provider.getBlockNumber();\n const key = this.ctx.chainName.toUpperCase();\n return blockNumber - Math.ceil(((0, context_1.now)() - timestamp) / constants_1.blockInterval[key]);\n }\n async getLastHourFundingRate(amm, ts) {\n const timestamp = ts ?? (0, context_1.now)();\n const latestFundingIndex = sdks_perp_1.utils.lowLevel.updateFundingIndex(amm, amm.markPrice, timestamp);\n const timestmapBefore = timestamp - 3600;\n const instrumentBefore = await this.ctx.perp._observer.getInstrument({\n instrument: amm.instrumentAddr,\n expiries: [amm.expiry],\n }, {\n blockTag: await this.getBlockNumberBefore(timestmapBefore),\n });\n const ammBefore = instrumentBefore?.amms.get(amm.expiry);\n if (!ammBefore) {\n return {\n timestamp,\n longFundingRate: context_1.ZERO,\n shortFundingRate: context_1.ZERO,\n };\n }\n const beforeFundingIndex = sdks_perp_1.utils.lowLevel.updateFundingIndex(ammBefore, ammBefore.markPrice, timestmapBefore);\n const longFundingRate = (0, sdks_perp_1.wdiv)(latestFundingIndex.longFundingIndex.sub(beforeFundingIndex.longFundingIndex), amm.markPrice);\n const shortFundingRate = (0, sdks_perp_1.wdiv)(latestFundingIndex.shortFundingIndex.sub(beforeFundingIndex.shortFundingIndex), amm.markPrice);\n return {\n timestamp,\n longFundingRate,\n shortFundingRate,\n };\n }\n async getHourlyFundingDataList(instrumentAddr, expiry, timestamp = (0, context_1.now)(), numDays = 15) {\n const fn = (str) => `\"${str}\"`;\n const hourId = (0, utils_1.hourIdFromTimestamp)(timestamp);\n const nDaysAgoHourId = hourId - numDays * 24 * context_1.SECS_PER_HOUR;\n const PAYLOAD_SIZE = 20;\n const result = [];\n const temp = [];\n for (let i = hourId; i >= nDaysAgoHourId; i -= PAYLOAD_SIZE * context_1.SECS_PER_HOUR) {\n let graphQL = `{`;\n for (let j = 0; j < PAYLOAD_SIZE && i - j * context_1.SECS_PER_HOUR >= nDaysAgoHourId; j++) {\n const currentHourId = i - j * context_1.SECS_PER_HOUR;\n const ammId = `${fn((0, utils_1.concatId)((0, utils_1.concatId)(instrumentAddr, expiry), currentHourId).toLowerCase())}`;\n graphQL += `\n a${currentHourId}: hourlyAmmData(id: ${ammId}) {\n id\n timestamp\n firstFundingIndex\n lastFundingIndex\n firstMarkPrice\n lastMarkPrice\n }`;\n }\n graphQL += `}`;\n const graphql = JSON.stringify({\n query: `${graphQL}`,\n });\n const opts = {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: graphql,\n redirect: 'follow',\n timeout: 100000,\n };\n const resp = await (0, async_retry_1.default)(async () => {\n const response = await (0, node_fetch_1.default)(this.dataSource.endpoint, opts);\n const json = await response.json();\n if (!json.data || json.errors) {\n throw new errors_1.TheGraphError('Subgraph query error' + JSON.stringify(json.errors));\n }\n return json.data;\n }, this.dataSource.retryOption);\n for (const key in resp) {\n if (Object.prototype.hasOwnProperty.call(resp, key)) {\n const data = resp[key];\n if (data !== null) {\n temp.push(data);\n }\n }\n }\n }\n for (let i = 0; i < temp.length; i++) {\n const hourlyData = temp[i];\n let lastMarkPrice = ethers_1.BigNumber.from(hourlyData.lastMarkPrice);\n let offset = 1;\n while (lastMarkPrice.eq(0) && (i + offset < temp.length || i - offset >= 0)) {\n if (i + offset < temp.length) {\n lastMarkPrice = ethers_1.BigNumber.from(temp[i + offset].lastMarkPrice);\n }\n if (lastMarkPrice.eq(0) && i - offset >= 0) {\n lastMarkPrice = ethers_1.BigNumber.from(temp[i - offset].lastMarkPrice);\n }\n offset++;\n }\n result.push({\n timestamp: Number(hourlyData.timestamp),\n lastFundingIndex: ethers_1.BigNumber.from(hourlyData.lastFundingIndex),\n lastMarkPrice,\n });\n }\n return result;\n }\n async getFundingRateData(amm, interval, ts) {\n const intervalSeconds = (0, utils_1.getFundingChartIntervalSeconds)(interval);\n const endTs = (0, utils_1.roundFundingChartTimestamp)(interval, ts ?? (0, context_1.now)());\n const startTs = endTs - intervalSeconds * constants_1.fundingChartDataLength.get(interval);\n let fundingSnapshotAtTs = [];\n let timestamp = endTs;\n const hourlyDataList = await this.getHourlyFundingDataList(amm.instrumentAddr, amm.expiry, ts);\n const markPriceNow = amm.markPrice;\n for (const hourlyData of hourlyDataList) {\n if (hourlyData.lastMarkPrice.eq(0)) {\n hourlyData.lastMarkPrice = markPriceNow;\n }\n }\n const lastHourlyData = hourlyDataList[0];\n while (hourlyDataList.length > 0 && hourlyDataList[0].timestamp > startTs) {\n while (hourlyDataList.length > 0 && hourlyDataList[0].timestamp > timestamp) {\n hourlyDataList.shift();\n }\n if (hourlyDataList.length === 0)\n break;\n const fundingIndex = hourlyDataList[0].lastFundingIndex;\n const longFundingIndex = (0, sdks_perp_1.asInt128)(ethers_1.BigNumber.from(fundingIndex).mask(128));\n const shortFundingIndex = (0, sdks_perp_1.asInt128)(ethers_1.BigNumber.from(fundingIndex).shr(128).mask(128));\n fundingSnapshotAtTs.push({\n timestamp,\n longFundingIndex,\n shortFundingIndex,\n markPrice: hourlyDataList[0].lastMarkPrice,\n });\n timestamp -= intervalSeconds;\n }\n fundingSnapshotAtTs = fundingSnapshotAtTs.reverse();\n const fundingRates = [];\n for (let i = 1; i < fundingSnapshotAtTs.length; i++) {\n const longFundingRate = (0, sdks_perp_1.wdiv)(fundingSnapshotAtTs[i].longFundingIndex.sub(fundingSnapshotAtTs[i - 1].longFundingIndex), fundingSnapshotAtTs[i].markPrice);\n const shortFundingRate = (0, sdks_perp_1.wdiv)(fundingSnapshotAtTs[i].shortFundingIndex.sub(fundingSnapshotAtTs[i - 1].shortFundingIndex), fundingSnapshotAtTs[i].markPrice);\n fundingRates.push({ timestamp: fundingSnapshotAtTs[i].timestamp, longFundingRate, shortFundingRate });\n }\n const instrumentBefore = await this.ctx.perp._observer.getInstrument({\n instrument: amm.instrumentAddr,\n expiries: [amm.expiry],\n }, {\n blockTag: await this.getBlockNumberBefore(lastHourlyData.timestamp),\n });\n const ammBefore = instrumentBefore?.amms.get(amm.expiry);\n if (!ammBefore) {\n throw new errors_1.TheGraphError('Missing amm information');\n }\n const latestFundingIndex = sdks_perp_1.utils.lowLevel.updateFundingIndex(ammBefore, ammBefore.markPrice, ts ?? (0, context_1.now)());\n fundingRates.push({\n timestamp: ts ?? (0, context_1.now)(),\n longFundingRate: (0, sdks_perp_1.wdiv)(latestFundingIndex.longFundingIndex.sub(fundingSnapshotAtTs[fundingSnapshotAtTs.length - 1].longFundingIndex), markPriceNow),\n shortFundingRate: (0, sdks_perp_1.wdiv)(latestFundingIndex.shortFundingIndex.sub(fundingSnapshotAtTs[fundingSnapshotAtTs.length - 1].shortFundingIndex), markPriceNow),\n });\n return fundingRates;\n }\n}\nexports.Funding = Funding;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.History = void 0;\nconst ethers_1 = require(\"ethers\");\nconst lodash_1 = require(\"lodash\");\nconst context_1 = require(\"@derivation-tech/context\");\nconst graph_1 = require(\"@derivation-tech/context/dist/utils/graph\");\nconst sdks_perp_1 = require(\"@synfutures/sdks-perp\");\nconst utils_1 = require(\"../../utils\");\nconst enum_1 = require(\"../../enum\");\nclass History {\n constructor(dataSource) {\n this.dataSource = dataSource;\n }\n buildQueryEventCondition(param, hasInstrumentField = true) {\n const fn = (str) => `\"${str}\"`;\n let instrumentCondition = '';\n let pairCondition = '';\n let traderCondition = '';\n let eventCondition = '';\n let referralCondition = '';\n if (param.eventNames && param.eventNames.length > 0) {\n eventCondition = `name_in: [${param.eventNames.map((e) => fn(e)).join(',')}],`;\n }\n if (param.traders && param.traders.length > 0) {\n traderCondition = `trader_in: [${param.traders.map((t) => fn(t.toLowerCase())).join(',')}],`;\n }\n if (param.instrumentAddr && param.expiry && param.expiry >= 0) {\n pairCondition = `amm: ${fn((0, utils_1.concatId)(param.instrumentAddr, param.expiry).toLowerCase())},`;\n }\n else if (param.instrumentAddr) {\n instrumentCondition = hasInstrumentField\n ? `instrument: ${fn(param.instrumentAddr.toLowerCase())},`\n : `amm_:{instrument: ${fn(param.instrumentAddr.toLowerCase())}},`;\n }\n if (param.referralCode) {\n referralCondition = `referralCode_contains: ${fn(param.referralCode)},`;\n }\n const startTsCondition = `timestamp_gte: ${param.startTs || 0},`;\n const endTsCondition = `timestamp_lt: ${param.endTs || (0, context_1.now)()},`;\n const condition = `${eventCondition}${instrumentCondition}${pairCondition}${traderCondition}${referralCondition}${startTsCondition}${endTsCondition}`;\n return `where: {${condition} id_gt: $lastID}, `;\n }\n async getTransactionEvents(param) {\n const queryAll = param.size === undefined && param.page === undefined;\n const first = param.size || 1000;\n const skip = (param.page || 0) * first;\n let condition = this.buildQueryEventCondition(param);\n condition = queryAll ? condition : condition + 'orderBy: timestamp, orderDirection: desc';\n const graphQL = `query($skip: Int, $first: Int, $lastID: String){\n transactionEvents(skip: $skip, first: $first, ${condition}){\n id\n name\n args\n address\n logIndex\n blockNumber\n timestamp\n trader\n amm {\n id\n symbol\n }\n instrument {\n id\n symbol\n }\n transaction {\n id\n }\n }\n }`;\n let transactionEvents;\n if (queryAll) {\n transactionEvents = await this.dataSource.queryAll(graphQL, graph_1.GRAPH_PAGE_SIZE, true);\n }\n else {\n const resp = await this.dataSource.query(graphQL, skip, first);\n transactionEvents = resp.transactionEvents;\n }\n let result = [];\n for (const txEvent of transactionEvents) {\n result.push({\n id: txEvent.id,\n txHash: txEvent.transaction.id,\n address: txEvent.address,\n blockNumber: Number(txEvent.blockNumber),\n timestamp: Number(txEvent.timestamp),\n logIndex: Number(txEvent.logIndex),\n name: txEvent.name,\n args: JSON.parse(txEvent.args),\n });\n }\n result = (0, lodash_1.orderBy)(result, ['blockNumber', 'logIndex'], ['desc', 'desc']);\n return result;\n }\n async getAccountBalanceHistory(param) {\n const events = await this.getTransactionEvents({\n ...param,\n eventNames: ['Deposit', 'Withdraw'],\n });\n return events.map((event) => {\n return {\n timestamp: event.timestamp,\n trader: event.args.trader.toLowerCase(),\n quoteAddr: event.args.quote.toLowerCase(),\n logIndex: event.logIndex,\n amount: ethers_1.BigNumber.from(event.args.quantity),\n type: event.name,\n txHash: event.txHash,\n };\n });\n }\n async getFundingHistory(param) {\n const events = await this.getTransactionEvents({\n ...param,\n eventNames: ['FundingFee'],\n });\n return events.map((event) => {\n const funding = ethers_1.BigNumber.from(event.args.funding);\n return {\n timestamp: event.timestamp,\n instrumentAddr: event.address.toLowerCase(),\n expiry: Number(sdks_perp_1.PERP_EXPIRY),\n trader: event.args.trader.toLowerCase(),\n funding,\n logIndex: event.logIndex,\n type: funding.gt(0) ? 'Receive' : 'Pay',\n txHash: event.txHash,\n };\n });\n }\n async getTransferHistory(param) {\n const events = await this.getTransactionEvents({\n ...param,\n eventNames: ['Gather', 'Scatter'],\n });\n return events.map((event) => {\n return {\n timestamp: event.timestamp,\n instrumentAddr: event.args.instrument.toLowerCase(),\n expiry: Number(event.args.expiry),\n trader: event.args.trader.toLowerCase(),\n quoteAddr: event.args.quote.toLowerCase(),\n amount: ethers_1.BigNumber.from(event.args.quantity),\n type: event.name,\n txHash: event.txHash,\n logIndex: event.logIndex,\n };\n });\n }\n async getOrderHistory(param) {\n const first = param.size ?? 1000;\n const skip = (param.page ?? 0) * first;\n const condition = this.buildQueryEventCondition(param, false);\n const graphQL = `query($skip: Int, $first: Int, $lastID: String){\n orders(skip: $skip, first: $first, ${condition} orderBy: timestamp, orderDirection: desc){\n id\n amm {\n id\n symbol\n instrument{\n id\n }\n expiry\n }\n createdTimestamp\n balance\n fee\n filledSize\n nonce\n price\n size\n status\n tick\n tradeValue\n trader\n timestamp\n placeEvent {\n logIndex\n transaction {\n id\n }\n }\n fillEvent {\n logIndex\n transaction {\n id\n }\n }\n cancelEvent {\n logIndex\n transaction {\n id\n }\n }\n referralCode\n }\n }`;\n const resp = await this.dataSource.query(graphQL, skip, first);\n const result = [];\n for (const order of resp.orders) {\n const size = ethers_1.BigNumber.from(order.size);\n const filledSize = ethers_1.BigNumber.from(order.filledSize);\n const price = order.status === enum_1.OrderStatus.CANCELLED\n ? sdks_perp_1.TickMath.getWadAtTick(Number(order.tick))\n : ethers_1.BigNumber.from(order.price);\n result.push({\n trader: order.trader.toLowerCase(),\n instrumentAddr: order.amm.instrument.id,\n expiry: Number(order.amm.expiry),\n tick: Number(order.tick),\n size: size.abs(),\n side: sdks_perp_1.utils.sizeToSide(size),\n filledSize: filledSize,\n price: price,\n tradeValue: (0, sdks_perp_1.wmul)(filledSize.abs(), price),\n fee: ethers_1.BigNumber.from(order.fee),\n createdTimestamp: Number(order.createdTimestamp),\n timestamp: Number(order.timestamp),\n status: order.status,\n placeTxHash: order.placeEvent.transaction.id,\n placeTxLogIndex: order.placeEvent.logIndex,\n fillTxHash: order.fillEvent?.transaction.id,\n fillTxLogIndex: order.fillEvent?.logIndex,\n cancelTxHash: order.cancelEvent?.transaction.id,\n cancelTxLogIndex: order.cancelEvent?.logIndex,\n referralCode: order.referralCode,\n });\n }\n return result;\n }\n async getVirtualTradeHistory(param) {\n const first = param.size ?? 1000;\n const skip = (param.page ?? 0) * first;\n const condition = this.buildQueryEventCondition(param, false);\n const graphQL = `query($skip: Int, $first: Int, $lastID: String){\n virtualTrades(skip: $skip, first: $first, ${condition} orderBy: blockNumber, orderDirection: desc){\n id\n amm {\n id\n symbol\n instrument{\n id\n }\n expiry\n }\n original {\n transaction {\n id\n }\n logIndex\n name\n args\n }\n fee\n price\n size\n timestamp\n blockNumber\n tradeValue\n trader\n type\n referralCode\n }\n }`;\n const resp = await this.dataSource.query(graphQL, skip, first);\n let result = [];\n for (const trade of resp.virtualTrades) {\n let isRangeLiquidated = false;\n if (trade.original.name === 'Remove') {\n const args = JSON.parse(trade.original.args);\n isRangeLiquidated = args.trader !== args.operator;\n }\n let stablityFee = ethers_1.BigNumber.from(0);\n if (trade.original.name === 'Trade' || trade.original.name === 'Sweep') {\n const args = JSON.parse(trade.original.args);\n stablityFee = (0, sdks_perp_1.wmul)(ethers_1.BigNumber.from(trade.tradeValue), (0, sdks_perp_1.r2w)(Number(args.feeRatio) - Number(args.tradingFeeRatio)));\n }\n let size = ethers_1.BigNumber.from(trade.size);\n if (trade.original.name === 'Sweep') {\n size = size.mul(-1);\n }\n result.push({\n txHash: trade.original.transaction.id,\n logIndex: Number(trade.original.logIndex),\n blockNumber: Number(trade.blockNumber),\n timestamp: Number(trade.timestamp),\n trader: trade.trader,\n instrumentAddr: trade.amm.instrument.id,\n expiry: Number(trade.amm.expiry),\n size: size.abs(),\n side: sdks_perp_1.utils.sizeToSide(size),\n price: ethers_1.BigNumber.from(trade.price),\n fee: ethers_1.BigNumber.from(trade.fee),\n stablityFee,\n tradeValue: ethers_1.BigNumber.from(trade.tradeValue),\n type: trade.type,\n isRangeLiquidated,\n referralCode: trade.referralCode,\n });\n }\n result = (0, lodash_1.orderBy)(result, ['blockNumber', 'logIndex'], ['desc', 'desc']);\n return result;\n }\n async getLiquidityHistory(param) {\n const events = await this.getTransactionEvents({\n ...param,\n eventNames: ['Add', 'Remove'],\n });\n return events.map((event) => {\n return {\n timestamp: event.timestamp,\n instrumentAddr: event.address.toLowerCase(),\n expiry: Number(event.args.expiry),\n trader: event.args.trader.toLowerCase(),\n operator: event.name === 'Remove' ? event.args.operator.toLowerCase() : undefined,\n lowerPrice: sdks_perp_1.TickMath.getWadAtTick(Number(event.args.tickLower)),\n upperPrice: sdks_perp_1.TickMath.getWadAtTick(Number(event.args.tickUpper)),\n amount: ethers_1.BigNumber.from(event.name === 'Add' ? event.args.range[2] : event.args.pic[0]),\n feeEarned: event.name === 'Remove' ? ethers_1.BigNumber.from(event.args.fee) : undefined,\n type: event.name,\n txHash: event.txHash,\n logIndex: Number(event.logIndex),\n fairPrice: event.name === 'Add'\n ? (0, sdks_perp_1.sqrtX96ToWad)(event.args.range[event.args.range.length - 1])\n : (0, sdks_perp_1.sqrtX96ToWad)(event.args.sqrtPX96),\n };\n });\n }\n}\nexports.History = History;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./depth\"), exports);\n__exportStar(require(\"./funding\"), exports);\n__exportStar(require(\"./history\"), exports);\n__exportStar(require(\"./kline\"), exports);\n__exportStar(require(\"./liquidity\"), exports);\n__exportStar(require(\"./statistics\"), exports);\n__exportStar(require(\"./user\"), exports);\n__exportStar(require(\"./volume\"), exports);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Kline = void 0;\nconst ethers_1 = require(\"ethers\");\nconst graph_1 = require(\"@derivation-tech/context/dist/utils/graph\");\nconst utils_1 = require(\"../../utils\");\nconst enum_1 = require(\"../../enum\");\nclass Kline {\n constructor(dataSource) {\n this.dataSource = dataSource;\n }\n async getKlinesDirectly(instrumentAddr, expiry, interval, startTs, endTs) {\n const ammId = (0, utils_1.concatId)(instrumentAddr, expiry).toLowerCase();\n const condition = `amm: \"${ammId}\", open_gt: 0, id_gt: $lastID, timestamp_gte: ${startTs}, timestamp_lte: ${endTs}`;\n const intervalStatement = (0, utils_1.getKlineIntervalStatement)(interval);\n const graphQL = `\n query($skip: Int, $first: Int, $lastID: String){\n ${intervalStatement}(first: $first, where: {${condition}}, orderBy: timestamp, orderDirection: asc){\n id\n timestamp\n open\n high\n low\n close\n volume\n baseVolume\n }\n }`;\n const candles = await this.dataSource.queryAll(graphQL, graph_1.GRAPH_PAGE_SIZE, true);\n const candleMap = {};\n for (const candle of candles) {\n candleMap[Number(candle.timestamp)] = {\n timestamp: Number(candle.timestamp),\n open: (0, utils_1.fromWad)(candle.open),\n high: (0, utils_1.fromWad)(candle.high),\n close: (0, utils_1.fromWad)(candle.close),\n low: (0, utils_1.fromWad)(candle.low),\n baseVolume: (0, utils_1.fromWad)(candle.baseVolume),\n quoteVolume: (0, utils_1.fromWad)(candle.volume),\n };\n }\n return candleMap;\n }\n async getKlinesFromRawEvents(instrumentAddr, expiry, interval, startTs, endTs, minTradeValue) {\n const ammId = (0, utils_1.concatId)(instrumentAddr, expiry).toLowerCase();\n const condition = `type_in: [LIQUIDATION, MARKET], fee_gt: 0, amm: \"${ammId}\", timestamp_gte: ${startTs}, timestamp_lte: ${endTs}`;\n const graphQL = `query($skip: Int, $first: Int, $lastID: String){\n virtualTrades(first: $first, where: { ${condition}, id_gt: $lastID }){\n id\n price\n size\n timestamp\n tradeValue\n }\n }`;\n const FILTER_RATIO = 10;\n const minTradeValueAccountedInCandles = minTradeValue.div(FILTER_RATIO);\n const events = (await this.dataSource.queryAll(graphQL, 1000, true)).filter((event) => ethers_1.BigNumber.from(event.tradeValue).gt(minTradeValueAccountedInCandles));\n const candleMap = {};\n for (const event of events) {\n const ts = (0, utils_1.roundKlineTimestamp)(interval, Number(event.timestamp));\n const candle = candleMap[ts];\n const px = (0, utils_1.fromWad)(event.price);\n const size = Math.abs((0, utils_1.fromWad)(event.size));\n const volume = px * size;\n if (candle) {\n candle.close = px;\n candle.high = Math.max(candle.high, px);\n candle.low = Math.min(candle.low, px);\n candle.baseVolume += size;\n candle.quoteVolume += volume;\n }\n else {\n candleMap[ts] = {\n timestamp: ts,\n open: px,\n close: px,\n high: px,\n low: px,\n baseVolume: size,\n quoteVolume: volume,\n };\n }\n }\n return candleMap;\n }\n completeKlines(interval, endTs, data) {\n if (Object.keys(data).length === 0) {\n return [];\n }\n const keys = Object.keys(data);\n keys.sort();\n const result = [];\n const startTs = data[Number(keys[0])].timestamp;\n let prev = data[startTs];\n for (let i = startTs; i <= endTs; i += (0, utils_1.getKlineIntervalSeconds)(interval)) {\n if (data[i] && data[i].open > 0) {\n result.push(data[i]);\n prev = data[i];\n }\n else {\n const px = prev.close;\n const ohlc = { timestamp: i, open: px, high: px, close: px, low: px, baseVolume: 0, quoteVolume: 0 };\n result.push(ohlc);\n prev = ohlc;\n }\n }\n return result;\n }\n async getKlineData(instrumentAddr, expiry, interval, startTs, endTs, minTradeValue) {\n const _interval = (0, utils_1.getKlineIntervalSeconds)(interval);\n startTs = Math.floor(startTs / _interval) * _interval;\n endTs = Math.ceil(endTs / _interval) * _interval;\n let candles;\n if (interval === enum_1.KlineInterval.DAY ||\n interval === enum_1.KlineInterval.WEEK ||\n interval === enum_1.KlineInterval.HOUR ||\n interval === enum_1.KlineInterval.FOUR_HOUR) {\n candles = await this.getKlinesDirectly(instrumentAddr, expiry, interval, startTs, endTs);\n }\n else {\n candles = await this.getKlinesFromRawEvents(instrumentAddr, expiry, interval, startTs, endTs, minTradeValue);\n }\n return this.completeKlines(interval, endTs, candles);\n }\n}\nexports.Kline = Kline;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Liquidity = void 0;\nconst ethers_1 = require(\"ethers\");\nconst context_1 = require(\"@derivation-tech/context\");\nconst graph_1 = require(\"@derivation-tech/context/dist/utils/graph\");\nconst sdks_perp_1 = require(\"@synfutures/sdks-perp\");\nconst utils_1 = require(\"../../utils\");\nclass Liquidity {\n constructor(dataSource) {\n this.dataSource = dataSource;\n }\n async getLiquidityData(instrumentAddr, expiry, spacing = sdks_perp_1.RANGE_SPACING, blockNumber) {\n const fn = (str) => `\"${str}\"`;\n const ammCondition = `amm: ${fn((0, utils_1.concatId)(instrumentAddr, expiry).toLowerCase())},`;\n const blockCondition = blockNumber ? `block: {number: ${blockNumber}},` : '';\n const graphQL = `\n query($skip: Int, $first: Int, $lastID: String){\n ranges(${blockCondition} first: $first,where: {${ammCondition} status: \"OPEN\", id_gt: $lastID}){\n id\n liquidity\n tickLower\n tickUpper\n status\n }\n }`;\n const ranges = await this.dataSource.queryAll(graphQL, graph_1.GRAPH_PAGE_SIZE, true);\n if (!ranges || ranges.length === 0) {\n return [];\n }\n let tickLowest = sdks_perp_1.MAX_TICK;\n let tickUppest = sdks_perp_1.MIN_TICK;\n const liquidityDeltaMap = {};\n for (const range of ranges) {\n if (Number(range.tickLower) < tickLowest) {\n tickLowest = Number(range.tickLower);\n }\n if (Number(range.tickUpper) > tickUppest) {\n tickUppest = Number(range.tickUpper);\n }\n const liq = ethers_1.BigNumber.from(range.liquidity);\n const liquidityDeltaLower = liquidityDeltaMap[range.tickLower] ?? context_1.ZERO;\n liquidityDeltaMap[range.tickLower] = liquidityDeltaLower.add(liq);\n const liquidityDeltaUpper = liquidityDeltaMap[range.tickUpper + 1] ?? context_1.ZERO;\n liquidityDeltaMap[range.tickUpper + 1] = liquidityDeltaUpper.sub(liq);\n }\n const result = [];\n let liquidity = context_1.ZERO;\n for (let i = tickLowest; i <= tickUppest; i++) {\n let keyTick = i % spacing === 0;\n if (liquidityDeltaMap[i] !== undefined) {\n liquidity = liquidity.add(liquidityDeltaMap[i]);\n keyTick = true;\n }\n if (keyTick) {\n result.push({\n liquidity: liquidity,\n tick: i,\n price: (0, utils_1.fromWad)((0, sdks_perp_1.sqrtX96ToWad)(sdks_perp_1.TickMath.getSqrtRatioAtTick(i))),\n });\n }\n }\n return result;\n }\n}\nexports.Liquidity = Liquidity;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Statistics = void 0;\nconst ethers_1 = require(\"ethers\");\nconst context_1 = require(\"@derivation-tech/context\");\nconst graph_1 = require(\"@derivation-tech/context/dist/utils/graph\");\nconst sdks_perp_1 = require(\"@synfutures/sdks-perp\");\nconst utils_1 = require(\"../../utils\");\nclass Statistics {\n constructor(dataSource) {\n this.dataSource = dataSource;\n }\n async getPairsData(status = [sdks_perp_1.Status.TRADING, sdks_perp_1.Status.SETTLING], timestamp = (0, context_1.now)(), blockNumber) {\n const statusCondition = 'status_in: [' + status.map((s) => sdks_perp_1.Status[s]).join(',') + '],';\n const blockNumberCondition = blockNumber ? `block: {number: ${blockNumber}},` : '';\n const dayId = (0, utils_1.dayIdFromTimestamp)(timestamp);\n const hourId = (0, utils_1.hourIdFromTimestamp)(timestamp);\n const _7d = dayId - 7 * context_1.SECS_PER_DAY;\n const _24h = hourId - 24 * context_1.SECS_PER_HOUR;\n const nDaysAgoHourId = hourId - 24 * 3 * context_1.SECS_PER_HOUR;\n const graphQL = `\n query($skip: Int, $first: Int, $lastID: String){\n amms(${blockNumberCondition} first: $first, where: {${statusCondition} id_gt: $lastID}){\n id\n symbol\n expiry\n status\n balance\n sqrtPX96\n instrument {\n id\n }\n data {\n id\n totalVolume\n }\n dailyDataList(${blockNumberCondition} where: {timestamp_gt: ${_7d}, timestamp_lte: ${dayId}}, orderBy: timestamp, orderDirection: desc) {\n id\n timestamp\n volume\n }\n hourlyDataList(${blockNumberCondition} where: {timestamp_gt: ${nDaysAgoHourId}, timestamp_lte: ${hourId}}, orderBy: timestamp, orderDirection: desc) {\n id\n timestamp\n poolFee\n volume\n open\n close\n high\n low\n }\n }\n }`;\n const result = [];\n const resp = await this.dataSource.query(graphQL, 0, graph_1.GRAPH_PAGE_SIZE);\n for (const amm of resp.amms) {\n let _7dVolume = context_1.ZERO;\n let _24hVolume = context_1.ZERO;\n let _24hPoolFee = context_1.ZERO;\n let _24hHigh = context_1.ZERO;\n let _24hLow = context_1.ZERO;\n let _24hClose = context_1.ZERO;\n for (const data of amm.dailyDataList) {\n _7dVolume = _7dVolume.add(ethers_1.BigNumber.from(data.volume));\n }\n for (const data of amm.hourlyDataList) {\n if (data.timestamp < _24h) {\n break;\n }\n _24hVolume = _24hVolume.add(ethers_1.BigNumber.from(data.volume));\n _24hPoolFee = _24hPoolFee.add(ethers_1.BigNumber.from(data.poolFee));\n }\n for (const data of amm.hourlyDataList) {\n if (ethers_1.BigNumber.from(data.close).eq(0)) {\n continue;\n }\n _24hClose = ethers_1.BigNumber.from(data.close);\n if (_24hHigh.lt(ethers_1.BigNumber.from(data.high))) {\n _24hHigh = ethers_1.BigNumber.from(data.high);\n }\n if (_24hLow.eq(context_1.ZERO) || _24hLow.gt(ethers_1.BigNumber.from(data.low))) {\n _24hLow = ethers_1.BigNumber.from(data.low);\n }\n if (data.timestamp <= _24h) {\n break;\n }\n }\n const balance = ethers_1.BigNumber.from(amm.balance);\n const data = {\n id: amm.id,\n expiry: Number(amm.expiry),\n instrumentAddr: amm.instrument.id,\n APY24h: balance.eq(0) ? context_1.ZERO : (0, sdks_perp_1.wdiv)(_24hPoolFee.mul(365), balance),\n poolFee24h: _24hPoolFee,\n volume24h: _24hVolume,\n volume24hUTC0: amm.dailyDataList.length > 0 ? ethers_1.BigNumber.from(amm.dailyDataList[0].volume) : context_1.ZERO,\n volume7d: _7dVolume,\n high24h: _24hHigh,\n low24h: _24hLow,\n priceChange24h: _24hClose.eq(context_1.ZERO) ? context_1.ZERO : (0, sdks_perp_1.wdiv)((0, sdks_perp_1.sqrtX96ToWad)(amm.sqrtPX96), _24hClose).sub(context_1.WAD),\n };\n result.push(data);\n }\n return result;\n }\n async getInstrumentsInfo() {\n const graphQL = `query($skip: Int, $first: Int, $lastID: String){\n instruments(skip: $skip, first: $first){\n id\n symbol\n condition\n ammList {\n expiry\n }\n base {\n id\n name\n symbol\n decimals\n }\n quote {\n id\n name\n symbol\n decimals\n }\n dexV2Market {\n type \n }\n cexMarket {\n type \n } \n }\n }`;\n const resp = await this.dataSource.queryAll(graphQL);\n return await Promise.all(resp.map(async (i) => {\n const marketType = i.dexV2Market?.type ?? i.cexMarket?.type;\n return {\n address: i.id,\n expiries: i.ammList.map(({ expiry }) => Number(expiry)),\n symbol: i.symbol,\n isInverse: await this.dataSource.ctx.perp.configuration.isInverseByIdentifier({\n marketType,\n baseSymbol: i.base.symbol,\n quoteSymbol: i.quote.symbol,\n }),\n condition: i.condition === 'NORMAL'\n ? sdks_perp_1.InstrumentCondition.NORMAL\n : i.condition === 'FROZEN'\n ? sdks_perp_1.InstrumentCondition.FROZEN\n : sdks_perp_1.InstrumentCondition.RESOLVED,\n base: {\n address: i.base.id,\n name: i.base.name,\n symbol: i.base.symbol,\n decimals: Number(i.base.decimals),\n },\n quote: {\n address: i.quote.id,\n name: i.quote.name,\n symbol: i.quote.symbol,\n decimals: Number(i.quote.decimals),\n },\n marketType,\n };\n }));\n }\n}\nexports.Statistics = Statistics;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.User = void 0;\nconst async_retry_1 = __importDefault(require(\"async-retry\"));\nconst node_fetch_1 = __importDefault(require(\"node-fetch\"));\nconst errors_1 = require(\"../../errors\");\nconst graph_1 = require(\"@derivation-tech/context/dist/utils/graph\");\nconst ethers_1 = require(\"ethers\");\nconst sdks_perp_1 = require(\"@synfutures/sdks-perp\");\nconst utils_1 = require(\"../../utils\");\nclass User {\n constructor(dataSource) {\n this.dataSource = dataSource;\n }\n async getUserAmms(trader) {\n trader = trader.toLowerCase();\n const graphql = `\n{\n ranges(where:{status: OPEN, trader: \"${trader}\"}) {\n amm {\n id\n }\n }\n orders(where:{status: OPEN, trader: \"${trader}\"}) {\n amm {\n id\n }\n }\n positions(where:{size_not: 0, trader: \"${trader}\"}) {\n amm {\n id\n }\n }\n}\n `;\n const opts = {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({ query: graphql }),\n redirect: 'follow',\n timeout: 100000,\n };\n const resp = await (0, async_retry_1.default)(async () => {\n const response = await (0, node_fetch_1.default)(this.dataSource.endpoint, opts);\n const json = await response.json();\n if (!json.data || json.errors) {\n throw new errors_1.TheGraphError('Subgraph query error' + JSON.stringify(json.errors));\n }\n return json.data;\n }, this.dataSource.retryOption);\n return Array.from(new Set([...resp.ranges, ...resp.orders, ...resp.positions].map(({ amm }) => amm.id))).map((id) => {\n return {\n instrument: id.substring(0, 42),\n expiry: Number(id.substring(43)),\n };\n });\n }\n async getUserPnl(address, targetBlock, allInstruments) {\n const [assertQueryResult, positionQueryResult, orderQueryResult, rangeQueryResult] = await Promise.all([\n this.getUserGateAsserts(address, targetBlock),\n this.getUserOpenPositions(address, targetBlock),\n this.getUserOpenOrders(address, targetBlock),\n this.getUserRanges(address, targetBlock),\n ]);\n const pnlMap = new Map();\n const findAmm = (instrumentAddr, expiry) => {\n const instrument = allInstruments.find((instrument) => instrument.instrumentAddr.toLocaleLowerCase() === instrumentAddr);\n if (!instrument) {\n throw new Error(`Instrument not found for id: ${instrumentAddr}`);\n }\n const amm = instrument.amms.get(expiry);\n if (!amm) {\n throw new Error(`Amm not found for instrument: ${instrumentAddr}`);\n }\n return amm;\n };\n for (const assert of assertQueryResult) {\n let pnl = ethers_1.ethers.BigNumber.from(0);\n const decimals = Number(assert.quote.decimals);\n const amount = ethers_1.ethers.BigNumber.from(assert.totalWithdraw).sub(ethers_1.ethers.BigNumber.from(assert.totalDeposit));\n pnl = pnl.add(amount).add(ethers_1.ethers.BigNumber.from(assert.balance));\n const formattedAmount = (0, sdks_perp_1.d2w)(pnl, decimals);\n const quote = assert.quote.symbol;\n pnlMap.set(quote, formattedAmount);\n }\n for (const position of positionQueryResult) {\n const postionInstance = {\n balance: ethers_1.ethers.BigNumber.from(position.balance),\n size: ethers_1.ethers.BigNumber.from(position.size),\n entryNotional: ethers_1.ethers.BigNumber.from(position.entryNotional),\n entrySocialLossIndex: ethers_1.ethers.BigNumber.from(position.entrySocialLossIndex),\n entryFundingIndex: ethers_1.ethers.BigNumber.from(position.entryFundingIndex),\n };\n const amm = findAmm(position.amm.instrument.id, Number(position.amm.expiry));\n const markPrice = amm.markPrice;\n const { pnl } = sdks_perp_1.utils.lowLevel.tally(amm, postionInstance, markPrice);\n const quote = (0, utils_1.pickQuoteFromFullSymbol)(position.amm.symbol);\n const pnlInQuote = pnlMap.get(quote) || ethers_1.ethers.BigNumber.from(0);\n pnlMap.set(quote, pnlInQuote.add(pnl).add(ethers_1.ethers.BigNumber.from(position.balance)));\n }\n for (const order of orderQueryResult) {\n const quote = (0, utils_1.pickQuoteFromFullSymbol)(order.amm.symbol);\n const pnlInQuote = pnlMap.get(quote) || ethers_1.ethers.BigNumber.from(0);\n pnlMap.set(quote, pnlInQuote.add(ethers_1.ethers.BigNumber.from(order.balance)));\n }\n for (const range of rangeQueryResult) {\n const quote = (0, utils_1.pickQuoteFromFullSymbol)(range.amm.symbol);\n const amm = findAmm(range.amm.instrument.id, Number(range.amm.expiry));\n const markPrice = amm.markPrice;\n const rangeInstance = {\n liquidity: ethers_1.ethers.BigNumber.from(range.liquidity),\n entryFeeIndex: ethers_1.ethers.BigNumber.from(range.entryFeeIndex),\n balance: ethers_1.ethers.BigNumber.from(range.balance),\n sqrtEntryPX96: ethers_1.ethers.BigNumber.from(range.sqrtEntryPX96),\n tickLower: Number(range.tickLower),\n tickUpper: Number(range.tickUpper),\n };\n const position = sdks_perp_1.utils.rangeToPosition(rangeInstance, amm);\n const { equity } = sdks_perp_1.utils.lowLevel.tally(amm, position, markPrice);\n const pnlInQuote = pnlMap.get(quote) || ethers_1.ethers.BigNumber.from(0);\n pnlMap.set(quote, pnlInQuote.add(equity));\n }\n return pnlMap;\n }\n async getUserGateAsserts(address, targetBlock) {\n const graphql = `query($skip: Int, $first: Int, $lastID: String){\n userVaults(\n first: $first,\n skip: $skip,\n block: { number: ${targetBlock} },\n where: {\n user: \"${address.toLocaleLowerCase()}\",\n id_gt: $lastID\n }\n ) {\n id\n user {\n id\n }\n quote {\n name\n symbol\n decimals\n }\n balance\n totalDeposit\n totalWithdraw\n }\n }`;\n const result = this.dataSource.queryAll(graphql, graph_1.GRAPH_PAGE_SIZE, true);\n return result;\n }\n async getUserOpenPositions(address, targetBlock) {\n const graphql = `query($skip: Int, $first: Int, $lastID: String){\n positions(\n first: $first,\n skip: $skip,\n block: { number: ${targetBlock} },\n where: {\n size_not: 0,\n trader: \"${address.toLocaleLowerCase()}\",\n id_gt: $lastID\n }\n ) {\n trader\n balance\n size\n entryNotional\n entrySocialLossIndex\n entryFundingIndex\n amm {\n instrument {\n id\n }\n symbol\n expiry\n }\n }\n }`;\n const result = this.dataSource.queryAll(graphql, graph_1.GRAPH_PAGE_SIZE, true);\n return result;\n }\n async getUserOpenOrders(address, targetBlock) {\n const graphql = `query($skip: Int, $first: Int, $lastID: String){\n orders(\n first: $first,\n skip: $skip,\n block: { number: ${targetBlock} },\n where: {\n status: OPEN,\n trader: \"${address.toLocaleLowerCase()}\",\n id_gt: $lastID\n }\n ) {\n trader\n tick\n nonce\n balance\n size\n filledSize\n tradeValue\n createdTimestamp\n fee\n status\n amm {\n instrument {\n id\n }\n symbol\n expiry\n }\n }\n }`;\n const result = this.dataSource.queryAll(graphql, graph_1.GRAPH_PAGE_SIZE, true);\n return result;\n }\n async getUserRanges(address, targetBlock) {\n const graphql = `query($skip: Int, $first: Int, $lastID: String){\n ranges(\n first: $first,\n skip: $skip,\n block: { number: ${targetBlock} },\n where: {\n status: OPEN,\n trader: \"${address.toLocaleLowerCase()}\",\n id_gt: $lastID\n }\n ) {\n trader\n tickLower\n tickUpper\n liquidity\n balance\n sqrtEntryPX96\n entryFeeIndex\n amm {\n instrument {\n id\n }\n symbol\n expiry\n }\n }\n }`;\n const result = this.dataSource.queryAll(graphql, graph_1.GRAPH_PAGE_SIZE, true);\n return result;\n }\n}\nexports.User = User;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Volume = void 0;\nconst context_1 = require(\"@derivation-tech/context\");\nconst graph_1 = require(\"@derivation-tech/context/dist/utils/graph\");\nconst utils_1 = require(\"../../utils\");\nclass Volume {\n constructor(dataSource) {\n this.dataSource = dataSource;\n }\n async getVolumeData(instrumentAddr, expiry, startTs, endTs) {\n const fn = (str) => `\"${str}\"`;\n const ammCondition = `amm: ${fn((0, utils_1.concatId)(instrumentAddr, expiry).toLowerCase())},`;\n const startTsCondition = `timestamp_gte: ${startTs || 0},`;\n const endTsCondition = `timestamp_lt: ${endTs || (0, context_1.now)()},`;\n const graphQL = `\n query($skip: Int, $first: Int, $lastID: String){\n dailyAmmDatas(first: $first, where: {${ammCondition} ${startTsCondition}${endTsCondition} id_gt: $lastID}, orderBy: timestamp, orderDirection: asc){\n id\n timestamp\n volume\n baseVolume\n }\n }`;\n const result = [];\n const dailyAmmDatas = await this.dataSource.queryAll(graphQL, graph_1.GRAPH_PAGE_SIZE, true);\n for (const dailyData of dailyAmmDatas) {\n result.push({\n timestamp: Number(dailyData.timestamp),\n baseVolume: (0, utils_1.fromWad)(dailyData.baseVolume),\n quoteVolume: (0, utils_1.fromWad)(dailyData.volume),\n });\n }\n return result;\n }\n}\nexports.Volume = Volume;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./dataSource\"), exports);\n__exportStar(require(\"./inverse\"), exports);\n__exportStar(require(\"./dataSource.interface\"), exports);\n__exportStar(require(\"./dataSource.module\"), exports);\n__exportStar(require(\"./dataSource.plugin\"), exports);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.InverseDepth = void 0;\nconst utils_1 = require(\"../../utils\");\nconst dataSource_1 = require(\"../dataSource\");\nclass InverseDepth extends dataSource_1.Depth {\n async getDepthData(instrumentAddr, expiry, stepRatio, length = 10, overrides) {\n const isInverse = await this.dataSource.ctx.perp.configuration.isInverse(instrumentAddr);\n const results = await super.getDepthData(instrumentAddr, expiry, stepRatio, length, overrides);\n return isInverse\n ? {\n left: results.right.map((d) => {\n return {\n ...d,\n price: (0, utils_1.reversePrice)(d.price),\n };\n }),\n right: results.left.map((d) => {\n return {\n ...d,\n price: (0, utils_1.reversePrice)(d.price),\n };\n }),\n }\n : results;\n }\n}\nexports.InverseDepth = InverseDepth;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.InverseHistory = void 0;\nconst sdks_perp_1 = require(\"@synfutures/sdks-perp\");\nconst dataSource_1 = require(\"../dataSource\");\nclass InverseHistory extends dataSource_1.History {\n async getOrderHistory(param) {\n const results = await super.getOrderHistory(param);\n for (const o of results) {\n if (await this.dataSource.ctx.perp.configuration.isInverse(o.instrumentAddr)) {\n o.side = sdks_perp_1.utils.reverseSide(o.side);\n o.price = sdks_perp_1.utils.reversePrice(o.price);\n }\n }\n return results;\n }\n async getVirtualTradeHistory(param) {\n const results = await super.getVirtualTradeHistory(param);\n for (const tx of results) {\n if (await this.dataSource.ctx.perp.configuration.isInverse(tx.instrumentAddr)) {\n tx.side = sdks_perp_1.utils.reverseSide(tx.side);\n tx.price = sdks_perp_1.utils.reversePrice(tx.price);\n }\n }\n return results;\n }\n async getLiquidityHistory(param) {\n const results = await super.getLiquidityHistory(param);\n for (const l of results) {\n if (await this.dataSource.ctx.perp.configuration.isInverse(l.instrumentAddr)) {\n const lowerPrice = l.lowerPrice;\n l.lowerPrice = sdks_perp_1.utils.reversePrice(l.upperPrice);\n l.upperPrice = sdks_perp_1.utils.reversePrice(lowerPrice);\n l.fairPrice = sdks_perp_1.utils.reversePrice(l.fairPrice);\n }\n }\n return results;\n }\n}\nexports.InverseHistory = InverseHistory;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./depth\"), exports);\n__exportStar(require(\"./history\"), exports);\n__exportStar(require(\"./kline\"), exports);\n__exportStar(require(\"./liquidity\"), exports);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.InverseKline = void 0;\nconst utils_1 = require(\"../../utils\");\nconst dataSource_1 = require(\"../dataSource\");\nfunction reverseKlineData(data) {\n return {\n ...data,\n open: (0, utils_1.reversePrice)(data.open),\n close: (0, utils_1.reversePrice)(data.close),\n low: (0, utils_1.reversePrice)(data.high),\n high: (0, utils_1.reversePrice)(data.low),\n };\n}\nclass InverseKline extends dataSource_1.Kline {\n async getKlineData(instrumentAddr, expiry, interval, startTs, endTs, minTradeValue) {\n const isInverse = await this.dataSource.ctx.perp.configuration.isInverse(instrumentAddr);\n const results = await super.getKlineData(instrumentAddr, expiry, interval, startTs, endTs, minTradeValue);\n return isInverse ? results.map(reverseKlineData) : results;\n }\n}\nexports.InverseKline = InverseKline;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.InverseLiquidity = void 0;\nconst sdks_perp_1 = require(\"@synfutures/sdks-perp\");\nconst dataSource_1 = require(\"../dataSource\");\nconst utils_1 = require(\"../../utils\");\nclass InverseLiquidity extends dataSource_1.Liquidity {\n async getLiquidityData(instrumentAddr, expiry, spacing = sdks_perp_1.RANGE_SPACING, blockNumber) {\n const isInverse = await this.dataSource.ctx.perp.configuration.isInverse(instrumentAddr);\n const results = await super.getLiquidityData(instrumentAddr, expiry, spacing, blockNumber);\n return isInverse\n ? results.map((l) => {\n return {\n ...l,\n price: (0, utils_1.reversePrice)(l.price),\n };\n })\n : results;\n }\n}\nexports.InverseLiquidity = InverseLiquidity;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.concatId = concatId;\nexports.dayIdFromTimestamp = dayIdFromTimestamp;\nexports.hourIdFromTimestamp = hourIdFromTimestamp;\nexports.weekIdFromTimestamp = weekIdFromTimestamp;\nexports.getFundingChartIntervalSeconds = getFundingChartIntervalSeconds;\nexports.roundFundingChartTimestamp = roundFundingChartTimestamp;\nexports.getKlineIntervalSeconds = getKlineIntervalSeconds;\nexports.roundKlineTimestamp = roundKlineTimestamp;\nexports.getKlineIntervalStatement = getKlineIntervalStatement;\nexports.fromWad = fromWad;\nexports.reversePrice = reversePrice;\nexports.pickQuoteFromSymbol = pickQuoteFromSymbol;\nexports.pickQuoteFromFullSymbol = pickQuoteFromFullSymbol;\nconst ethers_1 = require(\"ethers\");\nconst context_1 = require(\"@derivation-tech/context\");\nconst enum_1 = require(\"./enum\");\nconst errors_1 = require(\"./errors\");\nfunction concatId(id1, id2) {\n return String(id1).concat('-').concat(String(id2));\n}\nfunction dayIdFromTimestamp(timestamp = (0, context_1.now)()) {\n return Math.floor(timestamp / context_1.SECS_PER_DAY) * context_1.SECS_PER_DAY;\n}\nfunction hourIdFromTimestamp(timestamp = (0, context_1.now)()) {\n return Math.floor(timestamp / context_1.SECS_PER_HOUR) * context_1.SECS_PER_HOUR;\n}\nfunction weekIdFromTimestamp(timestamp = (0, context_1.now)()) {\n const daysOfWeek = 7;\n const dayOfWeek = (((Math.floor(timestamp / context_1.SECS_PER_DAY) + 4) % daysOfWeek) + daysOfWeek) % daysOfWeek;\n const diff = Math.floor(timestamp / context_1.SECS_PER_DAY) - dayOfWeek + (dayOfWeek === 0 ? -6 : 1);\n return diff * context_1.SECS_PER_DAY;\n}\nfunction getFundingChartIntervalSeconds(interval) {\n switch (interval) {\n case enum_1.FundingChartInterval.HOUR:\n return context_1.SECS_PER_HOUR;\n case enum_1.FundingChartInterval.EIGHT_HOUR:\n return 8 * context_1.SECS_PER_HOUR;\n default:\n throw new errors_1.TheGraphError('Unsupported funding chart interval: ' + interval);\n }\n}\nfunction roundFundingChartTimestamp(interval, ts) {\n switch (interval) {\n case enum_1.FundingChartInterval.HOUR:\n return hourIdFromTimestamp(ts);\n case enum_1.FundingChartInterval.EIGHT_HOUR: {\n const date = new Date(ts * 1000);\n const hours = getFundingChartIntervalSeconds(interval) / context_1.SECS_PER_HOUR;\n const startHours = Math.floor(date.getHours() / hours) * hours;\n date.setHours(startHours, 0, 0);\n return date.getTime() / 1000;\n }\n default:\n throw new errors_1.TheGraphError('Unsupported funding chart interval: ' + interval);\n }\n}\nfunction getKlineIntervalSeconds(interval) {\n switch (interval) {\n case enum_1.KlineInterval.HOUR:\n return context_1.SECS_PER_HOUR;\n case enum_1.KlineInterval.DAY:\n return context_1.SECS_PER_DAY;\n case enum_1.KlineInterval.WEEK:\n return context_1.SECS_PER_WEEK;\n case enum_1.KlineInterval.MINUTE:\n return context_1.SECS_PER_MINUTE;\n case enum_1.KlineInterval.FIVE_MINUTE:\n return 5 * context_1.SECS_PER_MINUTE;\n case enum_1.KlineInterval.FIFTEEN_MINUTE:\n return 15 * context_1.SECS_PER_MINUTE;\n case enum_1.KlineInterval.THIRTY_MINUTE:\n return 30 * context_1.SECS_PER_MINUTE;\n case enum_1.KlineInterval.FOUR_HOUR:\n return 4 * context_1.SECS_PER_HOUR;\n default:\n throw new errors_1.TheGraphError('Unsupported kline interval: ' + interval);\n }\n}\nfunction roundKlineTimestamp(interval, ts) {\n switch (interval) {\n case enum_1.KlineInterval.HOUR:\n return hourIdFromTimestamp(ts);\n case enum_1.KlineInterval.DAY:\n return dayIdFromTimestamp(ts);\n case enum_1.KlineInterval.WEEK:\n return weekIdFromTimestamp(ts);\n case enum_1.KlineInterval.MINUTE:\n case enum_1.KlineInterval.FIVE_MINUTE:\n case enum_1.KlineInterval.FIFTEEN_MINUTE:\n case enum_1.KlineInterval.THIRTY_MINUTE: {\n const date = new Date(ts * 1000);\n const mintues = getKlineIntervalSeconds(interval) / context_1.SECS_PER_MINUTE;\n const startMinutes = Math.floor(date.getMinutes() / mintues) * mintues;\n date.setMinutes(startMinutes, 0, 0);\n return date.getTime() / 1000;\n }\n default:\n throw new errors_1.TheGraphError('Unsupported kline interval: ' + interval);\n }\n}\nfunction getKlineIntervalStatement(interval) {\n switch (interval) {\n case enum_1.KlineInterval.HOUR:\n return 'hourlyAmmDatas';\n case enum_1.KlineInterval.DAY:\n return 'dailyAmmDatas';\n case enum_1.KlineInterval.WEEK:\n return 'weeklyAmmDatas';\n case enum_1.KlineInterval.FOUR_HOUR:\n return 'per4HourAmmDatas';\n default:\n throw new errors_1.TheGraphError('Unsupported kline interval: ' + interval);\n }\n}\nfunction fromWad(value) {\n return Number(ethers_1.ethers.utils.formatEther(value));\n}\nfunction reversePrice(price) {\n return price === 0 ? 0 : 1 / price;\n}\nfunction pickQuoteFromSymbol(symbol) {\n const from = symbol.indexOf('-');\n const to = symbol.lastIndexOf('-');\n if (from === -1 || to === -1 || from === to) {\n throw new Error(`invalid symbol: ${symbol}`);\n }\n return symbol.substring(from + 1, to);\n}\nfunction pickQuoteFromFullSymbol(fullSymbol) {\n const last = fullSymbol.lastIndexOf('-');\n if (last === -1) {\n throw new Error(`invalid full symbol: ${fullSymbol}`);\n }\n return pickQuoteFromSymbol(fullSymbol.substring(0, last));\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EMPTY_AMM = exports.MAX_CANCEL_ORDER_COUNT = exports.MIN_BATCH_ORDER_COUNT = exports.MAX_BATCH_ORDER_COUNT = exports.DEFAULT_REFERRAL_CODE = exports.DEFAULT_MAINTENANCE_MARGIN_RATIO = exports.DEFAULT_INITIAL_MARGIN_RATIO = exports.NATIVE_TOKEN_ADDRESS = exports.COMPACT_EMA_PARAM = exports.MAINTENANCE_MARGIN_RATIO = exports.INITIAL_MARGIN_RATIO = exports.PERP_EXPIRY = exports.NULL_DDL = exports.SETTLING_DURATION = exports.MIN_RANGE_MULTIPLIER = exports.MIN_ORDER_MULTIPLIER = exports.MAX_STABILITY_FEE_RATIO = exports.STABILITY_FEE_RATIO_BASE = exports.RATIO_BASE = exports.RANGE_SPACING = exports.ORDER_SPACING = exports.PEARL_SPACING = exports.INT24_MAX = exports.INT24_MIN = exports.MIN_TICK = exports.MAX_TICK = exports.NULL_PRICE = exports.ONE_RATIO = exports.NULL_RATIO = exports.MAX_POSITION_NUM = exports.RATIO_DECIMALS = exports.WAD_DECIMALS = void 0;\nconst ethers_1 = require(\"ethers\");\nexports.WAD_DECIMALS = 18;\nexports.RATIO_DECIMALS = 4;\nexports.MAX_POSITION_NUM = 128;\nexports.NULL_RATIO = 0;\nexports.ONE_RATIO = 10000;\nexports.NULL_PRICE = ethers_1.BigNumber.from(0);\nexports.MAX_TICK = 443636;\nexports.MIN_TICK = -322517;\nexports.INT24_MIN = -8388608;\nexports.INT24_MAX = 8388607;\nexports.PEARL_SPACING = 5;\nexports.ORDER_SPACING = exports.PEARL_SPACING;\nexports.RANGE_SPACING = exports.PEARL_SPACING * 10;\nexports.RATIO_BASE = 10000;\nexports.STABILITY_FEE_RATIO_BASE = 100;\nexports.MAX_STABILITY_FEE_RATIO = Math.pow(2, 16) - 1;\nexports.MIN_ORDER_MULTIPLIER = 2;\nexports.MIN_RANGE_MULTIPLIER = 10;\nexports.SETTLING_DURATION = 30 * 60;\nexports.NULL_DDL = Math.pow(2, 32) - 1;\nexports.PERP_EXPIRY = exports.NULL_DDL;\nexports.INITIAL_MARGIN_RATIO = 1000;\nexports.MAINTENANCE_MARGIN_RATIO = 500;\nexports.COMPACT_EMA_PARAM = ethers_1.BigNumber.from('1060108913112522979002928172012890034027465765885994002407459484512227426307');\nexports.NATIVE_TOKEN_ADDRESS = '0x1d6B1d2AD091bec4aAe6A131C92008701531FdaF';\nexports.DEFAULT_INITIAL_MARGIN_RATIO = 1000;\nexports.DEFAULT_MAINTENANCE_MARGIN_RATIO = exports.DEFAULT_INITIAL_MARGIN_RATIO / 2;\nexports.DEFAULT_REFERRAL_CODE = '\\xff\\xff\\x00\\x00\\x00\\x00\\x00\\x00';\nexports.MAX_BATCH_ORDER_COUNT = 9;\nexports.MIN_BATCH_ORDER_COUNT = 2;\nexports.MAX_CANCEL_ORDER_COUNT = 8;\nexports.EMPTY_AMM = {\n expiry: 0,\n timestamp: 0,\n status: 0,\n tick: 0,\n sqrtPX96: ethers_1.BigNumber.from(0),\n liquidity: ethers_1.BigNumber.from(0),\n totalLiquidity: ethers_1.BigNumber.from(0),\n involvedFund: ethers_1.BigNumber.from(0),\n openInterests: ethers_1.BigNumber.from(0),\n feeIndex: ethers_1.BigNumber.from(0),\n protocolFee: ethers_1.BigNumber.from(0),\n totalLong: ethers_1.BigNumber.from(0),\n totalShort: ethers_1.BigNumber.from(0),\n longSocialLossIndex: ethers_1.BigNumber.from(0),\n shortSocialLossIndex: ethers_1.BigNumber.from(0),\n longFundingIndex: ethers_1.BigNumber.from(0),\n shortFundingIndex: ethers_1.BigNumber.from(0),\n insuranceFund: ethers_1.BigNumber.from(0),\n settlementPrice: ethers_1.BigNumber.from(0),\n markPrice: ethers_1.BigNumber.from(0),\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BatchOrderSizeDistribution = exports.MarketType = exports.Leverage = exports.QuoteType = exports.FeederType = exports.InstrumentCondition = exports.Status = exports.Side = void 0;\nvar Side;\n(function (Side) {\n Side[Side[\"FLAT\"] = 0] = \"FLAT\";\n Side[Side[\"SHORT\"] = 1] = \"SHORT\";\n Side[Side[\"LONG\"] = 2] = \"LONG\";\n})(Side || (exports.Side = Side = {}));\nvar Status;\n(function (Status) {\n Status[Status[\"DORMANT\"] = 0] = \"DORMANT\";\n Status[Status[\"TRADING\"] = 1] = \"TRADING\";\n Status[Status[\"SETTLING\"] = 2] = \"SETTLING\";\n Status[Status[\"SETTLED\"] = 3] = \"SETTLED\";\n})(Status || (exports.Status = Status = {}));\nvar InstrumentCondition;\n(function (InstrumentCondition) {\n InstrumentCondition[InstrumentCondition[\"NORMAL\"] = 0] = \"NORMAL\";\n InstrumentCondition[InstrumentCondition[\"FROZEN\"] = 1] = \"FROZEN\";\n InstrumentCondition[InstrumentCondition[\"RESOLVED\"] = 2] = \"RESOLVED\";\n})(InstrumentCondition || (exports.InstrumentCondition = InstrumentCondition = {}));\nvar FeederType;\n(function (FeederType) {\n FeederType[FeederType[\"NONE_STABLE\"] = 0] = \"NONE_STABLE\";\n FeederType[FeederType[\"QUOTE_STABLE\"] = 1] = \"QUOTE_STABLE\";\n FeederType[FeederType[\"BASE_STABLE\"] = 2] = \"BASE_STABLE\";\n FeederType[FeederType[\"BOTH_STABLE\"] = 3] = \"BOTH_STABLE\";\n})(FeederType || (exports.FeederType = FeederType = {}));\nvar QuoteType;\n(function (QuoteType) {\n QuoteType[QuoteType[\"INVALID\"] = 0] = \"INVALID\";\n QuoteType[QuoteType[\"STABLE\"] = 1] = \"STABLE\";\n QuoteType[QuoteType[\"NONSTABLE\"] = 2] = \"NONSTABLE\";\n})(QuoteType || (exports.QuoteType = QuoteType = {}));\nvar Leverage;\n(function (Leverage) {\n Leverage[Leverage[\"LOW\"] = 0] = \"LOW\";\n Leverage[Leverage[\"MEDIUM\"] = 1] = \"MEDIUM\";\n Leverage[Leverage[\"HIGH\"] = 2] = \"HIGH\";\n Leverage[Leverage[\"RISKY\"] = 3] = \"RISKY\";\n})(Leverage || (exports.Leverage = Leverage = {}));\nvar MarketType;\n(function (MarketType) {\n MarketType[\"LINK\"] = \"LINK\";\n MarketType[\"DEXV2\"] = \"DEXV2\";\n MarketType[\"EMG\"] = \"EMG\";\n MarketType[\"PYTH\"] = \"PYTH\";\n})(MarketType || (exports.MarketType = MarketType = {}));\nvar BatchOrderSizeDistribution;\n(function (BatchOrderSizeDistribution) {\n BatchOrderSizeDistribution[BatchOrderSizeDistribution[\"FLAT\"] = 0] = \"FLAT\";\n BatchOrderSizeDistribution[BatchOrderSizeDistribution[\"UPPER\"] = 1] = \"UPPER\";\n BatchOrderSizeDistribution[BatchOrderSizeDistribution[\"LOWER\"] = 2] = \"LOWER\";\n BatchOrderSizeDistribution[BatchOrderSizeDistribution[\"RANDOM\"] = 3] = \"RANDOM\";\n})(BatchOrderSizeDistribution || (exports.BatchOrderSizeDistribution = BatchOrderSizeDistribution = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CalculationError = void 0;\nconst synfError_1 = require(\"./synfError\");\nclass CalculationError extends synfError_1.SynfError {\n constructor(message, data) {\n const msg = message + `,invalid params is: ${JSON.stringify(data)}`;\n super(msg);\n this.name = 'CalculationError';\n }\n}\nexports.CalculationError = CalculationError;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./calculationError\"), exports);\n__exportStar(require(\"./paramsEncodeError\"), exports);\n__exportStar(require(\"./simulationError\"), exports);\n__exportStar(require(\"./synfError\"), exports);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ParamsEncodeError = void 0;\nconst synfError_1 = require(\"./synfError\");\nclass ParamsEncodeError extends synfError_1.SynfError {\n constructor(message, data) {\n const msg = message + `,invalid params is: ${JSON.stringify(data)}`;\n super(msg);\n this.name = 'ParamsEncodeError';\n }\n}\nexports.ParamsEncodeError = ParamsEncodeError;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SimulationError = void 0;\nconst synfError_1 = require(\"./synfError\");\nclass SimulationError extends synfError_1.SynfError {\n constructor(message) {\n super(message);\n this.name = 'SimulationError';\n }\n}\nexports.SimulationError = SimulationError;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SynfError = void 0;\nclass SynfError extends Error {\n constructor(message, cause) {\n super(message);\n this.name = 'SynfError';\n this.cause = cause;\n this.message = `${this.message}\\n${this.cause ? `\\nCaused By: ${this.cause}` : ''}\\n`;\n }\n toString() {\n return `[${this.name}] ${this.message}`;\n }\n}\nexports.SynfError = SynfError;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nvar __importStar = (this && this.__importStar) || (function () {\n var ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n };\n return function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.utils = void 0;\nrequire(\"@derivation-tech/tx-plugin\");\n__exportStar(require(\"./math\"), exports);\n__exportStar(require(\"./modules\"), exports);\n__exportStar(require(\"./types\"), exports);\nexports.utils = __importStar(require(\"./utils\"));\n__exportStar(require(\"./constants\"), exports);\n__exportStar(require(\"./enum\"), exports);\n__exportStar(require(\"./errors\"), exports);\n__exportStar(require(\"./parser\"), exports);\n__exportStar(require(\"./perp.plugin\"), exports);\n__exportStar(require(\"./perp.interface\"), exports);\n__exportStar(require(\"./perp.module\"), exports);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.mulDivRoundingUp = mulDivRoundingUp;\nexports.mulShift = mulShift;\nexports.multiplyIn256 = multiplyIn256;\nexports.addIn256 = addIn256;\nexports.oppositeSigns = oppositeSigns;\nexports.mostSignificantBit = mostSignificantBit;\nexports.sqrt = sqrt;\nexports.roundHalfUp = roundHalfUp;\nexports.neg = neg;\nexports.signedDiv = signedDiv;\nexports.wdiv = wdiv;\nexports.safeWDiv = safeWDiv;\nexports.wdivUp = wdivUp;\nexports.wdivDown = wdivDown;\nexports.wmul = wmul;\nexports.wmulInt = wmulInt;\nexports.wmulUp = wmulUp;\nexports.wmulDown = wmulDown;\nexports.fracUp = fracUp;\nexports.fracDown = fracDown;\nexports.frac = frac;\nexports.weightedAverage = weightedAverage;\nexports.r2w = r2w;\nexports.s2w = s2w;\nexports.d2w = d2w;\nexports.w2d = w2d;\nexports.mulMod = mulMod;\nexports.fullMul = fullMul;\nexports.fullDiv = fullDiv;\nexports.mulDiv = mulDiv;\nexports.sqrtX96ToWad = sqrtX96ToWad;\nexports.wadToSqrtX96 = wadToSqrtX96;\nexports.wadToTick = wadToTick;\nexports.leastSignificantBit = leastSignificantBit;\nexports.leastNonnegativeRemainder = leastNonnegativeRemainder;\nexports.leastNonnegativeComplement = leastNonnegativeComplement;\nexports.maxAmongThree = maxAmongThree;\nexports.max = max;\nexports.min = min;\nexports.relativeDiffRatioWadAbs = relativeDiffRatioWadAbs;\nexports.getOrderLeverageByMargin = getOrderLeverageByMargin;\nexports.getMaxLeverage = getMaxLeverage;\nexports.calcMaxWithdrawable = calcMaxWithdrawable;\nexports.alignPriceToTick = alignPriceToTick;\nexports.calcBoost = calcBoost;\nexports.calcAsymmetricBoost = calcAsymmetricBoost;\nconst ethers_1 = require(\"ethers\");\nconst utils_1 = require(\"../utils\");\nconst tickMath_1 = require(\"./tickMath\");\nconst constants_1 = require(\"../constants\");\nconst constants_2 = require(\"./constants\");\nconst calculationError_1 = require(\"../errors/calculationError\");\nfunction mulDivRoundingUp(a, b, denominator) {\n const product = a.mul(b);\n let result = product.div(denominator);\n if (!product.mod(denominator).eq(constants_2.ZERO))\n result = result.add(constants_2.ONE);\n return result;\n}\nfunction mulShift(val, mulBy) {\n return val.mul(ethers_1.BigNumber.from(mulBy)).shr(128);\n}\nfunction multiplyIn256(x, y) {\n return x.mul(y).and(constants_2.MAX_UINT_256);\n}\nfunction addIn256(x, y) {\n return x.add(y).and(constants_2.MAX_UINT_256);\n}\nfunction oppositeSigns(x, y) {\n return x.mul(y).lt(constants_2.ZERO) ? true : false;\n}\nfunction mostSignificantBit(x) {\n (0, utils_1.solidityRequire)(x.gt(0), 'ZERO');\n (0, utils_1.solidityRequire)(x.lte(constants_2.MAX_UINT_256), 'MAX');\n let msb = 0;\n for (const [power, min] of constants_2.POWERS_OF_2) {\n if (x.gte(min)) {\n x = x.shr(power);\n msb += power;\n }\n }\n return msb;\n}\nfunction sqrt(value) {\n (0, utils_1.solidityRequire)(value.gte(0), 'NEGATIVE');\n if (value.lt(constants_2.MAX_SAFE_INTEGER)) {\n return ethers_1.BigNumber.from(Math.floor(Math.sqrt(Number(value))));\n }\n let z;\n let x;\n z = value;\n x = value.div(constants_2.TWO).add(constants_2.ONE);\n while (x.lt(z)) {\n z = x;\n x = value.div(x).add(x).div(constants_2.TWO);\n }\n return z;\n}\nfunction roundHalfUp(x, y) {\n const z = y.div(constants_2.TWO);\n if (x.gt(0)) {\n return x.add(z);\n }\n return x.sub(z);\n}\nfunction neg(x) {\n return constants_2.ZERO.sub(x);\n}\nfunction signedDiv(x, y) {\n return (x - (x % y)) / y;\n}\nfunction wdiv(x, y) {\n return frac(x, constants_2.WAD, y);\n}\nfunction safeWDiv(x, y) {\n if (y.eq(constants_2.ZERO))\n return constants_2.ZERO;\n return frac(x, constants_2.WAD, y);\n}\nfunction wdivUp(x, y) {\n return fracUp(x, constants_2.WAD, y);\n}\nfunction wdivDown(x, y) {\n return fracDown(x, constants_2.WAD, y);\n}\nfunction wmul(x, y) {\n return frac(x, y, constants_2.WAD);\n}\nfunction wmulInt(x, y) {\n let product = x.mul(y);\n if (product.isNegative()) {\n product = product.sub(constants_2.WAD.div(2));\n }\n else {\n product = product.add(constants_2.WAD.div(2));\n }\n return product.div(constants_2.WAD);\n}\nfunction wmulUp(x, y) {\n return fracUp(x, y, constants_2.WAD);\n}\nfunction wmulDown(x, y) {\n return fracDown(x, y, constants_2.WAD);\n}\nfunction fracUp(x, y, w) {\n const prod = x.mul(y).add(w.sub(1));\n return prod.div(w);\n}\nfunction fracDown(x, y, w) {\n return x.mul(y).div(w);\n}\nfunction frac(x, y, w) {\n const prod = x.mul(y).add(w.div(2));\n return prod.div(w);\n}\nfunction weightedAverage(w1, x1, w2, x2) {\n return x1.mul(w1).add(x2.mul(w2)).div(w1.add(w2));\n}\nfunction r2w(x) {\n x = ethers_1.BigNumber.from(x);\n return x.mul(ethers_1.BigNumber.from(10).pow(14));\n}\nfunction s2w(x) {\n x = ethers_1.BigNumber.from(x);\n return x.mul(ethers_1.BigNumber.from(10).pow(16));\n}\nfunction d2w(x, decimals) {\n return x.mul(ethers_1.BigNumber.from(10).pow(18 - decimals));\n}\nfunction w2d(x, decimals) {\n return wmul(x, ethers_1.BigNumber.from(10).pow(decimals));\n}\nfunction mulMod(x, y, d) {\n return x.mod(d).mul(y.mod(d)).mod(d);\n}\nfunction fullMul(x, y) {\n const mm = mulMod(x, y, constants_2.MAX_UINT_256);\n const l = x.mul(y);\n let h = mm.sub(l);\n if (mm.lt(l)) {\n h = h.sub(1);\n }\n return { l, h };\n}\nfunction fullDiv(l, h, d) {\n const negd = constants_2.MAX_UINT_256.sub(d).add(1);\n const pow2 = d.and(negd);\n d = d.div(pow2);\n l = l.div(pow2);\n const negPow2 = constants_2.MAX_UINT_256.sub(pow2).add(1);\n l = l.add(h.mul(negPow2.div(pow2).add(1)));\n let r = constants_2.ONE;\n for (let i = 0; i < 8; i++) {\n r = r.mul(constants_2.TWO.sub(d.mul(r)));\n }\n return l.mul(r);\n}\nfunction mulDiv(x, y, d) {\n let { l: _l, h: _h } = fullMul(x, y);\n const mm = mulMod(x, y, d);\n if (mm.gt(_l)) {\n _h = _h.sub(1);\n }\n _l = _l.sub(mm);\n return fullDiv(_l, _h, d);\n}\nfunction sqrtX96ToWad(sqrtPX96) {\n sqrtPX96 = ethers_1.BigNumber.from(sqrtPX96);\n const px96 = mulDiv(sqrtPX96, sqrtPX96, constants_2.Q96);\n return mulDiv(px96, constants_2.WAD, constants_2.Q96);\n}\nfunction wadToSqrtX96(price) {\n const x96 = price.mul(constants_2.Q96).div(constants_2.WAD);\n return sqrt(x96.mul(constants_2.Q96));\n}\nfunction wadToTick(price) {\n const sqrtX96 = wadToSqrtX96(price);\n return tickMath_1.TickMath.getTickAtSqrtRatio(sqrtX96);\n}\nfunction leastSignificantBit(x) {\n let r = 255;\n if (x.and(constants_2.MAX_UINT_128).gt(constants_2.ZERO)) {\n r -= 128;\n }\n else {\n x = x.shr(128);\n }\n if (x.and(constants_2.MAX_UINT_64).gt(constants_2.ZERO)) {\n r -= 64;\n }\n else {\n x = x.shr(64);\n }\n if (x.and(constants_2.MAX_UINT_32).gt(constants_2.ZERO)) {\n r -= 32;\n }\n else {\n x = x.shr(32);\n }\n if (x.and(constants_2.MAX_UINT_16).gt(constants_2.ZERO)) {\n r -= 16;\n }\n else {\n x = x.shr(16);\n }\n if (x.and(constants_2.MAX_UINT_8).gt(constants_2.ZERO)) {\n r -= 8;\n }\n else {\n x = x.shr(8);\n }\n if (x.and(ethers_1.BigNumber.from('0xf')).gt(constants_2.ZERO)) {\n r -= 4;\n }\n else {\n x = x.shr(4);\n }\n if (x.and(ethers_1.BigNumber.from('0x3')).gt(constants_2.ZERO)) {\n r -= 2;\n }\n else {\n x = x.shr(2);\n }\n if (x.and(ethers_1.BigNumber.from('0x1')).gt(constants_2.ZERO))\n r -= 1;\n return r;\n}\nfunction leastNonnegativeRemainder(x, modulus) {\n return ((x % modulus) + modulus) % modulus;\n}\nfunction leastNonnegativeComplement(x, modulus) {\n return (modulus - (x % modulus)) % modulus;\n}\nfunction maxAmongThree(a, b, c) {\n return (a.gt(b) ? a : b).gt(c) ? (a.gt(b) ? a : b) : c;\n}\nfunction max(left, right) {\n return left.gt(right) ? left : right;\n}\nfunction min(left, right) {\n return left.gt(right) ? right : left;\n}\nfunction relativeDiffRatioWadAbs(wadA, wadB) {\n return wdivUp(wadA.sub(wadB).abs(), wadA.lt(wadB) ? wadA : wadB);\n}\nfunction getOrderLeverageByMargin(targetTick, baseSize, margin) {\n return wdiv(wmul(tickMath_1.TickMath.getWadAtTick(targetTick), baseSize.abs()), margin);\n}\nfunction getMaxLeverage(imr) {\n return 1 / (imr / 10 ** constants_1.RATIO_DECIMALS);\n}\nfunction calcMaxWithdrawable(threshold, pending, fundFlow, reserve) {\n const maxWithdrawable = threshold\n .add(pending.exemption)\n .sub(fundFlow.totalOut)\n .add(fundFlow.totalIn)\n .sub(pending.amount);\n if (maxWithdrawable.lte(0))\n return constants_2.ZERO;\n if (maxWithdrawable.gt(reserve))\n return reserve;\n return maxWithdrawable;\n}\nfunction alignPriceToTick(price) {\n let tick = wadToTick(price);\n tick = Math.round(tick / constants_1.PEARL_SPACING) * constants_1.PEARL_SPACING;\n const alignedprice = tickMath_1.TickMath.getWadAtTick(tick);\n return { tick: tick, price: alignedprice };\n}\nfunction calcBoost(alpha, imr) {\n if (alpha === 1) {\n throw new calculationError_1.CalculationError('Invalid alpha', { alpha });\n }\n imr = imr / 10 ** constants_1.RATIO_DECIMALS;\n return -2 / (alpha * (imr + 1) - Math.sqrt(alpha)) / (1 / Math.sqrt(alpha) - 1);\n}\nfunction calcAsymmetricBoost(alphaLower, alphaUpper, imr) {\n if (alphaLower === 1 && alphaUpper === 1) {\n throw new calculationError_1.CalculationError('Invalid alpha and beta', { alphaLower, alphaUpper, imr });\n }\n imr = imr / 10 ** constants_1.RATIO_DECIMALS;\n const boostLower = 2 / (1 / Math.sqrt(alphaLower) - 1) / ((1 / Math.sqrt(alphaLower)) * (1 - imr) - 1);\n const boostUpper = calcBoost(alphaUpper, imr);\n return Math.min(boostLower, boostUpper);\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EMPTY_TICK = exports.ANY_PRICE_TICK = exports.TICK_DELTA_MAX = exports.MAX_SAFE_INTEGER = exports.POWERS_OF_2 = exports.MAX_INT_24 = exports.MAX_UINT_160 = exports.MAX_UINT_8 = exports.MAX_UINT_16 = exports.MAX_UINT_24 = exports.MAX_UINT_32 = exports.MAX_UINT_64 = exports.MAX_UINT_128 = exports.MAX_UINT_256 = exports.ADDRESS_ZERO = exports.WAD = exports.Q192 = exports.Q96 = exports.Q32 = exports.Q24 = exports.TWO = exports.ONE = exports.ZERO = exports.NEGATIVE_ONE = void 0;\nconst ethers_1 = require(\"ethers\");\nexports.NEGATIVE_ONE = ethers_1.BigNumber.from(-1);\nexports.ZERO = ethers_1.BigNumber.from(0);\nexports.ONE = ethers_1.BigNumber.from(1);\nexports.TWO = ethers_1.BigNumber.from(2);\nexports.Q24 = exports.TWO.pow(24);\nexports.Q32 = exports.TWO.pow(32);\nexports.Q96 = exports.TWO.pow(96);\nexports.Q192 = exports.TWO.pow(192);\nexports.WAD = ethers_1.BigNumber.from(10).pow(18);\nexports.ADDRESS_ZERO = '0x0000000000000000000000000000000000000000';\nexports.MAX_UINT_256 = ethers_1.BigNumber.from('0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff');\nexports.MAX_UINT_128 = exports.TWO.pow(128).sub(exports.ONE);\nexports.MAX_UINT_64 = exports.TWO.pow(64).sub(exports.ONE);\nexports.MAX_UINT_32 = exports.TWO.pow(32).sub(exports.ONE);\nexports.MAX_UINT_24 = exports.TWO.pow(24).sub(exports.ONE);\nexports.MAX_UINT_16 = exports.TWO.pow(16).sub(exports.ONE);\nexports.MAX_UINT_8 = exports.TWO.pow(8).sub(exports.ONE);\nexports.MAX_UINT_160 = exports.TWO.pow(160).sub(exports.ONE);\nexports.MAX_INT_24 = exports.TWO.pow(23).sub(exports.ONE);\nexports.POWERS_OF_2 = [128, 64, 32, 16, 8, 4, 2, 1].map((pow) => [pow, exports.TWO.pow(pow)]);\nexports.MAX_SAFE_INTEGER = ethers_1.BigNumber.from(String(Number.MAX_SAFE_INTEGER));\nexports.TICK_DELTA_MAX = 16096;\nexports.ANY_PRICE_TICK = ethers_1.BigNumber.from(140737496743935);\nexports.EMPTY_TICK = exports.TWO.pow(23).sub(exports.ONE);\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./basic\"), exports);\n__exportStar(require(\"./constants\"), exports);\n__exportStar(require(\"./numeric\"), exports);\n__exportStar(require(\"./sqrtPriceMath\"), exports);\n__exportStar(require(\"./swapMath\"), exports);\n__exportStar(require(\"./tickMath\"), exports);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NumericConverter = void 0;\nexports.asUint16 = asUint16;\nexports.asInt24 = asInt24;\nexports.asUint24 = asUint24;\nexports.asUint48 = asUint48;\nexports.asUint96 = asUint96;\nexports.asUint128 = asUint128;\nexports.asUint256 = asUint256;\nexports.forceAsInt24 = forceAsInt24;\nexports.asInt256 = asInt256;\nexports.asInt128 = asInt128;\nexports.decompose = decompose;\nconst ethers_1 = require(\"ethers\");\nconst constants_1 = require(\"./constants\");\nfunction asUint16(x) {\n if (x < 0) {\n x += 1 << 16;\n }\n return x;\n}\nfunction asInt24(x) {\n const MAX_INT_24 = (1 << 23) - 1;\n if (x > MAX_INT_24) {\n x -= 1 << 24;\n }\n return x;\n}\nfunction asUint24(x) {\n if (x < 0) {\n x += 1 << 24;\n }\n return x;\n}\nfunction asUint48(x) {\n if (x < 0) {\n x += 1 << 48;\n }\n return x;\n}\nfunction asUint96(x) {\n if (x.isNegative()) {\n x = x.add(constants_1.ONE.shl(96));\n }\n return x;\n}\nfunction asUint128(x) {\n if (x.isNegative()) {\n x = x.add(constants_1.ONE.shl(128));\n }\n return x;\n}\nfunction asUint256(x) {\n if (x.isNegative()) {\n x = x.add(constants_1.ONE.shl(256));\n }\n return x;\n}\nfunction forceAsInt24(x) {\n x = x.and(constants_1.ONE.shl(24).sub(constants_1.ONE));\n if (x.gt(constants_1.MAX_INT_24)) {\n x = x.sub(constants_1.ONE.shl(24));\n }\n return x;\n}\nfunction asInt256(x) {\n if (x.gt(ethers_1.ethers.constants.MaxInt256)) {\n x = x.sub(constants_1.ONE.shl(256));\n }\n return x;\n}\nfunction asInt128(x) {\n const MAX_INT_128 = constants_1.ONE.shl(127).sub(constants_1.ONE);\n if (x.gt(MAX_INT_128)) {\n x = x.sub(constants_1.ONE.shl(128));\n }\n return x;\n}\nfunction decompose(tick) {\n const wordPos = tick >> 8;\n let bitPos = tick % 256;\n if (bitPos < 0)\n bitPos += 256;\n return { wordPos, bitPos };\n}\nclass NumericConverter {\n static scaleQuoteAmount(amount, quoteDecimals) {\n const quoteAmountScaler = ethers_1.BigNumber.from(10).pow(18 - quoteDecimals);\n return amount.mul(quoteAmountScaler);\n }\n static toContractQuoteAmount(amount, quoteDecimals) {\n const quoteAmountScaler = ethers_1.BigNumber.from(10).pow(18 - quoteDecimals);\n return amount.div(quoteAmountScaler);\n }\n static toContractRatio(ratioWad) {\n return ratioWad.div(ethers_1.BigNumber.from(10).pow(14)).toNumber();\n }\n}\nexports.NumericConverter = NumericConverter;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SqrtPriceMath = void 0;\nconst ethers_1 = require(\"ethers\");\nconst utils_1 = require(\"../utils\");\nconst constants_1 = require(\"./constants\");\nconst basic_1 = require(\"./basic\");\nclass SqrtPriceMath {\n static getDeltaBaseAutoRoundUp(sqrtRatioAX96, sqrtRatioBX96, liquidity) {\n return liquidity.lt(constants_1.ZERO)\n ? this.getDeltaBase(sqrtRatioAX96, sqrtRatioBX96, liquidity.mul(-1), false).mul(-1)\n : this.getDeltaBase(sqrtRatioAX96, sqrtRatioBX96, liquidity, true);\n }\n static getDeltaQuoteAutoRoundUp(sqrtRatioAX96, sqrtRatioBX96, liquidity) {\n return liquidity.lt(constants_1.ZERO)\n ? this.getDeltaQuote(sqrtRatioAX96, sqrtRatioBX96, liquidity.mul(-1), false).mul(-1)\n : this.getDeltaQuote(sqrtRatioAX96, sqrtRatioBX96, liquidity, true);\n }\n static getDeltaBase(sqrtRatioAX96, sqrtRatioBX96, liquidity, roundUp) {\n if (sqrtRatioAX96.gt(sqrtRatioBX96)) {\n [sqrtRatioAX96, sqrtRatioBX96] = [sqrtRatioBX96, sqrtRatioAX96];\n }\n const numerator1 = liquidity.shl(96);\n const numerator2 = sqrtRatioBX96.sub(sqrtRatioAX96);\n return roundUp\n ? (0, basic_1.mulDivRoundingUp)((0, basic_1.mulDivRoundingUp)(numerator1, numerator2, sqrtRatioBX96), constants_1.ONE, sqrtRatioAX96)\n : numerator1.mul(numerator2).div(sqrtRatioBX96).div(sqrtRatioAX96);\n }\n static getDeltaQuote(sqrtRatioAX96, sqrtRatioBX96, liquidity, roundUp) {\n if (sqrtRatioAX96.gt(sqrtRatioBX96)) {\n [sqrtRatioAX96, sqrtRatioBX96] = [sqrtRatioBX96, sqrtRatioAX96];\n }\n return roundUp\n ? (0, basic_1.mulDivRoundingUp)(liquidity, sqrtRatioBX96.sub(sqrtRatioAX96), constants_1.Q96)\n : sqrtRatioBX96.sub(sqrtRatioAX96).mul(liquidity).div(constants_1.Q96);\n }\n static getNextSqrtPriceFromDeltaBase(sqrtPX96, liquidity, amount, isLong) {\n (0, utils_1.solidityRequire)(sqrtPX96.gt(constants_1.ZERO));\n (0, utils_1.solidityRequire)(liquidity.gt(constants_1.ZERO));\n return this.getNextSqrtPriceFromAmount0RoundingUp(sqrtPX96, liquidity, amount, !isLong);\n }\n static getNextSqrtPriceFromInput(sqrtPX96, liquidity, amountIn, zeroForOne) {\n (0, utils_1.solidityRequire)(sqrtPX96.gt(constants_1.ZERO));\n (0, utils_1.solidityRequire)(liquidity.gt(constants_1.ZERO));\n return zeroForOne\n ? this.getNextSqrtPriceFromAmount0RoundingUp(sqrtPX96, liquidity, amountIn, true)\n : this.getNextSqrtPriceFromAmount1RoundingDown(sqrtPX96, liquidity, amountIn, true);\n }\n static getNextSqrtPriceFromOutput(sqrtPX96, liquidity, amountOut, zeroForOne) {\n (0, utils_1.solidityRequire)(sqrtPX96.gt(constants_1.ZERO));\n (0, utils_1.solidityRequire)(liquidity.gt(constants_1.ZERO));\n return zeroForOne\n ? this.getNextSqrtPriceFromAmount1RoundingDown(sqrtPX96, liquidity, amountOut, false)\n : this.getNextSqrtPriceFromAmount0RoundingUp(sqrtPX96, liquidity, amountOut, false);\n }\n static getLiquidityFromMargin(sqrtEntryPX96, sqrtUpperPX96, entryMargin, initialMarginRatio) {\n (0, utils_1.solidityRequire)(sqrtEntryPX96.gt(constants_1.ZERO));\n (0, utils_1.solidityRequire)(sqrtUpperPX96.gt(constants_1.ZERO));\n const numerator1 = entryMargin.mul(sqrtUpperPX96);\n const numerator2 = sqrtEntryPX96;\n const denominator1 = sqrtUpperPX96.sub(sqrtEntryPX96);\n let temp = numerator1.mul(numerator2).div(denominator1);\n temp = temp.mul(constants_1.Q96).div(sqrtUpperPX96);\n const denominator2 = (0, basic_1.wmulUp)(sqrtUpperPX96, (0, basic_1.r2w)(initialMarginRatio + 10000)).sub(sqrtEntryPX96);\n return temp.div(denominator2);\n }\n static getNextSqrtPriceFromAmount0RoundingUp(sqrtPX96, liquidity, amount, add) {\n if (amount.eq(constants_1.ZERO))\n return sqrtPX96;\n const numerator1 = liquidity.shl(96);\n if (add) {\n const product = (0, basic_1.multiplyIn256)(amount, sqrtPX96);\n if (product.div(amount).eq(sqrtPX96)) {\n const denominator = (0, basic_1.addIn256)(numerator1, product);\n if (denominator.gte(numerator1)) {\n return (0, basic_1.mulDivRoundingUp)(numerator1, sqrtPX96, denominator);\n }\n }\n return (0, basic_1.mulDivRoundingUp)(numerator1, constants_1.ONE, numerator1.div(sqrtPX96).add(amount));\n }\n else {\n const product = (0, basic_1.multiplyIn256)(amount, sqrtPX96);\n (0, utils_1.solidityRequire)(product.div(amount).eq(sqrtPX96));\n (0, utils_1.solidityRequire)(numerator1.gt(product));\n return (0, basic_1.mulDivRoundingUp)(numerator1, sqrtPX96, numerator1.sub(product));\n }\n }\n static getNextSqrtPriceFromAmount1RoundingDown(sqrtPX96, liquidity, amount, add) {\n if (add) {\n const quotient = amount.lte(constants_1.MAX_UINT_160) ? amount.shl(96).div(liquidity) : amount.mul(constants_1.Q96).div(liquidity);\n return sqrtPX96.add(quotient);\n }\n else {\n const quotient = (0, basic_1.mulDivRoundingUp)(amount, constants_1.Q96, liquidity);\n (0, utils_1.solidityRequire)(sqrtPX96.gt(quotient));\n return sqrtPX96.sub(quotient);\n }\n }\n static getStabilityFee(quotation, param) {\n const feePaid = quotation.fee;\n const protocolFeePaid = (0, basic_1.wmulUp)(quotation.entryNotional, (0, basic_1.r2w)(param.protocolFeeRatio));\n const baseFeePaid = (0, basic_1.wmulUp)(quotation.entryNotional, (0, basic_1.r2w)(param.tradingFeeRatio));\n let stabilityFee = feePaid.sub(protocolFeePaid).sub(baseFeePaid);\n if (stabilityFee.lt(0))\n stabilityFee = constants_1.ZERO;\n return stabilityFee;\n }\n getStabilityFeeRatio(quotation, param, maintenanceMarginRatio) {\n void maintenanceMarginRatio;\n const stabilityFee = SqrtPriceMath.getStabilityFee(quotation, param);\n const ratioTemp = (0, basic_1.wdiv)(stabilityFee, quotation.entryNotional);\n const scaler = ethers_1.BigNumber.from(10).pow(14);\n const ratio = ratioTemp.add(scaler.sub(1)).div(scaler);\n return ratio.toNumber();\n }\n}\nexports.SqrtPriceMath = SqrtPriceMath;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SwapMath = void 0;\nconst constants_1 = require(\"./constants\");\nconst sqrtPriceMath_1 = require(\"./sqrtPriceMath\");\nconst tickMath_1 = require(\"./tickMath\");\nconst basic_1 = require(\"./basic\");\nclass SwapMath {\n static swapWithinRange(sqrtCurrentPX96, sqrtTargetPX96, liquidity, sizeLeft) {\n const long = sizeLeft.gt(constants_1.ZERO);\n const dxMax = sqrtPriceMath_1.SqrtPriceMath.getDeltaBaseAutoRoundUp(sqrtTargetPX96, sqrtCurrentPX96, liquidity);\n let dxAbs = sizeLeft.abs();\n let sqrtPostPX96;\n if (dxAbs.gte(dxMax)) {\n dxAbs = dxMax;\n sqrtPostPX96 = sqrtTargetPX96;\n }\n else {\n sqrtPostPX96 = sqrtPriceMath_1.SqrtPriceMath.getNextSqrtPriceFromDeltaBase(sqrtCurrentPX96, liquidity, dxAbs, long);\n }\n const dy = sqrtPriceMath_1.SqrtPriceMath.getDeltaQuote(sqrtPostPX96, sqrtCurrentPX96, liquidity, long);\n const dx = long ? dxAbs : dxAbs.mul(-1);\n return { sqrtPostPX96, dx, dy };\n }\n static swapCrossRange(pair, size) {\n const amm = pair.amm;\n const ticks = [];\n const takens = [];\n const long = size.gt(constants_1.ZERO);\n let totalOrderValue = constants_1.ZERO;\n let totalCurveValue = constants_1.ZERO;\n let swapSize = size;\n const currTickLeft = pair.getPearl(amm.tick).left;\n if (!swapSize.eq(0) && long && currTickLeft.lt(0)) {\n const taken = swapSize.abs().gte(currTickLeft.abs()) ? currTickLeft : swapSize.mul(-1);\n ticks.push(amm.tick);\n takens.push(taken);\n const takenValue = tickMath_1.TickMath.calcTakenNotional(amm.tick, taken);\n swapSize = swapSize.add(taken);\n totalOrderValue = totalOrderValue.add(takenValue);\n if (swapSize.eq(0)) {\n return { liquidity: amm.liquidity, ticks, takens };\n }\n }\n let targetTick = tickMath_1.TickMath.nextInitializedTick(pair.tbitmap, long ? amm.tick : amm.tick + 1, long);\n let sqrtPX96State = amm.sqrtPX96;\n let liquidityState = amm.liquidity;\n while (true) {\n const targetPX96 = tickMath_1.TickMath.getSqrtRatioAtTick(targetTick);\n const { sqrtPostPX96, dx, dy } = SwapMath.swapWithinRange(sqrtPX96State, targetPX96, liquidityState, swapSize);\n sqrtPX96State = sqrtPostPX96;\n swapSize = swapSize.sub(dx);\n totalCurveValue = totalCurveValue.add(dy);\n if (sqrtPostPX96 == targetPX96) {\n const left = pair.getPearl(targetTick).left;\n if (!swapSize.eq(0) && ((long && left.lt(0)) || (!long && left.gt(0)))) {\n const taken = swapSize.abs().gte(left.abs()) ? left : swapSize.mul(-1);\n ticks.push(targetTick);\n takens.push(taken);\n const takenValue = tickMath_1.TickMath.calcTakenNotional(targetTick, taken);\n swapSize = swapSize.add(taken);\n totalOrderValue = totalOrderValue.add(takenValue);\n }\n const isRangeEnd = pair.getPearl(targetTick).liquidityGross.gt(0);\n const lastLiquidity = liquidityState;\n if (isRangeEnd) {\n let liqNet = pair.getPearl(targetTick).liquidityNet;\n if (!long)\n liqNet = (0, basic_1.neg)(liqNet);\n liquidityState = liquidityState.add(liqNet);\n }\n if (swapSize.eq(constants_1.ZERO)) {\n if (!long) {\n liquidityState = lastLiquidity;\n }\n break;\n }\n targetTick = tickMath_1.TickMath.nextInitializedTick(pair.tbitmap, targetTick, long);\n }\n else {\n break;\n }\n }\n return { liquidity: liquidityState, ticks, takens };\n }\n}\nexports.SwapMath = SwapMath;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TickMath = void 0;\nconst ethers_1 = require(\"ethers\");\nconst utils_1 = require(\"../utils\");\nconst constants_1 = require(\"../constants\");\nconst enum_1 = require(\"../enum\");\nconst constants_2 = require(\"./constants\");\nconst basic_1 = require(\"./basic\");\nconst numeric_1 = require(\"./numeric\");\nconst calculationError_1 = require(\"../errors/calculationError\");\nconst utils_2 = require(\"../utils\");\nclass TickMath {\n static getSqrtRatioAtTick(tick) {\n (0, utils_1.solidityRequire)(tick >= TickMath.MIN_TICK && tick <= TickMath.MAX_TICK && Number.isInteger(tick), 'TICK');\n const absTick = tick < 0 ? tick * -1 : tick;\n let ratio = (absTick & 0x1) != 0\n ? ethers_1.BigNumber.from('0xfffcb933bd6fad37aa2d162d1a594001')\n : ethers_1.BigNumber.from('0x100000000000000000000000000000000');\n if ((absTick & 0x2) != 0)\n ratio = (0, basic_1.mulShift)(ratio, '0xfff97272373d413259a46990580e213a');\n if ((absTick & 0x4) != 0)\n ratio = (0, basic_1.mulShift)(ratio, '0xfff2e50f5f656932ef12357cf3c7fdcc');\n if ((absTick & 0x8) != 0)\n ratio = (0, basic_1.mulShift)(ratio, '0xffe5caca7e10e4e61c3624eaa0941cd0');\n if ((absTick & 0x10) != 0)\n ratio = (0, basic_1.mulShift)(ratio, '0xffcb9843d60f6159c9db58835c926644');\n if ((absTick & 0x20) != 0)\n ratio = (0, basic_1.mulShift)(ratio, '0xff973b41fa98c081472e6896dfb254c0');\n if ((absTick & 0x40) != 0)\n ratio = (0, basic_1.mulShift)(ratio, '0xff2ea16466c96a3843ec78b326b52861');\n if ((absTick & 0x80) != 0)\n ratio = (0, basic_1.mulShift)(ratio, '0xfe5dee046a99a2a811c461f1969c3053');\n if ((absTick & 0x100) != 0)\n ratio = (0, basic_1.mulShift)(ratio, '0xfcbe86c7900a88aedcffc83b479aa3a4');\n if ((absTick & 0x200) != 0)\n ratio = (0, basic_1.mulShift)(ratio, '0xf987a7253ac413176f2b074cf7815e54');\n if ((absTick & 0x400) != 0)\n ratio = (0, basic_1.mulShift)(ratio, '0xf3392b0822b70005940c7a398e4b70f3');\n if ((absTick & 0x800) != 0)\n ratio = (0, basic_1.mulShift)(ratio, '0xe7159475a2c29b7443b29c7fa6e889d9');\n if ((absTick & 0x1000) != 0)\n ratio = (0, basic_1.mulShift)(ratio, '0xd097f3bdfd2022b8845ad8f792aa5825');\n if ((absTick & 0x2000) != 0)\n ratio = (0, basic_1.mulShift)(ratio, '0xa9f746462d870fdf8a65dc1f90e061e5');\n if ((absTick & 0x4000) != 0)\n ratio = (0, basic_1.mulShift)(ratio, '0x70d869a156d2a1b890bb3df62baf32f7');\n if ((absTick & 0x8000) != 0)\n ratio = (0, basic_1.mulShift)(ratio, '0x31be135f97d08fd981231505542fcfa6');\n if ((absTick & 0x10000) != 0)\n ratio = (0, basic_1.mulShift)(ratio, '0x9aa508b5b7a84e1c677de54f3e99bc9');\n if ((absTick & 0x20000) != 0)\n ratio = (0, basic_1.mulShift)(ratio, '0x5d6af8dedb81196699c329225ee604');\n if ((absTick & 0x40000) != 0)\n ratio = (0, basic_1.mulShift)(ratio, '0x2216e584f5fa1ea926041bedfe98');\n if ((absTick & 0x80000) != 0)\n ratio = (0, basic_1.mulShift)(ratio, '0x48a170391f7dc42444e8fa2');\n if (tick > 0)\n ratio = constants_2.MAX_UINT_256.div(ratio);\n return ratio.mod(constants_2.Q32).gt(constants_2.ZERO) ? ratio.div(constants_2.Q32).add(constants_2.ONE) : ratio.div(constants_2.Q32);\n }\n static getTickAtSqrtRatio(sqrtRatioX96) {\n (0, utils_1.solidityRequire)(sqrtRatioX96.gte(TickMath.MIN_SQRT_RATIO) && sqrtRatioX96.lt(TickMath.MAX_SQRT_RATIO), 'SQRT_RATIO');\n const sqrtRatioX128 = sqrtRatioX96.shl(32);\n const msb = (0, basic_1.mostSignificantBit)(sqrtRatioX128);\n let r;\n if (msb >= 128) {\n r = sqrtRatioX128.shr(msb - 127);\n }\n else {\n r = sqrtRatioX128.shl(127 - msb);\n }\n let log_2 = ethers_1.BigNumber.from(msb - 128).mul(constants_2.ONE.shl(64));\n let unsignedLog_2 = (0, numeric_1.asUint256)(log_2);\n for (let i = 0; i < 14; i++) {\n r = r.mul(r).shr(127);\n const f = r.shr(128);\n unsignedLog_2 = unsignedLog_2.or(f.shl(63 - i));\n r = r.shr(f.toNumber());\n }\n log_2 = (0, numeric_1.asInt256)(unsignedLog_2);\n const log_sqrt10001 = log_2.mul(ethers_1.BigNumber.from('255738958999603826347141'));\n const tickLow = (0, numeric_1.forceAsInt24)(this.signedShr(log_sqrt10001.sub(ethers_1.BigNumber.from('3402992956809132418596140100660247210')), 128)).toNumber();\n const tickHigh = (0, numeric_1.forceAsInt24)(this.signedShr(log_sqrt10001.add(ethers_1.BigNumber.from('291339464771989622907027621153398088495')), 128)).toNumber();\n return tickLow === tickHigh\n ? tickLow\n : TickMath.getSqrtRatioAtTick(tickHigh).lte(sqrtRatioX96)\n ? tickHigh\n : tickLow;\n }\n static signedShr(number, bits) {\n const negative = number.isNegative();\n const temp = negative ? (0, numeric_1.asUint256)(number) : number;\n return temp.shr(bits);\n }\n static getWadAtTick(tick) {\n return (0, basic_1.sqrtX96ToWad)(this.getSqrtRatioAtTick(tick));\n }\n static getTickAtPWad(pWad) {\n const sqrtX96 = (0, basic_1.wadToSqrtX96)(pWad);\n return this.getTickAtSqrtRatio(sqrtX96);\n }\n static calcTakenNotional(tick, size) {\n const price = TickMath.getWadAtTick(tick);\n return (0, basic_1.wmul)(price, size.abs());\n }\n static nextInitializedTick(tickBitMap, tick, right) {\n if (right) {\n const compressed = (0, basic_1.signedDiv)(tick - (0, basic_1.leastNonnegativeRemainder)(tick, constants_1.PEARL_SPACING), constants_1.PEARL_SPACING);\n const start = compressed + 1;\n let { wordPos, bitPos } = (0, numeric_1.decompose)(start);\n const word = tickBitMap.get(wordPos) ?? constants_2.ZERO;\n let masked = word.sub(word.mask(bitPos));\n if (!masked.isZero()) {\n return (start + (0, basic_1.leastSignificantBit)(masked) - bitPos) * constants_1.PEARL_SPACING;\n }\n const UPPER_BOUND = (0, basic_1.signedDiv)(constants_1.MAX_TICK, constants_1.PEARL_SPACING) >> 8;\n while (wordPos < UPPER_BOUND) {\n wordPos++;\n masked = tickBitMap.get(wordPos) ?? constants_2.ZERO;\n if (!masked.isZero()) {\n return (wordPos * 256 + (0, basic_1.leastSignificantBit)(masked)) * constants_1.PEARL_SPACING;\n }\n }\n throw new calculationError_1.CalculationError('Search tick upward, out of bound', { tickBitMap, tick, right });\n }\n else {\n const compressed = (0, basic_1.signedDiv)(tick + (0, basic_1.leastNonnegativeComplement)(tick, constants_1.PEARL_SPACING), constants_1.PEARL_SPACING);\n const start = compressed - 1;\n let { wordPos, bitPos } = (0, numeric_1.decompose)(start);\n const word = tickBitMap.get(wordPos) ?? constants_2.ZERO;\n let masked = word.mask(bitPos + 1);\n if (!masked.isZero()) {\n return (start - (bitPos - (0, basic_1.mostSignificantBit)(masked))) * constants_1.PEARL_SPACING;\n }\n const LOWER_BOUND = (0, basic_1.signedDiv)(constants_1.MIN_TICK, constants_1.PEARL_SPACING) >> 8;\n while (wordPos > LOWER_BOUND) {\n wordPos--;\n masked = tickBitMap.get(wordPos) ?? constants_2.ZERO;\n if (!masked.isZero()) {\n return (wordPos * 256 + (0, basic_1.mostSignificantBit)(masked)) * constants_1.PEARL_SPACING;\n }\n }\n throw new calculationError_1.CalculationError('Search tick down, out of bound', { tickBitMap, tick, right });\n }\n }\n static getLimitTick(tradePrice, slippage, side) {\n const sign = (0, utils_1.signOfSide)(side);\n const limitPrice = tradePrice.mul(constants_1.ONE_RATIO + sign * slippage).div(constants_1.ONE_RATIO);\n const limitTick = TickMath.getTickAtPWad(limitPrice);\n return side == enum_1.Side.LONG ? limitTick : limitTick + 1;\n }\n static encodeLimitTicks(sqrtStrikeLowerPX96, sqrtStrikeUpperPX96) {\n let strikeLowerTick = sqrtStrikeLowerPX96.eq(0)\n ? constants_1.INT24_MIN\n : TickMath.getTickAtSqrtRatio(sqrtStrikeLowerPX96) + 1;\n strikeLowerTick = strikeLowerTick < 0 ? (1 << 24) + strikeLowerTick : strikeLowerTick;\n let strikeUpperTick = sqrtStrikeUpperPX96.eq(0) ? constants_1.INT24_MAX : TickMath.getTickAtSqrtRatio(sqrtStrikeUpperPX96);\n strikeUpperTick = strikeUpperTick < 0 ? (1 << 24) + strikeUpperTick : strikeUpperTick;\n return ethers_1.BigNumber.from(strikeLowerTick).mul(ethers_1.BigNumber.from(2).pow(24)).add(strikeUpperTick);\n }\n static async getTickBitMaps(observer, instrument, expiry) {\n const keys = new Array();\n for (let i = -128; i < 128; i++) {\n keys.push(i);\n }\n const res = await observer.getTickBitmaps(instrument, expiry, keys);\n const ret = new Map();\n for (let i = 0; i < keys.length; i++) {\n ret.set(keys[i], res[i]);\n }\n return ret;\n }\n static getTickRangeByAlpha(alphaWad, curTick) {\n const tickDelta = (0, utils_1.alphaWadToTickDelta)(alphaWad);\n let upperTick = constants_1.RANGE_SPACING * ~~((curTick + tickDelta) / constants_1.RANGE_SPACING);\n let lowerTick = constants_1.RANGE_SPACING * ~~((curTick - tickDelta) / constants_1.RANGE_SPACING);\n upperTick = utils_2.lowLevel.alignRangeTick(Math.min(upperTick, curTick + constants_2.TICK_DELTA_MAX), false);\n lowerTick = utils_2.lowLevel.alignRangeTick(Math.max(lowerTick, curTick - constants_2.TICK_DELTA_MAX), true);\n return [lowerTick, upperTick];\n }\n}\nexports.TickMath = TickMath;\nTickMath.MIN_TICK = -322517;\nTickMath.MAX_TICK = 443636;\nTickMath.MIN_SQRT_RATIO = ethers_1.BigNumber.from('7867958450021363558555');\nTickMath.MAX_SQRT_RATIO = ethers_1.BigNumber.from('340275971719517849884101479065584693834');\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CalcModule = void 0;\nconst math_1 = require(\"../math\");\nclass CalcModule {\n constructor(context) {\n this.context = context;\n }\n async alignPriceToTick(instrumentAddr, price) {\n return (0, math_1.alignPriceToTick)(price);\n }\n async getWadAtTick(instrumentAddr, tick) {\n return math_1.TickMath.getWadAtTick(tick);\n }\n async getTickAtPWad(instrumentAddr, price) {\n return math_1.TickMath.getTickAtPWad(price);\n }\n async getWadAtTicks(instrumentAddr, lowerTick, upperTick) {\n return {\n lowerPrice: math_1.TickMath.getWadAtTick(lowerTick),\n upperPrice: math_1.TickMath.getWadAtTick(upperTick),\n };\n }\n async sqrtX96ToWad(instrumentAddr, sqrtPX96) {\n return (0, math_1.sqrtX96ToWad)(sqrtPX96);\n }\n}\nexports.CalcModule = CalcModule;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ConfigModule = void 0;\nconst ethers_1 = require(\"ethers\");\nconst context_1 = require(\"@derivation-tech/context\");\nclass ConfigModule {\n constructor(context) {\n this.context = context;\n }\n async inWhiteListLps(quoteAddr, traders, overrides) {\n let calls = [];\n let results = [];\n let configInterface = this.context.perp.contracts.config.interface;\n if ((this.context.chainId === context_1.CHAIN_ID.BASE ||\n this.context.chainId === context_1.CHAIN_ID.MONADTESTNET ||\n this.context.chainId === context_1.CHAIN_ID.LOCAL) &&\n quoteAddr) {\n for (const trader of traders) {\n calls.push({\n target: this.context.perp.contracts.config.address,\n callData: configInterface.encodeFunctionData('lpWhitelist', [quoteAddr, trader]),\n });\n }\n try {\n const rawData = await this.context.multiCall3.callStatic.aggregate(calls, overrides ?? {});\n for (const data of rawData.returnData) {\n results.push(configInterface.decodeFunctionResult('lpWhitelist', data)[0]);\n }\n return results;\n }\n catch (e) {\n }\n }\n calls = [];\n results = [];\n configInterface = new ethers_1.ethers.utils.Interface([\n 'function lpWhitelist(address user) external view returns (bool)',\n ]);\n for (const trader of traders) {\n calls.push({\n target: this.context.perp.contracts.config.address,\n callData: configInterface.encodeFunctionData('lpWhitelist', [trader]),\n });\n }\n const rawData = await this.context.multiCall3.callStatic.aggregate(calls, overrides ?? {});\n for (const data of rawData.returnData) {\n results.push(configInterface.decodeFunctionResult('lpWhitelist', data)[0]);\n }\n return results;\n }\n async openLp(quoteAddr, overrides) {\n if ((this.context.chainId === context_1.CHAIN_ID.BASE ||\n this.context.chainId === context_1.CHAIN_ID.MONADTESTNET ||\n this.context.chainId === context_1.CHAIN_ID.LOCAL) &&\n quoteAddr) {\n try {\n const restricted = await this.context.perp.contracts.config.restrictLp(quoteAddr, overrides ?? {});\n return !restricted;\n }\n catch (e) {\n }\n }\n return this.context.perp.contracts.config.openLp(overrides ?? {});\n }\n}\nexports.ConfigModule = ConfigModule;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ConfigurationModuleBase = void 0;\nconst context_1 = require(\"@derivation-tech/context\");\nconst typechain_1 = require(\"../../typechain\");\nconst enum_1 = require(\"../../enum\");\nconst utils_1 = require(\"../../utils\");\nconst parser_1 = require(\"../../parser\");\nconst errors_1 = require(\"../../errors\");\nclass ConfigurationModuleBase {\n constructor(context) {\n this.instrumentIdentifiers = new Map();\n this.context = context;\n }\n registerContracts() {\n this.context.registerAddress(this.config.contractAddress.gate, 'Gate');\n this.context.registerAddress(this.config.contractAddress.observer, 'Observer');\n this.context.registerAddress(this.config.contractAddress.config, 'Config');\n this.context.registerContractParser(this.config.contractAddress.gate, new parser_1.GateParser(this.context));\n this.context.registerContractParser(this.config.contractAddress.config, new parser_1.ConfigParser());\n if (this.config.contractAddress.guardian) {\n this.context.registerAddress(this.config.contractAddress.guardian, 'Guardian');\n this.context.registerContractParser(this.config.contractAddress.guardian, new parser_1.GuardianParser());\n }\n for (const marketType in this.config.contractAddress.market) {\n const marketAddress = this.config.contractAddress.market[marketType];\n this.context.registerAddress(marketAddress.market, `${marketType}-Market`);\n this.context.registerAddress(marketAddress.beacon, `${marketType}-InstrumentBeacon`);\n if ((0, utils_1.isCexMarket)(marketType)) {\n this.context.registerContractParser(marketAddress.market, new parser_1.CexMarketParser());\n }\n else {\n this.context.registerContractParser(marketAddress.market, new parser_1.DexV2MarketParser());\n }\n }\n for (const marketType in this.config.contractAddress.feederFactory) {\n const feederFactoryAddress = this.config.contractAddress.feederFactory[marketType];\n if (feederFactoryAddress.factory !== '' && feederFactoryAddress.beacon !== '') {\n this.context.registerAddress(feederFactoryAddress.factory, `${marketType}-FeederFactory`);\n this.context.registerAddress(feederFactoryAddress.beacon, `${marketType}-FeederBeacon`);\n if (marketType === enum_1.MarketType.PYTH) {\n this.context.registerContractParser(feederFactoryAddress.factory, new context_1.ContractParser(typechain_1.PythFeederFactory__factory.createInterface()));\n }\n else if (marketType === enum_1.MarketType.EMG) {\n this.context.registerContractParser(feederFactoryAddress.factory, new context_1.ContractParser(typechain_1.EmergingFeederFactory__factory.createInterface()));\n }\n }\n }\n if (this.config.tokenInfo) {\n for (const token of this.config.tokenInfo) {\n this.context.perp.registerQuoteInfo(token);\n }\n }\n }\n createContracts(provider) {\n const marketContracts = {};\n for (const marketType in this.config.contractAddress.market) {\n const mType = marketType;\n const marketAddress = this.config.contractAddress.market[mType];\n marketContracts[mType] = {\n market: (0, utils_1.isCexMarket)(mType)\n ? typechain_1.CexMarket__factory.connect(marketAddress.market, provider)\n : typechain_1.DexV2Market__factory.connect(marketAddress.market, provider),\n beacon: typechain_1.Beacon__factory.connect(marketAddress.beacon, provider),\n };\n }\n const feederFactoryContracts = {};\n for (const marketType in this.config.contractAddress.feederFactory) {\n const mType = marketType;\n const feederFactoryAddress = this.config.contractAddress.feederFactory[mType];\n if (feederFactoryAddress.factory !== '' && feederFactoryAddress.beacon !== '') {\n if (mType === enum_1.MarketType.PYTH) {\n feederFactoryContracts[mType] = {\n factory: typechain_1.PythFeederFactory__factory.connect(feederFactoryAddress.factory, provider),\n beacon: typechain_1.Beacon__factory.connect(feederFactoryAddress.beacon, provider),\n };\n }\n else if (mType === enum_1.MarketType.EMG) {\n feederFactoryContracts[mType] = {\n factory: typechain_1.EmergingFeederFactory__factory.connect(feederFactoryAddress.factory, provider),\n beacon: typechain_1.Beacon__factory.connect(feederFactoryAddress.beacon, provider),\n };\n }\n else {\n throw new errors_1.SynfError(`Invalid market type: ${mType}`);\n }\n }\n }\n return {\n gate: typechain_1.Gate__factory.connect(this.config.contractAddress.gate, provider),\n observer: typechain_1.Observer__factory.connect(this.config.contractAddress.observer, provider),\n config: typechain_1.Config__factory.connect(this.config.contractAddress.config, provider),\n guardian: this.config.contractAddress.guardian\n ? typechain_1.Guardian__factory.connect(this.config.contractAddress.guardian, provider)\n : undefined,\n marketContracts: marketContracts,\n feederFactoryContracts: feederFactoryContracts,\n };\n }\n onSetProvider() {\n if (this.config) {\n this.registerContracts();\n this.context.perp.contracts = this.createContracts(this.context.provider);\n }\n }\n async update() {\n const config = await this.getConfig();\n if (config) {\n this.config = config;\n this.registerContracts();\n this.context.perp.contracts = this.createContracts(this.context.provider);\n }\n }\n async isInverse(instrument) {\n instrument = instrument.toLowerCase();\n let identifier = this.instrumentIdentifiers.get(instrument);\n if (!identifier) {\n const _instrument = await this.context.perp._observer.getInstrument(instrument);\n if (!_instrument) {\n throw new errors_1.SynfError('Unknown instrument: ' + instrument);\n }\n this.instrumentIdentifiers.set(instrument, (identifier = {\n marketType: _instrument.marketType,\n baseSymbol: _instrument.base,\n quoteSymbol: _instrument.quote,\n }));\n }\n return this.isInverseByIdentifier(identifier);\n }\n async isInverseByIdentifier(identifier) {\n const baseSymbol = typeof identifier.baseSymbol === 'string' ? identifier.baseSymbol : identifier.baseSymbol.symbol;\n const quoteSymbol = typeof identifier.quoteSymbol === 'string' ? identifier.quoteSymbol : identifier.quoteSymbol.symbol;\n const symbol = baseSymbol + '-' + quoteSymbol + '-' + identifier.marketType;\n return !!this.config.inversePairs?.includes(symbol);\n }\n}\nexports.ConfigurationModuleBase = ConfigurationModuleBase;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || (function () {\n var ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n };\n return function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LocalConfigurationModule = void 0;\nconst context_1 = require(\"@derivation-tech/context\");\nconst utils_1 = require(\"../../utils\");\nconst localConfig = __importStar(require(\"./config/local.json\"));\nconst goerliConfig = __importStar(require(\"./config/goerli.json\"));\nconst polygonConfig = __importStar(require(\"./config/polygon.json\"));\nconst scrollConfig = __importStar(require(\"./config/scroll.json\"));\nconst lineaConfig = __importStar(require(\"./config/linea.json\"));\nconst arbitrumConfig = __importStar(require(\"./config/arbitrum.json\"));\nconst blastsepoliaConfig = __importStar(require(\"./config/blastsepolia.json\"));\nconst blastConfig = __importStar(require(\"./config/blast.json\"));\nconst baseConfig = __importStar(require(\"./config/base.json\"));\nconst monadTestnetConfig = __importStar(require(\"./config/monadTestnet.json\"));\nconst configuration_base_module_1 = require(\"./configuration.base.module\");\nclass LocalConfigurationModule extends configuration_base_module_1.ConfigurationModuleBase {\n async getConfig() {\n switch (this.context.chainId) {\n case context_1.CHAIN_ID.LOCAL: {\n return (0, utils_1.loadConfig)(localConfig);\n }\n case context_1.CHAIN_ID.GOERLI: {\n return (0, utils_1.loadConfig)(goerliConfig);\n }\n case context_1.CHAIN_ID.POLYGON: {\n return (0, utils_1.loadConfig)(polygonConfig);\n }\n case context_1.CHAIN_ID.SCROLL: {\n return (0, utils_1.loadConfig)(scrollConfig);\n }\n case context_1.CHAIN_ID.LINEA: {\n return (0, utils_1.loadConfig)(lineaConfig);\n }\n case context_1.CHAIN_ID.ARBITRUM: {\n return (0, utils_1.loadConfig)(arbitrumConfig);\n }\n case context_1.CHAIN_ID.BLASTSEPOLIA: {\n return (0, utils_1.loadConfig)(blastsepoliaConfig);\n }\n case context_1.CHAIN_ID.BLAST: {\n return (0, utils_1.loadConfig)(blastConfig);\n }\n case context_1.CHAIN_ID.BASE: {\n return (0, utils_1.loadConfig)(baseConfig);\n }\n case context_1.CHAIN_ID.MONADTESTNET: {\n return (0, utils_1.loadConfig)(monadTestnetConfig);\n }\n default: {\n return null;\n }\n }\n }\n}\nexports.LocalConfigurationModule = LocalConfigurationModule;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.S3ConfigurationModule = void 0;\nconst axios_1 = __importDefault(require(\"axios\"));\nconst context_1 = require(\"@derivation-tech/context\");\nconst utils_1 = require(\"../../utils\");\nconst configuration_base_module_1 = require(\"./configuration.base.module\");\nconst suppotedChainId = new Set([context_1.CHAIN_ID.BASE, context_1.CHAIN_ID.BLAST, context_1.CHAIN_ID.MONADTESTNET]);\nclass S3ConfigurationModule extends configuration_base_module_1.ConfigurationModuleBase {\n constructor(context, basePath) {\n super(context);\n this.basePath = basePath ?? 'https://api.synfutures.com/s3/config/sdkConfig';\n }\n async getConfig() {\n if (!suppotedChainId.has(this.context.chainId)) {\n return null;\n }\n const url = this.basePath + '/' + this.context.chainId + '.json';\n const res = await axios_1.default.get(url);\n return (0, utils_1.loadConfig)(res.data);\n }\n}\nexports.S3ConfigurationModule = S3ConfigurationModule;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./configuration.interface\"), exports);\n__exportStar(require(\"./configuration.local.module\"), exports);\n__exportStar(require(\"./configuration.s3.module\"), exports);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GateModule = void 0;\nconst constants_1 = require(\"../constants\");\nconst utils_1 = require(\"../utils\");\nconst math_1 = require(\"../math\");\nclass GateModule {\n constructor(context) {\n this.context = context;\n }\n async deposit(quoteAddr, amount, txOptions) {\n const usingNative = quoteAddr.toLowerCase() === constants_1.NATIVE_TOKEN_ADDRESS.toLowerCase();\n const unsignedTx = await this.context.perp.contracts.gate.populateTransaction.deposit((0, utils_1.encodeDepositParam)(quoteAddr, amount), { ...(0, utils_1.toPopulatedTxOverrides)(txOptions), ...(usingNative ? { value: amount } : {}) });\n return this.context.tx.sendTx(unsignedTx, txOptions);\n }\n async depositWad(quoteAddr, amount, txOptions) {\n const usingNative = quoteAddr.toLowerCase() === constants_1.NATIVE_TOKEN_ADDRESS.toLowerCase();\n const quoteInfo = usingNative ? this.context.wrappedNativeToken : await this.context.getTokenInfo(quoteAddr);\n const decimals = quoteInfo.decimals;\n const amountCover = math_1.NumericConverter.toContractQuoteAmount(amount, decimals);\n return this.deposit(quoteAddr, amountCover, txOptions);\n }\n async withdraw(quoteAddr, amount, txOptions) {\n const unsignedTx = await this.context.perp.contracts.gate.populateTransaction.withdraw((0, utils_1.encodeWithdrawParam)(quoteAddr, amount), (0, utils_1.toPopulatedTxOverrides)(txOptions));\n return await this.context.tx.sendTx(unsignedTx, txOptions);\n }\n async withdrawWad(quoteAddr, amount, txOptions) {\n const usingNative = quoteAddr.toLowerCase() === constants_1.NATIVE_TOKEN_ADDRESS.toLowerCase();\n const quoteInfo = usingNative ? this.context.wrappedNativeToken : await this.context.getTokenInfo(quoteAddr);\n const decimals = quoteInfo.decimals;\n const amountCover = math_1.NumericConverter.toContractQuoteAmount(amount, decimals);\n return await this.withdraw(quoteAddr, amountCover, txOptions);\n }\n async getPendingParams(quotes, txOptions) {\n const gateInterface = this.context.perp.contracts.gate.interface;\n const calls = quotes.map((quote) => {\n return {\n target: this.context.perp.contracts.gate.address,\n callData: gateInterface.encodeFunctionData('thresholdOf', [quote]),\n };\n });\n calls.push({\n target: this.context.perp.contracts.gate.address,\n callData: gateInterface.encodeFunctionData('pendingDuration'),\n });\n const rawRet = (await this.context.getMulticall3().callStatic.aggregate(calls, (0, utils_1.toPopulatedTxOverrides)(txOptions))).returnData;\n const thresholds = rawRet\n .slice(0, quotes.length)\n .map((ret) => gateInterface.decodeFunctionResult('thresholdOf', ret)[0]);\n const pendingDuration = gateInterface.decodeFunctionResult('pendingDuration', rawRet[quotes.length])[0];\n return { pendingDuration, thresholds };\n }\n async claimPendingWithdraw(quote, trader, txOptions) {\n const unsignedTx = await this.context.perp.contracts.gate.populateTransaction.release(quote, trader, (0, utils_1.toPopulatedTxOverrides)(txOptions));\n return this.context.tx.sendTx(unsignedTx, txOptions);\n }\n}\nexports.GateModule = GateModule;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./inverse\"), exports);\n__exportStar(require(\"./calc.interface\"), exports);\n__exportStar(require(\"./calc.module\"), exports);\n__exportStar(require(\"./config.interface\"), exports);\n__exportStar(require(\"./config.module\"), exports);\n__exportStar(require(\"./gate.interface\"), exports);\n__exportStar(require(\"./gate.module\"), exports);\n__exportStar(require(\"./instrument.interface\"), exports);\n__exportStar(require(\"./instrument.module\"), exports);\n__exportStar(require(\"./observer.interface\"), exports);\n__exportStar(require(\"./observer.module\"), exports);\n__exportStar(require(\"./simulate.interface\"), exports);\n__exportStar(require(\"./simulate.module\"), exports);\n__exportStar(require(\"./configuration\"), exports);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.InstrumentModule = void 0;\nconst ethers_1 = require(\"ethers\");\nconst typechain_1 = require(\"../typechain\");\nconst enum_1 = require(\"../enum\");\nconst utils_1 = require(\"../utils\");\nconst constants_1 = require(\"../constants\");\nconst parser_1 = require(\"../parser\");\nconst synfError_1 = require(\"../errors/synfError\");\nconst simulationError_1 = require(\"../errors/simulationError\");\nclass InstrumentModule {\n constructor(context) {\n this.context = context;\n }\n getInstrumentContract(address, signerOrProvider) {\n return typechain_1.Instrument__factory.connect(address, signerOrProvider ?? this.context.provider);\n }\n async computeInstrumentAddress(instrumentIdentifier) {\n const gateAddress = this.context.perp.configuration.config.contractAddress.gate;\n const marketType = instrumentIdentifier.marketType;\n const beaconAddress = this.context.perp.configuration.config.contractAddress.market[marketType].beacon;\n const instrumentProxyByteCode = this.context.perp.configuration.config.instrumentProxyByteCode;\n const salt = await this.computeInstrumentSalt(instrumentIdentifier);\n return ethers_1.ethers.utils.getCreate2Address(gateAddress, ethers_1.ethers.utils.keccak256(salt), ethers_1.ethers.utils.keccak256(ethers_1.ethers.utils.solidityPack(['bytes', 'bytes32'], [instrumentProxyByteCode, ethers_1.ethers.utils.hexZeroPad(beaconAddress, 32)])));\n }\n async computeInstrumentSalt(instrumentIdentifier) {\n const { baseTokenInfo, quoteTokenInfo } = await (0, utils_1.getTokenInfo)(instrumentIdentifier, this.context);\n const quoteAddress = quoteTokenInfo.address;\n let data;\n if ((0, utils_1.isCexMarket)(instrumentIdentifier.marketType)) {\n const baseSymbol = typeof instrumentIdentifier.baseSymbol === 'string'\n ? instrumentIdentifier.baseSymbol\n : instrumentIdentifier.baseSymbol.symbol;\n data = ethers_1.ethers.utils.defaultAbiCoder.encode(['string', 'string', 'address'], [instrumentIdentifier.marketType.toString(), baseSymbol, quoteAddress]);\n }\n else {\n data = ethers_1.ethers.utils.defaultAbiCoder.encode(['string', 'address', 'address'], [instrumentIdentifier.marketType.toString(), baseTokenInfo.address, quoteAddress]);\n }\n return data;\n }\n async computeInitData(instrumentIdentifier) {\n const { baseTokenInfo, quoteTokenInfo } = await (0, utils_1.getTokenInfo)(instrumentIdentifier, this.context);\n const quoteAddress = quoteTokenInfo.address;\n let data;\n if ((0, utils_1.isCexMarket)(instrumentIdentifier.marketType)) {\n const baseSymbol = typeof instrumentIdentifier.baseSymbol === 'string'\n ? instrumentIdentifier.baseSymbol\n : instrumentIdentifier.baseSymbol.symbol;\n data = ethers_1.ethers.utils.defaultAbiCoder.encode(['string', 'address'], [baseSymbol, quoteAddress]);\n }\n else {\n data = ethers_1.ethers.utils.defaultAbiCoder.encode(['address', 'address'], [baseTokenInfo.address, quoteAddress]);\n }\n return data;\n }\n async donateInsuranceFund(instrumentAddr, expiry, amount, txOptions) {\n const instrument = this.getInstrumentContract(instrumentAddr, txOptions?.signer);\n const unsignedTx = await instrument.populateTransaction.donateInsuranceFund(expiry, amount, (0, utils_1.toPopulatedTxOverrides)(txOptions));\n return this.context.tx.sendTx(unsignedTx, txOptions);\n }\n async fillLimitOrder(param, txOptions) {\n const instrument = this.getInstrumentContract(param.instrumentAddr, txOptions?.signer);\n const unsignedTx = await instrument.populateTransaction.fill((0, utils_1.encodeFillParam)(param), (0, utils_1.toPopulatedTxOverrides)(txOptions));\n return this.context.tx.sendTx(unsignedTx, txOptions);\n }\n async adjustMargin(param, txOptions) {\n const sign = param.transferIn ? 1 : -1;\n const instrument = this.getInstrumentContract(param.instrumentAddr, txOptions?.signer);\n const unsignedTx = await instrument.populateTransaction.trade((0, utils_1.encodeAdjustParam)({\n expiry: param.expiry,\n net: param.margin.mul(sign),\n deadline: param.deadline,\n referralCode: param.referralCode ?? constants_1.DEFAULT_REFERRAL_CODE,\n }), (0, utils_1.toPopulatedTxOverrides)(txOptions));\n return this.context.tx.sendTx(unsignedTx, txOptions);\n }\n async addLiquidity(param, txOptions) {\n const addParam = {\n expiry: param.expiry,\n tickDeltaLower: param.tickDeltaLower,\n tickDeltaUpper: param.tickDeltaUpper,\n amount: param.margin,\n limitTicks: param.limitTicks,\n deadline: param.deadline,\n referralCode: param.referralCode ?? constants_1.DEFAULT_REFERRAL_CODE,\n };\n let unsignedTx;\n if (typeof param.instrumentAddr !== 'string') {\n const gate = this.context.perp.contracts.gate.connect(txOptions?.signer || this.context.provider);\n const instrumentIdentifier = param.instrumentAddr;\n const instrumentAddress = await this.computeInstrumentAddress(instrumentIdentifier);\n const indexOfInstrument = await gate.indexOf(instrumentAddress, (0, utils_1.toPopulatedTxOverrides)(txOptions));\n if (!ethers_1.BigNumber.from(indexOfInstrument).isZero()) {\n throw new synfError_1.SynfError('Instrument exits: ' + instrumentAddress);\n }\n this.context.registerContractParser(instrumentAddress, new parser_1.InstrumentParser());\n this.context.registerAddress(instrumentAddress, instrumentIdentifier.baseSymbol +\n '-' +\n instrumentIdentifier.quoteSymbol +\n '-' +\n instrumentIdentifier.marketType);\n unsignedTx = await gate.populateTransaction.launch(instrumentIdentifier.marketType, instrumentAddress, await this.computeInitData(instrumentIdentifier), (0, utils_1.encodeAddParam)(addParam), (0, utils_1.toPopulatedTxOverrides)(txOptions));\n return this.context.tx.sendTx(unsignedTx, txOptions);\n }\n else {\n const instrument = this.getInstrumentContract(param.instrumentAddr, txOptions?.signer);\n const unsignedTx = await instrument.populateTransaction.add((0, utils_1.encodeAddParam)(addParam), (0, utils_1.toPopulatedTxOverrides)(txOptions));\n return this.context.tx.sendTx(unsignedTx, txOptions);\n }\n }\n async removeLiquidity(param, txOptions) {\n const instrument = this.getInstrumentContract(param.instrumentAddr, txOptions?.signer);\n const unsignedTx = await instrument.populateTransaction.remove((0, utils_1.encodeRemoveParam)(param), (0, utils_1.toPopulatedTxOverrides)(txOptions));\n return this.context.tx.sendTx(unsignedTx, txOptions);\n }\n async placeLimitOrder(addLimitOrderParam, txOptions) {\n const sign = (0, utils_1.signOfSide)(addLimitOrderParam.side);\n const param = {\n expiry: addLimitOrderParam.expiry,\n size: addLimitOrderParam.baseSize.mul(sign),\n amount: addLimitOrderParam.margin,\n tick: addLimitOrderParam.tick,\n deadline: addLimitOrderParam.deadline,\n };\n const instrument = this.getInstrumentContract(addLimitOrderParam.instrumentAddr, txOptions?.signer);\n const unsignedTx = await instrument.populateTransaction.place((0, utils_1.encodePlaceParam)({\n expiry: param.expiry,\n size: param.size,\n amount: param.amount,\n tick: param.tick,\n deadline: param.deadline,\n referralCode: addLimitOrderParam.referralCode ?? constants_1.DEFAULT_REFERRAL_CODE,\n }), (0, utils_1.toPopulatedTxOverrides)(txOptions));\n return this.context.tx.sendTx(unsignedTx, txOptions);\n }\n async placeMarketOrder(param, txOptions) {\n if (param.side === enum_1.Side.FLAT) {\n throw new simulationError_1.SimulationError('Invalid Price');\n }\n const sign = (0, utils_1.signOfSide)(param.side);\n const tradeParam = {\n expiry: param.expiry,\n size: param.baseSize.mul(sign),\n amount: param.margin,\n tick: param.limitTick,\n deadline: param.deadline,\n referralCode: param.referralCode ?? constants_1.DEFAULT_REFERRAL_CODE,\n };\n const instrument = this.getInstrumentContract(param.instrumentAddr, txOptions?.signer);\n const unsignedTx = await instrument.populateTransaction.trade((0, utils_1.encodePlaceParam)(tradeParam), (0, utils_1.toPopulatedTxOverrides)(txOptions));\n return this.context.tx.sendTx(unsignedTx, txOptions);\n }\n async cancelLimitOrder(param, txOptions) {\n const instrument = this.getInstrumentContract(param.instrumentAddr, txOptions?.signer);\n const unsignedTx = await instrument.populateTransaction.cancel((0, utils_1.encodeCancelParam)({ expiry: param.expiry, ticks: [param.tick], deadline: param.deadline }), (0, utils_1.toPopulatedTxOverrides)(txOptions));\n return this.context.tx.sendTx(unsignedTx, txOptions);\n }\n async batchPlaceLimitOrder(param, txOptions) {\n if (param.side === enum_1.Side.FLAT) {\n throw new simulationError_1.SimulationError('Invalid Price');\n }\n const sign = (0, utils_1.signOfSide)(param.side);\n const instrument = this.getInstrumentContract(param.instrumentAddr, txOptions?.signer);\n const unsignedTx = await instrument.populateTransaction.batchPlace((0, utils_1.encodeBatchPlaceParam)(param.expiry, param.baseSize.mul(sign), param.leverage, param.ticks, param.ratios, param.deadline, param.referralCode ?? constants_1.DEFAULT_REFERRAL_CODE), (0, utils_1.toPopulatedTxOverrides)(txOptions));\n return this.context.tx.sendTx(unsignedTx, txOptions);\n }\n async batchCancelLimitOrder(param, txOptions) {\n const instrument = this.getInstrumentContract(param.instrumentAddr, txOptions?.signer);\n if (param.orderTicks.length <= constants_1.MAX_CANCEL_ORDER_COUNT) {\n const unsignedTx = await instrument.populateTransaction.cancel((0, utils_1.encodeCancelParam)({ expiry: param.expiry, ticks: param.orderTicks, deadline: param.deadline }), (0, utils_1.toPopulatedTxOverrides)(txOptions));\n return this.context.tx.sendTx(unsignedTx, txOptions);\n }\n else {\n const tickGroups = [];\n for (let i = 0; i < param.orderTicks.length; i += constants_1.MAX_CANCEL_ORDER_COUNT) {\n tickGroups.push(param.orderTicks.slice(i, i + constants_1.MAX_CANCEL_ORDER_COUNT));\n }\n const calldatas = tickGroups.map((group) => {\n return instrument.interface.encodeFunctionData('cancel', [\n (0, utils_1.encodeCancelParam)({ expiry: param.expiry, ticks: group, deadline: param.deadline }),\n ]);\n });\n const unsignedTx = await instrument.populateTransaction.multicall(calldatas, (0, utils_1.toPopulatedTxOverrides)(txOptions));\n return this.context.tx.sendTx(unsignedTx, txOptions);\n }\n }\n async placeCrossMarketOrder(param, txOptions) {\n const sign = (0, utils_1.signOfSide)(param.side);\n const instrument = this.getInstrumentContract(param.instrumentAddr, txOptions?.signer);\n const callData = [];\n callData.push(instrument.interface.encodeFunctionData('trade', [\n (0, utils_1.encodeTradeParam)({\n expiry: param.expiry,\n size: param.tradeSize.mul(sign),\n amount: param.tradeMargin,\n limitTick: param.tradeLimitTick,\n deadline: param.deadline,\n referralCode: param.referralCode ?? constants_1.DEFAULT_REFERRAL_CODE,\n }),\n ]));\n callData.push(instrument.interface.encodeFunctionData('place', [\n (0, utils_1.encodePlaceParam)({\n expiry: param.expiry,\n size: param.orderSize.mul(sign),\n amount: param.orderMargin,\n tick: param.orderTick,\n deadline: param.deadline,\n referralCode: param.referralCode ?? constants_1.DEFAULT_REFERRAL_CODE,\n }),\n ]));\n const unsignedTx = await instrument.populateTransaction.multicall(callData, (0, utils_1.toPopulatedTxOverrides)(txOptions));\n return this.context.tx.sendTx(unsignedTx, txOptions);\n }\n async settle(param, txOptions) {\n const instrument = this.getInstrumentContract(param.instrumentAddr, txOptions?.signer);\n const unsignedTx = await instrument.populateTransaction.settle(param.expiry, param.target, (0, utils_1.toPopulatedTxOverrides)(txOptions));\n return this.context.tx.sendTx(unsignedTx, txOptions);\n }\n async multicall(instrumentAddr, callData, txOptions) {\n const instrument = this.getInstrumentContract(instrumentAddr, txOptions?.signer);\n const unsignedTx = await instrument.populateTransaction.multicall(callData, (0, utils_1.toPopulatedTxOverrides)(txOptions));\n return this.context.tx.sendTx(unsignedTx, txOptions);\n }\n}\nexports.InstrumentModule = InstrumentModule;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.InverseCalcModule = void 0;\nconst calc_module_1 = require(\"../calc.module\");\nconst utils_1 = require(\"../../utils\");\nclass InverseCalcModule extends calc_module_1.CalcModule {\n async alignPriceToTick(instrumentAddr, price) {\n const isInverse = await this.context.perp.configuration.isInverse(instrumentAddr);\n const result = await super.alignPriceToTick(instrumentAddr, isInverse ? (0, utils_1.reversePrice)(price) : price);\n return isInverse\n ? {\n ...result,\n price: (0, utils_1.reversePrice)(result.price),\n }\n : result;\n }\n async getWadAtTick(instrumentAddr, tick) {\n const isInverse = await this.context.perp.configuration.isInverse(instrumentAddr);\n const result = await super.getWadAtTick(instrumentAddr, tick);\n return isInverse ? (0, utils_1.reversePrice)(result) : result;\n }\n async getTickAtPWad(instrumentAddr, price) {\n const isInverse = await this.context.perp.configuration.isInverse(instrumentAddr);\n return await super.getTickAtPWad(instrumentAddr, isInverse ? (0, utils_1.reversePrice)(price) : price);\n }\n async getWadAtTicks(instrumentAddr, lowerTick, upperTick) {\n const isInverse = await this.context.perp.configuration.isInverse(instrumentAddr);\n const result = await super.getWadAtTicks(instrumentAddr, lowerTick, upperTick);\n return isInverse\n ? {\n lowerPrice: (0, utils_1.reversePrice)(result.upperPrice),\n upperPrice: (0, utils_1.reversePrice)(result.lowerPrice),\n }\n : result;\n }\n async sqrtX96ToWad(instrumentAddr, sqrtPX96) {\n const isInverse = await this.context.perp.configuration.isInverse(instrumentAddr);\n const result = await super.sqrtX96ToWad(instrumentAddr, sqrtPX96);\n return isInverse ? (0, utils_1.reversePrice)(result) : result;\n }\n}\nexports.InverseCalcModule = InverseCalcModule;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./calc.moudle\"), exports);\n__exportStar(require(\"./instrument.module\"), exports);\n__exportStar(require(\"./observer.module\"), exports);\n__exportStar(require(\"./simulate.module\"), exports);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.InverseInstrumentModule = void 0;\nconst utils_1 = require(\"../../utils\");\nconst instrument_module_1 = require(\"../instrument.module\");\nclass InverseInstrumentModule extends instrument_module_1.InstrumentModule {\n async addLiquidity(param, txOptions) {\n const isInverse = typeof param.instrumentAddr === 'string'\n ? await this.context.perp.configuration.isInverse(param.instrumentAddr)\n : await this.context.perp.configuration.isInverseByIdentifier(param.instrumentAddr);\n return isInverse\n ? await super.addLiquidity({\n ...param,\n tickDeltaLower: param.tickDeltaUpper,\n tickDeltaUpper: param.tickDeltaLower,\n }, txOptions)\n : await super.addLiquidity(param, txOptions);\n }\n async removeLiquidity(param, txOptions) {\n const isInverse = await this.context.perp.configuration.isInverse(param.instrumentAddr);\n return isInverse\n ? await super.removeLiquidity({\n ...param,\n tickLower: param.tickUpper,\n tickUpper: param.tickLower,\n }, txOptions)\n : await super.removeLiquidity(param, txOptions);\n }\n async placeLimitOrder(param, txOptions) {\n const isInverse = await this.context.perp.configuration.isInverse(param.instrumentAddr);\n return isInverse\n ? await super.placeLimitOrder({\n ...param,\n side: (0, utils_1.reverseSide)(param.side),\n }, txOptions)\n : await super.placeLimitOrder(param, txOptions);\n }\n async placeMarketOrder(param, txOptions) {\n const isInverse = await this.context.perp.configuration.isInverse(param.instrumentAddr);\n return isInverse\n ? await super.placeMarketOrder({\n ...param,\n side: (0, utils_1.reverseSide)(param.side),\n }, txOptions)\n : await super.placeMarketOrder(param, txOptions);\n }\n async batchPlaceLimitOrder(param, txOptions) {\n const isInverse = await this.context.perp.configuration.isInverse(param.instrumentAddr);\n return isInverse\n ? await super.batchPlaceLimitOrder({\n ...param,\n side: (0, utils_1.reverseSide)(param.side),\n }, txOptions)\n : await super.batchPlaceLimitOrder(param, txOptions);\n }\n async placeCrossMarketOrder(param, txOptions) {\n const isInverse = await this.context.perp.configuration.isInverse(param.instrumentAddr);\n return isInverse\n ? await super.placeCrossMarketOrder({\n ...param,\n side: (0, utils_1.reverseSide)(param.side),\n }, txOptions)\n : await super.placeCrossMarketOrder(param, txOptions);\n }\n}\nexports.InverseInstrumentModule = InverseInstrumentModule;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.InverseObserverModule = void 0;\nconst utils_1 = require(\"../../utils\");\nconst observer_module_1 = require(\"../observer.module\");\nclass InverseObserverModule extends observer_module_1.ObserverModule {\n async getPortfolio(params, overrides) {\n const result = await super.getPortfolio(params, overrides);\n const portfolios = await Promise.all((Array.isArray(result) ? result : [result]).map((p) => this.context.perp.configuration\n .isInverse(p.instrumentAddr)\n .then((isInverse) => (isInverse ? (0, utils_1.reversePortfolio)(p) : p))));\n return portfolios.length === 1 ? portfolios[0] : portfolios;\n }\n async getAllInstruments(overrides) {\n const instruments = await super.getAllInstruments(overrides);\n return await Promise.all(instruments.map((i) => this.context.perp.configuration\n .isInverse(i.instrumentAddr)\n .then((isInverse) => (isInverse ? (0, utils_1.reverseInstrument)(i) : i))));\n }\n async getInstrument(params, overrides) {\n const instrument = await super.getInstrument(params, overrides);\n if (!Array.isArray(instrument)) {\n const isInverse = await this.context.perp.configuration.isInverse(instrument.instrumentAddr);\n return isInverse ? (0, utils_1.reverseInstrument)(instrument) : instrument;\n }\n else {\n return await Promise.all(instrument.map((i) => this.context.perp.configuration\n .isInverse(i.instrumentAddr)\n .then((isInverse) => (isInverse ? (0, utils_1.reverseInstrument)(i) : i))));\n }\n }\n async getPositionIfSettle(portfolio, amm) {\n const isInverse = await this.context.perp.configuration.isInverse(portfolio.instrumentAddr);\n const position = await super.getPositionIfSettle(isInverse ? (0, utils_1.reversePortfolio)(portfolio) : portfolio, isInverse ? (0, utils_1.reverseAmm)(amm) : amm);\n return isInverse ? (0, utils_1.reversePosition)(position) : position;\n }\n async inquireByBase(instrumentAddr, expiry, side, baseAmount, overrides) {\n const isInverse = await this.context.perp.configuration.isInverse(instrumentAddr);\n return await super.inquireByBase(instrumentAddr, expiry, isInverse ? (0, utils_1.reverseSide)(side) : side, baseAmount, overrides);\n }\n async inquireByQuote(instrumentAddr, expiry, side, quoteAmount, overrides) {\n const isInverse = await this.context.perp.configuration.isInverse(instrumentAddr);\n return await super.inquireByQuote(instrumentAddr, expiry, isInverse ? (0, utils_1.reverseSide)(side) : side, quoteAmount, overrides);\n }\n async getRawSpotPrice(identifier, overrides) {\n const isInverse = await this.context.perp.configuration.isInverseByIdentifier(identifier);\n const result = await super.getRawSpotPrice(identifier, overrides);\n return isInverse ? (0, utils_1.reversePrice)(result) : result;\n }\n}\nexports.InverseObserverModule = InverseObserverModule;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.InverseSimulateModule = void 0;\nconst utils_1 = require(\"../../utils\");\nconst simulate_module_1 = require(\"../simulate.module\");\nfunction reverseSimulateTradeResult(result) {\n return {\n ...result,\n tradePrice: (0, utils_1.reversePrice)(result.tradePrice),\n postPosition: (0, utils_1.reversePosition)(result.postPosition),\n priceImpact: result.priceImpact.mul(-1),\n };\n}\nclass InverseSimulateModule extends simulate_module_1.SimulateModule {\n async simulateCrossMarketOrder(param, overrides) {\n const isInverse = await this.context.perp.configuration.isInverse(param.tradeInfo.instrumentAddr);\n const result = await super.simulateCrossMarketOrder(isInverse\n ? {\n ...param,\n tradeInfo: (0, utils_1.isPosition)(param.tradeInfo) ? (0, utils_1.reversePosition)(param.tradeInfo) : param.tradeInfo,\n priceInfo: (0, utils_1.reversePriceInfo)(param.priceInfo),\n side: (0, utils_1.reverseSide)(param.side),\n instrument: param.instrument && (0, utils_1.reverseInstrument)(param.instrument),\n }\n : param, overrides);\n return isInverse\n ? {\n ...result,\n tradeSimulation: reverseSimulateTradeResult(result.tradeSimulation),\n }\n : result;\n }\n async simulateLimitOrder(param, overrides) {\n const isInverse = await this.context.perp.configuration.isInverse(param.tradeInfo.instrumentAddr);\n return await super.simulateLimitOrder(isInverse\n ? {\n ...param,\n priceInfo: (0, utils_1.reversePriceInfo)(param.priceInfo),\n side: (0, utils_1.reverseSide)(param.side),\n instrument: param.instrument && (0, utils_1.reverseInstrument)(param.instrument),\n }\n : param, overrides);\n }\n async simulateScaledLimitOrder(param, overrides) {\n const isInverse = await this.context.perp.configuration.isInverse(param.tradeInfo.instrumentAddr);\n let result = await super.simulateScaledLimitOrder(isInverse\n ? {\n ...param,\n priceInfo: param.priceInfo.map((p) => (typeof p === 'number' ? p : (0, utils_1.reversePrice)(p))),\n side: (0, utils_1.reverseSide)(param.side),\n instrument: param.instrument && (0, utils_1.reverseInstrument)(param.instrument),\n }\n : param, overrides);\n if (isInverse) {\n result = {\n ...result,\n orders: result.orders.map((o) => {\n return (o && {\n ...o,\n limitPrice: (0, utils_1.reversePrice)(o.limitPrice),\n });\n }),\n };\n }\n return result;\n }\n async simulateMarketOrderByMargin(param, overrides) {\n const isInverse = await this.context.perp.configuration.isInverse(param.tradeInfo.instrumentAddr);\n const result = await super.simulateMarketOrderByMargin(isInverse\n ? {\n ...param,\n tradeInfo: (0, utils_1.isPosition)(param.tradeInfo) ? (0, utils_1.reversePosition)(param.tradeInfo) : param.tradeInfo,\n side: (0, utils_1.reverseSide)(param.side),\n instrument: param.instrument && (0, utils_1.reverseInstrument)(param.instrument),\n }\n : param, overrides);\n return isInverse ? reverseSimulateTradeResult(result) : result;\n }\n async simulateMarketOrderByLeverage(param, overrides) {\n const isInverse = await this.context.perp.configuration.isInverse(param.tradeInfo.instrumentAddr);\n const result = await super.simulateMarketOrderByLeverage(isInverse\n ? {\n ...param,\n tradeInfo: (0, utils_1.isPosition)(param.tradeInfo) ? (0, utils_1.reversePosition)(param.tradeInfo) : param.tradeInfo,\n side: (0, utils_1.reverseSide)(param.side),\n instrument: param.instrument && (0, utils_1.reverseInstrument)(param.instrument),\n }\n : param, overrides);\n return isInverse ? reverseSimulateTradeResult(result) : result;\n }\n async simulateClose(param, overrides) {\n const isInverse = await this.context.perp.configuration.isInverse(param.tradeInfo.instrumentAddr);\n const result = await super.simulateClose(isInverse\n ? {\n ...param,\n tradeInfo: (0, utils_1.isPosition)(param.tradeInfo) ? (0, utils_1.reversePosition)(param.tradeInfo) : param.tradeInfo,\n instrument: param.instrument && (0, utils_1.reverseInstrument)(param.instrument),\n }\n : param, overrides);\n return isInverse ? reverseSimulateTradeResult(result) : result;\n }\n async simulateAdjustMarginByMargin(param, overrides) {\n const isInverse = await this.context.perp.configuration.isInverse(param.tradeInfo.instrumentAddr);\n const result = await super.simulateAdjustMarginByMargin(isInverse\n ? {\n ...param,\n tradeInfo: (0, utils_1.isPosition)(param.tradeInfo) ? (0, utils_1.reversePosition)(param.tradeInfo) : param.tradeInfo,\n instrument: param.instrument && (0, utils_1.reverseInstrument)(param.instrument),\n }\n : param, overrides);\n return isInverse ? { ...result, postPosition: (0, utils_1.reversePosition)(result.postPosition) } : result;\n }\n async simulateAdjustMarginByLeverage(param, overrides) {\n const isInverse = await this.context.perp.configuration.isInverse(param.tradeInfo.instrumentAddr);\n const result = await super.simulateAdjustMarginByLeverage(isInverse\n ? {\n ...param,\n tradeInfo: (0, utils_1.isPosition)(param.tradeInfo) ? (0, utils_1.reversePosition)(param.tradeInfo) : param.tradeInfo,\n instrument: param.instrument && (0, utils_1.reverseInstrument)(param.instrument),\n }\n : param, overrides);\n return isInverse ? { ...result, postPosition: (0, utils_1.reversePosition)(result.postPosition) } : result;\n }\n async simulateAddLiquidity(param, overrides) {\n const isInverse = (0, utils_1.isInstrument)(param.instrument)\n ? await this.context.perp.configuration.isInverse(param.instrument.instrumentAddr)\n : await this.context.perp.configuration.isInverseByIdentifier(param.instrument);\n const result = await super.simulateAddLiquidity(isInverse\n ? {\n ...param,\n instrument: (0, utils_1.isInstrument)(param.instrument)\n ? (0, utils_1.reverseInstrument)(param.instrument)\n : param.instrument,\n }\n : param, overrides);\n return isInverse\n ? {\n ...result,\n upperPrice: (0, utils_1.reversePrice)(result.lowerPrice),\n lowerPrice: (0, utils_1.reversePrice)(result.upperPrice),\n lowerPosition: (0, utils_1.reversePosition)(result.upperPosition),\n lowerLeverage: result.upperLeverage,\n upperPosition: (0, utils_1.reversePosition)(result.lowerPosition),\n upperLeverage: result.lowerLeverage,\n }\n : result;\n }\n async simulateAddLiquidityWithAsymmetricRange(param, overrides) {\n const isInverse = (0, utils_1.isInstrument)(param.instrument)\n ? await this.context.perp.configuration.isInverse(param.instrument.instrumentAddr)\n : await this.context.perp.configuration.isInverseByIdentifier(param.instrument);\n const result = await super.simulateAddLiquidityWithAsymmetricRange(isInverse\n ? {\n ...param,\n alphaWadLower: param.alphaWadUpper,\n alphaWadUpper: param.alphaWadLower,\n instrument: (0, utils_1.isInstrument)(param.instrument)\n ? (0, utils_1.reverseInstrument)(param.instrument)\n : param.instrument,\n }\n : param, overrides);\n return isInverse\n ? {\n ...result,\n tickDeltaLower: result.tickDeltaUpper,\n tickDeltaUpper: result.tickDeltaLower,\n upperPrice: (0, utils_1.reversePrice)(result.lowerPrice),\n lowerPrice: (0, utils_1.reversePrice)(result.upperPrice),\n lowerPosition: (0, utils_1.reversePosition)(result.upperPosition),\n lowerLeverage: result.upperLeverage,\n upperPosition: (0, utils_1.reversePosition)(result.lowerPosition),\n upperLeverage: result.lowerLeverage,\n equivalentAlphaLower: result.equivalentAlphaUpper,\n equivalentAlphaUpper: result.equivalentAlphaLower,\n }\n : result;\n }\n async simulateRemoveLiquidity(param, overrides) {\n const isInverse = await this.context.perp.configuration.isInverse(param.tradeInfo.instrumentAddr);\n const result = await super.simulateRemoveLiquidity(isInverse\n ? {\n ...param,\n tradeInfo: (0, utils_1.isPortfolio)(param.tradeInfo) ? (0, utils_1.reversePortfolio)(param.tradeInfo) : param.tradeInfo,\n tickUpper: param.tickLower,\n tickLower: param.tickUpper,\n instrument: param.instrument && (0, utils_1.reverseInstrument)(param.instrument),\n }\n : param, overrides);\n return isInverse\n ? {\n ...result,\n removedPosition: (0, utils_1.reversePosition)(result.removedPosition),\n postPosition: (0, utils_1.reversePosition)(result.postPosition),\n removedPositionEntryPrice: (0, utils_1.reversePrice)(result.removedPositionEntryPrice),\n }\n : result;\n }\n}\nexports.InverseSimulateModule = InverseSimulateModule;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ObserverModule = void 0;\nconst ethers_1 = require(\"ethers\");\nconst context_1 = require(\"@derivation-tech/context\");\nconst typechain_1 = require(\"../typechain\");\nconst enum_1 = require(\"../enum\");\nconst math_1 = require(\"../math\");\nconst utils_1 = require(\"../utils\");\nconst lowLevel_1 = require(\"../utils/lowLevel\");\nconst parser_1 = require(\"../parser\");\nconst errors_1 = require(\"../errors\");\nconst batchSize = 10;\nclass ObserverModule {\n constructor(context) {\n this.cache = new Map();\n this.context = context;\n }\n async getMiscInfo(instrumentAddress, overrides) {\n const instrumentInterface = typechain_1.Instrument__factory.createInterface();\n let needFundingHour = this.context.chainId !== context_1.CHAIN_ID.BLAST && this.context.chainId !== context_1.CHAIN_ID.LOCAL;\n if (overrides && overrides.blockTag) {\n const blockTag = await overrides.blockTag;\n if (typeof blockTag === 'number' || blockTag.startsWith('0x')) {\n const blockNumber = ethers_1.ethers.BigNumber.from(blockTag).toNumber();\n if (this.context.chainId === context_1.CHAIN_ID.BASE && blockNumber < 21216046) {\n needFundingHour = false;\n }\n }\n }\n const calls = [];\n for (const instrumentAddr of instrumentAddress) {\n calls.push({\n target: instrumentAddr,\n callData: instrumentInterface.encodeFunctionData('placePaused'),\n });\n if (needFundingHour) {\n calls.push({\n target: instrumentAddr,\n callData: instrumentInterface.encodeFunctionData('fundingHour'),\n });\n }\n }\n const rawMiscInfo = await this.context.getMulticall3().callStatic.aggregate(calls, overrides ?? {});\n const miscList = [];\n for (let j = 0; j < rawMiscInfo.returnData.length; j = needFundingHour ? j + 2 : j + 1) {\n const [placePaused] = instrumentInterface.decodeFunctionResult('placePaused', rawMiscInfo.returnData[j]);\n const [fundingHour] = needFundingHour\n ? instrumentInterface.decodeFunctionResult('fundingHour', rawMiscInfo.returnData[j + 1])\n : [24];\n miscList.push({\n placePaused: placePaused,\n fundingHour: fundingHour === 0 ? 24 : fundingHour,\n });\n }\n return miscList;\n }\n async getPortfolio(params, overrides) {\n params = Array.isArray(params) ? params : [params];\n const observerInterface = this.context.perp.contracts.observer.interface;\n let portfolios = [];\n for (let i = 0; i < params.length; i += batchSize) {\n const _params = params.slice(i, i + batchSize);\n const calls = _params.map((p) => {\n return {\n target: this.context.perp.contracts.observer.address,\n callData: observerInterface.encodeFunctionData('getAcc', [\n p.instrumentAddr,\n p.expiry,\n p.traderAddr,\n ]),\n };\n });\n portfolios = portfolios.concat(await (0, utils_1.quickRetry)(() => this.context\n .getMulticall3()\n .callStatic.aggregate(calls, overrides ?? {})\n .then(({ returnData }) => returnData.map((d, i) => {\n const p = _params[i];\n return (0, utils_1.toPortfolio)(p.instrumentAddr, p.expiry, p.traderAddr, observerInterface.decodeFunctionResult('getAcc', d));\n }))));\n }\n return portfolios.length === 1 ? portfolios[0] : portfolios;\n }\n async getAllInstruments(overrides) {\n const instrumentLists = await this.context.perp.contracts.gate.getAllInstruments(overrides ?? {});\n const totalPage = Math.ceil(instrumentLists.length / batchSize);\n const rawList = [];\n const miscInfoList = [];\n for (let i = 0; i < totalPage; i++) {\n const queryList = instrumentLists.slice(i * batchSize, (i + 1) * batchSize >= instrumentLists.length ? instrumentLists.length : (i + 1) * batchSize);\n rawList.push(await (0, utils_1.quickRetry)(() => this.context.perp.contracts.observer.getInstrumentByAddressList(queryList, overrides ?? {})));\n miscInfoList.push(await (0, utils_1.quickRetry)(async () => this.getMiscInfo(queryList, overrides ?? {})));\n }\n let assembledInstrumentDatas = [];\n for (let i = 0; i < rawList.length; i++) {\n const miscInfo = miscInfoList[i];\n const [rawInstrument, rawBlockInfo] = (0, utils_1.trimObj)(rawList[i]);\n assembledInstrumentDatas = assembledInstrumentDatas.concat(await this.parseInstrumentData(rawInstrument, miscInfo, rawBlockInfo, overrides ?? {}));\n }\n return assembledInstrumentDatas;\n }\n async getInstrument(params, overrides) {\n const _params = Array.isArray(params) ? params : [params];\n const formattedParams = [];\n for (let i = 0; i < _params.length; i++) {\n const p = _params[i];\n if (typeof p === 'string') {\n if (ethers_1.ethers.utils.isAddress(p)) {\n formattedParams.push({\n instrument: p,\n expiries: [],\n });\n }\n else {\n formattedParams.push({\n instrument: await this._getInstrumentBySymbol(p, overrides ?? {}),\n expiries: [],\n });\n }\n }\n else {\n if (ethers_1.ethers.utils.isAddress(p.instrument)) {\n formattedParams.push(p);\n }\n else {\n formattedParams.push({\n instrument: await this._getInstrumentBySymbol(p.instrument, overrides ?? {}),\n expiries: p.expiries,\n });\n }\n }\n }\n const [rawList, rawBlockInfo] = (0, utils_1.trimObj)(await this.context.perp.contracts.observer.getInstrumentBatch(formattedParams, overrides ?? {}));\n const miscInfoList = await this.getMiscInfo(formattedParams.map((p) => p.instrument), overrides ?? {});\n const instruments = await this.parseInstrumentData(rawList, miscInfoList, rawBlockInfo, overrides ?? {});\n return Array.isArray(params) ? instruments : instruments?.[0];\n }\n async _getInstrumentBySymbol(symbol, overrides) {\n const cachedInstrumentAddress = this.cache.get(symbol);\n if (cachedInstrumentAddress) {\n return cachedInstrumentAddress;\n }\n await this.getAllInstruments(overrides ?? {});\n const updatedInstrumentAddress = this.cache.get(symbol);\n if (!updatedInstrumentAddress) {\n throw new errors_1.SynfError('unknown symbol: ' + symbol);\n }\n return updatedInstrumentAddress;\n }\n async parseInstrumentData(rawList, miscInfoList, blockInfo, overrides) {\n const assembledInstrumentDatas = [];\n for (let i = 0; i < rawList.length; i++) {\n const rawInstrument = rawList[i];\n const miscInfo = miscInfoList[i];\n const [baseSymbol, quoteSymbol, marketType] = rawInstrument.symbol.split('-');\n const quoteTokenInfo = await this.getQuoteTokenInfo(quoteSymbol, rawInstrument.instrumentAddr, overrides ?? {});\n let baseInfo = { symbol: baseSymbol, address: ethers_1.ethers.constants.AddressZero, decimals: 0 };\n if (!(0, utils_1.isCexMarket)(marketType)) {\n const onCtxBaseInfo = await this.context.getTokenInfo(baseSymbol);\n if (onCtxBaseInfo) {\n baseInfo = onCtxBaseInfo;\n }\n }\n const instrumentInfo = {\n chainId: this.context.chainId,\n addr: rawInstrument.instrumentAddr,\n symbol: rawInstrument.symbol,\n base: baseInfo,\n quote: quoteTokenInfo,\n };\n const marketInfo = {\n addr: rawInstrument.market,\n type: marketType,\n beacon: this.context.perp.configuration.config.contractAddress.market[marketType].beacon,\n };\n const marketConfig = this.context.perp.configuration.config.marketConfig[marketType];\n const feeder = (0, utils_1.isCexMarket)(marketType)\n ? rawInstrument.priceFeeder\n : rawInstrument.dexV2Feeder;\n const market = { info: marketInfo, config: marketConfig, feeder: feeder };\n const instrumentSetting = {\n initialMarginRatio: rawInstrument.initialMarginRatio,\n maintenanceMarginRatio: rawInstrument.maintenanceMarginRatio,\n quoteParam: rawInstrument.param,\n };\n const amms = new Map();\n for (let i = 0; i < rawInstrument.amms.length; i++) {\n const rawAmm = rawInstrument.amms[i];\n if (rawAmm.expiry === 0) {\n continue;\n }\n const amm = utils_1.factory.createAmm({\n ...rawAmm,\n instrumentAddr: rawInstrument.instrumentAddr,\n markPrice: rawInstrument.markPrices[i],\n blockInfo,\n });\n amms.set(rawAmm.expiry, amm);\n }\n const rawAssembledInstrumentData = {\n instrumentAddr: rawInstrument.instrumentAddr,\n symbol: rawInstrument.symbol,\n market,\n condition: rawInstrument.condition,\n setting: instrumentSetting,\n spotPrice: rawInstrument.spotPrice,\n amms,\n base: baseInfo,\n quote: quoteTokenInfo,\n blockInfo,\n ...miscInfo,\n };\n const assembledInstrumentData = utils_1.factory.createInstrument(rawAssembledInstrumentData);\n this.cache.set(instrumentInfo.symbol, assembledInstrumentData.instrumentAddr);\n this.context.registerAddress(instrumentInfo.addr, instrumentInfo.symbol);\n this.context.registerContractParser(instrumentInfo.addr, new parser_1.InstrumentParser());\n assembledInstrumentDatas.push(assembledInstrumentData);\n }\n return assembledInstrumentDatas;\n }\n async getQuoteTokenInfo(quoteSymbol, instrumentAddr, overrides) {\n return ((await this.context.getTokenInfo(quoteSymbol)) ??\n (await this.context.getTokenInfo((await this.context.perp.contracts.observer.getSetting(instrumentAddr, overrides ?? {})).quote)));\n }\n async inspectDexV2MarketBenchmarkPrice(instrumentIdentifier, expiry, overrides) {\n const { baseSymbol, quoteSymbol } = (0, utils_1.getTokenSymbol)(instrumentIdentifier.baseSymbol, instrumentIdentifier.quoteSymbol);\n const baseParam = this.context.perp.configuration.config.quotesParam[baseSymbol];\n const quoteParam = this.context.perp.configuration.config.quotesParam[quoteSymbol];\n const baseStable = baseParam && baseParam.qtype === enum_1.QuoteType.STABLE;\n const quoteStable = quoteParam && quoteParam.qtype === enum_1.QuoteType.STABLE;\n const feederType = ((baseStable ? 2 : 0) + (quoteStable ? 1 : 0));\n const rawSpotPrice = await this.getDexV2RawSpotPrice(instrumentIdentifier, overrides ?? {});\n return (0, lowLevel_1.calcBenchmarkPrice)(expiry, rawSpotPrice, feederType, this.context.perp.configuration.config.marketConfig.DEXV2.dailyInterestRate);\n }\n async inspectCexMarketBenchmarkPrice(instrumentIdentifier, expiry) {\n const instrumentAddress = await this.context.perp.instrument.computeInstrumentAddress(instrumentIdentifier);\n const market = this.context.perp.contracts.marketContracts[instrumentIdentifier.marketType]\n ?.market;\n let benchmarkPrice;\n try {\n benchmarkPrice = await market.getBenchmarkPrice(instrumentAddress, expiry);\n }\n catch (e) {\n console.error('fetch chainlink market price error', e);\n benchmarkPrice = math_1.ZERO;\n }\n return benchmarkPrice;\n }\n async getRawSpotPrice(identifier, overrides) {\n if (identifier.marketType === enum_1.MarketType.DEXV2) {\n return await this.getDexV2RawSpotPrice(identifier, overrides ?? {});\n }\n else if ((0, utils_1.isCexMarket)(identifier.marketType)) {\n return await this.getCexRawSpotPrice(identifier, overrides ?? {});\n }\n else {\n throw new errors_1.SynfError('Unsupported market type: ' + identifier.marketType);\n }\n }\n async getNextInitializedTickOutside(instrumentAddr, expiry, tick, right, overrides) {\n return await this.context.perp.contracts.observer.getNextInitializedTickOutside(instrumentAddr, expiry, tick, right, overrides ?? {});\n }\n async getSizeToTargetTick(instrumentAddr, expiry, targetTick, overrides) {\n const observer = this.context.perp.contracts.observer;\n const amm = await observer.getAmm(instrumentAddr, expiry, overrides ?? {});\n const targetPX96 = math_1.TickMath.getSqrtRatioAtTick(targetTick);\n if (targetPX96.eq(amm.sqrtPX96)) {\n return math_1.ZERO;\n }\n const long = targetTick > amm.tick;\n let size = math_1.ZERO;\n const currTickLeft = (await observer.getPearls(instrumentAddr, expiry, [amm.tick], overrides ?? {}))[0].left;\n if (long && currTickLeft.isNegative()) {\n size = size.sub(currTickLeft);\n }\n let sqrtPX96 = amm.sqrtPX96;\n let liquidity = amm.liquidity;\n let nextTick = await this.getNextInitializedTickOutside(instrumentAddr, expiry, amm.tick + (long ? 0 : 1), long, overrides ?? {});\n while (true) {\n const nextPX96 = math_1.TickMath.getSqrtRatioAtTick(nextTick);\n if ((long && nextTick > targetTick) || (!long && nextTick < targetTick)) {\n const delta = math_1.SqrtPriceMath.getDeltaBaseAutoRoundUp(sqrtPX96, targetPX96, liquidity);\n size = long ? size.add(delta).add(1) : size.sub(delta).sub(1);\n break;\n }\n const nextPearl = (await observer.getPearls(instrumentAddr, expiry, [nextTick], overrides ?? {}))[0];\n const delta = math_1.SqrtPriceMath.getDeltaBaseAutoRoundUp(sqrtPX96, nextPX96, liquidity);\n size = long ? size.add(delta) : size.sub(delta);\n if (nextTick === targetTick) {\n break;\n }\n if ((long && nextPearl.left.isNegative()) || (!long && nextPearl.left.gt(0))) {\n size = size.sub(nextPearl.left);\n }\n sqrtPX96 = nextPX96;\n if (nextPearl.liquidityGross.gt(math_1.ZERO)) {\n liquidity = liquidity.add(long ? nextPearl.liquidityNet : nextPearl.liquidityNet.mul(-1));\n }\n nextTick = await this.getNextInitializedTickOutside(instrumentAddr, expiry, nextTick, long, overrides ?? {});\n }\n return size;\n }\n async getFundFlows(quoteAddrs, trader, overrides) {\n const gateInterface = this.context.perp.contracts.gate.interface;\n const observerInterface = this.context.perp.contracts.observer.interface;\n const calls = [];\n calls.push(...quoteAddrs.map((quote) => {\n return {\n target: this.context.perp.contracts.gate.address,\n callData: gateInterface.encodeFunctionData('fundFlowOf', [quote, trader]),\n };\n }));\n calls.push({\n target: this.context.perp.contracts.observer.address,\n callData: observerInterface.encodeFunctionData('getVaultBalances', [trader, quoteAddrs]),\n });\n const rawRet = (await this.context.getMulticall3().callStatic.aggregate(calls, overrides ?? {})).returnData;\n const fundFlows = rawRet.slice(0, quoteAddrs.length).map((ret) => {\n return (0, utils_1.trimObj)(gateInterface.decodeFunctionResult('fundFlowOf', ret)[0]);\n });\n const blockInfo = (0, utils_1.trimObj)(observerInterface.decodeFunctionResult('getVaultBalances', rawRet[quoteAddrs.length])[1]);\n return { fundFlows, blockInfo: blockInfo };\n }\n async getUserPendings(quotes, trader, overrides) {\n const gateInterface = this.context.perp.contracts.gate.interface;\n const observerInterface = this.context.perp.contracts.observer.interface;\n const calls = [];\n calls.push(...quotes.map((quote) => {\n return {\n target: this.context.perp.contracts.gate.address,\n callData: gateInterface.encodeFunctionData('fundFlowOf', [quote, trader]),\n };\n }));\n calls.push(...quotes.map((quote) => {\n return {\n target: this.context.perp.contracts.gate.address,\n callData: gateInterface.encodeFunctionData('thresholdOf', [quote]),\n };\n }));\n calls.push(...quotes.map((quote) => {\n return {\n target: this.context.perp.contracts.gate.address,\n callData: gateInterface.encodeFunctionData('reserveOf', [quote, trader]),\n };\n }));\n calls.push({\n target: this.context.perp.contracts.observer.address,\n callData: observerInterface.encodeFunctionData('getPendings', [quotes, trader]),\n });\n const rawRet = (await this.context.getMulticall3().callStatic.aggregate(calls, overrides ?? {})).returnData;\n const fundFlows = rawRet\n .slice(0, quotes.length)\n .map((ret) => gateInterface.decodeFunctionResult('fundFlowOf', ret)[0]);\n const thresholds = rawRet\n .slice(quotes.length, quotes.length * 2)\n .map((ret) => gateInterface.decodeFunctionResult('thresholdOf', ret)[0]);\n const reserves = rawRet\n .slice(quotes.length * 2, quotes.length * 3)\n .map((ret) => gateInterface.decodeFunctionResult('reserveOf', ret)[0]);\n const decoded = observerInterface.decodeFunctionResult('getPendings', rawRet[quotes.length * 3]);\n const pendings = decoded[0];\n const blockInfo = (0, utils_1.trimObj)(decoded[1]);\n return {\n pendings: pendings.map((pending, index) => {\n return {\n maxWithdrawable: (0, math_1.calcMaxWithdrawable)(thresholds[index], pending, fundFlows[index], reserves[index]),\n pending,\n };\n }),\n blockInfo,\n };\n }\n async inquireByBase(instrumentAddr, expiry, side, baseAmount, overrides) {\n const instrument = typechain_1.Instrument__factory.connect(instrumentAddr, this.context.provider);\n const sign = (0, utils_1.signOfSide)(side);\n const size = baseAmount.mul(sign);\n const quotation = await instrument.inquire(expiry, size, overrides ?? {});\n const entryNotional = quotation.entryNotional;\n return {\n quoteAmount: entryNotional,\n quotation: quotation,\n };\n }\n async inquireByQuote(instrumentAddr, expiry, side, quoteAmount, overrides) {\n const long = side === enum_1.Side.LONG;\n const { size, quotation } = await this.context.perp.contracts.observer.inquireByNotional(instrumentAddr, expiry, quoteAmount, long, overrides ?? {});\n return {\n baseAmount: size.abs(),\n quotation: quotation,\n };\n }\n async getPositionIfSettle(portfolio, amm, overrides) {\n let finalPic = {\n balance: math_1.ZERO,\n size: math_1.ZERO,\n entryNotional: math_1.ZERO,\n entrySocialLossIndex: math_1.ZERO,\n entryFundingIndex: math_1.ZERO,\n };\n const instrumentAddr = portfolio.instrumentAddr;\n const expiry = amm.expiry;\n const ranges = Array.from(portfolio.ranges.values());\n const orders = Array.from(portfolio.orders.values());\n for (const range of ranges) {\n const position = (0, utils_1.rangeToPosition)(range, amm);\n finalPic = (0, lowLevel_1.combine)(amm, finalPic, position).position;\n }\n const ticks = orders.map((o) => o.tick);\n const nonces = orders.map((o) => o.nonce);\n const pearls = await this.context.perp.contracts.observer.getPearls(instrumentAddr, expiry, ticks, overrides ?? {});\n const records = await this.context.perp.contracts.observer.getRecords(instrumentAddr, expiry, ticks, nonces, overrides ?? {});\n for (let i = 0; i < orders.length; i++) {\n const order = orders[i];\n const pearl = pearls[i];\n const record = records[i];\n let position;\n if (pearl.nonce === order.nonce) {\n position = (0, lowLevel_1.cancelOrderToPosition)(pearl.left, pearl.nonce, pearl.taken, pearl.fee, pearl.entrySocialLossIndex, pearl.entryFundingIndex, order, order.tick, order.nonce, record);\n }\n else {\n position = (0, lowLevel_1.fillOrderToPosition)(pearl.nonce, pearl.taken, pearl.fee, pearl.entrySocialLossIndex, pearl.entryFundingIndex, order, order.tick, order.nonce, order.size, record);\n }\n finalPic = (0, lowLevel_1.combine)(amm, finalPic, position).position;\n }\n finalPic = (0, lowLevel_1.combine)(amm, finalPic, portfolio.position).position;\n return utils_1.factory.createPosition({\n ...finalPic,\n instrumentAddr,\n expiry,\n traderAddr: portfolio.traderAddr,\n });\n }\n async getDexV2RawSpotPrice(identifier, overrides) {\n const { baseTokenInfo, quoteTokenInfo } = await (0, utils_1.getTokenInfo)(identifier, this.context);\n const baseScaler = ethers_1.BigNumber.from(10).pow(18 - baseTokenInfo.decimals);\n const quoteScaler = ethers_1.BigNumber.from(10).pow(18 - quoteTokenInfo.decimals);\n const isToken0Quote = ethers_1.BigNumber.from(baseTokenInfo.address).gt(ethers_1.BigNumber.from(quoteTokenInfo.address));\n const dexV2PairInfo = await this.context.perp.contracts.observer.inspectMaxReserveDexV2Pair(baseTokenInfo.address, quoteTokenInfo.address, overrides ?? {});\n if (dexV2PairInfo.maxReservePair === context_1.ZERO_ADDRESS ||\n dexV2PairInfo.reserve0.isZero() ||\n dexV2PairInfo.reserve1.isZero()) {\n return math_1.ZERO;\n }\n return isToken0Quote\n ? (0, math_1.wdiv)(dexV2PairInfo.reserve0.mul(quoteScaler), dexV2PairInfo.reserve1.mul(baseScaler))\n : (0, math_1.wdiv)(dexV2PairInfo.reserve1.mul(quoteScaler), dexV2PairInfo.reserve0.mul(baseScaler));\n }\n async getCexRawSpotPrice(instrumentIdentifier, overrides) {\n const instrumentAddress = await this.context.perp.instrument.computeInstrumentAddress(instrumentIdentifier);\n const market = this.context.perp.contracts.marketContracts[instrumentIdentifier.marketType]\n ?.market;\n let rawSpotPrice;\n try {\n rawSpotPrice = await market.getRawPrice(instrumentAddress, overrides ?? {});\n }\n catch (e) {\n console.error('fetch chainlink spot price error', e);\n rawSpotPrice = math_1.ZERO;\n }\n return rawSpotPrice;\n }\n async getGateBalance(target, quoteAddrs, overrides) {\n const resp = await this.context.perp.contracts.observer.getVaultBalances(target, quoteAddrs, overrides ?? {});\n const balance = [];\n for (let i = 0; i < quoteAddrs.length; i++) {\n balance.push(resp[0][i]);\n }\n return balance;\n }\n async getGateBalances(target, overrides) {\n const quotes = await Promise.all(Object.keys(this.context.perp.configuration.config.quotesParam).map((quote) => this.context.getTokenInfo(quote)));\n const gateBalances = await this.getGateBalance(target, quotes.map((quote) => quote.address), overrides);\n const results = [];\n for (let i = 0; i < quotes.length; i++) {\n if (gateBalances[i].eq(0)) {\n continue;\n }\n results.push({\n ...quotes[i],\n balance: gateBalances[i],\n });\n }\n return results;\n }\n async getLiquidityDetails(instrumentAddr, expiry, tickDelta, overrides) {\n const liquidityDetails = await this.context.perp.contracts.observer.liquidityDetails(instrumentAddr, expiry, tickDelta, overrides ?? {});\n const tick2Pearl = new Map();\n for (let i = 0; i < liquidityDetails.tids.length; i++) {\n tick2Pearl.set(liquidityDetails.tids[i], liquidityDetails.pearls[i]);\n }\n return {\n ...(0, utils_1.trimObj)(liquidityDetails),\n tick2Pearl,\n };\n }\n}\nexports.ObserverModule = ObserverModule;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SimulateModule = void 0;\nconst ethers_1 = require(\"ethers\");\nconst math_1 = require(\"../math\");\nconst utils_1 = require(\"../utils\");\nconst lowLevel_1 = require(\"../utils/lowLevel\");\nconst constants_1 = require(\"../constants\");\nconst enum_1 = require(\"../enum\");\nconst synfError_1 = require(\"../errors/synfError\");\nconst simulationError_1 = require(\"../errors/simulationError\");\nclass SimulateModule {\n constructor(context) {\n this.context = context;\n }\n get observer() {\n return this.context.perp._observer;\n }\n async getPosition(tradeInfo, overrides) {\n if ((0, utils_1.isPosition)(tradeInfo)) {\n return tradeInfo;\n }\n const portfolio = await this.observer.getPortfolio(tradeInfo, overrides ?? {});\n return portfolio.position;\n }\n async getPortfolio(traderInfo, overrides) {\n if ((0, utils_1.isPortfolio)(traderInfo)) {\n return traderInfo;\n }\n else {\n return await this.observer.getPortfolio(traderInfo, overrides ?? {});\n }\n }\n getPriceInfo(priceInfo) {\n let targetTick;\n let targetPrice;\n if (typeof priceInfo === 'number') {\n targetTick = priceInfo;\n targetPrice = math_1.TickMath.getWadAtTick(targetTick);\n }\n else {\n const result = (0, math_1.alignPriceToTick)(priceInfo);\n targetTick = result.tick;\n targetPrice = result.price;\n }\n return { targetTick, targetPrice };\n }\n async mustGetInstrumentAndAmm(anyInfo, instrument, overrides) {\n const result = await this.getInstrumentAndAmm(anyInfo, instrument, overrides ?? {});\n if (result === undefined || result.amm === undefined) {\n throw new synfError_1.SynfError('Instrument or amm not found: ' + `instrument: ${anyInfo.instrumentAddr}, expiry: ${anyInfo.expiry}`);\n }\n return result;\n }\n async getInstrumentAndAmm(anyInfo, instrument, overrides) {\n if (instrument) {\n return { instrument, amm: instrument.amms.get(anyInfo.expiry) };\n }\n instrument = await this.observer.getInstrument({\n instrument: anyInfo.instrumentAddr,\n expiries: [anyInfo.expiry],\n }, overrides ?? {});\n if (instrument === undefined) {\n return undefined;\n }\n return { instrument, amm: instrument.amms.get(anyInfo.expiry) };\n }\n async inquireByBaseOrQuote(params, markPrice, overrides, expectQuotation = false) {\n let baseSize;\n let quoteSize;\n let quotation = null;\n if ((0, utils_1.isByBase)(params.size)) {\n const { quoteAmount, quotation: _quotation } = await this.observer\n .inquireByBase(params.tradeInfo.instrumentAddr, params.tradeInfo.expiry, params.side, params.size.base, overrides ?? {})\n .catch((err) => {\n if (expectQuotation) {\n throw err;\n }\n return {\n quoteAmount: (0, math_1.wmul)(params.size.base, markPrice),\n quotation: null,\n };\n });\n baseSize = params.size.base;\n quoteSize = quoteAmount;\n quotation = _quotation;\n }\n else {\n const { baseAmount, quotation: _quotation } = await this.observer\n .inquireByQuote(params.tradeInfo.instrumentAddr, params.tradeInfo.expiry, params.side, params.size.quote, overrides ?? {})\n .catch((err) => {\n if (expectQuotation) {\n throw err;\n }\n return {\n baseAmount: (0, math_1.wdiv)(params.size.quote, markPrice),\n quotation: null,\n };\n });\n baseSize = baseAmount;\n quoteSize = params.size.quote;\n quotation = _quotation;\n }\n return { baseSize, quoteSize, quotation };\n }\n async simulateCrossMarketOrder(params, overrides) {\n const { instrument, amm } = await this.mustGetInstrumentAndAmm(params.tradeInfo, params.instrument, overrides ?? {});\n const { baseSize, quoteSize } = await this.inquireByBaseOrQuote(params, amm.markPrice, overrides ?? {});\n const sign = (0, utils_1.signOfSide)(params.side);\n const long = sign > 0;\n const { targetTick, targetPrice } = this.getPriceInfo(params.priceInfo);\n const currentTick = amm.tick;\n if ((long && targetTick <= currentTick) || (!long && targetTick >= currentTick)) {\n throw new simulationError_1.SimulationError('Please place normal order');\n }\n let swapToTick = long ? targetTick + 1 : targetTick - 1;\n let { size: swapSize, quotation } = await this.context.perp.contracts.observer.inquireByTick(instrument.instrumentAddr, amm.expiry, swapToTick, overrides ?? {});\n if ((long && quotation.postTick <= targetTick) || (!long && quotation.postTick >= targetTick)) {\n swapToTick = long ? swapToTick + 1 : swapToTick - 1;\n const retry = await this.context.perp.contracts.observer.inquireByTick(instrument.instrumentAddr, amm.expiry, swapToTick, overrides ?? {});\n swapSize = retry.size;\n quotation = retry.quotation;\n }\n if ((long && swapSize.lt(0)) || (!long && swapSize.gt(0))) {\n throw new simulationError_1.SimulationError('Wrong Side');\n }\n const tradeSimulation = await this._simulateMarketOrderByLeverage({\n tradeInfo: params.tradeInfo,\n side: params.side,\n size: { base: swapSize.abs() },\n slippage: params.slippage,\n strictMode: params.strictMode,\n instrument: instrument,\n leverage: params.leverage,\n }, overrides ?? {});\n const position = await this.getPosition(params.tradeInfo, overrides ?? {});\n if (position.size.isZero() && quotation.entryNotional.lt(instrument.minTradeValue)) {\n throw new simulationError_1.SimulationError('Size to tick is trivial');\n }\n const orderBaseSize = baseSize.sub(swapSize.abs());\n const orderQuoteSize = quoteSize.sub(tradeSimulation.size.quote);\n const orderSimulation = {\n ...this._simulateOrder(instrument, amm, targetPrice, orderBaseSize, params.leverage),\n tick: targetTick,\n size: { base: orderBaseSize, quote: orderQuoteSize },\n };\n const minOrderValue = instrument.minOrderValue;\n const targetTickPrice = math_1.TickMath.getWadAtTick(targetTick);\n const minOrderSize = (0, math_1.wdivUp)(minOrderValue, targetTickPrice);\n if (swapSize.abs().add(minOrderSize).gt(baseSize)) {\n return {\n canPlaceOrder: false,\n minOrderSize,\n tradeSimulation,\n orderSimulation,\n };\n }\n else {\n return {\n canPlaceOrder: true,\n minOrderSize,\n tradeSimulation,\n orderSimulation,\n };\n }\n }\n async simulateLimitOrder(params, overrides) {\n const { instrument, amm } = await this.mustGetInstrumentAndAmm(params.tradeInfo, params.instrument, overrides ?? {});\n const { targetTick, targetPrice } = this.getPriceInfo(params.priceInfo);\n const currentTick = amm.tick;\n if (currentTick === targetTick) {\n throw new simulationError_1.SimulationError('Invalid price');\n }\n const isLong = targetTick < currentTick;\n if ((params.side === enum_1.Side.LONG && !isLong) || (params.side === enum_1.Side.SHORT && isLong)) {\n throw new simulationError_1.SimulationError('Invalid price');\n }\n const maxLeverage = (0, math_1.getMaxLeverage)(instrument.setting.initialMarginRatio);\n if (params.leverage.gt(ethers_1.ethers.utils.parseEther(maxLeverage + ''))) {\n throw new simulationError_1.SimulationError('Insufficient margin to open position');\n }\n if (!(0, lowLevel_1.withinOrderLimit)(targetPrice, amm.markPrice, instrument.setting.initialMarginRatio)) {\n throw new simulationError_1.SimulationError('Limit order price is too far away from mark price');\n }\n if (!(0, lowLevel_1.withinDeviationLimit)(amm.fairPrice, amm.markPrice, instrument.setting.initialMarginRatio)) {\n throw new simulationError_1.SimulationError('Fair price is too far away from mark price');\n }\n const { baseSize, quoteSize } = await this.inquireByBaseOrQuote(params, amm.markPrice, overrides ?? {});\n const res = this._simulateOrder(instrument, amm, targetPrice, baseSize, params.leverage);\n return {\n ...res,\n tick: targetTick,\n size: {\n base: baseSize,\n quote: quoteSize,\n },\n };\n }\n async simulateBatchPlace(params, overrides) {\n const { instrument, amm } = await this.mustGetInstrumentAndAmm(params.tradeInfo, params.instrument, overrides ?? {});\n if (params.targetTicks.length < constants_1.MIN_BATCH_ORDER_COUNT || params.targetTicks.length > constants_1.MAX_BATCH_ORDER_COUNT) {\n throw new simulationError_1.SimulationError(`Order count should be between ${constants_1.MIN_BATCH_ORDER_COUNT} and ${constants_1.MAX_BATCH_ORDER_COUNT}`);\n }\n if (params.targetTicks.length !== params.ratios.length) {\n throw new simulationError_1.SimulationError('Ticks and ratios length not equal');\n }\n if (params.ratios.reduce((acc, ratio) => acc + ratio, 0) !== constants_1.RATIO_BASE) {\n throw new simulationError_1.SimulationError('Ratios sum not equal to RATIO_BASE: 10000');\n }\n if (new Set(params.targetTicks).size !== params.targetTicks.length) {\n throw new simulationError_1.SimulationError('Duplicated ticks');\n }\n if (params.targetTicks.find((tick) => tick % constants_1.PEARL_SPACING !== 0)) {\n throw new simulationError_1.SimulationError('Unaligned ticks');\n }\n const orders = [];\n for (let index = 0; index < params.targetTicks.length; index++) {\n const { targetTick, targetPrice } = this.getPriceInfo(params.targetTicks[index]);\n try {\n const baseSize = (0, math_1.wmul)(params.baseSize, (0, math_1.r2w)(params.ratios[index]));\n const { quoteAmount: quoteSize } = await this.observer.inquireByBase(params.tradeInfo.instrumentAddr, params.tradeInfo.expiry, params.side, baseSize, overrides ?? {});\n const res = this._simulateOrder(instrument, amm, targetPrice, baseSize, params.leverage);\n orders.push({\n ...res,\n tick: targetTick,\n size: {\n base: baseSize,\n quote: quoteSize,\n },\n });\n }\n catch {\n orders.push(null);\n }\n }\n return orders;\n }\n async simulateScaledLimitOrder(params, overrides) {\n if (params.priceInfo.length < constants_1.MIN_BATCH_ORDER_COUNT || params.priceInfo.length > constants_1.MAX_BATCH_ORDER_COUNT) {\n throw new simulationError_1.SimulationError(`Order count should be between ${constants_1.MIN_BATCH_ORDER_COUNT} and ${constants_1.MAX_BATCH_ORDER_COUNT}`);\n }\n const { instrument, amm } = await this.mustGetInstrumentAndAmm(params.tradeInfo, params.instrument, overrides ?? {});\n const { baseSize, quoteSize } = await this.inquireByBaseOrQuote(params, amm.markPrice, overrides ?? {});\n const targetTicks = params.priceInfo.map((p) => (typeof p === 'number' ? p : math_1.TickMath.getTickAtPWad(p)));\n let ratios = (0, lowLevel_1.getBatchOrderRatios)(params.sizeDistribution, params.priceInfo.length);\n const minOrderValue = instrument.minOrderValue;\n const minSizes = targetTicks.map((tick) => (0, math_1.wdivUp)(minOrderValue, math_1.TickMath.getWadAtTick(tick)));\n if (params.sizeDistribution === enum_1.BatchOrderSizeDistribution.RANDOM) {\n let needNewRatios = false;\n for (let i = 0; i < minSizes.length; i++) {\n if (baseSize.mul(ratios[i]).div(constants_1.RATIO_BASE).lt(minSizes[i])) {\n needNewRatios = true;\n break;\n }\n }\n if (needNewRatios && minSizes.reduce((acc, minSize) => acc.add(minSize), math_1.ZERO).lt(baseSize)) {\n ratios = (0, lowLevel_1.getBatchOrderRatios)(enum_1.BatchOrderSizeDistribution.FLAT, params.priceInfo.length);\n }\n }\n const sizes = ratios.map((ratio) => baseSize.mul(ratio).div(constants_1.RATIO_BASE));\n const bnMax = (a, b) => (a.gt(b) ? a : b);\n const minSizeToSizeRatio = minSizes\n .map((minSize, i) => bnMax((0, math_1.wdivUp)(minSize, sizes[i]), math_1.ZERO))\n .reduce((acc, ratio) => bnMax(acc, ratio), math_1.ZERO);\n const totalMinSize = (0, math_1.wmulUp)(baseSize, minSizeToSizeRatio);\n const res = await this.simulateBatchPlace({\n tradeInfo: params.tradeInfo,\n targetTicks,\n ratios,\n baseSize,\n side: params.side,\n leverage: params.leverage,\n instrument,\n }, overrides ?? {});\n return {\n orders: targetTicks.map((tick, index) => {\n return (res[index] && {\n ...res[index],\n ratio: ratios[index],\n minOrderSize: minSizes[index],\n });\n }),\n totalMinSize,\n size: {\n base: baseSize,\n quote: quoteSize,\n },\n };\n }\n _simulateOrder(instrument, amm, targetPrice, baseSize, leverage) {\n const markPrice = amm.markPrice;\n const tradeValue = (0, math_1.wmulUp)(targetPrice, baseSize);\n const bnMax = (a, b) => (a.gt(b) ? a : b);\n let margin = (0, math_1.wdivUp)((0, math_1.wmulUp)(bnMax(targetPrice, markPrice), baseSize), leverage);\n const minMargin = (0, math_1.wmulUp)((0, math_1.r2w)(instrument.setting.initialMarginRatio), (0, math_1.wmulUp)((0, math_1.max)(markPrice\n .mul(constants_1.ONE_RATIO + 50)\n .div(constants_1.ONE_RATIO), targetPrice), baseSize));\n if (margin.lt(minMargin)) {\n margin = minMargin;\n }\n return {\n limitPrice: targetPrice,\n tradeValue,\n margin,\n leverage,\n minFeeRebate: (0, math_1.wmul)((0, math_1.wmul)(targetPrice, baseSize), (0, math_1.r2w)(instrument.setting.quoteParam.tradingFeeRatio)),\n };\n }\n async simulateTrade(params, simulate, overrides) {\n let { instrument, amm } = await this.mustGetInstrumentAndAmm(params.tradeInfo, params.instrument, overrides ?? {});\n const prePosition = await this.getPosition(params.tradeInfo, overrides ?? {});\n const { baseSize, quoteSize, quotation } = await this.inquireByBaseOrQuote(params, amm.markPrice, overrides ?? {}, true);\n if (baseSize.lte(0)) {\n throw new simulationError_1.SimulationError('Invalid trade size');\n }\n const sign = (0, utils_1.signOfSide)(params.side);\n const tradePrice = (0, math_1.wdiv)(quotation.entryNotional, baseSize.abs());\n const limitTick = math_1.TickMath.getLimitTick(tradePrice, params.slippage, params.side);\n const markPrice = amm.markPrice;\n if (amm.expiry === constants_1.PERP_EXPIRY) {\n let timestamp;\n if (!overrides || !overrides.blockTag) {\n timestamp = Math.floor(Date.now() / 1000);\n }\n else {\n const block = await this.context.provider.getBlock(overrides.blockTag);\n timestamp = block.timestamp;\n }\n const { longFundingIndex, shortFundingIndex } = (0, lowLevel_1.updateFundingIndex)(amm, amm.markPrice, timestamp);\n amm = {\n ...amm,\n longFundingIndex,\n shortFundingIndex,\n };\n }\n let exceedMaxLeverage = false;\n const limitPrice = math_1.TickMath.getWadAtTick(limitTick);\n const worstNotional = (0, math_1.wmul)(limitPrice, baseSize);\n const tradeLoss = sign > 0 ? worstNotional.sub((0, math_1.wmul)(markPrice, baseSize)) : (0, math_1.wmul)(markPrice, baseSize).sub(worstNotional);\n const preEquity = (0, utils_1.positionEquity)(prePosition, amm);\n const rawSize = baseSize.mul(sign);\n let { margin, leverage } = simulate(markPrice, baseSize, sign, prePosition, preEquity, tradeLoss, quotation);\n const { position: rawPosition, realized: realized } = (0, lowLevel_1.combine)(amm, prePosition, {\n balance: margin.lt(0) ? quotation.fee.mul(-1) : margin.sub(quotation.fee),\n size: rawSize,\n entryNotional: quotation.entryNotional,\n entrySocialLossIndex: sign > 0 ? amm.longSocialLossIndex : amm.shortSocialLossIndex,\n entryFundingIndex: sign > 0 ? amm.longFundingIndex : amm.shortFundingIndex,\n });\n const postPosition = utils_1.factory.createPosition({\n ...prePosition,\n ...rawPosition,\n });\n if (!postPosition.size.eq(math_1.ZERO) && margin.lt(math_1.ZERO)) {\n const maxWithdrawableMargin = (0, utils_1.positionMaxWithdrawableMargin)(postPosition, amm, instrument.setting.initialMarginRatio);\n if (margin.abs().gt(maxWithdrawableMargin)) {\n if (params.strictMode) {\n throw new simulationError_1.SimulationError('Exceed max leverage');\n }\n margin = maxWithdrawableMargin.mul(-1);\n exceedMaxLeverage = true;\n }\n postPosition.balance = postPosition.balance.add(margin);\n }\n if (postPosition.size.eq(math_1.ZERO) ||\n (prePosition.size.mul(sign).lt(math_1.ZERO) && baseSize.abs().lt(prePosition.size.abs()))) {\n if (!(0, utils_1.isPositionMMSafe)(postPosition, amm, instrument.setting.maintenanceMarginRatio)) {\n throw new simulationError_1.SimulationError('Insufficient margin to open position');\n }\n }\n else {\n if (!(0, utils_1.isPositionIMSafe)(postPosition, amm, instrument.setting.initialMarginRatio, true)) {\n if (params.strictMode) {\n throw new simulationError_1.SimulationError('Exceed max leverage');\n }\n const additionalMargin = (0, utils_1.positionAdditionMarginToIMRSafe)(postPosition, amm, instrument.setting.initialMarginRatio, true, params.slippage);\n postPosition.balance = postPosition.balance.add(additionalMargin);\n margin = margin.add(additionalMargin);\n leverage = (0, utils_1.positionLeverage)(postPosition, amm);\n exceedMaxLeverage = true;\n }\n }\n const priceImpact = (0, math_1.wdiv)((0, math_1.sqrtX96ToWad)(quotation.sqrtPostFairPX96).sub((0, math_1.sqrtX96ToWad)(quotation.sqrtFairPX96)), (0, math_1.sqrtX96ToWad)(quotation.sqrtFairPX96));\n const stabilityFee = math_1.SqrtPriceMath.getStabilityFee(quotation, instrument.setting.quoteParam);\n return {\n tradePrice: tradePrice,\n tradeValue: quotation.entryNotional,\n tradingFee: quotation.fee.sub(stabilityFee),\n stabilityFee,\n margin,\n marginChanged: postPosition.size.eq(math_1.ZERO) && postPosition.balance.gt(math_1.ZERO) ? postPosition.balance.mul(-1) : margin,\n leverage: postPosition.size.eq(math_1.ZERO) ? math_1.ZERO : leverage,\n priceImpact,\n postPosition,\n realized,\n limitTick,\n exceedMaxLeverage,\n size: {\n base: baseSize,\n quote: quoteSize,\n },\n };\n }\n simulateMarketOrderByMargin(params, overrides) {\n return this.simulateTrade(params, (markPrice, baseSize, sign, prePosition, preEquity, tradeLoss, quotation) => {\n const postEquity = preEquity.add(params.margin).sub(tradeLoss).sub(quotation.fee);\n const leverage = (0, math_1.wdiv)((0, math_1.wmul)(markPrice, baseSize.mul(sign).add(prePosition.size)).abs(), postEquity);\n return { leverage, margin: params.margin };\n }, overrides ?? {});\n }\n _simulateMarketOrderByLeverage(params, overrides) {\n return this.simulateTrade(params, (markPrice, baseSize, sign, prePosition, preEquity, tradeLoss, quotation) => {\n const postEquity = (0, math_1.wdiv)((0, math_1.wmul)(markPrice, baseSize.mul(sign).add(prePosition.size)).abs(), params.leverage);\n const margin = postEquity.sub(preEquity).add(tradeLoss).add(quotation.fee);\n return { leverage: params.leverage, margin };\n }, overrides ?? {});\n }\n simulateMarketOrderByLeverage(params, overrides) {\n return this._simulateMarketOrderByLeverage(params, overrides);\n }\n async simulateClose(params, overrides) {\n const prePosition = await this.getPosition(params.tradeInfo, overrides ?? {});\n return await this.simulateTrade({\n ...params,\n tradeInfo: prePosition,\n side: (0, utils_1.reverseSide)(prePosition.side),\n }, (markPrice, baseSize, sign, prePosition, preEquity, tradeLoss, quotation) => {\n const margin = math_1.ZERO;\n const postEquity = preEquity.add(math_1.ZERO).sub(tradeLoss).sub(quotation.fee);\n const leverage = (0, math_1.wdiv)((0, math_1.wmul)(markPrice, baseSize.mul(sign).add(prePosition.size)).abs(), postEquity);\n return { leverage, margin };\n }, overrides ?? {});\n }\n async simulateAdjustMargin(params, simulate, overrides) {\n const { instrument, amm } = await this.mustGetInstrumentAndAmm(params.tradeInfo, params.instrument, overrides ?? {});\n let postPosition = await this.getPosition(params.tradeInfo, overrides ?? {});\n const maxWithdrawableMargin = (0, utils_1.positionMaxWithdrawableMargin)(postPosition, amm, instrument.setting.initialMarginRatio);\n const { margin, leverage } = simulate(postPosition, amm);\n if (margin.lt(math_1.ZERO) && margin.abs().gt(maxWithdrawableMargin)) {\n throw new simulationError_1.SimulationError('Invalid input');\n }\n postPosition = {\n ...postPosition,\n balance: postPosition.balance.add(margin),\n };\n return {\n postPosition,\n transferIn: margin.gt(0),\n margin: margin.abs(),\n leverage,\n };\n }\n async simulateAdjustMarginByMargin(params, overrides) {\n if (params.margin.lt(0)) {\n throw new simulationError_1.SimulationError('Invalid margin');\n }\n const result = await this.simulateAdjustMargin(params, (position, amm) => {\n const margin = params.margin.mul(params.transferIn ? 1 : -1);\n const value = (0, math_1.wmul)(amm.markPrice, position.size.abs());\n const equity = (0, utils_1.positionEquity)(position, amm).add(margin);\n const leverage = (0, math_1.wdiv)(value, equity);\n return { leverage, margin };\n }, overrides ?? {});\n return {\n leverage: result.leverage,\n postPosition: result.postPosition,\n };\n }\n async simulateAdjustMarginByLeverage(params, overrides) {\n const result = await this.simulateAdjustMargin(params, (position, amm) => {\n const margin = (0, utils_1.inquireTransferAmountFromTargetLeverage)(position, amm, params.leverage);\n return { leverage: params.leverage, margin };\n }, overrides ?? {});\n return {\n transferIn: result.transferIn,\n margin: result.margin,\n postPosition: result.postPosition,\n };\n }\n async simulateBenchmarkPrice(instrumentIdentifier, expiry, overrides) {\n let benchmarkPrice;\n if ((0, utils_1.isCexMarket)(instrumentIdentifier.marketType)) {\n benchmarkPrice = await this.observer.inspectCexMarketBenchmarkPrice(instrumentIdentifier, expiry, overrides ?? {});\n }\n else {\n benchmarkPrice = await this.observer.inspectDexV2MarketBenchmarkPrice(instrumentIdentifier, expiry, overrides ?? {});\n }\n return benchmarkPrice;\n }\n async simulateAddLiquidity(params, overrides) {\n const res = await this._simulateAddLiquidityWithAsymmetricRange({\n expiry: params.expiry,\n instrument: params.instrument,\n alphaWadLower: params.alphaWad,\n alphaWadUpper: params.alphaWad,\n margin: params.margin,\n slippage: params.slippage,\n currentSqrtPX96: params.currentSqrtPX96,\n }, overrides ?? {});\n return {\n ...res,\n tickDelta: res.tickDeltaUpper,\n equivalentAlpha: (0, utils_1.tickDeltaToAlphaWad)(~~((math_1.TickMath.getTickAtPWad(res.upperPrice) - math_1.TickMath.getTickAtPWad(res.lowerPrice)) / 2)),\n };\n }\n _getMinLiquidity(instrumentAmmSqrtPX96, instrumentMinRangeValue, px96) {\n const sqrtPX96 = px96 ? px96 : instrumentAmmSqrtPX96;\n return instrumentMinRangeValue.mul(math_1.Q96).div(sqrtPX96.mul(2));\n }\n async _simulateAddLiquidityWithAsymmetricRange(params, overrides) {\n const instrumentAddress = ((0, utils_1.isInstrument)(params.instrument)\n ? params.instrument.instrumentAddr\n : await this.context.perp.instrument.computeInstrumentAddress(params.instrument)).toLowerCase();\n const instrumentIdentifier = (0, utils_1.isInstrument)(params.instrument)\n ? {\n marketType: params.instrument.marketType,\n baseSymbol: params.instrument.base,\n quoteSymbol: params.instrument.quote,\n }\n : params.instrument;\n const instruments = (await this.context.perp.contracts.gate.getAllInstruments(overrides ?? {})).map((addr) => addr.toLowerCase());\n const info = instruments.includes(instrumentAddress)\n ? (0, utils_1.isInstrument)(params.instrument)\n ? {\n instrument: params.instrument,\n amm: params.instrument.amms.get(params.expiry),\n }\n : await this.getInstrumentAndAmm({ expiry: params.expiry, instrumentAddr: instrumentAddress }, undefined, overrides ?? {})\n : undefined;\n let quoteInfo;\n let setting;\n let amm;\n const instrument = info?.instrument;\n if (!instrument || !info?.amm) {\n const benchmarkPrice = await this.simulateBenchmarkPrice(instrumentIdentifier, params.expiry, overrides ?? {});\n const { quoteTokenInfo } = await (0, utils_1.getTokenInfo)(instrumentIdentifier, this.context);\n quoteInfo = quoteTokenInfo;\n if (instrument) {\n setting = instrument.setting;\n }\n else {\n const quoteParam = await this.context.perp.contracts.config.getQuoteParam(quoteInfo.address, overrides ?? {});\n setting = {\n initialMarginRatio: constants_1.INITIAL_MARGIN_RATIO,\n maintenanceMarginRatio: constants_1.MAINTENANCE_MARGIN_RATIO,\n quoteParam: { ...quoteParam },\n };\n }\n amm = utils_1.factory.createAmm({\n instrumentAddr: instrumentAddress,\n expiry: 0,\n timestamp: 0,\n status: enum_1.Status.TRADING,\n tick: math_1.TickMath.getTickAtPWad(benchmarkPrice),\n sqrtPX96: (0, math_1.wadToSqrtX96)(benchmarkPrice),\n liquidity: math_1.ZERO,\n totalLiquidity: math_1.ZERO,\n involvedFund: math_1.ZERO,\n openInterests: math_1.ZERO,\n feeIndex: math_1.ZERO,\n protocolFee: math_1.ZERO,\n totalLong: math_1.ZERO,\n totalShort: math_1.ZERO,\n longSocialLossIndex: math_1.ZERO,\n shortSocialLossIndex: math_1.ZERO,\n longFundingIndex: math_1.ZERO,\n shortFundingIndex: math_1.ZERO,\n insuranceFund: math_1.ZERO,\n settlementPrice: math_1.ZERO,\n markPrice: math_1.ZERO,\n });\n }\n else {\n amm = info.amm;\n quoteInfo = instrument.quote;\n setting = instrument.setting;\n }\n const minTradeValue = setting.quoteParam.minMarginAmount.mul(constants_1.RATIO_BASE).div(setting.initialMarginRatio);\n const instrumentMinRangeValue = minTradeValue.mul(constants_1.MIN_RANGE_MULTIPLIER);\n const tickDeltaLower = (0, utils_1.alphaWadToTickDelta)(params.alphaWadLower);\n const tickDeltaUpper = (0, utils_1.alphaWadToTickDelta)(params.alphaWadUpper);\n const upperTick = (0, lowLevel_1.alignRangeTick)(amm.tick + tickDeltaUpper, false);\n const lowerTick = (0, lowLevel_1.alignRangeTick)(amm.tick - tickDeltaLower, true);\n const upperPrice = math_1.TickMath.getWadAtTick(upperTick);\n const lowerPrice = math_1.TickMath.getWadAtTick(lowerTick);\n const { liquidity: liquidity } = (0, lowLevel_1.entryDelta)(amm.sqrtPX96, lowerTick, upperTick, params.margin, setting.initialMarginRatio);\n const { tickLower, tickUpper } = (0, utils_1.parseTicks)((0, utils_1.rangeKey)(lowerTick, upperTick));\n const simulationRange = {\n liquidity,\n balance: params.margin,\n sqrtEntryPX96: amm.sqrtPX96,\n entryFeeIndex: amm.feeIndex,\n tickLower,\n tickUpper,\n };\n const rawLowerPosition = (0, utils_1.rangeLowerPositionIfRemove)(simulationRange, amm);\n const rawUpperPosition = (0, utils_1.rangeUpperPositionIfRemove)(simulationRange, amm);\n const minMargin = (0, lowLevel_1.getMarginFromLiquidity)(amm.sqrtPX96, upperTick, this._getMinLiquidity(amm.sqrtPX96, instrumentMinRangeValue, amm.sqrtPX96), setting.initialMarginRatio);\n const basedPX96 = params.currentSqrtPX96 ? params.currentSqrtPX96 : amm.sqrtPX96;\n const sqrtStrikeLowerPX96 = basedPX96.sub((0, math_1.wmulDown)(basedPX96, (0, math_1.r2w)(params.slippage)));\n const sqrtStrikeUpperPX96 = basedPX96.add((0, math_1.wmulDown)(basedPX96, (0, math_1.r2w)(params.slippage)));\n return {\n tickDeltaLower,\n tickDeltaUpper,\n liquidity,\n upperPrice: math_1.TickMath.getWadAtTick(simulationRange.tickUpper),\n lowerPrice: math_1.TickMath.getWadAtTick(simulationRange.tickLower),\n lowerPosition: utils_1.factory.createPosition({\n instrumentAddr: instrumentAddress,\n expiry: params.expiry,\n traderAddr: math_1.ADDRESS_ZERO,\n ...rawLowerPosition,\n }),\n lowerLeverage: rawLowerPosition.size.mul(lowerPrice).div(rawLowerPosition.balance).abs(),\n upperPosition: utils_1.factory.createPosition({\n instrumentAddr: instrumentAddress,\n expiry: params.expiry,\n traderAddr: math_1.ADDRESS_ZERO,\n ...rawUpperPosition,\n }),\n upperLeverage: rawUpperPosition.size.mul(upperPrice).div(rawUpperPosition.balance).abs(),\n limitTicks: math_1.TickMath.encodeLimitTicks(sqrtStrikeLowerPX96, sqrtStrikeUpperPX96),\n minMargin,\n minEffectiveQuoteAmount: instrumentMinRangeValue,\n equivalentAlphaLower: (0, utils_1.tickDeltaToAlphaWad)(~~(upperTick - amm.tick)),\n equivalentAlphaUpper: (0, utils_1.tickDeltaToAlphaWad)(~~(amm.tick - lowerTick)),\n capitalEfficiencyBoost: params.alphaWadLower === params.alphaWadUpper\n ? (0, math_1.calcBoost)(Number.parseFloat(ethers_1.ethers.utils.formatUnits(params.alphaWadLower)), setting.initialMarginRatio)\n : (0, math_1.calcAsymmetricBoost)(Number.parseFloat(ethers_1.ethers.utils.formatUnits(params.alphaWadLower)), Number.parseFloat(ethers_1.ethers.utils.formatUnits(params.alphaWadUpper)), setting.initialMarginRatio),\n };\n }\n async simulateAddLiquidityWithAsymmetricRange(params, overrides) {\n return await this._simulateAddLiquidityWithAsymmetricRange(params, overrides ?? {});\n }\n async simulateRemoveLiquidity(params, overrides) {\n const portfolio = await this.getPortfolio(params.tradeInfo, overrides ?? {});\n const position = portfolio.position;\n const range = portfolio.ranges.get((0, utils_1.rangeKey)(params.tickLower, params.tickUpper));\n if (!range) {\n throw new simulationError_1.SimulationError('Missing range');\n }\n const { amm } = await this.mustGetInstrumentAndAmm(params.tradeInfo, params.instrument, overrides ?? {});\n const rawPositionRemoved = (0, utils_1.rangeToPosition)(range, amm);\n const rawMainPosition = (0, lowLevel_1.combine)(amm, rawPositionRemoved, position).position;\n const postPosition = utils_1.factory.createPosition({\n ...rawMainPosition,\n instrumentAddr: position.instrumentAddr,\n expiry: position.expiry,\n traderAddr: position.traderAddr,\n });\n const removedPosition = utils_1.factory.createPosition({\n ...rawPositionRemoved,\n instrumentAddr: position.instrumentAddr,\n expiry: position.expiry,\n traderAddr: position.traderAddr,\n });\n const sqrtStrikeLowerPX96 = amm.sqrtPX96.sub((0, math_1.wmulDown)(amm.sqrtPX96, (0, math_1.r2w)(params.slippage)));\n const sqrtStrikeUpperPX96 = amm.sqrtPX96.add((0, math_1.wmulDown)(amm.sqrtPX96, (0, math_1.r2w)(params.slippage)));\n return {\n removedPosition,\n postPosition,\n limitTicks: math_1.TickMath.encodeLimitTicks(sqrtStrikeLowerPX96, sqrtStrikeUpperPX96),\n removedPositionEntryPrice: (0, math_1.sqrt)((0, math_1.sqrtX96ToWad)(amm.sqrtPX96).mul((0, math_1.sqrtX96ToWad)(range.sqrtEntryPX96))),\n };\n }\n}\nexports.SimulateModule = SimulateModule;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CexMarketParser = void 0;\nconst context_1 = require(\"@derivation-tech/context\");\nconst typechain_1 = require(\"../typechain\");\nconst enum_1 = require(\"../enum\");\nconst utils_1 = require(\"../utils\");\nconst farmat_1 = require(\"./farmat\");\nconst ethers_1 = require(\"ethers\");\nclass CexMarketParser extends context_1.ContractParser {\n constructor() {\n super(typechain_1.CexMarket__factory.createInterface());\n }\n async parseBaseParam(_description, param, data) {\n switch (param.name) {\n case 'time':\n case 'initTime':\n return (0, farmat_1.formatTimestamp)(data);\n case 'spot':\n case 'raw':\n case 'initMark':\n case 'accumulation':\n return (0, context_1.formatWad)(data);\n case 'expiry':\n return (0, utils_1.formatExpiry)(data);\n case 'ftype':\n return enum_1.FeederType[Number(data)];\n case 'compactEmaParam': {\n return (0, farmat_1.formatCompactEmaParam)(ethers_1.BigNumber.from(data));\n }\n default:\n return data.toString();\n }\n }\n}\nexports.CexMarketParser = CexMarketParser;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ConfigParser = void 0;\nconst ethers_1 = require(\"ethers\");\nconst context_1 = require(\"@derivation-tech/context\");\nconst typechain_1 = require(\"../typechain\");\nconst utils_1 = require(\"../utils\");\nconst farmat_1 = require(\"./farmat\");\nconst enum_1 = require(\"../enum\");\nclass ConfigParser extends context_1.ContractParser {\n constructor() {\n super(typechain_1.Config__factory.createInterface());\n }\n async parseBaseParam(_description, param, data) {\n switch (param.name) {\n case 'tradingFeeRatio':\n case 'protocolFeeRatio':\n return (0, farmat_1.formatRatio)(data);\n case 'stabilityFeeRatioParam':\n return (0, farmat_1.extractFeeRatioParams)(ethers_1.BigNumber.from(data))\n .map((p) => (0, context_1.formatWad)(p))\n .toString();\n case 'tip':\n case 'minMarginAmount':\n return (0, context_1.formatWad)(data);\n case 'expiry':\n return (0, utils_1.formatExpiry)(data);\n case 'qtype':\n return enum_1.QuoteType[Number(data)];\n default:\n return data.toString();\n }\n }\n}\nexports.ConfigParser = ConfigParser;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DexV2MarketParser = void 0;\nconst ethers_1 = require(\"ethers\");\nconst context_1 = require(\"@derivation-tech/context\");\nconst typechain_1 = require(\"../typechain\");\nconst utils_1 = require(\"../utils\");\nconst enum_1 = require(\"../enum\");\nconst farmat_1 = require(\"./farmat\");\nclass DexV2MarketParser extends context_1.ContractParser {\n constructor() {\n super(typechain_1.DexV2Market__factory.createInterface());\n }\n async parseBaseParam(_description, param, data) {\n switch (param.name) {\n case 'initTime':\n case 'time':\n return (0, farmat_1.formatTimestamp)(data);\n case 'raw':\n case 'spot':\n case 'initMark':\n case 'initAccumulation':\n return (0, context_1.formatWad)(data);\n case 'expiry':\n return (0, utils_1.formatExpiry)(data);\n case 'ftype':\n return enum_1.FeederType[Number(data)];\n case 'compactEmaParam': {\n return (0, farmat_1.formatCompactEmaParam)(ethers_1.BigNumber.from(data));\n }\n default:\n return data.toString();\n }\n }\n}\nexports.DexV2MarketParser = DexV2MarketParser;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.formatRatio = formatRatio;\nexports.formatCompactEmaParam = formatCompactEmaParam;\nexports.formatEmaParam = formatEmaParam;\nexports.decodeEmaParam = decodeEmaParam;\nexports.formatTimestamp = formatTimestamp;\nexports.extractFeeRatioParams = extractFeeRatioParams;\nexports.formatSqrtPX96 = formatSqrtPX96;\nexports.formatTick = formatTick;\nconst ethers_1 = require(\"ethers\");\nconst context_1 = require(\"@derivation-tech/context\");\nconst math_1 = require(\"../math\");\nconst constants_1 = require(\"../constants\");\nfunction formatRatio(value) {\n return ethers_1.ethers.utils.formatUnits(ethers_1.BigNumber.from(value), 2) + '%';\n}\nfunction formatCompactEmaParam(data) {\n return formatEmaParam(decodeEmaParam(ethers_1.BigNumber.from(data)));\n}\nfunction formatEmaParam(ema) {\n return Object.entries(ema)\n .map(([k, v]) => {\n if (k === 'maxChangeRatioPerSecond') {\n return ` ${k}: ${formatRatio(ethers_1.BigNumber.from(v))}`;\n }\n else {\n return ` ${k}: ${v.toString()}`;\n }\n })\n .toString();\n}\nfunction decodeEmaParam(encoded) {\n return {\n emaHalfTime: encoded.shr(48).and(0xffff),\n maxTimeDelta: encoded.shr(32).and(0xffff),\n maxRawTimeDelta: encoded.shr(16).and(0xffff),\n maxChangeRatioPerSecond: encoded.and(0xffff),\n };\n}\nfunction formatTimestamp(value) {\n return new Date(ethers_1.BigNumber.from(value).mul(1000).toNumber()).toISOString();\n}\nfunction extractFeeRatioParams(stabilityFeeRatioParam) {\n const ret = [];\n ret.push((0, math_1.s2w)(stabilityFeeRatioParam.and(math_1.MAX_UINT_24)));\n ret.push((0, math_1.s2w)(stabilityFeeRatioParam.shr(24).and(math_1.MAX_UINT_16)));\n ret.push((0, math_1.s2w)(stabilityFeeRatioParam.shr(40).and(math_1.MAX_UINT_16)));\n ret.push((0, math_1.s2w)(stabilityFeeRatioParam.shr(56)));\n return ret;\n}\nfunction formatSqrtPX96(sqrtPX96, fixedDecimals = 6) {\n return (0, context_1.formatWad)((0, math_1.sqrtX96ToWad)(sqrtPX96), fixedDecimals);\n}\nfunction formatTick(tick) {\n if (tick < constants_1.MIN_TICK) {\n return 'MIN_TICK';\n }\n else if (tick > constants_1.MAX_TICK) {\n return 'MAX_TICK';\n }\n else {\n return `${tick}(${formatSqrtPX96(math_1.TickMath.getSqrtRatioAtTick(tick))})`;\n }\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GateParser = void 0;\nconst context_1 = require(\"@derivation-tech/context\");\nconst typechain_1 = require(\"../typechain\");\nconst ethers_1 = require(\"ethers\");\nconst utils_1 = require(\"ethers/lib/utils\");\nconst utils_2 = require(\"../utils\");\nconst enum_1 = require(\"../enum\");\nconst constants_1 = require(\"../constants\");\nconst farmat_1 = require(\"./farmat\");\nclass GateParser extends context_1.ContractParser {\n constructor(ctx) {\n super(typechain_1.Gate__factory.createInterface());\n this.ctx = ctx;\n }\n async formatEncodedFundctionArgs(obj) {\n let str = '{ ';\n for (const [k, v] of Object.entries(obj)) {\n if (ethers_1.ethers.utils.isAddress(v)) {\n str += `${k}: ${await this.parseAddress(v)}, `;\n continue;\n }\n if (k === 'limitTicks') {\n str += `minTickLower: ${(0, farmat_1.formatTick)(v.toNumber() >> 24)}, maxTickUpper: ${(0, farmat_1.formatTick)(v.toNumber() & ((1 << 24) - 1))}, `;\n }\n else {\n str += `${k}: ${this.parseDefaultBaseParam(utils_1.ParamType.from({ type: 'string', name: k }), v)}, `;\n }\n }\n str = str.substring(0, str.length - 2) + ' }';\n return str;\n }\n async parseBaseArrayParam(description, param, value) {\n if (description.name === 'launch' && param.name === 'addArgs') {\n return this.formatEncodedFundctionArgs((0, utils_2.decodeAddParam)(value));\n }\n return await super.parseBaseArrayParam(description, param, value);\n }\n async parseBaseParam(description, param, data) {\n switch (param.name) {\n case 'arg':\n if (description.name === 'deposit' || description.name === 'withdraw') {\n const args = (0, utils_2.decodeParamForDepositAndWithdraw)(data);\n const usingNative = args.token.toLowerCase() === constants_1.NATIVE_TOKEN_ADDRESS.toLowerCase();\n const quoteInfo = usingNative\n ? this.ctx.wrappedNativeToken\n : await this.ctx.getTokenInfo(args.token);\n return `{quantity:${(0, context_1.formatUnits)(args.quantity, quoteInfo.decimals)}, token:${await this.parseAddress(args.token)}}`;\n }\n return this.parseDefaultBaseParam(param, data);\n case 'threshold':\n case 'exemption':\n case 'amount':\n case 'quantity': {\n const quote = description.args['quote'];\n if (quote) {\n const usingNative = quote.toLowerCase() === constants_1.NATIVE_TOKEN_ADDRESS.toLowerCase();\n const quoteInfo = usingNative ? this.ctx.wrappedNativeToken : await this.ctx.getTokenInfo(quote);\n return (0, context_1.formatUnits)(data, quoteInfo.decimals) + ' ' + quoteInfo.symbol;\n }\n else {\n return data.toString();\n }\n }\n case 'data': {\n if ((0, utils_2.isCexMarket)(description.args['mtype'])) {\n const [base, quote] = ethers_1.ethers.utils.defaultAbiCoder.decode(['string', 'address'], data);\n return `{base: ${base}, quote: ${await this.parseAddress(quote)}}`;\n }\n else if (description.args['mtype'] === enum_1.MarketType.DEXV2) {\n const [base, quote] = ethers_1.ethers.utils.defaultAbiCoder.decode(['address', 'address'], data);\n return `{base: ${await this.parseAddress(base)}, quote: ${await this.parseAddress(quote)}}`;\n }\n else {\n return data.toString();\n }\n }\n default:\n return this.parseDefaultBaseParam(param, data);\n }\n }\n parseDefaultBaseParam(param, data) {\n switch (param.name) {\n case 'duration':\n return (Number(data) / 3600).toFixed(2) + ' hours';\n case 'amount':\n return (0, context_1.formatWad)(data);\n case 'timestamp':\n return (0, farmat_1.formatTimestamp)(data);\n case 'expiry':\n return (0, utils_2.formatExpiry)(data);\n case 'sqrtStrikeLowerPX96':\n case 'sqrtStrikeUpperPX96':\n return (0, farmat_1.formatSqrtPX96)(data);\n case 'deadline':\n return (0, farmat_1.formatTimestamp)(data);\n default:\n return data.toString();\n }\n }\n}\nexports.GateParser = GateParser;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GuardianParser = void 0;\nconst ethers_1 = require(\"ethers\");\nconst context_1 = require(\"@derivation-tech/context\");\nconst typechain_1 = require(\"../typechain\");\nconst utils_1 = require(\"../utils\");\nconst enum_1 = require(\"../enum\");\nconst farmat_1 = require(\"./farmat\");\nclass GuardianParser extends context_1.ContractParser {\n constructor() {\n super(typechain_1.Guardian__factory.createInterface());\n }\n async parseBaseParam(_description, param, data) {\n switch (param.name) {\n case 'tradingFeeRatio':\n case 'protocolFeeRatio':\n return (0, farmat_1.formatRatio)(data);\n case 'stabilityFeeRatioParam':\n return (0, farmat_1.extractFeeRatioParams)(ethers_1.BigNumber.from(data))\n .map((p) => (0, context_1.formatWad)(p))\n .toString();\n case 'tip':\n case 'minMarginAmount':\n return (0, context_1.formatWad)(data);\n case 'expiry':\n return (0, utils_1.formatExpiry)(data);\n case 'qtype':\n return enum_1.QuoteType[Number(data)];\n case 'ftype':\n return enum_1.FeederType[Number(data)];\n case 'compactEmaParam':\n return (0, farmat_1.formatCompactEmaParam)(ethers_1.BigNumber.from(data));\n default:\n return data.toString();\n }\n }\n async parseBaseArrayParam(description, param, value) {\n if (description.name === 'recycleInsuranceFund' && param.name === 'expiries') {\n return value.map((expiry) => (0, utils_1.formatExpiry)(expiry)).toString();\n }\n else if (description.name === 'claimProtocolFee' && param.name === 'expiries') {\n return value.map((expiry) => (0, utils_1.formatExpiry)(expiry)).toString();\n }\n return await super.parseBaseArrayParam(description, param, value);\n }\n}\nexports.GuardianParser = GuardianParser;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./instrument\"), exports);\n__exportStar(require(\"./dexV2market\"), exports);\n__exportStar(require(\"./cexMarket\"), exports);\n__exportStar(require(\"./gate\"), exports);\n__exportStar(require(\"./config\"), exports);\n__exportStar(require(\"./guardian\"), exports);\n__exportStar(require(\"./farmat\"), exports);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.InstrumentParser = void 0;\nconst context_1 = require(\"@derivation-tech/context\");\nconst typechain_1 = require(\"../typechain\");\nconst ethers_1 = require(\"ethers\");\nconst utils_1 = require(\"../utils\");\nconst utils_2 = require(\"ethers/lib/utils\");\nconst enum_1 = require(\"../enum\");\nconst farmat_1 = require(\"./farmat\");\nfunction isTransactionDescription(description) {\n return 'functionFragment' in description;\n}\nfunction isLogDescription(description) {\n return 'eventFragment' in description;\n}\nfunction isErrorDescription(description) {\n return 'errorFragment' in description;\n}\nclass InstrumentParser extends context_1.ContractParser {\n constructor(addressParser) {\n super(typechain_1.Instrument__factory.createInterface(), addressParser);\n }\n async formatEncodedFundctionArgs(obj) {\n let str = '{ ';\n for (const [k, v] of Object.entries(obj)) {\n if (ethers_1.ethers.utils.isAddress(v)) {\n str += `${k}: ${await this.parseAddress(v)}, `;\n continue;\n }\n if (k === 'limitTicks') {\n str += `minTickLower: ${(0, farmat_1.formatTick)(Number(BigInt(v.toNumber()) >> BigInt(24)))}, maxTickUpper: ${(0, farmat_1.formatTick)(v.toNumber() & ((1 << 24) - 1))}, `;\n }\n else if (k === 'ticks') {\n str += `${k}: [${v.map((tick) => (0, farmat_1.formatTick)(tick)).join(', ')}], `;\n }\n else {\n str += `${k}: ${this.parseDefaultBaseParam(utils_2.ParamType.from({ type: 'string', name: k }), v)}, `;\n }\n }\n str = str.substring(0, str.length - 2) + ' }';\n return str;\n }\n async parseBaseArrayParam(description, param, value) {\n if (description.name === 'add' && param.name === 'args') {\n return this.formatEncodedFundctionArgs((0, utils_1.decodeAddParam)(value));\n }\n else if (description.name === 'remove' && param.name === 'args') {\n return this.formatEncodedFundctionArgs((0, utils_1.decodeRemoveParam)(value));\n }\n else if (description.name === 'trade' && param.name === 'args') {\n return this.formatEncodedFundctionArgs((0, utils_1.decodeTradeWithStabilityFeeParam)(value));\n }\n else if (description.name === 'place' && param.name === 'args') {\n return this.formatEncodedFundctionArgs((0, utils_1.decodePlaceParam)(value));\n }\n else if (description.name === 'batchPlace' && param.name === 'args') {\n return this.formatEncodedFundctionArgs((0, utils_1.decodeBatchPlaceParam)(value));\n }\n return await super.parseBaseArrayParam(description, param, value);\n }\n async parseBaseParam(description, param, data) {\n if (isTransactionDescription(description)) {\n return this.parseFunctionBaseParam(description, param, data);\n }\n else if (isLogDescription(description)) {\n return this.parseEventBaseParam(description, param, data);\n }\n else if (isErrorDescription(description)) {\n return this.parseErrorBaseParam(description, param, data);\n }\n else {\n return this.parseDefaultBaseParam(param, data);\n }\n }\n async parseFunctionBaseParam(_description, param, data) {\n switch (param.name) {\n case 'arg': {\n switch (_description.functionFragment.name) {\n case 'cancel':\n return this.formatEncodedFundctionArgs((0, utils_1.decodeCancelParam)(data));\n case 'fill':\n return this.formatEncodedFundctionArgs((0, utils_1.decodeFillParam)(data));\n default:\n return data.toString();\n }\n }\n default:\n return this.parseDefaultBaseParam(param, data);\n }\n }\n parseEventBaseParam(_description, param, data) {\n switch (param.name) {\n default:\n return this.parseDefaultBaseParam(param, data);\n }\n }\n parseErrorBaseParam(_description, param, data) {\n switch (param.name) {\n default:\n return this.parseDefaultBaseParam(param, data);\n }\n }\n parseDefaultBaseParam(param, data) {\n switch (param.name) {\n case 'status':\n return enum_1.Status[Number(data)];\n case 'condition':\n return enum_1.InstrumentCondition[Number(data)];\n case 'expiry':\n return (0, utils_1.formatExpiry)(data);\n case 'timestamp':\n case 'deadline':\n return (0, farmat_1.formatTimestamp)(data);\n case 'feeRatio':\n return (0, farmat_1.formatRatio)(data);\n case 'net':\n case 'amount':\n case 'minAmount':\n case 'balance':\n case 'tip':\n case 'fee':\n case 'entryNotional':\n case 'deltaQuote':\n case 'protocolFee':\n case 'involvedFund':\n case 'insuranceFund':\n case 'funding':\n case 'totalLong':\n case 'totalShort':\n case 'deltaBase':\n case 'openInterests':\n case 'totalTaken':\n case 'taken':\n case 'mark':\n case 'limitPrice':\n case 'settlement':\n case 'requested':\n return (0, context_1.formatWad)(data);\n case 'size':\n case 'requestedSize':\n case 'totalSize':\n return (0, context_1.formatWad)(data, 18);\n case 'sqrtPX96':\n case 'sqrtStrikeLowerPX96':\n case 'sqrtStrikeUpperPX96':\n case 'sqrtEntryPX96':\n return (0, farmat_1.formatSqrtPX96)(data, 18);\n case 'tick':\n case 'limitTick':\n case 'tickUpper':\n case 'tickLower':\n case 'minTickLower':\n case 'maxTickUpper':\n return (0, farmat_1.formatTick)(Number(data));\n default:\n return data.toString();\n }\n }\n}\nexports.InstrumentParser = InstrumentParser;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PerpModule = void 0;\nconst modules_1 = require(\"./modules\");\nconst defaultOptions = {\n inverse: false,\n configuration: 's3',\n};\nclass PerpModule {\n constructor(context, options) {\n this.context = context;\n const { inverse, configuration, basePath } = {\n ...defaultOptions,\n ...options,\n };\n this.config = new modules_1.ConfigModule(context);\n this.gate = new modules_1.GateModule(context);\n this._observer = new modules_1.ObserverModule(context);\n this.calc = inverse ? new modules_1.InverseCalcModule(context) : new modules_1.CalcModule(context);\n this.instrument = inverse ? new modules_1.InverseInstrumentModule(context) : new modules_1.InstrumentModule(context);\n this.observer = inverse ? new modules_1.InverseObserverModule(context) : new modules_1.ObserverModule(context);\n this.simulate = inverse ? new modules_1.InverseSimulateModule(context) : new modules_1.SimulateModule(context);\n this.configuration =\n configuration === 'local'\n ? new modules_1.LocalConfigurationModule(context)\n : new modules_1.S3ConfigurationModule(context, basePath);\n }\n registerQuoteInfo(tokenInfo) {\n this.context.tokenInfo.set(tokenInfo.symbol.toLowerCase(), tokenInfo);\n this.context.tokenInfo.set(tokenInfo.address.toLowerCase(), tokenInfo);\n this.context.registerAddress(tokenInfo.address, tokenInfo.symbol);\n }\n}\nexports.PerpModule = PerpModule;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.perpPlugin = void 0;\nconst perp_module_1 = require(\"./perp.module\");\nconst perpPlugin = (option) => {\n return {\n install(context) {\n const perp = new perp_module_1.PerpModule(context, option);\n context.addInitHook(async () => {\n await perp.configuration.update();\n });\n context.perp = perp;\n },\n };\n};\nexports.perpPlugin = perpPlugin;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Beacon__factory = void 0;\nconst ethers_1 = require(\"ethers\");\nconst _abi = [\n {\n inputs: [\n {\n internalType: 'address',\n name: '_impl',\n type: 'address',\n },\n {\n internalType: 'address',\n name: '_owner',\n type: 'address',\n },\n ],\n stateMutability: 'payable',\n type: 'constructor',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'previousOwner',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'newOwner',\n type: 'address',\n },\n ],\n name: 'OwnershipTransferred',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'implementation',\n type: 'address',\n },\n ],\n name: 'Upgraded',\n type: 'event',\n },\n {\n inputs: [],\n name: 'implementation',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'owner',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'renounceOwnership',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'newOwner',\n type: 'address',\n },\n ],\n name: 'transferOwnership',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'newImplementation',\n type: 'address',\n },\n ],\n name: 'upgradeTo',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n];\nclass Beacon__factory {\n static createInterface() {\n return new ethers_1.utils.Interface(_abi);\n }\n static connect(address, signerOrProvider) {\n return new ethers_1.Contract(address, _abi, signerOrProvider);\n }\n}\nexports.Beacon__factory = Beacon__factory;\nBeacon__factory.abi = _abi;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CexMarket__factory = void 0;\nconst ethers_1 = require(\"ethers\");\nconst _abi = [\n {\n inputs: [],\n name: 'BadEmaHalfTime',\n type: 'error',\n },\n {\n inputs: [],\n name: 'BadMaxChangeRatioPerSecond',\n type: 'error',\n },\n {\n inputs: [],\n name: 'BadMaxRawTimeDelta',\n type: 'error',\n },\n {\n inputs: [],\n name: 'BadMaxTimeDelta',\n type: 'error',\n },\n {\n inputs: [],\n name: 'CexNoFeeder',\n type: 'error',\n },\n {\n inputs: [],\n name: 'DecimalsExceed',\n type: 'error',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'token',\n type: 'address',\n },\n ],\n name: 'GetErc20DecimalsFailed',\n type: 'error',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'token',\n type: 'address',\n },\n ],\n name: 'GetErc20SymbolFailed',\n type: 'error',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'aggregator',\n type: 'address',\n },\n ],\n name: 'InvalidCexPrice',\n type: 'error',\n },\n {\n inputs: [],\n name: 'LengthMismatch',\n type: 'error',\n },\n {\n inputs: [],\n name: 'NotConverge',\n type: 'error',\n },\n {\n inputs: [],\n name: 'NotGate',\n type: 'error',\n },\n {\n inputs: [],\n name: 'NotSynFuturesV3Admin',\n type: 'error',\n },\n {\n inputs: [],\n name: 'QuoteNotSupported',\n type: 'error',\n },\n {\n inputs: [],\n name: 'WrongStatusToFetchMarkPrice',\n type: 'error',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n ],\n name: 'ClearStates',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'uint8',\n name: 'version',\n type: 'uint8',\n },\n ],\n name: 'Initialized',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'uint256',\n name: 'compactEmaParam',\n type: 'uint256',\n },\n ],\n name: 'SetCompactEmaParam',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n {\n components: [\n {\n internalType: 'enum FeederType',\n name: 'ftype',\n type: 'uint8',\n },\n {\n internalType: 'uint64',\n name: 'scaler0',\n type: 'uint64',\n },\n {\n internalType: 'address',\n name: 'aggregator0',\n type: 'address',\n },\n {\n internalType: 'uint24',\n name: 'heartBeat0',\n type: 'uint24',\n },\n {\n internalType: 'uint64',\n name: 'scaler1',\n type: 'uint64',\n },\n {\n internalType: 'address',\n name: 'aggregator1',\n type: 'address',\n },\n {\n internalType: 'uint24',\n name: 'heartBeat1',\n type: 'uint24',\n },\n ],\n indexed: false,\n internalType: 'struct PriceFeeder',\n name: 'feeder',\n type: 'tuple',\n },\n ],\n name: 'SetFeeder',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n components: [\n {\n internalType: 'uint32',\n name: 'time',\n type: 'uint32',\n },\n {\n internalType: 'uint224',\n name: 'raw',\n type: 'uint224',\n },\n {\n internalType: 'uint32',\n name: 'initTime',\n type: 'uint32',\n },\n {\n internalType: 'uint224',\n name: 'initMark',\n type: 'uint224',\n },\n {\n internalType: 'uint256',\n name: 'accumulation',\n type: 'uint256',\n },\n ],\n indexed: false,\n internalType: 'struct CexAccState',\n name: 'state',\n type: 'tuple',\n },\n ],\n name: 'UpdateAccState',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n {\n components: [\n {\n internalType: 'uint16',\n name: 'emaHalfTime',\n type: 'uint16',\n },\n {\n internalType: 'uint16',\n name: 'maxTimeDelta',\n type: 'uint16',\n },\n {\n internalType: 'uint16',\n name: 'maxRawTimeDelta',\n type: 'uint16',\n },\n {\n internalType: 'uint16',\n name: 'maxChangeRatioPerSecond',\n type: 'uint16',\n },\n ],\n indexed: false,\n internalType: 'struct EmaParam',\n name: 'emaParam',\n type: 'tuple',\n },\n ],\n name: 'UpdateEmaParam',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n {\n components: [\n {\n internalType: 'uint32',\n name: 'time',\n type: 'uint32',\n },\n {\n internalType: 'uint224',\n name: 'spot',\n type: 'uint224',\n },\n {\n internalType: 'uint256',\n name: 'raw',\n type: 'uint256',\n },\n ],\n indexed: false,\n internalType: 'struct SpotState',\n name: 'spotState',\n type: 'tuple',\n },\n ],\n name: 'UpdateSpotState',\n type: 'event',\n },\n {\n inputs: [\n {\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n ],\n name: 'clearStates',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'config',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n ],\n name: 'feeders',\n outputs: [\n {\n internalType: 'enum FeederType',\n name: 'ftype',\n type: 'uint8',\n },\n {\n internalType: 'uint64',\n name: 'scaler0',\n type: 'uint64',\n },\n {\n internalType: 'address',\n name: 'aggregator0',\n type: 'address',\n },\n {\n internalType: 'uint24',\n name: 'heartBeat0',\n type: 'uint24',\n },\n {\n internalType: 'uint64',\n name: 'scaler1',\n type: 'uint64',\n },\n {\n internalType: 'address',\n name: 'aggregator1',\n type: 'address',\n },\n {\n internalType: 'uint24',\n name: 'heartBeat1',\n type: 'uint24',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'gate',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n {\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n ],\n name: 'getAccState',\n outputs: [\n {\n components: [\n {\n internalType: 'uint32',\n name: 'time',\n type: 'uint32',\n },\n {\n internalType: 'uint224',\n name: 'raw',\n type: 'uint224',\n },\n {\n internalType: 'uint32',\n name: 'initTime',\n type: 'uint32',\n },\n {\n internalType: 'uint224',\n name: 'initMark',\n type: 'uint224',\n },\n {\n internalType: 'uint256',\n name: 'accumulation',\n type: 'uint256',\n },\n ],\n internalType: 'struct CexAccState',\n name: '',\n type: 'tuple',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'getAllInstruments',\n outputs: [\n {\n internalType: 'address[]',\n name: '',\n type: 'address[]',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n {\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n ],\n name: 'getBenchmarkPrice',\n outputs: [\n {\n internalType: 'uint256',\n name: 'benchmark',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'getCompactEmaParam',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n ],\n name: 'getEmaParam',\n outputs: [\n {\n components: [\n {\n internalType: 'uint16',\n name: 'emaHalfTime',\n type: 'uint16',\n },\n {\n internalType: 'uint16',\n name: 'maxTimeDelta',\n type: 'uint16',\n },\n {\n internalType: 'uint16',\n name: 'maxRawTimeDelta',\n type: 'uint16',\n },\n {\n internalType: 'uint16',\n name: 'maxChangeRatioPerSecond',\n type: 'uint16',\n },\n ],\n internalType: 'struct EmaParam',\n name: '',\n type: 'tuple',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n {\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n internalType: 'enum Status',\n name: 'status',\n type: 'uint8',\n },\n ],\n name: 'getMarkPrice',\n outputs: [\n {\n internalType: 'uint256',\n name: 'mark',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'getMarketType',\n outputs: [\n {\n internalType: 'string',\n name: '',\n type: 'string',\n },\n ],\n stateMutability: 'pure',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n ],\n name: 'getRawPrice',\n outputs: [\n {\n internalType: 'uint256',\n name: 'raw',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n ],\n name: 'getSpotPrice',\n outputs: [\n {\n internalType: 'uint256',\n name: 'spot',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n ],\n name: 'getSpotState',\n outputs: [\n {\n components: [\n {\n internalType: 'uint32',\n name: 'time',\n type: 'uint32',\n },\n {\n internalType: 'uint224',\n name: 'spot',\n type: 'uint224',\n },\n {\n internalType: 'uint256',\n name: 'raw',\n type: 'uint256',\n },\n ],\n internalType: 'struct SpotState',\n name: '',\n type: 'tuple',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint256',\n name: '_compactEmaParam',\n type: 'uint256',\n },\n ],\n name: 'initialize',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n name: 'instruments',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'instrumentsLength',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n internalType: 'enum Status',\n name: 'status',\n type: 'uint8',\n },\n ],\n name: 'markPrice',\n outputs: [\n {\n internalType: 'uint256',\n name: 'mark',\n type: 'uint256',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n {\n internalType: 'bytes',\n name: 'data',\n type: 'bytes',\n },\n ],\n name: 'prepareInstrument',\n outputs: [\n {\n internalType: 'bytes32',\n name: 'index',\n type: 'bytes32',\n },\n {\n internalType: 'address',\n name: 'base',\n type: 'address',\n },\n {\n internalType: 'bytes',\n name: 'initData',\n type: 'bytes',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint256',\n name: 'newCompactEmaParam',\n type: 'uint256',\n },\n ],\n name: 'setCompactEmaParam',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address[]',\n name: 'instruments',\n type: 'address[]',\n },\n {\n components: [\n {\n internalType: 'enum FeederType',\n name: 'ftype',\n type: 'uint8',\n },\n {\n internalType: 'uint64',\n name: 'scaler0',\n type: 'uint64',\n },\n {\n internalType: 'address',\n name: 'aggregator0',\n type: 'address',\n },\n {\n internalType: 'uint24',\n name: 'heartBeat0',\n type: 'uint24',\n },\n {\n internalType: 'uint64',\n name: 'scaler1',\n type: 'uint64',\n },\n {\n internalType: 'address',\n name: 'aggregator1',\n type: 'address',\n },\n {\n internalType: 'uint24',\n name: 'heartBeat1',\n type: 'uint24',\n },\n ],\n internalType: 'struct PriceFeeder[]',\n name: 'priceFeeders',\n type: 'tuple[]',\n },\n ],\n name: 'setFeeder',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'enum Leverage',\n name: 'leverage',\n type: 'uint8',\n },\n ],\n name: 'syncEmaParam',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n];\nclass CexMarket__factory {\n static createInterface() {\n return new ethers_1.utils.Interface(_abi);\n }\n static connect(address, signerOrProvider) {\n return new ethers_1.Contract(address, _abi, signerOrProvider);\n }\n}\nexports.CexMarket__factory = CexMarket__factory;\nCexMarket__factory.abi = _abi;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Config__factory = void 0;\nconst ethers_1 = require(\"ethers\");\nconst _abi = [\n {\n inputs: [\n {\n internalType: 'address',\n name: 'admin',\n type: 'address',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'constructor',\n },\n {\n inputs: [],\n name: 'BadMinMarginAmount',\n type: 'error',\n },\n {\n inputs: [],\n name: 'BadProtocolFeeRatio',\n type: 'error',\n },\n {\n inputs: [],\n name: 'BadTip',\n type: 'error',\n },\n {\n inputs: [],\n name: 'BadTradingFeeRatio',\n type: 'error',\n },\n {\n inputs: [],\n name: 'LengthMismatch',\n type: 'error',\n },\n {\n inputs: [],\n name: 'LiquidatorWhitelistAlreadyDisabled',\n type: 'error',\n },\n {\n inputs: [],\n name: 'LpWhitelistAlreadyDisabled',\n type: 'error',\n },\n {\n inputs: [\n {\n internalType: 'string',\n name: 'mtype',\n type: 'string',\n },\n ],\n name: 'ResetMarketInfo',\n type: 'error',\n },\n {\n inputs: [],\n name: 'SetMarketZeroAddress',\n type: 'error',\n },\n {\n anonymous: false,\n inputs: [],\n name: 'DisableLiquidatorWhitelist',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [],\n name: 'DisableLpWhitelist',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'address',\n name: 'quote',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'bool',\n name: 'restricted',\n type: 'bool',\n },\n ],\n name: 'EnableLpWhitelistForQuote',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'user',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'newOwner',\n type: 'address',\n },\n ],\n name: 'OwnershipTransferred',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'address',\n name: 'blastPointsAddress',\n type: 'address',\n },\n ],\n name: 'SetBlastPointsAddress',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'address',\n name: 'blastPointsOperator',\n type: 'address',\n },\n ],\n name: 'SetBlastPointsOperator',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'address',\n name: 'user',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'bool',\n name: 'authorized',\n type: 'bool',\n },\n ],\n name: 'SetLiquidatorWhitelist',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'address',\n name: 'user',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'bool',\n name: 'authorized',\n type: 'bool',\n },\n ],\n name: 'SetLpWhitelist',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'address',\n name: 'quote',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'address',\n name: 'user',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'bool',\n name: 'authorized',\n type: 'bool',\n },\n ],\n name: 'SetLpWhitelistForQuote',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'string',\n name: 'mtype',\n type: 'string',\n },\n {\n indexed: false,\n internalType: 'address',\n name: 'market',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'address',\n name: 'beacon',\n type: 'address',\n },\n ],\n name: 'SetMarketInfo',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'address',\n name: 'quote',\n type: 'address',\n },\n {\n components: [\n {\n internalType: 'uint128',\n name: 'minMarginAmount',\n type: 'uint128',\n },\n {\n internalType: 'uint16',\n name: 'tradingFeeRatio',\n type: 'uint16',\n },\n {\n internalType: 'uint16',\n name: 'protocolFeeRatio',\n type: 'uint16',\n },\n {\n internalType: 'uint64',\n name: 'stabilityFeeRatioParam',\n type: 'uint64',\n },\n {\n internalType: 'enum QuoteType',\n name: 'qtype',\n type: 'uint8',\n },\n {\n internalType: 'uint128',\n name: 'tip',\n type: 'uint128',\n },\n ],\n indexed: false,\n internalType: 'struct QuoteParam',\n name: 'param',\n type: 'tuple',\n },\n ],\n name: 'SetQuoteParam',\n type: 'event',\n },\n {\n inputs: [],\n name: 'blastPointsAddress',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'blastPointsOperator',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'disableLiquidatorWhitelist',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'disableLpWhitelist',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'quote',\n type: 'address',\n },\n {\n internalType: 'bool',\n name: 'enable',\n type: 'bool',\n },\n ],\n name: 'enableLpWhitelistForQuote',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'getAllMarkets',\n outputs: [\n {\n internalType: 'address[]',\n name: '',\n type: 'address[]',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'string',\n name: 'mtype',\n type: 'string',\n },\n ],\n name: 'getMarketInfo',\n outputs: [\n {\n components: [\n {\n internalType: 'string',\n name: 'mtype',\n type: 'string',\n },\n {\n internalType: 'address',\n name: 'market',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'beacon',\n type: 'address',\n },\n ],\n internalType: 'struct MarketInfo',\n name: '',\n type: 'tuple',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'quote',\n type: 'address',\n },\n ],\n name: 'getQuoteParam',\n outputs: [\n {\n components: [\n {\n internalType: 'uint128',\n name: 'minMarginAmount',\n type: 'uint128',\n },\n {\n internalType: 'uint16',\n name: 'tradingFeeRatio',\n type: 'uint16',\n },\n {\n internalType: 'uint16',\n name: 'protocolFeeRatio',\n type: 'uint16',\n },\n {\n internalType: 'uint64',\n name: 'stabilityFeeRatioParam',\n type: 'uint64',\n },\n {\n internalType: 'enum QuoteType',\n name: 'qtype',\n type: 'uint8',\n },\n {\n internalType: 'uint128',\n name: 'tip',\n type: 'uint128',\n },\n ],\n internalType: 'struct QuoteParam',\n name: '',\n type: 'tuple',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'user',\n type: 'address',\n },\n ],\n name: 'isAuthorizedLiquidator',\n outputs: [\n {\n internalType: 'bool',\n name: '',\n type: 'bool',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'quote',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'user',\n type: 'address',\n },\n ],\n name: 'isAuthorizedLp',\n outputs: [\n {\n internalType: 'bool',\n name: '',\n type: 'bool',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'user',\n type: 'address',\n },\n ],\n name: 'liquidatorWhitelist',\n outputs: [\n {\n internalType: 'bool',\n name: 'authorized',\n type: 'bool',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'quote',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'user',\n type: 'address',\n },\n ],\n name: 'lpWhitelist',\n outputs: [\n {\n internalType: 'bool',\n name: 'authorized',\n type: 'bool',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n name: 'markets',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'marketsLength',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'openLiquidator',\n outputs: [\n {\n internalType: 'bool',\n name: '',\n type: 'bool',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'openLp',\n outputs: [\n {\n internalType: 'bool',\n name: '',\n type: 'bool',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'owner',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: '_blastPointsAddress',\n type: 'address',\n },\n ],\n name: 'setBlastPointsAddress',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: '_blastPointsOperator',\n type: 'address',\n },\n ],\n name: 'setBlastPointsOperator',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'quote',\n type: 'address',\n },\n ],\n name: 'restrictLp',\n outputs: [\n {\n internalType: 'bool',\n name: 'restricted',\n type: 'bool',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address[]',\n name: 'users',\n type: 'address[]',\n },\n {\n internalType: 'bool[]',\n name: 'flags',\n type: 'bool[]',\n },\n ],\n name: 'setLiquidatorWhitelist',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address[]',\n name: 'quotes',\n type: 'address[]',\n },\n {\n internalType: 'address[]',\n name: 'users',\n type: 'address[]',\n },\n {\n internalType: 'bool[]',\n name: 'flags',\n type: 'bool[]',\n },\n ],\n name: 'setLpWhiteList',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'string',\n name: 'mtype',\n type: 'string',\n },\n {\n internalType: 'address',\n name: 'market',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'beacon',\n type: 'address',\n },\n ],\n name: 'setMarketInfo',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address[]',\n name: 'coins',\n type: 'address[]',\n },\n {\n components: [\n {\n internalType: 'uint128',\n name: 'minMarginAmount',\n type: 'uint128',\n },\n {\n internalType: 'uint16',\n name: 'tradingFeeRatio',\n type: 'uint16',\n },\n {\n internalType: 'uint16',\n name: 'protocolFeeRatio',\n type: 'uint16',\n },\n {\n internalType: 'uint64',\n name: 'stabilityFeeRatioParam',\n type: 'uint64',\n },\n {\n internalType: 'enum QuoteType',\n name: 'qtype',\n type: 'uint8',\n },\n {\n internalType: 'uint128',\n name: 'tip',\n type: 'uint128',\n },\n ],\n internalType: 'struct QuoteParam[]',\n name: 'params',\n type: 'tuple[]',\n },\n ],\n name: 'setQuoteParam',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'newOwner',\n type: 'address',\n },\n ],\n name: 'transferOwnership',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n];\nclass Config__factory {\n static createInterface() {\n return new ethers_1.utils.Interface(_abi);\n }\n static connect(address, signerOrProvider) {\n return new ethers_1.Contract(address, _abi, signerOrProvider);\n }\n}\nexports.Config__factory = Config__factory;\nConfig__factory.abi = _abi;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DexV2Market__factory = void 0;\nconst ethers_1 = require(\"ethers\");\nconst _abi = [\n {\n inputs: [\n {\n internalType: 'address',\n name: '_config',\n type: 'address',\n },\n {\n internalType: 'address',\n name: '_gate',\n type: 'address',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'constructor',\n },\n {\n inputs: [],\n name: 'BadEmaHalfTime',\n type: 'error',\n },\n {\n inputs: [],\n name: 'BadMaxChangeRatioPerSecond',\n type: 'error',\n },\n {\n inputs: [],\n name: 'BadMaxRawTimeDelta',\n type: 'error',\n },\n {\n inputs: [],\n name: 'BadMaxTimeDelta',\n type: 'error',\n },\n {\n inputs: [],\n name: 'CastUint256ToUint224Overflow',\n type: 'error',\n },\n {\n inputs: [],\n name: 'DecimalsExceed',\n type: 'error',\n },\n {\n inputs: [],\n name: 'DexV2NoFeeder',\n type: 'error',\n },\n {\n inputs: [],\n name: 'DexV2PairLiquidity',\n type: 'error',\n },\n {\n inputs: [],\n name: 'DexV2RepeatedFactory',\n type: 'error',\n },\n {\n inputs: [],\n name: 'DivByZero',\n type: 'error',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'token',\n type: 'address',\n },\n ],\n name: 'GetErc20DecimalsFailed',\n type: 'error',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'token',\n type: 'address',\n },\n ],\n name: 'GetErc20SymbolFailed',\n type: 'error',\n },\n {\n inputs: [],\n name: 'NotConverge',\n type: 'error',\n },\n {\n inputs: [],\n name: 'NotGate',\n type: 'error',\n },\n {\n inputs: [],\n name: 'NotSynFuturesV3Admin',\n type: 'error',\n },\n {\n inputs: [],\n name: 'QuoteNotSupported',\n type: 'error',\n },\n {\n inputs: [],\n name: 'WrongStatusToFetchMarkPrice',\n type: 'error',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'address',\n name: 'factory',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'number',\n type: 'uint256',\n },\n ],\n name: 'AddDexV2Factory',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n ],\n name: 'ClearStates',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'uint8',\n name: 'version',\n type: 'uint8',\n },\n ],\n name: 'Initialized',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'uint256',\n name: 'compactEmaParam',\n type: 'uint256',\n },\n ],\n name: 'SetCompactEmaParam',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n {\n components: [\n {\n internalType: 'enum FeederType',\n name: 'ftype',\n type: 'uint8',\n },\n {\n internalType: 'bool',\n name: 'isToken0Quote',\n type: 'bool',\n },\n {\n internalType: 'address',\n name: 'pair',\n type: 'address',\n },\n {\n internalType: 'uint64',\n name: 'scaler0',\n type: 'uint64',\n },\n {\n internalType: 'uint64',\n name: 'scaler1',\n type: 'uint64',\n },\n ],\n indexed: false,\n internalType: 'struct DexV2Feeder',\n name: 'feeder',\n type: 'tuple',\n },\n ],\n name: 'SetFeeder',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n components: [\n {\n internalType: 'uint32',\n name: 'initTime',\n type: 'uint32',\n },\n {\n internalType: 'uint224',\n name: 'initMark',\n type: 'uint224',\n },\n {\n internalType: 'uint256',\n name: 'initAccumulation',\n type: 'uint256',\n },\n ],\n indexed: false,\n internalType: 'struct DexV2AccState',\n name: 'accState',\n type: 'tuple',\n },\n ],\n name: 'UpdateAccState',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n {\n components: [\n {\n internalType: 'uint16',\n name: 'emaHalfTime',\n type: 'uint16',\n },\n {\n internalType: 'uint16',\n name: 'maxTimeDelta',\n type: 'uint16',\n },\n {\n internalType: 'uint16',\n name: 'maxRawTimeDelta',\n type: 'uint16',\n },\n {\n internalType: 'uint16',\n name: 'maxChangeRatioPerSecond',\n type: 'uint16',\n },\n ],\n indexed: false,\n internalType: 'struct EmaParam',\n name: 'emaParam',\n type: 'tuple',\n },\n ],\n name: 'UpdateEmaParam',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n {\n components: [\n {\n internalType: 'uint32',\n name: 'time',\n type: 'uint32',\n },\n {\n internalType: 'uint224',\n name: 'spot',\n type: 'uint224',\n },\n {\n internalType: 'uint256',\n name: 'raw',\n type: 'uint256',\n },\n ],\n indexed: false,\n internalType: 'struct SpotState',\n name: 'spotState',\n type: 'tuple',\n },\n ],\n name: 'UpdateSpotState',\n type: 'event',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'dexV2Factory',\n type: 'address',\n },\n ],\n name: 'addDexV2Factory',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n ],\n name: 'clearStates',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'config',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n ],\n name: 'feeders',\n outputs: [\n {\n internalType: 'enum FeederType',\n name: 'ftype',\n type: 'uint8',\n },\n {\n internalType: 'bool',\n name: 'isToken0Quote',\n type: 'bool',\n },\n {\n internalType: 'address',\n name: 'pair',\n type: 'address',\n },\n {\n internalType: 'uint64',\n name: 'scaler0',\n type: 'uint64',\n },\n {\n internalType: 'uint64',\n name: 'scaler1',\n type: 'uint64',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'gate',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n {\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n ],\n name: 'getAccState',\n outputs: [\n {\n components: [\n {\n internalType: 'uint32',\n name: 'initTime',\n type: 'uint32',\n },\n {\n internalType: 'uint224',\n name: 'initMark',\n type: 'uint224',\n },\n {\n internalType: 'uint256',\n name: 'initAccumulation',\n type: 'uint256',\n },\n ],\n internalType: 'struct DexV2AccState',\n name: '',\n type: 'tuple',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'getAllInstruments',\n outputs: [\n {\n internalType: 'address[]',\n name: '',\n type: 'address[]',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n {\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n ],\n name: 'getBenchmarkPrice',\n outputs: [\n {\n internalType: 'uint256',\n name: 'benchmark',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'getCompactEmaParam',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'getDexV2Factories',\n outputs: [\n {\n internalType: 'address[]',\n name: '',\n type: 'address[]',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n ],\n name: 'getEmaParam',\n outputs: [\n {\n components: [\n {\n internalType: 'uint16',\n name: 'emaHalfTime',\n type: 'uint16',\n },\n {\n internalType: 'uint16',\n name: 'maxTimeDelta',\n type: 'uint16',\n },\n {\n internalType: 'uint16',\n name: 'maxRawTimeDelta',\n type: 'uint16',\n },\n {\n internalType: 'uint16',\n name: 'maxChangeRatioPerSecond',\n type: 'uint16',\n },\n ],\n internalType: 'struct EmaParam',\n name: '',\n type: 'tuple',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n {\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n internalType: 'enum Status',\n name: 'status',\n type: 'uint8',\n },\n ],\n name: 'getMarkPrice',\n outputs: [\n {\n internalType: 'uint256',\n name: 'mark',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'getMarketType',\n outputs: [\n {\n internalType: 'string',\n name: '',\n type: 'string',\n },\n ],\n stateMutability: 'pure',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n ],\n name: 'getRawPrice',\n outputs: [\n {\n internalType: 'uint256',\n name: 'raw',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n ],\n name: 'getSpotPrice',\n outputs: [\n {\n internalType: 'uint256',\n name: 'spot',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n ],\n name: 'getSpotState',\n outputs: [\n {\n components: [\n {\n internalType: 'uint32',\n name: 'time',\n type: 'uint32',\n },\n {\n internalType: 'uint224',\n name: 'spot',\n type: 'uint224',\n },\n {\n internalType: 'uint256',\n name: 'raw',\n type: 'uint256',\n },\n ],\n internalType: 'struct SpotState',\n name: '',\n type: 'tuple',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint256',\n name: '_emaParam',\n type: 'uint256',\n },\n {\n internalType: 'address[]',\n name: '_factories',\n type: 'address[]',\n },\n ],\n name: 'initialize',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint256',\n name: '_compactEmaParam',\n type: 'uint256',\n },\n ],\n name: 'initialize',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n name: 'instruments',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'instrumentsLength',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n internalType: 'enum Status',\n name: 'status',\n type: 'uint8',\n },\n ],\n name: 'markPrice',\n outputs: [\n {\n internalType: 'uint256',\n name: 'mark',\n type: 'uint256',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n {\n internalType: 'bytes',\n name: 'data',\n type: 'bytes',\n },\n ],\n name: 'prepareInstrument',\n outputs: [\n {\n internalType: 'bytes32',\n name: 'index',\n type: 'bytes32',\n },\n {\n internalType: 'address',\n name: 'base',\n type: 'address',\n },\n {\n internalType: 'bytes',\n name: 'initData',\n type: 'bytes',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint256',\n name: 'newCompactEmaParam',\n type: 'uint256',\n },\n ],\n name: 'setCompactEmaParam',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'enum Leverage',\n name: 'leverage',\n type: 'uint8',\n },\n ],\n name: 'syncEmaParam',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n ],\n name: 'updateFeeder',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n];\nclass DexV2Market__factory {\n static createInterface() {\n return new ethers_1.utils.Interface(_abi);\n }\n static connect(address, signerOrProvider) {\n return new ethers_1.Contract(address, _abi, signerOrProvider);\n }\n}\nexports.DexV2Market__factory = DexV2Market__factory;\nDexV2Market__factory.abi = _abi;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EmergingFeederFactory__factory = void 0;\nconst ethers_1 = require(\"ethers\");\nconst _abi = [\n {\n inputs: [\n {\n internalType: 'address',\n name: '_guardian',\n type: 'address',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'constructor',\n },\n {\n inputs: [],\n name: 'FeederAlreadyCreated',\n type: 'error',\n },\n {\n inputs: [],\n name: 'InvalidInput',\n type: 'error',\n },\n {\n inputs: [],\n name: 'InvalidLength',\n type: 'error',\n },\n {\n inputs: [],\n name: 'NoFeeder',\n type: 'error',\n },\n {\n inputs: [],\n name: 'NotOperator',\n type: 'error',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'feeder',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'bytes32',\n name: 'baseIndex',\n type: 'bytes32',\n },\n ],\n name: 'FeederCreated',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'uint8',\n name: 'version',\n type: 'uint8',\n },\n ],\n name: 'Initialized',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n {\n indexed: true,\n internalType: 'bytes32',\n name: 'previousAdminRole',\n type: 'bytes32',\n },\n {\n indexed: true,\n internalType: 'bytes32',\n name: 'newAdminRole',\n type: 'bytes32',\n },\n ],\n name: 'RoleAdminChanged',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'sender',\n type: 'address',\n },\n ],\n name: 'RoleGranted',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'sender',\n type: 'address',\n },\n ],\n name: 'RoleRevoked',\n type: 'event',\n },\n {\n inputs: [],\n name: 'DEFAULT_ADMIN_ROLE',\n outputs: [\n {\n internalType: 'bytes32',\n name: '',\n type: 'bytes32',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'OPERATOR_ROLE',\n outputs: [\n {\n internalType: 'bytes32',\n name: '',\n type: 'bytes32',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n name: 'allFeeders',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'baseIndex',\n type: 'bytes32',\n },\n ],\n name: 'baseIndexToFeeder',\n outputs: [\n {\n internalType: 'address',\n name: 'feeder',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32[]',\n name: 'baseIndexes',\n type: 'bytes32[]',\n },\n {\n internalType: 'bytes32[]',\n name: 'args',\n type: 'bytes32[]',\n },\n ],\n name: 'batchCreateFeeder',\n outputs: [\n {\n internalType: 'address[]',\n name: 'newFeeders',\n type: 'address[]',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32[]',\n name: 'baseIndexes',\n type: 'bytes32[]',\n },\n ],\n name: 'batchGetPrice',\n outputs: [\n {\n internalType: 'uint128[]',\n name: 'prices',\n type: 'uint128[]',\n },\n {\n internalType: 'uint32[]',\n name: 'timestamps',\n type: 'uint32[]',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32[]',\n name: 'baseIndexes',\n type: 'bytes32[]',\n },\n {\n internalType: 'bytes32[]',\n name: 'args',\n type: 'bytes32[]',\n },\n ],\n name: 'batchSetRawPrice',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'beacon',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'baseIndex',\n type: 'bytes32',\n },\n {\n internalType: 'uint128',\n name: 'priceE8',\n type: 'uint128',\n },\n ],\n name: 'createFeeder',\n outputs: [\n {\n internalType: 'address',\n name: 'newFeeder',\n type: 'address',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'feeder',\n type: 'address',\n },\n ],\n name: 'feederToBaseIndex',\n outputs: [\n {\n internalType: 'bytes32',\n name: 'baseIndex',\n type: 'bytes32',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'getAllFeeders',\n outputs: [\n {\n internalType: 'address[]',\n name: '',\n type: 'address[]',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'getAllFeedersLength',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'getAllIndexes',\n outputs: [\n {\n internalType: 'bytes32[]',\n name: '',\n type: 'bytes32[]',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'baseIndex',\n type: 'bytes32',\n },\n ],\n name: 'getDecimals',\n outputs: [\n {\n internalType: 'uint8',\n name: '',\n type: 'uint8',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'baseIndex',\n type: 'bytes32',\n },\n ],\n name: 'getPrice',\n outputs: [\n {\n internalType: 'uint128',\n name: 'price',\n type: 'uint128',\n },\n {\n internalType: 'uint32',\n name: 'timestamp',\n type: 'uint32',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n ],\n name: 'getRoleAdmin',\n outputs: [\n {\n internalType: 'bytes32',\n name: '',\n type: 'bytes32',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n {\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n ],\n name: 'grantRole',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'guardian',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n {\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n ],\n name: 'hasRole',\n outputs: [\n {\n internalType: 'bool',\n name: '',\n type: 'bool',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'admin',\n type: 'address',\n },\n {\n internalType: 'address[]',\n name: 'operators',\n type: 'address[]',\n },\n ],\n name: 'initialize',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n {\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n ],\n name: 'renounceRole',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n {\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n ],\n name: 'revokeRole',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'baseIndex',\n type: 'bytes32',\n },\n {\n internalType: 'uint128',\n name: 'priceE8',\n type: 'uint128',\n },\n ],\n name: 'setRawPrice',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes4',\n name: 'interfaceId',\n type: 'bytes4',\n },\n ],\n name: 'supportsInterface',\n outputs: [\n {\n internalType: 'bool',\n name: '',\n type: 'bool',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n];\nclass EmergingFeederFactory__factory {\n static createInterface() {\n return new ethers_1.utils.Interface(_abi);\n }\n static connect(address, signerOrProvider) {\n return new ethers_1.Contract(address, _abi, signerOrProvider);\n }\n}\nexports.EmergingFeederFactory__factory = EmergingFeederFactory__factory;\nEmergingFeederFactory__factory.abi = _abi;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EmergingFeeder__factory = void 0;\nconst ethers_1 = require(\"ethers\");\nconst _abi = [\n {\n inputs: [\n {\n internalType: 'address',\n name: '_factory',\n type: 'address',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'constructor',\n },\n {\n inputs: [],\n name: 'NotRegistry',\n type: 'error',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'uint8',\n name: 'version',\n type: 'uint8',\n },\n ],\n name: 'Initialized',\n type: 'event',\n },\n {\n inputs: [],\n name: 'currentPrice',\n outputs: [\n {\n internalType: 'uint128',\n name: '',\n type: 'uint128',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'decimals',\n outputs: [\n {\n internalType: 'uint8',\n name: '',\n type: 'uint8',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'factory',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint8',\n name: '_decimals',\n type: 'uint8',\n },\n {\n internalType: 'uint128',\n name: 'priceE8',\n type: 'uint128',\n },\n {\n internalType: 'address',\n name: 'guardian',\n type: 'address',\n },\n ],\n name: 'initialize',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'lastUpdatedTimestamp',\n outputs: [\n {\n internalType: 'uint64',\n name: '',\n type: 'uint64',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'latestRoundData',\n outputs: [\n {\n internalType: 'uint80',\n name: '',\n type: 'uint80',\n },\n {\n internalType: 'int256',\n name: '',\n type: 'int256',\n },\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n {\n internalType: 'uint80',\n name: '',\n type: 'uint80',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint128',\n name: 'priceE8',\n type: 'uint128',\n },\n ],\n name: 'setRawPrice',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n];\nclass EmergingFeeder__factory {\n static createInterface() {\n return new ethers_1.utils.Interface(_abi);\n }\n static connect(address, signerOrProvider) {\n return new ethers_1.Contract(address, _abi, signerOrProvider);\n }\n}\nexports.EmergingFeeder__factory = EmergingFeeder__factory;\nEmergingFeeder__factory.abi = _abi;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Gate__factory = void 0;\nconst ethers_1 = require(\"ethers\");\nconst _abi = [\n {\n inputs: [\n {\n internalType: 'address',\n name: '_weth',\n type: 'address',\n },\n {\n internalType: 'address',\n name: '_config',\n type: 'address',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'constructor',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'expected',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'actual',\n type: 'address',\n },\n ],\n name: 'BadInstrumentAddress',\n type: 'error',\n },\n {\n inputs: [],\n name: 'BlacklistedTrader',\n type: 'error',\n },\n {\n inputs: [],\n name: 'InstrumentExists',\n type: 'error',\n },\n {\n inputs: [\n {\n internalType: 'uint256',\n name: 'requested',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'reserve',\n type: 'uint256',\n },\n ],\n name: 'InsufficientReserve',\n type: 'error',\n },\n {\n inputs: [],\n name: 'InvalidMsgValue',\n type: 'error',\n },\n {\n inputs: [],\n name: 'MarketTypeNotSupported',\n type: 'error',\n },\n {\n inputs: [\n {\n internalType: 'bytes',\n name: 'lowLevelData',\n type: 'bytes',\n },\n ],\n name: 'NewInstrumentFailed',\n type: 'error',\n },\n {\n inputs: [],\n name: 'NoDirectDeposit',\n type: 'error',\n },\n {\n inputs: [],\n name: 'NotInstrument',\n type: 'error',\n },\n {\n inputs: [],\n name: 'NotSynFuturesV3Admin',\n type: 'error',\n },\n {\n inputs: [],\n name: 'PendingDurationTooLong',\n type: 'error',\n },\n {\n inputs: [],\n name: 'PendingWithdrawNotMature',\n type: 'error',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'token',\n type: 'address',\n },\n ],\n name: 'UnsafeToken',\n type: 'error',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'trader',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'bool',\n name: 'banned',\n type: 'bool',\n },\n ],\n name: 'Blacklist',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'quote',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'trader',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'quantity',\n type: 'uint256',\n },\n ],\n name: 'Deposit',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'quote',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'trader',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'quantity',\n type: 'uint256',\n },\n ],\n name: 'Gather',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'uint8',\n name: 'version',\n type: 'uint8',\n },\n ],\n name: 'Initialized',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'bytes32',\n name: 'index',\n type: 'bytes32',\n },\n {\n indexed: false,\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'address',\n name: 'base',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'address',\n name: 'quote',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'string',\n name: 'symbol',\n type: 'string',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'total',\n type: 'uint256',\n },\n ],\n name: 'NewInstrument',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'quote',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'trader',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'quantity',\n type: 'uint256',\n },\n ],\n name: 'Scatter',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'uint256',\n name: 'duration',\n type: 'uint256',\n },\n ],\n name: 'SetPendingDuration',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'quote',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'threshold',\n type: 'uint256',\n },\n ],\n name: 'SetThreshold',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'quote',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'trader',\n type: 'address',\n },\n {\n components: [\n {\n internalType: 'uint32',\n name: 'timestamp',\n type: 'uint32',\n },\n {\n internalType: 'bool',\n name: 'native',\n type: 'bool',\n },\n {\n internalType: 'uint96',\n name: 'amount',\n type: 'uint96',\n },\n {\n internalType: 'uint120',\n name: 'exemption',\n type: 'uint120',\n },\n ],\n indexed: false,\n internalType: 'struct Pending',\n name: 'pending',\n type: 'tuple',\n },\n ],\n name: 'UpdatePending',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'quote',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'trader',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'quantity',\n type: 'uint256',\n },\n ],\n name: 'Withdraw',\n type: 'event',\n },\n {\n inputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n name: 'allInstruments',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'allInstrumentsLength',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'quote',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'to',\n type: 'address',\n },\n ],\n name: 'claimYield',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'config',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'quote',\n type: 'address',\n },\n {\n internalType: 'enum YieldMode',\n name: 'yieldMode',\n type: 'uint8',\n },\n ],\n name: 'configureYieldMode',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'arg',\n type: 'bytes32',\n },\n ],\n name: 'deposit',\n outputs: [],\n stateMutability: 'payable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'quote',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'trader',\n type: 'address',\n },\n ],\n name: 'fundFlowOf',\n outputs: [\n {\n components: [\n {\n internalType: 'uint128',\n name: 'totalIn',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'totalOut',\n type: 'uint128',\n },\n ],\n internalType: 'struct FundFlow',\n name: 'fundFlow',\n type: 'tuple',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'quote',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'trader',\n type: 'address',\n },\n {\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n internalType: 'uint256',\n name: 'quantity',\n type: 'uint256',\n },\n ],\n name: 'gather',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'getAllInstruments',\n outputs: [\n {\n internalType: 'address[]',\n name: '',\n type: 'address[]',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n ],\n name: 'indexOf',\n outputs: [\n {\n internalType: 'bytes32',\n name: 'index',\n type: 'bytes32',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'instrumentInitData',\n outputs: [\n {\n internalType: 'bytes',\n name: '',\n type: 'bytes',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'user',\n type: 'address',\n },\n ],\n name: 'isBlacklisted',\n outputs: [\n {\n internalType: 'bool',\n name: '',\n type: 'bool',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'string',\n name: 'mtype',\n type: 'string',\n },\n {\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n {\n internalType: 'bytes',\n name: 'data',\n type: 'bytes',\n },\n {\n internalType: 'bytes32[2]',\n name: 'addArgs',\n type: 'bytes32[2]',\n },\n ],\n name: 'launch',\n outputs: [\n {\n internalType: 'int24',\n name: 'tickLower',\n type: 'int24',\n },\n {\n internalType: 'int24',\n name: 'tickUpper',\n type: 'int24',\n },\n {\n components: [\n {\n internalType: 'uint128',\n name: 'liquidity',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'entryFeeIndex',\n type: 'uint128',\n },\n {\n internalType: 'uint96',\n name: 'balance',\n type: 'uint96',\n },\n {\n internalType: 'uint160',\n name: 'sqrtEntryPX96',\n type: 'uint160',\n },\n ],\n internalType: 'struct Range',\n name: 'range',\n type: 'tuple',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'pendingDuration',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'quote',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'trader',\n type: 'address',\n },\n ],\n name: 'pendingOf',\n outputs: [\n {\n components: [\n {\n internalType: 'uint32',\n name: 'timestamp',\n type: 'uint32',\n },\n {\n internalType: 'bool',\n name: 'native',\n type: 'bool',\n },\n {\n internalType: 'uint96',\n name: 'amount',\n type: 'uint96',\n },\n {\n internalType: 'uint120',\n name: 'exemption',\n type: 'uint120',\n },\n ],\n internalType: 'struct Pending',\n name: 'pending',\n type: 'tuple',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'quote',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'trader',\n type: 'address',\n },\n ],\n name: 'release',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'quote',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'user',\n type: 'address',\n },\n ],\n name: 'reserveOf',\n outputs: [\n {\n internalType: 'uint256',\n name: 'balance',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'quote',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'trader',\n type: 'address',\n },\n {\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n internalType: 'uint256',\n name: 'quantity',\n type: 'uint256',\n },\n ],\n name: 'scatter',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'trader',\n type: 'address',\n },\n {\n internalType: 'bool',\n name: 'banned',\n type: 'bool',\n },\n ],\n name: 'setBlacklist',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint256',\n name: 'duration',\n type: 'uint256',\n },\n ],\n name: 'setPendingDuration',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'quote',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: 'threshold',\n type: 'uint256',\n },\n ],\n name: 'setThreshold',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'syncPointsOperator',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'quote',\n type: 'address',\n },\n ],\n name: 'thresholdOf',\n outputs: [\n {\n internalType: 'uint256',\n name: 'threshold',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'weth',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'arg',\n type: 'bytes32',\n },\n ],\n name: 'withdraw',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n stateMutability: 'payable',\n type: 'receive',\n },\n];\nclass Gate__factory {\n static createInterface() {\n return new ethers_1.utils.Interface(_abi);\n }\n static connect(address, signerOrProvider) {\n return new ethers_1.Contract(address, _abi, signerOrProvider);\n }\n}\nexports.Gate__factory = Gate__factory;\nGate__factory.abi = _abi;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Guardian__factory = void 0;\nconst ethers_1 = require(\"ethers\");\nconst _abi = [\n {\n inputs: [],\n stateMutability: 'nonpayable',\n type: 'constructor',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'token',\n type: 'address',\n },\n ],\n name: 'GetErc20DecimalsFailed',\n type: 'error',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'token',\n type: 'address',\n },\n ],\n name: 'GetErc20SymbolFailed',\n type: 'error',\n },\n {\n inputs: [],\n name: 'LengthMismatch',\n type: 'error',\n },\n {\n inputs: [],\n name: 'NotAdmin',\n type: 'error',\n },\n {\n inputs: [],\n name: 'NotGasClaimer',\n type: 'error',\n },\n {\n inputs: [],\n name: 'NotAdminOrVaultFactory',\n type: 'error',\n },\n {\n inputs: [],\n name: 'NotOperator',\n type: 'error',\n },\n {\n inputs: [],\n name: 'NotYieldClaimer',\n type: 'error',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'uint8',\n name: 'version',\n type: 'uint8',\n },\n ],\n name: 'Initialized',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n {\n indexed: true,\n internalType: 'bytes32',\n name: 'previousAdminRole',\n type: 'bytes32',\n },\n {\n indexed: true,\n internalType: 'bytes32',\n name: 'newAdminRole',\n type: 'bytes32',\n },\n ],\n name: 'RoleAdminChanged',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'sender',\n type: 'address',\n },\n ],\n name: 'RoleGranted',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'sender',\n type: 'address',\n },\n ],\n name: 'RoleRevoked',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'address',\n name: 'blastFeeTo',\n type: 'address',\n },\n ],\n name: 'SetBlastFeeToAddress',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'address',\n name: 'blastYieldTo',\n type: 'address',\n },\n ],\n name: 'SetBlastYieldToAddress',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'address',\n name: 'to',\n type: 'address',\n },\n ],\n name: 'SetToAddress',\n type: 'event',\n },\n {\n inputs: [],\n name: 'DEFAULT_ADMIN_ROLE',\n outputs: [\n {\n internalType: 'bytes32',\n name: '',\n type: 'bytes32',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'GAS_CLAIMER_ROLE',\n outputs: [\n {\n internalType: 'bytes32',\n name: '',\n type: 'bytes32',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'OPERATOR_ROLE',\n outputs: [\n {\n internalType: 'bytes32',\n name: '',\n type: 'bytes32',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'YIELD_CLAIMER_ROLE',\n outputs: [\n {\n internalType: 'bytes32',\n name: '',\n type: 'bytes32',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'VAULT_FACTORY_ROLE',\n outputs: [\n {\n internalType: 'bytes32',\n name: '',\n type: 'bytes32',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'dexV2Factory',\n type: 'address',\n },\n ],\n name: 'addDexV2Factory',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'blastFeeTo',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'blastYieldTo',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address[]',\n name: 'contractAddresses',\n type: 'address[]',\n },\n ],\n name: 'claimAllGas',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address[]',\n name: 'contractAddresses',\n type: 'address[]',\n },\n {\n internalType: 'uint256',\n name: 'minClaimRateBips',\n type: 'uint256',\n },\n ],\n name: 'claimGasAtMinClaimRate',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address[]',\n name: 'contractAddresses',\n type: 'address[]',\n },\n ],\n name: 'claimMaxGas',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address[]',\n name: 'instruments',\n type: 'address[]',\n },\n {\n internalType: 'uint32[]',\n name: 'expiries',\n type: 'uint32[]',\n },\n ],\n name: 'claimProtocolFee',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'quote',\n type: 'address',\n },\n ],\n name: 'claimYield',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'config',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'quote',\n type: 'address',\n },\n {\n internalType: 'enum YieldMode',\n name: 'yieldMode',\n type: 'uint8',\n },\n ],\n name: 'configureYieldMode',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'disableLiquidatorWhitelist',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'disableLpWhitelist',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'emergingFeederFactory',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'quote',\n type: 'address',\n },\n {\n internalType: 'bool',\n name: 'enable',\n type: 'bool',\n },\n ],\n name: 'enableLpWhitelistForQuote',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address[]',\n name: 'instruments',\n type: 'address[]',\n },\n ],\n name: 'freeze',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'gate',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n ],\n name: 'getRoleAdmin',\n outputs: [\n {\n internalType: 'bytes32',\n name: '',\n type: 'bytes32',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address[]',\n name: 'operators',\n type: 'address[]',\n },\n ],\n name: 'grantEmergingFeederFactoryOperator',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address[]',\n name: 'operators',\n type: 'address[]',\n },\n ],\n name: 'grantPythFeederFactoryOperator',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n {\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n ],\n name: 'grantRole',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n {\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n ],\n name: 'hasRole',\n outputs: [\n {\n internalType: 'bool',\n name: '',\n type: 'bool',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: '_admin',\n type: 'address',\n },\n {\n internalType: 'address[]',\n name: '_operator',\n type: 'address[]',\n },\n {\n internalType: 'address',\n name: '_to',\n type: 'address',\n },\n ],\n name: 'initialize',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes[]',\n name: 'data',\n type: 'bytes[]',\n },\n ],\n name: 'multicall',\n outputs: [\n {\n internalType: 'bytes[]',\n name: 'results',\n type: 'bytes[]',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address[]',\n name: 'instruments',\n type: 'address[]',\n },\n ],\n name: 'normalize',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'pythFeederFactory',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address[]',\n name: 'contractAddresses',\n type: 'address[]',\n },\n ],\n name: 'readGasParams',\n outputs: [\n {\n internalType: 'uint256[]',\n name: 'etherSeconds',\n type: 'uint256[]',\n },\n {\n internalType: 'uint256[]',\n name: 'etherBalance',\n type: 'uint256[]',\n },\n {\n internalType: 'uint256[]',\n name: 'lastUpdated',\n type: 'uint256[]',\n },\n {\n internalType: 'enum GasMode[]',\n name: 'gasModes',\n type: 'uint8[]',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address[]',\n name: 'contractAddresses',\n type: 'address[]',\n },\n {\n internalType: 'address',\n name: 'quote',\n type: 'address',\n },\n ],\n name: 'readYieldClaimableAmount',\n outputs: [\n {\n internalType: 'uint256[]',\n name: 'claimable',\n type: 'uint256[]',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address[]',\n name: 'instruments',\n type: 'address[]',\n },\n {\n internalType: 'uint32[]',\n name: 'expiries',\n type: 'uint32[]',\n },\n ],\n name: 'recycleInsuranceFund',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address[]',\n name: 'quotes',\n type: 'address[]',\n },\n {\n internalType: 'address[]',\n name: 'traders',\n type: 'address[]',\n },\n ],\n name: 'release',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n {\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n ],\n name: 'renounceRole',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address[]',\n name: 'instruments',\n type: 'address[]',\n },\n {\n internalType: 'uint128[]',\n name: 'settlementPrices',\n type: 'uint128[]',\n },\n ],\n name: 'resolve',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address[]',\n name: 'operators',\n type: 'address[]',\n },\n ],\n name: 'revokeEmergingFeederFactoryOperator',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address[]',\n name: 'operators',\n type: 'address[]',\n },\n ],\n name: 'revokePythFeederFactoryOperator',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n {\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n ],\n name: 'revokeRole',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address[]',\n name: 'traders',\n type: 'address[]',\n },\n {\n internalType: 'bool[]',\n name: 'banned',\n type: 'bool[]',\n },\n ],\n name: 'setBlacklist',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: '_blastFeeTo',\n type: 'address',\n },\n ],\n name: 'setBlastFeeToAddress',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'pointsAddress',\n type: 'address',\n },\n ],\n name: 'setBlastPointsAddress',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'operator',\n type: 'address',\n },\n ],\n name: 'setBlastPointsOperator',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: '_blastYieldTo',\n type: 'address',\n },\n ],\n name: 'setBlastYieldToAddress',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'string',\n name: 'marketType',\n type: 'string',\n },\n {\n internalType: 'address[]',\n name: 'instruments',\n type: 'address[]',\n },\n {\n components: [\n {\n internalType: 'enum FeederType',\n name: 'ftype',\n type: 'uint8',\n },\n {\n internalType: 'uint64',\n name: 'scaler0',\n type: 'uint64',\n },\n {\n internalType: 'address',\n name: 'aggregator0',\n type: 'address',\n },\n {\n internalType: 'uint24',\n name: 'heartBeat0',\n type: 'uint24',\n },\n {\n internalType: 'uint64',\n name: 'scaler1',\n type: 'uint64',\n },\n {\n internalType: 'address',\n name: 'aggregator1',\n type: 'address',\n },\n {\n internalType: 'uint24',\n name: 'heartBeat1',\n type: 'uint24',\n },\n ],\n internalType: 'struct PriceFeeder[]',\n name: 'priceFeeders',\n type: 'tuple[]',\n },\n ],\n name: 'setCexMarketPriceFeeder',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'string',\n name: 'marketType',\n type: 'string',\n },\n {\n internalType: 'uint256',\n name: 'newCompactEmaParam',\n type: 'uint256',\n },\n ],\n name: 'setCompactEmaParam',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: '_config',\n type: 'address',\n },\n {\n internalType: 'address',\n name: '_gate',\n type: 'address',\n },\n ],\n name: 'setConfigAndGateAddress',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address[]',\n name: 'coins',\n type: 'address[]',\n },\n {\n components: [\n {\n internalType: 'uint128',\n name: 'minMarginAmount',\n type: 'uint128',\n },\n {\n internalType: 'uint16',\n name: 'tradingFeeRatio',\n type: 'uint16',\n },\n {\n internalType: 'uint16',\n name: 'protocolFeeRatio',\n type: 'uint16',\n },\n {\n internalType: 'uint64',\n name: 'stabilityFeeRatioParam',\n type: 'uint64',\n },\n {\n internalType: 'enum QuoteType',\n name: 'qtype',\n type: 'uint8',\n },\n {\n internalType: 'uint128',\n name: 'tip',\n type: 'uint128',\n },\n ],\n internalType: 'struct QuoteParam[]',\n name: 'params',\n type: 'tuple[]',\n },\n ],\n name: 'setConfigQuoteParam',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: '_emergingFeederFactory',\n type: 'address',\n },\n ],\n name: 'setEmergingFeederFactoryAddress',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address[]',\n name: 'instruments',\n type: 'address[]',\n },\n {\n internalType: 'uint8[]',\n name: 'params',\n type: 'uint8[]',\n },\n ],\n name: 'setFundingHour',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address[]',\n name: 'instruments',\n type: 'address[]',\n },\n {\n internalType: 'uint16[]',\n name: 'imrs',\n type: 'uint16[]',\n },\n {\n internalType: 'uint16[]',\n name: 'mmrs',\n type: 'uint16[]',\n },\n ],\n name: 'setInstrumentLeverage',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address[]',\n name: 'instruments',\n type: 'address[]',\n },\n {\n components: [\n {\n internalType: 'uint128',\n name: 'minMarginAmount',\n type: 'uint128',\n },\n {\n internalType: 'uint16',\n name: 'tradingFeeRatio',\n type: 'uint16',\n },\n {\n internalType: 'uint16',\n name: 'protocolFeeRatio',\n type: 'uint16',\n },\n {\n internalType: 'uint64',\n name: 'stabilityFeeRatioParam',\n type: 'uint64',\n },\n {\n internalType: 'enum QuoteType',\n name: 'qtype',\n type: 'uint8',\n },\n {\n internalType: 'uint128',\n name: 'tip',\n type: 'uint128',\n },\n ],\n internalType: 'struct QuoteParam[]',\n name: 'params',\n type: 'tuple[]',\n },\n ],\n name: 'setInstrumentQuoteParam',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address[]',\n name: 'users',\n type: 'address[]',\n },\n {\n internalType: 'bool[]',\n name: 'flags',\n type: 'bool[]',\n },\n ],\n name: 'setLiquidatorWhitelist',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address[]',\n name: 'quotes',\n type: 'address[]',\n },\n {\n internalType: 'address[]',\n name: 'users',\n type: 'address[]',\n },\n {\n internalType: 'bool[]',\n name: 'flags',\n type: 'bool[]',\n },\n ],\n name: 'setLpWhiteList',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'string',\n name: 'mtype',\n type: 'string',\n },\n {\n internalType: 'address',\n name: 'market',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'beacon',\n type: 'address',\n },\n ],\n name: 'setMarketInfo',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint256',\n name: 'duration',\n type: 'uint256',\n },\n ],\n name: 'setPendingDuration',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address[]',\n name: 'instruments',\n type: 'address[]',\n },\n {\n internalType: 'bool[]',\n name: 'params',\n type: 'bool[]',\n },\n ],\n name: 'setPlacePaused',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: '_pythFeederFactory',\n type: 'address',\n },\n ],\n name: 'setPythFeederFactoryAddress',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'baseIndex',\n type: 'bytes32',\n },\n {\n internalType: 'bytes32',\n name: '_id',\n type: 'bytes32',\n },\n ],\n name: 'setPythFeederId',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'newAdmin',\n type: 'address',\n },\n ],\n name: 'setSynFuturesV3Admin',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address[]',\n name: 'quotes',\n type: 'address[]',\n },\n {\n internalType: 'uint256[]',\n name: 'thresholds',\n type: 'uint256[]',\n },\n ],\n name: 'setThreshold',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: '_to',\n type: 'address',\n },\n ],\n name: 'setToAddress',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes4',\n name: 'interfaceId',\n type: 'bytes4',\n },\n ],\n name: 'supportsInterface',\n outputs: [\n {\n internalType: 'bool',\n name: '',\n type: 'bool',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'syncPointsOperator',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'to',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'newAdmin',\n type: 'address',\n },\n ],\n name: 'transferEmergingFeederFactoryAdmin',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'newAdmin',\n type: 'address',\n },\n ],\n name: 'transferPythFeederFactoryAdmin',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address[]',\n name: 'quotes',\n type: 'address[]',\n },\n {\n internalType: 'uint256[]',\n name: 'amounts',\n type: 'uint256[]',\n },\n ],\n name: 'withdrawFromGate',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address[]',\n name: 'tokens',\n type: 'address[]',\n },\n ],\n name: 'withdrawFromGuardian',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n];\nclass Guardian__factory {\n static createInterface() {\n return new ethers_1.utils.Interface(_abi);\n }\n static connect(address, signerOrProvider) {\n return new ethers_1.Contract(address, _abi, signerOrProvider);\n }\n}\nexports.Guardian__factory = Guardian__factory;\nGuardian__factory.abi = _abi;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ICexPriceFeeder__factory = void 0;\nconst ethers_1 = require(\"ethers\");\nconst _abi = [\n {\n inputs: [],\n name: 'decimals',\n outputs: [\n {\n internalType: 'uint8',\n name: '',\n type: 'uint8',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'latestRoundData',\n outputs: [\n {\n internalType: 'uint80',\n name: 'roundId',\n type: 'uint80',\n },\n {\n internalType: 'int256',\n name: 'answer',\n type: 'int256',\n },\n {\n internalType: 'uint256',\n name: 'startedAt',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'updatedAt',\n type: 'uint256',\n },\n {\n internalType: 'uint80',\n name: 'answeredInRound',\n type: 'uint80',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n];\nclass ICexPriceFeeder__factory {\n static createInterface() {\n return new ethers_1.utils.Interface(_abi);\n }\n static connect(address, signerOrProvider) {\n return new ethers_1.Contract(address, _abi, signerOrProvider);\n }\n}\nexports.ICexPriceFeeder__factory = ICexPriceFeeder__factory;\nICexPriceFeeder__factory.abi = _abi;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Instrument__factory = void 0;\nconst ethers_1 = require(\"ethers\");\nconst _abi = [\n {\n inputs: [],\n stateMutability: 'nonpayable',\n type: 'constructor',\n },\n {\n inputs: [],\n name: 'AddTraderIneligible',\n type: 'error',\n },\n {\n inputs: [],\n name: 'AlreadyInitialized',\n type: 'error',\n },\n {\n inputs: [],\n name: 'BadAmmStatus',\n type: 'error',\n },\n {\n inputs: [],\n name: 'BadInstrumentCondition',\n type: 'error',\n },\n {\n inputs: [],\n name: 'BadMinMarginAmount',\n type: 'error',\n },\n {\n inputs: [],\n name: 'BadProtocolFeeRatio',\n type: 'error',\n },\n {\n inputs: [],\n name: 'BadTip',\n type: 'error',\n },\n {\n inputs: [],\n name: 'BadTradingFeeRatio',\n type: 'error',\n },\n {\n inputs: [],\n name: 'DivByZero',\n type: 'error',\n },\n {\n inputs: [],\n name: 'ExpiryNotAligned',\n type: 'error',\n },\n {\n inputs: [\n {\n internalType: 'uint256',\n name: 'margin',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'minMargin',\n type: 'uint256',\n },\n ],\n name: 'InitTrivial',\n type: 'error',\n },\n {\n inputs: [],\n name: 'LiquidatorIneligible',\n type: 'error',\n },\n {\n inputs: [],\n name: 'Locked',\n type: 'error',\n },\n {\n inputs: [],\n name: 'NotGate',\n type: 'error',\n },\n {\n inputs: [],\n name: 'NotSynFuturesV3Admin',\n type: 'error',\n },\n {\n inputs: [],\n name: 'NotTradeable',\n type: 'error',\n },\n {\n inputs: [\n {\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n ],\n name: 'PairNotCleared',\n type: 'error',\n },\n {\n inputs: [],\n name: 'RoundHalfUpBadParam',\n type: 'error',\n },\n {\n inputs: [],\n name: 'PlacePaused',\n type: 'error',\n },\n {\n inputs: [],\n name: 'SelfLiquidation',\n type: 'error',\n },\n {\n inputs: [],\n name: 'TickOutOfBound',\n type: 'error',\n },\n {\n inputs: [],\n name: 'Timeout',\n type: 'error',\n },\n {\n inputs: [],\n name: 'ZeroAddress',\n type: 'error',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'uint8',\n name: 'version',\n type: 'uint8',\n },\n ],\n name: 'Initialized',\n type: 'event',\n },\n {\n inputs: [\n {\n internalType: 'bytes32[2]',\n name: 'args',\n type: 'bytes32[2]',\n },\n ],\n name: 'add',\n outputs: [\n {\n internalType: 'int24',\n name: 'tickLower',\n type: 'int24',\n },\n {\n internalType: 'int24',\n name: 'tickUpper',\n type: 'int24',\n },\n {\n components: [\n {\n internalType: 'uint128',\n name: 'liquidity',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'entryFeeIndex',\n type: 'uint128',\n },\n {\n internalType: 'uint96',\n name: 'balance',\n type: 'uint96',\n },\n {\n internalType: 'uint160',\n name: 'sqrtEntryPX96',\n type: 'uint160',\n },\n ],\n internalType: 'struct Range',\n name: 'range',\n type: 'tuple',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32[3]',\n name: 'args',\n type: 'bytes32[3]',\n },\n ],\n name: 'batchPlace',\n outputs: [\n {\n internalType: 'uint24[]',\n name: 'nonces',\n type: 'uint24[]',\n },\n {\n components: [\n {\n internalType: 'uint128',\n name: 'balance',\n type: 'uint128',\n },\n {\n internalType: 'int128',\n name: 'size',\n type: 'int128',\n },\n ],\n internalType: 'struct Order[]',\n name: 'orders',\n type: 'tuple[]',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'arg',\n type: 'bytes32',\n },\n ],\n name: 'cancel',\n outputs: [\n {\n internalType: 'bool[8]',\n name: 'succees',\n type: 'bool[8]',\n },\n {\n components: [\n {\n internalType: 'int256',\n name: 'balance',\n type: 'int256',\n },\n {\n internalType: 'int256',\n name: 'size',\n type: 'int256',\n },\n {\n internalType: 'uint256',\n name: 'entryNotional',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'entrySocialLossIndex',\n type: 'uint256',\n },\n {\n internalType: 'int256',\n name: 'entryFundingIndex',\n type: 'int256',\n },\n ],\n internalType: 'struct PositionCache[8]',\n name: 'pics',\n type: 'tuple[8]',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n ],\n name: 'claimProtocolFee',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'to',\n type: 'address',\n },\n ],\n name: 'claimYield',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'condition',\n outputs: [\n {\n internalType: 'enum Condition',\n name: '',\n type: 'uint8',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'enum YieldMode',\n name: 'yieldMode',\n type: 'uint8',\n },\n ],\n name: 'configureYieldMode',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n internalType: 'uint256',\n name: 'amount',\n type: 'uint256',\n },\n ],\n name: 'donateInsuranceFund',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'arg',\n type: 'bytes32',\n },\n ],\n name: 'fill',\n outputs: [\n {\n components: [\n {\n internalType: 'int256',\n name: 'balance',\n type: 'int256',\n },\n {\n internalType: 'int256',\n name: 'size',\n type: 'int256',\n },\n {\n internalType: 'uint256',\n name: 'entryNotional',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'entrySocialLossIndex',\n type: 'uint256',\n },\n {\n internalType: 'int256',\n name: 'entryFundingIndex',\n type: 'int256',\n },\n ],\n internalType: 'struct PositionCache',\n name: 'pic',\n type: 'tuple',\n },\n {\n internalType: 'uint256',\n name: 'tip',\n type: 'uint256',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'freeze',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'fundingHour',\n outputs: [\n {\n internalType: 'uint8',\n name: '',\n type: 'uint8',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'getExpiries',\n outputs: [\n {\n internalType: 'uint32[]',\n name: '',\n type: 'uint32[]',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'target',\n type: 'address',\n },\n {\n internalType: 'bytes32[2]',\n name: 'args',\n type: 'bytes32[2]',\n },\n ],\n name: 'init',\n outputs: [\n {\n internalType: 'int24',\n name: 'tickLower',\n type: 'int24',\n },\n {\n internalType: 'int24',\n name: 'tickUpper',\n type: 'int24',\n },\n {\n components: [\n {\n internalType: 'uint128',\n name: 'liquidity',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'entryFeeIndex',\n type: 'uint128',\n },\n {\n internalType: 'uint96',\n name: 'balance',\n type: 'uint96',\n },\n {\n internalType: 'uint160',\n name: 'sqrtEntryPX96',\n type: 'uint160',\n },\n ],\n internalType: 'struct Range',\n name: 'range',\n type: 'tuple',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes',\n name: 'data',\n type: 'bytes',\n },\n ],\n name: 'initialize',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n internalType: 'int256',\n name: 'size',\n type: 'int256',\n },\n ],\n name: 'inquire',\n outputs: [\n {\n components: [\n {\n internalType: 'uint256',\n name: 'benchmark',\n type: 'uint256',\n },\n {\n internalType: 'uint160',\n name: 'sqrtFairPX96',\n type: 'uint160',\n },\n {\n internalType: 'int24',\n name: 'tick',\n type: 'int24',\n },\n {\n internalType: 'uint256',\n name: 'mark',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'entryNotional',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'fee',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'minAmount',\n type: 'uint256',\n },\n {\n internalType: 'uint160',\n name: 'sqrtPostFairPX96',\n type: 'uint160',\n },\n {\n internalType: 'int24',\n name: 'postTick',\n type: 'int24',\n },\n ],\n internalType: 'struct Quotation',\n name: '',\n type: 'tuple',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n internalType: 'address',\n name: 'target',\n type: 'address',\n },\n {\n internalType: 'int256',\n name: 'size',\n type: 'int256',\n },\n {\n internalType: 'uint256',\n name: 'amount',\n type: 'uint256',\n },\n ],\n name: 'liquidate',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes[]',\n name: 'data',\n type: 'bytes[]',\n },\n ],\n name: 'multicall',\n outputs: [\n {\n internalType: 'bytes[]',\n name: 'results',\n type: 'bytes[]',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'normalize',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32[2]',\n name: 'args',\n type: 'bytes32[2]',\n },\n ],\n name: 'place',\n outputs: [\n {\n internalType: 'uint24',\n name: 'nonce',\n type: 'uint24',\n },\n {\n components: [\n {\n internalType: 'uint128',\n name: 'balance',\n type: 'uint128',\n },\n {\n internalType: 'int128',\n name: 'size',\n type: 'int128',\n },\n ],\n internalType: 'struct Order',\n name: 'order',\n type: 'tuple',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'placePaused',\n outputs: [\n {\n internalType: 'bool',\n name: '',\n type: 'bool',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n internalType: 'address',\n name: 'target',\n type: 'address',\n },\n {\n internalType: 'enum QueryAcc',\n name: 'query',\n type: 'uint8',\n },\n {\n internalType: 'bytes',\n name: 'inputs',\n type: 'bytes',\n },\n ],\n name: 'queryAccount',\n outputs: [\n {\n internalType: 'bytes',\n name: 'result',\n type: 'bytes',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n internalType: 'enum QueryCtx',\n name: 'query',\n type: 'uint8',\n },\n {\n internalType: 'uint256[]',\n name: 'offsets',\n type: 'uint256[]',\n },\n {\n internalType: 'bytes',\n name: 'inputs',\n type: 'bytes',\n },\n ],\n name: 'queryContext',\n outputs: [\n {\n internalType: 'uint256[]',\n name: '',\n type: 'uint256[]',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint256[]',\n name: 'offsets',\n type: 'uint256[]',\n },\n ],\n name: 'querySetting',\n outputs: [\n {\n internalType: 'uint256[]',\n name: '',\n type: 'uint256[]',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n ],\n name: 'recycleInsuranceFund',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32[2]',\n name: 'args',\n type: 'bytes32[2]',\n },\n ],\n name: 'remove',\n outputs: [\n {\n components: [\n {\n internalType: 'int256',\n name: 'balance',\n type: 'int256',\n },\n {\n internalType: 'int256',\n name: 'size',\n type: 'int256',\n },\n {\n internalType: 'uint256',\n name: 'entryNotional',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'entrySocialLossIndex',\n type: 'uint256',\n },\n {\n internalType: 'int256',\n name: 'entryFundingIndex',\n type: 'int256',\n },\n ],\n internalType: 'struct PositionCache',\n name: 'pic',\n type: 'tuple',\n },\n {\n internalType: 'uint256',\n name: 'fee',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'tip',\n type: 'uint256',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint128',\n name: 'settlementPrice',\n type: 'uint128',\n },\n ],\n name: 'resolve',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint8',\n name: 'newFundingHour',\n type: 'uint8',\n },\n ],\n name: 'setFundingHour',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint16',\n name: 'initialMarginRatio',\n type: 'uint16',\n },\n {\n internalType: 'uint16',\n name: 'maintenanceMarginRatio',\n type: 'uint16',\n },\n ],\n name: 'setLeverage',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bool',\n name: 'paused',\n type: 'bool',\n },\n ],\n name: 'setPlacePaused',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n components: [\n {\n internalType: 'uint128',\n name: 'minMarginAmount',\n type: 'uint128',\n },\n {\n internalType: 'uint16',\n name: 'tradingFeeRatio',\n type: 'uint16',\n },\n {\n internalType: 'uint16',\n name: 'protocolFeeRatio',\n type: 'uint16',\n },\n {\n internalType: 'uint64',\n name: 'stabilityFeeRatioParam',\n type: 'uint64',\n },\n {\n internalType: 'enum QuoteType',\n name: 'qtype',\n type: 'uint8',\n },\n {\n internalType: 'uint128',\n name: 'tip',\n type: 'uint128',\n },\n ],\n internalType: 'struct QuoteParam',\n name: 'param',\n type: 'tuple',\n },\n ],\n name: 'setQuoteParam',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n internalType: 'address',\n name: 'target',\n type: 'address',\n },\n ],\n name: 'settle',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n internalType: 'address',\n name: 'target',\n type: 'address',\n },\n {\n internalType: 'int256',\n name: 'size',\n type: 'int256',\n },\n ],\n name: 'sweep',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'syncPointsOperator',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32[2]',\n name: 'args',\n type: 'bytes32[2]',\n },\n ],\n name: 'trade',\n outputs: [\n {\n components: [\n {\n internalType: 'int256',\n name: 'balance',\n type: 'int256',\n },\n {\n internalType: 'int256',\n name: 'size',\n type: 'int256',\n },\n {\n internalType: 'uint256',\n name: 'entryNotional',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'entrySocialLossIndex',\n type: 'uint256',\n },\n {\n internalType: 'int256',\n name: 'entryFundingIndex',\n type: 'int256',\n },\n ],\n internalType: 'struct PositionCache',\n name: '',\n type: 'tuple',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n ],\n name: 'update',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'trader',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'int24',\n name: 'tickLower',\n type: 'int24',\n },\n {\n indexed: false,\n internalType: 'int24',\n name: 'tickUpper',\n type: 'int24',\n },\n {\n components: [\n {\n internalType: 'uint128',\n name: 'liquidity',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'entryFeeIndex',\n type: 'uint128',\n },\n {\n internalType: 'uint96',\n name: 'balance',\n type: 'uint96',\n },\n {\n internalType: 'uint160',\n name: 'sqrtEntryPX96',\n type: 'uint160',\n },\n ],\n indexed: false,\n internalType: 'struct Range',\n name: 'range',\n type: 'tuple',\n },\n ],\n name: 'Add',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'trader',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'int256',\n name: 'net',\n type: 'int256',\n },\n ],\n name: 'Adjust',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'trader',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'int24',\n name: 'tick',\n type: 'int24',\n },\n {\n indexed: false,\n internalType: 'uint32',\n name: 'nonce',\n type: 'uint32',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'fee',\n type: 'uint256',\n },\n {\n components: [\n {\n internalType: 'int256',\n name: 'balance',\n type: 'int256',\n },\n {\n internalType: 'int256',\n name: 'size',\n type: 'int256',\n },\n {\n internalType: 'uint256',\n name: 'entryNotional',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'entrySocialLossIndex',\n type: 'uint256',\n },\n {\n internalType: 'int256',\n name: 'entryFundingIndex',\n type: 'int256',\n },\n ],\n indexed: false,\n internalType: 'struct PositionCache',\n name: 'pic',\n type: 'tuple',\n },\n ],\n name: 'Cancel',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'amount',\n type: 'uint256',\n },\n ],\n name: 'ClaimProtocolFee',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n ],\n name: 'DeleteContext',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'donator',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'amount',\n type: 'uint256',\n },\n ],\n name: 'DonateInsuranceFund',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'trader',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'int24',\n name: 'tick',\n type: 'int24',\n },\n {\n indexed: false,\n internalType: 'uint32',\n name: 'nonce',\n type: 'uint32',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'fee',\n type: 'uint256',\n },\n {\n components: [\n {\n internalType: 'int256',\n name: 'balance',\n type: 'int256',\n },\n {\n internalType: 'int256',\n name: 'size',\n type: 'int256',\n },\n {\n internalType: 'uint256',\n name: 'entryNotional',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'entrySocialLossIndex',\n type: 'uint256',\n },\n {\n internalType: 'int256',\n name: 'entryFundingIndex',\n type: 'int256',\n },\n ],\n indexed: false,\n internalType: 'struct PositionCache',\n name: 'pic',\n type: 'tuple',\n },\n {\n indexed: false,\n internalType: 'address',\n name: 'operator',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'tip',\n type: 'uint256',\n },\n ],\n name: 'Fill',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'trader',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'int256',\n name: 'funding',\n type: 'int256',\n },\n ],\n name: 'FundingFee',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'trader',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'amount',\n type: 'uint256',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'mark',\n type: 'uint256',\n },\n {\n indexed: false,\n internalType: 'address',\n name: 'target',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'int256',\n name: 'size',\n type: 'int256',\n },\n ],\n name: 'Liquidate',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'trader',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'int24',\n name: 'tick',\n type: 'int24',\n },\n {\n indexed: false,\n internalType: 'uint32',\n name: 'nonce',\n type: 'uint32',\n },\n {\n components: [\n {\n internalType: 'uint128',\n name: 'balance',\n type: 'uint128',\n },\n {\n internalType: 'int128',\n name: 'size',\n type: 'int128',\n },\n ],\n indexed: false,\n internalType: 'struct Order',\n name: 'order',\n type: 'tuple',\n },\n ],\n name: 'Place',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'amount',\n type: 'uint256',\n },\n ],\n name: 'RecycleInsuranceFund',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'trader',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'int24',\n name: 'tickLower',\n type: 'int24',\n },\n {\n indexed: false,\n internalType: 'int24',\n name: 'tickUpper',\n type: 'int24',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'fee',\n type: 'uint256',\n },\n {\n components: [\n {\n internalType: 'int256',\n name: 'balance',\n type: 'int256',\n },\n {\n internalType: 'int256',\n name: 'size',\n type: 'int256',\n },\n {\n internalType: 'uint256',\n name: 'entryNotional',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'entrySocialLossIndex',\n type: 'uint256',\n },\n {\n internalType: 'int256',\n name: 'entryFundingIndex',\n type: 'int256',\n },\n ],\n indexed: false,\n internalType: 'struct PositionCache',\n name: 'pic',\n type: 'tuple',\n },\n {\n indexed: false,\n internalType: 'address',\n name: 'operator',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'tip',\n type: 'uint256',\n },\n ],\n name: 'Remove',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'trader',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'settlement',\n type: 'uint256',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'balance',\n type: 'uint256',\n },\n {\n indexed: false,\n internalType: 'address',\n name: 'operator',\n type: 'address',\n },\n ],\n name: 'Settle',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'trader',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'int256',\n name: 'size',\n type: 'int256',\n },\n {\n indexed: false,\n internalType: 'int256',\n name: 'takenSize',\n type: 'int256',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'takenValue',\n type: 'uint256',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'entryNotional',\n type: 'uint256',\n },\n {\n indexed: false,\n internalType: 'uint16',\n name: 'feeRatio',\n type: 'uint16',\n },\n {\n indexed: false,\n internalType: 'uint160',\n name: 'sqrtPX96',\n type: 'uint160',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'mark',\n type: 'uint256',\n },\n {\n indexed: false,\n internalType: 'address',\n name: 'operator',\n type: 'address',\n },\n ],\n name: 'Sweep',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'trader',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'int256',\n name: 'size',\n type: 'int256',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'amount',\n type: 'uint256',\n },\n {\n indexed: false,\n internalType: 'int256',\n name: 'takenSize',\n type: 'int256',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'takenValue',\n type: 'uint256',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'entryNotional',\n type: 'uint256',\n },\n {\n indexed: false,\n internalType: 'uint16',\n name: 'feeRatio',\n type: 'uint16',\n },\n {\n indexed: false,\n internalType: 'uint160',\n name: 'sqrtPX96',\n type: 'uint160',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'mark',\n type: 'uint256',\n },\n ],\n name: 'Trade',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n indexed: false,\n internalType: 'enum Status',\n name: 'status',\n type: 'uint8',\n },\n {\n indexed: false,\n internalType: 'uint160',\n name: 'sqrtPX96',\n type: 'uint160',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'mark',\n type: 'uint256',\n },\n ],\n name: 'UpdateAmmStatus',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'uint32',\n name: 'timestamp',\n type: 'uint32',\n },\n {\n indexed: false,\n internalType: 'enum Condition',\n name: 'condition',\n type: 'uint8',\n },\n ],\n name: 'UpdateCondition',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n indexed: false,\n internalType: 'uint128',\n name: 'feeIndex',\n type: 'uint128',\n },\n {\n indexed: false,\n internalType: 'uint128',\n name: 'protocolFee',\n type: 'uint128',\n },\n ],\n name: 'UpdateFeeState',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'uint8',\n name: 'fundingHour',\n type: 'uint8',\n },\n ],\n name: 'UpdateFundingHour',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'uint256',\n name: 'fundingIndex',\n type: 'uint256',\n },\n ],\n name: 'UpdateFundingIndex',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'uint16',\n name: 'initialMarginRatio',\n type: 'uint16',\n },\n {\n indexed: false,\n internalType: 'uint16',\n name: 'maintenanceMarginRatio',\n type: 'uint16',\n },\n ],\n name: 'UpdateMarginRatio',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n components: [\n {\n internalType: 'uint128',\n name: 'minMarginAmount',\n type: 'uint128',\n },\n {\n internalType: 'uint16',\n name: 'tradingFeeRatio',\n type: 'uint16',\n },\n {\n internalType: 'uint16',\n name: 'protocolFeeRatio',\n type: 'uint16',\n },\n {\n internalType: 'uint64',\n name: 'stabilityFeeRatioParam',\n type: 'uint64',\n },\n {\n internalType: 'enum QuoteType',\n name: 'qtype',\n type: 'uint8',\n },\n {\n internalType: 'uint128',\n name: 'tip',\n type: 'uint128',\n },\n ],\n indexed: false,\n internalType: 'struct QuoteParam',\n name: 'param',\n type: 'tuple',\n },\n ],\n name: 'UpdateParam',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'trader',\n type: 'address',\n },\n {\n components: [\n {\n internalType: 'int256',\n name: 'balance',\n type: 'int256',\n },\n {\n internalType: 'int256',\n name: 'size',\n type: 'int256',\n },\n {\n internalType: 'uint256',\n name: 'entryNotional',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'entrySocialLossIndex',\n type: 'uint256',\n },\n {\n internalType: 'int256',\n name: 'entryFundingIndex',\n type: 'int256',\n },\n ],\n indexed: false,\n internalType: 'struct PositionCache',\n name: 'pic',\n type: 'tuple',\n },\n ],\n name: 'UpdatePosition',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n indexed: false,\n internalType: 'uint128',\n name: 'longSocialLossIndex',\n type: 'uint128',\n },\n {\n indexed: false,\n internalType: 'uint128',\n name: 'shortSocialLossIndex',\n type: 'uint128',\n },\n {\n indexed: false,\n internalType: 'uint128',\n name: 'insuranceFund',\n type: 'uint128',\n },\n ],\n name: 'UpdateSocialLossInsuranceFund',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'trader',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'uint48',\n name: 'rid',\n type: 'uint48',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'fee',\n type: 'uint256',\n },\n {\n indexed: false,\n internalType: 'address',\n name: 'operator',\n type: 'address',\n },\n {\n components: [\n {\n internalType: 'uint128',\n name: 'liquidity',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'entryFeeIndex',\n type: 'uint128',\n },\n {\n internalType: 'uint96',\n name: 'balance',\n type: 'uint96',\n },\n {\n internalType: 'uint160',\n name: 'sqrtEntryPX96',\n type: 'uint160',\n },\n ],\n indexed: false,\n internalType: 'struct Range',\n name: 'range',\n type: 'tuple',\n },\n ],\n name: 'WithdrawRangeFee',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'address',\n name: 'previousAdmin',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'address',\n name: 'newAdmin',\n type: 'address',\n },\n ],\n name: 'AdminChanged',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'beacon',\n type: 'address',\n },\n ],\n name: 'BeaconUpgraded',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'implementation',\n type: 'address',\n },\n ],\n name: 'Upgraded',\n type: 'event',\n },\n {\n inputs: [],\n name: 'AddLiquidityExceedMax',\n type: 'error',\n },\n {\n inputs: [],\n name: 'AddOverflow',\n type: 'error',\n },\n {\n inputs: [],\n name: 'BadAmmTiming',\n type: 'error',\n },\n {\n inputs: [],\n name: 'BadMaintenanceMarginRatio',\n type: 'error',\n },\n {\n inputs: [\n {\n internalType: 'int256',\n name: 'totalSize',\n type: 'int256',\n },\n {\n internalType: 'int256',\n name: 'requestedSize',\n type: 'int256',\n },\n ],\n name: 'BadTargetSize',\n type: 'error',\n },\n {\n inputs: [],\n name: 'FairDeviation',\n type: 'error',\n },\n {\n inputs: [],\n name: 'InvariantBroken',\n type: 'error',\n },\n {\n inputs: [],\n name: 'LiquidatePostImrUnsafe',\n type: 'error',\n },\n {\n inputs: [\n {\n internalType: 'bool',\n name: 'noShortParty',\n type: 'bool',\n },\n {\n internalType: 'uint256',\n name: 'socialLoss',\n type: 'uint256',\n },\n ],\n name: 'NoCounterparty',\n type: 'error',\n },\n {\n inputs: [],\n name: 'OrderFull',\n type: 'error',\n },\n {\n inputs: [\n {\n internalType: 'uint256',\n name: 'amount',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'minAmount',\n type: 'uint256',\n },\n ],\n name: 'OrderImrUnsafe',\n type: 'error',\n },\n {\n inputs: [],\n name: 'OrderNotExist',\n type: 'error',\n },\n {\n inputs: [\n {\n internalType: 'int256',\n name: 'requested',\n type: 'int256',\n },\n {\n internalType: 'int256',\n name: 'taken',\n type: 'int256',\n },\n ],\n name: 'OrderNotFullyTaken',\n type: 'error',\n },\n {\n inputs: [],\n name: 'OrderOccupied',\n type: 'error',\n },\n {\n inputs: [],\n name: 'OrderTickUnaligned',\n type: 'error',\n },\n {\n inputs: [],\n name: 'OrderTooFar',\n type: 'error',\n },\n {\n inputs: [],\n name: 'OrderTrivial',\n type: 'error',\n },\n {\n inputs: [],\n name: 'OrderWrongSide',\n type: 'error',\n },\n {\n inputs: [],\n name: 'PositionBankrupt',\n type: 'error',\n },\n {\n inputs: [],\n name: 'PositionNotExist',\n type: 'error',\n },\n {\n inputs: [],\n name: 'RangeNotExist',\n type: 'error',\n },\n {\n inputs: [],\n name: 'ReuseNonEmptyRecord',\n type: 'error',\n },\n {\n inputs: [],\n name: 'TargetSafe',\n type: 'error',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'token',\n type: 'address',\n },\n ],\n name: 'GetErc20DecimalsFailed',\n type: 'error',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'token',\n type: 'address',\n },\n ],\n name: 'GetErc20NameFailed',\n type: 'error',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'token',\n type: 'address',\n },\n ],\n name: 'GetErc20SymbolFailed',\n type: 'error',\n },\n {\n inputs: [],\n name: 'AddInvalidTickDelta',\n type: 'error',\n },\n {\n inputs: [],\n name: 'AddSlippage',\n type: 'error',\n },\n {\n inputs: [\n {\n internalType: 'uint256',\n name: 'liquidity',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'minLiquidity',\n type: 'uint256',\n },\n ],\n name: 'AddTrivial',\n type: 'error',\n },\n {\n inputs: [],\n name: 'CrazySpot',\n type: 'error',\n },\n {\n inputs: [],\n name: 'ExpiryBelowSettlingDuration',\n type: 'error',\n },\n {\n inputs: [],\n name: 'ExpiryExceedMaxExpiryPeriod',\n type: 'error',\n },\n {\n inputs: [],\n name: 'RangeFull',\n type: 'error',\n },\n {\n inputs: [],\n name: 'RangeOccupied',\n type: 'error',\n },\n {\n inputs: [],\n name: 'RemoveActiveRange',\n type: 'error',\n },\n {\n inputs: [],\n name: 'RemoveSlippage',\n type: 'error',\n },\n {\n inputs: [],\n name: 'SqrtPX96OutOfBound',\n type: 'error',\n },\n {\n inputs: [],\n name: 'CrazyDeviation',\n type: 'error',\n },\n {\n inputs: [],\n name: 'DivUnderflow',\n type: 'error',\n },\n {\n inputs: [],\n name: 'ForbidNegativeAdjust',\n type: 'error',\n },\n {\n inputs: [],\n name: 'MulOverflow',\n type: 'error',\n },\n {\n inputs: [],\n name: 'TradeImrUnsafe',\n type: 'error',\n },\n {\n inputs: [],\n name: 'TradeMmrUnsafe',\n type: 'error',\n },\n {\n inputs: [],\n name: 'TradeOutOfLiquidity',\n type: 'error',\n },\n {\n inputs: [],\n name: 'TradeSlippage',\n type: 'error',\n },\n {\n inputs: [\n {\n internalType: 'uint16',\n name: 'stabilityFeeRatio',\n type: 'uint16',\n },\n {\n internalType: 'uint16',\n name: 'limitStabilityFeeRatio',\n type: 'uint16',\n },\n ],\n name: 'TradeStabilityFeeLimit',\n type: 'error',\n },\n {\n inputs: [],\n name: 'TradeTrivial',\n type: 'error',\n },\n];\nclass Instrument__factory {\n static createInterface() {\n return new ethers_1.utils.Interface(_abi);\n }\n static connect(address, signerOrProvider) {\n return new ethers_1.Contract(address, _abi, signerOrProvider);\n }\n}\nexports.Instrument__factory = Instrument__factory;\nInstrument__factory.abi = _abi;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MerkleDistributorWithDeadline__factory = void 0;\nconst ethers_1 = require(\"ethers\");\nconst _abi = [\n {\n inputs: [\n {\n internalType: 'address',\n name: 'token',\n type: 'address',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'constructor',\n },\n {\n inputs: [],\n name: 'AlreadyClaimed',\n type: 'error',\n },\n {\n inputs: [],\n name: 'ClaimWindowFinished',\n type: 'error',\n },\n {\n inputs: [],\n name: 'EndTimeInPast',\n type: 'error',\n },\n {\n inputs: [],\n name: 'InvalidProof',\n type: 'error',\n },\n {\n inputs: [],\n name: 'NotAdmin',\n type: 'error',\n },\n {\n inputs: [],\n name: 'NotOperator',\n type: 'error',\n },\n {\n inputs: [],\n name: 'RootNotSet',\n type: 'error',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'uint256',\n name: 'epoch',\n type: 'uint256',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'index',\n type: 'uint256',\n },\n {\n indexed: false,\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'amount',\n type: 'uint256',\n },\n ],\n name: 'Claimed',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'uint8',\n name: 'version',\n type: 'uint8',\n },\n ],\n name: 'Initialized',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'uint256',\n name: 'epoch',\n type: 'uint256',\n },\n {\n indexed: false,\n internalType: 'bytes32',\n name: 'root',\n type: 'bytes32',\n },\n ],\n name: 'MerkleRootSet',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n {\n indexed: true,\n internalType: 'bytes32',\n name: 'previousAdminRole',\n type: 'bytes32',\n },\n {\n indexed: true,\n internalType: 'bytes32',\n name: 'newAdminRole',\n type: 'bytes32',\n },\n ],\n name: 'RoleAdminChanged',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'sender',\n type: 'address',\n },\n ],\n name: 'RoleGranted',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'sender',\n type: 'address',\n },\n ],\n name: 'RoleRevoked',\n type: 'event',\n },\n {\n inputs: [],\n name: 'DEFAULT_ADMIN_ROLE',\n outputs: [\n {\n internalType: 'bytes32',\n name: '',\n type: 'bytes32',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'OPERATOR_ROLE',\n outputs: [\n {\n internalType: 'bytes32',\n name: '',\n type: 'bytes32',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint256',\n name: 'epoch',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'index',\n type: 'uint256',\n },\n {\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: 'amount',\n type: 'uint256',\n },\n {\n internalType: 'bytes32[]',\n name: 'merkleProof',\n type: 'bytes32[]',\n },\n ],\n name: 'claim',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'endTime',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'getAllOperators',\n outputs: [\n {\n internalType: 'address[]',\n name: '',\n type: 'address[]',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n ],\n name: 'getAllRoleMembers',\n outputs: [\n {\n internalType: 'address[]',\n name: '',\n type: 'address[]',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n ],\n name: 'getRoleAdmin',\n outputs: [\n {\n internalType: 'bytes32',\n name: '',\n type: 'bytes32',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n {\n internalType: 'uint256',\n name: 'index',\n type: 'uint256',\n },\n ],\n name: 'getRoleMember',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n ],\n name: 'getRoleMemberCount',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n {\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n ],\n name: 'grantRole',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n {\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n ],\n name: 'hasRole',\n outputs: [\n {\n internalType: 'bool',\n name: '',\n type: 'bool',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'admin',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: '_endTime',\n type: 'uint256',\n },\n ],\n name: 'initialize',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'user',\n type: 'address',\n },\n ],\n name: 'isAdmin',\n outputs: [\n {\n internalType: 'bool',\n name: '',\n type: 'bool',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint256',\n name: 'epoch',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'index',\n type: 'uint256',\n },\n ],\n name: 'isClaimed',\n outputs: [\n {\n internalType: 'bool',\n name: '',\n type: 'bool',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'user',\n type: 'address',\n },\n ],\n name: 'isOperator',\n outputs: [\n {\n internalType: 'bool',\n name: '',\n type: 'bool',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n name: 'merkleRoot',\n outputs: [\n {\n internalType: 'bytes32',\n name: '',\n type: 'bytes32',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes[]',\n name: 'data',\n type: 'bytes[]',\n },\n ],\n name: 'multicall',\n outputs: [\n {\n internalType: 'bytes[]',\n name: 'results',\n type: 'bytes[]',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n {\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n ],\n name: 'renounceRole',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n {\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n ],\n name: 'revokeRole',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint256',\n name: 'epoch',\n type: 'uint256',\n },\n {\n internalType: 'bytes32',\n name: 'root',\n type: 'bytes32',\n },\n ],\n name: 'setMerkleRoot',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes4',\n name: 'interfaceId',\n type: 'bytes4',\n },\n ],\n name: 'supportsInterface',\n outputs: [\n {\n internalType: 'bool',\n name: '',\n type: 'bool',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'token',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n];\nclass MerkleDistributorWithDeadline__factory {\n static createInterface() {\n return new ethers_1.utils.Interface(_abi);\n }\n static connect(address, signerOrProvider) {\n return new ethers_1.Contract(address, _abi, signerOrProvider);\n }\n}\nexports.MerkleDistributorWithDeadline__factory = MerkleDistributorWithDeadline__factory;\nMerkleDistributorWithDeadline__factory.abi = _abi;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Observer__factory = void 0;\nconst ethers_1 = require(\"ethers\");\nconst _abi = [\n {\n inputs: [\n {\n internalType: 'address',\n name: '_gate',\n type: 'address',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'constructor',\n },\n {\n inputs: [],\n name: 'TickOutOfBound',\n type: 'error',\n },\n {\n inputs: [],\n name: 'gate',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n {\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n internalType: 'address',\n name: 'target',\n type: 'address',\n },\n ],\n name: 'getAcc',\n outputs: [\n {\n components: [\n {\n internalType: 'uint48[]',\n name: 'oids',\n type: 'uint48[]',\n },\n {\n internalType: 'uint48[]',\n name: 'rids',\n type: 'uint48[]',\n },\n {\n components: [\n {\n internalType: 'int128',\n name: 'balance',\n type: 'int128',\n },\n {\n internalType: 'int128',\n name: 'size',\n type: 'int128',\n },\n {\n internalType: 'uint128',\n name: 'entryNotional',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'entrySocialLossIndex',\n type: 'uint128',\n },\n {\n internalType: 'int128',\n name: 'entryFundingIndex',\n type: 'int128',\n },\n ],\n internalType: 'struct Position',\n name: 'position',\n type: 'tuple',\n },\n {\n components: [\n {\n internalType: 'uint128',\n name: 'balance',\n type: 'uint128',\n },\n {\n internalType: 'int128',\n name: 'size',\n type: 'int128',\n },\n ],\n internalType: 'struct Order[]',\n name: 'orders',\n type: 'tuple[]',\n },\n {\n components: [\n {\n internalType: 'uint128',\n name: 'liquidity',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'entryFeeIndex',\n type: 'uint128',\n },\n {\n internalType: 'uint96',\n name: 'balance',\n type: 'uint96',\n },\n {\n internalType: 'uint160',\n name: 'sqrtEntryPX96',\n type: 'uint160',\n },\n ],\n internalType: 'struct Range[]',\n name: 'ranges',\n type: 'tuple[]',\n },\n {\n internalType: 'int256[]',\n name: 'ordersTaken',\n type: 'int256[]',\n },\n ],\n internalType: 'struct Portfolio',\n name: 'portfolio',\n type: 'tuple',\n },\n {\n components: [\n {\n internalType: 'uint32',\n name: 'timestamp',\n type: 'uint32',\n },\n {\n internalType: 'uint32',\n name: 'height',\n type: 'uint32',\n },\n ],\n internalType: 'struct BlockInfo',\n name: 'blockInfo',\n type: 'tuple',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n {\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n internalType: 'address',\n name: 'target',\n type: 'address',\n },\n ],\n name: 'getAccMeta',\n outputs: [\n {\n internalType: 'uint256',\n name: 'onumber',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'rnumber',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'getAllInstruments',\n outputs: [\n {\n components: [\n {\n internalType: 'address',\n name: 'instrumentAddr',\n type: 'address',\n },\n {\n internalType: 'string',\n name: 'symbol',\n type: 'string',\n },\n {\n internalType: 'address',\n name: 'market',\n type: 'address',\n },\n {\n components: [\n {\n internalType: 'enum FeederType',\n name: 'ftype',\n type: 'uint8',\n },\n {\n internalType: 'bool',\n name: 'isToken0Quote',\n type: 'bool',\n },\n {\n internalType: 'address',\n name: 'pair',\n type: 'address',\n },\n {\n internalType: 'uint64',\n name: 'scaler0',\n type: 'uint64',\n },\n {\n internalType: 'uint64',\n name: 'scaler1',\n type: 'uint64',\n },\n ],\n internalType: 'struct DexV2Feeder',\n name: 'dexV2Feeder',\n type: 'tuple',\n },\n {\n components: [\n {\n internalType: 'enum FeederType',\n name: 'ftype',\n type: 'uint8',\n },\n {\n internalType: 'uint64',\n name: 'scaler0',\n type: 'uint64',\n },\n {\n internalType: 'address',\n name: 'aggregator0',\n type: 'address',\n },\n {\n internalType: 'uint24',\n name: 'heartBeat0',\n type: 'uint24',\n },\n {\n internalType: 'uint64',\n name: 'scaler1',\n type: 'uint64',\n },\n {\n internalType: 'address',\n name: 'aggregator1',\n type: 'address',\n },\n {\n internalType: 'uint24',\n name: 'heartBeat1',\n type: 'uint24',\n },\n ],\n internalType: 'struct PriceFeeder',\n name: 'priceFeeder',\n type: 'tuple',\n },\n {\n internalType: 'uint16',\n name: 'initialMarginRatio',\n type: 'uint16',\n },\n {\n internalType: 'uint16',\n name: 'maintenanceMarginRatio',\n type: 'uint16',\n },\n {\n components: [\n {\n internalType: 'uint128',\n name: 'minMarginAmount',\n type: 'uint128',\n },\n {\n internalType: 'uint16',\n name: 'tradingFeeRatio',\n type: 'uint16',\n },\n {\n internalType: 'uint16',\n name: 'protocolFeeRatio',\n type: 'uint16',\n },\n {\n internalType: 'uint64',\n name: 'stabilityFeeRatioParam',\n type: 'uint64',\n },\n {\n internalType: 'enum QuoteType',\n name: 'qtype',\n type: 'uint8',\n },\n {\n internalType: 'uint128',\n name: 'tip',\n type: 'uint128',\n },\n ],\n internalType: 'struct QuoteParam',\n name: 'param',\n type: 'tuple',\n },\n {\n internalType: 'uint256',\n name: 'spotPrice',\n type: 'uint256',\n },\n {\n internalType: 'enum Condition',\n name: 'condition',\n type: 'uint8',\n },\n {\n components: [\n {\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n internalType: 'uint32',\n name: 'timestamp',\n type: 'uint32',\n },\n {\n internalType: 'enum Status',\n name: 'status',\n type: 'uint8',\n },\n {\n internalType: 'int24',\n name: 'tick',\n type: 'int24',\n },\n {\n internalType: 'uint160',\n name: 'sqrtPX96',\n type: 'uint160',\n },\n {\n internalType: 'uint128',\n name: 'liquidity',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'totalLiquidity',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'totalShort',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'openInterests',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'totalLong',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'involvedFund',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'feeIndex',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'protocolFee',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'longSocialLossIndex',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'shortSocialLossIndex',\n type: 'uint128',\n },\n {\n internalType: 'int128',\n name: 'longFundingIndex',\n type: 'int128',\n },\n {\n internalType: 'int128',\n name: 'shortFundingIndex',\n type: 'int128',\n },\n {\n internalType: 'uint128',\n name: 'insuranceFund',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'settlementPrice',\n type: 'uint128',\n },\n ],\n internalType: 'struct Amm[]',\n name: 'amms',\n type: 'tuple[]',\n },\n {\n internalType: 'uint256[]',\n name: 'markPrices',\n type: 'uint256[]',\n },\n ],\n internalType: 'struct AssembledInstrumentData[]',\n name: '',\n type: 'tuple[]',\n },\n {\n components: [\n {\n internalType: 'uint32',\n name: 'timestamp',\n type: 'uint32',\n },\n {\n internalType: 'uint32',\n name: 'height',\n type: 'uint32',\n },\n ],\n internalType: 'struct BlockInfo',\n name: '',\n type: 'tuple',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n {\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n ],\n name: 'getAmm',\n outputs: [\n {\n components: [\n {\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n internalType: 'uint32',\n name: 'timestamp',\n type: 'uint32',\n },\n {\n internalType: 'enum Status',\n name: 'status',\n type: 'uint8',\n },\n {\n internalType: 'int24',\n name: 'tick',\n type: 'int24',\n },\n {\n internalType: 'uint160',\n name: 'sqrtPX96',\n type: 'uint160',\n },\n {\n internalType: 'uint128',\n name: 'liquidity',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'totalLiquidity',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'totalShort',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'openInterests',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'totalLong',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'involvedFund',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'feeIndex',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'protocolFee',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'longSocialLossIndex',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'shortSocialLossIndex',\n type: 'uint128',\n },\n {\n internalType: 'int128',\n name: 'longFundingIndex',\n type: 'int128',\n },\n {\n internalType: 'int128',\n name: 'shortFundingIndex',\n type: 'int128',\n },\n {\n internalType: 'uint128',\n name: 'insuranceFund',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'settlementPrice',\n type: 'uint128',\n },\n ],\n internalType: 'struct Amm',\n name: '',\n type: 'tuple',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n components: [\n {\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n {\n internalType: 'uint32[]',\n name: 'expiries',\n type: 'uint32[]',\n },\n ],\n internalType: 'struct FetchInstrumentParam[]',\n name: 'params',\n type: 'tuple[]',\n },\n ],\n name: 'getInstrumentBatch',\n outputs: [\n {\n components: [\n {\n internalType: 'address',\n name: 'instrumentAddr',\n type: 'address',\n },\n {\n internalType: 'string',\n name: 'symbol',\n type: 'string',\n },\n {\n internalType: 'address',\n name: 'market',\n type: 'address',\n },\n {\n components: [\n {\n internalType: 'enum FeederType',\n name: 'ftype',\n type: 'uint8',\n },\n {\n internalType: 'bool',\n name: 'isToken0Quote',\n type: 'bool',\n },\n {\n internalType: 'address',\n name: 'pair',\n type: 'address',\n },\n {\n internalType: 'uint64',\n name: 'scaler0',\n type: 'uint64',\n },\n {\n internalType: 'uint64',\n name: 'scaler1',\n type: 'uint64',\n },\n ],\n internalType: 'struct DexV2Feeder',\n name: 'dexV2Feeder',\n type: 'tuple',\n },\n {\n components: [\n {\n internalType: 'enum FeederType',\n name: 'ftype',\n type: 'uint8',\n },\n {\n internalType: 'uint64',\n name: 'scaler0',\n type: 'uint64',\n },\n {\n internalType: 'address',\n name: 'aggregator0',\n type: 'address',\n },\n {\n internalType: 'uint24',\n name: 'heartBeat0',\n type: 'uint24',\n },\n {\n internalType: 'uint64',\n name: 'scaler1',\n type: 'uint64',\n },\n {\n internalType: 'address',\n name: 'aggregator1',\n type: 'address',\n },\n {\n internalType: 'uint24',\n name: 'heartBeat1',\n type: 'uint24',\n },\n ],\n internalType: 'struct PriceFeeder',\n name: 'priceFeeder',\n type: 'tuple',\n },\n {\n internalType: 'uint16',\n name: 'initialMarginRatio',\n type: 'uint16',\n },\n {\n internalType: 'uint16',\n name: 'maintenanceMarginRatio',\n type: 'uint16',\n },\n {\n components: [\n {\n internalType: 'uint128',\n name: 'minMarginAmount',\n type: 'uint128',\n },\n {\n internalType: 'uint16',\n name: 'tradingFeeRatio',\n type: 'uint16',\n },\n {\n internalType: 'uint16',\n name: 'protocolFeeRatio',\n type: 'uint16',\n },\n {\n internalType: 'uint64',\n name: 'stabilityFeeRatioParam',\n type: 'uint64',\n },\n {\n internalType: 'enum QuoteType',\n name: 'qtype',\n type: 'uint8',\n },\n {\n internalType: 'uint128',\n name: 'tip',\n type: 'uint128',\n },\n ],\n internalType: 'struct QuoteParam',\n name: 'param',\n type: 'tuple',\n },\n {\n internalType: 'uint256',\n name: 'spotPrice',\n type: 'uint256',\n },\n {\n internalType: 'enum Condition',\n name: 'condition',\n type: 'uint8',\n },\n {\n components: [\n {\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n internalType: 'uint32',\n name: 'timestamp',\n type: 'uint32',\n },\n {\n internalType: 'enum Status',\n name: 'status',\n type: 'uint8',\n },\n {\n internalType: 'int24',\n name: 'tick',\n type: 'int24',\n },\n {\n internalType: 'uint160',\n name: 'sqrtPX96',\n type: 'uint160',\n },\n {\n internalType: 'uint128',\n name: 'liquidity',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'totalLiquidity',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'totalShort',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'openInterests',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'totalLong',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'involvedFund',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'feeIndex',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'protocolFee',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'longSocialLossIndex',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'shortSocialLossIndex',\n type: 'uint128',\n },\n {\n internalType: 'int128',\n name: 'longFundingIndex',\n type: 'int128',\n },\n {\n internalType: 'int128',\n name: 'shortFundingIndex',\n type: 'int128',\n },\n {\n internalType: 'uint128',\n name: 'insuranceFund',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'settlementPrice',\n type: 'uint128',\n },\n ],\n internalType: 'struct Amm[]',\n name: 'amms',\n type: 'tuple[]',\n },\n {\n internalType: 'uint256[]',\n name: 'markPrices',\n type: 'uint256[]',\n },\n ],\n internalType: 'struct AssembledInstrumentData[]',\n name: '',\n type: 'tuple[]',\n },\n {\n components: [\n {\n internalType: 'uint32',\n name: 'timestamp',\n type: 'uint32',\n },\n {\n internalType: 'uint32',\n name: 'height',\n type: 'uint32',\n },\n ],\n internalType: 'struct BlockInfo',\n name: '',\n type: 'tuple',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address[]',\n name: 'instrumentList',\n type: 'address[]',\n },\n ],\n name: 'getInstrumentByAddressList',\n outputs: [\n {\n components: [\n {\n internalType: 'address',\n name: 'instrumentAddr',\n type: 'address',\n },\n {\n internalType: 'string',\n name: 'symbol',\n type: 'string',\n },\n {\n internalType: 'address',\n name: 'market',\n type: 'address',\n },\n {\n components: [\n {\n internalType: 'enum FeederType',\n name: 'ftype',\n type: 'uint8',\n },\n {\n internalType: 'bool',\n name: 'isToken0Quote',\n type: 'bool',\n },\n {\n internalType: 'address',\n name: 'pair',\n type: 'address',\n },\n {\n internalType: 'uint64',\n name: 'scaler0',\n type: 'uint64',\n },\n {\n internalType: 'uint64',\n name: 'scaler1',\n type: 'uint64',\n },\n ],\n internalType: 'struct DexV2Feeder',\n name: 'dexV2Feeder',\n type: 'tuple',\n },\n {\n components: [\n {\n internalType: 'enum FeederType',\n name: 'ftype',\n type: 'uint8',\n },\n {\n internalType: 'uint64',\n name: 'scaler0',\n type: 'uint64',\n },\n {\n internalType: 'address',\n name: 'aggregator0',\n type: 'address',\n },\n {\n internalType: 'uint24',\n name: 'heartBeat0',\n type: 'uint24',\n },\n {\n internalType: 'uint64',\n name: 'scaler1',\n type: 'uint64',\n },\n {\n internalType: 'address',\n name: 'aggregator1',\n type: 'address',\n },\n {\n internalType: 'uint24',\n name: 'heartBeat1',\n type: 'uint24',\n },\n ],\n internalType: 'struct PriceFeeder',\n name: 'priceFeeder',\n type: 'tuple',\n },\n {\n internalType: 'uint16',\n name: 'initialMarginRatio',\n type: 'uint16',\n },\n {\n internalType: 'uint16',\n name: 'maintenanceMarginRatio',\n type: 'uint16',\n },\n {\n components: [\n {\n internalType: 'uint128',\n name: 'minMarginAmount',\n type: 'uint128',\n },\n {\n internalType: 'uint16',\n name: 'tradingFeeRatio',\n type: 'uint16',\n },\n {\n internalType: 'uint16',\n name: 'protocolFeeRatio',\n type: 'uint16',\n },\n {\n internalType: 'uint64',\n name: 'stabilityFeeRatioParam',\n type: 'uint64',\n },\n {\n internalType: 'enum QuoteType',\n name: 'qtype',\n type: 'uint8',\n },\n {\n internalType: 'uint128',\n name: 'tip',\n type: 'uint128',\n },\n ],\n internalType: 'struct QuoteParam',\n name: 'param',\n type: 'tuple',\n },\n {\n internalType: 'uint256',\n name: 'spotPrice',\n type: 'uint256',\n },\n {\n internalType: 'enum Condition',\n name: 'condition',\n type: 'uint8',\n },\n {\n components: [\n {\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n internalType: 'uint32',\n name: 'timestamp',\n type: 'uint32',\n },\n {\n internalType: 'enum Status',\n name: 'status',\n type: 'uint8',\n },\n {\n internalType: 'int24',\n name: 'tick',\n type: 'int24',\n },\n {\n internalType: 'uint160',\n name: 'sqrtPX96',\n type: 'uint160',\n },\n {\n internalType: 'uint128',\n name: 'liquidity',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'totalLiquidity',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'totalShort',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'openInterests',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'totalLong',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'involvedFund',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'feeIndex',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'protocolFee',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'longSocialLossIndex',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'shortSocialLossIndex',\n type: 'uint128',\n },\n {\n internalType: 'int128',\n name: 'longFundingIndex',\n type: 'int128',\n },\n {\n internalType: 'int128',\n name: 'shortFundingIndex',\n type: 'int128',\n },\n {\n internalType: 'uint128',\n name: 'insuranceFund',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'settlementPrice',\n type: 'uint128',\n },\n ],\n internalType: 'struct Amm[]',\n name: 'amms',\n type: 'tuple[]',\n },\n {\n internalType: 'uint256[]',\n name: 'markPrices',\n type: 'uint256[]',\n },\n ],\n internalType: 'struct AssembledInstrumentData[]',\n name: '',\n type: 'tuple[]',\n },\n {\n components: [\n {\n internalType: 'uint32',\n name: 'timestamp',\n type: 'uint32',\n },\n {\n internalType: 'uint32',\n name: 'height',\n type: 'uint32',\n },\n ],\n internalType: 'struct BlockInfo',\n name: '',\n type: 'tuple',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n {\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n internalType: 'int24',\n name: 'tick',\n type: 'int24',\n },\n {\n internalType: 'bool',\n name: 'right',\n type: 'bool',\n },\n ],\n name: 'getNextInitializedTickOutside',\n outputs: [\n {\n internalType: 'int24',\n name: '',\n type: 'int24',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n {\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n internalType: 'address',\n name: 'target',\n type: 'address',\n },\n ],\n name: 'getOrderIndexes',\n outputs: [\n {\n internalType: 'uint48[]',\n name: '',\n type: 'uint48[]',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n {\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n internalType: 'address',\n name: 'target',\n type: 'address',\n },\n {\n internalType: 'uint48[]',\n name: 'oids',\n type: 'uint48[]',\n },\n ],\n name: 'getOrders',\n outputs: [\n {\n components: [\n {\n internalType: 'uint128',\n name: 'balance',\n type: 'uint128',\n },\n {\n internalType: 'int128',\n name: 'size',\n type: 'int128',\n },\n ],\n internalType: 'struct Order[]',\n name: '',\n type: 'tuple[]',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n {\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n internalType: 'int24[]',\n name: 'tids',\n type: 'int24[]',\n },\n ],\n name: 'getPearls',\n outputs: [\n {\n components: [\n {\n internalType: 'uint128',\n name: 'liquidityGross',\n type: 'uint128',\n },\n {\n internalType: 'int128',\n name: 'liquidityNet',\n type: 'int128',\n },\n {\n internalType: 'uint24',\n name: 'nonce',\n type: 'uint24',\n },\n {\n internalType: 'int96',\n name: 'left',\n type: 'int96',\n },\n {\n internalType: 'int96',\n name: 'taken',\n type: 'int96',\n },\n {\n internalType: 'uint128',\n name: 'fee',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'entrySocialLossIndex',\n type: 'uint128',\n },\n {\n internalType: 'int128',\n name: 'entryFundingIndex',\n type: 'int128',\n },\n ],\n internalType: 'struct Pearl[]',\n name: '',\n type: 'tuple[]',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address[]',\n name: 'quotes',\n type: 'address[]',\n },\n {\n internalType: 'address',\n name: 'trader',\n type: 'address',\n },\n ],\n name: 'getPendings',\n outputs: [\n {\n components: [\n {\n internalType: 'uint32',\n name: 'timestamp',\n type: 'uint32',\n },\n {\n internalType: 'bool',\n name: 'native',\n type: 'bool',\n },\n {\n internalType: 'uint96',\n name: 'amount',\n type: 'uint96',\n },\n {\n internalType: 'uint120',\n name: 'exemption',\n type: 'uint120',\n },\n ],\n internalType: 'struct Pending[]',\n name: 'pendings',\n type: 'tuple[]',\n },\n {\n components: [\n {\n internalType: 'uint32',\n name: 'timestamp',\n type: 'uint32',\n },\n {\n internalType: 'uint32',\n name: 'height',\n type: 'uint32',\n },\n ],\n internalType: 'struct BlockInfo',\n name: 'blockInfo',\n type: 'tuple',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'target',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n ],\n name: 'getPortfolios',\n outputs: [\n {\n internalType: 'uint32[]',\n name: 'expiries',\n type: 'uint32[]',\n },\n {\n components: [\n {\n internalType: 'uint48[]',\n name: 'oids',\n type: 'uint48[]',\n },\n {\n internalType: 'uint48[]',\n name: 'rids',\n type: 'uint48[]',\n },\n {\n components: [\n {\n internalType: 'int128',\n name: 'balance',\n type: 'int128',\n },\n {\n internalType: 'int128',\n name: 'size',\n type: 'int128',\n },\n {\n internalType: 'uint128',\n name: 'entryNotional',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'entrySocialLossIndex',\n type: 'uint128',\n },\n {\n internalType: 'int128',\n name: 'entryFundingIndex',\n type: 'int128',\n },\n ],\n internalType: 'struct Position',\n name: 'position',\n type: 'tuple',\n },\n {\n components: [\n {\n internalType: 'uint128',\n name: 'balance',\n type: 'uint128',\n },\n {\n internalType: 'int128',\n name: 'size',\n type: 'int128',\n },\n ],\n internalType: 'struct Order[]',\n name: 'orders',\n type: 'tuple[]',\n },\n {\n components: [\n {\n internalType: 'uint128',\n name: 'liquidity',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'entryFeeIndex',\n type: 'uint128',\n },\n {\n internalType: 'uint96',\n name: 'balance',\n type: 'uint96',\n },\n {\n internalType: 'uint160',\n name: 'sqrtEntryPX96',\n type: 'uint160',\n },\n ],\n internalType: 'struct Range[]',\n name: 'ranges',\n type: 'tuple[]',\n },\n {\n internalType: 'int256[]',\n name: 'ordersTaken',\n type: 'int256[]',\n },\n ],\n internalType: 'struct Portfolio[]',\n name: 'portfolios',\n type: 'tuple[]',\n },\n {\n components: [\n {\n internalType: 'uint32',\n name: 'timestamp',\n type: 'uint32',\n },\n {\n internalType: 'uint32',\n name: 'height',\n type: 'uint32',\n },\n ],\n internalType: 'struct BlockInfo',\n name: 'blockInfo',\n type: 'tuple',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n {\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n internalType: 'address',\n name: 'target',\n type: 'address',\n },\n ],\n name: 'getPosition',\n outputs: [\n {\n components: [\n {\n internalType: 'int128',\n name: 'balance',\n type: 'int128',\n },\n {\n internalType: 'int128',\n name: 'size',\n type: 'int128',\n },\n {\n internalType: 'uint128',\n name: 'entryNotional',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'entrySocialLossIndex',\n type: 'uint128',\n },\n {\n internalType: 'int128',\n name: 'entryFundingIndex',\n type: 'int128',\n },\n ],\n internalType: 'struct Position',\n name: '',\n type: 'tuple',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n ],\n name: 'getQuoteParam',\n outputs: [\n {\n components: [\n {\n internalType: 'uint128',\n name: 'minMarginAmount',\n type: 'uint128',\n },\n {\n internalType: 'uint16',\n name: 'tradingFeeRatio',\n type: 'uint16',\n },\n {\n internalType: 'uint16',\n name: 'protocolFeeRatio',\n type: 'uint16',\n },\n {\n internalType: 'uint64',\n name: 'stabilityFeeRatioParam',\n type: 'uint64',\n },\n {\n internalType: 'enum QuoteType',\n name: 'qtype',\n type: 'uint8',\n },\n {\n internalType: 'uint128',\n name: 'tip',\n type: 'uint128',\n },\n ],\n internalType: 'struct QuoteParam',\n name: '',\n type: 'tuple',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n {\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n internalType: 'address',\n name: 'target',\n type: 'address',\n },\n ],\n name: 'getRangeIndexes',\n outputs: [\n {\n internalType: 'uint48[]',\n name: '',\n type: 'uint48[]',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n {\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n internalType: 'address',\n name: 'target',\n type: 'address',\n },\n {\n internalType: 'uint48[]',\n name: 'rids',\n type: 'uint48[]',\n },\n ],\n name: 'getRanges',\n outputs: [\n {\n components: [\n {\n internalType: 'uint128',\n name: 'liquidity',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'entryFeeIndex',\n type: 'uint128',\n },\n {\n internalType: 'uint96',\n name: 'balance',\n type: 'uint96',\n },\n {\n internalType: 'uint160',\n name: 'sqrtEntryPX96',\n type: 'uint160',\n },\n ],\n internalType: 'struct Range[]',\n name: '',\n type: 'tuple[]',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n {\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n internalType: 'int24[]',\n name: 'tids',\n type: 'int24[]',\n },\n {\n internalType: 'uint24[]',\n name: 'nonces',\n type: 'uint24[]',\n },\n ],\n name: 'getRecords',\n outputs: [\n {\n components: [\n {\n internalType: 'int128',\n name: 'taken',\n type: 'int128',\n },\n {\n internalType: 'uint128',\n name: 'fee',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'entrySocialLossIndex',\n type: 'uint128',\n },\n {\n internalType: 'int128',\n name: 'entryFundingIndex',\n type: 'int128',\n },\n ],\n internalType: 'struct Record[]',\n name: '',\n type: 'tuple[]',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n ],\n name: 'getSetting',\n outputs: [\n {\n components: [\n {\n internalType: 'string',\n name: 'symbol',\n type: 'string',\n },\n {\n internalType: 'address',\n name: 'config',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'gate',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'market',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'quote',\n type: 'address',\n },\n {\n internalType: 'uint8',\n name: 'decimals',\n type: 'uint8',\n },\n {\n internalType: 'uint16',\n name: 'initialMarginRatio',\n type: 'uint16',\n },\n {\n internalType: 'uint16',\n name: 'maintenanceMarginRatio',\n type: 'uint16',\n },\n {\n components: [\n {\n internalType: 'uint128',\n name: 'minMarginAmount',\n type: 'uint128',\n },\n {\n internalType: 'uint16',\n name: 'tradingFeeRatio',\n type: 'uint16',\n },\n {\n internalType: 'uint16',\n name: 'protocolFeeRatio',\n type: 'uint16',\n },\n {\n internalType: 'uint64',\n name: 'stabilityFeeRatioParam',\n type: 'uint64',\n },\n {\n internalType: 'enum QuoteType',\n name: 'qtype',\n type: 'uint8',\n },\n {\n internalType: 'uint128',\n name: 'tip',\n type: 'uint128',\n },\n ],\n internalType: 'struct QuoteParam',\n name: 'param',\n type: 'tuple',\n },\n ],\n internalType: 'struct Setting',\n name: '',\n type: 'tuple',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n {\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n internalType: 'int16[]',\n name: 'tbids',\n type: 'int16[]',\n },\n ],\n name: 'getTickBitmaps',\n outputs: [\n {\n internalType: 'uint256[]',\n name: '',\n type: 'uint256[]',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'target',\n type: 'address',\n },\n {\n internalType: 'address[]',\n name: 'quotes',\n type: 'address[]',\n },\n ],\n name: 'getVaultBalances',\n outputs: [\n {\n internalType: 'uint256[]',\n name: '',\n type: 'uint256[]',\n },\n {\n components: [\n {\n internalType: 'uint32',\n name: 'timestamp',\n type: 'uint32',\n },\n {\n internalType: 'uint32',\n name: 'height',\n type: 'uint32',\n },\n ],\n internalType: 'struct BlockInfo',\n name: '',\n type: 'tuple',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n {\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n internalType: 'uint256',\n name: 'notional',\n type: 'uint256',\n },\n {\n internalType: 'bool',\n name: 'long',\n type: 'bool',\n },\n ],\n name: 'inquireByNotional',\n outputs: [\n {\n internalType: 'int256',\n name: 'size',\n type: 'int256',\n },\n {\n components: [\n {\n internalType: 'uint256',\n name: 'benchmark',\n type: 'uint256',\n },\n {\n internalType: 'uint160',\n name: 'sqrtFairPX96',\n type: 'uint160',\n },\n {\n internalType: 'int24',\n name: 'tick',\n type: 'int24',\n },\n {\n internalType: 'uint256',\n name: 'mark',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'entryNotional',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'fee',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'minAmount',\n type: 'uint256',\n },\n {\n internalType: 'uint160',\n name: 'sqrtPostFairPX96',\n type: 'uint160',\n },\n {\n internalType: 'int24',\n name: 'postTick',\n type: 'int24',\n },\n ],\n internalType: 'struct Quotation',\n name: 'quotation',\n type: 'tuple',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n {\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n internalType: 'int24',\n name: 'tick',\n type: 'int24',\n },\n ],\n name: 'inquireByTick',\n outputs: [\n {\n internalType: 'int256',\n name: 'size',\n type: 'int256',\n },\n {\n components: [\n {\n internalType: 'uint256',\n name: 'benchmark',\n type: 'uint256',\n },\n {\n internalType: 'uint160',\n name: 'sqrtFairPX96',\n type: 'uint160',\n },\n {\n internalType: 'int24',\n name: 'tick',\n type: 'int24',\n },\n {\n internalType: 'uint256',\n name: 'mark',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'entryNotional',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'fee',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'minAmount',\n type: 'uint256',\n },\n {\n internalType: 'uint160',\n name: 'sqrtPostFairPX96',\n type: 'uint160',\n },\n {\n internalType: 'int24',\n name: 'postTick',\n type: 'int24',\n },\n ],\n internalType: 'struct Quotation',\n name: 'quotation',\n type: 'tuple',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'base',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'quote',\n type: 'address',\n },\n ],\n name: 'inspectMaxReserveDexV2Pair',\n outputs: [\n {\n internalType: 'address',\n name: 'maxReservePair',\n type: 'address',\n },\n {\n internalType: 'uint112',\n name: 'reserve0',\n type: 'uint112',\n },\n {\n internalType: 'uint112',\n name: 'reserve1',\n type: 'uint112',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n {\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n internalType: 'uint24',\n name: 'tickDelta',\n type: 'uint24',\n },\n ],\n name: 'liquidityDetails',\n outputs: [\n {\n components: [\n {\n internalType: 'uint160',\n name: 'sqrtPX96',\n type: 'uint160',\n },\n {\n internalType: 'int24',\n name: 'tick',\n type: 'int24',\n },\n {\n internalType: 'uint256',\n name: 'liquidity',\n type: 'uint256',\n },\n ],\n internalType: 'struct CurveState',\n name: 'amm',\n type: 'tuple',\n },\n {\n internalType: 'int24[]',\n name: 'tids',\n type: 'int24[]',\n },\n {\n components: [\n {\n internalType: 'int128',\n name: 'liquidityNet',\n type: 'int128',\n },\n {\n internalType: 'int96',\n name: 'left',\n type: 'int96',\n },\n ],\n internalType: 'struct MinimalPearl[]',\n name: 'pearls',\n type: 'tuple[]',\n },\n {\n components: [\n {\n internalType: 'uint32',\n name: 'timestamp',\n type: 'uint32',\n },\n {\n internalType: 'uint32',\n name: 'height',\n type: 'uint32',\n },\n ],\n internalType: 'struct BlockInfo',\n name: 'blockInfo',\n type: 'tuple',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n {\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n internalType: 'uint256',\n name: 'notional',\n type: 'uint256',\n },\n {\n internalType: 'bool',\n name: 'long',\n type: 'bool',\n },\n ],\n name: 'sizeByNotional',\n outputs: [\n {\n internalType: 'int256',\n name: '',\n type: 'int256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n {\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n internalType: 'int24',\n name: 'destTick',\n type: 'int24',\n },\n ],\n name: 'sizeToTick',\n outputs: [\n {\n internalType: 'int256',\n name: '',\n type: 'int256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n];\nclass Observer__factory {\n static createInterface() {\n return new ethers_1.utils.Interface(_abi);\n }\n static connect(address, signerOrProvider) {\n return new ethers_1.Contract(address, _abi, signerOrProvider);\n }\n}\nexports.Observer__factory = Observer__factory;\nObserver__factory.abi = _abi;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PythFeederFactory__factory = void 0;\nconst ethers_1 = require(\"ethers\");\nconst _abi = [\n {\n inputs: [\n {\n internalType: 'address',\n name: '_pyth',\n type: 'address',\n },\n {\n internalType: 'address',\n name: '_guardian',\n type: 'address',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'constructor',\n },\n {\n inputs: [],\n name: 'FeederAlreadyCreated',\n type: 'error',\n },\n {\n inputs: [],\n name: 'FeederNotCreated',\n type: 'error',\n },\n {\n inputs: [],\n name: 'InvalidInput',\n type: 'error',\n },\n {\n inputs: [],\n name: 'InvalidLength',\n type: 'error',\n },\n {\n inputs: [],\n name: 'NotAdmin',\n type: 'error',\n },\n {\n inputs: [],\n name: 'NotOperator',\n type: 'error',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'feeder',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'bytes32',\n name: 'symbolHash',\n type: 'bytes32',\n },\n ],\n name: 'FeederCreated',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'uint8',\n name: 'version',\n type: 'uint8',\n },\n ],\n name: 'Initialized',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n {\n indexed: true,\n internalType: 'bytes32',\n name: 'previousAdminRole',\n type: 'bytes32',\n },\n {\n indexed: true,\n internalType: 'bytes32',\n name: 'newAdminRole',\n type: 'bytes32',\n },\n ],\n name: 'RoleAdminChanged',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'sender',\n type: 'address',\n },\n ],\n name: 'RoleGranted',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'sender',\n type: 'address',\n },\n ],\n name: 'RoleRevoked',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'address',\n name: 'pyth',\n type: 'address',\n },\n ],\n name: 'SetPythAddress',\n type: 'event',\n },\n {\n inputs: [],\n name: 'DEFAULT_ADMIN_ROLE',\n outputs: [\n {\n internalType: 'bytes32',\n name: '',\n type: 'bytes32',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'OPERATOR_ROLE',\n outputs: [\n {\n internalType: 'bytes32',\n name: '',\n type: 'bytes32',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n name: 'allFeeders',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'baseIndex',\n type: 'bytes32',\n },\n ],\n name: 'baseIndexToFeeder',\n outputs: [\n {\n internalType: 'address',\n name: 'feeder',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32[]',\n name: 'baseIndexes',\n type: 'bytes32[]',\n },\n {\n internalType: 'bytes32[]',\n name: 'ids',\n type: 'bytes32[]',\n },\n ],\n name: 'batchCreateFeeder',\n outputs: [\n {\n internalType: 'address[]',\n name: 'newFeeders',\n type: 'address[]',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32[]',\n name: 'baseIndexes',\n type: 'bytes32[]',\n },\n ],\n name: 'batchGetPrice',\n outputs: [\n {\n internalType: 'uint128[]',\n name: 'prices',\n type: 'uint128[]',\n },\n {\n internalType: 'uint32[]',\n name: 'timestamps',\n type: 'uint32[]',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'beacon',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'baseIndex',\n type: 'bytes32',\n },\n {\n internalType: 'bytes32',\n name: 'id',\n type: 'bytes32',\n },\n ],\n name: 'createFeeder',\n outputs: [\n {\n internalType: 'address',\n name: 'newFeeder',\n type: 'address',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'feeder',\n type: 'address',\n },\n ],\n name: 'feederToBaseIndex',\n outputs: [\n {\n internalType: 'bytes32',\n name: 'baseIndex',\n type: 'bytes32',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'getAllFeeders',\n outputs: [\n {\n internalType: 'address[]',\n name: '',\n type: 'address[]',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'getAllFeedersLength',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'getAllIndexes',\n outputs: [\n {\n internalType: 'bytes32[]',\n name: '',\n type: 'bytes32[]',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'baseIndex',\n type: 'bytes32',\n },\n ],\n name: 'getPrice',\n outputs: [\n {\n internalType: 'uint128',\n name: 'price',\n type: 'uint128',\n },\n {\n internalType: 'uint32',\n name: 'timestamp',\n type: 'uint32',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n ],\n name: 'getRoleAdmin',\n outputs: [\n {\n internalType: 'bytes32',\n name: '',\n type: 'bytes32',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n {\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n ],\n name: 'grantRole',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'guardian',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n {\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n ],\n name: 'hasRole',\n outputs: [\n {\n internalType: 'bool',\n name: '',\n type: 'bool',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'admin',\n type: 'address',\n },\n {\n internalType: 'address[]',\n name: 'operators',\n type: 'address[]',\n },\n ],\n name: 'initialize',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'pyth',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n {\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n ],\n name: 'renounceRole',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n {\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n ],\n name: 'revokeRole',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'baseIndex',\n type: 'bytes32',\n },\n {\n internalType: 'bytes32',\n name: '_id',\n type: 'bytes32',\n },\n ],\n name: 'setPythFeederId',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes4',\n name: 'interfaceId',\n type: 'bytes4',\n },\n ],\n name: 'supportsInterface',\n outputs: [\n {\n internalType: 'bool',\n name: '',\n type: 'bool',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n];\nclass PythFeederFactory__factory {\n static createInterface() {\n return new ethers_1.utils.Interface(_abi);\n }\n static connect(address, signerOrProvider) {\n return new ethers_1.Contract(address, _abi, signerOrProvider);\n }\n}\nexports.PythFeederFactory__factory = PythFeederFactory__factory;\nPythFeederFactory__factory.abi = _abi;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PythFeeder__factory = void 0;\nconst ethers_1 = require(\"ethers\");\nconst _abi = [\n {\n inputs: [\n {\n internalType: 'address',\n name: '_factory',\n type: 'address',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'constructor',\n },\n {\n inputs: [],\n name: 'InvalidPythData',\n type: 'error',\n },\n {\n inputs: [],\n name: 'NotRegistry',\n type: 'error',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'uint8',\n name: 'version',\n type: 'uint8',\n },\n ],\n name: 'Initialized',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'bytes32',\n name: 'id',\n type: 'bytes32',\n },\n ],\n name: 'SetPythFeederId',\n type: 'event',\n },\n {\n inputs: [],\n name: 'decimals',\n outputs: [\n {\n internalType: 'uint8',\n name: '',\n type: 'uint8',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'factory',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'id',\n outputs: [\n {\n internalType: 'bytes32',\n name: '',\n type: 'bytes32',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: '_id',\n type: 'bytes32',\n },\n {\n internalType: 'address',\n name: 'guardian',\n type: 'address',\n },\n ],\n name: 'initialize',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'latestRoundData',\n outputs: [\n {\n internalType: 'uint80',\n name: 'roundId',\n type: 'uint80',\n },\n {\n internalType: 'int256',\n name: 'answer',\n type: 'int256',\n },\n {\n internalType: 'uint256',\n name: 'startedAt',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'updatedAt',\n type: 'uint256',\n },\n {\n internalType: 'uint80',\n name: 'answeredInRound',\n type: 'uint80',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: '_id',\n type: 'bytes32',\n },\n ],\n name: 'setPythFeederId',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n];\nclass PythFeeder__factory {\n static createInterface() {\n return new ethers_1.utils.Interface(_abi);\n }\n static connect(address, signerOrProvider) {\n return new ethers_1.Contract(address, _abi, signerOrProvider);\n }\n}\nexports.PythFeeder__factory = PythFeeder__factory;\nPythFeeder__factory.abi = _abi;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PythFeederFactory__factory = exports.PythFeeder__factory = exports.Observer__factory = exports.MerkleDistributorWithDeadline__factory = exports.Instrument__factory = exports.ICexPriceFeeder__factory = exports.Guardian__factory = exports.Gate__factory = exports.EmergingFeederFactory__factory = exports.EmergingFeeder__factory = exports.DexV2Market__factory = exports.Config__factory = exports.CexMarket__factory = exports.Beacon__factory = void 0;\nvar Beacon__factory_1 = require(\"./Beacon__factory\");\nObject.defineProperty(exports, \"Beacon__factory\", { enumerable: true, get: function () { return Beacon__factory_1.Beacon__factory; } });\nvar CexMarket__factory_1 = require(\"./CexMarket__factory\");\nObject.defineProperty(exports, \"CexMarket__factory\", { enumerable: true, get: function () { return CexMarket__factory_1.CexMarket__factory; } });\nvar Config__factory_1 = require(\"./Config__factory\");\nObject.defineProperty(exports, \"Config__factory\", { enumerable: true, get: function () { return Config__factory_1.Config__factory; } });\nvar DexV2Market__factory_1 = require(\"./DexV2Market__factory\");\nObject.defineProperty(exports, \"DexV2Market__factory\", { enumerable: true, get: function () { return DexV2Market__factory_1.DexV2Market__factory; } });\nvar EmergingFeeder__factory_1 = require(\"./EmergingFeeder__factory\");\nObject.defineProperty(exports, \"EmergingFeeder__factory\", { enumerable: true, get: function () { return EmergingFeeder__factory_1.EmergingFeeder__factory; } });\nvar EmergingFeederFactory__factory_1 = require(\"./EmergingFeederFactory__factory\");\nObject.defineProperty(exports, \"EmergingFeederFactory__factory\", { enumerable: true, get: function () { return EmergingFeederFactory__factory_1.EmergingFeederFactory__factory; } });\nvar Gate__factory_1 = require(\"./Gate__factory\");\nObject.defineProperty(exports, \"Gate__factory\", { enumerable: true, get: function () { return Gate__factory_1.Gate__factory; } });\nvar Guardian__factory_1 = require(\"./Guardian__factory\");\nObject.defineProperty(exports, \"Guardian__factory\", { enumerable: true, get: function () { return Guardian__factory_1.Guardian__factory; } });\nvar ICexPriceFeeder__factory_1 = require(\"./ICexPriceFeeder__factory\");\nObject.defineProperty(exports, \"ICexPriceFeeder__factory\", { enumerable: true, get: function () { return ICexPriceFeeder__factory_1.ICexPriceFeeder__factory; } });\nvar Instrument__factory_1 = require(\"./Instrument__factory\");\nObject.defineProperty(exports, \"Instrument__factory\", { enumerable: true, get: function () { return Instrument__factory_1.Instrument__factory; } });\nvar MerkleDistributorWithDeadline__factory_1 = require(\"./MerkleDistributorWithDeadline__factory\");\nObject.defineProperty(exports, \"MerkleDistributorWithDeadline__factory\", { enumerable: true, get: function () { return MerkleDistributorWithDeadline__factory_1.MerkleDistributorWithDeadline__factory; } });\nvar Observer__factory_1 = require(\"./Observer__factory\");\nObject.defineProperty(exports, \"Observer__factory\", { enumerable: true, get: function () { return Observer__factory_1.Observer__factory; } });\nvar PythFeeder__factory_1 = require(\"./PythFeeder__factory\");\nObject.defineProperty(exports, \"PythFeeder__factory\", { enumerable: true, get: function () { return PythFeeder__factory_1.PythFeeder__factory; } });\nvar PythFeederFactory__factory_1 = require(\"./PythFeederFactory__factory\");\nObject.defineProperty(exports, \"PythFeederFactory__factory\", { enumerable: true, get: function () { return PythFeederFactory__factory_1.PythFeederFactory__factory; } });\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || (function () {\n var ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n };\n return function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PythFeederFactory__factory = exports.PythFeeder__factory = exports.Observer__factory = exports.MerkleDistributorWithDeadline__factory = exports.Instrument__factory = exports.ICexPriceFeeder__factory = exports.Guardian__factory = exports.Gate__factory = exports.EmergingFeederFactory__factory = exports.EmergingFeeder__factory = exports.DexV2Market__factory = exports.Config__factory = exports.CexMarket__factory = exports.Beacon__factory = exports.factories = void 0;\nexports.factories = __importStar(require(\"./factories\"));\nvar Beacon__factory_1 = require(\"./factories/Beacon__factory\");\nObject.defineProperty(exports, \"Beacon__factory\", { enumerable: true, get: function () { return Beacon__factory_1.Beacon__factory; } });\nvar CexMarket__factory_1 = require(\"./factories/CexMarket__factory\");\nObject.defineProperty(exports, \"CexMarket__factory\", { enumerable: true, get: function () { return CexMarket__factory_1.CexMarket__factory; } });\nvar Config__factory_1 = require(\"./factories/Config__factory\");\nObject.defineProperty(exports, \"Config__factory\", { enumerable: true, get: function () { return Config__factory_1.Config__factory; } });\nvar DexV2Market__factory_1 = require(\"./factories/DexV2Market__factory\");\nObject.defineProperty(exports, \"DexV2Market__factory\", { enumerable: true, get: function () { return DexV2Market__factory_1.DexV2Market__factory; } });\nvar EmergingFeeder__factory_1 = require(\"./factories/EmergingFeeder__factory\");\nObject.defineProperty(exports, \"EmergingFeeder__factory\", { enumerable: true, get: function () { return EmergingFeeder__factory_1.EmergingFeeder__factory; } });\nvar EmergingFeederFactory__factory_1 = require(\"./factories/EmergingFeederFactory__factory\");\nObject.defineProperty(exports, \"EmergingFeederFactory__factory\", { enumerable: true, get: function () { return EmergingFeederFactory__factory_1.EmergingFeederFactory__factory; } });\nvar Gate__factory_1 = require(\"./factories/Gate__factory\");\nObject.defineProperty(exports, \"Gate__factory\", { enumerable: true, get: function () { return Gate__factory_1.Gate__factory; } });\nvar Guardian__factory_1 = require(\"./factories/Guardian__factory\");\nObject.defineProperty(exports, \"Guardian__factory\", { enumerable: true, get: function () { return Guardian__factory_1.Guardian__factory; } });\nvar ICexPriceFeeder__factory_1 = require(\"./factories/ICexPriceFeeder__factory\");\nObject.defineProperty(exports, \"ICexPriceFeeder__factory\", { enumerable: true, get: function () { return ICexPriceFeeder__factory_1.ICexPriceFeeder__factory; } });\nvar Instrument__factory_1 = require(\"./factories/Instrument__factory\");\nObject.defineProperty(exports, \"Instrument__factory\", { enumerable: true, get: function () { return Instrument__factory_1.Instrument__factory; } });\nvar MerkleDistributorWithDeadline__factory_1 = require(\"./factories/MerkleDistributorWithDeadline__factory\");\nObject.defineProperty(exports, \"MerkleDistributorWithDeadline__factory\", { enumerable: true, get: function () { return MerkleDistributorWithDeadline__factory_1.MerkleDistributorWithDeadline__factory; } });\nvar Observer__factory_1 = require(\"./factories/Observer__factory\");\nObject.defineProperty(exports, \"Observer__factory\", { enumerable: true, get: function () { return Observer__factory_1.Observer__factory; } });\nvar PythFeeder__factory_1 = require(\"./factories/PythFeeder__factory\");\nObject.defineProperty(exports, \"PythFeeder__factory\", { enumerable: true, get: function () { return PythFeeder__factory_1.PythFeeder__factory; } });\nvar PythFeederFactory__factory_1 = require(\"./factories/PythFeederFactory__factory\");\nObject.defineProperty(exports, \"PythFeederFactory__factory\", { enumerable: true, get: function () { return PythFeederFactory__factory_1.PythFeederFactory__factory; } });\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./params\"), exports);\n__exportStar(require(\"./types\"), exports);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.positionLiquidationPrice = positionLiquidationPrice;\nexports.positionUnrealizedSocialLoss = positionUnrealizedSocialLoss;\nexports.positionUnrealizedPnl = positionUnrealizedPnl;\nexports.positionUnrealizedPnlByFairPrice = positionUnrealizedPnlByFairPrice;\nexports.positionUnrealizedFundingFee = positionUnrealizedFundingFee;\nexports.positionEquity = positionEquity;\nexports.positionLeverage = positionLeverage;\nexports.positionMaxWithdrawableMargin = positionMaxWithdrawableMargin;\nexports.positionAdditionMarginToIMRSafe = positionAdditionMarginToIMRSafe;\nexports.isPositionIMSafe = isPositionIMSafe;\nexports.isPositionMMSafe = isPositionMMSafe;\nexports.rangeEntryDeltaBase = rangeEntryDeltaBase;\nexports.rangeEntryDeltaQuote = rangeEntryDeltaQuote;\nexports.rangeToPosition = rangeToPosition;\nexports.rangeValueLocked = rangeValueLocked;\nexports.rangeFeeEarned = rangeFeeEarned;\nexports.rangeLowerPositionIfRemove = rangeLowerPositionIfRemove;\nexports.rangeUpperPositionIfRemove = rangeUpperPositionIfRemove;\nexports.orderToPosition = orderToPosition;\nexports.orderLeverage = orderLeverage;\nexports.orderEquity = orderEquity;\nexports.ammPlaceOrderLimit = ammPlaceOrderLimit;\nexports.ammWithinDeviationLimit = ammWithinDeviationLimit;\nexports.getMinLiquidity = getMinLiquidity;\nexports.getFundingRate = getFundingRate;\nexports.getBenchmarkPrice = getBenchmarkPrice;\nexports.estimateAPY = estimateAPY;\nexports.estimateAdjustMarginLeverage = estimateAdjustMarginLeverage;\nexports.inquireLeverageFromTransferAmount = inquireLeverageFromTransferAmount;\nexports.inquireTransferAmountFromTargetLeverage = inquireTransferAmountFromTargetLeverage;\nconst context_1 = require(\"@derivation-tech/context\");\nconst constants_1 = require(\"../constants\");\nconst math_1 = require(\"../math\");\nconst enum_1 = require(\"../enum\");\nconst constants_2 = require(\"../constants\");\nconst reverse_1 = require(\"./reverse\");\nconst factory_1 = require(\"./factory\");\nconst utils_1 = require(\"./utils\");\nconst lowLevel_1 = require(\"./lowLevel\");\nconst synfError_1 = require(\"../errors/synfError\");\nfunction toRawPosition(position) {\n if ('instrumentAddr' in position) {\n const _position = position;\n return _position.isInverse ? (0, reverse_1.reversePosition)(_position) : _position;\n }\n else {\n return position;\n }\n}\nfunction toRawAmm(amm) {\n if ('instrumentAddr' in amm) {\n const _amm = amm;\n return _amm.isInverse ? (0, reverse_1.reverseAmm)(_amm) : _amm;\n }\n else {\n return amm;\n }\n}\nfunction toRawRange(range) {\n if ('instrumentAddr' in range) {\n const _range = range;\n return _range.isInverse ? (0, reverse_1.reverseRange)(_range) : _range;\n }\n else {\n return range;\n }\n}\nfunction toRawOrder(order) {\n if ('instrumentAddr' in order) {\n const _order = order;\n return _order.isInverse ? (0, reverse_1.reverseOrder)(_order) : _order;\n }\n else {\n return order;\n }\n}\nfunction positionLiquidationPrice(position, amm = constants_1.EMPTY_AMM, maintenanceMarginRatio = 500) {\n const _position = position;\n position = toRawPosition(position);\n amm = toRawAmm(amm);\n if (position.size.isZero() || position.balance.isZero()) {\n return math_1.ZERO;\n }\n const price = (0, lowLevel_1.calcLiquidationPrice)(amm, position, maintenanceMarginRatio);\n return _position.isInverse ? (0, reverse_1.reversePrice)(price) : price;\n}\nfunction positionUnrealizedSocialLoss(position, amm) {\n position = toRawPosition(position);\n amm = toRawAmm(amm);\n const { socialLoss } = (0, lowLevel_1.tally)(amm, position, amm.markPrice);\n return socialLoss;\n}\nfunction positionUnrealizedPnl(position, amm) {\n position = toRawPosition(position);\n amm = toRawAmm(amm);\n return (0, lowLevel_1.calcPnl)(amm, position, amm.markPrice);\n}\nfunction positionUnrealizedPnlByFairPrice(position, amm) {\n position = toRawPosition(position);\n amm = toRawAmm(amm);\n return (0, lowLevel_1.calcPnl)(amm, position, (0, math_1.sqrtX96ToWad)(amm.sqrtPX96));\n}\nfunction positionUnrealizedFundingFee(position, amm) {\n if (amm.expiry !== constants_1.PERP_EXPIRY) {\n return math_1.ZERO;\n }\n position = toRawPosition(position);\n amm = toRawAmm(amm);\n return (0, lowLevel_1.calcFundingFee)(amm, position);\n}\nfunction positionEquity(position, amm) {\n position = toRawPosition(position);\n amm = toRawAmm(amm);\n return position.balance.add(positionUnrealizedPnl(position, amm));\n}\nfunction positionLeverage(position, amm) {\n position = toRawPosition(position);\n amm = toRawAmm(amm);\n const value = (0, math_1.wmul)(amm.markPrice, position.size.abs());\n const equity = positionEquity(position, amm);\n if (equity.isZero()) {\n return math_1.ZERO;\n }\n return (0, math_1.wdiv)(value, equity);\n}\nfunction positionMaxWithdrawableMargin(position, amm, initialMarginRatio) {\n position = toRawPosition(position);\n amm = toRawAmm(amm);\n const { pnl, socialLoss } = (0, lowLevel_1.tally)(amm, position, amm.markPrice);\n const funding = (0, lowLevel_1.calcFundingFee)(amm, position);\n const purePnl = pnl.add(socialLoss).sub(funding);\n const unrealizedLoss = (purePnl.gt(math_1.ZERO) ? math_1.ZERO : purePnl).sub(socialLoss);\n const value = (0, math_1.wmulUp)(amm.markPrice, position.size.abs());\n const imRequirement = (0, math_1.wmulUp)(value, (0, math_1.r2w)(initialMarginRatio));\n const maxWithdrawableMargin = position.balance.add(unrealizedLoss).sub(imRequirement);\n return maxWithdrawableMargin.gt(math_1.ZERO) ? maxWithdrawableMargin : math_1.ZERO;\n}\nfunction positionAdditionMarginToIMRSafe(position, amm, initialMarginRatio, increase, slippage) {\n position = toRawPosition(position);\n amm = toRawAmm(amm);\n const positionValue = (0, math_1.wmul)(amm.markPrice, position.size.abs());\n let imrValue = (0, math_1.wmulUp)(positionValue, (0, math_1.r2w)(initialMarginRatio));\n if (slippage) {\n imrValue = imrValue.mul(constants_1.ONE_RATIO + slippage).div(constants_1.ONE_RATIO);\n }\n let equity;\n if (increase) {\n const unrealizedPnl = positionUnrealizedPnl(position, amm);\n const unrealizedLoss = unrealizedPnl.lt(math_1.ZERO) ? unrealizedPnl : math_1.ZERO;\n equity = position.balance.add(unrealizedLoss);\n }\n else {\n equity = positionEquity(position, amm);\n }\n const additionMargin = imrValue.sub(equity);\n return additionMargin.gt(math_1.ZERO) ? additionMargin : math_1.ZERO;\n}\nfunction isPositionIMSafe(position, amm, initialMarginRatio, increase) {\n position = toRawPosition(position);\n amm = toRawAmm(amm);\n let equity;\n if (increase) {\n const unrealizedPnl = positionUnrealizedPnl(position, amm);\n const unrealizedLoss = unrealizedPnl.lt(math_1.ZERO) ? unrealizedPnl : math_1.ZERO;\n equity = position.balance.add(unrealizedLoss);\n }\n else {\n equity = positionEquity(position, amm);\n }\n if (equity.isNegative()) {\n return false;\n }\n const positionValue = (0, math_1.wmulUp)(amm.markPrice, position.size.abs());\n return equity.gte((0, math_1.wmulUp)(positionValue, (0, math_1.r2w)(initialMarginRatio)));\n}\nfunction isPositionMMSafe(position, amm, maintenanceMarginRatio) {\n position = toRawPosition(position);\n amm = toRawAmm(amm);\n const equity = positionEquity(position, amm);\n if (equity.isNegative()) {\n return false;\n }\n const positionValue = (0, math_1.wmulUp)(amm.markPrice, position.size.abs());\n return equity.gte((0, math_1.wmulUp)(positionValue, (0, math_1.r2w)(maintenanceMarginRatio)));\n}\nfunction rangeEntryDeltaBase(range) {\n range = toRawRange(range);\n const sqrtUpperPX96 = math_1.TickMath.getSqrtRatioAtTick(range.tickUpper);\n return math_1.SqrtPriceMath.getDeltaBaseAutoRoundUp(range.sqrtEntryPX96, sqrtUpperPX96, range.liquidity);\n}\nfunction rangeEntryDeltaQuote(range) {\n range = toRawRange(range);\n const sqrtLowerPX96 = math_1.TickMath.getSqrtRatioAtTick(range.tickLower);\n return math_1.SqrtPriceMath.getDeltaQuoteAutoRoundUp(sqrtLowerPX96, range.sqrtEntryPX96, range.liquidity);\n}\nfunction rangeToPosition(range, amm) {\n const _range = range;\n range = toRawRange(range);\n amm = toRawAmm(amm);\n const sqrtUpperPX96 = math_1.TickMath.getSqrtRatioAtTick(range.tickUpper);\n const sqrtLowerPX96 = math_1.TickMath.getSqrtRatioAtTick(range.tickLower);\n const fair = (0, math_1.sqrtX96ToWad)(amm.sqrtPX96);\n const entryDeltaBase = rangeEntryDeltaBase(range);\n const entryDeltaQuote = rangeEntryDeltaQuote(range);\n let removeDeltaBase = math_1.ZERO;\n let removeDeltaQuote = math_1.ZERO;\n if (amm.tick < range.tickLower) {\n removeDeltaBase = math_1.SqrtPriceMath.getDeltaBaseAutoRoundUp(sqrtLowerPX96, math_1.TickMath.getSqrtRatioAtTick(range.tickUpper), range.liquidity);\n }\n else if (amm.tick < range.tickUpper) {\n removeDeltaBase = math_1.SqrtPriceMath.getDeltaBaseAutoRoundUp(amm.sqrtPX96, math_1.TickMath.getSqrtRatioAtTick(range.tickUpper), range.liquidity);\n removeDeltaQuote = math_1.SqrtPriceMath.getDeltaQuoteAutoRoundUp(sqrtLowerPX96, amm.sqrtPX96, range.liquidity);\n }\n else {\n removeDeltaQuote = math_1.SqrtPriceMath.getDeltaQuoteAutoRoundUp(sqrtLowerPX96, sqrtUpperPX96, range.liquidity);\n }\n const earnedByBase = (0, math_1.wmul)(removeDeltaBase.sub(entryDeltaBase), fair);\n const earnedByQuote = removeDeltaQuote.sub(entryDeltaQuote);\n const pnl = earnedByBase.add(earnedByQuote);\n const fee = (0, math_1.wmulDown)(amm.feeIndex.sub(range.entryFeeIndex), range.liquidity);\n const size = removeDeltaBase.sub(entryDeltaBase);\n const rawPosition = {\n balance: range.balance.add(fee).add(pnl).sub(math_1.ONE),\n size: size,\n entryNotional: (0, math_1.wmul)(fair, size.abs()),\n entrySocialLossIndex: size.gt(math_1.ZERO) ? amm.longSocialLossIndex : amm.shortSocialLossIndex,\n entryFundingIndex: size.gt(math_1.ZERO) ? amm.longFundingIndex : amm.shortFundingIndex,\n };\n if ('instrumentAddr' in _range) {\n const __range = _range;\n const position = (0, factory_1.createPosition)({\n instrumentAddr: __range.instrumentAddr,\n expiry: __range.expiry,\n traderAddr: __range.traderAddr,\n ...rawPosition,\n });\n return __range.isInverse ? (0, reverse_1.reversePosition)(position) : position;\n }\n else {\n return rawPosition;\n }\n}\nfunction rangeValueLocked(range, amm) {\n range = toRawRange(range);\n amm = toRawAmm(amm);\n const position = rangeToPosition(range, amm);\n const total = (0, lowLevel_1.tally)(amm, position, amm.markPrice);\n return total.equity;\n}\nfunction rangeFeeEarned(range, amm) {\n range = toRawRange(range);\n amm = toRawAmm(amm);\n return (0, math_1.wmulDown)(amm.feeIndex.sub(range.entryFeeIndex), range.liquidity);\n}\nfunction customAmm(tick, input) {\n return {\n ...input,\n tick,\n sqrtPX96: math_1.TickMath.getSqrtRatioAtTick(tick),\n };\n}\nfunction rangeLowerPositionIfRemove(range, amm) {\n const _range = range;\n range = toRawRange(range);\n amm = toRawAmm(amm);\n const rawPosition = rangeToPosition(range, customAmm(range.tickLower, amm));\n if ('instrumentAddr' in _range) {\n const __range = _range;\n const position = (0, factory_1.createPosition)({\n instrumentAddr: __range.instrumentAddr,\n expiry: __range.expiry,\n traderAddr: __range.traderAddr,\n ...rawPosition,\n });\n return __range.isInverse ? (0, reverse_1.reversePosition)(position) : position;\n }\n else {\n return rawPosition;\n }\n}\nfunction rangeUpperPositionIfRemove(range, amm) {\n const _range = range;\n range = toRawRange(range);\n amm = toRawAmm(amm);\n const rawPosition = rangeToPosition(range, customAmm(range.tickUpper, amm));\n if ('instrumentAddr' in _range) {\n const __range = _range;\n const position = (0, factory_1.createPosition)({\n instrumentAddr: __range.instrumentAddr,\n expiry: __range.expiry,\n traderAddr: __range.traderAddr,\n ...rawPosition,\n });\n return __range.isInverse ? (0, reverse_1.reversePosition)(position) : position;\n }\n else {\n return rawPosition;\n }\n}\nfunction orderToPosition(order) {\n const _order = order;\n order = toRawOrder(order);\n const rawPosition = {\n balance: order.balance,\n size: order.size,\n entryNotional: (0, math_1.wmul)(math_1.TickMath.getWadAtTick(order.tick), order.size.abs()),\n entrySocialLossIndex: math_1.ZERO,\n entryFundingIndex: math_1.ZERO,\n };\n if ('instrumentAddr' in _order) {\n const __order = _order;\n const position = (0, factory_1.createPosition)({\n instrumentAddr: __order.instrumentAddr,\n expiry: __order.expiry,\n traderAddr: __order.traderAddr,\n ...rawPosition,\n });\n return __order.isInverse ? (0, reverse_1.reversePosition)(position) : position;\n }\n else {\n return rawPosition;\n }\n}\nfunction orderLeverage(order, amm) {\n order = toRawOrder(order);\n amm = toRawAmm(amm);\n const limitPrice = math_1.TickMath.getWadAtTick(order.tick);\n const px = order.taken.eq(math_1.ZERO) ? limitPrice : amm.markPrice;\n const value = (0, math_1.wmul)(px, order.size.abs());\n return (0, math_1.wdiv)(value, order.balance);\n}\nfunction orderEquity(order, amm) {\n order = toRawOrder(order);\n amm = toRawAmm(amm);\n return positionEquity(orderToPosition(order), amm);\n}\nfunction ammPlaceOrderLimit(amm, initialMarginRatio) {\n const _amm = amm;\n amm = toRawAmm(amm);\n const maxDiff = (0, math_1.wmul)(amm.markPrice, (0, math_1.r2w)(initialMarginRatio)).mul(2);\n const rawUpperTick = math_1.TickMath.getTickAtPWad(amm.markPrice.add(maxDiff));\n const rawLowerTick = math_1.TickMath.getTickAtPWad(amm.markPrice.sub(maxDiff));\n let upperTick = constants_1.ORDER_SPACING * Math.floor(rawUpperTick / constants_1.ORDER_SPACING);\n let lowerTick = constants_1.ORDER_SPACING * Math.ceil(rawLowerTick / constants_1.ORDER_SPACING);\n if (!(0, lowLevel_1.withinOrderLimit)(math_1.TickMath.getWadAtTick(rawUpperTick), amm.markPrice, initialMarginRatio)) {\n upperTick = upperTick - constants_1.ORDER_SPACING;\n }\n if (!(0, lowLevel_1.withinOrderLimit)(math_1.TickMath.getWadAtTick(rawLowerTick), amm.markPrice, initialMarginRatio)) {\n lowerTick = lowerTick + constants_1.ORDER_SPACING;\n }\n return _amm.isInverse\n ? {\n upperTick: lowerTick,\n lowerTick: upperTick,\n }\n : {\n upperTick,\n lowerTick,\n };\n}\nfunction ammWithinDeviationLimit(amm, initialMarginRatio) {\n amm = toRawAmm(amm);\n return (0, lowLevel_1.withinDeviationLimit)((0, math_1.sqrtX96ToWad)(amm.sqrtPX96), amm.markPrice, initialMarginRatio);\n}\nfunction getMinLiquidity(instrument, expiry, px96) {\n instrument = instrument.isInverse ? (0, reverse_1.reverseInstrument)(instrument) : instrument;\n const amm = instrument.amms.get(expiry);\n if (!amm) {\n throw new synfError_1.SynfError('Pair not found,' + `instrument: ${instrument.instrumentAddr}, expiry: ${expiry}`);\n }\n const sqrtPX96 = px96 ? px96 : amm.sqrtPX96;\n return instrument.minRangeValue.mul(math_1.Q96).div(sqrtPX96.mul(2));\n}\nfunction getFundingRate(instrument, expiry) {\n const _instrument = instrument;\n instrument = instrument.isInverse ? (0, reverse_1.reverseInstrument)(instrument) : instrument;\n if (instrument.spotPrice.eq(0)) {\n throw new synfError_1.SynfError('Spot price can not be zero');\n }\n const amm = instrument.amms.get(expiry);\n if (!amm) {\n throw new synfError_1.SynfError('Pair not found');\n }\n const period = instrument.fundingHour * 3600;\n const result = (0, math_1.wdiv)((0, math_1.sqrtX96ToWad)(amm.sqrtPX96), instrument.spotPrice).sub(math_1.WAD).mul(86400).div(period);\n return _instrument.isInverse ? result.mul(-1) : result;\n}\nfunction getBenchmarkPrice(instrument, expiry) {\n instrument = instrument.isInverse ? (0, reverse_1.reverseInstrument)(instrument) : instrument;\n if (expiry === constants_1.PERP_EXPIRY) {\n return instrument.spotPrice;\n }\n else {\n const rawSpotPrice = instrument.spotPrice;\n const daysLeft = Date.now() / 1000 >= expiry ? 0 : ~~(expiry * 1000 - Date.now()) / (86400 * 1000) + 1;\n const instrumentType = instrument.market.feeder.ftype;\n if (instrumentType === enum_1.FeederType.BOTH_STABLE || instrumentType === enum_1.FeederType.NONE_STABLE) {\n return instrument.spotPrice;\n }\n else if (instrumentType === enum_1.FeederType.QUOTE_STABLE) {\n return (0, math_1.wmulDown)(rawSpotPrice, (0, math_1.r2w)(instrument.market.config.dailyInterestRate))\n .mul(daysLeft)\n .add(rawSpotPrice);\n }\n else {\n const priceChange = (0, math_1.wmulDown)(rawSpotPrice, (0, math_1.r2w)(instrument.market.config.dailyInterestRate)).mul(daysLeft);\n return rawSpotPrice.gt(priceChange) ? rawSpotPrice.sub(priceChange) : math_1.ZERO;\n }\n }\n}\nfunction estimateAPY(instrument, expiry, poolFee24h, alphaWad) {\n instrument = instrument.isInverse ? (0, reverse_1.reverseInstrument)(instrument) : instrument;\n const amm = instrument.amms.get(expiry);\n if (!amm || amm.liquidity.eq(math_1.ZERO)) {\n return 0;\n }\n const assumeAddMargin = instrument.minRangeValue;\n const tickDelta = (0, utils_1.alphaWadToTickDelta)(alphaWad);\n const upperTick = constants_2.RANGE_SPACING * ~~((amm.tick + tickDelta) / constants_2.RANGE_SPACING);\n const lowerTick = constants_2.RANGE_SPACING * ~~((amm.tick - tickDelta) / constants_2.RANGE_SPACING);\n const { liquidity: assumeAddLiquidity } = (0, lowLevel_1.entryDelta)(amm.sqrtPX96, lowerTick, upperTick, assumeAddMargin, instrument.setting.initialMarginRatio);\n const assumed24HrFee = poolFee24h.mul(assumeAddLiquidity).div(amm.liquidity);\n const apyWad = (0, math_1.wdiv)(assumed24HrFee.mul(365), assumeAddMargin);\n return (0, context_1.fromWad)(apyWad);\n}\nfunction estimateAdjustMarginLeverage(position, amm, amount) {\n position = toRawPosition(position);\n amm = toRawAmm(amm);\n const equity = positionEquity(position, amm).sub(amount);\n const value = (0, math_1.wmul)(amm.markPrice, position.size.abs()).sub(amount);\n return (0, math_1.wdiv)(value, equity);\n}\nfunction inquireLeverageFromTransferAmount(position, amm, transferIn, transferAmount) {\n position = toRawPosition(position);\n amm = toRawAmm(amm);\n const sign = transferIn ? 1 : -1;\n const value = (0, math_1.wmul)(amm.markPrice, position.size.abs());\n const oldEquity = positionEquity(position, amm);\n const Amount = transferAmount.mul(sign);\n const newEquity = oldEquity.add(Amount);\n return (0, math_1.wdiv)(value, newEquity);\n}\nfunction inquireTransferAmountFromTargetLeverage(position, amm, targetLeverage) {\n position = toRawPosition(position);\n amm = toRawAmm(amm);\n const value = (0, math_1.wmul)(amm.markPrice, position.size.abs());\n const targetEquity = (0, math_1.wdiv)(value, targetLeverage);\n const currentEquity = positionEquity(position, amm);\n return targetEquity.sub(currentEquity);\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.loadConfig = loadConfig;\nconst ethers_1 = require(\"ethers\");\nfunction loadConfig(json) {\n const quotesParam = {};\n for (const symbol in json.quotesParam) {\n const item = json.quotesParam[symbol];\n quotesParam[symbol] = {\n tradingFeeRatio: item.tradingFeeRatio,\n stabilityFeeRatioParam: ethers_1.BigNumber.from(item.stabilityFeeRatioParam),\n protocolFeeRatio: item.protocolFeeRatio,\n qtype: Number(item.qtype),\n minMarginAmount: ethers_1.BigNumber.from(item.minMarginAmount),\n tip: ethers_1.BigNumber.from(item.tip),\n };\n }\n const config = {\n ...json,\n quotesParam,\n };\n return config;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.checkReferralCode = checkReferralCode;\nexports.getHexReferral = getHexReferral;\nexports.encodeTradeParam = encodeTradeParam;\nexports.encodePlaceParam = encodePlaceParam;\nexports.encodeDepositParam = encodeDepositParam;\nexports.encodeWithdrawParam = encodeWithdrawParam;\nexports.encodeAdjustParam = encodeAdjustParam;\nexports.encodeAddParam = encodeAddParam;\nexports.encodeRemoveParam = encodeRemoveParam;\nexports.encodeBatchPlaceParam = encodeBatchPlaceParam;\nexports.encodeFillParam = encodeFillParam;\nexports.encodeCancelParam = encodeCancelParam;\nexports.decodeTradeParam = decodeTradeParam;\nexports.decodeTradeWithStabilityFeeParam = decodeTradeWithStabilityFeeParam;\nexports.decodeDepositParam = decodeDepositParam;\nexports.decodeWithdrawParam = decodeWithdrawParam;\nexports.decodeParamForDepositAndWithdraw = decodeParamForDepositAndWithdraw;\nexports.decodeAddParam = decodeAddParam;\nexports.decodeRemoveParam = decodeRemoveParam;\nexports.decodePlaceParam = decodePlaceParam;\nexports.decodeBatchPlaceParam = decodeBatchPlaceParam;\nexports.decodeFillParam = decodeFillParam;\nexports.decodeCancelParam = decodeCancelParam;\nconst ethers_1 = require(\"ethers\");\nconst utils_1 = require(\"ethers/lib/utils\");\nconst constants_1 = require(\"../constants\");\nconst math_1 = require(\"../math\");\nconst paramsEncodeError_1 = require(\"../errors/paramsEncodeError\");\nconst nonceLength = 24;\nconst tickLength = 24;\nconst limitTicksLength = tickLength * 2;\nconst expiryLength = 32;\nconst sizeLength = 128;\nconst amountLength = 128;\nconst quantityLength = 96;\nconst addressLength = 160;\nconst deadlineLength = 32;\nconst limitStabilityFeeRatioLength = 16;\nconst ratioLength = 16;\nconst leverageLength = 128;\nfunction bytes32ToBigNumber(str) {\n str = str.startsWith('0x') ? str : '0x' + str;\n if (str.length !== 66) {\n throw new paramsEncodeError_1.ParamsEncodeError('invalid bytes32 string', { str });\n }\n return ethers_1.BigNumber.from(str);\n}\nfunction pickNumber(value, from, to) {\n return pickBigNumber(value, from, to).toNumber();\n}\nfunction pickAddress(value, from, to) {\n return (0, utils_1.hexZeroPad)(pickBigNumber(value, from, to).toHexString(), 20);\n}\nfunction pickBigNumber(value, from, to) {\n return value.shr(from).and(math_1.ONE.shl(to - from).sub(1));\n}\nfunction checkReferralCode(referral) {\n if (referral.length !== 8)\n throw new paramsEncodeError_1.ParamsEncodeError('referral code length must be 8', { referral });\n}\nfunction getHexReferral(referral) {\n checkReferralCode(referral);\n const platform = referral.charCodeAt(0);\n const wallet = referral.charCodeAt(1);\n const channel = referral.slice(2);\n return ethers_1.ethers.utils.hexConcat([\n ethers_1.BigNumber.from(platform).toHexString(),\n ethers_1.BigNumber.from(wallet).toHexString(),\n ethers_1.ethers.utils.hexlify(ethers_1.ethers.utils.toUtf8Bytes(channel)),\n ]);\n}\nfunction encodeParamForTradeAndPlace(param) {\n const usize = (0, math_1.asUint128)(param.size);\n const uAmount = (0, math_1.asUint128)(param.amount);\n const uTick = (0, math_1.asUint24)(param.limitTick);\n const combinedTick = ethers_1.BigNumber.from(uTick).shl(32).add(ethers_1.BigNumber.from(param.expiry));\n const combinedDeadline = ethers_1.BigNumber.from(param.deadline).shl(56).add(combinedTick);\n const combinedSize = ethers_1.BigNumber.from(usize).shl(128).add(uAmount);\n const page0Temp = (0, utils_1.hexZeroPad)(combinedDeadline.toHexString(), 32);\n const page1 = (0, utils_1.hexZeroPad)(combinedSize.toHexString(), 32);\n const page0 = param.referralCode\n ? (0, utils_1.hexZeroPad)(ethers_1.BigNumber.from(getHexReferral(param.referralCode)).shl(192).add(ethers_1.BigNumber.from(page0Temp)).toHexString(), 32)\n : page0Temp;\n return [page0, page1];\n}\nfunction encodeTradeParam(param) {\n return encodeParamForTradeAndPlace(param);\n}\nfunction encodePlaceParam(param) {\n return encodeParamForTradeAndPlace({\n ...param,\n limitTick: param.tick,\n });\n}\nfunction encodeDepositParam(token, quantity) {\n return encodeParamForDepositAndWithdraw(token, quantity);\n}\nfunction encodeWithdrawParam(token, quantity) {\n return encodeParamForDepositAndWithdraw(token, quantity);\n}\nfunction encodeParamForDepositAndWithdraw(token, quantity) {\n return (0, utils_1.hexZeroPad)(ethers_1.BigNumber.from(quantity).shl(160).add(token).toHexString(), 32);\n}\nfunction encodeAdjustParam(param) {\n return encodeParamForTradeAndPlace({\n expiry: param.expiry,\n size: math_1.ZERO,\n amount: param.net,\n limitTick: 0,\n deadline: param.deadline,\n referralCode: param.referralCode,\n });\n}\nfunction encodeAddParam(addParam) {\n const uTick = (0, math_1.asUint48)(addParam.limitTicks.toNumber());\n const combinedTick = ethers_1.BigNumber.from(uTick).shl(32).add(ethers_1.BigNumber.from(addParam.expiry));\n const combinedDeadline = ethers_1.BigNumber.from(addParam.deadline).shl(80).add(combinedTick);\n const combinedAmount = ethers_1.BigNumber.from(addParam.tickDeltaLower)\n .shl(152)\n .add(ethers_1.BigNumber.from(addParam.tickDeltaUpper).shl(128))\n .add(addParam.amount);\n const page0 = addParam.referralCode\n ? (0, utils_1.hexZeroPad)(ethers_1.BigNumber.from(getHexReferral(addParam.referralCode)).shl(192).add(combinedDeadline).toHexString(), 32)\n : (0, utils_1.hexZeroPad)(combinedDeadline.toHexString(), 32);\n const page1 = (0, utils_1.hexZeroPad)(combinedAmount.toHexString(), 32);\n return [page0, page1];\n}\nfunction encodeRemoveParam(removeParam) {\n const uTick = (0, math_1.asUint48)(removeParam.limitTicks.toNumber());\n const combinedTick = ethers_1.BigNumber.from(uTick).shl(32).add(ethers_1.BigNumber.from(removeParam.expiry));\n const combinedDeadline = ethers_1.BigNumber.from(removeParam.deadline).shl(80).add(combinedTick);\n const uTickLower = (0, math_1.asUint24)(removeParam.tickLower);\n const uTickUpper = (0, math_1.asUint24)(removeParam.tickUpper);\n const combinedTickLower = ethers_1.BigNumber.from(uTickLower).shl(160).add(removeParam.traderAddr);\n const combinedTickUpper = ethers_1.BigNumber.from(uTickUpper).shl(184).add(combinedTickLower);\n const page0 = (0, utils_1.hexZeroPad)(combinedDeadline.toHexString(), 32);\n const page1 = (0, utils_1.hexZeroPad)(combinedTickUpper.toHexString(), 32);\n return [page0, page1];\n}\nfunction encodeBatchPlaceParam(expiry, size, leverage, ticks, ratios, deadline, referral) {\n if (ticks.length > 9)\n throw new paramsEncodeError_1.ParamsEncodeError('cannot place more than 9 orders at once', { ticks });\n if (ticks.length !== ratios.length)\n throw new paramsEncodeError_1.ParamsEncodeError('ticks and ratios length mismatch', { ticks, ratios });\n if (ratios.reduce((a, b) => a + b, 0) !== constants_1.RATIO_BASE)\n throw new paramsEncodeError_1.ParamsEncodeError('ratios sum must be 10000', ratios);\n const usize = (0, math_1.asUint128)(size);\n const uLeverage = (0, math_1.asUint128)(leverage);\n const combinedSize = ethers_1.BigNumber.from(usize).shl(128).add(uLeverage);\n const page2 = (0, utils_1.hexZeroPad)(combinedSize.toHexString(), 32);\n let tmp0 = ethers_1.BigNumber.from(deadline).shl(32).add(ethers_1.BigNumber.from(expiry));\n for (let i = 0; i < 3; i++) {\n const uTick = i < ticks.length ? (0, math_1.asUint24)(ticks[i]) : math_1.EMPTY_TICK;\n const uRatio = i < ratios.length ? (0, math_1.asUint16)(ratios[i]) : 0;\n tmp0 = tmp0.add(ethers_1.BigNumber.from(uRatio).shl(64 + 40 * i)).add(ethers_1.BigNumber.from(uTick).shl(64 + 40 * i + 16));\n }\n const page0Temp = (0, utils_1.hexZeroPad)(tmp0.toHexString(), 32);\n let tmp1 = math_1.ZERO;\n for (let i = 0; i < 6; i++) {\n const uTick = i + 3 < ticks.length ? (0, math_1.asUint24)(ticks[i + 3]) : math_1.EMPTY_TICK;\n const uRatio = i + 3 < ratios.length ? (0, math_1.asUint16)(ratios[i + 3]) : 0;\n tmp1 = tmp1.add(ethers_1.BigNumber.from(uRatio).shl(40 * i)).add(ethers_1.BigNumber.from(uTick).shl(40 * i + 16));\n }\n const page1 = (0, utils_1.hexZeroPad)(tmp1.toHexString(), 32);\n const page0 = referral\n ? (0, utils_1.hexZeroPad)(ethers_1.BigNumber.from(getHexReferral(referral)).shl(192).add(ethers_1.BigNumber.from(page0Temp)).toHexString(), 32)\n : page0Temp;\n return [page0, page1, page2];\n}\nfunction encodeFillParam(param) {\n const uTick = (0, math_1.asUint24)(param.tick);\n const combinedTarget = ethers_1.BigNumber.from(param.target).shl(32).add(ethers_1.BigNumber.from(param.expiry));\n const combinedTick = ethers_1.BigNumber.from(uTick).shl(192).add(combinedTarget);\n return (0, utils_1.hexZeroPad)(ethers_1.BigNumber.from(param.nonce).shl(216).add(combinedTick).toHexString(), 32);\n}\nfunction encodeCancelParam(param) {\n const { ticks, expiry, deadline } = param;\n if (ticks.length < 1 || ticks.length > constants_1.MAX_CANCEL_ORDER_COUNT)\n throw new paramsEncodeError_1.ParamsEncodeError(`ticks length must be between 1 and ${constants_1.MAX_CANCEL_ORDER_COUNT}`, { ticks });\n let encodedTicks = math_1.ZERO;\n for (let i = 0; i < constants_1.MAX_CANCEL_ORDER_COUNT; i++) {\n const tick = i < ticks.length ? ticks[i] : constants_1.INT24_MAX;\n encodedTicks = encodedTicks.add(ethers_1.BigNumber.from((0, math_1.asUint24)(tick)).shl(24 * i));\n }\n const combinedTick = ethers_1.BigNumber.from(encodedTicks).shl(32).add(ethers_1.BigNumber.from(expiry));\n const combinedDeadline = ethers_1.BigNumber.from(deadline).shl(224).add(combinedTick);\n return (0, utils_1.hexZeroPad)(combinedDeadline.toHexString(), 32);\n}\nfunction decodeTradeParam(args) {\n return decodeParamForTradeAndPlace(args);\n}\nfunction decodeTradeWithStabilityFeeParam(args) {\n const tradeParam = decodeTradeParam(args);\n const value1 = bytes32ToBigNumber(args[0]);\n const offset = expiryLength + tickLength + deadlineLength;\n const limitStabilityFeeRatio = pickNumber(value1, offset, offset + limitStabilityFeeRatioLength);\n return { ...tradeParam, limitStabilityFeeRatio };\n}\nfunction decodeParamForTradeAndPlace(args) {\n if (args.length !== 2) {\n throw new paramsEncodeError_1.ParamsEncodeError('invalid args length for trade and place', { args });\n }\n const [arg1, arg2] = args;\n let offset = 0;\n const value1 = bytes32ToBigNumber(arg1);\n const expiry = pickNumber(value1, offset, (offset += expiryLength));\n const limitTick = (0, math_1.asInt24)(pickNumber(value1, offset, (offset += tickLength)));\n const deadline = pickNumber(value1, offset, (offset += deadlineLength));\n offset = 0;\n const value2 = bytes32ToBigNumber(arg2);\n const amount = (0, math_1.asInt128)(pickBigNumber(value2, offset, (offset += amountLength)));\n const size = (0, math_1.asInt128)(pickBigNumber(value2, offset, (offset += sizeLength)));\n return { expiry, size, amount, limitTick, deadline, referralCode: '' };\n}\nfunction decodeDepositParam(arg) {\n return decodeParamForDepositAndWithdraw(arg);\n}\nfunction decodeWithdrawParam(arg) {\n return decodeParamForDepositAndWithdraw(arg);\n}\nfunction decodeParamForDepositAndWithdraw(arg) {\n let offset = 0;\n const value = bytes32ToBigNumber(arg);\n const token = pickAddress(value, offset, (offset += addressLength));\n const quantity = pickBigNumber(value, offset, (offset += quantityLength));\n return { quantity, token };\n}\nfunction decodeAddParam(args) {\n if (args.length !== 2) {\n throw new paramsEncodeError_1.ParamsEncodeError('invalid args length for add', { args });\n }\n const [arg1, arg2] = args;\n let offset = 0;\n const value1 = bytes32ToBigNumber(arg1);\n const expiry = pickNumber(value1, offset, (offset += expiryLength));\n const limitTicks = pickBigNumber(value1, offset, (offset += limitTicksLength));\n const deadline = pickNumber(value1, offset, (offset += deadlineLength));\n offset = 0;\n const value2 = bytes32ToBigNumber(arg2);\n const amount = pickBigNumber(value2, offset, (offset += amountLength));\n const tickDeltaUpper = pickNumber(value2, offset, (offset += tickLength));\n const tickDeltaLower = pickNumber(value2, offset, (offset += tickLength));\n return { limitTicks, amount, tickDeltaLower, tickDeltaUpper, expiry, deadline, referralCode: '' };\n}\nfunction decodeRemoveParam(args) {\n if (args.length !== 2) {\n throw new paramsEncodeError_1.ParamsEncodeError('invalid args length for remove', { args });\n }\n const [arg1, arg2] = args;\n let offset = 0;\n const value1 = bytes32ToBigNumber(arg1);\n const expiry = pickNumber(value1, offset, (offset += expiryLength));\n const limitTicks = pickBigNumber(value1, offset, (offset += limitTicksLength));\n const deadline = pickNumber(value1, offset, (offset += deadlineLength));\n offset = 0;\n const value2 = bytes32ToBigNumber(arg2);\n const target = pickAddress(value2, offset, (offset += addressLength));\n const tickLower = (0, math_1.asInt24)(pickNumber(value2, offset, (offset += tickLength)));\n const tickUpper = (0, math_1.asInt24)(pickNumber(value2, offset, (offset += tickLength)));\n return { tickUpper, tickLower, traderAddr: target, expiry, limitTicks, deadline };\n}\nfunction decodePlaceParam(args) {\n const result = decodeParamForTradeAndPlace(args);\n return {\n expiry: result.expiry,\n size: result.size,\n amount: result.amount,\n tick: result.limitTick,\n deadline: result.deadline,\n };\n}\nfunction decodeBatchPlaceParam(args) {\n if (args.length !== 3) {\n throw new paramsEncodeError_1.ParamsEncodeError('invalid args length for place', { args });\n }\n const [arg1, arg2, arg3] = args;\n const ticks = [];\n const ratios = [];\n let offset = 0;\n const value1 = bytes32ToBigNumber(arg1);\n const expiry = pickNumber(value1, offset, (offset += expiryLength));\n const deadline = pickNumber(value1, offset, (offset += deadlineLength));\n for (let i = 0; i < 3; i++) {\n const ratio = pickNumber(value1, offset, (offset += ratioLength));\n const tick = (0, math_1.asInt24)(pickNumber(value1, offset, (offset += tickLength)));\n if (ethers_1.BigNumber.from(tick).eq(math_1.EMPTY_TICK))\n continue;\n ticks.push(tick);\n ratios.push(ratio);\n }\n offset = 0;\n const value2 = bytes32ToBigNumber(arg2);\n for (let i = 0; i < 6; i++) {\n const ratio = pickNumber(value2, offset, (offset += ratioLength));\n const tick = (0, math_1.asInt24)(pickNumber(value2, offset, (offset += tickLength)));\n if (ethers_1.BigNumber.from(tick).eq(math_1.EMPTY_TICK))\n continue;\n ticks.push(tick);\n ratios.push(ratio);\n }\n offset = 0;\n const value3 = bytes32ToBigNumber(arg3);\n const leverage = (0, math_1.asInt128)(pickBigNumber(value3, offset, (offset += leverageLength)));\n const size = (0, math_1.asInt128)(pickBigNumber(value3, offset, (offset += sizeLength)));\n return { expiry, ticks, ratios, size, leverage, deadline };\n}\nfunction decodeFillParam(arg) {\n let offset = 0;\n const value = bytes32ToBigNumber(arg);\n const expiry = pickNumber(value, offset, (offset += expiryLength));\n const target = pickAddress(value, offset, (offset += addressLength));\n const tick = (0, math_1.asInt24)(pickNumber(value, offset, (offset += tickLength)));\n const nonce = pickNumber(value, offset, (offset += nonceLength));\n return { nonce, tick, target, expiry };\n}\nfunction decodeCancelParam(arg) {\n let offset = 0;\n const value = bytes32ToBigNumber(arg);\n const expiry = pickNumber(value, offset, (offset += expiryLength));\n const ticks = [];\n for (let i = 0; i < constants_1.MAX_CANCEL_ORDER_COUNT; i++) {\n const tick = (0, math_1.asInt24)(pickNumber(value, offset, (offset += tickLength)));\n if (tick === math_1.MAX_INT_24.toNumber()) {\n continue;\n }\n ticks.push(tick);\n }\n const deadline = pickNumber(value, offset, (offset += deadlineLength));\n return { ticks, expiry, deadline };\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createInstrument = createInstrument;\nexports.createAmm = createAmm;\nexports.createOrder = createOrder;\nexports.createPosition = createPosition;\nexports.createRange = createRange;\nconst constants_1 = require(\"../constants\");\nconst math_1 = require(\"../math\");\nconst utils_1 = require(\"./utils\");\nconst lowLevel_1 = require(\"./lowLevel\");\nfunction createInstrument(instrument) {\n const minTradeValue = instrument.setting.quoteParam.minMarginAmount\n .mul(constants_1.RATIO_BASE)\n .div(instrument.setting.initialMarginRatio);\n const minOrderValue = minTradeValue.mul(constants_1.MIN_ORDER_MULTIPLIER);\n const minRangeValue = minTradeValue.mul(constants_1.MIN_RANGE_MULTIPLIER);\n return {\n ...instrument,\n instrumentAddr: instrument.instrumentAddr.toLowerCase(),\n instrumentType: instrument.market.feeder.ftype,\n marketType: instrument.market.info.type,\n minTradeValue,\n minOrderValue,\n minRangeValue,\n displayBase: instrument.base,\n displayQuote: instrument.quote,\n minTickDelta: (0, lowLevel_1.calcMinTickDelta)(instrument.setting.initialMarginRatio),\n };\n}\nfunction createAmm(amm) {\n return {\n ...amm,\n instrumentAddr: amm.instrumentAddr.toLowerCase(),\n fairPrice: (0, math_1.sqrtX96ToWad)(amm.sqrtPX96),\n };\n}\nfunction createOrder(order) {\n return {\n ...order,\n instrumentAddr: order.instrumentAddr.toLowerCase(),\n traderAddr: order.traderAddr.toLowerCase(),\n oid: (0, utils_1.orderKey)(order.tick, order.nonce),\n side: (0, utils_1.sizeToSide)(order.size),\n limitPrice: math_1.TickMath.getWadAtTick(order.tick),\n };\n}\nfunction createPosition(position) {\n return {\n ...position,\n instrumentAddr: position.instrumentAddr.toLowerCase(),\n traderAddr: position.traderAddr.toLowerCase(),\n side: (0, utils_1.sizeToSide)(position.size),\n entryPrice: position.size.eq(math_1.ZERO) ? math_1.ZERO : (0, math_1.wdiv)(position.entryNotional, position.size.abs()),\n };\n}\nfunction createRange(range) {\n return {\n ...range,\n instrumentAddr: range.instrumentAddr.toLowerCase(),\n traderAddr: range.traderAddr.toLowerCase(),\n rid: (0, utils_1.rangeKey)(range.tickLower, range.tickUpper),\n lowerPrice: math_1.TickMath.getWadAtTick(range.tickLower),\n upperPrice: math_1.TickMath.getWadAtTick(range.tickUpper),\n entryPrice: (0, math_1.sqrtX96ToWad)(range.sqrtEntryPX96),\n };\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.groupBy = groupBy;\nexports.calcPositionLiquidationPrice = calcPositionLiquidationPrice;\nexports.formatOrder = formatOrder;\nexports.formatRange = formatRange;\nexports.formatPosition = formatPosition;\nexports.formatPositionWithoutPnL = formatPositionWithoutPnL;\nexports.formatAmm = formatAmm;\nexports.formatInstrument = formatInstrument;\nexports.formatPortfolio = formatPortfolio;\nexports.formatSimulateAddLiquidityResult = formatSimulateAddLiquidityResult;\nexports.formatSimulateAddLiquidityWithAsymmetricRangeResult = formatSimulateAddLiquidityWithAsymmetricRangeResult;\nexports.formatSimulateRemoveLiquidityResult = formatSimulateRemoveLiquidityResult;\nexports.formatSimulateMarketOrderResult = formatSimulateMarketOrderResult;\nexports.formatSimulateAdjustMarginByMarginResult = formatSimulateAdjustMarginByMarginResult;\nexports.formatSimulateAdjustMarginByLeverageResult = formatSimulateAdjustMarginByLeverageResult;\nexports.formatSimulateLimitOrderResult = formatSimulateLimitOrderResult;\nexports.formatSimulateBatchPlaceResult = formatSimulateBatchPlaceResult;\nexports.formatSimulateCrossMarketOrderResult = formatSimulateCrossMarketOrderResult;\nconst utils_1 = require(\"ethers/lib/utils\");\nconst calculation_1 = require(\"./calculation\");\nconst _1 = require(\".\");\nconst math_1 = require(\"../math\");\nconst enum_1 = require(\"../enum\");\nfunction groupBy(arr, fn) {\n return arr.reduce((map, curr) => {\n const key = fn(curr);\n const group = map.get(key);\n if (group) {\n group.push(curr);\n }\n else {\n map.set(key, [curr]);\n }\n return map;\n }, new Map());\n}\nfunction calcPositionLiquidationPrice(amm, position, maintenanceMarginRatio) {\n if (position.size.isZero() || position.balance.isZero())\n return math_1.ZERO;\n return (0, calculation_1.positionLiquidationPrice)(position, amm, maintenanceMarginRatio);\n}\nfunction _formatOrder(order, amm) {\n const formattedOrder = {\n side: enum_1.Side[order.side],\n size: (0, utils_1.formatEther)(order.size),\n Filled: (0, utils_1.formatEther)(order.taken),\n 'Order Price': (0, utils_1.formatEther)(order.limitPrice),\n Margin: (0, utils_1.formatEther)(order.balance),\n Leverage: (0, utils_1.formatEther)((0, calculation_1.orderLeverage)(order, amm)),\n };\n return formattedOrder;\n}\nfunction formatOrder(order, amm) {\n return JSON.stringify(_formatOrder(order, amm), null, 2);\n}\nfunction _formatRange(range, amm, maintenanceMarginRatio) {\n const upperRawPosition = (0, calculation_1.rangeUpperPositionIfRemove)(range, amm);\n const upperPosition = _1.factory.createPosition({\n ...upperRawPosition,\n instrumentAddr: range.instrumentAddr,\n expiry: range.expiry,\n traderAddr: range.traderAddr,\n });\n const lowerRawPosition = (0, calculation_1.rangeLowerPositionIfRemove)(range, amm);\n const lowerPosition = _1.factory.createPosition({\n ...lowerRawPosition,\n instrumentAddr: range.instrumentAddr,\n expiry: range.expiry,\n traderAddr: range.traderAddr,\n });\n const lowerLiquidationPrice = (0, calculation_1.positionLiquidationPrice)(lowerPosition, amm, maintenanceMarginRatio);\n const upperLiquidationPrice = (0, calculation_1.positionLiquidationPrice)(upperPosition, amm, maintenanceMarginRatio);\n const formattedRange = {\n 'Price Range': `${(0, utils_1.formatEther)(range.lowerPrice)} - ${(0, utils_1.formatEther)(range.upperPrice)}`,\n 'Fair Price': (0, utils_1.formatEther)(amm.fairPrice),\n 'Value Locked': (0, utils_1.formatEther)((0, calculation_1.rangeValueLocked)(range, amm)),\n 'Fees Earned': (0, utils_1.formatEther)((0, calculation_1.rangeFeeEarned)(range, amm)),\n 'Liquidation Price': `${(0, utils_1.formatEther)(lowerLiquidationPrice)} - ${(0, utils_1.formatEther)(upperLiquidationPrice)}`,\n };\n return formattedRange;\n}\nfunction formatRange(range, amm, maintenanceMarginRatio) {\n return JSON.stringify(_formatRange(range, amm, maintenanceMarginRatio), null, 2);\n}\nfunction _formatPosition(position, amm, maintenanceMarginRatio) {\n const formattedPosition = {\n side: enum_1.Side[position.side],\n size: (0, utils_1.formatEther)(position.size),\n 'Avg.Price': (0, utils_1.formatEther)(position.entryPrice),\n Margin: (0, utils_1.formatEther)((0, calculation_1.positionEquity)(position, amm)),\n Leverage: (0, utils_1.formatEther)((0, calculation_1.positionLeverage)(position, amm)),\n 'Liq.Price': (0, utils_1.formatEther)(calcPositionLiquidationPrice(amm, position, maintenanceMarginRatio)),\n 'Mark Price': (0, utils_1.formatEther)(amm.markPrice),\n 'Unrealized P&L': (0, utils_1.formatEther)((0, calculation_1.positionUnrealizedPnl)(position, amm)),\n 'Unrealized Funding': (0, utils_1.formatEther)((0, calculation_1.positionUnrealizedFundingFee)(position, amm)),\n };\n return formattedPosition;\n}\nfunction formatPosition(position, amm, maintenanceMarginRatio) {\n return JSON.stringify(_formatPosition(position, amm, maintenanceMarginRatio), null, 2);\n}\nfunction _formatPositionWithoutPnL(position, amm, maintenanceMarginRatio) {\n const formattedPosition = {\n side: enum_1.Side[position.side],\n size: (0, utils_1.formatEther)(position.size),\n 'Avg.Price': (0, utils_1.formatEther)(position.entryPrice),\n Margin: (0, utils_1.formatEther)((0, calculation_1.positionEquity)(position, amm)),\n Leverage: (0, utils_1.formatEther)((0, calculation_1.positionLeverage)(position, amm)),\n 'Liq.Price': (0, utils_1.formatEther)(calcPositionLiquidationPrice(amm, position, maintenanceMarginRatio)),\n 'Mark Price': (0, utils_1.formatEther)(amm.markPrice),\n };\n return formattedPosition;\n}\nfunction formatPositionWithoutPnL(position, amm, maintenanceMarginRatio) {\n return JSON.stringify(_formatPositionWithoutPnL(position, amm, maintenanceMarginRatio), null, 2);\n}\nfunction _formatAmm(amm) {\n const formattedAmm = {\n expiry: amm.expiry,\n markPrice: (0, utils_1.formatEther)(amm.markPrice),\n fairPrice: (0, utils_1.formatEther)(amm.fairPrice),\n };\n return formattedAmm;\n}\nfunction formatAmm(amm) {\n return JSON.stringify(_formatAmm(amm), null, 2);\n}\nfunction _formatInstrument(instrument) {\n const formattedInstrument = {\n instrumentAddr: instrument.instrumentAddr,\n symbol: instrument.symbol,\n spotPrice: (0, utils_1.formatEther)(instrument.spotPrice),\n amms: Object.fromEntries(Array.from(instrument.amms).map(([expiry, amm]) => [expiry, _formatAmm(amm)])),\n };\n return formattedInstrument;\n}\nfunction formatInstrument(instrument) {\n return JSON.stringify(_formatInstrument(instrument), null, 2);\n}\nfunction formatPortfolio(portfolio, instrument) {\n const maintenanceMarginRatio = instrument.setting.maintenanceMarginRatio;\n const formattedPortfolio = {\n ...portfolio,\n position: portfolio.position.size.isZero()\n ? null\n : formatPosition(portfolio.position, instrument.amms.get(portfolio.position.expiry), instrument.setting.maintenanceMarginRatio),\n orders: Object.fromEntries(Array.from(portfolio.orders).map(([oid, order]) => [\n oid,\n formatOrder(order, instrument.amms.get(order.expiry)),\n ])),\n ranges: Object.fromEntries(Array.from(portfolio.ranges).map(([rid, range]) => [\n rid,\n formatRange(range, instrument.amms.get(range.expiry), maintenanceMarginRatio),\n ])),\n };\n return JSON.stringify(formattedPortfolio, null, 2);\n}\nfunction formatSimulateAddLiquidityResult(result, amm, maintenanceMarginRatio) {\n const formattedResult = {\n 'Current Price': (0, utils_1.formatEther)(amm.fairPrice),\n 'Capital Efficiency Boost': result.capitalEfficiencyBoost,\n 'Removal Price': (0, utils_1.formatEther)(result.lowerPrice) + ' ~ ' + (0, utils_1.formatEther)(result.upperPrice),\n 'Liquidation Price': (0, utils_1.formatEther)(calcPositionLiquidationPrice(amm, result.lowerPosition, maintenanceMarginRatio)) +\n ' ~ ' +\n (0, utils_1.formatEther)(calcPositionLiquidationPrice(amm, result.upperPosition, maintenanceMarginRatio)),\n minEffectiveQuoteAmount: (0, utils_1.formatEther)(result.minEffectiveQuoteAmount),\n minMargin: (0, utils_1.formatEther)(result.minMargin),\n };\n return JSON.stringify(formattedResult, null, 2);\n}\nfunction formatSimulateAddLiquidityWithAsymmetricRangeResult(result, amm, maintenanceMarginRatio) {\n const formattedResult = {\n 'Current Price': (0, utils_1.formatEther)(amm.fairPrice),\n 'Capital Efficiency Boost': result.capitalEfficiencyBoost,\n 'Removal Price': (0, utils_1.formatEther)(result.lowerPrice) + ' ~ ' + (0, utils_1.formatEther)(result.upperPrice),\n 'Liquidation Price': (0, utils_1.formatEther)(calcPositionLiquidationPrice(amm, result.lowerPosition, maintenanceMarginRatio)) +\n ' ~ ' +\n (0, utils_1.formatEther)(calcPositionLiquidationPrice(amm, result.upperPosition, maintenanceMarginRatio)),\n minEffectiveQuoteAmount: (0, utils_1.formatEther)(result.minEffectiveQuoteAmount),\n minMargin: (0, utils_1.formatEther)(result.minMargin),\n };\n return JSON.stringify(formattedResult, null, 2);\n}\nfunction formatSimulateRemoveLiquidityResult(result, amm, maintenanceMarginRatio) {\n const formattedResult = {\n 'Removed position': _formatPositionWithoutPnL(result.removedPosition, amm, maintenanceMarginRatio),\n 'Post position': _formatPositionWithoutPnL(result.postPosition, amm, maintenanceMarginRatio),\n };\n return JSON.stringify(formattedResult, null, 2);\n}\nfunction _formatSimulateMarketOrderResult(result, amm, maintenanceMarginRatio) {\n const formattedResult = {\n 'Price Impact': Number((0, utils_1.formatEther)(result.priceImpact)) * 100 + '%',\n 'Est. Trade Value': (0, utils_1.formatEther)(result.tradeValue),\n 'Trading Fee': (0, utils_1.formatEther)(result.tradingFee),\n Margin: (0, utils_1.formatEther)(result.margin),\n Leverage: (0, utils_1.formatEther)(result.leverage),\n 'Post position': _formatPositionWithoutPnL(result.postPosition, amm, maintenanceMarginRatio),\n };\n return formattedResult;\n}\nfunction formatSimulateMarketOrderResult(result, amm, maintenanceMarginRatio) {\n return JSON.stringify(_formatSimulateMarketOrderResult(result, amm, maintenanceMarginRatio), null, 2);\n}\nfunction formatSimulateAdjustMarginByMarginResult(result, amm, maintenanceMarginRatio) {\n const formattedResult = {\n Leverage: (0, utils_1.formatEther)(result.leverage),\n 'Post position': _formatPositionWithoutPnL(result.postPosition, amm, maintenanceMarginRatio),\n };\n return JSON.stringify(formattedResult, null, 2);\n}\nfunction formatSimulateAdjustMarginByLeverageResult(result, amm, maintenanceMarginRatio) {\n const formattedResult = {\n 'Transfer In': result.transferIn,\n Margin: (0, utils_1.formatEther)(result.margin),\n 'Post position': _formatPositionWithoutPnL(result.postPosition, amm, maintenanceMarginRatio),\n };\n return JSON.stringify(formattedResult, null, 2);\n}\nfunction _formatSimulateLimitOrderResult(result) {\n const formattedResult = {\n Margin: (0, utils_1.formatEther)(result.margin),\n 'Est. Trade Value': (0, utils_1.formatEther)(result.tradeValue),\n 'Fee Rebate': (0, utils_1.formatEther)(result.minFeeRebate),\n limitPrice: (0, utils_1.formatEther)(result.limitPrice),\n leverage: (0, utils_1.formatEther)(result.leverage),\n };\n return formattedResult;\n}\nfunction formatSimulateLimitOrderResult(result) {\n return JSON.stringify(_formatSimulateLimitOrderResult(result), null, 2);\n}\nfunction formatSimulateBatchPlaceResult(result) {\n const orders = [];\n for (let i = 0; i < result.orders.length; i++) {\n if (result.orders[i]) {\n orders.push({\n 'Order Price': (0, utils_1.formatEther)(result.orders[i].limitPrice),\n tick: result.orders[i].tick,\n margin: (0, utils_1.formatEther)(result.orders[i].margin),\n leverage: (0, utils_1.formatEther)(result.orders[i].leverage),\n minFeeRebate: (0, utils_1.formatEther)(result.orders[i].minFeeRebate),\n });\n }\n }\n const formattedResult = {\n orders: orders,\n };\n return JSON.stringify(formattedResult, null, 2);\n}\nfunction formatSimulateCrossMarketOrderResult(result, amm, maintenanceMarginRatio) {\n const formattedResult = {\n 'Can Place Order': result.canPlaceOrder,\n minOrderSize: (0, utils_1.formatEther)(result.minOrderSize),\n 'Trade Simulation': _formatSimulateMarketOrderResult(result.tradeSimulation, amm, maintenanceMarginRatio),\n 'Order Simulation': _formatSimulateLimitOrderResult(result.orderSimulation),\n };\n return JSON.stringify(formattedResult, null, 2);\n}\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nvar __importStar = (this && this.__importStar) || (function () {\n var ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n };\n return function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.lowLevel = exports.factory = void 0;\n__exportStar(require(\"./calculation\"), exports);\n__exportStar(require(\"./config\"), exports);\n__exportStar(require(\"./encode\"), exports);\nexports.factory = __importStar(require(\"./factory\"));\nexports.lowLevel = __importStar(require(\"./lowLevel\"));\n__exportStar(require(\"./reverse\"), exports);\n__exportStar(require(\"./utils\"), exports);\n__exportStar(require(\"./format\"), exports);\n__exportStar(require(\"./limited\"), exports);\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Limited = exports.RequestStatus = exports.Token = exports.TokenStatus = exports.Counter = void 0;\nexports.getRandomIntInclusive = getRandomIntInclusive;\nexports.limitedMap = limitedMap;\nconst yallist_1 = __importDefault(require(\"yallist\"));\nclass Counter {\n constructor() {\n this._count = 0;\n }\n get count() {\n return this._count;\n }\n create() {\n this.promise = new Promise((r) => (this.resolve = r));\n }\n destroy() {\n this.resolve();\n this.resolve = undefined;\n this.promise = undefined;\n }\n increase(i = 1) {\n this._count += i;\n if (this._count - i === 0) {\n this.create();\n }\n }\n decrease(i = 1) {\n if (i > this._count) {\n i = this._count;\n }\n this._count -= i;\n if (this._count === 0) {\n this.destroy();\n }\n }\n wait() {\n return this.promise ?? Promise.resolve();\n }\n}\nexports.Counter = Counter;\nvar TokenStatus;\n(function (TokenStatus) {\n TokenStatus[TokenStatus[\"Idle\"] = 0] = \"Idle\";\n TokenStatus[TokenStatus[\"Using\"] = 1] = \"Using\";\n})(TokenStatus || (exports.TokenStatus = TokenStatus = {}));\nclass Token {\n constructor(limited) {\n this.status = TokenStatus.Idle;\n this.limited = limited;\n }\n}\nexports.Token = Token;\nvar RequestStatus;\n(function (RequestStatus) {\n RequestStatus[RequestStatus[\"Queued\"] = 0] = \"Queued\";\n RequestStatus[RequestStatus[\"Finished\"] = 1] = \"Finished\";\n RequestStatus[RequestStatus[\"Canceled\"] = 2] = \"Canceled\";\n})(RequestStatus || (exports.RequestStatus = RequestStatus = {}));\nfunction toNode(value) {\n return {\n prev: null,\n next: null,\n value,\n };\n}\nclass Limited {\n constructor(maxTokens, maxQueued = Infinity) {\n this.idle = yallist_1.default.create();\n this.queue = yallist_1.default.create();\n this.counter = new Counter();\n for (let i = 0; i < maxTokens; i++) {\n this.idle.push(new Token(this));\n }\n this.maxTokens = maxTokens;\n this.maxQueued = maxQueued;\n }\n get parallels() {\n return this.counter.count;\n }\n get tokens() {\n return this.maxTokens - this.parallels;\n }\n get queued() {\n return this.queue.length;\n }\n get available() {\n return this.maxQueued - this.queued;\n }\n get() {\n if (this.idle.length > 0) {\n const token = this.idle.shift();\n token.status = TokenStatus.Using;\n this.counter.increase();\n return { getToken: Promise.resolve(token) };\n }\n else if (this.queue.length + 1 <= this.maxQueued) {\n let resolve;\n let reject;\n const getToken = new Promise((_resolve, _reject) => {\n resolve = _resolve;\n reject = _reject;\n });\n const requestValue = {\n status: RequestStatus.Queued,\n resolve,\n reject,\n };\n const request = toNode(requestValue);\n this.queue.pushNode(request);\n return { getToken, request };\n }\n else {\n throw new Error('too many queued');\n }\n }\n getToken() {\n return this.get().getToken;\n }\n put(token) {\n if (token.limited !== this || token.status !== TokenStatus.Using) {\n throw new Error('invalid token');\n }\n if (this.queue.length > 0) {\n const request = this.queue.shift();\n request.status = RequestStatus.Finished;\n request.resolve(token);\n }\n else {\n token.status = TokenStatus.Idle;\n this.idle.push(token);\n this.counter.decrease();\n }\n }\n cancel(request, reason) {\n if (request.list !== this.queue) {\n throw new Error('invalid request');\n }\n if (request.value.status !== RequestStatus.Queued) {\n return;\n }\n this.queue.removeNode(request);\n request.value.status = RequestStatus.Canceled;\n request.value.reject(reason);\n }\n wait() {\n return this.counter.wait();\n }\n}\nexports.Limited = Limited;\nfunction getRandomIntInclusive(min, max) {\n min = Math.ceil(min);\n max = Math.floor(max);\n if (max < min) {\n throw new Error('The maximum value should be greater than the minimum value');\n }\n return Math.floor(Math.random() * (max - min + 1)) + min;\n}\nfunction limitedMap(array, fn, limit) {\n return new Promise(async (resolve, reject) => {\n let failed = false;\n const limited = new Limited(limit);\n const promises = [];\n for (const element of array) {\n if (failed) {\n break;\n }\n const token = await limited.getToken();\n if (failed) {\n limited.put(token);\n break;\n }\n promises.push(fn(element)\n .catch((err) => {\n failed = true;\n reject(err);\n })\n .finally(() => limited.put(token)));\n }\n resolve(await Promise.all(promises));\n });\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getLatestFundingIndex = getLatestFundingIndex;\nexports.updateFundingIndex = updateFundingIndex;\nexports.withinOrderLimit = withinOrderLimit;\nexports.withinDeviationLimit = withinDeviationLimit;\nexports.calcBenchmarkPrice = calcBenchmarkPrice;\nexports.calcMinTickDelta = calcMinTickDelta;\nexports.getBatchOrderRatios = getBatchOrderRatios;\nexports.requiredMarginForOrder = requiredMarginForOrder;\nexports.fillOrderToPosition = fillOrderToPosition;\nexports.cancelOrderToPosition = cancelOrderToPosition;\nexports.tally = tally;\nexports.calcLiquidationPrice = calcLiquidationPrice;\nexports.calculatePriceFromPnl = calculatePriceFromPnl;\nexports.calcFundingFee = calcFundingFee;\nexports.calcPnl = calcPnl;\nexports.realizeFundingWithPnl = realizeFundingWithPnl;\nexports.realizeFundingIncome = realizeFundingIncome;\nexports.realizeSocialLoss = realizeSocialLoss;\nexports.combine = combine;\nexports.splitPosition = splitPosition;\nexports.entryDelta = entryDelta;\nexports.alignRangeTick = alignRangeTick;\nexports.getLiquidityFromMarginByUpper = getLiquidityFromMarginByUpper;\nexports.getLiquidityFromMarginByLower = getLiquidityFromMarginByLower;\nexports.getMarginFromLiquidity = getMarginFromLiquidity;\nconst ethers_1 = require(\"ethers\");\nconst context_1 = require(\"@derivation-tech/context\");\nconst constants_1 = require(\"../constants\");\nconst math_1 = require(\"../math\");\nconst enum_1 = require(\"../enum\");\nconst synfError_1 = require(\"../errors/synfError\");\nfunction getLatestFundingIndex(amm, markPrice, timestamp) {\n return updateFundingIndex(amm, markPrice, timestamp);\n}\nfunction updateFundingIndex(amm, mark, timestamp) {\n const timeElapsed = timestamp - amm.timestamp;\n if (timeElapsed == 0)\n return { longFundingIndex: amm.longFundingIndex, shortFundingIndex: amm.shortFundingIndex };\n const fair = (0, math_1.sqrtX96ToWad)(amm.sqrtPX96);\n const longPayShort = fair.gt(mark);\n const [payerSize, receiverSize] = longPayShort ? [amm.totalLong, amm.totalShort] : [amm.totalShort, amm.totalLong];\n const fundingFeeIndex = (0, math_1.frac)(fair.sub(mark).abs(), ethers_1.BigNumber.from(timeElapsed), ethers_1.BigNumber.from(context_1.SECS_PER_DAY));\n if (payerSize.gt(0)) {\n let [payerIndex, receiverIndex] = longPayShort\n ? [amm.longFundingIndex, amm.shortFundingIndex]\n : [amm.shortFundingIndex, amm.longFundingIndex];\n payerIndex = payerIndex.sub(fundingFeeIndex);\n const totalFundingFee = (0, math_1.wmul)(fundingFeeIndex, payerSize);\n if (receiverSize.gt(0)) {\n receiverIndex = receiverIndex.add((0, math_1.wdiv)(totalFundingFee, receiverSize));\n }\n return longPayShort\n ? { longFundingIndex: payerIndex, shortFundingIndex: receiverIndex }\n : { longFundingIndex: receiverIndex, shortFundingIndex: payerIndex };\n }\n return { longFundingIndex: amm.longFundingIndex, shortFundingIndex: amm.shortFundingIndex };\n}\nfunction withinOrderLimit(limitPrice, markPrice, imr) {\n return (0, math_1.wdiv)(limitPrice.sub(markPrice).abs(), markPrice).lte((0, math_1.r2w)(imr).mul(2));\n}\nfunction withinDeviationLimit(fairPrice, markPrice, imr) {\n return (0, math_1.wdiv)(fairPrice.sub(markPrice).abs(), markPrice).lte((0, math_1.r2w)(imr));\n}\nfunction calcBenchmarkPrice(expiry, rawSpotPrice, feederType, dailyInterestRate) {\n if (expiry == constants_1.PERP_EXPIRY) {\n return rawSpotPrice;\n }\n else {\n const daysLeft = Date.now() / 1000 >= expiry ? 0 : Math.floor((expiry * 1000 - Date.now()) / (context_1.SECS_PER_DAY * 1000)) + 1;\n if (feederType === enum_1.FeederType.BOTH_STABLE || feederType === enum_1.FeederType.NONE_STABLE) {\n return rawSpotPrice;\n }\n else if (feederType === enum_1.FeederType.QUOTE_STABLE) {\n return (0, math_1.wmulDown)(rawSpotPrice, (0, math_1.r2w)(dailyInterestRate)).mul(daysLeft).add(rawSpotPrice);\n }\n else {\n const priceChange = (0, math_1.wmulDown)(rawSpotPrice, (0, math_1.r2w)(dailyInterestRate)).mul(daysLeft);\n return rawSpotPrice.gt(priceChange) ? rawSpotPrice.sub(priceChange) : math_1.ZERO;\n }\n }\n}\nfunction calcMinTickDelta(initialMarginRatio) {\n return (0, math_1.wadToTick)((0, math_1.r2w)(initialMarginRatio).add(math_1.WAD));\n}\nfunction getBatchOrderRatios(sizeDistribution, orderCount) {\n let ratios = [];\n switch (sizeDistribution) {\n case enum_1.BatchOrderSizeDistribution.FLAT: {\n ratios = Array(orderCount).fill(Math.floor(constants_1.RATIO_BASE / orderCount));\n break;\n }\n case enum_1.BatchOrderSizeDistribution.UPPER: {\n const sum = Array.from({ length: orderCount }, (_, i) => i + 1).reduce((acc, i) => acc + i, 0);\n ratios = Array.from({ length: orderCount }, (_, i) => Math.floor((i + 1) * (constants_1.RATIO_BASE / sum)));\n break;\n }\n case enum_1.BatchOrderSizeDistribution.LOWER: {\n const sum = Array.from({ length: orderCount }, (_, i) => orderCount - i).reduce((acc, i) => acc + i, 0);\n ratios = Array.from({ length: orderCount }, (_, i) => Math.floor((orderCount - i) * (constants_1.RATIO_BASE / sum)));\n break;\n }\n case enum_1.BatchOrderSizeDistribution.RANDOM: {\n let totalRatio = 0;\n const averageRatio = constants_1.RATIO_BASE / orderCount;\n const minRatio = Math.ceil(averageRatio * 0.95);\n const maxRatio = Math.floor(averageRatio * 1.05);\n for (let i = 0; i < orderCount; i++) {\n let ratio = Math.floor(averageRatio * (1 - 0.05 + Math.random() * 0.1));\n ratio = Math.max(minRatio, Math.min(maxRatio, ratio));\n ratios.push(ratio);\n totalRatio += ratio;\n }\n let adjustment = constants_1.RATIO_BASE - totalRatio;\n const increment = adjustment > 0 ? 1 : -1;\n while (adjustment !== 0) {\n for (let i = 0; i < orderCount && adjustment !== 0; i++) {\n const newRatio = ratios[i] + increment;\n if (newRatio >= minRatio && newRatio <= maxRatio) {\n ratios[i] = newRatio;\n adjustment -= increment;\n }\n }\n }\n break;\n }\n default:\n throw new synfError_1.SynfError('Invalid size distribution');\n }\n ratios[ratios.length - 1] = constants_1.RATIO_BASE - ratios.slice(0, ratios.length - 1).reduce((acc, ratio) => acc + ratio, 0);\n return ratios;\n}\nfunction requiredMarginForOrder(limit, sizeWad, ratio) {\n const marginValue = (0, math_1.wmul)(limit, sizeWad);\n const minAmount = (0, math_1.wmulUp)(marginValue, (0, math_1.r2w)(ratio));\n return minAmount;\n}\nfunction fillOrderToPosition(pearlNonce, pearlTaken, pearlFee, pearlSocialLoss, pearlFundingIndex, order, tick, nonce, fillSize, record) {\n if (fillSize.eq(math_1.ZERO)) {\n fillSize = order.size;\n }\n const usize = fillSize.abs();\n let makerFee;\n let entrySocialLossIndex;\n let entryFundingIndex;\n if (nonce < pearlNonce) {\n const utaken0 = record.taken.abs();\n makerFee = record.taken.eq(fillSize) ? record.fee : (0, math_1.fracDown)(record.fee, usize, utaken0);\n entrySocialLossIndex = record.entrySocialLossIndex;\n entryFundingIndex = record.entryFundingIndex;\n }\n else {\n const utaken1 = pearlTaken.abs();\n makerFee = pearlTaken.eq(fillSize) ? pearlFee : (0, math_1.fracDown)(pearlFee, usize, utaken1);\n entrySocialLossIndex = pearlSocialLoss;\n entryFundingIndex = pearlFundingIndex;\n }\n const srtikePrice = math_1.TickMath.getWadAtTick(tick);\n return {\n balance: order.balance.add(makerFee),\n size: fillSize,\n entryNotional: (0, math_1.wmul)(srtikePrice, fillSize.abs()),\n entrySocialLossIndex: entrySocialLossIndex,\n entryFundingIndex: entryFundingIndex,\n };\n}\nfunction cancelOrderToPosition(pearlLeft, pearlNonce, pearlTaken, pearlFee, pearlSocialLoss, pearlFundingIndex, order, tick, nonce, record) {\n let pic = {\n balance: order.balance,\n size: math_1.ZERO,\n entryNotional: math_1.ZERO,\n entrySocialLossIndex: math_1.ZERO,\n entryFundingIndex: math_1.ZERO,\n };\n const uleft = pearlLeft.abs();\n const usize = order.size.abs();\n if (uleft.lt(usize)) {\n const tLeft = pearlLeft;\n pic = fillOrderToPosition(pearlNonce, pearlTaken, pearlFee, pearlSocialLoss, pearlFundingIndex, order, tick, nonce, order.size.sub(tLeft), record);\n }\n return pic;\n}\nfunction tally(amm, position, mark) {\n let fundingFee = math_1.ZERO;\n const value = (0, math_1.wmul)(mark, position.size.abs());\n const socialLoss = (0, math_1.wmulUp)((position.size.gt(math_1.ZERO) ? amm.longSocialLossIndex : amm.shortSocialLossIndex).sub(position.entrySocialLossIndex), position.size.abs());\n if (amm.expiry === constants_1.PERP_EXPIRY)\n fundingFee = calcFundingFee(amm, position);\n const pnl = (position.size.gt(math_1.ZERO) ? value.sub(position.entryNotional) : position.entryNotional.sub(value))\n .add(fundingFee)\n .sub(socialLoss);\n const equity = pnl.add(position.balance);\n return { equity: equity, pnl: pnl, socialLoss: socialLoss };\n}\nfunction calcLiquidationPrice(amm, position, maintenanceMarginRatio = 500) {\n const socialLoss = (0, math_1.wmulUp)((position.size.gt(math_1.ZERO) ? amm.longSocialLossIndex : amm.shortSocialLossIndex).sub(position.entrySocialLossIndex), position.size.abs());\n const fundingFee = calcFundingFee(amm, position);\n let price;\n if (position.size.gt(math_1.ZERO)) {\n const numerator = position.entryNotional.add(socialLoss).sub(position.balance).sub(fundingFee);\n if (numerator.lte(math_1.ZERO))\n return math_1.ZERO;\n price = (0, math_1.wdivDown)(numerator, (0, math_1.wmulUp)(position.size.abs(), (0, math_1.r2w)(10000 - maintenanceMarginRatio)));\n }\n else {\n const numerator = position.entryNotional.sub(socialLoss).add(position.balance).add(fundingFee);\n if (numerator.lte(math_1.ZERO))\n return math_1.ZERO;\n price = (0, math_1.wdivUp)(numerator, (0, math_1.wmulDown)(position.size.abs(), (0, math_1.r2w)(10000 + maintenanceMarginRatio)));\n }\n return price;\n}\nfunction calculatePriceFromPnl(amm, position, pnl) {\n const socialLoss = (0, math_1.wmulUp)((position.size.gt(math_1.ZERO) ? amm.longSocialLossIndex : amm.shortSocialLossIndex).sub(position.entrySocialLossIndex), position.size.abs());\n const fundingFee = calcFundingFee(amm, position);\n const value = position.size.gt(math_1.ZERO)\n ? pnl.add(socialLoss).add(position.entryNotional).sub(fundingFee)\n : position.entryNotional.sub(socialLoss).sub(pnl).add(fundingFee);\n return position.size.gt(math_1.ZERO) ? (0, math_1.wdivUp)(value, position.size.abs()) : (0, math_1.wdivDown)(value, position.size.abs());\n}\nfunction calcFundingFee(amm, position) {\n return (0, math_1.wmulInt)((position.size.gte(math_1.ZERO) ? amm.longFundingIndex : amm.shortFundingIndex).sub(position.entryFundingIndex), position.size.abs());\n}\nfunction calcPnl(amm, position, mark) {\n return tally(amm, position, mark).pnl;\n}\nfunction realizeFundingWithPnl(amm, pos) {\n if (pos.size.eq(0))\n return { position: pos, pnl: math_1.ZERO };\n const position = Object.assign({}, pos);\n const currentFundingIndex = position.size.gt(math_1.ZERO) ? amm.longFundingIndex : amm.shortFundingIndex;\n let pnl = math_1.ZERO;\n if (!currentFundingIndex.eq(position.entryFundingIndex)) {\n const funding = (0, math_1.wmulInt)(currentFundingIndex.sub(position.entryFundingIndex), position.size.abs());\n pnl = funding;\n position.entryFundingIndex = currentFundingIndex;\n position.balance = position.balance.add(funding);\n }\n return { position, pnl };\n}\nfunction realizeFundingIncome(amm, pos) {\n return realizeFundingWithPnl(amm, pos).position;\n}\nfunction realizeSocialLoss(amm, pos) {\n pos = { ...pos };\n const long = pos.size.gt(math_1.ZERO);\n const usize = pos.size.abs();\n const socialLossIndex = long ? amm.longSocialLossIndex : amm.shortSocialLossIndex;\n const socialLoss = (0, math_1.wmulUp)(socialLossIndex.sub(pos.entrySocialLossIndex), usize);\n pos.balance = pos.balance.sub(socialLoss);\n pos.entrySocialLossIndex = socialLossIndex;\n return { position: pos, socialLoss };\n}\nfunction combine(amm, position_1, position_2) {\n let position1 = Object.assign({}, position_1);\n let position2 = Object.assign({}, position_2);\n let realized = math_1.ZERO;\n if (amm.expiry === constants_1.PERP_EXPIRY) {\n const { position: realizedPosition1, pnl: realizedPnl1 } = realizeFundingWithPnl(amm, position1);\n const { position: realizedPosition2, pnl: realizedPnl2 } = realizeFundingWithPnl(amm, position2);\n position1 = realizedPosition1;\n position2 = realizedPosition2;\n realized = realized.add(realizedPnl1);\n realized = realized.add(realizedPnl2);\n }\n const { position: realizedPosition1, socialLoss: socialLoss1 } = realizeSocialLoss(amm, position1);\n const { position: realizedPosition2, socialLoss: socialLoss2 } = realizeSocialLoss(amm, position2);\n position1 = realizedPosition1;\n position2 = realizedPosition2;\n realized = realized.sub(socialLoss1);\n realized = realized.sub(socialLoss2);\n let pic = {\n balance: math_1.ZERO,\n size: math_1.ZERO,\n entryNotional: math_1.ZERO,\n entrySocialLossIndex: math_1.ZERO,\n entryFundingIndex: math_1.ZERO,\n };\n let closedSize = math_1.ZERO;\n if (position1.size.eq(math_1.ZERO) || position2.size.eq(math_1.ZERO)) {\n pic = position1.size.eq(math_1.ZERO) ? position2 : position1;\n pic.balance = position1.balance.add(position2.balance);\n return { position: pic, closedSize: closedSize, realized: realized };\n }\n pic.size = position1.size.add(position2.size);\n if ((0, math_1.oppositeSigns)(position1.size, position2.size)) {\n closedSize = position1.size.abs().lt(position2.size.abs()) ? position1.size.abs() : position2.size.abs();\n const longPic = position1.size.gt(math_1.ZERO) ? position1 : position2;\n const shortPic = position1.size.gt(math_1.ZERO) ? position2 : position1;\n let closedLongNotional = math_1.ZERO;\n let closedShortNotional = math_1.ZERO;\n if (pic.size.gt(math_1.ZERO)) {\n closedLongNotional = (0, math_1.frac)(longPic.entryNotional, closedSize, longPic.size.abs());\n closedShortNotional = shortPic.entryNotional;\n pic.entryNotional = longPic.entryNotional.sub(closedLongNotional);\n pic.entrySocialLossIndex = longPic.entrySocialLossIndex;\n pic.entryFundingIndex = longPic.entryFundingIndex;\n }\n else if (pic.size.lt(math_1.ZERO)) {\n closedLongNotional = longPic.entryNotional;\n closedShortNotional = (0, math_1.frac)(shortPic.entryNotional, closedSize, shortPic.size.abs());\n pic.entryNotional = shortPic.entryNotional.sub(closedShortNotional);\n pic.entrySocialLossIndex = shortPic.entrySocialLossIndex;\n pic.entryFundingIndex = shortPic.entryFundingIndex;\n }\n else {\n closedLongNotional = longPic.entryNotional;\n closedShortNotional = shortPic.entryNotional;\n }\n const realizedPnl = closedShortNotional.sub(closedLongNotional);\n pic.balance = pic.balance.add(longPic.balance).add(shortPic.balance).add(realizedPnl);\n realized = realized.add(realizedPnl);\n }\n else {\n pic.entryNotional = position1.entryNotional.add(position2.entryNotional);\n pic.entrySocialLossIndex = pic.size.gt(math_1.ZERO) ? amm.longSocialLossIndex : amm.shortSocialLossIndex;\n pic.entryFundingIndex = position1.size.gt(math_1.ZERO) ? amm.longFundingIndex : amm.shortFundingIndex;\n pic.balance = position1.balance.add(position2.balance);\n }\n return { position: pic, closedSize: closedSize, realized: realized };\n}\nfunction splitPosition(pos, partSize) {\n const uFullSize = pos.size.abs();\n const uPartSize = partSize.abs();\n const partPos = {};\n const finalPos = pos;\n partPos.size = partSize;\n finalPos.size = pos.size.sub(partSize);\n partPos.balance = (0, math_1.frac)(pos.balance, uPartSize, uFullSize);\n finalPos.balance = pos.balance.sub(partPos.balance);\n partPos.entryNotional = (0, math_1.frac)(pos.entryNotional, uPartSize, uFullSize);\n finalPos.entryNotional = pos.entryNotional.sub(partPos.entryNotional);\n partPos.entrySocialLossIndex = pos.entrySocialLossIndex;\n partPos.entryFundingIndex = pos.entryFundingIndex;\n return { partPos, finalPos };\n}\nfunction entryDelta(sqrtEntryPX96, tickLower, tickUpper, entryMargin, initialMarginRatio) {\n const upperPX96 = math_1.TickMath.getSqrtRatioAtTick(tickUpper);\n const lowerPX96 = math_1.TickMath.getSqrtRatioAtTick(tickLower);\n const liquidityByUpper = getLiquidityFromMarginByUpper(sqrtEntryPX96, upperPX96, entryMargin, initialMarginRatio);\n const liquidityByLower = getLiquidityFromMarginByLower(sqrtEntryPX96, lowerPX96, entryMargin, initialMarginRatio);\n const liquidity = liquidityByUpper.lt(liquidityByLower) ? liquidityByUpper : liquidityByLower;\n const deltaBase = math_1.SqrtPriceMath.getDeltaBaseAutoRoundUp(sqrtEntryPX96, upperPX96, liquidity);\n const deltaQuote = math_1.SqrtPriceMath.getDeltaQuoteAutoRoundUp(lowerPX96, sqrtEntryPX96, liquidity);\n return { deltaBase: deltaBase, deltaQuote: deltaQuote, liquidity: liquidity };\n}\nfunction alignRangeTick(tick, lower) {\n if ((tick > 0 && lower) || (tick < 0 && !lower)) {\n return constants_1.RANGE_SPACING * ~~(tick / constants_1.RANGE_SPACING);\n }\n else {\n return constants_1.RANGE_SPACING * ~~((tick + (tick > 0 ? 1 : -1) * (constants_1.RANGE_SPACING - 1)) / constants_1.RANGE_SPACING);\n }\n}\nfunction getLiquidityFromMarginByUpper(sqrtEntryPX96, sqrtUpperPX96, entryMargin, initialMarginRatio) {\n const numerator = entryMargin.mul(sqrtEntryPX96).div(sqrtUpperPX96.sub(sqrtEntryPX96));\n const denominator = sqrtUpperPX96.sub(sqrtEntryPX96).add((0, math_1.wmulUp)(sqrtUpperPX96, (0, math_1.r2w)(initialMarginRatio)));\n return numerator.mul(math_1.Q96).div(denominator);\n}\nfunction getLiquidityFromMarginByLower(sqrtEntryPX96, sqrtLowerPX96, entryMargin, initialMarginRatio) {\n const numerator = entryMargin.mul(sqrtEntryPX96).div(sqrtEntryPX96.sub(sqrtLowerPX96));\n const denominator = sqrtEntryPX96.sub(sqrtLowerPX96).add((0, math_1.wmulUp)(sqrtLowerPX96, (0, math_1.r2w)(initialMarginRatio)));\n return numerator.mul(math_1.Q96).div(denominator);\n}\nfunction getMarginFromLiquidity(sqrtEntryPX96, tickUpper, liquidity, initialMarginRatio) {\n const sqrtUpperPX96 = math_1.TickMath.getSqrtRatioAtTick(tickUpper);\n const denominator = (0, math_1.wmulUp)(sqrtUpperPX96, (0, math_1.r2w)(10000 + initialMarginRatio)).sub(sqrtEntryPX96);\n const temp = liquidity.mul(denominator).div(math_1.Q96);\n return temp.mul(sqrtUpperPX96.sub(sqrtEntryPX96)).div(sqrtEntryPX96);\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.reverseSide = reverseSide;\nexports.reversePrice = reversePrice;\nexports.reverseOrder = reverseOrder;\nexports.reversePosition = reversePosition;\nexports.reverseRange = reverseRange;\nexports.reversePortfolio = reversePortfolio;\nexports.reverseAmm = reverseAmm;\nexports.reverseInstrument = reverseInstrument;\nexports.reversePriceInfo = reversePriceInfo;\nconst math_1 = require(\"../math\");\nconst enum_1 = require(\"../enum\");\nfunction reverseSide(side) {\n return side === enum_1.Side.LONG ? enum_1.Side.SHORT : side === enum_1.Side.SHORT ? enum_1.Side.LONG : enum_1.Side.FLAT;\n}\nfunction reversePrice(price) {\n return (0, math_1.safeWDiv)(math_1.WAD, price);\n}\nfunction reverseOrder(order) {\n return {\n ...order,\n size: order.size.mul(-1),\n side: reverseSide(order.side),\n limitPrice: reversePrice(order.limitPrice),\n isInverse: !order.isInverse,\n };\n}\nfunction reversePosition(position) {\n return {\n ...position,\n size: position.size.mul(-1),\n side: reverseSide(position.side),\n entryPrice: reversePrice(position.entryPrice),\n isInverse: !position.isInverse,\n };\n}\nfunction reverseRange(range) {\n return {\n ...range,\n tickLower: range.tickUpper,\n tickUpper: range.tickLower,\n lowerPrice: reversePrice(range.upperPrice),\n upperPrice: reversePrice(range.lowerPrice),\n entryPrice: reversePrice(range.entryPrice),\n isInverse: !range.isInverse,\n };\n}\nfunction reversePortfolio(portfolio) {\n return {\n ...portfolio,\n orders: new Map(Array.from(portfolio.orders.entries()).map(([oid, order]) => [oid, reverseOrder(order)])),\n ranges: new Map(Array.from(portfolio.ranges.entries()).map(([rid, range]) => [rid, reverseRange(range)])),\n position: reversePosition(portfolio.position),\n isInverse: !portfolio.isInverse,\n };\n}\nfunction reverseAmm(amm) {\n return {\n ...amm,\n totalLong: amm.totalShort,\n totalShort: amm.totalLong,\n shortFundingIndex: amm.longFundingIndex,\n longFundingIndex: amm.shortFundingIndex,\n shortSocialLossIndex: amm.longSocialLossIndex,\n longSocialLossIndex: amm.shortSocialLossIndex,\n settlementPrice: reversePrice(amm.settlementPrice),\n markPrice: reversePrice(amm.markPrice),\n fairPrice: reversePrice(amm.fairPrice),\n isInverse: !amm.isInverse,\n };\n}\nfunction reverseInstrument(instrument) {\n return {\n ...instrument,\n spotPrice: reversePrice(instrument.spotPrice),\n amms: new Map(Array.from(instrument.amms.entries()).map(([expiry, amm]) => [expiry, reverseAmm(amm)])),\n isInverse: !instrument.isInverse,\n displayBase: instrument.displayQuote,\n displayQuote: instrument.displayBase,\n };\n}\nfunction reversePriceInfo(priceInfo) {\n return typeof priceInfo === 'number' ? priceInfo : reversePrice(priceInfo);\n}\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || (function () {\n var ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n };\n return function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n };\n})();\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.quickRetry = quickRetry;\nexports.getLeverageFromImr = getLeverageFromImr;\nexports.alignExpiry = alignExpiry;\nexports.alignTick = alignTick;\nexports.getMinTick = getMinTick;\nexports.getMaxTick = getMaxTick;\nexports.getMaxLiquidityPerTick = getMaxLiquidityPerTick;\nexports.rangeKey = rangeKey;\nexports.orderKey = orderKey;\nexports.parseTicks = parseTicks;\nexports.parseOrderTickNonce = parseOrderTickNonce;\nexports.normalizeTick = normalizeTick;\nexports.solidityRequire = solidityRequire;\nexports.tickDeltaToAlphaWad = tickDeltaToAlphaWad;\nexports.alphaWadToTickDelta = alphaWadToTickDelta;\nexports.decomposePbitmap = decomposePbitmap;\nexports.trimObj = trimObj;\nexports.formatExpiry = formatExpiry;\nexports.dateExpiry2Ts = dateExpiry2Ts;\nexports.getTokenSymbol = getTokenSymbol;\nexports.getTokenInfo = getTokenInfo;\nexports.isEmptyPortfolio = isEmptyPortfolio;\nexports.isCexMarket = isCexMarket;\nexports.sizeToSide = sizeToSide;\nexports.signOfSide = signOfSide;\nexports.isByBase = isByBase;\nexports.isPosition = isPosition;\nexports.isPortfolio = isPortfolio;\nexports.isInstrument = isInstrument;\nexports.toPopulatedTxOverrides = toPopulatedTxOverrides;\nexports.toPortfolio = toPortfolio;\nconst ethers_1 = require(\"ethers\");\nconst moment_1 = __importDefault(require(\"moment\"));\nconst constants_1 = require(\"../constants\");\nconst math_1 = require(\"../math\");\nconst enum_1 = require(\"../enum\");\nconst factory = __importStar(require(\"./factory\"));\nconst calculationError_1 = require(\"../errors/calculationError\");\nconst synfError_1 = require(\"../errors/synfError\");\nasync function quickRetry(fn, times = 3, interval = 100) {\n let error;\n for (let i = 0;; i++) {\n try {\n return await fn();\n }\n catch (err) {\n error = err;\n }\n if (i === times - 1) {\n break;\n }\n await new Promise((r) => setTimeout(r, (i + 1) * interval));\n }\n throw error;\n}\nfunction getLeverageFromImr(imr) {\n if (imr === 1000)\n return enum_1.Leverage.LOW;\n if (imr === 500)\n return enum_1.Leverage.MEDIUM;\n if (imr === 300)\n return enum_1.Leverage.HIGH;\n if (imr === 100)\n return enum_1.Leverage.RISKY;\n throw new calculationError_1.CalculationError('Invalid IMR value', { imr });\n}\nfunction alignExpiry() {\n return Math.floor((Date.now() / 1000 + 259200) / 604800) * 604800 + 345600 + 28800 - 259200;\n}\nfunction alignTick(tick, tickSpacing) {\n return tick - (tick % tickSpacing);\n}\nfunction getMinTick(tickSpacing) {\n return Math.ceil(-math_1.TickMath.MAX_TICK / tickSpacing) * tickSpacing;\n}\nfunction getMaxTick(tickSpacing) {\n return Math.floor(math_1.TickMath.MAX_TICK / tickSpacing) * tickSpacing;\n}\nfunction getMaxLiquidityPerTick(tickSpacing) {\n return math_1.MAX_UINT_128.div((getMaxTick(tickSpacing) - getMinTick(tickSpacing)) / tickSpacing + 1);\n}\nfunction rangeKey(tickLower, tickUpper) {\n return shiftLeft((0, math_1.asUint24)(tickLower), 24) + (0, math_1.asUint24)(tickUpper);\n}\nfunction orderKey(tick, nonce) {\n return shiftLeft((0, math_1.asUint24)(tick), 24) + nonce;\n}\nfunction shiftLeft(x, n) {\n return x * Math.pow(2, n);\n}\nfunction shiftRight(x, n) {\n return Math.floor(x / Math.pow(2, n));\n}\nconst MAX_UINT_24 = shiftLeft(1, 24) - 1;\nconst MAX_UINT_48 = shiftLeft(1, 48) - 1;\nfunction parseTicks(key) {\n if (key > MAX_UINT_48) {\n throw new calculationError_1.CalculationError('Not 48-bit key', { key });\n }\n const tickLower = (0, math_1.asInt24)(shiftRight(key, 24));\n const tickUpper = (0, math_1.asInt24)(key & MAX_UINT_24);\n return { tickLower, tickUpper };\n}\nfunction parseOrderTickNonce(key) {\n if (key > MAX_UINT_48) {\n throw new calculationError_1.CalculationError('Not 48-bit key', { key });\n }\n const tick = (0, math_1.asInt24)(shiftRight(key, 24));\n const nonce = key & MAX_UINT_24;\n return { tick, nonce };\n}\nfunction normalizeTick(originTick, tickSpacing) {\n return ethers_1.BigNumber.from(originTick).div(tickSpacing).mul(tickSpacing).toNumber();\n}\nfunction solidityRequire(condition, message) {\n if (!condition) {\n throw new synfError_1.SynfError(message ?? 'Solidity require failed');\n }\n}\nfunction tickDeltaToAlphaWad(tickDelta) {\n return math_1.TickMath.getWadAtTick(tickDelta);\n}\nfunction alphaWadToTickDelta(alphaWad) {\n return math_1.TickMath.getTickAtPWad(alphaWad) + 1;\n}\nfunction decomposePbitmap(pbitmap) {\n const bits = [];\n for (let i = 0; i < constants_1.MAX_POSITION_NUM; i++) {\n if (!pbitmap.and(math_1.ONE.shl(i)).isZero()) {\n bits.push(i);\n }\n }\n return bits;\n}\nfunction isEthersArray(obj) {\n if (obj instanceof Array) {\n return obj.length === Object.keys(obj).length;\n }\n return false;\n}\nfunction isEthersTypeChainStruct(obj) {\n if (obj instanceof Array) {\n return obj.length !== Object.keys(obj).length;\n }\n return false;\n}\nfunction trimObj(obj) {\n if (isEthersTypeChainStruct(obj)) {\n const ret = {};\n Object.keys(obj).forEach((key, i) => {\n if (i >= obj.length) {\n ret[key] = trimObj(obj[key]);\n }\n });\n return ret;\n }\n else if (isEthersArray(obj)) {\n return obj.map((item) => trimObj(item));\n }\n else {\n return obj;\n }\n}\nfunction formatExpiry(expiry) {\n return expiry === constants_1.PERP_EXPIRY ? 'PERP' : moment_1.default.utc(expiry * 1000).format('yyyyMMDD');\n}\nfunction dateExpiry2Ts(expiry) {\n if (expiry === '0' || expiry.toUpperCase() === 'PERPETUAL' || expiry.toUpperCase() === 'PERP') {\n return constants_1.PERP_EXPIRY;\n }\n return moment_1.default.utc(expiry, 'YYYYMMDD').unix();\n}\nfunction getTokenSymbol(base, quote) {\n const baseSymbol = typeof base === 'string' ? base : base.symbol;\n const quoteSymbol = typeof quote === 'string' ? quote : quote.symbol;\n return { baseSymbol, quoteSymbol };\n}\nasync function getTokenInfo(instrumentIdentifier, ctx) {\n const call1 = typeof instrumentIdentifier.baseSymbol === 'string'\n ? ctx.getTokenInfo(instrumentIdentifier.baseSymbol)\n : instrumentIdentifier.baseSymbol;\n const call2 = typeof instrumentIdentifier.quoteSymbol === 'string'\n ? ctx.getTokenInfo(instrumentIdentifier.quoteSymbol)\n : instrumentIdentifier.quoteSymbol;\n const [baseTokenInfo, quoteTokenInfo] = await Promise.all([call1, call2]);\n return { baseTokenInfo, quoteTokenInfo };\n}\nfunction isEmptyPortfolio(portfolio) {\n return portfolio.orders.size === 0 && portfolio.ranges.size === 0 && portfolio.position.size.isZero();\n}\nfunction isCexMarket(marketType) {\n return marketType === enum_1.MarketType.LINK || marketType === enum_1.MarketType.EMG || marketType === enum_1.MarketType.PYTH;\n}\nfunction sizeToSide(size) {\n if (size.isNegative()) {\n return enum_1.Side.SHORT;\n }\n else if (size.isZero()) {\n return enum_1.Side.FLAT;\n }\n else {\n return enum_1.Side.LONG;\n }\n}\nfunction signOfSide(side) {\n switch (side) {\n case enum_1.Side.LONG:\n return 1;\n case enum_1.Side.SHORT:\n return -1;\n case enum_1.Side.FLAT:\n return 0;\n default:\n throw new synfError_1.SynfError(`Invalid side: ${side}`);\n }\n}\nfunction isByBase(size) {\n return 'base' in size;\n}\nfunction isPosition(info) {\n return 'size' in info;\n}\nfunction isPortfolio(info) {\n return 'position' in info;\n}\nfunction isInstrument(instrument) {\n return 'instrumentAddr' in instrument;\n}\nfunction toPopulatedTxOverrides(txOptions) {\n if (!txOptions) {\n return {};\n }\n const _txOptions = {\n ...txOptions,\n };\n if (_txOptions.signer) {\n if (_txOptions.from === undefined) {\n _txOptions.from = _txOptions.signer.getAddress();\n }\n delete _txOptions['signer'];\n }\n if (_txOptions.blockTag) {\n delete _txOptions['blockTag'];\n }\n if (_txOptions.enableGasPrice) {\n delete _txOptions['enableGasPrice'];\n }\n if (_txOptions.disableGasLimit) {\n delete _txOptions['disableGasLimit'];\n }\n if (_txOptions.gasLimitMultiple) {\n delete _txOptions['gasLimitMultiple'];\n }\n if (_txOptions.gasPriceMultiple) {\n delete _txOptions['gasPriceMultiple'];\n }\n return _txOptions;\n}\nfunction toPortfolio(instrumentAddr, expiry, traderAddr, resp) {\n const position = factory.createPosition({\n instrumentAddr,\n expiry,\n traderAddr,\n ...trimObj(resp.portfolio.position),\n });\n const oids = resp.portfolio.oids;\n const rids = resp.portfolio.rids;\n const rawOrdersFromContract = resp.portfolio.orders;\n const rawRangesFromContract = resp.portfolio.ranges;\n const ordersTaken = resp.portfolio.ordersTaken;\n const orders = new Map();\n const ranges = new Map();\n for (let i = 0; i < oids.length; i++) {\n const { tick, nonce } = parseOrderTickNonce(oids[i]);\n const order = factory.createOrder({\n balance: rawOrdersFromContract[i].balance,\n size: rawOrdersFromContract[i].size,\n instrumentAddr,\n expiry,\n taken: ordersTaken[i] ?? math_1.ZERO,\n tick,\n nonce,\n traderAddr,\n });\n orders.set(oids[i], order);\n }\n for (let i = 0; i < rids.length; i++) {\n const { tickLower, tickUpper } = parseTicks(rids[i]);\n const range = factory.createRange({\n liquidity: rawRangesFromContract[i].liquidity,\n entryFeeIndex: rawRangesFromContract[i].entryFeeIndex,\n balance: rawRangesFromContract[i].balance,\n sqrtEntryPX96: rawRangesFromContract[i].sqrtEntryPX96,\n tickLower,\n tickUpper,\n instrumentAddr,\n expiry,\n traderAddr,\n });\n ranges.set(rids[i], range);\n }\n const portfolio = {\n instrumentAddr: instrumentAddr.toLowerCase(),\n traderAddr: traderAddr.toLowerCase(),\n expiry,\n ranges,\n orders,\n isEmpty: position.size.eq(0) && ranges.size === 0 && orders.size === 0,\n blockInfo: trimObj(resp.blockInfo),\n position,\n };\n return portfolio;\n}\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./modules\"), exports);\n__exportStar(require(\"./types\"), exports);\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nrequire(\"@synfutures/sdks-perp-launchpad\");\n__exportStar(require(\"./perpLuanchpadDataSource.interface\"), exports);\n__exportStar(require(\"./perpLuanchpadDataSource.module\"), exports);\n__exportStar(require(\"./perpLuanchpadDataSource.plugin\"), exports);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PerpLuanchpadDataSourceModule = void 0;\nconst ethers_1 = require(\"ethers\");\nconst lodash_1 = require(\"lodash\");\nconst context_1 = require(\"@derivation-tech/context\");\nconst graph_1 = require(\"@derivation-tech/context/dist/utils/graph\");\nclass PerpLuanchpadDataSourceModule extends graph_1.Graph {\n constructor(ctx, endpoint, retryOption) {\n super(endpoint, retryOption);\n this.ctx = ctx;\n }\n buildQueryEventCondition(param) {\n const fn = (str) => `\"${str}\"`;\n let accountCondition = '';\n let eventCondition = '';\n if (param.eventNames && param.eventNames.length > 0) {\n eventCondition = `name_in: [${param.eventNames.map((e) => fn(e)).join(',')}],`;\n }\n if (param.accounts && param.accounts.length > 0) {\n accountCondition = `account_in: [${param.accounts.map((t) => fn(t.toLowerCase())).join(',')}],`;\n }\n const startTsCondition = `timestamp_gte: ${param.startTs || 0},`;\n const endTsCondition = `timestamp_lt: ${param.endTs || (0, context_1.now)()},`;\n const condition = `${eventCondition}${accountCondition}${startTsCondition}${endTsCondition}`;\n return `where: {${condition} id_gt: $lastID}, `;\n }\n async getAllVaultInfo() {\n const graphQL = `query{\n vaults{\n id\n name\n manager\n quote\n stage\n liveThreshold\n minQuoteAmount\n }\n }`;\n const vaults = (await this.query(graphQL, 0, graph_1.GRAPH_PAGE_SIZE)).vaults;\n const result = [];\n const quoteAddrs = new Set(vaults.map((v) => v.quote.toLowerCase()));\n const tokenInfos = await Promise.all(Array.from(quoteAddrs).map((addr) => this.ctx.getTokenInfo(addr)));\n const portfolioValues = await Promise.all(vaults.map((v) => this.ctx.perpLaunchpad.getPortfolioValue(v.id)));\n for (const vault of vaults) {\n result.push({\n vaultAddr: vault.id,\n vaultName: vault.name,\n managerAddr: vault.manager,\n quoteToken: tokenInfos.find((t) => t.address.toLowerCase() === vault.quote.toLowerCase()),\n stage: vault.stage,\n portfolioValue: portfolioValues.find((_, idx) => vaults[idx].id === vault.id),\n liveThreshold: ethers_1.BigNumber.from(vault.liveThreshold),\n minQuoteAmount: ethers_1.BigNumber.from(vault.minQuoteAmount),\n });\n }\n return result;\n }\n async getUserDepositInfo(account) {\n const graphQL = `query{\n _meta{\n block{\n number\n timestamp\n }\n }\n users(where: {address: \"${account.toLowerCase()}\"}) {\n address\n vault {\n id\n totalShare\n }\n share\n entryValue\n }\n }`;\n const result = await this.query(graphQL, 0, graph_1.GRAPH_PAGE_SIZE);\n const depositInfos = [];\n const vaultAddrs = Array.from(new Set(result.users.map((d) => d.vault.id)));\n const portfolioValues = await Promise.all(vaultAddrs.map((v) => this.ctx.perpLaunchpad.getPortfolioValue(v)));\n const depositWithdraws = await this.getUserDepositWithdrawHistory(account);\n for (const deposit of result.users) {\n const share = ethers_1.BigNumber.from(deposit.share);\n const totalShare = ethers_1.BigNumber.from(deposit.vault.totalShare);\n const entryValue = ethers_1.BigNumber.from(deposit.entryValue);\n const holdingValue = totalShare.eq(context_1.ZERO)\n ? context_1.ZERO\n : portfolioValues\n .find((_, idx) => vaultAddrs[idx] === deposit.vault.id)\n .mul(deposit.share)\n .div(totalShare);\n const allTimeEarned = depositWithdraws\n .filter((d) => d.vaultAddr === deposit.vault.id)\n .reduce((acc, d) => (d.type === 'WITHDRAW' ? acc.add(d.quoteAmount) : acc.sub(d.quoteAmount)), context_1.ZERO)\n .add(holdingValue);\n depositInfos.push({\n user: deposit.address,\n vault: deposit.vault.id,\n share,\n entryValue,\n holdingValue,\n allTimeEarned,\n });\n }\n return {\n depositInfos: depositInfos,\n blockInfo: {\n height: Number(result._meta.block.number),\n timestamp: Number(result._meta.block.timestamp),\n },\n };\n }\n async getUserDepositWithdrawHistory(account) {\n const graphQL = `query($skip: Int, $first: Int, $lastID: String){\n depositWithdraws(first: $first, where:{\n user_: {address: \"${account.toLowerCase()}\"}\n id_gt: $lastID,\n }) {\n type\n txHash\n vault\n user{\n address\n }\n timestamp\n isNative\n quantity\n }\n }`;\n const depositWithdraws = await this.queryAll(graphQL, graph_1.GRAPH_PAGE_SIZE, true);\n const result = [];\n for (const depositWithdraw of depositWithdraws) {\n result.push({\n type: depositWithdraw.type,\n txHash: depositWithdraw.txHash,\n vaultAddr: depositWithdraw.vault,\n userAddr: depositWithdraw.user.address,\n timestamp: Number(depositWithdraw.timestamp),\n isNative: depositWithdraw.isNative,\n quoteAmount: ethers_1.BigNumber.from(depositWithdraw.quantity),\n });\n }\n return result;\n }\n async getArrears(account) {\n const graphQL = `query($skip: Int, $first: Int, $lastID: String){\n arrears(skip: $skip, first: $first, where:{\n user_: {\n address: \"${account.toLowerCase()}\"\n }\n }){\n user {\n id\n }\n vault\n createdTimestamp\n releasedTimestamp\n phase\n share\n }\n }`;\n const arrears = await this.queryAll(graphQL, graph_1.GRAPH_PAGE_SIZE, true);\n const result = [];\n for (const arrear of arrears) {\n result.push({\n userAddr: arrear.user,\n vaultAddr: arrear.vault,\n createdTimestamp: Number(arrear.createdTimestamp),\n releasedTimestamp: Number(arrear.releasedTimestamp),\n share: ethers_1.BigNumber.from(arrear.share),\n });\n }\n return result;\n }\n async getArrear(account, vault) {\n const arrears = await this.getArrears(account);\n return arrears\n .filter((p) => p.vaultAddr === vault)\n .reduce((prev, curr) => (prev.createdTimestamp > curr.createdTimestamp ? prev : curr), {\n userAddr: account,\n vaultAddr: vault,\n createdTimestamp: 0,\n releasedTimestamp: 0,\n share: context_1.ZERO,\n });\n }\n async getHistoryEvents(param) {\n const queryAll = param.size === undefined && param.page === undefined;\n const first = param.size || 1000;\n const skip = (param.page || 0) * first;\n if (param.eventNames === undefined || param.eventNames.length === 0) {\n param.eventNames = ['Stake', 'Unstake', 'Release'];\n }\n let condition = this.buildQueryEventCondition(param);\n condition = queryAll ? condition : condition + 'orderBy: timestamp, orderDirection: desc';\n const graphQL = `query($skip: Int, $first: Int, $lastID: String){\n transactionEvents(skip: $skip, first: $first, ${condition}){\n id\n name\n args\n account\n logIndex\n blockNumber\n timestamp\n transaction {\n id\n }\n }\n }`;\n let transactionEvents;\n if (queryAll) {\n transactionEvents = await this.queryAll(graphQL, graph_1.GRAPH_PAGE_SIZE, true);\n }\n else {\n const resp = await this.query(graphQL, skip, first);\n transactionEvents = resp.transactionEvents;\n }\n let result = [];\n for (const txEvent of transactionEvents) {\n result.push({\n id: txEvent.id,\n txHash: txEvent.transaction.id,\n account: txEvent.account,\n blockNumber: Number(txEvent.blockNumber),\n timestamp: Number(txEvent.timestamp),\n logIndex: Number(txEvent.logIndex),\n name: txEvent.name,\n args: JSON.parse(txEvent.args),\n });\n }\n result = (0, lodash_1.orderBy)(result, ['blockNumber', 'logIndex'], ['desc', 'desc']);\n return result;\n }\n}\nexports.PerpLuanchpadDataSourceModule = PerpLuanchpadDataSourceModule;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createStakingDataSourcePlugin = exports.perpLaunchpadDataSourcePlugin = void 0;\nconst context_1 = require(\"@derivation-tech/context\");\nconst perpLuanchpadDataSource_module_1 = require(\"./perpLuanchpadDataSource.module\");\nconst sdks_perp_launchpad_1 = require(\"@synfutures/sdks-perp-launchpad\");\nconst perpLaunchpadDataSourcePlugin = (endpoint) => {\n return {\n install(ctx) {\n ctx.perpLaunchpadDataSource = new perpLuanchpadDataSource_module_1.PerpLuanchpadDataSourceModule(ctx, endpoint);\n },\n };\n};\nexports.perpLaunchpadDataSourcePlugin = perpLaunchpadDataSourcePlugin;\nconst createStakingDataSourcePlugin = (chainIdOrName, providerUrlOrWss, endpoint) => {\n return new context_1.Context(chainIdOrName, providerUrlOrWss)\n .use((0, sdks_perp_launchpad_1.perpLaunchpadPlugin)())\n .use((0, exports.perpLaunchpadDataSourcePlugin)(endpoint));\n};\nexports.createStakingDataSourcePlugin = createStakingDataSourcePlugin;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || (function () {\n var ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n };\n return function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.VAULT_ABI = void 0;\nconst VAULT_ABI = __importStar(require(\"./Vault.json\"));\nexports.VAULT_ABI = VAULT_ABI;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.VAULT_FACTORY_ADDRESSES = void 0;\nconst context_1 = require(\"@derivation-tech/context\");\nexports.VAULT_FACTORY_ADDRESSES = {\n [context_1.CHAIN_ID.BASE]: '0xEFB4fce343B56741C6bECE6C5bAfB0eC564B914C',\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Stage = void 0;\nvar Stage;\n(function (Stage) {\n Stage[\"UPCOMING\"] = \"UPCOMING\";\n Stage[\"LIVE\"] = \"LIVE\";\n Stage[\"SUSPENDED\"] = \"SUSPENDED\";\n Stage[\"INVALID\"] = \"INVALID\";\n})(Stage || (exports.Stage = Stage = {}));\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./vaultError\"), exports);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.VaultError = void 0;\nclass VaultError extends Error {\n constructor(message) {\n super(message);\n this.name = 'Snapshot';\n }\n}\nexports.VaultError = VaultError;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nvar __importStar = (this && this.__importStar) || (function () {\n var ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n };\n return function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.utils = void 0;\nrequire(\"@derivation-tech/tx-plugin\");\n__exportStar(require(\"./modules\"), exports);\n__exportStar(require(\"./constants\"), exports);\n__exportStar(require(\"./enum\"), exports);\nexports.utils = __importStar(require(\"./utils\"));\n__exportStar(require(\"./errors\"), exports);\n__exportStar(require(\"./parser\"), exports);\n__exportStar(require(\"./abis\"), exports);\n__exportStar(require(\"./typechain\"), exports);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PerpLaunchpadFactory = void 0;\nconst ethers_1 = require(\"ethers\");\nconst sdks_perp_1 = require(\"@synfutures/sdks-perp\");\nconst typechain_1 = require(\"../typechain\");\nconst constants_1 = require(\"../constants\");\nconst enum_1 = require(\"../enum\");\nconst errors_1 = require(\"../errors\");\nclass PerpLaunchpadFactory {\n constructor(ctx) {\n this.ctx = ctx;\n const address = constants_1.VAULT_FACTORY_ADDRESSES[ctx.chainId];\n if (address) {\n this._perpLaunchpadFactory = typechain_1.VaultFactory__factory.connect(address, ctx.provider);\n }\n }\n get vaultFactory() {\n if (!this._perpLaunchpadFactory) {\n throw new Error('Unknown vault network');\n }\n return this._perpLaunchpadFactory;\n }\n async getAllVaults(overrides) {\n return await this.vaultFactory.getAllVaults(overrides ?? {});\n }\n async getVaultAddr(quoteAddr, managerAddr, name, overrides) {\n const index = ethers_1.ethers.utils.keccak256(ethers_1.ethers.utils.defaultAbiCoder.encode(['string', 'string', 'string'], [quoteAddr, managerAddr, name]));\n return await this.vaultFactory.indexToVault(index, overrides ?? {});\n }\n async getTotalVaults(overrides) {\n return await this.vaultFactory.totalVaults(overrides ?? {});\n }\n async createVault(quoteAddr, managerAddr, name, maxRange, maxOrder, maxPair, commissionRatio, liveThreshold, txOptions) {\n const tokenInfo = await this.ctx.getTokenInfo(quoteAddr);\n const tx = await this.vaultFactory.populateTransaction.createVault(managerAddr, name, {\n stage: 0,\n quote: quoteAddr,\n decimals: tokenInfo.decimals,\n maxPair,\n maxRange,\n maxOrder,\n commissionRatio,\n minQuoteAmount: 0,\n liveThreshold: ethers_1.ethers.utils.parseUnits(liveThreshold.toString(), tokenInfo.decimals),\n });\n await this.ctx.tx.sendTx(tx, txOptions);\n const vaultAddr = await this.getVaultAddr(quoteAddr, managerAddr, name, sdks_perp_1.utils.toPopulatedTxOverrides(txOptions));\n if (vaultAddr === '0x') {\n throw new errors_1.VaultError('Vault not found: ' + vaultAddr);\n }\n return vaultAddr;\n }\n async setVaultManager(vaultAddr, managerAddr, txOptions) {\n const ptx = await this.vaultFactory.populateTransaction.setVaultManager(vaultAddr, managerAddr, sdks_perp_1.utils.toPopulatedTxOverrides(txOptions));\n return await this.ctx.tx.sendTx(ptx, txOptions);\n }\n async setVaultStage(vaultAddr, stage, txOptions) {\n let stageNum;\n switch (stage) {\n case enum_1.Stage.UPCOMING:\n stageNum = 0;\n break;\n case enum_1.Stage.LIVE:\n stageNum = 1;\n break;\n case enum_1.Stage.SUSPENDED:\n stageNum = 2;\n break;\n case enum_1.Stage.INVALID:\n stageNum = 3;\n break;\n }\n const ptx = await this.vaultFactory.populateTransaction.setVaultStage(vaultAddr, stageNum, sdks_perp_1.utils.toPopulatedTxOverrides(txOptions));\n return await this.ctx.tx.sendTx(ptx, txOptions);\n }\n async setVaultPortfolioLimit(vaultAddr, maxPair, maxRange, maxOrder, txOptions) {\n const ptx = await this.vaultFactory.populateTransaction.setVaultPortfolioLimit(vaultAddr, maxPair, maxRange, maxOrder, sdks_perp_1.utils.toPopulatedTxOverrides(txOptions));\n return await this.ctx.tx.sendTx(ptx, txOptions);\n }\n async setVaultMinQuoteAmount(vaultAddr, minQuoteAmount, txOptions) {\n const configuration = await typechain_1.Vault__factory.connect(vaultAddr, this.ctx.provider).getConfiguration(sdks_perp_1.utils.toPopulatedTxOverrides(txOptions));\n const ptx = await this.vaultFactory.populateTransaction.setVaultMinQuoteAmount(vaultAddr, ethers_1.ethers.utils.parseUnits(minQuoteAmount.toString(), configuration.decimals), sdks_perp_1.utils.toPopulatedTxOverrides(txOptions));\n return await this.ctx.tx.sendTx(ptx, txOptions);\n }\n async setVaultCommissionRatio(vaultAddr, ratio, txOptions) {\n const ptx = await this.vaultFactory.populateTransaction.setVaultCommissionRatio(vaultAddr, ratio, sdks_perp_1.utils.toPopulatedTxOverrides(txOptions));\n return await this.ctx.tx.sendTx(ptx, txOptions);\n }\n async setVaultLiveThreshold(vaultAddr, liveThreshold, txOptions) {\n const configuration = await typechain_1.Vault__factory.connect(vaultAddr, this.ctx.provider).getConfiguration(sdks_perp_1.utils.toPopulatedTxOverrides(txOptions));\n const ptx = await this.vaultFactory.populateTransaction.setVaultLiveThreshold(vaultAddr, ethers_1.ethers.utils.parseUnits(liveThreshold.toString(), configuration.decimals), sdks_perp_1.utils.toPopulatedTxOverrides(txOptions));\n return await this.ctx.tx.sendTx(ptx, txOptions);\n }\n}\nexports.PerpLaunchpadFactory = PerpLaunchpadFactory;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./perplaunchpad.interface\"), exports);\n__exportStar(require(\"./perplaunchpad.module\"), exports);\n__exportStar(require(\"./perplaunchpad.plugin\"), exports);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PerpLaunchpadModule = void 0;\nconst ethers_1 = require(\"ethers\");\nconst utils_1 = require(\"ethers/lib/utils\");\nconst sdks_perp_1 = require(\"@synfutures/sdks-perp\");\nconst typechain_1 = require(\"../typechain\");\nconst context_1 = require(\"@derivation-tech/context\");\nconst utils_2 = require(\"../utils\");\nconst factory_1 = require(\"./factory\");\nconst errors_1 = require(\"../errors\");\nconst across_plugin_1 = require(\"@derivation-tech/across-plugin\");\nclass PerpLaunchpadModule {\n constructor(ctx) {\n this.ctx = ctx;\n this.factory = new factory_1.PerpLaunchpadFactory(ctx);\n }\n getVault(vault) {\n return typechain_1.Vault__factory.connect(vault, this.ctx.provider);\n }\n async getQuoteAddr(vault, overrides) {\n return (await this.getVault(vault).getConfiguration(overrides ?? {})).quote;\n }\n async getQuoteToken(vault, overrides) {\n return this.ctx.getTokenInfo(await this.getQuoteAddr(vault, overrides ?? {}));\n }\n async getPortfolioValue(vault, overrides) {\n return await this.getVault(vault).getPortfolioValue(overrides ?? {});\n }\n async getUserStake(vault, user, overrides) {\n return await this.getVault(vault).getStake(user, overrides ?? {});\n }\n async getOwedQuote(vault, user, overrides) {\n const vaultContract = this.getVault(vault);\n const share = await vaultContract.owedShareOf(user, overrides ?? {});\n if (share.eq(context_1.ZERO)) {\n return {\n netValue: context_1.ZERO,\n commissionFee: context_1.ZERO,\n };\n }\n return await vaultContract.getOwedQuote(user, overrides ?? {});\n }\n async inquireWithdrawal(vault, user, quoteAmount, overrides) {\n const vaultInstance = this.getVault(vault);\n try {\n const [totalValue, totalShares] = await Promise.all([\n vaultInstance.getPortfolioValue(overrides ?? {}),\n vaultInstance.totalShare(overrides ?? {}),\n ]);\n const shares = quoteAmount.mul(totalShares).div(totalValue);\n return await vaultInstance.inquireWithdrawal(user, shares, overrides ?? {});\n }\n catch (e) {\n throw new errors_1.VaultError(JSON.stringify(e, null, 2));\n }\n }\n async getLiveThreshold(vault, overrides) {\n const vaultInstance = this.getVault(vault);\n const quoteAddr = await this.getQuoteAddr(vault, overrides ?? {});\n const quoteToken = await this.ctx.getTokenInfo(quoteAddr);\n return Number((0, context_1.formatUnits)((await vaultInstance.getConfiguration(overrides ?? {})).liveThreshold, quoteToken.decimals));\n }\n async deposit(vault, isNative, quoteAmount, txOptions) {\n const quoteToken = await this.getQuoteToken(vault, sdks_perp_1.utils.toPopulatedTxOverrides(txOptions));\n const vaultInstance = this.getVault(vault);\n const quoteAmountConver = sdks_perp_1.NumericConverter.toContractQuoteAmount(quoteAmount, quoteToken.decimals);\n if (isNative) {\n const tx = await vaultInstance.populateTransaction.deposit(quoteAmountConver, {\n value: quoteAmountConver,\n ...sdks_perp_1.utils.toPopulatedTxOverrides(txOptions),\n });\n return await this.ctx.tx.sendTx(tx, txOptions);\n }\n else {\n const tx = await vaultInstance.populateTransaction.deposit(quoteAmountConver, sdks_perp_1.utils.toPopulatedTxOverrides(txOptions));\n return await this.ctx.tx.sendTx(tx, txOptions);\n }\n }\n async withdraw(vault, isNative, shares, txOptions) {\n const vaultInstance = this.getVault(vault);\n const tx = await vaultInstance.populateTransaction.withdraw(isNative, shares, sdks_perp_1.utils.toPopulatedTxOverrides(txOptions));\n return await this.ctx.tx.sendTx(tx, txOptions);\n }\n async withdrawQuote(vault, isNative, quoteAmount, txOptions) {\n const vaultInstance = this.getVault(vault);\n const quoteToken = await this.getQuoteToken(vault, sdks_perp_1.utils.toPopulatedTxOverrides(txOptions));\n const quoteAmountConver = sdks_perp_1.NumericConverter.toContractQuoteAmount(quoteAmount, quoteToken.decimals);\n const traderAddr = txOptions?.from ?? (await txOptions?.signer?.getAddress());\n if (!traderAddr) {\n throw new errors_1.VaultError('TxOptions.signer or txOptions.from is required');\n }\n const [totalValue, totalShare, stake] = await Promise.all([\n vaultInstance.getPortfolioValue(sdks_perp_1.utils.toPopulatedTxOverrides(txOptions)),\n vaultInstance.totalShare(sdks_perp_1.utils.toPopulatedTxOverrides(txOptions)),\n vaultInstance.getStake(traderAddr, sdks_perp_1.utils.toPopulatedTxOverrides(txOptions)),\n ]);\n const share = quoteAmountConver.mul(totalShare).add(totalValue.sub(context_1.ONE)).div(totalValue);\n const tx = await vaultInstance.populateTransaction.withdraw(isNative, share.gt(stake.share) ? stake.share : share, sdks_perp_1.utils.toPopulatedTxOverrides(txOptions));\n return await this.ctx.tx.sendTx(tx, txOptions);\n }\n async payoff(vault, addrLists, txOptions) {\n const vaultInstance = this.getVault(vault);\n const tx = await vaultInstance.populateTransaction.payoff(addrLists, sdks_perp_1.utils.toPopulatedTxOverrides(txOptions));\n return await this.ctx.tx.sendTx(tx, txOptions);\n }\n async launch(vault, baseSymbol, mtype, instrument, addParam, txOptions) {\n const tokenInfo = await this.ctx.getTokenInfo(baseSymbol);\n const abiCoder = new utils_1.AbiCoder();\n const vaultInstance = this.getVault(vault);\n const quoteAddr = await this.getQuoteAddr(vault, sdks_perp_1.utils.toPopulatedTxOverrides(txOptions));\n const tx = await vaultInstance.populateTransaction.launch(mtype, instrument, abiCoder.encode([mtype === 'LINK' ? 'string' : 'address', 'address'], [mtype === 'LINK' ? baseSymbol : tokenInfo.address, quoteAddr]), sdks_perp_1.utils.encodeAddParam(addParam), sdks_perp_1.utils.toPopulatedTxOverrides(txOptions));\n return await this.ctx.tx.sendTx(tx, txOptions);\n }\n async add(vault, instrument, addParam, txOptions) {\n const vaultInstance = this.getVault(vault);\n const tx = await vaultInstance.populateTransaction.add(instrument, sdks_perp_1.utils.encodeAddParam(addParam), sdks_perp_1.utils.toPopulatedTxOverrides(txOptions));\n return await this.ctx.tx.sendTx(tx, txOptions);\n }\n async remove(vault, instrument, removeParam, txOptions) {\n const vaultInstance = this.getVault(vault);\n const tx = await vaultInstance.populateTransaction.remove(instrument, sdks_perp_1.utils.encodeRemoveParam(removeParam), sdks_perp_1.utils.toPopulatedTxOverrides(txOptions));\n return await this.ctx.tx.sendTx(tx, txOptions);\n }\n async trade(vault, instrument, tradeParam, txOptions) {\n const vaultInstance = this.getVault(vault);\n const tx = await vaultInstance.populateTransaction.trade(instrument, sdks_perp_1.utils.encodeTradeParam(tradeParam), sdks_perp_1.utils.toPopulatedTxOverrides(txOptions));\n return await this.ctx.tx.sendTx(tx, txOptions);\n }\n async place(vault, instrument, placeParam, txOptions) {\n const vaultInstance = this.getVault(vault);\n const tx = await vaultInstance.populateTransaction.place(instrument, sdks_perp_1.utils.encodePlaceParam(placeParam), sdks_perp_1.utils.toPopulatedTxOverrides(txOptions));\n return await this.ctx.tx.sendTx(tx, txOptions);\n }\n async batchPlace(vault, instrument, batchPlaceParam, txOptions) {\n const vaultInstance = this.getVault(vault);\n const tx = await vaultInstance.populateTransaction.batchPlace(instrument, sdks_perp_1.utils.encodeBatchPlaceParam(batchPlaceParam.expiry, batchPlaceParam.size, batchPlaceParam.leverage, batchPlaceParam.ticks, batchPlaceParam.ratios, batchPlaceParam.deadline), sdks_perp_1.utils.toPopulatedTxOverrides(txOptions));\n return await this.ctx.tx.sendTx(tx, txOptions);\n }\n async fill(vault, instrument, fillParam, txOptions) {\n const vaultInstance = this.getVault(vault);\n const tx = await vaultInstance.populateTransaction.fill(instrument, sdks_perp_1.utils.encodeFillParam(fillParam), sdks_perp_1.utils.toPopulatedTxOverrides(txOptions));\n return await this.ctx.tx.sendTx(tx, txOptions);\n }\n async batchCancel(vault, instrument, expiry, ticks, txOptions) {\n const vaultInstance = this.getVault(vault);\n const tx = await vaultInstance.populateTransaction.batchCancel(instrument, expiry, (0, utils_2.encodeBatchCancelTicks)(ticks), sdks_perp_1.utils.toPopulatedTxOverrides(txOptions));\n return await this.ctx.tx.sendTx(tx, txOptions);\n }\n async liquidate(vault, instrument, liquidateParam, txOptions) {\n const vaultInstance = this.getVault(vault);\n const tx = await vaultInstance.populateTransaction.liquidate(instrument, liquidateParam.expiry, liquidateParam.target, liquidateParam.size, liquidateParam.amount, sdks_perp_1.utils.toPopulatedTxOverrides(txOptions));\n return this.ctx.tx.sendTx(tx, txOptions);\n }\n async settle(vault, instrument, expiry, txOptions) {\n const vaultInstance = this.getVault(vault);\n const tx = await vaultInstance.populateTransaction.settle(instrument, expiry, sdks_perp_1.utils.toPopulatedTxOverrides(txOptions));\n return this.ctx.tx.sendTx(tx, txOptions);\n }\n async collectCommission(vault, isNative, amount, txOptions) {\n const vaultInstance = this.getVault(vault);\n const tx = await vaultInstance.populateTransaction.collectCommission(isNative, amount, sdks_perp_1.utils.toPopulatedTxOverrides(txOptions));\n return this.ctx.tx.sendTx(tx, txOptions);\n }\n async acrossDepositFor(originChainId, destinationChainId, fromToken, toToken, vaultAddress, userAddress, amount, txOptions) {\n const recipient = across_plugin_1.MULTICALL_HANDLER_ADDRESS[destinationChainId];\n const preMessage = (0, utils_2.generateMessageForMulticallHandler)(userAddress, vaultAddress, toToken, amount);\n const suggestedFees = await this.ctx.across.getSuggestedFees({\n originChainId,\n destinationChainId,\n token: fromToken,\n amount,\n recipient,\n message: preMessage,\n });\n const outputAmount = amount.sub(ethers_1.BigNumber.from(suggestedFees.totalRelayFee.total));\n const message = (0, utils_2.generateMessageForMulticallHandler)(userAddress, vaultAddress, toToken, outputAmount);\n return await this.ctx.across.crosschain({\n suggestedFees: suggestedFees,\n fromChainId: originChainId,\n destinationChainId,\n inputToken: fromToken,\n inputAmount: amount,\n recipient,\n message,\n }, txOptions);\n }\n}\nexports.PerpLaunchpadModule = PerpLaunchpadModule;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createPerpLaunchpadPlugin = exports.perpLaunchpadPlugin = void 0;\nconst perplaunchpad_module_1 = require(\"./perplaunchpad.module\");\nconst context_1 = require(\"@derivation-tech/context\");\nconst tx_plugin_1 = require(\"@derivation-tech/tx-plugin\");\nconst across_plugin_1 = require(\"@derivation-tech/across-plugin\");\nconst perpLaunchpadPlugin = () => {\n return {\n install(ctx) {\n ctx.perpLaunchpad = new perplaunchpad_module_1.PerpLaunchpadModule(ctx);\n },\n };\n};\nexports.perpLaunchpadPlugin = perpLaunchpadPlugin;\nconst createPerpLaunchpadPlugin = (chainIdOrName, providerUrlOrWss, callOption) => {\n return new context_1.Context(chainIdOrName, providerUrlOrWss).use((0, exports.perpLaunchpadPlugin)()).use((0, tx_plugin_1.txPlugin)(callOption)).use((0, across_plugin_1.acrossPlugin)());\n};\nexports.createPerpLaunchpadPlugin = createPerpLaunchpadPlugin;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.VaultParser = void 0;\nconst context_1 = require(\"@derivation-tech/context\");\nconst ethers_1 = require(\"ethers\");\nconst utils_1 = require(\"ethers/lib/utils\");\nconst typechain_1 = require(\"./typechain\");\nconst utils_2 = require(\"./utils\");\nconst sdks_perp_1 = require(\"@synfutures/sdks-perp\");\nfunction formatArg(obj) {\n let str = '';\n for (const [k, v] of Object.entries(obj)) {\n if (v instanceof ethers_1.BigNumber) {\n if (k === 'limitTicks') {\n str += `minTickLower: ${v.toNumber() >> 24}, maxTickUpper: ${v.toNumber() & ((1 << 24) - 1)}, `;\n }\n else {\n str += `${k}: ${(0, utils_1.formatEther)(v)}, `;\n }\n }\n else if (typeof v === 'number') {\n if (k === 'expiry')\n str += `${k}: ${sdks_perp_1.utils.formatExpiry(v)}, `;\n else if (k.toLowerCase().includes('tick'))\n str += `${k}: ${(0, sdks_perp_1.formatTick)(v)}, `;\n else if (k === 'deadline')\n str += `${k}: ${(0, sdks_perp_1.formatTimestamp)(v)}, `;\n else\n str += `${k}: ${v.toString()}, `;\n }\n else if (typeof v === 'object') {\n str += `${k}: ${formatArg(v)}, `;\n }\n else {\n str += `${k}: ${v.toString()}, `;\n }\n }\n str =\n '{ ' +\n str\n .replace(/\\s/g, '')\n .split(',')\n .filter((str) => str !== '')\n .join(', ') +\n ' }';\n return str;\n}\nfunction isTransactionDescription(description) {\n return 'functionFragment' in description;\n}\nfunction isLogDescription(description) {\n return 'eventFragment' in description;\n}\nfunction isErrorDescription(description) {\n return 'errorFragment' in description;\n}\nclass VaultParser extends context_1.ContractParser {\n constructor(ctx, addressParser) {\n super(typechain_1.Vault__factory.createInterface(), addressParser);\n this.ctx = ctx;\n }\n async parseBaseArrayParam(description, param, value) {\n if (description.name === 'launch' && param.name === 'addArgs') {\n return formatArg(sdks_perp_1.utils.decodeAddParam([value[0], value[1]]));\n }\n else if (description.name === 'add' && param.name === 'args') {\n return formatArg(sdks_perp_1.utils.decodeAddParam([value[0], value[1]]));\n }\n else if (description.name === 'remove' && param.name === 'args') {\n return formatArg(sdks_perp_1.utils.decodeRemoveParam([value[0], value[1]]));\n }\n else if (description.name === 'trade' && param.name === 'args') {\n return formatArg(sdks_perp_1.utils.decodeTradeParam([value[0], value[1]]));\n }\n else if (description.name === 'place' && param.name === 'args') {\n return formatArg(sdks_perp_1.utils.decodePlaceParam([value[0], value[1]]));\n }\n else if (description.name === 'batchPlace' && param.name === 'args') {\n return formatArg(sdks_perp_1.utils.decodeBatchPlaceParam([value[0], value[1], value[2]]));\n }\n else if (description.name === 'batchPlace' && param.name === 'encodedTicks') {\n return formatArg((0, utils_2.decodeBatchCancelTicks)([value[0], value[1], value[2]]));\n }\n return await super.parseBaseArrayParam(description, param, value);\n }\n async parseBaseParam(description, param, data) {\n if (isTransactionDescription(description)) {\n return this.parseFunctionBaseParam(description, param, data);\n }\n else if (isLogDescription(description)) {\n return this.parseEventBaseParam(description, param, data);\n }\n else if (isErrorDescription(description)) {\n return this.parseErrorBaseParam(description, param, data);\n }\n else {\n return this.parseDefaultBaseParam(description, param, data);\n }\n }\n async parseFunctionBaseParam(description, param, data) {\n switch (param.name) {\n case 'arg': {\n switch (description.functionFragment.name) {\n case 'fill':\n return formatArg(sdks_perp_1.utils.decodeFillParam(data));\n default:\n return data.toString();\n }\n }\n default:\n return await this.parseDefaultBaseParam(description, param, data);\n }\n }\n async parseEventBaseParam(description, param, data) {\n switch (param.name) {\n default:\n return await this.parseDefaultBaseParam(description, param, data);\n }\n }\n async parseErrorBaseParam(description, param, data) {\n switch (param.name) {\n default:\n return await this.parseDefaultBaseParam(description, param, data);\n }\n }\n async parseDefaultBaseParam(description, param, data) {\n switch (param.name) {\n case 'expiry':\n return sdks_perp_1.utils.formatExpiry(data);\n case 'amount':\n case 'minAmount': {\n const quote = description.args['quote'] || description.args['token'];\n if (!quote)\n return (0, utils_1.formatEther)(data);\n const tokenInfo = await this.ctx.getTokenInfo(quote);\n return (0, context_1.formatUnits)(data, tokenInfo.decimals);\n }\n case 'balance':\n case 'tip':\n case 'fee':\n case 'entryNotional':\n case 'deltaQuote':\n case 'protocolFee':\n case 'involvedFund':\n case 'insuranceFund':\n case 'funding':\n case 'entryFeeIndex':\n case 'size':\n case 'totalLong':\n case 'totalShort':\n case 'deltaBase':\n case 'openInterests':\n case 'totalTaken':\n case 'taken':\n case 'mark':\n case 'limitPrice':\n case 'settlement':\n case 'entrySocialLossIndex':\n case 'entryFundingIndex':\n case 'longSocialLossIndex':\n case 'shortSocialLossIndex':\n case 'longFundingIndex':\n case 'shortFundingIndex':\n case 'liquidity':\n case 'requestedSize':\n case 'totalSize':\n case 'requested':\n case 'tragetLeverage':\n case 'defaultLeverage':\n case 'leverage':\n case 'amountDelta':\n return (0, utils_1.formatEther)(data);\n case 'validityRange':\n case 'adjustBand':\n return (0, context_1.formatUnits)(data, 4);\n case 'tick':\n case 'limitTick':\n case 'tickUpper':\n case 'tickLower':\n case 'lowerTick':\n case 'upperTick':\n case 'minTickLower':\n case 'maxTickUpper':\n return (0, sdks_perp_1.formatTick)(Number(data));\n case 'deadline':\n return (0, sdks_perp_1.formatTimestamp)(data);\n default:\n return data.toString();\n }\n }\n}\nexports.VaultParser = VaultParser;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.VaultFactory__factory = void 0;\nconst ethers_1 = require(\"ethers\");\nconst _abi = [\n {\n inputs: [\n {\n internalType: 'address',\n name: '_config',\n type: 'address',\n },\n {\n internalType: 'address',\n name: '_guardian',\n type: 'address',\n },\n {\n internalType: 'address',\n name: '_vaultBeacon',\n type: 'address',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'constructor',\n },\n {\n inputs: [],\n name: 'InvalidCommissionRatio',\n type: 'error',\n },\n {\n inputs: [],\n name: 'InvalidPortfolioLimit',\n type: 'error',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'suspicious',\n type: 'address',\n },\n ],\n name: 'NotVault',\n type: 'error',\n },\n {\n inputs: [],\n name: 'RenounceOwnershipDisabled',\n type: 'error',\n },\n {\n inputs: [],\n name: 'VaultAlreadyExists',\n type: 'error',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'address',\n name: 'vault',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'address',\n name: 'manager',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'string',\n name: 'name',\n type: 'string',\n },\n {\n components: [\n {\n internalType: 'enum Stage',\n name: 'stage',\n type: 'uint8',\n },\n {\n internalType: 'address',\n name: 'quote',\n type: 'address',\n },\n {\n internalType: 'uint8',\n name: 'decimals',\n type: 'uint8',\n },\n {\n internalType: 'uint8',\n name: 'maxPair',\n type: 'uint8',\n },\n {\n internalType: 'uint8',\n name: 'maxRange',\n type: 'uint8',\n },\n {\n internalType: 'uint8',\n name: 'maxOrder',\n type: 'uint8',\n },\n {\n internalType: 'uint16',\n name: 'commissionRatio',\n type: 'uint16',\n },\n {\n internalType: 'uint128',\n name: 'minQuoteAmount',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'liveThreshold',\n type: 'uint128',\n },\n ],\n indexed: false,\n internalType: 'struct Configuration',\n name: 'configuration',\n type: 'tuple',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'index',\n type: 'uint256',\n },\n ],\n name: 'CreateVault',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'uint8',\n name: 'version',\n type: 'uint8',\n },\n ],\n name: 'Initialized',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'previousOwner',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'newOwner',\n type: 'address',\n },\n ],\n name: 'OwnershipTransferred',\n type: 'event',\n },\n {\n inputs: [],\n name: 'config',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'manager',\n type: 'address',\n },\n {\n internalType: 'string',\n name: 'name',\n type: 'string',\n },\n {\n components: [\n {\n internalType: 'enum Stage',\n name: 'stage',\n type: 'uint8',\n },\n {\n internalType: 'address',\n name: 'quote',\n type: 'address',\n },\n {\n internalType: 'uint8',\n name: 'decimals',\n type: 'uint8',\n },\n {\n internalType: 'uint8',\n name: 'maxPair',\n type: 'uint8',\n },\n {\n internalType: 'uint8',\n name: 'maxRange',\n type: 'uint8',\n },\n {\n internalType: 'uint8',\n name: 'maxOrder',\n type: 'uint8',\n },\n {\n internalType: 'uint16',\n name: 'commissionRatio',\n type: 'uint16',\n },\n {\n internalType: 'uint128',\n name: 'minQuoteAmount',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'liveThreshold',\n type: 'uint128',\n },\n ],\n internalType: 'struct Configuration',\n name: 'configuration',\n type: 'tuple',\n },\n ],\n name: 'createVault',\n outputs: [\n {\n internalType: 'address',\n name: 'vault',\n type: 'address',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'getAllVaults',\n outputs: [\n {\n internalType: 'address[]',\n name: '',\n type: 'address[]',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'guardian',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'index',\n type: 'bytes32',\n },\n ],\n name: 'indexToVault',\n outputs: [\n {\n internalType: 'address',\n name: 'vault',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: '_admin',\n type: 'address',\n },\n ],\n name: 'initialize',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'owner',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'releasePendingForVault',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'renounceOwnership',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'vault',\n type: 'address',\n },\n {\n internalType: 'uint16',\n name: 'commissionRatio',\n type: 'uint16',\n },\n ],\n name: 'setVaultCommissionRatio',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'vault',\n type: 'address',\n },\n {\n internalType: 'uint128',\n name: 'liveThreshold',\n type: 'uint128',\n },\n ],\n name: 'setVaultLiveThreshold',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'vault',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'newManager',\n type: 'address',\n },\n ],\n name: 'setVaultManager',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'vault',\n type: 'address',\n },\n {\n internalType: 'uint128',\n name: 'minQuoteAmount',\n type: 'uint128',\n },\n ],\n name: 'setVaultMinQuoteAmount',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'vault',\n type: 'address',\n },\n {\n internalType: 'uint8',\n name: 'newMaxPair',\n type: 'uint8',\n },\n {\n internalType: 'uint8',\n name: 'newMaxRange',\n type: 'uint8',\n },\n {\n internalType: 'uint8',\n name: 'newMaxOrder',\n type: 'uint8',\n },\n ],\n name: 'setVaultPortfolioLimit',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'vault',\n type: 'address',\n },\n {\n internalType: 'enum Stage',\n name: 'newStage',\n type: 'uint8',\n },\n ],\n name: 'setVaultStage',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'totalVaults',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'newOwner',\n type: 'address',\n },\n ],\n name: 'transferOwnership',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'vaultBeacon',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'vault',\n type: 'address',\n },\n ],\n name: 'vaultToIndex',\n outputs: [\n {\n internalType: 'bytes32',\n name: 'index',\n type: 'bytes32',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n name: 'vaults',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n];\nconst _bytecode = '0x60e06040523480156200001157600080fd5b5060405162002306380380620023068339810160408190526200003491620001aa565b6200003f336200006f565b600180556001600160a01b0380831660805283811660a052811660c05262000066620000bf565b505050620001f4565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600054600160a81b900460ff16156200012e5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b600054600160a01b900460ff908116146200018b576000805460ff60a01b191660ff60a01b17905560405160ff81527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b80516001600160a01b0381168114620001a557600080fd5b919050565b600080600060608486031215620001c057600080fd5b620001cb846200018d565b9250620001db602085016200018d565b9150620001eb604085016200018d565b90509250925092565b60805160a05160c0516120cd62000239600039600081816102e50152610c5f0152600081816102400152610b7901526000818161019701526108ec01526120cd6000f3fe60806040523480156200001157600080fd5b5060043610620001455760003560e01c80638c64ea4a11620000bb578063c4d66de8116200007a578063c4d66de81462000307578063c7157d99146200031e578063ea75ccd31462000328578063f2fde38b146200033f578063fb561691146200035657600080fd5b80638c64ea4a14620002945780638d65402314620002ab5780638da5cb5b14620002b457806397331bf914620002c65780639d343be114620002df57600080fd5b8063715018a61162000108578063715018a6146200020257806374f9ad41146200020c57806379129225146200022357806379502c55146200023a5780638404c1c1146200026257600080fd5b80630de15ff4146200014a5780631e0b0819146200016357806338b69c68146200017a578063452a932014620001915780634b5426c014620001d6575b600080fd5b620001616200015b36600462000f83565b6200036d565b005b620001616200017436600462000fde565b620003e0565b620001616200018b36600462000f83565b6200046b565b620001b97f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b620001b9620001e736600462001043565b6003602052600090815260409020546001600160a01b031681565b62000161620004ab565b620001616200021d3660046200107b565b620004d1565b6200016162000234366004620010ae565b62000517565b620001b97f000000000000000000000000000000000000000000000000000000000000000081565b6200028562000273366004620010e1565b60046020526000908152604090205481565b604051908152602001620001cd565b620001b9620002a536600462001043565b62000550565b60025462000285565b6000546001600160a01b0316620001b9565b620002d06200057b565b604051620001cd91906200114e565b620001b97f000000000000000000000000000000000000000000000000000000000000000081565b6200016162000318366004620010e1565b62000654565b620001616200078f565b62000161620003393660046200117e565b6200096a565b6200016162000350366004620010e1565b620009a2565b620001b96200036736600462001200565b62000a21565b6200037762000d90565b60405163ad7da16960e01b81526001600160801b03821660048201526001600160a01b0383169063ad7da169906024015b600060405180830381600087803b158015620003c357600080fd5b505af1158015620003d8573d6000803e3d6000fd5b505050505050565b620003ea62000d90565b620003f783838362000dec565b604051632f01e65160e01b815260ff80851660048301528084166024830152821660448201526001600160a01b03851690632f01e65190606401600060405180830381600087803b1580156200044c57600080fd5b505af115801562000461573d6000803e3d6000fd5b5050505050505050565b6200047562000d90565b60405163e0f6717d60e01b81526001600160801b03821660048201526001600160a01b0383169063e0f6717d90602401620003a8565b620004b562000e35565b6040516001623f026d60e01b0319815260040160405180910390fd5b620004db62000d90565b620004e68162000e4b565b6040516352f7aea960e11b815261ffff821660048201526001600160a01b0383169063a5ef5d5290602401620003a8565b6200052162000d90565b60405163d0ebdbe760e01b81526001600160a01b03828116600483015283169063d0ebdbe790602401620003a8565b600281815481106200056157600080fd5b6000918252602090912001546001600160a01b0316905081565b60025460609060009067ffffffffffffffff8111156200059f576200059f620011b1565b604051908082528060200260200182016040528015620005c9578160200160208202803683370190505b50905060005b6002548110156200064e5760028181548110620005f057620005f06200135e565b9060005260206000200160009054906101000a90046001600160a01b03168282815181106200062357620006236200135e565b6001600160a01b039092166020928302919091019091015262000646816200138a565b9050620005cf565b50919050565b600054600160a81b900460ff16158080156200067d57506000546001600160a01b90910460ff16105b80620006a05750303b158015620006a05750600054600160a01b900460ff166001145b620007095760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff60a01b1916600160a01b179055801562000737576000805460ff60a81b1916600160a81b1790555b620007428262000e7f565b80156200078b576000805460ff60a81b19169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6200079962000ecf565b33600090815260046020526040902054620007ca5760405163e9d6016160e01b815233600482015260240162000700565b6000336001600160a01b0316636bd50cef6040518163ffffffff1660e01b815260040161012060405180830381865afa1580156200080c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620008329190620013e7565b60408051600180825281830190925291925060009190602080830190803683370190505090508160200151816000815181106200087357620008736200135e565b6001600160a01b0392909216602092830291909101909101526040805160018082528183019092526000918160200160208202803683370190505090503381600081518110620008c757620008c76200135e565b6001600160a01b039283166020918202929092010152604051636168150d60e11b81527f00000000000000000000000000000000000000000000000000000000000000009091169063c2d02a1a90620009279085908590600401620014b2565b600060405180830381600087803b1580156200094257600080fd5b505af115801562000957573d6000803e3d6000fd5b505050505050506200096860018055565b565b6200097462000d90565b60405163ce3cd99760e01b81526001600160a01b0383169063ce3cd99790620003a890849060040162001507565b620009ac62000d90565b6001600160a01b03811662000a135760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840162000700565b62000a1e8162000e7f565b50565b600062000a2d62000d90565b62000a46826060015183608001518460a0015162000dec565b62000a558260c0015162000e4b565b6000826020015186868660405160200162000a74949392919062001546565b60408051601f198184030181529181528151602092830120600081815260039093529120549091506001600160a01b03161562000ac4576040516304aabf3360e01b815260040160405180910390fd5b600083602001516001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000b09573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000b2f91906200157f565b9050600062000b408260126200159f565b62000b4d90600a620016b8565b60208601516040516318b1f49f60e31b81526001600160a01b03918216600482015291925060009183917f0000000000000000000000000000000000000000000000000000000000000000169063c58fa4f89060240160c060405180830381865afa15801562000bc1573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000be79190620016d9565b5162000bf49190620017c3565b60ff84166040808901919091526001600160801b03821660e08901525190915060009062000c2f9030908b908b908e908c90602401620018a2565b60408051601f198184030181529181526020820180516001600160e01b0316631e82cd7160e01b179052519091507f000000000000000000000000000000000000000000000000000000000000000090829062000c8c9062000f2a565b62000c99929190620018e6565b604051809103906000f08015801562000cb6573d6000803e3d6000fd5b5060028054600181810183557f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace90910180546001600160a01b0385166001600160a01b0319918216811790925560008a8152600360209081526040808320805490941685179093559281526004909252902088905590549197507f39d68f7183782ad1368ff99cd7f50175152f9704958cae1e535ca5a4a17b94239188918d918d918d918d9162000d679162001946565b60405162000d7b969594939291906200195c565b60405180910390a15050505050949350505050565b6000546001600160a01b03163314620009685760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640162000700565b601460ff8416118062000e025750601e60ff8316115b8062000e115750601e60ff8216115b1562000e30576040516378718ddb60e01b815260040160405180910390fd5b505050565b62000e3f62000d90565b62000968600062000e7f565b62000e5a6005612710620019b0565b8161ffff16111562000a1e57604051633dbb3d2d60e11b815260040160405180910390fd5b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60026001540362000f235760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640162000700565b6002600155565b6106d080620019c883390190565b6001600160a01b038116811462000a1e57600080fd5b803562000f5b8162000f38565b919050565b6001600160801b038116811462000a1e57600080fd5b803562000f5b8162000f60565b6000806040838503121562000f9757600080fd5b823562000fa48162000f38565b9150602083013562000fb68162000f60565b809150509250929050565b60ff8116811462000a1e57600080fd5b803562000f5b8162000fc1565b6000806000806080858703121562000ff557600080fd5b8435620010028162000f38565b93506020850135620010148162000fc1565b92506040850135620010268162000fc1565b91506060850135620010388162000fc1565b939692955090935050565b6000602082840312156200105657600080fd5b5035919050565b61ffff8116811462000a1e57600080fd5b803562000f5b816200105d565b600080604083850312156200108f57600080fd5b82356200109c8162000f38565b9150602083013562000fb6816200105d565b60008060408385031215620010c257600080fd5b8235620010cf8162000f38565b9150602083013562000fb68162000f38565b600060208284031215620010f457600080fd5b8135620011018162000f38565b9392505050565b600081518084526020808501945080840160005b83811015620011435781516001600160a01b0316875295820195908201906001016200111c565b509495945050505050565b60208152600062001101602083018462001108565b6004811062000a1e57600080fd5b803562000f5b8162001163565b600080604083850312156200119257600080fd5b82356200119f8162000f38565b9150602083013562000fb68162001163565b634e487b7160e01b600052604160045260246000fd5b604051610120810167ffffffffffffffff81118282101715620011fa57634e487b7160e01b600052604160045260246000fd5b60405290565b6000806000808486036101608112156200121957600080fd5b8535620012268162000f38565b9450602086013567ffffffffffffffff808211156200124457600080fd5b818801915088601f8301126200125957600080fd5b8135818111156200126957600080fd5b8960208285010111156200127c57600080fd5b60208301965080955050505061012080603f19830112156200129d57600080fd5b620012a7620011c7565b9150620012b76040880162001171565b8252620012c76060880162000f4e565b6020830152620012da6080880162000fd1565b6040830152620012ed60a0880162000fd1565b60608301526200130060c0880162000fd1565b60808301526200131360e0880162000fd1565b60a0830152610100620013288189016200106e565b60c08401526200133a82890162000f76565b60e08401526200134e610140890162000f76565b9083015250939692955090935050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016200139f576200139f62001374565b5060010190565b805162000f5b8162001163565b805162000f5b8162000f38565b805162000f5b8162000fc1565b805162000f5b816200105d565b805162000f5b8162000f60565b60006101208284031215620013fb57600080fd5b62001405620011c7565b6200141083620013a6565b81526200142060208401620013b3565b60208201526200143360408401620013c0565b60408201526200144660608401620013c0565b60608201526200145960808401620013c0565b60808201526200146c60a08401620013c0565b60a08201526200147f60c08401620013cd565b60c08201526200149260e08401620013da565b60e0820152610100620014a7818501620013da565b908201529392505050565b604081526000620014c7604083018562001108565b8281036020840152620014db818562001108565b95945050505050565b600481106200150357634e487b7160e01b600052602160045260246000fd5b9052565b60208101620015178284620014e4565b92915050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6001600160a01b038581168252841660208201526060604082018190526000906200157590830184866200151d565b9695505050505050565b6000602082840312156200159257600080fd5b8151620011018162000fc1565b60ff828116828216039081111562001517576200151762001374565b600181815b80851115620015fc578160001904821115620015e057620015e062001374565b80851615620015ee57918102915b93841c9390800290620015c0565b509250929050565b600082620016155750600162001517565b81620016245750600062001517565b81600181146200163d5760028114620016485762001668565b600191505062001517565b60ff8411156200165c576200165c62001374565b50506001821b62001517565b5060208310610133831016604e8410600b84101617156200168d575081810a62001517565b620016998383620015bb565b8060001904821115620016b057620016b062001374565b029392505050565b60006200110160ff84168362001604565b80516003811062000f5b57600080fd5b600060c08284031215620016ec57600080fd5b60405160c0810167ffffffffffffffff82821081831117156200171f57634e487b7160e01b600052604160045260246000fd5b8160405284519150620017328262000f60565b90825260208401519062001746826200105d565b816020840152604085015191506200175e826200105d565b8160408401526060850151915080821682146200177a57600080fd5b5060608201526200178e60808401620016c9565b6080820152620017a160a08401620013da565b60a08201529392505050565b634e487b7160e01b600052601260045260246000fd5b60006001600160801b0380841680620017e057620017e0620017ad565b92169190910492915050565b620017f9828251620014e4565b60018060a01b03602082015116602083015260ff604082015116604083015260608101516200182d606084018260ff169052565b50608081015162001843608084018260ff169052565b5060a08101516200185960a084018260ff169052565b5060c08101516200187060c084018261ffff169052565b5060e08101516200188c60e08401826001600160801b03169052565b50610100908101516001600160801b0316910152565b6001600160a01b03868116825261018060208301819052600091620018cb848301888a6200151d565b925080861660408501525050620015756060830184620017ec565b60018060a01b038316815260006020604081840152835180604085015260005b81811015620019245785810183015185820160600152820162001906565b506000606082860101526060601f19601f830116850101925050509392505050565b8181038181111562001517576200151762001374565b6001600160a01b038781168252861660208201526101a0604082018190526000906200198c83820187896200151d565b9150506200199e6060830185620017ec565b82610180830152979650505050505050565b600082620019c257620019c2620017ad565b50049056fe60806040526040516106d03803806106d083398101604081905261002291610424565b818161003082826000610039565b5050505061054e565b610042836100fa565b6040516001600160a01b038416907f1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e90600090a26000825111806100835750805b156100f5576100f3836001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100ed91906104e4565b8361027e565b505b505050565b6001600160a01b0381163b6101645760405162461bcd60e51b815260206004820152602560248201527f455243313936373a206e657720626561636f6e206973206e6f74206120636f6e6044820152641d1c9858dd60da1b60648201526084015b60405180910390fd5b6101d8816001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101c991906104e4565b6001600160a01b03163b151590565b61023d5760405162461bcd60e51b815260206004820152603060248201527f455243313936373a20626561636f6e20696d706c656d656e746174696f6e206960448201526f1cc81b9bdd08184818dbdb9d1c9858dd60821b606482015260840161015b565b7fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d5080546001600160a01b0319166001600160a01b0392909216919091179055565b60606102a383836040518060600160405280602781526020016106a9602791396102aa565b9392505050565b6060600080856001600160a01b0316856040516102c791906104ff565b600060405180830381855af49150503d8060008114610302576040519150601f19603f3d011682016040523d82523d6000602084013e610307565b606091505b50909250905061031986838387610323565b9695505050505050565b6060831561039257825160000361038b576001600160a01b0385163b61038b5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161015b565b508161039c565b61039c83836103a4565b949350505050565b8151156103b45781518083602001fd5b8060405162461bcd60e51b815260040161015b919061051b565b80516001600160a01b03811681146103e557600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561041b578181015183820152602001610403565b50506000910152565b6000806040838503121561043757600080fd5b610440836103ce565b60208401519092506001600160401b038082111561045d57600080fd5b818501915085601f83011261047157600080fd5b815181811115610483576104836103ea565b604051601f8201601f19908116603f011681019083821181831017156104ab576104ab6103ea565b816040528281528860208487010111156104c457600080fd5b6104d5836020830160208801610400565b80955050505050509250929050565b6000602082840312156104f657600080fd5b6102a3826103ce565b60008251610511818460208701610400565b9190910192915050565b602081526000825180602084015261053a816040850160208701610400565b601f01601f19169190910160400192915050565b61014c8061055d6000396000f3fe60806040523661001357610011610017565b005b6100115b610027610022610029565b6100c2565b565b600061005c7fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50546001600160a01b031690565b6001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610099573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100bd91906100e6565b905090565b3660008037600080366000845af43d6000803e8080156100e1573d6000f35b3d6000fd5b6000602082840312156100f857600080fd5b81516001600160a01b038116811461010f57600080fd5b939250505056fea2646970667358221220231762b7606af16e11db6987ffa62fae1a034046f920893f5e0d640152be317364736f6c63430008130033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220df4a24f9e8caec5c301bff22416c069cd42ad0f1a0ce052770d93988d4d387e864736f6c63430008130033';\nconst isSuperArgs = (xs) => xs.length > 1;\nclass VaultFactory__factory extends ethers_1.ContractFactory {\n constructor(...args) {\n if (isSuperArgs(args)) {\n super(...args);\n }\n else {\n super(_abi, _bytecode, args[0]);\n }\n }\n deploy(_config, _guardian, _vaultBeacon, overrides) {\n return super.deploy(_config, _guardian, _vaultBeacon, overrides || {});\n }\n getDeployTransaction(_config, _guardian, _vaultBeacon, overrides) {\n return super.getDeployTransaction(_config, _guardian, _vaultBeacon, overrides || {});\n }\n attach(address) {\n return super.attach(address);\n }\n connect(signer) {\n return super.connect(signer);\n }\n static createInterface() {\n return new ethers_1.utils.Interface(_abi);\n }\n static connect(address, signerOrProvider) {\n return new ethers_1.Contract(address, _abi, signerOrProvider);\n }\n}\nexports.VaultFactory__factory = VaultFactory__factory;\nVaultFactory__factory.bytecode = _bytecode;\nVaultFactory__factory.abi = _abi;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Vault__factory = void 0;\nconst ethers_1 = require(\"ethers\");\nconst _abi = [\n {\n inputs: [\n {\n internalType: 'address',\n name: '_gate',\n type: 'address',\n },\n {\n internalType: 'address',\n name: '_weth',\n type: 'address',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'constructor',\n },\n {\n inputs: [],\n name: 'CannotPayOff',\n type: 'error',\n },\n {\n inputs: [],\n name: 'EmptyName',\n type: 'error',\n },\n {\n inputs: [],\n name: 'InsufficientCommission',\n type: 'error',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'evil',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: 'requested',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'available',\n type: 'uint256',\n },\n ],\n name: 'InsufficientShare',\n type: 'error',\n },\n {\n inputs: [],\n name: 'InvalidMsgValue',\n type: 'error',\n },\n {\n inputs: [],\n name: 'MaxOrderNums',\n type: 'error',\n },\n {\n inputs: [],\n name: 'MaxPairNums',\n type: 'error',\n },\n {\n inputs: [],\n name: 'MaxRangeNums',\n type: 'error',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'evil',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: 'value',\n type: 'uint256',\n },\n ],\n name: 'NoDirectTransfer',\n type: 'error',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'evil',\n type: 'address',\n },\n ],\n name: 'NotFactory',\n type: 'error',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'evil',\n type: 'address',\n },\n ],\n name: 'NotManager',\n type: 'error',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'fakeInstrument',\n type: 'address',\n },\n ],\n name: 'NotSynFuturesInstrument',\n type: 'error',\n },\n {\n inputs: [],\n name: 'NotTradeable',\n type: 'error',\n },\n {\n inputs: [],\n name: 'NotWrappedNative',\n type: 'error',\n },\n {\n inputs: [],\n name: 'OwedShareExists',\n type: 'error',\n },\n {\n inputs: [],\n name: 'SuspendedVault',\n type: 'error',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'user',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: 'deposit',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'threshold',\n type: 'uint256',\n },\n ],\n name: 'TrivialDeposit',\n type: 'error',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'user',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: 'received',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'expected',\n type: 'uint256',\n },\n ],\n name: 'UnexplainableWithdrawal',\n type: 'error',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'token',\n type: 'address',\n },\n ],\n name: 'UnsafeToken',\n type: 'error',\n },\n {\n inputs: [],\n name: 'VaultBankrupt',\n type: 'error',\n },\n {\n inputs: [],\n name: 'ZeroAddress',\n type: 'error',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n ],\n name: 'AddInvolvedPair',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'user',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'bool',\n name: 'native',\n type: 'bool',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'quantity',\n type: 'uint256',\n },\n ],\n name: 'Deposit',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'depositor',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'user',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'bool',\n name: 'native',\n type: 'bool',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'quantity',\n type: 'uint256',\n },\n ],\n name: 'DepositFor',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'uint8',\n name: 'version',\n type: 'uint8',\n },\n ],\n name: 'Initialized',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n ],\n name: 'RemoveInvolvedPair',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n components: [\n {\n internalType: 'enum Stage',\n name: 'stage',\n type: 'uint8',\n },\n {\n internalType: 'address',\n name: 'quote',\n type: 'address',\n },\n {\n internalType: 'uint8',\n name: 'decimals',\n type: 'uint8',\n },\n {\n internalType: 'uint8',\n name: 'maxPair',\n type: 'uint8',\n },\n {\n internalType: 'uint8',\n name: 'maxRange',\n type: 'uint8',\n },\n {\n internalType: 'uint8',\n name: 'maxOrder',\n type: 'uint8',\n },\n {\n internalType: 'uint16',\n name: 'commissionRatio',\n type: 'uint16',\n },\n {\n internalType: 'uint128',\n name: 'minQuoteAmount',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'liveThreshold',\n type: 'uint128',\n },\n ],\n indexed: false,\n internalType: 'struct Configuration',\n name: 'config',\n type: 'tuple',\n },\n ],\n name: 'SetConfiguration',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'newManager',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'address',\n name: 'oldManager',\n type: 'address',\n },\n ],\n name: 'SetManager',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'uint256',\n name: 'commission',\n type: 'uint256',\n },\n ],\n name: 'UpdateCommission',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'user',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'owedShare',\n type: 'uint256',\n },\n ],\n name: 'UpdateOwedShare',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'user',\n type: 'address',\n },\n {\n components: [\n {\n internalType: 'uint128',\n name: 'share',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'entryValue',\n type: 'uint128',\n },\n ],\n indexed: false,\n internalType: 'struct Stake',\n name: 'stake',\n type: 'tuple',\n },\n ],\n name: 'UpdateStake',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'uint256',\n name: 'totalShare',\n type: 'uint256',\n },\n ],\n name: 'UpdateTotalShare',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'user',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'bool',\n name: 'native',\n type: 'bool',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'quantity',\n type: 'uint256',\n },\n ],\n name: 'Withdraw',\n type: 'event',\n },\n {\n inputs: [],\n name: 'RATIO_BASE',\n outputs: [\n {\n internalType: 'uint16',\n name: '',\n type: 'uint16',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n {\n internalType: 'bytes32[2]',\n name: 'args',\n type: 'bytes32[2]',\n },\n ],\n name: 'add',\n outputs: [\n {\n internalType: 'int24',\n name: 'tickLower',\n type: 'int24',\n },\n {\n internalType: 'int24',\n name: 'tickUpper',\n type: 'int24',\n },\n {\n components: [\n {\n internalType: 'uint128',\n name: 'liquidity',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'entryFeeIndex',\n type: 'uint128',\n },\n {\n internalType: 'uint96',\n name: 'balance',\n type: 'uint96',\n },\n {\n internalType: 'uint160',\n name: 'sqrtEntryPX96',\n type: 'uint160',\n },\n ],\n internalType: 'struct Range',\n name: 'range',\n type: 'tuple',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n {\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n internalType: 'uint240[3]',\n name: 'encodedTicks',\n type: 'uint240[3]',\n },\n ],\n name: 'batchCancel',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n {\n internalType: 'bytes32[3]',\n name: 'args',\n type: 'bytes32[3]',\n },\n ],\n name: 'batchPlace',\n outputs: [\n {\n internalType: 'uint24[]',\n name: '',\n type: 'uint24[]',\n },\n {\n components: [\n {\n internalType: 'uint128',\n name: 'balance',\n type: 'uint128',\n },\n {\n internalType: 'int128',\n name: 'size',\n type: 'int128',\n },\n ],\n internalType: 'struct Order[]',\n name: '',\n type: 'tuple[]',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bool',\n name: 'native',\n type: 'bool',\n },\n {\n internalType: 'uint256',\n name: 'amount',\n type: 'uint256',\n },\n ],\n name: 'collectCommission',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'commission',\n outputs: [\n {\n internalType: 'uint128',\n name: '',\n type: 'uint128',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint256',\n name: 'quantity',\n type: 'uint256',\n },\n ],\n name: 'deposit',\n outputs: [],\n stateMutability: 'payable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'user',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: 'quantity',\n type: 'uint256',\n },\n ],\n name: 'depositFor',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint256',\n name: 'quantity',\n type: 'uint256',\n },\n ],\n name: 'donate',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'factory',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n {\n internalType: 'bytes32',\n name: 'arg',\n type: 'bytes32',\n },\n ],\n name: 'fill',\n outputs: [\n {\n components: [\n {\n internalType: 'int256',\n name: 'balance',\n type: 'int256',\n },\n {\n internalType: 'int256',\n name: 'size',\n type: 'int256',\n },\n {\n internalType: 'uint256',\n name: 'entryNotional',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'entrySocialLossIndex',\n type: 'uint256',\n },\n {\n internalType: 'int256',\n name: 'entryFundingIndex',\n type: 'int256',\n },\n ],\n internalType: 'struct PositionCache',\n name: 'pos',\n type: 'tuple',\n },\n {\n internalType: 'uint256',\n name: 'tip',\n type: 'uint256',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'gate',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'getConfiguration',\n outputs: [\n {\n components: [\n {\n internalType: 'enum Stage',\n name: 'stage',\n type: 'uint8',\n },\n {\n internalType: 'address',\n name: 'quote',\n type: 'address',\n },\n {\n internalType: 'uint8',\n name: 'decimals',\n type: 'uint8',\n },\n {\n internalType: 'uint8',\n name: 'maxPair',\n type: 'uint8',\n },\n {\n internalType: 'uint8',\n name: 'maxRange',\n type: 'uint8',\n },\n {\n internalType: 'uint8',\n name: 'maxOrder',\n type: 'uint8',\n },\n {\n internalType: 'uint16',\n name: 'commissionRatio',\n type: 'uint16',\n },\n {\n internalType: 'uint128',\n name: 'minQuoteAmount',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'liveThreshold',\n type: 'uint128',\n },\n ],\n internalType: 'struct Configuration',\n name: '',\n type: 'tuple',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'getInvolvedPairs',\n outputs: [\n {\n internalType: 'address[]',\n name: 'instruments',\n type: 'address[]',\n },\n {\n internalType: 'uint32[]',\n name: 'expiries',\n type: 'uint32[]',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'user',\n type: 'address',\n },\n ],\n name: 'getOwedQuote',\n outputs: [\n {\n internalType: 'uint256',\n name: 'netValue',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'commissionFee',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'getPortfolioValue',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'user',\n type: 'address',\n },\n ],\n name: 'getStake',\n outputs: [\n {\n components: [\n {\n internalType: 'uint128',\n name: 'share',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'entryValue',\n type: 'uint128',\n },\n ],\n internalType: 'struct Stake',\n name: '',\n type: 'tuple',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: '_factory',\n type: 'address',\n },\n {\n internalType: 'string',\n name: '_name',\n type: 'string',\n },\n {\n internalType: 'address',\n name: '_manager',\n type: 'address',\n },\n {\n components: [\n {\n internalType: 'enum Stage',\n name: 'stage',\n type: 'uint8',\n },\n {\n internalType: 'address',\n name: 'quote',\n type: 'address',\n },\n {\n internalType: 'uint8',\n name: 'decimals',\n type: 'uint8',\n },\n {\n internalType: 'uint8',\n name: 'maxPair',\n type: 'uint8',\n },\n {\n internalType: 'uint8',\n name: 'maxRange',\n type: 'uint8',\n },\n {\n internalType: 'uint8',\n name: 'maxOrder',\n type: 'uint8',\n },\n {\n internalType: 'uint16',\n name: 'commissionRatio',\n type: 'uint16',\n },\n {\n internalType: 'uint128',\n name: 'minQuoteAmount',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'liveThreshold',\n type: 'uint128',\n },\n ],\n internalType: 'struct Configuration',\n name: '_configuration',\n type: 'tuple',\n },\n ],\n name: 'initialize',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'user',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: 'share',\n type: 'uint256',\n },\n ],\n name: 'inquireWithdrawal',\n outputs: [\n {\n internalType: 'bool',\n name: 'availableNow',\n type: 'bool',\n },\n {\n internalType: 'uint256',\n name: 'netValue',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'commissionFee',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'string',\n name: 'mtype',\n type: 'string',\n },\n {\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n {\n internalType: 'bytes',\n name: 'data',\n type: 'bytes',\n },\n {\n internalType: 'bytes32[2]',\n name: 'addArgs',\n type: 'bytes32[2]',\n },\n ],\n name: 'launch',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n {\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n internalType: 'address',\n name: 'target',\n type: 'address',\n },\n {\n internalType: 'int256',\n name: 'size',\n type: 'int256',\n },\n {\n internalType: 'uint256',\n name: 'amount',\n type: 'uint256',\n },\n ],\n name: 'liquidate',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'manager',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'name',\n outputs: [\n {\n internalType: 'string',\n name: '',\n type: 'string',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'user',\n type: 'address',\n },\n ],\n name: 'owedShareOf',\n outputs: [\n {\n internalType: 'uint256',\n name: 'owedShare',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address[]',\n name: 'users',\n type: 'address[]',\n },\n ],\n name: 'payoff',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n {\n internalType: 'bytes32[2]',\n name: 'args',\n type: 'bytes32[2]',\n },\n ],\n name: 'place',\n outputs: [\n {\n internalType: 'uint24',\n name: 'nonce',\n type: 'uint24',\n },\n {\n components: [\n {\n internalType: 'uint128',\n name: 'balance',\n type: 'uint128',\n },\n {\n internalType: 'int128',\n name: 'size',\n type: 'int128',\n },\n ],\n internalType: 'struct Order',\n name: 'order',\n type: 'tuple',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n {\n internalType: 'bytes32[2]',\n name: 'args',\n type: 'bytes32[2]',\n },\n ],\n name: 'remove',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint16',\n name: 'newCommissionRatio',\n type: 'uint16',\n },\n ],\n name: 'setCommissionRatio',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint128',\n name: 'newLiveThreshold',\n type: 'uint128',\n },\n ],\n name: 'setLiveThreshold',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'newManager',\n type: 'address',\n },\n ],\n name: 'setManager',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint128',\n name: 'newMinQuoteAmount',\n type: 'uint128',\n },\n ],\n name: 'setMinQuoteAmount',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint8',\n name: 'newMaxPair',\n type: 'uint8',\n },\n {\n internalType: 'uint8',\n name: 'newMaxRange',\n type: 'uint8',\n },\n {\n internalType: 'uint8',\n name: 'newMaxOrder',\n type: 'uint8',\n },\n ],\n name: 'setPortfolioLimit',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'enum Stage',\n name: 'newStage',\n type: 'uint8',\n },\n ],\n name: 'setStage',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n {\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n ],\n name: 'settle',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'totalShare',\n outputs: [\n {\n internalType: 'uint128',\n name: '',\n type: 'uint128',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n {\n internalType: 'bytes32[2]',\n name: 'args',\n type: 'bytes32[2]',\n },\n ],\n name: 'trade',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'weth',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bool',\n name: 'native',\n type: 'bool',\n },\n {\n internalType: 'uint256',\n name: 'share',\n type: 'uint256',\n },\n ],\n name: 'withdraw',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n stateMutability: 'payable',\n type: 'receive',\n },\n];\nconst _bytecode = '0x60c06040523480156200001157600080fd5b5060405162005bf238038062005bf2833981016040819052620000349162000178565b600180556001600160a01b03821615806200005657506001600160a01b038116155b15620000755760405163d92e233d60e01b815260040160405180910390fd5b6001600160a01b03808316608052811660a052620000926200009a565b5050620001b0565b600054610100900460ff1615620001075760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff9081161462000159576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b80516001600160a01b03811681146200017357600080fd5b919050565b600080604083850312156200018c57600080fd5b62000197836200015b565b9150620001a7602084016200015b565b90509250929050565b60805160a0516159976200025b600039600081816102390152818161040701528181610f5801528181611321015281816126170152818161267f015261307201526000818161053e0152818161146c0152818161173c01528181611b1801528181611de401528181611e7801528181611ffe0152818161208f0152818161220c01528181612ab001528181612b4101528181612f7c015281816132b701526133d501526159976000f3fe6080604052600436106102295760003560e01c8063ad7da16911610123578063d0f6035c116100ab578063f14faf6f1161006f578063f14faf6f1461081e578063f34cc7661461083e578063f3db125a1461087b578063f7539bf1146108dc578063fef88a02146108ff57600080fd5b8063d0f6035c1461077e578063e0f6717d1461079e578063e1489191146107be578063eaca3a20146107de578063f05ac1e9146107fe57600080fd5b8063bb0498de116100f2578063bb0498de146106e0578063c11a5630146106f5578063c45a01551461071e578063ce3cd9971461073e578063d0ebdbe71461075e57600080fd5b8063ad7da16914610658578063b6b55f2514610678578063b7602e141461068b578063b95c1191146106ab57600080fd5b80635577fba1116101b15780637a0ebc88116101755780637a0ebc881461052c5780637a76646014610560578063984c0450146105f857806398c01e2a14610618578063a5ef5d521461063857600080fd5b80635577fba114610461578063572c8ce3146104815780635a8e9d66146104af57806365eb3624146104cf5780636bd50cef1461050a57600080fd5b80632f4f21e2116101f85780632f4f21e214610331578063304956b9146103515780633d20b24c146103715780633fc8cef3146103f5578063481c6a751461044157600080fd5b8063026c42071461028b57806306fdde03146102cf5780631e82cd71146102f15780632f01e6511461031157600080fd5b3661028657336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461028457604051633acf477760e01b81523360048201523460248201526044015b60405180910390fd5b005b600080fd5b34801561029757600080fd5b506007546102b290600160801b90046001600160801b031681565b6040516001600160801b0390911681526020015b60405180910390f35b3480156102db57600080fd5b506102e461092d565b6040516102c69190614486565b3480156102fd57600080fd5b5061028461030c366004614673565b6109bb565b34801561031d57600080fd5b5061028461032c366004614792565b610c7d565b34801561033d57600080fd5b5061028461034c3660046147dd565b610d04565b34801561035d57600080fd5b5061028461036c36600461481b565b610d73565b34801561037d57600080fd5b5061039161038c366004614927565b610e19565b60408051600294850b81529290930b60208084019190915281516001600160801b03908116848601529082015116606080840191909152928101516001600160601b0316608083015291909101516001600160a01b031660a082015260c0016102c6565b34801561040157600080fd5b506104297f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016102c6565b34801561044d57600080fd5b50600454610429906001600160a01b031681565b34801561046d57600080fd5b5061028461047c36600461496b565b610f3b565b34801561048d57600080fd5b506104a161049c366004614927565b611066565b6040516102c6929190614989565b3480156104bb57600080fd5b506102846104ca3660046149b8565b611173565b3480156104db57600080fd5b506104fc6104ea3660046149f1565b60096020526000908152604090205481565b6040519081526020016102c6565b34801561051657600080fd5b5061051f6111fa565b6040516102c69190614a38565b34801561053857600080fd5b506104297f000000000000000000000000000000000000000000000000000000000000000081565b34801561056c57600080fd5b506105d161057b3660046149f1565b6040805180820190915260008082526020820152506001600160a01b03166000908152600860209081526040918290208251808401909352546001600160801b038082168452600160801b909104169082015290565b6040805182516001600160801b0390811682526020938401511692810192909252016102c6565b34801561060457600080fd5b5061028461061336600461496b565b611304565b34801561062457600080fd5b50610284610633366004614927565b611551565b34801561064457600080fd5b50610284610653366004614af3565b6115ff565b34801561066457600080fd5b50610284610673366004614b0e565b611659565b610284610686366004614b2b565b6116a2565b34801561069757600080fd5b506102846106a6366004614b44565b61170d565b3480156106b757600080fd5b506106cb6106c63660046149f1565b6117e8565b604080519283526020830191909152016102c6565b3480156106ec57600080fd5b506104fc61186c565b34801561070157600080fd5b5061070b61271081565b60405161ffff90911681526020016102c6565b34801561072a57600080fd5b50600254610429906001600160a01b031681565b34801561074a57600080fd5b50610284610759366004614be1565b61187b565b34801561076a57600080fd5b506102846107793660046149f1565b6118cd565b34801561078a57600080fd5b50610284610799366004614bfc565b61193d565b3480156107aa57600080fd5b506102846107b9366004614b0e565b6119dd565b3480156107ca57600080fd5b506007546102b2906001600160801b031681565b3480156107ea57600080fd5b506102846107f9366004614c57565b611a27565b34801561080a57600080fd5b50610284610819366004614927565b611f17565b34801561082a57600080fd5b50610284610839366004614b2b565b611fd1565b34801561084a57600080fd5b5061085e6108593660046147dd565b612123565b6040805193151584526020840192909252908201526060016102c6565b34801561088757600080fd5b5061089b6108963660046147dd565b612284565b6040805183518152602080850151908201528382015191810191909152606080840151908201526080928301519281019290925260a082015260c0016102c6565b3480156108e857600080fd5b506108f1612348565b6040516102c6929190614ccb565b34801561090b57600080fd5b5061091f61091a366004614d55565b6123cd565b6040516102c6929190614dc9565b6003805461093a90614e68565b80601f016020809104026020016040519081016040528092919081815260200182805461096690614e68565b80156109b35780601f10610988576101008083540402835291602001916109b3565b820191906000526020600020905b81548152906001019060200180831161099657829003601f168201915b505050505081565b600054610100900460ff16158080156109db5750600054600160ff909116105b806109f55750303b1580156109f5575060005460ff166001145b610a585760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161027b565b6000805460ff191660011790558015610a7b576000805461ff0019166101001790555b6001600160a01b0385161580610a9857506001600160a01b038316155b15610ab65760405163d92e233d60e01b815260040160405180910390fd5b8351600003610ad857604051632ef1310560e01b815260040160405180910390fd5b600280546001600160a01b0319166001600160a01b038716179055610afc836118cd565b6003610b088582614ee8565b50815160058054849290829060ff19166001836003811115610b2c57610b2c614a0e565b0217905550602082015181546040808501516060860151608087015160a088015160c0890151610100600160b01b03199096166101006001600160a01b03909816880260ff60a81b191617600160a81b60ff958616021761ffff60b01b1916600160b01b9385169390930260ff60b81b191692909217600160b81b918416919091021762ffffff60c01b1916600160c01b929091169190910261ffff60c81b191617600160c81b61ffff9093169290920291909117835560e084015191909301516001600160801b03918216600160801b9290911691909102176001909101555160008051602061594283398151915290610c28908490614a38565b60405180910390a18015610c76576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b610c856124db565b610c8d612534565b6005805461ffff60b01b1916600160b01b60ff8681169190910260ff60b81b191691909117600160b81b858316021760ff60c01b1916600160c01b9184169190910217815560405160008051602061594283398151915291610cee91614fa7565b60405180910390a1610cff60018055565b505050565b610d0c6124db565b610d14612563565b6006546001600160801b0316811015610d515760065460405163595ebb1560e01b815261027b91849184916001600160801b031690600401615036565b610d5c33838361259a565b610d668282612887565b610d6f60018055565b5050565b610d7b6124db565b610d83612bd3565b610d8b612c00565b60405163304956b960e01b815273__$6472d8096db147f599f04e9210f50e0381$__9063304956b990610dc690869086908690600401615060565b60006040518083038186803b158015610dde57600080fd5b505af4158015610df2573d6000803e3d6000fd5b50505050610e01838330612c58565b15610e1057610e108383612cad565b610cff60018055565b60408051608081018252600080825260208201819052918101829052606081018290528190610e466124db565b610e4e612bd3565b610e56612c00565b6000610e6185612d28565b90506000610e7487836000015130612dd1565b600554909250600160b81b900460ff1682109050610ea55760405163341b50df60e21b815260040160405180910390fd5b604051633ee242f560e11b81526001600160a01b03881690637dc485ea90610ed19089906004016150de565b60c0604051808303816000875af1158015610ef0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f1491906150fe565b84519297509095509350610f29908890612ef5565b5050610f3460018055565b9250925092565b610f43612bd3565b610f4b6124db565b818015610f8c57506005547f00000000000000000000000000000000000000000000000000000000000000006001600160a01b039081166101009092041614155b15610faa576040516399976cbd60e01b815260040160405180910390fd5b6007546001600160801b0316811115610fd65760405163309425a560e11b815260040160405180910390fd5b610fe1823383613056565b610fea816131af565b600780546000906110059084906001600160801b03166151bf565b82546101009290920a6001600160801b03818102199093169183160217909155600754604051911681527f09fc1f94317b898bf68341d59011cb8daf41ac7ca61877a2e218a7399f99d5d8915060200160405180910390a1610d6f60018055565b60408051808201909152600080825260208201819052906110856124db565b61108d612bd3565b611095612c00565b60006110a08461321c565b50505050905060006110b3868330612dd1565b50600554909150600160c01b900460ff1681106110e357604051638a4f6d8160e01b815260040160405180910390fd5b604051633a55136160e21b81526001600160a01b0387169063e9544d849061110f9088906004016150de565b6060604051808303816000875af115801561112e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111529190615265565b90945092506111618683612ef5565b505061116c60018055565b9250929050565b61117b6124db565b611183612bd3565b61118b612c00565b604051630a58696d60e01b815263ffffffff821660048201523060248201526001600160a01b03831690630a58696d90604401600060405180830381600087803b1580156111d857600080fd5b505af11580156111ec573d6000803e3d6000fd5b50505050610d66828261324e565b6040805161012081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e0810182905261010081019190915260408051610120810190915260058054829060ff16600381111561126957611269614a0e565b600381111561127a5761127a614a0e565b815281546101008082046001600160a01b03166020840152600160a81b820460ff9081166040850152600160b01b830481166060850152600160b81b830481166080850152600160c01b83041660a0840152600160c81b90910461ffff1660c08301526001909201546001600160801b0380821660e0840152600160801b90910416910152919050565b61130c6124db565b611314612563565b81801561135557506005547f00000000000000000000000000000000000000000000000000000000000000006001600160a01b039081166101009092041614155b15611373576040516399976cbd60e01b815260040160405180910390fd5b33600090815260096020526040902054156113a1576040516317c71bf960e01b815260040160405180910390fd5b336000908152600860209081526040918290208251808401909352546001600160801b03808216808552600160801b909204169183019190915282111561140257805160405163b316a15d60e01b815261027b913391859190600401615036565b600061140c613272565b600754909150600090600160801b90046001600160801b031661142f8584615290565b61143991906152a7565b6005546040516325daa7df60e01b81526101009091046001600160a01b03908116600483015230602483015291925082917f000000000000000000000000000000000000000000000000000000000000000016906325daa7df90604401602060405180830381865afa1580156114b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114d791906152c9565b106114f8576114e581613353565b6114f1853386856135fe565b5050611545565b3360008181526009602052604090819020869055517ffa9a59e38078b6e802da0fb798d0d83167acace0ba828c7a39c2546928c05faf9061153c9087815260200190565b60405180910390a25b505050610d6f60018055565b6115596124db565b611561612bd3565b611569612c00565b6040516350347fcb60e01b81526001600160a01b038316906350347fcb906115959084906004016150de565b60a0604051808303816000875af11580156115b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115d89190615330565b5060006115e4826138aa565b505050505090506115f5838261324e565b50610d6f60018055565b6116076124db565b61160f612534565b6005805461ffff60c81b1916600160c81b61ffff8416021781556040516000805160206159428339815191529161164591614fa7565b60405180910390a161165660018055565b50565b6116616124db565b611669612534565b600680546001600160801b03808416600160801b0291161790556040516000805160206159428339815191529061164590600590614fa7565b6116aa6124db565b6116b2612563565b6006546001600160801b03168110156116ef5760065460405163595ebb1560e01b815261027b91339184916001600160801b031690600401615036565b6116fa33338361259a565b6117043382612887565b61165660018055565b6117156124db565b61171d612bd3565b611725612c00565b604051632dd80b8560e21b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063b7602e149061177790879087908790879060040161534c565b60c0604051808303816000875af1158015611796573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117ba91906150fe565b50505060006117c882612d28565b90506117d8848260000151612ef5565b506117e260018055565b50505050565b6001600160a01b03811660009081526009602052604081205481908082036118165750600093849350915050565b6001600160a01b0384166000908152600860209081526040918290208251808401909352546001600160801b038082168452600160801b909104169082015261185f82826138d7565b5090969095509350505050565b6000611876613272565b905090565b6118836124db565b61188b612534565b6005805482919060ff191660018360038111156118aa576118aa614a0e565b021790555060008051602061594283398151915260056040516116459190614fa7565b6118d56124db565b6118dd612534565b600480546001600160a01b038381166001600160a01b031983168117909355604051911680825291907f8d235c6c97ff1b07a41b6b8ac6ea040a6a6b411b20a0f02f02946fa45590bcfc9060200160405180910390a25061165660018055565b6119456124db565b61194d612bd3565b611955612c00565b604051636ef9d8ed60e01b815263ffffffff851660048201526001600160a01b0384811660248301526044820184905260648201839052861690636ef9d8ed90608401600060405180830381600087803b1580156119b257600080fd5b505af11580156119c6573d6000803e3d6000fd5b505050506119d4858561324e565b610c7660018055565b6119e56124db565b6119ed612534565b600680546001600160801b0319166001600160801b0383161790556040516000805160206159428339815191529061164590600590614fa7565b611a2f612bd3565b611a376124db565b611a3f612563565b6000611a49613272565b90506000805b83811015611aba5760096000868684818110611a6d57611a6d615390565b9050602002016020810190611a8291906149f1565b6001600160a01b03168152602081019190915260400160002054611aa690836153a6565b915080611ab2816153b9565b915050611a4f565b50600754600090600160801b90046001600160801b0316611adb8385615290565b611ae591906152a7565b6005546040516325daa7df60e01b81526101009091046001600160a01b03908116600483015230602483015291925082917f000000000000000000000000000000000000000000000000000000000000000016906325daa7df90604401602060405180830381865afa158015611b5f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b8391906152c9565b1015611ba25760405163e545929f60e01b815260040160405180910390fd5b611bab81613353565b60005b84811015611d2857600060096000888885818110611bce57611bce615390565b9050602002016020810190611be391906149f1565b6001600160a01b03166001600160a01b03168152602001908152602001600020549050600060096000898986818110611c1e57611c1e615390565b9050602002016020810190611c3391906149f1565b6001600160a01b03166001600160a01b0316815260200190815260200160002081905550600080611c8d60008a8a87818110611c7157611c71615390565b9050602002016020810190611c8691906149f1565b858a6135fe565b9092509050611c9c81836153a6565b611ca690886153d2565b9650888885818110611cba57611cba615390565b9050602002016020810190611ccf91906149f1565b6001600160a01b03167ffa9a59e38078b6e802da0fb798d0d83167acace0ba828c7a39c2546928c05faf6000604051611d0a91815260200190565b60405180910390a25050508080611d20906153b9565b915050611bae565b506005546040516370a0823160e01b815230600482015260009161010090046001600160a01b0316906370a0823190602401602060405180830381865afa158015611d77573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d9b91906152c9565b6007549091506001600160801b0316811115611f0a57600754600090611dca906001600160801b0316836153d2565b60055460405163095ea7b360e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166004830152602482018490529293506101009091049091169063095ea7b3906044016020604051808303816000875af1158015611e46573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e6a91906153e5565b506005546001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169163b214faa591611eb891610100900416611eb3856139bc565b613a24565b6040518263ffffffff1660e01b8152600401611ed691815260200190565b600060405180830381600087803b158015611ef057600080fd5b505af1158015611f04573d6000803e3d6000fd5b50505050505b50505050610d6f60018055565b611f1f6124db565b611f27612bd3565b611f2f612c00565b6000611f3a82613a4a565b604051637232817f60e01b81529091506001600160a01b03841690637232817f90611f699085906004016150de565b60e0604051808303816000875af1158015611f88573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fac9190615402565b505050611fbe83826000015130612c58565b156115f5576115f5838260000151612cad565b611fd96124db565b611fe433338361259a565b60055460405163095ea7b360e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166004830152602482018490526101009092049091169063095ea7b3906044016020604051808303816000875af115801561205d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061208191906153e5565b506005546001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169163b214faa5916120ca91610100900416611eb3856139bc565b6040518263ffffffff1660e01b81526004016120e891815260200190565b600060405180830381600087803b15801561210257600080fd5b505af1158015612116573d6000803e3d6000fd5b5050505061165660018055565b6001600160a01b038216600090815260096020526040812054819081901561215e576040516317c71bf960e01b815260040160405180910390fd5b6001600160a01b0385166000908152600860209081526040918290208251808401909352546001600160801b03808216808552600160801b90920416918301919091528511156121c857805160405163b316a15d60e01b815261027b918891889190600401615036565b60006121d486836138d7565b6005546040516325daa7df60e01b81526101009091046001600160a01b039081166004830152306024830152939750919550925082917f000000000000000000000000000000000000000000000000000000000000000016906325daa7df90604401602060405180830381865afa158015612253573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061227791906152c9565b1015945050509250925092565b6122b66040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b60006122c06124db565b6122c8612bd3565b6122d0612c00565b604051634a45e24160e11b8152600481018490526001600160a01b0385169063948bc4829060240160c0604051808303816000875af1158015612317573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061233b9190615438565b9150915061116c60018055565b60405163174df78360e31b8152600a6004820152606090819073__$6472d8096db147f599f04e9210f50e0381$__9063ba6fbc1890602401600060405180830381865af415801561239d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526123c591908101906154f7565b915091509091565b6060806123d86124db565b6123e0612bd3565b6123e8612c00565b6000806123f485613af1565b50509350505091506000612409878430612dd1565b506005548351919250600160c01b900460ff169061242790836153a6565b111561244657604051638a4f6d8160e01b815260040160405180910390fd5b600080886001600160a01b031663f17fb644896040518263ffffffff1660e01b815260040161247591906155bb565b6000604051808303816000875af1158015612494573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526124bc9190810190615650565b915091506124ca8986612ef5565b909550935050505061116c60018055565b60026001540361252d5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161027b565b6002600155565b6002546001600160a01b0316331461256157604051635aa8141760e11b815233600482015260240161027b565b565b600260055460ff16600381111561257c5761257c614a0e565b0361256157604051630c0e370160e41b815260040160405180910390fd5b6005546040516370a0823160e01b815230600482015260009161010090046001600160a01b0316906370a0823190602401602060405180830381865afa1580156125e8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061260c91906152c9565b6005549091506000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03908116610100909204161480156126555750600034115b905080156126f65782341461267d57604051631841b4e160e01b815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db0846040518263ffffffff1660e01b81526004016000604051808303818588803b1580156126d857600080fd5b505af11580156126ec573d6000803e3d6000fd5b5050505050612713565b6005546127139061010090046001600160a01b0316863086613d00565b6005546040516370a0823160e01b815230600482015260009161010090046001600160a01b0316906370a0823190602401602060405180830381865afa158015612761573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061278591906152c9565b90508361279284836153d2565b146127c257600554604051624b6a0b60e01b81526101009091046001600160a01b0316600482015260240161027b565b846001600160a01b0316866001600160a01b03161461283857846001600160a01b0316866001600160a01b03167f8311b03528a56e006bf3d3fca536c9b85e1bc3422e2ddbe4ae5608b187b15094848760405161282b9291909115158252602082015260400190565b60405180910390a361287f565b604080518315158152602081018690526001600160a01b038716917f74a132f462598ad738fcdf934a3f668aac78953afdb0c9fb953e16e07cca511c910160405180910390a25b505050505050565b6000612891613272565b600754909150600160801b90046001600160801b0316158015906128b3575080155b156128d15760405163b760e1c360e01b815260040160405180910390fd5b600754600090600160801b90046001600160801b03161561291a57600754829061290b90600160801b90046001600160801b031685615290565b61291591906152a7565b61291c565b825b6001600160a01b0385166000908152600860209081526040918290208251808401909352546001600160801b038082168452600160801b9091041690820152909150612967826131af565b81518290612976908390615708565b6001600160801b031690525061298b846131af565b8160200181815161299c9190615708565b6001600160801b039081169091526001600160a01b038716600081815260086020908152604091829020865187830180518716600160801b0291871691821790925583519081529051909416908401529092507f6832ff7af99d5e87905392b4d54a62f6dacd2d7a3ed24d12d779ce327f86c8cb910160405180910390a2600754612a4190612a3c908490600160801b90046001600160801b03166153a6565b6131af565b600780546001600160801b03908116600160801b93821684021791829055604051929091041681527f1c3f661400229776a9ef480f26f31004f476ef08551443dde451c0fb0d02439b9060200160405180910390a160055460405163095ea7b360e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166004830152602482018790526101009092049091169063095ea7b3906044016020604051808303816000875af1158015612b0f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b3391906153e5565b506005546001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169163b214faa591612b7c91610100900416611eb3886139bc565b6040518263ffffffff1660e01b8152600401612b9a91815260200190565b600060405180830381600087803b158015612bb457600080fd5b505af1158015612bc8573d6000803e3d6000fd5b505050505050505050565b6004546001600160a01b0316331461256157604051632a19e83360e01b815233600482015260240161027b565b60055460ff166001816003811115612c1a57612c1a614a0e565b14158015612c3a57506002816003811115612c3757612c37614a0e565b14155b156116565760405163cbd4014160e01b815260040160405180910390fd5b6000806000612c68868686612dd1565b915091506000821180612c7b5750600081115b15612c8b57600092505050612ca6565b6000612c98878787613d5a565b60200151600f0b1593505050505b9392505050565b6000612cd3600a63ffffffff8416602086901b640100000000600160c01b031617613e28565b90508015610cff57604080516001600160a01b038516815263ffffffff841660208201527fe5a517a44cf7225140b419fa9e433c01bd209b3a88215b4a693bf5f70318587691015b60405180910390a1505050565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a0810191909152612d758260005b602002015190602082901c90605083901c90565b63ffffffff90811660a085015265ffffffffffff919091166080808501919091529116825260209283015162ffffff609882901c8116948401949094529081901c90921660408201526001600160801b03909116606082015290565b60008060008484604051602001612e0392919063ffffffff9290921682526001600160a01b0316602082015260400190565b60408051601f19818403018152600180845283830190925292506000919060208083019080368337019050509050600081600081518110612e4657612e46615390565b60209081029190910101526040516314b4fb0d60e11b81526000906001600160a01b03891690632969f61a90612e86908a908a9086908990600401615728565b600060405180830381865afa158015612ea3573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612ecb9190810190615776565b905080806020019051810190612ee191906157e3565b60ff9182169a911698509650505050505050565b6000612f1b600a63ffffffff8416602086901b640100000000600160c01b031617613e34565b600554909150600160b01b900460ff16612f35600a613e40565b1115612f54576040516397448cbb60e01b815260040160405180910390fd5b8015610cff5760405163fd6aad2560e01b81526001600160a01b0384811660048301526000917f00000000000000000000000000000000000000000000000000000000000000009091169063fd6aad2590602401602060405180830381865afa158015612fc5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612fe991906152c9565b0361301257604051633a937ca960e11b81526001600160a01b038416600482015260240161027b565b604080516001600160a01b038516815263ffffffff841660208201527f2faac6df7f3f63b8efd0b7dc43b3cfa03e43bc9823c7a2c4a1ebea570dbfca379101612d1b565b82156130e557604051632e1a7d4d60e01b8152600481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690632e1a7d4d90602401600060405180830381600087803b1580156130be57600080fd5b505af11580156130d2573d6000803e3d6000fd5b505050506130e08282613e4a565b613164565b60055460405163a9059cbb60e01b81526001600160a01b038481166004830152602482018490526101009092049091169063a9059cbb906044016020604051808303816000875af115801561313e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061316291906153e5565b505b604080518415158152602081018390526001600160a01b038416917f4a48cb98c5be023b78a0b3ec94107a01a0397b2e389d4b5f252aef518e633ec3910160405180910390a2505050565b60006001600160801b038211156132185760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20316044820152663238206269747360c81b606482015260840161027b565b5090565b8051600080602083901c603884901c826132408760015b6020020151608081901c91565b969890975092945090925050565b613259828230612c58565b1561326857610d6f8282612cad565b610d6f8282612ef5565b60008073__$6472d8096db147f599f04e9210f50e0381$__63557739a4613299600a613f63565b60055460405160e084901b6001600160e01b03191681526132f992917f00000000000000000000000000000000000000000000000000000000000000009161010082046001600160a01b031691600160a81b900460ff1690600401615812565b602060405180830381865af4158015613316573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061333a91906152c9565b90506000811261334a578061334d565b60005b91505090565b6005546040516370a0823160e01b815230600482015260009161010090046001600160a01b0316906370a0823190602401602060405180830381865afa1580156133a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133c591906152c9565b6005549091506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811691638e19899e9161341091610100900416611eb3866139bc565b6040518263ffffffff1660e01b815260040161342e91815260200190565b600060405180830381600087803b15801561344857600080fd5b505af115801561345c573d6000803e3d6000fd5b50506005546040516370a0823160e01b8152306004820152600093506101009091046001600160a01b031691506370a0823190602401602060405180830381865afa1580156134af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134d391906152c9565b9050826134e083836153d2565b14610cff57600260009054906101000a90046001600160a01b03166001600160a01b031663c7157d996040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561353557600080fd5b505af1158015613549573d6000803e3d6000fd5b50506005546040516370a0823160e01b81523060048201526101009091046001600160a01b031692506370a082319150602401602060405180830381865afa158015613599573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135bd91906152c9565b905060006135cb83836153d2565b9050838110156117e2576040516346783b4360e01b8152336004820152602481018290526044810185905260640161027b565b6001600160a01b03831660009081526008602090815260408083208151808301909252546001600160801b03808216808452600160801b90920416928201839052839283919061364f908890615290565b61365991906152a7565b600754909150600090600160801b90046001600160801b031661367c8888615290565b61368691906152a7565b9050600061369383613f70565b61369c83613f70565b6136a6919061587b565b9050600081136136b75760006136e6565b60055461271090600160c81b900461ffff166136d283613fda565b6136dc9190615290565b6136e691906152a7565b94506137048385602001516001600160801b0316612a3c91906153d2565b6001600160801b039081166020860152845161372691612a3c918b91166153d2565b6001600160801b0390811685526001600160a01b038a166000818152600860209081526040918290208851828a0180518716600160801b02918716918217909255835190815290519094169084015290917f6832ff7af99d5e87905392b4d54a62f6dacd2d7a3ed24d12d779ce327f86c8cb910160405180910390a26007546137c490612a3c908a90600160801b90046001600160801b03166153d2565b600780546001600160801b03908116600160801b93821684021791829055604051929091041681527f1c3f661400229776a9ef480f26f31004f476ef08551443dde451c0fb0d02439b9060200160405180910390a160075461383490612a3c9087906001600160801b03166153a6565b600780546001600160801b0319166001600160801b039290921691821790556040519081527f09fc1f94317b898bf68341d59011cb8daf41ac7ca61877a2e218a7399f99d5d89060200160405180910390a161389085836153d2565b955061389d8a8a88613056565b5050505094509492505050565b8051600080602083901c603884901c605885901c6138c9876001613233565b969890975092945090925090565b6000806000806138e5613272565b9050600085600001516001600160801b03168787602001516001600160801b03166139109190615290565b61391a91906152a7565b600754909150600160801b90046001600160801b031661393a8884615290565b61394491906152a7565b9250600061395182613f70565b61395a85613f70565b613964919061587b565b9050600081136139755760006139a4565b60055461271090600160c81b900461ffff1661399083613fda565b61399a9190615290565b6139a491906152a7565b94506139b085856153d2565b95505050509250925092565b60006001600160601b038211156132185760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203960448201526536206269747360d01b606482015260840161027b565b60006001600160a01b03831660a083901b6001600160a01b031916175b90505b92915050565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a08101829052908080613a888582612d61565b6020978801516040805160c08101825263ffffffff95861681526001600160a01b0383169a81019a909a5260a082811c600290810b928c019290925260b89290921c900b60608a015265ffffffffffff9092166080890152919091169086015250929392505050565b60008080606080826009604051908082528060200260200182016040528015613b24578160200160208202803683370190505b50604080516009808252610140820190925291945060208201610120803683370190505087519650915050602085901c600086815b6003811015613c24576000613b6f826028615290565b613b7a9060406153a6565b613b859060106153a6565b83901c9050627ffffe19600282900b01613b9f5750613c12565b80878581518110613bb257613bb2615390565b60029290920b60209283029190910190910152613bd0826028615290565b613bdb9060406153a6565b83901c868581518110613bf057613bf0615390565b61ffff9092166020928302919091019091015283613c0d816153b9565b945050505b80613c1c816153b9565b915050613b59565b50602089015160005b6006811015613ce2576000613c43826028615290565b613c4e9060106153a6565b83901c9050627ffffe19600282900b01613c685750613cd0565b80888681518110613c7b57613c7b615390565b60029290920b60209283029190910190910152613c99826028615290565b83901c878681518110613cae57613cae615390565b61ffff9092166020928302919091019091015284613ccb816153b9565b955050505b80613cda816153b9565b915050613c2d565b50505080835283526040909601519496608086901c96929450909250565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b1790526117e290859061402c565b6040805160a08101825260008082526020820181905291810182905260608101829052608081019190915260408051602081018252600080825291516314b4fb0d60e11b81526001600160a01b03871691632969f61a91613dc49188918891600391600401615728565b600060405180830381865afa158015613de1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052613e099190810190615776565b905080806020019051810190613e1f919061589b565b95945050505050565b6000613a418383614101565b6000613a4183836141fb565b6000613a44825490565b80471015613e9a5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e6365000000604482015260640161027b565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114613ee7576040519150601f19603f3d011682016040523d82523d6000602084013e613eec565b606091505b5050905080610cff5760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d61792068617665207265766572746564000000000000606482015260840161027b565b60606000612ca68361424a565b60006001600160ff1b038211156132185760405162461bcd60e51b815260206004820152602860248201527f53616665436173743a2076616c756520646f65736e27742066697420696e2061604482015267371034b73a191a9b60c11b606482015260840161027b565b6000808212156132185760405162461bcd60e51b815260206004820181905260248201527f53616665436173743a2076616c7565206d75737420626520706f736974697665604482015260640161027b565b6000614081826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166142a69092919063ffffffff16565b90508051600014806140a25750808060200190518101906140a291906153e5565b610cff5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b606482015260840161027b565b600081815260018301602052604081205480156141ea5760006141256001836153d2565b8554909150600090614139906001906153d2565b905081811461419e57600086600001828154811061415957614159615390565b906000526020600020015490508087600001848154811061417c5761417c615390565b6000918252602080832090910192909255918252600188019052604090208390555b85548690806141af576141af61590f565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050613a44565b6000915050613a44565b5092915050565b600081815260018301602052604081205461424257508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155613a44565b506000613a44565b60608160000180548060200260200160405190810160405280929190818152602001828054801561429a57602002820191906000526020600020905b815481526020019060010190808311614286575b50505050509050919050565b60606142b584846000856142bd565b949350505050565b60608247101561431e5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b606482015260840161027b565b600080866001600160a01b0316858760405161433a9190615925565b60006040518083038185875af1925050503d8060008114614377576040519150601f19603f3d011682016040523d82523d6000602084013e61437c565b606091505b509150915061438d87838387614398565b979650505050505050565b60608315614407578251600003614400576001600160a01b0385163b6144005760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161027b565b50816142b5565b6142b5838381511561441c5781518083602001fd5b8060405162461bcd60e51b815260040161027b9190614486565b60005b83811015614451578181015183820152602001614439565b50506000910152565b60008151808452614472816020860160208601614436565b601f01601f19169290920160200192915050565b602081526000613a41602083018461445a565b6001600160a01b038116811461165657600080fd5b80356144b981614499565b919050565b634e487b7160e01b600052604160045260246000fd5b60405161012081016001600160401b03811182821017156144f7576144f76144be565b60405290565b604051608081016001600160401b03811182821017156144f7576144f76144be565b60405160a081016001600160401b03811182821017156144f7576144f76144be565b604051606081016001600160401b03811182821017156144f7576144f76144be565b604051601f8201601f191681016001600160401b038111828210171561458b5761458b6144be565b604052919050565b60006001600160401b038211156145ac576145ac6144be565b50601f01601f191660200190565b60006145cd6145c884614593565b614563565b90508281528383830111156145e157600080fd5b828260208301376000602084830101529392505050565b600082601f83011261460957600080fd5b613a41838335602085016145ba565b8035600481106144b957600080fd5b60ff8116811461165657600080fd5b80356144b981614627565b803561ffff811681146144b957600080fd5b6001600160801b038116811461165657600080fd5b80356144b981614653565b60008060008084860361018081121561468b57600080fd5b853561469681614499565b945060208601356001600160401b038111156146b157600080fd5b6146bd888289016145f8565b94505060408601356146ce81614499565b9250610120605f1982018113156146e457600080fd5b6146ec6144d4565b91506146fa60608801614618565b8252614708608088016144ae565b602083015261471960a08801614636565b604083015261472a60c08801614636565b606083015261473b60e08801614636565b608083015261010061474e818901614636565b60a084015261475e828901614641565b60c08401526147706101408901614668565b60e08401526147826101608901614668565b9083015250939692955090935050565b6000806000606084860312156147a757600080fd5b83356147b281614627565b925060208401356147c281614627565b915060408401356147d281614627565b809150509250925092565b600080604083850312156147f057600080fd5b82356147fb81614499565b946020939093013593505050565b63ffffffff8116811461165657600080fd5b600080600060a0848603121561483057600080fd5b833561483b81614499565b925060208481013561484c81614809565b9250605f8501861361485d57600080fd5b614865614541565b8060a087018881111561487757600080fd5b604088015b818110156148a95780356001600160f01b038116811461489c5760008081fd5b845292840192840161487c565b50508093505050509250925092565b600082601f8301126148c957600080fd5b604051604081018181106001600160401b03821117156148eb576148eb6144be565b806040525080604084018581111561490257600080fd5b845b8181101561491c578035835260209283019201614904565b509195945050505050565b6000806060838503121561493a57600080fd5b823561494581614499565b915061495484602085016148b8565b90509250929050565b801515811461165657600080fd5b6000806040838503121561497e57600080fd5b82356147fb8161495d565b62ffffff8316815260608101612ca6602083018480516001600160801b03168252602090810151600f0b910152565b600080604083850312156149cb57600080fd5b82356149d681614499565b915060208301356149e681614809565b809150509250929050565b600060208284031215614a0357600080fd5b8135612ca681614499565b634e487b7160e01b600052602160045260246000fd5b60048110614a3457614a34614a0e565b9052565b600061012082019050614a4c828451614a24565b60018060a01b03602084015116602083015260ff60408401511660408301526060830151614a7f606084018260ff169052565b506080830151614a94608084018260ff169052565b5060a0830151614aa960a084018260ff169052565b5060c0830151614abf60c084018261ffff169052565b5060e0830151614ada60e08401826001600160801b03169052565b50610100928301516001600160801b0316919092015290565b600060208284031215614b0557600080fd5b613a4182614641565b600060208284031215614b2057600080fd5b8135612ca681614653565b600060208284031215614b3d57600080fd5b5035919050565b60008060008060a08587031215614b5a57600080fd5b84356001600160401b0380821115614b7157600080fd5b614b7d888389016145f8565b955060208701359150614b8f82614499565b90935060408601359080821115614ba557600080fd5b508501601f81018713614bb757600080fd5b614bc6878235602084016145ba565b925050614bd686606087016148b8565b905092959194509250565b600060208284031215614bf357600080fd5b613a4182614618565b600080600080600060a08688031215614c1457600080fd5b8535614c1f81614499565b94506020860135614c2f81614809565b93506040860135614c3f81614499565b94979396509394606081013594506080013592915050565b60008060208385031215614c6a57600080fd5b82356001600160401b0380821115614c8157600080fd5b818501915085601f830112614c9557600080fd5b813581811115614ca457600080fd5b8660208260051b8501011115614cb957600080fd5b60209290920196919550909350505050565b604080825283519082018190526000906020906060840190828701845b82811015614d0d5781516001600160a01b031684529284019290840190600101614ce8565b5050508381038285015284518082528583019183019060005b81811015614d4857835163ffffffff1683529284019291840191600101614d26565b5090979650505050505050565b60008060808385031215614d6857600080fd5b8235614d7381614499565b91506020603f84018513614d8657600080fd5b614d8e614541565b806080860187811115614da057600080fd5b8387015b81811015614dbb5780358452928401928401614da4565b509497909650945050505050565b60408082528351828201819052600091906020906060850190828801855b82811015614e0857815162ffffff1684529284019290840190600101614de7565b5050508481038286015285518082528683019183019060005b81811015614e5a57614e4a83855180516001600160801b03168252602090810151600f0b910152565b9284019291850191600101614e21565b509098975050505050505050565b600181811c90821680614e7c57607f821691505b602082108103614e9c57634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115610cff57600081815260208120601f850160051c81016020861015614ec95750805b601f850160051c820191505b8181101561287f57828155600101614ed5565b81516001600160401b03811115614f0157614f016144be565b614f1581614f0f8454614e68565b84614ea2565b602080601f831160018114614f4a5760008415614f325750858301515b600019600386901b1c1916600185901b17855561287f565b600085815260208120601f198616915b82811015614f7957888601518255948401946001909101908401614f5a565b5085821015614f975787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b8154610120820190614fbc8360ff8316614a24565b6001600160a01b03600882901c16602084015260a881901c60ff16604084015260b081901c60ff16606084015260b881901c60ff16608084015260c081901c60ff1660a084015260c881901c61ffff1660c08401525060018301546001600160801b03811660e0840152608081901c6101008401526141f4565b6001600160a01b0393909316835260208301919091526001600160801b0316604082015260600190565b6001600160a01b038416815263ffffffff831660208083019190915260a0820190604083018460005b60038110156150af5781516001600160f01b031683529183019190830190600101615089565b50505050949350505050565b8060005b60028110156117e25781518452602093840193909101906001016150bf565b60408101613a4482846150bb565b8051600281900b81146144b957600080fd5b600080600083850360c081121561511457600080fd5b61511d856150ec565b935061512b602086016150ec565b92506080603f198201121561513f57600080fd5b506151486144fd565b604085015161515681614653565b8152606085015161516681614653565b602082015260808501516001600160601b038116811461518557600080fd5b604082015260a085015161519881614499565b606082015292959194509192509050565b634e487b7160e01b600052601160045260246000fd5b6001600160801b038281168282160390808211156141f4576141f46151a9565b805162ffffff811681146144b957600080fd5b8051600f81900b81146144b957600080fd5b60006040828403121561521657600080fd5b604051604081018181106001600160401b0382111715615238576152386144be565b8060405250809150825161524b81614653565b8152615259602084016151f2565b60208201525092915050565b6000806060838503121561527857600080fd5b615281836151df565b91506149548460208501615204565b8082028115828204841417613a4457613a446151a9565b6000826152c457634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156152db57600080fd5b5051919050565b600060a082840312156152f457600080fd5b6152fc61451f565b9050815181526020820151602082015260408201516040820152606082015160608201526080820151608082015292915050565b600060a0828403121561534257600080fd5b613a4183836152e2565b60a08152600061535f60a083018761445a565b6001600160a01b03861660208401528281036040840152615380818661445a565b915050613e1f60608301846150bb565b634e487b7160e01b600052603260045260246000fd5b80820180821115613a4457613a446151a9565b6000600182016153cb576153cb6151a9565b5060010190565b81810381811115613a4457613a446151a9565b6000602082840312156153f757600080fd5b8151612ca68161495d565b600080600060e0848603121561541757600080fd5b61542185856152e2565b925060a0840151915060c084015190509250925092565b60008060c0838503121561544b57600080fd5b61545584846152e2565b915060a083015190509250929050565b60006001600160401b0382111561547e5761547e6144be565b5060051b60200190565b600082601f83011261549957600080fd5b815160206154a96145c883615465565b82815260059290921b840181019181810190868411156154c857600080fd5b8286015b848110156154ec5780516154df81614809565b83529183019183016154cc565b509695505050505050565b6000806040838503121561550a57600080fd5b82516001600160401b038082111561552157600080fd5b818501915085601f83011261553557600080fd5b815160206155456145c883615465565b82815260059290921b8401810191818101908984111561556457600080fd5b948201945b8386101561558b57855161557c81614499565b82529482019490820190615569565b918801519196509093505050808211156155a457600080fd5b506155b185828601615488565b9150509250929050565b60608101818360005b60038110156155e35781518352602092830192909101906001016155c4565b50505092915050565b600082601f8301126155fd57600080fd5b8151602061560d6145c883615465565b82815260069290921b8401810191818101908684111561562c57600080fd5b8286015b848110156154ec576156428882615204565b835291830191604001615630565b6000806040838503121561566357600080fd5b82516001600160401b038082111561567a57600080fd5b818501915085601f83011261568e57600080fd5b8151602061569e6145c883615465565b82815260059290921b840181019181810190898411156156bd57600080fd5b948201945b838610156156e2576156d3866151df565b825294820194908201906156c2565b918801519196509093505050808211156156fb57600080fd5b506155b1858286016155ec565b6001600160801b038181168382160190808211156141f4576141f46151a9565b63ffffffff851681526001600160a01b038416602082015260006006841061575257615752614a0e565b8360408301526080606083015261576c608083018461445a565b9695505050505050565b60006020828403121561578857600080fd5b81516001600160401b0381111561579e57600080fd5b8201601f810184136157af57600080fd5b80516157bd6145c882614593565b8181528560208385010111156157d257600080fd5b613e1f826020830160208601614436565b600080604083850312156157f657600080fd5b825161580181614627565b60208401519092506149e681614627565b6080808252855190820181905260009060209060a0840190828901845b8281101561584b5781518452928401929084019060010161582f565b5050506001600160a01b039687169184019190915293909416604082015260ff9190911660609091015292915050565b81810360008312801583831316838312821617156141f4576141f46151a9565b600060a082840312156158ad57600080fd5b6158b561451f565b6158be836151f2565b81526158cc602084016151f2565b602082015260408301516158df81614653565b604082015260608301516158f281614653565b6060820152615903608084016151f2565b60808201529392505050565b634e487b7160e01b600052603160045260246000fd5b60008251615937818460208701614436565b919091019291505056fe7aa26100cf067ef7b964310be0c1545f3bc3b53b2baea88f98d4d005d6d67f49a264697066735822122058b029d1729fba6ba296e92b578a009d9530310a73f9c817c1044418e933308064736f6c63430008130033';\nconst isSuperArgs = (xs) => {\n return (typeof xs[0] === 'string' ||\n Array.isArray(xs[0]) ||\n '_isInterface' in xs[0]);\n};\nclass Vault__factory extends ethers_1.ContractFactory {\n constructor(...args) {\n if (isSuperArgs(args)) {\n super(...args);\n }\n else {\n const [linkLibraryAddresses, signer] = args;\n super(_abi, Vault__factory.linkBytecode(linkLibraryAddresses), signer);\n }\n }\n static linkBytecode(linkLibraryAddresses) {\n let linkedBytecode = _bytecode;\n linkedBytecode = linkedBytecode.replace(new RegExp('__\\\\$6472d8096db147f599f04e9210f50e0381\\\\$__', 'g'), linkLibraryAddresses['contracts/peripheral/vault/LibVault.sol:LibVault'].replace(/^0x/, '').toLowerCase());\n return linkedBytecode;\n }\n deploy(_gate, _weth, overrides) {\n return super.deploy(_gate, _weth, overrides || {});\n }\n getDeployTransaction(_gate, _weth, overrides) {\n return super.getDeployTransaction(_gate, _weth, overrides || {});\n }\n attach(address) {\n return super.attach(address);\n }\n connect(signer) {\n return super.connect(signer);\n }\n static createInterface() {\n return new ethers_1.utils.Interface(_abi);\n }\n static connect(address, signerOrProvider) {\n return new ethers_1.Contract(address, _abi, signerOrProvider);\n }\n}\nexports.Vault__factory = Vault__factory;\nVault__factory.bytecode = _bytecode;\nVault__factory.abi = _abi;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.VaultFactory__factory = exports.Vault__factory = void 0;\nvar Vault__factory_1 = require(\"./Vault__factory\");\nObject.defineProperty(exports, \"Vault__factory\", { enumerable: true, get: function () { return Vault__factory_1.Vault__factory; } });\nvar VaultFactory__factory_1 = require(\"./VaultFactory__factory\");\nObject.defineProperty(exports, \"VaultFactory__factory\", { enumerable: true, get: function () { return VaultFactory__factory_1.VaultFactory__factory; } });\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || (function () {\n var ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n };\n return function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.VaultFactory__factory = exports.Vault__factory = exports.factories = void 0;\nexports.factories = __importStar(require(\"./factories\"));\nvar Vault__factory_1 = require(\"./factories/Vault__factory\");\nObject.defineProperty(exports, \"Vault__factory\", { enumerable: true, get: function () { return Vault__factory_1.Vault__factory; } });\nvar VaultFactory__factory_1 = require(\"./factories/VaultFactory__factory\");\nObject.defineProperty(exports, \"VaultFactory__factory\", { enumerable: true, get: function () { return VaultFactory__factory_1.VaultFactory__factory; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.encodeBatchCancelTicks = encodeBatchCancelTicks;\nexports.decodeBatchCancelTicks = decodeBatchCancelTicks;\nexports.getUserDepositInfo = getUserDepositInfo;\nexports.generateMessageForMulticallHandler = generateMessageForMulticallHandler;\nconst utils_1 = require(\"ethers/lib/utils\");\nconst ethers_1 = require(\"ethers\");\nconst context_1 = require(\"@derivation-tech/context\");\nconst contracts_1 = require(\"@derivation-tech/contracts\");\nconst sdks_perp_1 = require(\"@synfutures/sdks-perp\");\nconst typechain_1 = require(\"./typechain\");\nfunction encodeBatchCancelTicks(ticks) {\n const ENCODE_TICK_AMOUNT = 3;\n const MAX_TICK_IN_PAGE = 10;\n const EMPTY_TICK = ethers_1.BigNumber.from(1).shl(23).sub(1);\n if (ticks.length > ENCODE_TICK_AMOUNT * MAX_TICK_IN_PAGE)\n throw new Error('order full');\n const uTicks = ticks.map((tick) => (0, sdks_perp_1.asUint24)(tick));\n const res = ['', '', ''];\n for (let i = 0; i < ENCODE_TICK_AMOUNT; i++) {\n let encoded = ethers_1.BigNumber.from(0);\n for (let j = 0; j < MAX_TICK_IN_PAGE; j++) {\n encoded = encoded.shl(24);\n encoded =\n i * MAX_TICK_IN_PAGE + j > uTicks.length - 1\n ? encoded.add(EMPTY_TICK)\n : encoded.add(uTicks[i * MAX_TICK_IN_PAGE + j]);\n }\n res[i] = (0, utils_1.hexZeroPad)(encoded.toHexString(), 32);\n }\n return res;\n}\nfunction decodeBatchCancelTicks(encodedTicks) {\n const ENCODE_TICK_AMOUNT = 3;\n const MAX_TICK_IN_PAGE = 10;\n const EMPTY_TICK = ethers_1.BigNumber.from(1).shl(23).sub(1).toNumber();\n const ticks = new Array();\n for (let i = 0; i < ENCODE_TICK_AMOUNT; i++) {\n if (encodedTicks[i] === undefined)\n continue;\n let encoded = encodedTicks[i].slice(6);\n for (let j = 0; j < MAX_TICK_IN_PAGE; j++) {\n const tick = (0, sdks_perp_1.asInt24)(ethers_1.BigNumber.from('0x' + encoded.slice(0, 6)).toNumber());\n if (tick === EMPTY_TICK)\n return ticks;\n ticks.push(tick);\n encoded = encoded.slice(6);\n }\n }\n return ticks;\n}\nasync function getUserDepositInfo(user, vaultAddrs, ctx, overrides) {\n const vaultInterface = typechain_1.Vault__factory.createInterface();\n const calls = [];\n calls.push(...vaultAddrs.map((vaultAddr) => {\n return {\n target: vaultAddr,\n callData: vaultInterface.encodeFunctionData('getPortfolioValue'),\n };\n }));\n calls.push(...vaultAddrs.map((vaultAddr) => {\n return {\n target: vaultAddr,\n callData: vaultInterface.encodeFunctionData('getStake', [user]),\n };\n }));\n calls.push(...vaultAddrs.map((vaultAddr) => {\n return {\n target: vaultAddr,\n callData: vaultInterface.encodeFunctionData('totalShare'),\n };\n }));\n overrides = overrides ?? { blockTag: await ctx.provider.getBlockNumber() };\n const rawRet = (await ctx.getMulticall3().callStatic.aggregate(calls, overrides)).returnData;\n const portfolioValues = rawRet.slice(0, vaultAddrs.length).map((ret) => {\n return vaultInterface.decodeFunctionResult('getPortfolioValue', ret)[0];\n });\n const stakes = rawRet.slice(vaultAddrs.length, vaultAddrs.length * 2).map((ret) => {\n return vaultInterface.decodeFunctionResult('getStake', ret)[0];\n });\n const totalShares = rawRet.slice(vaultAddrs.length * 2).map((ret) => {\n return vaultInterface.decodeFunctionResult('totalShare', ret)[0];\n });\n return {\n depositInfos: stakes.map((stake, i) => {\n return {\n user,\n vault: vaultAddrs[i],\n share: stake.share,\n entryValue: stake.entryValue,\n holdingValue: totalShares[i].eq(context_1.ZERO)\n ? context_1.ZERO\n : portfolioValues[i].mul(stakes[i].share).div(totalShares[i]),\n };\n }),\n blockHeight: overrides.blockTag,\n };\n}\nfunction generateMessageForMulticallHandler(userAddress, vaultAddress, quoteAddress, depositAmount) {\n const abiCoder = new utils_1.AbiCoder();\n const vaultInterface = typechain_1.Vault__factory.createInterface();\n const quoteInterface = contracts_1.ERC20__factory.createInterface();\n const approveCalldata = quoteInterface.encodeFunctionData('approve', [vaultAddress, depositAmount]);\n const depositCalldata = vaultInterface.encodeFunctionData('depositFor', [userAddress, depositAmount]);\n return abiCoder.encode([\n 'tuple(' +\n 'tuple(' +\n 'address target,' +\n 'bytes callData,' +\n 'uint256 value' +\n ')[],' +\n 'address fallbackRecipient' +\n ')',\n ], [\n [\n [\n [quoteAddress, approveCalldata, 0],\n [vaultAddress, depositCalldata, 0],\n ],\n userAddress,\n ],\n ]);\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EMPTY_AMM = exports.MAX_CANCEL_ORDER_COUNT = exports.MIN_BATCH_ORDER_COUNT = exports.MAX_BATCH_ORDER_COUNT = exports.DEFAULT_REFERRAL_CODE = exports.DEFAULT_MAINTENANCE_MARGIN_RATIO = exports.DEFAULT_INITIAL_MARGIN_RATIO = exports.NATIVE_TOKEN_ADDRESS = exports.COMPACT_EMA_PARAM = exports.MAINTENANCE_MARGIN_RATIO = exports.INITIAL_MARGIN_RATIO = exports.PERP_EXPIRY = exports.NULL_DDL = exports.SETTLING_DURATION = exports.MIN_RANGE_MULTIPLIER = exports.MIN_ORDER_MULTIPLIER = exports.MAX_STABILITY_FEE_RATIO = exports.STABILITY_FEE_RATIO_BASE = exports.RATIO_BASE = exports.RANGE_SPACING = exports.ORDER_SPACING = exports.PEARL_SPACING = exports.INT24_MAX = exports.INT24_MIN = exports.MIN_TICK = exports.MAX_TICK = exports.NULL_PRICE = exports.ONE_RATIO = exports.NULL_RATIO = exports.MAX_POSITION_NUM = exports.RATIO_DECIMALS = exports.WAD_DECIMALS = void 0;\nconst ethers_1 = require(\"ethers\");\nexports.WAD_DECIMALS = 18;\nexports.RATIO_DECIMALS = 4;\nexports.MAX_POSITION_NUM = 128;\nexports.NULL_RATIO = 0;\nexports.ONE_RATIO = 10000;\nexports.NULL_PRICE = ethers_1.BigNumber.from(0);\nexports.MAX_TICK = 443636;\nexports.MIN_TICK = -322517;\nexports.INT24_MIN = -8388608;\nexports.INT24_MAX = 8388607;\nexports.PEARL_SPACING = 5;\nexports.ORDER_SPACING = exports.PEARL_SPACING;\nexports.RANGE_SPACING = exports.PEARL_SPACING * 10;\nexports.RATIO_BASE = 10000;\nexports.STABILITY_FEE_RATIO_BASE = 100;\nexports.MAX_STABILITY_FEE_RATIO = Math.pow(2, 16) - 1;\nexports.MIN_ORDER_MULTIPLIER = 2;\nexports.MIN_RANGE_MULTIPLIER = 10;\nexports.SETTLING_DURATION = 30 * 60;\nexports.NULL_DDL = Math.pow(2, 32) - 1;\nexports.PERP_EXPIRY = exports.NULL_DDL;\nexports.INITIAL_MARGIN_RATIO = 1000;\nexports.MAINTENANCE_MARGIN_RATIO = 500;\nexports.COMPACT_EMA_PARAM = ethers_1.BigNumber.from('1060108913112522979002928172012890034027465765885994002407459484512227426307');\nexports.NATIVE_TOKEN_ADDRESS = '0x1d6B1d2AD091bec4aAe6A131C92008701531FdaF';\nexports.DEFAULT_INITIAL_MARGIN_RATIO = 1000;\nexports.DEFAULT_MAINTENANCE_MARGIN_RATIO = exports.DEFAULT_INITIAL_MARGIN_RATIO / 2;\nexports.DEFAULT_REFERRAL_CODE = '\\xff\\xff\\x00\\x00\\x00\\x00\\x00\\x00';\nexports.MAX_BATCH_ORDER_COUNT = 9;\nexports.MIN_BATCH_ORDER_COUNT = 2;\nexports.MAX_CANCEL_ORDER_COUNT = 8;\nexports.EMPTY_AMM = {\n expiry: 0,\n timestamp: 0,\n status: 0,\n tick: 0,\n sqrtPX96: ethers_1.BigNumber.from(0),\n liquidity: ethers_1.BigNumber.from(0),\n totalLiquidity: ethers_1.BigNumber.from(0),\n involvedFund: ethers_1.BigNumber.from(0),\n openInterests: ethers_1.BigNumber.from(0),\n feeIndex: ethers_1.BigNumber.from(0),\n protocolFee: ethers_1.BigNumber.from(0),\n totalLong: ethers_1.BigNumber.from(0),\n totalShort: ethers_1.BigNumber.from(0),\n longSocialLossIndex: ethers_1.BigNumber.from(0),\n shortSocialLossIndex: ethers_1.BigNumber.from(0),\n longFundingIndex: ethers_1.BigNumber.from(0),\n shortFundingIndex: ethers_1.BigNumber.from(0),\n insuranceFund: ethers_1.BigNumber.from(0),\n settlementPrice: ethers_1.BigNumber.from(0),\n markPrice: ethers_1.BigNumber.from(0),\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BatchOrderSizeDistribution = exports.MarketType = exports.Leverage = exports.QuoteType = exports.FeederType = exports.InstrumentCondition = exports.Status = exports.Side = void 0;\nvar Side;\n(function (Side) {\n Side[Side[\"FLAT\"] = 0] = \"FLAT\";\n Side[Side[\"SHORT\"] = 1] = \"SHORT\";\n Side[Side[\"LONG\"] = 2] = \"LONG\";\n})(Side || (exports.Side = Side = {}));\nvar Status;\n(function (Status) {\n Status[Status[\"DORMANT\"] = 0] = \"DORMANT\";\n Status[Status[\"TRADING\"] = 1] = \"TRADING\";\n Status[Status[\"SETTLING\"] = 2] = \"SETTLING\";\n Status[Status[\"SETTLED\"] = 3] = \"SETTLED\";\n})(Status || (exports.Status = Status = {}));\nvar InstrumentCondition;\n(function (InstrumentCondition) {\n InstrumentCondition[InstrumentCondition[\"NORMAL\"] = 0] = \"NORMAL\";\n InstrumentCondition[InstrumentCondition[\"FROZEN\"] = 1] = \"FROZEN\";\n InstrumentCondition[InstrumentCondition[\"RESOLVED\"] = 2] = \"RESOLVED\";\n})(InstrumentCondition || (exports.InstrumentCondition = InstrumentCondition = {}));\nvar FeederType;\n(function (FeederType) {\n FeederType[FeederType[\"NONE_STABLE\"] = 0] = \"NONE_STABLE\";\n FeederType[FeederType[\"QUOTE_STABLE\"] = 1] = \"QUOTE_STABLE\";\n FeederType[FeederType[\"BASE_STABLE\"] = 2] = \"BASE_STABLE\";\n FeederType[FeederType[\"BOTH_STABLE\"] = 3] = \"BOTH_STABLE\";\n})(FeederType || (exports.FeederType = FeederType = {}));\nvar QuoteType;\n(function (QuoteType) {\n QuoteType[QuoteType[\"INVALID\"] = 0] = \"INVALID\";\n QuoteType[QuoteType[\"STABLE\"] = 1] = \"STABLE\";\n QuoteType[QuoteType[\"NONSTABLE\"] = 2] = \"NONSTABLE\";\n})(QuoteType || (exports.QuoteType = QuoteType = {}));\nvar Leverage;\n(function (Leverage) {\n Leverage[Leverage[\"LOW\"] = 0] = \"LOW\";\n Leverage[Leverage[\"MEDIUM\"] = 1] = \"MEDIUM\";\n Leverage[Leverage[\"HIGH\"] = 2] = \"HIGH\";\n Leverage[Leverage[\"RISKY\"] = 3] = \"RISKY\";\n})(Leverage || (exports.Leverage = Leverage = {}));\nvar MarketType;\n(function (MarketType) {\n MarketType[\"LINK\"] = \"LINK\";\n MarketType[\"DEXV2\"] = \"DEXV2\";\n MarketType[\"EMG\"] = \"EMG\";\n MarketType[\"PYTH\"] = \"PYTH\";\n})(MarketType || (exports.MarketType = MarketType = {}));\nvar BatchOrderSizeDistribution;\n(function (BatchOrderSizeDistribution) {\n BatchOrderSizeDistribution[BatchOrderSizeDistribution[\"FLAT\"] = 0] = \"FLAT\";\n BatchOrderSizeDistribution[BatchOrderSizeDistribution[\"UPPER\"] = 1] = \"UPPER\";\n BatchOrderSizeDistribution[BatchOrderSizeDistribution[\"LOWER\"] = 2] = \"LOWER\";\n BatchOrderSizeDistribution[BatchOrderSizeDistribution[\"RANDOM\"] = 3] = \"RANDOM\";\n})(BatchOrderSizeDistribution || (exports.BatchOrderSizeDistribution = BatchOrderSizeDistribution = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CalculationError = void 0;\nconst synfError_1 = require(\"./synfError\");\nclass CalculationError extends synfError_1.SynfError {\n constructor(message, data) {\n const msg = message + `,invalid params is: ${JSON.stringify(data)}`;\n super(msg);\n this.name = 'CalculationError';\n }\n}\nexports.CalculationError = CalculationError;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./calculationError\"), exports);\n__exportStar(require(\"./paramsEncodeError\"), exports);\n__exportStar(require(\"./simulationError\"), exports);\n__exportStar(require(\"./synfError\"), exports);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ParamsEncodeError = void 0;\nconst synfError_1 = require(\"./synfError\");\nclass ParamsEncodeError extends synfError_1.SynfError {\n constructor(message, data) {\n const msg = message + `,invalid params is: ${JSON.stringify(data)}`;\n super(msg);\n this.name = 'ParamsEncodeError';\n }\n}\nexports.ParamsEncodeError = ParamsEncodeError;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SimulationError = void 0;\nconst synfError_1 = require(\"./synfError\");\nclass SimulationError extends synfError_1.SynfError {\n constructor(message) {\n super(message);\n this.name = 'SimulationError';\n }\n}\nexports.SimulationError = SimulationError;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SynfError = void 0;\nclass SynfError extends Error {\n constructor(message, cause) {\n super(message);\n this.name = 'SynfError';\n this.cause = cause;\n this.message = `${this.message}\\n${this.cause ? `\\nCaused By: ${this.cause}` : ''}\\n`;\n }\n toString() {\n return `[${this.name}] ${this.message}`;\n }\n}\nexports.SynfError = SynfError;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nvar __importStar = (this && this.__importStar) || (function () {\n var ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n };\n return function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.utils = void 0;\nrequire(\"@derivation-tech/tx-plugin\");\n__exportStar(require(\"./math\"), exports);\n__exportStar(require(\"./modules\"), exports);\n__exportStar(require(\"./types\"), exports);\nexports.utils = __importStar(require(\"./utils\"));\n__exportStar(require(\"./constants\"), exports);\n__exportStar(require(\"./enum\"), exports);\n__exportStar(require(\"./errors\"), exports);\n__exportStar(require(\"./parser\"), exports);\n__exportStar(require(\"./perp.plugin\"), exports);\n__exportStar(require(\"./perp.interface\"), exports);\n__exportStar(require(\"./perp.module\"), exports);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.mulDivRoundingUp = mulDivRoundingUp;\nexports.mulShift = mulShift;\nexports.multiplyIn256 = multiplyIn256;\nexports.addIn256 = addIn256;\nexports.oppositeSigns = oppositeSigns;\nexports.mostSignificantBit = mostSignificantBit;\nexports.sqrt = sqrt;\nexports.roundHalfUp = roundHalfUp;\nexports.neg = neg;\nexports.signedDiv = signedDiv;\nexports.wdiv = wdiv;\nexports.safeWDiv = safeWDiv;\nexports.wdivUp = wdivUp;\nexports.wdivDown = wdivDown;\nexports.wmul = wmul;\nexports.wmulInt = wmulInt;\nexports.wmulUp = wmulUp;\nexports.wmulDown = wmulDown;\nexports.fracUp = fracUp;\nexports.fracDown = fracDown;\nexports.frac = frac;\nexports.weightedAverage = weightedAverage;\nexports.r2w = r2w;\nexports.s2w = s2w;\nexports.d2w = d2w;\nexports.w2d = w2d;\nexports.mulMod = mulMod;\nexports.fullMul = fullMul;\nexports.fullDiv = fullDiv;\nexports.mulDiv = mulDiv;\nexports.sqrtX96ToWad = sqrtX96ToWad;\nexports.wadToSqrtX96 = wadToSqrtX96;\nexports.wadToTick = wadToTick;\nexports.leastSignificantBit = leastSignificantBit;\nexports.leastNonnegativeRemainder = leastNonnegativeRemainder;\nexports.leastNonnegativeComplement = leastNonnegativeComplement;\nexports.maxAmongThree = maxAmongThree;\nexports.max = max;\nexports.min = min;\nexports.relativeDiffRatioWadAbs = relativeDiffRatioWadAbs;\nexports.getOrderLeverageByMargin = getOrderLeverageByMargin;\nexports.getMaxLeverage = getMaxLeverage;\nexports.calcMaxWithdrawable = calcMaxWithdrawable;\nexports.alignPriceToTick = alignPriceToTick;\nexports.calcBoost = calcBoost;\nexports.calcAsymmetricBoost = calcAsymmetricBoost;\nconst ethers_1 = require(\"ethers\");\nconst utils_1 = require(\"../utils\");\nconst tickMath_1 = require(\"./tickMath\");\nconst constants_1 = require(\"../constants\");\nconst constants_2 = require(\"./constants\");\nconst calculationError_1 = require(\"../errors/calculationError\");\nfunction mulDivRoundingUp(a, b, denominator) {\n const product = a.mul(b);\n let result = product.div(denominator);\n if (!product.mod(denominator).eq(constants_2.ZERO))\n result = result.add(constants_2.ONE);\n return result;\n}\nfunction mulShift(val, mulBy) {\n return val.mul(ethers_1.BigNumber.from(mulBy)).shr(128);\n}\nfunction multiplyIn256(x, y) {\n return x.mul(y).and(constants_2.MAX_UINT_256);\n}\nfunction addIn256(x, y) {\n return x.add(y).and(constants_2.MAX_UINT_256);\n}\nfunction oppositeSigns(x, y) {\n return x.mul(y).lt(constants_2.ZERO) ? true : false;\n}\nfunction mostSignificantBit(x) {\n (0, utils_1.solidityRequire)(x.gt(0), 'ZERO');\n (0, utils_1.solidityRequire)(x.lte(constants_2.MAX_UINT_256), 'MAX');\n let msb = 0;\n for (const [power, min] of constants_2.POWERS_OF_2) {\n if (x.gte(min)) {\n x = x.shr(power);\n msb += power;\n }\n }\n return msb;\n}\nfunction sqrt(value) {\n (0, utils_1.solidityRequire)(value.gte(0), 'NEGATIVE');\n if (value.lt(constants_2.MAX_SAFE_INTEGER)) {\n return ethers_1.BigNumber.from(Math.floor(Math.sqrt(Number(value))));\n }\n let z;\n let x;\n z = value;\n x = value.div(constants_2.TWO).add(constants_2.ONE);\n while (x.lt(z)) {\n z = x;\n x = value.div(x).add(x).div(constants_2.TWO);\n }\n return z;\n}\nfunction roundHalfUp(x, y) {\n const z = y.div(constants_2.TWO);\n if (x.gt(0)) {\n return x.add(z);\n }\n return x.sub(z);\n}\nfunction neg(x) {\n return constants_2.ZERO.sub(x);\n}\nfunction signedDiv(x, y) {\n return (x - (x % y)) / y;\n}\nfunction wdiv(x, y) {\n return frac(x, constants_2.WAD, y);\n}\nfunction safeWDiv(x, y) {\n if (y.eq(constants_2.ZERO))\n return constants_2.ZERO;\n return frac(x, constants_2.WAD, y);\n}\nfunction wdivUp(x, y) {\n return fracUp(x, constants_2.WAD, y);\n}\nfunction wdivDown(x, y) {\n return fracDown(x, constants_2.WAD, y);\n}\nfunction wmul(x, y) {\n return frac(x, y, constants_2.WAD);\n}\nfunction wmulInt(x, y) {\n let product = x.mul(y);\n if (product.isNegative()) {\n product = product.sub(constants_2.WAD.div(2));\n }\n else {\n product = product.add(constants_2.WAD.div(2));\n }\n return product.div(constants_2.WAD);\n}\nfunction wmulUp(x, y) {\n return fracUp(x, y, constants_2.WAD);\n}\nfunction wmulDown(x, y) {\n return fracDown(x, y, constants_2.WAD);\n}\nfunction fracUp(x, y, w) {\n const prod = x.mul(y).add(w.sub(1));\n return prod.div(w);\n}\nfunction fracDown(x, y, w) {\n return x.mul(y).div(w);\n}\nfunction frac(x, y, w) {\n const prod = x.mul(y).add(w.div(2));\n return prod.div(w);\n}\nfunction weightedAverage(w1, x1, w2, x2) {\n return x1.mul(w1).add(x2.mul(w2)).div(w1.add(w2));\n}\nfunction r2w(x) {\n x = ethers_1.BigNumber.from(x);\n return x.mul(ethers_1.BigNumber.from(10).pow(14));\n}\nfunction s2w(x) {\n x = ethers_1.BigNumber.from(x);\n return x.mul(ethers_1.BigNumber.from(10).pow(16));\n}\nfunction d2w(x, decimals) {\n return x.mul(ethers_1.BigNumber.from(10).pow(18 - decimals));\n}\nfunction w2d(x, decimals) {\n return wmul(x, ethers_1.BigNumber.from(10).pow(decimals));\n}\nfunction mulMod(x, y, d) {\n return x.mod(d).mul(y.mod(d)).mod(d);\n}\nfunction fullMul(x, y) {\n const mm = mulMod(x, y, constants_2.MAX_UINT_256);\n const l = x.mul(y);\n let h = mm.sub(l);\n if (mm.lt(l)) {\n h = h.sub(1);\n }\n return { l, h };\n}\nfunction fullDiv(l, h, d) {\n const negd = constants_2.MAX_UINT_256.sub(d).add(1);\n const pow2 = d.and(negd);\n d = d.div(pow2);\n l = l.div(pow2);\n const negPow2 = constants_2.MAX_UINT_256.sub(pow2).add(1);\n l = l.add(h.mul(negPow2.div(pow2).add(1)));\n let r = constants_2.ONE;\n for (let i = 0; i < 8; i++) {\n r = r.mul(constants_2.TWO.sub(d.mul(r)));\n }\n return l.mul(r);\n}\nfunction mulDiv(x, y, d) {\n let { l: _l, h: _h } = fullMul(x, y);\n const mm = mulMod(x, y, d);\n if (mm.gt(_l)) {\n _h = _h.sub(1);\n }\n _l = _l.sub(mm);\n return fullDiv(_l, _h, d);\n}\nfunction sqrtX96ToWad(sqrtPX96) {\n sqrtPX96 = ethers_1.BigNumber.from(sqrtPX96);\n const px96 = mulDiv(sqrtPX96, sqrtPX96, constants_2.Q96);\n return mulDiv(px96, constants_2.WAD, constants_2.Q96);\n}\nfunction wadToSqrtX96(price) {\n const x96 = price.mul(constants_2.Q96).div(constants_2.WAD);\n return sqrt(x96.mul(constants_2.Q96));\n}\nfunction wadToTick(price) {\n const sqrtX96 = wadToSqrtX96(price);\n return tickMath_1.TickMath.getTickAtSqrtRatio(sqrtX96);\n}\nfunction leastSignificantBit(x) {\n let r = 255;\n if (x.and(constants_2.MAX_UINT_128).gt(constants_2.ZERO)) {\n r -= 128;\n }\n else {\n x = x.shr(128);\n }\n if (x.and(constants_2.MAX_UINT_64).gt(constants_2.ZERO)) {\n r -= 64;\n }\n else {\n x = x.shr(64);\n }\n if (x.and(constants_2.MAX_UINT_32).gt(constants_2.ZERO)) {\n r -= 32;\n }\n else {\n x = x.shr(32);\n }\n if (x.and(constants_2.MAX_UINT_16).gt(constants_2.ZERO)) {\n r -= 16;\n }\n else {\n x = x.shr(16);\n }\n if (x.and(constants_2.MAX_UINT_8).gt(constants_2.ZERO)) {\n r -= 8;\n }\n else {\n x = x.shr(8);\n }\n if (x.and(ethers_1.BigNumber.from('0xf')).gt(constants_2.ZERO)) {\n r -= 4;\n }\n else {\n x = x.shr(4);\n }\n if (x.and(ethers_1.BigNumber.from('0x3')).gt(constants_2.ZERO)) {\n r -= 2;\n }\n else {\n x = x.shr(2);\n }\n if (x.and(ethers_1.BigNumber.from('0x1')).gt(constants_2.ZERO))\n r -= 1;\n return r;\n}\nfunction leastNonnegativeRemainder(x, modulus) {\n return ((x % modulus) + modulus) % modulus;\n}\nfunction leastNonnegativeComplement(x, modulus) {\n return (modulus - (x % modulus)) % modulus;\n}\nfunction maxAmongThree(a, b, c) {\n return (a.gt(b) ? a : b).gt(c) ? (a.gt(b) ? a : b) : c;\n}\nfunction max(left, right) {\n return left.gt(right) ? left : right;\n}\nfunction min(left, right) {\n return left.gt(right) ? right : left;\n}\nfunction relativeDiffRatioWadAbs(wadA, wadB) {\n return wdivUp(wadA.sub(wadB).abs(), wadA.lt(wadB) ? wadA : wadB);\n}\nfunction getOrderLeverageByMargin(targetTick, baseSize, margin) {\n return wdiv(wmul(tickMath_1.TickMath.getWadAtTick(targetTick), baseSize.abs()), margin);\n}\nfunction getMaxLeverage(imr) {\n return 1 / (imr / 10 ** constants_1.RATIO_DECIMALS);\n}\nfunction calcMaxWithdrawable(threshold, pending, fundFlow, reserve) {\n const maxWithdrawable = threshold\n .add(pending.exemption)\n .sub(fundFlow.totalOut)\n .add(fundFlow.totalIn)\n .sub(pending.amount);\n if (maxWithdrawable.lte(0))\n return constants_2.ZERO;\n if (maxWithdrawable.gt(reserve))\n return reserve;\n return maxWithdrawable;\n}\nfunction alignPriceToTick(price) {\n let tick = wadToTick(price);\n tick = Math.round(tick / constants_1.PEARL_SPACING) * constants_1.PEARL_SPACING;\n const alignedprice = tickMath_1.TickMath.getWadAtTick(tick);\n return { tick: tick, price: alignedprice };\n}\nfunction calcBoost(alpha, imr) {\n if (alpha === 1) {\n throw new calculationError_1.CalculationError('Invalid alpha', { alpha });\n }\n imr = imr / 10 ** constants_1.RATIO_DECIMALS;\n return -2 / (alpha * (imr + 1) - Math.sqrt(alpha)) / (1 / Math.sqrt(alpha) - 1);\n}\nfunction calcAsymmetricBoost(alphaLower, alphaUpper, imr) {\n if (alphaLower === 1 && alphaUpper === 1) {\n throw new calculationError_1.CalculationError('Invalid alpha and beta', { alphaLower, alphaUpper, imr });\n }\n imr = imr / 10 ** constants_1.RATIO_DECIMALS;\n const boostLower = 2 / (1 / Math.sqrt(alphaLower) - 1) / ((1 / Math.sqrt(alphaLower)) * (1 - imr) - 1);\n const boostUpper = calcBoost(alphaUpper, imr);\n return Math.min(boostLower, boostUpper);\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EMPTY_TICK = exports.ANY_PRICE_TICK = exports.TICK_DELTA_MAX = exports.MAX_SAFE_INTEGER = exports.POWERS_OF_2 = exports.MAX_INT_24 = exports.MAX_UINT_160 = exports.MAX_UINT_8 = exports.MAX_UINT_16 = exports.MAX_UINT_24 = exports.MAX_UINT_32 = exports.MAX_UINT_64 = exports.MAX_UINT_128 = exports.MAX_UINT_256 = exports.ADDRESS_ZERO = exports.WAD = exports.Q192 = exports.Q96 = exports.Q32 = exports.Q24 = exports.TWO = exports.ONE = exports.ZERO = exports.NEGATIVE_ONE = void 0;\nconst ethers_1 = require(\"ethers\");\nexports.NEGATIVE_ONE = ethers_1.BigNumber.from(-1);\nexports.ZERO = ethers_1.BigNumber.from(0);\nexports.ONE = ethers_1.BigNumber.from(1);\nexports.TWO = ethers_1.BigNumber.from(2);\nexports.Q24 = exports.TWO.pow(24);\nexports.Q32 = exports.TWO.pow(32);\nexports.Q96 = exports.TWO.pow(96);\nexports.Q192 = exports.TWO.pow(192);\nexports.WAD = ethers_1.BigNumber.from(10).pow(18);\nexports.ADDRESS_ZERO = '0x0000000000000000000000000000000000000000';\nexports.MAX_UINT_256 = ethers_1.BigNumber.from('0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff');\nexports.MAX_UINT_128 = exports.TWO.pow(128).sub(exports.ONE);\nexports.MAX_UINT_64 = exports.TWO.pow(64).sub(exports.ONE);\nexports.MAX_UINT_32 = exports.TWO.pow(32).sub(exports.ONE);\nexports.MAX_UINT_24 = exports.TWO.pow(24).sub(exports.ONE);\nexports.MAX_UINT_16 = exports.TWO.pow(16).sub(exports.ONE);\nexports.MAX_UINT_8 = exports.TWO.pow(8).sub(exports.ONE);\nexports.MAX_UINT_160 = exports.TWO.pow(160).sub(exports.ONE);\nexports.MAX_INT_24 = exports.TWO.pow(23).sub(exports.ONE);\nexports.POWERS_OF_2 = [128, 64, 32, 16, 8, 4, 2, 1].map((pow) => [pow, exports.TWO.pow(pow)]);\nexports.MAX_SAFE_INTEGER = ethers_1.BigNumber.from(String(Number.MAX_SAFE_INTEGER));\nexports.TICK_DELTA_MAX = 16096;\nexports.ANY_PRICE_TICK = ethers_1.BigNumber.from(140737496743935);\nexports.EMPTY_TICK = exports.TWO.pow(23).sub(exports.ONE);\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./basic\"), exports);\n__exportStar(require(\"./constants\"), exports);\n__exportStar(require(\"./numeric\"), exports);\n__exportStar(require(\"./sqrtPriceMath\"), exports);\n__exportStar(require(\"./swapMath\"), exports);\n__exportStar(require(\"./tickMath\"), exports);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NumericConverter = void 0;\nexports.asUint16 = asUint16;\nexports.asInt24 = asInt24;\nexports.asUint24 = asUint24;\nexports.asUint48 = asUint48;\nexports.asUint96 = asUint96;\nexports.asUint128 = asUint128;\nexports.asUint256 = asUint256;\nexports.forceAsInt24 = forceAsInt24;\nexports.asInt256 = asInt256;\nexports.asInt128 = asInt128;\nexports.decompose = decompose;\nconst ethers_1 = require(\"ethers\");\nconst constants_1 = require(\"./constants\");\nfunction asUint16(x) {\n if (x < 0) {\n x += 1 << 16;\n }\n return x;\n}\nfunction asInt24(x) {\n const MAX_INT_24 = (1 << 23) - 1;\n if (x > MAX_INT_24) {\n x -= 1 << 24;\n }\n return x;\n}\nfunction asUint24(x) {\n if (x < 0) {\n x += 1 << 24;\n }\n return x;\n}\nfunction asUint48(x) {\n if (x < 0) {\n x += 1 << 48;\n }\n return x;\n}\nfunction asUint96(x) {\n if (x.isNegative()) {\n x = x.add(constants_1.ONE.shl(96));\n }\n return x;\n}\nfunction asUint128(x) {\n if (x.isNegative()) {\n x = x.add(constants_1.ONE.shl(128));\n }\n return x;\n}\nfunction asUint256(x) {\n if (x.isNegative()) {\n x = x.add(constants_1.ONE.shl(256));\n }\n return x;\n}\nfunction forceAsInt24(x) {\n x = x.and(constants_1.ONE.shl(24).sub(constants_1.ONE));\n if (x.gt(constants_1.MAX_INT_24)) {\n x = x.sub(constants_1.ONE.shl(24));\n }\n return x;\n}\nfunction asInt256(x) {\n if (x.gt(ethers_1.ethers.constants.MaxInt256)) {\n x = x.sub(constants_1.ONE.shl(256));\n }\n return x;\n}\nfunction asInt128(x) {\n const MAX_INT_128 = constants_1.ONE.shl(127).sub(constants_1.ONE);\n if (x.gt(MAX_INT_128)) {\n x = x.sub(constants_1.ONE.shl(128));\n }\n return x;\n}\nfunction decompose(tick) {\n const wordPos = tick >> 8;\n let bitPos = tick % 256;\n if (bitPos < 0)\n bitPos += 256;\n return { wordPos, bitPos };\n}\nclass NumericConverter {\n static scaleQuoteAmount(amount, quoteDecimals) {\n const quoteAmountScaler = ethers_1.BigNumber.from(10).pow(18 - quoteDecimals);\n return amount.mul(quoteAmountScaler);\n }\n static toContractQuoteAmount(amount, quoteDecimals) {\n const quoteAmountScaler = ethers_1.BigNumber.from(10).pow(18 - quoteDecimals);\n return amount.div(quoteAmountScaler);\n }\n static toContractRatio(ratioWad) {\n return ratioWad.div(ethers_1.BigNumber.from(10).pow(14)).toNumber();\n }\n}\nexports.NumericConverter = NumericConverter;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SqrtPriceMath = void 0;\nconst ethers_1 = require(\"ethers\");\nconst utils_1 = require(\"../utils\");\nconst constants_1 = require(\"./constants\");\nconst basic_1 = require(\"./basic\");\nclass SqrtPriceMath {\n static getDeltaBaseAutoRoundUp(sqrtRatioAX96, sqrtRatioBX96, liquidity) {\n return liquidity.lt(constants_1.ZERO)\n ? this.getDeltaBase(sqrtRatioAX96, sqrtRatioBX96, liquidity.mul(-1), false).mul(-1)\n : this.getDeltaBase(sqrtRatioAX96, sqrtRatioBX96, liquidity, true);\n }\n static getDeltaQuoteAutoRoundUp(sqrtRatioAX96, sqrtRatioBX96, liquidity) {\n return liquidity.lt(constants_1.ZERO)\n ? this.getDeltaQuote(sqrtRatioAX96, sqrtRatioBX96, liquidity.mul(-1), false).mul(-1)\n : this.getDeltaQuote(sqrtRatioAX96, sqrtRatioBX96, liquidity, true);\n }\n static getDeltaBase(sqrtRatioAX96, sqrtRatioBX96, liquidity, roundUp) {\n if (sqrtRatioAX96.gt(sqrtRatioBX96)) {\n [sqrtRatioAX96, sqrtRatioBX96] = [sqrtRatioBX96, sqrtRatioAX96];\n }\n const numerator1 = liquidity.shl(96);\n const numerator2 = sqrtRatioBX96.sub(sqrtRatioAX96);\n return roundUp\n ? (0, basic_1.mulDivRoundingUp)((0, basic_1.mulDivRoundingUp)(numerator1, numerator2, sqrtRatioBX96), constants_1.ONE, sqrtRatioAX96)\n : numerator1.mul(numerator2).div(sqrtRatioBX96).div(sqrtRatioAX96);\n }\n static getDeltaQuote(sqrtRatioAX96, sqrtRatioBX96, liquidity, roundUp) {\n if (sqrtRatioAX96.gt(sqrtRatioBX96)) {\n [sqrtRatioAX96, sqrtRatioBX96] = [sqrtRatioBX96, sqrtRatioAX96];\n }\n return roundUp\n ? (0, basic_1.mulDivRoundingUp)(liquidity, sqrtRatioBX96.sub(sqrtRatioAX96), constants_1.Q96)\n : sqrtRatioBX96.sub(sqrtRatioAX96).mul(liquidity).div(constants_1.Q96);\n }\n static getNextSqrtPriceFromDeltaBase(sqrtPX96, liquidity, amount, isLong) {\n (0, utils_1.solidityRequire)(sqrtPX96.gt(constants_1.ZERO));\n (0, utils_1.solidityRequire)(liquidity.gt(constants_1.ZERO));\n return this.getNextSqrtPriceFromAmount0RoundingUp(sqrtPX96, liquidity, amount, !isLong);\n }\n static getNextSqrtPriceFromInput(sqrtPX96, liquidity, amountIn, zeroForOne) {\n (0, utils_1.solidityRequire)(sqrtPX96.gt(constants_1.ZERO));\n (0, utils_1.solidityRequire)(liquidity.gt(constants_1.ZERO));\n return zeroForOne\n ? this.getNextSqrtPriceFromAmount0RoundingUp(sqrtPX96, liquidity, amountIn, true)\n : this.getNextSqrtPriceFromAmount1RoundingDown(sqrtPX96, liquidity, amountIn, true);\n }\n static getNextSqrtPriceFromOutput(sqrtPX96, liquidity, amountOut, zeroForOne) {\n (0, utils_1.solidityRequire)(sqrtPX96.gt(constants_1.ZERO));\n (0, utils_1.solidityRequire)(liquidity.gt(constants_1.ZERO));\n return zeroForOne\n ? this.getNextSqrtPriceFromAmount1RoundingDown(sqrtPX96, liquidity, amountOut, false)\n : this.getNextSqrtPriceFromAmount0RoundingUp(sqrtPX96, liquidity, amountOut, false);\n }\n static getLiquidityFromMargin(sqrtEntryPX96, sqrtUpperPX96, entryMargin, initialMarginRatio) {\n (0, utils_1.solidityRequire)(sqrtEntryPX96.gt(constants_1.ZERO));\n (0, utils_1.solidityRequire)(sqrtUpperPX96.gt(constants_1.ZERO));\n const numerator1 = entryMargin.mul(sqrtUpperPX96);\n const numerator2 = sqrtEntryPX96;\n const denominator1 = sqrtUpperPX96.sub(sqrtEntryPX96);\n let temp = numerator1.mul(numerator2).div(denominator1);\n temp = temp.mul(constants_1.Q96).div(sqrtUpperPX96);\n const denominator2 = (0, basic_1.wmulUp)(sqrtUpperPX96, (0, basic_1.r2w)(initialMarginRatio + 10000)).sub(sqrtEntryPX96);\n return temp.div(denominator2);\n }\n static getNextSqrtPriceFromAmount0RoundingUp(sqrtPX96, liquidity, amount, add) {\n if (amount.eq(constants_1.ZERO))\n return sqrtPX96;\n const numerator1 = liquidity.shl(96);\n if (add) {\n const product = (0, basic_1.multiplyIn256)(amount, sqrtPX96);\n if (product.div(amount).eq(sqrtPX96)) {\n const denominator = (0, basic_1.addIn256)(numerator1, product);\n if (denominator.gte(numerator1)) {\n return (0, basic_1.mulDivRoundingUp)(numerator1, sqrtPX96, denominator);\n }\n }\n return (0, basic_1.mulDivRoundingUp)(numerator1, constants_1.ONE, numerator1.div(sqrtPX96).add(amount));\n }\n else {\n const product = (0, basic_1.multiplyIn256)(amount, sqrtPX96);\n (0, utils_1.solidityRequire)(product.div(amount).eq(sqrtPX96));\n (0, utils_1.solidityRequire)(numerator1.gt(product));\n return (0, basic_1.mulDivRoundingUp)(numerator1, sqrtPX96, numerator1.sub(product));\n }\n }\n static getNextSqrtPriceFromAmount1RoundingDown(sqrtPX96, liquidity, amount, add) {\n if (add) {\n const quotient = amount.lte(constants_1.MAX_UINT_160) ? amount.shl(96).div(liquidity) : amount.mul(constants_1.Q96).div(liquidity);\n return sqrtPX96.add(quotient);\n }\n else {\n const quotient = (0, basic_1.mulDivRoundingUp)(amount, constants_1.Q96, liquidity);\n (0, utils_1.solidityRequire)(sqrtPX96.gt(quotient));\n return sqrtPX96.sub(quotient);\n }\n }\n static getStabilityFee(quotation, param) {\n const feePaid = quotation.fee;\n const protocolFeePaid = (0, basic_1.wmulUp)(quotation.entryNotional, (0, basic_1.r2w)(param.protocolFeeRatio));\n const baseFeePaid = (0, basic_1.wmulUp)(quotation.entryNotional, (0, basic_1.r2w)(param.tradingFeeRatio));\n let stabilityFee = feePaid.sub(protocolFeePaid).sub(baseFeePaid);\n if (stabilityFee.lt(0))\n stabilityFee = constants_1.ZERO;\n return stabilityFee;\n }\n getStabilityFeeRatio(quotation, param, maintenanceMarginRatio) {\n void maintenanceMarginRatio;\n const stabilityFee = SqrtPriceMath.getStabilityFee(quotation, param);\n const ratioTemp = (0, basic_1.wdiv)(stabilityFee, quotation.entryNotional);\n const scaler = ethers_1.BigNumber.from(10).pow(14);\n const ratio = ratioTemp.add(scaler.sub(1)).div(scaler);\n return ratio.toNumber();\n }\n}\nexports.SqrtPriceMath = SqrtPriceMath;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SwapMath = void 0;\nconst constants_1 = require(\"./constants\");\nconst sqrtPriceMath_1 = require(\"./sqrtPriceMath\");\nconst tickMath_1 = require(\"./tickMath\");\nconst basic_1 = require(\"./basic\");\nclass SwapMath {\n static swapWithinRange(sqrtCurrentPX96, sqrtTargetPX96, liquidity, sizeLeft) {\n const long = sizeLeft.gt(constants_1.ZERO);\n const dxMax = sqrtPriceMath_1.SqrtPriceMath.getDeltaBaseAutoRoundUp(sqrtTargetPX96, sqrtCurrentPX96, liquidity);\n let dxAbs = sizeLeft.abs();\n let sqrtPostPX96;\n if (dxAbs.gte(dxMax)) {\n dxAbs = dxMax;\n sqrtPostPX96 = sqrtTargetPX96;\n }\n else {\n sqrtPostPX96 = sqrtPriceMath_1.SqrtPriceMath.getNextSqrtPriceFromDeltaBase(sqrtCurrentPX96, liquidity, dxAbs, long);\n }\n const dy = sqrtPriceMath_1.SqrtPriceMath.getDeltaQuote(sqrtPostPX96, sqrtCurrentPX96, liquidity, long);\n const dx = long ? dxAbs : dxAbs.mul(-1);\n return { sqrtPostPX96, dx, dy };\n }\n static swapCrossRange(pair, size) {\n const amm = pair.amm;\n const ticks = [];\n const takens = [];\n const long = size.gt(constants_1.ZERO);\n let totalOrderValue = constants_1.ZERO;\n let totalCurveValue = constants_1.ZERO;\n let swapSize = size;\n const currTickLeft = pair.getPearl(amm.tick).left;\n if (!swapSize.eq(0) && long && currTickLeft.lt(0)) {\n const taken = swapSize.abs().gte(currTickLeft.abs()) ? currTickLeft : swapSize.mul(-1);\n ticks.push(amm.tick);\n takens.push(taken);\n const takenValue = tickMath_1.TickMath.calcTakenNotional(amm.tick, taken);\n swapSize = swapSize.add(taken);\n totalOrderValue = totalOrderValue.add(takenValue);\n if (swapSize.eq(0)) {\n return { liquidity: amm.liquidity, ticks, takens };\n }\n }\n let targetTick = tickMath_1.TickMath.nextInitializedTick(pair.tbitmap, long ? amm.tick : amm.tick + 1, long);\n let sqrtPX96State = amm.sqrtPX96;\n let liquidityState = amm.liquidity;\n while (true) {\n const targetPX96 = tickMath_1.TickMath.getSqrtRatioAtTick(targetTick);\n const { sqrtPostPX96, dx, dy } = SwapMath.swapWithinRange(sqrtPX96State, targetPX96, liquidityState, swapSize);\n sqrtPX96State = sqrtPostPX96;\n swapSize = swapSize.sub(dx);\n totalCurveValue = totalCurveValue.add(dy);\n if (sqrtPostPX96 == targetPX96) {\n const left = pair.getPearl(targetTick).left;\n if (!swapSize.eq(0) && ((long && left.lt(0)) || (!long && left.gt(0)))) {\n const taken = swapSize.abs().gte(left.abs()) ? left : swapSize.mul(-1);\n ticks.push(targetTick);\n takens.push(taken);\n const takenValue = tickMath_1.TickMath.calcTakenNotional(targetTick, taken);\n swapSize = swapSize.add(taken);\n totalOrderValue = totalOrderValue.add(takenValue);\n }\n const isRangeEnd = pair.getPearl(targetTick).liquidityGross.gt(0);\n const lastLiquidity = liquidityState;\n if (isRangeEnd) {\n let liqNet = pair.getPearl(targetTick).liquidityNet;\n if (!long)\n liqNet = (0, basic_1.neg)(liqNet);\n liquidityState = liquidityState.add(liqNet);\n }\n if (swapSize.eq(constants_1.ZERO)) {\n if (!long) {\n liquidityState = lastLiquidity;\n }\n break;\n }\n targetTick = tickMath_1.TickMath.nextInitializedTick(pair.tbitmap, targetTick, long);\n }\n else {\n break;\n }\n }\n return { liquidity: liquidityState, ticks, takens };\n }\n}\nexports.SwapMath = SwapMath;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TickMath = void 0;\nconst ethers_1 = require(\"ethers\");\nconst utils_1 = require(\"../utils\");\nconst constants_1 = require(\"../constants\");\nconst enum_1 = require(\"../enum\");\nconst constants_2 = require(\"./constants\");\nconst basic_1 = require(\"./basic\");\nconst numeric_1 = require(\"./numeric\");\nconst calculationError_1 = require(\"../errors/calculationError\");\nconst utils_2 = require(\"../utils\");\nclass TickMath {\n static getSqrtRatioAtTick(tick) {\n (0, utils_1.solidityRequire)(tick >= TickMath.MIN_TICK && tick <= TickMath.MAX_TICK && Number.isInteger(tick), 'TICK');\n const absTick = tick < 0 ? tick * -1 : tick;\n let ratio = (absTick & 0x1) != 0\n ? ethers_1.BigNumber.from('0xfffcb933bd6fad37aa2d162d1a594001')\n : ethers_1.BigNumber.from('0x100000000000000000000000000000000');\n if ((absTick & 0x2) != 0)\n ratio = (0, basic_1.mulShift)(ratio, '0xfff97272373d413259a46990580e213a');\n if ((absTick & 0x4) != 0)\n ratio = (0, basic_1.mulShift)(ratio, '0xfff2e50f5f656932ef12357cf3c7fdcc');\n if ((absTick & 0x8) != 0)\n ratio = (0, basic_1.mulShift)(ratio, '0xffe5caca7e10e4e61c3624eaa0941cd0');\n if ((absTick & 0x10) != 0)\n ratio = (0, basic_1.mulShift)(ratio, '0xffcb9843d60f6159c9db58835c926644');\n if ((absTick & 0x20) != 0)\n ratio = (0, basic_1.mulShift)(ratio, '0xff973b41fa98c081472e6896dfb254c0');\n if ((absTick & 0x40) != 0)\n ratio = (0, basic_1.mulShift)(ratio, '0xff2ea16466c96a3843ec78b326b52861');\n if ((absTick & 0x80) != 0)\n ratio = (0, basic_1.mulShift)(ratio, '0xfe5dee046a99a2a811c461f1969c3053');\n if ((absTick & 0x100) != 0)\n ratio = (0, basic_1.mulShift)(ratio, '0xfcbe86c7900a88aedcffc83b479aa3a4');\n if ((absTick & 0x200) != 0)\n ratio = (0, basic_1.mulShift)(ratio, '0xf987a7253ac413176f2b074cf7815e54');\n if ((absTick & 0x400) != 0)\n ratio = (0, basic_1.mulShift)(ratio, '0xf3392b0822b70005940c7a398e4b70f3');\n if ((absTick & 0x800) != 0)\n ratio = (0, basic_1.mulShift)(ratio, '0xe7159475a2c29b7443b29c7fa6e889d9');\n if ((absTick & 0x1000) != 0)\n ratio = (0, basic_1.mulShift)(ratio, '0xd097f3bdfd2022b8845ad8f792aa5825');\n if ((absTick & 0x2000) != 0)\n ratio = (0, basic_1.mulShift)(ratio, '0xa9f746462d870fdf8a65dc1f90e061e5');\n if ((absTick & 0x4000) != 0)\n ratio = (0, basic_1.mulShift)(ratio, '0x70d869a156d2a1b890bb3df62baf32f7');\n if ((absTick & 0x8000) != 0)\n ratio = (0, basic_1.mulShift)(ratio, '0x31be135f97d08fd981231505542fcfa6');\n if ((absTick & 0x10000) != 0)\n ratio = (0, basic_1.mulShift)(ratio, '0x9aa508b5b7a84e1c677de54f3e99bc9');\n if ((absTick & 0x20000) != 0)\n ratio = (0, basic_1.mulShift)(ratio, '0x5d6af8dedb81196699c329225ee604');\n if ((absTick & 0x40000) != 0)\n ratio = (0, basic_1.mulShift)(ratio, '0x2216e584f5fa1ea926041bedfe98');\n if ((absTick & 0x80000) != 0)\n ratio = (0, basic_1.mulShift)(ratio, '0x48a170391f7dc42444e8fa2');\n if (tick > 0)\n ratio = constants_2.MAX_UINT_256.div(ratio);\n return ratio.mod(constants_2.Q32).gt(constants_2.ZERO) ? ratio.div(constants_2.Q32).add(constants_2.ONE) : ratio.div(constants_2.Q32);\n }\n static getTickAtSqrtRatio(sqrtRatioX96) {\n (0, utils_1.solidityRequire)(sqrtRatioX96.gte(TickMath.MIN_SQRT_RATIO) && sqrtRatioX96.lt(TickMath.MAX_SQRT_RATIO), 'SQRT_RATIO');\n const sqrtRatioX128 = sqrtRatioX96.shl(32);\n const msb = (0, basic_1.mostSignificantBit)(sqrtRatioX128);\n let r;\n if (msb >= 128) {\n r = sqrtRatioX128.shr(msb - 127);\n }\n else {\n r = sqrtRatioX128.shl(127 - msb);\n }\n let log_2 = ethers_1.BigNumber.from(msb - 128).mul(constants_2.ONE.shl(64));\n let unsignedLog_2 = (0, numeric_1.asUint256)(log_2);\n for (let i = 0; i < 14; i++) {\n r = r.mul(r).shr(127);\n const f = r.shr(128);\n unsignedLog_2 = unsignedLog_2.or(f.shl(63 - i));\n r = r.shr(f.toNumber());\n }\n log_2 = (0, numeric_1.asInt256)(unsignedLog_2);\n const log_sqrt10001 = log_2.mul(ethers_1.BigNumber.from('255738958999603826347141'));\n const tickLow = (0, numeric_1.forceAsInt24)(this.signedShr(log_sqrt10001.sub(ethers_1.BigNumber.from('3402992956809132418596140100660247210')), 128)).toNumber();\n const tickHigh = (0, numeric_1.forceAsInt24)(this.signedShr(log_sqrt10001.add(ethers_1.BigNumber.from('291339464771989622907027621153398088495')), 128)).toNumber();\n return tickLow === tickHigh\n ? tickLow\n : TickMath.getSqrtRatioAtTick(tickHigh).lte(sqrtRatioX96)\n ? tickHigh\n : tickLow;\n }\n static signedShr(number, bits) {\n const negative = number.isNegative();\n const temp = negative ? (0, numeric_1.asUint256)(number) : number;\n return temp.shr(bits);\n }\n static getWadAtTick(tick) {\n return (0, basic_1.sqrtX96ToWad)(this.getSqrtRatioAtTick(tick));\n }\n static getTickAtPWad(pWad) {\n const sqrtX96 = (0, basic_1.wadToSqrtX96)(pWad);\n return this.getTickAtSqrtRatio(sqrtX96);\n }\n static calcTakenNotional(tick, size) {\n const price = TickMath.getWadAtTick(tick);\n return (0, basic_1.wmul)(price, size.abs());\n }\n static nextInitializedTick(tickBitMap, tick, right) {\n if (right) {\n const compressed = (0, basic_1.signedDiv)(tick - (0, basic_1.leastNonnegativeRemainder)(tick, constants_1.PEARL_SPACING), constants_1.PEARL_SPACING);\n const start = compressed + 1;\n let { wordPos, bitPos } = (0, numeric_1.decompose)(start);\n const word = tickBitMap.get(wordPos) ?? constants_2.ZERO;\n let masked = word.sub(word.mask(bitPos));\n if (!masked.isZero()) {\n return (start + (0, basic_1.leastSignificantBit)(masked) - bitPos) * constants_1.PEARL_SPACING;\n }\n const UPPER_BOUND = (0, basic_1.signedDiv)(constants_1.MAX_TICK, constants_1.PEARL_SPACING) >> 8;\n while (wordPos < UPPER_BOUND) {\n wordPos++;\n masked = tickBitMap.get(wordPos) ?? constants_2.ZERO;\n if (!masked.isZero()) {\n return (wordPos * 256 + (0, basic_1.leastSignificantBit)(masked)) * constants_1.PEARL_SPACING;\n }\n }\n throw new calculationError_1.CalculationError('Search tick upward, out of bound', { tickBitMap, tick, right });\n }\n else {\n const compressed = (0, basic_1.signedDiv)(tick + (0, basic_1.leastNonnegativeComplement)(tick, constants_1.PEARL_SPACING), constants_1.PEARL_SPACING);\n const start = compressed - 1;\n let { wordPos, bitPos } = (0, numeric_1.decompose)(start);\n const word = tickBitMap.get(wordPos) ?? constants_2.ZERO;\n let masked = word.mask(bitPos + 1);\n if (!masked.isZero()) {\n return (start - (bitPos - (0, basic_1.mostSignificantBit)(masked))) * constants_1.PEARL_SPACING;\n }\n const LOWER_BOUND = (0, basic_1.signedDiv)(constants_1.MIN_TICK, constants_1.PEARL_SPACING) >> 8;\n while (wordPos > LOWER_BOUND) {\n wordPos--;\n masked = tickBitMap.get(wordPos) ?? constants_2.ZERO;\n if (!masked.isZero()) {\n return (wordPos * 256 + (0, basic_1.mostSignificantBit)(masked)) * constants_1.PEARL_SPACING;\n }\n }\n throw new calculationError_1.CalculationError('Search tick down, out of bound', { tickBitMap, tick, right });\n }\n }\n static getLimitTick(tradePrice, slippage, side) {\n const sign = (0, utils_1.signOfSide)(side);\n const limitPrice = tradePrice.mul(constants_1.ONE_RATIO + sign * slippage).div(constants_1.ONE_RATIO);\n const limitTick = TickMath.getTickAtPWad(limitPrice);\n return side == enum_1.Side.LONG ? limitTick : limitTick + 1;\n }\n static encodeLimitTicks(sqrtStrikeLowerPX96, sqrtStrikeUpperPX96) {\n let strikeLowerTick = sqrtStrikeLowerPX96.eq(0)\n ? constants_1.INT24_MIN\n : TickMath.getTickAtSqrtRatio(sqrtStrikeLowerPX96) + 1;\n strikeLowerTick = strikeLowerTick < 0 ? (1 << 24) + strikeLowerTick : strikeLowerTick;\n let strikeUpperTick = sqrtStrikeUpperPX96.eq(0) ? constants_1.INT24_MAX : TickMath.getTickAtSqrtRatio(sqrtStrikeUpperPX96);\n strikeUpperTick = strikeUpperTick < 0 ? (1 << 24) + strikeUpperTick : strikeUpperTick;\n return ethers_1.BigNumber.from(strikeLowerTick).mul(ethers_1.BigNumber.from(2).pow(24)).add(strikeUpperTick);\n }\n static async getTickBitMaps(observer, instrument, expiry) {\n const keys = new Array();\n for (let i = -128; i < 128; i++) {\n keys.push(i);\n }\n const res = await observer.getTickBitmaps(instrument, expiry, keys);\n const ret = new Map();\n for (let i = 0; i < keys.length; i++) {\n ret.set(keys[i], res[i]);\n }\n return ret;\n }\n static getTickRangeByAlpha(alphaWad, curTick) {\n const tickDelta = (0, utils_1.alphaWadToTickDelta)(alphaWad);\n let upperTick = constants_1.RANGE_SPACING * ~~((curTick + tickDelta) / constants_1.RANGE_SPACING);\n let lowerTick = constants_1.RANGE_SPACING * ~~((curTick - tickDelta) / constants_1.RANGE_SPACING);\n upperTick = utils_2.lowLevel.alignRangeTick(Math.min(upperTick, curTick + constants_2.TICK_DELTA_MAX), false);\n lowerTick = utils_2.lowLevel.alignRangeTick(Math.max(lowerTick, curTick - constants_2.TICK_DELTA_MAX), true);\n return [lowerTick, upperTick];\n }\n}\nexports.TickMath = TickMath;\nTickMath.MIN_TICK = -322517;\nTickMath.MAX_TICK = 443636;\nTickMath.MIN_SQRT_RATIO = ethers_1.BigNumber.from('7867958450021363558555');\nTickMath.MAX_SQRT_RATIO = ethers_1.BigNumber.from('340275971719517849884101479065584693834');\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CalcModule = void 0;\nconst math_1 = require(\"../math\");\nclass CalcModule {\n constructor(context) {\n this.context = context;\n }\n async alignPriceToTick(instrumentAddr, price) {\n return (0, math_1.alignPriceToTick)(price);\n }\n async getWadAtTick(instrumentAddr, tick) {\n return math_1.TickMath.getWadAtTick(tick);\n }\n async getTickAtPWad(instrumentAddr, price) {\n return math_1.TickMath.getTickAtPWad(price);\n }\n async getWadAtTicks(instrumentAddr, lowerTick, upperTick) {\n return {\n lowerPrice: math_1.TickMath.getWadAtTick(lowerTick),\n upperPrice: math_1.TickMath.getWadAtTick(upperTick),\n };\n }\n async sqrtX96ToWad(instrumentAddr, sqrtPX96) {\n return (0, math_1.sqrtX96ToWad)(sqrtPX96);\n }\n}\nexports.CalcModule = CalcModule;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ConfigModule = void 0;\nconst ethers_1 = require(\"ethers\");\nconst context_1 = require(\"@derivation-tech/context\");\nclass ConfigModule {\n constructor(context) {\n this.context = context;\n }\n async inWhiteListLps(quoteAddr, traders, overrides) {\n let calls = [];\n let results = [];\n let configInterface = this.context.perp.contracts.config.interface;\n if ((this.context.chainId === context_1.CHAIN_ID.BASE ||\n this.context.chainId === context_1.CHAIN_ID.MONADTESTNET ||\n this.context.chainId === context_1.CHAIN_ID.LOCAL) &&\n quoteAddr) {\n for (const trader of traders) {\n calls.push({\n target: this.context.perp.contracts.config.address,\n callData: configInterface.encodeFunctionData('lpWhitelist', [quoteAddr, trader]),\n });\n }\n try {\n const rawData = await this.context.multiCall3.callStatic.aggregate(calls, overrides ?? {});\n for (const data of rawData.returnData) {\n results.push(configInterface.decodeFunctionResult('lpWhitelist', data)[0]);\n }\n return results;\n }\n catch (e) {\n }\n }\n calls = [];\n results = [];\n configInterface = new ethers_1.ethers.utils.Interface([\n 'function lpWhitelist(address user) external view returns (bool)',\n ]);\n for (const trader of traders) {\n calls.push({\n target: this.context.perp.contracts.config.address,\n callData: configInterface.encodeFunctionData('lpWhitelist', [trader]),\n });\n }\n const rawData = await this.context.multiCall3.callStatic.aggregate(calls, overrides ?? {});\n for (const data of rawData.returnData) {\n results.push(configInterface.decodeFunctionResult('lpWhitelist', data)[0]);\n }\n return results;\n }\n async openLp(quoteAddr, overrides) {\n if ((this.context.chainId === context_1.CHAIN_ID.BASE ||\n this.context.chainId === context_1.CHAIN_ID.MONADTESTNET ||\n this.context.chainId === context_1.CHAIN_ID.LOCAL) &&\n quoteAddr) {\n try {\n const restricted = await this.context.perp.contracts.config.restrictLp(quoteAddr, overrides ?? {});\n return !restricted;\n }\n catch (e) {\n }\n }\n return this.context.perp.contracts.config.openLp(overrides ?? {});\n }\n}\nexports.ConfigModule = ConfigModule;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ConfigurationModuleBase = void 0;\nconst context_1 = require(\"@derivation-tech/context\");\nconst typechain_1 = require(\"../../typechain\");\nconst enum_1 = require(\"../../enum\");\nconst utils_1 = require(\"../../utils\");\nconst parser_1 = require(\"../../parser\");\nconst errors_1 = require(\"../../errors\");\nclass ConfigurationModuleBase {\n constructor(context) {\n this.instrumentIdentifiers = new Map();\n this.context = context;\n }\n registerContracts() {\n this.context.registerAddress(this.config.contractAddress.gate, 'Gate');\n this.context.registerAddress(this.config.contractAddress.observer, 'Observer');\n this.context.registerAddress(this.config.contractAddress.config, 'Config');\n this.context.registerContractParser(this.config.contractAddress.gate, new parser_1.GateParser(this.context));\n this.context.registerContractParser(this.config.contractAddress.config, new parser_1.ConfigParser());\n if (this.config.contractAddress.guardian) {\n this.context.registerAddress(this.config.contractAddress.guardian, 'Guardian');\n this.context.registerContractParser(this.config.contractAddress.guardian, new parser_1.GuardianParser());\n }\n for (const marketType in this.config.contractAddress.market) {\n const marketAddress = this.config.contractAddress.market[marketType];\n this.context.registerAddress(marketAddress.market, `${marketType}-Market`);\n this.context.registerAddress(marketAddress.beacon, `${marketType}-InstrumentBeacon`);\n if ((0, utils_1.isCexMarket)(marketType)) {\n this.context.registerContractParser(marketAddress.market, new parser_1.CexMarketParser());\n }\n else {\n this.context.registerContractParser(marketAddress.market, new parser_1.DexV2MarketParser());\n }\n }\n for (const marketType in this.config.contractAddress.feederFactory) {\n const feederFactoryAddress = this.config.contractAddress.feederFactory[marketType];\n if (feederFactoryAddress.factory !== '' && feederFactoryAddress.beacon !== '') {\n this.context.registerAddress(feederFactoryAddress.factory, `${marketType}-FeederFactory`);\n this.context.registerAddress(feederFactoryAddress.beacon, `${marketType}-FeederBeacon`);\n if (marketType === enum_1.MarketType.PYTH) {\n this.context.registerContractParser(feederFactoryAddress.factory, new context_1.ContractParser(typechain_1.PythFeederFactory__factory.createInterface()));\n }\n else if (marketType === enum_1.MarketType.EMG) {\n this.context.registerContractParser(feederFactoryAddress.factory, new context_1.ContractParser(typechain_1.EmergingFeederFactory__factory.createInterface()));\n }\n }\n }\n if (this.config.tokenInfo) {\n for (const token of this.config.tokenInfo) {\n this.context.perp.registerQuoteInfo(token);\n }\n }\n }\n createContracts(provider) {\n const marketContracts = {};\n for (const marketType in this.config.contractAddress.market) {\n const mType = marketType;\n const marketAddress = this.config.contractAddress.market[mType];\n marketContracts[mType] = {\n market: (0, utils_1.isCexMarket)(mType)\n ? typechain_1.CexMarket__factory.connect(marketAddress.market, provider)\n : typechain_1.DexV2Market__factory.connect(marketAddress.market, provider),\n beacon: typechain_1.Beacon__factory.connect(marketAddress.beacon, provider),\n };\n }\n const feederFactoryContracts = {};\n for (const marketType in this.config.contractAddress.feederFactory) {\n const mType = marketType;\n const feederFactoryAddress = this.config.contractAddress.feederFactory[mType];\n if (feederFactoryAddress.factory !== '' && feederFactoryAddress.beacon !== '') {\n if (mType === enum_1.MarketType.PYTH) {\n feederFactoryContracts[mType] = {\n factory: typechain_1.PythFeederFactory__factory.connect(feederFactoryAddress.factory, provider),\n beacon: typechain_1.Beacon__factory.connect(feederFactoryAddress.beacon, provider),\n };\n }\n else if (mType === enum_1.MarketType.EMG) {\n feederFactoryContracts[mType] = {\n factory: typechain_1.EmergingFeederFactory__factory.connect(feederFactoryAddress.factory, provider),\n beacon: typechain_1.Beacon__factory.connect(feederFactoryAddress.beacon, provider),\n };\n }\n else {\n throw new errors_1.SynfError(`Invalid market type: ${mType}`);\n }\n }\n }\n return {\n gate: typechain_1.Gate__factory.connect(this.config.contractAddress.gate, provider),\n observer: typechain_1.Observer__factory.connect(this.config.contractAddress.observer, provider),\n config: typechain_1.Config__factory.connect(this.config.contractAddress.config, provider),\n guardian: this.config.contractAddress.guardian\n ? typechain_1.Guardian__factory.connect(this.config.contractAddress.guardian, provider)\n : undefined,\n marketContracts: marketContracts,\n feederFactoryContracts: feederFactoryContracts,\n };\n }\n onSetProvider() {\n if (this.config) {\n this.registerContracts();\n this.context.perp.contracts = this.createContracts(this.context.provider);\n }\n }\n async update() {\n const config = await this.getConfig();\n if (config) {\n this.config = config;\n this.registerContracts();\n this.context.perp.contracts = this.createContracts(this.context.provider);\n }\n }\n async isInverse(instrument) {\n instrument = instrument.toLowerCase();\n let identifier = this.instrumentIdentifiers.get(instrument);\n if (!identifier) {\n const _instrument = await this.context.perp._observer.getInstrument(instrument);\n if (!_instrument) {\n throw new errors_1.SynfError('Unknown instrument: ' + instrument);\n }\n this.instrumentIdentifiers.set(instrument, (identifier = {\n marketType: _instrument.marketType,\n baseSymbol: _instrument.base,\n quoteSymbol: _instrument.quote,\n }));\n }\n return this.isInverseByIdentifier(identifier);\n }\n async isInverseByIdentifier(identifier) {\n const baseSymbol = typeof identifier.baseSymbol === 'string' ? identifier.baseSymbol : identifier.baseSymbol.symbol;\n const quoteSymbol = typeof identifier.quoteSymbol === 'string' ? identifier.quoteSymbol : identifier.quoteSymbol.symbol;\n const symbol = baseSymbol + '-' + quoteSymbol + '-' + identifier.marketType;\n return !!this.config.inversePairs?.includes(symbol);\n }\n}\nexports.ConfigurationModuleBase = ConfigurationModuleBase;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || (function () {\n var ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n };\n return function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LocalConfigurationModule = void 0;\nconst context_1 = require(\"@derivation-tech/context\");\nconst utils_1 = require(\"../../utils\");\nconst localConfig = __importStar(require(\"./config/local.json\"));\nconst goerliConfig = __importStar(require(\"./config/goerli.json\"));\nconst polygonConfig = __importStar(require(\"./config/polygon.json\"));\nconst scrollConfig = __importStar(require(\"./config/scroll.json\"));\nconst lineaConfig = __importStar(require(\"./config/linea.json\"));\nconst arbitrumConfig = __importStar(require(\"./config/arbitrum.json\"));\nconst blastsepoliaConfig = __importStar(require(\"./config/blastsepolia.json\"));\nconst blastConfig = __importStar(require(\"./config/blast.json\"));\nconst baseConfig = __importStar(require(\"./config/base.json\"));\nconst monadTestnetConfig = __importStar(require(\"./config/monadTestnet.json\"));\nconst configuration_base_module_1 = require(\"./configuration.base.module\");\nclass LocalConfigurationModule extends configuration_base_module_1.ConfigurationModuleBase {\n async getConfig() {\n switch (this.context.chainId) {\n case context_1.CHAIN_ID.LOCAL: {\n return (0, utils_1.loadConfig)(localConfig);\n }\n case context_1.CHAIN_ID.GOERLI: {\n return (0, utils_1.loadConfig)(goerliConfig);\n }\n case context_1.CHAIN_ID.POLYGON: {\n return (0, utils_1.loadConfig)(polygonConfig);\n }\n case context_1.CHAIN_ID.SCROLL: {\n return (0, utils_1.loadConfig)(scrollConfig);\n }\n case context_1.CHAIN_ID.LINEA: {\n return (0, utils_1.loadConfig)(lineaConfig);\n }\n case context_1.CHAIN_ID.ARBITRUM: {\n return (0, utils_1.loadConfig)(arbitrumConfig);\n }\n case context_1.CHAIN_ID.BLASTSEPOLIA: {\n return (0, utils_1.loadConfig)(blastsepoliaConfig);\n }\n case context_1.CHAIN_ID.BLAST: {\n return (0, utils_1.loadConfig)(blastConfig);\n }\n case context_1.CHAIN_ID.BASE: {\n return (0, utils_1.loadConfig)(baseConfig);\n }\n case context_1.CHAIN_ID.MONADTESTNET: {\n return (0, utils_1.loadConfig)(monadTestnetConfig);\n }\n default: {\n return null;\n }\n }\n }\n}\nexports.LocalConfigurationModule = LocalConfigurationModule;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.S3ConfigurationModule = void 0;\nconst axios_1 = __importDefault(require(\"axios\"));\nconst context_1 = require(\"@derivation-tech/context\");\nconst utils_1 = require(\"../../utils\");\nconst configuration_base_module_1 = require(\"./configuration.base.module\");\nconst suppotedChainId = new Set([context_1.CHAIN_ID.BASE, context_1.CHAIN_ID.BLAST, context_1.CHAIN_ID.MONADTESTNET]);\nclass S3ConfigurationModule extends configuration_base_module_1.ConfigurationModuleBase {\n constructor(context, basePath) {\n super(context);\n this.basePath = basePath ?? 'https://api.synfutures.com/s3/config/sdkConfig';\n }\n async getConfig() {\n if (!suppotedChainId.has(this.context.chainId)) {\n return null;\n }\n const url = this.basePath + '/' + this.context.chainId + '.json';\n const res = await axios_1.default.get(url);\n return (0, utils_1.loadConfig)(res.data);\n }\n}\nexports.S3ConfigurationModule = S3ConfigurationModule;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./configuration.interface\"), exports);\n__exportStar(require(\"./configuration.local.module\"), exports);\n__exportStar(require(\"./configuration.s3.module\"), exports);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GateModule = void 0;\nconst constants_1 = require(\"../constants\");\nconst utils_1 = require(\"../utils\");\nconst math_1 = require(\"../math\");\nclass GateModule {\n constructor(context) {\n this.context = context;\n }\n async deposit(quoteAddr, amount, txOptions) {\n const usingNative = quoteAddr.toLowerCase() === constants_1.NATIVE_TOKEN_ADDRESS.toLowerCase();\n const unsignedTx = await this.context.perp.contracts.gate.populateTransaction.deposit((0, utils_1.encodeDepositParam)(quoteAddr, amount), { ...(0, utils_1.toPopulatedTxOverrides)(txOptions), ...(usingNative ? { value: amount } : {}) });\n return this.context.tx.sendTx(unsignedTx, txOptions);\n }\n async depositWad(quoteAddr, amount, txOptions) {\n const usingNative = quoteAddr.toLowerCase() === constants_1.NATIVE_TOKEN_ADDRESS.toLowerCase();\n const quoteInfo = usingNative ? this.context.wrappedNativeToken : await this.context.getTokenInfo(quoteAddr);\n const decimals = quoteInfo.decimals;\n const amountCover = math_1.NumericConverter.toContractQuoteAmount(amount, decimals);\n return this.deposit(quoteAddr, amountCover, txOptions);\n }\n async withdraw(quoteAddr, amount, txOptions) {\n const unsignedTx = await this.context.perp.contracts.gate.populateTransaction.withdraw((0, utils_1.encodeWithdrawParam)(quoteAddr, amount), (0, utils_1.toPopulatedTxOverrides)(txOptions));\n return await this.context.tx.sendTx(unsignedTx, txOptions);\n }\n async withdrawWad(quoteAddr, amount, txOptions) {\n const usingNative = quoteAddr.toLowerCase() === constants_1.NATIVE_TOKEN_ADDRESS.toLowerCase();\n const quoteInfo = usingNative ? this.context.wrappedNativeToken : await this.context.getTokenInfo(quoteAddr);\n const decimals = quoteInfo.decimals;\n const amountCover = math_1.NumericConverter.toContractQuoteAmount(amount, decimals);\n return await this.withdraw(quoteAddr, amountCover, txOptions);\n }\n async getPendingParams(quotes, txOptions) {\n const gateInterface = this.context.perp.contracts.gate.interface;\n const calls = quotes.map((quote) => {\n return {\n target: this.context.perp.contracts.gate.address,\n callData: gateInterface.encodeFunctionData('thresholdOf', [quote]),\n };\n });\n calls.push({\n target: this.context.perp.contracts.gate.address,\n callData: gateInterface.encodeFunctionData('pendingDuration'),\n });\n const rawRet = (await this.context.getMulticall3().callStatic.aggregate(calls, (0, utils_1.toPopulatedTxOverrides)(txOptions))).returnData;\n const thresholds = rawRet\n .slice(0, quotes.length)\n .map((ret) => gateInterface.decodeFunctionResult('thresholdOf', ret)[0]);\n const pendingDuration = gateInterface.decodeFunctionResult('pendingDuration', rawRet[quotes.length])[0];\n return { pendingDuration, thresholds };\n }\n async claimPendingWithdraw(quote, trader, txOptions) {\n const unsignedTx = await this.context.perp.contracts.gate.populateTransaction.release(quote, trader, (0, utils_1.toPopulatedTxOverrides)(txOptions));\n return this.context.tx.sendTx(unsignedTx, txOptions);\n }\n}\nexports.GateModule = GateModule;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./inverse\"), exports);\n__exportStar(require(\"./calc.interface\"), exports);\n__exportStar(require(\"./calc.module\"), exports);\n__exportStar(require(\"./config.interface\"), exports);\n__exportStar(require(\"./config.module\"), exports);\n__exportStar(require(\"./gate.interface\"), exports);\n__exportStar(require(\"./gate.module\"), exports);\n__exportStar(require(\"./instrument.interface\"), exports);\n__exportStar(require(\"./instrument.module\"), exports);\n__exportStar(require(\"./observer.interface\"), exports);\n__exportStar(require(\"./observer.module\"), exports);\n__exportStar(require(\"./simulate.interface\"), exports);\n__exportStar(require(\"./simulate.module\"), exports);\n__exportStar(require(\"./configuration\"), exports);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.InstrumentModule = void 0;\nconst ethers_1 = require(\"ethers\");\nconst typechain_1 = require(\"../typechain\");\nconst enum_1 = require(\"../enum\");\nconst utils_1 = require(\"../utils\");\nconst constants_1 = require(\"../constants\");\nconst parser_1 = require(\"../parser\");\nconst synfError_1 = require(\"../errors/synfError\");\nconst simulationError_1 = require(\"../errors/simulationError\");\nclass InstrumentModule {\n constructor(context) {\n this.context = context;\n }\n getInstrumentContract(address, signerOrProvider) {\n return typechain_1.Instrument__factory.connect(address, signerOrProvider ?? this.context.provider);\n }\n async computeInstrumentAddress(instrumentIdentifier) {\n const gateAddress = this.context.perp.configuration.config.contractAddress.gate;\n const marketType = instrumentIdentifier.marketType;\n const beaconAddress = this.context.perp.configuration.config.contractAddress.market[marketType].beacon;\n const instrumentProxyByteCode = this.context.perp.configuration.config.instrumentProxyByteCode;\n const salt = await this.computeInstrumentSalt(instrumentIdentifier);\n return ethers_1.ethers.utils.getCreate2Address(gateAddress, ethers_1.ethers.utils.keccak256(salt), ethers_1.ethers.utils.keccak256(ethers_1.ethers.utils.solidityPack(['bytes', 'bytes32'], [instrumentProxyByteCode, ethers_1.ethers.utils.hexZeroPad(beaconAddress, 32)])));\n }\n async computeInstrumentSalt(instrumentIdentifier) {\n const { baseTokenInfo, quoteTokenInfo } = await (0, utils_1.getTokenInfo)(instrumentIdentifier, this.context);\n const quoteAddress = quoteTokenInfo.address;\n let data;\n if ((0, utils_1.isCexMarket)(instrumentIdentifier.marketType)) {\n const baseSymbol = typeof instrumentIdentifier.baseSymbol === 'string'\n ? instrumentIdentifier.baseSymbol\n : instrumentIdentifier.baseSymbol.symbol;\n data = ethers_1.ethers.utils.defaultAbiCoder.encode(['string', 'string', 'address'], [instrumentIdentifier.marketType.toString(), baseSymbol, quoteAddress]);\n }\n else {\n data = ethers_1.ethers.utils.defaultAbiCoder.encode(['string', 'address', 'address'], [instrumentIdentifier.marketType.toString(), baseTokenInfo.address, quoteAddress]);\n }\n return data;\n }\n async computeInitData(instrumentIdentifier) {\n const { baseTokenInfo, quoteTokenInfo } = await (0, utils_1.getTokenInfo)(instrumentIdentifier, this.context);\n const quoteAddress = quoteTokenInfo.address;\n let data;\n if ((0, utils_1.isCexMarket)(instrumentIdentifier.marketType)) {\n const baseSymbol = typeof instrumentIdentifier.baseSymbol === 'string'\n ? instrumentIdentifier.baseSymbol\n : instrumentIdentifier.baseSymbol.symbol;\n data = ethers_1.ethers.utils.defaultAbiCoder.encode(['string', 'address'], [baseSymbol, quoteAddress]);\n }\n else {\n data = ethers_1.ethers.utils.defaultAbiCoder.encode(['address', 'address'], [baseTokenInfo.address, quoteAddress]);\n }\n return data;\n }\n async donateInsuranceFund(instrumentAddr, expiry, amount, txOptions) {\n const instrument = this.getInstrumentContract(instrumentAddr, txOptions?.signer);\n const unsignedTx = await instrument.populateTransaction.donateInsuranceFund(expiry, amount, (0, utils_1.toPopulatedTxOverrides)(txOptions));\n return this.context.tx.sendTx(unsignedTx, txOptions);\n }\n async fillLimitOrder(param, txOptions) {\n const instrument = this.getInstrumentContract(param.instrumentAddr, txOptions?.signer);\n const unsignedTx = await instrument.populateTransaction.fill((0, utils_1.encodeFillParam)(param), (0, utils_1.toPopulatedTxOverrides)(txOptions));\n return this.context.tx.sendTx(unsignedTx, txOptions);\n }\n async adjustMargin(param, txOptions) {\n const sign = param.transferIn ? 1 : -1;\n const instrument = this.getInstrumentContract(param.instrumentAddr, txOptions?.signer);\n const unsignedTx = await instrument.populateTransaction.trade((0, utils_1.encodeAdjustParam)({\n expiry: param.expiry,\n net: param.margin.mul(sign),\n deadline: param.deadline,\n referralCode: param.referralCode ?? constants_1.DEFAULT_REFERRAL_CODE,\n }), (0, utils_1.toPopulatedTxOverrides)(txOptions));\n return this.context.tx.sendTx(unsignedTx, txOptions);\n }\n async addLiquidity(param, txOptions) {\n const addParam = {\n expiry: param.expiry,\n tickDeltaLower: param.tickDeltaLower,\n tickDeltaUpper: param.tickDeltaUpper,\n amount: param.margin,\n limitTicks: param.limitTicks,\n deadline: param.deadline,\n referralCode: param.referralCode ?? constants_1.DEFAULT_REFERRAL_CODE,\n };\n let unsignedTx;\n if (typeof param.instrumentAddr !== 'string') {\n const gate = this.context.perp.contracts.gate.connect(txOptions?.signer || this.context.provider);\n const instrumentIdentifier = param.instrumentAddr;\n const instrumentAddress = await this.computeInstrumentAddress(instrumentIdentifier);\n const indexOfInstrument = await gate.indexOf(instrumentAddress, (0, utils_1.toPopulatedTxOverrides)(txOptions));\n if (!ethers_1.BigNumber.from(indexOfInstrument).isZero()) {\n throw new synfError_1.SynfError('Instrument exits: ' + instrumentAddress);\n }\n this.context.registerContractParser(instrumentAddress, new parser_1.InstrumentParser());\n this.context.registerAddress(instrumentAddress, instrumentIdentifier.baseSymbol +\n '-' +\n instrumentIdentifier.quoteSymbol +\n '-' +\n instrumentIdentifier.marketType);\n unsignedTx = await gate.populateTransaction.launch(instrumentIdentifier.marketType, instrumentAddress, await this.computeInitData(instrumentIdentifier), (0, utils_1.encodeAddParam)(addParam), (0, utils_1.toPopulatedTxOverrides)(txOptions));\n return this.context.tx.sendTx(unsignedTx, txOptions);\n }\n else {\n const instrument = this.getInstrumentContract(param.instrumentAddr, txOptions?.signer);\n const unsignedTx = await instrument.populateTransaction.add((0, utils_1.encodeAddParam)(addParam), (0, utils_1.toPopulatedTxOverrides)(txOptions));\n return this.context.tx.sendTx(unsignedTx, txOptions);\n }\n }\n async removeLiquidity(param, txOptions) {\n const instrument = this.getInstrumentContract(param.instrumentAddr, txOptions?.signer);\n const unsignedTx = await instrument.populateTransaction.remove((0, utils_1.encodeRemoveParam)(param), (0, utils_1.toPopulatedTxOverrides)(txOptions));\n return this.context.tx.sendTx(unsignedTx, txOptions);\n }\n async placeLimitOrder(addLimitOrderParam, txOptions) {\n const sign = (0, utils_1.signOfSide)(addLimitOrderParam.side);\n const param = {\n expiry: addLimitOrderParam.expiry,\n size: addLimitOrderParam.baseSize.mul(sign),\n amount: addLimitOrderParam.margin,\n tick: addLimitOrderParam.tick,\n deadline: addLimitOrderParam.deadline,\n };\n const instrument = this.getInstrumentContract(addLimitOrderParam.instrumentAddr, txOptions?.signer);\n const unsignedTx = await instrument.populateTransaction.place((0, utils_1.encodePlaceParam)({\n expiry: param.expiry,\n size: param.size,\n amount: param.amount,\n tick: param.tick,\n deadline: param.deadline,\n referralCode: addLimitOrderParam.referralCode ?? constants_1.DEFAULT_REFERRAL_CODE,\n }), (0, utils_1.toPopulatedTxOverrides)(txOptions));\n return this.context.tx.sendTx(unsignedTx, txOptions);\n }\n async placeMarketOrder(param, txOptions) {\n if (param.side === enum_1.Side.FLAT) {\n throw new simulationError_1.SimulationError('Invalid Price');\n }\n const sign = (0, utils_1.signOfSide)(param.side);\n const tradeParam = {\n expiry: param.expiry,\n size: param.baseSize.mul(sign),\n amount: param.margin,\n tick: param.limitTick,\n deadline: param.deadline,\n referralCode: param.referralCode ?? constants_1.DEFAULT_REFERRAL_CODE,\n };\n const instrument = this.getInstrumentContract(param.instrumentAddr, txOptions?.signer);\n const unsignedTx = await instrument.populateTransaction.trade((0, utils_1.encodePlaceParam)(tradeParam), (0, utils_1.toPopulatedTxOverrides)(txOptions));\n return this.context.tx.sendTx(unsignedTx, txOptions);\n }\n async cancelLimitOrder(param, txOptions) {\n const instrument = this.getInstrumentContract(param.instrumentAddr, txOptions?.signer);\n const unsignedTx = await instrument.populateTransaction.cancel((0, utils_1.encodeCancelParam)({ expiry: param.expiry, ticks: [param.tick], deadline: param.deadline }), (0, utils_1.toPopulatedTxOverrides)(txOptions));\n return this.context.tx.sendTx(unsignedTx, txOptions);\n }\n async batchPlaceLimitOrder(param, txOptions) {\n if (param.side === enum_1.Side.FLAT) {\n throw new simulationError_1.SimulationError('Invalid Price');\n }\n const sign = (0, utils_1.signOfSide)(param.side);\n const instrument = this.getInstrumentContract(param.instrumentAddr, txOptions?.signer);\n const unsignedTx = await instrument.populateTransaction.batchPlace((0, utils_1.encodeBatchPlaceParam)(param.expiry, param.baseSize.mul(sign), param.leverage, param.ticks, param.ratios, param.deadline, param.referralCode ?? constants_1.DEFAULT_REFERRAL_CODE), (0, utils_1.toPopulatedTxOverrides)(txOptions));\n return this.context.tx.sendTx(unsignedTx, txOptions);\n }\n async batchCancelLimitOrder(param, txOptions) {\n const instrument = this.getInstrumentContract(param.instrumentAddr, txOptions?.signer);\n if (param.orderTicks.length <= constants_1.MAX_CANCEL_ORDER_COUNT) {\n const unsignedTx = await instrument.populateTransaction.cancel((0, utils_1.encodeCancelParam)({ expiry: param.expiry, ticks: param.orderTicks, deadline: param.deadline }), (0, utils_1.toPopulatedTxOverrides)(txOptions));\n return this.context.tx.sendTx(unsignedTx, txOptions);\n }\n else {\n const tickGroups = [];\n for (let i = 0; i < param.orderTicks.length; i += constants_1.MAX_CANCEL_ORDER_COUNT) {\n tickGroups.push(param.orderTicks.slice(i, i + constants_1.MAX_CANCEL_ORDER_COUNT));\n }\n const calldatas = tickGroups.map((group) => {\n return instrument.interface.encodeFunctionData('cancel', [\n (0, utils_1.encodeCancelParam)({ expiry: param.expiry, ticks: group, deadline: param.deadline }),\n ]);\n });\n const unsignedTx = await instrument.populateTransaction.multicall(calldatas, (0, utils_1.toPopulatedTxOverrides)(txOptions));\n return this.context.tx.sendTx(unsignedTx, txOptions);\n }\n }\n async placeCrossMarketOrder(param, txOptions) {\n const sign = (0, utils_1.signOfSide)(param.side);\n const instrument = this.getInstrumentContract(param.instrumentAddr, txOptions?.signer);\n const callData = [];\n callData.push(instrument.interface.encodeFunctionData('trade', [\n (0, utils_1.encodeTradeParam)({\n expiry: param.expiry,\n size: param.tradeSize.mul(sign),\n amount: param.tradeMargin,\n limitTick: param.tradeLimitTick,\n deadline: param.deadline,\n referralCode: param.referralCode ?? constants_1.DEFAULT_REFERRAL_CODE,\n }),\n ]));\n callData.push(instrument.interface.encodeFunctionData('place', [\n (0, utils_1.encodePlaceParam)({\n expiry: param.expiry,\n size: param.orderSize.mul(sign),\n amount: param.orderMargin,\n tick: param.orderTick,\n deadline: param.deadline,\n referralCode: param.referralCode ?? constants_1.DEFAULT_REFERRAL_CODE,\n }),\n ]));\n const unsignedTx = await instrument.populateTransaction.multicall(callData, (0, utils_1.toPopulatedTxOverrides)(txOptions));\n return this.context.tx.sendTx(unsignedTx, txOptions);\n }\n async settle(param, txOptions) {\n const instrument = this.getInstrumentContract(param.instrumentAddr, txOptions?.signer);\n const unsignedTx = await instrument.populateTransaction.settle(param.expiry, param.target, (0, utils_1.toPopulatedTxOverrides)(txOptions));\n return this.context.tx.sendTx(unsignedTx, txOptions);\n }\n async multicall(instrumentAddr, callData, txOptions) {\n const instrument = this.getInstrumentContract(instrumentAddr, txOptions?.signer);\n const unsignedTx = await instrument.populateTransaction.multicall(callData, (0, utils_1.toPopulatedTxOverrides)(txOptions));\n return this.context.tx.sendTx(unsignedTx, txOptions);\n }\n}\nexports.InstrumentModule = InstrumentModule;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.InverseCalcModule = void 0;\nconst calc_module_1 = require(\"../calc.module\");\nconst utils_1 = require(\"../../utils\");\nclass InverseCalcModule extends calc_module_1.CalcModule {\n async alignPriceToTick(instrumentAddr, price) {\n const isInverse = await this.context.perp.configuration.isInverse(instrumentAddr);\n const result = await super.alignPriceToTick(instrumentAddr, isInverse ? (0, utils_1.reversePrice)(price) : price);\n return isInverse\n ? {\n ...result,\n price: (0, utils_1.reversePrice)(result.price),\n }\n : result;\n }\n async getWadAtTick(instrumentAddr, tick) {\n const isInverse = await this.context.perp.configuration.isInverse(instrumentAddr);\n const result = await super.getWadAtTick(instrumentAddr, tick);\n return isInverse ? (0, utils_1.reversePrice)(result) : result;\n }\n async getTickAtPWad(instrumentAddr, price) {\n const isInverse = await this.context.perp.configuration.isInverse(instrumentAddr);\n return await super.getTickAtPWad(instrumentAddr, isInverse ? (0, utils_1.reversePrice)(price) : price);\n }\n async getWadAtTicks(instrumentAddr, lowerTick, upperTick) {\n const isInverse = await this.context.perp.configuration.isInverse(instrumentAddr);\n const result = await super.getWadAtTicks(instrumentAddr, lowerTick, upperTick);\n return isInverse\n ? {\n lowerPrice: (0, utils_1.reversePrice)(result.upperPrice),\n upperPrice: (0, utils_1.reversePrice)(result.lowerPrice),\n }\n : result;\n }\n async sqrtX96ToWad(instrumentAddr, sqrtPX96) {\n const isInverse = await this.context.perp.configuration.isInverse(instrumentAddr);\n const result = await super.sqrtX96ToWad(instrumentAddr, sqrtPX96);\n return isInverse ? (0, utils_1.reversePrice)(result) : result;\n }\n}\nexports.InverseCalcModule = InverseCalcModule;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./calc.moudle\"), exports);\n__exportStar(require(\"./instrument.module\"), exports);\n__exportStar(require(\"./observer.module\"), exports);\n__exportStar(require(\"./simulate.module\"), exports);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.InverseInstrumentModule = void 0;\nconst utils_1 = require(\"../../utils\");\nconst instrument_module_1 = require(\"../instrument.module\");\nclass InverseInstrumentModule extends instrument_module_1.InstrumentModule {\n async addLiquidity(param, txOptions) {\n const isInverse = typeof param.instrumentAddr === 'string'\n ? await this.context.perp.configuration.isInverse(param.instrumentAddr)\n : await this.context.perp.configuration.isInverseByIdentifier(param.instrumentAddr);\n return isInverse\n ? await super.addLiquidity({\n ...param,\n tickDeltaLower: param.tickDeltaUpper,\n tickDeltaUpper: param.tickDeltaLower,\n }, txOptions)\n : await super.addLiquidity(param, txOptions);\n }\n async removeLiquidity(param, txOptions) {\n const isInverse = await this.context.perp.configuration.isInverse(param.instrumentAddr);\n return isInverse\n ? await super.removeLiquidity({\n ...param,\n tickLower: param.tickUpper,\n tickUpper: param.tickLower,\n }, txOptions)\n : await super.removeLiquidity(param, txOptions);\n }\n async placeLimitOrder(param, txOptions) {\n const isInverse = await this.context.perp.configuration.isInverse(param.instrumentAddr);\n return isInverse\n ? await super.placeLimitOrder({\n ...param,\n side: (0, utils_1.reverseSide)(param.side),\n }, txOptions)\n : await super.placeLimitOrder(param, txOptions);\n }\n async placeMarketOrder(param, txOptions) {\n const isInverse = await this.context.perp.configuration.isInverse(param.instrumentAddr);\n return isInverse\n ? await super.placeMarketOrder({\n ...param,\n side: (0, utils_1.reverseSide)(param.side),\n }, txOptions)\n : await super.placeMarketOrder(param, txOptions);\n }\n async batchPlaceLimitOrder(param, txOptions) {\n const isInverse = await this.context.perp.configuration.isInverse(param.instrumentAddr);\n return isInverse\n ? await super.batchPlaceLimitOrder({\n ...param,\n side: (0, utils_1.reverseSide)(param.side),\n }, txOptions)\n : await super.batchPlaceLimitOrder(param, txOptions);\n }\n async placeCrossMarketOrder(param, txOptions) {\n const isInverse = await this.context.perp.configuration.isInverse(param.instrumentAddr);\n return isInverse\n ? await super.placeCrossMarketOrder({\n ...param,\n side: (0, utils_1.reverseSide)(param.side),\n }, txOptions)\n : await super.placeCrossMarketOrder(param, txOptions);\n }\n}\nexports.InverseInstrumentModule = InverseInstrumentModule;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.InverseObserverModule = void 0;\nconst utils_1 = require(\"../../utils\");\nconst observer_module_1 = require(\"../observer.module\");\nclass InverseObserverModule extends observer_module_1.ObserverModule {\n async getPortfolio(params, overrides) {\n const result = await super.getPortfolio(params, overrides);\n const portfolios = await Promise.all((Array.isArray(result) ? result : [result]).map((p) => this.context.perp.configuration\n .isInverse(p.instrumentAddr)\n .then((isInverse) => (isInverse ? (0, utils_1.reversePortfolio)(p) : p))));\n return portfolios.length === 1 ? portfolios[0] : portfolios;\n }\n async getAllInstruments(overrides) {\n const instruments = await super.getAllInstruments(overrides);\n return await Promise.all(instruments.map((i) => this.context.perp.configuration\n .isInverse(i.instrumentAddr)\n .then((isInverse) => (isInverse ? (0, utils_1.reverseInstrument)(i) : i))));\n }\n async getInstrument(params, overrides) {\n const instrument = await super.getInstrument(params, overrides);\n if (!Array.isArray(instrument)) {\n const isInverse = await this.context.perp.configuration.isInverse(instrument.instrumentAddr);\n return isInverse ? (0, utils_1.reverseInstrument)(instrument) : instrument;\n }\n else {\n return await Promise.all(instrument.map((i) => this.context.perp.configuration\n .isInverse(i.instrumentAddr)\n .then((isInverse) => (isInverse ? (0, utils_1.reverseInstrument)(i) : i))));\n }\n }\n async getPositionIfSettle(portfolio, amm) {\n const isInverse = await this.context.perp.configuration.isInverse(portfolio.instrumentAddr);\n const position = await super.getPositionIfSettle(isInverse ? (0, utils_1.reversePortfolio)(portfolio) : portfolio, isInverse ? (0, utils_1.reverseAmm)(amm) : amm);\n return isInverse ? (0, utils_1.reversePosition)(position) : position;\n }\n async inquireByBase(instrumentAddr, expiry, side, baseAmount, overrides) {\n const isInverse = await this.context.perp.configuration.isInverse(instrumentAddr);\n return await super.inquireByBase(instrumentAddr, expiry, isInverse ? (0, utils_1.reverseSide)(side) : side, baseAmount, overrides);\n }\n async inquireByQuote(instrumentAddr, expiry, side, quoteAmount, overrides) {\n const isInverse = await this.context.perp.configuration.isInverse(instrumentAddr);\n return await super.inquireByQuote(instrumentAddr, expiry, isInverse ? (0, utils_1.reverseSide)(side) : side, quoteAmount, overrides);\n }\n async getRawSpotPrice(identifier, overrides) {\n const isInverse = await this.context.perp.configuration.isInverseByIdentifier(identifier);\n const result = await super.getRawSpotPrice(identifier, overrides);\n return isInverse ? (0, utils_1.reversePrice)(result) : result;\n }\n}\nexports.InverseObserverModule = InverseObserverModule;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.InverseSimulateModule = void 0;\nconst utils_1 = require(\"../../utils\");\nconst simulate_module_1 = require(\"../simulate.module\");\nfunction reverseSimulateTradeResult(result) {\n return {\n ...result,\n tradePrice: (0, utils_1.reversePrice)(result.tradePrice),\n postPosition: (0, utils_1.reversePosition)(result.postPosition),\n priceImpact: result.priceImpact.mul(-1),\n };\n}\nclass InverseSimulateModule extends simulate_module_1.SimulateModule {\n async simulateCrossMarketOrder(param, overrides) {\n const isInverse = await this.context.perp.configuration.isInverse(param.tradeInfo.instrumentAddr);\n const result = await super.simulateCrossMarketOrder(isInverse\n ? {\n ...param,\n tradeInfo: (0, utils_1.isPosition)(param.tradeInfo) ? (0, utils_1.reversePosition)(param.tradeInfo) : param.tradeInfo,\n priceInfo: (0, utils_1.reversePriceInfo)(param.priceInfo),\n side: (0, utils_1.reverseSide)(param.side),\n instrument: param.instrument && (0, utils_1.reverseInstrument)(param.instrument),\n }\n : param, overrides);\n return isInverse\n ? {\n ...result,\n tradeSimulation: reverseSimulateTradeResult(result.tradeSimulation),\n }\n : result;\n }\n async simulateLimitOrder(param, overrides) {\n const isInverse = await this.context.perp.configuration.isInverse(param.tradeInfo.instrumentAddr);\n return await super.simulateLimitOrder(isInverse\n ? {\n ...param,\n priceInfo: (0, utils_1.reversePriceInfo)(param.priceInfo),\n side: (0, utils_1.reverseSide)(param.side),\n instrument: param.instrument && (0, utils_1.reverseInstrument)(param.instrument),\n }\n : param, overrides);\n }\n async simulateScaledLimitOrder(param, overrides) {\n const isInverse = await this.context.perp.configuration.isInverse(param.tradeInfo.instrumentAddr);\n let result = await super.simulateScaledLimitOrder(isInverse\n ? {\n ...param,\n priceInfo: param.priceInfo.map((p) => (typeof p === 'number' ? p : (0, utils_1.reversePrice)(p))),\n side: (0, utils_1.reverseSide)(param.side),\n instrument: param.instrument && (0, utils_1.reverseInstrument)(param.instrument),\n }\n : param, overrides);\n if (isInverse) {\n result = {\n ...result,\n orders: result.orders.map((o) => {\n return (o && {\n ...o,\n limitPrice: (0, utils_1.reversePrice)(o.limitPrice),\n });\n }),\n };\n }\n return result;\n }\n async simulateMarketOrderByMargin(param, overrides) {\n const isInverse = await this.context.perp.configuration.isInverse(param.tradeInfo.instrumentAddr);\n const result = await super.simulateMarketOrderByMargin(isInverse\n ? {\n ...param,\n tradeInfo: (0, utils_1.isPosition)(param.tradeInfo) ? (0, utils_1.reversePosition)(param.tradeInfo) : param.tradeInfo,\n side: (0, utils_1.reverseSide)(param.side),\n instrument: param.instrument && (0, utils_1.reverseInstrument)(param.instrument),\n }\n : param, overrides);\n return isInverse ? reverseSimulateTradeResult(result) : result;\n }\n async simulateMarketOrderByLeverage(param, overrides) {\n const isInverse = await this.context.perp.configuration.isInverse(param.tradeInfo.instrumentAddr);\n const result = await super.simulateMarketOrderByLeverage(isInverse\n ? {\n ...param,\n tradeInfo: (0, utils_1.isPosition)(param.tradeInfo) ? (0, utils_1.reversePosition)(param.tradeInfo) : param.tradeInfo,\n side: (0, utils_1.reverseSide)(param.side),\n instrument: param.instrument && (0, utils_1.reverseInstrument)(param.instrument),\n }\n : param, overrides);\n return isInverse ? reverseSimulateTradeResult(result) : result;\n }\n async simulateClose(param, overrides) {\n const isInverse = await this.context.perp.configuration.isInverse(param.tradeInfo.instrumentAddr);\n const result = await super.simulateClose(isInverse\n ? {\n ...param,\n tradeInfo: (0, utils_1.isPosition)(param.tradeInfo) ? (0, utils_1.reversePosition)(param.tradeInfo) : param.tradeInfo,\n instrument: param.instrument && (0, utils_1.reverseInstrument)(param.instrument),\n }\n : param, overrides);\n return isInverse ? reverseSimulateTradeResult(result) : result;\n }\n async simulateAdjustMarginByMargin(param, overrides) {\n const isInverse = await this.context.perp.configuration.isInverse(param.tradeInfo.instrumentAddr);\n const result = await super.simulateAdjustMarginByMargin(isInverse\n ? {\n ...param,\n tradeInfo: (0, utils_1.isPosition)(param.tradeInfo) ? (0, utils_1.reversePosition)(param.tradeInfo) : param.tradeInfo,\n instrument: param.instrument && (0, utils_1.reverseInstrument)(param.instrument),\n }\n : param, overrides);\n return isInverse ? { ...result, postPosition: (0, utils_1.reversePosition)(result.postPosition) } : result;\n }\n async simulateAdjustMarginByLeverage(param, overrides) {\n const isInverse = await this.context.perp.configuration.isInverse(param.tradeInfo.instrumentAddr);\n const result = await super.simulateAdjustMarginByLeverage(isInverse\n ? {\n ...param,\n tradeInfo: (0, utils_1.isPosition)(param.tradeInfo) ? (0, utils_1.reversePosition)(param.tradeInfo) : param.tradeInfo,\n instrument: param.instrument && (0, utils_1.reverseInstrument)(param.instrument),\n }\n : param, overrides);\n return isInverse ? { ...result, postPosition: (0, utils_1.reversePosition)(result.postPosition) } : result;\n }\n async simulateAddLiquidity(param, overrides) {\n const isInverse = (0, utils_1.isInstrument)(param.instrument)\n ? await this.context.perp.configuration.isInverse(param.instrument.instrumentAddr)\n : await this.context.perp.configuration.isInverseByIdentifier(param.instrument);\n const result = await super.simulateAddLiquidity(isInverse\n ? {\n ...param,\n instrument: (0, utils_1.isInstrument)(param.instrument)\n ? (0, utils_1.reverseInstrument)(param.instrument)\n : param.instrument,\n }\n : param, overrides);\n return isInverse\n ? {\n ...result,\n upperPrice: (0, utils_1.reversePrice)(result.lowerPrice),\n lowerPrice: (0, utils_1.reversePrice)(result.upperPrice),\n lowerPosition: (0, utils_1.reversePosition)(result.upperPosition),\n lowerLeverage: result.upperLeverage,\n upperPosition: (0, utils_1.reversePosition)(result.lowerPosition),\n upperLeverage: result.lowerLeverage,\n }\n : result;\n }\n async simulateAddLiquidityWithAsymmetricRange(param, overrides) {\n const isInverse = (0, utils_1.isInstrument)(param.instrument)\n ? await this.context.perp.configuration.isInverse(param.instrument.instrumentAddr)\n : await this.context.perp.configuration.isInverseByIdentifier(param.instrument);\n const result = await super.simulateAddLiquidityWithAsymmetricRange(isInverse\n ? {\n ...param,\n alphaWadLower: param.alphaWadUpper,\n alphaWadUpper: param.alphaWadLower,\n instrument: (0, utils_1.isInstrument)(param.instrument)\n ? (0, utils_1.reverseInstrument)(param.instrument)\n : param.instrument,\n }\n : param, overrides);\n return isInverse\n ? {\n ...result,\n tickDeltaLower: result.tickDeltaUpper,\n tickDeltaUpper: result.tickDeltaLower,\n upperPrice: (0, utils_1.reversePrice)(result.lowerPrice),\n lowerPrice: (0, utils_1.reversePrice)(result.upperPrice),\n lowerPosition: (0, utils_1.reversePosition)(result.upperPosition),\n lowerLeverage: result.upperLeverage,\n upperPosition: (0, utils_1.reversePosition)(result.lowerPosition),\n upperLeverage: result.lowerLeverage,\n equivalentAlphaLower: result.equivalentAlphaUpper,\n equivalentAlphaUpper: result.equivalentAlphaLower,\n }\n : result;\n }\n async simulateRemoveLiquidity(param, overrides) {\n const isInverse = await this.context.perp.configuration.isInverse(param.tradeInfo.instrumentAddr);\n const result = await super.simulateRemoveLiquidity(isInverse\n ? {\n ...param,\n tradeInfo: (0, utils_1.isPortfolio)(param.tradeInfo) ? (0, utils_1.reversePortfolio)(param.tradeInfo) : param.tradeInfo,\n tickUpper: param.tickLower,\n tickLower: param.tickUpper,\n instrument: param.instrument && (0, utils_1.reverseInstrument)(param.instrument),\n }\n : param, overrides);\n return isInverse\n ? {\n ...result,\n removedPosition: (0, utils_1.reversePosition)(result.removedPosition),\n postPosition: (0, utils_1.reversePosition)(result.postPosition),\n removedPositionEntryPrice: (0, utils_1.reversePrice)(result.removedPositionEntryPrice),\n }\n : result;\n }\n}\nexports.InverseSimulateModule = InverseSimulateModule;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ObserverModule = void 0;\nconst ethers_1 = require(\"ethers\");\nconst context_1 = require(\"@derivation-tech/context\");\nconst typechain_1 = require(\"../typechain\");\nconst enum_1 = require(\"../enum\");\nconst math_1 = require(\"../math\");\nconst utils_1 = require(\"../utils\");\nconst lowLevel_1 = require(\"../utils/lowLevel\");\nconst parser_1 = require(\"../parser\");\nconst errors_1 = require(\"../errors\");\nconst batchSize = 10;\nclass ObserverModule {\n constructor(context) {\n this.cache = new Map();\n this.context = context;\n }\n async getMiscInfo(instrumentAddress, overrides) {\n const instrumentInterface = typechain_1.Instrument__factory.createInterface();\n let needFundingHour = this.context.chainId !== context_1.CHAIN_ID.BLAST && this.context.chainId !== context_1.CHAIN_ID.LOCAL;\n if (overrides && overrides.blockTag) {\n const blockTag = await overrides.blockTag;\n if (typeof blockTag === 'number' || blockTag.startsWith('0x')) {\n const blockNumber = ethers_1.ethers.BigNumber.from(blockTag).toNumber();\n if (this.context.chainId === context_1.CHAIN_ID.BASE && blockNumber < 21216046) {\n needFundingHour = false;\n }\n }\n }\n const calls = [];\n for (const instrumentAddr of instrumentAddress) {\n calls.push({\n target: instrumentAddr,\n callData: instrumentInterface.encodeFunctionData('placePaused'),\n });\n if (needFundingHour) {\n calls.push({\n target: instrumentAddr,\n callData: instrumentInterface.encodeFunctionData('fundingHour'),\n });\n }\n }\n const rawMiscInfo = await this.context.getMulticall3().callStatic.aggregate(calls, overrides ?? {});\n const miscList = [];\n for (let j = 0; j < rawMiscInfo.returnData.length; j = needFundingHour ? j + 2 : j + 1) {\n const [placePaused] = instrumentInterface.decodeFunctionResult('placePaused', rawMiscInfo.returnData[j]);\n const [fundingHour] = needFundingHour\n ? instrumentInterface.decodeFunctionResult('fundingHour', rawMiscInfo.returnData[j + 1])\n : [24];\n miscList.push({\n placePaused: placePaused,\n fundingHour: fundingHour === 0 ? 24 : fundingHour,\n });\n }\n return miscList;\n }\n async getPortfolio(params, overrides) {\n params = Array.isArray(params) ? params : [params];\n const observerInterface = this.context.perp.contracts.observer.interface;\n let portfolios = [];\n for (let i = 0; i < params.length; i += batchSize) {\n const _params = params.slice(i, i + batchSize);\n const calls = _params.map((p) => {\n return {\n target: this.context.perp.contracts.observer.address,\n callData: observerInterface.encodeFunctionData('getAcc', [\n p.instrumentAddr,\n p.expiry,\n p.traderAddr,\n ]),\n };\n });\n portfolios = portfolios.concat(await (0, utils_1.quickRetry)(() => this.context\n .getMulticall3()\n .callStatic.aggregate(calls, overrides ?? {})\n .then(({ returnData }) => returnData.map((d, i) => {\n const p = _params[i];\n return (0, utils_1.toPortfolio)(p.instrumentAddr, p.expiry, p.traderAddr, observerInterface.decodeFunctionResult('getAcc', d));\n }))));\n }\n return portfolios.length === 1 ? portfolios[0] : portfolios;\n }\n async getAllInstruments(overrides) {\n const instrumentLists = await this.context.perp.contracts.gate.getAllInstruments(overrides ?? {});\n const totalPage = Math.ceil(instrumentLists.length / batchSize);\n const rawList = [];\n const miscInfoList = [];\n for (let i = 0; i < totalPage; i++) {\n const queryList = instrumentLists.slice(i * batchSize, (i + 1) * batchSize >= instrumentLists.length ? instrumentLists.length : (i + 1) * batchSize);\n rawList.push(await (0, utils_1.quickRetry)(() => this.context.perp.contracts.observer.getInstrumentByAddressList(queryList, overrides ?? {})));\n miscInfoList.push(await (0, utils_1.quickRetry)(async () => this.getMiscInfo(queryList, overrides ?? {})));\n }\n let assembledInstrumentDatas = [];\n for (let i = 0; i < rawList.length; i++) {\n const miscInfo = miscInfoList[i];\n const [rawInstrument, rawBlockInfo] = (0, utils_1.trimObj)(rawList[i]);\n assembledInstrumentDatas = assembledInstrumentDatas.concat(await this.parseInstrumentData(rawInstrument, miscInfo, rawBlockInfo, overrides ?? {}));\n }\n return assembledInstrumentDatas;\n }\n async getInstrument(params, overrides) {\n const _params = Array.isArray(params) ? params : [params];\n const formattedParams = [];\n for (let i = 0; i < _params.length; i++) {\n const p = _params[i];\n if (typeof p === 'string') {\n if (ethers_1.ethers.utils.isAddress(p)) {\n formattedParams.push({\n instrument: p,\n expiries: [],\n });\n }\n else {\n formattedParams.push({\n instrument: await this._getInstrumentBySymbol(p, overrides ?? {}),\n expiries: [],\n });\n }\n }\n else {\n if (ethers_1.ethers.utils.isAddress(p.instrument)) {\n formattedParams.push(p);\n }\n else {\n formattedParams.push({\n instrument: await this._getInstrumentBySymbol(p.instrument, overrides ?? {}),\n expiries: p.expiries,\n });\n }\n }\n }\n const [rawList, rawBlockInfo] = (0, utils_1.trimObj)(await this.context.perp.contracts.observer.getInstrumentBatch(formattedParams, overrides ?? {}));\n const miscInfoList = await this.getMiscInfo(formattedParams.map((p) => p.instrument), overrides ?? {});\n const instruments = await this.parseInstrumentData(rawList, miscInfoList, rawBlockInfo, overrides ?? {});\n return Array.isArray(params) ? instruments : instruments?.[0];\n }\n async _getInstrumentBySymbol(symbol, overrides) {\n const cachedInstrumentAddress = this.cache.get(symbol);\n if (cachedInstrumentAddress) {\n return cachedInstrumentAddress;\n }\n await this.getAllInstruments(overrides ?? {});\n const updatedInstrumentAddress = this.cache.get(symbol);\n if (!updatedInstrumentAddress) {\n throw new errors_1.SynfError('unknown symbol: ' + symbol);\n }\n return updatedInstrumentAddress;\n }\n async parseInstrumentData(rawList, miscInfoList, blockInfo, overrides) {\n const assembledInstrumentDatas = [];\n for (let i = 0; i < rawList.length; i++) {\n const rawInstrument = rawList[i];\n const miscInfo = miscInfoList[i];\n const [baseSymbol, quoteSymbol, marketType] = rawInstrument.symbol.split('-');\n const quoteTokenInfo = await this.getQuoteTokenInfo(quoteSymbol, rawInstrument.instrumentAddr, overrides ?? {});\n let baseInfo = { symbol: baseSymbol, address: ethers_1.ethers.constants.AddressZero, decimals: 0 };\n if (!(0, utils_1.isCexMarket)(marketType)) {\n const onCtxBaseInfo = await this.context.getTokenInfo(baseSymbol);\n if (onCtxBaseInfo) {\n baseInfo = onCtxBaseInfo;\n }\n }\n const instrumentInfo = {\n chainId: this.context.chainId,\n addr: rawInstrument.instrumentAddr,\n symbol: rawInstrument.symbol,\n base: baseInfo,\n quote: quoteTokenInfo,\n };\n const marketInfo = {\n addr: rawInstrument.market,\n type: marketType,\n beacon: this.context.perp.configuration.config.contractAddress.market[marketType].beacon,\n };\n const marketConfig = this.context.perp.configuration.config.marketConfig[marketType];\n const feeder = (0, utils_1.isCexMarket)(marketType)\n ? rawInstrument.priceFeeder\n : rawInstrument.dexV2Feeder;\n const market = { info: marketInfo, config: marketConfig, feeder: feeder };\n const instrumentSetting = {\n initialMarginRatio: rawInstrument.initialMarginRatio,\n maintenanceMarginRatio: rawInstrument.maintenanceMarginRatio,\n quoteParam: rawInstrument.param,\n };\n const amms = new Map();\n for (let i = 0; i < rawInstrument.amms.length; i++) {\n const rawAmm = rawInstrument.amms[i];\n if (rawAmm.expiry === 0) {\n continue;\n }\n const amm = utils_1.factory.createAmm({\n ...rawAmm,\n instrumentAddr: rawInstrument.instrumentAddr,\n markPrice: rawInstrument.markPrices[i],\n blockInfo,\n });\n amms.set(rawAmm.expiry, amm);\n }\n const rawAssembledInstrumentData = {\n instrumentAddr: rawInstrument.instrumentAddr,\n symbol: rawInstrument.symbol,\n market,\n condition: rawInstrument.condition,\n setting: instrumentSetting,\n spotPrice: rawInstrument.spotPrice,\n amms,\n base: baseInfo,\n quote: quoteTokenInfo,\n blockInfo,\n ...miscInfo,\n };\n const assembledInstrumentData = utils_1.factory.createInstrument(rawAssembledInstrumentData);\n this.cache.set(instrumentInfo.symbol, assembledInstrumentData.instrumentAddr);\n this.context.registerAddress(instrumentInfo.addr, instrumentInfo.symbol);\n this.context.registerContractParser(instrumentInfo.addr, new parser_1.InstrumentParser());\n assembledInstrumentDatas.push(assembledInstrumentData);\n }\n return assembledInstrumentDatas;\n }\n async getQuoteTokenInfo(quoteSymbol, instrumentAddr, overrides) {\n return ((await this.context.getTokenInfo(quoteSymbol)) ??\n (await this.context.getTokenInfo((await this.context.perp.contracts.observer.getSetting(instrumentAddr, overrides ?? {})).quote)));\n }\n async inspectDexV2MarketBenchmarkPrice(instrumentIdentifier, expiry, overrides) {\n const { baseSymbol, quoteSymbol } = (0, utils_1.getTokenSymbol)(instrumentIdentifier.baseSymbol, instrumentIdentifier.quoteSymbol);\n const baseParam = this.context.perp.configuration.config.quotesParam[baseSymbol];\n const quoteParam = this.context.perp.configuration.config.quotesParam[quoteSymbol];\n const baseStable = baseParam && baseParam.qtype === enum_1.QuoteType.STABLE;\n const quoteStable = quoteParam && quoteParam.qtype === enum_1.QuoteType.STABLE;\n const feederType = ((baseStable ? 2 : 0) + (quoteStable ? 1 : 0));\n const rawSpotPrice = await this.getDexV2RawSpotPrice(instrumentIdentifier, overrides ?? {});\n return (0, lowLevel_1.calcBenchmarkPrice)(expiry, rawSpotPrice, feederType, this.context.perp.configuration.config.marketConfig.DEXV2.dailyInterestRate);\n }\n async inspectCexMarketBenchmarkPrice(instrumentIdentifier, expiry) {\n const instrumentAddress = await this.context.perp.instrument.computeInstrumentAddress(instrumentIdentifier);\n const market = this.context.perp.contracts.marketContracts[instrumentIdentifier.marketType]\n ?.market;\n let benchmarkPrice;\n try {\n benchmarkPrice = await market.getBenchmarkPrice(instrumentAddress, expiry);\n }\n catch (e) {\n console.error('fetch chainlink market price error', e);\n benchmarkPrice = math_1.ZERO;\n }\n return benchmarkPrice;\n }\n async getRawSpotPrice(identifier, overrides) {\n if (identifier.marketType === enum_1.MarketType.DEXV2) {\n return await this.getDexV2RawSpotPrice(identifier, overrides ?? {});\n }\n else if ((0, utils_1.isCexMarket)(identifier.marketType)) {\n return await this.getCexRawSpotPrice(identifier, overrides ?? {});\n }\n else {\n throw new errors_1.SynfError('Unsupported market type: ' + identifier.marketType);\n }\n }\n async getNextInitializedTickOutside(instrumentAddr, expiry, tick, right, overrides) {\n return await this.context.perp.contracts.observer.getNextInitializedTickOutside(instrumentAddr, expiry, tick, right, overrides ?? {});\n }\n async getSizeToTargetTick(instrumentAddr, expiry, targetTick, overrides) {\n const observer = this.context.perp.contracts.observer;\n const amm = await observer.getAmm(instrumentAddr, expiry, overrides ?? {});\n const targetPX96 = math_1.TickMath.getSqrtRatioAtTick(targetTick);\n if (targetPX96.eq(amm.sqrtPX96)) {\n return math_1.ZERO;\n }\n const long = targetTick > amm.tick;\n let size = math_1.ZERO;\n const currTickLeft = (await observer.getPearls(instrumentAddr, expiry, [amm.tick], overrides ?? {}))[0].left;\n if (long && currTickLeft.isNegative()) {\n size = size.sub(currTickLeft);\n }\n let sqrtPX96 = amm.sqrtPX96;\n let liquidity = amm.liquidity;\n let nextTick = await this.getNextInitializedTickOutside(instrumentAddr, expiry, amm.tick + (long ? 0 : 1), long, overrides ?? {});\n while (true) {\n const nextPX96 = math_1.TickMath.getSqrtRatioAtTick(nextTick);\n if ((long && nextTick > targetTick) || (!long && nextTick < targetTick)) {\n const delta = math_1.SqrtPriceMath.getDeltaBaseAutoRoundUp(sqrtPX96, targetPX96, liquidity);\n size = long ? size.add(delta).add(1) : size.sub(delta).sub(1);\n break;\n }\n const nextPearl = (await observer.getPearls(instrumentAddr, expiry, [nextTick], overrides ?? {}))[0];\n const delta = math_1.SqrtPriceMath.getDeltaBaseAutoRoundUp(sqrtPX96, nextPX96, liquidity);\n size = long ? size.add(delta) : size.sub(delta);\n if (nextTick === targetTick) {\n break;\n }\n if ((long && nextPearl.left.isNegative()) || (!long && nextPearl.left.gt(0))) {\n size = size.sub(nextPearl.left);\n }\n sqrtPX96 = nextPX96;\n if (nextPearl.liquidityGross.gt(math_1.ZERO)) {\n liquidity = liquidity.add(long ? nextPearl.liquidityNet : nextPearl.liquidityNet.mul(-1));\n }\n nextTick = await this.getNextInitializedTickOutside(instrumentAddr, expiry, nextTick, long, overrides ?? {});\n }\n return size;\n }\n async getFundFlows(quoteAddrs, trader, overrides) {\n const gateInterface = this.context.perp.contracts.gate.interface;\n const observerInterface = this.context.perp.contracts.observer.interface;\n const calls = [];\n calls.push(...quoteAddrs.map((quote) => {\n return {\n target: this.context.perp.contracts.gate.address,\n callData: gateInterface.encodeFunctionData('fundFlowOf', [quote, trader]),\n };\n }));\n calls.push({\n target: this.context.perp.contracts.observer.address,\n callData: observerInterface.encodeFunctionData('getVaultBalances', [trader, quoteAddrs]),\n });\n const rawRet = (await this.context.getMulticall3().callStatic.aggregate(calls, overrides ?? {})).returnData;\n const fundFlows = rawRet.slice(0, quoteAddrs.length).map((ret) => {\n return (0, utils_1.trimObj)(gateInterface.decodeFunctionResult('fundFlowOf', ret)[0]);\n });\n const blockInfo = (0, utils_1.trimObj)(observerInterface.decodeFunctionResult('getVaultBalances', rawRet[quoteAddrs.length])[1]);\n return { fundFlows, blockInfo: blockInfo };\n }\n async getUserPendings(quotes, trader, overrides) {\n const gateInterface = this.context.perp.contracts.gate.interface;\n const observerInterface = this.context.perp.contracts.observer.interface;\n const calls = [];\n calls.push(...quotes.map((quote) => {\n return {\n target: this.context.perp.contracts.gate.address,\n callData: gateInterface.encodeFunctionData('fundFlowOf', [quote, trader]),\n };\n }));\n calls.push(...quotes.map((quote) => {\n return {\n target: this.context.perp.contracts.gate.address,\n callData: gateInterface.encodeFunctionData('thresholdOf', [quote]),\n };\n }));\n calls.push(...quotes.map((quote) => {\n return {\n target: this.context.perp.contracts.gate.address,\n callData: gateInterface.encodeFunctionData('reserveOf', [quote, trader]),\n };\n }));\n calls.push({\n target: this.context.perp.contracts.observer.address,\n callData: observerInterface.encodeFunctionData('getPendings', [quotes, trader]),\n });\n const rawRet = (await this.context.getMulticall3().callStatic.aggregate(calls, overrides ?? {})).returnData;\n const fundFlows = rawRet\n .slice(0, quotes.length)\n .map((ret) => gateInterface.decodeFunctionResult('fundFlowOf', ret)[0]);\n const thresholds = rawRet\n .slice(quotes.length, quotes.length * 2)\n .map((ret) => gateInterface.decodeFunctionResult('thresholdOf', ret)[0]);\n const reserves = rawRet\n .slice(quotes.length * 2, quotes.length * 3)\n .map((ret) => gateInterface.decodeFunctionResult('reserveOf', ret)[0]);\n const decoded = observerInterface.decodeFunctionResult('getPendings', rawRet[quotes.length * 3]);\n const pendings = decoded[0];\n const blockInfo = (0, utils_1.trimObj)(decoded[1]);\n return {\n pendings: pendings.map((pending, index) => {\n return {\n maxWithdrawable: (0, math_1.calcMaxWithdrawable)(thresholds[index], pending, fundFlows[index], reserves[index]),\n pending,\n };\n }),\n blockInfo,\n };\n }\n async inquireByBase(instrumentAddr, expiry, side, baseAmount, overrides) {\n const instrument = typechain_1.Instrument__factory.connect(instrumentAddr, this.context.provider);\n const sign = (0, utils_1.signOfSide)(side);\n const size = baseAmount.mul(sign);\n const quotation = await instrument.inquire(expiry, size, overrides ?? {});\n const entryNotional = quotation.entryNotional;\n return {\n quoteAmount: entryNotional,\n quotation: quotation,\n };\n }\n async inquireByQuote(instrumentAddr, expiry, side, quoteAmount, overrides) {\n const long = side === enum_1.Side.LONG;\n const { size, quotation } = await this.context.perp.contracts.observer.inquireByNotional(instrumentAddr, expiry, quoteAmount, long, overrides ?? {});\n return {\n baseAmount: size.abs(),\n quotation: quotation,\n };\n }\n async getPositionIfSettle(portfolio, amm, overrides) {\n let finalPic = {\n balance: math_1.ZERO,\n size: math_1.ZERO,\n entryNotional: math_1.ZERO,\n entrySocialLossIndex: math_1.ZERO,\n entryFundingIndex: math_1.ZERO,\n };\n const instrumentAddr = portfolio.instrumentAddr;\n const expiry = amm.expiry;\n const ranges = Array.from(portfolio.ranges.values());\n const orders = Array.from(portfolio.orders.values());\n for (const range of ranges) {\n const position = (0, utils_1.rangeToPosition)(range, amm);\n finalPic = (0, lowLevel_1.combine)(amm, finalPic, position).position;\n }\n const ticks = orders.map((o) => o.tick);\n const nonces = orders.map((o) => o.nonce);\n const pearls = await this.context.perp.contracts.observer.getPearls(instrumentAddr, expiry, ticks, overrides ?? {});\n const records = await this.context.perp.contracts.observer.getRecords(instrumentAddr, expiry, ticks, nonces, overrides ?? {});\n for (let i = 0; i < orders.length; i++) {\n const order = orders[i];\n const pearl = pearls[i];\n const record = records[i];\n let position;\n if (pearl.nonce === order.nonce) {\n position = (0, lowLevel_1.cancelOrderToPosition)(pearl.left, pearl.nonce, pearl.taken, pearl.fee, pearl.entrySocialLossIndex, pearl.entryFundingIndex, order, order.tick, order.nonce, record);\n }\n else {\n position = (0, lowLevel_1.fillOrderToPosition)(pearl.nonce, pearl.taken, pearl.fee, pearl.entrySocialLossIndex, pearl.entryFundingIndex, order, order.tick, order.nonce, order.size, record);\n }\n finalPic = (0, lowLevel_1.combine)(amm, finalPic, position).position;\n }\n finalPic = (0, lowLevel_1.combine)(amm, finalPic, portfolio.position).position;\n return utils_1.factory.createPosition({\n ...finalPic,\n instrumentAddr,\n expiry,\n traderAddr: portfolio.traderAddr,\n });\n }\n async getDexV2RawSpotPrice(identifier, overrides) {\n const { baseTokenInfo, quoteTokenInfo } = await (0, utils_1.getTokenInfo)(identifier, this.context);\n const baseScaler = ethers_1.BigNumber.from(10).pow(18 - baseTokenInfo.decimals);\n const quoteScaler = ethers_1.BigNumber.from(10).pow(18 - quoteTokenInfo.decimals);\n const isToken0Quote = ethers_1.BigNumber.from(baseTokenInfo.address).gt(ethers_1.BigNumber.from(quoteTokenInfo.address));\n const dexV2PairInfo = await this.context.perp.contracts.observer.inspectMaxReserveDexV2Pair(baseTokenInfo.address, quoteTokenInfo.address, overrides ?? {});\n if (dexV2PairInfo.maxReservePair === context_1.ZERO_ADDRESS ||\n dexV2PairInfo.reserve0.isZero() ||\n dexV2PairInfo.reserve1.isZero()) {\n return math_1.ZERO;\n }\n return isToken0Quote\n ? (0, math_1.wdiv)(dexV2PairInfo.reserve0.mul(quoteScaler), dexV2PairInfo.reserve1.mul(baseScaler))\n : (0, math_1.wdiv)(dexV2PairInfo.reserve1.mul(quoteScaler), dexV2PairInfo.reserve0.mul(baseScaler));\n }\n async getCexRawSpotPrice(instrumentIdentifier, overrides) {\n const instrumentAddress = await this.context.perp.instrument.computeInstrumentAddress(instrumentIdentifier);\n const market = this.context.perp.contracts.marketContracts[instrumentIdentifier.marketType]\n ?.market;\n let rawSpotPrice;\n try {\n rawSpotPrice = await market.getRawPrice(instrumentAddress, overrides ?? {});\n }\n catch (e) {\n console.error('fetch chainlink spot price error', e);\n rawSpotPrice = math_1.ZERO;\n }\n return rawSpotPrice;\n }\n async getGateBalance(target, quoteAddrs, overrides) {\n const resp = await this.context.perp.contracts.observer.getVaultBalances(target, quoteAddrs, overrides ?? {});\n const balance = [];\n for (let i = 0; i < quoteAddrs.length; i++) {\n balance.push(resp[0][i]);\n }\n return balance;\n }\n async getGateBalances(target, overrides) {\n const quotes = await Promise.all(Object.keys(this.context.perp.configuration.config.quotesParam).map((quote) => this.context.getTokenInfo(quote)));\n const gateBalances = await this.getGateBalance(target, quotes.map((quote) => quote.address), overrides);\n const results = [];\n for (let i = 0; i < quotes.length; i++) {\n if (gateBalances[i].eq(0)) {\n continue;\n }\n results.push({\n ...quotes[i],\n balance: gateBalances[i],\n });\n }\n return results;\n }\n async getLiquidityDetails(instrumentAddr, expiry, tickDelta, overrides) {\n const liquidityDetails = await this.context.perp.contracts.observer.liquidityDetails(instrumentAddr, expiry, tickDelta, overrides ?? {});\n const tick2Pearl = new Map();\n for (let i = 0; i < liquidityDetails.tids.length; i++) {\n tick2Pearl.set(liquidityDetails.tids[i], liquidityDetails.pearls[i]);\n }\n return {\n ...(0, utils_1.trimObj)(liquidityDetails),\n tick2Pearl,\n };\n }\n}\nexports.ObserverModule = ObserverModule;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SimulateModule = void 0;\nconst ethers_1 = require(\"ethers\");\nconst math_1 = require(\"../math\");\nconst utils_1 = require(\"../utils\");\nconst lowLevel_1 = require(\"../utils/lowLevel\");\nconst constants_1 = require(\"../constants\");\nconst enum_1 = require(\"../enum\");\nconst synfError_1 = require(\"../errors/synfError\");\nconst simulationError_1 = require(\"../errors/simulationError\");\nclass SimulateModule {\n constructor(context) {\n this.context = context;\n }\n get observer() {\n return this.context.perp._observer;\n }\n async getPosition(tradeInfo, overrides) {\n if ((0, utils_1.isPosition)(tradeInfo)) {\n return tradeInfo;\n }\n const portfolio = await this.observer.getPortfolio(tradeInfo, overrides ?? {});\n return portfolio.position;\n }\n async getPortfolio(traderInfo, overrides) {\n if ((0, utils_1.isPortfolio)(traderInfo)) {\n return traderInfo;\n }\n else {\n return await this.observer.getPortfolio(traderInfo, overrides ?? {});\n }\n }\n getPriceInfo(priceInfo) {\n let targetTick;\n let targetPrice;\n if (typeof priceInfo === 'number') {\n targetTick = priceInfo;\n targetPrice = math_1.TickMath.getWadAtTick(targetTick);\n }\n else {\n const result = (0, math_1.alignPriceToTick)(priceInfo);\n targetTick = result.tick;\n targetPrice = result.price;\n }\n return { targetTick, targetPrice };\n }\n async mustGetInstrumentAndAmm(anyInfo, instrument, overrides) {\n const result = await this.getInstrumentAndAmm(anyInfo, instrument, overrides ?? {});\n if (result === undefined || result.amm === undefined) {\n throw new synfError_1.SynfError('Instrument or amm not found: ' + `instrument: ${anyInfo.instrumentAddr}, expiry: ${anyInfo.expiry}`);\n }\n return result;\n }\n async getInstrumentAndAmm(anyInfo, instrument, overrides) {\n if (instrument) {\n return { instrument, amm: instrument.amms.get(anyInfo.expiry) };\n }\n instrument = await this.observer.getInstrument({\n instrument: anyInfo.instrumentAddr,\n expiries: [anyInfo.expiry],\n }, overrides ?? {});\n if (instrument === undefined) {\n return undefined;\n }\n return { instrument, amm: instrument.amms.get(anyInfo.expiry) };\n }\n async inquireByBaseOrQuote(params, markPrice, overrides, expectQuotation = false) {\n let baseSize;\n let quoteSize;\n let quotation = null;\n if ((0, utils_1.isByBase)(params.size)) {\n const { quoteAmount, quotation: _quotation } = await this.observer\n .inquireByBase(params.tradeInfo.instrumentAddr, params.tradeInfo.expiry, params.side, params.size.base, overrides ?? {})\n .catch((err) => {\n if (expectQuotation) {\n throw err;\n }\n return {\n quoteAmount: (0, math_1.wmul)(params.size.base, markPrice),\n quotation: null,\n };\n });\n baseSize = params.size.base;\n quoteSize = quoteAmount;\n quotation = _quotation;\n }\n else {\n const { baseAmount, quotation: _quotation } = await this.observer\n .inquireByQuote(params.tradeInfo.instrumentAddr, params.tradeInfo.expiry, params.side, params.size.quote, overrides ?? {})\n .catch((err) => {\n if (expectQuotation) {\n throw err;\n }\n return {\n baseAmount: (0, math_1.wdiv)(params.size.quote, markPrice),\n quotation: null,\n };\n });\n baseSize = baseAmount;\n quoteSize = params.size.quote;\n quotation = _quotation;\n }\n return { baseSize, quoteSize, quotation };\n }\n async simulateCrossMarketOrder(params, overrides) {\n const { instrument, amm } = await this.mustGetInstrumentAndAmm(params.tradeInfo, params.instrument, overrides ?? {});\n const { baseSize, quoteSize } = await this.inquireByBaseOrQuote(params, amm.markPrice, overrides ?? {});\n const sign = (0, utils_1.signOfSide)(params.side);\n const long = sign > 0;\n const { targetTick, targetPrice } = this.getPriceInfo(params.priceInfo);\n const currentTick = amm.tick;\n if ((long && targetTick <= currentTick) || (!long && targetTick >= currentTick)) {\n throw new simulationError_1.SimulationError('Please place normal order');\n }\n let swapToTick = long ? targetTick + 1 : targetTick - 1;\n let { size: swapSize, quotation } = await this.context.perp.contracts.observer.inquireByTick(instrument.instrumentAddr, amm.expiry, swapToTick, overrides ?? {});\n if ((long && quotation.postTick <= targetTick) || (!long && quotation.postTick >= targetTick)) {\n swapToTick = long ? swapToTick + 1 : swapToTick - 1;\n const retry = await this.context.perp.contracts.observer.inquireByTick(instrument.instrumentAddr, amm.expiry, swapToTick, overrides ?? {});\n swapSize = retry.size;\n quotation = retry.quotation;\n }\n if ((long && swapSize.lt(0)) || (!long && swapSize.gt(0))) {\n throw new simulationError_1.SimulationError('Wrong Side');\n }\n const tradeSimulation = await this._simulateMarketOrderByLeverage({\n tradeInfo: params.tradeInfo,\n side: params.side,\n size: { base: swapSize.abs() },\n slippage: params.slippage,\n strictMode: params.strictMode,\n instrument: instrument,\n leverage: params.leverage,\n }, overrides ?? {});\n const position = await this.getPosition(params.tradeInfo, overrides ?? {});\n if (position.size.isZero() && quotation.entryNotional.lt(instrument.minTradeValue)) {\n throw new simulationError_1.SimulationError('Size to tick is trivial');\n }\n const orderBaseSize = baseSize.sub(swapSize.abs());\n const orderQuoteSize = quoteSize.sub(tradeSimulation.size.quote);\n const orderSimulation = {\n ...this._simulateOrder(instrument, amm, targetPrice, orderBaseSize, params.leverage),\n tick: targetTick,\n size: { base: orderBaseSize, quote: orderQuoteSize },\n };\n const minOrderValue = instrument.minOrderValue;\n const targetTickPrice = math_1.TickMath.getWadAtTick(targetTick);\n const minOrderSize = (0, math_1.wdivUp)(minOrderValue, targetTickPrice);\n if (swapSize.abs().add(minOrderSize).gt(baseSize)) {\n return {\n canPlaceOrder: false,\n minOrderSize,\n tradeSimulation,\n orderSimulation,\n };\n }\n else {\n return {\n canPlaceOrder: true,\n minOrderSize,\n tradeSimulation,\n orderSimulation,\n };\n }\n }\n async simulateLimitOrder(params, overrides) {\n const { instrument, amm } = await this.mustGetInstrumentAndAmm(params.tradeInfo, params.instrument, overrides ?? {});\n const { targetTick, targetPrice } = this.getPriceInfo(params.priceInfo);\n const currentTick = amm.tick;\n if (currentTick === targetTick) {\n throw new simulationError_1.SimulationError('Invalid price');\n }\n const isLong = targetTick < currentTick;\n if ((params.side === enum_1.Side.LONG && !isLong) || (params.side === enum_1.Side.SHORT && isLong)) {\n throw new simulationError_1.SimulationError('Invalid price');\n }\n const maxLeverage = (0, math_1.getMaxLeverage)(instrument.setting.initialMarginRatio);\n if (params.leverage.gt(ethers_1.ethers.utils.parseEther(maxLeverage + ''))) {\n throw new simulationError_1.SimulationError('Insufficient margin to open position');\n }\n if (!(0, lowLevel_1.withinOrderLimit)(targetPrice, amm.markPrice, instrument.setting.initialMarginRatio)) {\n throw new simulationError_1.SimulationError('Limit order price is too far away from mark price');\n }\n if (!(0, lowLevel_1.withinDeviationLimit)(amm.fairPrice, amm.markPrice, instrument.setting.initialMarginRatio)) {\n throw new simulationError_1.SimulationError('Fair price is too far away from mark price');\n }\n const { baseSize, quoteSize } = await this.inquireByBaseOrQuote(params, amm.markPrice, overrides ?? {});\n const res = this._simulateOrder(instrument, amm, targetPrice, baseSize, params.leverage);\n return {\n ...res,\n tick: targetTick,\n size: {\n base: baseSize,\n quote: quoteSize,\n },\n };\n }\n async simulateBatchPlace(params, overrides) {\n const { instrument, amm } = await this.mustGetInstrumentAndAmm(params.tradeInfo, params.instrument, overrides ?? {});\n if (params.targetTicks.length < constants_1.MIN_BATCH_ORDER_COUNT || params.targetTicks.length > constants_1.MAX_BATCH_ORDER_COUNT) {\n throw new simulationError_1.SimulationError(`Order count should be between ${constants_1.MIN_BATCH_ORDER_COUNT} and ${constants_1.MAX_BATCH_ORDER_COUNT}`);\n }\n if (params.targetTicks.length !== params.ratios.length) {\n throw new simulationError_1.SimulationError('Ticks and ratios length not equal');\n }\n if (params.ratios.reduce((acc, ratio) => acc + ratio, 0) !== constants_1.RATIO_BASE) {\n throw new simulationError_1.SimulationError('Ratios sum not equal to RATIO_BASE: 10000');\n }\n if (new Set(params.targetTicks).size !== params.targetTicks.length) {\n throw new simulationError_1.SimulationError('Duplicated ticks');\n }\n if (params.targetTicks.find((tick) => tick % constants_1.PEARL_SPACING !== 0)) {\n throw new simulationError_1.SimulationError('Unaligned ticks');\n }\n const orders = [];\n for (let index = 0; index < params.targetTicks.length; index++) {\n const { targetTick, targetPrice } = this.getPriceInfo(params.targetTicks[index]);\n try {\n const baseSize = (0, math_1.wmul)(params.baseSize, (0, math_1.r2w)(params.ratios[index]));\n const { quoteAmount: quoteSize } = await this.observer.inquireByBase(params.tradeInfo.instrumentAddr, params.tradeInfo.expiry, params.side, baseSize, overrides ?? {});\n const res = this._simulateOrder(instrument, amm, targetPrice, baseSize, params.leverage);\n orders.push({\n ...res,\n tick: targetTick,\n size: {\n base: baseSize,\n quote: quoteSize,\n },\n });\n }\n catch {\n orders.push(null);\n }\n }\n return orders;\n }\n async simulateScaledLimitOrder(params, overrides) {\n if (params.priceInfo.length < constants_1.MIN_BATCH_ORDER_COUNT || params.priceInfo.length > constants_1.MAX_BATCH_ORDER_COUNT) {\n throw new simulationError_1.SimulationError(`Order count should be between ${constants_1.MIN_BATCH_ORDER_COUNT} and ${constants_1.MAX_BATCH_ORDER_COUNT}`);\n }\n const { instrument, amm } = await this.mustGetInstrumentAndAmm(params.tradeInfo, params.instrument, overrides ?? {});\n const { baseSize, quoteSize } = await this.inquireByBaseOrQuote(params, amm.markPrice, overrides ?? {});\n const targetTicks = params.priceInfo.map((p) => (typeof p === 'number' ? p : math_1.TickMath.getTickAtPWad(p)));\n let ratios = (0, lowLevel_1.getBatchOrderRatios)(params.sizeDistribution, params.priceInfo.length);\n const minOrderValue = instrument.minOrderValue;\n const minSizes = targetTicks.map((tick) => (0, math_1.wdivUp)(minOrderValue, math_1.TickMath.getWadAtTick(tick)));\n if (params.sizeDistribution === enum_1.BatchOrderSizeDistribution.RANDOM) {\n let needNewRatios = false;\n for (let i = 0; i < minSizes.length; i++) {\n if (baseSize.mul(ratios[i]).div(constants_1.RATIO_BASE).lt(minSizes[i])) {\n needNewRatios = true;\n break;\n }\n }\n if (needNewRatios && minSizes.reduce((acc, minSize) => acc.add(minSize), math_1.ZERO).lt(baseSize)) {\n ratios = (0, lowLevel_1.getBatchOrderRatios)(enum_1.BatchOrderSizeDistribution.FLAT, params.priceInfo.length);\n }\n }\n const sizes = ratios.map((ratio) => baseSize.mul(ratio).div(constants_1.RATIO_BASE));\n const bnMax = (a, b) => (a.gt(b) ? a : b);\n const minSizeToSizeRatio = minSizes\n .map((minSize, i) => bnMax((0, math_1.wdivUp)(minSize, sizes[i]), math_1.ZERO))\n .reduce((acc, ratio) => bnMax(acc, ratio), math_1.ZERO);\n const totalMinSize = (0, math_1.wmulUp)(baseSize, minSizeToSizeRatio);\n const res = await this.simulateBatchPlace({\n tradeInfo: params.tradeInfo,\n targetTicks,\n ratios,\n baseSize,\n side: params.side,\n leverage: params.leverage,\n instrument,\n }, overrides ?? {});\n return {\n orders: targetTicks.map((tick, index) => {\n return (res[index] && {\n ...res[index],\n ratio: ratios[index],\n minOrderSize: minSizes[index],\n });\n }),\n totalMinSize,\n size: {\n base: baseSize,\n quote: quoteSize,\n },\n };\n }\n _simulateOrder(instrument, amm, targetPrice, baseSize, leverage) {\n const markPrice = amm.markPrice;\n const tradeValue = (0, math_1.wmulUp)(targetPrice, baseSize);\n const bnMax = (a, b) => (a.gt(b) ? a : b);\n let margin = (0, math_1.wdivUp)((0, math_1.wmulUp)(bnMax(targetPrice, markPrice), baseSize), leverage);\n const minMargin = (0, math_1.wmulUp)((0, math_1.r2w)(instrument.setting.initialMarginRatio), (0, math_1.wmulUp)((0, math_1.max)(markPrice\n .mul(constants_1.ONE_RATIO + 50)\n .div(constants_1.ONE_RATIO), targetPrice), baseSize));\n if (margin.lt(minMargin)) {\n margin = minMargin;\n }\n return {\n limitPrice: targetPrice,\n tradeValue,\n margin,\n leverage,\n minFeeRebate: (0, math_1.wmul)((0, math_1.wmul)(targetPrice, baseSize), (0, math_1.r2w)(instrument.setting.quoteParam.tradingFeeRatio)),\n };\n }\n async simulateTrade(params, simulate, overrides) {\n let { instrument, amm } = await this.mustGetInstrumentAndAmm(params.tradeInfo, params.instrument, overrides ?? {});\n const prePosition = await this.getPosition(params.tradeInfo, overrides ?? {});\n const { baseSize, quoteSize, quotation } = await this.inquireByBaseOrQuote(params, amm.markPrice, overrides ?? {}, true);\n if (baseSize.lte(0)) {\n throw new simulationError_1.SimulationError('Invalid trade size');\n }\n const sign = (0, utils_1.signOfSide)(params.side);\n const tradePrice = (0, math_1.wdiv)(quotation.entryNotional, baseSize.abs());\n const limitTick = math_1.TickMath.getLimitTick(tradePrice, params.slippage, params.side);\n const markPrice = amm.markPrice;\n if (amm.expiry === constants_1.PERP_EXPIRY) {\n let timestamp;\n if (!overrides || !overrides.blockTag) {\n timestamp = Math.floor(Date.now() / 1000);\n }\n else {\n const block = await this.context.provider.getBlock(overrides.blockTag);\n timestamp = block.timestamp;\n }\n const { longFundingIndex, shortFundingIndex } = (0, lowLevel_1.updateFundingIndex)(amm, amm.markPrice, timestamp);\n amm = {\n ...amm,\n longFundingIndex,\n shortFundingIndex,\n };\n }\n let exceedMaxLeverage = false;\n const limitPrice = math_1.TickMath.getWadAtTick(limitTick);\n const worstNotional = (0, math_1.wmul)(limitPrice, baseSize);\n const tradeLoss = sign > 0 ? worstNotional.sub((0, math_1.wmul)(markPrice, baseSize)) : (0, math_1.wmul)(markPrice, baseSize).sub(worstNotional);\n const preEquity = (0, utils_1.positionEquity)(prePosition, amm);\n const rawSize = baseSize.mul(sign);\n let { margin, leverage } = simulate(markPrice, baseSize, sign, prePosition, preEquity, tradeLoss, quotation);\n const { position: rawPosition, realized: realized } = (0, lowLevel_1.combine)(amm, prePosition, {\n balance: margin.lt(0) ? quotation.fee.mul(-1) : margin.sub(quotation.fee),\n size: rawSize,\n entryNotional: quotation.entryNotional,\n entrySocialLossIndex: sign > 0 ? amm.longSocialLossIndex : amm.shortSocialLossIndex,\n entryFundingIndex: sign > 0 ? amm.longFundingIndex : amm.shortFundingIndex,\n });\n const postPosition = utils_1.factory.createPosition({\n ...prePosition,\n ...rawPosition,\n });\n if (!postPosition.size.eq(math_1.ZERO) && margin.lt(math_1.ZERO)) {\n const maxWithdrawableMargin = (0, utils_1.positionMaxWithdrawableMargin)(postPosition, amm, instrument.setting.initialMarginRatio);\n if (margin.abs().gt(maxWithdrawableMargin)) {\n if (params.strictMode) {\n throw new simulationError_1.SimulationError('Exceed max leverage');\n }\n margin = maxWithdrawableMargin.mul(-1);\n exceedMaxLeverage = true;\n }\n postPosition.balance = postPosition.balance.add(margin);\n }\n if (postPosition.size.eq(math_1.ZERO) ||\n (prePosition.size.mul(sign).lt(math_1.ZERO) && baseSize.abs().lt(prePosition.size.abs()))) {\n if (!(0, utils_1.isPositionMMSafe)(postPosition, amm, instrument.setting.maintenanceMarginRatio)) {\n throw new simulationError_1.SimulationError('Insufficient margin to open position');\n }\n }\n else {\n if (!(0, utils_1.isPositionIMSafe)(postPosition, amm, instrument.setting.initialMarginRatio, true)) {\n if (params.strictMode) {\n throw new simulationError_1.SimulationError('Exceed max leverage');\n }\n const additionalMargin = (0, utils_1.positionAdditionMarginToIMRSafe)(postPosition, amm, instrument.setting.initialMarginRatio, true, params.slippage);\n postPosition.balance = postPosition.balance.add(additionalMargin);\n margin = margin.add(additionalMargin);\n leverage = (0, utils_1.positionLeverage)(postPosition, amm);\n exceedMaxLeverage = true;\n }\n }\n const priceImpact = (0, math_1.wdiv)((0, math_1.sqrtX96ToWad)(quotation.sqrtPostFairPX96).sub((0, math_1.sqrtX96ToWad)(quotation.sqrtFairPX96)), (0, math_1.sqrtX96ToWad)(quotation.sqrtFairPX96));\n const stabilityFee = math_1.SqrtPriceMath.getStabilityFee(quotation, instrument.setting.quoteParam);\n return {\n tradePrice: tradePrice,\n tradeValue: quotation.entryNotional,\n tradingFee: quotation.fee.sub(stabilityFee),\n stabilityFee,\n margin,\n marginChanged: postPosition.size.eq(math_1.ZERO) && postPosition.balance.gt(math_1.ZERO) ? postPosition.balance.mul(-1) : margin,\n leverage: postPosition.size.eq(math_1.ZERO) ? math_1.ZERO : leverage,\n priceImpact,\n postPosition,\n realized,\n limitTick,\n exceedMaxLeverage,\n size: {\n base: baseSize,\n quote: quoteSize,\n },\n };\n }\n simulateMarketOrderByMargin(params, overrides) {\n return this.simulateTrade(params, (markPrice, baseSize, sign, prePosition, preEquity, tradeLoss, quotation) => {\n const postEquity = preEquity.add(params.margin).sub(tradeLoss).sub(quotation.fee);\n const leverage = (0, math_1.wdiv)((0, math_1.wmul)(markPrice, baseSize.mul(sign).add(prePosition.size)).abs(), postEquity);\n return { leverage, margin: params.margin };\n }, overrides ?? {});\n }\n _simulateMarketOrderByLeverage(params, overrides) {\n return this.simulateTrade(params, (markPrice, baseSize, sign, prePosition, preEquity, tradeLoss, quotation) => {\n const postEquity = (0, math_1.wdiv)((0, math_1.wmul)(markPrice, baseSize.mul(sign).add(prePosition.size)).abs(), params.leverage);\n const margin = postEquity.sub(preEquity).add(tradeLoss).add(quotation.fee);\n return { leverage: params.leverage, margin };\n }, overrides ?? {});\n }\n simulateMarketOrderByLeverage(params, overrides) {\n return this._simulateMarketOrderByLeverage(params, overrides);\n }\n async simulateClose(params, overrides) {\n const prePosition = await this.getPosition(params.tradeInfo, overrides ?? {});\n return await this.simulateTrade({\n ...params,\n tradeInfo: prePosition,\n side: (0, utils_1.reverseSide)(prePosition.side),\n }, (markPrice, baseSize, sign, prePosition, preEquity, tradeLoss, quotation) => {\n const margin = math_1.ZERO;\n const postEquity = preEquity.add(math_1.ZERO).sub(tradeLoss).sub(quotation.fee);\n const leverage = (0, math_1.wdiv)((0, math_1.wmul)(markPrice, baseSize.mul(sign).add(prePosition.size)).abs(), postEquity);\n return { leverage, margin };\n }, overrides ?? {});\n }\n async simulateAdjustMargin(params, simulate, overrides) {\n const { instrument, amm } = await this.mustGetInstrumentAndAmm(params.tradeInfo, params.instrument, overrides ?? {});\n let postPosition = await this.getPosition(params.tradeInfo, overrides ?? {});\n const maxWithdrawableMargin = (0, utils_1.positionMaxWithdrawableMargin)(postPosition, amm, instrument.setting.initialMarginRatio);\n const { margin, leverage } = simulate(postPosition, amm);\n if (margin.lt(math_1.ZERO) && margin.abs().gt(maxWithdrawableMargin)) {\n throw new simulationError_1.SimulationError('Invalid input');\n }\n postPosition = {\n ...postPosition,\n balance: postPosition.balance.add(margin),\n };\n return {\n postPosition,\n transferIn: margin.gt(0),\n margin: margin.abs(),\n leverage,\n };\n }\n async simulateAdjustMarginByMargin(params, overrides) {\n if (params.margin.lt(0)) {\n throw new simulationError_1.SimulationError('Invalid margin');\n }\n const result = await this.simulateAdjustMargin(params, (position, amm) => {\n const margin = params.margin.mul(params.transferIn ? 1 : -1);\n const value = (0, math_1.wmul)(amm.markPrice, position.size.abs());\n const equity = (0, utils_1.positionEquity)(position, amm).add(margin);\n const leverage = (0, math_1.wdiv)(value, equity);\n return { leverage, margin };\n }, overrides ?? {});\n return {\n leverage: result.leverage,\n postPosition: result.postPosition,\n };\n }\n async simulateAdjustMarginByLeverage(params, overrides) {\n const result = await this.simulateAdjustMargin(params, (position, amm) => {\n const margin = (0, utils_1.inquireTransferAmountFromTargetLeverage)(position, amm, params.leverage);\n return { leverage: params.leverage, margin };\n }, overrides ?? {});\n return {\n transferIn: result.transferIn,\n margin: result.margin,\n postPosition: result.postPosition,\n };\n }\n async simulateBenchmarkPrice(instrumentIdentifier, expiry, overrides) {\n let benchmarkPrice;\n if ((0, utils_1.isCexMarket)(instrumentIdentifier.marketType)) {\n benchmarkPrice = await this.observer.inspectCexMarketBenchmarkPrice(instrumentIdentifier, expiry, overrides ?? {});\n }\n else {\n benchmarkPrice = await this.observer.inspectDexV2MarketBenchmarkPrice(instrumentIdentifier, expiry, overrides ?? {});\n }\n return benchmarkPrice;\n }\n async simulateAddLiquidity(params, overrides) {\n const res = await this._simulateAddLiquidityWithAsymmetricRange({\n expiry: params.expiry,\n instrument: params.instrument,\n alphaWadLower: params.alphaWad,\n alphaWadUpper: params.alphaWad,\n margin: params.margin,\n slippage: params.slippage,\n currentSqrtPX96: params.currentSqrtPX96,\n }, overrides ?? {});\n return {\n ...res,\n tickDelta: res.tickDeltaUpper,\n equivalentAlpha: (0, utils_1.tickDeltaToAlphaWad)(~~((math_1.TickMath.getTickAtPWad(res.upperPrice) - math_1.TickMath.getTickAtPWad(res.lowerPrice)) / 2)),\n };\n }\n _getMinLiquidity(instrumentAmmSqrtPX96, instrumentMinRangeValue, px96) {\n const sqrtPX96 = px96 ? px96 : instrumentAmmSqrtPX96;\n return instrumentMinRangeValue.mul(math_1.Q96).div(sqrtPX96.mul(2));\n }\n async _simulateAddLiquidityWithAsymmetricRange(params, overrides) {\n const instrumentAddress = ((0, utils_1.isInstrument)(params.instrument)\n ? params.instrument.instrumentAddr\n : await this.context.perp.instrument.computeInstrumentAddress(params.instrument)).toLowerCase();\n const instrumentIdentifier = (0, utils_1.isInstrument)(params.instrument)\n ? {\n marketType: params.instrument.marketType,\n baseSymbol: params.instrument.base,\n quoteSymbol: params.instrument.quote,\n }\n : params.instrument;\n const instruments = (await this.context.perp.contracts.gate.getAllInstruments(overrides ?? {})).map((addr) => addr.toLowerCase());\n const info = instruments.includes(instrumentAddress)\n ? (0, utils_1.isInstrument)(params.instrument)\n ? {\n instrument: params.instrument,\n amm: params.instrument.amms.get(params.expiry),\n }\n : await this.getInstrumentAndAmm({ expiry: params.expiry, instrumentAddr: instrumentAddress }, undefined, overrides ?? {})\n : undefined;\n let quoteInfo;\n let setting;\n let amm;\n const instrument = info?.instrument;\n if (!instrument || !info?.amm) {\n const benchmarkPrice = await this.simulateBenchmarkPrice(instrumentIdentifier, params.expiry, overrides ?? {});\n const { quoteTokenInfo } = await (0, utils_1.getTokenInfo)(instrumentIdentifier, this.context);\n quoteInfo = quoteTokenInfo;\n if (instrument) {\n setting = instrument.setting;\n }\n else {\n const quoteParam = await this.context.perp.contracts.config.getQuoteParam(quoteInfo.address, overrides ?? {});\n setting = {\n initialMarginRatio: constants_1.INITIAL_MARGIN_RATIO,\n maintenanceMarginRatio: constants_1.MAINTENANCE_MARGIN_RATIO,\n quoteParam: { ...quoteParam },\n };\n }\n amm = utils_1.factory.createAmm({\n instrumentAddr: instrumentAddress,\n expiry: 0,\n timestamp: 0,\n status: enum_1.Status.TRADING,\n tick: math_1.TickMath.getTickAtPWad(benchmarkPrice),\n sqrtPX96: (0, math_1.wadToSqrtX96)(benchmarkPrice),\n liquidity: math_1.ZERO,\n totalLiquidity: math_1.ZERO,\n involvedFund: math_1.ZERO,\n openInterests: math_1.ZERO,\n feeIndex: math_1.ZERO,\n protocolFee: math_1.ZERO,\n totalLong: math_1.ZERO,\n totalShort: math_1.ZERO,\n longSocialLossIndex: math_1.ZERO,\n shortSocialLossIndex: math_1.ZERO,\n longFundingIndex: math_1.ZERO,\n shortFundingIndex: math_1.ZERO,\n insuranceFund: math_1.ZERO,\n settlementPrice: math_1.ZERO,\n markPrice: math_1.ZERO,\n });\n }\n else {\n amm = info.amm;\n quoteInfo = instrument.quote;\n setting = instrument.setting;\n }\n const minTradeValue = setting.quoteParam.minMarginAmount.mul(constants_1.RATIO_BASE).div(setting.initialMarginRatio);\n const instrumentMinRangeValue = minTradeValue.mul(constants_1.MIN_RANGE_MULTIPLIER);\n const tickDeltaLower = (0, utils_1.alphaWadToTickDelta)(params.alphaWadLower);\n const tickDeltaUpper = (0, utils_1.alphaWadToTickDelta)(params.alphaWadUpper);\n const upperTick = (0, lowLevel_1.alignRangeTick)(amm.tick + tickDeltaUpper, false);\n const lowerTick = (0, lowLevel_1.alignRangeTick)(amm.tick - tickDeltaLower, true);\n const upperPrice = math_1.TickMath.getWadAtTick(upperTick);\n const lowerPrice = math_1.TickMath.getWadAtTick(lowerTick);\n const { liquidity: liquidity } = (0, lowLevel_1.entryDelta)(amm.sqrtPX96, lowerTick, upperTick, params.margin, setting.initialMarginRatio);\n const { tickLower, tickUpper } = (0, utils_1.parseTicks)((0, utils_1.rangeKey)(lowerTick, upperTick));\n const simulationRange = {\n liquidity,\n balance: params.margin,\n sqrtEntryPX96: amm.sqrtPX96,\n entryFeeIndex: amm.feeIndex,\n tickLower,\n tickUpper,\n };\n const rawLowerPosition = (0, utils_1.rangeLowerPositionIfRemove)(simulationRange, amm);\n const rawUpperPosition = (0, utils_1.rangeUpperPositionIfRemove)(simulationRange, amm);\n const minMargin = (0, lowLevel_1.getMarginFromLiquidity)(amm.sqrtPX96, upperTick, this._getMinLiquidity(amm.sqrtPX96, instrumentMinRangeValue, amm.sqrtPX96), setting.initialMarginRatio);\n const basedPX96 = params.currentSqrtPX96 ? params.currentSqrtPX96 : amm.sqrtPX96;\n const sqrtStrikeLowerPX96 = basedPX96.sub((0, math_1.wmulDown)(basedPX96, (0, math_1.r2w)(params.slippage)));\n const sqrtStrikeUpperPX96 = basedPX96.add((0, math_1.wmulDown)(basedPX96, (0, math_1.r2w)(params.slippage)));\n return {\n tickDeltaLower,\n tickDeltaUpper,\n liquidity,\n upperPrice: math_1.TickMath.getWadAtTick(simulationRange.tickUpper),\n lowerPrice: math_1.TickMath.getWadAtTick(simulationRange.tickLower),\n lowerPosition: utils_1.factory.createPosition({\n instrumentAddr: instrumentAddress,\n expiry: params.expiry,\n traderAddr: math_1.ADDRESS_ZERO,\n ...rawLowerPosition,\n }),\n lowerLeverage: rawLowerPosition.size.mul(lowerPrice).div(rawLowerPosition.balance).abs(),\n upperPosition: utils_1.factory.createPosition({\n instrumentAddr: instrumentAddress,\n expiry: params.expiry,\n traderAddr: math_1.ADDRESS_ZERO,\n ...rawUpperPosition,\n }),\n upperLeverage: rawUpperPosition.size.mul(upperPrice).div(rawUpperPosition.balance).abs(),\n limitTicks: math_1.TickMath.encodeLimitTicks(sqrtStrikeLowerPX96, sqrtStrikeUpperPX96),\n minMargin,\n minEffectiveQuoteAmount: instrumentMinRangeValue,\n equivalentAlphaLower: (0, utils_1.tickDeltaToAlphaWad)(~~(upperTick - amm.tick)),\n equivalentAlphaUpper: (0, utils_1.tickDeltaToAlphaWad)(~~(amm.tick - lowerTick)),\n capitalEfficiencyBoost: params.alphaWadLower === params.alphaWadUpper\n ? (0, math_1.calcBoost)(Number.parseFloat(ethers_1.ethers.utils.formatUnits(params.alphaWadLower)), setting.initialMarginRatio)\n : (0, math_1.calcAsymmetricBoost)(Number.parseFloat(ethers_1.ethers.utils.formatUnits(params.alphaWadLower)), Number.parseFloat(ethers_1.ethers.utils.formatUnits(params.alphaWadUpper)), setting.initialMarginRatio),\n };\n }\n async simulateAddLiquidityWithAsymmetricRange(params, overrides) {\n return await this._simulateAddLiquidityWithAsymmetricRange(params, overrides ?? {});\n }\n async simulateRemoveLiquidity(params, overrides) {\n const portfolio = await this.getPortfolio(params.tradeInfo, overrides ?? {});\n const position = portfolio.position;\n const range = portfolio.ranges.get((0, utils_1.rangeKey)(params.tickLower, params.tickUpper));\n if (!range) {\n throw new simulationError_1.SimulationError('Missing range');\n }\n const { amm } = await this.mustGetInstrumentAndAmm(params.tradeInfo, params.instrument, overrides ?? {});\n const rawPositionRemoved = (0, utils_1.rangeToPosition)(range, amm);\n const rawMainPosition = (0, lowLevel_1.combine)(amm, rawPositionRemoved, position).position;\n const postPosition = utils_1.factory.createPosition({\n ...rawMainPosition,\n instrumentAddr: position.instrumentAddr,\n expiry: position.expiry,\n traderAddr: position.traderAddr,\n });\n const removedPosition = utils_1.factory.createPosition({\n ...rawPositionRemoved,\n instrumentAddr: position.instrumentAddr,\n expiry: position.expiry,\n traderAddr: position.traderAddr,\n });\n const sqrtStrikeLowerPX96 = amm.sqrtPX96.sub((0, math_1.wmulDown)(amm.sqrtPX96, (0, math_1.r2w)(params.slippage)));\n const sqrtStrikeUpperPX96 = amm.sqrtPX96.add((0, math_1.wmulDown)(amm.sqrtPX96, (0, math_1.r2w)(params.slippage)));\n return {\n removedPosition,\n postPosition,\n limitTicks: math_1.TickMath.encodeLimitTicks(sqrtStrikeLowerPX96, sqrtStrikeUpperPX96),\n removedPositionEntryPrice: (0, math_1.sqrt)((0, math_1.sqrtX96ToWad)(amm.sqrtPX96).mul((0, math_1.sqrtX96ToWad)(range.sqrtEntryPX96))),\n };\n }\n}\nexports.SimulateModule = SimulateModule;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CexMarketParser = void 0;\nconst context_1 = require(\"@derivation-tech/context\");\nconst typechain_1 = require(\"../typechain\");\nconst enum_1 = require(\"../enum\");\nconst utils_1 = require(\"../utils\");\nconst farmat_1 = require(\"./farmat\");\nconst ethers_1 = require(\"ethers\");\nclass CexMarketParser extends context_1.ContractParser {\n constructor() {\n super(typechain_1.CexMarket__factory.createInterface());\n }\n async parseBaseParam(_description, param, data) {\n switch (param.name) {\n case 'time':\n case 'initTime':\n return (0, farmat_1.formatTimestamp)(data);\n case 'spot':\n case 'raw':\n case 'initMark':\n case 'accumulation':\n return (0, context_1.formatWad)(data);\n case 'expiry':\n return (0, utils_1.formatExpiry)(data);\n case 'ftype':\n return enum_1.FeederType[Number(data)];\n case 'compactEmaParam': {\n return (0, farmat_1.formatCompactEmaParam)(ethers_1.BigNumber.from(data));\n }\n default:\n return data.toString();\n }\n }\n}\nexports.CexMarketParser = CexMarketParser;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ConfigParser = void 0;\nconst ethers_1 = require(\"ethers\");\nconst context_1 = require(\"@derivation-tech/context\");\nconst typechain_1 = require(\"../typechain\");\nconst utils_1 = require(\"../utils\");\nconst farmat_1 = require(\"./farmat\");\nconst enum_1 = require(\"../enum\");\nclass ConfigParser extends context_1.ContractParser {\n constructor() {\n super(typechain_1.Config__factory.createInterface());\n }\n async parseBaseParam(_description, param, data) {\n switch (param.name) {\n case 'tradingFeeRatio':\n case 'protocolFeeRatio':\n return (0, farmat_1.formatRatio)(data);\n case 'stabilityFeeRatioParam':\n return (0, farmat_1.extractFeeRatioParams)(ethers_1.BigNumber.from(data))\n .map((p) => (0, context_1.formatWad)(p))\n .toString();\n case 'tip':\n case 'minMarginAmount':\n return (0, context_1.formatWad)(data);\n case 'expiry':\n return (0, utils_1.formatExpiry)(data);\n case 'qtype':\n return enum_1.QuoteType[Number(data)];\n default:\n return data.toString();\n }\n }\n}\nexports.ConfigParser = ConfigParser;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DexV2MarketParser = void 0;\nconst ethers_1 = require(\"ethers\");\nconst context_1 = require(\"@derivation-tech/context\");\nconst typechain_1 = require(\"../typechain\");\nconst utils_1 = require(\"../utils\");\nconst enum_1 = require(\"../enum\");\nconst farmat_1 = require(\"./farmat\");\nclass DexV2MarketParser extends context_1.ContractParser {\n constructor() {\n super(typechain_1.DexV2Market__factory.createInterface());\n }\n async parseBaseParam(_description, param, data) {\n switch (param.name) {\n case 'initTime':\n case 'time':\n return (0, farmat_1.formatTimestamp)(data);\n case 'raw':\n case 'spot':\n case 'initMark':\n case 'initAccumulation':\n return (0, context_1.formatWad)(data);\n case 'expiry':\n return (0, utils_1.formatExpiry)(data);\n case 'ftype':\n return enum_1.FeederType[Number(data)];\n case 'compactEmaParam': {\n return (0, farmat_1.formatCompactEmaParam)(ethers_1.BigNumber.from(data));\n }\n default:\n return data.toString();\n }\n }\n}\nexports.DexV2MarketParser = DexV2MarketParser;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.formatRatio = formatRatio;\nexports.formatCompactEmaParam = formatCompactEmaParam;\nexports.formatEmaParam = formatEmaParam;\nexports.decodeEmaParam = decodeEmaParam;\nexports.formatTimestamp = formatTimestamp;\nexports.extractFeeRatioParams = extractFeeRatioParams;\nexports.formatSqrtPX96 = formatSqrtPX96;\nexports.formatTick = formatTick;\nconst ethers_1 = require(\"ethers\");\nconst context_1 = require(\"@derivation-tech/context\");\nconst math_1 = require(\"../math\");\nconst constants_1 = require(\"../constants\");\nfunction formatRatio(value) {\n return ethers_1.ethers.utils.formatUnits(ethers_1.BigNumber.from(value), 2) + '%';\n}\nfunction formatCompactEmaParam(data) {\n return formatEmaParam(decodeEmaParam(ethers_1.BigNumber.from(data)));\n}\nfunction formatEmaParam(ema) {\n return Object.entries(ema)\n .map(([k, v]) => {\n if (k === 'maxChangeRatioPerSecond') {\n return ` ${k}: ${formatRatio(ethers_1.BigNumber.from(v))}`;\n }\n else {\n return ` ${k}: ${v.toString()}`;\n }\n })\n .toString();\n}\nfunction decodeEmaParam(encoded) {\n return {\n emaHalfTime: encoded.shr(48).and(0xffff),\n maxTimeDelta: encoded.shr(32).and(0xffff),\n maxRawTimeDelta: encoded.shr(16).and(0xffff),\n maxChangeRatioPerSecond: encoded.and(0xffff),\n };\n}\nfunction formatTimestamp(value) {\n return new Date(ethers_1.BigNumber.from(value).mul(1000).toNumber()).toISOString();\n}\nfunction extractFeeRatioParams(stabilityFeeRatioParam) {\n const ret = [];\n ret.push((0, math_1.s2w)(stabilityFeeRatioParam.and(math_1.MAX_UINT_24)));\n ret.push((0, math_1.s2w)(stabilityFeeRatioParam.shr(24).and(math_1.MAX_UINT_16)));\n ret.push((0, math_1.s2w)(stabilityFeeRatioParam.shr(40).and(math_1.MAX_UINT_16)));\n ret.push((0, math_1.s2w)(stabilityFeeRatioParam.shr(56)));\n return ret;\n}\nfunction formatSqrtPX96(sqrtPX96, fixedDecimals = 6) {\n return (0, context_1.formatWad)((0, math_1.sqrtX96ToWad)(sqrtPX96), fixedDecimals);\n}\nfunction formatTick(tick) {\n if (tick < constants_1.MIN_TICK) {\n return 'MIN_TICK';\n }\n else if (tick > constants_1.MAX_TICK) {\n return 'MAX_TICK';\n }\n else {\n return `${tick}(${formatSqrtPX96(math_1.TickMath.getSqrtRatioAtTick(tick))})`;\n }\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GateParser = void 0;\nconst context_1 = require(\"@derivation-tech/context\");\nconst typechain_1 = require(\"../typechain\");\nconst ethers_1 = require(\"ethers\");\nconst utils_1 = require(\"ethers/lib/utils\");\nconst utils_2 = require(\"../utils\");\nconst enum_1 = require(\"../enum\");\nconst constants_1 = require(\"../constants\");\nconst farmat_1 = require(\"./farmat\");\nclass GateParser extends context_1.ContractParser {\n constructor(ctx) {\n super(typechain_1.Gate__factory.createInterface());\n this.ctx = ctx;\n }\n async formatEncodedFundctionArgs(obj) {\n let str = '{ ';\n for (const [k, v] of Object.entries(obj)) {\n if (ethers_1.ethers.utils.isAddress(v)) {\n str += `${k}: ${await this.parseAddress(v)}, `;\n continue;\n }\n if (k === 'limitTicks') {\n str += `minTickLower: ${(0, farmat_1.formatTick)(v.toNumber() >> 24)}, maxTickUpper: ${(0, farmat_1.formatTick)(v.toNumber() & ((1 << 24) - 1))}, `;\n }\n else {\n str += `${k}: ${this.parseDefaultBaseParam(utils_1.ParamType.from({ type: 'string', name: k }), v)}, `;\n }\n }\n str = str.substring(0, str.length - 2) + ' }';\n return str;\n }\n async parseBaseArrayParam(description, param, value) {\n if (description.name === 'launch' && param.name === 'addArgs') {\n return this.formatEncodedFundctionArgs((0, utils_2.decodeAddParam)(value));\n }\n return await super.parseBaseArrayParam(description, param, value);\n }\n async parseBaseParam(description, param, data) {\n switch (param.name) {\n case 'arg':\n if (description.name === 'deposit' || description.name === 'withdraw') {\n const args = (0, utils_2.decodeParamForDepositAndWithdraw)(data);\n const usingNative = args.token.toLowerCase() === constants_1.NATIVE_TOKEN_ADDRESS.toLowerCase();\n const quoteInfo = usingNative\n ? this.ctx.wrappedNativeToken\n : await this.ctx.getTokenInfo(args.token);\n return `{quantity:${(0, context_1.formatUnits)(args.quantity, quoteInfo.decimals)}, token:${await this.parseAddress(args.token)}}`;\n }\n return this.parseDefaultBaseParam(param, data);\n case 'threshold':\n case 'exemption':\n case 'amount':\n case 'quantity': {\n const quote = description.args['quote'];\n if (quote) {\n const usingNative = quote.toLowerCase() === constants_1.NATIVE_TOKEN_ADDRESS.toLowerCase();\n const quoteInfo = usingNative ? this.ctx.wrappedNativeToken : await this.ctx.getTokenInfo(quote);\n return (0, context_1.formatUnits)(data, quoteInfo.decimals) + ' ' + quoteInfo.symbol;\n }\n else {\n return data.toString();\n }\n }\n case 'data': {\n if ((0, utils_2.isCexMarket)(description.args['mtype'])) {\n const [base, quote] = ethers_1.ethers.utils.defaultAbiCoder.decode(['string', 'address'], data);\n return `{base: ${base}, quote: ${await this.parseAddress(quote)}}`;\n }\n else if (description.args['mtype'] === enum_1.MarketType.DEXV2) {\n const [base, quote] = ethers_1.ethers.utils.defaultAbiCoder.decode(['address', 'address'], data);\n return `{base: ${await this.parseAddress(base)}, quote: ${await this.parseAddress(quote)}}`;\n }\n else {\n return data.toString();\n }\n }\n default:\n return this.parseDefaultBaseParam(param, data);\n }\n }\n parseDefaultBaseParam(param, data) {\n switch (param.name) {\n case 'duration':\n return (Number(data) / 3600).toFixed(2) + ' hours';\n case 'amount':\n return (0, context_1.formatWad)(data);\n case 'timestamp':\n return (0, farmat_1.formatTimestamp)(data);\n case 'expiry':\n return (0, utils_2.formatExpiry)(data);\n case 'sqrtStrikeLowerPX96':\n case 'sqrtStrikeUpperPX96':\n return (0, farmat_1.formatSqrtPX96)(data);\n case 'deadline':\n return (0, farmat_1.formatTimestamp)(data);\n default:\n return data.toString();\n }\n }\n}\nexports.GateParser = GateParser;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GuardianParser = void 0;\nconst ethers_1 = require(\"ethers\");\nconst context_1 = require(\"@derivation-tech/context\");\nconst typechain_1 = require(\"../typechain\");\nconst utils_1 = require(\"../utils\");\nconst enum_1 = require(\"../enum\");\nconst farmat_1 = require(\"./farmat\");\nclass GuardianParser extends context_1.ContractParser {\n constructor() {\n super(typechain_1.Guardian__factory.createInterface());\n }\n async parseBaseParam(_description, param, data) {\n switch (param.name) {\n case 'tradingFeeRatio':\n case 'protocolFeeRatio':\n return (0, farmat_1.formatRatio)(data);\n case 'stabilityFeeRatioParam':\n return (0, farmat_1.extractFeeRatioParams)(ethers_1.BigNumber.from(data))\n .map((p) => (0, context_1.formatWad)(p))\n .toString();\n case 'tip':\n case 'minMarginAmount':\n return (0, context_1.formatWad)(data);\n case 'expiry':\n return (0, utils_1.formatExpiry)(data);\n case 'qtype':\n return enum_1.QuoteType[Number(data)];\n case 'ftype':\n return enum_1.FeederType[Number(data)];\n case 'compactEmaParam':\n return (0, farmat_1.formatCompactEmaParam)(ethers_1.BigNumber.from(data));\n default:\n return data.toString();\n }\n }\n async parseBaseArrayParam(description, param, value) {\n if (description.name === 'recycleInsuranceFund' && param.name === 'expiries') {\n return value.map((expiry) => (0, utils_1.formatExpiry)(expiry)).toString();\n }\n else if (description.name === 'claimProtocolFee' && param.name === 'expiries') {\n return value.map((expiry) => (0, utils_1.formatExpiry)(expiry)).toString();\n }\n return await super.parseBaseArrayParam(description, param, value);\n }\n}\nexports.GuardianParser = GuardianParser;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./instrument\"), exports);\n__exportStar(require(\"./dexV2market\"), exports);\n__exportStar(require(\"./cexMarket\"), exports);\n__exportStar(require(\"./gate\"), exports);\n__exportStar(require(\"./config\"), exports);\n__exportStar(require(\"./guardian\"), exports);\n__exportStar(require(\"./farmat\"), exports);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.InstrumentParser = void 0;\nconst context_1 = require(\"@derivation-tech/context\");\nconst typechain_1 = require(\"../typechain\");\nconst ethers_1 = require(\"ethers\");\nconst utils_1 = require(\"../utils\");\nconst utils_2 = require(\"ethers/lib/utils\");\nconst enum_1 = require(\"../enum\");\nconst farmat_1 = require(\"./farmat\");\nfunction isTransactionDescription(description) {\n return 'functionFragment' in description;\n}\nfunction isLogDescription(description) {\n return 'eventFragment' in description;\n}\nfunction isErrorDescription(description) {\n return 'errorFragment' in description;\n}\nclass InstrumentParser extends context_1.ContractParser {\n constructor(addressParser) {\n super(typechain_1.Instrument__factory.createInterface(), addressParser);\n }\n async formatEncodedFundctionArgs(obj) {\n let str = '{ ';\n for (const [k, v] of Object.entries(obj)) {\n if (ethers_1.ethers.utils.isAddress(v)) {\n str += `${k}: ${await this.parseAddress(v)}, `;\n continue;\n }\n if (k === 'limitTicks') {\n str += `minTickLower: ${(0, farmat_1.formatTick)(Number(BigInt(v.toNumber()) >> BigInt(24)))}, maxTickUpper: ${(0, farmat_1.formatTick)(v.toNumber() & ((1 << 24) - 1))}, `;\n }\n else if (k === 'ticks') {\n str += `${k}: [${v.map((tick) => (0, farmat_1.formatTick)(tick)).join(', ')}], `;\n }\n else {\n str += `${k}: ${this.parseDefaultBaseParam(utils_2.ParamType.from({ type: 'string', name: k }), v)}, `;\n }\n }\n str = str.substring(0, str.length - 2) + ' }';\n return str;\n }\n async parseBaseArrayParam(description, param, value) {\n if (description.name === 'add' && param.name === 'args') {\n return this.formatEncodedFundctionArgs((0, utils_1.decodeAddParam)(value));\n }\n else if (description.name === 'remove' && param.name === 'args') {\n return this.formatEncodedFundctionArgs((0, utils_1.decodeRemoveParam)(value));\n }\n else if (description.name === 'trade' && param.name === 'args') {\n return this.formatEncodedFundctionArgs((0, utils_1.decodeTradeWithStabilityFeeParam)(value));\n }\n else if (description.name === 'place' && param.name === 'args') {\n return this.formatEncodedFundctionArgs((0, utils_1.decodePlaceParam)(value));\n }\n else if (description.name === 'batchPlace' && param.name === 'args') {\n return this.formatEncodedFundctionArgs((0, utils_1.decodeBatchPlaceParam)(value));\n }\n return await super.parseBaseArrayParam(description, param, value);\n }\n async parseBaseParam(description, param, data) {\n if (isTransactionDescription(description)) {\n return this.parseFunctionBaseParam(description, param, data);\n }\n else if (isLogDescription(description)) {\n return this.parseEventBaseParam(description, param, data);\n }\n else if (isErrorDescription(description)) {\n return this.parseErrorBaseParam(description, param, data);\n }\n else {\n return this.parseDefaultBaseParam(param, data);\n }\n }\n async parseFunctionBaseParam(_description, param, data) {\n switch (param.name) {\n case 'arg': {\n switch (_description.functionFragment.name) {\n case 'cancel':\n return this.formatEncodedFundctionArgs((0, utils_1.decodeCancelParam)(data));\n case 'fill':\n return this.formatEncodedFundctionArgs((0, utils_1.decodeFillParam)(data));\n default:\n return data.toString();\n }\n }\n default:\n return this.parseDefaultBaseParam(param, data);\n }\n }\n parseEventBaseParam(_description, param, data) {\n switch (param.name) {\n default:\n return this.parseDefaultBaseParam(param, data);\n }\n }\n parseErrorBaseParam(_description, param, data) {\n switch (param.name) {\n default:\n return this.parseDefaultBaseParam(param, data);\n }\n }\n parseDefaultBaseParam(param, data) {\n switch (param.name) {\n case 'status':\n return enum_1.Status[Number(data)];\n case 'condition':\n return enum_1.InstrumentCondition[Number(data)];\n case 'expiry':\n return (0, utils_1.formatExpiry)(data);\n case 'timestamp':\n case 'deadline':\n return (0, farmat_1.formatTimestamp)(data);\n case 'feeRatio':\n return (0, farmat_1.formatRatio)(data);\n case 'net':\n case 'amount':\n case 'minAmount':\n case 'balance':\n case 'tip':\n case 'fee':\n case 'entryNotional':\n case 'deltaQuote':\n case 'protocolFee':\n case 'involvedFund':\n case 'insuranceFund':\n case 'funding':\n case 'totalLong':\n case 'totalShort':\n case 'deltaBase':\n case 'openInterests':\n case 'totalTaken':\n case 'taken':\n case 'mark':\n case 'limitPrice':\n case 'settlement':\n case 'requested':\n return (0, context_1.formatWad)(data);\n case 'size':\n case 'requestedSize':\n case 'totalSize':\n return (0, context_1.formatWad)(data, 18);\n case 'sqrtPX96':\n case 'sqrtStrikeLowerPX96':\n case 'sqrtStrikeUpperPX96':\n case 'sqrtEntryPX96':\n return (0, farmat_1.formatSqrtPX96)(data, 18);\n case 'tick':\n case 'limitTick':\n case 'tickUpper':\n case 'tickLower':\n case 'minTickLower':\n case 'maxTickUpper':\n return (0, farmat_1.formatTick)(Number(data));\n default:\n return data.toString();\n }\n }\n}\nexports.InstrumentParser = InstrumentParser;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PerpModule = void 0;\nconst modules_1 = require(\"./modules\");\nconst defaultOptions = {\n inverse: false,\n configuration: 's3',\n};\nclass PerpModule {\n constructor(context, options) {\n this.context = context;\n const { inverse, configuration, basePath } = {\n ...defaultOptions,\n ...options,\n };\n this.config = new modules_1.ConfigModule(context);\n this.gate = new modules_1.GateModule(context);\n this._observer = new modules_1.ObserverModule(context);\n this.calc = inverse ? new modules_1.InverseCalcModule(context) : new modules_1.CalcModule(context);\n this.instrument = inverse ? new modules_1.InverseInstrumentModule(context) : new modules_1.InstrumentModule(context);\n this.observer = inverse ? new modules_1.InverseObserverModule(context) : new modules_1.ObserverModule(context);\n this.simulate = inverse ? new modules_1.InverseSimulateModule(context) : new modules_1.SimulateModule(context);\n this.configuration =\n configuration === 'local'\n ? new modules_1.LocalConfigurationModule(context)\n : new modules_1.S3ConfigurationModule(context, basePath);\n }\n registerQuoteInfo(tokenInfo) {\n this.context.tokenInfo.set(tokenInfo.symbol.toLowerCase(), tokenInfo);\n this.context.tokenInfo.set(tokenInfo.address.toLowerCase(), tokenInfo);\n this.context.registerAddress(tokenInfo.address, tokenInfo.symbol);\n }\n}\nexports.PerpModule = PerpModule;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.perpPlugin = void 0;\nconst perp_module_1 = require(\"./perp.module\");\nconst perpPlugin = (option) => {\n return {\n install(context) {\n const perp = new perp_module_1.PerpModule(context, option);\n context.addInitHook(async () => {\n await perp.configuration.update();\n });\n context.perp = perp;\n },\n };\n};\nexports.perpPlugin = perpPlugin;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Beacon__factory = void 0;\nconst ethers_1 = require(\"ethers\");\nconst _abi = [\n {\n inputs: [\n {\n internalType: 'address',\n name: '_impl',\n type: 'address',\n },\n {\n internalType: 'address',\n name: '_owner',\n type: 'address',\n },\n ],\n stateMutability: 'payable',\n type: 'constructor',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'previousOwner',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'newOwner',\n type: 'address',\n },\n ],\n name: 'OwnershipTransferred',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'implementation',\n type: 'address',\n },\n ],\n name: 'Upgraded',\n type: 'event',\n },\n {\n inputs: [],\n name: 'implementation',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'owner',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'renounceOwnership',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'newOwner',\n type: 'address',\n },\n ],\n name: 'transferOwnership',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'newImplementation',\n type: 'address',\n },\n ],\n name: 'upgradeTo',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n];\nclass Beacon__factory {\n static createInterface() {\n return new ethers_1.utils.Interface(_abi);\n }\n static connect(address, signerOrProvider) {\n return new ethers_1.Contract(address, _abi, signerOrProvider);\n }\n}\nexports.Beacon__factory = Beacon__factory;\nBeacon__factory.abi = _abi;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CexMarket__factory = void 0;\nconst ethers_1 = require(\"ethers\");\nconst _abi = [\n {\n inputs: [],\n name: 'BadEmaHalfTime',\n type: 'error',\n },\n {\n inputs: [],\n name: 'BadMaxChangeRatioPerSecond',\n type: 'error',\n },\n {\n inputs: [],\n name: 'BadMaxRawTimeDelta',\n type: 'error',\n },\n {\n inputs: [],\n name: 'BadMaxTimeDelta',\n type: 'error',\n },\n {\n inputs: [],\n name: 'CexNoFeeder',\n type: 'error',\n },\n {\n inputs: [],\n name: 'DecimalsExceed',\n type: 'error',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'token',\n type: 'address',\n },\n ],\n name: 'GetErc20DecimalsFailed',\n type: 'error',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'token',\n type: 'address',\n },\n ],\n name: 'GetErc20SymbolFailed',\n type: 'error',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'aggregator',\n type: 'address',\n },\n ],\n name: 'InvalidCexPrice',\n type: 'error',\n },\n {\n inputs: [],\n name: 'LengthMismatch',\n type: 'error',\n },\n {\n inputs: [],\n name: 'NotConverge',\n type: 'error',\n },\n {\n inputs: [],\n name: 'NotGate',\n type: 'error',\n },\n {\n inputs: [],\n name: 'NotSynFuturesV3Admin',\n type: 'error',\n },\n {\n inputs: [],\n name: 'QuoteNotSupported',\n type: 'error',\n },\n {\n inputs: [],\n name: 'WrongStatusToFetchMarkPrice',\n type: 'error',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n ],\n name: 'ClearStates',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'uint8',\n name: 'version',\n type: 'uint8',\n },\n ],\n name: 'Initialized',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'uint256',\n name: 'compactEmaParam',\n type: 'uint256',\n },\n ],\n name: 'SetCompactEmaParam',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n {\n components: [\n {\n internalType: 'enum FeederType',\n name: 'ftype',\n type: 'uint8',\n },\n {\n internalType: 'uint64',\n name: 'scaler0',\n type: 'uint64',\n },\n {\n internalType: 'address',\n name: 'aggregator0',\n type: 'address',\n },\n {\n internalType: 'uint24',\n name: 'heartBeat0',\n type: 'uint24',\n },\n {\n internalType: 'uint64',\n name: 'scaler1',\n type: 'uint64',\n },\n {\n internalType: 'address',\n name: 'aggregator1',\n type: 'address',\n },\n {\n internalType: 'uint24',\n name: 'heartBeat1',\n type: 'uint24',\n },\n ],\n indexed: false,\n internalType: 'struct PriceFeeder',\n name: 'feeder',\n type: 'tuple',\n },\n ],\n name: 'SetFeeder',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n components: [\n {\n internalType: 'uint32',\n name: 'time',\n type: 'uint32',\n },\n {\n internalType: 'uint224',\n name: 'raw',\n type: 'uint224',\n },\n {\n internalType: 'uint32',\n name: 'initTime',\n type: 'uint32',\n },\n {\n internalType: 'uint224',\n name: 'initMark',\n type: 'uint224',\n },\n {\n internalType: 'uint256',\n name: 'accumulation',\n type: 'uint256',\n },\n ],\n indexed: false,\n internalType: 'struct CexAccState',\n name: 'state',\n type: 'tuple',\n },\n ],\n name: 'UpdateAccState',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n {\n components: [\n {\n internalType: 'uint16',\n name: 'emaHalfTime',\n type: 'uint16',\n },\n {\n internalType: 'uint16',\n name: 'maxTimeDelta',\n type: 'uint16',\n },\n {\n internalType: 'uint16',\n name: 'maxRawTimeDelta',\n type: 'uint16',\n },\n {\n internalType: 'uint16',\n name: 'maxChangeRatioPerSecond',\n type: 'uint16',\n },\n ],\n indexed: false,\n internalType: 'struct EmaParam',\n name: 'emaParam',\n type: 'tuple',\n },\n ],\n name: 'UpdateEmaParam',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n {\n components: [\n {\n internalType: 'uint32',\n name: 'time',\n type: 'uint32',\n },\n {\n internalType: 'uint224',\n name: 'spot',\n type: 'uint224',\n },\n {\n internalType: 'uint256',\n name: 'raw',\n type: 'uint256',\n },\n ],\n indexed: false,\n internalType: 'struct SpotState',\n name: 'spotState',\n type: 'tuple',\n },\n ],\n name: 'UpdateSpotState',\n type: 'event',\n },\n {\n inputs: [\n {\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n ],\n name: 'clearStates',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'config',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n ],\n name: 'feeders',\n outputs: [\n {\n internalType: 'enum FeederType',\n name: 'ftype',\n type: 'uint8',\n },\n {\n internalType: 'uint64',\n name: 'scaler0',\n type: 'uint64',\n },\n {\n internalType: 'address',\n name: 'aggregator0',\n type: 'address',\n },\n {\n internalType: 'uint24',\n name: 'heartBeat0',\n type: 'uint24',\n },\n {\n internalType: 'uint64',\n name: 'scaler1',\n type: 'uint64',\n },\n {\n internalType: 'address',\n name: 'aggregator1',\n type: 'address',\n },\n {\n internalType: 'uint24',\n name: 'heartBeat1',\n type: 'uint24',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'gate',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n {\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n ],\n name: 'getAccState',\n outputs: [\n {\n components: [\n {\n internalType: 'uint32',\n name: 'time',\n type: 'uint32',\n },\n {\n internalType: 'uint224',\n name: 'raw',\n type: 'uint224',\n },\n {\n internalType: 'uint32',\n name: 'initTime',\n type: 'uint32',\n },\n {\n internalType: 'uint224',\n name: 'initMark',\n type: 'uint224',\n },\n {\n internalType: 'uint256',\n name: 'accumulation',\n type: 'uint256',\n },\n ],\n internalType: 'struct CexAccState',\n name: '',\n type: 'tuple',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'getAllInstruments',\n outputs: [\n {\n internalType: 'address[]',\n name: '',\n type: 'address[]',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n {\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n ],\n name: 'getBenchmarkPrice',\n outputs: [\n {\n internalType: 'uint256',\n name: 'benchmark',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'getCompactEmaParam',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n ],\n name: 'getEmaParam',\n outputs: [\n {\n components: [\n {\n internalType: 'uint16',\n name: 'emaHalfTime',\n type: 'uint16',\n },\n {\n internalType: 'uint16',\n name: 'maxTimeDelta',\n type: 'uint16',\n },\n {\n internalType: 'uint16',\n name: 'maxRawTimeDelta',\n type: 'uint16',\n },\n {\n internalType: 'uint16',\n name: 'maxChangeRatioPerSecond',\n type: 'uint16',\n },\n ],\n internalType: 'struct EmaParam',\n name: '',\n type: 'tuple',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n {\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n internalType: 'enum Status',\n name: 'status',\n type: 'uint8',\n },\n ],\n name: 'getMarkPrice',\n outputs: [\n {\n internalType: 'uint256',\n name: 'mark',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'getMarketType',\n outputs: [\n {\n internalType: 'string',\n name: '',\n type: 'string',\n },\n ],\n stateMutability: 'pure',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n ],\n name: 'getRawPrice',\n outputs: [\n {\n internalType: 'uint256',\n name: 'raw',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n ],\n name: 'getSpotPrice',\n outputs: [\n {\n internalType: 'uint256',\n name: 'spot',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n ],\n name: 'getSpotState',\n outputs: [\n {\n components: [\n {\n internalType: 'uint32',\n name: 'time',\n type: 'uint32',\n },\n {\n internalType: 'uint224',\n name: 'spot',\n type: 'uint224',\n },\n {\n internalType: 'uint256',\n name: 'raw',\n type: 'uint256',\n },\n ],\n internalType: 'struct SpotState',\n name: '',\n type: 'tuple',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint256',\n name: '_compactEmaParam',\n type: 'uint256',\n },\n ],\n name: 'initialize',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n name: 'instruments',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'instrumentsLength',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n internalType: 'enum Status',\n name: 'status',\n type: 'uint8',\n },\n ],\n name: 'markPrice',\n outputs: [\n {\n internalType: 'uint256',\n name: 'mark',\n type: 'uint256',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n {\n internalType: 'bytes',\n name: 'data',\n type: 'bytes',\n },\n ],\n name: 'prepareInstrument',\n outputs: [\n {\n internalType: 'bytes32',\n name: 'index',\n type: 'bytes32',\n },\n {\n internalType: 'address',\n name: 'base',\n type: 'address',\n },\n {\n internalType: 'bytes',\n name: 'initData',\n type: 'bytes',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint256',\n name: 'newCompactEmaParam',\n type: 'uint256',\n },\n ],\n name: 'setCompactEmaParam',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address[]',\n name: 'instruments',\n type: 'address[]',\n },\n {\n components: [\n {\n internalType: 'enum FeederType',\n name: 'ftype',\n type: 'uint8',\n },\n {\n internalType: 'uint64',\n name: 'scaler0',\n type: 'uint64',\n },\n {\n internalType: 'address',\n name: 'aggregator0',\n type: 'address',\n },\n {\n internalType: 'uint24',\n name: 'heartBeat0',\n type: 'uint24',\n },\n {\n internalType: 'uint64',\n name: 'scaler1',\n type: 'uint64',\n },\n {\n internalType: 'address',\n name: 'aggregator1',\n type: 'address',\n },\n {\n internalType: 'uint24',\n name: 'heartBeat1',\n type: 'uint24',\n },\n ],\n internalType: 'struct PriceFeeder[]',\n name: 'priceFeeders',\n type: 'tuple[]',\n },\n ],\n name: 'setFeeder',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'enum Leverage',\n name: 'leverage',\n type: 'uint8',\n },\n ],\n name: 'syncEmaParam',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n];\nclass CexMarket__factory {\n static createInterface() {\n return new ethers_1.utils.Interface(_abi);\n }\n static connect(address, signerOrProvider) {\n return new ethers_1.Contract(address, _abi, signerOrProvider);\n }\n}\nexports.CexMarket__factory = CexMarket__factory;\nCexMarket__factory.abi = _abi;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Config__factory = void 0;\nconst ethers_1 = require(\"ethers\");\nconst _abi = [\n {\n inputs: [\n {\n internalType: 'address',\n name: 'admin',\n type: 'address',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'constructor',\n },\n {\n inputs: [],\n name: 'BadMinMarginAmount',\n type: 'error',\n },\n {\n inputs: [],\n name: 'BadProtocolFeeRatio',\n type: 'error',\n },\n {\n inputs: [],\n name: 'BadTip',\n type: 'error',\n },\n {\n inputs: [],\n name: 'BadTradingFeeRatio',\n type: 'error',\n },\n {\n inputs: [],\n name: 'LengthMismatch',\n type: 'error',\n },\n {\n inputs: [],\n name: 'LiquidatorWhitelistAlreadyDisabled',\n type: 'error',\n },\n {\n inputs: [],\n name: 'LpWhitelistAlreadyDisabled',\n type: 'error',\n },\n {\n inputs: [\n {\n internalType: 'string',\n name: 'mtype',\n type: 'string',\n },\n ],\n name: 'ResetMarketInfo',\n type: 'error',\n },\n {\n inputs: [],\n name: 'SetMarketZeroAddress',\n type: 'error',\n },\n {\n anonymous: false,\n inputs: [],\n name: 'DisableLiquidatorWhitelist',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [],\n name: 'DisableLpWhitelist',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'address',\n name: 'quote',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'bool',\n name: 'restricted',\n type: 'bool',\n },\n ],\n name: 'EnableLpWhitelistForQuote',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'user',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'newOwner',\n type: 'address',\n },\n ],\n name: 'OwnershipTransferred',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'address',\n name: 'blastPointsAddress',\n type: 'address',\n },\n ],\n name: 'SetBlastPointsAddress',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'address',\n name: 'blastPointsOperator',\n type: 'address',\n },\n ],\n name: 'SetBlastPointsOperator',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'address',\n name: 'user',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'bool',\n name: 'authorized',\n type: 'bool',\n },\n ],\n name: 'SetLiquidatorWhitelist',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'address',\n name: 'user',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'bool',\n name: 'authorized',\n type: 'bool',\n },\n ],\n name: 'SetLpWhitelist',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'address',\n name: 'quote',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'address',\n name: 'user',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'bool',\n name: 'authorized',\n type: 'bool',\n },\n ],\n name: 'SetLpWhitelistForQuote',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'string',\n name: 'mtype',\n type: 'string',\n },\n {\n indexed: false,\n internalType: 'address',\n name: 'market',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'address',\n name: 'beacon',\n type: 'address',\n },\n ],\n name: 'SetMarketInfo',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'address',\n name: 'quote',\n type: 'address',\n },\n {\n components: [\n {\n internalType: 'uint128',\n name: 'minMarginAmount',\n type: 'uint128',\n },\n {\n internalType: 'uint16',\n name: 'tradingFeeRatio',\n type: 'uint16',\n },\n {\n internalType: 'uint16',\n name: 'protocolFeeRatio',\n type: 'uint16',\n },\n {\n internalType: 'uint64',\n name: 'stabilityFeeRatioParam',\n type: 'uint64',\n },\n {\n internalType: 'enum QuoteType',\n name: 'qtype',\n type: 'uint8',\n },\n {\n internalType: 'uint128',\n name: 'tip',\n type: 'uint128',\n },\n ],\n indexed: false,\n internalType: 'struct QuoteParam',\n name: 'param',\n type: 'tuple',\n },\n ],\n name: 'SetQuoteParam',\n type: 'event',\n },\n {\n inputs: [],\n name: 'blastPointsAddress',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'blastPointsOperator',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'disableLiquidatorWhitelist',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'disableLpWhitelist',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'quote',\n type: 'address',\n },\n {\n internalType: 'bool',\n name: 'enable',\n type: 'bool',\n },\n ],\n name: 'enableLpWhitelistForQuote',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'getAllMarkets',\n outputs: [\n {\n internalType: 'address[]',\n name: '',\n type: 'address[]',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'string',\n name: 'mtype',\n type: 'string',\n },\n ],\n name: 'getMarketInfo',\n outputs: [\n {\n components: [\n {\n internalType: 'string',\n name: 'mtype',\n type: 'string',\n },\n {\n internalType: 'address',\n name: 'market',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'beacon',\n type: 'address',\n },\n ],\n internalType: 'struct MarketInfo',\n name: '',\n type: 'tuple',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'quote',\n type: 'address',\n },\n ],\n name: 'getQuoteParam',\n outputs: [\n {\n components: [\n {\n internalType: 'uint128',\n name: 'minMarginAmount',\n type: 'uint128',\n },\n {\n internalType: 'uint16',\n name: 'tradingFeeRatio',\n type: 'uint16',\n },\n {\n internalType: 'uint16',\n name: 'protocolFeeRatio',\n type: 'uint16',\n },\n {\n internalType: 'uint64',\n name: 'stabilityFeeRatioParam',\n type: 'uint64',\n },\n {\n internalType: 'enum QuoteType',\n name: 'qtype',\n type: 'uint8',\n },\n {\n internalType: 'uint128',\n name: 'tip',\n type: 'uint128',\n },\n ],\n internalType: 'struct QuoteParam',\n name: '',\n type: 'tuple',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'user',\n type: 'address',\n },\n ],\n name: 'isAuthorizedLiquidator',\n outputs: [\n {\n internalType: 'bool',\n name: '',\n type: 'bool',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'quote',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'user',\n type: 'address',\n },\n ],\n name: 'isAuthorizedLp',\n outputs: [\n {\n internalType: 'bool',\n name: '',\n type: 'bool',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'user',\n type: 'address',\n },\n ],\n name: 'liquidatorWhitelist',\n outputs: [\n {\n internalType: 'bool',\n name: 'authorized',\n type: 'bool',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'quote',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'user',\n type: 'address',\n },\n ],\n name: 'lpWhitelist',\n outputs: [\n {\n internalType: 'bool',\n name: 'authorized',\n type: 'bool',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n name: 'markets',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'marketsLength',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'openLiquidator',\n outputs: [\n {\n internalType: 'bool',\n name: '',\n type: 'bool',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'openLp',\n outputs: [\n {\n internalType: 'bool',\n name: '',\n type: 'bool',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'owner',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: '_blastPointsAddress',\n type: 'address',\n },\n ],\n name: 'setBlastPointsAddress',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: '_blastPointsOperator',\n type: 'address',\n },\n ],\n name: 'setBlastPointsOperator',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'quote',\n type: 'address',\n },\n ],\n name: 'restrictLp',\n outputs: [\n {\n internalType: 'bool',\n name: 'restricted',\n type: 'bool',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address[]',\n name: 'users',\n type: 'address[]',\n },\n {\n internalType: 'bool[]',\n name: 'flags',\n type: 'bool[]',\n },\n ],\n name: 'setLiquidatorWhitelist',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address[]',\n name: 'quotes',\n type: 'address[]',\n },\n {\n internalType: 'address[]',\n name: 'users',\n type: 'address[]',\n },\n {\n internalType: 'bool[]',\n name: 'flags',\n type: 'bool[]',\n },\n ],\n name: 'setLpWhiteList',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'string',\n name: 'mtype',\n type: 'string',\n },\n {\n internalType: 'address',\n name: 'market',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'beacon',\n type: 'address',\n },\n ],\n name: 'setMarketInfo',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address[]',\n name: 'coins',\n type: 'address[]',\n },\n {\n components: [\n {\n internalType: 'uint128',\n name: 'minMarginAmount',\n type: 'uint128',\n },\n {\n internalType: 'uint16',\n name: 'tradingFeeRatio',\n type: 'uint16',\n },\n {\n internalType: 'uint16',\n name: 'protocolFeeRatio',\n type: 'uint16',\n },\n {\n internalType: 'uint64',\n name: 'stabilityFeeRatioParam',\n type: 'uint64',\n },\n {\n internalType: 'enum QuoteType',\n name: 'qtype',\n type: 'uint8',\n },\n {\n internalType: 'uint128',\n name: 'tip',\n type: 'uint128',\n },\n ],\n internalType: 'struct QuoteParam[]',\n name: 'params',\n type: 'tuple[]',\n },\n ],\n name: 'setQuoteParam',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'newOwner',\n type: 'address',\n },\n ],\n name: 'transferOwnership',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n];\nclass Config__factory {\n static createInterface() {\n return new ethers_1.utils.Interface(_abi);\n }\n static connect(address, signerOrProvider) {\n return new ethers_1.Contract(address, _abi, signerOrProvider);\n }\n}\nexports.Config__factory = Config__factory;\nConfig__factory.abi = _abi;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DexV2Market__factory = void 0;\nconst ethers_1 = require(\"ethers\");\nconst _abi = [\n {\n inputs: [\n {\n internalType: 'address',\n name: '_config',\n type: 'address',\n },\n {\n internalType: 'address',\n name: '_gate',\n type: 'address',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'constructor',\n },\n {\n inputs: [],\n name: 'BadEmaHalfTime',\n type: 'error',\n },\n {\n inputs: [],\n name: 'BadMaxChangeRatioPerSecond',\n type: 'error',\n },\n {\n inputs: [],\n name: 'BadMaxRawTimeDelta',\n type: 'error',\n },\n {\n inputs: [],\n name: 'BadMaxTimeDelta',\n type: 'error',\n },\n {\n inputs: [],\n name: 'CastUint256ToUint224Overflow',\n type: 'error',\n },\n {\n inputs: [],\n name: 'DecimalsExceed',\n type: 'error',\n },\n {\n inputs: [],\n name: 'DexV2NoFeeder',\n type: 'error',\n },\n {\n inputs: [],\n name: 'DexV2PairLiquidity',\n type: 'error',\n },\n {\n inputs: [],\n name: 'DexV2RepeatedFactory',\n type: 'error',\n },\n {\n inputs: [],\n name: 'DivByZero',\n type: 'error',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'token',\n type: 'address',\n },\n ],\n name: 'GetErc20DecimalsFailed',\n type: 'error',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'token',\n type: 'address',\n },\n ],\n name: 'GetErc20SymbolFailed',\n type: 'error',\n },\n {\n inputs: [],\n name: 'NotConverge',\n type: 'error',\n },\n {\n inputs: [],\n name: 'NotGate',\n type: 'error',\n },\n {\n inputs: [],\n name: 'NotSynFuturesV3Admin',\n type: 'error',\n },\n {\n inputs: [],\n name: 'QuoteNotSupported',\n type: 'error',\n },\n {\n inputs: [],\n name: 'WrongStatusToFetchMarkPrice',\n type: 'error',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'address',\n name: 'factory',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'number',\n type: 'uint256',\n },\n ],\n name: 'AddDexV2Factory',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n ],\n name: 'ClearStates',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'uint8',\n name: 'version',\n type: 'uint8',\n },\n ],\n name: 'Initialized',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'uint256',\n name: 'compactEmaParam',\n type: 'uint256',\n },\n ],\n name: 'SetCompactEmaParam',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n {\n components: [\n {\n internalType: 'enum FeederType',\n name: 'ftype',\n type: 'uint8',\n },\n {\n internalType: 'bool',\n name: 'isToken0Quote',\n type: 'bool',\n },\n {\n internalType: 'address',\n name: 'pair',\n type: 'address',\n },\n {\n internalType: 'uint64',\n name: 'scaler0',\n type: 'uint64',\n },\n {\n internalType: 'uint64',\n name: 'scaler1',\n type: 'uint64',\n },\n ],\n indexed: false,\n internalType: 'struct DexV2Feeder',\n name: 'feeder',\n type: 'tuple',\n },\n ],\n name: 'SetFeeder',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n components: [\n {\n internalType: 'uint32',\n name: 'initTime',\n type: 'uint32',\n },\n {\n internalType: 'uint224',\n name: 'initMark',\n type: 'uint224',\n },\n {\n internalType: 'uint256',\n name: 'initAccumulation',\n type: 'uint256',\n },\n ],\n indexed: false,\n internalType: 'struct DexV2AccState',\n name: 'accState',\n type: 'tuple',\n },\n ],\n name: 'UpdateAccState',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n {\n components: [\n {\n internalType: 'uint16',\n name: 'emaHalfTime',\n type: 'uint16',\n },\n {\n internalType: 'uint16',\n name: 'maxTimeDelta',\n type: 'uint16',\n },\n {\n internalType: 'uint16',\n name: 'maxRawTimeDelta',\n type: 'uint16',\n },\n {\n internalType: 'uint16',\n name: 'maxChangeRatioPerSecond',\n type: 'uint16',\n },\n ],\n indexed: false,\n internalType: 'struct EmaParam',\n name: 'emaParam',\n type: 'tuple',\n },\n ],\n name: 'UpdateEmaParam',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n {\n components: [\n {\n internalType: 'uint32',\n name: 'time',\n type: 'uint32',\n },\n {\n internalType: 'uint224',\n name: 'spot',\n type: 'uint224',\n },\n {\n internalType: 'uint256',\n name: 'raw',\n type: 'uint256',\n },\n ],\n indexed: false,\n internalType: 'struct SpotState',\n name: 'spotState',\n type: 'tuple',\n },\n ],\n name: 'UpdateSpotState',\n type: 'event',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'dexV2Factory',\n type: 'address',\n },\n ],\n name: 'addDexV2Factory',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n ],\n name: 'clearStates',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'config',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n ],\n name: 'feeders',\n outputs: [\n {\n internalType: 'enum FeederType',\n name: 'ftype',\n type: 'uint8',\n },\n {\n internalType: 'bool',\n name: 'isToken0Quote',\n type: 'bool',\n },\n {\n internalType: 'address',\n name: 'pair',\n type: 'address',\n },\n {\n internalType: 'uint64',\n name: 'scaler0',\n type: 'uint64',\n },\n {\n internalType: 'uint64',\n name: 'scaler1',\n type: 'uint64',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'gate',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n {\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n ],\n name: 'getAccState',\n outputs: [\n {\n components: [\n {\n internalType: 'uint32',\n name: 'initTime',\n type: 'uint32',\n },\n {\n internalType: 'uint224',\n name: 'initMark',\n type: 'uint224',\n },\n {\n internalType: 'uint256',\n name: 'initAccumulation',\n type: 'uint256',\n },\n ],\n internalType: 'struct DexV2AccState',\n name: '',\n type: 'tuple',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'getAllInstruments',\n outputs: [\n {\n internalType: 'address[]',\n name: '',\n type: 'address[]',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n {\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n ],\n name: 'getBenchmarkPrice',\n outputs: [\n {\n internalType: 'uint256',\n name: 'benchmark',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'getCompactEmaParam',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'getDexV2Factories',\n outputs: [\n {\n internalType: 'address[]',\n name: '',\n type: 'address[]',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n ],\n name: 'getEmaParam',\n outputs: [\n {\n components: [\n {\n internalType: 'uint16',\n name: 'emaHalfTime',\n type: 'uint16',\n },\n {\n internalType: 'uint16',\n name: 'maxTimeDelta',\n type: 'uint16',\n },\n {\n internalType: 'uint16',\n name: 'maxRawTimeDelta',\n type: 'uint16',\n },\n {\n internalType: 'uint16',\n name: 'maxChangeRatioPerSecond',\n type: 'uint16',\n },\n ],\n internalType: 'struct EmaParam',\n name: '',\n type: 'tuple',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n {\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n internalType: 'enum Status',\n name: 'status',\n type: 'uint8',\n },\n ],\n name: 'getMarkPrice',\n outputs: [\n {\n internalType: 'uint256',\n name: 'mark',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'getMarketType',\n outputs: [\n {\n internalType: 'string',\n name: '',\n type: 'string',\n },\n ],\n stateMutability: 'pure',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n ],\n name: 'getRawPrice',\n outputs: [\n {\n internalType: 'uint256',\n name: 'raw',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n ],\n name: 'getSpotPrice',\n outputs: [\n {\n internalType: 'uint256',\n name: 'spot',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n ],\n name: 'getSpotState',\n outputs: [\n {\n components: [\n {\n internalType: 'uint32',\n name: 'time',\n type: 'uint32',\n },\n {\n internalType: 'uint224',\n name: 'spot',\n type: 'uint224',\n },\n {\n internalType: 'uint256',\n name: 'raw',\n type: 'uint256',\n },\n ],\n internalType: 'struct SpotState',\n name: '',\n type: 'tuple',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint256',\n name: '_emaParam',\n type: 'uint256',\n },\n {\n internalType: 'address[]',\n name: '_factories',\n type: 'address[]',\n },\n ],\n name: 'initialize',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint256',\n name: '_compactEmaParam',\n type: 'uint256',\n },\n ],\n name: 'initialize',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n name: 'instruments',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'instrumentsLength',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n internalType: 'enum Status',\n name: 'status',\n type: 'uint8',\n },\n ],\n name: 'markPrice',\n outputs: [\n {\n internalType: 'uint256',\n name: 'mark',\n type: 'uint256',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n {\n internalType: 'bytes',\n name: 'data',\n type: 'bytes',\n },\n ],\n name: 'prepareInstrument',\n outputs: [\n {\n internalType: 'bytes32',\n name: 'index',\n type: 'bytes32',\n },\n {\n internalType: 'address',\n name: 'base',\n type: 'address',\n },\n {\n internalType: 'bytes',\n name: 'initData',\n type: 'bytes',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint256',\n name: 'newCompactEmaParam',\n type: 'uint256',\n },\n ],\n name: 'setCompactEmaParam',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'enum Leverage',\n name: 'leverage',\n type: 'uint8',\n },\n ],\n name: 'syncEmaParam',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n ],\n name: 'updateFeeder',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n];\nclass DexV2Market__factory {\n static createInterface() {\n return new ethers_1.utils.Interface(_abi);\n }\n static connect(address, signerOrProvider) {\n return new ethers_1.Contract(address, _abi, signerOrProvider);\n }\n}\nexports.DexV2Market__factory = DexV2Market__factory;\nDexV2Market__factory.abi = _abi;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EmergingFeederFactory__factory = void 0;\nconst ethers_1 = require(\"ethers\");\nconst _abi = [\n {\n inputs: [\n {\n internalType: 'address',\n name: '_guardian',\n type: 'address',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'constructor',\n },\n {\n inputs: [],\n name: 'FeederAlreadyCreated',\n type: 'error',\n },\n {\n inputs: [],\n name: 'InvalidInput',\n type: 'error',\n },\n {\n inputs: [],\n name: 'InvalidLength',\n type: 'error',\n },\n {\n inputs: [],\n name: 'NoFeeder',\n type: 'error',\n },\n {\n inputs: [],\n name: 'NotOperator',\n type: 'error',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'feeder',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'bytes32',\n name: 'baseIndex',\n type: 'bytes32',\n },\n ],\n name: 'FeederCreated',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'uint8',\n name: 'version',\n type: 'uint8',\n },\n ],\n name: 'Initialized',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n {\n indexed: true,\n internalType: 'bytes32',\n name: 'previousAdminRole',\n type: 'bytes32',\n },\n {\n indexed: true,\n internalType: 'bytes32',\n name: 'newAdminRole',\n type: 'bytes32',\n },\n ],\n name: 'RoleAdminChanged',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'sender',\n type: 'address',\n },\n ],\n name: 'RoleGranted',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'sender',\n type: 'address',\n },\n ],\n name: 'RoleRevoked',\n type: 'event',\n },\n {\n inputs: [],\n name: 'DEFAULT_ADMIN_ROLE',\n outputs: [\n {\n internalType: 'bytes32',\n name: '',\n type: 'bytes32',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'OPERATOR_ROLE',\n outputs: [\n {\n internalType: 'bytes32',\n name: '',\n type: 'bytes32',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n name: 'allFeeders',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'baseIndex',\n type: 'bytes32',\n },\n ],\n name: 'baseIndexToFeeder',\n outputs: [\n {\n internalType: 'address',\n name: 'feeder',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32[]',\n name: 'baseIndexes',\n type: 'bytes32[]',\n },\n {\n internalType: 'bytes32[]',\n name: 'args',\n type: 'bytes32[]',\n },\n ],\n name: 'batchCreateFeeder',\n outputs: [\n {\n internalType: 'address[]',\n name: 'newFeeders',\n type: 'address[]',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32[]',\n name: 'baseIndexes',\n type: 'bytes32[]',\n },\n ],\n name: 'batchGetPrice',\n outputs: [\n {\n internalType: 'uint128[]',\n name: 'prices',\n type: 'uint128[]',\n },\n {\n internalType: 'uint32[]',\n name: 'timestamps',\n type: 'uint32[]',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32[]',\n name: 'baseIndexes',\n type: 'bytes32[]',\n },\n {\n internalType: 'bytes32[]',\n name: 'args',\n type: 'bytes32[]',\n },\n ],\n name: 'batchSetRawPrice',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'beacon',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'baseIndex',\n type: 'bytes32',\n },\n {\n internalType: 'uint128',\n name: 'priceE8',\n type: 'uint128',\n },\n ],\n name: 'createFeeder',\n outputs: [\n {\n internalType: 'address',\n name: 'newFeeder',\n type: 'address',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'feeder',\n type: 'address',\n },\n ],\n name: 'feederToBaseIndex',\n outputs: [\n {\n internalType: 'bytes32',\n name: 'baseIndex',\n type: 'bytes32',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'getAllFeeders',\n outputs: [\n {\n internalType: 'address[]',\n name: '',\n type: 'address[]',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'getAllFeedersLength',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'getAllIndexes',\n outputs: [\n {\n internalType: 'bytes32[]',\n name: '',\n type: 'bytes32[]',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'baseIndex',\n type: 'bytes32',\n },\n ],\n name: 'getDecimals',\n outputs: [\n {\n internalType: 'uint8',\n name: '',\n type: 'uint8',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'baseIndex',\n type: 'bytes32',\n },\n ],\n name: 'getPrice',\n outputs: [\n {\n internalType: 'uint128',\n name: 'price',\n type: 'uint128',\n },\n {\n internalType: 'uint32',\n name: 'timestamp',\n type: 'uint32',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n ],\n name: 'getRoleAdmin',\n outputs: [\n {\n internalType: 'bytes32',\n name: '',\n type: 'bytes32',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n {\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n ],\n name: 'grantRole',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'guardian',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n {\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n ],\n name: 'hasRole',\n outputs: [\n {\n internalType: 'bool',\n name: '',\n type: 'bool',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'admin',\n type: 'address',\n },\n {\n internalType: 'address[]',\n name: 'operators',\n type: 'address[]',\n },\n ],\n name: 'initialize',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n {\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n ],\n name: 'renounceRole',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n {\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n ],\n name: 'revokeRole',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'baseIndex',\n type: 'bytes32',\n },\n {\n internalType: 'uint128',\n name: 'priceE8',\n type: 'uint128',\n },\n ],\n name: 'setRawPrice',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes4',\n name: 'interfaceId',\n type: 'bytes4',\n },\n ],\n name: 'supportsInterface',\n outputs: [\n {\n internalType: 'bool',\n name: '',\n type: 'bool',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n];\nclass EmergingFeederFactory__factory {\n static createInterface() {\n return new ethers_1.utils.Interface(_abi);\n }\n static connect(address, signerOrProvider) {\n return new ethers_1.Contract(address, _abi, signerOrProvider);\n }\n}\nexports.EmergingFeederFactory__factory = EmergingFeederFactory__factory;\nEmergingFeederFactory__factory.abi = _abi;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EmergingFeeder__factory = void 0;\nconst ethers_1 = require(\"ethers\");\nconst _abi = [\n {\n inputs: [\n {\n internalType: 'address',\n name: '_factory',\n type: 'address',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'constructor',\n },\n {\n inputs: [],\n name: 'NotRegistry',\n type: 'error',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'uint8',\n name: 'version',\n type: 'uint8',\n },\n ],\n name: 'Initialized',\n type: 'event',\n },\n {\n inputs: [],\n name: 'currentPrice',\n outputs: [\n {\n internalType: 'uint128',\n name: '',\n type: 'uint128',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'decimals',\n outputs: [\n {\n internalType: 'uint8',\n name: '',\n type: 'uint8',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'factory',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint8',\n name: '_decimals',\n type: 'uint8',\n },\n {\n internalType: 'uint128',\n name: 'priceE8',\n type: 'uint128',\n },\n {\n internalType: 'address',\n name: 'guardian',\n type: 'address',\n },\n ],\n name: 'initialize',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'lastUpdatedTimestamp',\n outputs: [\n {\n internalType: 'uint64',\n name: '',\n type: 'uint64',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'latestRoundData',\n outputs: [\n {\n internalType: 'uint80',\n name: '',\n type: 'uint80',\n },\n {\n internalType: 'int256',\n name: '',\n type: 'int256',\n },\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n {\n internalType: 'uint80',\n name: '',\n type: 'uint80',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint128',\n name: 'priceE8',\n type: 'uint128',\n },\n ],\n name: 'setRawPrice',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n];\nclass EmergingFeeder__factory {\n static createInterface() {\n return new ethers_1.utils.Interface(_abi);\n }\n static connect(address, signerOrProvider) {\n return new ethers_1.Contract(address, _abi, signerOrProvider);\n }\n}\nexports.EmergingFeeder__factory = EmergingFeeder__factory;\nEmergingFeeder__factory.abi = _abi;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Gate__factory = void 0;\nconst ethers_1 = require(\"ethers\");\nconst _abi = [\n {\n inputs: [\n {\n internalType: 'address',\n name: '_weth',\n type: 'address',\n },\n {\n internalType: 'address',\n name: '_config',\n type: 'address',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'constructor',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'expected',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'actual',\n type: 'address',\n },\n ],\n name: 'BadInstrumentAddress',\n type: 'error',\n },\n {\n inputs: [],\n name: 'BlacklistedTrader',\n type: 'error',\n },\n {\n inputs: [],\n name: 'InstrumentExists',\n type: 'error',\n },\n {\n inputs: [\n {\n internalType: 'uint256',\n name: 'requested',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'reserve',\n type: 'uint256',\n },\n ],\n name: 'InsufficientReserve',\n type: 'error',\n },\n {\n inputs: [],\n name: 'InvalidMsgValue',\n type: 'error',\n },\n {\n inputs: [],\n name: 'MarketTypeNotSupported',\n type: 'error',\n },\n {\n inputs: [\n {\n internalType: 'bytes',\n name: 'lowLevelData',\n type: 'bytes',\n },\n ],\n name: 'NewInstrumentFailed',\n type: 'error',\n },\n {\n inputs: [],\n name: 'NoDirectDeposit',\n type: 'error',\n },\n {\n inputs: [],\n name: 'NotInstrument',\n type: 'error',\n },\n {\n inputs: [],\n name: 'NotSynFuturesV3Admin',\n type: 'error',\n },\n {\n inputs: [],\n name: 'PendingDurationTooLong',\n type: 'error',\n },\n {\n inputs: [],\n name: 'PendingWithdrawNotMature',\n type: 'error',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'token',\n type: 'address',\n },\n ],\n name: 'UnsafeToken',\n type: 'error',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'trader',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'bool',\n name: 'banned',\n type: 'bool',\n },\n ],\n name: 'Blacklist',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'quote',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'trader',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'quantity',\n type: 'uint256',\n },\n ],\n name: 'Deposit',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'quote',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'trader',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'quantity',\n type: 'uint256',\n },\n ],\n name: 'Gather',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'uint8',\n name: 'version',\n type: 'uint8',\n },\n ],\n name: 'Initialized',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'bytes32',\n name: 'index',\n type: 'bytes32',\n },\n {\n indexed: false,\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'address',\n name: 'base',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'address',\n name: 'quote',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'string',\n name: 'symbol',\n type: 'string',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'total',\n type: 'uint256',\n },\n ],\n name: 'NewInstrument',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'quote',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'trader',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'quantity',\n type: 'uint256',\n },\n ],\n name: 'Scatter',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'uint256',\n name: 'duration',\n type: 'uint256',\n },\n ],\n name: 'SetPendingDuration',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'quote',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'threshold',\n type: 'uint256',\n },\n ],\n name: 'SetThreshold',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'quote',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'trader',\n type: 'address',\n },\n {\n components: [\n {\n internalType: 'uint32',\n name: 'timestamp',\n type: 'uint32',\n },\n {\n internalType: 'bool',\n name: 'native',\n type: 'bool',\n },\n {\n internalType: 'uint96',\n name: 'amount',\n type: 'uint96',\n },\n {\n internalType: 'uint120',\n name: 'exemption',\n type: 'uint120',\n },\n ],\n indexed: false,\n internalType: 'struct Pending',\n name: 'pending',\n type: 'tuple',\n },\n ],\n name: 'UpdatePending',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'quote',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'trader',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'quantity',\n type: 'uint256',\n },\n ],\n name: 'Withdraw',\n type: 'event',\n },\n {\n inputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n name: 'allInstruments',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'allInstrumentsLength',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'quote',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'to',\n type: 'address',\n },\n ],\n name: 'claimYield',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'config',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'quote',\n type: 'address',\n },\n {\n internalType: 'enum YieldMode',\n name: 'yieldMode',\n type: 'uint8',\n },\n ],\n name: 'configureYieldMode',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'arg',\n type: 'bytes32',\n },\n ],\n name: 'deposit',\n outputs: [],\n stateMutability: 'payable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'quote',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'trader',\n type: 'address',\n },\n ],\n name: 'fundFlowOf',\n outputs: [\n {\n components: [\n {\n internalType: 'uint128',\n name: 'totalIn',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'totalOut',\n type: 'uint128',\n },\n ],\n internalType: 'struct FundFlow',\n name: 'fundFlow',\n type: 'tuple',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'quote',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'trader',\n type: 'address',\n },\n {\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n internalType: 'uint256',\n name: 'quantity',\n type: 'uint256',\n },\n ],\n name: 'gather',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'getAllInstruments',\n outputs: [\n {\n internalType: 'address[]',\n name: '',\n type: 'address[]',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n ],\n name: 'indexOf',\n outputs: [\n {\n internalType: 'bytes32',\n name: 'index',\n type: 'bytes32',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'instrumentInitData',\n outputs: [\n {\n internalType: 'bytes',\n name: '',\n type: 'bytes',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'user',\n type: 'address',\n },\n ],\n name: 'isBlacklisted',\n outputs: [\n {\n internalType: 'bool',\n name: '',\n type: 'bool',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'string',\n name: 'mtype',\n type: 'string',\n },\n {\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n {\n internalType: 'bytes',\n name: 'data',\n type: 'bytes',\n },\n {\n internalType: 'bytes32[2]',\n name: 'addArgs',\n type: 'bytes32[2]',\n },\n ],\n name: 'launch',\n outputs: [\n {\n internalType: 'int24',\n name: 'tickLower',\n type: 'int24',\n },\n {\n internalType: 'int24',\n name: 'tickUpper',\n type: 'int24',\n },\n {\n components: [\n {\n internalType: 'uint128',\n name: 'liquidity',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'entryFeeIndex',\n type: 'uint128',\n },\n {\n internalType: 'uint96',\n name: 'balance',\n type: 'uint96',\n },\n {\n internalType: 'uint160',\n name: 'sqrtEntryPX96',\n type: 'uint160',\n },\n ],\n internalType: 'struct Range',\n name: 'range',\n type: 'tuple',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'pendingDuration',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'quote',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'trader',\n type: 'address',\n },\n ],\n name: 'pendingOf',\n outputs: [\n {\n components: [\n {\n internalType: 'uint32',\n name: 'timestamp',\n type: 'uint32',\n },\n {\n internalType: 'bool',\n name: 'native',\n type: 'bool',\n },\n {\n internalType: 'uint96',\n name: 'amount',\n type: 'uint96',\n },\n {\n internalType: 'uint120',\n name: 'exemption',\n type: 'uint120',\n },\n ],\n internalType: 'struct Pending',\n name: 'pending',\n type: 'tuple',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'quote',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'trader',\n type: 'address',\n },\n ],\n name: 'release',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'quote',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'user',\n type: 'address',\n },\n ],\n name: 'reserveOf',\n outputs: [\n {\n internalType: 'uint256',\n name: 'balance',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'quote',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'trader',\n type: 'address',\n },\n {\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n internalType: 'uint256',\n name: 'quantity',\n type: 'uint256',\n },\n ],\n name: 'scatter',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'trader',\n type: 'address',\n },\n {\n internalType: 'bool',\n name: 'banned',\n type: 'bool',\n },\n ],\n name: 'setBlacklist',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint256',\n name: 'duration',\n type: 'uint256',\n },\n ],\n name: 'setPendingDuration',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'quote',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: 'threshold',\n type: 'uint256',\n },\n ],\n name: 'setThreshold',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'syncPointsOperator',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'quote',\n type: 'address',\n },\n ],\n name: 'thresholdOf',\n outputs: [\n {\n internalType: 'uint256',\n name: 'threshold',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'weth',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'arg',\n type: 'bytes32',\n },\n ],\n name: 'withdraw',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n stateMutability: 'payable',\n type: 'receive',\n },\n];\nclass Gate__factory {\n static createInterface() {\n return new ethers_1.utils.Interface(_abi);\n }\n static connect(address, signerOrProvider) {\n return new ethers_1.Contract(address, _abi, signerOrProvider);\n }\n}\nexports.Gate__factory = Gate__factory;\nGate__factory.abi = _abi;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Guardian__factory = void 0;\nconst ethers_1 = require(\"ethers\");\nconst _abi = [\n {\n inputs: [],\n stateMutability: 'nonpayable',\n type: 'constructor',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'token',\n type: 'address',\n },\n ],\n name: 'GetErc20DecimalsFailed',\n type: 'error',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'token',\n type: 'address',\n },\n ],\n name: 'GetErc20SymbolFailed',\n type: 'error',\n },\n {\n inputs: [],\n name: 'LengthMismatch',\n type: 'error',\n },\n {\n inputs: [],\n name: 'NotAdmin',\n type: 'error',\n },\n {\n inputs: [],\n name: 'NotGasClaimer',\n type: 'error',\n },\n {\n inputs: [],\n name: 'NotAdminOrVaultFactory',\n type: 'error',\n },\n {\n inputs: [],\n name: 'NotOperator',\n type: 'error',\n },\n {\n inputs: [],\n name: 'NotYieldClaimer',\n type: 'error',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'uint8',\n name: 'version',\n type: 'uint8',\n },\n ],\n name: 'Initialized',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n {\n indexed: true,\n internalType: 'bytes32',\n name: 'previousAdminRole',\n type: 'bytes32',\n },\n {\n indexed: true,\n internalType: 'bytes32',\n name: 'newAdminRole',\n type: 'bytes32',\n },\n ],\n name: 'RoleAdminChanged',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'sender',\n type: 'address',\n },\n ],\n name: 'RoleGranted',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'sender',\n type: 'address',\n },\n ],\n name: 'RoleRevoked',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'address',\n name: 'blastFeeTo',\n type: 'address',\n },\n ],\n name: 'SetBlastFeeToAddress',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'address',\n name: 'blastYieldTo',\n type: 'address',\n },\n ],\n name: 'SetBlastYieldToAddress',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'address',\n name: 'to',\n type: 'address',\n },\n ],\n name: 'SetToAddress',\n type: 'event',\n },\n {\n inputs: [],\n name: 'DEFAULT_ADMIN_ROLE',\n outputs: [\n {\n internalType: 'bytes32',\n name: '',\n type: 'bytes32',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'GAS_CLAIMER_ROLE',\n outputs: [\n {\n internalType: 'bytes32',\n name: '',\n type: 'bytes32',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'OPERATOR_ROLE',\n outputs: [\n {\n internalType: 'bytes32',\n name: '',\n type: 'bytes32',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'YIELD_CLAIMER_ROLE',\n outputs: [\n {\n internalType: 'bytes32',\n name: '',\n type: 'bytes32',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'VAULT_FACTORY_ROLE',\n outputs: [\n {\n internalType: 'bytes32',\n name: '',\n type: 'bytes32',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'dexV2Factory',\n type: 'address',\n },\n ],\n name: 'addDexV2Factory',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'blastFeeTo',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'blastYieldTo',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address[]',\n name: 'contractAddresses',\n type: 'address[]',\n },\n ],\n name: 'claimAllGas',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address[]',\n name: 'contractAddresses',\n type: 'address[]',\n },\n {\n internalType: 'uint256',\n name: 'minClaimRateBips',\n type: 'uint256',\n },\n ],\n name: 'claimGasAtMinClaimRate',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address[]',\n name: 'contractAddresses',\n type: 'address[]',\n },\n ],\n name: 'claimMaxGas',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address[]',\n name: 'instruments',\n type: 'address[]',\n },\n {\n internalType: 'uint32[]',\n name: 'expiries',\n type: 'uint32[]',\n },\n ],\n name: 'claimProtocolFee',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'quote',\n type: 'address',\n },\n ],\n name: 'claimYield',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'config',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'quote',\n type: 'address',\n },\n {\n internalType: 'enum YieldMode',\n name: 'yieldMode',\n type: 'uint8',\n },\n ],\n name: 'configureYieldMode',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'disableLiquidatorWhitelist',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'disableLpWhitelist',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'emergingFeederFactory',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'quote',\n type: 'address',\n },\n {\n internalType: 'bool',\n name: 'enable',\n type: 'bool',\n },\n ],\n name: 'enableLpWhitelistForQuote',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address[]',\n name: 'instruments',\n type: 'address[]',\n },\n ],\n name: 'freeze',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'gate',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n ],\n name: 'getRoleAdmin',\n outputs: [\n {\n internalType: 'bytes32',\n name: '',\n type: 'bytes32',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address[]',\n name: 'operators',\n type: 'address[]',\n },\n ],\n name: 'grantEmergingFeederFactoryOperator',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address[]',\n name: 'operators',\n type: 'address[]',\n },\n ],\n name: 'grantPythFeederFactoryOperator',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n {\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n ],\n name: 'grantRole',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n {\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n ],\n name: 'hasRole',\n outputs: [\n {\n internalType: 'bool',\n name: '',\n type: 'bool',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: '_admin',\n type: 'address',\n },\n {\n internalType: 'address[]',\n name: '_operator',\n type: 'address[]',\n },\n {\n internalType: 'address',\n name: '_to',\n type: 'address',\n },\n ],\n name: 'initialize',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes[]',\n name: 'data',\n type: 'bytes[]',\n },\n ],\n name: 'multicall',\n outputs: [\n {\n internalType: 'bytes[]',\n name: 'results',\n type: 'bytes[]',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address[]',\n name: 'instruments',\n type: 'address[]',\n },\n ],\n name: 'normalize',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'pythFeederFactory',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address[]',\n name: 'contractAddresses',\n type: 'address[]',\n },\n ],\n name: 'readGasParams',\n outputs: [\n {\n internalType: 'uint256[]',\n name: 'etherSeconds',\n type: 'uint256[]',\n },\n {\n internalType: 'uint256[]',\n name: 'etherBalance',\n type: 'uint256[]',\n },\n {\n internalType: 'uint256[]',\n name: 'lastUpdated',\n type: 'uint256[]',\n },\n {\n internalType: 'enum GasMode[]',\n name: 'gasModes',\n type: 'uint8[]',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address[]',\n name: 'contractAddresses',\n type: 'address[]',\n },\n {\n internalType: 'address',\n name: 'quote',\n type: 'address',\n },\n ],\n name: 'readYieldClaimableAmount',\n outputs: [\n {\n internalType: 'uint256[]',\n name: 'claimable',\n type: 'uint256[]',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address[]',\n name: 'instruments',\n type: 'address[]',\n },\n {\n internalType: 'uint32[]',\n name: 'expiries',\n type: 'uint32[]',\n },\n ],\n name: 'recycleInsuranceFund',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address[]',\n name: 'quotes',\n type: 'address[]',\n },\n {\n internalType: 'address[]',\n name: 'traders',\n type: 'address[]',\n },\n ],\n name: 'release',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n {\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n ],\n name: 'renounceRole',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address[]',\n name: 'instruments',\n type: 'address[]',\n },\n {\n internalType: 'uint128[]',\n name: 'settlementPrices',\n type: 'uint128[]',\n },\n ],\n name: 'resolve',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address[]',\n name: 'operators',\n type: 'address[]',\n },\n ],\n name: 'revokeEmergingFeederFactoryOperator',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address[]',\n name: 'operators',\n type: 'address[]',\n },\n ],\n name: 'revokePythFeederFactoryOperator',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n {\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n ],\n name: 'revokeRole',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address[]',\n name: 'traders',\n type: 'address[]',\n },\n {\n internalType: 'bool[]',\n name: 'banned',\n type: 'bool[]',\n },\n ],\n name: 'setBlacklist',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: '_blastFeeTo',\n type: 'address',\n },\n ],\n name: 'setBlastFeeToAddress',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'pointsAddress',\n type: 'address',\n },\n ],\n name: 'setBlastPointsAddress',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'operator',\n type: 'address',\n },\n ],\n name: 'setBlastPointsOperator',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: '_blastYieldTo',\n type: 'address',\n },\n ],\n name: 'setBlastYieldToAddress',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'string',\n name: 'marketType',\n type: 'string',\n },\n {\n internalType: 'address[]',\n name: 'instruments',\n type: 'address[]',\n },\n {\n components: [\n {\n internalType: 'enum FeederType',\n name: 'ftype',\n type: 'uint8',\n },\n {\n internalType: 'uint64',\n name: 'scaler0',\n type: 'uint64',\n },\n {\n internalType: 'address',\n name: 'aggregator0',\n type: 'address',\n },\n {\n internalType: 'uint24',\n name: 'heartBeat0',\n type: 'uint24',\n },\n {\n internalType: 'uint64',\n name: 'scaler1',\n type: 'uint64',\n },\n {\n internalType: 'address',\n name: 'aggregator1',\n type: 'address',\n },\n {\n internalType: 'uint24',\n name: 'heartBeat1',\n type: 'uint24',\n },\n ],\n internalType: 'struct PriceFeeder[]',\n name: 'priceFeeders',\n type: 'tuple[]',\n },\n ],\n name: 'setCexMarketPriceFeeder',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'string',\n name: 'marketType',\n type: 'string',\n },\n {\n internalType: 'uint256',\n name: 'newCompactEmaParam',\n type: 'uint256',\n },\n ],\n name: 'setCompactEmaParam',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: '_config',\n type: 'address',\n },\n {\n internalType: 'address',\n name: '_gate',\n type: 'address',\n },\n ],\n name: 'setConfigAndGateAddress',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address[]',\n name: 'coins',\n type: 'address[]',\n },\n {\n components: [\n {\n internalType: 'uint128',\n name: 'minMarginAmount',\n type: 'uint128',\n },\n {\n internalType: 'uint16',\n name: 'tradingFeeRatio',\n type: 'uint16',\n },\n {\n internalType: 'uint16',\n name: 'protocolFeeRatio',\n type: 'uint16',\n },\n {\n internalType: 'uint64',\n name: 'stabilityFeeRatioParam',\n type: 'uint64',\n },\n {\n internalType: 'enum QuoteType',\n name: 'qtype',\n type: 'uint8',\n },\n {\n internalType: 'uint128',\n name: 'tip',\n type: 'uint128',\n },\n ],\n internalType: 'struct QuoteParam[]',\n name: 'params',\n type: 'tuple[]',\n },\n ],\n name: 'setConfigQuoteParam',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: '_emergingFeederFactory',\n type: 'address',\n },\n ],\n name: 'setEmergingFeederFactoryAddress',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address[]',\n name: 'instruments',\n type: 'address[]',\n },\n {\n internalType: 'uint8[]',\n name: 'params',\n type: 'uint8[]',\n },\n ],\n name: 'setFundingHour',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address[]',\n name: 'instruments',\n type: 'address[]',\n },\n {\n internalType: 'uint16[]',\n name: 'imrs',\n type: 'uint16[]',\n },\n {\n internalType: 'uint16[]',\n name: 'mmrs',\n type: 'uint16[]',\n },\n ],\n name: 'setInstrumentLeverage',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address[]',\n name: 'instruments',\n type: 'address[]',\n },\n {\n components: [\n {\n internalType: 'uint128',\n name: 'minMarginAmount',\n type: 'uint128',\n },\n {\n internalType: 'uint16',\n name: 'tradingFeeRatio',\n type: 'uint16',\n },\n {\n internalType: 'uint16',\n name: 'protocolFeeRatio',\n type: 'uint16',\n },\n {\n internalType: 'uint64',\n name: 'stabilityFeeRatioParam',\n type: 'uint64',\n },\n {\n internalType: 'enum QuoteType',\n name: 'qtype',\n type: 'uint8',\n },\n {\n internalType: 'uint128',\n name: 'tip',\n type: 'uint128',\n },\n ],\n internalType: 'struct QuoteParam[]',\n name: 'params',\n type: 'tuple[]',\n },\n ],\n name: 'setInstrumentQuoteParam',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address[]',\n name: 'users',\n type: 'address[]',\n },\n {\n internalType: 'bool[]',\n name: 'flags',\n type: 'bool[]',\n },\n ],\n name: 'setLiquidatorWhitelist',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address[]',\n name: 'quotes',\n type: 'address[]',\n },\n {\n internalType: 'address[]',\n name: 'users',\n type: 'address[]',\n },\n {\n internalType: 'bool[]',\n name: 'flags',\n type: 'bool[]',\n },\n ],\n name: 'setLpWhiteList',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'string',\n name: 'mtype',\n type: 'string',\n },\n {\n internalType: 'address',\n name: 'market',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'beacon',\n type: 'address',\n },\n ],\n name: 'setMarketInfo',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint256',\n name: 'duration',\n type: 'uint256',\n },\n ],\n name: 'setPendingDuration',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address[]',\n name: 'instruments',\n type: 'address[]',\n },\n {\n internalType: 'bool[]',\n name: 'params',\n type: 'bool[]',\n },\n ],\n name: 'setPlacePaused',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: '_pythFeederFactory',\n type: 'address',\n },\n ],\n name: 'setPythFeederFactoryAddress',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'baseIndex',\n type: 'bytes32',\n },\n {\n internalType: 'bytes32',\n name: '_id',\n type: 'bytes32',\n },\n ],\n name: 'setPythFeederId',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'newAdmin',\n type: 'address',\n },\n ],\n name: 'setSynFuturesV3Admin',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address[]',\n name: 'quotes',\n type: 'address[]',\n },\n {\n internalType: 'uint256[]',\n name: 'thresholds',\n type: 'uint256[]',\n },\n ],\n name: 'setThreshold',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: '_to',\n type: 'address',\n },\n ],\n name: 'setToAddress',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes4',\n name: 'interfaceId',\n type: 'bytes4',\n },\n ],\n name: 'supportsInterface',\n outputs: [\n {\n internalType: 'bool',\n name: '',\n type: 'bool',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'syncPointsOperator',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'to',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'newAdmin',\n type: 'address',\n },\n ],\n name: 'transferEmergingFeederFactoryAdmin',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'newAdmin',\n type: 'address',\n },\n ],\n name: 'transferPythFeederFactoryAdmin',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address[]',\n name: 'quotes',\n type: 'address[]',\n },\n {\n internalType: 'uint256[]',\n name: 'amounts',\n type: 'uint256[]',\n },\n ],\n name: 'withdrawFromGate',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address[]',\n name: 'tokens',\n type: 'address[]',\n },\n ],\n name: 'withdrawFromGuardian',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n];\nclass Guardian__factory {\n static createInterface() {\n return new ethers_1.utils.Interface(_abi);\n }\n static connect(address, signerOrProvider) {\n return new ethers_1.Contract(address, _abi, signerOrProvider);\n }\n}\nexports.Guardian__factory = Guardian__factory;\nGuardian__factory.abi = _abi;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ICexPriceFeeder__factory = void 0;\nconst ethers_1 = require(\"ethers\");\nconst _abi = [\n {\n inputs: [],\n name: 'decimals',\n outputs: [\n {\n internalType: 'uint8',\n name: '',\n type: 'uint8',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'latestRoundData',\n outputs: [\n {\n internalType: 'uint80',\n name: 'roundId',\n type: 'uint80',\n },\n {\n internalType: 'int256',\n name: 'answer',\n type: 'int256',\n },\n {\n internalType: 'uint256',\n name: 'startedAt',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'updatedAt',\n type: 'uint256',\n },\n {\n internalType: 'uint80',\n name: 'answeredInRound',\n type: 'uint80',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n];\nclass ICexPriceFeeder__factory {\n static createInterface() {\n return new ethers_1.utils.Interface(_abi);\n }\n static connect(address, signerOrProvider) {\n return new ethers_1.Contract(address, _abi, signerOrProvider);\n }\n}\nexports.ICexPriceFeeder__factory = ICexPriceFeeder__factory;\nICexPriceFeeder__factory.abi = _abi;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Instrument__factory = void 0;\nconst ethers_1 = require(\"ethers\");\nconst _abi = [\n {\n inputs: [],\n stateMutability: 'nonpayable',\n type: 'constructor',\n },\n {\n inputs: [],\n name: 'AddTraderIneligible',\n type: 'error',\n },\n {\n inputs: [],\n name: 'AlreadyInitialized',\n type: 'error',\n },\n {\n inputs: [],\n name: 'BadAmmStatus',\n type: 'error',\n },\n {\n inputs: [],\n name: 'BadInstrumentCondition',\n type: 'error',\n },\n {\n inputs: [],\n name: 'BadMinMarginAmount',\n type: 'error',\n },\n {\n inputs: [],\n name: 'BadProtocolFeeRatio',\n type: 'error',\n },\n {\n inputs: [],\n name: 'BadTip',\n type: 'error',\n },\n {\n inputs: [],\n name: 'BadTradingFeeRatio',\n type: 'error',\n },\n {\n inputs: [],\n name: 'DivByZero',\n type: 'error',\n },\n {\n inputs: [],\n name: 'ExpiryNotAligned',\n type: 'error',\n },\n {\n inputs: [\n {\n internalType: 'uint256',\n name: 'margin',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'minMargin',\n type: 'uint256',\n },\n ],\n name: 'InitTrivial',\n type: 'error',\n },\n {\n inputs: [],\n name: 'LiquidatorIneligible',\n type: 'error',\n },\n {\n inputs: [],\n name: 'Locked',\n type: 'error',\n },\n {\n inputs: [],\n name: 'NotGate',\n type: 'error',\n },\n {\n inputs: [],\n name: 'NotSynFuturesV3Admin',\n type: 'error',\n },\n {\n inputs: [],\n name: 'NotTradeable',\n type: 'error',\n },\n {\n inputs: [\n {\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n ],\n name: 'PairNotCleared',\n type: 'error',\n },\n {\n inputs: [],\n name: 'RoundHalfUpBadParam',\n type: 'error',\n },\n {\n inputs: [],\n name: 'PlacePaused',\n type: 'error',\n },\n {\n inputs: [],\n name: 'SelfLiquidation',\n type: 'error',\n },\n {\n inputs: [],\n name: 'TickOutOfBound',\n type: 'error',\n },\n {\n inputs: [],\n name: 'Timeout',\n type: 'error',\n },\n {\n inputs: [],\n name: 'ZeroAddress',\n type: 'error',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'uint8',\n name: 'version',\n type: 'uint8',\n },\n ],\n name: 'Initialized',\n type: 'event',\n },\n {\n inputs: [\n {\n internalType: 'bytes32[2]',\n name: 'args',\n type: 'bytes32[2]',\n },\n ],\n name: 'add',\n outputs: [\n {\n internalType: 'int24',\n name: 'tickLower',\n type: 'int24',\n },\n {\n internalType: 'int24',\n name: 'tickUpper',\n type: 'int24',\n },\n {\n components: [\n {\n internalType: 'uint128',\n name: 'liquidity',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'entryFeeIndex',\n type: 'uint128',\n },\n {\n internalType: 'uint96',\n name: 'balance',\n type: 'uint96',\n },\n {\n internalType: 'uint160',\n name: 'sqrtEntryPX96',\n type: 'uint160',\n },\n ],\n internalType: 'struct Range',\n name: 'range',\n type: 'tuple',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32[3]',\n name: 'args',\n type: 'bytes32[3]',\n },\n ],\n name: 'batchPlace',\n outputs: [\n {\n internalType: 'uint24[]',\n name: 'nonces',\n type: 'uint24[]',\n },\n {\n components: [\n {\n internalType: 'uint128',\n name: 'balance',\n type: 'uint128',\n },\n {\n internalType: 'int128',\n name: 'size',\n type: 'int128',\n },\n ],\n internalType: 'struct Order[]',\n name: 'orders',\n type: 'tuple[]',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'arg',\n type: 'bytes32',\n },\n ],\n name: 'cancel',\n outputs: [\n {\n internalType: 'bool[8]',\n name: 'succees',\n type: 'bool[8]',\n },\n {\n components: [\n {\n internalType: 'int256',\n name: 'balance',\n type: 'int256',\n },\n {\n internalType: 'int256',\n name: 'size',\n type: 'int256',\n },\n {\n internalType: 'uint256',\n name: 'entryNotional',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'entrySocialLossIndex',\n type: 'uint256',\n },\n {\n internalType: 'int256',\n name: 'entryFundingIndex',\n type: 'int256',\n },\n ],\n internalType: 'struct PositionCache[8]',\n name: 'pics',\n type: 'tuple[8]',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n ],\n name: 'claimProtocolFee',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'to',\n type: 'address',\n },\n ],\n name: 'claimYield',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'condition',\n outputs: [\n {\n internalType: 'enum Condition',\n name: '',\n type: 'uint8',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'enum YieldMode',\n name: 'yieldMode',\n type: 'uint8',\n },\n ],\n name: 'configureYieldMode',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n internalType: 'uint256',\n name: 'amount',\n type: 'uint256',\n },\n ],\n name: 'donateInsuranceFund',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'arg',\n type: 'bytes32',\n },\n ],\n name: 'fill',\n outputs: [\n {\n components: [\n {\n internalType: 'int256',\n name: 'balance',\n type: 'int256',\n },\n {\n internalType: 'int256',\n name: 'size',\n type: 'int256',\n },\n {\n internalType: 'uint256',\n name: 'entryNotional',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'entrySocialLossIndex',\n type: 'uint256',\n },\n {\n internalType: 'int256',\n name: 'entryFundingIndex',\n type: 'int256',\n },\n ],\n internalType: 'struct PositionCache',\n name: 'pic',\n type: 'tuple',\n },\n {\n internalType: 'uint256',\n name: 'tip',\n type: 'uint256',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'freeze',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'fundingHour',\n outputs: [\n {\n internalType: 'uint8',\n name: '',\n type: 'uint8',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'getExpiries',\n outputs: [\n {\n internalType: 'uint32[]',\n name: '',\n type: 'uint32[]',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'target',\n type: 'address',\n },\n {\n internalType: 'bytes32[2]',\n name: 'args',\n type: 'bytes32[2]',\n },\n ],\n name: 'init',\n outputs: [\n {\n internalType: 'int24',\n name: 'tickLower',\n type: 'int24',\n },\n {\n internalType: 'int24',\n name: 'tickUpper',\n type: 'int24',\n },\n {\n components: [\n {\n internalType: 'uint128',\n name: 'liquidity',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'entryFeeIndex',\n type: 'uint128',\n },\n {\n internalType: 'uint96',\n name: 'balance',\n type: 'uint96',\n },\n {\n internalType: 'uint160',\n name: 'sqrtEntryPX96',\n type: 'uint160',\n },\n ],\n internalType: 'struct Range',\n name: 'range',\n type: 'tuple',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes',\n name: 'data',\n type: 'bytes',\n },\n ],\n name: 'initialize',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n internalType: 'int256',\n name: 'size',\n type: 'int256',\n },\n ],\n name: 'inquire',\n outputs: [\n {\n components: [\n {\n internalType: 'uint256',\n name: 'benchmark',\n type: 'uint256',\n },\n {\n internalType: 'uint160',\n name: 'sqrtFairPX96',\n type: 'uint160',\n },\n {\n internalType: 'int24',\n name: 'tick',\n type: 'int24',\n },\n {\n internalType: 'uint256',\n name: 'mark',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'entryNotional',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'fee',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'minAmount',\n type: 'uint256',\n },\n {\n internalType: 'uint160',\n name: 'sqrtPostFairPX96',\n type: 'uint160',\n },\n {\n internalType: 'int24',\n name: 'postTick',\n type: 'int24',\n },\n ],\n internalType: 'struct Quotation',\n name: '',\n type: 'tuple',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n internalType: 'address',\n name: 'target',\n type: 'address',\n },\n {\n internalType: 'int256',\n name: 'size',\n type: 'int256',\n },\n {\n internalType: 'uint256',\n name: 'amount',\n type: 'uint256',\n },\n ],\n name: 'liquidate',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes[]',\n name: 'data',\n type: 'bytes[]',\n },\n ],\n name: 'multicall',\n outputs: [\n {\n internalType: 'bytes[]',\n name: 'results',\n type: 'bytes[]',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'normalize',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32[2]',\n name: 'args',\n type: 'bytes32[2]',\n },\n ],\n name: 'place',\n outputs: [\n {\n internalType: 'uint24',\n name: 'nonce',\n type: 'uint24',\n },\n {\n components: [\n {\n internalType: 'uint128',\n name: 'balance',\n type: 'uint128',\n },\n {\n internalType: 'int128',\n name: 'size',\n type: 'int128',\n },\n ],\n internalType: 'struct Order',\n name: 'order',\n type: 'tuple',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'placePaused',\n outputs: [\n {\n internalType: 'bool',\n name: '',\n type: 'bool',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n internalType: 'address',\n name: 'target',\n type: 'address',\n },\n {\n internalType: 'enum QueryAcc',\n name: 'query',\n type: 'uint8',\n },\n {\n internalType: 'bytes',\n name: 'inputs',\n type: 'bytes',\n },\n ],\n name: 'queryAccount',\n outputs: [\n {\n internalType: 'bytes',\n name: 'result',\n type: 'bytes',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n internalType: 'enum QueryCtx',\n name: 'query',\n type: 'uint8',\n },\n {\n internalType: 'uint256[]',\n name: 'offsets',\n type: 'uint256[]',\n },\n {\n internalType: 'bytes',\n name: 'inputs',\n type: 'bytes',\n },\n ],\n name: 'queryContext',\n outputs: [\n {\n internalType: 'uint256[]',\n name: '',\n type: 'uint256[]',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint256[]',\n name: 'offsets',\n type: 'uint256[]',\n },\n ],\n name: 'querySetting',\n outputs: [\n {\n internalType: 'uint256[]',\n name: '',\n type: 'uint256[]',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n ],\n name: 'recycleInsuranceFund',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32[2]',\n name: 'args',\n type: 'bytes32[2]',\n },\n ],\n name: 'remove',\n outputs: [\n {\n components: [\n {\n internalType: 'int256',\n name: 'balance',\n type: 'int256',\n },\n {\n internalType: 'int256',\n name: 'size',\n type: 'int256',\n },\n {\n internalType: 'uint256',\n name: 'entryNotional',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'entrySocialLossIndex',\n type: 'uint256',\n },\n {\n internalType: 'int256',\n name: 'entryFundingIndex',\n type: 'int256',\n },\n ],\n internalType: 'struct PositionCache',\n name: 'pic',\n type: 'tuple',\n },\n {\n internalType: 'uint256',\n name: 'fee',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'tip',\n type: 'uint256',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint128',\n name: 'settlementPrice',\n type: 'uint128',\n },\n ],\n name: 'resolve',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint8',\n name: 'newFundingHour',\n type: 'uint8',\n },\n ],\n name: 'setFundingHour',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint16',\n name: 'initialMarginRatio',\n type: 'uint16',\n },\n {\n internalType: 'uint16',\n name: 'maintenanceMarginRatio',\n type: 'uint16',\n },\n ],\n name: 'setLeverage',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bool',\n name: 'paused',\n type: 'bool',\n },\n ],\n name: 'setPlacePaused',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n components: [\n {\n internalType: 'uint128',\n name: 'minMarginAmount',\n type: 'uint128',\n },\n {\n internalType: 'uint16',\n name: 'tradingFeeRatio',\n type: 'uint16',\n },\n {\n internalType: 'uint16',\n name: 'protocolFeeRatio',\n type: 'uint16',\n },\n {\n internalType: 'uint64',\n name: 'stabilityFeeRatioParam',\n type: 'uint64',\n },\n {\n internalType: 'enum QuoteType',\n name: 'qtype',\n type: 'uint8',\n },\n {\n internalType: 'uint128',\n name: 'tip',\n type: 'uint128',\n },\n ],\n internalType: 'struct QuoteParam',\n name: 'param',\n type: 'tuple',\n },\n ],\n name: 'setQuoteParam',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n internalType: 'address',\n name: 'target',\n type: 'address',\n },\n ],\n name: 'settle',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n internalType: 'address',\n name: 'target',\n type: 'address',\n },\n {\n internalType: 'int256',\n name: 'size',\n type: 'int256',\n },\n ],\n name: 'sweep',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'syncPointsOperator',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32[2]',\n name: 'args',\n type: 'bytes32[2]',\n },\n ],\n name: 'trade',\n outputs: [\n {\n components: [\n {\n internalType: 'int256',\n name: 'balance',\n type: 'int256',\n },\n {\n internalType: 'int256',\n name: 'size',\n type: 'int256',\n },\n {\n internalType: 'uint256',\n name: 'entryNotional',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'entrySocialLossIndex',\n type: 'uint256',\n },\n {\n internalType: 'int256',\n name: 'entryFundingIndex',\n type: 'int256',\n },\n ],\n internalType: 'struct PositionCache',\n name: '',\n type: 'tuple',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n ],\n name: 'update',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'trader',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'int24',\n name: 'tickLower',\n type: 'int24',\n },\n {\n indexed: false,\n internalType: 'int24',\n name: 'tickUpper',\n type: 'int24',\n },\n {\n components: [\n {\n internalType: 'uint128',\n name: 'liquidity',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'entryFeeIndex',\n type: 'uint128',\n },\n {\n internalType: 'uint96',\n name: 'balance',\n type: 'uint96',\n },\n {\n internalType: 'uint160',\n name: 'sqrtEntryPX96',\n type: 'uint160',\n },\n ],\n indexed: false,\n internalType: 'struct Range',\n name: 'range',\n type: 'tuple',\n },\n ],\n name: 'Add',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'trader',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'int256',\n name: 'net',\n type: 'int256',\n },\n ],\n name: 'Adjust',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'trader',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'int24',\n name: 'tick',\n type: 'int24',\n },\n {\n indexed: false,\n internalType: 'uint32',\n name: 'nonce',\n type: 'uint32',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'fee',\n type: 'uint256',\n },\n {\n components: [\n {\n internalType: 'int256',\n name: 'balance',\n type: 'int256',\n },\n {\n internalType: 'int256',\n name: 'size',\n type: 'int256',\n },\n {\n internalType: 'uint256',\n name: 'entryNotional',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'entrySocialLossIndex',\n type: 'uint256',\n },\n {\n internalType: 'int256',\n name: 'entryFundingIndex',\n type: 'int256',\n },\n ],\n indexed: false,\n internalType: 'struct PositionCache',\n name: 'pic',\n type: 'tuple',\n },\n ],\n name: 'Cancel',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'amount',\n type: 'uint256',\n },\n ],\n name: 'ClaimProtocolFee',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n ],\n name: 'DeleteContext',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'donator',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'amount',\n type: 'uint256',\n },\n ],\n name: 'DonateInsuranceFund',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'trader',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'int24',\n name: 'tick',\n type: 'int24',\n },\n {\n indexed: false,\n internalType: 'uint32',\n name: 'nonce',\n type: 'uint32',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'fee',\n type: 'uint256',\n },\n {\n components: [\n {\n internalType: 'int256',\n name: 'balance',\n type: 'int256',\n },\n {\n internalType: 'int256',\n name: 'size',\n type: 'int256',\n },\n {\n internalType: 'uint256',\n name: 'entryNotional',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'entrySocialLossIndex',\n type: 'uint256',\n },\n {\n internalType: 'int256',\n name: 'entryFundingIndex',\n type: 'int256',\n },\n ],\n indexed: false,\n internalType: 'struct PositionCache',\n name: 'pic',\n type: 'tuple',\n },\n {\n indexed: false,\n internalType: 'address',\n name: 'operator',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'tip',\n type: 'uint256',\n },\n ],\n name: 'Fill',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'trader',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'int256',\n name: 'funding',\n type: 'int256',\n },\n ],\n name: 'FundingFee',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'trader',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'amount',\n type: 'uint256',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'mark',\n type: 'uint256',\n },\n {\n indexed: false,\n internalType: 'address',\n name: 'target',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'int256',\n name: 'size',\n type: 'int256',\n },\n ],\n name: 'Liquidate',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'trader',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'int24',\n name: 'tick',\n type: 'int24',\n },\n {\n indexed: false,\n internalType: 'uint32',\n name: 'nonce',\n type: 'uint32',\n },\n {\n components: [\n {\n internalType: 'uint128',\n name: 'balance',\n type: 'uint128',\n },\n {\n internalType: 'int128',\n name: 'size',\n type: 'int128',\n },\n ],\n indexed: false,\n internalType: 'struct Order',\n name: 'order',\n type: 'tuple',\n },\n ],\n name: 'Place',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'amount',\n type: 'uint256',\n },\n ],\n name: 'RecycleInsuranceFund',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'trader',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'int24',\n name: 'tickLower',\n type: 'int24',\n },\n {\n indexed: false,\n internalType: 'int24',\n name: 'tickUpper',\n type: 'int24',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'fee',\n type: 'uint256',\n },\n {\n components: [\n {\n internalType: 'int256',\n name: 'balance',\n type: 'int256',\n },\n {\n internalType: 'int256',\n name: 'size',\n type: 'int256',\n },\n {\n internalType: 'uint256',\n name: 'entryNotional',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'entrySocialLossIndex',\n type: 'uint256',\n },\n {\n internalType: 'int256',\n name: 'entryFundingIndex',\n type: 'int256',\n },\n ],\n indexed: false,\n internalType: 'struct PositionCache',\n name: 'pic',\n type: 'tuple',\n },\n {\n indexed: false,\n internalType: 'address',\n name: 'operator',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'tip',\n type: 'uint256',\n },\n ],\n name: 'Remove',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'trader',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'settlement',\n type: 'uint256',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'balance',\n type: 'uint256',\n },\n {\n indexed: false,\n internalType: 'address',\n name: 'operator',\n type: 'address',\n },\n ],\n name: 'Settle',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'trader',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'int256',\n name: 'size',\n type: 'int256',\n },\n {\n indexed: false,\n internalType: 'int256',\n name: 'takenSize',\n type: 'int256',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'takenValue',\n type: 'uint256',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'entryNotional',\n type: 'uint256',\n },\n {\n indexed: false,\n internalType: 'uint16',\n name: 'feeRatio',\n type: 'uint16',\n },\n {\n indexed: false,\n internalType: 'uint160',\n name: 'sqrtPX96',\n type: 'uint160',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'mark',\n type: 'uint256',\n },\n {\n indexed: false,\n internalType: 'address',\n name: 'operator',\n type: 'address',\n },\n ],\n name: 'Sweep',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'trader',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'int256',\n name: 'size',\n type: 'int256',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'amount',\n type: 'uint256',\n },\n {\n indexed: false,\n internalType: 'int256',\n name: 'takenSize',\n type: 'int256',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'takenValue',\n type: 'uint256',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'entryNotional',\n type: 'uint256',\n },\n {\n indexed: false,\n internalType: 'uint16',\n name: 'feeRatio',\n type: 'uint16',\n },\n {\n indexed: false,\n internalType: 'uint160',\n name: 'sqrtPX96',\n type: 'uint160',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'mark',\n type: 'uint256',\n },\n ],\n name: 'Trade',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n indexed: false,\n internalType: 'enum Status',\n name: 'status',\n type: 'uint8',\n },\n {\n indexed: false,\n internalType: 'uint160',\n name: 'sqrtPX96',\n type: 'uint160',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'mark',\n type: 'uint256',\n },\n ],\n name: 'UpdateAmmStatus',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'uint32',\n name: 'timestamp',\n type: 'uint32',\n },\n {\n indexed: false,\n internalType: 'enum Condition',\n name: 'condition',\n type: 'uint8',\n },\n ],\n name: 'UpdateCondition',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n indexed: false,\n internalType: 'uint128',\n name: 'feeIndex',\n type: 'uint128',\n },\n {\n indexed: false,\n internalType: 'uint128',\n name: 'protocolFee',\n type: 'uint128',\n },\n ],\n name: 'UpdateFeeState',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'uint8',\n name: 'fundingHour',\n type: 'uint8',\n },\n ],\n name: 'UpdateFundingHour',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'uint256',\n name: 'fundingIndex',\n type: 'uint256',\n },\n ],\n name: 'UpdateFundingIndex',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'uint16',\n name: 'initialMarginRatio',\n type: 'uint16',\n },\n {\n indexed: false,\n internalType: 'uint16',\n name: 'maintenanceMarginRatio',\n type: 'uint16',\n },\n ],\n name: 'UpdateMarginRatio',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n components: [\n {\n internalType: 'uint128',\n name: 'minMarginAmount',\n type: 'uint128',\n },\n {\n internalType: 'uint16',\n name: 'tradingFeeRatio',\n type: 'uint16',\n },\n {\n internalType: 'uint16',\n name: 'protocolFeeRatio',\n type: 'uint16',\n },\n {\n internalType: 'uint64',\n name: 'stabilityFeeRatioParam',\n type: 'uint64',\n },\n {\n internalType: 'enum QuoteType',\n name: 'qtype',\n type: 'uint8',\n },\n {\n internalType: 'uint128',\n name: 'tip',\n type: 'uint128',\n },\n ],\n indexed: false,\n internalType: 'struct QuoteParam',\n name: 'param',\n type: 'tuple',\n },\n ],\n name: 'UpdateParam',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'trader',\n type: 'address',\n },\n {\n components: [\n {\n internalType: 'int256',\n name: 'balance',\n type: 'int256',\n },\n {\n internalType: 'int256',\n name: 'size',\n type: 'int256',\n },\n {\n internalType: 'uint256',\n name: 'entryNotional',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'entrySocialLossIndex',\n type: 'uint256',\n },\n {\n internalType: 'int256',\n name: 'entryFundingIndex',\n type: 'int256',\n },\n ],\n indexed: false,\n internalType: 'struct PositionCache',\n name: 'pic',\n type: 'tuple',\n },\n ],\n name: 'UpdatePosition',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n indexed: false,\n internalType: 'uint128',\n name: 'longSocialLossIndex',\n type: 'uint128',\n },\n {\n indexed: false,\n internalType: 'uint128',\n name: 'shortSocialLossIndex',\n type: 'uint128',\n },\n {\n indexed: false,\n internalType: 'uint128',\n name: 'insuranceFund',\n type: 'uint128',\n },\n ],\n name: 'UpdateSocialLossInsuranceFund',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'trader',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'uint48',\n name: 'rid',\n type: 'uint48',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'fee',\n type: 'uint256',\n },\n {\n indexed: false,\n internalType: 'address',\n name: 'operator',\n type: 'address',\n },\n {\n components: [\n {\n internalType: 'uint128',\n name: 'liquidity',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'entryFeeIndex',\n type: 'uint128',\n },\n {\n internalType: 'uint96',\n name: 'balance',\n type: 'uint96',\n },\n {\n internalType: 'uint160',\n name: 'sqrtEntryPX96',\n type: 'uint160',\n },\n ],\n indexed: false,\n internalType: 'struct Range',\n name: 'range',\n type: 'tuple',\n },\n ],\n name: 'WithdrawRangeFee',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'address',\n name: 'previousAdmin',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'address',\n name: 'newAdmin',\n type: 'address',\n },\n ],\n name: 'AdminChanged',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'beacon',\n type: 'address',\n },\n ],\n name: 'BeaconUpgraded',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'implementation',\n type: 'address',\n },\n ],\n name: 'Upgraded',\n type: 'event',\n },\n {\n inputs: [],\n name: 'AddLiquidityExceedMax',\n type: 'error',\n },\n {\n inputs: [],\n name: 'AddOverflow',\n type: 'error',\n },\n {\n inputs: [],\n name: 'BadAmmTiming',\n type: 'error',\n },\n {\n inputs: [],\n name: 'BadMaintenanceMarginRatio',\n type: 'error',\n },\n {\n inputs: [\n {\n internalType: 'int256',\n name: 'totalSize',\n type: 'int256',\n },\n {\n internalType: 'int256',\n name: 'requestedSize',\n type: 'int256',\n },\n ],\n name: 'BadTargetSize',\n type: 'error',\n },\n {\n inputs: [],\n name: 'FairDeviation',\n type: 'error',\n },\n {\n inputs: [],\n name: 'InvariantBroken',\n type: 'error',\n },\n {\n inputs: [],\n name: 'LiquidatePostImrUnsafe',\n type: 'error',\n },\n {\n inputs: [\n {\n internalType: 'bool',\n name: 'noShortParty',\n type: 'bool',\n },\n {\n internalType: 'uint256',\n name: 'socialLoss',\n type: 'uint256',\n },\n ],\n name: 'NoCounterparty',\n type: 'error',\n },\n {\n inputs: [],\n name: 'OrderFull',\n type: 'error',\n },\n {\n inputs: [\n {\n internalType: 'uint256',\n name: 'amount',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'minAmount',\n type: 'uint256',\n },\n ],\n name: 'OrderImrUnsafe',\n type: 'error',\n },\n {\n inputs: [],\n name: 'OrderNotExist',\n type: 'error',\n },\n {\n inputs: [\n {\n internalType: 'int256',\n name: 'requested',\n type: 'int256',\n },\n {\n internalType: 'int256',\n name: 'taken',\n type: 'int256',\n },\n ],\n name: 'OrderNotFullyTaken',\n type: 'error',\n },\n {\n inputs: [],\n name: 'OrderOccupied',\n type: 'error',\n },\n {\n inputs: [],\n name: 'OrderTickUnaligned',\n type: 'error',\n },\n {\n inputs: [],\n name: 'OrderTooFar',\n type: 'error',\n },\n {\n inputs: [],\n name: 'OrderTrivial',\n type: 'error',\n },\n {\n inputs: [],\n name: 'OrderWrongSide',\n type: 'error',\n },\n {\n inputs: [],\n name: 'PositionBankrupt',\n type: 'error',\n },\n {\n inputs: [],\n name: 'PositionNotExist',\n type: 'error',\n },\n {\n inputs: [],\n name: 'RangeNotExist',\n type: 'error',\n },\n {\n inputs: [],\n name: 'ReuseNonEmptyRecord',\n type: 'error',\n },\n {\n inputs: [],\n name: 'TargetSafe',\n type: 'error',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'token',\n type: 'address',\n },\n ],\n name: 'GetErc20DecimalsFailed',\n type: 'error',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'token',\n type: 'address',\n },\n ],\n name: 'GetErc20NameFailed',\n type: 'error',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'token',\n type: 'address',\n },\n ],\n name: 'GetErc20SymbolFailed',\n type: 'error',\n },\n {\n inputs: [],\n name: 'AddInvalidTickDelta',\n type: 'error',\n },\n {\n inputs: [],\n name: 'AddSlippage',\n type: 'error',\n },\n {\n inputs: [\n {\n internalType: 'uint256',\n name: 'liquidity',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'minLiquidity',\n type: 'uint256',\n },\n ],\n name: 'AddTrivial',\n type: 'error',\n },\n {\n inputs: [],\n name: 'CrazySpot',\n type: 'error',\n },\n {\n inputs: [],\n name: 'ExpiryBelowSettlingDuration',\n type: 'error',\n },\n {\n inputs: [],\n name: 'ExpiryExceedMaxExpiryPeriod',\n type: 'error',\n },\n {\n inputs: [],\n name: 'RangeFull',\n type: 'error',\n },\n {\n inputs: [],\n name: 'RangeOccupied',\n type: 'error',\n },\n {\n inputs: [],\n name: 'RemoveActiveRange',\n type: 'error',\n },\n {\n inputs: [],\n name: 'RemoveSlippage',\n type: 'error',\n },\n {\n inputs: [],\n name: 'SqrtPX96OutOfBound',\n type: 'error',\n },\n {\n inputs: [],\n name: 'CrazyDeviation',\n type: 'error',\n },\n {\n inputs: [],\n name: 'DivUnderflow',\n type: 'error',\n },\n {\n inputs: [],\n name: 'ForbidNegativeAdjust',\n type: 'error',\n },\n {\n inputs: [],\n name: 'MulOverflow',\n type: 'error',\n },\n {\n inputs: [],\n name: 'TradeImrUnsafe',\n type: 'error',\n },\n {\n inputs: [],\n name: 'TradeMmrUnsafe',\n type: 'error',\n },\n {\n inputs: [],\n name: 'TradeOutOfLiquidity',\n type: 'error',\n },\n {\n inputs: [],\n name: 'TradeSlippage',\n type: 'error',\n },\n {\n inputs: [\n {\n internalType: 'uint16',\n name: 'stabilityFeeRatio',\n type: 'uint16',\n },\n {\n internalType: 'uint16',\n name: 'limitStabilityFeeRatio',\n type: 'uint16',\n },\n ],\n name: 'TradeStabilityFeeLimit',\n type: 'error',\n },\n {\n inputs: [],\n name: 'TradeTrivial',\n type: 'error',\n },\n];\nclass Instrument__factory {\n static createInterface() {\n return new ethers_1.utils.Interface(_abi);\n }\n static connect(address, signerOrProvider) {\n return new ethers_1.Contract(address, _abi, signerOrProvider);\n }\n}\nexports.Instrument__factory = Instrument__factory;\nInstrument__factory.abi = _abi;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MerkleDistributorWithDeadline__factory = void 0;\nconst ethers_1 = require(\"ethers\");\nconst _abi = [\n {\n inputs: [\n {\n internalType: 'address',\n name: 'token',\n type: 'address',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'constructor',\n },\n {\n inputs: [],\n name: 'AlreadyClaimed',\n type: 'error',\n },\n {\n inputs: [],\n name: 'ClaimWindowFinished',\n type: 'error',\n },\n {\n inputs: [],\n name: 'EndTimeInPast',\n type: 'error',\n },\n {\n inputs: [],\n name: 'InvalidProof',\n type: 'error',\n },\n {\n inputs: [],\n name: 'NotAdmin',\n type: 'error',\n },\n {\n inputs: [],\n name: 'NotOperator',\n type: 'error',\n },\n {\n inputs: [],\n name: 'RootNotSet',\n type: 'error',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'uint256',\n name: 'epoch',\n type: 'uint256',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'index',\n type: 'uint256',\n },\n {\n indexed: false,\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'amount',\n type: 'uint256',\n },\n ],\n name: 'Claimed',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'uint8',\n name: 'version',\n type: 'uint8',\n },\n ],\n name: 'Initialized',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'uint256',\n name: 'epoch',\n type: 'uint256',\n },\n {\n indexed: false,\n internalType: 'bytes32',\n name: 'root',\n type: 'bytes32',\n },\n ],\n name: 'MerkleRootSet',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n {\n indexed: true,\n internalType: 'bytes32',\n name: 'previousAdminRole',\n type: 'bytes32',\n },\n {\n indexed: true,\n internalType: 'bytes32',\n name: 'newAdminRole',\n type: 'bytes32',\n },\n ],\n name: 'RoleAdminChanged',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'sender',\n type: 'address',\n },\n ],\n name: 'RoleGranted',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'sender',\n type: 'address',\n },\n ],\n name: 'RoleRevoked',\n type: 'event',\n },\n {\n inputs: [],\n name: 'DEFAULT_ADMIN_ROLE',\n outputs: [\n {\n internalType: 'bytes32',\n name: '',\n type: 'bytes32',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'OPERATOR_ROLE',\n outputs: [\n {\n internalType: 'bytes32',\n name: '',\n type: 'bytes32',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint256',\n name: 'epoch',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'index',\n type: 'uint256',\n },\n {\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: 'amount',\n type: 'uint256',\n },\n {\n internalType: 'bytes32[]',\n name: 'merkleProof',\n type: 'bytes32[]',\n },\n ],\n name: 'claim',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'endTime',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'getAllOperators',\n outputs: [\n {\n internalType: 'address[]',\n name: '',\n type: 'address[]',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n ],\n name: 'getAllRoleMembers',\n outputs: [\n {\n internalType: 'address[]',\n name: '',\n type: 'address[]',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n ],\n name: 'getRoleAdmin',\n outputs: [\n {\n internalType: 'bytes32',\n name: '',\n type: 'bytes32',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n {\n internalType: 'uint256',\n name: 'index',\n type: 'uint256',\n },\n ],\n name: 'getRoleMember',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n ],\n name: 'getRoleMemberCount',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n {\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n ],\n name: 'grantRole',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n {\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n ],\n name: 'hasRole',\n outputs: [\n {\n internalType: 'bool',\n name: '',\n type: 'bool',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'admin',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: '_endTime',\n type: 'uint256',\n },\n ],\n name: 'initialize',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'user',\n type: 'address',\n },\n ],\n name: 'isAdmin',\n outputs: [\n {\n internalType: 'bool',\n name: '',\n type: 'bool',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint256',\n name: 'epoch',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'index',\n type: 'uint256',\n },\n ],\n name: 'isClaimed',\n outputs: [\n {\n internalType: 'bool',\n name: '',\n type: 'bool',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'user',\n type: 'address',\n },\n ],\n name: 'isOperator',\n outputs: [\n {\n internalType: 'bool',\n name: '',\n type: 'bool',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n name: 'merkleRoot',\n outputs: [\n {\n internalType: 'bytes32',\n name: '',\n type: 'bytes32',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes[]',\n name: 'data',\n type: 'bytes[]',\n },\n ],\n name: 'multicall',\n outputs: [\n {\n internalType: 'bytes[]',\n name: 'results',\n type: 'bytes[]',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n {\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n ],\n name: 'renounceRole',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n {\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n ],\n name: 'revokeRole',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint256',\n name: 'epoch',\n type: 'uint256',\n },\n {\n internalType: 'bytes32',\n name: 'root',\n type: 'bytes32',\n },\n ],\n name: 'setMerkleRoot',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes4',\n name: 'interfaceId',\n type: 'bytes4',\n },\n ],\n name: 'supportsInterface',\n outputs: [\n {\n internalType: 'bool',\n name: '',\n type: 'bool',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'token',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n];\nclass MerkleDistributorWithDeadline__factory {\n static createInterface() {\n return new ethers_1.utils.Interface(_abi);\n }\n static connect(address, signerOrProvider) {\n return new ethers_1.Contract(address, _abi, signerOrProvider);\n }\n}\nexports.MerkleDistributorWithDeadline__factory = MerkleDistributorWithDeadline__factory;\nMerkleDistributorWithDeadline__factory.abi = _abi;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Observer__factory = void 0;\nconst ethers_1 = require(\"ethers\");\nconst _abi = [\n {\n inputs: [\n {\n internalType: 'address',\n name: '_gate',\n type: 'address',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'constructor',\n },\n {\n inputs: [],\n name: 'TickOutOfBound',\n type: 'error',\n },\n {\n inputs: [],\n name: 'gate',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n {\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n internalType: 'address',\n name: 'target',\n type: 'address',\n },\n ],\n name: 'getAcc',\n outputs: [\n {\n components: [\n {\n internalType: 'uint48[]',\n name: 'oids',\n type: 'uint48[]',\n },\n {\n internalType: 'uint48[]',\n name: 'rids',\n type: 'uint48[]',\n },\n {\n components: [\n {\n internalType: 'int128',\n name: 'balance',\n type: 'int128',\n },\n {\n internalType: 'int128',\n name: 'size',\n type: 'int128',\n },\n {\n internalType: 'uint128',\n name: 'entryNotional',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'entrySocialLossIndex',\n type: 'uint128',\n },\n {\n internalType: 'int128',\n name: 'entryFundingIndex',\n type: 'int128',\n },\n ],\n internalType: 'struct Position',\n name: 'position',\n type: 'tuple',\n },\n {\n components: [\n {\n internalType: 'uint128',\n name: 'balance',\n type: 'uint128',\n },\n {\n internalType: 'int128',\n name: 'size',\n type: 'int128',\n },\n ],\n internalType: 'struct Order[]',\n name: 'orders',\n type: 'tuple[]',\n },\n {\n components: [\n {\n internalType: 'uint128',\n name: 'liquidity',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'entryFeeIndex',\n type: 'uint128',\n },\n {\n internalType: 'uint96',\n name: 'balance',\n type: 'uint96',\n },\n {\n internalType: 'uint160',\n name: 'sqrtEntryPX96',\n type: 'uint160',\n },\n ],\n internalType: 'struct Range[]',\n name: 'ranges',\n type: 'tuple[]',\n },\n {\n internalType: 'int256[]',\n name: 'ordersTaken',\n type: 'int256[]',\n },\n ],\n internalType: 'struct Portfolio',\n name: 'portfolio',\n type: 'tuple',\n },\n {\n components: [\n {\n internalType: 'uint32',\n name: 'timestamp',\n type: 'uint32',\n },\n {\n internalType: 'uint32',\n name: 'height',\n type: 'uint32',\n },\n ],\n internalType: 'struct BlockInfo',\n name: 'blockInfo',\n type: 'tuple',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n {\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n internalType: 'address',\n name: 'target',\n type: 'address',\n },\n ],\n name: 'getAccMeta',\n outputs: [\n {\n internalType: 'uint256',\n name: 'onumber',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'rnumber',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'getAllInstruments',\n outputs: [\n {\n components: [\n {\n internalType: 'address',\n name: 'instrumentAddr',\n type: 'address',\n },\n {\n internalType: 'string',\n name: 'symbol',\n type: 'string',\n },\n {\n internalType: 'address',\n name: 'market',\n type: 'address',\n },\n {\n components: [\n {\n internalType: 'enum FeederType',\n name: 'ftype',\n type: 'uint8',\n },\n {\n internalType: 'bool',\n name: 'isToken0Quote',\n type: 'bool',\n },\n {\n internalType: 'address',\n name: 'pair',\n type: 'address',\n },\n {\n internalType: 'uint64',\n name: 'scaler0',\n type: 'uint64',\n },\n {\n internalType: 'uint64',\n name: 'scaler1',\n type: 'uint64',\n },\n ],\n internalType: 'struct DexV2Feeder',\n name: 'dexV2Feeder',\n type: 'tuple',\n },\n {\n components: [\n {\n internalType: 'enum FeederType',\n name: 'ftype',\n type: 'uint8',\n },\n {\n internalType: 'uint64',\n name: 'scaler0',\n type: 'uint64',\n },\n {\n internalType: 'address',\n name: 'aggregator0',\n type: 'address',\n },\n {\n internalType: 'uint24',\n name: 'heartBeat0',\n type: 'uint24',\n },\n {\n internalType: 'uint64',\n name: 'scaler1',\n type: 'uint64',\n },\n {\n internalType: 'address',\n name: 'aggregator1',\n type: 'address',\n },\n {\n internalType: 'uint24',\n name: 'heartBeat1',\n type: 'uint24',\n },\n ],\n internalType: 'struct PriceFeeder',\n name: 'priceFeeder',\n type: 'tuple',\n },\n {\n internalType: 'uint16',\n name: 'initialMarginRatio',\n type: 'uint16',\n },\n {\n internalType: 'uint16',\n name: 'maintenanceMarginRatio',\n type: 'uint16',\n },\n {\n components: [\n {\n internalType: 'uint128',\n name: 'minMarginAmount',\n type: 'uint128',\n },\n {\n internalType: 'uint16',\n name: 'tradingFeeRatio',\n type: 'uint16',\n },\n {\n internalType: 'uint16',\n name: 'protocolFeeRatio',\n type: 'uint16',\n },\n {\n internalType: 'uint64',\n name: 'stabilityFeeRatioParam',\n type: 'uint64',\n },\n {\n internalType: 'enum QuoteType',\n name: 'qtype',\n type: 'uint8',\n },\n {\n internalType: 'uint128',\n name: 'tip',\n type: 'uint128',\n },\n ],\n internalType: 'struct QuoteParam',\n name: 'param',\n type: 'tuple',\n },\n {\n internalType: 'uint256',\n name: 'spotPrice',\n type: 'uint256',\n },\n {\n internalType: 'enum Condition',\n name: 'condition',\n type: 'uint8',\n },\n {\n components: [\n {\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n internalType: 'uint32',\n name: 'timestamp',\n type: 'uint32',\n },\n {\n internalType: 'enum Status',\n name: 'status',\n type: 'uint8',\n },\n {\n internalType: 'int24',\n name: 'tick',\n type: 'int24',\n },\n {\n internalType: 'uint160',\n name: 'sqrtPX96',\n type: 'uint160',\n },\n {\n internalType: 'uint128',\n name: 'liquidity',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'totalLiquidity',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'totalShort',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'openInterests',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'totalLong',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'involvedFund',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'feeIndex',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'protocolFee',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'longSocialLossIndex',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'shortSocialLossIndex',\n type: 'uint128',\n },\n {\n internalType: 'int128',\n name: 'longFundingIndex',\n type: 'int128',\n },\n {\n internalType: 'int128',\n name: 'shortFundingIndex',\n type: 'int128',\n },\n {\n internalType: 'uint128',\n name: 'insuranceFund',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'settlementPrice',\n type: 'uint128',\n },\n ],\n internalType: 'struct Amm[]',\n name: 'amms',\n type: 'tuple[]',\n },\n {\n internalType: 'uint256[]',\n name: 'markPrices',\n type: 'uint256[]',\n },\n ],\n internalType: 'struct AssembledInstrumentData[]',\n name: '',\n type: 'tuple[]',\n },\n {\n components: [\n {\n internalType: 'uint32',\n name: 'timestamp',\n type: 'uint32',\n },\n {\n internalType: 'uint32',\n name: 'height',\n type: 'uint32',\n },\n ],\n internalType: 'struct BlockInfo',\n name: '',\n type: 'tuple',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n {\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n ],\n name: 'getAmm',\n outputs: [\n {\n components: [\n {\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n internalType: 'uint32',\n name: 'timestamp',\n type: 'uint32',\n },\n {\n internalType: 'enum Status',\n name: 'status',\n type: 'uint8',\n },\n {\n internalType: 'int24',\n name: 'tick',\n type: 'int24',\n },\n {\n internalType: 'uint160',\n name: 'sqrtPX96',\n type: 'uint160',\n },\n {\n internalType: 'uint128',\n name: 'liquidity',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'totalLiquidity',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'totalShort',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'openInterests',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'totalLong',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'involvedFund',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'feeIndex',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'protocolFee',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'longSocialLossIndex',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'shortSocialLossIndex',\n type: 'uint128',\n },\n {\n internalType: 'int128',\n name: 'longFundingIndex',\n type: 'int128',\n },\n {\n internalType: 'int128',\n name: 'shortFundingIndex',\n type: 'int128',\n },\n {\n internalType: 'uint128',\n name: 'insuranceFund',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'settlementPrice',\n type: 'uint128',\n },\n ],\n internalType: 'struct Amm',\n name: '',\n type: 'tuple',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n components: [\n {\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n {\n internalType: 'uint32[]',\n name: 'expiries',\n type: 'uint32[]',\n },\n ],\n internalType: 'struct FetchInstrumentParam[]',\n name: 'params',\n type: 'tuple[]',\n },\n ],\n name: 'getInstrumentBatch',\n outputs: [\n {\n components: [\n {\n internalType: 'address',\n name: 'instrumentAddr',\n type: 'address',\n },\n {\n internalType: 'string',\n name: 'symbol',\n type: 'string',\n },\n {\n internalType: 'address',\n name: 'market',\n type: 'address',\n },\n {\n components: [\n {\n internalType: 'enum FeederType',\n name: 'ftype',\n type: 'uint8',\n },\n {\n internalType: 'bool',\n name: 'isToken0Quote',\n type: 'bool',\n },\n {\n internalType: 'address',\n name: 'pair',\n type: 'address',\n },\n {\n internalType: 'uint64',\n name: 'scaler0',\n type: 'uint64',\n },\n {\n internalType: 'uint64',\n name: 'scaler1',\n type: 'uint64',\n },\n ],\n internalType: 'struct DexV2Feeder',\n name: 'dexV2Feeder',\n type: 'tuple',\n },\n {\n components: [\n {\n internalType: 'enum FeederType',\n name: 'ftype',\n type: 'uint8',\n },\n {\n internalType: 'uint64',\n name: 'scaler0',\n type: 'uint64',\n },\n {\n internalType: 'address',\n name: 'aggregator0',\n type: 'address',\n },\n {\n internalType: 'uint24',\n name: 'heartBeat0',\n type: 'uint24',\n },\n {\n internalType: 'uint64',\n name: 'scaler1',\n type: 'uint64',\n },\n {\n internalType: 'address',\n name: 'aggregator1',\n type: 'address',\n },\n {\n internalType: 'uint24',\n name: 'heartBeat1',\n type: 'uint24',\n },\n ],\n internalType: 'struct PriceFeeder',\n name: 'priceFeeder',\n type: 'tuple',\n },\n {\n internalType: 'uint16',\n name: 'initialMarginRatio',\n type: 'uint16',\n },\n {\n internalType: 'uint16',\n name: 'maintenanceMarginRatio',\n type: 'uint16',\n },\n {\n components: [\n {\n internalType: 'uint128',\n name: 'minMarginAmount',\n type: 'uint128',\n },\n {\n internalType: 'uint16',\n name: 'tradingFeeRatio',\n type: 'uint16',\n },\n {\n internalType: 'uint16',\n name: 'protocolFeeRatio',\n type: 'uint16',\n },\n {\n internalType: 'uint64',\n name: 'stabilityFeeRatioParam',\n type: 'uint64',\n },\n {\n internalType: 'enum QuoteType',\n name: 'qtype',\n type: 'uint8',\n },\n {\n internalType: 'uint128',\n name: 'tip',\n type: 'uint128',\n },\n ],\n internalType: 'struct QuoteParam',\n name: 'param',\n type: 'tuple',\n },\n {\n internalType: 'uint256',\n name: 'spotPrice',\n type: 'uint256',\n },\n {\n internalType: 'enum Condition',\n name: 'condition',\n type: 'uint8',\n },\n {\n components: [\n {\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n internalType: 'uint32',\n name: 'timestamp',\n type: 'uint32',\n },\n {\n internalType: 'enum Status',\n name: 'status',\n type: 'uint8',\n },\n {\n internalType: 'int24',\n name: 'tick',\n type: 'int24',\n },\n {\n internalType: 'uint160',\n name: 'sqrtPX96',\n type: 'uint160',\n },\n {\n internalType: 'uint128',\n name: 'liquidity',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'totalLiquidity',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'totalShort',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'openInterests',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'totalLong',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'involvedFund',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'feeIndex',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'protocolFee',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'longSocialLossIndex',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'shortSocialLossIndex',\n type: 'uint128',\n },\n {\n internalType: 'int128',\n name: 'longFundingIndex',\n type: 'int128',\n },\n {\n internalType: 'int128',\n name: 'shortFundingIndex',\n type: 'int128',\n },\n {\n internalType: 'uint128',\n name: 'insuranceFund',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'settlementPrice',\n type: 'uint128',\n },\n ],\n internalType: 'struct Amm[]',\n name: 'amms',\n type: 'tuple[]',\n },\n {\n internalType: 'uint256[]',\n name: 'markPrices',\n type: 'uint256[]',\n },\n ],\n internalType: 'struct AssembledInstrumentData[]',\n name: '',\n type: 'tuple[]',\n },\n {\n components: [\n {\n internalType: 'uint32',\n name: 'timestamp',\n type: 'uint32',\n },\n {\n internalType: 'uint32',\n name: 'height',\n type: 'uint32',\n },\n ],\n internalType: 'struct BlockInfo',\n name: '',\n type: 'tuple',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address[]',\n name: 'instrumentList',\n type: 'address[]',\n },\n ],\n name: 'getInstrumentByAddressList',\n outputs: [\n {\n components: [\n {\n internalType: 'address',\n name: 'instrumentAddr',\n type: 'address',\n },\n {\n internalType: 'string',\n name: 'symbol',\n type: 'string',\n },\n {\n internalType: 'address',\n name: 'market',\n type: 'address',\n },\n {\n components: [\n {\n internalType: 'enum FeederType',\n name: 'ftype',\n type: 'uint8',\n },\n {\n internalType: 'bool',\n name: 'isToken0Quote',\n type: 'bool',\n },\n {\n internalType: 'address',\n name: 'pair',\n type: 'address',\n },\n {\n internalType: 'uint64',\n name: 'scaler0',\n type: 'uint64',\n },\n {\n internalType: 'uint64',\n name: 'scaler1',\n type: 'uint64',\n },\n ],\n internalType: 'struct DexV2Feeder',\n name: 'dexV2Feeder',\n type: 'tuple',\n },\n {\n components: [\n {\n internalType: 'enum FeederType',\n name: 'ftype',\n type: 'uint8',\n },\n {\n internalType: 'uint64',\n name: 'scaler0',\n type: 'uint64',\n },\n {\n internalType: 'address',\n name: 'aggregator0',\n type: 'address',\n },\n {\n internalType: 'uint24',\n name: 'heartBeat0',\n type: 'uint24',\n },\n {\n internalType: 'uint64',\n name: 'scaler1',\n type: 'uint64',\n },\n {\n internalType: 'address',\n name: 'aggregator1',\n type: 'address',\n },\n {\n internalType: 'uint24',\n name: 'heartBeat1',\n type: 'uint24',\n },\n ],\n internalType: 'struct PriceFeeder',\n name: 'priceFeeder',\n type: 'tuple',\n },\n {\n internalType: 'uint16',\n name: 'initialMarginRatio',\n type: 'uint16',\n },\n {\n internalType: 'uint16',\n name: 'maintenanceMarginRatio',\n type: 'uint16',\n },\n {\n components: [\n {\n internalType: 'uint128',\n name: 'minMarginAmount',\n type: 'uint128',\n },\n {\n internalType: 'uint16',\n name: 'tradingFeeRatio',\n type: 'uint16',\n },\n {\n internalType: 'uint16',\n name: 'protocolFeeRatio',\n type: 'uint16',\n },\n {\n internalType: 'uint64',\n name: 'stabilityFeeRatioParam',\n type: 'uint64',\n },\n {\n internalType: 'enum QuoteType',\n name: 'qtype',\n type: 'uint8',\n },\n {\n internalType: 'uint128',\n name: 'tip',\n type: 'uint128',\n },\n ],\n internalType: 'struct QuoteParam',\n name: 'param',\n type: 'tuple',\n },\n {\n internalType: 'uint256',\n name: 'spotPrice',\n type: 'uint256',\n },\n {\n internalType: 'enum Condition',\n name: 'condition',\n type: 'uint8',\n },\n {\n components: [\n {\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n internalType: 'uint32',\n name: 'timestamp',\n type: 'uint32',\n },\n {\n internalType: 'enum Status',\n name: 'status',\n type: 'uint8',\n },\n {\n internalType: 'int24',\n name: 'tick',\n type: 'int24',\n },\n {\n internalType: 'uint160',\n name: 'sqrtPX96',\n type: 'uint160',\n },\n {\n internalType: 'uint128',\n name: 'liquidity',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'totalLiquidity',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'totalShort',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'openInterests',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'totalLong',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'involvedFund',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'feeIndex',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'protocolFee',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'longSocialLossIndex',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'shortSocialLossIndex',\n type: 'uint128',\n },\n {\n internalType: 'int128',\n name: 'longFundingIndex',\n type: 'int128',\n },\n {\n internalType: 'int128',\n name: 'shortFundingIndex',\n type: 'int128',\n },\n {\n internalType: 'uint128',\n name: 'insuranceFund',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'settlementPrice',\n type: 'uint128',\n },\n ],\n internalType: 'struct Amm[]',\n name: 'amms',\n type: 'tuple[]',\n },\n {\n internalType: 'uint256[]',\n name: 'markPrices',\n type: 'uint256[]',\n },\n ],\n internalType: 'struct AssembledInstrumentData[]',\n name: '',\n type: 'tuple[]',\n },\n {\n components: [\n {\n internalType: 'uint32',\n name: 'timestamp',\n type: 'uint32',\n },\n {\n internalType: 'uint32',\n name: 'height',\n type: 'uint32',\n },\n ],\n internalType: 'struct BlockInfo',\n name: '',\n type: 'tuple',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n {\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n internalType: 'int24',\n name: 'tick',\n type: 'int24',\n },\n {\n internalType: 'bool',\n name: 'right',\n type: 'bool',\n },\n ],\n name: 'getNextInitializedTickOutside',\n outputs: [\n {\n internalType: 'int24',\n name: '',\n type: 'int24',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n {\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n internalType: 'address',\n name: 'target',\n type: 'address',\n },\n ],\n name: 'getOrderIndexes',\n outputs: [\n {\n internalType: 'uint48[]',\n name: '',\n type: 'uint48[]',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n {\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n internalType: 'address',\n name: 'target',\n type: 'address',\n },\n {\n internalType: 'uint48[]',\n name: 'oids',\n type: 'uint48[]',\n },\n ],\n name: 'getOrders',\n outputs: [\n {\n components: [\n {\n internalType: 'uint128',\n name: 'balance',\n type: 'uint128',\n },\n {\n internalType: 'int128',\n name: 'size',\n type: 'int128',\n },\n ],\n internalType: 'struct Order[]',\n name: '',\n type: 'tuple[]',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n {\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n internalType: 'int24[]',\n name: 'tids',\n type: 'int24[]',\n },\n ],\n name: 'getPearls',\n outputs: [\n {\n components: [\n {\n internalType: 'uint128',\n name: 'liquidityGross',\n type: 'uint128',\n },\n {\n internalType: 'int128',\n name: 'liquidityNet',\n type: 'int128',\n },\n {\n internalType: 'uint24',\n name: 'nonce',\n type: 'uint24',\n },\n {\n internalType: 'int96',\n name: 'left',\n type: 'int96',\n },\n {\n internalType: 'int96',\n name: 'taken',\n type: 'int96',\n },\n {\n internalType: 'uint128',\n name: 'fee',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'entrySocialLossIndex',\n type: 'uint128',\n },\n {\n internalType: 'int128',\n name: 'entryFundingIndex',\n type: 'int128',\n },\n ],\n internalType: 'struct Pearl[]',\n name: '',\n type: 'tuple[]',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address[]',\n name: 'quotes',\n type: 'address[]',\n },\n {\n internalType: 'address',\n name: 'trader',\n type: 'address',\n },\n ],\n name: 'getPendings',\n outputs: [\n {\n components: [\n {\n internalType: 'uint32',\n name: 'timestamp',\n type: 'uint32',\n },\n {\n internalType: 'bool',\n name: 'native',\n type: 'bool',\n },\n {\n internalType: 'uint96',\n name: 'amount',\n type: 'uint96',\n },\n {\n internalType: 'uint120',\n name: 'exemption',\n type: 'uint120',\n },\n ],\n internalType: 'struct Pending[]',\n name: 'pendings',\n type: 'tuple[]',\n },\n {\n components: [\n {\n internalType: 'uint32',\n name: 'timestamp',\n type: 'uint32',\n },\n {\n internalType: 'uint32',\n name: 'height',\n type: 'uint32',\n },\n ],\n internalType: 'struct BlockInfo',\n name: 'blockInfo',\n type: 'tuple',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'target',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n ],\n name: 'getPortfolios',\n outputs: [\n {\n internalType: 'uint32[]',\n name: 'expiries',\n type: 'uint32[]',\n },\n {\n components: [\n {\n internalType: 'uint48[]',\n name: 'oids',\n type: 'uint48[]',\n },\n {\n internalType: 'uint48[]',\n name: 'rids',\n type: 'uint48[]',\n },\n {\n components: [\n {\n internalType: 'int128',\n name: 'balance',\n type: 'int128',\n },\n {\n internalType: 'int128',\n name: 'size',\n type: 'int128',\n },\n {\n internalType: 'uint128',\n name: 'entryNotional',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'entrySocialLossIndex',\n type: 'uint128',\n },\n {\n internalType: 'int128',\n name: 'entryFundingIndex',\n type: 'int128',\n },\n ],\n internalType: 'struct Position',\n name: 'position',\n type: 'tuple',\n },\n {\n components: [\n {\n internalType: 'uint128',\n name: 'balance',\n type: 'uint128',\n },\n {\n internalType: 'int128',\n name: 'size',\n type: 'int128',\n },\n ],\n internalType: 'struct Order[]',\n name: 'orders',\n type: 'tuple[]',\n },\n {\n components: [\n {\n internalType: 'uint128',\n name: 'liquidity',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'entryFeeIndex',\n type: 'uint128',\n },\n {\n internalType: 'uint96',\n name: 'balance',\n type: 'uint96',\n },\n {\n internalType: 'uint160',\n name: 'sqrtEntryPX96',\n type: 'uint160',\n },\n ],\n internalType: 'struct Range[]',\n name: 'ranges',\n type: 'tuple[]',\n },\n {\n internalType: 'int256[]',\n name: 'ordersTaken',\n type: 'int256[]',\n },\n ],\n internalType: 'struct Portfolio[]',\n name: 'portfolios',\n type: 'tuple[]',\n },\n {\n components: [\n {\n internalType: 'uint32',\n name: 'timestamp',\n type: 'uint32',\n },\n {\n internalType: 'uint32',\n name: 'height',\n type: 'uint32',\n },\n ],\n internalType: 'struct BlockInfo',\n name: 'blockInfo',\n type: 'tuple',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n {\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n internalType: 'address',\n name: 'target',\n type: 'address',\n },\n ],\n name: 'getPosition',\n outputs: [\n {\n components: [\n {\n internalType: 'int128',\n name: 'balance',\n type: 'int128',\n },\n {\n internalType: 'int128',\n name: 'size',\n type: 'int128',\n },\n {\n internalType: 'uint128',\n name: 'entryNotional',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'entrySocialLossIndex',\n type: 'uint128',\n },\n {\n internalType: 'int128',\n name: 'entryFundingIndex',\n type: 'int128',\n },\n ],\n internalType: 'struct Position',\n name: '',\n type: 'tuple',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n ],\n name: 'getQuoteParam',\n outputs: [\n {\n components: [\n {\n internalType: 'uint128',\n name: 'minMarginAmount',\n type: 'uint128',\n },\n {\n internalType: 'uint16',\n name: 'tradingFeeRatio',\n type: 'uint16',\n },\n {\n internalType: 'uint16',\n name: 'protocolFeeRatio',\n type: 'uint16',\n },\n {\n internalType: 'uint64',\n name: 'stabilityFeeRatioParam',\n type: 'uint64',\n },\n {\n internalType: 'enum QuoteType',\n name: 'qtype',\n type: 'uint8',\n },\n {\n internalType: 'uint128',\n name: 'tip',\n type: 'uint128',\n },\n ],\n internalType: 'struct QuoteParam',\n name: '',\n type: 'tuple',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n {\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n internalType: 'address',\n name: 'target',\n type: 'address',\n },\n ],\n name: 'getRangeIndexes',\n outputs: [\n {\n internalType: 'uint48[]',\n name: '',\n type: 'uint48[]',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n {\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n internalType: 'address',\n name: 'target',\n type: 'address',\n },\n {\n internalType: 'uint48[]',\n name: 'rids',\n type: 'uint48[]',\n },\n ],\n name: 'getRanges',\n outputs: [\n {\n components: [\n {\n internalType: 'uint128',\n name: 'liquidity',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'entryFeeIndex',\n type: 'uint128',\n },\n {\n internalType: 'uint96',\n name: 'balance',\n type: 'uint96',\n },\n {\n internalType: 'uint160',\n name: 'sqrtEntryPX96',\n type: 'uint160',\n },\n ],\n internalType: 'struct Range[]',\n name: '',\n type: 'tuple[]',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n {\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n internalType: 'int24[]',\n name: 'tids',\n type: 'int24[]',\n },\n {\n internalType: 'uint24[]',\n name: 'nonces',\n type: 'uint24[]',\n },\n ],\n name: 'getRecords',\n outputs: [\n {\n components: [\n {\n internalType: 'int128',\n name: 'taken',\n type: 'int128',\n },\n {\n internalType: 'uint128',\n name: 'fee',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'entrySocialLossIndex',\n type: 'uint128',\n },\n {\n internalType: 'int128',\n name: 'entryFundingIndex',\n type: 'int128',\n },\n ],\n internalType: 'struct Record[]',\n name: '',\n type: 'tuple[]',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n ],\n name: 'getSetting',\n outputs: [\n {\n components: [\n {\n internalType: 'string',\n name: 'symbol',\n type: 'string',\n },\n {\n internalType: 'address',\n name: 'config',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'gate',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'market',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'quote',\n type: 'address',\n },\n {\n internalType: 'uint8',\n name: 'decimals',\n type: 'uint8',\n },\n {\n internalType: 'uint16',\n name: 'initialMarginRatio',\n type: 'uint16',\n },\n {\n internalType: 'uint16',\n name: 'maintenanceMarginRatio',\n type: 'uint16',\n },\n {\n components: [\n {\n internalType: 'uint128',\n name: 'minMarginAmount',\n type: 'uint128',\n },\n {\n internalType: 'uint16',\n name: 'tradingFeeRatio',\n type: 'uint16',\n },\n {\n internalType: 'uint16',\n name: 'protocolFeeRatio',\n type: 'uint16',\n },\n {\n internalType: 'uint64',\n name: 'stabilityFeeRatioParam',\n type: 'uint64',\n },\n {\n internalType: 'enum QuoteType',\n name: 'qtype',\n type: 'uint8',\n },\n {\n internalType: 'uint128',\n name: 'tip',\n type: 'uint128',\n },\n ],\n internalType: 'struct QuoteParam',\n name: 'param',\n type: 'tuple',\n },\n ],\n internalType: 'struct Setting',\n name: '',\n type: 'tuple',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n {\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n internalType: 'int16[]',\n name: 'tbids',\n type: 'int16[]',\n },\n ],\n name: 'getTickBitmaps',\n outputs: [\n {\n internalType: 'uint256[]',\n name: '',\n type: 'uint256[]',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'target',\n type: 'address',\n },\n {\n internalType: 'address[]',\n name: 'quotes',\n type: 'address[]',\n },\n ],\n name: 'getVaultBalances',\n outputs: [\n {\n internalType: 'uint256[]',\n name: '',\n type: 'uint256[]',\n },\n {\n components: [\n {\n internalType: 'uint32',\n name: 'timestamp',\n type: 'uint32',\n },\n {\n internalType: 'uint32',\n name: 'height',\n type: 'uint32',\n },\n ],\n internalType: 'struct BlockInfo',\n name: '',\n type: 'tuple',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n {\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n internalType: 'uint256',\n name: 'notional',\n type: 'uint256',\n },\n {\n internalType: 'bool',\n name: 'long',\n type: 'bool',\n },\n ],\n name: 'inquireByNotional',\n outputs: [\n {\n internalType: 'int256',\n name: 'size',\n type: 'int256',\n },\n {\n components: [\n {\n internalType: 'uint256',\n name: 'benchmark',\n type: 'uint256',\n },\n {\n internalType: 'uint160',\n name: 'sqrtFairPX96',\n type: 'uint160',\n },\n {\n internalType: 'int24',\n name: 'tick',\n type: 'int24',\n },\n {\n internalType: 'uint256',\n name: 'mark',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'entryNotional',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'fee',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'minAmount',\n type: 'uint256',\n },\n {\n internalType: 'uint160',\n name: 'sqrtPostFairPX96',\n type: 'uint160',\n },\n {\n internalType: 'int24',\n name: 'postTick',\n type: 'int24',\n },\n ],\n internalType: 'struct Quotation',\n name: 'quotation',\n type: 'tuple',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n {\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n internalType: 'int24',\n name: 'tick',\n type: 'int24',\n },\n ],\n name: 'inquireByTick',\n outputs: [\n {\n internalType: 'int256',\n name: 'size',\n type: 'int256',\n },\n {\n components: [\n {\n internalType: 'uint256',\n name: 'benchmark',\n type: 'uint256',\n },\n {\n internalType: 'uint160',\n name: 'sqrtFairPX96',\n type: 'uint160',\n },\n {\n internalType: 'int24',\n name: 'tick',\n type: 'int24',\n },\n {\n internalType: 'uint256',\n name: 'mark',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'entryNotional',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'fee',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'minAmount',\n type: 'uint256',\n },\n {\n internalType: 'uint160',\n name: 'sqrtPostFairPX96',\n type: 'uint160',\n },\n {\n internalType: 'int24',\n name: 'postTick',\n type: 'int24',\n },\n ],\n internalType: 'struct Quotation',\n name: 'quotation',\n type: 'tuple',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'base',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'quote',\n type: 'address',\n },\n ],\n name: 'inspectMaxReserveDexV2Pair',\n outputs: [\n {\n internalType: 'address',\n name: 'maxReservePair',\n type: 'address',\n },\n {\n internalType: 'uint112',\n name: 'reserve0',\n type: 'uint112',\n },\n {\n internalType: 'uint112',\n name: 'reserve1',\n type: 'uint112',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n {\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n internalType: 'uint24',\n name: 'tickDelta',\n type: 'uint24',\n },\n ],\n name: 'liquidityDetails',\n outputs: [\n {\n components: [\n {\n internalType: 'uint160',\n name: 'sqrtPX96',\n type: 'uint160',\n },\n {\n internalType: 'int24',\n name: 'tick',\n type: 'int24',\n },\n {\n internalType: 'uint256',\n name: 'liquidity',\n type: 'uint256',\n },\n ],\n internalType: 'struct CurveState',\n name: 'amm',\n type: 'tuple',\n },\n {\n internalType: 'int24[]',\n name: 'tids',\n type: 'int24[]',\n },\n {\n components: [\n {\n internalType: 'int128',\n name: 'liquidityNet',\n type: 'int128',\n },\n {\n internalType: 'int96',\n name: 'left',\n type: 'int96',\n },\n ],\n internalType: 'struct MinimalPearl[]',\n name: 'pearls',\n type: 'tuple[]',\n },\n {\n components: [\n {\n internalType: 'uint32',\n name: 'timestamp',\n type: 'uint32',\n },\n {\n internalType: 'uint32',\n name: 'height',\n type: 'uint32',\n },\n ],\n internalType: 'struct BlockInfo',\n name: 'blockInfo',\n type: 'tuple',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n {\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n internalType: 'uint256',\n name: 'notional',\n type: 'uint256',\n },\n {\n internalType: 'bool',\n name: 'long',\n type: 'bool',\n },\n ],\n name: 'sizeByNotional',\n outputs: [\n {\n internalType: 'int256',\n name: '',\n type: 'int256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n {\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n internalType: 'int24',\n name: 'destTick',\n type: 'int24',\n },\n ],\n name: 'sizeToTick',\n outputs: [\n {\n internalType: 'int256',\n name: '',\n type: 'int256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n];\nclass Observer__factory {\n static createInterface() {\n return new ethers_1.utils.Interface(_abi);\n }\n static connect(address, signerOrProvider) {\n return new ethers_1.Contract(address, _abi, signerOrProvider);\n }\n}\nexports.Observer__factory = Observer__factory;\nObserver__factory.abi = _abi;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PythFeederFactory__factory = void 0;\nconst ethers_1 = require(\"ethers\");\nconst _abi = [\n {\n inputs: [\n {\n internalType: 'address',\n name: '_pyth',\n type: 'address',\n },\n {\n internalType: 'address',\n name: '_guardian',\n type: 'address',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'constructor',\n },\n {\n inputs: [],\n name: 'FeederAlreadyCreated',\n type: 'error',\n },\n {\n inputs: [],\n name: 'FeederNotCreated',\n type: 'error',\n },\n {\n inputs: [],\n name: 'InvalidInput',\n type: 'error',\n },\n {\n inputs: [],\n name: 'InvalidLength',\n type: 'error',\n },\n {\n inputs: [],\n name: 'NotAdmin',\n type: 'error',\n },\n {\n inputs: [],\n name: 'NotOperator',\n type: 'error',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'feeder',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'bytes32',\n name: 'symbolHash',\n type: 'bytes32',\n },\n ],\n name: 'FeederCreated',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'uint8',\n name: 'version',\n type: 'uint8',\n },\n ],\n name: 'Initialized',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n {\n indexed: true,\n internalType: 'bytes32',\n name: 'previousAdminRole',\n type: 'bytes32',\n },\n {\n indexed: true,\n internalType: 'bytes32',\n name: 'newAdminRole',\n type: 'bytes32',\n },\n ],\n name: 'RoleAdminChanged',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'sender',\n type: 'address',\n },\n ],\n name: 'RoleGranted',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'sender',\n type: 'address',\n },\n ],\n name: 'RoleRevoked',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'address',\n name: 'pyth',\n type: 'address',\n },\n ],\n name: 'SetPythAddress',\n type: 'event',\n },\n {\n inputs: [],\n name: 'DEFAULT_ADMIN_ROLE',\n outputs: [\n {\n internalType: 'bytes32',\n name: '',\n type: 'bytes32',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'OPERATOR_ROLE',\n outputs: [\n {\n internalType: 'bytes32',\n name: '',\n type: 'bytes32',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n name: 'allFeeders',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'baseIndex',\n type: 'bytes32',\n },\n ],\n name: 'baseIndexToFeeder',\n outputs: [\n {\n internalType: 'address',\n name: 'feeder',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32[]',\n name: 'baseIndexes',\n type: 'bytes32[]',\n },\n {\n internalType: 'bytes32[]',\n name: 'ids',\n type: 'bytes32[]',\n },\n ],\n name: 'batchCreateFeeder',\n outputs: [\n {\n internalType: 'address[]',\n name: 'newFeeders',\n type: 'address[]',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32[]',\n name: 'baseIndexes',\n type: 'bytes32[]',\n },\n ],\n name: 'batchGetPrice',\n outputs: [\n {\n internalType: 'uint128[]',\n name: 'prices',\n type: 'uint128[]',\n },\n {\n internalType: 'uint32[]',\n name: 'timestamps',\n type: 'uint32[]',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'beacon',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'baseIndex',\n type: 'bytes32',\n },\n {\n internalType: 'bytes32',\n name: 'id',\n type: 'bytes32',\n },\n ],\n name: 'createFeeder',\n outputs: [\n {\n internalType: 'address',\n name: 'newFeeder',\n type: 'address',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'feeder',\n type: 'address',\n },\n ],\n name: 'feederToBaseIndex',\n outputs: [\n {\n internalType: 'bytes32',\n name: 'baseIndex',\n type: 'bytes32',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'getAllFeeders',\n outputs: [\n {\n internalType: 'address[]',\n name: '',\n type: 'address[]',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'getAllFeedersLength',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'getAllIndexes',\n outputs: [\n {\n internalType: 'bytes32[]',\n name: '',\n type: 'bytes32[]',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'baseIndex',\n type: 'bytes32',\n },\n ],\n name: 'getPrice',\n outputs: [\n {\n internalType: 'uint128',\n name: 'price',\n type: 'uint128',\n },\n {\n internalType: 'uint32',\n name: 'timestamp',\n type: 'uint32',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n ],\n name: 'getRoleAdmin',\n outputs: [\n {\n internalType: 'bytes32',\n name: '',\n type: 'bytes32',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n {\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n ],\n name: 'grantRole',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'guardian',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n {\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n ],\n name: 'hasRole',\n outputs: [\n {\n internalType: 'bool',\n name: '',\n type: 'bool',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'admin',\n type: 'address',\n },\n {\n internalType: 'address[]',\n name: 'operators',\n type: 'address[]',\n },\n ],\n name: 'initialize',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'pyth',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n {\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n ],\n name: 'renounceRole',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n {\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n ],\n name: 'revokeRole',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'baseIndex',\n type: 'bytes32',\n },\n {\n internalType: 'bytes32',\n name: '_id',\n type: 'bytes32',\n },\n ],\n name: 'setPythFeederId',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes4',\n name: 'interfaceId',\n type: 'bytes4',\n },\n ],\n name: 'supportsInterface',\n outputs: [\n {\n internalType: 'bool',\n name: '',\n type: 'bool',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n];\nclass PythFeederFactory__factory {\n static createInterface() {\n return new ethers_1.utils.Interface(_abi);\n }\n static connect(address, signerOrProvider) {\n return new ethers_1.Contract(address, _abi, signerOrProvider);\n }\n}\nexports.PythFeederFactory__factory = PythFeederFactory__factory;\nPythFeederFactory__factory.abi = _abi;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PythFeeder__factory = void 0;\nconst ethers_1 = require(\"ethers\");\nconst _abi = [\n {\n inputs: [\n {\n internalType: 'address',\n name: '_factory',\n type: 'address',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'constructor',\n },\n {\n inputs: [],\n name: 'InvalidPythData',\n type: 'error',\n },\n {\n inputs: [],\n name: 'NotRegistry',\n type: 'error',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'uint8',\n name: 'version',\n type: 'uint8',\n },\n ],\n name: 'Initialized',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'bytes32',\n name: 'id',\n type: 'bytes32',\n },\n ],\n name: 'SetPythFeederId',\n type: 'event',\n },\n {\n inputs: [],\n name: 'decimals',\n outputs: [\n {\n internalType: 'uint8',\n name: '',\n type: 'uint8',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'factory',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'id',\n outputs: [\n {\n internalType: 'bytes32',\n name: '',\n type: 'bytes32',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: '_id',\n type: 'bytes32',\n },\n {\n internalType: 'address',\n name: 'guardian',\n type: 'address',\n },\n ],\n name: 'initialize',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'latestRoundData',\n outputs: [\n {\n internalType: 'uint80',\n name: 'roundId',\n type: 'uint80',\n },\n {\n internalType: 'int256',\n name: 'answer',\n type: 'int256',\n },\n {\n internalType: 'uint256',\n name: 'startedAt',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'updatedAt',\n type: 'uint256',\n },\n {\n internalType: 'uint80',\n name: 'answeredInRound',\n type: 'uint80',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: '_id',\n type: 'bytes32',\n },\n ],\n name: 'setPythFeederId',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n];\nclass PythFeeder__factory {\n static createInterface() {\n return new ethers_1.utils.Interface(_abi);\n }\n static connect(address, signerOrProvider) {\n return new ethers_1.Contract(address, _abi, signerOrProvider);\n }\n}\nexports.PythFeeder__factory = PythFeeder__factory;\nPythFeeder__factory.abi = _abi;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PythFeederFactory__factory = exports.PythFeeder__factory = exports.Observer__factory = exports.MerkleDistributorWithDeadline__factory = exports.Instrument__factory = exports.ICexPriceFeeder__factory = exports.Guardian__factory = exports.Gate__factory = exports.EmergingFeederFactory__factory = exports.EmergingFeeder__factory = exports.DexV2Market__factory = exports.Config__factory = exports.CexMarket__factory = exports.Beacon__factory = void 0;\nvar Beacon__factory_1 = require(\"./Beacon__factory\");\nObject.defineProperty(exports, \"Beacon__factory\", { enumerable: true, get: function () { return Beacon__factory_1.Beacon__factory; } });\nvar CexMarket__factory_1 = require(\"./CexMarket__factory\");\nObject.defineProperty(exports, \"CexMarket__factory\", { enumerable: true, get: function () { return CexMarket__factory_1.CexMarket__factory; } });\nvar Config__factory_1 = require(\"./Config__factory\");\nObject.defineProperty(exports, \"Config__factory\", { enumerable: true, get: function () { return Config__factory_1.Config__factory; } });\nvar DexV2Market__factory_1 = require(\"./DexV2Market__factory\");\nObject.defineProperty(exports, \"DexV2Market__factory\", { enumerable: true, get: function () { return DexV2Market__factory_1.DexV2Market__factory; } });\nvar EmergingFeeder__factory_1 = require(\"./EmergingFeeder__factory\");\nObject.defineProperty(exports, \"EmergingFeeder__factory\", { enumerable: true, get: function () { return EmergingFeeder__factory_1.EmergingFeeder__factory; } });\nvar EmergingFeederFactory__factory_1 = require(\"./EmergingFeederFactory__factory\");\nObject.defineProperty(exports, \"EmergingFeederFactory__factory\", { enumerable: true, get: function () { return EmergingFeederFactory__factory_1.EmergingFeederFactory__factory; } });\nvar Gate__factory_1 = require(\"./Gate__factory\");\nObject.defineProperty(exports, \"Gate__factory\", { enumerable: true, get: function () { return Gate__factory_1.Gate__factory; } });\nvar Guardian__factory_1 = require(\"./Guardian__factory\");\nObject.defineProperty(exports, \"Guardian__factory\", { enumerable: true, get: function () { return Guardian__factory_1.Guardian__factory; } });\nvar ICexPriceFeeder__factory_1 = require(\"./ICexPriceFeeder__factory\");\nObject.defineProperty(exports, \"ICexPriceFeeder__factory\", { enumerable: true, get: function () { return ICexPriceFeeder__factory_1.ICexPriceFeeder__factory; } });\nvar Instrument__factory_1 = require(\"./Instrument__factory\");\nObject.defineProperty(exports, \"Instrument__factory\", { enumerable: true, get: function () { return Instrument__factory_1.Instrument__factory; } });\nvar MerkleDistributorWithDeadline__factory_1 = require(\"./MerkleDistributorWithDeadline__factory\");\nObject.defineProperty(exports, \"MerkleDistributorWithDeadline__factory\", { enumerable: true, get: function () { return MerkleDistributorWithDeadline__factory_1.MerkleDistributorWithDeadline__factory; } });\nvar Observer__factory_1 = require(\"./Observer__factory\");\nObject.defineProperty(exports, \"Observer__factory\", { enumerable: true, get: function () { return Observer__factory_1.Observer__factory; } });\nvar PythFeeder__factory_1 = require(\"./PythFeeder__factory\");\nObject.defineProperty(exports, \"PythFeeder__factory\", { enumerable: true, get: function () { return PythFeeder__factory_1.PythFeeder__factory; } });\nvar PythFeederFactory__factory_1 = require(\"./PythFeederFactory__factory\");\nObject.defineProperty(exports, \"PythFeederFactory__factory\", { enumerable: true, get: function () { return PythFeederFactory__factory_1.PythFeederFactory__factory; } });\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || (function () {\n var ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n };\n return function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PythFeederFactory__factory = exports.PythFeeder__factory = exports.Observer__factory = exports.MerkleDistributorWithDeadline__factory = exports.Instrument__factory = exports.ICexPriceFeeder__factory = exports.Guardian__factory = exports.Gate__factory = exports.EmergingFeederFactory__factory = exports.EmergingFeeder__factory = exports.DexV2Market__factory = exports.Config__factory = exports.CexMarket__factory = exports.Beacon__factory = exports.factories = void 0;\nexports.factories = __importStar(require(\"./factories\"));\nvar Beacon__factory_1 = require(\"./factories/Beacon__factory\");\nObject.defineProperty(exports, \"Beacon__factory\", { enumerable: true, get: function () { return Beacon__factory_1.Beacon__factory; } });\nvar CexMarket__factory_1 = require(\"./factories/CexMarket__factory\");\nObject.defineProperty(exports, \"CexMarket__factory\", { enumerable: true, get: function () { return CexMarket__factory_1.CexMarket__factory; } });\nvar Config__factory_1 = require(\"./factories/Config__factory\");\nObject.defineProperty(exports, \"Config__factory\", { enumerable: true, get: function () { return Config__factory_1.Config__factory; } });\nvar DexV2Market__factory_1 = require(\"./factories/DexV2Market__factory\");\nObject.defineProperty(exports, \"DexV2Market__factory\", { enumerable: true, get: function () { return DexV2Market__factory_1.DexV2Market__factory; } });\nvar EmergingFeeder__factory_1 = require(\"./factories/EmergingFeeder__factory\");\nObject.defineProperty(exports, \"EmergingFeeder__factory\", { enumerable: true, get: function () { return EmergingFeeder__factory_1.EmergingFeeder__factory; } });\nvar EmergingFeederFactory__factory_1 = require(\"./factories/EmergingFeederFactory__factory\");\nObject.defineProperty(exports, \"EmergingFeederFactory__factory\", { enumerable: true, get: function () { return EmergingFeederFactory__factory_1.EmergingFeederFactory__factory; } });\nvar Gate__factory_1 = require(\"./factories/Gate__factory\");\nObject.defineProperty(exports, \"Gate__factory\", { enumerable: true, get: function () { return Gate__factory_1.Gate__factory; } });\nvar Guardian__factory_1 = require(\"./factories/Guardian__factory\");\nObject.defineProperty(exports, \"Guardian__factory\", { enumerable: true, get: function () { return Guardian__factory_1.Guardian__factory; } });\nvar ICexPriceFeeder__factory_1 = require(\"./factories/ICexPriceFeeder__factory\");\nObject.defineProperty(exports, \"ICexPriceFeeder__factory\", { enumerable: true, get: function () { return ICexPriceFeeder__factory_1.ICexPriceFeeder__factory; } });\nvar Instrument__factory_1 = require(\"./factories/Instrument__factory\");\nObject.defineProperty(exports, \"Instrument__factory\", { enumerable: true, get: function () { return Instrument__factory_1.Instrument__factory; } });\nvar MerkleDistributorWithDeadline__factory_1 = require(\"./factories/MerkleDistributorWithDeadline__factory\");\nObject.defineProperty(exports, \"MerkleDistributorWithDeadline__factory\", { enumerable: true, get: function () { return MerkleDistributorWithDeadline__factory_1.MerkleDistributorWithDeadline__factory; } });\nvar Observer__factory_1 = require(\"./factories/Observer__factory\");\nObject.defineProperty(exports, \"Observer__factory\", { enumerable: true, get: function () { return Observer__factory_1.Observer__factory; } });\nvar PythFeeder__factory_1 = require(\"./factories/PythFeeder__factory\");\nObject.defineProperty(exports, \"PythFeeder__factory\", { enumerable: true, get: function () { return PythFeeder__factory_1.PythFeeder__factory; } });\nvar PythFeederFactory__factory_1 = require(\"./factories/PythFeederFactory__factory\");\nObject.defineProperty(exports, \"PythFeederFactory__factory\", { enumerable: true, get: function () { return PythFeederFactory__factory_1.PythFeederFactory__factory; } });\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./params\"), exports);\n__exportStar(require(\"./types\"), exports);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.positionLiquidationPrice = positionLiquidationPrice;\nexports.positionUnrealizedSocialLoss = positionUnrealizedSocialLoss;\nexports.positionUnrealizedPnl = positionUnrealizedPnl;\nexports.positionUnrealizedPnlByFairPrice = positionUnrealizedPnlByFairPrice;\nexports.positionUnrealizedFundingFee = positionUnrealizedFundingFee;\nexports.positionEquity = positionEquity;\nexports.positionLeverage = positionLeverage;\nexports.positionMaxWithdrawableMargin = positionMaxWithdrawableMargin;\nexports.positionAdditionMarginToIMRSafe = positionAdditionMarginToIMRSafe;\nexports.isPositionIMSafe = isPositionIMSafe;\nexports.isPositionMMSafe = isPositionMMSafe;\nexports.rangeEntryDeltaBase = rangeEntryDeltaBase;\nexports.rangeEntryDeltaQuote = rangeEntryDeltaQuote;\nexports.rangeToPosition = rangeToPosition;\nexports.rangeValueLocked = rangeValueLocked;\nexports.rangeFeeEarned = rangeFeeEarned;\nexports.rangeLowerPositionIfRemove = rangeLowerPositionIfRemove;\nexports.rangeUpperPositionIfRemove = rangeUpperPositionIfRemove;\nexports.orderToPosition = orderToPosition;\nexports.orderLeverage = orderLeverage;\nexports.orderEquity = orderEquity;\nexports.ammPlaceOrderLimit = ammPlaceOrderLimit;\nexports.ammWithinDeviationLimit = ammWithinDeviationLimit;\nexports.getMinLiquidity = getMinLiquidity;\nexports.getFundingRate = getFundingRate;\nexports.getBenchmarkPrice = getBenchmarkPrice;\nexports.estimateAPY = estimateAPY;\nexports.estimateAdjustMarginLeverage = estimateAdjustMarginLeverage;\nexports.inquireLeverageFromTransferAmount = inquireLeverageFromTransferAmount;\nexports.inquireTransferAmountFromTargetLeverage = inquireTransferAmountFromTargetLeverage;\nconst context_1 = require(\"@derivation-tech/context\");\nconst constants_1 = require(\"../constants\");\nconst math_1 = require(\"../math\");\nconst enum_1 = require(\"../enum\");\nconst constants_2 = require(\"../constants\");\nconst reverse_1 = require(\"./reverse\");\nconst factory_1 = require(\"./factory\");\nconst utils_1 = require(\"./utils\");\nconst lowLevel_1 = require(\"./lowLevel\");\nconst synfError_1 = require(\"../errors/synfError\");\nfunction toRawPosition(position) {\n if ('instrumentAddr' in position) {\n const _position = position;\n return _position.isInverse ? (0, reverse_1.reversePosition)(_position) : _position;\n }\n else {\n return position;\n }\n}\nfunction toRawAmm(amm) {\n if ('instrumentAddr' in amm) {\n const _amm = amm;\n return _amm.isInverse ? (0, reverse_1.reverseAmm)(_amm) : _amm;\n }\n else {\n return amm;\n }\n}\nfunction toRawRange(range) {\n if ('instrumentAddr' in range) {\n const _range = range;\n return _range.isInverse ? (0, reverse_1.reverseRange)(_range) : _range;\n }\n else {\n return range;\n }\n}\nfunction toRawOrder(order) {\n if ('instrumentAddr' in order) {\n const _order = order;\n return _order.isInverse ? (0, reverse_1.reverseOrder)(_order) : _order;\n }\n else {\n return order;\n }\n}\nfunction positionLiquidationPrice(position, amm = constants_1.EMPTY_AMM, maintenanceMarginRatio = 500) {\n const _position = position;\n position = toRawPosition(position);\n amm = toRawAmm(amm);\n if (position.size.isZero() || position.balance.isZero()) {\n return math_1.ZERO;\n }\n const price = (0, lowLevel_1.calcLiquidationPrice)(amm, position, maintenanceMarginRatio);\n return _position.isInverse ? (0, reverse_1.reversePrice)(price) : price;\n}\nfunction positionUnrealizedSocialLoss(position, amm) {\n position = toRawPosition(position);\n amm = toRawAmm(amm);\n const { socialLoss } = (0, lowLevel_1.tally)(amm, position, amm.markPrice);\n return socialLoss;\n}\nfunction positionUnrealizedPnl(position, amm) {\n position = toRawPosition(position);\n amm = toRawAmm(amm);\n return (0, lowLevel_1.calcPnl)(amm, position, amm.markPrice);\n}\nfunction positionUnrealizedPnlByFairPrice(position, amm) {\n position = toRawPosition(position);\n amm = toRawAmm(amm);\n return (0, lowLevel_1.calcPnl)(amm, position, (0, math_1.sqrtX96ToWad)(amm.sqrtPX96));\n}\nfunction positionUnrealizedFundingFee(position, amm) {\n if (amm.expiry !== constants_1.PERP_EXPIRY) {\n return math_1.ZERO;\n }\n position = toRawPosition(position);\n amm = toRawAmm(amm);\n return (0, lowLevel_1.calcFundingFee)(amm, position);\n}\nfunction positionEquity(position, amm) {\n position = toRawPosition(position);\n amm = toRawAmm(amm);\n return position.balance.add(positionUnrealizedPnl(position, amm));\n}\nfunction positionLeverage(position, amm) {\n position = toRawPosition(position);\n amm = toRawAmm(amm);\n const value = (0, math_1.wmul)(amm.markPrice, position.size.abs());\n const equity = positionEquity(position, amm);\n if (equity.isZero()) {\n return math_1.ZERO;\n }\n return (0, math_1.wdiv)(value, equity);\n}\nfunction positionMaxWithdrawableMargin(position, amm, initialMarginRatio) {\n position = toRawPosition(position);\n amm = toRawAmm(amm);\n const { pnl, socialLoss } = (0, lowLevel_1.tally)(amm, position, amm.markPrice);\n const funding = (0, lowLevel_1.calcFundingFee)(amm, position);\n const purePnl = pnl.add(socialLoss).sub(funding);\n const unrealizedLoss = (purePnl.gt(math_1.ZERO) ? math_1.ZERO : purePnl).sub(socialLoss);\n const value = (0, math_1.wmulUp)(amm.markPrice, position.size.abs());\n const imRequirement = (0, math_1.wmulUp)(value, (0, math_1.r2w)(initialMarginRatio));\n const maxWithdrawableMargin = position.balance.add(unrealizedLoss).sub(imRequirement);\n return maxWithdrawableMargin.gt(math_1.ZERO) ? maxWithdrawableMargin : math_1.ZERO;\n}\nfunction positionAdditionMarginToIMRSafe(position, amm, initialMarginRatio, increase, slippage) {\n position = toRawPosition(position);\n amm = toRawAmm(amm);\n const positionValue = (0, math_1.wmul)(amm.markPrice, position.size.abs());\n let imrValue = (0, math_1.wmulUp)(positionValue, (0, math_1.r2w)(initialMarginRatio));\n if (slippage) {\n imrValue = imrValue.mul(constants_1.ONE_RATIO + slippage).div(constants_1.ONE_RATIO);\n }\n let equity;\n if (increase) {\n const unrealizedPnl = positionUnrealizedPnl(position, amm);\n const unrealizedLoss = unrealizedPnl.lt(math_1.ZERO) ? unrealizedPnl : math_1.ZERO;\n equity = position.balance.add(unrealizedLoss);\n }\n else {\n equity = positionEquity(position, amm);\n }\n const additionMargin = imrValue.sub(equity);\n return additionMargin.gt(math_1.ZERO) ? additionMargin : math_1.ZERO;\n}\nfunction isPositionIMSafe(position, amm, initialMarginRatio, increase) {\n position = toRawPosition(position);\n amm = toRawAmm(amm);\n let equity;\n if (increase) {\n const unrealizedPnl = positionUnrealizedPnl(position, amm);\n const unrealizedLoss = unrealizedPnl.lt(math_1.ZERO) ? unrealizedPnl : math_1.ZERO;\n equity = position.balance.add(unrealizedLoss);\n }\n else {\n equity = positionEquity(position, amm);\n }\n if (equity.isNegative()) {\n return false;\n }\n const positionValue = (0, math_1.wmulUp)(amm.markPrice, position.size.abs());\n return equity.gte((0, math_1.wmulUp)(positionValue, (0, math_1.r2w)(initialMarginRatio)));\n}\nfunction isPositionMMSafe(position, amm, maintenanceMarginRatio) {\n position = toRawPosition(position);\n amm = toRawAmm(amm);\n const equity = positionEquity(position, amm);\n if (equity.isNegative()) {\n return false;\n }\n const positionValue = (0, math_1.wmulUp)(amm.markPrice, position.size.abs());\n return equity.gte((0, math_1.wmulUp)(positionValue, (0, math_1.r2w)(maintenanceMarginRatio)));\n}\nfunction rangeEntryDeltaBase(range) {\n range = toRawRange(range);\n const sqrtUpperPX96 = math_1.TickMath.getSqrtRatioAtTick(range.tickUpper);\n return math_1.SqrtPriceMath.getDeltaBaseAutoRoundUp(range.sqrtEntryPX96, sqrtUpperPX96, range.liquidity);\n}\nfunction rangeEntryDeltaQuote(range) {\n range = toRawRange(range);\n const sqrtLowerPX96 = math_1.TickMath.getSqrtRatioAtTick(range.tickLower);\n return math_1.SqrtPriceMath.getDeltaQuoteAutoRoundUp(sqrtLowerPX96, range.sqrtEntryPX96, range.liquidity);\n}\nfunction rangeToPosition(range, amm) {\n const _range = range;\n range = toRawRange(range);\n amm = toRawAmm(amm);\n const sqrtUpperPX96 = math_1.TickMath.getSqrtRatioAtTick(range.tickUpper);\n const sqrtLowerPX96 = math_1.TickMath.getSqrtRatioAtTick(range.tickLower);\n const fair = (0, math_1.sqrtX96ToWad)(amm.sqrtPX96);\n const entryDeltaBase = rangeEntryDeltaBase(range);\n const entryDeltaQuote = rangeEntryDeltaQuote(range);\n let removeDeltaBase = math_1.ZERO;\n let removeDeltaQuote = math_1.ZERO;\n if (amm.tick < range.tickLower) {\n removeDeltaBase = math_1.SqrtPriceMath.getDeltaBaseAutoRoundUp(sqrtLowerPX96, math_1.TickMath.getSqrtRatioAtTick(range.tickUpper), range.liquidity);\n }\n else if (amm.tick < range.tickUpper) {\n removeDeltaBase = math_1.SqrtPriceMath.getDeltaBaseAutoRoundUp(amm.sqrtPX96, math_1.TickMath.getSqrtRatioAtTick(range.tickUpper), range.liquidity);\n removeDeltaQuote = math_1.SqrtPriceMath.getDeltaQuoteAutoRoundUp(sqrtLowerPX96, amm.sqrtPX96, range.liquidity);\n }\n else {\n removeDeltaQuote = math_1.SqrtPriceMath.getDeltaQuoteAutoRoundUp(sqrtLowerPX96, sqrtUpperPX96, range.liquidity);\n }\n const earnedByBase = (0, math_1.wmul)(removeDeltaBase.sub(entryDeltaBase), fair);\n const earnedByQuote = removeDeltaQuote.sub(entryDeltaQuote);\n const pnl = earnedByBase.add(earnedByQuote);\n const fee = (0, math_1.wmulDown)(amm.feeIndex.sub(range.entryFeeIndex), range.liquidity);\n const size = removeDeltaBase.sub(entryDeltaBase);\n const rawPosition = {\n balance: range.balance.add(fee).add(pnl).sub(math_1.ONE),\n size: size,\n entryNotional: (0, math_1.wmul)(fair, size.abs()),\n entrySocialLossIndex: size.gt(math_1.ZERO) ? amm.longSocialLossIndex : amm.shortSocialLossIndex,\n entryFundingIndex: size.gt(math_1.ZERO) ? amm.longFundingIndex : amm.shortFundingIndex,\n };\n if ('instrumentAddr' in _range) {\n const __range = _range;\n const position = (0, factory_1.createPosition)({\n instrumentAddr: __range.instrumentAddr,\n expiry: __range.expiry,\n traderAddr: __range.traderAddr,\n ...rawPosition,\n });\n return __range.isInverse ? (0, reverse_1.reversePosition)(position) : position;\n }\n else {\n return rawPosition;\n }\n}\nfunction rangeValueLocked(range, amm) {\n range = toRawRange(range);\n amm = toRawAmm(amm);\n const position = rangeToPosition(range, amm);\n const total = (0, lowLevel_1.tally)(amm, position, amm.markPrice);\n return total.equity;\n}\nfunction rangeFeeEarned(range, amm) {\n range = toRawRange(range);\n amm = toRawAmm(amm);\n return (0, math_1.wmulDown)(amm.feeIndex.sub(range.entryFeeIndex), range.liquidity);\n}\nfunction customAmm(tick, input) {\n return {\n ...input,\n tick,\n sqrtPX96: math_1.TickMath.getSqrtRatioAtTick(tick),\n };\n}\nfunction rangeLowerPositionIfRemove(range, amm) {\n const _range = range;\n range = toRawRange(range);\n amm = toRawAmm(amm);\n const rawPosition = rangeToPosition(range, customAmm(range.tickLower, amm));\n if ('instrumentAddr' in _range) {\n const __range = _range;\n const position = (0, factory_1.createPosition)({\n instrumentAddr: __range.instrumentAddr,\n expiry: __range.expiry,\n traderAddr: __range.traderAddr,\n ...rawPosition,\n });\n return __range.isInverse ? (0, reverse_1.reversePosition)(position) : position;\n }\n else {\n return rawPosition;\n }\n}\nfunction rangeUpperPositionIfRemove(range, amm) {\n const _range = range;\n range = toRawRange(range);\n amm = toRawAmm(amm);\n const rawPosition = rangeToPosition(range, customAmm(range.tickUpper, amm));\n if ('instrumentAddr' in _range) {\n const __range = _range;\n const position = (0, factory_1.createPosition)({\n instrumentAddr: __range.instrumentAddr,\n expiry: __range.expiry,\n traderAddr: __range.traderAddr,\n ...rawPosition,\n });\n return __range.isInverse ? (0, reverse_1.reversePosition)(position) : position;\n }\n else {\n return rawPosition;\n }\n}\nfunction orderToPosition(order) {\n const _order = order;\n order = toRawOrder(order);\n const rawPosition = {\n balance: order.balance,\n size: order.size,\n entryNotional: (0, math_1.wmul)(math_1.TickMath.getWadAtTick(order.tick), order.size.abs()),\n entrySocialLossIndex: math_1.ZERO,\n entryFundingIndex: math_1.ZERO,\n };\n if ('instrumentAddr' in _order) {\n const __order = _order;\n const position = (0, factory_1.createPosition)({\n instrumentAddr: __order.instrumentAddr,\n expiry: __order.expiry,\n traderAddr: __order.traderAddr,\n ...rawPosition,\n });\n return __order.isInverse ? (0, reverse_1.reversePosition)(position) : position;\n }\n else {\n return rawPosition;\n }\n}\nfunction orderLeverage(order, amm) {\n order = toRawOrder(order);\n amm = toRawAmm(amm);\n const limitPrice = math_1.TickMath.getWadAtTick(order.tick);\n const px = order.taken.eq(math_1.ZERO) ? limitPrice : amm.markPrice;\n const value = (0, math_1.wmul)(px, order.size.abs());\n return (0, math_1.wdiv)(value, order.balance);\n}\nfunction orderEquity(order, amm) {\n order = toRawOrder(order);\n amm = toRawAmm(amm);\n return positionEquity(orderToPosition(order), amm);\n}\nfunction ammPlaceOrderLimit(amm, initialMarginRatio) {\n const _amm = amm;\n amm = toRawAmm(amm);\n const maxDiff = (0, math_1.wmul)(amm.markPrice, (0, math_1.r2w)(initialMarginRatio)).mul(2);\n const rawUpperTick = math_1.TickMath.getTickAtPWad(amm.markPrice.add(maxDiff));\n const rawLowerTick = math_1.TickMath.getTickAtPWad(amm.markPrice.sub(maxDiff));\n let upperTick = constants_1.ORDER_SPACING * Math.floor(rawUpperTick / constants_1.ORDER_SPACING);\n let lowerTick = constants_1.ORDER_SPACING * Math.ceil(rawLowerTick / constants_1.ORDER_SPACING);\n if (!(0, lowLevel_1.withinOrderLimit)(math_1.TickMath.getWadAtTick(rawUpperTick), amm.markPrice, initialMarginRatio)) {\n upperTick = upperTick - constants_1.ORDER_SPACING;\n }\n if (!(0, lowLevel_1.withinOrderLimit)(math_1.TickMath.getWadAtTick(rawLowerTick), amm.markPrice, initialMarginRatio)) {\n lowerTick = lowerTick + constants_1.ORDER_SPACING;\n }\n return _amm.isInverse\n ? {\n upperTick: lowerTick,\n lowerTick: upperTick,\n }\n : {\n upperTick,\n lowerTick,\n };\n}\nfunction ammWithinDeviationLimit(amm, initialMarginRatio) {\n amm = toRawAmm(amm);\n return (0, lowLevel_1.withinDeviationLimit)((0, math_1.sqrtX96ToWad)(amm.sqrtPX96), amm.markPrice, initialMarginRatio);\n}\nfunction getMinLiquidity(instrument, expiry, px96) {\n instrument = instrument.isInverse ? (0, reverse_1.reverseInstrument)(instrument) : instrument;\n const amm = instrument.amms.get(expiry);\n if (!amm) {\n throw new synfError_1.SynfError('Pair not found,' + `instrument: ${instrument.instrumentAddr}, expiry: ${expiry}`);\n }\n const sqrtPX96 = px96 ? px96 : amm.sqrtPX96;\n return instrument.minRangeValue.mul(math_1.Q96).div(sqrtPX96.mul(2));\n}\nfunction getFundingRate(instrument, expiry) {\n const _instrument = instrument;\n instrument = instrument.isInverse ? (0, reverse_1.reverseInstrument)(instrument) : instrument;\n if (instrument.spotPrice.eq(0)) {\n throw new synfError_1.SynfError('Spot price can not be zero');\n }\n const amm = instrument.amms.get(expiry);\n if (!amm) {\n throw new synfError_1.SynfError('Pair not found');\n }\n const period = instrument.fundingHour * 3600;\n const result = (0, math_1.wdiv)((0, math_1.sqrtX96ToWad)(amm.sqrtPX96), instrument.spotPrice).sub(math_1.WAD).mul(86400).div(period);\n return _instrument.isInverse ? result.mul(-1) : result;\n}\nfunction getBenchmarkPrice(instrument, expiry) {\n instrument = instrument.isInverse ? (0, reverse_1.reverseInstrument)(instrument) : instrument;\n if (expiry === constants_1.PERP_EXPIRY) {\n return instrument.spotPrice;\n }\n else {\n const rawSpotPrice = instrument.spotPrice;\n const daysLeft = Date.now() / 1000 >= expiry ? 0 : ~~(expiry * 1000 - Date.now()) / (86400 * 1000) + 1;\n const instrumentType = instrument.market.feeder.ftype;\n if (instrumentType === enum_1.FeederType.BOTH_STABLE || instrumentType === enum_1.FeederType.NONE_STABLE) {\n return instrument.spotPrice;\n }\n else if (instrumentType === enum_1.FeederType.QUOTE_STABLE) {\n return (0, math_1.wmulDown)(rawSpotPrice, (0, math_1.r2w)(instrument.market.config.dailyInterestRate))\n .mul(daysLeft)\n .add(rawSpotPrice);\n }\n else {\n const priceChange = (0, math_1.wmulDown)(rawSpotPrice, (0, math_1.r2w)(instrument.market.config.dailyInterestRate)).mul(daysLeft);\n return rawSpotPrice.gt(priceChange) ? rawSpotPrice.sub(priceChange) : math_1.ZERO;\n }\n }\n}\nfunction estimateAPY(instrument, expiry, poolFee24h, alphaWad) {\n instrument = instrument.isInverse ? (0, reverse_1.reverseInstrument)(instrument) : instrument;\n const amm = instrument.amms.get(expiry);\n if (!amm || amm.liquidity.eq(math_1.ZERO)) {\n return 0;\n }\n const assumeAddMargin = instrument.minRangeValue;\n const tickDelta = (0, utils_1.alphaWadToTickDelta)(alphaWad);\n const upperTick = constants_2.RANGE_SPACING * ~~((amm.tick + tickDelta) / constants_2.RANGE_SPACING);\n const lowerTick = constants_2.RANGE_SPACING * ~~((amm.tick - tickDelta) / constants_2.RANGE_SPACING);\n const { liquidity: assumeAddLiquidity } = (0, lowLevel_1.entryDelta)(amm.sqrtPX96, lowerTick, upperTick, assumeAddMargin, instrument.setting.initialMarginRatio);\n const assumed24HrFee = poolFee24h.mul(assumeAddLiquidity).div(amm.liquidity);\n const apyWad = (0, math_1.wdiv)(assumed24HrFee.mul(365), assumeAddMargin);\n return (0, context_1.fromWad)(apyWad);\n}\nfunction estimateAdjustMarginLeverage(position, amm, amount) {\n position = toRawPosition(position);\n amm = toRawAmm(amm);\n const equity = positionEquity(position, amm).sub(amount);\n const value = (0, math_1.wmul)(amm.markPrice, position.size.abs()).sub(amount);\n return (0, math_1.wdiv)(value, equity);\n}\nfunction inquireLeverageFromTransferAmount(position, amm, transferIn, transferAmount) {\n position = toRawPosition(position);\n amm = toRawAmm(amm);\n const sign = transferIn ? 1 : -1;\n const value = (0, math_1.wmul)(amm.markPrice, position.size.abs());\n const oldEquity = positionEquity(position, amm);\n const Amount = transferAmount.mul(sign);\n const newEquity = oldEquity.add(Amount);\n return (0, math_1.wdiv)(value, newEquity);\n}\nfunction inquireTransferAmountFromTargetLeverage(position, amm, targetLeverage) {\n position = toRawPosition(position);\n amm = toRawAmm(amm);\n const value = (0, math_1.wmul)(amm.markPrice, position.size.abs());\n const targetEquity = (0, math_1.wdiv)(value, targetLeverage);\n const currentEquity = positionEquity(position, amm);\n return targetEquity.sub(currentEquity);\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.loadConfig = loadConfig;\nconst ethers_1 = require(\"ethers\");\nfunction loadConfig(json) {\n const quotesParam = {};\n for (const symbol in json.quotesParam) {\n const item = json.quotesParam[symbol];\n quotesParam[symbol] = {\n tradingFeeRatio: item.tradingFeeRatio,\n stabilityFeeRatioParam: ethers_1.BigNumber.from(item.stabilityFeeRatioParam),\n protocolFeeRatio: item.protocolFeeRatio,\n qtype: Number(item.qtype),\n minMarginAmount: ethers_1.BigNumber.from(item.minMarginAmount),\n tip: ethers_1.BigNumber.from(item.tip),\n };\n }\n const config = {\n ...json,\n quotesParam,\n };\n return config;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.checkReferralCode = checkReferralCode;\nexports.getHexReferral = getHexReferral;\nexports.encodeTradeParam = encodeTradeParam;\nexports.encodePlaceParam = encodePlaceParam;\nexports.encodeDepositParam = encodeDepositParam;\nexports.encodeWithdrawParam = encodeWithdrawParam;\nexports.encodeAdjustParam = encodeAdjustParam;\nexports.encodeAddParam = encodeAddParam;\nexports.encodeRemoveParam = encodeRemoveParam;\nexports.encodeBatchPlaceParam = encodeBatchPlaceParam;\nexports.encodeFillParam = encodeFillParam;\nexports.encodeCancelParam = encodeCancelParam;\nexports.decodeTradeParam = decodeTradeParam;\nexports.decodeTradeWithStabilityFeeParam = decodeTradeWithStabilityFeeParam;\nexports.decodeDepositParam = decodeDepositParam;\nexports.decodeWithdrawParam = decodeWithdrawParam;\nexports.decodeParamForDepositAndWithdraw = decodeParamForDepositAndWithdraw;\nexports.decodeAddParam = decodeAddParam;\nexports.decodeRemoveParam = decodeRemoveParam;\nexports.decodePlaceParam = decodePlaceParam;\nexports.decodeBatchPlaceParam = decodeBatchPlaceParam;\nexports.decodeFillParam = decodeFillParam;\nexports.decodeCancelParam = decodeCancelParam;\nconst ethers_1 = require(\"ethers\");\nconst utils_1 = require(\"ethers/lib/utils\");\nconst constants_1 = require(\"../constants\");\nconst math_1 = require(\"../math\");\nconst paramsEncodeError_1 = require(\"../errors/paramsEncodeError\");\nconst nonceLength = 24;\nconst tickLength = 24;\nconst limitTicksLength = tickLength * 2;\nconst expiryLength = 32;\nconst sizeLength = 128;\nconst amountLength = 128;\nconst quantityLength = 96;\nconst addressLength = 160;\nconst deadlineLength = 32;\nconst limitStabilityFeeRatioLength = 16;\nconst ratioLength = 16;\nconst leverageLength = 128;\nfunction bytes32ToBigNumber(str) {\n str = str.startsWith('0x') ? str : '0x' + str;\n if (str.length !== 66) {\n throw new paramsEncodeError_1.ParamsEncodeError('invalid bytes32 string', { str });\n }\n return ethers_1.BigNumber.from(str);\n}\nfunction pickNumber(value, from, to) {\n return pickBigNumber(value, from, to).toNumber();\n}\nfunction pickAddress(value, from, to) {\n return (0, utils_1.hexZeroPad)(pickBigNumber(value, from, to).toHexString(), 20);\n}\nfunction pickBigNumber(value, from, to) {\n return value.shr(from).and(math_1.ONE.shl(to - from).sub(1));\n}\nfunction checkReferralCode(referral) {\n if (referral.length !== 8)\n throw new paramsEncodeError_1.ParamsEncodeError('referral code length must be 8', { referral });\n}\nfunction getHexReferral(referral) {\n checkReferralCode(referral);\n const platform = referral.charCodeAt(0);\n const wallet = referral.charCodeAt(1);\n const channel = referral.slice(2);\n return ethers_1.ethers.utils.hexConcat([\n ethers_1.BigNumber.from(platform).toHexString(),\n ethers_1.BigNumber.from(wallet).toHexString(),\n ethers_1.ethers.utils.hexlify(ethers_1.ethers.utils.toUtf8Bytes(channel)),\n ]);\n}\nfunction encodeParamForTradeAndPlace(param) {\n const usize = (0, math_1.asUint128)(param.size);\n const uAmount = (0, math_1.asUint128)(param.amount);\n const uTick = (0, math_1.asUint24)(param.limitTick);\n const combinedTick = ethers_1.BigNumber.from(uTick).shl(32).add(ethers_1.BigNumber.from(param.expiry));\n const combinedDeadline = ethers_1.BigNumber.from(param.deadline).shl(56).add(combinedTick);\n const combinedSize = ethers_1.BigNumber.from(usize).shl(128).add(uAmount);\n const page0Temp = (0, utils_1.hexZeroPad)(combinedDeadline.toHexString(), 32);\n const page1 = (0, utils_1.hexZeroPad)(combinedSize.toHexString(), 32);\n const page0 = param.referralCode\n ? (0, utils_1.hexZeroPad)(ethers_1.BigNumber.from(getHexReferral(param.referralCode)).shl(192).add(ethers_1.BigNumber.from(page0Temp)).toHexString(), 32)\n : page0Temp;\n return [page0, page1];\n}\nfunction encodeTradeParam(param) {\n return encodeParamForTradeAndPlace(param);\n}\nfunction encodePlaceParam(param) {\n return encodeParamForTradeAndPlace({\n ...param,\n limitTick: param.tick,\n });\n}\nfunction encodeDepositParam(token, quantity) {\n return encodeParamForDepositAndWithdraw(token, quantity);\n}\nfunction encodeWithdrawParam(token, quantity) {\n return encodeParamForDepositAndWithdraw(token, quantity);\n}\nfunction encodeParamForDepositAndWithdraw(token, quantity) {\n return (0, utils_1.hexZeroPad)(ethers_1.BigNumber.from(quantity).shl(160).add(token).toHexString(), 32);\n}\nfunction encodeAdjustParam(param) {\n return encodeParamForTradeAndPlace({\n expiry: param.expiry,\n size: math_1.ZERO,\n amount: param.net,\n limitTick: 0,\n deadline: param.deadline,\n referralCode: param.referralCode,\n });\n}\nfunction encodeAddParam(addParam) {\n const uTick = (0, math_1.asUint48)(addParam.limitTicks.toNumber());\n const combinedTick = ethers_1.BigNumber.from(uTick).shl(32).add(ethers_1.BigNumber.from(addParam.expiry));\n const combinedDeadline = ethers_1.BigNumber.from(addParam.deadline).shl(80).add(combinedTick);\n const combinedAmount = ethers_1.BigNumber.from(addParam.tickDeltaLower)\n .shl(152)\n .add(ethers_1.BigNumber.from(addParam.tickDeltaUpper).shl(128))\n .add(addParam.amount);\n const page0 = addParam.referralCode\n ? (0, utils_1.hexZeroPad)(ethers_1.BigNumber.from(getHexReferral(addParam.referralCode)).shl(192).add(combinedDeadline).toHexString(), 32)\n : (0, utils_1.hexZeroPad)(combinedDeadline.toHexString(), 32);\n const page1 = (0, utils_1.hexZeroPad)(combinedAmount.toHexString(), 32);\n return [page0, page1];\n}\nfunction encodeRemoveParam(removeParam) {\n const uTick = (0, math_1.asUint48)(removeParam.limitTicks.toNumber());\n const combinedTick = ethers_1.BigNumber.from(uTick).shl(32).add(ethers_1.BigNumber.from(removeParam.expiry));\n const combinedDeadline = ethers_1.BigNumber.from(removeParam.deadline).shl(80).add(combinedTick);\n const uTickLower = (0, math_1.asUint24)(removeParam.tickLower);\n const uTickUpper = (0, math_1.asUint24)(removeParam.tickUpper);\n const combinedTickLower = ethers_1.BigNumber.from(uTickLower).shl(160).add(removeParam.traderAddr);\n const combinedTickUpper = ethers_1.BigNumber.from(uTickUpper).shl(184).add(combinedTickLower);\n const page0 = (0, utils_1.hexZeroPad)(combinedDeadline.toHexString(), 32);\n const page1 = (0, utils_1.hexZeroPad)(combinedTickUpper.toHexString(), 32);\n return [page0, page1];\n}\nfunction encodeBatchPlaceParam(expiry, size, leverage, ticks, ratios, deadline, referral) {\n if (ticks.length > 9)\n throw new paramsEncodeError_1.ParamsEncodeError('cannot place more than 9 orders at once', { ticks });\n if (ticks.length !== ratios.length)\n throw new paramsEncodeError_1.ParamsEncodeError('ticks and ratios length mismatch', { ticks, ratios });\n if (ratios.reduce((a, b) => a + b, 0) !== constants_1.RATIO_BASE)\n throw new paramsEncodeError_1.ParamsEncodeError('ratios sum must be 10000', ratios);\n const usize = (0, math_1.asUint128)(size);\n const uLeverage = (0, math_1.asUint128)(leverage);\n const combinedSize = ethers_1.BigNumber.from(usize).shl(128).add(uLeverage);\n const page2 = (0, utils_1.hexZeroPad)(combinedSize.toHexString(), 32);\n let tmp0 = ethers_1.BigNumber.from(deadline).shl(32).add(ethers_1.BigNumber.from(expiry));\n for (let i = 0; i < 3; i++) {\n const uTick = i < ticks.length ? (0, math_1.asUint24)(ticks[i]) : math_1.EMPTY_TICK;\n const uRatio = i < ratios.length ? (0, math_1.asUint16)(ratios[i]) : 0;\n tmp0 = tmp0.add(ethers_1.BigNumber.from(uRatio).shl(64 + 40 * i)).add(ethers_1.BigNumber.from(uTick).shl(64 + 40 * i + 16));\n }\n const page0Temp = (0, utils_1.hexZeroPad)(tmp0.toHexString(), 32);\n let tmp1 = math_1.ZERO;\n for (let i = 0; i < 6; i++) {\n const uTick = i + 3 < ticks.length ? (0, math_1.asUint24)(ticks[i + 3]) : math_1.EMPTY_TICK;\n const uRatio = i + 3 < ratios.length ? (0, math_1.asUint16)(ratios[i + 3]) : 0;\n tmp1 = tmp1.add(ethers_1.BigNumber.from(uRatio).shl(40 * i)).add(ethers_1.BigNumber.from(uTick).shl(40 * i + 16));\n }\n const page1 = (0, utils_1.hexZeroPad)(tmp1.toHexString(), 32);\n const page0 = referral\n ? (0, utils_1.hexZeroPad)(ethers_1.BigNumber.from(getHexReferral(referral)).shl(192).add(ethers_1.BigNumber.from(page0Temp)).toHexString(), 32)\n : page0Temp;\n return [page0, page1, page2];\n}\nfunction encodeFillParam(param) {\n const uTick = (0, math_1.asUint24)(param.tick);\n const combinedTarget = ethers_1.BigNumber.from(param.target).shl(32).add(ethers_1.BigNumber.from(param.expiry));\n const combinedTick = ethers_1.BigNumber.from(uTick).shl(192).add(combinedTarget);\n return (0, utils_1.hexZeroPad)(ethers_1.BigNumber.from(param.nonce).shl(216).add(combinedTick).toHexString(), 32);\n}\nfunction encodeCancelParam(param) {\n const { ticks, expiry, deadline } = param;\n if (ticks.length < 1 || ticks.length > constants_1.MAX_CANCEL_ORDER_COUNT)\n throw new paramsEncodeError_1.ParamsEncodeError(`ticks length must be between 1 and ${constants_1.MAX_CANCEL_ORDER_COUNT}`, { ticks });\n let encodedTicks = math_1.ZERO;\n for (let i = 0; i < constants_1.MAX_CANCEL_ORDER_COUNT; i++) {\n const tick = i < ticks.length ? ticks[i] : constants_1.INT24_MAX;\n encodedTicks = encodedTicks.add(ethers_1.BigNumber.from((0, math_1.asUint24)(tick)).shl(24 * i));\n }\n const combinedTick = ethers_1.BigNumber.from(encodedTicks).shl(32).add(ethers_1.BigNumber.from(expiry));\n const combinedDeadline = ethers_1.BigNumber.from(deadline).shl(224).add(combinedTick);\n return (0, utils_1.hexZeroPad)(combinedDeadline.toHexString(), 32);\n}\nfunction decodeTradeParam(args) {\n return decodeParamForTradeAndPlace(args);\n}\nfunction decodeTradeWithStabilityFeeParam(args) {\n const tradeParam = decodeTradeParam(args);\n const value1 = bytes32ToBigNumber(args[0]);\n const offset = expiryLength + tickLength + deadlineLength;\n const limitStabilityFeeRatio = pickNumber(value1, offset, offset + limitStabilityFeeRatioLength);\n return { ...tradeParam, limitStabilityFeeRatio };\n}\nfunction decodeParamForTradeAndPlace(args) {\n if (args.length !== 2) {\n throw new paramsEncodeError_1.ParamsEncodeError('invalid args length for trade and place', { args });\n }\n const [arg1, arg2] = args;\n let offset = 0;\n const value1 = bytes32ToBigNumber(arg1);\n const expiry = pickNumber(value1, offset, (offset += expiryLength));\n const limitTick = (0, math_1.asInt24)(pickNumber(value1, offset, (offset += tickLength)));\n const deadline = pickNumber(value1, offset, (offset += deadlineLength));\n offset = 0;\n const value2 = bytes32ToBigNumber(arg2);\n const amount = (0, math_1.asInt128)(pickBigNumber(value2, offset, (offset += amountLength)));\n const size = (0, math_1.asInt128)(pickBigNumber(value2, offset, (offset += sizeLength)));\n return { expiry, size, amount, limitTick, deadline, referralCode: '' };\n}\nfunction decodeDepositParam(arg) {\n return decodeParamForDepositAndWithdraw(arg);\n}\nfunction decodeWithdrawParam(arg) {\n return decodeParamForDepositAndWithdraw(arg);\n}\nfunction decodeParamForDepositAndWithdraw(arg) {\n let offset = 0;\n const value = bytes32ToBigNumber(arg);\n const token = pickAddress(value, offset, (offset += addressLength));\n const quantity = pickBigNumber(value, offset, (offset += quantityLength));\n return { quantity, token };\n}\nfunction decodeAddParam(args) {\n if (args.length !== 2) {\n throw new paramsEncodeError_1.ParamsEncodeError('invalid args length for add', { args });\n }\n const [arg1, arg2] = args;\n let offset = 0;\n const value1 = bytes32ToBigNumber(arg1);\n const expiry = pickNumber(value1, offset, (offset += expiryLength));\n const limitTicks = pickBigNumber(value1, offset, (offset += limitTicksLength));\n const deadline = pickNumber(value1, offset, (offset += deadlineLength));\n offset = 0;\n const value2 = bytes32ToBigNumber(arg2);\n const amount = pickBigNumber(value2, offset, (offset += amountLength));\n const tickDeltaUpper = pickNumber(value2, offset, (offset += tickLength));\n const tickDeltaLower = pickNumber(value2, offset, (offset += tickLength));\n return { limitTicks, amount, tickDeltaLower, tickDeltaUpper, expiry, deadline, referralCode: '' };\n}\nfunction decodeRemoveParam(args) {\n if (args.length !== 2) {\n throw new paramsEncodeError_1.ParamsEncodeError('invalid args length for remove', { args });\n }\n const [arg1, arg2] = args;\n let offset = 0;\n const value1 = bytes32ToBigNumber(arg1);\n const expiry = pickNumber(value1, offset, (offset += expiryLength));\n const limitTicks = pickBigNumber(value1, offset, (offset += limitTicksLength));\n const deadline = pickNumber(value1, offset, (offset += deadlineLength));\n offset = 0;\n const value2 = bytes32ToBigNumber(arg2);\n const target = pickAddress(value2, offset, (offset += addressLength));\n const tickLower = (0, math_1.asInt24)(pickNumber(value2, offset, (offset += tickLength)));\n const tickUpper = (0, math_1.asInt24)(pickNumber(value2, offset, (offset += tickLength)));\n return { tickUpper, tickLower, traderAddr: target, expiry, limitTicks, deadline };\n}\nfunction decodePlaceParam(args) {\n const result = decodeParamForTradeAndPlace(args);\n return {\n expiry: result.expiry,\n size: result.size,\n amount: result.amount,\n tick: result.limitTick,\n deadline: result.deadline,\n };\n}\nfunction decodeBatchPlaceParam(args) {\n if (args.length !== 3) {\n throw new paramsEncodeError_1.ParamsEncodeError('invalid args length for place', { args });\n }\n const [arg1, arg2, arg3] = args;\n const ticks = [];\n const ratios = [];\n let offset = 0;\n const value1 = bytes32ToBigNumber(arg1);\n const expiry = pickNumber(value1, offset, (offset += expiryLength));\n const deadline = pickNumber(value1, offset, (offset += deadlineLength));\n for (let i = 0; i < 3; i++) {\n const ratio = pickNumber(value1, offset, (offset += ratioLength));\n const tick = (0, math_1.asInt24)(pickNumber(value1, offset, (offset += tickLength)));\n if (ethers_1.BigNumber.from(tick).eq(math_1.EMPTY_TICK))\n continue;\n ticks.push(tick);\n ratios.push(ratio);\n }\n offset = 0;\n const value2 = bytes32ToBigNumber(arg2);\n for (let i = 0; i < 6; i++) {\n const ratio = pickNumber(value2, offset, (offset += ratioLength));\n const tick = (0, math_1.asInt24)(pickNumber(value2, offset, (offset += tickLength)));\n if (ethers_1.BigNumber.from(tick).eq(math_1.EMPTY_TICK))\n continue;\n ticks.push(tick);\n ratios.push(ratio);\n }\n offset = 0;\n const value3 = bytes32ToBigNumber(arg3);\n const leverage = (0, math_1.asInt128)(pickBigNumber(value3, offset, (offset += leverageLength)));\n const size = (0, math_1.asInt128)(pickBigNumber(value3, offset, (offset += sizeLength)));\n return { expiry, ticks, ratios, size, leverage, deadline };\n}\nfunction decodeFillParam(arg) {\n let offset = 0;\n const value = bytes32ToBigNumber(arg);\n const expiry = pickNumber(value, offset, (offset += expiryLength));\n const target = pickAddress(value, offset, (offset += addressLength));\n const tick = (0, math_1.asInt24)(pickNumber(value, offset, (offset += tickLength)));\n const nonce = pickNumber(value, offset, (offset += nonceLength));\n return { nonce, tick, target, expiry };\n}\nfunction decodeCancelParam(arg) {\n let offset = 0;\n const value = bytes32ToBigNumber(arg);\n const expiry = pickNumber(value, offset, (offset += expiryLength));\n const ticks = [];\n for (let i = 0; i < constants_1.MAX_CANCEL_ORDER_COUNT; i++) {\n const tick = (0, math_1.asInt24)(pickNumber(value, offset, (offset += tickLength)));\n if (tick === math_1.MAX_INT_24.toNumber()) {\n continue;\n }\n ticks.push(tick);\n }\n const deadline = pickNumber(value, offset, (offset += deadlineLength));\n return { ticks, expiry, deadline };\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createInstrument = createInstrument;\nexports.createAmm = createAmm;\nexports.createOrder = createOrder;\nexports.createPosition = createPosition;\nexports.createRange = createRange;\nconst constants_1 = require(\"../constants\");\nconst math_1 = require(\"../math\");\nconst utils_1 = require(\"./utils\");\nconst lowLevel_1 = require(\"./lowLevel\");\nfunction createInstrument(instrument) {\n const minTradeValue = instrument.setting.quoteParam.minMarginAmount\n .mul(constants_1.RATIO_BASE)\n .div(instrument.setting.initialMarginRatio);\n const minOrderValue = minTradeValue.mul(constants_1.MIN_ORDER_MULTIPLIER);\n const minRangeValue = minTradeValue.mul(constants_1.MIN_RANGE_MULTIPLIER);\n return {\n ...instrument,\n instrumentAddr: instrument.instrumentAddr.toLowerCase(),\n instrumentType: instrument.market.feeder.ftype,\n marketType: instrument.market.info.type,\n minTradeValue,\n minOrderValue,\n minRangeValue,\n displayBase: instrument.base,\n displayQuote: instrument.quote,\n minTickDelta: (0, lowLevel_1.calcMinTickDelta)(instrument.setting.initialMarginRatio),\n };\n}\nfunction createAmm(amm) {\n return {\n ...amm,\n instrumentAddr: amm.instrumentAddr.toLowerCase(),\n fairPrice: (0, math_1.sqrtX96ToWad)(amm.sqrtPX96),\n };\n}\nfunction createOrder(order) {\n return {\n ...order,\n instrumentAddr: order.instrumentAddr.toLowerCase(),\n traderAddr: order.traderAddr.toLowerCase(),\n oid: (0, utils_1.orderKey)(order.tick, order.nonce),\n side: (0, utils_1.sizeToSide)(order.size),\n limitPrice: math_1.TickMath.getWadAtTick(order.tick),\n };\n}\nfunction createPosition(position) {\n return {\n ...position,\n instrumentAddr: position.instrumentAddr.toLowerCase(),\n traderAddr: position.traderAddr.toLowerCase(),\n side: (0, utils_1.sizeToSide)(position.size),\n entryPrice: position.size.eq(math_1.ZERO) ? math_1.ZERO : (0, math_1.wdiv)(position.entryNotional, position.size.abs()),\n };\n}\nfunction createRange(range) {\n return {\n ...range,\n instrumentAddr: range.instrumentAddr.toLowerCase(),\n traderAddr: range.traderAddr.toLowerCase(),\n rid: (0, utils_1.rangeKey)(range.tickLower, range.tickUpper),\n lowerPrice: math_1.TickMath.getWadAtTick(range.tickLower),\n upperPrice: math_1.TickMath.getWadAtTick(range.tickUpper),\n entryPrice: (0, math_1.sqrtX96ToWad)(range.sqrtEntryPX96),\n };\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.groupBy = groupBy;\nexports.calcPositionLiquidationPrice = calcPositionLiquidationPrice;\nexports.formatOrder = formatOrder;\nexports.formatRange = formatRange;\nexports.formatPosition = formatPosition;\nexports.formatPositionWithoutPnL = formatPositionWithoutPnL;\nexports.formatAmm = formatAmm;\nexports.formatInstrument = formatInstrument;\nexports.formatPortfolio = formatPortfolio;\nexports.formatSimulateAddLiquidityResult = formatSimulateAddLiquidityResult;\nexports.formatSimulateAddLiquidityWithAsymmetricRangeResult = formatSimulateAddLiquidityWithAsymmetricRangeResult;\nexports.formatSimulateRemoveLiquidityResult = formatSimulateRemoveLiquidityResult;\nexports.formatSimulateMarketOrderResult = formatSimulateMarketOrderResult;\nexports.formatSimulateAdjustMarginByMarginResult = formatSimulateAdjustMarginByMarginResult;\nexports.formatSimulateAdjustMarginByLeverageResult = formatSimulateAdjustMarginByLeverageResult;\nexports.formatSimulateLimitOrderResult = formatSimulateLimitOrderResult;\nexports.formatSimulateBatchPlaceResult = formatSimulateBatchPlaceResult;\nexports.formatSimulateCrossMarketOrderResult = formatSimulateCrossMarketOrderResult;\nconst utils_1 = require(\"ethers/lib/utils\");\nconst calculation_1 = require(\"./calculation\");\nconst _1 = require(\".\");\nconst math_1 = require(\"../math\");\nconst enum_1 = require(\"../enum\");\nfunction groupBy(arr, fn) {\n return arr.reduce((map, curr) => {\n const key = fn(curr);\n const group = map.get(key);\n if (group) {\n group.push(curr);\n }\n else {\n map.set(key, [curr]);\n }\n return map;\n }, new Map());\n}\nfunction calcPositionLiquidationPrice(amm, position, maintenanceMarginRatio) {\n if (position.size.isZero() || position.balance.isZero())\n return math_1.ZERO;\n return (0, calculation_1.positionLiquidationPrice)(position, amm, maintenanceMarginRatio);\n}\nfunction _formatOrder(order, amm) {\n const formattedOrder = {\n side: enum_1.Side[order.side],\n size: (0, utils_1.formatEther)(order.size),\n Filled: (0, utils_1.formatEther)(order.taken),\n 'Order Price': (0, utils_1.formatEther)(order.limitPrice),\n Margin: (0, utils_1.formatEther)(order.balance),\n Leverage: (0, utils_1.formatEther)((0, calculation_1.orderLeverage)(order, amm)),\n };\n return formattedOrder;\n}\nfunction formatOrder(order, amm) {\n return JSON.stringify(_formatOrder(order, amm), null, 2);\n}\nfunction _formatRange(range, amm, maintenanceMarginRatio) {\n const upperRawPosition = (0, calculation_1.rangeUpperPositionIfRemove)(range, amm);\n const upperPosition = _1.factory.createPosition({\n ...upperRawPosition,\n instrumentAddr: range.instrumentAddr,\n expiry: range.expiry,\n traderAddr: range.traderAddr,\n });\n const lowerRawPosition = (0, calculation_1.rangeLowerPositionIfRemove)(range, amm);\n const lowerPosition = _1.factory.createPosition({\n ...lowerRawPosition,\n instrumentAddr: range.instrumentAddr,\n expiry: range.expiry,\n traderAddr: range.traderAddr,\n });\n const lowerLiquidationPrice = (0, calculation_1.positionLiquidationPrice)(lowerPosition, amm, maintenanceMarginRatio);\n const upperLiquidationPrice = (0, calculation_1.positionLiquidationPrice)(upperPosition, amm, maintenanceMarginRatio);\n const formattedRange = {\n 'Price Range': `${(0, utils_1.formatEther)(range.lowerPrice)} - ${(0, utils_1.formatEther)(range.upperPrice)}`,\n 'Fair Price': (0, utils_1.formatEther)(amm.fairPrice),\n 'Value Locked': (0, utils_1.formatEther)((0, calculation_1.rangeValueLocked)(range, amm)),\n 'Fees Earned': (0, utils_1.formatEther)((0, calculation_1.rangeFeeEarned)(range, amm)),\n 'Liquidation Price': `${(0, utils_1.formatEther)(lowerLiquidationPrice)} - ${(0, utils_1.formatEther)(upperLiquidationPrice)}`,\n };\n return formattedRange;\n}\nfunction formatRange(range, amm, maintenanceMarginRatio) {\n return JSON.stringify(_formatRange(range, amm, maintenanceMarginRatio), null, 2);\n}\nfunction _formatPosition(position, amm, maintenanceMarginRatio) {\n const formattedPosition = {\n side: enum_1.Side[position.side],\n size: (0, utils_1.formatEther)(position.size),\n 'Avg.Price': (0, utils_1.formatEther)(position.entryPrice),\n Margin: (0, utils_1.formatEther)((0, calculation_1.positionEquity)(position, amm)),\n Leverage: (0, utils_1.formatEther)((0, calculation_1.positionLeverage)(position, amm)),\n 'Liq.Price': (0, utils_1.formatEther)(calcPositionLiquidationPrice(amm, position, maintenanceMarginRatio)),\n 'Mark Price': (0, utils_1.formatEther)(amm.markPrice),\n 'Unrealized P&L': (0, utils_1.formatEther)((0, calculation_1.positionUnrealizedPnl)(position, amm)),\n 'Unrealized Funding': (0, utils_1.formatEther)((0, calculation_1.positionUnrealizedFundingFee)(position, amm)),\n };\n return formattedPosition;\n}\nfunction formatPosition(position, amm, maintenanceMarginRatio) {\n return JSON.stringify(_formatPosition(position, amm, maintenanceMarginRatio), null, 2);\n}\nfunction _formatPositionWithoutPnL(position, amm, maintenanceMarginRatio) {\n const formattedPosition = {\n side: enum_1.Side[position.side],\n size: (0, utils_1.formatEther)(position.size),\n 'Avg.Price': (0, utils_1.formatEther)(position.entryPrice),\n Margin: (0, utils_1.formatEther)((0, calculation_1.positionEquity)(position, amm)),\n Leverage: (0, utils_1.formatEther)((0, calculation_1.positionLeverage)(position, amm)),\n 'Liq.Price': (0, utils_1.formatEther)(calcPositionLiquidationPrice(amm, position, maintenanceMarginRatio)),\n 'Mark Price': (0, utils_1.formatEther)(amm.markPrice),\n };\n return formattedPosition;\n}\nfunction formatPositionWithoutPnL(position, amm, maintenanceMarginRatio) {\n return JSON.stringify(_formatPositionWithoutPnL(position, amm, maintenanceMarginRatio), null, 2);\n}\nfunction _formatAmm(amm) {\n const formattedAmm = {\n expiry: amm.expiry,\n markPrice: (0, utils_1.formatEther)(amm.markPrice),\n fairPrice: (0, utils_1.formatEther)(amm.fairPrice),\n };\n return formattedAmm;\n}\nfunction formatAmm(amm) {\n return JSON.stringify(_formatAmm(amm), null, 2);\n}\nfunction _formatInstrument(instrument) {\n const formattedInstrument = {\n instrumentAddr: instrument.instrumentAddr,\n symbol: instrument.symbol,\n spotPrice: (0, utils_1.formatEther)(instrument.spotPrice),\n amms: Object.fromEntries(Array.from(instrument.amms).map(([expiry, amm]) => [expiry, _formatAmm(amm)])),\n };\n return formattedInstrument;\n}\nfunction formatInstrument(instrument) {\n return JSON.stringify(_formatInstrument(instrument), null, 2);\n}\nfunction formatPortfolio(portfolio, instrument) {\n const maintenanceMarginRatio = instrument.setting.maintenanceMarginRatio;\n const formattedPortfolio = {\n ...portfolio,\n position: portfolio.position.size.isZero()\n ? null\n : formatPosition(portfolio.position, instrument.amms.get(portfolio.position.expiry), instrument.setting.maintenanceMarginRatio),\n orders: Object.fromEntries(Array.from(portfolio.orders).map(([oid, order]) => [\n oid,\n formatOrder(order, instrument.amms.get(order.expiry)),\n ])),\n ranges: Object.fromEntries(Array.from(portfolio.ranges).map(([rid, range]) => [\n rid,\n formatRange(range, instrument.amms.get(range.expiry), maintenanceMarginRatio),\n ])),\n };\n return JSON.stringify(formattedPortfolio, null, 2);\n}\nfunction formatSimulateAddLiquidityResult(result, amm, maintenanceMarginRatio) {\n const formattedResult = {\n 'Current Price': (0, utils_1.formatEther)(amm.fairPrice),\n 'Capital Efficiency Boost': result.capitalEfficiencyBoost,\n 'Removal Price': (0, utils_1.formatEther)(result.lowerPrice) + ' ~ ' + (0, utils_1.formatEther)(result.upperPrice),\n 'Liquidation Price': (0, utils_1.formatEther)(calcPositionLiquidationPrice(amm, result.lowerPosition, maintenanceMarginRatio)) +\n ' ~ ' +\n (0, utils_1.formatEther)(calcPositionLiquidationPrice(amm, result.upperPosition, maintenanceMarginRatio)),\n minEffectiveQuoteAmount: (0, utils_1.formatEther)(result.minEffectiveQuoteAmount),\n minMargin: (0, utils_1.formatEther)(result.minMargin),\n };\n return JSON.stringify(formattedResult, null, 2);\n}\nfunction formatSimulateAddLiquidityWithAsymmetricRangeResult(result, amm, maintenanceMarginRatio) {\n const formattedResult = {\n 'Current Price': (0, utils_1.formatEther)(amm.fairPrice),\n 'Capital Efficiency Boost': result.capitalEfficiencyBoost,\n 'Removal Price': (0, utils_1.formatEther)(result.lowerPrice) + ' ~ ' + (0, utils_1.formatEther)(result.upperPrice),\n 'Liquidation Price': (0, utils_1.formatEther)(calcPositionLiquidationPrice(amm, result.lowerPosition, maintenanceMarginRatio)) +\n ' ~ ' +\n (0, utils_1.formatEther)(calcPositionLiquidationPrice(amm, result.upperPosition, maintenanceMarginRatio)),\n minEffectiveQuoteAmount: (0, utils_1.formatEther)(result.minEffectiveQuoteAmount),\n minMargin: (0, utils_1.formatEther)(result.minMargin),\n };\n return JSON.stringify(formattedResult, null, 2);\n}\nfunction formatSimulateRemoveLiquidityResult(result, amm, maintenanceMarginRatio) {\n const formattedResult = {\n 'Removed position': _formatPositionWithoutPnL(result.removedPosition, amm, maintenanceMarginRatio),\n 'Post position': _formatPositionWithoutPnL(result.postPosition, amm, maintenanceMarginRatio),\n };\n return JSON.stringify(formattedResult, null, 2);\n}\nfunction _formatSimulateMarketOrderResult(result, amm, maintenanceMarginRatio) {\n const formattedResult = {\n 'Price Impact': Number((0, utils_1.formatEther)(result.priceImpact)) * 100 + '%',\n 'Est. Trade Value': (0, utils_1.formatEther)(result.tradeValue),\n 'Trading Fee': (0, utils_1.formatEther)(result.tradingFee),\n Margin: (0, utils_1.formatEther)(result.margin),\n Leverage: (0, utils_1.formatEther)(result.leverage),\n 'Post position': _formatPositionWithoutPnL(result.postPosition, amm, maintenanceMarginRatio),\n };\n return formattedResult;\n}\nfunction formatSimulateMarketOrderResult(result, amm, maintenanceMarginRatio) {\n return JSON.stringify(_formatSimulateMarketOrderResult(result, amm, maintenanceMarginRatio), null, 2);\n}\nfunction formatSimulateAdjustMarginByMarginResult(result, amm, maintenanceMarginRatio) {\n const formattedResult = {\n Leverage: (0, utils_1.formatEther)(result.leverage),\n 'Post position': _formatPositionWithoutPnL(result.postPosition, amm, maintenanceMarginRatio),\n };\n return JSON.stringify(formattedResult, null, 2);\n}\nfunction formatSimulateAdjustMarginByLeverageResult(result, amm, maintenanceMarginRatio) {\n const formattedResult = {\n 'Transfer In': result.transferIn,\n Margin: (0, utils_1.formatEther)(result.margin),\n 'Post position': _formatPositionWithoutPnL(result.postPosition, amm, maintenanceMarginRatio),\n };\n return JSON.stringify(formattedResult, null, 2);\n}\nfunction _formatSimulateLimitOrderResult(result) {\n const formattedResult = {\n Margin: (0, utils_1.formatEther)(result.margin),\n 'Est. Trade Value': (0, utils_1.formatEther)(result.tradeValue),\n 'Fee Rebate': (0, utils_1.formatEther)(result.minFeeRebate),\n limitPrice: (0, utils_1.formatEther)(result.limitPrice),\n leverage: (0, utils_1.formatEther)(result.leverage),\n };\n return formattedResult;\n}\nfunction formatSimulateLimitOrderResult(result) {\n return JSON.stringify(_formatSimulateLimitOrderResult(result), null, 2);\n}\nfunction formatSimulateBatchPlaceResult(result) {\n const orders = [];\n for (let i = 0; i < result.orders.length; i++) {\n if (result.orders[i]) {\n orders.push({\n 'Order Price': (0, utils_1.formatEther)(result.orders[i].limitPrice),\n tick: result.orders[i].tick,\n margin: (0, utils_1.formatEther)(result.orders[i].margin),\n leverage: (0, utils_1.formatEther)(result.orders[i].leverage),\n minFeeRebate: (0, utils_1.formatEther)(result.orders[i].minFeeRebate),\n });\n }\n }\n const formattedResult = {\n orders: orders,\n };\n return JSON.stringify(formattedResult, null, 2);\n}\nfunction formatSimulateCrossMarketOrderResult(result, amm, maintenanceMarginRatio) {\n const formattedResult = {\n 'Can Place Order': result.canPlaceOrder,\n minOrderSize: (0, utils_1.formatEther)(result.minOrderSize),\n 'Trade Simulation': _formatSimulateMarketOrderResult(result.tradeSimulation, amm, maintenanceMarginRatio),\n 'Order Simulation': _formatSimulateLimitOrderResult(result.orderSimulation),\n };\n return JSON.stringify(formattedResult, null, 2);\n}\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nvar __importStar = (this && this.__importStar) || (function () {\n var ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n };\n return function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.lowLevel = exports.factory = void 0;\n__exportStar(require(\"./calculation\"), exports);\n__exportStar(require(\"./config\"), exports);\n__exportStar(require(\"./encode\"), exports);\nexports.factory = __importStar(require(\"./factory\"));\nexports.lowLevel = __importStar(require(\"./lowLevel\"));\n__exportStar(require(\"./reverse\"), exports);\n__exportStar(require(\"./utils\"), exports);\n__exportStar(require(\"./format\"), exports);\n__exportStar(require(\"./limited\"), exports);\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Limited = exports.RequestStatus = exports.Token = exports.TokenStatus = exports.Counter = void 0;\nexports.getRandomIntInclusive = getRandomIntInclusive;\nexports.limitedMap = limitedMap;\nconst yallist_1 = __importDefault(require(\"yallist\"));\nclass Counter {\n constructor() {\n this._count = 0;\n }\n get count() {\n return this._count;\n }\n create() {\n this.promise = new Promise((r) => (this.resolve = r));\n }\n destroy() {\n this.resolve();\n this.resolve = undefined;\n this.promise = undefined;\n }\n increase(i = 1) {\n this._count += i;\n if (this._count - i === 0) {\n this.create();\n }\n }\n decrease(i = 1) {\n if (i > this._count) {\n i = this._count;\n }\n this._count -= i;\n if (this._count === 0) {\n this.destroy();\n }\n }\n wait() {\n return this.promise ?? Promise.resolve();\n }\n}\nexports.Counter = Counter;\nvar TokenStatus;\n(function (TokenStatus) {\n TokenStatus[TokenStatus[\"Idle\"] = 0] = \"Idle\";\n TokenStatus[TokenStatus[\"Using\"] = 1] = \"Using\";\n})(TokenStatus || (exports.TokenStatus = TokenStatus = {}));\nclass Token {\n constructor(limited) {\n this.status = TokenStatus.Idle;\n this.limited = limited;\n }\n}\nexports.Token = Token;\nvar RequestStatus;\n(function (RequestStatus) {\n RequestStatus[RequestStatus[\"Queued\"] = 0] = \"Queued\";\n RequestStatus[RequestStatus[\"Finished\"] = 1] = \"Finished\";\n RequestStatus[RequestStatus[\"Canceled\"] = 2] = \"Canceled\";\n})(RequestStatus || (exports.RequestStatus = RequestStatus = {}));\nfunction toNode(value) {\n return {\n prev: null,\n next: null,\n value,\n };\n}\nclass Limited {\n constructor(maxTokens, maxQueued = Infinity) {\n this.idle = yallist_1.default.create();\n this.queue = yallist_1.default.create();\n this.counter = new Counter();\n for (let i = 0; i < maxTokens; i++) {\n this.idle.push(new Token(this));\n }\n this.maxTokens = maxTokens;\n this.maxQueued = maxQueued;\n }\n get parallels() {\n return this.counter.count;\n }\n get tokens() {\n return this.maxTokens - this.parallels;\n }\n get queued() {\n return this.queue.length;\n }\n get available() {\n return this.maxQueued - this.queued;\n }\n get() {\n if (this.idle.length > 0) {\n const token = this.idle.shift();\n token.status = TokenStatus.Using;\n this.counter.increase();\n return { getToken: Promise.resolve(token) };\n }\n else if (this.queue.length + 1 <= this.maxQueued) {\n let resolve;\n let reject;\n const getToken = new Promise((_resolve, _reject) => {\n resolve = _resolve;\n reject = _reject;\n });\n const requestValue = {\n status: RequestStatus.Queued,\n resolve,\n reject,\n };\n const request = toNode(requestValue);\n this.queue.pushNode(request);\n return { getToken, request };\n }\n else {\n throw new Error('too many queued');\n }\n }\n getToken() {\n return this.get().getToken;\n }\n put(token) {\n if (token.limited !== this || token.status !== TokenStatus.Using) {\n throw new Error('invalid token');\n }\n if (this.queue.length > 0) {\n const request = this.queue.shift();\n request.status = RequestStatus.Finished;\n request.resolve(token);\n }\n else {\n token.status = TokenStatus.Idle;\n this.idle.push(token);\n this.counter.decrease();\n }\n }\n cancel(request, reason) {\n if (request.list !== this.queue) {\n throw new Error('invalid request');\n }\n if (request.value.status !== RequestStatus.Queued) {\n return;\n }\n this.queue.removeNode(request);\n request.value.status = RequestStatus.Canceled;\n request.value.reject(reason);\n }\n wait() {\n return this.counter.wait();\n }\n}\nexports.Limited = Limited;\nfunction getRandomIntInclusive(min, max) {\n min = Math.ceil(min);\n max = Math.floor(max);\n if (max < min) {\n throw new Error('The maximum value should be greater than the minimum value');\n }\n return Math.floor(Math.random() * (max - min + 1)) + min;\n}\nfunction limitedMap(array, fn, limit) {\n return new Promise(async (resolve, reject) => {\n let failed = false;\n const limited = new Limited(limit);\n const promises = [];\n for (const element of array) {\n if (failed) {\n break;\n }\n const token = await limited.getToken();\n if (failed) {\n limited.put(token);\n break;\n }\n promises.push(fn(element)\n .catch((err) => {\n failed = true;\n reject(err);\n })\n .finally(() => limited.put(token)));\n }\n resolve(await Promise.all(promises));\n });\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getLatestFundingIndex = getLatestFundingIndex;\nexports.updateFundingIndex = updateFundingIndex;\nexports.withinOrderLimit = withinOrderLimit;\nexports.withinDeviationLimit = withinDeviationLimit;\nexports.calcBenchmarkPrice = calcBenchmarkPrice;\nexports.calcMinTickDelta = calcMinTickDelta;\nexports.getBatchOrderRatios = getBatchOrderRatios;\nexports.requiredMarginForOrder = requiredMarginForOrder;\nexports.fillOrderToPosition = fillOrderToPosition;\nexports.cancelOrderToPosition = cancelOrderToPosition;\nexports.tally = tally;\nexports.calcLiquidationPrice = calcLiquidationPrice;\nexports.calculatePriceFromPnl = calculatePriceFromPnl;\nexports.calcFundingFee = calcFundingFee;\nexports.calcPnl = calcPnl;\nexports.realizeFundingWithPnl = realizeFundingWithPnl;\nexports.realizeFundingIncome = realizeFundingIncome;\nexports.realizeSocialLoss = realizeSocialLoss;\nexports.combine = combine;\nexports.splitPosition = splitPosition;\nexports.entryDelta = entryDelta;\nexports.alignRangeTick = alignRangeTick;\nexports.getLiquidityFromMarginByUpper = getLiquidityFromMarginByUpper;\nexports.getLiquidityFromMarginByLower = getLiquidityFromMarginByLower;\nexports.getMarginFromLiquidity = getMarginFromLiquidity;\nconst ethers_1 = require(\"ethers\");\nconst context_1 = require(\"@derivation-tech/context\");\nconst constants_1 = require(\"../constants\");\nconst math_1 = require(\"../math\");\nconst enum_1 = require(\"../enum\");\nconst synfError_1 = require(\"../errors/synfError\");\nfunction getLatestFundingIndex(amm, markPrice, timestamp) {\n return updateFundingIndex(amm, markPrice, timestamp);\n}\nfunction updateFundingIndex(amm, mark, timestamp) {\n const timeElapsed = timestamp - amm.timestamp;\n if (timeElapsed == 0)\n return { longFundingIndex: amm.longFundingIndex, shortFundingIndex: amm.shortFundingIndex };\n const fair = (0, math_1.sqrtX96ToWad)(amm.sqrtPX96);\n const longPayShort = fair.gt(mark);\n const [payerSize, receiverSize] = longPayShort ? [amm.totalLong, amm.totalShort] : [amm.totalShort, amm.totalLong];\n const fundingFeeIndex = (0, math_1.frac)(fair.sub(mark).abs(), ethers_1.BigNumber.from(timeElapsed), ethers_1.BigNumber.from(context_1.SECS_PER_DAY));\n if (payerSize.gt(0)) {\n let [payerIndex, receiverIndex] = longPayShort\n ? [amm.longFundingIndex, amm.shortFundingIndex]\n : [amm.shortFundingIndex, amm.longFundingIndex];\n payerIndex = payerIndex.sub(fundingFeeIndex);\n const totalFundingFee = (0, math_1.wmul)(fundingFeeIndex, payerSize);\n if (receiverSize.gt(0)) {\n receiverIndex = receiverIndex.add((0, math_1.wdiv)(totalFundingFee, receiverSize));\n }\n return longPayShort\n ? { longFundingIndex: payerIndex, shortFundingIndex: receiverIndex }\n : { longFundingIndex: receiverIndex, shortFundingIndex: payerIndex };\n }\n return { longFundingIndex: amm.longFundingIndex, shortFundingIndex: amm.shortFundingIndex };\n}\nfunction withinOrderLimit(limitPrice, markPrice, imr) {\n return (0, math_1.wdiv)(limitPrice.sub(markPrice).abs(), markPrice).lte((0, math_1.r2w)(imr).mul(2));\n}\nfunction withinDeviationLimit(fairPrice, markPrice, imr) {\n return (0, math_1.wdiv)(fairPrice.sub(markPrice).abs(), markPrice).lte((0, math_1.r2w)(imr));\n}\nfunction calcBenchmarkPrice(expiry, rawSpotPrice, feederType, dailyInterestRate) {\n if (expiry == constants_1.PERP_EXPIRY) {\n return rawSpotPrice;\n }\n else {\n const daysLeft = Date.now() / 1000 >= expiry ? 0 : Math.floor((expiry * 1000 - Date.now()) / (context_1.SECS_PER_DAY * 1000)) + 1;\n if (feederType === enum_1.FeederType.BOTH_STABLE || feederType === enum_1.FeederType.NONE_STABLE) {\n return rawSpotPrice;\n }\n else if (feederType === enum_1.FeederType.QUOTE_STABLE) {\n return (0, math_1.wmulDown)(rawSpotPrice, (0, math_1.r2w)(dailyInterestRate)).mul(daysLeft).add(rawSpotPrice);\n }\n else {\n const priceChange = (0, math_1.wmulDown)(rawSpotPrice, (0, math_1.r2w)(dailyInterestRate)).mul(daysLeft);\n return rawSpotPrice.gt(priceChange) ? rawSpotPrice.sub(priceChange) : math_1.ZERO;\n }\n }\n}\nfunction calcMinTickDelta(initialMarginRatio) {\n return (0, math_1.wadToTick)((0, math_1.r2w)(initialMarginRatio).add(math_1.WAD));\n}\nfunction getBatchOrderRatios(sizeDistribution, orderCount) {\n let ratios = [];\n switch (sizeDistribution) {\n case enum_1.BatchOrderSizeDistribution.FLAT: {\n ratios = Array(orderCount).fill(Math.floor(constants_1.RATIO_BASE / orderCount));\n break;\n }\n case enum_1.BatchOrderSizeDistribution.UPPER: {\n const sum = Array.from({ length: orderCount }, (_, i) => i + 1).reduce((acc, i) => acc + i, 0);\n ratios = Array.from({ length: orderCount }, (_, i) => Math.floor((i + 1) * (constants_1.RATIO_BASE / sum)));\n break;\n }\n case enum_1.BatchOrderSizeDistribution.LOWER: {\n const sum = Array.from({ length: orderCount }, (_, i) => orderCount - i).reduce((acc, i) => acc + i, 0);\n ratios = Array.from({ length: orderCount }, (_, i) => Math.floor((orderCount - i) * (constants_1.RATIO_BASE / sum)));\n break;\n }\n case enum_1.BatchOrderSizeDistribution.RANDOM: {\n let totalRatio = 0;\n const averageRatio = constants_1.RATIO_BASE / orderCount;\n const minRatio = Math.ceil(averageRatio * 0.95);\n const maxRatio = Math.floor(averageRatio * 1.05);\n for (let i = 0; i < orderCount; i++) {\n let ratio = Math.floor(averageRatio * (1 - 0.05 + Math.random() * 0.1));\n ratio = Math.max(minRatio, Math.min(maxRatio, ratio));\n ratios.push(ratio);\n totalRatio += ratio;\n }\n let adjustment = constants_1.RATIO_BASE - totalRatio;\n const increment = adjustment > 0 ? 1 : -1;\n while (adjustment !== 0) {\n for (let i = 0; i < orderCount && adjustment !== 0; i++) {\n const newRatio = ratios[i] + increment;\n if (newRatio >= minRatio && newRatio <= maxRatio) {\n ratios[i] = newRatio;\n adjustment -= increment;\n }\n }\n }\n break;\n }\n default:\n throw new synfError_1.SynfError('Invalid size distribution');\n }\n ratios[ratios.length - 1] = constants_1.RATIO_BASE - ratios.slice(0, ratios.length - 1).reduce((acc, ratio) => acc + ratio, 0);\n return ratios;\n}\nfunction requiredMarginForOrder(limit, sizeWad, ratio) {\n const marginValue = (0, math_1.wmul)(limit, sizeWad);\n const minAmount = (0, math_1.wmulUp)(marginValue, (0, math_1.r2w)(ratio));\n return minAmount;\n}\nfunction fillOrderToPosition(pearlNonce, pearlTaken, pearlFee, pearlSocialLoss, pearlFundingIndex, order, tick, nonce, fillSize, record) {\n if (fillSize.eq(math_1.ZERO)) {\n fillSize = order.size;\n }\n const usize = fillSize.abs();\n let makerFee;\n let entrySocialLossIndex;\n let entryFundingIndex;\n if (nonce < pearlNonce) {\n const utaken0 = record.taken.abs();\n makerFee = record.taken.eq(fillSize) ? record.fee : (0, math_1.fracDown)(record.fee, usize, utaken0);\n entrySocialLossIndex = record.entrySocialLossIndex;\n entryFundingIndex = record.entryFundingIndex;\n }\n else {\n const utaken1 = pearlTaken.abs();\n makerFee = pearlTaken.eq(fillSize) ? pearlFee : (0, math_1.fracDown)(pearlFee, usize, utaken1);\n entrySocialLossIndex = pearlSocialLoss;\n entryFundingIndex = pearlFundingIndex;\n }\n const srtikePrice = math_1.TickMath.getWadAtTick(tick);\n return {\n balance: order.balance.add(makerFee),\n size: fillSize,\n entryNotional: (0, math_1.wmul)(srtikePrice, fillSize.abs()),\n entrySocialLossIndex: entrySocialLossIndex,\n entryFundingIndex: entryFundingIndex,\n };\n}\nfunction cancelOrderToPosition(pearlLeft, pearlNonce, pearlTaken, pearlFee, pearlSocialLoss, pearlFundingIndex, order, tick, nonce, record) {\n let pic = {\n balance: order.balance,\n size: math_1.ZERO,\n entryNotional: math_1.ZERO,\n entrySocialLossIndex: math_1.ZERO,\n entryFundingIndex: math_1.ZERO,\n };\n const uleft = pearlLeft.abs();\n const usize = order.size.abs();\n if (uleft.lt(usize)) {\n const tLeft = pearlLeft;\n pic = fillOrderToPosition(pearlNonce, pearlTaken, pearlFee, pearlSocialLoss, pearlFundingIndex, order, tick, nonce, order.size.sub(tLeft), record);\n }\n return pic;\n}\nfunction tally(amm, position, mark) {\n let fundingFee = math_1.ZERO;\n const value = (0, math_1.wmul)(mark, position.size.abs());\n const socialLoss = (0, math_1.wmulUp)((position.size.gt(math_1.ZERO) ? amm.longSocialLossIndex : amm.shortSocialLossIndex).sub(position.entrySocialLossIndex), position.size.abs());\n if (amm.expiry === constants_1.PERP_EXPIRY)\n fundingFee = calcFundingFee(amm, position);\n const pnl = (position.size.gt(math_1.ZERO) ? value.sub(position.entryNotional) : position.entryNotional.sub(value))\n .add(fundingFee)\n .sub(socialLoss);\n const equity = pnl.add(position.balance);\n return { equity: equity, pnl: pnl, socialLoss: socialLoss };\n}\nfunction calcLiquidationPrice(amm, position, maintenanceMarginRatio = 500) {\n const socialLoss = (0, math_1.wmulUp)((position.size.gt(math_1.ZERO) ? amm.longSocialLossIndex : amm.shortSocialLossIndex).sub(position.entrySocialLossIndex), position.size.abs());\n const fundingFee = calcFundingFee(amm, position);\n let price;\n if (position.size.gt(math_1.ZERO)) {\n const numerator = position.entryNotional.add(socialLoss).sub(position.balance).sub(fundingFee);\n if (numerator.lte(math_1.ZERO))\n return math_1.ZERO;\n price = (0, math_1.wdivDown)(numerator, (0, math_1.wmulUp)(position.size.abs(), (0, math_1.r2w)(10000 - maintenanceMarginRatio)));\n }\n else {\n const numerator = position.entryNotional.sub(socialLoss).add(position.balance).add(fundingFee);\n if (numerator.lte(math_1.ZERO))\n return math_1.ZERO;\n price = (0, math_1.wdivUp)(numerator, (0, math_1.wmulDown)(position.size.abs(), (0, math_1.r2w)(10000 + maintenanceMarginRatio)));\n }\n return price;\n}\nfunction calculatePriceFromPnl(amm, position, pnl) {\n const socialLoss = (0, math_1.wmulUp)((position.size.gt(math_1.ZERO) ? amm.longSocialLossIndex : amm.shortSocialLossIndex).sub(position.entrySocialLossIndex), position.size.abs());\n const fundingFee = calcFundingFee(amm, position);\n const value = position.size.gt(math_1.ZERO)\n ? pnl.add(socialLoss).add(position.entryNotional).sub(fundingFee)\n : position.entryNotional.sub(socialLoss).sub(pnl).add(fundingFee);\n return position.size.gt(math_1.ZERO) ? (0, math_1.wdivUp)(value, position.size.abs()) : (0, math_1.wdivDown)(value, position.size.abs());\n}\nfunction calcFundingFee(amm, position) {\n return (0, math_1.wmulInt)((position.size.gte(math_1.ZERO) ? amm.longFundingIndex : amm.shortFundingIndex).sub(position.entryFundingIndex), position.size.abs());\n}\nfunction calcPnl(amm, position, mark) {\n return tally(amm, position, mark).pnl;\n}\nfunction realizeFundingWithPnl(amm, pos) {\n if (pos.size.eq(0))\n return { position: pos, pnl: math_1.ZERO };\n const position = Object.assign({}, pos);\n const currentFundingIndex = position.size.gt(math_1.ZERO) ? amm.longFundingIndex : amm.shortFundingIndex;\n let pnl = math_1.ZERO;\n if (!currentFundingIndex.eq(position.entryFundingIndex)) {\n const funding = (0, math_1.wmulInt)(currentFundingIndex.sub(position.entryFundingIndex), position.size.abs());\n pnl = funding;\n position.entryFundingIndex = currentFundingIndex;\n position.balance = position.balance.add(funding);\n }\n return { position, pnl };\n}\nfunction realizeFundingIncome(amm, pos) {\n return realizeFundingWithPnl(amm, pos).position;\n}\nfunction realizeSocialLoss(amm, pos) {\n pos = { ...pos };\n const long = pos.size.gt(math_1.ZERO);\n const usize = pos.size.abs();\n const socialLossIndex = long ? amm.longSocialLossIndex : amm.shortSocialLossIndex;\n const socialLoss = (0, math_1.wmulUp)(socialLossIndex.sub(pos.entrySocialLossIndex), usize);\n pos.balance = pos.balance.sub(socialLoss);\n pos.entrySocialLossIndex = socialLossIndex;\n return { position: pos, socialLoss };\n}\nfunction combine(amm, position_1, position_2) {\n let position1 = Object.assign({}, position_1);\n let position2 = Object.assign({}, position_2);\n let realized = math_1.ZERO;\n if (amm.expiry === constants_1.PERP_EXPIRY) {\n const { position: realizedPosition1, pnl: realizedPnl1 } = realizeFundingWithPnl(amm, position1);\n const { position: realizedPosition2, pnl: realizedPnl2 } = realizeFundingWithPnl(amm, position2);\n position1 = realizedPosition1;\n position2 = realizedPosition2;\n realized = realized.add(realizedPnl1);\n realized = realized.add(realizedPnl2);\n }\n const { position: realizedPosition1, socialLoss: socialLoss1 } = realizeSocialLoss(amm, position1);\n const { position: realizedPosition2, socialLoss: socialLoss2 } = realizeSocialLoss(amm, position2);\n position1 = realizedPosition1;\n position2 = realizedPosition2;\n realized = realized.sub(socialLoss1);\n realized = realized.sub(socialLoss2);\n let pic = {\n balance: math_1.ZERO,\n size: math_1.ZERO,\n entryNotional: math_1.ZERO,\n entrySocialLossIndex: math_1.ZERO,\n entryFundingIndex: math_1.ZERO,\n };\n let closedSize = math_1.ZERO;\n if (position1.size.eq(math_1.ZERO) || position2.size.eq(math_1.ZERO)) {\n pic = position1.size.eq(math_1.ZERO) ? position2 : position1;\n pic.balance = position1.balance.add(position2.balance);\n return { position: pic, closedSize: closedSize, realized: realized };\n }\n pic.size = position1.size.add(position2.size);\n if ((0, math_1.oppositeSigns)(position1.size, position2.size)) {\n closedSize = position1.size.abs().lt(position2.size.abs()) ? position1.size.abs() : position2.size.abs();\n const longPic = position1.size.gt(math_1.ZERO) ? position1 : position2;\n const shortPic = position1.size.gt(math_1.ZERO) ? position2 : position1;\n let closedLongNotional = math_1.ZERO;\n let closedShortNotional = math_1.ZERO;\n if (pic.size.gt(math_1.ZERO)) {\n closedLongNotional = (0, math_1.frac)(longPic.entryNotional, closedSize, longPic.size.abs());\n closedShortNotional = shortPic.entryNotional;\n pic.entryNotional = longPic.entryNotional.sub(closedLongNotional);\n pic.entrySocialLossIndex = longPic.entrySocialLossIndex;\n pic.entryFundingIndex = longPic.entryFundingIndex;\n }\n else if (pic.size.lt(math_1.ZERO)) {\n closedLongNotional = longPic.entryNotional;\n closedShortNotional = (0, math_1.frac)(shortPic.entryNotional, closedSize, shortPic.size.abs());\n pic.entryNotional = shortPic.entryNotional.sub(closedShortNotional);\n pic.entrySocialLossIndex = shortPic.entrySocialLossIndex;\n pic.entryFundingIndex = shortPic.entryFundingIndex;\n }\n else {\n closedLongNotional = longPic.entryNotional;\n closedShortNotional = shortPic.entryNotional;\n }\n const realizedPnl = closedShortNotional.sub(closedLongNotional);\n pic.balance = pic.balance.add(longPic.balance).add(shortPic.balance).add(realizedPnl);\n realized = realized.add(realizedPnl);\n }\n else {\n pic.entryNotional = position1.entryNotional.add(position2.entryNotional);\n pic.entrySocialLossIndex = pic.size.gt(math_1.ZERO) ? amm.longSocialLossIndex : amm.shortSocialLossIndex;\n pic.entryFundingIndex = position1.size.gt(math_1.ZERO) ? amm.longFundingIndex : amm.shortFundingIndex;\n pic.balance = position1.balance.add(position2.balance);\n }\n return { position: pic, closedSize: closedSize, realized: realized };\n}\nfunction splitPosition(pos, partSize) {\n const uFullSize = pos.size.abs();\n const uPartSize = partSize.abs();\n const partPos = {};\n const finalPos = pos;\n partPos.size = partSize;\n finalPos.size = pos.size.sub(partSize);\n partPos.balance = (0, math_1.frac)(pos.balance, uPartSize, uFullSize);\n finalPos.balance = pos.balance.sub(partPos.balance);\n partPos.entryNotional = (0, math_1.frac)(pos.entryNotional, uPartSize, uFullSize);\n finalPos.entryNotional = pos.entryNotional.sub(partPos.entryNotional);\n partPos.entrySocialLossIndex = pos.entrySocialLossIndex;\n partPos.entryFundingIndex = pos.entryFundingIndex;\n return { partPos, finalPos };\n}\nfunction entryDelta(sqrtEntryPX96, tickLower, tickUpper, entryMargin, initialMarginRatio) {\n const upperPX96 = math_1.TickMath.getSqrtRatioAtTick(tickUpper);\n const lowerPX96 = math_1.TickMath.getSqrtRatioAtTick(tickLower);\n const liquidityByUpper = getLiquidityFromMarginByUpper(sqrtEntryPX96, upperPX96, entryMargin, initialMarginRatio);\n const liquidityByLower = getLiquidityFromMarginByLower(sqrtEntryPX96, lowerPX96, entryMargin, initialMarginRatio);\n const liquidity = liquidityByUpper.lt(liquidityByLower) ? liquidityByUpper : liquidityByLower;\n const deltaBase = math_1.SqrtPriceMath.getDeltaBaseAutoRoundUp(sqrtEntryPX96, upperPX96, liquidity);\n const deltaQuote = math_1.SqrtPriceMath.getDeltaQuoteAutoRoundUp(lowerPX96, sqrtEntryPX96, liquidity);\n return { deltaBase: deltaBase, deltaQuote: deltaQuote, liquidity: liquidity };\n}\nfunction alignRangeTick(tick, lower) {\n if ((tick > 0 && lower) || (tick < 0 && !lower)) {\n return constants_1.RANGE_SPACING * ~~(tick / constants_1.RANGE_SPACING);\n }\n else {\n return constants_1.RANGE_SPACING * ~~((tick + (tick > 0 ? 1 : -1) * (constants_1.RANGE_SPACING - 1)) / constants_1.RANGE_SPACING);\n }\n}\nfunction getLiquidityFromMarginByUpper(sqrtEntryPX96, sqrtUpperPX96, entryMargin, initialMarginRatio) {\n const numerator = entryMargin.mul(sqrtEntryPX96).div(sqrtUpperPX96.sub(sqrtEntryPX96));\n const denominator = sqrtUpperPX96.sub(sqrtEntryPX96).add((0, math_1.wmulUp)(sqrtUpperPX96, (0, math_1.r2w)(initialMarginRatio)));\n return numerator.mul(math_1.Q96).div(denominator);\n}\nfunction getLiquidityFromMarginByLower(sqrtEntryPX96, sqrtLowerPX96, entryMargin, initialMarginRatio) {\n const numerator = entryMargin.mul(sqrtEntryPX96).div(sqrtEntryPX96.sub(sqrtLowerPX96));\n const denominator = sqrtEntryPX96.sub(sqrtLowerPX96).add((0, math_1.wmulUp)(sqrtLowerPX96, (0, math_1.r2w)(initialMarginRatio)));\n return numerator.mul(math_1.Q96).div(denominator);\n}\nfunction getMarginFromLiquidity(sqrtEntryPX96, tickUpper, liquidity, initialMarginRatio) {\n const sqrtUpperPX96 = math_1.TickMath.getSqrtRatioAtTick(tickUpper);\n const denominator = (0, math_1.wmulUp)(sqrtUpperPX96, (0, math_1.r2w)(10000 + initialMarginRatio)).sub(sqrtEntryPX96);\n const temp = liquidity.mul(denominator).div(math_1.Q96);\n return temp.mul(sqrtUpperPX96.sub(sqrtEntryPX96)).div(sqrtEntryPX96);\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.reverseSide = reverseSide;\nexports.reversePrice = reversePrice;\nexports.reverseOrder = reverseOrder;\nexports.reversePosition = reversePosition;\nexports.reverseRange = reverseRange;\nexports.reversePortfolio = reversePortfolio;\nexports.reverseAmm = reverseAmm;\nexports.reverseInstrument = reverseInstrument;\nexports.reversePriceInfo = reversePriceInfo;\nconst math_1 = require(\"../math\");\nconst enum_1 = require(\"../enum\");\nfunction reverseSide(side) {\n return side === enum_1.Side.LONG ? enum_1.Side.SHORT : side === enum_1.Side.SHORT ? enum_1.Side.LONG : enum_1.Side.FLAT;\n}\nfunction reversePrice(price) {\n return (0, math_1.safeWDiv)(math_1.WAD, price);\n}\nfunction reverseOrder(order) {\n return {\n ...order,\n size: order.size.mul(-1),\n side: reverseSide(order.side),\n limitPrice: reversePrice(order.limitPrice),\n isInverse: !order.isInverse,\n };\n}\nfunction reversePosition(position) {\n return {\n ...position,\n size: position.size.mul(-1),\n side: reverseSide(position.side),\n entryPrice: reversePrice(position.entryPrice),\n isInverse: !position.isInverse,\n };\n}\nfunction reverseRange(range) {\n return {\n ...range,\n tickLower: range.tickUpper,\n tickUpper: range.tickLower,\n lowerPrice: reversePrice(range.upperPrice),\n upperPrice: reversePrice(range.lowerPrice),\n entryPrice: reversePrice(range.entryPrice),\n isInverse: !range.isInverse,\n };\n}\nfunction reversePortfolio(portfolio) {\n return {\n ...portfolio,\n orders: new Map(Array.from(portfolio.orders.entries()).map(([oid, order]) => [oid, reverseOrder(order)])),\n ranges: new Map(Array.from(portfolio.ranges.entries()).map(([rid, range]) => [rid, reverseRange(range)])),\n position: reversePosition(portfolio.position),\n isInverse: !portfolio.isInverse,\n };\n}\nfunction reverseAmm(amm) {\n return {\n ...amm,\n totalLong: amm.totalShort,\n totalShort: amm.totalLong,\n shortFundingIndex: amm.longFundingIndex,\n longFundingIndex: amm.shortFundingIndex,\n shortSocialLossIndex: amm.longSocialLossIndex,\n longSocialLossIndex: amm.shortSocialLossIndex,\n settlementPrice: reversePrice(amm.settlementPrice),\n markPrice: reversePrice(amm.markPrice),\n fairPrice: reversePrice(amm.fairPrice),\n isInverse: !amm.isInverse,\n };\n}\nfunction reverseInstrument(instrument) {\n return {\n ...instrument,\n spotPrice: reversePrice(instrument.spotPrice),\n amms: new Map(Array.from(instrument.amms.entries()).map(([expiry, amm]) => [expiry, reverseAmm(amm)])),\n isInverse: !instrument.isInverse,\n displayBase: instrument.displayQuote,\n displayQuote: instrument.displayBase,\n };\n}\nfunction reversePriceInfo(priceInfo) {\n return typeof priceInfo === 'number' ? priceInfo : reversePrice(priceInfo);\n}\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || (function () {\n var ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n };\n return function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n };\n})();\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.quickRetry = quickRetry;\nexports.getLeverageFromImr = getLeverageFromImr;\nexports.alignExpiry = alignExpiry;\nexports.alignTick = alignTick;\nexports.getMinTick = getMinTick;\nexports.getMaxTick = getMaxTick;\nexports.getMaxLiquidityPerTick = getMaxLiquidityPerTick;\nexports.rangeKey = rangeKey;\nexports.orderKey = orderKey;\nexports.parseTicks = parseTicks;\nexports.parseOrderTickNonce = parseOrderTickNonce;\nexports.normalizeTick = normalizeTick;\nexports.solidityRequire = solidityRequire;\nexports.tickDeltaToAlphaWad = tickDeltaToAlphaWad;\nexports.alphaWadToTickDelta = alphaWadToTickDelta;\nexports.decomposePbitmap = decomposePbitmap;\nexports.trimObj = trimObj;\nexports.formatExpiry = formatExpiry;\nexports.dateExpiry2Ts = dateExpiry2Ts;\nexports.getTokenSymbol = getTokenSymbol;\nexports.getTokenInfo = getTokenInfo;\nexports.isEmptyPortfolio = isEmptyPortfolio;\nexports.isCexMarket = isCexMarket;\nexports.sizeToSide = sizeToSide;\nexports.signOfSide = signOfSide;\nexports.isByBase = isByBase;\nexports.isPosition = isPosition;\nexports.isPortfolio = isPortfolio;\nexports.isInstrument = isInstrument;\nexports.toPopulatedTxOverrides = toPopulatedTxOverrides;\nexports.toPortfolio = toPortfolio;\nconst ethers_1 = require(\"ethers\");\nconst moment_1 = __importDefault(require(\"moment\"));\nconst constants_1 = require(\"../constants\");\nconst math_1 = require(\"../math\");\nconst enum_1 = require(\"../enum\");\nconst factory = __importStar(require(\"./factory\"));\nconst calculationError_1 = require(\"../errors/calculationError\");\nconst synfError_1 = require(\"../errors/synfError\");\nasync function quickRetry(fn, times = 3, interval = 100) {\n let error;\n for (let i = 0;; i++) {\n try {\n return await fn();\n }\n catch (err) {\n error = err;\n }\n if (i === times - 1) {\n break;\n }\n await new Promise((r) => setTimeout(r, (i + 1) * interval));\n }\n throw error;\n}\nfunction getLeverageFromImr(imr) {\n if (imr === 1000)\n return enum_1.Leverage.LOW;\n if (imr === 500)\n return enum_1.Leverage.MEDIUM;\n if (imr === 300)\n return enum_1.Leverage.HIGH;\n if (imr === 100)\n return enum_1.Leverage.RISKY;\n throw new calculationError_1.CalculationError('Invalid IMR value', { imr });\n}\nfunction alignExpiry() {\n return Math.floor((Date.now() / 1000 + 259200) / 604800) * 604800 + 345600 + 28800 - 259200;\n}\nfunction alignTick(tick, tickSpacing) {\n return tick - (tick % tickSpacing);\n}\nfunction getMinTick(tickSpacing) {\n return Math.ceil(-math_1.TickMath.MAX_TICK / tickSpacing) * tickSpacing;\n}\nfunction getMaxTick(tickSpacing) {\n return Math.floor(math_1.TickMath.MAX_TICK / tickSpacing) * tickSpacing;\n}\nfunction getMaxLiquidityPerTick(tickSpacing) {\n return math_1.MAX_UINT_128.div((getMaxTick(tickSpacing) - getMinTick(tickSpacing)) / tickSpacing + 1);\n}\nfunction rangeKey(tickLower, tickUpper) {\n return shiftLeft((0, math_1.asUint24)(tickLower), 24) + (0, math_1.asUint24)(tickUpper);\n}\nfunction orderKey(tick, nonce) {\n return shiftLeft((0, math_1.asUint24)(tick), 24) + nonce;\n}\nfunction shiftLeft(x, n) {\n return x * Math.pow(2, n);\n}\nfunction shiftRight(x, n) {\n return Math.floor(x / Math.pow(2, n));\n}\nconst MAX_UINT_24 = shiftLeft(1, 24) - 1;\nconst MAX_UINT_48 = shiftLeft(1, 48) - 1;\nfunction parseTicks(key) {\n if (key > MAX_UINT_48) {\n throw new calculationError_1.CalculationError('Not 48-bit key', { key });\n }\n const tickLower = (0, math_1.asInt24)(shiftRight(key, 24));\n const tickUpper = (0, math_1.asInt24)(key & MAX_UINT_24);\n return { tickLower, tickUpper };\n}\nfunction parseOrderTickNonce(key) {\n if (key > MAX_UINT_48) {\n throw new calculationError_1.CalculationError('Not 48-bit key', { key });\n }\n const tick = (0, math_1.asInt24)(shiftRight(key, 24));\n const nonce = key & MAX_UINT_24;\n return { tick, nonce };\n}\nfunction normalizeTick(originTick, tickSpacing) {\n return ethers_1.BigNumber.from(originTick).div(tickSpacing).mul(tickSpacing).toNumber();\n}\nfunction solidityRequire(condition, message) {\n if (!condition) {\n throw new synfError_1.SynfError(message ?? 'Solidity require failed');\n }\n}\nfunction tickDeltaToAlphaWad(tickDelta) {\n return math_1.TickMath.getWadAtTick(tickDelta);\n}\nfunction alphaWadToTickDelta(alphaWad) {\n return math_1.TickMath.getTickAtPWad(alphaWad) + 1;\n}\nfunction decomposePbitmap(pbitmap) {\n const bits = [];\n for (let i = 0; i < constants_1.MAX_POSITION_NUM; i++) {\n if (!pbitmap.and(math_1.ONE.shl(i)).isZero()) {\n bits.push(i);\n }\n }\n return bits;\n}\nfunction isEthersArray(obj) {\n if (obj instanceof Array) {\n return obj.length === Object.keys(obj).length;\n }\n return false;\n}\nfunction isEthersTypeChainStruct(obj) {\n if (obj instanceof Array) {\n return obj.length !== Object.keys(obj).length;\n }\n return false;\n}\nfunction trimObj(obj) {\n if (isEthersTypeChainStruct(obj)) {\n const ret = {};\n Object.keys(obj).forEach((key, i) => {\n if (i >= obj.length) {\n ret[key] = trimObj(obj[key]);\n }\n });\n return ret;\n }\n else if (isEthersArray(obj)) {\n return obj.map((item) => trimObj(item));\n }\n else {\n return obj;\n }\n}\nfunction formatExpiry(expiry) {\n return expiry === constants_1.PERP_EXPIRY ? 'PERP' : moment_1.default.utc(expiry * 1000).format('yyyyMMDD');\n}\nfunction dateExpiry2Ts(expiry) {\n if (expiry === '0' || expiry.toUpperCase() === 'PERPETUAL' || expiry.toUpperCase() === 'PERP') {\n return constants_1.PERP_EXPIRY;\n }\n return moment_1.default.utc(expiry, 'YYYYMMDD').unix();\n}\nfunction getTokenSymbol(base, quote) {\n const baseSymbol = typeof base === 'string' ? base : base.symbol;\n const quoteSymbol = typeof quote === 'string' ? quote : quote.symbol;\n return { baseSymbol, quoteSymbol };\n}\nasync function getTokenInfo(instrumentIdentifier, ctx) {\n const call1 = typeof instrumentIdentifier.baseSymbol === 'string'\n ? ctx.getTokenInfo(instrumentIdentifier.baseSymbol)\n : instrumentIdentifier.baseSymbol;\n const call2 = typeof instrumentIdentifier.quoteSymbol === 'string'\n ? ctx.getTokenInfo(instrumentIdentifier.quoteSymbol)\n : instrumentIdentifier.quoteSymbol;\n const [baseTokenInfo, quoteTokenInfo] = await Promise.all([call1, call2]);\n return { baseTokenInfo, quoteTokenInfo };\n}\nfunction isEmptyPortfolio(portfolio) {\n return portfolio.orders.size === 0 && portfolio.ranges.size === 0 && portfolio.position.size.isZero();\n}\nfunction isCexMarket(marketType) {\n return marketType === enum_1.MarketType.LINK || marketType === enum_1.MarketType.EMG || marketType === enum_1.MarketType.PYTH;\n}\nfunction sizeToSide(size) {\n if (size.isNegative()) {\n return enum_1.Side.SHORT;\n }\n else if (size.isZero()) {\n return enum_1.Side.FLAT;\n }\n else {\n return enum_1.Side.LONG;\n }\n}\nfunction signOfSide(side) {\n switch (side) {\n case enum_1.Side.LONG:\n return 1;\n case enum_1.Side.SHORT:\n return -1;\n case enum_1.Side.FLAT:\n return 0;\n default:\n throw new synfError_1.SynfError(`Invalid side: ${side}`);\n }\n}\nfunction isByBase(size) {\n return 'base' in size;\n}\nfunction isPosition(info) {\n return 'size' in info;\n}\nfunction isPortfolio(info) {\n return 'position' in info;\n}\nfunction isInstrument(instrument) {\n return 'instrumentAddr' in instrument;\n}\nfunction toPopulatedTxOverrides(txOptions) {\n if (!txOptions) {\n return {};\n }\n const _txOptions = {\n ...txOptions,\n };\n if (_txOptions.signer) {\n if (_txOptions.from === undefined) {\n _txOptions.from = _txOptions.signer.getAddress();\n }\n delete _txOptions['signer'];\n }\n if (_txOptions.blockTag) {\n delete _txOptions['blockTag'];\n }\n if (_txOptions.enableGasPrice) {\n delete _txOptions['enableGasPrice'];\n }\n if (_txOptions.disableGasLimit) {\n delete _txOptions['disableGasLimit'];\n }\n if (_txOptions.gasLimitMultiple) {\n delete _txOptions['gasLimitMultiple'];\n }\n if (_txOptions.gasPriceMultiple) {\n delete _txOptions['gasPriceMultiple'];\n }\n return _txOptions;\n}\nfunction toPortfolio(instrumentAddr, expiry, traderAddr, resp) {\n const position = factory.createPosition({\n instrumentAddr,\n expiry,\n traderAddr,\n ...trimObj(resp.portfolio.position),\n });\n const oids = resp.portfolio.oids;\n const rids = resp.portfolio.rids;\n const rawOrdersFromContract = resp.portfolio.orders;\n const rawRangesFromContract = resp.portfolio.ranges;\n const ordersTaken = resp.portfolio.ordersTaken;\n const orders = new Map();\n const ranges = new Map();\n for (let i = 0; i < oids.length; i++) {\n const { tick, nonce } = parseOrderTickNonce(oids[i]);\n const order = factory.createOrder({\n balance: rawOrdersFromContract[i].balance,\n size: rawOrdersFromContract[i].size,\n instrumentAddr,\n expiry,\n taken: ordersTaken[i] ?? math_1.ZERO,\n tick,\n nonce,\n traderAddr,\n });\n orders.set(oids[i], order);\n }\n for (let i = 0; i < rids.length; i++) {\n const { tickLower, tickUpper } = parseTicks(rids[i]);\n const range = factory.createRange({\n liquidity: rawRangesFromContract[i].liquidity,\n entryFeeIndex: rawRangesFromContract[i].entryFeeIndex,\n balance: rawRangesFromContract[i].balance,\n sqrtEntryPX96: rawRangesFromContract[i].sqrtEntryPX96,\n tickLower,\n tickUpper,\n instrumentAddr,\n expiry,\n traderAddr,\n });\n ranges.set(rids[i], range);\n }\n const portfolio = {\n instrumentAddr: instrumentAddr.toLowerCase(),\n traderAddr: traderAddr.toLowerCase(),\n expiry,\n ranges,\n orders,\n isEmpty: position.size.eq(0) && ranges.size === 0 && orders.size === 0,\n blockInfo: trimObj(resp.blockInfo),\n position,\n };\n return portfolio;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EMPTY_AMM = exports.MAX_CANCEL_ORDER_COUNT = exports.MIN_BATCH_ORDER_COUNT = exports.MAX_BATCH_ORDER_COUNT = exports.DEFAULT_REFERRAL_CODE = exports.DEFAULT_MAINTENANCE_MARGIN_RATIO = exports.DEFAULT_INITIAL_MARGIN_RATIO = exports.NATIVE_TOKEN_ADDRESS = exports.COMPACT_EMA_PARAM = exports.MAINTENANCE_MARGIN_RATIO = exports.INITIAL_MARGIN_RATIO = exports.PERP_EXPIRY = exports.NULL_DDL = exports.SETTLING_DURATION = exports.MIN_RANGE_MULTIPLIER = exports.MIN_ORDER_MULTIPLIER = exports.MAX_STABILITY_FEE_RATIO = exports.STABILITY_FEE_RATIO_BASE = exports.RATIO_BASE = exports.RANGE_SPACING = exports.ORDER_SPACING = exports.PEARL_SPACING = exports.INT24_MAX = exports.INT24_MIN = exports.MIN_TICK = exports.MAX_TICK = exports.NULL_PRICE = exports.ONE_RATIO = exports.NULL_RATIO = exports.MAX_POSITION_NUM = exports.RATIO_DECIMALS = exports.WAD_DECIMALS = void 0;\nconst ethers_1 = require(\"ethers\");\nexports.WAD_DECIMALS = 18;\nexports.RATIO_DECIMALS = 4;\nexports.MAX_POSITION_NUM = 128;\nexports.NULL_RATIO = 0;\nexports.ONE_RATIO = 10000;\nexports.NULL_PRICE = ethers_1.BigNumber.from(0);\nexports.MAX_TICK = 443636;\nexports.MIN_TICK = -322517;\nexports.INT24_MIN = -8388608;\nexports.INT24_MAX = 8388607;\nexports.PEARL_SPACING = 5;\nexports.ORDER_SPACING = exports.PEARL_SPACING;\nexports.RANGE_SPACING = exports.PEARL_SPACING * 10;\nexports.RATIO_BASE = 10000;\nexports.STABILITY_FEE_RATIO_BASE = 100;\nexports.MAX_STABILITY_FEE_RATIO = Math.pow(2, 16) - 1;\nexports.MIN_ORDER_MULTIPLIER = 2;\nexports.MIN_RANGE_MULTIPLIER = 10;\nexports.SETTLING_DURATION = 30 * 60;\nexports.NULL_DDL = Math.pow(2, 32) - 1;\nexports.PERP_EXPIRY = exports.NULL_DDL;\nexports.INITIAL_MARGIN_RATIO = 1000;\nexports.MAINTENANCE_MARGIN_RATIO = 500;\nexports.COMPACT_EMA_PARAM = ethers_1.BigNumber.from('1060108913112522979002928172012890034027465765885994002407459484512227426307');\nexports.NATIVE_TOKEN_ADDRESS = '0x1d6B1d2AD091bec4aAe6A131C92008701531FdaF';\nexports.DEFAULT_INITIAL_MARGIN_RATIO = 1000;\nexports.DEFAULT_MAINTENANCE_MARGIN_RATIO = exports.DEFAULT_INITIAL_MARGIN_RATIO / 2;\nexports.DEFAULT_REFERRAL_CODE = '\\xff\\xff\\x00\\x00\\x00\\x00\\x00\\x00';\nexports.MAX_BATCH_ORDER_COUNT = 9;\nexports.MIN_BATCH_ORDER_COUNT = 2;\nexports.MAX_CANCEL_ORDER_COUNT = 8;\nexports.EMPTY_AMM = {\n expiry: 0,\n timestamp: 0,\n status: 0,\n tick: 0,\n sqrtPX96: ethers_1.BigNumber.from(0),\n liquidity: ethers_1.BigNumber.from(0),\n totalLiquidity: ethers_1.BigNumber.from(0),\n involvedFund: ethers_1.BigNumber.from(0),\n openInterests: ethers_1.BigNumber.from(0),\n feeIndex: ethers_1.BigNumber.from(0),\n protocolFee: ethers_1.BigNumber.from(0),\n totalLong: ethers_1.BigNumber.from(0),\n totalShort: ethers_1.BigNumber.from(0),\n longSocialLossIndex: ethers_1.BigNumber.from(0),\n shortSocialLossIndex: ethers_1.BigNumber.from(0),\n longFundingIndex: ethers_1.BigNumber.from(0),\n shortFundingIndex: ethers_1.BigNumber.from(0),\n insuranceFund: ethers_1.BigNumber.from(0),\n settlementPrice: ethers_1.BigNumber.from(0),\n markPrice: ethers_1.BigNumber.from(0),\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BatchOrderSizeDistribution = exports.MarketType = exports.Leverage = exports.QuoteType = exports.FeederType = exports.InstrumentCondition = exports.Status = exports.Side = void 0;\nvar Side;\n(function (Side) {\n Side[Side[\"FLAT\"] = 0] = \"FLAT\";\n Side[Side[\"SHORT\"] = 1] = \"SHORT\";\n Side[Side[\"LONG\"] = 2] = \"LONG\";\n})(Side || (exports.Side = Side = {}));\nvar Status;\n(function (Status) {\n Status[Status[\"DORMANT\"] = 0] = \"DORMANT\";\n Status[Status[\"TRADING\"] = 1] = \"TRADING\";\n Status[Status[\"SETTLING\"] = 2] = \"SETTLING\";\n Status[Status[\"SETTLED\"] = 3] = \"SETTLED\";\n})(Status || (exports.Status = Status = {}));\nvar InstrumentCondition;\n(function (InstrumentCondition) {\n InstrumentCondition[InstrumentCondition[\"NORMAL\"] = 0] = \"NORMAL\";\n InstrumentCondition[InstrumentCondition[\"FROZEN\"] = 1] = \"FROZEN\";\n InstrumentCondition[InstrumentCondition[\"RESOLVED\"] = 2] = \"RESOLVED\";\n})(InstrumentCondition || (exports.InstrumentCondition = InstrumentCondition = {}));\nvar FeederType;\n(function (FeederType) {\n FeederType[FeederType[\"NONE_STABLE\"] = 0] = \"NONE_STABLE\";\n FeederType[FeederType[\"QUOTE_STABLE\"] = 1] = \"QUOTE_STABLE\";\n FeederType[FeederType[\"BASE_STABLE\"] = 2] = \"BASE_STABLE\";\n FeederType[FeederType[\"BOTH_STABLE\"] = 3] = \"BOTH_STABLE\";\n})(FeederType || (exports.FeederType = FeederType = {}));\nvar QuoteType;\n(function (QuoteType) {\n QuoteType[QuoteType[\"INVALID\"] = 0] = \"INVALID\";\n QuoteType[QuoteType[\"STABLE\"] = 1] = \"STABLE\";\n QuoteType[QuoteType[\"NONSTABLE\"] = 2] = \"NONSTABLE\";\n})(QuoteType || (exports.QuoteType = QuoteType = {}));\nvar Leverage;\n(function (Leverage) {\n Leverage[Leverage[\"LOW\"] = 0] = \"LOW\";\n Leverage[Leverage[\"MEDIUM\"] = 1] = \"MEDIUM\";\n Leverage[Leverage[\"HIGH\"] = 2] = \"HIGH\";\n Leverage[Leverage[\"RISKY\"] = 3] = \"RISKY\";\n})(Leverage || (exports.Leverage = Leverage = {}));\nvar MarketType;\n(function (MarketType) {\n MarketType[\"LINK\"] = \"LINK\";\n MarketType[\"DEXV2\"] = \"DEXV2\";\n MarketType[\"EMG\"] = \"EMG\";\n MarketType[\"PYTH\"] = \"PYTH\";\n})(MarketType || (exports.MarketType = MarketType = {}));\nvar BatchOrderSizeDistribution;\n(function (BatchOrderSizeDistribution) {\n BatchOrderSizeDistribution[BatchOrderSizeDistribution[\"FLAT\"] = 0] = \"FLAT\";\n BatchOrderSizeDistribution[BatchOrderSizeDistribution[\"UPPER\"] = 1] = \"UPPER\";\n BatchOrderSizeDistribution[BatchOrderSizeDistribution[\"LOWER\"] = 2] = \"LOWER\";\n BatchOrderSizeDistribution[BatchOrderSizeDistribution[\"RANDOM\"] = 3] = \"RANDOM\";\n})(BatchOrderSizeDistribution || (exports.BatchOrderSizeDistribution = BatchOrderSizeDistribution = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CalculationError = void 0;\nconst synfError_1 = require(\"./synfError\");\nclass CalculationError extends synfError_1.SynfError {\n constructor(message, data) {\n const msg = message + `,invalid params is: ${JSON.stringify(data)}`;\n super(msg);\n this.name = 'CalculationError';\n }\n}\nexports.CalculationError = CalculationError;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./calculationError\"), exports);\n__exportStar(require(\"./paramsEncodeError\"), exports);\n__exportStar(require(\"./simulationError\"), exports);\n__exportStar(require(\"./synfError\"), exports);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ParamsEncodeError = void 0;\nconst synfError_1 = require(\"./synfError\");\nclass ParamsEncodeError extends synfError_1.SynfError {\n constructor(message, data) {\n const msg = message + `,invalid params is: ${JSON.stringify(data)}`;\n super(msg);\n this.name = 'ParamsEncodeError';\n }\n}\nexports.ParamsEncodeError = ParamsEncodeError;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SimulationError = void 0;\nconst synfError_1 = require(\"./synfError\");\nclass SimulationError extends synfError_1.SynfError {\n constructor(message) {\n super(message);\n this.name = 'SimulationError';\n }\n}\nexports.SimulationError = SimulationError;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SynfError = void 0;\nclass SynfError extends Error {\n constructor(message, cause) {\n super(message);\n this.name = 'SynfError';\n this.cause = cause;\n this.message = `${this.message}\\n${this.cause ? `\\nCaused By: ${this.cause}` : ''}\\n`;\n }\n toString() {\n return `[${this.name}] ${this.message}`;\n }\n}\nexports.SynfError = SynfError;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nvar __importStar = (this && this.__importStar) || (function () {\n var ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n };\n return function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.utils = void 0;\nrequire(\"@derivation-tech/tx-plugin\");\n__exportStar(require(\"./math\"), exports);\n__exportStar(require(\"./modules\"), exports);\n__exportStar(require(\"./types\"), exports);\nexports.utils = __importStar(require(\"./utils\"));\n__exportStar(require(\"./constants\"), exports);\n__exportStar(require(\"./enum\"), exports);\n__exportStar(require(\"./errors\"), exports);\n__exportStar(require(\"./parser\"), exports);\n__exportStar(require(\"./perp.plugin\"), exports);\n__exportStar(require(\"./perp.interface\"), exports);\n__exportStar(require(\"./perp.module\"), exports);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.mulDivRoundingUp = mulDivRoundingUp;\nexports.mulShift = mulShift;\nexports.multiplyIn256 = multiplyIn256;\nexports.addIn256 = addIn256;\nexports.oppositeSigns = oppositeSigns;\nexports.mostSignificantBit = mostSignificantBit;\nexports.sqrt = sqrt;\nexports.roundHalfUp = roundHalfUp;\nexports.neg = neg;\nexports.signedDiv = signedDiv;\nexports.wdiv = wdiv;\nexports.safeWDiv = safeWDiv;\nexports.wdivUp = wdivUp;\nexports.wdivDown = wdivDown;\nexports.wmul = wmul;\nexports.wmulInt = wmulInt;\nexports.wmulUp = wmulUp;\nexports.wmulDown = wmulDown;\nexports.fracUp = fracUp;\nexports.fracDown = fracDown;\nexports.frac = frac;\nexports.weightedAverage = weightedAverage;\nexports.r2w = r2w;\nexports.s2w = s2w;\nexports.d2w = d2w;\nexports.w2d = w2d;\nexports.mulMod = mulMod;\nexports.fullMul = fullMul;\nexports.fullDiv = fullDiv;\nexports.mulDiv = mulDiv;\nexports.sqrtX96ToWad = sqrtX96ToWad;\nexports.wadToSqrtX96 = wadToSqrtX96;\nexports.wadToTick = wadToTick;\nexports.leastSignificantBit = leastSignificantBit;\nexports.leastNonnegativeRemainder = leastNonnegativeRemainder;\nexports.leastNonnegativeComplement = leastNonnegativeComplement;\nexports.maxAmongThree = maxAmongThree;\nexports.max = max;\nexports.min = min;\nexports.relativeDiffRatioWadAbs = relativeDiffRatioWadAbs;\nexports.getOrderLeverageByMargin = getOrderLeverageByMargin;\nexports.getMaxLeverage = getMaxLeverage;\nexports.calcMaxWithdrawable = calcMaxWithdrawable;\nexports.alignPriceToTick = alignPriceToTick;\nexports.calcBoost = calcBoost;\nexports.calcAsymmetricBoost = calcAsymmetricBoost;\nconst ethers_1 = require(\"ethers\");\nconst utils_1 = require(\"../utils\");\nconst tickMath_1 = require(\"./tickMath\");\nconst constants_1 = require(\"../constants\");\nconst constants_2 = require(\"./constants\");\nconst calculationError_1 = require(\"../errors/calculationError\");\nfunction mulDivRoundingUp(a, b, denominator) {\n const product = a.mul(b);\n let result = product.div(denominator);\n if (!product.mod(denominator).eq(constants_2.ZERO))\n result = result.add(constants_2.ONE);\n return result;\n}\nfunction mulShift(val, mulBy) {\n return val.mul(ethers_1.BigNumber.from(mulBy)).shr(128);\n}\nfunction multiplyIn256(x, y) {\n return x.mul(y).and(constants_2.MAX_UINT_256);\n}\nfunction addIn256(x, y) {\n return x.add(y).and(constants_2.MAX_UINT_256);\n}\nfunction oppositeSigns(x, y) {\n return x.mul(y).lt(constants_2.ZERO) ? true : false;\n}\nfunction mostSignificantBit(x) {\n (0, utils_1.solidityRequire)(x.gt(0), 'ZERO');\n (0, utils_1.solidityRequire)(x.lte(constants_2.MAX_UINT_256), 'MAX');\n let msb = 0;\n for (const [power, min] of constants_2.POWERS_OF_2) {\n if (x.gte(min)) {\n x = x.shr(power);\n msb += power;\n }\n }\n return msb;\n}\nfunction sqrt(value) {\n (0, utils_1.solidityRequire)(value.gte(0), 'NEGATIVE');\n if (value.lt(constants_2.MAX_SAFE_INTEGER)) {\n return ethers_1.BigNumber.from(Math.floor(Math.sqrt(Number(value))));\n }\n let z;\n let x;\n z = value;\n x = value.div(constants_2.TWO).add(constants_2.ONE);\n while (x.lt(z)) {\n z = x;\n x = value.div(x).add(x).div(constants_2.TWO);\n }\n return z;\n}\nfunction roundHalfUp(x, y) {\n const z = y.div(constants_2.TWO);\n if (x.gt(0)) {\n return x.add(z);\n }\n return x.sub(z);\n}\nfunction neg(x) {\n return constants_2.ZERO.sub(x);\n}\nfunction signedDiv(x, y) {\n return (x - (x % y)) / y;\n}\nfunction wdiv(x, y) {\n return frac(x, constants_2.WAD, y);\n}\nfunction safeWDiv(x, y) {\n if (y.eq(constants_2.ZERO))\n return constants_2.ZERO;\n return frac(x, constants_2.WAD, y);\n}\nfunction wdivUp(x, y) {\n return fracUp(x, constants_2.WAD, y);\n}\nfunction wdivDown(x, y) {\n return fracDown(x, constants_2.WAD, y);\n}\nfunction wmul(x, y) {\n return frac(x, y, constants_2.WAD);\n}\nfunction wmulInt(x, y) {\n let product = x.mul(y);\n if (product.isNegative()) {\n product = product.sub(constants_2.WAD.div(2));\n }\n else {\n product = product.add(constants_2.WAD.div(2));\n }\n return product.div(constants_2.WAD);\n}\nfunction wmulUp(x, y) {\n return fracUp(x, y, constants_2.WAD);\n}\nfunction wmulDown(x, y) {\n return fracDown(x, y, constants_2.WAD);\n}\nfunction fracUp(x, y, w) {\n const prod = x.mul(y).add(w.sub(1));\n return prod.div(w);\n}\nfunction fracDown(x, y, w) {\n return x.mul(y).div(w);\n}\nfunction frac(x, y, w) {\n const prod = x.mul(y).add(w.div(2));\n return prod.div(w);\n}\nfunction weightedAverage(w1, x1, w2, x2) {\n return x1.mul(w1).add(x2.mul(w2)).div(w1.add(w2));\n}\nfunction r2w(x) {\n x = ethers_1.BigNumber.from(x);\n return x.mul(ethers_1.BigNumber.from(10).pow(14));\n}\nfunction s2w(x) {\n x = ethers_1.BigNumber.from(x);\n return x.mul(ethers_1.BigNumber.from(10).pow(16));\n}\nfunction d2w(x, decimals) {\n return x.mul(ethers_1.BigNumber.from(10).pow(18 - decimals));\n}\nfunction w2d(x, decimals) {\n return wmul(x, ethers_1.BigNumber.from(10).pow(decimals));\n}\nfunction mulMod(x, y, d) {\n return x.mod(d).mul(y.mod(d)).mod(d);\n}\nfunction fullMul(x, y) {\n const mm = mulMod(x, y, constants_2.MAX_UINT_256);\n const l = x.mul(y);\n let h = mm.sub(l);\n if (mm.lt(l)) {\n h = h.sub(1);\n }\n return { l, h };\n}\nfunction fullDiv(l, h, d) {\n const negd = constants_2.MAX_UINT_256.sub(d).add(1);\n const pow2 = d.and(negd);\n d = d.div(pow2);\n l = l.div(pow2);\n const negPow2 = constants_2.MAX_UINT_256.sub(pow2).add(1);\n l = l.add(h.mul(negPow2.div(pow2).add(1)));\n let r = constants_2.ONE;\n for (let i = 0; i < 8; i++) {\n r = r.mul(constants_2.TWO.sub(d.mul(r)));\n }\n return l.mul(r);\n}\nfunction mulDiv(x, y, d) {\n let { l: _l, h: _h } = fullMul(x, y);\n const mm = mulMod(x, y, d);\n if (mm.gt(_l)) {\n _h = _h.sub(1);\n }\n _l = _l.sub(mm);\n return fullDiv(_l, _h, d);\n}\nfunction sqrtX96ToWad(sqrtPX96) {\n sqrtPX96 = ethers_1.BigNumber.from(sqrtPX96);\n const px96 = mulDiv(sqrtPX96, sqrtPX96, constants_2.Q96);\n return mulDiv(px96, constants_2.WAD, constants_2.Q96);\n}\nfunction wadToSqrtX96(price) {\n const x96 = price.mul(constants_2.Q96).div(constants_2.WAD);\n return sqrt(x96.mul(constants_2.Q96));\n}\nfunction wadToTick(price) {\n const sqrtX96 = wadToSqrtX96(price);\n return tickMath_1.TickMath.getTickAtSqrtRatio(sqrtX96);\n}\nfunction leastSignificantBit(x) {\n let r = 255;\n if (x.and(constants_2.MAX_UINT_128).gt(constants_2.ZERO)) {\n r -= 128;\n }\n else {\n x = x.shr(128);\n }\n if (x.and(constants_2.MAX_UINT_64).gt(constants_2.ZERO)) {\n r -= 64;\n }\n else {\n x = x.shr(64);\n }\n if (x.and(constants_2.MAX_UINT_32).gt(constants_2.ZERO)) {\n r -= 32;\n }\n else {\n x = x.shr(32);\n }\n if (x.and(constants_2.MAX_UINT_16).gt(constants_2.ZERO)) {\n r -= 16;\n }\n else {\n x = x.shr(16);\n }\n if (x.and(constants_2.MAX_UINT_8).gt(constants_2.ZERO)) {\n r -= 8;\n }\n else {\n x = x.shr(8);\n }\n if (x.and(ethers_1.BigNumber.from('0xf')).gt(constants_2.ZERO)) {\n r -= 4;\n }\n else {\n x = x.shr(4);\n }\n if (x.and(ethers_1.BigNumber.from('0x3')).gt(constants_2.ZERO)) {\n r -= 2;\n }\n else {\n x = x.shr(2);\n }\n if (x.and(ethers_1.BigNumber.from('0x1')).gt(constants_2.ZERO))\n r -= 1;\n return r;\n}\nfunction leastNonnegativeRemainder(x, modulus) {\n return ((x % modulus) + modulus) % modulus;\n}\nfunction leastNonnegativeComplement(x, modulus) {\n return (modulus - (x % modulus)) % modulus;\n}\nfunction maxAmongThree(a, b, c) {\n return (a.gt(b) ? a : b).gt(c) ? (a.gt(b) ? a : b) : c;\n}\nfunction max(left, right) {\n return left.gt(right) ? left : right;\n}\nfunction min(left, right) {\n return left.gt(right) ? right : left;\n}\nfunction relativeDiffRatioWadAbs(wadA, wadB) {\n return wdivUp(wadA.sub(wadB).abs(), wadA.lt(wadB) ? wadA : wadB);\n}\nfunction getOrderLeverageByMargin(targetTick, baseSize, margin) {\n return wdiv(wmul(tickMath_1.TickMath.getWadAtTick(targetTick), baseSize.abs()), margin);\n}\nfunction getMaxLeverage(imr) {\n return 1 / (imr / 10 ** constants_1.RATIO_DECIMALS);\n}\nfunction calcMaxWithdrawable(threshold, pending, fundFlow, reserve) {\n const maxWithdrawable = threshold\n .add(pending.exemption)\n .sub(fundFlow.totalOut)\n .add(fundFlow.totalIn)\n .sub(pending.amount);\n if (maxWithdrawable.lte(0))\n return constants_2.ZERO;\n if (maxWithdrawable.gt(reserve))\n return reserve;\n return maxWithdrawable;\n}\nfunction alignPriceToTick(price) {\n let tick = wadToTick(price);\n tick = Math.round(tick / constants_1.PEARL_SPACING) * constants_1.PEARL_SPACING;\n const alignedprice = tickMath_1.TickMath.getWadAtTick(tick);\n return { tick: tick, price: alignedprice };\n}\nfunction calcBoost(alpha, imr) {\n if (alpha === 1) {\n throw new calculationError_1.CalculationError('Invalid alpha', { alpha });\n }\n imr = imr / 10 ** constants_1.RATIO_DECIMALS;\n return -2 / (alpha * (imr + 1) - Math.sqrt(alpha)) / (1 / Math.sqrt(alpha) - 1);\n}\nfunction calcAsymmetricBoost(alphaLower, alphaUpper, imr) {\n if (alphaLower === 1 && alphaUpper === 1) {\n throw new calculationError_1.CalculationError('Invalid alpha and beta', { alphaLower, alphaUpper, imr });\n }\n imr = imr / 10 ** constants_1.RATIO_DECIMALS;\n const boostLower = 2 / (1 / Math.sqrt(alphaLower) - 1) / ((1 / Math.sqrt(alphaLower)) * (1 - imr) - 1);\n const boostUpper = calcBoost(alphaUpper, imr);\n return Math.min(boostLower, boostUpper);\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EMPTY_TICK = exports.ANY_PRICE_TICK = exports.TICK_DELTA_MAX = exports.MAX_SAFE_INTEGER = exports.POWERS_OF_2 = exports.MAX_INT_24 = exports.MAX_UINT_160 = exports.MAX_UINT_8 = exports.MAX_UINT_16 = exports.MAX_UINT_24 = exports.MAX_UINT_32 = exports.MAX_UINT_64 = exports.MAX_UINT_128 = exports.MAX_UINT_256 = exports.ADDRESS_ZERO = exports.WAD = exports.Q192 = exports.Q96 = exports.Q32 = exports.Q24 = exports.TWO = exports.ONE = exports.ZERO = exports.NEGATIVE_ONE = void 0;\nconst ethers_1 = require(\"ethers\");\nexports.NEGATIVE_ONE = ethers_1.BigNumber.from(-1);\nexports.ZERO = ethers_1.BigNumber.from(0);\nexports.ONE = ethers_1.BigNumber.from(1);\nexports.TWO = ethers_1.BigNumber.from(2);\nexports.Q24 = exports.TWO.pow(24);\nexports.Q32 = exports.TWO.pow(32);\nexports.Q96 = exports.TWO.pow(96);\nexports.Q192 = exports.TWO.pow(192);\nexports.WAD = ethers_1.BigNumber.from(10).pow(18);\nexports.ADDRESS_ZERO = '0x0000000000000000000000000000000000000000';\nexports.MAX_UINT_256 = ethers_1.BigNumber.from('0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff');\nexports.MAX_UINT_128 = exports.TWO.pow(128).sub(exports.ONE);\nexports.MAX_UINT_64 = exports.TWO.pow(64).sub(exports.ONE);\nexports.MAX_UINT_32 = exports.TWO.pow(32).sub(exports.ONE);\nexports.MAX_UINT_24 = exports.TWO.pow(24).sub(exports.ONE);\nexports.MAX_UINT_16 = exports.TWO.pow(16).sub(exports.ONE);\nexports.MAX_UINT_8 = exports.TWO.pow(8).sub(exports.ONE);\nexports.MAX_UINT_160 = exports.TWO.pow(160).sub(exports.ONE);\nexports.MAX_INT_24 = exports.TWO.pow(23).sub(exports.ONE);\nexports.POWERS_OF_2 = [128, 64, 32, 16, 8, 4, 2, 1].map((pow) => [pow, exports.TWO.pow(pow)]);\nexports.MAX_SAFE_INTEGER = ethers_1.BigNumber.from(String(Number.MAX_SAFE_INTEGER));\nexports.TICK_DELTA_MAX = 16096;\nexports.ANY_PRICE_TICK = ethers_1.BigNumber.from(140737496743935);\nexports.EMPTY_TICK = exports.TWO.pow(23).sub(exports.ONE);\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./basic\"), exports);\n__exportStar(require(\"./constants\"), exports);\n__exportStar(require(\"./numeric\"), exports);\n__exportStar(require(\"./sqrtPriceMath\"), exports);\n__exportStar(require(\"./swapMath\"), exports);\n__exportStar(require(\"./tickMath\"), exports);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NumericConverter = void 0;\nexports.asUint16 = asUint16;\nexports.asInt24 = asInt24;\nexports.asUint24 = asUint24;\nexports.asUint48 = asUint48;\nexports.asUint96 = asUint96;\nexports.asUint128 = asUint128;\nexports.asUint256 = asUint256;\nexports.forceAsInt24 = forceAsInt24;\nexports.asInt256 = asInt256;\nexports.asInt128 = asInt128;\nexports.decompose = decompose;\nconst ethers_1 = require(\"ethers\");\nconst constants_1 = require(\"./constants\");\nfunction asUint16(x) {\n if (x < 0) {\n x += 1 << 16;\n }\n return x;\n}\nfunction asInt24(x) {\n const MAX_INT_24 = (1 << 23) - 1;\n if (x > MAX_INT_24) {\n x -= 1 << 24;\n }\n return x;\n}\nfunction asUint24(x) {\n if (x < 0) {\n x += 1 << 24;\n }\n return x;\n}\nfunction asUint48(x) {\n if (x < 0) {\n x += 1 << 48;\n }\n return x;\n}\nfunction asUint96(x) {\n if (x.isNegative()) {\n x = x.add(constants_1.ONE.shl(96));\n }\n return x;\n}\nfunction asUint128(x) {\n if (x.isNegative()) {\n x = x.add(constants_1.ONE.shl(128));\n }\n return x;\n}\nfunction asUint256(x) {\n if (x.isNegative()) {\n x = x.add(constants_1.ONE.shl(256));\n }\n return x;\n}\nfunction forceAsInt24(x) {\n x = x.and(constants_1.ONE.shl(24).sub(constants_1.ONE));\n if (x.gt(constants_1.MAX_INT_24)) {\n x = x.sub(constants_1.ONE.shl(24));\n }\n return x;\n}\nfunction asInt256(x) {\n if (x.gt(ethers_1.ethers.constants.MaxInt256)) {\n x = x.sub(constants_1.ONE.shl(256));\n }\n return x;\n}\nfunction asInt128(x) {\n const MAX_INT_128 = constants_1.ONE.shl(127).sub(constants_1.ONE);\n if (x.gt(MAX_INT_128)) {\n x = x.sub(constants_1.ONE.shl(128));\n }\n return x;\n}\nfunction decompose(tick) {\n const wordPos = tick >> 8;\n let bitPos = tick % 256;\n if (bitPos < 0)\n bitPos += 256;\n return { wordPos, bitPos };\n}\nclass NumericConverter {\n static scaleQuoteAmount(amount, quoteDecimals) {\n const quoteAmountScaler = ethers_1.BigNumber.from(10).pow(18 - quoteDecimals);\n return amount.mul(quoteAmountScaler);\n }\n static toContractQuoteAmount(amount, quoteDecimals) {\n const quoteAmountScaler = ethers_1.BigNumber.from(10).pow(18 - quoteDecimals);\n return amount.div(quoteAmountScaler);\n }\n static toContractRatio(ratioWad) {\n return ratioWad.div(ethers_1.BigNumber.from(10).pow(14)).toNumber();\n }\n}\nexports.NumericConverter = NumericConverter;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SqrtPriceMath = void 0;\nconst ethers_1 = require(\"ethers\");\nconst utils_1 = require(\"../utils\");\nconst constants_1 = require(\"./constants\");\nconst basic_1 = require(\"./basic\");\nclass SqrtPriceMath {\n static getDeltaBaseAutoRoundUp(sqrtRatioAX96, sqrtRatioBX96, liquidity) {\n return liquidity.lt(constants_1.ZERO)\n ? this.getDeltaBase(sqrtRatioAX96, sqrtRatioBX96, liquidity.mul(-1), false).mul(-1)\n : this.getDeltaBase(sqrtRatioAX96, sqrtRatioBX96, liquidity, true);\n }\n static getDeltaQuoteAutoRoundUp(sqrtRatioAX96, sqrtRatioBX96, liquidity) {\n return liquidity.lt(constants_1.ZERO)\n ? this.getDeltaQuote(sqrtRatioAX96, sqrtRatioBX96, liquidity.mul(-1), false).mul(-1)\n : this.getDeltaQuote(sqrtRatioAX96, sqrtRatioBX96, liquidity, true);\n }\n static getDeltaBase(sqrtRatioAX96, sqrtRatioBX96, liquidity, roundUp) {\n if (sqrtRatioAX96.gt(sqrtRatioBX96)) {\n [sqrtRatioAX96, sqrtRatioBX96] = [sqrtRatioBX96, sqrtRatioAX96];\n }\n const numerator1 = liquidity.shl(96);\n const numerator2 = sqrtRatioBX96.sub(sqrtRatioAX96);\n return roundUp\n ? (0, basic_1.mulDivRoundingUp)((0, basic_1.mulDivRoundingUp)(numerator1, numerator2, sqrtRatioBX96), constants_1.ONE, sqrtRatioAX96)\n : numerator1.mul(numerator2).div(sqrtRatioBX96).div(sqrtRatioAX96);\n }\n static getDeltaQuote(sqrtRatioAX96, sqrtRatioBX96, liquidity, roundUp) {\n if (sqrtRatioAX96.gt(sqrtRatioBX96)) {\n [sqrtRatioAX96, sqrtRatioBX96] = [sqrtRatioBX96, sqrtRatioAX96];\n }\n return roundUp\n ? (0, basic_1.mulDivRoundingUp)(liquidity, sqrtRatioBX96.sub(sqrtRatioAX96), constants_1.Q96)\n : sqrtRatioBX96.sub(sqrtRatioAX96).mul(liquidity).div(constants_1.Q96);\n }\n static getNextSqrtPriceFromDeltaBase(sqrtPX96, liquidity, amount, isLong) {\n (0, utils_1.solidityRequire)(sqrtPX96.gt(constants_1.ZERO));\n (0, utils_1.solidityRequire)(liquidity.gt(constants_1.ZERO));\n return this.getNextSqrtPriceFromAmount0RoundingUp(sqrtPX96, liquidity, amount, !isLong);\n }\n static getNextSqrtPriceFromInput(sqrtPX96, liquidity, amountIn, zeroForOne) {\n (0, utils_1.solidityRequire)(sqrtPX96.gt(constants_1.ZERO));\n (0, utils_1.solidityRequire)(liquidity.gt(constants_1.ZERO));\n return zeroForOne\n ? this.getNextSqrtPriceFromAmount0RoundingUp(sqrtPX96, liquidity, amountIn, true)\n : this.getNextSqrtPriceFromAmount1RoundingDown(sqrtPX96, liquidity, amountIn, true);\n }\n static getNextSqrtPriceFromOutput(sqrtPX96, liquidity, amountOut, zeroForOne) {\n (0, utils_1.solidityRequire)(sqrtPX96.gt(constants_1.ZERO));\n (0, utils_1.solidityRequire)(liquidity.gt(constants_1.ZERO));\n return zeroForOne\n ? this.getNextSqrtPriceFromAmount1RoundingDown(sqrtPX96, liquidity, amountOut, false)\n : this.getNextSqrtPriceFromAmount0RoundingUp(sqrtPX96, liquidity, amountOut, false);\n }\n static getLiquidityFromMargin(sqrtEntryPX96, sqrtUpperPX96, entryMargin, initialMarginRatio) {\n (0, utils_1.solidityRequire)(sqrtEntryPX96.gt(constants_1.ZERO));\n (0, utils_1.solidityRequire)(sqrtUpperPX96.gt(constants_1.ZERO));\n const numerator1 = entryMargin.mul(sqrtUpperPX96);\n const numerator2 = sqrtEntryPX96;\n const denominator1 = sqrtUpperPX96.sub(sqrtEntryPX96);\n let temp = numerator1.mul(numerator2).div(denominator1);\n temp = temp.mul(constants_1.Q96).div(sqrtUpperPX96);\n const denominator2 = (0, basic_1.wmulUp)(sqrtUpperPX96, (0, basic_1.r2w)(initialMarginRatio + 10000)).sub(sqrtEntryPX96);\n return temp.div(denominator2);\n }\n static getNextSqrtPriceFromAmount0RoundingUp(sqrtPX96, liquidity, amount, add) {\n if (amount.eq(constants_1.ZERO))\n return sqrtPX96;\n const numerator1 = liquidity.shl(96);\n if (add) {\n const product = (0, basic_1.multiplyIn256)(amount, sqrtPX96);\n if (product.div(amount).eq(sqrtPX96)) {\n const denominator = (0, basic_1.addIn256)(numerator1, product);\n if (denominator.gte(numerator1)) {\n return (0, basic_1.mulDivRoundingUp)(numerator1, sqrtPX96, denominator);\n }\n }\n return (0, basic_1.mulDivRoundingUp)(numerator1, constants_1.ONE, numerator1.div(sqrtPX96).add(amount));\n }\n else {\n const product = (0, basic_1.multiplyIn256)(amount, sqrtPX96);\n (0, utils_1.solidityRequire)(product.div(amount).eq(sqrtPX96));\n (0, utils_1.solidityRequire)(numerator1.gt(product));\n return (0, basic_1.mulDivRoundingUp)(numerator1, sqrtPX96, numerator1.sub(product));\n }\n }\n static getNextSqrtPriceFromAmount1RoundingDown(sqrtPX96, liquidity, amount, add) {\n if (add) {\n const quotient = amount.lte(constants_1.MAX_UINT_160) ? amount.shl(96).div(liquidity) : amount.mul(constants_1.Q96).div(liquidity);\n return sqrtPX96.add(quotient);\n }\n else {\n const quotient = (0, basic_1.mulDivRoundingUp)(amount, constants_1.Q96, liquidity);\n (0, utils_1.solidityRequire)(sqrtPX96.gt(quotient));\n return sqrtPX96.sub(quotient);\n }\n }\n static getStabilityFee(quotation, param) {\n const feePaid = quotation.fee;\n const protocolFeePaid = (0, basic_1.wmulUp)(quotation.entryNotional, (0, basic_1.r2w)(param.protocolFeeRatio));\n const baseFeePaid = (0, basic_1.wmulUp)(quotation.entryNotional, (0, basic_1.r2w)(param.tradingFeeRatio));\n let stabilityFee = feePaid.sub(protocolFeePaid).sub(baseFeePaid);\n if (stabilityFee.lt(0))\n stabilityFee = constants_1.ZERO;\n return stabilityFee;\n }\n getStabilityFeeRatio(quotation, param, maintenanceMarginRatio) {\n void maintenanceMarginRatio;\n const stabilityFee = SqrtPriceMath.getStabilityFee(quotation, param);\n const ratioTemp = (0, basic_1.wdiv)(stabilityFee, quotation.entryNotional);\n const scaler = ethers_1.BigNumber.from(10).pow(14);\n const ratio = ratioTemp.add(scaler.sub(1)).div(scaler);\n return ratio.toNumber();\n }\n}\nexports.SqrtPriceMath = SqrtPriceMath;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SwapMath = void 0;\nconst constants_1 = require(\"./constants\");\nconst sqrtPriceMath_1 = require(\"./sqrtPriceMath\");\nconst tickMath_1 = require(\"./tickMath\");\nconst basic_1 = require(\"./basic\");\nclass SwapMath {\n static swapWithinRange(sqrtCurrentPX96, sqrtTargetPX96, liquidity, sizeLeft) {\n const long = sizeLeft.gt(constants_1.ZERO);\n const dxMax = sqrtPriceMath_1.SqrtPriceMath.getDeltaBaseAutoRoundUp(sqrtTargetPX96, sqrtCurrentPX96, liquidity);\n let dxAbs = sizeLeft.abs();\n let sqrtPostPX96;\n if (dxAbs.gte(dxMax)) {\n dxAbs = dxMax;\n sqrtPostPX96 = sqrtTargetPX96;\n }\n else {\n sqrtPostPX96 = sqrtPriceMath_1.SqrtPriceMath.getNextSqrtPriceFromDeltaBase(sqrtCurrentPX96, liquidity, dxAbs, long);\n }\n const dy = sqrtPriceMath_1.SqrtPriceMath.getDeltaQuote(sqrtPostPX96, sqrtCurrentPX96, liquidity, long);\n const dx = long ? dxAbs : dxAbs.mul(-1);\n return { sqrtPostPX96, dx, dy };\n }\n static swapCrossRange(pair, size) {\n const amm = pair.amm;\n const ticks = [];\n const takens = [];\n const long = size.gt(constants_1.ZERO);\n let totalOrderValue = constants_1.ZERO;\n let totalCurveValue = constants_1.ZERO;\n let swapSize = size;\n const currTickLeft = pair.getPearl(amm.tick).left;\n if (!swapSize.eq(0) && long && currTickLeft.lt(0)) {\n const taken = swapSize.abs().gte(currTickLeft.abs()) ? currTickLeft : swapSize.mul(-1);\n ticks.push(amm.tick);\n takens.push(taken);\n const takenValue = tickMath_1.TickMath.calcTakenNotional(amm.tick, taken);\n swapSize = swapSize.add(taken);\n totalOrderValue = totalOrderValue.add(takenValue);\n if (swapSize.eq(0)) {\n return { liquidity: amm.liquidity, ticks, takens };\n }\n }\n let targetTick = tickMath_1.TickMath.nextInitializedTick(pair.tbitmap, long ? amm.tick : amm.tick + 1, long);\n let sqrtPX96State = amm.sqrtPX96;\n let liquidityState = amm.liquidity;\n while (true) {\n const targetPX96 = tickMath_1.TickMath.getSqrtRatioAtTick(targetTick);\n const { sqrtPostPX96, dx, dy } = SwapMath.swapWithinRange(sqrtPX96State, targetPX96, liquidityState, swapSize);\n sqrtPX96State = sqrtPostPX96;\n swapSize = swapSize.sub(dx);\n totalCurveValue = totalCurveValue.add(dy);\n if (sqrtPostPX96 == targetPX96) {\n const left = pair.getPearl(targetTick).left;\n if (!swapSize.eq(0) && ((long && left.lt(0)) || (!long && left.gt(0)))) {\n const taken = swapSize.abs().gte(left.abs()) ? left : swapSize.mul(-1);\n ticks.push(targetTick);\n takens.push(taken);\n const takenValue = tickMath_1.TickMath.calcTakenNotional(targetTick, taken);\n swapSize = swapSize.add(taken);\n totalOrderValue = totalOrderValue.add(takenValue);\n }\n const isRangeEnd = pair.getPearl(targetTick).liquidityGross.gt(0);\n const lastLiquidity = liquidityState;\n if (isRangeEnd) {\n let liqNet = pair.getPearl(targetTick).liquidityNet;\n if (!long)\n liqNet = (0, basic_1.neg)(liqNet);\n liquidityState = liquidityState.add(liqNet);\n }\n if (swapSize.eq(constants_1.ZERO)) {\n if (!long) {\n liquidityState = lastLiquidity;\n }\n break;\n }\n targetTick = tickMath_1.TickMath.nextInitializedTick(pair.tbitmap, targetTick, long);\n }\n else {\n break;\n }\n }\n return { liquidity: liquidityState, ticks, takens };\n }\n}\nexports.SwapMath = SwapMath;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TickMath = void 0;\nconst ethers_1 = require(\"ethers\");\nconst utils_1 = require(\"../utils\");\nconst constants_1 = require(\"../constants\");\nconst enum_1 = require(\"../enum\");\nconst constants_2 = require(\"./constants\");\nconst basic_1 = require(\"./basic\");\nconst numeric_1 = require(\"./numeric\");\nconst calculationError_1 = require(\"../errors/calculationError\");\nconst utils_2 = require(\"../utils\");\nclass TickMath {\n static getSqrtRatioAtTick(tick) {\n (0, utils_1.solidityRequire)(tick >= TickMath.MIN_TICK && tick <= TickMath.MAX_TICK && Number.isInteger(tick), 'TICK');\n const absTick = tick < 0 ? tick * -1 : tick;\n let ratio = (absTick & 0x1) != 0\n ? ethers_1.BigNumber.from('0xfffcb933bd6fad37aa2d162d1a594001')\n : ethers_1.BigNumber.from('0x100000000000000000000000000000000');\n if ((absTick & 0x2) != 0)\n ratio = (0, basic_1.mulShift)(ratio, '0xfff97272373d413259a46990580e213a');\n if ((absTick & 0x4) != 0)\n ratio = (0, basic_1.mulShift)(ratio, '0xfff2e50f5f656932ef12357cf3c7fdcc');\n if ((absTick & 0x8) != 0)\n ratio = (0, basic_1.mulShift)(ratio, '0xffe5caca7e10e4e61c3624eaa0941cd0');\n if ((absTick & 0x10) != 0)\n ratio = (0, basic_1.mulShift)(ratio, '0xffcb9843d60f6159c9db58835c926644');\n if ((absTick & 0x20) != 0)\n ratio = (0, basic_1.mulShift)(ratio, '0xff973b41fa98c081472e6896dfb254c0');\n if ((absTick & 0x40) != 0)\n ratio = (0, basic_1.mulShift)(ratio, '0xff2ea16466c96a3843ec78b326b52861');\n if ((absTick & 0x80) != 0)\n ratio = (0, basic_1.mulShift)(ratio, '0xfe5dee046a99a2a811c461f1969c3053');\n if ((absTick & 0x100) != 0)\n ratio = (0, basic_1.mulShift)(ratio, '0xfcbe86c7900a88aedcffc83b479aa3a4');\n if ((absTick & 0x200) != 0)\n ratio = (0, basic_1.mulShift)(ratio, '0xf987a7253ac413176f2b074cf7815e54');\n if ((absTick & 0x400) != 0)\n ratio = (0, basic_1.mulShift)(ratio, '0xf3392b0822b70005940c7a398e4b70f3');\n if ((absTick & 0x800) != 0)\n ratio = (0, basic_1.mulShift)(ratio, '0xe7159475a2c29b7443b29c7fa6e889d9');\n if ((absTick & 0x1000) != 0)\n ratio = (0, basic_1.mulShift)(ratio, '0xd097f3bdfd2022b8845ad8f792aa5825');\n if ((absTick & 0x2000) != 0)\n ratio = (0, basic_1.mulShift)(ratio, '0xa9f746462d870fdf8a65dc1f90e061e5');\n if ((absTick & 0x4000) != 0)\n ratio = (0, basic_1.mulShift)(ratio, '0x70d869a156d2a1b890bb3df62baf32f7');\n if ((absTick & 0x8000) != 0)\n ratio = (0, basic_1.mulShift)(ratio, '0x31be135f97d08fd981231505542fcfa6');\n if ((absTick & 0x10000) != 0)\n ratio = (0, basic_1.mulShift)(ratio, '0x9aa508b5b7a84e1c677de54f3e99bc9');\n if ((absTick & 0x20000) != 0)\n ratio = (0, basic_1.mulShift)(ratio, '0x5d6af8dedb81196699c329225ee604');\n if ((absTick & 0x40000) != 0)\n ratio = (0, basic_1.mulShift)(ratio, '0x2216e584f5fa1ea926041bedfe98');\n if ((absTick & 0x80000) != 0)\n ratio = (0, basic_1.mulShift)(ratio, '0x48a170391f7dc42444e8fa2');\n if (tick > 0)\n ratio = constants_2.MAX_UINT_256.div(ratio);\n return ratio.mod(constants_2.Q32).gt(constants_2.ZERO) ? ratio.div(constants_2.Q32).add(constants_2.ONE) : ratio.div(constants_2.Q32);\n }\n static getTickAtSqrtRatio(sqrtRatioX96) {\n (0, utils_1.solidityRequire)(sqrtRatioX96.gte(TickMath.MIN_SQRT_RATIO) && sqrtRatioX96.lt(TickMath.MAX_SQRT_RATIO), 'SQRT_RATIO');\n const sqrtRatioX128 = sqrtRatioX96.shl(32);\n const msb = (0, basic_1.mostSignificantBit)(sqrtRatioX128);\n let r;\n if (msb >= 128) {\n r = sqrtRatioX128.shr(msb - 127);\n }\n else {\n r = sqrtRatioX128.shl(127 - msb);\n }\n let log_2 = ethers_1.BigNumber.from(msb - 128).mul(constants_2.ONE.shl(64));\n let unsignedLog_2 = (0, numeric_1.asUint256)(log_2);\n for (let i = 0; i < 14; i++) {\n r = r.mul(r).shr(127);\n const f = r.shr(128);\n unsignedLog_2 = unsignedLog_2.or(f.shl(63 - i));\n r = r.shr(f.toNumber());\n }\n log_2 = (0, numeric_1.asInt256)(unsignedLog_2);\n const log_sqrt10001 = log_2.mul(ethers_1.BigNumber.from('255738958999603826347141'));\n const tickLow = (0, numeric_1.forceAsInt24)(this.signedShr(log_sqrt10001.sub(ethers_1.BigNumber.from('3402992956809132418596140100660247210')), 128)).toNumber();\n const tickHigh = (0, numeric_1.forceAsInt24)(this.signedShr(log_sqrt10001.add(ethers_1.BigNumber.from('291339464771989622907027621153398088495')), 128)).toNumber();\n return tickLow === tickHigh\n ? tickLow\n : TickMath.getSqrtRatioAtTick(tickHigh).lte(sqrtRatioX96)\n ? tickHigh\n : tickLow;\n }\n static signedShr(number, bits) {\n const negative = number.isNegative();\n const temp = negative ? (0, numeric_1.asUint256)(number) : number;\n return temp.shr(bits);\n }\n static getWadAtTick(tick) {\n return (0, basic_1.sqrtX96ToWad)(this.getSqrtRatioAtTick(tick));\n }\n static getTickAtPWad(pWad) {\n const sqrtX96 = (0, basic_1.wadToSqrtX96)(pWad);\n return this.getTickAtSqrtRatio(sqrtX96);\n }\n static calcTakenNotional(tick, size) {\n const price = TickMath.getWadAtTick(tick);\n return (0, basic_1.wmul)(price, size.abs());\n }\n static nextInitializedTick(tickBitMap, tick, right) {\n if (right) {\n const compressed = (0, basic_1.signedDiv)(tick - (0, basic_1.leastNonnegativeRemainder)(tick, constants_1.PEARL_SPACING), constants_1.PEARL_SPACING);\n const start = compressed + 1;\n let { wordPos, bitPos } = (0, numeric_1.decompose)(start);\n const word = tickBitMap.get(wordPos) ?? constants_2.ZERO;\n let masked = word.sub(word.mask(bitPos));\n if (!masked.isZero()) {\n return (start + (0, basic_1.leastSignificantBit)(masked) - bitPos) * constants_1.PEARL_SPACING;\n }\n const UPPER_BOUND = (0, basic_1.signedDiv)(constants_1.MAX_TICK, constants_1.PEARL_SPACING) >> 8;\n while (wordPos < UPPER_BOUND) {\n wordPos++;\n masked = tickBitMap.get(wordPos) ?? constants_2.ZERO;\n if (!masked.isZero()) {\n return (wordPos * 256 + (0, basic_1.leastSignificantBit)(masked)) * constants_1.PEARL_SPACING;\n }\n }\n throw new calculationError_1.CalculationError('Search tick upward, out of bound', { tickBitMap, tick, right });\n }\n else {\n const compressed = (0, basic_1.signedDiv)(tick + (0, basic_1.leastNonnegativeComplement)(tick, constants_1.PEARL_SPACING), constants_1.PEARL_SPACING);\n const start = compressed - 1;\n let { wordPos, bitPos } = (0, numeric_1.decompose)(start);\n const word = tickBitMap.get(wordPos) ?? constants_2.ZERO;\n let masked = word.mask(bitPos + 1);\n if (!masked.isZero()) {\n return (start - (bitPos - (0, basic_1.mostSignificantBit)(masked))) * constants_1.PEARL_SPACING;\n }\n const LOWER_BOUND = (0, basic_1.signedDiv)(constants_1.MIN_TICK, constants_1.PEARL_SPACING) >> 8;\n while (wordPos > LOWER_BOUND) {\n wordPos--;\n masked = tickBitMap.get(wordPos) ?? constants_2.ZERO;\n if (!masked.isZero()) {\n return (wordPos * 256 + (0, basic_1.mostSignificantBit)(masked)) * constants_1.PEARL_SPACING;\n }\n }\n throw new calculationError_1.CalculationError('Search tick down, out of bound', { tickBitMap, tick, right });\n }\n }\n static getLimitTick(tradePrice, slippage, side) {\n const sign = (0, utils_1.signOfSide)(side);\n const limitPrice = tradePrice.mul(constants_1.ONE_RATIO + sign * slippage).div(constants_1.ONE_RATIO);\n const limitTick = TickMath.getTickAtPWad(limitPrice);\n return side == enum_1.Side.LONG ? limitTick : limitTick + 1;\n }\n static encodeLimitTicks(sqrtStrikeLowerPX96, sqrtStrikeUpperPX96) {\n let strikeLowerTick = sqrtStrikeLowerPX96.eq(0)\n ? constants_1.INT24_MIN\n : TickMath.getTickAtSqrtRatio(sqrtStrikeLowerPX96) + 1;\n strikeLowerTick = strikeLowerTick < 0 ? (1 << 24) + strikeLowerTick : strikeLowerTick;\n let strikeUpperTick = sqrtStrikeUpperPX96.eq(0) ? constants_1.INT24_MAX : TickMath.getTickAtSqrtRatio(sqrtStrikeUpperPX96);\n strikeUpperTick = strikeUpperTick < 0 ? (1 << 24) + strikeUpperTick : strikeUpperTick;\n return ethers_1.BigNumber.from(strikeLowerTick).mul(ethers_1.BigNumber.from(2).pow(24)).add(strikeUpperTick);\n }\n static async getTickBitMaps(observer, instrument, expiry) {\n const keys = new Array();\n for (let i = -128; i < 128; i++) {\n keys.push(i);\n }\n const res = await observer.getTickBitmaps(instrument, expiry, keys);\n const ret = new Map();\n for (let i = 0; i < keys.length; i++) {\n ret.set(keys[i], res[i]);\n }\n return ret;\n }\n static getTickRangeByAlpha(alphaWad, curTick) {\n const tickDelta = (0, utils_1.alphaWadToTickDelta)(alphaWad);\n let upperTick = constants_1.RANGE_SPACING * ~~((curTick + tickDelta) / constants_1.RANGE_SPACING);\n let lowerTick = constants_1.RANGE_SPACING * ~~((curTick - tickDelta) / constants_1.RANGE_SPACING);\n upperTick = utils_2.lowLevel.alignRangeTick(Math.min(upperTick, curTick + constants_2.TICK_DELTA_MAX), false);\n lowerTick = utils_2.lowLevel.alignRangeTick(Math.max(lowerTick, curTick - constants_2.TICK_DELTA_MAX), true);\n return [lowerTick, upperTick];\n }\n}\nexports.TickMath = TickMath;\nTickMath.MIN_TICK = -322517;\nTickMath.MAX_TICK = 443636;\nTickMath.MIN_SQRT_RATIO = ethers_1.BigNumber.from('7867958450021363558555');\nTickMath.MAX_SQRT_RATIO = ethers_1.BigNumber.from('340275971719517849884101479065584693834');\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CalcModule = void 0;\nconst math_1 = require(\"../math\");\nclass CalcModule {\n constructor(context) {\n this.context = context;\n }\n async alignPriceToTick(instrumentAddr, price) {\n return (0, math_1.alignPriceToTick)(price);\n }\n async getWadAtTick(instrumentAddr, tick) {\n return math_1.TickMath.getWadAtTick(tick);\n }\n async getTickAtPWad(instrumentAddr, price) {\n return math_1.TickMath.getTickAtPWad(price);\n }\n async getWadAtTicks(instrumentAddr, lowerTick, upperTick) {\n return {\n lowerPrice: math_1.TickMath.getWadAtTick(lowerTick),\n upperPrice: math_1.TickMath.getWadAtTick(upperTick),\n };\n }\n async sqrtX96ToWad(instrumentAddr, sqrtPX96) {\n return (0, math_1.sqrtX96ToWad)(sqrtPX96);\n }\n}\nexports.CalcModule = CalcModule;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ConfigModule = void 0;\nconst ethers_1 = require(\"ethers\");\nconst context_1 = require(\"@derivation-tech/context\");\nclass ConfigModule {\n constructor(context) {\n this.context = context;\n }\n async inWhiteListLps(quoteAddr, traders, overrides) {\n let calls = [];\n let results = [];\n let configInterface = this.context.perp.contracts.config.interface;\n if ((this.context.chainId === context_1.CHAIN_ID.BASE ||\n this.context.chainId === context_1.CHAIN_ID.MONADTESTNET ||\n this.context.chainId === context_1.CHAIN_ID.LOCAL) &&\n quoteAddr) {\n for (const trader of traders) {\n calls.push({\n target: this.context.perp.contracts.config.address,\n callData: configInterface.encodeFunctionData('lpWhitelist', [quoteAddr, trader]),\n });\n }\n try {\n const rawData = await this.context.multiCall3.callStatic.aggregate(calls, overrides ?? {});\n for (const data of rawData.returnData) {\n results.push(configInterface.decodeFunctionResult('lpWhitelist', data)[0]);\n }\n return results;\n }\n catch (e) {\n }\n }\n calls = [];\n results = [];\n configInterface = new ethers_1.ethers.utils.Interface([\n 'function lpWhitelist(address user) external view returns (bool)',\n ]);\n for (const trader of traders) {\n calls.push({\n target: this.context.perp.contracts.config.address,\n callData: configInterface.encodeFunctionData('lpWhitelist', [trader]),\n });\n }\n const rawData = await this.context.multiCall3.callStatic.aggregate(calls, overrides ?? {});\n for (const data of rawData.returnData) {\n results.push(configInterface.decodeFunctionResult('lpWhitelist', data)[0]);\n }\n return results;\n }\n async openLp(quoteAddr, overrides) {\n if ((this.context.chainId === context_1.CHAIN_ID.BASE ||\n this.context.chainId === context_1.CHAIN_ID.MONADTESTNET ||\n this.context.chainId === context_1.CHAIN_ID.LOCAL) &&\n quoteAddr) {\n try {\n const restricted = await this.context.perp.contracts.config.restrictLp(quoteAddr, overrides ?? {});\n return !restricted;\n }\n catch (e) {\n }\n }\n return this.context.perp.contracts.config.openLp(overrides ?? {});\n }\n}\nexports.ConfigModule = ConfigModule;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ConfigurationModuleBase = void 0;\nconst context_1 = require(\"@derivation-tech/context\");\nconst typechain_1 = require(\"../../typechain\");\nconst enum_1 = require(\"../../enum\");\nconst utils_1 = require(\"../../utils\");\nconst parser_1 = require(\"../../parser\");\nconst errors_1 = require(\"../../errors\");\nclass ConfigurationModuleBase {\n constructor(context) {\n this.instrumentIdentifiers = new Map();\n this.context = context;\n }\n registerContracts() {\n this.context.registerAddress(this.config.contractAddress.gate, 'Gate');\n this.context.registerAddress(this.config.contractAddress.observer, 'Observer');\n this.context.registerAddress(this.config.contractAddress.config, 'Config');\n this.context.registerContractParser(this.config.contractAddress.gate, new parser_1.GateParser(this.context));\n this.context.registerContractParser(this.config.contractAddress.config, new parser_1.ConfigParser());\n if (this.config.contractAddress.guardian) {\n this.context.registerAddress(this.config.contractAddress.guardian, 'Guardian');\n this.context.registerContractParser(this.config.contractAddress.guardian, new parser_1.GuardianParser());\n }\n for (const marketType in this.config.contractAddress.market) {\n const marketAddress = this.config.contractAddress.market[marketType];\n this.context.registerAddress(marketAddress.market, `${marketType}-Market`);\n this.context.registerAddress(marketAddress.beacon, `${marketType}-InstrumentBeacon`);\n if ((0, utils_1.isCexMarket)(marketType)) {\n this.context.registerContractParser(marketAddress.market, new parser_1.CexMarketParser());\n }\n else {\n this.context.registerContractParser(marketAddress.market, new parser_1.DexV2MarketParser());\n }\n }\n for (const marketType in this.config.contractAddress.feederFactory) {\n const feederFactoryAddress = this.config.contractAddress.feederFactory[marketType];\n if (feederFactoryAddress.factory !== '' && feederFactoryAddress.beacon !== '') {\n this.context.registerAddress(feederFactoryAddress.factory, `${marketType}-FeederFactory`);\n this.context.registerAddress(feederFactoryAddress.beacon, `${marketType}-FeederBeacon`);\n if (marketType === enum_1.MarketType.PYTH) {\n this.context.registerContractParser(feederFactoryAddress.factory, new context_1.ContractParser(typechain_1.PythFeederFactory__factory.createInterface()));\n }\n else if (marketType === enum_1.MarketType.EMG) {\n this.context.registerContractParser(feederFactoryAddress.factory, new context_1.ContractParser(typechain_1.EmergingFeederFactory__factory.createInterface()));\n }\n }\n }\n if (this.config.tokenInfo) {\n for (const token of this.config.tokenInfo) {\n this.context.perp.registerQuoteInfo(token);\n }\n }\n }\n createContracts(provider) {\n const marketContracts = {};\n for (const marketType in this.config.contractAddress.market) {\n const mType = marketType;\n const marketAddress = this.config.contractAddress.market[mType];\n marketContracts[mType] = {\n market: (0, utils_1.isCexMarket)(mType)\n ? typechain_1.CexMarket__factory.connect(marketAddress.market, provider)\n : typechain_1.DexV2Market__factory.connect(marketAddress.market, provider),\n beacon: typechain_1.Beacon__factory.connect(marketAddress.beacon, provider),\n };\n }\n const feederFactoryContracts = {};\n for (const marketType in this.config.contractAddress.feederFactory) {\n const mType = marketType;\n const feederFactoryAddress = this.config.contractAddress.feederFactory[mType];\n if (feederFactoryAddress.factory !== '' && feederFactoryAddress.beacon !== '') {\n if (mType === enum_1.MarketType.PYTH) {\n feederFactoryContracts[mType] = {\n factory: typechain_1.PythFeederFactory__factory.connect(feederFactoryAddress.factory, provider),\n beacon: typechain_1.Beacon__factory.connect(feederFactoryAddress.beacon, provider),\n };\n }\n else if (mType === enum_1.MarketType.EMG) {\n feederFactoryContracts[mType] = {\n factory: typechain_1.EmergingFeederFactory__factory.connect(feederFactoryAddress.factory, provider),\n beacon: typechain_1.Beacon__factory.connect(feederFactoryAddress.beacon, provider),\n };\n }\n else {\n throw new errors_1.SynfError(`Invalid market type: ${mType}`);\n }\n }\n }\n return {\n gate: typechain_1.Gate__factory.connect(this.config.contractAddress.gate, provider),\n observer: typechain_1.Observer__factory.connect(this.config.contractAddress.observer, provider),\n config: typechain_1.Config__factory.connect(this.config.contractAddress.config, provider),\n guardian: this.config.contractAddress.guardian\n ? typechain_1.Guardian__factory.connect(this.config.contractAddress.guardian, provider)\n : undefined,\n marketContracts: marketContracts,\n feederFactoryContracts: feederFactoryContracts,\n };\n }\n onSetProvider() {\n if (this.config) {\n this.registerContracts();\n this.context.perp.contracts = this.createContracts(this.context.provider);\n }\n }\n async update() {\n const config = await this.getConfig();\n if (config) {\n this.config = config;\n this.registerContracts();\n this.context.perp.contracts = this.createContracts(this.context.provider);\n }\n }\n async isInverse(instrument) {\n instrument = instrument.toLowerCase();\n let identifier = this.instrumentIdentifiers.get(instrument);\n if (!identifier) {\n const _instrument = await this.context.perp._observer.getInstrument(instrument);\n if (!_instrument) {\n throw new errors_1.SynfError('Unknown instrument: ' + instrument);\n }\n this.instrumentIdentifiers.set(instrument, (identifier = {\n marketType: _instrument.marketType,\n baseSymbol: _instrument.base,\n quoteSymbol: _instrument.quote,\n }));\n }\n return this.isInverseByIdentifier(identifier);\n }\n async isInverseByIdentifier(identifier) {\n const baseSymbol = typeof identifier.baseSymbol === 'string' ? identifier.baseSymbol : identifier.baseSymbol.symbol;\n const quoteSymbol = typeof identifier.quoteSymbol === 'string' ? identifier.quoteSymbol : identifier.quoteSymbol.symbol;\n const symbol = baseSymbol + '-' + quoteSymbol + '-' + identifier.marketType;\n return !!this.config.inversePairs?.includes(symbol);\n }\n}\nexports.ConfigurationModuleBase = ConfigurationModuleBase;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || (function () {\n var ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n };\n return function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LocalConfigurationModule = void 0;\nconst context_1 = require(\"@derivation-tech/context\");\nconst utils_1 = require(\"../../utils\");\nconst localConfig = __importStar(require(\"./config/local.json\"));\nconst goerliConfig = __importStar(require(\"./config/goerli.json\"));\nconst polygonConfig = __importStar(require(\"./config/polygon.json\"));\nconst scrollConfig = __importStar(require(\"./config/scroll.json\"));\nconst lineaConfig = __importStar(require(\"./config/linea.json\"));\nconst arbitrumConfig = __importStar(require(\"./config/arbitrum.json\"));\nconst blastsepoliaConfig = __importStar(require(\"./config/blastsepolia.json\"));\nconst blastConfig = __importStar(require(\"./config/blast.json\"));\nconst baseConfig = __importStar(require(\"./config/base.json\"));\nconst monadTestnetConfig = __importStar(require(\"./config/monadTestnet.json\"));\nconst configuration_base_module_1 = require(\"./configuration.base.module\");\nclass LocalConfigurationModule extends configuration_base_module_1.ConfigurationModuleBase {\n async getConfig() {\n switch (this.context.chainId) {\n case context_1.CHAIN_ID.LOCAL: {\n return (0, utils_1.loadConfig)(localConfig);\n }\n case context_1.CHAIN_ID.GOERLI: {\n return (0, utils_1.loadConfig)(goerliConfig);\n }\n case context_1.CHAIN_ID.POLYGON: {\n return (0, utils_1.loadConfig)(polygonConfig);\n }\n case context_1.CHAIN_ID.SCROLL: {\n return (0, utils_1.loadConfig)(scrollConfig);\n }\n case context_1.CHAIN_ID.LINEA: {\n return (0, utils_1.loadConfig)(lineaConfig);\n }\n case context_1.CHAIN_ID.ARBITRUM: {\n return (0, utils_1.loadConfig)(arbitrumConfig);\n }\n case context_1.CHAIN_ID.BLASTSEPOLIA: {\n return (0, utils_1.loadConfig)(blastsepoliaConfig);\n }\n case context_1.CHAIN_ID.BLAST: {\n return (0, utils_1.loadConfig)(blastConfig);\n }\n case context_1.CHAIN_ID.BASE: {\n return (0, utils_1.loadConfig)(baseConfig);\n }\n case context_1.CHAIN_ID.MONADTESTNET: {\n return (0, utils_1.loadConfig)(monadTestnetConfig);\n }\n default: {\n return null;\n }\n }\n }\n}\nexports.LocalConfigurationModule = LocalConfigurationModule;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.S3ConfigurationModule = void 0;\nconst axios_1 = __importDefault(require(\"axios\"));\nconst context_1 = require(\"@derivation-tech/context\");\nconst utils_1 = require(\"../../utils\");\nconst configuration_base_module_1 = require(\"./configuration.base.module\");\nconst suppotedChainId = new Set([context_1.CHAIN_ID.BASE, context_1.CHAIN_ID.BLAST, context_1.CHAIN_ID.MONADTESTNET]);\nclass S3ConfigurationModule extends configuration_base_module_1.ConfigurationModuleBase {\n constructor(context, basePath) {\n super(context);\n this.basePath = basePath ?? 'https://api.synfutures.com/s3/config/sdkConfig';\n }\n async getConfig() {\n if (!suppotedChainId.has(this.context.chainId)) {\n return null;\n }\n const url = this.basePath + '/' + this.context.chainId + '.json';\n const res = await axios_1.default.get(url);\n return (0, utils_1.loadConfig)(res.data);\n }\n}\nexports.S3ConfigurationModule = S3ConfigurationModule;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./configuration.interface\"), exports);\n__exportStar(require(\"./configuration.local.module\"), exports);\n__exportStar(require(\"./configuration.s3.module\"), exports);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GateModule = void 0;\nconst constants_1 = require(\"../constants\");\nconst utils_1 = require(\"../utils\");\nconst math_1 = require(\"../math\");\nclass GateModule {\n constructor(context) {\n this.context = context;\n }\n async deposit(quoteAddr, amount, txOptions) {\n const usingNative = quoteAddr.toLowerCase() === constants_1.NATIVE_TOKEN_ADDRESS.toLowerCase();\n const unsignedTx = await this.context.perp.contracts.gate.populateTransaction.deposit((0, utils_1.encodeDepositParam)(quoteAddr, amount), { ...(0, utils_1.toPopulatedTxOverrides)(txOptions), ...(usingNative ? { value: amount } : {}) });\n return this.context.tx.sendTx(unsignedTx, txOptions);\n }\n async depositWad(quoteAddr, amount, txOptions) {\n const usingNative = quoteAddr.toLowerCase() === constants_1.NATIVE_TOKEN_ADDRESS.toLowerCase();\n const quoteInfo = usingNative ? this.context.wrappedNativeToken : await this.context.getTokenInfo(quoteAddr);\n const decimals = quoteInfo.decimals;\n const amountCover = math_1.NumericConverter.toContractQuoteAmount(amount, decimals);\n return this.deposit(quoteAddr, amountCover, txOptions);\n }\n async withdraw(quoteAddr, amount, txOptions) {\n const unsignedTx = await this.context.perp.contracts.gate.populateTransaction.withdraw((0, utils_1.encodeWithdrawParam)(quoteAddr, amount), (0, utils_1.toPopulatedTxOverrides)(txOptions));\n return await this.context.tx.sendTx(unsignedTx, txOptions);\n }\n async withdrawWad(quoteAddr, amount, txOptions) {\n const usingNative = quoteAddr.toLowerCase() === constants_1.NATIVE_TOKEN_ADDRESS.toLowerCase();\n const quoteInfo = usingNative ? this.context.wrappedNativeToken : await this.context.getTokenInfo(quoteAddr);\n const decimals = quoteInfo.decimals;\n const amountCover = math_1.NumericConverter.toContractQuoteAmount(amount, decimals);\n return await this.withdraw(quoteAddr, amountCover, txOptions);\n }\n async getPendingParams(quotes, txOptions) {\n const gateInterface = this.context.perp.contracts.gate.interface;\n const calls = quotes.map((quote) => {\n return {\n target: this.context.perp.contracts.gate.address,\n callData: gateInterface.encodeFunctionData('thresholdOf', [quote]),\n };\n });\n calls.push({\n target: this.context.perp.contracts.gate.address,\n callData: gateInterface.encodeFunctionData('pendingDuration'),\n });\n const rawRet = (await this.context.getMulticall3().callStatic.aggregate(calls, (0, utils_1.toPopulatedTxOverrides)(txOptions))).returnData;\n const thresholds = rawRet\n .slice(0, quotes.length)\n .map((ret) => gateInterface.decodeFunctionResult('thresholdOf', ret)[0]);\n const pendingDuration = gateInterface.decodeFunctionResult('pendingDuration', rawRet[quotes.length])[0];\n return { pendingDuration, thresholds };\n }\n async claimPendingWithdraw(quote, trader, txOptions) {\n const unsignedTx = await this.context.perp.contracts.gate.populateTransaction.release(quote, trader, (0, utils_1.toPopulatedTxOverrides)(txOptions));\n return this.context.tx.sendTx(unsignedTx, txOptions);\n }\n}\nexports.GateModule = GateModule;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./inverse\"), exports);\n__exportStar(require(\"./calc.interface\"), exports);\n__exportStar(require(\"./calc.module\"), exports);\n__exportStar(require(\"./config.interface\"), exports);\n__exportStar(require(\"./config.module\"), exports);\n__exportStar(require(\"./gate.interface\"), exports);\n__exportStar(require(\"./gate.module\"), exports);\n__exportStar(require(\"./instrument.interface\"), exports);\n__exportStar(require(\"./instrument.module\"), exports);\n__exportStar(require(\"./observer.interface\"), exports);\n__exportStar(require(\"./observer.module\"), exports);\n__exportStar(require(\"./simulate.interface\"), exports);\n__exportStar(require(\"./simulate.module\"), exports);\n__exportStar(require(\"./configuration\"), exports);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.InstrumentModule = void 0;\nconst ethers_1 = require(\"ethers\");\nconst typechain_1 = require(\"../typechain\");\nconst enum_1 = require(\"../enum\");\nconst utils_1 = require(\"../utils\");\nconst constants_1 = require(\"../constants\");\nconst parser_1 = require(\"../parser\");\nconst synfError_1 = require(\"../errors/synfError\");\nconst simulationError_1 = require(\"../errors/simulationError\");\nclass InstrumentModule {\n constructor(context) {\n this.context = context;\n }\n getInstrumentContract(address, signerOrProvider) {\n return typechain_1.Instrument__factory.connect(address, signerOrProvider ?? this.context.provider);\n }\n async computeInstrumentAddress(instrumentIdentifier) {\n const gateAddress = this.context.perp.configuration.config.contractAddress.gate;\n const marketType = instrumentIdentifier.marketType;\n const beaconAddress = this.context.perp.configuration.config.contractAddress.market[marketType].beacon;\n const instrumentProxyByteCode = this.context.perp.configuration.config.instrumentProxyByteCode;\n const salt = await this.computeInstrumentSalt(instrumentIdentifier);\n return ethers_1.ethers.utils.getCreate2Address(gateAddress, ethers_1.ethers.utils.keccak256(salt), ethers_1.ethers.utils.keccak256(ethers_1.ethers.utils.solidityPack(['bytes', 'bytes32'], [instrumentProxyByteCode, ethers_1.ethers.utils.hexZeroPad(beaconAddress, 32)])));\n }\n async computeInstrumentSalt(instrumentIdentifier) {\n const { baseTokenInfo, quoteTokenInfo } = await (0, utils_1.getTokenInfo)(instrumentIdentifier, this.context);\n const quoteAddress = quoteTokenInfo.address;\n let data;\n if ((0, utils_1.isCexMarket)(instrumentIdentifier.marketType)) {\n const baseSymbol = typeof instrumentIdentifier.baseSymbol === 'string'\n ? instrumentIdentifier.baseSymbol\n : instrumentIdentifier.baseSymbol.symbol;\n data = ethers_1.ethers.utils.defaultAbiCoder.encode(['string', 'string', 'address'], [instrumentIdentifier.marketType.toString(), baseSymbol, quoteAddress]);\n }\n else {\n data = ethers_1.ethers.utils.defaultAbiCoder.encode(['string', 'address', 'address'], [instrumentIdentifier.marketType.toString(), baseTokenInfo.address, quoteAddress]);\n }\n return data;\n }\n async computeInitData(instrumentIdentifier) {\n const { baseTokenInfo, quoteTokenInfo } = await (0, utils_1.getTokenInfo)(instrumentIdentifier, this.context);\n const quoteAddress = quoteTokenInfo.address;\n let data;\n if ((0, utils_1.isCexMarket)(instrumentIdentifier.marketType)) {\n const baseSymbol = typeof instrumentIdentifier.baseSymbol === 'string'\n ? instrumentIdentifier.baseSymbol\n : instrumentIdentifier.baseSymbol.symbol;\n data = ethers_1.ethers.utils.defaultAbiCoder.encode(['string', 'address'], [baseSymbol, quoteAddress]);\n }\n else {\n data = ethers_1.ethers.utils.defaultAbiCoder.encode(['address', 'address'], [baseTokenInfo.address, quoteAddress]);\n }\n return data;\n }\n async donateInsuranceFund(instrumentAddr, expiry, amount, txOptions) {\n const instrument = this.getInstrumentContract(instrumentAddr, txOptions?.signer);\n const unsignedTx = await instrument.populateTransaction.donateInsuranceFund(expiry, amount, (0, utils_1.toPopulatedTxOverrides)(txOptions));\n return this.context.tx.sendTx(unsignedTx, txOptions);\n }\n async fillLimitOrder(param, txOptions) {\n const instrument = this.getInstrumentContract(param.instrumentAddr, txOptions?.signer);\n const unsignedTx = await instrument.populateTransaction.fill((0, utils_1.encodeFillParam)(param), (0, utils_1.toPopulatedTxOverrides)(txOptions));\n return this.context.tx.sendTx(unsignedTx, txOptions);\n }\n async adjustMargin(param, txOptions) {\n const sign = param.transferIn ? 1 : -1;\n const instrument = this.getInstrumentContract(param.instrumentAddr, txOptions?.signer);\n const unsignedTx = await instrument.populateTransaction.trade((0, utils_1.encodeAdjustParam)({\n expiry: param.expiry,\n net: param.margin.mul(sign),\n deadline: param.deadline,\n referralCode: param.referralCode ?? constants_1.DEFAULT_REFERRAL_CODE,\n }), (0, utils_1.toPopulatedTxOverrides)(txOptions));\n return this.context.tx.sendTx(unsignedTx, txOptions);\n }\n async addLiquidity(param, txOptions) {\n const addParam = {\n expiry: param.expiry,\n tickDeltaLower: param.tickDeltaLower,\n tickDeltaUpper: param.tickDeltaUpper,\n amount: param.margin,\n limitTicks: param.limitTicks,\n deadline: param.deadline,\n referralCode: param.referralCode ?? constants_1.DEFAULT_REFERRAL_CODE,\n };\n let unsignedTx;\n if (typeof param.instrumentAddr !== 'string') {\n const gate = this.context.perp.contracts.gate.connect(txOptions?.signer || this.context.provider);\n const instrumentIdentifier = param.instrumentAddr;\n const instrumentAddress = await this.computeInstrumentAddress(instrumentIdentifier);\n const indexOfInstrument = await gate.indexOf(instrumentAddress, (0, utils_1.toPopulatedTxOverrides)(txOptions));\n if (!ethers_1.BigNumber.from(indexOfInstrument).isZero()) {\n throw new synfError_1.SynfError('Instrument exits: ' + instrumentAddress);\n }\n this.context.registerContractParser(instrumentAddress, new parser_1.InstrumentParser());\n this.context.registerAddress(instrumentAddress, instrumentIdentifier.baseSymbol +\n '-' +\n instrumentIdentifier.quoteSymbol +\n '-' +\n instrumentIdentifier.marketType);\n unsignedTx = await gate.populateTransaction.launch(instrumentIdentifier.marketType, instrumentAddress, await this.computeInitData(instrumentIdentifier), (0, utils_1.encodeAddParam)(addParam), (0, utils_1.toPopulatedTxOverrides)(txOptions));\n return this.context.tx.sendTx(unsignedTx, txOptions);\n }\n else {\n const instrument = this.getInstrumentContract(param.instrumentAddr, txOptions?.signer);\n const unsignedTx = await instrument.populateTransaction.add((0, utils_1.encodeAddParam)(addParam), (0, utils_1.toPopulatedTxOverrides)(txOptions));\n return this.context.tx.sendTx(unsignedTx, txOptions);\n }\n }\n async removeLiquidity(param, txOptions) {\n const instrument = this.getInstrumentContract(param.instrumentAddr, txOptions?.signer);\n const unsignedTx = await instrument.populateTransaction.remove((0, utils_1.encodeRemoveParam)(param), (0, utils_1.toPopulatedTxOverrides)(txOptions));\n return this.context.tx.sendTx(unsignedTx, txOptions);\n }\n async placeLimitOrder(addLimitOrderParam, txOptions) {\n const sign = (0, utils_1.signOfSide)(addLimitOrderParam.side);\n const param = {\n expiry: addLimitOrderParam.expiry,\n size: addLimitOrderParam.baseSize.mul(sign),\n amount: addLimitOrderParam.margin,\n tick: addLimitOrderParam.tick,\n deadline: addLimitOrderParam.deadline,\n };\n const instrument = this.getInstrumentContract(addLimitOrderParam.instrumentAddr, txOptions?.signer);\n const unsignedTx = await instrument.populateTransaction.place((0, utils_1.encodePlaceParam)({\n expiry: param.expiry,\n size: param.size,\n amount: param.amount,\n tick: param.tick,\n deadline: param.deadline,\n referralCode: addLimitOrderParam.referralCode ?? constants_1.DEFAULT_REFERRAL_CODE,\n }), (0, utils_1.toPopulatedTxOverrides)(txOptions));\n return this.context.tx.sendTx(unsignedTx, txOptions);\n }\n async placeMarketOrder(param, txOptions) {\n if (param.side === enum_1.Side.FLAT) {\n throw new simulationError_1.SimulationError('Invalid Price');\n }\n const sign = (0, utils_1.signOfSide)(param.side);\n const tradeParam = {\n expiry: param.expiry,\n size: param.baseSize.mul(sign),\n amount: param.margin,\n tick: param.limitTick,\n deadline: param.deadline,\n referralCode: param.referralCode ?? constants_1.DEFAULT_REFERRAL_CODE,\n };\n const instrument = this.getInstrumentContract(param.instrumentAddr, txOptions?.signer);\n const unsignedTx = await instrument.populateTransaction.trade((0, utils_1.encodePlaceParam)(tradeParam), (0, utils_1.toPopulatedTxOverrides)(txOptions));\n return this.context.tx.sendTx(unsignedTx, txOptions);\n }\n async cancelLimitOrder(param, txOptions) {\n const instrument = this.getInstrumentContract(param.instrumentAddr, txOptions?.signer);\n const unsignedTx = await instrument.populateTransaction.cancel((0, utils_1.encodeCancelParam)({ expiry: param.expiry, ticks: [param.tick], deadline: param.deadline }), (0, utils_1.toPopulatedTxOverrides)(txOptions));\n return this.context.tx.sendTx(unsignedTx, txOptions);\n }\n async batchPlaceLimitOrder(param, txOptions) {\n if (param.side === enum_1.Side.FLAT) {\n throw new simulationError_1.SimulationError('Invalid Price');\n }\n const sign = (0, utils_1.signOfSide)(param.side);\n const instrument = this.getInstrumentContract(param.instrumentAddr, txOptions?.signer);\n const unsignedTx = await instrument.populateTransaction.batchPlace((0, utils_1.encodeBatchPlaceParam)(param.expiry, param.baseSize.mul(sign), param.leverage, param.ticks, param.ratios, param.deadline, param.referralCode ?? constants_1.DEFAULT_REFERRAL_CODE), (0, utils_1.toPopulatedTxOverrides)(txOptions));\n return this.context.tx.sendTx(unsignedTx, txOptions);\n }\n async batchCancelLimitOrder(param, txOptions) {\n const instrument = this.getInstrumentContract(param.instrumentAddr, txOptions?.signer);\n if (param.orderTicks.length <= constants_1.MAX_CANCEL_ORDER_COUNT) {\n const unsignedTx = await instrument.populateTransaction.cancel((0, utils_1.encodeCancelParam)({ expiry: param.expiry, ticks: param.orderTicks, deadline: param.deadline }), (0, utils_1.toPopulatedTxOverrides)(txOptions));\n return this.context.tx.sendTx(unsignedTx, txOptions);\n }\n else {\n const tickGroups = [];\n for (let i = 0; i < param.orderTicks.length; i += constants_1.MAX_CANCEL_ORDER_COUNT) {\n tickGroups.push(param.orderTicks.slice(i, i + constants_1.MAX_CANCEL_ORDER_COUNT));\n }\n const calldatas = tickGroups.map((group) => {\n return instrument.interface.encodeFunctionData('cancel', [\n (0, utils_1.encodeCancelParam)({ expiry: param.expiry, ticks: group, deadline: param.deadline }),\n ]);\n });\n const unsignedTx = await instrument.populateTransaction.multicall(calldatas, (0, utils_1.toPopulatedTxOverrides)(txOptions));\n return this.context.tx.sendTx(unsignedTx, txOptions);\n }\n }\n async placeCrossMarketOrder(param, txOptions) {\n const sign = (0, utils_1.signOfSide)(param.side);\n const instrument = this.getInstrumentContract(param.instrumentAddr, txOptions?.signer);\n const callData = [];\n callData.push(instrument.interface.encodeFunctionData('trade', [\n (0, utils_1.encodeTradeParam)({\n expiry: param.expiry,\n size: param.tradeSize.mul(sign),\n amount: param.tradeMargin,\n limitTick: param.tradeLimitTick,\n deadline: param.deadline,\n referralCode: param.referralCode ?? constants_1.DEFAULT_REFERRAL_CODE,\n }),\n ]));\n callData.push(instrument.interface.encodeFunctionData('place', [\n (0, utils_1.encodePlaceParam)({\n expiry: param.expiry,\n size: param.orderSize.mul(sign),\n amount: param.orderMargin,\n tick: param.orderTick,\n deadline: param.deadline,\n referralCode: param.referralCode ?? constants_1.DEFAULT_REFERRAL_CODE,\n }),\n ]));\n const unsignedTx = await instrument.populateTransaction.multicall(callData, (0, utils_1.toPopulatedTxOverrides)(txOptions));\n return this.context.tx.sendTx(unsignedTx, txOptions);\n }\n async settle(param, txOptions) {\n const instrument = this.getInstrumentContract(param.instrumentAddr, txOptions?.signer);\n const unsignedTx = await instrument.populateTransaction.settle(param.expiry, param.target, (0, utils_1.toPopulatedTxOverrides)(txOptions));\n return this.context.tx.sendTx(unsignedTx, txOptions);\n }\n async multicall(instrumentAddr, callData, txOptions) {\n const instrument = this.getInstrumentContract(instrumentAddr, txOptions?.signer);\n const unsignedTx = await instrument.populateTransaction.multicall(callData, (0, utils_1.toPopulatedTxOverrides)(txOptions));\n return this.context.tx.sendTx(unsignedTx, txOptions);\n }\n}\nexports.InstrumentModule = InstrumentModule;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.InverseCalcModule = void 0;\nconst calc_module_1 = require(\"../calc.module\");\nconst utils_1 = require(\"../../utils\");\nclass InverseCalcModule extends calc_module_1.CalcModule {\n async alignPriceToTick(instrumentAddr, price) {\n const isInverse = await this.context.perp.configuration.isInverse(instrumentAddr);\n const result = await super.alignPriceToTick(instrumentAddr, isInverse ? (0, utils_1.reversePrice)(price) : price);\n return isInverse\n ? {\n ...result,\n price: (0, utils_1.reversePrice)(result.price),\n }\n : result;\n }\n async getWadAtTick(instrumentAddr, tick) {\n const isInverse = await this.context.perp.configuration.isInverse(instrumentAddr);\n const result = await super.getWadAtTick(instrumentAddr, tick);\n return isInverse ? (0, utils_1.reversePrice)(result) : result;\n }\n async getTickAtPWad(instrumentAddr, price) {\n const isInverse = await this.context.perp.configuration.isInverse(instrumentAddr);\n return await super.getTickAtPWad(instrumentAddr, isInverse ? (0, utils_1.reversePrice)(price) : price);\n }\n async getWadAtTicks(instrumentAddr, lowerTick, upperTick) {\n const isInverse = await this.context.perp.configuration.isInverse(instrumentAddr);\n const result = await super.getWadAtTicks(instrumentAddr, lowerTick, upperTick);\n return isInverse\n ? {\n lowerPrice: (0, utils_1.reversePrice)(result.upperPrice),\n upperPrice: (0, utils_1.reversePrice)(result.lowerPrice),\n }\n : result;\n }\n async sqrtX96ToWad(instrumentAddr, sqrtPX96) {\n const isInverse = await this.context.perp.configuration.isInverse(instrumentAddr);\n const result = await super.sqrtX96ToWad(instrumentAddr, sqrtPX96);\n return isInverse ? (0, utils_1.reversePrice)(result) : result;\n }\n}\nexports.InverseCalcModule = InverseCalcModule;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./calc.moudle\"), exports);\n__exportStar(require(\"./instrument.module\"), exports);\n__exportStar(require(\"./observer.module\"), exports);\n__exportStar(require(\"./simulate.module\"), exports);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.InverseInstrumentModule = void 0;\nconst utils_1 = require(\"../../utils\");\nconst instrument_module_1 = require(\"../instrument.module\");\nclass InverseInstrumentModule extends instrument_module_1.InstrumentModule {\n async addLiquidity(param, txOptions) {\n const isInverse = typeof param.instrumentAddr === 'string'\n ? await this.context.perp.configuration.isInverse(param.instrumentAddr)\n : await this.context.perp.configuration.isInverseByIdentifier(param.instrumentAddr);\n return isInverse\n ? await super.addLiquidity({\n ...param,\n tickDeltaLower: param.tickDeltaUpper,\n tickDeltaUpper: param.tickDeltaLower,\n }, txOptions)\n : await super.addLiquidity(param, txOptions);\n }\n async removeLiquidity(param, txOptions) {\n const isInverse = await this.context.perp.configuration.isInverse(param.instrumentAddr);\n return isInverse\n ? await super.removeLiquidity({\n ...param,\n tickLower: param.tickUpper,\n tickUpper: param.tickLower,\n }, txOptions)\n : await super.removeLiquidity(param, txOptions);\n }\n async placeLimitOrder(param, txOptions) {\n const isInverse = await this.context.perp.configuration.isInverse(param.instrumentAddr);\n return isInverse\n ? await super.placeLimitOrder({\n ...param,\n side: (0, utils_1.reverseSide)(param.side),\n }, txOptions)\n : await super.placeLimitOrder(param, txOptions);\n }\n async placeMarketOrder(param, txOptions) {\n const isInverse = await this.context.perp.configuration.isInverse(param.instrumentAddr);\n return isInverse\n ? await super.placeMarketOrder({\n ...param,\n side: (0, utils_1.reverseSide)(param.side),\n }, txOptions)\n : await super.placeMarketOrder(param, txOptions);\n }\n async batchPlaceLimitOrder(param, txOptions) {\n const isInverse = await this.context.perp.configuration.isInverse(param.instrumentAddr);\n return isInverse\n ? await super.batchPlaceLimitOrder({\n ...param,\n side: (0, utils_1.reverseSide)(param.side),\n }, txOptions)\n : await super.batchPlaceLimitOrder(param, txOptions);\n }\n async placeCrossMarketOrder(param, txOptions) {\n const isInverse = await this.context.perp.configuration.isInverse(param.instrumentAddr);\n return isInverse\n ? await super.placeCrossMarketOrder({\n ...param,\n side: (0, utils_1.reverseSide)(param.side),\n }, txOptions)\n : await super.placeCrossMarketOrder(param, txOptions);\n }\n}\nexports.InverseInstrumentModule = InverseInstrumentModule;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.InverseObserverModule = void 0;\nconst utils_1 = require(\"../../utils\");\nconst observer_module_1 = require(\"../observer.module\");\nclass InverseObserverModule extends observer_module_1.ObserverModule {\n async getPortfolio(params, overrides) {\n const result = await super.getPortfolio(params, overrides);\n const portfolios = await Promise.all((Array.isArray(result) ? result : [result]).map((p) => this.context.perp.configuration\n .isInverse(p.instrumentAddr)\n .then((isInverse) => (isInverse ? (0, utils_1.reversePortfolio)(p) : p))));\n return portfolios.length === 1 ? portfolios[0] : portfolios;\n }\n async getAllInstruments(overrides) {\n const instruments = await super.getAllInstruments(overrides);\n return await Promise.all(instruments.map((i) => this.context.perp.configuration\n .isInverse(i.instrumentAddr)\n .then((isInverse) => (isInverse ? (0, utils_1.reverseInstrument)(i) : i))));\n }\n async getInstrument(params, overrides) {\n const instrument = await super.getInstrument(params, overrides);\n if (!Array.isArray(instrument)) {\n const isInverse = await this.context.perp.configuration.isInverse(instrument.instrumentAddr);\n return isInverse ? (0, utils_1.reverseInstrument)(instrument) : instrument;\n }\n else {\n return await Promise.all(instrument.map((i) => this.context.perp.configuration\n .isInverse(i.instrumentAddr)\n .then((isInverse) => (isInverse ? (0, utils_1.reverseInstrument)(i) : i))));\n }\n }\n async getPositionIfSettle(portfolio, amm) {\n const isInverse = await this.context.perp.configuration.isInverse(portfolio.instrumentAddr);\n const position = await super.getPositionIfSettle(isInverse ? (0, utils_1.reversePortfolio)(portfolio) : portfolio, isInverse ? (0, utils_1.reverseAmm)(amm) : amm);\n return isInverse ? (0, utils_1.reversePosition)(position) : position;\n }\n async inquireByBase(instrumentAddr, expiry, side, baseAmount, overrides) {\n const isInverse = await this.context.perp.configuration.isInverse(instrumentAddr);\n return await super.inquireByBase(instrumentAddr, expiry, isInverse ? (0, utils_1.reverseSide)(side) : side, baseAmount, overrides);\n }\n async inquireByQuote(instrumentAddr, expiry, side, quoteAmount, overrides) {\n const isInverse = await this.context.perp.configuration.isInverse(instrumentAddr);\n return await super.inquireByQuote(instrumentAddr, expiry, isInverse ? (0, utils_1.reverseSide)(side) : side, quoteAmount, overrides);\n }\n async getRawSpotPrice(identifier, overrides) {\n const isInverse = await this.context.perp.configuration.isInverseByIdentifier(identifier);\n const result = await super.getRawSpotPrice(identifier, overrides);\n return isInverse ? (0, utils_1.reversePrice)(result) : result;\n }\n}\nexports.InverseObserverModule = InverseObserverModule;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.InverseSimulateModule = void 0;\nconst utils_1 = require(\"../../utils\");\nconst simulate_module_1 = require(\"../simulate.module\");\nfunction reverseSimulateTradeResult(result) {\n return {\n ...result,\n tradePrice: (0, utils_1.reversePrice)(result.tradePrice),\n postPosition: (0, utils_1.reversePosition)(result.postPosition),\n priceImpact: result.priceImpact.mul(-1),\n };\n}\nclass InverseSimulateModule extends simulate_module_1.SimulateModule {\n async simulateCrossMarketOrder(param, overrides) {\n const isInverse = await this.context.perp.configuration.isInverse(param.tradeInfo.instrumentAddr);\n const result = await super.simulateCrossMarketOrder(isInverse\n ? {\n ...param,\n tradeInfo: (0, utils_1.isPosition)(param.tradeInfo) ? (0, utils_1.reversePosition)(param.tradeInfo) : param.tradeInfo,\n priceInfo: (0, utils_1.reversePriceInfo)(param.priceInfo),\n side: (0, utils_1.reverseSide)(param.side),\n instrument: param.instrument && (0, utils_1.reverseInstrument)(param.instrument),\n }\n : param, overrides);\n return isInverse\n ? {\n ...result,\n tradeSimulation: reverseSimulateTradeResult(result.tradeSimulation),\n }\n : result;\n }\n async simulateLimitOrder(param, overrides) {\n const isInverse = await this.context.perp.configuration.isInverse(param.tradeInfo.instrumentAddr);\n return await super.simulateLimitOrder(isInverse\n ? {\n ...param,\n priceInfo: (0, utils_1.reversePriceInfo)(param.priceInfo),\n side: (0, utils_1.reverseSide)(param.side),\n instrument: param.instrument && (0, utils_1.reverseInstrument)(param.instrument),\n }\n : param, overrides);\n }\n async simulateScaledLimitOrder(param, overrides) {\n const isInverse = await this.context.perp.configuration.isInverse(param.tradeInfo.instrumentAddr);\n let result = await super.simulateScaledLimitOrder(isInverse\n ? {\n ...param,\n priceInfo: param.priceInfo.map((p) => (typeof p === 'number' ? p : (0, utils_1.reversePrice)(p))),\n side: (0, utils_1.reverseSide)(param.side),\n instrument: param.instrument && (0, utils_1.reverseInstrument)(param.instrument),\n }\n : param, overrides);\n if (isInverse) {\n result = {\n ...result,\n orders: result.orders.map((o) => {\n return (o && {\n ...o,\n limitPrice: (0, utils_1.reversePrice)(o.limitPrice),\n });\n }),\n };\n }\n return result;\n }\n async simulateMarketOrderByMargin(param, overrides) {\n const isInverse = await this.context.perp.configuration.isInverse(param.tradeInfo.instrumentAddr);\n const result = await super.simulateMarketOrderByMargin(isInverse\n ? {\n ...param,\n tradeInfo: (0, utils_1.isPosition)(param.tradeInfo) ? (0, utils_1.reversePosition)(param.tradeInfo) : param.tradeInfo,\n side: (0, utils_1.reverseSide)(param.side),\n instrument: param.instrument && (0, utils_1.reverseInstrument)(param.instrument),\n }\n : param, overrides);\n return isInverse ? reverseSimulateTradeResult(result) : result;\n }\n async simulateMarketOrderByLeverage(param, overrides) {\n const isInverse = await this.context.perp.configuration.isInverse(param.tradeInfo.instrumentAddr);\n const result = await super.simulateMarketOrderByLeverage(isInverse\n ? {\n ...param,\n tradeInfo: (0, utils_1.isPosition)(param.tradeInfo) ? (0, utils_1.reversePosition)(param.tradeInfo) : param.tradeInfo,\n side: (0, utils_1.reverseSide)(param.side),\n instrument: param.instrument && (0, utils_1.reverseInstrument)(param.instrument),\n }\n : param, overrides);\n return isInverse ? reverseSimulateTradeResult(result) : result;\n }\n async simulateClose(param, overrides) {\n const isInverse = await this.context.perp.configuration.isInverse(param.tradeInfo.instrumentAddr);\n const result = await super.simulateClose(isInverse\n ? {\n ...param,\n tradeInfo: (0, utils_1.isPosition)(param.tradeInfo) ? (0, utils_1.reversePosition)(param.tradeInfo) : param.tradeInfo,\n instrument: param.instrument && (0, utils_1.reverseInstrument)(param.instrument),\n }\n : param, overrides);\n return isInverse ? reverseSimulateTradeResult(result) : result;\n }\n async simulateAdjustMarginByMargin(param, overrides) {\n const isInverse = await this.context.perp.configuration.isInverse(param.tradeInfo.instrumentAddr);\n const result = await super.simulateAdjustMarginByMargin(isInverse\n ? {\n ...param,\n tradeInfo: (0, utils_1.isPosition)(param.tradeInfo) ? (0, utils_1.reversePosition)(param.tradeInfo) : param.tradeInfo,\n instrument: param.instrument && (0, utils_1.reverseInstrument)(param.instrument),\n }\n : param, overrides);\n return isInverse ? { ...result, postPosition: (0, utils_1.reversePosition)(result.postPosition) } : result;\n }\n async simulateAdjustMarginByLeverage(param, overrides) {\n const isInverse = await this.context.perp.configuration.isInverse(param.tradeInfo.instrumentAddr);\n const result = await super.simulateAdjustMarginByLeverage(isInverse\n ? {\n ...param,\n tradeInfo: (0, utils_1.isPosition)(param.tradeInfo) ? (0, utils_1.reversePosition)(param.tradeInfo) : param.tradeInfo,\n instrument: param.instrument && (0, utils_1.reverseInstrument)(param.instrument),\n }\n : param, overrides);\n return isInverse ? { ...result, postPosition: (0, utils_1.reversePosition)(result.postPosition) } : result;\n }\n async simulateAddLiquidity(param, overrides) {\n const isInverse = (0, utils_1.isInstrument)(param.instrument)\n ? await this.context.perp.configuration.isInverse(param.instrument.instrumentAddr)\n : await this.context.perp.configuration.isInverseByIdentifier(param.instrument);\n const result = await super.simulateAddLiquidity(isInverse\n ? {\n ...param,\n instrument: (0, utils_1.isInstrument)(param.instrument)\n ? (0, utils_1.reverseInstrument)(param.instrument)\n : param.instrument,\n }\n : param, overrides);\n return isInverse\n ? {\n ...result,\n upperPrice: (0, utils_1.reversePrice)(result.lowerPrice),\n lowerPrice: (0, utils_1.reversePrice)(result.upperPrice),\n lowerPosition: (0, utils_1.reversePosition)(result.upperPosition),\n lowerLeverage: result.upperLeverage,\n upperPosition: (0, utils_1.reversePosition)(result.lowerPosition),\n upperLeverage: result.lowerLeverage,\n }\n : result;\n }\n async simulateAddLiquidityWithAsymmetricRange(param, overrides) {\n const isInverse = (0, utils_1.isInstrument)(param.instrument)\n ? await this.context.perp.configuration.isInverse(param.instrument.instrumentAddr)\n : await this.context.perp.configuration.isInverseByIdentifier(param.instrument);\n const result = await super.simulateAddLiquidityWithAsymmetricRange(isInverse\n ? {\n ...param,\n alphaWadLower: param.alphaWadUpper,\n alphaWadUpper: param.alphaWadLower,\n instrument: (0, utils_1.isInstrument)(param.instrument)\n ? (0, utils_1.reverseInstrument)(param.instrument)\n : param.instrument,\n }\n : param, overrides);\n return isInverse\n ? {\n ...result,\n tickDeltaLower: result.tickDeltaUpper,\n tickDeltaUpper: result.tickDeltaLower,\n upperPrice: (0, utils_1.reversePrice)(result.lowerPrice),\n lowerPrice: (0, utils_1.reversePrice)(result.upperPrice),\n lowerPosition: (0, utils_1.reversePosition)(result.upperPosition),\n lowerLeverage: result.upperLeverage,\n upperPosition: (0, utils_1.reversePosition)(result.lowerPosition),\n upperLeverage: result.lowerLeverage,\n equivalentAlphaLower: result.equivalentAlphaUpper,\n equivalentAlphaUpper: result.equivalentAlphaLower,\n }\n : result;\n }\n async simulateRemoveLiquidity(param, overrides) {\n const isInverse = await this.context.perp.configuration.isInverse(param.tradeInfo.instrumentAddr);\n const result = await super.simulateRemoveLiquidity(isInverse\n ? {\n ...param,\n tradeInfo: (0, utils_1.isPortfolio)(param.tradeInfo) ? (0, utils_1.reversePortfolio)(param.tradeInfo) : param.tradeInfo,\n tickUpper: param.tickLower,\n tickLower: param.tickUpper,\n instrument: param.instrument && (0, utils_1.reverseInstrument)(param.instrument),\n }\n : param, overrides);\n return isInverse\n ? {\n ...result,\n removedPosition: (0, utils_1.reversePosition)(result.removedPosition),\n postPosition: (0, utils_1.reversePosition)(result.postPosition),\n removedPositionEntryPrice: (0, utils_1.reversePrice)(result.removedPositionEntryPrice),\n }\n : result;\n }\n}\nexports.InverseSimulateModule = InverseSimulateModule;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ObserverModule = void 0;\nconst ethers_1 = require(\"ethers\");\nconst context_1 = require(\"@derivation-tech/context\");\nconst typechain_1 = require(\"../typechain\");\nconst enum_1 = require(\"../enum\");\nconst math_1 = require(\"../math\");\nconst utils_1 = require(\"../utils\");\nconst lowLevel_1 = require(\"../utils/lowLevel\");\nconst parser_1 = require(\"../parser\");\nconst errors_1 = require(\"../errors\");\nconst batchSize = 10;\nclass ObserverModule {\n constructor(context) {\n this.cache = new Map();\n this.context = context;\n }\n async getMiscInfo(instrumentAddress, overrides) {\n const instrumentInterface = typechain_1.Instrument__factory.createInterface();\n let needFundingHour = this.context.chainId !== context_1.CHAIN_ID.BLAST && this.context.chainId !== context_1.CHAIN_ID.LOCAL;\n if (overrides && overrides.blockTag) {\n const blockTag = await overrides.blockTag;\n if (typeof blockTag === 'number' || blockTag.startsWith('0x')) {\n const blockNumber = ethers_1.ethers.BigNumber.from(blockTag).toNumber();\n if (this.context.chainId === context_1.CHAIN_ID.BASE && blockNumber < 21216046) {\n needFundingHour = false;\n }\n }\n }\n const calls = [];\n for (const instrumentAddr of instrumentAddress) {\n calls.push({\n target: instrumentAddr,\n callData: instrumentInterface.encodeFunctionData('placePaused'),\n });\n if (needFundingHour) {\n calls.push({\n target: instrumentAddr,\n callData: instrumentInterface.encodeFunctionData('fundingHour'),\n });\n }\n }\n const rawMiscInfo = await this.context.getMulticall3().callStatic.aggregate(calls, overrides ?? {});\n const miscList = [];\n for (let j = 0; j < rawMiscInfo.returnData.length; j = needFundingHour ? j + 2 : j + 1) {\n const [placePaused] = instrumentInterface.decodeFunctionResult('placePaused', rawMiscInfo.returnData[j]);\n const [fundingHour] = needFundingHour\n ? instrumentInterface.decodeFunctionResult('fundingHour', rawMiscInfo.returnData[j + 1])\n : [24];\n miscList.push({\n placePaused: placePaused,\n fundingHour: fundingHour === 0 ? 24 : fundingHour,\n });\n }\n return miscList;\n }\n async getPortfolio(params, overrides) {\n params = Array.isArray(params) ? params : [params];\n const observerInterface = this.context.perp.contracts.observer.interface;\n let portfolios = [];\n for (let i = 0; i < params.length; i += batchSize) {\n const _params = params.slice(i, i + batchSize);\n const calls = _params.map((p) => {\n return {\n target: this.context.perp.contracts.observer.address,\n callData: observerInterface.encodeFunctionData('getAcc', [\n p.instrumentAddr,\n p.expiry,\n p.traderAddr,\n ]),\n };\n });\n portfolios = portfolios.concat(await (0, utils_1.quickRetry)(() => this.context\n .getMulticall3()\n .callStatic.aggregate(calls, overrides ?? {})\n .then(({ returnData }) => returnData.map((d, i) => {\n const p = _params[i];\n return (0, utils_1.toPortfolio)(p.instrumentAddr, p.expiry, p.traderAddr, observerInterface.decodeFunctionResult('getAcc', d));\n }))));\n }\n return portfolios.length === 1 ? portfolios[0] : portfolios;\n }\n async getAllInstruments(overrides) {\n const instrumentLists = await this.context.perp.contracts.gate.getAllInstruments(overrides ?? {});\n const totalPage = Math.ceil(instrumentLists.length / batchSize);\n const rawList = [];\n const miscInfoList = [];\n for (let i = 0; i < totalPage; i++) {\n const queryList = instrumentLists.slice(i * batchSize, (i + 1) * batchSize >= instrumentLists.length ? instrumentLists.length : (i + 1) * batchSize);\n rawList.push(await (0, utils_1.quickRetry)(() => this.context.perp.contracts.observer.getInstrumentByAddressList(queryList, overrides ?? {})));\n miscInfoList.push(await (0, utils_1.quickRetry)(async () => this.getMiscInfo(queryList, overrides ?? {})));\n }\n let assembledInstrumentDatas = [];\n for (let i = 0; i < rawList.length; i++) {\n const miscInfo = miscInfoList[i];\n const [rawInstrument, rawBlockInfo] = (0, utils_1.trimObj)(rawList[i]);\n assembledInstrumentDatas = assembledInstrumentDatas.concat(await this.parseInstrumentData(rawInstrument, miscInfo, rawBlockInfo, overrides ?? {}));\n }\n return assembledInstrumentDatas;\n }\n async getInstrument(params, overrides) {\n const _params = Array.isArray(params) ? params : [params];\n const formattedParams = [];\n for (let i = 0; i < _params.length; i++) {\n const p = _params[i];\n if (typeof p === 'string') {\n if (ethers_1.ethers.utils.isAddress(p)) {\n formattedParams.push({\n instrument: p,\n expiries: [],\n });\n }\n else {\n formattedParams.push({\n instrument: await this._getInstrumentBySymbol(p, overrides ?? {}),\n expiries: [],\n });\n }\n }\n else {\n if (ethers_1.ethers.utils.isAddress(p.instrument)) {\n formattedParams.push(p);\n }\n else {\n formattedParams.push({\n instrument: await this._getInstrumentBySymbol(p.instrument, overrides ?? {}),\n expiries: p.expiries,\n });\n }\n }\n }\n const [rawList, rawBlockInfo] = (0, utils_1.trimObj)(await this.context.perp.contracts.observer.getInstrumentBatch(formattedParams, overrides ?? {}));\n const miscInfoList = await this.getMiscInfo(formattedParams.map((p) => p.instrument), overrides ?? {});\n const instruments = await this.parseInstrumentData(rawList, miscInfoList, rawBlockInfo, overrides ?? {});\n return Array.isArray(params) ? instruments : instruments?.[0];\n }\n async _getInstrumentBySymbol(symbol, overrides) {\n const cachedInstrumentAddress = this.cache.get(symbol);\n if (cachedInstrumentAddress) {\n return cachedInstrumentAddress;\n }\n await this.getAllInstruments(overrides ?? {});\n const updatedInstrumentAddress = this.cache.get(symbol);\n if (!updatedInstrumentAddress) {\n throw new errors_1.SynfError('unknown symbol: ' + symbol);\n }\n return updatedInstrumentAddress;\n }\n async parseInstrumentData(rawList, miscInfoList, blockInfo, overrides) {\n const assembledInstrumentDatas = [];\n for (let i = 0; i < rawList.length; i++) {\n const rawInstrument = rawList[i];\n const miscInfo = miscInfoList[i];\n const [baseSymbol, quoteSymbol, marketType] = rawInstrument.symbol.split('-');\n const quoteTokenInfo = await this.getQuoteTokenInfo(quoteSymbol, rawInstrument.instrumentAddr, overrides ?? {});\n let baseInfo = { symbol: baseSymbol, address: ethers_1.ethers.constants.AddressZero, decimals: 0 };\n if (!(0, utils_1.isCexMarket)(marketType)) {\n const onCtxBaseInfo = await this.context.getTokenInfo(baseSymbol);\n if (onCtxBaseInfo) {\n baseInfo = onCtxBaseInfo;\n }\n }\n const instrumentInfo = {\n chainId: this.context.chainId,\n addr: rawInstrument.instrumentAddr,\n symbol: rawInstrument.symbol,\n base: baseInfo,\n quote: quoteTokenInfo,\n };\n const marketInfo = {\n addr: rawInstrument.market,\n type: marketType,\n beacon: this.context.perp.configuration.config.contractAddress.market[marketType].beacon,\n };\n const marketConfig = this.context.perp.configuration.config.marketConfig[marketType];\n const feeder = (0, utils_1.isCexMarket)(marketType)\n ? rawInstrument.priceFeeder\n : rawInstrument.dexV2Feeder;\n const market = { info: marketInfo, config: marketConfig, feeder: feeder };\n const instrumentSetting = {\n initialMarginRatio: rawInstrument.initialMarginRatio,\n maintenanceMarginRatio: rawInstrument.maintenanceMarginRatio,\n quoteParam: rawInstrument.param,\n };\n const amms = new Map();\n for (let i = 0; i < rawInstrument.amms.length; i++) {\n const rawAmm = rawInstrument.amms[i];\n if (rawAmm.expiry === 0) {\n continue;\n }\n const amm = utils_1.factory.createAmm({\n ...rawAmm,\n instrumentAddr: rawInstrument.instrumentAddr,\n markPrice: rawInstrument.markPrices[i],\n blockInfo,\n });\n amms.set(rawAmm.expiry, amm);\n }\n const rawAssembledInstrumentData = {\n instrumentAddr: rawInstrument.instrumentAddr,\n symbol: rawInstrument.symbol,\n market,\n condition: rawInstrument.condition,\n setting: instrumentSetting,\n spotPrice: rawInstrument.spotPrice,\n amms,\n base: baseInfo,\n quote: quoteTokenInfo,\n blockInfo,\n ...miscInfo,\n };\n const assembledInstrumentData = utils_1.factory.createInstrument(rawAssembledInstrumentData);\n this.cache.set(instrumentInfo.symbol, assembledInstrumentData.instrumentAddr);\n this.context.registerAddress(instrumentInfo.addr, instrumentInfo.symbol);\n this.context.registerContractParser(instrumentInfo.addr, new parser_1.InstrumentParser());\n assembledInstrumentDatas.push(assembledInstrumentData);\n }\n return assembledInstrumentDatas;\n }\n async getQuoteTokenInfo(quoteSymbol, instrumentAddr, overrides) {\n return ((await this.context.getTokenInfo(quoteSymbol)) ??\n (await this.context.getTokenInfo((await this.context.perp.contracts.observer.getSetting(instrumentAddr, overrides ?? {})).quote)));\n }\n async inspectDexV2MarketBenchmarkPrice(instrumentIdentifier, expiry, overrides) {\n const { baseSymbol, quoteSymbol } = (0, utils_1.getTokenSymbol)(instrumentIdentifier.baseSymbol, instrumentIdentifier.quoteSymbol);\n const baseParam = this.context.perp.configuration.config.quotesParam[baseSymbol];\n const quoteParam = this.context.perp.configuration.config.quotesParam[quoteSymbol];\n const baseStable = baseParam && baseParam.qtype === enum_1.QuoteType.STABLE;\n const quoteStable = quoteParam && quoteParam.qtype === enum_1.QuoteType.STABLE;\n const feederType = ((baseStable ? 2 : 0) + (quoteStable ? 1 : 0));\n const rawSpotPrice = await this.getDexV2RawSpotPrice(instrumentIdentifier, overrides ?? {});\n return (0, lowLevel_1.calcBenchmarkPrice)(expiry, rawSpotPrice, feederType, this.context.perp.configuration.config.marketConfig.DEXV2.dailyInterestRate);\n }\n async inspectCexMarketBenchmarkPrice(instrumentIdentifier, expiry) {\n const instrumentAddress = await this.context.perp.instrument.computeInstrumentAddress(instrumentIdentifier);\n const market = this.context.perp.contracts.marketContracts[instrumentIdentifier.marketType]\n ?.market;\n let benchmarkPrice;\n try {\n benchmarkPrice = await market.getBenchmarkPrice(instrumentAddress, expiry);\n }\n catch (e) {\n console.error('fetch chainlink market price error', e);\n benchmarkPrice = math_1.ZERO;\n }\n return benchmarkPrice;\n }\n async getRawSpotPrice(identifier, overrides) {\n if (identifier.marketType === enum_1.MarketType.DEXV2) {\n return await this.getDexV2RawSpotPrice(identifier, overrides ?? {});\n }\n else if ((0, utils_1.isCexMarket)(identifier.marketType)) {\n return await this.getCexRawSpotPrice(identifier, overrides ?? {});\n }\n else {\n throw new errors_1.SynfError('Unsupported market type: ' + identifier.marketType);\n }\n }\n async getNextInitializedTickOutside(instrumentAddr, expiry, tick, right, overrides) {\n return await this.context.perp.contracts.observer.getNextInitializedTickOutside(instrumentAddr, expiry, tick, right, overrides ?? {});\n }\n async getSizeToTargetTick(instrumentAddr, expiry, targetTick, overrides) {\n const observer = this.context.perp.contracts.observer;\n const amm = await observer.getAmm(instrumentAddr, expiry, overrides ?? {});\n const targetPX96 = math_1.TickMath.getSqrtRatioAtTick(targetTick);\n if (targetPX96.eq(amm.sqrtPX96)) {\n return math_1.ZERO;\n }\n const long = targetTick > amm.tick;\n let size = math_1.ZERO;\n const currTickLeft = (await observer.getPearls(instrumentAddr, expiry, [amm.tick], overrides ?? {}))[0].left;\n if (long && currTickLeft.isNegative()) {\n size = size.sub(currTickLeft);\n }\n let sqrtPX96 = amm.sqrtPX96;\n let liquidity = amm.liquidity;\n let nextTick = await this.getNextInitializedTickOutside(instrumentAddr, expiry, amm.tick + (long ? 0 : 1), long, overrides ?? {});\n while (true) {\n const nextPX96 = math_1.TickMath.getSqrtRatioAtTick(nextTick);\n if ((long && nextTick > targetTick) || (!long && nextTick < targetTick)) {\n const delta = math_1.SqrtPriceMath.getDeltaBaseAutoRoundUp(sqrtPX96, targetPX96, liquidity);\n size = long ? size.add(delta).add(1) : size.sub(delta).sub(1);\n break;\n }\n const nextPearl = (await observer.getPearls(instrumentAddr, expiry, [nextTick], overrides ?? {}))[0];\n const delta = math_1.SqrtPriceMath.getDeltaBaseAutoRoundUp(sqrtPX96, nextPX96, liquidity);\n size = long ? size.add(delta) : size.sub(delta);\n if (nextTick === targetTick) {\n break;\n }\n if ((long && nextPearl.left.isNegative()) || (!long && nextPearl.left.gt(0))) {\n size = size.sub(nextPearl.left);\n }\n sqrtPX96 = nextPX96;\n if (nextPearl.liquidityGross.gt(math_1.ZERO)) {\n liquidity = liquidity.add(long ? nextPearl.liquidityNet : nextPearl.liquidityNet.mul(-1));\n }\n nextTick = await this.getNextInitializedTickOutside(instrumentAddr, expiry, nextTick, long, overrides ?? {});\n }\n return size;\n }\n async getFundFlows(quoteAddrs, trader, overrides) {\n const gateInterface = this.context.perp.contracts.gate.interface;\n const observerInterface = this.context.perp.contracts.observer.interface;\n const calls = [];\n calls.push(...quoteAddrs.map((quote) => {\n return {\n target: this.context.perp.contracts.gate.address,\n callData: gateInterface.encodeFunctionData('fundFlowOf', [quote, trader]),\n };\n }));\n calls.push({\n target: this.context.perp.contracts.observer.address,\n callData: observerInterface.encodeFunctionData('getVaultBalances', [trader, quoteAddrs]),\n });\n const rawRet = (await this.context.getMulticall3().callStatic.aggregate(calls, overrides ?? {})).returnData;\n const fundFlows = rawRet.slice(0, quoteAddrs.length).map((ret) => {\n return (0, utils_1.trimObj)(gateInterface.decodeFunctionResult('fundFlowOf', ret)[0]);\n });\n const blockInfo = (0, utils_1.trimObj)(observerInterface.decodeFunctionResult('getVaultBalances', rawRet[quoteAddrs.length])[1]);\n return { fundFlows, blockInfo: blockInfo };\n }\n async getUserPendings(quotes, trader, overrides) {\n const gateInterface = this.context.perp.contracts.gate.interface;\n const observerInterface = this.context.perp.contracts.observer.interface;\n const calls = [];\n calls.push(...quotes.map((quote) => {\n return {\n target: this.context.perp.contracts.gate.address,\n callData: gateInterface.encodeFunctionData('fundFlowOf', [quote, trader]),\n };\n }));\n calls.push(...quotes.map((quote) => {\n return {\n target: this.context.perp.contracts.gate.address,\n callData: gateInterface.encodeFunctionData('thresholdOf', [quote]),\n };\n }));\n calls.push(...quotes.map((quote) => {\n return {\n target: this.context.perp.contracts.gate.address,\n callData: gateInterface.encodeFunctionData('reserveOf', [quote, trader]),\n };\n }));\n calls.push({\n target: this.context.perp.contracts.observer.address,\n callData: observerInterface.encodeFunctionData('getPendings', [quotes, trader]),\n });\n const rawRet = (await this.context.getMulticall3().callStatic.aggregate(calls, overrides ?? {})).returnData;\n const fundFlows = rawRet\n .slice(0, quotes.length)\n .map((ret) => gateInterface.decodeFunctionResult('fundFlowOf', ret)[0]);\n const thresholds = rawRet\n .slice(quotes.length, quotes.length * 2)\n .map((ret) => gateInterface.decodeFunctionResult('thresholdOf', ret)[0]);\n const reserves = rawRet\n .slice(quotes.length * 2, quotes.length * 3)\n .map((ret) => gateInterface.decodeFunctionResult('reserveOf', ret)[0]);\n const decoded = observerInterface.decodeFunctionResult('getPendings', rawRet[quotes.length * 3]);\n const pendings = decoded[0];\n const blockInfo = (0, utils_1.trimObj)(decoded[1]);\n return {\n pendings: pendings.map((pending, index) => {\n return {\n maxWithdrawable: (0, math_1.calcMaxWithdrawable)(thresholds[index], pending, fundFlows[index], reserves[index]),\n pending,\n };\n }),\n blockInfo,\n };\n }\n async inquireByBase(instrumentAddr, expiry, side, baseAmount, overrides) {\n const instrument = typechain_1.Instrument__factory.connect(instrumentAddr, this.context.provider);\n const sign = (0, utils_1.signOfSide)(side);\n const size = baseAmount.mul(sign);\n const quotation = await instrument.inquire(expiry, size, overrides ?? {});\n const entryNotional = quotation.entryNotional;\n return {\n quoteAmount: entryNotional,\n quotation: quotation,\n };\n }\n async inquireByQuote(instrumentAddr, expiry, side, quoteAmount, overrides) {\n const long = side === enum_1.Side.LONG;\n const { size, quotation } = await this.context.perp.contracts.observer.inquireByNotional(instrumentAddr, expiry, quoteAmount, long, overrides ?? {});\n return {\n baseAmount: size.abs(),\n quotation: quotation,\n };\n }\n async getPositionIfSettle(portfolio, amm, overrides) {\n let finalPic = {\n balance: math_1.ZERO,\n size: math_1.ZERO,\n entryNotional: math_1.ZERO,\n entrySocialLossIndex: math_1.ZERO,\n entryFundingIndex: math_1.ZERO,\n };\n const instrumentAddr = portfolio.instrumentAddr;\n const expiry = amm.expiry;\n const ranges = Array.from(portfolio.ranges.values());\n const orders = Array.from(portfolio.orders.values());\n for (const range of ranges) {\n const position = (0, utils_1.rangeToPosition)(range, amm);\n finalPic = (0, lowLevel_1.combine)(amm, finalPic, position).position;\n }\n const ticks = orders.map((o) => o.tick);\n const nonces = orders.map((o) => o.nonce);\n const pearls = await this.context.perp.contracts.observer.getPearls(instrumentAddr, expiry, ticks, overrides ?? {});\n const records = await this.context.perp.contracts.observer.getRecords(instrumentAddr, expiry, ticks, nonces, overrides ?? {});\n for (let i = 0; i < orders.length; i++) {\n const order = orders[i];\n const pearl = pearls[i];\n const record = records[i];\n let position;\n if (pearl.nonce === order.nonce) {\n position = (0, lowLevel_1.cancelOrderToPosition)(pearl.left, pearl.nonce, pearl.taken, pearl.fee, pearl.entrySocialLossIndex, pearl.entryFundingIndex, order, order.tick, order.nonce, record);\n }\n else {\n position = (0, lowLevel_1.fillOrderToPosition)(pearl.nonce, pearl.taken, pearl.fee, pearl.entrySocialLossIndex, pearl.entryFundingIndex, order, order.tick, order.nonce, order.size, record);\n }\n finalPic = (0, lowLevel_1.combine)(amm, finalPic, position).position;\n }\n finalPic = (0, lowLevel_1.combine)(amm, finalPic, portfolio.position).position;\n return utils_1.factory.createPosition({\n ...finalPic,\n instrumentAddr,\n expiry,\n traderAddr: portfolio.traderAddr,\n });\n }\n async getDexV2RawSpotPrice(identifier, overrides) {\n const { baseTokenInfo, quoteTokenInfo } = await (0, utils_1.getTokenInfo)(identifier, this.context);\n const baseScaler = ethers_1.BigNumber.from(10).pow(18 - baseTokenInfo.decimals);\n const quoteScaler = ethers_1.BigNumber.from(10).pow(18 - quoteTokenInfo.decimals);\n const isToken0Quote = ethers_1.BigNumber.from(baseTokenInfo.address).gt(ethers_1.BigNumber.from(quoteTokenInfo.address));\n const dexV2PairInfo = await this.context.perp.contracts.observer.inspectMaxReserveDexV2Pair(baseTokenInfo.address, quoteTokenInfo.address, overrides ?? {});\n if (dexV2PairInfo.maxReservePair === context_1.ZERO_ADDRESS ||\n dexV2PairInfo.reserve0.isZero() ||\n dexV2PairInfo.reserve1.isZero()) {\n return math_1.ZERO;\n }\n return isToken0Quote\n ? (0, math_1.wdiv)(dexV2PairInfo.reserve0.mul(quoteScaler), dexV2PairInfo.reserve1.mul(baseScaler))\n : (0, math_1.wdiv)(dexV2PairInfo.reserve1.mul(quoteScaler), dexV2PairInfo.reserve0.mul(baseScaler));\n }\n async getCexRawSpotPrice(instrumentIdentifier, overrides) {\n const instrumentAddress = await this.context.perp.instrument.computeInstrumentAddress(instrumentIdentifier);\n const market = this.context.perp.contracts.marketContracts[instrumentIdentifier.marketType]\n ?.market;\n let rawSpotPrice;\n try {\n rawSpotPrice = await market.getRawPrice(instrumentAddress, overrides ?? {});\n }\n catch (e) {\n console.error('fetch chainlink spot price error', e);\n rawSpotPrice = math_1.ZERO;\n }\n return rawSpotPrice;\n }\n async getGateBalance(target, quoteAddrs, overrides) {\n const resp = await this.context.perp.contracts.observer.getVaultBalances(target, quoteAddrs, overrides ?? {});\n const balance = [];\n for (let i = 0; i < quoteAddrs.length; i++) {\n balance.push(resp[0][i]);\n }\n return balance;\n }\n async getGateBalances(target, overrides) {\n const quotes = await Promise.all(Object.keys(this.context.perp.configuration.config.quotesParam).map((quote) => this.context.getTokenInfo(quote)));\n const gateBalances = await this.getGateBalance(target, quotes.map((quote) => quote.address), overrides);\n const results = [];\n for (let i = 0; i < quotes.length; i++) {\n if (gateBalances[i].eq(0)) {\n continue;\n }\n results.push({\n ...quotes[i],\n balance: gateBalances[i],\n });\n }\n return results;\n }\n async getLiquidityDetails(instrumentAddr, expiry, tickDelta, overrides) {\n const liquidityDetails = await this.context.perp.contracts.observer.liquidityDetails(instrumentAddr, expiry, tickDelta, overrides ?? {});\n const tick2Pearl = new Map();\n for (let i = 0; i < liquidityDetails.tids.length; i++) {\n tick2Pearl.set(liquidityDetails.tids[i], liquidityDetails.pearls[i]);\n }\n return {\n ...(0, utils_1.trimObj)(liquidityDetails),\n tick2Pearl,\n };\n }\n}\nexports.ObserverModule = ObserverModule;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SimulateModule = void 0;\nconst ethers_1 = require(\"ethers\");\nconst math_1 = require(\"../math\");\nconst utils_1 = require(\"../utils\");\nconst lowLevel_1 = require(\"../utils/lowLevel\");\nconst constants_1 = require(\"../constants\");\nconst enum_1 = require(\"../enum\");\nconst synfError_1 = require(\"../errors/synfError\");\nconst simulationError_1 = require(\"../errors/simulationError\");\nconst utils_2 = require(\"ethers/lib/utils\");\nclass SimulateModule {\n constructor(context) {\n this.context = context;\n }\n get observer() {\n return this.context.perp._observer;\n }\n async getPosition(tradeInfo, overrides) {\n if ((0, utils_1.isPosition)(tradeInfo)) {\n return tradeInfo;\n }\n const portfolio = await this.observer.getPortfolio(tradeInfo, overrides ?? {});\n return portfolio.position;\n }\n async getPortfolio(traderInfo, overrides) {\n if ((0, utils_1.isPortfolio)(traderInfo)) {\n return traderInfo;\n }\n else {\n return await this.observer.getPortfolio(traderInfo, overrides ?? {});\n }\n }\n getPriceInfo(priceInfo) {\n let targetTick;\n let targetPrice;\n if (typeof priceInfo === 'number') {\n targetTick = priceInfo;\n targetPrice = math_1.TickMath.getWadAtTick(targetTick);\n }\n else {\n const result = (0, math_1.alignPriceToTick)(priceInfo);\n targetTick = result.tick;\n targetPrice = result.price;\n }\n return { targetTick, targetPrice };\n }\n async mustGetInstrumentAndAmm(anyInfo, instrument, overrides) {\n const result = await this.getInstrumentAndAmm(anyInfo, instrument, overrides ?? {});\n if (result === undefined || result.amm === undefined) {\n throw new synfError_1.SynfError('Instrument or amm not found: ' + `instrument: ${anyInfo.instrumentAddr}, expiry: ${anyInfo.expiry}`);\n }\n return result;\n }\n async getInstrumentAndAmm(anyInfo, instrument, overrides) {\n if (instrument) {\n return { instrument, amm: instrument.amms.get(anyInfo.expiry) };\n }\n instrument = await this.observer.getInstrument({\n instrument: anyInfo.instrumentAddr,\n expiries: [anyInfo.expiry],\n }, overrides ?? {});\n if (instrument === undefined) {\n return undefined;\n }\n return { instrument, amm: instrument.amms.get(anyInfo.expiry) };\n }\n async inquireByBaseOrQuote(params, markPrice, overrides, expectQuotation = false) {\n let baseSize;\n let quoteSize;\n let quotation = null;\n if ((0, utils_1.isByBase)(params.size)) {\n const { quoteAmount, quotation: _quotation } = await this.observer\n .inquireByBase(params.tradeInfo.instrumentAddr, params.tradeInfo.expiry, params.side, params.size.base, overrides ?? {})\n .catch((err) => {\n if (expectQuotation) {\n throw err;\n }\n return {\n quoteAmount: (0, math_1.wmul)(params.size.base, markPrice),\n quotation: null,\n };\n });\n baseSize = params.size.base;\n quoteSize = quoteAmount;\n quotation = _quotation;\n }\n else {\n const { baseAmount, quotation: _quotation } = await this.observer\n .inquireByQuote(params.tradeInfo.instrumentAddr, params.tradeInfo.expiry, params.side, params.size.quote, overrides ?? {})\n .catch((err) => {\n if (expectQuotation) {\n throw err;\n }\n return {\n baseAmount: (0, math_1.wdiv)(params.size.quote, markPrice),\n quotation: null,\n };\n });\n baseSize = baseAmount;\n quoteSize = params.size.quote;\n quotation = _quotation;\n }\n return { baseSize, quoteSize, quotation };\n }\n async simulateCrossMarketOrder(params, overrides) {\n const { instrument, amm } = await this.mustGetInstrumentAndAmm(params.tradeInfo, params.instrument, overrides ?? {});\n const { baseSize, quoteSize } = await this.inquireByBaseOrQuote(params, amm.markPrice, overrides ?? {});\n const sign = (0, utils_1.signOfSide)(params.side);\n const long = sign > 0;\n const { targetTick, targetPrice } = this.getPriceInfo(params.priceInfo);\n const currentTick = amm.tick;\n if ((long && targetTick <= currentTick) || (!long && targetTick >= currentTick)) {\n throw new simulationError_1.SimulationError('Please place normal order');\n }\n let swapToTick = long ? targetTick + 1 : targetTick - 1;\n let { size: swapSize, quotation } = await this.context.perp.contracts.observer.inquireByTick(instrument.instrumentAddr, amm.expiry, swapToTick, overrides ?? {});\n if ((long && quotation.postTick <= targetTick) || (!long && quotation.postTick >= targetTick)) {\n swapToTick = long ? swapToTick + 1 : swapToTick - 1;\n const retry = await this.context.perp.contracts.observer.inquireByTick(instrument.instrumentAddr, amm.expiry, swapToTick, overrides ?? {});\n swapSize = retry.size;\n quotation = retry.quotation;\n }\n if ((long && swapSize.lt(0)) || (!long && swapSize.gt(0))) {\n throw new simulationError_1.SimulationError('Wrong Side');\n }\n const tradeSimulation = await this._simulateMarketOrderByLeverage({\n tradeInfo: params.tradeInfo,\n side: params.side,\n size: { base: swapSize.abs() },\n slippage: params.slippage,\n strictMode: params.strictMode,\n instrument: instrument,\n leverage: params.leverage,\n }, overrides ?? {});\n const position = await this.getPosition(params.tradeInfo, overrides ?? {});\n if (position.size.isZero() && quotation.entryNotional.lt(instrument.minTradeValue)) {\n throw new simulationError_1.SimulationError('Size to tick is trivial');\n }\n const orderBaseSize = baseSize.sub(swapSize.abs());\n const orderQuoteSize = quoteSize.sub(tradeSimulation.size.quote);\n const orderSimulation = {\n ...this._simulateOrder(instrument, amm, targetPrice, orderBaseSize, params.leverage),\n tick: targetTick,\n size: { base: orderBaseSize, quote: orderQuoteSize },\n };\n const minOrderValue = instrument.minOrderValue;\n const targetTickPrice = math_1.TickMath.getWadAtTick(targetTick);\n const minOrderSize = (0, math_1.wdivUp)(minOrderValue, targetTickPrice);\n if (swapSize.abs().add(minOrderSize).gt(baseSize)) {\n return {\n canPlaceOrder: false,\n minOrderSize,\n tradeSimulation,\n orderSimulation,\n };\n }\n else {\n return {\n canPlaceOrder: true,\n minOrderSize,\n tradeSimulation,\n orderSimulation,\n };\n }\n }\n async simulateLimitOrder(params, overrides) {\n const { instrument, amm } = await this.mustGetInstrumentAndAmm(params.tradeInfo, params.instrument, overrides ?? {});\n const { targetTick, targetPrice } = this.getPriceInfo(params.priceInfo);\n const currentTick = amm.tick;\n if (currentTick === targetTick) {\n throw new simulationError_1.SimulationError('Invalid price');\n }\n const isLong = targetTick < currentTick;\n if ((params.side === enum_1.Side.LONG && !isLong) || (params.side === enum_1.Side.SHORT && isLong)) {\n throw new simulationError_1.SimulationError('Invalid price');\n }\n const maxLeverage = (0, math_1.getMaxLeverage)(instrument.setting.initialMarginRatio);\n if (params.leverage.gt(ethers_1.ethers.utils.parseEther(maxLeverage + ''))) {\n throw new simulationError_1.SimulationError('Insufficient margin to open position');\n }\n if (!(0, lowLevel_1.withinOrderLimit)(targetPrice, amm.markPrice, instrument.setting.initialMarginRatio)) {\n throw new simulationError_1.SimulationError('Limit order price is too far away from mark price');\n }\n if (!(0, lowLevel_1.withinDeviationLimit)(amm.fairPrice, amm.markPrice, instrument.setting.initialMarginRatio)) {\n throw new simulationError_1.SimulationError('Fair price is too far away from mark price');\n }\n const { baseSize, quoteSize } = await this.inquireByBaseOrQuote(params, amm.markPrice, overrides ?? {});\n const res = this._simulateOrder(instrument, amm, targetPrice, baseSize, params.leverage);\n return {\n ...res,\n tick: targetTick,\n size: {\n base: baseSize,\n quote: quoteSize,\n },\n };\n }\n async simulateBatchPlace(params, overrides) {\n const { instrument, amm } = await this.mustGetInstrumentAndAmm(params.tradeInfo, params.instrument, overrides ?? {});\n if (params.targetTicks.length < constants_1.MIN_BATCH_ORDER_COUNT || params.targetTicks.length > constants_1.MAX_BATCH_ORDER_COUNT) {\n throw new simulationError_1.SimulationError(`Order count should be between ${constants_1.MIN_BATCH_ORDER_COUNT} and ${constants_1.MAX_BATCH_ORDER_COUNT}`);\n }\n if (params.targetTicks.length !== params.ratios.length) {\n throw new simulationError_1.SimulationError('Ticks and ratios length not equal');\n }\n if (params.ratios.reduce((acc, ratio) => acc + ratio, 0) !== constants_1.RATIO_BASE) {\n throw new simulationError_1.SimulationError('Ratios sum not equal to RATIO_BASE: 10000');\n }\n if (new Set(params.targetTicks).size !== params.targetTicks.length) {\n throw new simulationError_1.SimulationError('Duplicated ticks');\n }\n if (params.targetTicks.find((tick) => tick % constants_1.PEARL_SPACING !== 0)) {\n throw new simulationError_1.SimulationError('Unaligned ticks');\n }\n const orders = [];\n for (let index = 0; index < params.targetTicks.length; index++) {\n const { targetTick, targetPrice } = this.getPriceInfo(params.targetTicks[index]);\n try {\n const baseSize = (0, math_1.wmul)(params.baseSize, (0, math_1.r2w)(params.ratios[index]));\n const { quoteAmount: quoteSize } = await this.observer.inquireByBase(params.tradeInfo.instrumentAddr, params.tradeInfo.expiry, params.side, baseSize, overrides ?? {});\n const res = this._simulateOrder(instrument, amm, targetPrice, baseSize, params.leverage);\n orders.push({\n ...res,\n tick: targetTick,\n size: {\n base: baseSize,\n quote: quoteSize,\n },\n });\n }\n catch {\n orders.push(null);\n }\n }\n return orders;\n }\n async simulateScaledLimitOrder(params, overrides) {\n if (params.priceInfo.length < constants_1.MIN_BATCH_ORDER_COUNT || params.priceInfo.length > constants_1.MAX_BATCH_ORDER_COUNT) {\n throw new simulationError_1.SimulationError(`Order count should be between ${constants_1.MIN_BATCH_ORDER_COUNT} and ${constants_1.MAX_BATCH_ORDER_COUNT}`);\n }\n const { instrument, amm } = await this.mustGetInstrumentAndAmm(params.tradeInfo, params.instrument, overrides ?? {});\n const { baseSize, quoteSize } = await this.inquireByBaseOrQuote(params, amm.markPrice, overrides ?? {});\n const targetTicks = params.priceInfo.map((p) => (typeof p === 'number' ? p : math_1.TickMath.getTickAtPWad(p)));\n let ratios = (0, lowLevel_1.getBatchOrderRatios)(params.sizeDistribution, params.priceInfo.length);\n const minOrderValue = instrument.minOrderValue;\n const minSizes = targetTicks.map((tick) => (0, math_1.wdivUp)(minOrderValue, math_1.TickMath.getWadAtTick(tick)));\n if (params.sizeDistribution === enum_1.BatchOrderSizeDistribution.RANDOM) {\n let needNewRatios = false;\n for (let i = 0; i < minSizes.length; i++) {\n if (baseSize.mul(ratios[i]).div(constants_1.RATIO_BASE).lt(minSizes[i])) {\n needNewRatios = true;\n break;\n }\n }\n if (needNewRatios && minSizes.reduce((acc, minSize) => acc.add(minSize), math_1.ZERO).lt(baseSize)) {\n ratios = (0, lowLevel_1.getBatchOrderRatios)(enum_1.BatchOrderSizeDistribution.FLAT, params.priceInfo.length);\n }\n }\n const sizes = ratios.map((ratio) => baseSize.mul(ratio).div(constants_1.RATIO_BASE));\n const bnMax = (a, b) => (a.gt(b) ? a : b);\n const minSizeToSizeRatio = minSizes\n .map((minSize, i) => bnMax((0, math_1.wdivUp)(minSize, sizes[i]), math_1.ZERO))\n .reduce((acc, ratio) => bnMax(acc, ratio), math_1.ZERO);\n const totalMinSize = (0, math_1.wmulUp)(baseSize, minSizeToSizeRatio);\n const res = await this.simulateBatchPlace({\n tradeInfo: params.tradeInfo,\n targetTicks,\n ratios,\n baseSize,\n side: params.side,\n leverage: params.leverage,\n instrument,\n }, overrides ?? {});\n return {\n orders: targetTicks.map((tick, index) => {\n return (res[index] && {\n ...res[index],\n ratio: ratios[index],\n minOrderSize: minSizes[index],\n });\n }),\n totalMinSize,\n size: {\n base: baseSize,\n quote: quoteSize,\n },\n };\n }\n _simulateOrder(instrument, amm, targetPrice, baseSize, leverage) {\n const markPrice = amm.markPrice;\n const tradeValue = (0, math_1.wmulUp)(targetPrice, baseSize);\n const bnMax = (a, b) => (a.gt(b) ? a : b);\n let margin = (0, math_1.wdivUp)((0, math_1.wmulUp)(bnMax(targetPrice, markPrice), baseSize), leverage);\n const minMargin = (0, math_1.wmulUp)((0, math_1.r2w)(instrument.setting.initialMarginRatio), (0, math_1.wmulUp)((0, math_1.max)(markPrice\n .mul(constants_1.ONE_RATIO + 50)\n .div(constants_1.ONE_RATIO), targetPrice), baseSize));\n if (margin.lt(minMargin)) {\n margin = minMargin;\n }\n return {\n limitPrice: targetPrice,\n tradeValue,\n margin,\n leverage,\n minFeeRebate: (0, math_1.wmul)((0, math_1.wmul)(targetPrice, baseSize), (0, math_1.r2w)(instrument.setting.quoteParam.tradingFeeRatio)),\n };\n }\n async simulateTrade(params, simulate, overrides) {\n let { instrument, amm } = await this.mustGetInstrumentAndAmm(params.tradeInfo, params.instrument, overrides ?? {});\n const prePosition = await this.getPosition(params.tradeInfo, overrides ?? {});\n const { baseSize, quoteSize, quotation } = await this.inquireByBaseOrQuote(params, amm.markPrice, overrides ?? {}, true);\n if (baseSize.lte(0)) {\n throw new simulationError_1.SimulationError('Invalid trade size');\n }\n const sign = (0, utils_1.signOfSide)(params.side);\n const tradePrice = (0, math_1.wdiv)(quotation.entryNotional, baseSize.abs());\n const limitTick = math_1.TickMath.getLimitTick(tradePrice, params.slippage, params.side);\n const markPrice = amm.markPrice;\n if (amm.expiry === constants_1.PERP_EXPIRY) {\n let timestamp;\n if (!overrides || !overrides.blockTag) {\n timestamp = Math.floor(Date.now() / 1000);\n }\n else {\n const block = await this.context.provider.getBlock(overrides.blockTag);\n timestamp = block.timestamp;\n }\n const { longFundingIndex, shortFundingIndex } = (0, lowLevel_1.updateFundingIndex)(amm, amm.markPrice, timestamp);\n amm = {\n ...amm,\n longFundingIndex,\n shortFundingIndex,\n };\n }\n let exceedMaxLeverage = false;\n const limitPrice = math_1.TickMath.getWadAtTick(limitTick);\n const worstNotional = (0, math_1.wmul)(limitPrice, baseSize);\n const tradeLoss = sign > 0 ? worstNotional.sub((0, math_1.wmul)(markPrice, baseSize)) : (0, math_1.wmul)(markPrice, baseSize).sub(worstNotional);\n const preEquity = (0, utils_1.positionEquity)(prePosition, amm);\n const rawSize = baseSize.mul(sign);\n let { margin, leverage } = simulate(markPrice, baseSize, sign, prePosition, preEquity, tradeLoss, quotation);\n const { position: rawPosition, realized: realized } = (0, lowLevel_1.combine)(amm, prePosition, {\n balance: margin.lt(0) ? quotation.fee.mul(-1) : margin.sub(quotation.fee),\n size: rawSize,\n entryNotional: quotation.entryNotional,\n entrySocialLossIndex: sign > 0 ? amm.longSocialLossIndex : amm.shortSocialLossIndex,\n entryFundingIndex: sign > 0 ? amm.longFundingIndex : amm.shortFundingIndex,\n });\n const postPosition = utils_1.factory.createPosition({\n ...prePosition,\n ...rawPosition,\n });\n if (!postPosition.size.eq(math_1.ZERO) && margin.lt(math_1.ZERO)) {\n const maxWithdrawableMargin = (0, utils_1.positionMaxWithdrawableMargin)(postPosition, amm, instrument.setting.initialMarginRatio);\n if (margin.abs().gt(maxWithdrawableMargin)) {\n if (params.strictMode) {\n throw new simulationError_1.SimulationError('Exceed max leverage');\n }\n margin = maxWithdrawableMargin.mul(-1);\n exceedMaxLeverage = true;\n }\n postPosition.balance = postPosition.balance.add(margin);\n }\n if (postPosition.size.eq(math_1.ZERO) ||\n (prePosition.size.mul(sign).lt(math_1.ZERO) && baseSize.abs().lt(prePosition.size.abs()))) {\n if (!(0, utils_1.isPositionMMSafe)(postPosition, amm, instrument.setting.maintenanceMarginRatio)) {\n throw new simulationError_1.SimulationError('Insufficient margin to open position');\n }\n }\n else {\n if (!(0, utils_1.isPositionIMSafe)(postPosition, amm, instrument.setting.initialMarginRatio, true)) {\n if (params.strictMode) {\n throw new simulationError_1.SimulationError('Exceed max leverage');\n }\n const additionalMargin = (0, utils_1.positionAdditionMarginToIMRSafe)(postPosition, amm, instrument.setting.initialMarginRatio, true, params.slippage);\n postPosition.balance = postPosition.balance.add(additionalMargin);\n margin = margin.add(additionalMargin);\n leverage = (0, utils_1.positionLeverage)(postPosition, amm);\n exceedMaxLeverage = true;\n }\n }\n const priceImpact = (0, math_1.wdiv)((0, math_1.sqrtX96ToWad)(quotation.sqrtPostFairPX96).sub((0, math_1.sqrtX96ToWad)(quotation.sqrtFairPX96)), (0, math_1.sqrtX96ToWad)(quotation.sqrtFairPX96));\n const stabilityFee = math_1.SqrtPriceMath.getStabilityFee(quotation, instrument.setting.quoteParam);\n return {\n tradePrice: tradePrice,\n tradeValue: quotation.entryNotional,\n tradingFee: quotation.fee.sub(stabilityFee),\n stabilityFee,\n margin,\n marginChanged: postPosition.size.eq(math_1.ZERO) && postPosition.balance.gt(math_1.ZERO) ? postPosition.balance.mul(-1) : margin,\n leverage: postPosition.size.eq(math_1.ZERO) ? math_1.ZERO : leverage,\n priceImpact,\n postPosition,\n realized,\n limitTick,\n exceedMaxLeverage,\n size: {\n base: baseSize,\n quote: quoteSize,\n },\n };\n }\n simulateMarketOrderByMargin(params, overrides) {\n return this.simulateTrade(params, (markPrice, baseSize, sign, prePosition, preEquity, tradeLoss, quotation) => {\n const postEquity = preEquity.add(params.margin).sub(tradeLoss).sub(quotation.fee);\n const leverage = (0, math_1.wdiv)((0, math_1.wmul)(markPrice, baseSize.mul(sign).add(prePosition.size)).abs(), postEquity);\n return { leverage, margin: params.margin };\n }, overrides ?? {});\n }\n _simulateMarketOrderByLeverage(params, overrides) {\n return this.simulateTrade(params, (markPrice, baseSize, sign, prePosition, preEquity, tradeLoss, quotation) => {\n const postEquity = (0, math_1.wdiv)((0, math_1.wmul)(markPrice, baseSize.mul(sign).add(prePosition.size)).abs(), params.leverage);\n const margin = postEquity.sub(preEquity).add(tradeLoss).add(quotation.fee);\n return { leverage: params.leverage, margin };\n }, overrides ?? {});\n }\n simulateMarketOrderByLeverage(params, overrides) {\n return this._simulateMarketOrderByLeverage(params, overrides);\n }\n async simulateClose(params, overrides) {\n const prePosition = await this.getPosition(params.tradeInfo, overrides ?? {});\n return await this.simulateTrade({\n ...params,\n tradeInfo: prePosition,\n side: (0, utils_1.reverseSide)(prePosition.side),\n }, (markPrice, baseSize, sign, prePosition, preEquity, tradeLoss, quotation) => {\n const margin = math_1.ZERO;\n const postEquity = preEquity.add(math_1.ZERO).sub(tradeLoss).sub(quotation.fee);\n const leverage = (0, math_1.wdiv)((0, math_1.wmul)(markPrice, baseSize.mul(sign).add(prePosition.size)).abs(), postEquity);\n return { leverage, margin };\n }, overrides ?? {});\n }\n async simulateAdjustMargin(params, simulate, overrides) {\n const { instrument, amm } = await this.mustGetInstrumentAndAmm(params.tradeInfo, params.instrument, overrides ?? {});\n let postPosition = await this.getPosition(params.tradeInfo, overrides ?? {});\n const maxWithdrawableMargin = (0, utils_1.positionMaxWithdrawableMargin)(postPosition, amm, instrument.setting.initialMarginRatio);\n const { margin, leverage } = simulate(postPosition, amm);\n if (margin.lt(math_1.ZERO) && margin.abs().gt(maxWithdrawableMargin)) {\n throw new simulationError_1.SimulationError('Invalid input');\n }\n postPosition = {\n ...postPosition,\n balance: postPosition.balance.add(margin),\n };\n return {\n postPosition,\n transferIn: margin.gt(0),\n margin: margin.abs(),\n leverage,\n };\n }\n async simulateAdjustMarginByMargin(params, overrides) {\n if (params.margin.lt(0)) {\n throw new simulationError_1.SimulationError('Invalid margin');\n }\n const result = await this.simulateAdjustMargin(params, (position, amm) => {\n const margin = params.margin.mul(params.transferIn ? 1 : -1);\n const value = (0, math_1.wmul)(amm.markPrice, position.size.abs());\n const equity = (0, utils_1.positionEquity)(position, amm).add(margin);\n const leverage = (0, math_1.wdiv)(value, equity);\n return { leverage, margin };\n }, overrides ?? {});\n return {\n leverage: result.leverage,\n postPosition: result.postPosition,\n };\n }\n async simulateAdjustMarginByLeverage(params, overrides) {\n const result = await this.simulateAdjustMargin(params, (position, amm) => {\n const margin = (0, utils_1.inquireTransferAmountFromTargetLeverage)(position, amm, params.leverage);\n return { leverage: params.leverage, margin };\n }, overrides ?? {});\n return {\n transferIn: result.transferIn,\n margin: result.margin,\n postPosition: result.postPosition,\n };\n }\n async simulateBenchmarkPrice(instrumentIdentifier, expiry, overrides) {\n let benchmarkPrice;\n if ((0, utils_1.isCexMarket)(instrumentIdentifier.marketType)) {\n benchmarkPrice = await this.observer.inspectCexMarketBenchmarkPrice(instrumentIdentifier, expiry, overrides ?? {});\n }\n else {\n benchmarkPrice = await this.observer.inspectDexV2MarketBenchmarkPrice(instrumentIdentifier, expiry, overrides ?? {});\n }\n return benchmarkPrice;\n }\n async simulateAddLiquidity(params, overrides) {\n const res = await this._simulateAddLiquidityWithAsymmetricRange({\n expiry: params.expiry,\n instrument: params.instrument,\n alphaWadLower: params.alphaWad,\n alphaWadUpper: params.alphaWad,\n margin: params.margin,\n slippage: params.slippage,\n currentSqrtPX96: params.currentSqrtPX96,\n }, overrides ?? {});\n return {\n ...res,\n tickDelta: res.tickDeltaUpper,\n equivalentAlpha: (0, utils_1.tickDeltaToAlphaWad)(~~((math_1.TickMath.getTickAtPWad(res.upperPrice) - math_1.TickMath.getTickAtPWad(res.lowerPrice)) / 2)),\n };\n }\n _getMinLiquidity(instrumentAmmSqrtPX96, instrumentMinRangeValue, px96) {\n const sqrtPX96 = px96 ? px96 : instrumentAmmSqrtPX96;\n return instrumentMinRangeValue.mul(math_1.Q96).div(sqrtPX96.mul(2));\n }\n async _simulateAddLiquidityWithAsymmetricRange(params, overrides) {\n const instrumentAddress = ((0, utils_1.isInstrument)(params.instrument)\n ? params.instrument.instrumentAddr\n : await this.context.perp.instrument.computeInstrumentAddress(params.instrument)).toLowerCase();\n const instrumentIdentifier = (0, utils_1.isInstrument)(params.instrument)\n ? {\n marketType: params.instrument.marketType,\n baseSymbol: params.instrument.base,\n quoteSymbol: params.instrument.quote,\n }\n : params.instrument;\n const instruments = (await this.context.perp.contracts.gate.getAllInstruments(overrides ?? {})).map((addr) => addr.toLowerCase());\n const info = instruments.includes(instrumentAddress)\n ? (0, utils_1.isInstrument)(params.instrument)\n ? {\n instrument: params.instrument,\n amm: params.instrument.amms.get(params.expiry),\n }\n : await this.getInstrumentAndAmm({ expiry: params.expiry, instrumentAddr: instrumentAddress }, undefined, overrides ?? {})\n : undefined;\n let quoteInfo;\n let setting;\n let amm;\n const instrument = info?.instrument;\n if (!instrument || !info?.amm) {\n const benchmarkPrice = await this.simulateBenchmarkPrice(instrumentIdentifier, params.expiry, overrides ?? {});\n const { quoteTokenInfo } = await (0, utils_1.getTokenInfo)(instrumentIdentifier, this.context);\n quoteInfo = quoteTokenInfo;\n if (instrument) {\n setting = instrument.setting;\n }\n else {\n const quoteParam = await this.context.perp.contracts.config.getQuoteParam(quoteInfo.address, overrides ?? {});\n setting = {\n initialMarginRatio: constants_1.INITIAL_MARGIN_RATIO,\n maintenanceMarginRatio: constants_1.MAINTENANCE_MARGIN_RATIO,\n quoteParam: { ...quoteParam },\n };\n }\n amm = utils_1.factory.createAmm({\n instrumentAddr: instrumentAddress,\n expiry: 0,\n timestamp: 0,\n status: enum_1.Status.TRADING,\n tick: math_1.TickMath.getTickAtPWad(benchmarkPrice),\n sqrtPX96: (0, math_1.wadToSqrtX96)(benchmarkPrice),\n liquidity: math_1.ZERO,\n totalLiquidity: math_1.ZERO,\n involvedFund: math_1.ZERO,\n openInterests: math_1.ZERO,\n feeIndex: math_1.ZERO,\n protocolFee: math_1.ZERO,\n totalLong: math_1.ZERO,\n totalShort: math_1.ZERO,\n longSocialLossIndex: math_1.ZERO,\n shortSocialLossIndex: math_1.ZERO,\n longFundingIndex: math_1.ZERO,\n shortFundingIndex: math_1.ZERO,\n insuranceFund: math_1.ZERO,\n settlementPrice: math_1.ZERO,\n markPrice: math_1.ZERO,\n });\n }\n else {\n amm = info.amm;\n quoteInfo = instrument.quote;\n setting = instrument.setting;\n }\n const minTradeValue = setting.quoteParam.minMarginAmount.mul(constants_1.RATIO_BASE).div(setting.initialMarginRatio);\n const instrumentMinRangeValue = minTradeValue.mul(constants_1.MIN_RANGE_MULTIPLIER);\n const tickDeltaLower = (0, utils_1.alphaWadToTickDelta)(params.alphaWadLower);\n const tickDeltaUpper = (0, utils_1.alphaWadToTickDelta)(params.alphaWadUpper);\n const upperTick = (0, lowLevel_1.alignRangeTick)(amm.tick + tickDeltaUpper, false);\n const lowerTick = (0, lowLevel_1.alignRangeTick)(amm.tick - tickDeltaLower, true);\n const upperPrice = math_1.TickMath.getWadAtTick(upperTick);\n const lowerPrice = math_1.TickMath.getWadAtTick(lowerTick);\n const { liquidity: liquidity } = (0, lowLevel_1.entryDelta)(amm.sqrtPX96, lowerTick, upperTick, params.margin, setting.initialMarginRatio);\n const { tickLower, tickUpper } = (0, utils_1.parseTicks)((0, utils_1.rangeKey)(lowerTick, upperTick));\n const simulationRange = {\n liquidity,\n balance: params.margin,\n sqrtEntryPX96: amm.sqrtPX96,\n entryFeeIndex: amm.feeIndex,\n tickLower,\n tickUpper,\n };\n const rawLowerPosition = (0, utils_1.rangeLowerPositionIfRemove)(simulationRange, amm);\n const rawUpperPosition = (0, utils_1.rangeUpperPositionIfRemove)(simulationRange, amm);\n const minMargin = (0, lowLevel_1.getMarginFromLiquidity)(amm.sqrtPX96, upperTick, this._getMinLiquidity(amm.sqrtPX96, instrumentMinRangeValue, amm.sqrtPX96), setting.initialMarginRatio);\n const basedPX96 = params.currentSqrtPX96 ? params.currentSqrtPX96 : amm.sqrtPX96;\n const sqrtStrikeLowerPX96 = basedPX96.sub((0, math_1.wmulDown)(basedPX96, (0, math_1.r2w)(params.slippage)));\n const sqrtStrikeUpperPX96 = basedPX96.add((0, math_1.wmulDown)(basedPX96, (0, math_1.r2w)(params.slippage)));\n return {\n tickDeltaLower,\n tickDeltaUpper,\n liquidity,\n upperPrice: math_1.TickMath.getWadAtTick(simulationRange.tickUpper),\n lowerPrice: math_1.TickMath.getWadAtTick(simulationRange.tickLower),\n lowerPosition: utils_1.factory.createPosition({\n instrumentAddr: instrumentAddress,\n expiry: params.expiry,\n traderAddr: math_1.ADDRESS_ZERO,\n ...rawLowerPosition,\n }),\n lowerLeverage: rawLowerPosition.size.mul(lowerPrice).div(rawLowerPosition.balance).abs(),\n upperPosition: utils_1.factory.createPosition({\n instrumentAddr: instrumentAddress,\n expiry: params.expiry,\n traderAddr: math_1.ADDRESS_ZERO,\n ...rawUpperPosition,\n }),\n upperLeverage: rawUpperPosition.size.mul(upperPrice).div(rawUpperPosition.balance).abs(),\n limitTicks: math_1.TickMath.encodeLimitTicks(sqrtStrikeLowerPX96, sqrtStrikeUpperPX96),\n minMargin,\n minEffectiveQuoteAmount: instrumentMinRangeValue,\n equivalentAlphaLower: (0, utils_1.tickDeltaToAlphaWad)(~~(upperTick - amm.tick)),\n equivalentAlphaUpper: (0, utils_1.tickDeltaToAlphaWad)(~~(amm.tick - lowerTick)),\n capitalEfficiencyBoost: params.alphaWadLower === params.alphaWadUpper\n ? (0, math_1.calcBoost)(Number.parseFloat(ethers_1.ethers.utils.formatUnits(params.alphaWadLower)), setting.initialMarginRatio)\n : (0, math_1.calcAsymmetricBoost)(Number.parseFloat(ethers_1.ethers.utils.formatUnits(params.alphaWadLower)), Number.parseFloat(ethers_1.ethers.utils.formatUnits(params.alphaWadUpper)), setting.initialMarginRatio),\n };\n }\n async simulateAddLiquidityWithAsymmetricRange(params, overrides) {\n return await this._simulateAddLiquidityWithAsymmetricRange(params, overrides ?? {});\n }\n async simulateRemoveLiquidity(params, overrides) {\n const portfolio = await this.getPortfolio(params.tradeInfo, overrides ?? {});\n const position = portfolio.position;\n const range = portfolio.ranges.get((0, utils_1.rangeKey)(params.tickLower, params.tickUpper));\n if (!range) {\n throw new simulationError_1.SimulationError('Missing range');\n }\n const { amm } = await this.mustGetInstrumentAndAmm(params.tradeInfo, params.instrument, overrides ?? {});\n const rawPositionRemoved = (0, utils_1.rangeToPosition)(range, amm);\n const rawMainPosition = (0, lowLevel_1.combine)(amm, rawPositionRemoved, position).position;\n const postPosition = utils_1.factory.createPosition({\n ...rawMainPosition,\n instrumentAddr: position.instrumentAddr,\n expiry: position.expiry,\n traderAddr: position.traderAddr,\n });\n const removedPosition = utils_1.factory.createPosition({\n ...rawPositionRemoved,\n instrumentAddr: position.instrumentAddr,\n expiry: position.expiry,\n traderAddr: position.traderAddr,\n });\n const sqrtStrikeLowerPX96 = amm.sqrtPX96.sub((0, math_1.wmulDown)(amm.sqrtPX96, (0, math_1.r2w)(params.slippage)));\n const sqrtStrikeUpperPX96 = amm.sqrtPX96.add((0, math_1.wmulDown)(amm.sqrtPX96, (0, math_1.r2w)(params.slippage)));\n return {\n removedPosition,\n postPosition,\n limitTicks: math_1.TickMath.encodeLimitTicks(sqrtStrikeLowerPX96, sqrtStrikeUpperPX96),\n removedPositionEntryPrice: (0, math_1.sqrt)((0, math_1.sqrtX96ToWad)(amm.sqrtPX96).mul((0, math_1.sqrtX96ToWad)(range.sqrtEntryPX96))),\n };\n }\n async simulateImpermanentLoss(params, overrides) {\n const instrumentAddress = ((0, utils_1.isInstrument)(params.instrument)\n ? params.instrument.instrumentAddr\n : await this.context.perp.instrument.computeInstrumentAddress(params.instrument)).toLowerCase();\n const instrumentIdentifier = (0, utils_1.isInstrument)(params.instrument)\n ? {\n marketType: params.instrument.marketType,\n baseSymbol: params.instrument.base,\n quoteSymbol: params.instrument.quote,\n }\n : params.instrument;\n const instruments = (await this.context.perp.contracts.gate.getAllInstruments(overrides ?? {})).map((addr) => addr.toLowerCase());\n const info = instruments.includes(instrumentAddress)\n ? (0, utils_1.isInstrument)(params.instrument)\n ? {\n instrument: params.instrument,\n amm: params.instrument.amms.get(params.expiry),\n }\n : await this.getInstrumentAndAmm({ expiry: params.expiry, instrumentAddr: instrumentAddress }, undefined, overrides ?? {})\n : undefined;\n let quoteInfo;\n let setting;\n let amm;\n const instrument = info?.instrument;\n if (!instrument || !info?.amm) {\n const benchmarkPrice = await this.simulateBenchmarkPrice(instrumentIdentifier, params.expiry, overrides ?? {});\n const { quoteTokenInfo } = await (0, utils_1.getTokenInfo)(instrumentIdentifier, this.context);\n quoteInfo = quoteTokenInfo;\n if (instrument) {\n setting = instrument.setting;\n }\n else {\n const quoteParam = await this.context.perp.contracts.config.getQuoteParam(quoteInfo.address, overrides ?? {});\n setting = {\n initialMarginRatio: constants_1.INITIAL_MARGIN_RATIO,\n maintenanceMarginRatio: constants_1.MAINTENANCE_MARGIN_RATIO,\n quoteParam: { ...quoteParam },\n };\n }\n amm = utils_1.factory.createAmm({\n instrumentAddr: instrumentAddress,\n expiry: 0,\n timestamp: 0,\n status: enum_1.Status.TRADING,\n tick: math_1.TickMath.getTickAtPWad(benchmarkPrice),\n sqrtPX96: (0, math_1.wadToSqrtX96)(benchmarkPrice),\n liquidity: math_1.ZERO,\n totalLiquidity: math_1.ZERO,\n involvedFund: math_1.ZERO,\n openInterests: math_1.ZERO,\n feeIndex: math_1.ZERO,\n protocolFee: math_1.ZERO,\n totalLong: math_1.ZERO,\n totalShort: math_1.ZERO,\n longSocialLossIndex: math_1.ZERO,\n shortSocialLossIndex: math_1.ZERO,\n longFundingIndex: math_1.ZERO,\n shortFundingIndex: math_1.ZERO,\n insuranceFund: math_1.ZERO,\n settlementPrice: math_1.ZERO,\n markPrice: math_1.ZERO,\n });\n }\n else {\n amm = info.amm;\n quoteInfo = instrument.quote;\n setting = instrument.setting;\n }\n const tickDeltaLower = (0, utils_1.alphaWadToTickDelta)(params.alphaWadLower);\n const tickDeltaUpper = (0, utils_1.alphaWadToTickDelta)(params.alphaWadUpper);\n const upperTick = (0, lowLevel_1.alignRangeTick)(amm.tick + tickDeltaUpper, false);\n const lowerTick = (0, lowLevel_1.alignRangeTick)(amm.tick - tickDeltaLower, true);\n const margin = (0, utils_2.parseEther)('1');\n const { liquidity: liquidity } = (0, lowLevel_1.entryDelta)(amm.sqrtPX96, lowerTick, upperTick, margin, setting.initialMarginRatio);\n const { tickLower, tickUpper } = (0, utils_1.parseTicks)((0, utils_1.rangeKey)(lowerTick, upperTick));\n const simulationRange = {\n liquidity,\n balance: margin,\n sqrtEntryPX96: amm.sqrtPX96,\n entryFeeIndex: amm.feeIndex,\n tickLower,\n tickUpper,\n };\n const result = [];\n for (let i = tickLower; i < tickUpper; i += constants_1.ORDER_SPACING) {\n amm.tick = i;\n amm.sqrtPX96 = math_1.TickMath.getSqrtRatioAtTick(i);\n const removedBalance = (0, utils_1.rangeToPosition)(simulationRange, amm).balance;\n result.push({\n tick: i,\n impermanentLoss: Number((0, utils_2.formatEther)(removedBalance)) / Number((0, utils_2.formatEther)(margin)) - 1,\n });\n }\n return result;\n }\n}\nexports.SimulateModule = SimulateModule;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CexMarketParser = void 0;\nconst context_1 = require(\"@derivation-tech/context\");\nconst typechain_1 = require(\"../typechain\");\nconst enum_1 = require(\"../enum\");\nconst utils_1 = require(\"../utils\");\nconst farmat_1 = require(\"./farmat\");\nconst ethers_1 = require(\"ethers\");\nclass CexMarketParser extends context_1.ContractParser {\n constructor() {\n super(typechain_1.CexMarket__factory.createInterface());\n }\n async parseBaseParam(_description, param, data) {\n switch (param.name) {\n case 'time':\n case 'initTime':\n return (0, farmat_1.formatTimestamp)(data);\n case 'spot':\n case 'raw':\n case 'initMark':\n case 'accumulation':\n return (0, context_1.formatWad)(data);\n case 'expiry':\n return (0, utils_1.formatExpiry)(data);\n case 'ftype':\n return enum_1.FeederType[Number(data)];\n case 'compactEmaParam': {\n return (0, farmat_1.formatCompactEmaParam)(ethers_1.BigNumber.from(data));\n }\n default:\n return data.toString();\n }\n }\n}\nexports.CexMarketParser = CexMarketParser;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ConfigParser = void 0;\nconst ethers_1 = require(\"ethers\");\nconst context_1 = require(\"@derivation-tech/context\");\nconst typechain_1 = require(\"../typechain\");\nconst utils_1 = require(\"../utils\");\nconst farmat_1 = require(\"./farmat\");\nconst enum_1 = require(\"../enum\");\nclass ConfigParser extends context_1.ContractParser {\n constructor() {\n super(typechain_1.Config__factory.createInterface());\n }\n async parseBaseParam(_description, param, data) {\n switch (param.name) {\n case 'tradingFeeRatio':\n case 'protocolFeeRatio':\n return (0, farmat_1.formatRatio)(data);\n case 'stabilityFeeRatioParam':\n return (0, farmat_1.extractFeeRatioParams)(ethers_1.BigNumber.from(data))\n .map((p) => (0, context_1.formatWad)(p))\n .toString();\n case 'tip':\n case 'minMarginAmount':\n return (0, context_1.formatWad)(data);\n case 'expiry':\n return (0, utils_1.formatExpiry)(data);\n case 'qtype':\n return enum_1.QuoteType[Number(data)];\n default:\n return data.toString();\n }\n }\n}\nexports.ConfigParser = ConfigParser;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DexV2MarketParser = void 0;\nconst ethers_1 = require(\"ethers\");\nconst context_1 = require(\"@derivation-tech/context\");\nconst typechain_1 = require(\"../typechain\");\nconst utils_1 = require(\"../utils\");\nconst enum_1 = require(\"../enum\");\nconst farmat_1 = require(\"./farmat\");\nclass DexV2MarketParser extends context_1.ContractParser {\n constructor() {\n super(typechain_1.DexV2Market__factory.createInterface());\n }\n async parseBaseParam(_description, param, data) {\n switch (param.name) {\n case 'initTime':\n case 'time':\n return (0, farmat_1.formatTimestamp)(data);\n case 'raw':\n case 'spot':\n case 'initMark':\n case 'initAccumulation':\n return (0, context_1.formatWad)(data);\n case 'expiry':\n return (0, utils_1.formatExpiry)(data);\n case 'ftype':\n return enum_1.FeederType[Number(data)];\n case 'compactEmaParam': {\n return (0, farmat_1.formatCompactEmaParam)(ethers_1.BigNumber.from(data));\n }\n default:\n return data.toString();\n }\n }\n}\nexports.DexV2MarketParser = DexV2MarketParser;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.formatRatio = formatRatio;\nexports.formatCompactEmaParam = formatCompactEmaParam;\nexports.formatEmaParam = formatEmaParam;\nexports.decodeEmaParam = decodeEmaParam;\nexports.formatTimestamp = formatTimestamp;\nexports.extractFeeRatioParams = extractFeeRatioParams;\nexports.formatSqrtPX96 = formatSqrtPX96;\nexports.formatTick = formatTick;\nconst ethers_1 = require(\"ethers\");\nconst context_1 = require(\"@derivation-tech/context\");\nconst math_1 = require(\"../math\");\nconst constants_1 = require(\"../constants\");\nfunction formatRatio(value) {\n return ethers_1.ethers.utils.formatUnits(ethers_1.BigNumber.from(value), 2) + '%';\n}\nfunction formatCompactEmaParam(data) {\n return formatEmaParam(decodeEmaParam(ethers_1.BigNumber.from(data)));\n}\nfunction formatEmaParam(ema) {\n return Object.entries(ema)\n .map(([k, v]) => {\n if (k === 'maxChangeRatioPerSecond') {\n return ` ${k}: ${formatRatio(ethers_1.BigNumber.from(v))}`;\n }\n else {\n return ` ${k}: ${v.toString()}`;\n }\n })\n .toString();\n}\nfunction decodeEmaParam(encoded) {\n return {\n emaHalfTime: encoded.shr(48).and(0xffff),\n maxTimeDelta: encoded.shr(32).and(0xffff),\n maxRawTimeDelta: encoded.shr(16).and(0xffff),\n maxChangeRatioPerSecond: encoded.and(0xffff),\n };\n}\nfunction formatTimestamp(value) {\n return new Date(ethers_1.BigNumber.from(value).mul(1000).toNumber()).toISOString();\n}\nfunction extractFeeRatioParams(stabilityFeeRatioParam) {\n const ret = [];\n ret.push((0, math_1.s2w)(stabilityFeeRatioParam.and(math_1.MAX_UINT_24)));\n ret.push((0, math_1.s2w)(stabilityFeeRatioParam.shr(24).and(math_1.MAX_UINT_16)));\n ret.push((0, math_1.s2w)(stabilityFeeRatioParam.shr(40).and(math_1.MAX_UINT_16)));\n ret.push((0, math_1.s2w)(stabilityFeeRatioParam.shr(56)));\n return ret;\n}\nfunction formatSqrtPX96(sqrtPX96, fixedDecimals = 6) {\n return (0, context_1.formatWad)((0, math_1.sqrtX96ToWad)(sqrtPX96), fixedDecimals);\n}\nfunction formatTick(tick) {\n if (tick < constants_1.MIN_TICK) {\n return 'MIN_TICK';\n }\n else if (tick > constants_1.MAX_TICK) {\n return 'MAX_TICK';\n }\n else {\n return `${tick}(${formatSqrtPX96(math_1.TickMath.getSqrtRatioAtTick(tick))})`;\n }\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GateParser = void 0;\nconst context_1 = require(\"@derivation-tech/context\");\nconst typechain_1 = require(\"../typechain\");\nconst ethers_1 = require(\"ethers\");\nconst utils_1 = require(\"ethers/lib/utils\");\nconst utils_2 = require(\"../utils\");\nconst enum_1 = require(\"../enum\");\nconst constants_1 = require(\"../constants\");\nconst farmat_1 = require(\"./farmat\");\nclass GateParser extends context_1.ContractParser {\n constructor(ctx) {\n super(typechain_1.Gate__factory.createInterface());\n this.ctx = ctx;\n }\n async formatEncodedFundctionArgs(obj) {\n let str = '{ ';\n for (const [k, v] of Object.entries(obj)) {\n if (ethers_1.ethers.utils.isAddress(v)) {\n str += `${k}: ${await this.parseAddress(v)}, `;\n continue;\n }\n if (k === 'limitTicks') {\n str += `minTickLower: ${(0, farmat_1.formatTick)(v.toNumber() >> 24)}, maxTickUpper: ${(0, farmat_1.formatTick)(v.toNumber() & ((1 << 24) - 1))}, `;\n }\n else {\n str += `${k}: ${this.parseDefaultBaseParam(utils_1.ParamType.from({ type: 'string', name: k }), v)}, `;\n }\n }\n str = str.substring(0, str.length - 2) + ' }';\n return str;\n }\n async parseBaseArrayParam(description, param, value) {\n if (description.name === 'launch' && param.name === 'addArgs') {\n return this.formatEncodedFundctionArgs((0, utils_2.decodeAddParam)(value));\n }\n return await super.parseBaseArrayParam(description, param, value);\n }\n async parseBaseParam(description, param, data) {\n switch (param.name) {\n case 'arg':\n if (description.name === 'deposit' || description.name === 'withdraw') {\n const args = (0, utils_2.decodeParamForDepositAndWithdraw)(data);\n const usingNative = args.token.toLowerCase() === constants_1.NATIVE_TOKEN_ADDRESS.toLowerCase();\n const quoteInfo = usingNative\n ? this.ctx.wrappedNativeToken\n : await this.ctx.getTokenInfo(args.token);\n return `{quantity:${(0, context_1.formatUnits)(args.quantity, quoteInfo.decimals)}, token:${await this.parseAddress(args.token)}}`;\n }\n return this.parseDefaultBaseParam(param, data);\n case 'threshold':\n case 'exemption':\n case 'amount':\n case 'quantity': {\n const quote = description.args['quote'];\n if (quote) {\n const usingNative = quote.toLowerCase() === constants_1.NATIVE_TOKEN_ADDRESS.toLowerCase();\n const quoteInfo = usingNative ? this.ctx.wrappedNativeToken : await this.ctx.getTokenInfo(quote);\n return (0, context_1.formatUnits)(data, quoteInfo.decimals) + ' ' + quoteInfo.symbol;\n }\n else {\n return data.toString();\n }\n }\n case 'data': {\n if ((0, utils_2.isCexMarket)(description.args['mtype'])) {\n const [base, quote] = ethers_1.ethers.utils.defaultAbiCoder.decode(['string', 'address'], data);\n return `{base: ${base}, quote: ${await this.parseAddress(quote)}}`;\n }\n else if (description.args['mtype'] === enum_1.MarketType.DEXV2) {\n const [base, quote] = ethers_1.ethers.utils.defaultAbiCoder.decode(['address', 'address'], data);\n return `{base: ${await this.parseAddress(base)}, quote: ${await this.parseAddress(quote)}}`;\n }\n else {\n return data.toString();\n }\n }\n default:\n return this.parseDefaultBaseParam(param, data);\n }\n }\n parseDefaultBaseParam(param, data) {\n switch (param.name) {\n case 'duration':\n return (Number(data) / 3600).toFixed(2) + ' hours';\n case 'amount':\n return (0, context_1.formatWad)(data);\n case 'timestamp':\n return (0, farmat_1.formatTimestamp)(data);\n case 'expiry':\n return (0, utils_2.formatExpiry)(data);\n case 'sqrtStrikeLowerPX96':\n case 'sqrtStrikeUpperPX96':\n return (0, farmat_1.formatSqrtPX96)(data);\n case 'deadline':\n return (0, farmat_1.formatTimestamp)(data);\n default:\n return data.toString();\n }\n }\n}\nexports.GateParser = GateParser;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GuardianParser = void 0;\nconst ethers_1 = require(\"ethers\");\nconst context_1 = require(\"@derivation-tech/context\");\nconst typechain_1 = require(\"../typechain\");\nconst utils_1 = require(\"../utils\");\nconst enum_1 = require(\"../enum\");\nconst farmat_1 = require(\"./farmat\");\nclass GuardianParser extends context_1.ContractParser {\n constructor() {\n super(typechain_1.Guardian__factory.createInterface());\n }\n async parseBaseParam(_description, param, data) {\n switch (param.name) {\n case 'tradingFeeRatio':\n case 'protocolFeeRatio':\n return (0, farmat_1.formatRatio)(data);\n case 'stabilityFeeRatioParam':\n return (0, farmat_1.extractFeeRatioParams)(ethers_1.BigNumber.from(data))\n .map((p) => (0, context_1.formatWad)(p))\n .toString();\n case 'tip':\n case 'minMarginAmount':\n return (0, context_1.formatWad)(data);\n case 'expiry':\n return (0, utils_1.formatExpiry)(data);\n case 'qtype':\n return enum_1.QuoteType[Number(data)];\n case 'ftype':\n return enum_1.FeederType[Number(data)];\n case 'compactEmaParam':\n return (0, farmat_1.formatCompactEmaParam)(ethers_1.BigNumber.from(data));\n default:\n return data.toString();\n }\n }\n async parseBaseArrayParam(description, param, value) {\n if (description.name === 'recycleInsuranceFund' && param.name === 'expiries') {\n return value.map((expiry) => (0, utils_1.formatExpiry)(expiry)).toString();\n }\n else if (description.name === 'claimProtocolFee' && param.name === 'expiries') {\n return value.map((expiry) => (0, utils_1.formatExpiry)(expiry)).toString();\n }\n return await super.parseBaseArrayParam(description, param, value);\n }\n}\nexports.GuardianParser = GuardianParser;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./instrument\"), exports);\n__exportStar(require(\"./dexV2market\"), exports);\n__exportStar(require(\"./cexMarket\"), exports);\n__exportStar(require(\"./gate\"), exports);\n__exportStar(require(\"./config\"), exports);\n__exportStar(require(\"./guardian\"), exports);\n__exportStar(require(\"./farmat\"), exports);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.InstrumentParser = void 0;\nconst context_1 = require(\"@derivation-tech/context\");\nconst typechain_1 = require(\"../typechain\");\nconst ethers_1 = require(\"ethers\");\nconst utils_1 = require(\"../utils\");\nconst utils_2 = require(\"ethers/lib/utils\");\nconst enum_1 = require(\"../enum\");\nconst farmat_1 = require(\"./farmat\");\nfunction isTransactionDescription(description) {\n return 'functionFragment' in description;\n}\nfunction isLogDescription(description) {\n return 'eventFragment' in description;\n}\nfunction isErrorDescription(description) {\n return 'errorFragment' in description;\n}\nclass InstrumentParser extends context_1.ContractParser {\n constructor(addressParser) {\n super(typechain_1.Instrument__factory.createInterface(), addressParser);\n }\n async formatEncodedFundctionArgs(obj) {\n let str = '{ ';\n for (const [k, v] of Object.entries(obj)) {\n if (ethers_1.ethers.utils.isAddress(v)) {\n str += `${k}: ${await this.parseAddress(v)}, `;\n continue;\n }\n if (k === 'limitTicks') {\n str += `minTickLower: ${(0, farmat_1.formatTick)(Number(BigInt(v.toNumber()) >> BigInt(24)))}, maxTickUpper: ${(0, farmat_1.formatTick)(v.toNumber() & ((1 << 24) - 1))}, `;\n }\n else if (k === 'ticks') {\n str += `${k}: [${v.map((tick) => (0, farmat_1.formatTick)(tick)).join(', ')}], `;\n }\n else {\n str += `${k}: ${this.parseDefaultBaseParam(utils_2.ParamType.from({ type: 'string', name: k }), v)}, `;\n }\n }\n str = str.substring(0, str.length - 2) + ' }';\n return str;\n }\n async parseBaseArrayParam(description, param, value) {\n if (description.name === 'add' && param.name === 'args') {\n return this.formatEncodedFundctionArgs((0, utils_1.decodeAddParam)(value));\n }\n else if (description.name === 'remove' && param.name === 'args') {\n return this.formatEncodedFundctionArgs((0, utils_1.decodeRemoveParam)(value));\n }\n else if (description.name === 'trade' && param.name === 'args') {\n return this.formatEncodedFundctionArgs((0, utils_1.decodeTradeWithStabilityFeeParam)(value));\n }\n else if (description.name === 'place' && param.name === 'args') {\n return this.formatEncodedFundctionArgs((0, utils_1.decodePlaceParam)(value));\n }\n else if (description.name === 'batchPlace' && param.name === 'args') {\n return this.formatEncodedFundctionArgs((0, utils_1.decodeBatchPlaceParam)(value));\n }\n return await super.parseBaseArrayParam(description, param, value);\n }\n async parseBaseParam(description, param, data) {\n if (isTransactionDescription(description)) {\n return this.parseFunctionBaseParam(description, param, data);\n }\n else if (isLogDescription(description)) {\n return this.parseEventBaseParam(description, param, data);\n }\n else if (isErrorDescription(description)) {\n return this.parseErrorBaseParam(description, param, data);\n }\n else {\n return this.parseDefaultBaseParam(param, data);\n }\n }\n async parseFunctionBaseParam(_description, param, data) {\n switch (param.name) {\n case 'arg': {\n switch (_description.functionFragment.name) {\n case 'cancel':\n return this.formatEncodedFundctionArgs((0, utils_1.decodeCancelParam)(data));\n case 'fill':\n return this.formatEncodedFundctionArgs((0, utils_1.decodeFillParam)(data));\n default:\n return data.toString();\n }\n }\n default:\n return this.parseDefaultBaseParam(param, data);\n }\n }\n parseEventBaseParam(_description, param, data) {\n switch (param.name) {\n default:\n return this.parseDefaultBaseParam(param, data);\n }\n }\n parseErrorBaseParam(_description, param, data) {\n switch (param.name) {\n default:\n return this.parseDefaultBaseParam(param, data);\n }\n }\n parseDefaultBaseParam(param, data) {\n switch (param.name) {\n case 'status':\n return enum_1.Status[Number(data)];\n case 'condition':\n return enum_1.InstrumentCondition[Number(data)];\n case 'expiry':\n return (0, utils_1.formatExpiry)(data);\n case 'timestamp':\n case 'deadline':\n return (0, farmat_1.formatTimestamp)(data);\n case 'feeRatio':\n return (0, farmat_1.formatRatio)(data);\n case 'net':\n case 'amount':\n case 'minAmount':\n case 'balance':\n case 'tip':\n case 'fee':\n case 'entryNotional':\n case 'deltaQuote':\n case 'protocolFee':\n case 'involvedFund':\n case 'insuranceFund':\n case 'funding':\n case 'totalLong':\n case 'totalShort':\n case 'deltaBase':\n case 'openInterests':\n case 'totalTaken':\n case 'taken':\n case 'mark':\n case 'limitPrice':\n case 'settlement':\n case 'requested':\n return (0, context_1.formatWad)(data);\n case 'size':\n case 'requestedSize':\n case 'totalSize':\n return (0, context_1.formatWad)(data, 18);\n case 'sqrtPX96':\n case 'sqrtStrikeLowerPX96':\n case 'sqrtStrikeUpperPX96':\n case 'sqrtEntryPX96':\n return (0, farmat_1.formatSqrtPX96)(data, 18);\n case 'tick':\n case 'limitTick':\n case 'tickUpper':\n case 'tickLower':\n case 'minTickLower':\n case 'maxTickUpper':\n return (0, farmat_1.formatTick)(Number(data));\n default:\n return data.toString();\n }\n }\n}\nexports.InstrumentParser = InstrumentParser;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PerpModule = void 0;\nconst modules_1 = require(\"./modules\");\nconst defaultOptions = {\n inverse: false,\n configuration: 's3',\n};\nclass PerpModule {\n constructor(context, options) {\n this.context = context;\n const { inverse, configuration, basePath } = {\n ...defaultOptions,\n ...options,\n };\n this.config = new modules_1.ConfigModule(context);\n this.gate = new modules_1.GateModule(context);\n this._observer = new modules_1.ObserverModule(context);\n this.calc = inverse ? new modules_1.InverseCalcModule(context) : new modules_1.CalcModule(context);\n this.instrument = inverse ? new modules_1.InverseInstrumentModule(context) : new modules_1.InstrumentModule(context);\n this.observer = inverse ? new modules_1.InverseObserverModule(context) : new modules_1.ObserverModule(context);\n this.simulate = inverse ? new modules_1.InverseSimulateModule(context) : new modules_1.SimulateModule(context);\n this.configuration =\n configuration === 'local'\n ? new modules_1.LocalConfigurationModule(context)\n : new modules_1.S3ConfigurationModule(context, basePath);\n }\n registerQuoteInfo(tokenInfo) {\n this.context.tokenInfo.set(tokenInfo.symbol.toLowerCase(), tokenInfo);\n this.context.tokenInfo.set(tokenInfo.address.toLowerCase(), tokenInfo);\n this.context.registerAddress(tokenInfo.address, tokenInfo.symbol);\n }\n}\nexports.PerpModule = PerpModule;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.perpPlugin = void 0;\nconst perp_module_1 = require(\"./perp.module\");\nconst perpPlugin = (option) => {\n return {\n install(context) {\n const perp = new perp_module_1.PerpModule(context, option);\n context.addInitHook(async () => {\n await perp.configuration.update();\n });\n context.perp = perp;\n },\n };\n};\nexports.perpPlugin = perpPlugin;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Beacon__factory = void 0;\nconst ethers_1 = require(\"ethers\");\nconst _abi = [\n {\n inputs: [\n {\n internalType: 'address',\n name: '_impl',\n type: 'address',\n },\n {\n internalType: 'address',\n name: '_owner',\n type: 'address',\n },\n ],\n stateMutability: 'payable',\n type: 'constructor',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'previousOwner',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'newOwner',\n type: 'address',\n },\n ],\n name: 'OwnershipTransferred',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'implementation',\n type: 'address',\n },\n ],\n name: 'Upgraded',\n type: 'event',\n },\n {\n inputs: [],\n name: 'implementation',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'owner',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'renounceOwnership',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'newOwner',\n type: 'address',\n },\n ],\n name: 'transferOwnership',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'newImplementation',\n type: 'address',\n },\n ],\n name: 'upgradeTo',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n];\nclass Beacon__factory {\n static createInterface() {\n return new ethers_1.utils.Interface(_abi);\n }\n static connect(address, signerOrProvider) {\n return new ethers_1.Contract(address, _abi, signerOrProvider);\n }\n}\nexports.Beacon__factory = Beacon__factory;\nBeacon__factory.abi = _abi;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CexMarket__factory = void 0;\nconst ethers_1 = require(\"ethers\");\nconst _abi = [\n {\n inputs: [],\n name: 'BadEmaHalfTime',\n type: 'error',\n },\n {\n inputs: [],\n name: 'BadMaxChangeRatioPerSecond',\n type: 'error',\n },\n {\n inputs: [],\n name: 'BadMaxRawTimeDelta',\n type: 'error',\n },\n {\n inputs: [],\n name: 'BadMaxTimeDelta',\n type: 'error',\n },\n {\n inputs: [],\n name: 'CexNoFeeder',\n type: 'error',\n },\n {\n inputs: [],\n name: 'DecimalsExceed',\n type: 'error',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'token',\n type: 'address',\n },\n ],\n name: 'GetErc20DecimalsFailed',\n type: 'error',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'token',\n type: 'address',\n },\n ],\n name: 'GetErc20SymbolFailed',\n type: 'error',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'aggregator',\n type: 'address',\n },\n ],\n name: 'InvalidCexPrice',\n type: 'error',\n },\n {\n inputs: [],\n name: 'LengthMismatch',\n type: 'error',\n },\n {\n inputs: [],\n name: 'NotConverge',\n type: 'error',\n },\n {\n inputs: [],\n name: 'NotGate',\n type: 'error',\n },\n {\n inputs: [],\n name: 'NotSynFuturesV3Admin',\n type: 'error',\n },\n {\n inputs: [],\n name: 'QuoteNotSupported',\n type: 'error',\n },\n {\n inputs: [],\n name: 'WrongStatusToFetchMarkPrice',\n type: 'error',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n ],\n name: 'ClearStates',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'uint8',\n name: 'version',\n type: 'uint8',\n },\n ],\n name: 'Initialized',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'uint256',\n name: 'compactEmaParam',\n type: 'uint256',\n },\n ],\n name: 'SetCompactEmaParam',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n {\n components: [\n {\n internalType: 'enum FeederType',\n name: 'ftype',\n type: 'uint8',\n },\n {\n internalType: 'uint64',\n name: 'scaler0',\n type: 'uint64',\n },\n {\n internalType: 'address',\n name: 'aggregator0',\n type: 'address',\n },\n {\n internalType: 'uint24',\n name: 'heartBeat0',\n type: 'uint24',\n },\n {\n internalType: 'uint64',\n name: 'scaler1',\n type: 'uint64',\n },\n {\n internalType: 'address',\n name: 'aggregator1',\n type: 'address',\n },\n {\n internalType: 'uint24',\n name: 'heartBeat1',\n type: 'uint24',\n },\n ],\n indexed: false,\n internalType: 'struct PriceFeeder',\n name: 'feeder',\n type: 'tuple',\n },\n ],\n name: 'SetFeeder',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n components: [\n {\n internalType: 'uint32',\n name: 'time',\n type: 'uint32',\n },\n {\n internalType: 'uint224',\n name: 'raw',\n type: 'uint224',\n },\n {\n internalType: 'uint32',\n name: 'initTime',\n type: 'uint32',\n },\n {\n internalType: 'uint224',\n name: 'initMark',\n type: 'uint224',\n },\n {\n internalType: 'uint256',\n name: 'accumulation',\n type: 'uint256',\n },\n ],\n indexed: false,\n internalType: 'struct CexAccState',\n name: 'state',\n type: 'tuple',\n },\n ],\n name: 'UpdateAccState',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n {\n components: [\n {\n internalType: 'uint16',\n name: 'emaHalfTime',\n type: 'uint16',\n },\n {\n internalType: 'uint16',\n name: 'maxTimeDelta',\n type: 'uint16',\n },\n {\n internalType: 'uint16',\n name: 'maxRawTimeDelta',\n type: 'uint16',\n },\n {\n internalType: 'uint16',\n name: 'maxChangeRatioPerSecond',\n type: 'uint16',\n },\n ],\n indexed: false,\n internalType: 'struct EmaParam',\n name: 'emaParam',\n type: 'tuple',\n },\n ],\n name: 'UpdateEmaParam',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n {\n components: [\n {\n internalType: 'uint32',\n name: 'time',\n type: 'uint32',\n },\n {\n internalType: 'uint224',\n name: 'spot',\n type: 'uint224',\n },\n {\n internalType: 'uint256',\n name: 'raw',\n type: 'uint256',\n },\n ],\n indexed: false,\n internalType: 'struct SpotState',\n name: 'spotState',\n type: 'tuple',\n },\n ],\n name: 'UpdateSpotState',\n type: 'event',\n },\n {\n inputs: [\n {\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n ],\n name: 'clearStates',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'config',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n ],\n name: 'feeders',\n outputs: [\n {\n internalType: 'enum FeederType',\n name: 'ftype',\n type: 'uint8',\n },\n {\n internalType: 'uint64',\n name: 'scaler0',\n type: 'uint64',\n },\n {\n internalType: 'address',\n name: 'aggregator0',\n type: 'address',\n },\n {\n internalType: 'uint24',\n name: 'heartBeat0',\n type: 'uint24',\n },\n {\n internalType: 'uint64',\n name: 'scaler1',\n type: 'uint64',\n },\n {\n internalType: 'address',\n name: 'aggregator1',\n type: 'address',\n },\n {\n internalType: 'uint24',\n name: 'heartBeat1',\n type: 'uint24',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'gate',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n {\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n ],\n name: 'getAccState',\n outputs: [\n {\n components: [\n {\n internalType: 'uint32',\n name: 'time',\n type: 'uint32',\n },\n {\n internalType: 'uint224',\n name: 'raw',\n type: 'uint224',\n },\n {\n internalType: 'uint32',\n name: 'initTime',\n type: 'uint32',\n },\n {\n internalType: 'uint224',\n name: 'initMark',\n type: 'uint224',\n },\n {\n internalType: 'uint256',\n name: 'accumulation',\n type: 'uint256',\n },\n ],\n internalType: 'struct CexAccState',\n name: '',\n type: 'tuple',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'getAllInstruments',\n outputs: [\n {\n internalType: 'address[]',\n name: '',\n type: 'address[]',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n {\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n ],\n name: 'getBenchmarkPrice',\n outputs: [\n {\n internalType: 'uint256',\n name: 'benchmark',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'getCompactEmaParam',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n ],\n name: 'getEmaParam',\n outputs: [\n {\n components: [\n {\n internalType: 'uint16',\n name: 'emaHalfTime',\n type: 'uint16',\n },\n {\n internalType: 'uint16',\n name: 'maxTimeDelta',\n type: 'uint16',\n },\n {\n internalType: 'uint16',\n name: 'maxRawTimeDelta',\n type: 'uint16',\n },\n {\n internalType: 'uint16',\n name: 'maxChangeRatioPerSecond',\n type: 'uint16',\n },\n ],\n internalType: 'struct EmaParam',\n name: '',\n type: 'tuple',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n {\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n internalType: 'enum Status',\n name: 'status',\n type: 'uint8',\n },\n ],\n name: 'getMarkPrice',\n outputs: [\n {\n internalType: 'uint256',\n name: 'mark',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'getMarketType',\n outputs: [\n {\n internalType: 'string',\n name: '',\n type: 'string',\n },\n ],\n stateMutability: 'pure',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n ],\n name: 'getRawPrice',\n outputs: [\n {\n internalType: 'uint256',\n name: 'raw',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n ],\n name: 'getSpotPrice',\n outputs: [\n {\n internalType: 'uint256',\n name: 'spot',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n ],\n name: 'getSpotState',\n outputs: [\n {\n components: [\n {\n internalType: 'uint32',\n name: 'time',\n type: 'uint32',\n },\n {\n internalType: 'uint224',\n name: 'spot',\n type: 'uint224',\n },\n {\n internalType: 'uint256',\n name: 'raw',\n type: 'uint256',\n },\n ],\n internalType: 'struct SpotState',\n name: '',\n type: 'tuple',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint256',\n name: '_compactEmaParam',\n type: 'uint256',\n },\n ],\n name: 'initialize',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n name: 'instruments',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'instrumentsLength',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n internalType: 'enum Status',\n name: 'status',\n type: 'uint8',\n },\n ],\n name: 'markPrice',\n outputs: [\n {\n internalType: 'uint256',\n name: 'mark',\n type: 'uint256',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n {\n internalType: 'bytes',\n name: 'data',\n type: 'bytes',\n },\n ],\n name: 'prepareInstrument',\n outputs: [\n {\n internalType: 'bytes32',\n name: 'index',\n type: 'bytes32',\n },\n {\n internalType: 'address',\n name: 'base',\n type: 'address',\n },\n {\n internalType: 'bytes',\n name: 'initData',\n type: 'bytes',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint256',\n name: 'newCompactEmaParam',\n type: 'uint256',\n },\n ],\n name: 'setCompactEmaParam',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address[]',\n name: 'instruments',\n type: 'address[]',\n },\n {\n components: [\n {\n internalType: 'enum FeederType',\n name: 'ftype',\n type: 'uint8',\n },\n {\n internalType: 'uint64',\n name: 'scaler0',\n type: 'uint64',\n },\n {\n internalType: 'address',\n name: 'aggregator0',\n type: 'address',\n },\n {\n internalType: 'uint24',\n name: 'heartBeat0',\n type: 'uint24',\n },\n {\n internalType: 'uint64',\n name: 'scaler1',\n type: 'uint64',\n },\n {\n internalType: 'address',\n name: 'aggregator1',\n type: 'address',\n },\n {\n internalType: 'uint24',\n name: 'heartBeat1',\n type: 'uint24',\n },\n ],\n internalType: 'struct PriceFeeder[]',\n name: 'priceFeeders',\n type: 'tuple[]',\n },\n ],\n name: 'setFeeder',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'enum Leverage',\n name: 'leverage',\n type: 'uint8',\n },\n ],\n name: 'syncEmaParam',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n];\nclass CexMarket__factory {\n static createInterface() {\n return new ethers_1.utils.Interface(_abi);\n }\n static connect(address, signerOrProvider) {\n return new ethers_1.Contract(address, _abi, signerOrProvider);\n }\n}\nexports.CexMarket__factory = CexMarket__factory;\nCexMarket__factory.abi = _abi;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Config__factory = void 0;\nconst ethers_1 = require(\"ethers\");\nconst _abi = [\n {\n inputs: [\n {\n internalType: 'address',\n name: 'admin',\n type: 'address',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'constructor',\n },\n {\n inputs: [],\n name: 'BadMinMarginAmount',\n type: 'error',\n },\n {\n inputs: [],\n name: 'BadProtocolFeeRatio',\n type: 'error',\n },\n {\n inputs: [],\n name: 'BadTip',\n type: 'error',\n },\n {\n inputs: [],\n name: 'BadTradingFeeRatio',\n type: 'error',\n },\n {\n inputs: [],\n name: 'LengthMismatch',\n type: 'error',\n },\n {\n inputs: [],\n name: 'LiquidatorWhitelistAlreadyDisabled',\n type: 'error',\n },\n {\n inputs: [],\n name: 'LpWhitelistAlreadyDisabled',\n type: 'error',\n },\n {\n inputs: [\n {\n internalType: 'string',\n name: 'mtype',\n type: 'string',\n },\n ],\n name: 'ResetMarketInfo',\n type: 'error',\n },\n {\n inputs: [],\n name: 'SetMarketZeroAddress',\n type: 'error',\n },\n {\n anonymous: false,\n inputs: [],\n name: 'DisableLiquidatorWhitelist',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [],\n name: 'DisableLpWhitelist',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'address',\n name: 'quote',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'bool',\n name: 'restricted',\n type: 'bool',\n },\n ],\n name: 'EnableLpWhitelistForQuote',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'user',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'newOwner',\n type: 'address',\n },\n ],\n name: 'OwnershipTransferred',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'address',\n name: 'blastPointsAddress',\n type: 'address',\n },\n ],\n name: 'SetBlastPointsAddress',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'address',\n name: 'blastPointsOperator',\n type: 'address',\n },\n ],\n name: 'SetBlastPointsOperator',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'address',\n name: 'user',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'bool',\n name: 'authorized',\n type: 'bool',\n },\n ],\n name: 'SetLiquidatorWhitelist',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'address',\n name: 'user',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'bool',\n name: 'authorized',\n type: 'bool',\n },\n ],\n name: 'SetLpWhitelist',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'address',\n name: 'quote',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'address',\n name: 'user',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'bool',\n name: 'authorized',\n type: 'bool',\n },\n ],\n name: 'SetLpWhitelistForQuote',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'string',\n name: 'mtype',\n type: 'string',\n },\n {\n indexed: false,\n internalType: 'address',\n name: 'market',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'address',\n name: 'beacon',\n type: 'address',\n },\n ],\n name: 'SetMarketInfo',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'address',\n name: 'quote',\n type: 'address',\n },\n {\n components: [\n {\n internalType: 'uint128',\n name: 'minMarginAmount',\n type: 'uint128',\n },\n {\n internalType: 'uint16',\n name: 'tradingFeeRatio',\n type: 'uint16',\n },\n {\n internalType: 'uint16',\n name: 'protocolFeeRatio',\n type: 'uint16',\n },\n {\n internalType: 'uint64',\n name: 'stabilityFeeRatioParam',\n type: 'uint64',\n },\n {\n internalType: 'enum QuoteType',\n name: 'qtype',\n type: 'uint8',\n },\n {\n internalType: 'uint128',\n name: 'tip',\n type: 'uint128',\n },\n ],\n indexed: false,\n internalType: 'struct QuoteParam',\n name: 'param',\n type: 'tuple',\n },\n ],\n name: 'SetQuoteParam',\n type: 'event',\n },\n {\n inputs: [],\n name: 'blastPointsAddress',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'blastPointsOperator',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'disableLiquidatorWhitelist',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'disableLpWhitelist',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'quote',\n type: 'address',\n },\n {\n internalType: 'bool',\n name: 'enable',\n type: 'bool',\n },\n ],\n name: 'enableLpWhitelistForQuote',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'getAllMarkets',\n outputs: [\n {\n internalType: 'address[]',\n name: '',\n type: 'address[]',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'string',\n name: 'mtype',\n type: 'string',\n },\n ],\n name: 'getMarketInfo',\n outputs: [\n {\n components: [\n {\n internalType: 'string',\n name: 'mtype',\n type: 'string',\n },\n {\n internalType: 'address',\n name: 'market',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'beacon',\n type: 'address',\n },\n ],\n internalType: 'struct MarketInfo',\n name: '',\n type: 'tuple',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'quote',\n type: 'address',\n },\n ],\n name: 'getQuoteParam',\n outputs: [\n {\n components: [\n {\n internalType: 'uint128',\n name: 'minMarginAmount',\n type: 'uint128',\n },\n {\n internalType: 'uint16',\n name: 'tradingFeeRatio',\n type: 'uint16',\n },\n {\n internalType: 'uint16',\n name: 'protocolFeeRatio',\n type: 'uint16',\n },\n {\n internalType: 'uint64',\n name: 'stabilityFeeRatioParam',\n type: 'uint64',\n },\n {\n internalType: 'enum QuoteType',\n name: 'qtype',\n type: 'uint8',\n },\n {\n internalType: 'uint128',\n name: 'tip',\n type: 'uint128',\n },\n ],\n internalType: 'struct QuoteParam',\n name: '',\n type: 'tuple',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'user',\n type: 'address',\n },\n ],\n name: 'isAuthorizedLiquidator',\n outputs: [\n {\n internalType: 'bool',\n name: '',\n type: 'bool',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'quote',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'user',\n type: 'address',\n },\n ],\n name: 'isAuthorizedLp',\n outputs: [\n {\n internalType: 'bool',\n name: '',\n type: 'bool',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'user',\n type: 'address',\n },\n ],\n name: 'liquidatorWhitelist',\n outputs: [\n {\n internalType: 'bool',\n name: 'authorized',\n type: 'bool',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'quote',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'user',\n type: 'address',\n },\n ],\n name: 'lpWhitelist',\n outputs: [\n {\n internalType: 'bool',\n name: 'authorized',\n type: 'bool',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n name: 'markets',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'marketsLength',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'openLiquidator',\n outputs: [\n {\n internalType: 'bool',\n name: '',\n type: 'bool',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'openLp',\n outputs: [\n {\n internalType: 'bool',\n name: '',\n type: 'bool',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'owner',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: '_blastPointsAddress',\n type: 'address',\n },\n ],\n name: 'setBlastPointsAddress',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: '_blastPointsOperator',\n type: 'address',\n },\n ],\n name: 'setBlastPointsOperator',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'quote',\n type: 'address',\n },\n ],\n name: 'restrictLp',\n outputs: [\n {\n internalType: 'bool',\n name: 'restricted',\n type: 'bool',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address[]',\n name: 'users',\n type: 'address[]',\n },\n {\n internalType: 'bool[]',\n name: 'flags',\n type: 'bool[]',\n },\n ],\n name: 'setLiquidatorWhitelist',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address[]',\n name: 'quotes',\n type: 'address[]',\n },\n {\n internalType: 'address[]',\n name: 'users',\n type: 'address[]',\n },\n {\n internalType: 'bool[]',\n name: 'flags',\n type: 'bool[]',\n },\n ],\n name: 'setLpWhiteList',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'string',\n name: 'mtype',\n type: 'string',\n },\n {\n internalType: 'address',\n name: 'market',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'beacon',\n type: 'address',\n },\n ],\n name: 'setMarketInfo',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address[]',\n name: 'coins',\n type: 'address[]',\n },\n {\n components: [\n {\n internalType: 'uint128',\n name: 'minMarginAmount',\n type: 'uint128',\n },\n {\n internalType: 'uint16',\n name: 'tradingFeeRatio',\n type: 'uint16',\n },\n {\n internalType: 'uint16',\n name: 'protocolFeeRatio',\n type: 'uint16',\n },\n {\n internalType: 'uint64',\n name: 'stabilityFeeRatioParam',\n type: 'uint64',\n },\n {\n internalType: 'enum QuoteType',\n name: 'qtype',\n type: 'uint8',\n },\n {\n internalType: 'uint128',\n name: 'tip',\n type: 'uint128',\n },\n ],\n internalType: 'struct QuoteParam[]',\n name: 'params',\n type: 'tuple[]',\n },\n ],\n name: 'setQuoteParam',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'newOwner',\n type: 'address',\n },\n ],\n name: 'transferOwnership',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n];\nclass Config__factory {\n static createInterface() {\n return new ethers_1.utils.Interface(_abi);\n }\n static connect(address, signerOrProvider) {\n return new ethers_1.Contract(address, _abi, signerOrProvider);\n }\n}\nexports.Config__factory = Config__factory;\nConfig__factory.abi = _abi;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DexV2Market__factory = void 0;\nconst ethers_1 = require(\"ethers\");\nconst _abi = [\n {\n inputs: [\n {\n internalType: 'address',\n name: '_config',\n type: 'address',\n },\n {\n internalType: 'address',\n name: '_gate',\n type: 'address',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'constructor',\n },\n {\n inputs: [],\n name: 'BadEmaHalfTime',\n type: 'error',\n },\n {\n inputs: [],\n name: 'BadMaxChangeRatioPerSecond',\n type: 'error',\n },\n {\n inputs: [],\n name: 'BadMaxRawTimeDelta',\n type: 'error',\n },\n {\n inputs: [],\n name: 'BadMaxTimeDelta',\n type: 'error',\n },\n {\n inputs: [],\n name: 'CastUint256ToUint224Overflow',\n type: 'error',\n },\n {\n inputs: [],\n name: 'DecimalsExceed',\n type: 'error',\n },\n {\n inputs: [],\n name: 'DexV2NoFeeder',\n type: 'error',\n },\n {\n inputs: [],\n name: 'DexV2PairLiquidity',\n type: 'error',\n },\n {\n inputs: [],\n name: 'DexV2RepeatedFactory',\n type: 'error',\n },\n {\n inputs: [],\n name: 'DivByZero',\n type: 'error',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'token',\n type: 'address',\n },\n ],\n name: 'GetErc20DecimalsFailed',\n type: 'error',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'token',\n type: 'address',\n },\n ],\n name: 'GetErc20SymbolFailed',\n type: 'error',\n },\n {\n inputs: [],\n name: 'NotConverge',\n type: 'error',\n },\n {\n inputs: [],\n name: 'NotGate',\n type: 'error',\n },\n {\n inputs: [],\n name: 'NotSynFuturesV3Admin',\n type: 'error',\n },\n {\n inputs: [],\n name: 'QuoteNotSupported',\n type: 'error',\n },\n {\n inputs: [],\n name: 'WrongStatusToFetchMarkPrice',\n type: 'error',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'address',\n name: 'factory',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'number',\n type: 'uint256',\n },\n ],\n name: 'AddDexV2Factory',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n ],\n name: 'ClearStates',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'uint8',\n name: 'version',\n type: 'uint8',\n },\n ],\n name: 'Initialized',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'uint256',\n name: 'compactEmaParam',\n type: 'uint256',\n },\n ],\n name: 'SetCompactEmaParam',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n {\n components: [\n {\n internalType: 'enum FeederType',\n name: 'ftype',\n type: 'uint8',\n },\n {\n internalType: 'bool',\n name: 'isToken0Quote',\n type: 'bool',\n },\n {\n internalType: 'address',\n name: 'pair',\n type: 'address',\n },\n {\n internalType: 'uint64',\n name: 'scaler0',\n type: 'uint64',\n },\n {\n internalType: 'uint64',\n name: 'scaler1',\n type: 'uint64',\n },\n ],\n indexed: false,\n internalType: 'struct DexV2Feeder',\n name: 'feeder',\n type: 'tuple',\n },\n ],\n name: 'SetFeeder',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n components: [\n {\n internalType: 'uint32',\n name: 'initTime',\n type: 'uint32',\n },\n {\n internalType: 'uint224',\n name: 'initMark',\n type: 'uint224',\n },\n {\n internalType: 'uint256',\n name: 'initAccumulation',\n type: 'uint256',\n },\n ],\n indexed: false,\n internalType: 'struct DexV2AccState',\n name: 'accState',\n type: 'tuple',\n },\n ],\n name: 'UpdateAccState',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n {\n components: [\n {\n internalType: 'uint16',\n name: 'emaHalfTime',\n type: 'uint16',\n },\n {\n internalType: 'uint16',\n name: 'maxTimeDelta',\n type: 'uint16',\n },\n {\n internalType: 'uint16',\n name: 'maxRawTimeDelta',\n type: 'uint16',\n },\n {\n internalType: 'uint16',\n name: 'maxChangeRatioPerSecond',\n type: 'uint16',\n },\n ],\n indexed: false,\n internalType: 'struct EmaParam',\n name: 'emaParam',\n type: 'tuple',\n },\n ],\n name: 'UpdateEmaParam',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n {\n components: [\n {\n internalType: 'uint32',\n name: 'time',\n type: 'uint32',\n },\n {\n internalType: 'uint224',\n name: 'spot',\n type: 'uint224',\n },\n {\n internalType: 'uint256',\n name: 'raw',\n type: 'uint256',\n },\n ],\n indexed: false,\n internalType: 'struct SpotState',\n name: 'spotState',\n type: 'tuple',\n },\n ],\n name: 'UpdateSpotState',\n type: 'event',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'dexV2Factory',\n type: 'address',\n },\n ],\n name: 'addDexV2Factory',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n ],\n name: 'clearStates',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'config',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n ],\n name: 'feeders',\n outputs: [\n {\n internalType: 'enum FeederType',\n name: 'ftype',\n type: 'uint8',\n },\n {\n internalType: 'bool',\n name: 'isToken0Quote',\n type: 'bool',\n },\n {\n internalType: 'address',\n name: 'pair',\n type: 'address',\n },\n {\n internalType: 'uint64',\n name: 'scaler0',\n type: 'uint64',\n },\n {\n internalType: 'uint64',\n name: 'scaler1',\n type: 'uint64',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'gate',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n {\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n ],\n name: 'getAccState',\n outputs: [\n {\n components: [\n {\n internalType: 'uint32',\n name: 'initTime',\n type: 'uint32',\n },\n {\n internalType: 'uint224',\n name: 'initMark',\n type: 'uint224',\n },\n {\n internalType: 'uint256',\n name: 'initAccumulation',\n type: 'uint256',\n },\n ],\n internalType: 'struct DexV2AccState',\n name: '',\n type: 'tuple',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'getAllInstruments',\n outputs: [\n {\n internalType: 'address[]',\n name: '',\n type: 'address[]',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n {\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n ],\n name: 'getBenchmarkPrice',\n outputs: [\n {\n internalType: 'uint256',\n name: 'benchmark',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'getCompactEmaParam',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'getDexV2Factories',\n outputs: [\n {\n internalType: 'address[]',\n name: '',\n type: 'address[]',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n ],\n name: 'getEmaParam',\n outputs: [\n {\n components: [\n {\n internalType: 'uint16',\n name: 'emaHalfTime',\n type: 'uint16',\n },\n {\n internalType: 'uint16',\n name: 'maxTimeDelta',\n type: 'uint16',\n },\n {\n internalType: 'uint16',\n name: 'maxRawTimeDelta',\n type: 'uint16',\n },\n {\n internalType: 'uint16',\n name: 'maxChangeRatioPerSecond',\n type: 'uint16',\n },\n ],\n internalType: 'struct EmaParam',\n name: '',\n type: 'tuple',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n {\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n internalType: 'enum Status',\n name: 'status',\n type: 'uint8',\n },\n ],\n name: 'getMarkPrice',\n outputs: [\n {\n internalType: 'uint256',\n name: 'mark',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'getMarketType',\n outputs: [\n {\n internalType: 'string',\n name: '',\n type: 'string',\n },\n ],\n stateMutability: 'pure',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n ],\n name: 'getRawPrice',\n outputs: [\n {\n internalType: 'uint256',\n name: 'raw',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n ],\n name: 'getSpotPrice',\n outputs: [\n {\n internalType: 'uint256',\n name: 'spot',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n ],\n name: 'getSpotState',\n outputs: [\n {\n components: [\n {\n internalType: 'uint32',\n name: 'time',\n type: 'uint32',\n },\n {\n internalType: 'uint224',\n name: 'spot',\n type: 'uint224',\n },\n {\n internalType: 'uint256',\n name: 'raw',\n type: 'uint256',\n },\n ],\n internalType: 'struct SpotState',\n name: '',\n type: 'tuple',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint256',\n name: '_emaParam',\n type: 'uint256',\n },\n {\n internalType: 'address[]',\n name: '_factories',\n type: 'address[]',\n },\n ],\n name: 'initialize',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint256',\n name: '_compactEmaParam',\n type: 'uint256',\n },\n ],\n name: 'initialize',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n name: 'instruments',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'instrumentsLength',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n internalType: 'enum Status',\n name: 'status',\n type: 'uint8',\n },\n ],\n name: 'markPrice',\n outputs: [\n {\n internalType: 'uint256',\n name: 'mark',\n type: 'uint256',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n {\n internalType: 'bytes',\n name: 'data',\n type: 'bytes',\n },\n ],\n name: 'prepareInstrument',\n outputs: [\n {\n internalType: 'bytes32',\n name: 'index',\n type: 'bytes32',\n },\n {\n internalType: 'address',\n name: 'base',\n type: 'address',\n },\n {\n internalType: 'bytes',\n name: 'initData',\n type: 'bytes',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint256',\n name: 'newCompactEmaParam',\n type: 'uint256',\n },\n ],\n name: 'setCompactEmaParam',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'enum Leverage',\n name: 'leverage',\n type: 'uint8',\n },\n ],\n name: 'syncEmaParam',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n ],\n name: 'updateFeeder',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n];\nclass DexV2Market__factory {\n static createInterface() {\n return new ethers_1.utils.Interface(_abi);\n }\n static connect(address, signerOrProvider) {\n return new ethers_1.Contract(address, _abi, signerOrProvider);\n }\n}\nexports.DexV2Market__factory = DexV2Market__factory;\nDexV2Market__factory.abi = _abi;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EmergingFeederFactory__factory = void 0;\nconst ethers_1 = require(\"ethers\");\nconst _abi = [\n {\n inputs: [\n {\n internalType: 'address',\n name: '_guardian',\n type: 'address',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'constructor',\n },\n {\n inputs: [],\n name: 'FeederAlreadyCreated',\n type: 'error',\n },\n {\n inputs: [],\n name: 'InvalidInput',\n type: 'error',\n },\n {\n inputs: [],\n name: 'InvalidLength',\n type: 'error',\n },\n {\n inputs: [],\n name: 'NoFeeder',\n type: 'error',\n },\n {\n inputs: [],\n name: 'NotOperator',\n type: 'error',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'feeder',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'bytes32',\n name: 'baseIndex',\n type: 'bytes32',\n },\n ],\n name: 'FeederCreated',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'uint8',\n name: 'version',\n type: 'uint8',\n },\n ],\n name: 'Initialized',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n {\n indexed: true,\n internalType: 'bytes32',\n name: 'previousAdminRole',\n type: 'bytes32',\n },\n {\n indexed: true,\n internalType: 'bytes32',\n name: 'newAdminRole',\n type: 'bytes32',\n },\n ],\n name: 'RoleAdminChanged',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'sender',\n type: 'address',\n },\n ],\n name: 'RoleGranted',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'sender',\n type: 'address',\n },\n ],\n name: 'RoleRevoked',\n type: 'event',\n },\n {\n inputs: [],\n name: 'DEFAULT_ADMIN_ROLE',\n outputs: [\n {\n internalType: 'bytes32',\n name: '',\n type: 'bytes32',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'OPERATOR_ROLE',\n outputs: [\n {\n internalType: 'bytes32',\n name: '',\n type: 'bytes32',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n name: 'allFeeders',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'baseIndex',\n type: 'bytes32',\n },\n ],\n name: 'baseIndexToFeeder',\n outputs: [\n {\n internalType: 'address',\n name: 'feeder',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32[]',\n name: 'baseIndexes',\n type: 'bytes32[]',\n },\n {\n internalType: 'bytes32[]',\n name: 'args',\n type: 'bytes32[]',\n },\n ],\n name: 'batchCreateFeeder',\n outputs: [\n {\n internalType: 'address[]',\n name: 'newFeeders',\n type: 'address[]',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32[]',\n name: 'baseIndexes',\n type: 'bytes32[]',\n },\n ],\n name: 'batchGetPrice',\n outputs: [\n {\n internalType: 'uint128[]',\n name: 'prices',\n type: 'uint128[]',\n },\n {\n internalType: 'uint32[]',\n name: 'timestamps',\n type: 'uint32[]',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32[]',\n name: 'baseIndexes',\n type: 'bytes32[]',\n },\n {\n internalType: 'bytes32[]',\n name: 'args',\n type: 'bytes32[]',\n },\n ],\n name: 'batchSetRawPrice',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'beacon',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'baseIndex',\n type: 'bytes32',\n },\n {\n internalType: 'uint128',\n name: 'priceE8',\n type: 'uint128',\n },\n ],\n name: 'createFeeder',\n outputs: [\n {\n internalType: 'address',\n name: 'newFeeder',\n type: 'address',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'feeder',\n type: 'address',\n },\n ],\n name: 'feederToBaseIndex',\n outputs: [\n {\n internalType: 'bytes32',\n name: 'baseIndex',\n type: 'bytes32',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'getAllFeeders',\n outputs: [\n {\n internalType: 'address[]',\n name: '',\n type: 'address[]',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'getAllFeedersLength',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'getAllIndexes',\n outputs: [\n {\n internalType: 'bytes32[]',\n name: '',\n type: 'bytes32[]',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'baseIndex',\n type: 'bytes32',\n },\n ],\n name: 'getDecimals',\n outputs: [\n {\n internalType: 'uint8',\n name: '',\n type: 'uint8',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'baseIndex',\n type: 'bytes32',\n },\n ],\n name: 'getPrice',\n outputs: [\n {\n internalType: 'uint128',\n name: 'price',\n type: 'uint128',\n },\n {\n internalType: 'uint32',\n name: 'timestamp',\n type: 'uint32',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n ],\n name: 'getRoleAdmin',\n outputs: [\n {\n internalType: 'bytes32',\n name: '',\n type: 'bytes32',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n {\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n ],\n name: 'grantRole',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'guardian',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n {\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n ],\n name: 'hasRole',\n outputs: [\n {\n internalType: 'bool',\n name: '',\n type: 'bool',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'admin',\n type: 'address',\n },\n {\n internalType: 'address[]',\n name: 'operators',\n type: 'address[]',\n },\n ],\n name: 'initialize',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n {\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n ],\n name: 'renounceRole',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n {\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n ],\n name: 'revokeRole',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'baseIndex',\n type: 'bytes32',\n },\n {\n internalType: 'uint128',\n name: 'priceE8',\n type: 'uint128',\n },\n ],\n name: 'setRawPrice',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes4',\n name: 'interfaceId',\n type: 'bytes4',\n },\n ],\n name: 'supportsInterface',\n outputs: [\n {\n internalType: 'bool',\n name: '',\n type: 'bool',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n];\nclass EmergingFeederFactory__factory {\n static createInterface() {\n return new ethers_1.utils.Interface(_abi);\n }\n static connect(address, signerOrProvider) {\n return new ethers_1.Contract(address, _abi, signerOrProvider);\n }\n}\nexports.EmergingFeederFactory__factory = EmergingFeederFactory__factory;\nEmergingFeederFactory__factory.abi = _abi;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EmergingFeeder__factory = void 0;\nconst ethers_1 = require(\"ethers\");\nconst _abi = [\n {\n inputs: [\n {\n internalType: 'address',\n name: '_factory',\n type: 'address',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'constructor',\n },\n {\n inputs: [],\n name: 'NotRegistry',\n type: 'error',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'uint8',\n name: 'version',\n type: 'uint8',\n },\n ],\n name: 'Initialized',\n type: 'event',\n },\n {\n inputs: [],\n name: 'currentPrice',\n outputs: [\n {\n internalType: 'uint128',\n name: '',\n type: 'uint128',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'decimals',\n outputs: [\n {\n internalType: 'uint8',\n name: '',\n type: 'uint8',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'factory',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint8',\n name: '_decimals',\n type: 'uint8',\n },\n {\n internalType: 'uint128',\n name: 'priceE8',\n type: 'uint128',\n },\n {\n internalType: 'address',\n name: 'guardian',\n type: 'address',\n },\n ],\n name: 'initialize',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'lastUpdatedTimestamp',\n outputs: [\n {\n internalType: 'uint64',\n name: '',\n type: 'uint64',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'latestRoundData',\n outputs: [\n {\n internalType: 'uint80',\n name: '',\n type: 'uint80',\n },\n {\n internalType: 'int256',\n name: '',\n type: 'int256',\n },\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n {\n internalType: 'uint80',\n name: '',\n type: 'uint80',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint128',\n name: 'priceE8',\n type: 'uint128',\n },\n ],\n name: 'setRawPrice',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n];\nclass EmergingFeeder__factory {\n static createInterface() {\n return new ethers_1.utils.Interface(_abi);\n }\n static connect(address, signerOrProvider) {\n return new ethers_1.Contract(address, _abi, signerOrProvider);\n }\n}\nexports.EmergingFeeder__factory = EmergingFeeder__factory;\nEmergingFeeder__factory.abi = _abi;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Gate__factory = void 0;\nconst ethers_1 = require(\"ethers\");\nconst _abi = [\n {\n inputs: [\n {\n internalType: 'address',\n name: '_weth',\n type: 'address',\n },\n {\n internalType: 'address',\n name: '_config',\n type: 'address',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'constructor',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'expected',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'actual',\n type: 'address',\n },\n ],\n name: 'BadInstrumentAddress',\n type: 'error',\n },\n {\n inputs: [],\n name: 'BlacklistedTrader',\n type: 'error',\n },\n {\n inputs: [],\n name: 'InstrumentExists',\n type: 'error',\n },\n {\n inputs: [\n {\n internalType: 'uint256',\n name: 'requested',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'reserve',\n type: 'uint256',\n },\n ],\n name: 'InsufficientReserve',\n type: 'error',\n },\n {\n inputs: [],\n name: 'InvalidMsgValue',\n type: 'error',\n },\n {\n inputs: [],\n name: 'MarketTypeNotSupported',\n type: 'error',\n },\n {\n inputs: [\n {\n internalType: 'bytes',\n name: 'lowLevelData',\n type: 'bytes',\n },\n ],\n name: 'NewInstrumentFailed',\n type: 'error',\n },\n {\n inputs: [],\n name: 'NoDirectDeposit',\n type: 'error',\n },\n {\n inputs: [],\n name: 'NotInstrument',\n type: 'error',\n },\n {\n inputs: [],\n name: 'NotSynFuturesV3Admin',\n type: 'error',\n },\n {\n inputs: [],\n name: 'PendingDurationTooLong',\n type: 'error',\n },\n {\n inputs: [],\n name: 'PendingWithdrawNotMature',\n type: 'error',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'token',\n type: 'address',\n },\n ],\n name: 'UnsafeToken',\n type: 'error',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'trader',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'bool',\n name: 'banned',\n type: 'bool',\n },\n ],\n name: 'Blacklist',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'quote',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'trader',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'quantity',\n type: 'uint256',\n },\n ],\n name: 'Deposit',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'quote',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'trader',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'quantity',\n type: 'uint256',\n },\n ],\n name: 'Gather',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'uint8',\n name: 'version',\n type: 'uint8',\n },\n ],\n name: 'Initialized',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'bytes32',\n name: 'index',\n type: 'bytes32',\n },\n {\n indexed: false,\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'address',\n name: 'base',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'address',\n name: 'quote',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'string',\n name: 'symbol',\n type: 'string',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'total',\n type: 'uint256',\n },\n ],\n name: 'NewInstrument',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'quote',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'trader',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'quantity',\n type: 'uint256',\n },\n ],\n name: 'Scatter',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'uint256',\n name: 'duration',\n type: 'uint256',\n },\n ],\n name: 'SetPendingDuration',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'quote',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'threshold',\n type: 'uint256',\n },\n ],\n name: 'SetThreshold',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'quote',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'trader',\n type: 'address',\n },\n {\n components: [\n {\n internalType: 'uint32',\n name: 'timestamp',\n type: 'uint32',\n },\n {\n internalType: 'bool',\n name: 'native',\n type: 'bool',\n },\n {\n internalType: 'uint96',\n name: 'amount',\n type: 'uint96',\n },\n {\n internalType: 'uint120',\n name: 'exemption',\n type: 'uint120',\n },\n ],\n indexed: false,\n internalType: 'struct Pending',\n name: 'pending',\n type: 'tuple',\n },\n ],\n name: 'UpdatePending',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'quote',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'trader',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'quantity',\n type: 'uint256',\n },\n ],\n name: 'Withdraw',\n type: 'event',\n },\n {\n inputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n name: 'allInstruments',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'allInstrumentsLength',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'quote',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'to',\n type: 'address',\n },\n ],\n name: 'claimYield',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'config',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'quote',\n type: 'address',\n },\n {\n internalType: 'enum YieldMode',\n name: 'yieldMode',\n type: 'uint8',\n },\n ],\n name: 'configureYieldMode',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'arg',\n type: 'bytes32',\n },\n ],\n name: 'deposit',\n outputs: [],\n stateMutability: 'payable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'quote',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'trader',\n type: 'address',\n },\n ],\n name: 'fundFlowOf',\n outputs: [\n {\n components: [\n {\n internalType: 'uint128',\n name: 'totalIn',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'totalOut',\n type: 'uint128',\n },\n ],\n internalType: 'struct FundFlow',\n name: 'fundFlow',\n type: 'tuple',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'quote',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'trader',\n type: 'address',\n },\n {\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n internalType: 'uint256',\n name: 'quantity',\n type: 'uint256',\n },\n ],\n name: 'gather',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'getAllInstruments',\n outputs: [\n {\n internalType: 'address[]',\n name: '',\n type: 'address[]',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n ],\n name: 'indexOf',\n outputs: [\n {\n internalType: 'bytes32',\n name: 'index',\n type: 'bytes32',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'instrumentInitData',\n outputs: [\n {\n internalType: 'bytes',\n name: '',\n type: 'bytes',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'user',\n type: 'address',\n },\n ],\n name: 'isBlacklisted',\n outputs: [\n {\n internalType: 'bool',\n name: '',\n type: 'bool',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'string',\n name: 'mtype',\n type: 'string',\n },\n {\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n {\n internalType: 'bytes',\n name: 'data',\n type: 'bytes',\n },\n {\n internalType: 'bytes32[2]',\n name: 'addArgs',\n type: 'bytes32[2]',\n },\n ],\n name: 'launch',\n outputs: [\n {\n internalType: 'int24',\n name: 'tickLower',\n type: 'int24',\n },\n {\n internalType: 'int24',\n name: 'tickUpper',\n type: 'int24',\n },\n {\n components: [\n {\n internalType: 'uint128',\n name: 'liquidity',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'entryFeeIndex',\n type: 'uint128',\n },\n {\n internalType: 'uint96',\n name: 'balance',\n type: 'uint96',\n },\n {\n internalType: 'uint160',\n name: 'sqrtEntryPX96',\n type: 'uint160',\n },\n ],\n internalType: 'struct Range',\n name: 'range',\n type: 'tuple',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'pendingDuration',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'quote',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'trader',\n type: 'address',\n },\n ],\n name: 'pendingOf',\n outputs: [\n {\n components: [\n {\n internalType: 'uint32',\n name: 'timestamp',\n type: 'uint32',\n },\n {\n internalType: 'bool',\n name: 'native',\n type: 'bool',\n },\n {\n internalType: 'uint96',\n name: 'amount',\n type: 'uint96',\n },\n {\n internalType: 'uint120',\n name: 'exemption',\n type: 'uint120',\n },\n ],\n internalType: 'struct Pending',\n name: 'pending',\n type: 'tuple',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'quote',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'trader',\n type: 'address',\n },\n ],\n name: 'release',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'quote',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'user',\n type: 'address',\n },\n ],\n name: 'reserveOf',\n outputs: [\n {\n internalType: 'uint256',\n name: 'balance',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'quote',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'trader',\n type: 'address',\n },\n {\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n internalType: 'uint256',\n name: 'quantity',\n type: 'uint256',\n },\n ],\n name: 'scatter',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'trader',\n type: 'address',\n },\n {\n internalType: 'bool',\n name: 'banned',\n type: 'bool',\n },\n ],\n name: 'setBlacklist',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint256',\n name: 'duration',\n type: 'uint256',\n },\n ],\n name: 'setPendingDuration',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'quote',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: 'threshold',\n type: 'uint256',\n },\n ],\n name: 'setThreshold',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'syncPointsOperator',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'quote',\n type: 'address',\n },\n ],\n name: 'thresholdOf',\n outputs: [\n {\n internalType: 'uint256',\n name: 'threshold',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'weth',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'arg',\n type: 'bytes32',\n },\n ],\n name: 'withdraw',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n stateMutability: 'payable',\n type: 'receive',\n },\n];\nclass Gate__factory {\n static createInterface() {\n return new ethers_1.utils.Interface(_abi);\n }\n static connect(address, signerOrProvider) {\n return new ethers_1.Contract(address, _abi, signerOrProvider);\n }\n}\nexports.Gate__factory = Gate__factory;\nGate__factory.abi = _abi;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Guardian__factory = void 0;\nconst ethers_1 = require(\"ethers\");\nconst _abi = [\n {\n inputs: [],\n stateMutability: 'nonpayable',\n type: 'constructor',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'token',\n type: 'address',\n },\n ],\n name: 'GetErc20DecimalsFailed',\n type: 'error',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'token',\n type: 'address',\n },\n ],\n name: 'GetErc20SymbolFailed',\n type: 'error',\n },\n {\n inputs: [],\n name: 'LengthMismatch',\n type: 'error',\n },\n {\n inputs: [],\n name: 'NotAdmin',\n type: 'error',\n },\n {\n inputs: [],\n name: 'NotGasClaimer',\n type: 'error',\n },\n {\n inputs: [],\n name: 'NotAdminOrVaultFactory',\n type: 'error',\n },\n {\n inputs: [],\n name: 'NotOperator',\n type: 'error',\n },\n {\n inputs: [],\n name: 'NotYieldClaimer',\n type: 'error',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'uint8',\n name: 'version',\n type: 'uint8',\n },\n ],\n name: 'Initialized',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n {\n indexed: true,\n internalType: 'bytes32',\n name: 'previousAdminRole',\n type: 'bytes32',\n },\n {\n indexed: true,\n internalType: 'bytes32',\n name: 'newAdminRole',\n type: 'bytes32',\n },\n ],\n name: 'RoleAdminChanged',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'sender',\n type: 'address',\n },\n ],\n name: 'RoleGranted',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'sender',\n type: 'address',\n },\n ],\n name: 'RoleRevoked',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'address',\n name: 'blastFeeTo',\n type: 'address',\n },\n ],\n name: 'SetBlastFeeToAddress',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'address',\n name: 'blastYieldTo',\n type: 'address',\n },\n ],\n name: 'SetBlastYieldToAddress',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'address',\n name: 'to',\n type: 'address',\n },\n ],\n name: 'SetToAddress',\n type: 'event',\n },\n {\n inputs: [],\n name: 'DEFAULT_ADMIN_ROLE',\n outputs: [\n {\n internalType: 'bytes32',\n name: '',\n type: 'bytes32',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'GAS_CLAIMER_ROLE',\n outputs: [\n {\n internalType: 'bytes32',\n name: '',\n type: 'bytes32',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'OPERATOR_ROLE',\n outputs: [\n {\n internalType: 'bytes32',\n name: '',\n type: 'bytes32',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'YIELD_CLAIMER_ROLE',\n outputs: [\n {\n internalType: 'bytes32',\n name: '',\n type: 'bytes32',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'VAULT_FACTORY_ROLE',\n outputs: [\n {\n internalType: 'bytes32',\n name: '',\n type: 'bytes32',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'dexV2Factory',\n type: 'address',\n },\n ],\n name: 'addDexV2Factory',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'blastFeeTo',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'blastYieldTo',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address[]',\n name: 'contractAddresses',\n type: 'address[]',\n },\n ],\n name: 'claimAllGas',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address[]',\n name: 'contractAddresses',\n type: 'address[]',\n },\n {\n internalType: 'uint256',\n name: 'minClaimRateBips',\n type: 'uint256',\n },\n ],\n name: 'claimGasAtMinClaimRate',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address[]',\n name: 'contractAddresses',\n type: 'address[]',\n },\n ],\n name: 'claimMaxGas',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address[]',\n name: 'instruments',\n type: 'address[]',\n },\n {\n internalType: 'uint32[]',\n name: 'expiries',\n type: 'uint32[]',\n },\n ],\n name: 'claimProtocolFee',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'quote',\n type: 'address',\n },\n ],\n name: 'claimYield',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'config',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'quote',\n type: 'address',\n },\n {\n internalType: 'enum YieldMode',\n name: 'yieldMode',\n type: 'uint8',\n },\n ],\n name: 'configureYieldMode',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'disableLiquidatorWhitelist',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'disableLpWhitelist',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'emergingFeederFactory',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'quote',\n type: 'address',\n },\n {\n internalType: 'bool',\n name: 'enable',\n type: 'bool',\n },\n ],\n name: 'enableLpWhitelistForQuote',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address[]',\n name: 'instruments',\n type: 'address[]',\n },\n ],\n name: 'freeze',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'gate',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n ],\n name: 'getRoleAdmin',\n outputs: [\n {\n internalType: 'bytes32',\n name: '',\n type: 'bytes32',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address[]',\n name: 'operators',\n type: 'address[]',\n },\n ],\n name: 'grantEmergingFeederFactoryOperator',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address[]',\n name: 'operators',\n type: 'address[]',\n },\n ],\n name: 'grantPythFeederFactoryOperator',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n {\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n ],\n name: 'grantRole',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n {\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n ],\n name: 'hasRole',\n outputs: [\n {\n internalType: 'bool',\n name: '',\n type: 'bool',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: '_admin',\n type: 'address',\n },\n {\n internalType: 'address[]',\n name: '_operator',\n type: 'address[]',\n },\n {\n internalType: 'address',\n name: '_to',\n type: 'address',\n },\n ],\n name: 'initialize',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes[]',\n name: 'data',\n type: 'bytes[]',\n },\n ],\n name: 'multicall',\n outputs: [\n {\n internalType: 'bytes[]',\n name: 'results',\n type: 'bytes[]',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address[]',\n name: 'instruments',\n type: 'address[]',\n },\n ],\n name: 'normalize',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'pythFeederFactory',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address[]',\n name: 'contractAddresses',\n type: 'address[]',\n },\n ],\n name: 'readGasParams',\n outputs: [\n {\n internalType: 'uint256[]',\n name: 'etherSeconds',\n type: 'uint256[]',\n },\n {\n internalType: 'uint256[]',\n name: 'etherBalance',\n type: 'uint256[]',\n },\n {\n internalType: 'uint256[]',\n name: 'lastUpdated',\n type: 'uint256[]',\n },\n {\n internalType: 'enum GasMode[]',\n name: 'gasModes',\n type: 'uint8[]',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address[]',\n name: 'contractAddresses',\n type: 'address[]',\n },\n {\n internalType: 'address',\n name: 'quote',\n type: 'address',\n },\n ],\n name: 'readYieldClaimableAmount',\n outputs: [\n {\n internalType: 'uint256[]',\n name: 'claimable',\n type: 'uint256[]',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address[]',\n name: 'instruments',\n type: 'address[]',\n },\n {\n internalType: 'uint32[]',\n name: 'expiries',\n type: 'uint32[]',\n },\n ],\n name: 'recycleInsuranceFund',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address[]',\n name: 'quotes',\n type: 'address[]',\n },\n {\n internalType: 'address[]',\n name: 'traders',\n type: 'address[]',\n },\n ],\n name: 'release',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n {\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n ],\n name: 'renounceRole',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address[]',\n name: 'instruments',\n type: 'address[]',\n },\n {\n internalType: 'uint128[]',\n name: 'settlementPrices',\n type: 'uint128[]',\n },\n ],\n name: 'resolve',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address[]',\n name: 'operators',\n type: 'address[]',\n },\n ],\n name: 'revokeEmergingFeederFactoryOperator',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address[]',\n name: 'operators',\n type: 'address[]',\n },\n ],\n name: 'revokePythFeederFactoryOperator',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n {\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n ],\n name: 'revokeRole',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address[]',\n name: 'traders',\n type: 'address[]',\n },\n {\n internalType: 'bool[]',\n name: 'banned',\n type: 'bool[]',\n },\n ],\n name: 'setBlacklist',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: '_blastFeeTo',\n type: 'address',\n },\n ],\n name: 'setBlastFeeToAddress',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'pointsAddress',\n type: 'address',\n },\n ],\n name: 'setBlastPointsAddress',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'operator',\n type: 'address',\n },\n ],\n name: 'setBlastPointsOperator',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: '_blastYieldTo',\n type: 'address',\n },\n ],\n name: 'setBlastYieldToAddress',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'string',\n name: 'marketType',\n type: 'string',\n },\n {\n internalType: 'address[]',\n name: 'instruments',\n type: 'address[]',\n },\n {\n components: [\n {\n internalType: 'enum FeederType',\n name: 'ftype',\n type: 'uint8',\n },\n {\n internalType: 'uint64',\n name: 'scaler0',\n type: 'uint64',\n },\n {\n internalType: 'address',\n name: 'aggregator0',\n type: 'address',\n },\n {\n internalType: 'uint24',\n name: 'heartBeat0',\n type: 'uint24',\n },\n {\n internalType: 'uint64',\n name: 'scaler1',\n type: 'uint64',\n },\n {\n internalType: 'address',\n name: 'aggregator1',\n type: 'address',\n },\n {\n internalType: 'uint24',\n name: 'heartBeat1',\n type: 'uint24',\n },\n ],\n internalType: 'struct PriceFeeder[]',\n name: 'priceFeeders',\n type: 'tuple[]',\n },\n ],\n name: 'setCexMarketPriceFeeder',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'string',\n name: 'marketType',\n type: 'string',\n },\n {\n internalType: 'uint256',\n name: 'newCompactEmaParam',\n type: 'uint256',\n },\n ],\n name: 'setCompactEmaParam',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: '_config',\n type: 'address',\n },\n {\n internalType: 'address',\n name: '_gate',\n type: 'address',\n },\n ],\n name: 'setConfigAndGateAddress',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address[]',\n name: 'coins',\n type: 'address[]',\n },\n {\n components: [\n {\n internalType: 'uint128',\n name: 'minMarginAmount',\n type: 'uint128',\n },\n {\n internalType: 'uint16',\n name: 'tradingFeeRatio',\n type: 'uint16',\n },\n {\n internalType: 'uint16',\n name: 'protocolFeeRatio',\n type: 'uint16',\n },\n {\n internalType: 'uint64',\n name: 'stabilityFeeRatioParam',\n type: 'uint64',\n },\n {\n internalType: 'enum QuoteType',\n name: 'qtype',\n type: 'uint8',\n },\n {\n internalType: 'uint128',\n name: 'tip',\n type: 'uint128',\n },\n ],\n internalType: 'struct QuoteParam[]',\n name: 'params',\n type: 'tuple[]',\n },\n ],\n name: 'setConfigQuoteParam',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: '_emergingFeederFactory',\n type: 'address',\n },\n ],\n name: 'setEmergingFeederFactoryAddress',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address[]',\n name: 'instruments',\n type: 'address[]',\n },\n {\n internalType: 'uint8[]',\n name: 'params',\n type: 'uint8[]',\n },\n ],\n name: 'setFundingHour',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address[]',\n name: 'instruments',\n type: 'address[]',\n },\n {\n internalType: 'uint16[]',\n name: 'imrs',\n type: 'uint16[]',\n },\n {\n internalType: 'uint16[]',\n name: 'mmrs',\n type: 'uint16[]',\n },\n ],\n name: 'setInstrumentLeverage',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address[]',\n name: 'instruments',\n type: 'address[]',\n },\n {\n components: [\n {\n internalType: 'uint128',\n name: 'minMarginAmount',\n type: 'uint128',\n },\n {\n internalType: 'uint16',\n name: 'tradingFeeRatio',\n type: 'uint16',\n },\n {\n internalType: 'uint16',\n name: 'protocolFeeRatio',\n type: 'uint16',\n },\n {\n internalType: 'uint64',\n name: 'stabilityFeeRatioParam',\n type: 'uint64',\n },\n {\n internalType: 'enum QuoteType',\n name: 'qtype',\n type: 'uint8',\n },\n {\n internalType: 'uint128',\n name: 'tip',\n type: 'uint128',\n },\n ],\n internalType: 'struct QuoteParam[]',\n name: 'params',\n type: 'tuple[]',\n },\n ],\n name: 'setInstrumentQuoteParam',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address[]',\n name: 'users',\n type: 'address[]',\n },\n {\n internalType: 'bool[]',\n name: 'flags',\n type: 'bool[]',\n },\n ],\n name: 'setLiquidatorWhitelist',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address[]',\n name: 'quotes',\n type: 'address[]',\n },\n {\n internalType: 'address[]',\n name: 'users',\n type: 'address[]',\n },\n {\n internalType: 'bool[]',\n name: 'flags',\n type: 'bool[]',\n },\n ],\n name: 'setLpWhiteList',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'string',\n name: 'mtype',\n type: 'string',\n },\n {\n internalType: 'address',\n name: 'market',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'beacon',\n type: 'address',\n },\n ],\n name: 'setMarketInfo',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint256',\n name: 'duration',\n type: 'uint256',\n },\n ],\n name: 'setPendingDuration',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address[]',\n name: 'instruments',\n type: 'address[]',\n },\n {\n internalType: 'bool[]',\n name: 'params',\n type: 'bool[]',\n },\n ],\n name: 'setPlacePaused',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: '_pythFeederFactory',\n type: 'address',\n },\n ],\n name: 'setPythFeederFactoryAddress',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'baseIndex',\n type: 'bytes32',\n },\n {\n internalType: 'bytes32',\n name: '_id',\n type: 'bytes32',\n },\n ],\n name: 'setPythFeederId',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'newAdmin',\n type: 'address',\n },\n ],\n name: 'setSynFuturesV3Admin',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address[]',\n name: 'quotes',\n type: 'address[]',\n },\n {\n internalType: 'uint256[]',\n name: 'thresholds',\n type: 'uint256[]',\n },\n ],\n name: 'setThreshold',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: '_to',\n type: 'address',\n },\n ],\n name: 'setToAddress',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes4',\n name: 'interfaceId',\n type: 'bytes4',\n },\n ],\n name: 'supportsInterface',\n outputs: [\n {\n internalType: 'bool',\n name: '',\n type: 'bool',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'syncPointsOperator',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'to',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'newAdmin',\n type: 'address',\n },\n ],\n name: 'transferEmergingFeederFactoryAdmin',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'newAdmin',\n type: 'address',\n },\n ],\n name: 'transferPythFeederFactoryAdmin',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address[]',\n name: 'quotes',\n type: 'address[]',\n },\n {\n internalType: 'uint256[]',\n name: 'amounts',\n type: 'uint256[]',\n },\n ],\n name: 'withdrawFromGate',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address[]',\n name: 'tokens',\n type: 'address[]',\n },\n ],\n name: 'withdrawFromGuardian',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n];\nclass Guardian__factory {\n static createInterface() {\n return new ethers_1.utils.Interface(_abi);\n }\n static connect(address, signerOrProvider) {\n return new ethers_1.Contract(address, _abi, signerOrProvider);\n }\n}\nexports.Guardian__factory = Guardian__factory;\nGuardian__factory.abi = _abi;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ICexPriceFeeder__factory = void 0;\nconst ethers_1 = require(\"ethers\");\nconst _abi = [\n {\n inputs: [],\n name: 'decimals',\n outputs: [\n {\n internalType: 'uint8',\n name: '',\n type: 'uint8',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'latestRoundData',\n outputs: [\n {\n internalType: 'uint80',\n name: 'roundId',\n type: 'uint80',\n },\n {\n internalType: 'int256',\n name: 'answer',\n type: 'int256',\n },\n {\n internalType: 'uint256',\n name: 'startedAt',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'updatedAt',\n type: 'uint256',\n },\n {\n internalType: 'uint80',\n name: 'answeredInRound',\n type: 'uint80',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n];\nclass ICexPriceFeeder__factory {\n static createInterface() {\n return new ethers_1.utils.Interface(_abi);\n }\n static connect(address, signerOrProvider) {\n return new ethers_1.Contract(address, _abi, signerOrProvider);\n }\n}\nexports.ICexPriceFeeder__factory = ICexPriceFeeder__factory;\nICexPriceFeeder__factory.abi = _abi;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Instrument__factory = void 0;\nconst ethers_1 = require(\"ethers\");\nconst _abi = [\n {\n inputs: [],\n stateMutability: 'nonpayable',\n type: 'constructor',\n },\n {\n inputs: [],\n name: 'AddTraderIneligible',\n type: 'error',\n },\n {\n inputs: [],\n name: 'AlreadyInitialized',\n type: 'error',\n },\n {\n inputs: [],\n name: 'BadAmmStatus',\n type: 'error',\n },\n {\n inputs: [],\n name: 'BadInstrumentCondition',\n type: 'error',\n },\n {\n inputs: [],\n name: 'BadMinMarginAmount',\n type: 'error',\n },\n {\n inputs: [],\n name: 'BadProtocolFeeRatio',\n type: 'error',\n },\n {\n inputs: [],\n name: 'BadTip',\n type: 'error',\n },\n {\n inputs: [],\n name: 'BadTradingFeeRatio',\n type: 'error',\n },\n {\n inputs: [],\n name: 'DivByZero',\n type: 'error',\n },\n {\n inputs: [],\n name: 'ExpiryNotAligned',\n type: 'error',\n },\n {\n inputs: [\n {\n internalType: 'uint256',\n name: 'margin',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'minMargin',\n type: 'uint256',\n },\n ],\n name: 'InitTrivial',\n type: 'error',\n },\n {\n inputs: [],\n name: 'LiquidatorIneligible',\n type: 'error',\n },\n {\n inputs: [],\n name: 'Locked',\n type: 'error',\n },\n {\n inputs: [],\n name: 'NotGate',\n type: 'error',\n },\n {\n inputs: [],\n name: 'NotSynFuturesV3Admin',\n type: 'error',\n },\n {\n inputs: [],\n name: 'NotTradeable',\n type: 'error',\n },\n {\n inputs: [\n {\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n ],\n name: 'PairNotCleared',\n type: 'error',\n },\n {\n inputs: [],\n name: 'RoundHalfUpBadParam',\n type: 'error',\n },\n {\n inputs: [],\n name: 'PlacePaused',\n type: 'error',\n },\n {\n inputs: [],\n name: 'SelfLiquidation',\n type: 'error',\n },\n {\n inputs: [],\n name: 'TickOutOfBound',\n type: 'error',\n },\n {\n inputs: [],\n name: 'Timeout',\n type: 'error',\n },\n {\n inputs: [],\n name: 'ZeroAddress',\n type: 'error',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'uint8',\n name: 'version',\n type: 'uint8',\n },\n ],\n name: 'Initialized',\n type: 'event',\n },\n {\n inputs: [\n {\n internalType: 'bytes32[2]',\n name: 'args',\n type: 'bytes32[2]',\n },\n ],\n name: 'add',\n outputs: [\n {\n internalType: 'int24',\n name: 'tickLower',\n type: 'int24',\n },\n {\n internalType: 'int24',\n name: 'tickUpper',\n type: 'int24',\n },\n {\n components: [\n {\n internalType: 'uint128',\n name: 'liquidity',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'entryFeeIndex',\n type: 'uint128',\n },\n {\n internalType: 'uint96',\n name: 'balance',\n type: 'uint96',\n },\n {\n internalType: 'uint160',\n name: 'sqrtEntryPX96',\n type: 'uint160',\n },\n ],\n internalType: 'struct Range',\n name: 'range',\n type: 'tuple',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32[3]',\n name: 'args',\n type: 'bytes32[3]',\n },\n ],\n name: 'batchPlace',\n outputs: [\n {\n internalType: 'uint24[]',\n name: 'nonces',\n type: 'uint24[]',\n },\n {\n components: [\n {\n internalType: 'uint128',\n name: 'balance',\n type: 'uint128',\n },\n {\n internalType: 'int128',\n name: 'size',\n type: 'int128',\n },\n ],\n internalType: 'struct Order[]',\n name: 'orders',\n type: 'tuple[]',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'arg',\n type: 'bytes32',\n },\n ],\n name: 'cancel',\n outputs: [\n {\n internalType: 'bool[8]',\n name: 'succees',\n type: 'bool[8]',\n },\n {\n components: [\n {\n internalType: 'int256',\n name: 'balance',\n type: 'int256',\n },\n {\n internalType: 'int256',\n name: 'size',\n type: 'int256',\n },\n {\n internalType: 'uint256',\n name: 'entryNotional',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'entrySocialLossIndex',\n type: 'uint256',\n },\n {\n internalType: 'int256',\n name: 'entryFundingIndex',\n type: 'int256',\n },\n ],\n internalType: 'struct PositionCache[8]',\n name: 'pics',\n type: 'tuple[8]',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n ],\n name: 'claimProtocolFee',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'to',\n type: 'address',\n },\n ],\n name: 'claimYield',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'condition',\n outputs: [\n {\n internalType: 'enum Condition',\n name: '',\n type: 'uint8',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'enum YieldMode',\n name: 'yieldMode',\n type: 'uint8',\n },\n ],\n name: 'configureYieldMode',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n internalType: 'uint256',\n name: 'amount',\n type: 'uint256',\n },\n ],\n name: 'donateInsuranceFund',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'arg',\n type: 'bytes32',\n },\n ],\n name: 'fill',\n outputs: [\n {\n components: [\n {\n internalType: 'int256',\n name: 'balance',\n type: 'int256',\n },\n {\n internalType: 'int256',\n name: 'size',\n type: 'int256',\n },\n {\n internalType: 'uint256',\n name: 'entryNotional',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'entrySocialLossIndex',\n type: 'uint256',\n },\n {\n internalType: 'int256',\n name: 'entryFundingIndex',\n type: 'int256',\n },\n ],\n internalType: 'struct PositionCache',\n name: 'pic',\n type: 'tuple',\n },\n {\n internalType: 'uint256',\n name: 'tip',\n type: 'uint256',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'freeze',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'fundingHour',\n outputs: [\n {\n internalType: 'uint8',\n name: '',\n type: 'uint8',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'getExpiries',\n outputs: [\n {\n internalType: 'uint32[]',\n name: '',\n type: 'uint32[]',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'target',\n type: 'address',\n },\n {\n internalType: 'bytes32[2]',\n name: 'args',\n type: 'bytes32[2]',\n },\n ],\n name: 'init',\n outputs: [\n {\n internalType: 'int24',\n name: 'tickLower',\n type: 'int24',\n },\n {\n internalType: 'int24',\n name: 'tickUpper',\n type: 'int24',\n },\n {\n components: [\n {\n internalType: 'uint128',\n name: 'liquidity',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'entryFeeIndex',\n type: 'uint128',\n },\n {\n internalType: 'uint96',\n name: 'balance',\n type: 'uint96',\n },\n {\n internalType: 'uint160',\n name: 'sqrtEntryPX96',\n type: 'uint160',\n },\n ],\n internalType: 'struct Range',\n name: 'range',\n type: 'tuple',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes',\n name: 'data',\n type: 'bytes',\n },\n ],\n name: 'initialize',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n internalType: 'int256',\n name: 'size',\n type: 'int256',\n },\n ],\n name: 'inquire',\n outputs: [\n {\n components: [\n {\n internalType: 'uint256',\n name: 'benchmark',\n type: 'uint256',\n },\n {\n internalType: 'uint160',\n name: 'sqrtFairPX96',\n type: 'uint160',\n },\n {\n internalType: 'int24',\n name: 'tick',\n type: 'int24',\n },\n {\n internalType: 'uint256',\n name: 'mark',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'entryNotional',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'fee',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'minAmount',\n type: 'uint256',\n },\n {\n internalType: 'uint160',\n name: 'sqrtPostFairPX96',\n type: 'uint160',\n },\n {\n internalType: 'int24',\n name: 'postTick',\n type: 'int24',\n },\n ],\n internalType: 'struct Quotation',\n name: '',\n type: 'tuple',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n internalType: 'address',\n name: 'target',\n type: 'address',\n },\n {\n internalType: 'int256',\n name: 'size',\n type: 'int256',\n },\n {\n internalType: 'uint256',\n name: 'amount',\n type: 'uint256',\n },\n ],\n name: 'liquidate',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes[]',\n name: 'data',\n type: 'bytes[]',\n },\n ],\n name: 'multicall',\n outputs: [\n {\n internalType: 'bytes[]',\n name: 'results',\n type: 'bytes[]',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'normalize',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32[2]',\n name: 'args',\n type: 'bytes32[2]',\n },\n ],\n name: 'place',\n outputs: [\n {\n internalType: 'uint24',\n name: 'nonce',\n type: 'uint24',\n },\n {\n components: [\n {\n internalType: 'uint128',\n name: 'balance',\n type: 'uint128',\n },\n {\n internalType: 'int128',\n name: 'size',\n type: 'int128',\n },\n ],\n internalType: 'struct Order',\n name: 'order',\n type: 'tuple',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'placePaused',\n outputs: [\n {\n internalType: 'bool',\n name: '',\n type: 'bool',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n internalType: 'address',\n name: 'target',\n type: 'address',\n },\n {\n internalType: 'enum QueryAcc',\n name: 'query',\n type: 'uint8',\n },\n {\n internalType: 'bytes',\n name: 'inputs',\n type: 'bytes',\n },\n ],\n name: 'queryAccount',\n outputs: [\n {\n internalType: 'bytes',\n name: 'result',\n type: 'bytes',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n internalType: 'enum QueryCtx',\n name: 'query',\n type: 'uint8',\n },\n {\n internalType: 'uint256[]',\n name: 'offsets',\n type: 'uint256[]',\n },\n {\n internalType: 'bytes',\n name: 'inputs',\n type: 'bytes',\n },\n ],\n name: 'queryContext',\n outputs: [\n {\n internalType: 'uint256[]',\n name: '',\n type: 'uint256[]',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint256[]',\n name: 'offsets',\n type: 'uint256[]',\n },\n ],\n name: 'querySetting',\n outputs: [\n {\n internalType: 'uint256[]',\n name: '',\n type: 'uint256[]',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n ],\n name: 'recycleInsuranceFund',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32[2]',\n name: 'args',\n type: 'bytes32[2]',\n },\n ],\n name: 'remove',\n outputs: [\n {\n components: [\n {\n internalType: 'int256',\n name: 'balance',\n type: 'int256',\n },\n {\n internalType: 'int256',\n name: 'size',\n type: 'int256',\n },\n {\n internalType: 'uint256',\n name: 'entryNotional',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'entrySocialLossIndex',\n type: 'uint256',\n },\n {\n internalType: 'int256',\n name: 'entryFundingIndex',\n type: 'int256',\n },\n ],\n internalType: 'struct PositionCache',\n name: 'pic',\n type: 'tuple',\n },\n {\n internalType: 'uint256',\n name: 'fee',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'tip',\n type: 'uint256',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint128',\n name: 'settlementPrice',\n type: 'uint128',\n },\n ],\n name: 'resolve',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint8',\n name: 'newFundingHour',\n type: 'uint8',\n },\n ],\n name: 'setFundingHour',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint16',\n name: 'initialMarginRatio',\n type: 'uint16',\n },\n {\n internalType: 'uint16',\n name: 'maintenanceMarginRatio',\n type: 'uint16',\n },\n ],\n name: 'setLeverage',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bool',\n name: 'paused',\n type: 'bool',\n },\n ],\n name: 'setPlacePaused',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n components: [\n {\n internalType: 'uint128',\n name: 'minMarginAmount',\n type: 'uint128',\n },\n {\n internalType: 'uint16',\n name: 'tradingFeeRatio',\n type: 'uint16',\n },\n {\n internalType: 'uint16',\n name: 'protocolFeeRatio',\n type: 'uint16',\n },\n {\n internalType: 'uint64',\n name: 'stabilityFeeRatioParam',\n type: 'uint64',\n },\n {\n internalType: 'enum QuoteType',\n name: 'qtype',\n type: 'uint8',\n },\n {\n internalType: 'uint128',\n name: 'tip',\n type: 'uint128',\n },\n ],\n internalType: 'struct QuoteParam',\n name: 'param',\n type: 'tuple',\n },\n ],\n name: 'setQuoteParam',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n internalType: 'address',\n name: 'target',\n type: 'address',\n },\n ],\n name: 'settle',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n internalType: 'address',\n name: 'target',\n type: 'address',\n },\n {\n internalType: 'int256',\n name: 'size',\n type: 'int256',\n },\n ],\n name: 'sweep',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'syncPointsOperator',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32[2]',\n name: 'args',\n type: 'bytes32[2]',\n },\n ],\n name: 'trade',\n outputs: [\n {\n components: [\n {\n internalType: 'int256',\n name: 'balance',\n type: 'int256',\n },\n {\n internalType: 'int256',\n name: 'size',\n type: 'int256',\n },\n {\n internalType: 'uint256',\n name: 'entryNotional',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'entrySocialLossIndex',\n type: 'uint256',\n },\n {\n internalType: 'int256',\n name: 'entryFundingIndex',\n type: 'int256',\n },\n ],\n internalType: 'struct PositionCache',\n name: '',\n type: 'tuple',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n ],\n name: 'update',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'trader',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'int24',\n name: 'tickLower',\n type: 'int24',\n },\n {\n indexed: false,\n internalType: 'int24',\n name: 'tickUpper',\n type: 'int24',\n },\n {\n components: [\n {\n internalType: 'uint128',\n name: 'liquidity',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'entryFeeIndex',\n type: 'uint128',\n },\n {\n internalType: 'uint96',\n name: 'balance',\n type: 'uint96',\n },\n {\n internalType: 'uint160',\n name: 'sqrtEntryPX96',\n type: 'uint160',\n },\n ],\n indexed: false,\n internalType: 'struct Range',\n name: 'range',\n type: 'tuple',\n },\n ],\n name: 'Add',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'trader',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'int256',\n name: 'net',\n type: 'int256',\n },\n ],\n name: 'Adjust',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'trader',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'int24',\n name: 'tick',\n type: 'int24',\n },\n {\n indexed: false,\n internalType: 'uint32',\n name: 'nonce',\n type: 'uint32',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'fee',\n type: 'uint256',\n },\n {\n components: [\n {\n internalType: 'int256',\n name: 'balance',\n type: 'int256',\n },\n {\n internalType: 'int256',\n name: 'size',\n type: 'int256',\n },\n {\n internalType: 'uint256',\n name: 'entryNotional',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'entrySocialLossIndex',\n type: 'uint256',\n },\n {\n internalType: 'int256',\n name: 'entryFundingIndex',\n type: 'int256',\n },\n ],\n indexed: false,\n internalType: 'struct PositionCache',\n name: 'pic',\n type: 'tuple',\n },\n ],\n name: 'Cancel',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'amount',\n type: 'uint256',\n },\n ],\n name: 'ClaimProtocolFee',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n ],\n name: 'DeleteContext',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'donator',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'amount',\n type: 'uint256',\n },\n ],\n name: 'DonateInsuranceFund',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'trader',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'int24',\n name: 'tick',\n type: 'int24',\n },\n {\n indexed: false,\n internalType: 'uint32',\n name: 'nonce',\n type: 'uint32',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'fee',\n type: 'uint256',\n },\n {\n components: [\n {\n internalType: 'int256',\n name: 'balance',\n type: 'int256',\n },\n {\n internalType: 'int256',\n name: 'size',\n type: 'int256',\n },\n {\n internalType: 'uint256',\n name: 'entryNotional',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'entrySocialLossIndex',\n type: 'uint256',\n },\n {\n internalType: 'int256',\n name: 'entryFundingIndex',\n type: 'int256',\n },\n ],\n indexed: false,\n internalType: 'struct PositionCache',\n name: 'pic',\n type: 'tuple',\n },\n {\n indexed: false,\n internalType: 'address',\n name: 'operator',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'tip',\n type: 'uint256',\n },\n ],\n name: 'Fill',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'trader',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'int256',\n name: 'funding',\n type: 'int256',\n },\n ],\n name: 'FundingFee',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'trader',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'amount',\n type: 'uint256',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'mark',\n type: 'uint256',\n },\n {\n indexed: false,\n internalType: 'address',\n name: 'target',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'int256',\n name: 'size',\n type: 'int256',\n },\n ],\n name: 'Liquidate',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'trader',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'int24',\n name: 'tick',\n type: 'int24',\n },\n {\n indexed: false,\n internalType: 'uint32',\n name: 'nonce',\n type: 'uint32',\n },\n {\n components: [\n {\n internalType: 'uint128',\n name: 'balance',\n type: 'uint128',\n },\n {\n internalType: 'int128',\n name: 'size',\n type: 'int128',\n },\n ],\n indexed: false,\n internalType: 'struct Order',\n name: 'order',\n type: 'tuple',\n },\n ],\n name: 'Place',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'amount',\n type: 'uint256',\n },\n ],\n name: 'RecycleInsuranceFund',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'trader',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'int24',\n name: 'tickLower',\n type: 'int24',\n },\n {\n indexed: false,\n internalType: 'int24',\n name: 'tickUpper',\n type: 'int24',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'fee',\n type: 'uint256',\n },\n {\n components: [\n {\n internalType: 'int256',\n name: 'balance',\n type: 'int256',\n },\n {\n internalType: 'int256',\n name: 'size',\n type: 'int256',\n },\n {\n internalType: 'uint256',\n name: 'entryNotional',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'entrySocialLossIndex',\n type: 'uint256',\n },\n {\n internalType: 'int256',\n name: 'entryFundingIndex',\n type: 'int256',\n },\n ],\n indexed: false,\n internalType: 'struct PositionCache',\n name: 'pic',\n type: 'tuple',\n },\n {\n indexed: false,\n internalType: 'address',\n name: 'operator',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'tip',\n type: 'uint256',\n },\n ],\n name: 'Remove',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'trader',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'settlement',\n type: 'uint256',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'balance',\n type: 'uint256',\n },\n {\n indexed: false,\n internalType: 'address',\n name: 'operator',\n type: 'address',\n },\n ],\n name: 'Settle',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'trader',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'int256',\n name: 'size',\n type: 'int256',\n },\n {\n indexed: false,\n internalType: 'int256',\n name: 'takenSize',\n type: 'int256',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'takenValue',\n type: 'uint256',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'entryNotional',\n type: 'uint256',\n },\n {\n indexed: false,\n internalType: 'uint16',\n name: 'feeRatio',\n type: 'uint16',\n },\n {\n indexed: false,\n internalType: 'uint160',\n name: 'sqrtPX96',\n type: 'uint160',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'mark',\n type: 'uint256',\n },\n {\n indexed: false,\n internalType: 'address',\n name: 'operator',\n type: 'address',\n },\n ],\n name: 'Sweep',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'trader',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'int256',\n name: 'size',\n type: 'int256',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'amount',\n type: 'uint256',\n },\n {\n indexed: false,\n internalType: 'int256',\n name: 'takenSize',\n type: 'int256',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'takenValue',\n type: 'uint256',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'entryNotional',\n type: 'uint256',\n },\n {\n indexed: false,\n internalType: 'uint16',\n name: 'feeRatio',\n type: 'uint16',\n },\n {\n indexed: false,\n internalType: 'uint160',\n name: 'sqrtPX96',\n type: 'uint160',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'mark',\n type: 'uint256',\n },\n ],\n name: 'Trade',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n indexed: false,\n internalType: 'enum Status',\n name: 'status',\n type: 'uint8',\n },\n {\n indexed: false,\n internalType: 'uint160',\n name: 'sqrtPX96',\n type: 'uint160',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'mark',\n type: 'uint256',\n },\n ],\n name: 'UpdateAmmStatus',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'uint32',\n name: 'timestamp',\n type: 'uint32',\n },\n {\n indexed: false,\n internalType: 'enum Condition',\n name: 'condition',\n type: 'uint8',\n },\n ],\n name: 'UpdateCondition',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n indexed: false,\n internalType: 'uint128',\n name: 'feeIndex',\n type: 'uint128',\n },\n {\n indexed: false,\n internalType: 'uint128',\n name: 'protocolFee',\n type: 'uint128',\n },\n ],\n name: 'UpdateFeeState',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'uint8',\n name: 'fundingHour',\n type: 'uint8',\n },\n ],\n name: 'UpdateFundingHour',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'uint256',\n name: 'fundingIndex',\n type: 'uint256',\n },\n ],\n name: 'UpdateFundingIndex',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'uint16',\n name: 'initialMarginRatio',\n type: 'uint16',\n },\n {\n indexed: false,\n internalType: 'uint16',\n name: 'maintenanceMarginRatio',\n type: 'uint16',\n },\n ],\n name: 'UpdateMarginRatio',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n components: [\n {\n internalType: 'uint128',\n name: 'minMarginAmount',\n type: 'uint128',\n },\n {\n internalType: 'uint16',\n name: 'tradingFeeRatio',\n type: 'uint16',\n },\n {\n internalType: 'uint16',\n name: 'protocolFeeRatio',\n type: 'uint16',\n },\n {\n internalType: 'uint64',\n name: 'stabilityFeeRatioParam',\n type: 'uint64',\n },\n {\n internalType: 'enum QuoteType',\n name: 'qtype',\n type: 'uint8',\n },\n {\n internalType: 'uint128',\n name: 'tip',\n type: 'uint128',\n },\n ],\n indexed: false,\n internalType: 'struct QuoteParam',\n name: 'param',\n type: 'tuple',\n },\n ],\n name: 'UpdateParam',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'trader',\n type: 'address',\n },\n {\n components: [\n {\n internalType: 'int256',\n name: 'balance',\n type: 'int256',\n },\n {\n internalType: 'int256',\n name: 'size',\n type: 'int256',\n },\n {\n internalType: 'uint256',\n name: 'entryNotional',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'entrySocialLossIndex',\n type: 'uint256',\n },\n {\n internalType: 'int256',\n name: 'entryFundingIndex',\n type: 'int256',\n },\n ],\n indexed: false,\n internalType: 'struct PositionCache',\n name: 'pic',\n type: 'tuple',\n },\n ],\n name: 'UpdatePosition',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n indexed: false,\n internalType: 'uint128',\n name: 'longSocialLossIndex',\n type: 'uint128',\n },\n {\n indexed: false,\n internalType: 'uint128',\n name: 'shortSocialLossIndex',\n type: 'uint128',\n },\n {\n indexed: false,\n internalType: 'uint128',\n name: 'insuranceFund',\n type: 'uint128',\n },\n ],\n name: 'UpdateSocialLossInsuranceFund',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'trader',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'uint48',\n name: 'rid',\n type: 'uint48',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'fee',\n type: 'uint256',\n },\n {\n indexed: false,\n internalType: 'address',\n name: 'operator',\n type: 'address',\n },\n {\n components: [\n {\n internalType: 'uint128',\n name: 'liquidity',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'entryFeeIndex',\n type: 'uint128',\n },\n {\n internalType: 'uint96',\n name: 'balance',\n type: 'uint96',\n },\n {\n internalType: 'uint160',\n name: 'sqrtEntryPX96',\n type: 'uint160',\n },\n ],\n indexed: false,\n internalType: 'struct Range',\n name: 'range',\n type: 'tuple',\n },\n ],\n name: 'WithdrawRangeFee',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'address',\n name: 'previousAdmin',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'address',\n name: 'newAdmin',\n type: 'address',\n },\n ],\n name: 'AdminChanged',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'beacon',\n type: 'address',\n },\n ],\n name: 'BeaconUpgraded',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'implementation',\n type: 'address',\n },\n ],\n name: 'Upgraded',\n type: 'event',\n },\n {\n inputs: [],\n name: 'AddLiquidityExceedMax',\n type: 'error',\n },\n {\n inputs: [],\n name: 'AddOverflow',\n type: 'error',\n },\n {\n inputs: [],\n name: 'BadAmmTiming',\n type: 'error',\n },\n {\n inputs: [],\n name: 'BadMaintenanceMarginRatio',\n type: 'error',\n },\n {\n inputs: [\n {\n internalType: 'int256',\n name: 'totalSize',\n type: 'int256',\n },\n {\n internalType: 'int256',\n name: 'requestedSize',\n type: 'int256',\n },\n ],\n name: 'BadTargetSize',\n type: 'error',\n },\n {\n inputs: [],\n name: 'FairDeviation',\n type: 'error',\n },\n {\n inputs: [],\n name: 'InvariantBroken',\n type: 'error',\n },\n {\n inputs: [],\n name: 'LiquidatePostImrUnsafe',\n type: 'error',\n },\n {\n inputs: [\n {\n internalType: 'bool',\n name: 'noShortParty',\n type: 'bool',\n },\n {\n internalType: 'uint256',\n name: 'socialLoss',\n type: 'uint256',\n },\n ],\n name: 'NoCounterparty',\n type: 'error',\n },\n {\n inputs: [],\n name: 'OrderFull',\n type: 'error',\n },\n {\n inputs: [\n {\n internalType: 'uint256',\n name: 'amount',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'minAmount',\n type: 'uint256',\n },\n ],\n name: 'OrderImrUnsafe',\n type: 'error',\n },\n {\n inputs: [],\n name: 'OrderNotExist',\n type: 'error',\n },\n {\n inputs: [\n {\n internalType: 'int256',\n name: 'requested',\n type: 'int256',\n },\n {\n internalType: 'int256',\n name: 'taken',\n type: 'int256',\n },\n ],\n name: 'OrderNotFullyTaken',\n type: 'error',\n },\n {\n inputs: [],\n name: 'OrderOccupied',\n type: 'error',\n },\n {\n inputs: [],\n name: 'OrderTickUnaligned',\n type: 'error',\n },\n {\n inputs: [],\n name: 'OrderTooFar',\n type: 'error',\n },\n {\n inputs: [],\n name: 'OrderTrivial',\n type: 'error',\n },\n {\n inputs: [],\n name: 'OrderWrongSide',\n type: 'error',\n },\n {\n inputs: [],\n name: 'PositionBankrupt',\n type: 'error',\n },\n {\n inputs: [],\n name: 'PositionNotExist',\n type: 'error',\n },\n {\n inputs: [],\n name: 'RangeNotExist',\n type: 'error',\n },\n {\n inputs: [],\n name: 'ReuseNonEmptyRecord',\n type: 'error',\n },\n {\n inputs: [],\n name: 'TargetSafe',\n type: 'error',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'token',\n type: 'address',\n },\n ],\n name: 'GetErc20DecimalsFailed',\n type: 'error',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'token',\n type: 'address',\n },\n ],\n name: 'GetErc20NameFailed',\n type: 'error',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'token',\n type: 'address',\n },\n ],\n name: 'GetErc20SymbolFailed',\n type: 'error',\n },\n {\n inputs: [],\n name: 'AddInvalidTickDelta',\n type: 'error',\n },\n {\n inputs: [],\n name: 'AddSlippage',\n type: 'error',\n },\n {\n inputs: [\n {\n internalType: 'uint256',\n name: 'liquidity',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'minLiquidity',\n type: 'uint256',\n },\n ],\n name: 'AddTrivial',\n type: 'error',\n },\n {\n inputs: [],\n name: 'CrazySpot',\n type: 'error',\n },\n {\n inputs: [],\n name: 'ExpiryBelowSettlingDuration',\n type: 'error',\n },\n {\n inputs: [],\n name: 'ExpiryExceedMaxExpiryPeriod',\n type: 'error',\n },\n {\n inputs: [],\n name: 'RangeFull',\n type: 'error',\n },\n {\n inputs: [],\n name: 'RangeOccupied',\n type: 'error',\n },\n {\n inputs: [],\n name: 'RemoveActiveRange',\n type: 'error',\n },\n {\n inputs: [],\n name: 'RemoveSlippage',\n type: 'error',\n },\n {\n inputs: [],\n name: 'SqrtPX96OutOfBound',\n type: 'error',\n },\n {\n inputs: [],\n name: 'CrazyDeviation',\n type: 'error',\n },\n {\n inputs: [],\n name: 'DivUnderflow',\n type: 'error',\n },\n {\n inputs: [],\n name: 'ForbidNegativeAdjust',\n type: 'error',\n },\n {\n inputs: [],\n name: 'MulOverflow',\n type: 'error',\n },\n {\n inputs: [],\n name: 'TradeImrUnsafe',\n type: 'error',\n },\n {\n inputs: [],\n name: 'TradeMmrUnsafe',\n type: 'error',\n },\n {\n inputs: [],\n name: 'TradeOutOfLiquidity',\n type: 'error',\n },\n {\n inputs: [],\n name: 'TradeSlippage',\n type: 'error',\n },\n {\n inputs: [\n {\n internalType: 'uint16',\n name: 'stabilityFeeRatio',\n type: 'uint16',\n },\n {\n internalType: 'uint16',\n name: 'limitStabilityFeeRatio',\n type: 'uint16',\n },\n ],\n name: 'TradeStabilityFeeLimit',\n type: 'error',\n },\n {\n inputs: [],\n name: 'TradeTrivial',\n type: 'error',\n },\n];\nclass Instrument__factory {\n static createInterface() {\n return new ethers_1.utils.Interface(_abi);\n }\n static connect(address, signerOrProvider) {\n return new ethers_1.Contract(address, _abi, signerOrProvider);\n }\n}\nexports.Instrument__factory = Instrument__factory;\nInstrument__factory.abi = _abi;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MerkleDistributorWithDeadline__factory = void 0;\nconst ethers_1 = require(\"ethers\");\nconst _abi = [\n {\n inputs: [\n {\n internalType: 'address',\n name: 'token',\n type: 'address',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'constructor',\n },\n {\n inputs: [],\n name: 'AlreadyClaimed',\n type: 'error',\n },\n {\n inputs: [],\n name: 'ClaimWindowFinished',\n type: 'error',\n },\n {\n inputs: [],\n name: 'EndTimeInPast',\n type: 'error',\n },\n {\n inputs: [],\n name: 'InvalidProof',\n type: 'error',\n },\n {\n inputs: [],\n name: 'NotAdmin',\n type: 'error',\n },\n {\n inputs: [],\n name: 'NotOperator',\n type: 'error',\n },\n {\n inputs: [],\n name: 'RootNotSet',\n type: 'error',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'uint256',\n name: 'epoch',\n type: 'uint256',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'index',\n type: 'uint256',\n },\n {\n indexed: false,\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'amount',\n type: 'uint256',\n },\n ],\n name: 'Claimed',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'uint8',\n name: 'version',\n type: 'uint8',\n },\n ],\n name: 'Initialized',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'uint256',\n name: 'epoch',\n type: 'uint256',\n },\n {\n indexed: false,\n internalType: 'bytes32',\n name: 'root',\n type: 'bytes32',\n },\n ],\n name: 'MerkleRootSet',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n {\n indexed: true,\n internalType: 'bytes32',\n name: 'previousAdminRole',\n type: 'bytes32',\n },\n {\n indexed: true,\n internalType: 'bytes32',\n name: 'newAdminRole',\n type: 'bytes32',\n },\n ],\n name: 'RoleAdminChanged',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'sender',\n type: 'address',\n },\n ],\n name: 'RoleGranted',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'sender',\n type: 'address',\n },\n ],\n name: 'RoleRevoked',\n type: 'event',\n },\n {\n inputs: [],\n name: 'DEFAULT_ADMIN_ROLE',\n outputs: [\n {\n internalType: 'bytes32',\n name: '',\n type: 'bytes32',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'OPERATOR_ROLE',\n outputs: [\n {\n internalType: 'bytes32',\n name: '',\n type: 'bytes32',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint256',\n name: 'epoch',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'index',\n type: 'uint256',\n },\n {\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: 'amount',\n type: 'uint256',\n },\n {\n internalType: 'bytes32[]',\n name: 'merkleProof',\n type: 'bytes32[]',\n },\n ],\n name: 'claim',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'endTime',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'getAllOperators',\n outputs: [\n {\n internalType: 'address[]',\n name: '',\n type: 'address[]',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n ],\n name: 'getAllRoleMembers',\n outputs: [\n {\n internalType: 'address[]',\n name: '',\n type: 'address[]',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n ],\n name: 'getRoleAdmin',\n outputs: [\n {\n internalType: 'bytes32',\n name: '',\n type: 'bytes32',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n {\n internalType: 'uint256',\n name: 'index',\n type: 'uint256',\n },\n ],\n name: 'getRoleMember',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n ],\n name: 'getRoleMemberCount',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n {\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n ],\n name: 'grantRole',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n {\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n ],\n name: 'hasRole',\n outputs: [\n {\n internalType: 'bool',\n name: '',\n type: 'bool',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'admin',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: '_endTime',\n type: 'uint256',\n },\n ],\n name: 'initialize',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'user',\n type: 'address',\n },\n ],\n name: 'isAdmin',\n outputs: [\n {\n internalType: 'bool',\n name: '',\n type: 'bool',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint256',\n name: 'epoch',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'index',\n type: 'uint256',\n },\n ],\n name: 'isClaimed',\n outputs: [\n {\n internalType: 'bool',\n name: '',\n type: 'bool',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'user',\n type: 'address',\n },\n ],\n name: 'isOperator',\n outputs: [\n {\n internalType: 'bool',\n name: '',\n type: 'bool',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n name: 'merkleRoot',\n outputs: [\n {\n internalType: 'bytes32',\n name: '',\n type: 'bytes32',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes[]',\n name: 'data',\n type: 'bytes[]',\n },\n ],\n name: 'multicall',\n outputs: [\n {\n internalType: 'bytes[]',\n name: 'results',\n type: 'bytes[]',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n {\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n ],\n name: 'renounceRole',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n {\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n ],\n name: 'revokeRole',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint256',\n name: 'epoch',\n type: 'uint256',\n },\n {\n internalType: 'bytes32',\n name: 'root',\n type: 'bytes32',\n },\n ],\n name: 'setMerkleRoot',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes4',\n name: 'interfaceId',\n type: 'bytes4',\n },\n ],\n name: 'supportsInterface',\n outputs: [\n {\n internalType: 'bool',\n name: '',\n type: 'bool',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'token',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n];\nclass MerkleDistributorWithDeadline__factory {\n static createInterface() {\n return new ethers_1.utils.Interface(_abi);\n }\n static connect(address, signerOrProvider) {\n return new ethers_1.Contract(address, _abi, signerOrProvider);\n }\n}\nexports.MerkleDistributorWithDeadline__factory = MerkleDistributorWithDeadline__factory;\nMerkleDistributorWithDeadline__factory.abi = _abi;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Observer__factory = void 0;\nconst ethers_1 = require(\"ethers\");\nconst _abi = [\n {\n inputs: [\n {\n internalType: 'address',\n name: '_gate',\n type: 'address',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'constructor',\n },\n {\n inputs: [],\n name: 'TickOutOfBound',\n type: 'error',\n },\n {\n inputs: [],\n name: 'gate',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n {\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n internalType: 'address',\n name: 'target',\n type: 'address',\n },\n ],\n name: 'getAcc',\n outputs: [\n {\n components: [\n {\n internalType: 'uint48[]',\n name: 'oids',\n type: 'uint48[]',\n },\n {\n internalType: 'uint48[]',\n name: 'rids',\n type: 'uint48[]',\n },\n {\n components: [\n {\n internalType: 'int128',\n name: 'balance',\n type: 'int128',\n },\n {\n internalType: 'int128',\n name: 'size',\n type: 'int128',\n },\n {\n internalType: 'uint128',\n name: 'entryNotional',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'entrySocialLossIndex',\n type: 'uint128',\n },\n {\n internalType: 'int128',\n name: 'entryFundingIndex',\n type: 'int128',\n },\n ],\n internalType: 'struct Position',\n name: 'position',\n type: 'tuple',\n },\n {\n components: [\n {\n internalType: 'uint128',\n name: 'balance',\n type: 'uint128',\n },\n {\n internalType: 'int128',\n name: 'size',\n type: 'int128',\n },\n ],\n internalType: 'struct Order[]',\n name: 'orders',\n type: 'tuple[]',\n },\n {\n components: [\n {\n internalType: 'uint128',\n name: 'liquidity',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'entryFeeIndex',\n type: 'uint128',\n },\n {\n internalType: 'uint96',\n name: 'balance',\n type: 'uint96',\n },\n {\n internalType: 'uint160',\n name: 'sqrtEntryPX96',\n type: 'uint160',\n },\n ],\n internalType: 'struct Range[]',\n name: 'ranges',\n type: 'tuple[]',\n },\n {\n internalType: 'int256[]',\n name: 'ordersTaken',\n type: 'int256[]',\n },\n ],\n internalType: 'struct Portfolio',\n name: 'portfolio',\n type: 'tuple',\n },\n {\n components: [\n {\n internalType: 'uint32',\n name: 'timestamp',\n type: 'uint32',\n },\n {\n internalType: 'uint32',\n name: 'height',\n type: 'uint32',\n },\n ],\n internalType: 'struct BlockInfo',\n name: 'blockInfo',\n type: 'tuple',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n {\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n internalType: 'address',\n name: 'target',\n type: 'address',\n },\n ],\n name: 'getAccMeta',\n outputs: [\n {\n internalType: 'uint256',\n name: 'onumber',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'rnumber',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'getAllInstruments',\n outputs: [\n {\n components: [\n {\n internalType: 'address',\n name: 'instrumentAddr',\n type: 'address',\n },\n {\n internalType: 'string',\n name: 'symbol',\n type: 'string',\n },\n {\n internalType: 'address',\n name: 'market',\n type: 'address',\n },\n {\n components: [\n {\n internalType: 'enum FeederType',\n name: 'ftype',\n type: 'uint8',\n },\n {\n internalType: 'bool',\n name: 'isToken0Quote',\n type: 'bool',\n },\n {\n internalType: 'address',\n name: 'pair',\n type: 'address',\n },\n {\n internalType: 'uint64',\n name: 'scaler0',\n type: 'uint64',\n },\n {\n internalType: 'uint64',\n name: 'scaler1',\n type: 'uint64',\n },\n ],\n internalType: 'struct DexV2Feeder',\n name: 'dexV2Feeder',\n type: 'tuple',\n },\n {\n components: [\n {\n internalType: 'enum FeederType',\n name: 'ftype',\n type: 'uint8',\n },\n {\n internalType: 'uint64',\n name: 'scaler0',\n type: 'uint64',\n },\n {\n internalType: 'address',\n name: 'aggregator0',\n type: 'address',\n },\n {\n internalType: 'uint24',\n name: 'heartBeat0',\n type: 'uint24',\n },\n {\n internalType: 'uint64',\n name: 'scaler1',\n type: 'uint64',\n },\n {\n internalType: 'address',\n name: 'aggregator1',\n type: 'address',\n },\n {\n internalType: 'uint24',\n name: 'heartBeat1',\n type: 'uint24',\n },\n ],\n internalType: 'struct PriceFeeder',\n name: 'priceFeeder',\n type: 'tuple',\n },\n {\n internalType: 'uint16',\n name: 'initialMarginRatio',\n type: 'uint16',\n },\n {\n internalType: 'uint16',\n name: 'maintenanceMarginRatio',\n type: 'uint16',\n },\n {\n components: [\n {\n internalType: 'uint128',\n name: 'minMarginAmount',\n type: 'uint128',\n },\n {\n internalType: 'uint16',\n name: 'tradingFeeRatio',\n type: 'uint16',\n },\n {\n internalType: 'uint16',\n name: 'protocolFeeRatio',\n type: 'uint16',\n },\n {\n internalType: 'uint64',\n name: 'stabilityFeeRatioParam',\n type: 'uint64',\n },\n {\n internalType: 'enum QuoteType',\n name: 'qtype',\n type: 'uint8',\n },\n {\n internalType: 'uint128',\n name: 'tip',\n type: 'uint128',\n },\n ],\n internalType: 'struct QuoteParam',\n name: 'param',\n type: 'tuple',\n },\n {\n internalType: 'uint256',\n name: 'spotPrice',\n type: 'uint256',\n },\n {\n internalType: 'enum Condition',\n name: 'condition',\n type: 'uint8',\n },\n {\n components: [\n {\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n internalType: 'uint32',\n name: 'timestamp',\n type: 'uint32',\n },\n {\n internalType: 'enum Status',\n name: 'status',\n type: 'uint8',\n },\n {\n internalType: 'int24',\n name: 'tick',\n type: 'int24',\n },\n {\n internalType: 'uint160',\n name: 'sqrtPX96',\n type: 'uint160',\n },\n {\n internalType: 'uint128',\n name: 'liquidity',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'totalLiquidity',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'totalShort',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'openInterests',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'totalLong',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'involvedFund',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'feeIndex',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'protocolFee',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'longSocialLossIndex',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'shortSocialLossIndex',\n type: 'uint128',\n },\n {\n internalType: 'int128',\n name: 'longFundingIndex',\n type: 'int128',\n },\n {\n internalType: 'int128',\n name: 'shortFundingIndex',\n type: 'int128',\n },\n {\n internalType: 'uint128',\n name: 'insuranceFund',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'settlementPrice',\n type: 'uint128',\n },\n ],\n internalType: 'struct Amm[]',\n name: 'amms',\n type: 'tuple[]',\n },\n {\n internalType: 'uint256[]',\n name: 'markPrices',\n type: 'uint256[]',\n },\n ],\n internalType: 'struct AssembledInstrumentData[]',\n name: '',\n type: 'tuple[]',\n },\n {\n components: [\n {\n internalType: 'uint32',\n name: 'timestamp',\n type: 'uint32',\n },\n {\n internalType: 'uint32',\n name: 'height',\n type: 'uint32',\n },\n ],\n internalType: 'struct BlockInfo',\n name: '',\n type: 'tuple',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n {\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n ],\n name: 'getAmm',\n outputs: [\n {\n components: [\n {\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n internalType: 'uint32',\n name: 'timestamp',\n type: 'uint32',\n },\n {\n internalType: 'enum Status',\n name: 'status',\n type: 'uint8',\n },\n {\n internalType: 'int24',\n name: 'tick',\n type: 'int24',\n },\n {\n internalType: 'uint160',\n name: 'sqrtPX96',\n type: 'uint160',\n },\n {\n internalType: 'uint128',\n name: 'liquidity',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'totalLiquidity',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'totalShort',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'openInterests',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'totalLong',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'involvedFund',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'feeIndex',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'protocolFee',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'longSocialLossIndex',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'shortSocialLossIndex',\n type: 'uint128',\n },\n {\n internalType: 'int128',\n name: 'longFundingIndex',\n type: 'int128',\n },\n {\n internalType: 'int128',\n name: 'shortFundingIndex',\n type: 'int128',\n },\n {\n internalType: 'uint128',\n name: 'insuranceFund',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'settlementPrice',\n type: 'uint128',\n },\n ],\n internalType: 'struct Amm',\n name: '',\n type: 'tuple',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n components: [\n {\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n {\n internalType: 'uint32[]',\n name: 'expiries',\n type: 'uint32[]',\n },\n ],\n internalType: 'struct FetchInstrumentParam[]',\n name: 'params',\n type: 'tuple[]',\n },\n ],\n name: 'getInstrumentBatch',\n outputs: [\n {\n components: [\n {\n internalType: 'address',\n name: 'instrumentAddr',\n type: 'address',\n },\n {\n internalType: 'string',\n name: 'symbol',\n type: 'string',\n },\n {\n internalType: 'address',\n name: 'market',\n type: 'address',\n },\n {\n components: [\n {\n internalType: 'enum FeederType',\n name: 'ftype',\n type: 'uint8',\n },\n {\n internalType: 'bool',\n name: 'isToken0Quote',\n type: 'bool',\n },\n {\n internalType: 'address',\n name: 'pair',\n type: 'address',\n },\n {\n internalType: 'uint64',\n name: 'scaler0',\n type: 'uint64',\n },\n {\n internalType: 'uint64',\n name: 'scaler1',\n type: 'uint64',\n },\n ],\n internalType: 'struct DexV2Feeder',\n name: 'dexV2Feeder',\n type: 'tuple',\n },\n {\n components: [\n {\n internalType: 'enum FeederType',\n name: 'ftype',\n type: 'uint8',\n },\n {\n internalType: 'uint64',\n name: 'scaler0',\n type: 'uint64',\n },\n {\n internalType: 'address',\n name: 'aggregator0',\n type: 'address',\n },\n {\n internalType: 'uint24',\n name: 'heartBeat0',\n type: 'uint24',\n },\n {\n internalType: 'uint64',\n name: 'scaler1',\n type: 'uint64',\n },\n {\n internalType: 'address',\n name: 'aggregator1',\n type: 'address',\n },\n {\n internalType: 'uint24',\n name: 'heartBeat1',\n type: 'uint24',\n },\n ],\n internalType: 'struct PriceFeeder',\n name: 'priceFeeder',\n type: 'tuple',\n },\n {\n internalType: 'uint16',\n name: 'initialMarginRatio',\n type: 'uint16',\n },\n {\n internalType: 'uint16',\n name: 'maintenanceMarginRatio',\n type: 'uint16',\n },\n {\n components: [\n {\n internalType: 'uint128',\n name: 'minMarginAmount',\n type: 'uint128',\n },\n {\n internalType: 'uint16',\n name: 'tradingFeeRatio',\n type: 'uint16',\n },\n {\n internalType: 'uint16',\n name: 'protocolFeeRatio',\n type: 'uint16',\n },\n {\n internalType: 'uint64',\n name: 'stabilityFeeRatioParam',\n type: 'uint64',\n },\n {\n internalType: 'enum QuoteType',\n name: 'qtype',\n type: 'uint8',\n },\n {\n internalType: 'uint128',\n name: 'tip',\n type: 'uint128',\n },\n ],\n internalType: 'struct QuoteParam',\n name: 'param',\n type: 'tuple',\n },\n {\n internalType: 'uint256',\n name: 'spotPrice',\n type: 'uint256',\n },\n {\n internalType: 'enum Condition',\n name: 'condition',\n type: 'uint8',\n },\n {\n components: [\n {\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n internalType: 'uint32',\n name: 'timestamp',\n type: 'uint32',\n },\n {\n internalType: 'enum Status',\n name: 'status',\n type: 'uint8',\n },\n {\n internalType: 'int24',\n name: 'tick',\n type: 'int24',\n },\n {\n internalType: 'uint160',\n name: 'sqrtPX96',\n type: 'uint160',\n },\n {\n internalType: 'uint128',\n name: 'liquidity',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'totalLiquidity',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'totalShort',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'openInterests',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'totalLong',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'involvedFund',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'feeIndex',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'protocolFee',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'longSocialLossIndex',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'shortSocialLossIndex',\n type: 'uint128',\n },\n {\n internalType: 'int128',\n name: 'longFundingIndex',\n type: 'int128',\n },\n {\n internalType: 'int128',\n name: 'shortFundingIndex',\n type: 'int128',\n },\n {\n internalType: 'uint128',\n name: 'insuranceFund',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'settlementPrice',\n type: 'uint128',\n },\n ],\n internalType: 'struct Amm[]',\n name: 'amms',\n type: 'tuple[]',\n },\n {\n internalType: 'uint256[]',\n name: 'markPrices',\n type: 'uint256[]',\n },\n ],\n internalType: 'struct AssembledInstrumentData[]',\n name: '',\n type: 'tuple[]',\n },\n {\n components: [\n {\n internalType: 'uint32',\n name: 'timestamp',\n type: 'uint32',\n },\n {\n internalType: 'uint32',\n name: 'height',\n type: 'uint32',\n },\n ],\n internalType: 'struct BlockInfo',\n name: '',\n type: 'tuple',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address[]',\n name: 'instrumentList',\n type: 'address[]',\n },\n ],\n name: 'getInstrumentByAddressList',\n outputs: [\n {\n components: [\n {\n internalType: 'address',\n name: 'instrumentAddr',\n type: 'address',\n },\n {\n internalType: 'string',\n name: 'symbol',\n type: 'string',\n },\n {\n internalType: 'address',\n name: 'market',\n type: 'address',\n },\n {\n components: [\n {\n internalType: 'enum FeederType',\n name: 'ftype',\n type: 'uint8',\n },\n {\n internalType: 'bool',\n name: 'isToken0Quote',\n type: 'bool',\n },\n {\n internalType: 'address',\n name: 'pair',\n type: 'address',\n },\n {\n internalType: 'uint64',\n name: 'scaler0',\n type: 'uint64',\n },\n {\n internalType: 'uint64',\n name: 'scaler1',\n type: 'uint64',\n },\n ],\n internalType: 'struct DexV2Feeder',\n name: 'dexV2Feeder',\n type: 'tuple',\n },\n {\n components: [\n {\n internalType: 'enum FeederType',\n name: 'ftype',\n type: 'uint8',\n },\n {\n internalType: 'uint64',\n name: 'scaler0',\n type: 'uint64',\n },\n {\n internalType: 'address',\n name: 'aggregator0',\n type: 'address',\n },\n {\n internalType: 'uint24',\n name: 'heartBeat0',\n type: 'uint24',\n },\n {\n internalType: 'uint64',\n name: 'scaler1',\n type: 'uint64',\n },\n {\n internalType: 'address',\n name: 'aggregator1',\n type: 'address',\n },\n {\n internalType: 'uint24',\n name: 'heartBeat1',\n type: 'uint24',\n },\n ],\n internalType: 'struct PriceFeeder',\n name: 'priceFeeder',\n type: 'tuple',\n },\n {\n internalType: 'uint16',\n name: 'initialMarginRatio',\n type: 'uint16',\n },\n {\n internalType: 'uint16',\n name: 'maintenanceMarginRatio',\n type: 'uint16',\n },\n {\n components: [\n {\n internalType: 'uint128',\n name: 'minMarginAmount',\n type: 'uint128',\n },\n {\n internalType: 'uint16',\n name: 'tradingFeeRatio',\n type: 'uint16',\n },\n {\n internalType: 'uint16',\n name: 'protocolFeeRatio',\n type: 'uint16',\n },\n {\n internalType: 'uint64',\n name: 'stabilityFeeRatioParam',\n type: 'uint64',\n },\n {\n internalType: 'enum QuoteType',\n name: 'qtype',\n type: 'uint8',\n },\n {\n internalType: 'uint128',\n name: 'tip',\n type: 'uint128',\n },\n ],\n internalType: 'struct QuoteParam',\n name: 'param',\n type: 'tuple',\n },\n {\n internalType: 'uint256',\n name: 'spotPrice',\n type: 'uint256',\n },\n {\n internalType: 'enum Condition',\n name: 'condition',\n type: 'uint8',\n },\n {\n components: [\n {\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n internalType: 'uint32',\n name: 'timestamp',\n type: 'uint32',\n },\n {\n internalType: 'enum Status',\n name: 'status',\n type: 'uint8',\n },\n {\n internalType: 'int24',\n name: 'tick',\n type: 'int24',\n },\n {\n internalType: 'uint160',\n name: 'sqrtPX96',\n type: 'uint160',\n },\n {\n internalType: 'uint128',\n name: 'liquidity',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'totalLiquidity',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'totalShort',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'openInterests',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'totalLong',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'involvedFund',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'feeIndex',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'protocolFee',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'longSocialLossIndex',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'shortSocialLossIndex',\n type: 'uint128',\n },\n {\n internalType: 'int128',\n name: 'longFundingIndex',\n type: 'int128',\n },\n {\n internalType: 'int128',\n name: 'shortFundingIndex',\n type: 'int128',\n },\n {\n internalType: 'uint128',\n name: 'insuranceFund',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'settlementPrice',\n type: 'uint128',\n },\n ],\n internalType: 'struct Amm[]',\n name: 'amms',\n type: 'tuple[]',\n },\n {\n internalType: 'uint256[]',\n name: 'markPrices',\n type: 'uint256[]',\n },\n ],\n internalType: 'struct AssembledInstrumentData[]',\n name: '',\n type: 'tuple[]',\n },\n {\n components: [\n {\n internalType: 'uint32',\n name: 'timestamp',\n type: 'uint32',\n },\n {\n internalType: 'uint32',\n name: 'height',\n type: 'uint32',\n },\n ],\n internalType: 'struct BlockInfo',\n name: '',\n type: 'tuple',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n {\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n internalType: 'int24',\n name: 'tick',\n type: 'int24',\n },\n {\n internalType: 'bool',\n name: 'right',\n type: 'bool',\n },\n ],\n name: 'getNextInitializedTickOutside',\n outputs: [\n {\n internalType: 'int24',\n name: '',\n type: 'int24',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n {\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n internalType: 'address',\n name: 'target',\n type: 'address',\n },\n ],\n name: 'getOrderIndexes',\n outputs: [\n {\n internalType: 'uint48[]',\n name: '',\n type: 'uint48[]',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n {\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n internalType: 'address',\n name: 'target',\n type: 'address',\n },\n {\n internalType: 'uint48[]',\n name: 'oids',\n type: 'uint48[]',\n },\n ],\n name: 'getOrders',\n outputs: [\n {\n components: [\n {\n internalType: 'uint128',\n name: 'balance',\n type: 'uint128',\n },\n {\n internalType: 'int128',\n name: 'size',\n type: 'int128',\n },\n ],\n internalType: 'struct Order[]',\n name: '',\n type: 'tuple[]',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n {\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n internalType: 'int24[]',\n name: 'tids',\n type: 'int24[]',\n },\n ],\n name: 'getPearls',\n outputs: [\n {\n components: [\n {\n internalType: 'uint128',\n name: 'liquidityGross',\n type: 'uint128',\n },\n {\n internalType: 'int128',\n name: 'liquidityNet',\n type: 'int128',\n },\n {\n internalType: 'uint24',\n name: 'nonce',\n type: 'uint24',\n },\n {\n internalType: 'int96',\n name: 'left',\n type: 'int96',\n },\n {\n internalType: 'int96',\n name: 'taken',\n type: 'int96',\n },\n {\n internalType: 'uint128',\n name: 'fee',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'entrySocialLossIndex',\n type: 'uint128',\n },\n {\n internalType: 'int128',\n name: 'entryFundingIndex',\n type: 'int128',\n },\n ],\n internalType: 'struct Pearl[]',\n name: '',\n type: 'tuple[]',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address[]',\n name: 'quotes',\n type: 'address[]',\n },\n {\n internalType: 'address',\n name: 'trader',\n type: 'address',\n },\n ],\n name: 'getPendings',\n outputs: [\n {\n components: [\n {\n internalType: 'uint32',\n name: 'timestamp',\n type: 'uint32',\n },\n {\n internalType: 'bool',\n name: 'native',\n type: 'bool',\n },\n {\n internalType: 'uint96',\n name: 'amount',\n type: 'uint96',\n },\n {\n internalType: 'uint120',\n name: 'exemption',\n type: 'uint120',\n },\n ],\n internalType: 'struct Pending[]',\n name: 'pendings',\n type: 'tuple[]',\n },\n {\n components: [\n {\n internalType: 'uint32',\n name: 'timestamp',\n type: 'uint32',\n },\n {\n internalType: 'uint32',\n name: 'height',\n type: 'uint32',\n },\n ],\n internalType: 'struct BlockInfo',\n name: 'blockInfo',\n type: 'tuple',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'target',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n ],\n name: 'getPortfolios',\n outputs: [\n {\n internalType: 'uint32[]',\n name: 'expiries',\n type: 'uint32[]',\n },\n {\n components: [\n {\n internalType: 'uint48[]',\n name: 'oids',\n type: 'uint48[]',\n },\n {\n internalType: 'uint48[]',\n name: 'rids',\n type: 'uint48[]',\n },\n {\n components: [\n {\n internalType: 'int128',\n name: 'balance',\n type: 'int128',\n },\n {\n internalType: 'int128',\n name: 'size',\n type: 'int128',\n },\n {\n internalType: 'uint128',\n name: 'entryNotional',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'entrySocialLossIndex',\n type: 'uint128',\n },\n {\n internalType: 'int128',\n name: 'entryFundingIndex',\n type: 'int128',\n },\n ],\n internalType: 'struct Position',\n name: 'position',\n type: 'tuple',\n },\n {\n components: [\n {\n internalType: 'uint128',\n name: 'balance',\n type: 'uint128',\n },\n {\n internalType: 'int128',\n name: 'size',\n type: 'int128',\n },\n ],\n internalType: 'struct Order[]',\n name: 'orders',\n type: 'tuple[]',\n },\n {\n components: [\n {\n internalType: 'uint128',\n name: 'liquidity',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'entryFeeIndex',\n type: 'uint128',\n },\n {\n internalType: 'uint96',\n name: 'balance',\n type: 'uint96',\n },\n {\n internalType: 'uint160',\n name: 'sqrtEntryPX96',\n type: 'uint160',\n },\n ],\n internalType: 'struct Range[]',\n name: 'ranges',\n type: 'tuple[]',\n },\n {\n internalType: 'int256[]',\n name: 'ordersTaken',\n type: 'int256[]',\n },\n ],\n internalType: 'struct Portfolio[]',\n name: 'portfolios',\n type: 'tuple[]',\n },\n {\n components: [\n {\n internalType: 'uint32',\n name: 'timestamp',\n type: 'uint32',\n },\n {\n internalType: 'uint32',\n name: 'height',\n type: 'uint32',\n },\n ],\n internalType: 'struct BlockInfo',\n name: 'blockInfo',\n type: 'tuple',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n {\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n internalType: 'address',\n name: 'target',\n type: 'address',\n },\n ],\n name: 'getPosition',\n outputs: [\n {\n components: [\n {\n internalType: 'int128',\n name: 'balance',\n type: 'int128',\n },\n {\n internalType: 'int128',\n name: 'size',\n type: 'int128',\n },\n {\n internalType: 'uint128',\n name: 'entryNotional',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'entrySocialLossIndex',\n type: 'uint128',\n },\n {\n internalType: 'int128',\n name: 'entryFundingIndex',\n type: 'int128',\n },\n ],\n internalType: 'struct Position',\n name: '',\n type: 'tuple',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n ],\n name: 'getQuoteParam',\n outputs: [\n {\n components: [\n {\n internalType: 'uint128',\n name: 'minMarginAmount',\n type: 'uint128',\n },\n {\n internalType: 'uint16',\n name: 'tradingFeeRatio',\n type: 'uint16',\n },\n {\n internalType: 'uint16',\n name: 'protocolFeeRatio',\n type: 'uint16',\n },\n {\n internalType: 'uint64',\n name: 'stabilityFeeRatioParam',\n type: 'uint64',\n },\n {\n internalType: 'enum QuoteType',\n name: 'qtype',\n type: 'uint8',\n },\n {\n internalType: 'uint128',\n name: 'tip',\n type: 'uint128',\n },\n ],\n internalType: 'struct QuoteParam',\n name: '',\n type: 'tuple',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n {\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n internalType: 'address',\n name: 'target',\n type: 'address',\n },\n ],\n name: 'getRangeIndexes',\n outputs: [\n {\n internalType: 'uint48[]',\n name: '',\n type: 'uint48[]',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n {\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n internalType: 'address',\n name: 'target',\n type: 'address',\n },\n {\n internalType: 'uint48[]',\n name: 'rids',\n type: 'uint48[]',\n },\n ],\n name: 'getRanges',\n outputs: [\n {\n components: [\n {\n internalType: 'uint128',\n name: 'liquidity',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'entryFeeIndex',\n type: 'uint128',\n },\n {\n internalType: 'uint96',\n name: 'balance',\n type: 'uint96',\n },\n {\n internalType: 'uint160',\n name: 'sqrtEntryPX96',\n type: 'uint160',\n },\n ],\n internalType: 'struct Range[]',\n name: '',\n type: 'tuple[]',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n {\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n internalType: 'int24[]',\n name: 'tids',\n type: 'int24[]',\n },\n {\n internalType: 'uint24[]',\n name: 'nonces',\n type: 'uint24[]',\n },\n ],\n name: 'getRecords',\n outputs: [\n {\n components: [\n {\n internalType: 'int128',\n name: 'taken',\n type: 'int128',\n },\n {\n internalType: 'uint128',\n name: 'fee',\n type: 'uint128',\n },\n {\n internalType: 'uint128',\n name: 'entrySocialLossIndex',\n type: 'uint128',\n },\n {\n internalType: 'int128',\n name: 'entryFundingIndex',\n type: 'int128',\n },\n ],\n internalType: 'struct Record[]',\n name: '',\n type: 'tuple[]',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n ],\n name: 'getSetting',\n outputs: [\n {\n components: [\n {\n internalType: 'string',\n name: 'symbol',\n type: 'string',\n },\n {\n internalType: 'address',\n name: 'config',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'gate',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'market',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'quote',\n type: 'address',\n },\n {\n internalType: 'uint8',\n name: 'decimals',\n type: 'uint8',\n },\n {\n internalType: 'uint16',\n name: 'initialMarginRatio',\n type: 'uint16',\n },\n {\n internalType: 'uint16',\n name: 'maintenanceMarginRatio',\n type: 'uint16',\n },\n {\n components: [\n {\n internalType: 'uint128',\n name: 'minMarginAmount',\n type: 'uint128',\n },\n {\n internalType: 'uint16',\n name: 'tradingFeeRatio',\n type: 'uint16',\n },\n {\n internalType: 'uint16',\n name: 'protocolFeeRatio',\n type: 'uint16',\n },\n {\n internalType: 'uint64',\n name: 'stabilityFeeRatioParam',\n type: 'uint64',\n },\n {\n internalType: 'enum QuoteType',\n name: 'qtype',\n type: 'uint8',\n },\n {\n internalType: 'uint128',\n name: 'tip',\n type: 'uint128',\n },\n ],\n internalType: 'struct QuoteParam',\n name: 'param',\n type: 'tuple',\n },\n ],\n internalType: 'struct Setting',\n name: '',\n type: 'tuple',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n {\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n internalType: 'int16[]',\n name: 'tbids',\n type: 'int16[]',\n },\n ],\n name: 'getTickBitmaps',\n outputs: [\n {\n internalType: 'uint256[]',\n name: '',\n type: 'uint256[]',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'target',\n type: 'address',\n },\n {\n internalType: 'address[]',\n name: 'quotes',\n type: 'address[]',\n },\n ],\n name: 'getVaultBalances',\n outputs: [\n {\n internalType: 'uint256[]',\n name: '',\n type: 'uint256[]',\n },\n {\n components: [\n {\n internalType: 'uint32',\n name: 'timestamp',\n type: 'uint32',\n },\n {\n internalType: 'uint32',\n name: 'height',\n type: 'uint32',\n },\n ],\n internalType: 'struct BlockInfo',\n name: '',\n type: 'tuple',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n {\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n internalType: 'uint256',\n name: 'notional',\n type: 'uint256',\n },\n {\n internalType: 'bool',\n name: 'long',\n type: 'bool',\n },\n ],\n name: 'inquireByNotional',\n outputs: [\n {\n internalType: 'int256',\n name: 'size',\n type: 'int256',\n },\n {\n components: [\n {\n internalType: 'uint256',\n name: 'benchmark',\n type: 'uint256',\n },\n {\n internalType: 'uint160',\n name: 'sqrtFairPX96',\n type: 'uint160',\n },\n {\n internalType: 'int24',\n name: 'tick',\n type: 'int24',\n },\n {\n internalType: 'uint256',\n name: 'mark',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'entryNotional',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'fee',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'minAmount',\n type: 'uint256',\n },\n {\n internalType: 'uint160',\n name: 'sqrtPostFairPX96',\n type: 'uint160',\n },\n {\n internalType: 'int24',\n name: 'postTick',\n type: 'int24',\n },\n ],\n internalType: 'struct Quotation',\n name: 'quotation',\n type: 'tuple',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n {\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n internalType: 'int24',\n name: 'tick',\n type: 'int24',\n },\n ],\n name: 'inquireByTick',\n outputs: [\n {\n internalType: 'int256',\n name: 'size',\n type: 'int256',\n },\n {\n components: [\n {\n internalType: 'uint256',\n name: 'benchmark',\n type: 'uint256',\n },\n {\n internalType: 'uint160',\n name: 'sqrtFairPX96',\n type: 'uint160',\n },\n {\n internalType: 'int24',\n name: 'tick',\n type: 'int24',\n },\n {\n internalType: 'uint256',\n name: 'mark',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'entryNotional',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'fee',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'minAmount',\n type: 'uint256',\n },\n {\n internalType: 'uint160',\n name: 'sqrtPostFairPX96',\n type: 'uint160',\n },\n {\n internalType: 'int24',\n name: 'postTick',\n type: 'int24',\n },\n ],\n internalType: 'struct Quotation',\n name: 'quotation',\n type: 'tuple',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'base',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'quote',\n type: 'address',\n },\n ],\n name: 'inspectMaxReserveDexV2Pair',\n outputs: [\n {\n internalType: 'address',\n name: 'maxReservePair',\n type: 'address',\n },\n {\n internalType: 'uint112',\n name: 'reserve0',\n type: 'uint112',\n },\n {\n internalType: 'uint112',\n name: 'reserve1',\n type: 'uint112',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n {\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n internalType: 'uint24',\n name: 'tickDelta',\n type: 'uint24',\n },\n ],\n name: 'liquidityDetails',\n outputs: [\n {\n components: [\n {\n internalType: 'uint160',\n name: 'sqrtPX96',\n type: 'uint160',\n },\n {\n internalType: 'int24',\n name: 'tick',\n type: 'int24',\n },\n {\n internalType: 'uint256',\n name: 'liquidity',\n type: 'uint256',\n },\n ],\n internalType: 'struct CurveState',\n name: 'amm',\n type: 'tuple',\n },\n {\n internalType: 'int24[]',\n name: 'tids',\n type: 'int24[]',\n },\n {\n components: [\n {\n internalType: 'int128',\n name: 'liquidityNet',\n type: 'int128',\n },\n {\n internalType: 'int96',\n name: 'left',\n type: 'int96',\n },\n ],\n internalType: 'struct MinimalPearl[]',\n name: 'pearls',\n type: 'tuple[]',\n },\n {\n components: [\n {\n internalType: 'uint32',\n name: 'timestamp',\n type: 'uint32',\n },\n {\n internalType: 'uint32',\n name: 'height',\n type: 'uint32',\n },\n ],\n internalType: 'struct BlockInfo',\n name: 'blockInfo',\n type: 'tuple',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n {\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n internalType: 'uint256',\n name: 'notional',\n type: 'uint256',\n },\n {\n internalType: 'bool',\n name: 'long',\n type: 'bool',\n },\n ],\n name: 'sizeByNotional',\n outputs: [\n {\n internalType: 'int256',\n name: '',\n type: 'int256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'instrument',\n type: 'address',\n },\n {\n internalType: 'uint32',\n name: 'expiry',\n type: 'uint32',\n },\n {\n internalType: 'int24',\n name: 'destTick',\n type: 'int24',\n },\n ],\n name: 'sizeToTick',\n outputs: [\n {\n internalType: 'int256',\n name: '',\n type: 'int256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n];\nclass Observer__factory {\n static createInterface() {\n return new ethers_1.utils.Interface(_abi);\n }\n static connect(address, signerOrProvider) {\n return new ethers_1.Contract(address, _abi, signerOrProvider);\n }\n}\nexports.Observer__factory = Observer__factory;\nObserver__factory.abi = _abi;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PythFeederFactory__factory = void 0;\nconst ethers_1 = require(\"ethers\");\nconst _abi = [\n {\n inputs: [\n {\n internalType: 'address',\n name: '_pyth',\n type: 'address',\n },\n {\n internalType: 'address',\n name: '_guardian',\n type: 'address',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'constructor',\n },\n {\n inputs: [],\n name: 'FeederAlreadyCreated',\n type: 'error',\n },\n {\n inputs: [],\n name: 'FeederNotCreated',\n type: 'error',\n },\n {\n inputs: [],\n name: 'InvalidInput',\n type: 'error',\n },\n {\n inputs: [],\n name: 'InvalidLength',\n type: 'error',\n },\n {\n inputs: [],\n name: 'NotAdmin',\n type: 'error',\n },\n {\n inputs: [],\n name: 'NotOperator',\n type: 'error',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'feeder',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'bytes32',\n name: 'symbolHash',\n type: 'bytes32',\n },\n ],\n name: 'FeederCreated',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'uint8',\n name: 'version',\n type: 'uint8',\n },\n ],\n name: 'Initialized',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n {\n indexed: true,\n internalType: 'bytes32',\n name: 'previousAdminRole',\n type: 'bytes32',\n },\n {\n indexed: true,\n internalType: 'bytes32',\n name: 'newAdminRole',\n type: 'bytes32',\n },\n ],\n name: 'RoleAdminChanged',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'sender',\n type: 'address',\n },\n ],\n name: 'RoleGranted',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'sender',\n type: 'address',\n },\n ],\n name: 'RoleRevoked',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'address',\n name: 'pyth',\n type: 'address',\n },\n ],\n name: 'SetPythAddress',\n type: 'event',\n },\n {\n inputs: [],\n name: 'DEFAULT_ADMIN_ROLE',\n outputs: [\n {\n internalType: 'bytes32',\n name: '',\n type: 'bytes32',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'OPERATOR_ROLE',\n outputs: [\n {\n internalType: 'bytes32',\n name: '',\n type: 'bytes32',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n name: 'allFeeders',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'baseIndex',\n type: 'bytes32',\n },\n ],\n name: 'baseIndexToFeeder',\n outputs: [\n {\n internalType: 'address',\n name: 'feeder',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32[]',\n name: 'baseIndexes',\n type: 'bytes32[]',\n },\n {\n internalType: 'bytes32[]',\n name: 'ids',\n type: 'bytes32[]',\n },\n ],\n name: 'batchCreateFeeder',\n outputs: [\n {\n internalType: 'address[]',\n name: 'newFeeders',\n type: 'address[]',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32[]',\n name: 'baseIndexes',\n type: 'bytes32[]',\n },\n ],\n name: 'batchGetPrice',\n outputs: [\n {\n internalType: 'uint128[]',\n name: 'prices',\n type: 'uint128[]',\n },\n {\n internalType: 'uint32[]',\n name: 'timestamps',\n type: 'uint32[]',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'beacon',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'baseIndex',\n type: 'bytes32',\n },\n {\n internalType: 'bytes32',\n name: 'id',\n type: 'bytes32',\n },\n ],\n name: 'createFeeder',\n outputs: [\n {\n internalType: 'address',\n name: 'newFeeder',\n type: 'address',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'feeder',\n type: 'address',\n },\n ],\n name: 'feederToBaseIndex',\n outputs: [\n {\n internalType: 'bytes32',\n name: 'baseIndex',\n type: 'bytes32',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'getAllFeeders',\n outputs: [\n {\n internalType: 'address[]',\n name: '',\n type: 'address[]',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'getAllFeedersLength',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'getAllIndexes',\n outputs: [\n {\n internalType: 'bytes32[]',\n name: '',\n type: 'bytes32[]',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'baseIndex',\n type: 'bytes32',\n },\n ],\n name: 'getPrice',\n outputs: [\n {\n internalType: 'uint128',\n name: 'price',\n type: 'uint128',\n },\n {\n internalType: 'uint32',\n name: 'timestamp',\n type: 'uint32',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n ],\n name: 'getRoleAdmin',\n outputs: [\n {\n internalType: 'bytes32',\n name: '',\n type: 'bytes32',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n {\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n ],\n name: 'grantRole',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'guardian',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n {\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n ],\n name: 'hasRole',\n outputs: [\n {\n internalType: 'bool',\n name: '',\n type: 'bool',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'admin',\n type: 'address',\n },\n {\n internalType: 'address[]',\n name: 'operators',\n type: 'address[]',\n },\n ],\n name: 'initialize',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'pyth',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n {\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n ],\n name: 'renounceRole',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n {\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n ],\n name: 'revokeRole',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'baseIndex',\n type: 'bytes32',\n },\n {\n internalType: 'bytes32',\n name: '_id',\n type: 'bytes32',\n },\n ],\n name: 'setPythFeederId',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes4',\n name: 'interfaceId',\n type: 'bytes4',\n },\n ],\n name: 'supportsInterface',\n outputs: [\n {\n internalType: 'bool',\n name: '',\n type: 'bool',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n];\nclass PythFeederFactory__factory {\n static createInterface() {\n return new ethers_1.utils.Interface(_abi);\n }\n static connect(address, signerOrProvider) {\n return new ethers_1.Contract(address, _abi, signerOrProvider);\n }\n}\nexports.PythFeederFactory__factory = PythFeederFactory__factory;\nPythFeederFactory__factory.abi = _abi;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PythFeeder__factory = void 0;\nconst ethers_1 = require(\"ethers\");\nconst _abi = [\n {\n inputs: [\n {\n internalType: 'address',\n name: '_factory',\n type: 'address',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'constructor',\n },\n {\n inputs: [],\n name: 'InvalidPythData',\n type: 'error',\n },\n {\n inputs: [],\n name: 'NotRegistry',\n type: 'error',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'uint8',\n name: 'version',\n type: 'uint8',\n },\n ],\n name: 'Initialized',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'bytes32',\n name: 'id',\n type: 'bytes32',\n },\n ],\n name: 'SetPythFeederId',\n type: 'event',\n },\n {\n inputs: [],\n name: 'decimals',\n outputs: [\n {\n internalType: 'uint8',\n name: '',\n type: 'uint8',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'factory',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'id',\n outputs: [\n {\n internalType: 'bytes32',\n name: '',\n type: 'bytes32',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: '_id',\n type: 'bytes32',\n },\n {\n internalType: 'address',\n name: 'guardian',\n type: 'address',\n },\n ],\n name: 'initialize',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'latestRoundData',\n outputs: [\n {\n internalType: 'uint80',\n name: 'roundId',\n type: 'uint80',\n },\n {\n internalType: 'int256',\n name: 'answer',\n type: 'int256',\n },\n {\n internalType: 'uint256',\n name: 'startedAt',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'updatedAt',\n type: 'uint256',\n },\n {\n internalType: 'uint80',\n name: 'answeredInRound',\n type: 'uint80',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: '_id',\n type: 'bytes32',\n },\n ],\n name: 'setPythFeederId',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n];\nclass PythFeeder__factory {\n static createInterface() {\n return new ethers_1.utils.Interface(_abi);\n }\n static connect(address, signerOrProvider) {\n return new ethers_1.Contract(address, _abi, signerOrProvider);\n }\n}\nexports.PythFeeder__factory = PythFeeder__factory;\nPythFeeder__factory.abi = _abi;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PythFeederFactory__factory = exports.PythFeeder__factory = exports.Observer__factory = exports.MerkleDistributorWithDeadline__factory = exports.Instrument__factory = exports.ICexPriceFeeder__factory = exports.Guardian__factory = exports.Gate__factory = exports.EmergingFeederFactory__factory = exports.EmergingFeeder__factory = exports.DexV2Market__factory = exports.Config__factory = exports.CexMarket__factory = exports.Beacon__factory = void 0;\nvar Beacon__factory_1 = require(\"./Beacon__factory\");\nObject.defineProperty(exports, \"Beacon__factory\", { enumerable: true, get: function () { return Beacon__factory_1.Beacon__factory; } });\nvar CexMarket__factory_1 = require(\"./CexMarket__factory\");\nObject.defineProperty(exports, \"CexMarket__factory\", { enumerable: true, get: function () { return CexMarket__factory_1.CexMarket__factory; } });\nvar Config__factory_1 = require(\"./Config__factory\");\nObject.defineProperty(exports, \"Config__factory\", { enumerable: true, get: function () { return Config__factory_1.Config__factory; } });\nvar DexV2Market__factory_1 = require(\"./DexV2Market__factory\");\nObject.defineProperty(exports, \"DexV2Market__factory\", { enumerable: true, get: function () { return DexV2Market__factory_1.DexV2Market__factory; } });\nvar EmergingFeeder__factory_1 = require(\"./EmergingFeeder__factory\");\nObject.defineProperty(exports, \"EmergingFeeder__factory\", { enumerable: true, get: function () { return EmergingFeeder__factory_1.EmergingFeeder__factory; } });\nvar EmergingFeederFactory__factory_1 = require(\"./EmergingFeederFactory__factory\");\nObject.defineProperty(exports, \"EmergingFeederFactory__factory\", { enumerable: true, get: function () { return EmergingFeederFactory__factory_1.EmergingFeederFactory__factory; } });\nvar Gate__factory_1 = require(\"./Gate__factory\");\nObject.defineProperty(exports, \"Gate__factory\", { enumerable: true, get: function () { return Gate__factory_1.Gate__factory; } });\nvar Guardian__factory_1 = require(\"./Guardian__factory\");\nObject.defineProperty(exports, \"Guardian__factory\", { enumerable: true, get: function () { return Guardian__factory_1.Guardian__factory; } });\nvar ICexPriceFeeder__factory_1 = require(\"./ICexPriceFeeder__factory\");\nObject.defineProperty(exports, \"ICexPriceFeeder__factory\", { enumerable: true, get: function () { return ICexPriceFeeder__factory_1.ICexPriceFeeder__factory; } });\nvar Instrument__factory_1 = require(\"./Instrument__factory\");\nObject.defineProperty(exports, \"Instrument__factory\", { enumerable: true, get: function () { return Instrument__factory_1.Instrument__factory; } });\nvar MerkleDistributorWithDeadline__factory_1 = require(\"./MerkleDistributorWithDeadline__factory\");\nObject.defineProperty(exports, \"MerkleDistributorWithDeadline__factory\", { enumerable: true, get: function () { return MerkleDistributorWithDeadline__factory_1.MerkleDistributorWithDeadline__factory; } });\nvar Observer__factory_1 = require(\"./Observer__factory\");\nObject.defineProperty(exports, \"Observer__factory\", { enumerable: true, get: function () { return Observer__factory_1.Observer__factory; } });\nvar PythFeeder__factory_1 = require(\"./PythFeeder__factory\");\nObject.defineProperty(exports, \"PythFeeder__factory\", { enumerable: true, get: function () { return PythFeeder__factory_1.PythFeeder__factory; } });\nvar PythFeederFactory__factory_1 = require(\"./PythFeederFactory__factory\");\nObject.defineProperty(exports, \"PythFeederFactory__factory\", { enumerable: true, get: function () { return PythFeederFactory__factory_1.PythFeederFactory__factory; } });\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || (function () {\n var ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n };\n return function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PythFeederFactory__factory = exports.PythFeeder__factory = exports.Observer__factory = exports.MerkleDistributorWithDeadline__factory = exports.Instrument__factory = exports.ICexPriceFeeder__factory = exports.Guardian__factory = exports.Gate__factory = exports.EmergingFeederFactory__factory = exports.EmergingFeeder__factory = exports.DexV2Market__factory = exports.Config__factory = exports.CexMarket__factory = exports.Beacon__factory = exports.factories = void 0;\nexports.factories = __importStar(require(\"./factories\"));\nvar Beacon__factory_1 = require(\"./factories/Beacon__factory\");\nObject.defineProperty(exports, \"Beacon__factory\", { enumerable: true, get: function () { return Beacon__factory_1.Beacon__factory; } });\nvar CexMarket__factory_1 = require(\"./factories/CexMarket__factory\");\nObject.defineProperty(exports, \"CexMarket__factory\", { enumerable: true, get: function () { return CexMarket__factory_1.CexMarket__factory; } });\nvar Config__factory_1 = require(\"./factories/Config__factory\");\nObject.defineProperty(exports, \"Config__factory\", { enumerable: true, get: function () { return Config__factory_1.Config__factory; } });\nvar DexV2Market__factory_1 = require(\"./factories/DexV2Market__factory\");\nObject.defineProperty(exports, \"DexV2Market__factory\", { enumerable: true, get: function () { return DexV2Market__factory_1.DexV2Market__factory; } });\nvar EmergingFeeder__factory_1 = require(\"./factories/EmergingFeeder__factory\");\nObject.defineProperty(exports, \"EmergingFeeder__factory\", { enumerable: true, get: function () { return EmergingFeeder__factory_1.EmergingFeeder__factory; } });\nvar EmergingFeederFactory__factory_1 = require(\"./factories/EmergingFeederFactory__factory\");\nObject.defineProperty(exports, \"EmergingFeederFactory__factory\", { enumerable: true, get: function () { return EmergingFeederFactory__factory_1.EmergingFeederFactory__factory; } });\nvar Gate__factory_1 = require(\"./factories/Gate__factory\");\nObject.defineProperty(exports, \"Gate__factory\", { enumerable: true, get: function () { return Gate__factory_1.Gate__factory; } });\nvar Guardian__factory_1 = require(\"./factories/Guardian__factory\");\nObject.defineProperty(exports, \"Guardian__factory\", { enumerable: true, get: function () { return Guardian__factory_1.Guardian__factory; } });\nvar ICexPriceFeeder__factory_1 = require(\"./factories/ICexPriceFeeder__factory\");\nObject.defineProperty(exports, \"ICexPriceFeeder__factory\", { enumerable: true, get: function () { return ICexPriceFeeder__factory_1.ICexPriceFeeder__factory; } });\nvar Instrument__factory_1 = require(\"./factories/Instrument__factory\");\nObject.defineProperty(exports, \"Instrument__factory\", { enumerable: true, get: function () { return Instrument__factory_1.Instrument__factory; } });\nvar MerkleDistributorWithDeadline__factory_1 = require(\"./factories/MerkleDistributorWithDeadline__factory\");\nObject.defineProperty(exports, \"MerkleDistributorWithDeadline__factory\", { enumerable: true, get: function () { return MerkleDistributorWithDeadline__factory_1.MerkleDistributorWithDeadline__factory; } });\nvar Observer__factory_1 = require(\"./factories/Observer__factory\");\nObject.defineProperty(exports, \"Observer__factory\", { enumerable: true, get: function () { return Observer__factory_1.Observer__factory; } });\nvar PythFeeder__factory_1 = require(\"./factories/PythFeeder__factory\");\nObject.defineProperty(exports, \"PythFeeder__factory\", { enumerable: true, get: function () { return PythFeeder__factory_1.PythFeeder__factory; } });\nvar PythFeederFactory__factory_1 = require(\"./factories/PythFeederFactory__factory\");\nObject.defineProperty(exports, \"PythFeederFactory__factory\", { enumerable: true, get: function () { return PythFeederFactory__factory_1.PythFeederFactory__factory; } });\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./params\"), exports);\n__exportStar(require(\"./types\"), exports);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.positionLiquidationPrice = positionLiquidationPrice;\nexports.positionUnrealizedSocialLoss = positionUnrealizedSocialLoss;\nexports.positionUnrealizedPnl = positionUnrealizedPnl;\nexports.positionUnrealizedPnlByFairPrice = positionUnrealizedPnlByFairPrice;\nexports.positionUnrealizedFundingFee = positionUnrealizedFundingFee;\nexports.positionEquity = positionEquity;\nexports.positionLeverage = positionLeverage;\nexports.positionMaxWithdrawableMargin = positionMaxWithdrawableMargin;\nexports.positionAdditionMarginToIMRSafe = positionAdditionMarginToIMRSafe;\nexports.isPositionIMSafe = isPositionIMSafe;\nexports.isPositionMMSafe = isPositionMMSafe;\nexports.rangeEntryDeltaBase = rangeEntryDeltaBase;\nexports.rangeEntryDeltaQuote = rangeEntryDeltaQuote;\nexports.rangeToPosition = rangeToPosition;\nexports.rangeValueLocked = rangeValueLocked;\nexports.rangeFeeEarned = rangeFeeEarned;\nexports.rangeLowerPositionIfRemove = rangeLowerPositionIfRemove;\nexports.rangeUpperPositionIfRemove = rangeUpperPositionIfRemove;\nexports.orderToPosition = orderToPosition;\nexports.orderLeverage = orderLeverage;\nexports.orderEquity = orderEquity;\nexports.ammPlaceOrderLimit = ammPlaceOrderLimit;\nexports.ammWithinDeviationLimit = ammWithinDeviationLimit;\nexports.getMinLiquidity = getMinLiquidity;\nexports.getFundingRate = getFundingRate;\nexports.getBenchmarkPrice = getBenchmarkPrice;\nexports.estimateAPY = estimateAPY;\nexports.estimateAdjustMarginLeverage = estimateAdjustMarginLeverage;\nexports.inquireLeverageFromTransferAmount = inquireLeverageFromTransferAmount;\nexports.inquireTransferAmountFromTargetLeverage = inquireTransferAmountFromTargetLeverage;\nconst context_1 = require(\"@derivation-tech/context\");\nconst constants_1 = require(\"../constants\");\nconst math_1 = require(\"../math\");\nconst enum_1 = require(\"../enum\");\nconst constants_2 = require(\"../constants\");\nconst reverse_1 = require(\"./reverse\");\nconst factory_1 = require(\"./factory\");\nconst utils_1 = require(\"./utils\");\nconst lowLevel_1 = require(\"./lowLevel\");\nconst synfError_1 = require(\"../errors/synfError\");\nfunction toRawPosition(position) {\n if ('instrumentAddr' in position) {\n const _position = position;\n return _position.isInverse ? (0, reverse_1.reversePosition)(_position) : _position;\n }\n else {\n return position;\n }\n}\nfunction toRawAmm(amm) {\n if ('instrumentAddr' in amm) {\n const _amm = amm;\n return _amm.isInverse ? (0, reverse_1.reverseAmm)(_amm) : _amm;\n }\n else {\n return amm;\n }\n}\nfunction toRawRange(range) {\n if ('instrumentAddr' in range) {\n const _range = range;\n return _range.isInverse ? (0, reverse_1.reverseRange)(_range) : _range;\n }\n else {\n return range;\n }\n}\nfunction toRawOrder(order) {\n if ('instrumentAddr' in order) {\n const _order = order;\n return _order.isInverse ? (0, reverse_1.reverseOrder)(_order) : _order;\n }\n else {\n return order;\n }\n}\nfunction positionLiquidationPrice(position, amm = constants_1.EMPTY_AMM, maintenanceMarginRatio = 500) {\n const _position = position;\n position = toRawPosition(position);\n amm = toRawAmm(amm);\n if (position.size.isZero() || position.balance.isZero()) {\n return math_1.ZERO;\n }\n const price = (0, lowLevel_1.calcLiquidationPrice)(amm, position, maintenanceMarginRatio);\n return _position.isInverse ? (0, reverse_1.reversePrice)(price) : price;\n}\nfunction positionUnrealizedSocialLoss(position, amm) {\n position = toRawPosition(position);\n amm = toRawAmm(amm);\n const { socialLoss } = (0, lowLevel_1.tally)(amm, position, amm.markPrice);\n return socialLoss;\n}\nfunction positionUnrealizedPnl(position, amm) {\n position = toRawPosition(position);\n amm = toRawAmm(amm);\n return (0, lowLevel_1.calcPnl)(amm, position, amm.markPrice);\n}\nfunction positionUnrealizedPnlByFairPrice(position, amm) {\n position = toRawPosition(position);\n amm = toRawAmm(amm);\n return (0, lowLevel_1.calcPnl)(amm, position, (0, math_1.sqrtX96ToWad)(amm.sqrtPX96));\n}\nfunction positionUnrealizedFundingFee(position, amm) {\n if (amm.expiry !== constants_1.PERP_EXPIRY) {\n return math_1.ZERO;\n }\n position = toRawPosition(position);\n amm = toRawAmm(amm);\n return (0, lowLevel_1.calcFundingFee)(amm, position);\n}\nfunction positionEquity(position, amm) {\n position = toRawPosition(position);\n amm = toRawAmm(amm);\n return position.balance.add(positionUnrealizedPnl(position, amm));\n}\nfunction positionLeverage(position, amm) {\n position = toRawPosition(position);\n amm = toRawAmm(amm);\n const value = (0, math_1.wmul)(amm.markPrice, position.size.abs());\n const equity = positionEquity(position, amm);\n if (equity.isZero()) {\n return math_1.ZERO;\n }\n return (0, math_1.wdiv)(value, equity);\n}\nfunction positionMaxWithdrawableMargin(position, amm, initialMarginRatio) {\n position = toRawPosition(position);\n amm = toRawAmm(amm);\n const { pnl, socialLoss } = (0, lowLevel_1.tally)(amm, position, amm.markPrice);\n const funding = (0, lowLevel_1.calcFundingFee)(amm, position);\n const purePnl = pnl.add(socialLoss).sub(funding);\n const unrealizedLoss = (purePnl.gt(math_1.ZERO) ? math_1.ZERO : purePnl).sub(socialLoss);\n const value = (0, math_1.wmulUp)(amm.markPrice, position.size.abs());\n const imRequirement = (0, math_1.wmulUp)(value, (0, math_1.r2w)(initialMarginRatio));\n const maxWithdrawableMargin = position.balance.add(unrealizedLoss).sub(imRequirement);\n return maxWithdrawableMargin.gt(math_1.ZERO) ? maxWithdrawableMargin : math_1.ZERO;\n}\nfunction positionAdditionMarginToIMRSafe(position, amm, initialMarginRatio, increase, slippage) {\n position = toRawPosition(position);\n amm = toRawAmm(amm);\n const positionValue = (0, math_1.wmul)(amm.markPrice, position.size.abs());\n let imrValue = (0, math_1.wmulUp)(positionValue, (0, math_1.r2w)(initialMarginRatio));\n if (slippage) {\n imrValue = imrValue.mul(constants_1.ONE_RATIO + slippage).div(constants_1.ONE_RATIO);\n }\n let equity;\n if (increase) {\n const unrealizedPnl = positionUnrealizedPnl(position, amm);\n const unrealizedLoss = unrealizedPnl.lt(math_1.ZERO) ? unrealizedPnl : math_1.ZERO;\n equity = position.balance.add(unrealizedLoss);\n }\n else {\n equity = positionEquity(position, amm);\n }\n const additionMargin = imrValue.sub(equity);\n return additionMargin.gt(math_1.ZERO) ? additionMargin : math_1.ZERO;\n}\nfunction isPositionIMSafe(position, amm, initialMarginRatio, increase) {\n position = toRawPosition(position);\n amm = toRawAmm(amm);\n let equity;\n if (increase) {\n const unrealizedPnl = positionUnrealizedPnl(position, amm);\n const unrealizedLoss = unrealizedPnl.lt(math_1.ZERO) ? unrealizedPnl : math_1.ZERO;\n equity = position.balance.add(unrealizedLoss);\n }\n else {\n equity = positionEquity(position, amm);\n }\n if (equity.isNegative()) {\n return false;\n }\n const positionValue = (0, math_1.wmulUp)(amm.markPrice, position.size.abs());\n return equity.gte((0, math_1.wmulUp)(positionValue, (0, math_1.r2w)(initialMarginRatio)));\n}\nfunction isPositionMMSafe(position, amm, maintenanceMarginRatio) {\n position = toRawPosition(position);\n amm = toRawAmm(amm);\n const equity = positionEquity(position, amm);\n if (equity.isNegative()) {\n return false;\n }\n const positionValue = (0, math_1.wmulUp)(amm.markPrice, position.size.abs());\n return equity.gte((0, math_1.wmulUp)(positionValue, (0, math_1.r2w)(maintenanceMarginRatio)));\n}\nfunction rangeEntryDeltaBase(range) {\n range = toRawRange(range);\n const sqrtUpperPX96 = math_1.TickMath.getSqrtRatioAtTick(range.tickUpper);\n return math_1.SqrtPriceMath.getDeltaBaseAutoRoundUp(range.sqrtEntryPX96, sqrtUpperPX96, range.liquidity);\n}\nfunction rangeEntryDeltaQuote(range) {\n range = toRawRange(range);\n const sqrtLowerPX96 = math_1.TickMath.getSqrtRatioAtTick(range.tickLower);\n return math_1.SqrtPriceMath.getDeltaQuoteAutoRoundUp(sqrtLowerPX96, range.sqrtEntryPX96, range.liquidity);\n}\nfunction rangeToPosition(range, amm) {\n const _range = range;\n range = toRawRange(range);\n amm = toRawAmm(amm);\n const sqrtUpperPX96 = math_1.TickMath.getSqrtRatioAtTick(range.tickUpper);\n const sqrtLowerPX96 = math_1.TickMath.getSqrtRatioAtTick(range.tickLower);\n const fair = (0, math_1.sqrtX96ToWad)(amm.sqrtPX96);\n const entryDeltaBase = rangeEntryDeltaBase(range);\n const entryDeltaQuote = rangeEntryDeltaQuote(range);\n let removeDeltaBase = math_1.ZERO;\n let removeDeltaQuote = math_1.ZERO;\n if (amm.tick < range.tickLower) {\n removeDeltaBase = math_1.SqrtPriceMath.getDeltaBaseAutoRoundUp(sqrtLowerPX96, math_1.TickMath.getSqrtRatioAtTick(range.tickUpper), range.liquidity);\n }\n else if (amm.tick < range.tickUpper) {\n removeDeltaBase = math_1.SqrtPriceMath.getDeltaBaseAutoRoundUp(amm.sqrtPX96, math_1.TickMath.getSqrtRatioAtTick(range.tickUpper), range.liquidity);\n removeDeltaQuote = math_1.SqrtPriceMath.getDeltaQuoteAutoRoundUp(sqrtLowerPX96, amm.sqrtPX96, range.liquidity);\n }\n else {\n removeDeltaQuote = math_1.SqrtPriceMath.getDeltaQuoteAutoRoundUp(sqrtLowerPX96, sqrtUpperPX96, range.liquidity);\n }\n const earnedByBase = (0, math_1.wmul)(removeDeltaBase.sub(entryDeltaBase), fair);\n const earnedByQuote = removeDeltaQuote.sub(entryDeltaQuote);\n const pnl = earnedByBase.add(earnedByQuote);\n const fee = (0, math_1.wmulDown)(amm.feeIndex.sub(range.entryFeeIndex), range.liquidity);\n const size = removeDeltaBase.sub(entryDeltaBase);\n const rawPosition = {\n balance: range.balance.add(fee).add(pnl).sub(math_1.ONE),\n size: size,\n entryNotional: (0, math_1.wmul)(fair, size.abs()),\n entrySocialLossIndex: size.gt(math_1.ZERO) ? amm.longSocialLossIndex : amm.shortSocialLossIndex,\n entryFundingIndex: size.gt(math_1.ZERO) ? amm.longFundingIndex : amm.shortFundingIndex,\n };\n if ('instrumentAddr' in _range) {\n const __range = _range;\n const position = (0, factory_1.createPosition)({\n instrumentAddr: __range.instrumentAddr,\n expiry: __range.expiry,\n traderAddr: __range.traderAddr,\n ...rawPosition,\n });\n return __range.isInverse ? (0, reverse_1.reversePosition)(position) : position;\n }\n else {\n return rawPosition;\n }\n}\nfunction rangeValueLocked(range, amm) {\n range = toRawRange(range);\n amm = toRawAmm(amm);\n const position = rangeToPosition(range, amm);\n const total = (0, lowLevel_1.tally)(amm, position, amm.markPrice);\n return total.equity;\n}\nfunction rangeFeeEarned(range, amm) {\n range = toRawRange(range);\n amm = toRawAmm(amm);\n return (0, math_1.wmulDown)(amm.feeIndex.sub(range.entryFeeIndex), range.liquidity);\n}\nfunction customAmm(tick, input) {\n return {\n ...input,\n tick,\n sqrtPX96: math_1.TickMath.getSqrtRatioAtTick(tick),\n };\n}\nfunction rangeLowerPositionIfRemove(range, amm) {\n const _range = range;\n range = toRawRange(range);\n amm = toRawAmm(amm);\n const rawPosition = rangeToPosition(range, customAmm(range.tickLower, amm));\n if ('instrumentAddr' in _range) {\n const __range = _range;\n const position = (0, factory_1.createPosition)({\n instrumentAddr: __range.instrumentAddr,\n expiry: __range.expiry,\n traderAddr: __range.traderAddr,\n ...rawPosition,\n });\n return __range.isInverse ? (0, reverse_1.reversePosition)(position) : position;\n }\n else {\n return rawPosition;\n }\n}\nfunction rangeUpperPositionIfRemove(range, amm) {\n const _range = range;\n range = toRawRange(range);\n amm = toRawAmm(amm);\n const rawPosition = rangeToPosition(range, customAmm(range.tickUpper, amm));\n if ('instrumentAddr' in _range) {\n const __range = _range;\n const position = (0, factory_1.createPosition)({\n instrumentAddr: __range.instrumentAddr,\n expiry: __range.expiry,\n traderAddr: __range.traderAddr,\n ...rawPosition,\n });\n return __range.isInverse ? (0, reverse_1.reversePosition)(position) : position;\n }\n else {\n return rawPosition;\n }\n}\nfunction orderToPosition(order) {\n const _order = order;\n order = toRawOrder(order);\n const rawPosition = {\n balance: order.balance,\n size: order.size,\n entryNotional: (0, math_1.wmul)(math_1.TickMath.getWadAtTick(order.tick), order.size.abs()),\n entrySocialLossIndex: math_1.ZERO,\n entryFundingIndex: math_1.ZERO,\n };\n if ('instrumentAddr' in _order) {\n const __order = _order;\n const position = (0, factory_1.createPosition)({\n instrumentAddr: __order.instrumentAddr,\n expiry: __order.expiry,\n traderAddr: __order.traderAddr,\n ...rawPosition,\n });\n return __order.isInverse ? (0, reverse_1.reversePosition)(position) : position;\n }\n else {\n return rawPosition;\n }\n}\nfunction orderLeverage(order, amm) {\n order = toRawOrder(order);\n amm = toRawAmm(amm);\n const limitPrice = math_1.TickMath.getWadAtTick(order.tick);\n const px = order.taken.eq(math_1.ZERO) ? limitPrice : amm.markPrice;\n const value = (0, math_1.wmul)(px, order.size.abs());\n return (0, math_1.wdiv)(value, order.balance);\n}\nfunction orderEquity(order, amm) {\n order = toRawOrder(order);\n amm = toRawAmm(amm);\n return positionEquity(orderToPosition(order), amm);\n}\nfunction ammPlaceOrderLimit(amm, initialMarginRatio) {\n const _amm = amm;\n amm = toRawAmm(amm);\n const maxDiff = (0, math_1.wmul)(amm.markPrice, (0, math_1.r2w)(initialMarginRatio)).mul(2);\n const rawUpperTick = math_1.TickMath.getTickAtPWad(amm.markPrice.add(maxDiff));\n const rawLowerTick = math_1.TickMath.getTickAtPWad(amm.markPrice.sub(maxDiff));\n let upperTick = constants_1.ORDER_SPACING * Math.floor(rawUpperTick / constants_1.ORDER_SPACING);\n let lowerTick = constants_1.ORDER_SPACING * Math.ceil(rawLowerTick / constants_1.ORDER_SPACING);\n if (!(0, lowLevel_1.withinOrderLimit)(math_1.TickMath.getWadAtTick(rawUpperTick), amm.markPrice, initialMarginRatio)) {\n upperTick = upperTick - constants_1.ORDER_SPACING;\n }\n if (!(0, lowLevel_1.withinOrderLimit)(math_1.TickMath.getWadAtTick(rawLowerTick), amm.markPrice, initialMarginRatio)) {\n lowerTick = lowerTick + constants_1.ORDER_SPACING;\n }\n return _amm.isInverse\n ? {\n upperTick: lowerTick,\n lowerTick: upperTick,\n }\n : {\n upperTick,\n lowerTick,\n };\n}\nfunction ammWithinDeviationLimit(amm, initialMarginRatio) {\n amm = toRawAmm(amm);\n return (0, lowLevel_1.withinDeviationLimit)((0, math_1.sqrtX96ToWad)(amm.sqrtPX96), amm.markPrice, initialMarginRatio);\n}\nfunction getMinLiquidity(instrument, expiry, px96) {\n instrument = instrument.isInverse ? (0, reverse_1.reverseInstrument)(instrument) : instrument;\n const amm = instrument.amms.get(expiry);\n if (!amm) {\n throw new synfError_1.SynfError('Pair not found,' + `instrument: ${instrument.instrumentAddr}, expiry: ${expiry}`);\n }\n const sqrtPX96 = px96 ? px96 : amm.sqrtPX96;\n return instrument.minRangeValue.mul(math_1.Q96).div(sqrtPX96.mul(2));\n}\nfunction getFundingRate(instrument, expiry) {\n const _instrument = instrument;\n instrument = instrument.isInverse ? (0, reverse_1.reverseInstrument)(instrument) : instrument;\n if (instrument.spotPrice.eq(0)) {\n throw new synfError_1.SynfError('Spot price can not be zero');\n }\n const amm = instrument.amms.get(expiry);\n if (!amm) {\n throw new synfError_1.SynfError('Pair not found');\n }\n const period = instrument.fundingHour * 3600;\n const result = (0, math_1.wdiv)((0, math_1.sqrtX96ToWad)(amm.sqrtPX96), instrument.spotPrice).sub(math_1.WAD).mul(86400).div(period);\n return _instrument.isInverse ? result.mul(-1) : result;\n}\nfunction getBenchmarkPrice(instrument, expiry) {\n instrument = instrument.isInverse ? (0, reverse_1.reverseInstrument)(instrument) : instrument;\n if (expiry === constants_1.PERP_EXPIRY) {\n return instrument.spotPrice;\n }\n else {\n const rawSpotPrice = instrument.spotPrice;\n const daysLeft = Date.now() / 1000 >= expiry ? 0 : ~~(expiry * 1000 - Date.now()) / (86400 * 1000) + 1;\n const instrumentType = instrument.market.feeder.ftype;\n if (instrumentType === enum_1.FeederType.BOTH_STABLE || instrumentType === enum_1.FeederType.NONE_STABLE) {\n return instrument.spotPrice;\n }\n else if (instrumentType === enum_1.FeederType.QUOTE_STABLE) {\n return (0, math_1.wmulDown)(rawSpotPrice, (0, math_1.r2w)(instrument.market.config.dailyInterestRate))\n .mul(daysLeft)\n .add(rawSpotPrice);\n }\n else {\n const priceChange = (0, math_1.wmulDown)(rawSpotPrice, (0, math_1.r2w)(instrument.market.config.dailyInterestRate)).mul(daysLeft);\n return rawSpotPrice.gt(priceChange) ? rawSpotPrice.sub(priceChange) : math_1.ZERO;\n }\n }\n}\nfunction estimateAPY(instrument, expiry, poolFee24h, alphaWad) {\n instrument = instrument.isInverse ? (0, reverse_1.reverseInstrument)(instrument) : instrument;\n const amm = instrument.amms.get(expiry);\n if (!amm || amm.liquidity.eq(math_1.ZERO)) {\n return 0;\n }\n const assumeAddMargin = instrument.minRangeValue;\n const tickDelta = (0, utils_1.alphaWadToTickDelta)(alphaWad);\n const upperTick = constants_2.RANGE_SPACING * ~~((amm.tick + tickDelta) / constants_2.RANGE_SPACING);\n const lowerTick = constants_2.RANGE_SPACING * ~~((amm.tick - tickDelta) / constants_2.RANGE_SPACING);\n const { liquidity: assumeAddLiquidity } = (0, lowLevel_1.entryDelta)(amm.sqrtPX96, lowerTick, upperTick, assumeAddMargin, instrument.setting.initialMarginRatio);\n const assumed24HrFee = poolFee24h.mul(assumeAddLiquidity).div(amm.liquidity);\n const apyWad = (0, math_1.wdiv)(assumed24HrFee.mul(365), assumeAddMargin);\n return (0, context_1.fromWad)(apyWad);\n}\nfunction estimateAdjustMarginLeverage(position, amm, amount) {\n position = toRawPosition(position);\n amm = toRawAmm(amm);\n const equity = positionEquity(position, amm).sub(amount);\n const value = (0, math_1.wmul)(amm.markPrice, position.size.abs()).sub(amount);\n return (0, math_1.wdiv)(value, equity);\n}\nfunction inquireLeverageFromTransferAmount(position, amm, transferIn, transferAmount) {\n position = toRawPosition(position);\n amm = toRawAmm(amm);\n const sign = transferIn ? 1 : -1;\n const value = (0, math_1.wmul)(amm.markPrice, position.size.abs());\n const oldEquity = positionEquity(position, amm);\n const Amount = transferAmount.mul(sign);\n const newEquity = oldEquity.add(Amount);\n return (0, math_1.wdiv)(value, newEquity);\n}\nfunction inquireTransferAmountFromTargetLeverage(position, amm, targetLeverage) {\n position = toRawPosition(position);\n amm = toRawAmm(amm);\n const value = (0, math_1.wmul)(amm.markPrice, position.size.abs());\n const targetEquity = (0, math_1.wdiv)(value, targetLeverage);\n const currentEquity = positionEquity(position, amm);\n return targetEquity.sub(currentEquity);\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.loadConfig = loadConfig;\nconst ethers_1 = require(\"ethers\");\nfunction loadConfig(json) {\n const quotesParam = {};\n for (const symbol in json.quotesParam) {\n const item = json.quotesParam[symbol];\n quotesParam[symbol] = {\n tradingFeeRatio: item.tradingFeeRatio,\n stabilityFeeRatioParam: ethers_1.BigNumber.from(item.stabilityFeeRatioParam),\n protocolFeeRatio: item.protocolFeeRatio,\n qtype: Number(item.qtype),\n minMarginAmount: ethers_1.BigNumber.from(item.minMarginAmount),\n tip: ethers_1.BigNumber.from(item.tip),\n };\n }\n const config = {\n ...json,\n quotesParam,\n };\n return config;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.checkReferralCode = checkReferralCode;\nexports.getHexReferral = getHexReferral;\nexports.encodeTradeParam = encodeTradeParam;\nexports.encodePlaceParam = encodePlaceParam;\nexports.encodeDepositParam = encodeDepositParam;\nexports.encodeWithdrawParam = encodeWithdrawParam;\nexports.encodeAdjustParam = encodeAdjustParam;\nexports.encodeAddParam = encodeAddParam;\nexports.encodeRemoveParam = encodeRemoveParam;\nexports.encodeBatchPlaceParam = encodeBatchPlaceParam;\nexports.encodeFillParam = encodeFillParam;\nexports.encodeCancelParam = encodeCancelParam;\nexports.decodeTradeParam = decodeTradeParam;\nexports.decodeTradeWithStabilityFeeParam = decodeTradeWithStabilityFeeParam;\nexports.decodeDepositParam = decodeDepositParam;\nexports.decodeWithdrawParam = decodeWithdrawParam;\nexports.decodeParamForDepositAndWithdraw = decodeParamForDepositAndWithdraw;\nexports.decodeAddParam = decodeAddParam;\nexports.decodeRemoveParam = decodeRemoveParam;\nexports.decodePlaceParam = decodePlaceParam;\nexports.decodeBatchPlaceParam = decodeBatchPlaceParam;\nexports.decodeFillParam = decodeFillParam;\nexports.decodeCancelParam = decodeCancelParam;\nconst ethers_1 = require(\"ethers\");\nconst utils_1 = require(\"ethers/lib/utils\");\nconst constants_1 = require(\"../constants\");\nconst math_1 = require(\"../math\");\nconst paramsEncodeError_1 = require(\"../errors/paramsEncodeError\");\nconst nonceLength = 24;\nconst tickLength = 24;\nconst limitTicksLength = tickLength * 2;\nconst expiryLength = 32;\nconst sizeLength = 128;\nconst amountLength = 128;\nconst quantityLength = 96;\nconst addressLength = 160;\nconst deadlineLength = 32;\nconst limitStabilityFeeRatioLength = 16;\nconst ratioLength = 16;\nconst leverageLength = 128;\nfunction bytes32ToBigNumber(str) {\n str = str.startsWith('0x') ? str : '0x' + str;\n if (str.length !== 66) {\n throw new paramsEncodeError_1.ParamsEncodeError('invalid bytes32 string', { str });\n }\n return ethers_1.BigNumber.from(str);\n}\nfunction pickNumber(value, from, to) {\n return pickBigNumber(value, from, to).toNumber();\n}\nfunction pickAddress(value, from, to) {\n return (0, utils_1.hexZeroPad)(pickBigNumber(value, from, to).toHexString(), 20);\n}\nfunction pickBigNumber(value, from, to) {\n return value.shr(from).and(math_1.ONE.shl(to - from).sub(1));\n}\nfunction checkReferralCode(referral) {\n if (referral.length !== 8)\n throw new paramsEncodeError_1.ParamsEncodeError('referral code length must be 8', { referral });\n}\nfunction getHexReferral(referral) {\n checkReferralCode(referral);\n const platform = referral.charCodeAt(0);\n const wallet = referral.charCodeAt(1);\n const channel = referral.slice(2);\n return ethers_1.ethers.utils.hexConcat([\n ethers_1.BigNumber.from(platform).toHexString(),\n ethers_1.BigNumber.from(wallet).toHexString(),\n ethers_1.ethers.utils.hexlify(ethers_1.ethers.utils.toUtf8Bytes(channel)),\n ]);\n}\nfunction encodeParamForTradeAndPlace(param) {\n const usize = (0, math_1.asUint128)(param.size);\n const uAmount = (0, math_1.asUint128)(param.amount);\n const uTick = (0, math_1.asUint24)(param.limitTick);\n const combinedTick = ethers_1.BigNumber.from(uTick).shl(32).add(ethers_1.BigNumber.from(param.expiry));\n const combinedDeadline = ethers_1.BigNumber.from(param.deadline).shl(56).add(combinedTick);\n const combinedSize = ethers_1.BigNumber.from(usize).shl(128).add(uAmount);\n const page0Temp = (0, utils_1.hexZeroPad)(combinedDeadline.toHexString(), 32);\n const page1 = (0, utils_1.hexZeroPad)(combinedSize.toHexString(), 32);\n const page0 = param.referralCode\n ? (0, utils_1.hexZeroPad)(ethers_1.BigNumber.from(getHexReferral(param.referralCode)).shl(192).add(ethers_1.BigNumber.from(page0Temp)).toHexString(), 32)\n : page0Temp;\n return [page0, page1];\n}\nfunction encodeTradeParam(param) {\n return encodeParamForTradeAndPlace(param);\n}\nfunction encodePlaceParam(param) {\n return encodeParamForTradeAndPlace({\n ...param,\n limitTick: param.tick,\n });\n}\nfunction encodeDepositParam(token, quantity) {\n return encodeParamForDepositAndWithdraw(token, quantity);\n}\nfunction encodeWithdrawParam(token, quantity) {\n return encodeParamForDepositAndWithdraw(token, quantity);\n}\nfunction encodeParamForDepositAndWithdraw(token, quantity) {\n return (0, utils_1.hexZeroPad)(ethers_1.BigNumber.from(quantity).shl(160).add(token).toHexString(), 32);\n}\nfunction encodeAdjustParam(param) {\n return encodeParamForTradeAndPlace({\n expiry: param.expiry,\n size: math_1.ZERO,\n amount: param.net,\n limitTick: 0,\n deadline: param.deadline,\n referralCode: param.referralCode,\n });\n}\nfunction encodeAddParam(addParam) {\n const uTick = (0, math_1.asUint48)(addParam.limitTicks.toNumber());\n const combinedTick = ethers_1.BigNumber.from(uTick).shl(32).add(ethers_1.BigNumber.from(addParam.expiry));\n const combinedDeadline = ethers_1.BigNumber.from(addParam.deadline).shl(80).add(combinedTick);\n const combinedAmount = ethers_1.BigNumber.from(addParam.tickDeltaLower)\n .shl(152)\n .add(ethers_1.BigNumber.from(addParam.tickDeltaUpper).shl(128))\n .add(addParam.amount);\n const page0 = addParam.referralCode\n ? (0, utils_1.hexZeroPad)(ethers_1.BigNumber.from(getHexReferral(addParam.referralCode)).shl(192).add(combinedDeadline).toHexString(), 32)\n : (0, utils_1.hexZeroPad)(combinedDeadline.toHexString(), 32);\n const page1 = (0, utils_1.hexZeroPad)(combinedAmount.toHexString(), 32);\n return [page0, page1];\n}\nfunction encodeRemoveParam(removeParam) {\n const uTick = (0, math_1.asUint48)(removeParam.limitTicks.toNumber());\n const combinedTick = ethers_1.BigNumber.from(uTick).shl(32).add(ethers_1.BigNumber.from(removeParam.expiry));\n const combinedDeadline = ethers_1.BigNumber.from(removeParam.deadline).shl(80).add(combinedTick);\n const uTickLower = (0, math_1.asUint24)(removeParam.tickLower);\n const uTickUpper = (0, math_1.asUint24)(removeParam.tickUpper);\n const combinedTickLower = ethers_1.BigNumber.from(uTickLower).shl(160).add(removeParam.traderAddr);\n const combinedTickUpper = ethers_1.BigNumber.from(uTickUpper).shl(184).add(combinedTickLower);\n const page0 = (0, utils_1.hexZeroPad)(combinedDeadline.toHexString(), 32);\n const page1 = (0, utils_1.hexZeroPad)(combinedTickUpper.toHexString(), 32);\n return [page0, page1];\n}\nfunction encodeBatchPlaceParam(expiry, size, leverage, ticks, ratios, deadline, referral) {\n if (ticks.length > 9)\n throw new paramsEncodeError_1.ParamsEncodeError('cannot place more than 9 orders at once', { ticks });\n if (ticks.length !== ratios.length)\n throw new paramsEncodeError_1.ParamsEncodeError('ticks and ratios length mismatch', { ticks, ratios });\n if (ratios.reduce((a, b) => a + b, 0) !== constants_1.RATIO_BASE)\n throw new paramsEncodeError_1.ParamsEncodeError('ratios sum must be 10000', ratios);\n const usize = (0, math_1.asUint128)(size);\n const uLeverage = (0, math_1.asUint128)(leverage);\n const combinedSize = ethers_1.BigNumber.from(usize).shl(128).add(uLeverage);\n const page2 = (0, utils_1.hexZeroPad)(combinedSize.toHexString(), 32);\n let tmp0 = ethers_1.BigNumber.from(deadline).shl(32).add(ethers_1.BigNumber.from(expiry));\n for (let i = 0; i < 3; i++) {\n const uTick = i < ticks.length ? (0, math_1.asUint24)(ticks[i]) : math_1.EMPTY_TICK;\n const uRatio = i < ratios.length ? (0, math_1.asUint16)(ratios[i]) : 0;\n tmp0 = tmp0.add(ethers_1.BigNumber.from(uRatio).shl(64 + 40 * i)).add(ethers_1.BigNumber.from(uTick).shl(64 + 40 * i + 16));\n }\n const page0Temp = (0, utils_1.hexZeroPad)(tmp0.toHexString(), 32);\n let tmp1 = math_1.ZERO;\n for (let i = 0; i < 6; i++) {\n const uTick = i + 3 < ticks.length ? (0, math_1.asUint24)(ticks[i + 3]) : math_1.EMPTY_TICK;\n const uRatio = i + 3 < ratios.length ? (0, math_1.asUint16)(ratios[i + 3]) : 0;\n tmp1 = tmp1.add(ethers_1.BigNumber.from(uRatio).shl(40 * i)).add(ethers_1.BigNumber.from(uTick).shl(40 * i + 16));\n }\n const page1 = (0, utils_1.hexZeroPad)(tmp1.toHexString(), 32);\n const page0 = referral\n ? (0, utils_1.hexZeroPad)(ethers_1.BigNumber.from(getHexReferral(referral)).shl(192).add(ethers_1.BigNumber.from(page0Temp)).toHexString(), 32)\n : page0Temp;\n return [page0, page1, page2];\n}\nfunction encodeFillParam(param) {\n const uTick = (0, math_1.asUint24)(param.tick);\n const combinedTarget = ethers_1.BigNumber.from(param.target).shl(32).add(ethers_1.BigNumber.from(param.expiry));\n const combinedTick = ethers_1.BigNumber.from(uTick).shl(192).add(combinedTarget);\n return (0, utils_1.hexZeroPad)(ethers_1.BigNumber.from(param.nonce).shl(216).add(combinedTick).toHexString(), 32);\n}\nfunction encodeCancelParam(param) {\n const { ticks, expiry, deadline } = param;\n if (ticks.length < 1 || ticks.length > constants_1.MAX_CANCEL_ORDER_COUNT)\n throw new paramsEncodeError_1.ParamsEncodeError(`ticks length must be between 1 and ${constants_1.MAX_CANCEL_ORDER_COUNT}`, { ticks });\n let encodedTicks = math_1.ZERO;\n for (let i = 0; i < constants_1.MAX_CANCEL_ORDER_COUNT; i++) {\n const tick = i < ticks.length ? ticks[i] : constants_1.INT24_MAX;\n encodedTicks = encodedTicks.add(ethers_1.BigNumber.from((0, math_1.asUint24)(tick)).shl(24 * i));\n }\n const combinedTick = ethers_1.BigNumber.from(encodedTicks).shl(32).add(ethers_1.BigNumber.from(expiry));\n const combinedDeadline = ethers_1.BigNumber.from(deadline).shl(224).add(combinedTick);\n return (0, utils_1.hexZeroPad)(combinedDeadline.toHexString(), 32);\n}\nfunction decodeTradeParam(args) {\n return decodeParamForTradeAndPlace(args);\n}\nfunction decodeTradeWithStabilityFeeParam(args) {\n const tradeParam = decodeTradeParam(args);\n const value1 = bytes32ToBigNumber(args[0]);\n const offset = expiryLength + tickLength + deadlineLength;\n const limitStabilityFeeRatio = pickNumber(value1, offset, offset + limitStabilityFeeRatioLength);\n return { ...tradeParam, limitStabilityFeeRatio };\n}\nfunction decodeParamForTradeAndPlace(args) {\n if (args.length !== 2) {\n throw new paramsEncodeError_1.ParamsEncodeError('invalid args length for trade and place', { args });\n }\n const [arg1, arg2] = args;\n let offset = 0;\n const value1 = bytes32ToBigNumber(arg1);\n const expiry = pickNumber(value1, offset, (offset += expiryLength));\n const limitTick = (0, math_1.asInt24)(pickNumber(value1, offset, (offset += tickLength)));\n const deadline = pickNumber(value1, offset, (offset += deadlineLength));\n offset = 0;\n const value2 = bytes32ToBigNumber(arg2);\n const amount = (0, math_1.asInt128)(pickBigNumber(value2, offset, (offset += amountLength)));\n const size = (0, math_1.asInt128)(pickBigNumber(value2, offset, (offset += sizeLength)));\n return { expiry, size, amount, limitTick, deadline, referralCode: '' };\n}\nfunction decodeDepositParam(arg) {\n return decodeParamForDepositAndWithdraw(arg);\n}\nfunction decodeWithdrawParam(arg) {\n return decodeParamForDepositAndWithdraw(arg);\n}\nfunction decodeParamForDepositAndWithdraw(arg) {\n let offset = 0;\n const value = bytes32ToBigNumber(arg);\n const token = pickAddress(value, offset, (offset += addressLength));\n const quantity = pickBigNumber(value, offset, (offset += quantityLength));\n return { quantity, token };\n}\nfunction decodeAddParam(args) {\n if (args.length !== 2) {\n throw new paramsEncodeError_1.ParamsEncodeError('invalid args length for add', { args });\n }\n const [arg1, arg2] = args;\n let offset = 0;\n const value1 = bytes32ToBigNumber(arg1);\n const expiry = pickNumber(value1, offset, (offset += expiryLength));\n const limitTicks = pickBigNumber(value1, offset, (offset += limitTicksLength));\n const deadline = pickNumber(value1, offset, (offset += deadlineLength));\n offset = 0;\n const value2 = bytes32ToBigNumber(arg2);\n const amount = pickBigNumber(value2, offset, (offset += amountLength));\n const tickDeltaUpper = pickNumber(value2, offset, (offset += tickLength));\n const tickDeltaLower = pickNumber(value2, offset, (offset += tickLength));\n return { limitTicks, amount, tickDeltaLower, tickDeltaUpper, expiry, deadline, referralCode: '' };\n}\nfunction decodeRemoveParam(args) {\n if (args.length !== 2) {\n throw new paramsEncodeError_1.ParamsEncodeError('invalid args length for remove', { args });\n }\n const [arg1, arg2] = args;\n let offset = 0;\n const value1 = bytes32ToBigNumber(arg1);\n const expiry = pickNumber(value1, offset, (offset += expiryLength));\n const limitTicks = pickBigNumber(value1, offset, (offset += limitTicksLength));\n const deadline = pickNumber(value1, offset, (offset += deadlineLength));\n offset = 0;\n const value2 = bytes32ToBigNumber(arg2);\n const target = pickAddress(value2, offset, (offset += addressLength));\n const tickLower = (0, math_1.asInt24)(pickNumber(value2, offset, (offset += tickLength)));\n const tickUpper = (0, math_1.asInt24)(pickNumber(value2, offset, (offset += tickLength)));\n return { tickUpper, tickLower, traderAddr: target, expiry, limitTicks, deadline };\n}\nfunction decodePlaceParam(args) {\n const result = decodeParamForTradeAndPlace(args);\n return {\n expiry: result.expiry,\n size: result.size,\n amount: result.amount,\n tick: result.limitTick,\n deadline: result.deadline,\n };\n}\nfunction decodeBatchPlaceParam(args) {\n if (args.length !== 3) {\n throw new paramsEncodeError_1.ParamsEncodeError('invalid args length for place', { args });\n }\n const [arg1, arg2, arg3] = args;\n const ticks = [];\n const ratios = [];\n let offset = 0;\n const value1 = bytes32ToBigNumber(arg1);\n const expiry = pickNumber(value1, offset, (offset += expiryLength));\n const deadline = pickNumber(value1, offset, (offset += deadlineLength));\n for (let i = 0; i < 3; i++) {\n const ratio = pickNumber(value1, offset, (offset += ratioLength));\n const tick = (0, math_1.asInt24)(pickNumber(value1, offset, (offset += tickLength)));\n if (ethers_1.BigNumber.from(tick).eq(math_1.EMPTY_TICK))\n continue;\n ticks.push(tick);\n ratios.push(ratio);\n }\n offset = 0;\n const value2 = bytes32ToBigNumber(arg2);\n for (let i = 0; i < 6; i++) {\n const ratio = pickNumber(value2, offset, (offset += ratioLength));\n const tick = (0, math_1.asInt24)(pickNumber(value2, offset, (offset += tickLength)));\n if (ethers_1.BigNumber.from(tick).eq(math_1.EMPTY_TICK))\n continue;\n ticks.push(tick);\n ratios.push(ratio);\n }\n offset = 0;\n const value3 = bytes32ToBigNumber(arg3);\n const leverage = (0, math_1.asInt128)(pickBigNumber(value3, offset, (offset += leverageLength)));\n const size = (0, math_1.asInt128)(pickBigNumber(value3, offset, (offset += sizeLength)));\n return { expiry, ticks, ratios, size, leverage, deadline };\n}\nfunction decodeFillParam(arg) {\n let offset = 0;\n const value = bytes32ToBigNumber(arg);\n const expiry = pickNumber(value, offset, (offset += expiryLength));\n const target = pickAddress(value, offset, (offset += addressLength));\n const tick = (0, math_1.asInt24)(pickNumber(value, offset, (offset += tickLength)));\n const nonce = pickNumber(value, offset, (offset += nonceLength));\n return { nonce, tick, target, expiry };\n}\nfunction decodeCancelParam(arg) {\n let offset = 0;\n const value = bytes32ToBigNumber(arg);\n const expiry = pickNumber(value, offset, (offset += expiryLength));\n const ticks = [];\n for (let i = 0; i < constants_1.MAX_CANCEL_ORDER_COUNT; i++) {\n const tick = (0, math_1.asInt24)(pickNumber(value, offset, (offset += tickLength)));\n if (tick === math_1.MAX_INT_24.toNumber()) {\n continue;\n }\n ticks.push(tick);\n }\n const deadline = pickNumber(value, offset, (offset += deadlineLength));\n return { ticks, expiry, deadline };\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createInstrument = createInstrument;\nexports.createAmm = createAmm;\nexports.createOrder = createOrder;\nexports.createPosition = createPosition;\nexports.createRange = createRange;\nconst constants_1 = require(\"../constants\");\nconst math_1 = require(\"../math\");\nconst utils_1 = require(\"./utils\");\nconst lowLevel_1 = require(\"./lowLevel\");\nfunction createInstrument(instrument) {\n const minTradeValue = instrument.setting.quoteParam.minMarginAmount\n .mul(constants_1.RATIO_BASE)\n .div(instrument.setting.initialMarginRatio);\n const minOrderValue = minTradeValue.mul(constants_1.MIN_ORDER_MULTIPLIER);\n const minRangeValue = minTradeValue.mul(constants_1.MIN_RANGE_MULTIPLIER);\n return {\n ...instrument,\n instrumentAddr: instrument.instrumentAddr.toLowerCase(),\n instrumentType: instrument.market.feeder.ftype,\n marketType: instrument.market.info.type,\n minTradeValue,\n minOrderValue,\n minRangeValue,\n displayBase: instrument.base,\n displayQuote: instrument.quote,\n minTickDelta: (0, lowLevel_1.calcMinTickDelta)(instrument.setting.initialMarginRatio),\n };\n}\nfunction createAmm(amm) {\n return {\n ...amm,\n instrumentAddr: amm.instrumentAddr.toLowerCase(),\n fairPrice: (0, math_1.sqrtX96ToWad)(amm.sqrtPX96),\n };\n}\nfunction createOrder(order) {\n return {\n ...order,\n instrumentAddr: order.instrumentAddr.toLowerCase(),\n traderAddr: order.traderAddr.toLowerCase(),\n oid: (0, utils_1.orderKey)(order.tick, order.nonce),\n side: (0, utils_1.sizeToSide)(order.size),\n limitPrice: math_1.TickMath.getWadAtTick(order.tick),\n };\n}\nfunction createPosition(position) {\n return {\n ...position,\n instrumentAddr: position.instrumentAddr.toLowerCase(),\n traderAddr: position.traderAddr.toLowerCase(),\n side: (0, utils_1.sizeToSide)(position.size),\n entryPrice: position.size.eq(math_1.ZERO) ? math_1.ZERO : (0, math_1.wdiv)(position.entryNotional, position.size.abs()),\n };\n}\nfunction createRange(range) {\n return {\n ...range,\n instrumentAddr: range.instrumentAddr.toLowerCase(),\n traderAddr: range.traderAddr.toLowerCase(),\n rid: (0, utils_1.rangeKey)(range.tickLower, range.tickUpper),\n lowerPrice: math_1.TickMath.getWadAtTick(range.tickLower),\n upperPrice: math_1.TickMath.getWadAtTick(range.tickUpper),\n entryPrice: (0, math_1.sqrtX96ToWad)(range.sqrtEntryPX96),\n };\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.groupBy = groupBy;\nexports.calcPositionLiquidationPrice = calcPositionLiquidationPrice;\nexports.formatOrder = formatOrder;\nexports.formatRange = formatRange;\nexports.formatPosition = formatPosition;\nexports.formatPositionWithoutPnL = formatPositionWithoutPnL;\nexports.formatAmm = formatAmm;\nexports.formatInstrument = formatInstrument;\nexports.formatPortfolio = formatPortfolio;\nexports.formatSimulateAddLiquidityResult = formatSimulateAddLiquidityResult;\nexports.formatSimulateAddLiquidityWithAsymmetricRangeResult = formatSimulateAddLiquidityWithAsymmetricRangeResult;\nexports.formatSimulateRemoveLiquidityResult = formatSimulateRemoveLiquidityResult;\nexports.formatSimulateMarketOrderResult = formatSimulateMarketOrderResult;\nexports.formatSimulateAdjustMarginByMarginResult = formatSimulateAdjustMarginByMarginResult;\nexports.formatSimulateAdjustMarginByLeverageResult = formatSimulateAdjustMarginByLeverageResult;\nexports.formatSimulateLimitOrderResult = formatSimulateLimitOrderResult;\nexports.formatSimulateBatchPlaceResult = formatSimulateBatchPlaceResult;\nexports.formatSimulateCrossMarketOrderResult = formatSimulateCrossMarketOrderResult;\nconst utils_1 = require(\"ethers/lib/utils\");\nconst calculation_1 = require(\"./calculation\");\nconst _1 = require(\".\");\nconst math_1 = require(\"../math\");\nconst enum_1 = require(\"../enum\");\nfunction groupBy(arr, fn) {\n return arr.reduce((map, curr) => {\n const key = fn(curr);\n const group = map.get(key);\n if (group) {\n group.push(curr);\n }\n else {\n map.set(key, [curr]);\n }\n return map;\n }, new Map());\n}\nfunction calcPositionLiquidationPrice(amm, position, maintenanceMarginRatio) {\n if (position.size.isZero() || position.balance.isZero())\n return math_1.ZERO;\n return (0, calculation_1.positionLiquidationPrice)(position, amm, maintenanceMarginRatio);\n}\nfunction _formatOrder(order, amm) {\n const formattedOrder = {\n side: enum_1.Side[order.side],\n size: (0, utils_1.formatEther)(order.size),\n Filled: (0, utils_1.formatEther)(order.taken),\n 'Order Price': (0, utils_1.formatEther)(order.limitPrice),\n Margin: (0, utils_1.formatEther)(order.balance),\n Leverage: (0, utils_1.formatEther)((0, calculation_1.orderLeverage)(order, amm)),\n };\n return formattedOrder;\n}\nfunction formatOrder(order, amm) {\n return JSON.stringify(_formatOrder(order, amm), null, 2);\n}\nfunction _formatRange(range, amm, maintenanceMarginRatio) {\n const upperRawPosition = (0, calculation_1.rangeUpperPositionIfRemove)(range, amm);\n const upperPosition = _1.factory.createPosition({\n ...upperRawPosition,\n instrumentAddr: range.instrumentAddr,\n expiry: range.expiry,\n traderAddr: range.traderAddr,\n });\n const lowerRawPosition = (0, calculation_1.rangeLowerPositionIfRemove)(range, amm);\n const lowerPosition = _1.factory.createPosition({\n ...lowerRawPosition,\n instrumentAddr: range.instrumentAddr,\n expiry: range.expiry,\n traderAddr: range.traderAddr,\n });\n const lowerLiquidationPrice = (0, calculation_1.positionLiquidationPrice)(lowerPosition, amm, maintenanceMarginRatio);\n const upperLiquidationPrice = (0, calculation_1.positionLiquidationPrice)(upperPosition, amm, maintenanceMarginRatio);\n const formattedRange = {\n 'Price Range': `${(0, utils_1.formatEther)(range.lowerPrice)} - ${(0, utils_1.formatEther)(range.upperPrice)}`,\n 'Fair Price': (0, utils_1.formatEther)(amm.fairPrice),\n 'Value Locked': (0, utils_1.formatEther)((0, calculation_1.rangeValueLocked)(range, amm)),\n 'Fees Earned': (0, utils_1.formatEther)((0, calculation_1.rangeFeeEarned)(range, amm)),\n 'Liquidation Price': `${(0, utils_1.formatEther)(lowerLiquidationPrice)} - ${(0, utils_1.formatEther)(upperLiquidationPrice)}`,\n };\n return formattedRange;\n}\nfunction formatRange(range, amm, maintenanceMarginRatio) {\n return JSON.stringify(_formatRange(range, amm, maintenanceMarginRatio), null, 2);\n}\nfunction _formatPosition(position, amm, maintenanceMarginRatio) {\n const formattedPosition = {\n side: enum_1.Side[position.side],\n size: (0, utils_1.formatEther)(position.size),\n 'Avg.Price': (0, utils_1.formatEther)(position.entryPrice),\n Margin: (0, utils_1.formatEther)((0, calculation_1.positionEquity)(position, amm)),\n Leverage: (0, utils_1.formatEther)((0, calculation_1.positionLeverage)(position, amm)),\n 'Liq.Price': (0, utils_1.formatEther)(calcPositionLiquidationPrice(amm, position, maintenanceMarginRatio)),\n 'Mark Price': (0, utils_1.formatEther)(amm.markPrice),\n 'Unrealized P&L': (0, utils_1.formatEther)((0, calculation_1.positionUnrealizedPnl)(position, amm)),\n 'Unrealized Funding': (0, utils_1.formatEther)((0, calculation_1.positionUnrealizedFundingFee)(position, amm)),\n };\n return formattedPosition;\n}\nfunction formatPosition(position, amm, maintenanceMarginRatio) {\n return JSON.stringify(_formatPosition(position, amm, maintenanceMarginRatio), null, 2);\n}\nfunction _formatPositionWithoutPnL(position, amm, maintenanceMarginRatio) {\n const formattedPosition = {\n side: enum_1.Side[position.side],\n size: (0, utils_1.formatEther)(position.size),\n 'Avg.Price': (0, utils_1.formatEther)(position.entryPrice),\n Margin: (0, utils_1.formatEther)((0, calculation_1.positionEquity)(position, amm)),\n Leverage: (0, utils_1.formatEther)((0, calculation_1.positionLeverage)(position, amm)),\n 'Liq.Price': (0, utils_1.formatEther)(calcPositionLiquidationPrice(amm, position, maintenanceMarginRatio)),\n 'Mark Price': (0, utils_1.formatEther)(amm.markPrice),\n };\n return formattedPosition;\n}\nfunction formatPositionWithoutPnL(position, amm, maintenanceMarginRatio) {\n return JSON.stringify(_formatPositionWithoutPnL(position, amm, maintenanceMarginRatio), null, 2);\n}\nfunction _formatAmm(amm) {\n const formattedAmm = {\n expiry: amm.expiry,\n markPrice: (0, utils_1.formatEther)(amm.markPrice),\n fairPrice: (0, utils_1.formatEther)(amm.fairPrice),\n };\n return formattedAmm;\n}\nfunction formatAmm(amm) {\n return JSON.stringify(_formatAmm(amm), null, 2);\n}\nfunction _formatInstrument(instrument) {\n const formattedInstrument = {\n instrumentAddr: instrument.instrumentAddr,\n symbol: instrument.symbol,\n spotPrice: (0, utils_1.formatEther)(instrument.spotPrice),\n amms: Object.fromEntries(Array.from(instrument.amms).map(([expiry, amm]) => [expiry, _formatAmm(amm)])),\n };\n return formattedInstrument;\n}\nfunction formatInstrument(instrument) {\n return JSON.stringify(_formatInstrument(instrument), null, 2);\n}\nfunction formatPortfolio(portfolio, instrument) {\n const maintenanceMarginRatio = instrument.setting.maintenanceMarginRatio;\n const formattedPortfolio = {\n ...portfolio,\n position: portfolio.position.size.isZero()\n ? null\n : formatPosition(portfolio.position, instrument.amms.get(portfolio.position.expiry), instrument.setting.maintenanceMarginRatio),\n orders: Object.fromEntries(Array.from(portfolio.orders).map(([oid, order]) => [\n oid,\n formatOrder(order, instrument.amms.get(order.expiry)),\n ])),\n ranges: Object.fromEntries(Array.from(portfolio.ranges).map(([rid, range]) => [\n rid,\n formatRange(range, instrument.amms.get(range.expiry), maintenanceMarginRatio),\n ])),\n };\n return JSON.stringify(formattedPortfolio, null, 2);\n}\nfunction formatSimulateAddLiquidityResult(result, amm, maintenanceMarginRatio) {\n const formattedResult = {\n 'Current Price': (0, utils_1.formatEther)(amm.fairPrice),\n 'Capital Efficiency Boost': result.capitalEfficiencyBoost,\n 'Removal Price': (0, utils_1.formatEther)(result.lowerPrice) + ' ~ ' + (0, utils_1.formatEther)(result.upperPrice),\n 'Liquidation Price': (0, utils_1.formatEther)(calcPositionLiquidationPrice(amm, result.lowerPosition, maintenanceMarginRatio)) +\n ' ~ ' +\n (0, utils_1.formatEther)(calcPositionLiquidationPrice(amm, result.upperPosition, maintenanceMarginRatio)),\n minEffectiveQuoteAmount: (0, utils_1.formatEther)(result.minEffectiveQuoteAmount),\n minMargin: (0, utils_1.formatEther)(result.minMargin),\n };\n return JSON.stringify(formattedResult, null, 2);\n}\nfunction formatSimulateAddLiquidityWithAsymmetricRangeResult(result, amm, maintenanceMarginRatio) {\n const formattedResult = {\n 'Current Price': (0, utils_1.formatEther)(amm.fairPrice),\n 'Capital Efficiency Boost': result.capitalEfficiencyBoost,\n 'Removal Price': (0, utils_1.formatEther)(result.lowerPrice) + ' ~ ' + (0, utils_1.formatEther)(result.upperPrice),\n 'Liquidation Price': (0, utils_1.formatEther)(calcPositionLiquidationPrice(amm, result.lowerPosition, maintenanceMarginRatio)) +\n ' ~ ' +\n (0, utils_1.formatEther)(calcPositionLiquidationPrice(amm, result.upperPosition, maintenanceMarginRatio)),\n minEffectiveQuoteAmount: (0, utils_1.formatEther)(result.minEffectiveQuoteAmount),\n minMargin: (0, utils_1.formatEther)(result.minMargin),\n };\n return JSON.stringify(formattedResult, null, 2);\n}\nfunction formatSimulateRemoveLiquidityResult(result, amm, maintenanceMarginRatio) {\n const formattedResult = {\n 'Removed position': _formatPositionWithoutPnL(result.removedPosition, amm, maintenanceMarginRatio),\n 'Post position': _formatPositionWithoutPnL(result.postPosition, amm, maintenanceMarginRatio),\n };\n return JSON.stringify(formattedResult, null, 2);\n}\nfunction _formatSimulateMarketOrderResult(result, amm, maintenanceMarginRatio) {\n const formattedResult = {\n 'Price Impact': Number((0, utils_1.formatEther)(result.priceImpact)) * 100 + '%',\n 'Est. Trade Value': (0, utils_1.formatEther)(result.tradeValue),\n 'Trading Fee': (0, utils_1.formatEther)(result.tradingFee),\n Margin: (0, utils_1.formatEther)(result.margin),\n Leverage: (0, utils_1.formatEther)(result.leverage),\n 'Post position': _formatPositionWithoutPnL(result.postPosition, amm, maintenanceMarginRatio),\n };\n return formattedResult;\n}\nfunction formatSimulateMarketOrderResult(result, amm, maintenanceMarginRatio) {\n return JSON.stringify(_formatSimulateMarketOrderResult(result, amm, maintenanceMarginRatio), null, 2);\n}\nfunction formatSimulateAdjustMarginByMarginResult(result, amm, maintenanceMarginRatio) {\n const formattedResult = {\n Leverage: (0, utils_1.formatEther)(result.leverage),\n 'Post position': _formatPositionWithoutPnL(result.postPosition, amm, maintenanceMarginRatio),\n };\n return JSON.stringify(formattedResult, null, 2);\n}\nfunction formatSimulateAdjustMarginByLeverageResult(result, amm, maintenanceMarginRatio) {\n const formattedResult = {\n 'Transfer In': result.transferIn,\n Margin: (0, utils_1.formatEther)(result.margin),\n 'Post position': _formatPositionWithoutPnL(result.postPosition, amm, maintenanceMarginRatio),\n };\n return JSON.stringify(formattedResult, null, 2);\n}\nfunction _formatSimulateLimitOrderResult(result) {\n const formattedResult = {\n Margin: (0, utils_1.formatEther)(result.margin),\n 'Est. Trade Value': (0, utils_1.formatEther)(result.tradeValue),\n 'Fee Rebate': (0, utils_1.formatEther)(result.minFeeRebate),\n limitPrice: (0, utils_1.formatEther)(result.limitPrice),\n leverage: (0, utils_1.formatEther)(result.leverage),\n };\n return formattedResult;\n}\nfunction formatSimulateLimitOrderResult(result) {\n return JSON.stringify(_formatSimulateLimitOrderResult(result), null, 2);\n}\nfunction formatSimulateBatchPlaceResult(result) {\n const orders = [];\n for (let i = 0; i < result.orders.length; i++) {\n if (result.orders[i]) {\n orders.push({\n 'Order Price': (0, utils_1.formatEther)(result.orders[i].limitPrice),\n tick: result.orders[i].tick,\n margin: (0, utils_1.formatEther)(result.orders[i].margin),\n leverage: (0, utils_1.formatEther)(result.orders[i].leverage),\n minFeeRebate: (0, utils_1.formatEther)(result.orders[i].minFeeRebate),\n });\n }\n }\n const formattedResult = {\n orders: orders,\n };\n return JSON.stringify(formattedResult, null, 2);\n}\nfunction formatSimulateCrossMarketOrderResult(result, amm, maintenanceMarginRatio) {\n const formattedResult = {\n 'Can Place Order': result.canPlaceOrder,\n minOrderSize: (0, utils_1.formatEther)(result.minOrderSize),\n 'Trade Simulation': _formatSimulateMarketOrderResult(result.tradeSimulation, amm, maintenanceMarginRatio),\n 'Order Simulation': _formatSimulateLimitOrderResult(result.orderSimulation),\n };\n return JSON.stringify(formattedResult, null, 2);\n}\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nvar __importStar = (this && this.__importStar) || (function () {\n var ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n };\n return function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.lowLevel = exports.factory = void 0;\n__exportStar(require(\"./calculation\"), exports);\n__exportStar(require(\"./config\"), exports);\n__exportStar(require(\"./encode\"), exports);\nexports.factory = __importStar(require(\"./factory\"));\nexports.lowLevel = __importStar(require(\"./lowLevel\"));\n__exportStar(require(\"./reverse\"), exports);\n__exportStar(require(\"./utils\"), exports);\n__exportStar(require(\"./format\"), exports);\n__exportStar(require(\"./limited\"), exports);\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Limited = exports.RequestStatus = exports.Token = exports.TokenStatus = exports.Counter = void 0;\nexports.getRandomIntInclusive = getRandomIntInclusive;\nexports.limitedMap = limitedMap;\nconst yallist_1 = __importDefault(require(\"yallist\"));\nclass Counter {\n constructor() {\n this._count = 0;\n }\n get count() {\n return this._count;\n }\n create() {\n this.promise = new Promise((r) => (this.resolve = r));\n }\n destroy() {\n this.resolve();\n this.resolve = undefined;\n this.promise = undefined;\n }\n increase(i = 1) {\n this._count += i;\n if (this._count - i === 0) {\n this.create();\n }\n }\n decrease(i = 1) {\n if (i > this._count) {\n i = this._count;\n }\n this._count -= i;\n if (this._count === 0) {\n this.destroy();\n }\n }\n wait() {\n return this.promise ?? Promise.resolve();\n }\n}\nexports.Counter = Counter;\nvar TokenStatus;\n(function (TokenStatus) {\n TokenStatus[TokenStatus[\"Idle\"] = 0] = \"Idle\";\n TokenStatus[TokenStatus[\"Using\"] = 1] = \"Using\";\n})(TokenStatus || (exports.TokenStatus = TokenStatus = {}));\nclass Token {\n constructor(limited) {\n this.status = TokenStatus.Idle;\n this.limited = limited;\n }\n}\nexports.Token = Token;\nvar RequestStatus;\n(function (RequestStatus) {\n RequestStatus[RequestStatus[\"Queued\"] = 0] = \"Queued\";\n RequestStatus[RequestStatus[\"Finished\"] = 1] = \"Finished\";\n RequestStatus[RequestStatus[\"Canceled\"] = 2] = \"Canceled\";\n})(RequestStatus || (exports.RequestStatus = RequestStatus = {}));\nfunction toNode(value) {\n return {\n prev: null,\n next: null,\n value,\n };\n}\nclass Limited {\n constructor(maxTokens, maxQueued = Infinity) {\n this.idle = yallist_1.default.create();\n this.queue = yallist_1.default.create();\n this.counter = new Counter();\n for (let i = 0; i < maxTokens; i++) {\n this.idle.push(new Token(this));\n }\n this.maxTokens = maxTokens;\n this.maxQueued = maxQueued;\n }\n get parallels() {\n return this.counter.count;\n }\n get tokens() {\n return this.maxTokens - this.parallels;\n }\n get queued() {\n return this.queue.length;\n }\n get available() {\n return this.maxQueued - this.queued;\n }\n get() {\n if (this.idle.length > 0) {\n const token = this.idle.shift();\n token.status = TokenStatus.Using;\n this.counter.increase();\n return { getToken: Promise.resolve(token) };\n }\n else if (this.queue.length + 1 <= this.maxQueued) {\n let resolve;\n let reject;\n const getToken = new Promise((_resolve, _reject) => {\n resolve = _resolve;\n reject = _reject;\n });\n const requestValue = {\n status: RequestStatus.Queued,\n resolve,\n reject,\n };\n const request = toNode(requestValue);\n this.queue.pushNode(request);\n return { getToken, request };\n }\n else {\n throw new Error('too many queued');\n }\n }\n getToken() {\n return this.get().getToken;\n }\n put(token) {\n if (token.limited !== this || token.status !== TokenStatus.Using) {\n throw new Error('invalid token');\n }\n if (this.queue.length > 0) {\n const request = this.queue.shift();\n request.status = RequestStatus.Finished;\n request.resolve(token);\n }\n else {\n token.status = TokenStatus.Idle;\n this.idle.push(token);\n this.counter.decrease();\n }\n }\n cancel(request, reason) {\n if (request.list !== this.queue) {\n throw new Error('invalid request');\n }\n if (request.value.status !== RequestStatus.Queued) {\n return;\n }\n this.queue.removeNode(request);\n request.value.status = RequestStatus.Canceled;\n request.value.reject(reason);\n }\n wait() {\n return this.counter.wait();\n }\n}\nexports.Limited = Limited;\nfunction getRandomIntInclusive(min, max) {\n min = Math.ceil(min);\n max = Math.floor(max);\n if (max < min) {\n throw new Error('The maximum value should be greater than the minimum value');\n }\n return Math.floor(Math.random() * (max - min + 1)) + min;\n}\nfunction limitedMap(array, fn, limit) {\n return new Promise(async (resolve, reject) => {\n let failed = false;\n const limited = new Limited(limit);\n const promises = [];\n for (const element of array) {\n if (failed) {\n break;\n }\n const token = await limited.getToken();\n if (failed) {\n limited.put(token);\n break;\n }\n promises.push(fn(element)\n .catch((err) => {\n failed = true;\n reject(err);\n })\n .finally(() => limited.put(token)));\n }\n resolve(await Promise.all(promises));\n });\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getLatestFundingIndex = getLatestFundingIndex;\nexports.updateFundingIndex = updateFundingIndex;\nexports.withinOrderLimit = withinOrderLimit;\nexports.withinDeviationLimit = withinDeviationLimit;\nexports.calcBenchmarkPrice = calcBenchmarkPrice;\nexports.calcMinTickDelta = calcMinTickDelta;\nexports.getBatchOrderRatios = getBatchOrderRatios;\nexports.requiredMarginForOrder = requiredMarginForOrder;\nexports.fillOrderToPosition = fillOrderToPosition;\nexports.cancelOrderToPosition = cancelOrderToPosition;\nexports.tally = tally;\nexports.calcLiquidationPrice = calcLiquidationPrice;\nexports.calculatePriceFromPnl = calculatePriceFromPnl;\nexports.calcFundingFee = calcFundingFee;\nexports.calcPnl = calcPnl;\nexports.realizeFundingWithPnl = realizeFundingWithPnl;\nexports.realizeFundingIncome = realizeFundingIncome;\nexports.realizeSocialLoss = realizeSocialLoss;\nexports.combine = combine;\nexports.splitPosition = splitPosition;\nexports.entryDelta = entryDelta;\nexports.alignRangeTick = alignRangeTick;\nexports.getLiquidityFromMarginByUpper = getLiquidityFromMarginByUpper;\nexports.getLiquidityFromMarginByLower = getLiquidityFromMarginByLower;\nexports.getMarginFromLiquidity = getMarginFromLiquidity;\nconst ethers_1 = require(\"ethers\");\nconst context_1 = require(\"@derivation-tech/context\");\nconst constants_1 = require(\"../constants\");\nconst math_1 = require(\"../math\");\nconst enum_1 = require(\"../enum\");\nconst synfError_1 = require(\"../errors/synfError\");\nfunction getLatestFundingIndex(amm, markPrice, timestamp) {\n return updateFundingIndex(amm, markPrice, timestamp);\n}\nfunction updateFundingIndex(amm, mark, timestamp) {\n const timeElapsed = timestamp - amm.timestamp;\n if (timeElapsed == 0)\n return { longFundingIndex: amm.longFundingIndex, shortFundingIndex: amm.shortFundingIndex };\n const fair = (0, math_1.sqrtX96ToWad)(amm.sqrtPX96);\n const longPayShort = fair.gt(mark);\n const [payerSize, receiverSize] = longPayShort ? [amm.totalLong, amm.totalShort] : [amm.totalShort, amm.totalLong];\n const fundingFeeIndex = (0, math_1.frac)(fair.sub(mark).abs(), ethers_1.BigNumber.from(timeElapsed), ethers_1.BigNumber.from(context_1.SECS_PER_DAY));\n if (payerSize.gt(0)) {\n let [payerIndex, receiverIndex] = longPayShort\n ? [amm.longFundingIndex, amm.shortFundingIndex]\n : [amm.shortFundingIndex, amm.longFundingIndex];\n payerIndex = payerIndex.sub(fundingFeeIndex);\n const totalFundingFee = (0, math_1.wmul)(fundingFeeIndex, payerSize);\n if (receiverSize.gt(0)) {\n receiverIndex = receiverIndex.add((0, math_1.wdiv)(totalFundingFee, receiverSize));\n }\n return longPayShort\n ? { longFundingIndex: payerIndex, shortFundingIndex: receiverIndex }\n : { longFundingIndex: receiverIndex, shortFundingIndex: payerIndex };\n }\n return { longFundingIndex: amm.longFundingIndex, shortFundingIndex: amm.shortFundingIndex };\n}\nfunction withinOrderLimit(limitPrice, markPrice, imr) {\n return (0, math_1.wdiv)(limitPrice.sub(markPrice).abs(), markPrice).lte((0, math_1.r2w)(imr).mul(2));\n}\nfunction withinDeviationLimit(fairPrice, markPrice, imr) {\n return (0, math_1.wdiv)(fairPrice.sub(markPrice).abs(), markPrice).lte((0, math_1.r2w)(imr));\n}\nfunction calcBenchmarkPrice(expiry, rawSpotPrice, feederType, dailyInterestRate) {\n if (expiry == constants_1.PERP_EXPIRY) {\n return rawSpotPrice;\n }\n else {\n const daysLeft = Date.now() / 1000 >= expiry ? 0 : Math.floor((expiry * 1000 - Date.now()) / (context_1.SECS_PER_DAY * 1000)) + 1;\n if (feederType === enum_1.FeederType.BOTH_STABLE || feederType === enum_1.FeederType.NONE_STABLE) {\n return rawSpotPrice;\n }\n else if (feederType === enum_1.FeederType.QUOTE_STABLE) {\n return (0, math_1.wmulDown)(rawSpotPrice, (0, math_1.r2w)(dailyInterestRate)).mul(daysLeft).add(rawSpotPrice);\n }\n else {\n const priceChange = (0, math_1.wmulDown)(rawSpotPrice, (0, math_1.r2w)(dailyInterestRate)).mul(daysLeft);\n return rawSpotPrice.gt(priceChange) ? rawSpotPrice.sub(priceChange) : math_1.ZERO;\n }\n }\n}\nfunction calcMinTickDelta(initialMarginRatio) {\n return (0, math_1.wadToTick)((0, math_1.r2w)(initialMarginRatio).add(math_1.WAD));\n}\nfunction getBatchOrderRatios(sizeDistribution, orderCount) {\n let ratios = [];\n switch (sizeDistribution) {\n case enum_1.BatchOrderSizeDistribution.FLAT: {\n ratios = Array(orderCount).fill(Math.floor(constants_1.RATIO_BASE / orderCount));\n break;\n }\n case enum_1.BatchOrderSizeDistribution.UPPER: {\n const sum = Array.from({ length: orderCount }, (_, i) => i + 1).reduce((acc, i) => acc + i, 0);\n ratios = Array.from({ length: orderCount }, (_, i) => Math.floor((i + 1) * (constants_1.RATIO_BASE / sum)));\n break;\n }\n case enum_1.BatchOrderSizeDistribution.LOWER: {\n const sum = Array.from({ length: orderCount }, (_, i) => orderCount - i).reduce((acc, i) => acc + i, 0);\n ratios = Array.from({ length: orderCount }, (_, i) => Math.floor((orderCount - i) * (constants_1.RATIO_BASE / sum)));\n break;\n }\n case enum_1.BatchOrderSizeDistribution.RANDOM: {\n let totalRatio = 0;\n const averageRatio = constants_1.RATIO_BASE / orderCount;\n const minRatio = Math.ceil(averageRatio * 0.95);\n const maxRatio = Math.floor(averageRatio * 1.05);\n for (let i = 0; i < orderCount; i++) {\n let ratio = Math.floor(averageRatio * (1 - 0.05 + Math.random() * 0.1));\n ratio = Math.max(minRatio, Math.min(maxRatio, ratio));\n ratios.push(ratio);\n totalRatio += ratio;\n }\n let adjustment = constants_1.RATIO_BASE - totalRatio;\n const increment = adjustment > 0 ? 1 : -1;\n while (adjustment !== 0) {\n for (let i = 0; i < orderCount && adjustment !== 0; i++) {\n const newRatio = ratios[i] + increment;\n if (newRatio >= minRatio && newRatio <= maxRatio) {\n ratios[i] = newRatio;\n adjustment -= increment;\n }\n }\n }\n break;\n }\n default:\n throw new synfError_1.SynfError('Invalid size distribution');\n }\n ratios[ratios.length - 1] = constants_1.RATIO_BASE - ratios.slice(0, ratios.length - 1).reduce((acc, ratio) => acc + ratio, 0);\n return ratios;\n}\nfunction requiredMarginForOrder(limit, sizeWad, ratio) {\n const marginValue = (0, math_1.wmul)(limit, sizeWad);\n const minAmount = (0, math_1.wmulUp)(marginValue, (0, math_1.r2w)(ratio));\n return minAmount;\n}\nfunction fillOrderToPosition(pearlNonce, pearlTaken, pearlFee, pearlSocialLoss, pearlFundingIndex, order, tick, nonce, fillSize, record) {\n if (fillSize.eq(math_1.ZERO)) {\n fillSize = order.size;\n }\n const usize = fillSize.abs();\n let makerFee;\n let entrySocialLossIndex;\n let entryFundingIndex;\n if (nonce < pearlNonce) {\n const utaken0 = record.taken.abs();\n makerFee = record.taken.eq(fillSize) ? record.fee : (0, math_1.fracDown)(record.fee, usize, utaken0);\n entrySocialLossIndex = record.entrySocialLossIndex;\n entryFundingIndex = record.entryFundingIndex;\n }\n else {\n const utaken1 = pearlTaken.abs();\n makerFee = pearlTaken.eq(fillSize) ? pearlFee : (0, math_1.fracDown)(pearlFee, usize, utaken1);\n entrySocialLossIndex = pearlSocialLoss;\n entryFundingIndex = pearlFundingIndex;\n }\n const srtikePrice = math_1.TickMath.getWadAtTick(tick);\n return {\n balance: order.balance.add(makerFee),\n size: fillSize,\n entryNotional: (0, math_1.wmul)(srtikePrice, fillSize.abs()),\n entrySocialLossIndex: entrySocialLossIndex,\n entryFundingIndex: entryFundingIndex,\n };\n}\nfunction cancelOrderToPosition(pearlLeft, pearlNonce, pearlTaken, pearlFee, pearlSocialLoss, pearlFundingIndex, order, tick, nonce, record) {\n let pic = {\n balance: order.balance,\n size: math_1.ZERO,\n entryNotional: math_1.ZERO,\n entrySocialLossIndex: math_1.ZERO,\n entryFundingIndex: math_1.ZERO,\n };\n const uleft = pearlLeft.abs();\n const usize = order.size.abs();\n if (uleft.lt(usize)) {\n const tLeft = pearlLeft;\n pic = fillOrderToPosition(pearlNonce, pearlTaken, pearlFee, pearlSocialLoss, pearlFundingIndex, order, tick, nonce, order.size.sub(tLeft), record);\n }\n return pic;\n}\nfunction tally(amm, position, mark) {\n let fundingFee = math_1.ZERO;\n const value = (0, math_1.wmul)(mark, position.size.abs());\n const socialLoss = (0, math_1.wmulUp)((position.size.gt(math_1.ZERO) ? amm.longSocialLossIndex : amm.shortSocialLossIndex).sub(position.entrySocialLossIndex), position.size.abs());\n if (amm.expiry === constants_1.PERP_EXPIRY)\n fundingFee = calcFundingFee(amm, position);\n const pnl = (position.size.gt(math_1.ZERO) ? value.sub(position.entryNotional) : position.entryNotional.sub(value))\n .add(fundingFee)\n .sub(socialLoss);\n const equity = pnl.add(position.balance);\n return { equity: equity, pnl: pnl, socialLoss: socialLoss };\n}\nfunction calcLiquidationPrice(amm, position, maintenanceMarginRatio = 500) {\n const socialLoss = (0, math_1.wmulUp)((position.size.gt(math_1.ZERO) ? amm.longSocialLossIndex : amm.shortSocialLossIndex).sub(position.entrySocialLossIndex), position.size.abs());\n const fundingFee = calcFundingFee(amm, position);\n let price;\n if (position.size.gt(math_1.ZERO)) {\n const numerator = position.entryNotional.add(socialLoss).sub(position.balance).sub(fundingFee);\n if (numerator.lte(math_1.ZERO))\n return math_1.ZERO;\n price = (0, math_1.wdivDown)(numerator, (0, math_1.wmulUp)(position.size.abs(), (0, math_1.r2w)(10000 - maintenanceMarginRatio)));\n }\n else {\n const numerator = position.entryNotional.sub(socialLoss).add(position.balance).add(fundingFee);\n if (numerator.lte(math_1.ZERO))\n return math_1.ZERO;\n price = (0, math_1.wdivUp)(numerator, (0, math_1.wmulDown)(position.size.abs(), (0, math_1.r2w)(10000 + maintenanceMarginRatio)));\n }\n return price;\n}\nfunction calculatePriceFromPnl(amm, position, pnl) {\n const socialLoss = (0, math_1.wmulUp)((position.size.gt(math_1.ZERO) ? amm.longSocialLossIndex : amm.shortSocialLossIndex).sub(position.entrySocialLossIndex), position.size.abs());\n const fundingFee = calcFundingFee(amm, position);\n const value = position.size.gt(math_1.ZERO)\n ? pnl.add(socialLoss).add(position.entryNotional).sub(fundingFee)\n : position.entryNotional.sub(socialLoss).sub(pnl).add(fundingFee);\n return position.size.gt(math_1.ZERO) ? (0, math_1.wdivUp)(value, position.size.abs()) : (0, math_1.wdivDown)(value, position.size.abs());\n}\nfunction calcFundingFee(amm, position) {\n return (0, math_1.wmulInt)((position.size.gte(math_1.ZERO) ? amm.longFundingIndex : amm.shortFundingIndex).sub(position.entryFundingIndex), position.size.abs());\n}\nfunction calcPnl(amm, position, mark) {\n return tally(amm, position, mark).pnl;\n}\nfunction realizeFundingWithPnl(amm, pos) {\n if (pos.size.eq(0))\n return { position: pos, pnl: math_1.ZERO };\n const position = Object.assign({}, pos);\n const currentFundingIndex = position.size.gt(math_1.ZERO) ? amm.longFundingIndex : amm.shortFundingIndex;\n let pnl = math_1.ZERO;\n if (!currentFundingIndex.eq(position.entryFundingIndex)) {\n const funding = (0, math_1.wmulInt)(currentFundingIndex.sub(position.entryFundingIndex), position.size.abs());\n pnl = funding;\n position.entryFundingIndex = currentFundingIndex;\n position.balance = position.balance.add(funding);\n }\n return { position, pnl };\n}\nfunction realizeFundingIncome(amm, pos) {\n return realizeFundingWithPnl(amm, pos).position;\n}\nfunction realizeSocialLoss(amm, pos) {\n pos = { ...pos };\n const long = pos.size.gt(math_1.ZERO);\n const usize = pos.size.abs();\n const socialLossIndex = long ? amm.longSocialLossIndex : amm.shortSocialLossIndex;\n const socialLoss = (0, math_1.wmulUp)(socialLossIndex.sub(pos.entrySocialLossIndex), usize);\n pos.balance = pos.balance.sub(socialLoss);\n pos.entrySocialLossIndex = socialLossIndex;\n return { position: pos, socialLoss };\n}\nfunction combine(amm, position_1, position_2) {\n let position1 = Object.assign({}, position_1);\n let position2 = Object.assign({}, position_2);\n let realized = math_1.ZERO;\n if (amm.expiry === constants_1.PERP_EXPIRY) {\n const { position: realizedPosition1, pnl: realizedPnl1 } = realizeFundingWithPnl(amm, position1);\n const { position: realizedPosition2, pnl: realizedPnl2 } = realizeFundingWithPnl(amm, position2);\n position1 = realizedPosition1;\n position2 = realizedPosition2;\n realized = realized.add(realizedPnl1);\n realized = realized.add(realizedPnl2);\n }\n const { position: realizedPosition1, socialLoss: socialLoss1 } = realizeSocialLoss(amm, position1);\n const { position: realizedPosition2, socialLoss: socialLoss2 } = realizeSocialLoss(amm, position2);\n position1 = realizedPosition1;\n position2 = realizedPosition2;\n realized = realized.sub(socialLoss1);\n realized = realized.sub(socialLoss2);\n let pic = {\n balance: math_1.ZERO,\n size: math_1.ZERO,\n entryNotional: math_1.ZERO,\n entrySocialLossIndex: math_1.ZERO,\n entryFundingIndex: math_1.ZERO,\n };\n let closedSize = math_1.ZERO;\n if (position1.size.eq(math_1.ZERO) || position2.size.eq(math_1.ZERO)) {\n pic = position1.size.eq(math_1.ZERO) ? position2 : position1;\n pic.balance = position1.balance.add(position2.balance);\n return { position: pic, closedSize: closedSize, realized: realized };\n }\n pic.size = position1.size.add(position2.size);\n if ((0, math_1.oppositeSigns)(position1.size, position2.size)) {\n closedSize = position1.size.abs().lt(position2.size.abs()) ? position1.size.abs() : position2.size.abs();\n const longPic = position1.size.gt(math_1.ZERO) ? position1 : position2;\n const shortPic = position1.size.gt(math_1.ZERO) ? position2 : position1;\n let closedLongNotional = math_1.ZERO;\n let closedShortNotional = math_1.ZERO;\n if (pic.size.gt(math_1.ZERO)) {\n closedLongNotional = (0, math_1.frac)(longPic.entryNotional, closedSize, longPic.size.abs());\n closedShortNotional = shortPic.entryNotional;\n pic.entryNotional = longPic.entryNotional.sub(closedLongNotional);\n pic.entrySocialLossIndex = longPic.entrySocialLossIndex;\n pic.entryFundingIndex = longPic.entryFundingIndex;\n }\n else if (pic.size.lt(math_1.ZERO)) {\n closedLongNotional = longPic.entryNotional;\n closedShortNotional = (0, math_1.frac)(shortPic.entryNotional, closedSize, shortPic.size.abs());\n pic.entryNotional = shortPic.entryNotional.sub(closedShortNotional);\n pic.entrySocialLossIndex = shortPic.entrySocialLossIndex;\n pic.entryFundingIndex = shortPic.entryFundingIndex;\n }\n else {\n closedLongNotional = longPic.entryNotional;\n closedShortNotional = shortPic.entryNotional;\n }\n const realizedPnl = closedShortNotional.sub(closedLongNotional);\n pic.balance = pic.balance.add(longPic.balance).add(shortPic.balance).add(realizedPnl);\n realized = realized.add(realizedPnl);\n }\n else {\n pic.entryNotional = position1.entryNotional.add(position2.entryNotional);\n pic.entrySocialLossIndex = pic.size.gt(math_1.ZERO) ? amm.longSocialLossIndex : amm.shortSocialLossIndex;\n pic.entryFundingIndex = position1.size.gt(math_1.ZERO) ? amm.longFundingIndex : amm.shortFundingIndex;\n pic.balance = position1.balance.add(position2.balance);\n }\n return { position: pic, closedSize: closedSize, realized: realized };\n}\nfunction splitPosition(pos, partSize) {\n const uFullSize = pos.size.abs();\n const uPartSize = partSize.abs();\n const partPos = {};\n const finalPos = pos;\n partPos.size = partSize;\n finalPos.size = pos.size.sub(partSize);\n partPos.balance = (0, math_1.frac)(pos.balance, uPartSize, uFullSize);\n finalPos.balance = pos.balance.sub(partPos.balance);\n partPos.entryNotional = (0, math_1.frac)(pos.entryNotional, uPartSize, uFullSize);\n finalPos.entryNotional = pos.entryNotional.sub(partPos.entryNotional);\n partPos.entrySocialLossIndex = pos.entrySocialLossIndex;\n partPos.entryFundingIndex = pos.entryFundingIndex;\n return { partPos, finalPos };\n}\nfunction entryDelta(sqrtEntryPX96, tickLower, tickUpper, entryMargin, initialMarginRatio) {\n const upperPX96 = math_1.TickMath.getSqrtRatioAtTick(tickUpper);\n const lowerPX96 = math_1.TickMath.getSqrtRatioAtTick(tickLower);\n const liquidityByUpper = getLiquidityFromMarginByUpper(sqrtEntryPX96, upperPX96, entryMargin, initialMarginRatio);\n const liquidityByLower = getLiquidityFromMarginByLower(sqrtEntryPX96, lowerPX96, entryMargin, initialMarginRatio);\n const liquidity = liquidityByUpper.lt(liquidityByLower) ? liquidityByUpper : liquidityByLower;\n const deltaBase = math_1.SqrtPriceMath.getDeltaBaseAutoRoundUp(sqrtEntryPX96, upperPX96, liquidity);\n const deltaQuote = math_1.SqrtPriceMath.getDeltaQuoteAutoRoundUp(lowerPX96, sqrtEntryPX96, liquidity);\n return { deltaBase: deltaBase, deltaQuote: deltaQuote, liquidity: liquidity };\n}\nfunction alignRangeTick(tick, lower) {\n if ((tick > 0 && lower) || (tick < 0 && !lower)) {\n return constants_1.RANGE_SPACING * ~~(tick / constants_1.RANGE_SPACING);\n }\n else {\n return constants_1.RANGE_SPACING * ~~((tick + (tick > 0 ? 1 : -1) * (constants_1.RANGE_SPACING - 1)) / constants_1.RANGE_SPACING);\n }\n}\nfunction getLiquidityFromMarginByUpper(sqrtEntryPX96, sqrtUpperPX96, entryMargin, initialMarginRatio) {\n const numerator = entryMargin.mul(sqrtEntryPX96).div(sqrtUpperPX96.sub(sqrtEntryPX96));\n const denominator = sqrtUpperPX96.sub(sqrtEntryPX96).add((0, math_1.wmulUp)(sqrtUpperPX96, (0, math_1.r2w)(initialMarginRatio)));\n return numerator.mul(math_1.Q96).div(denominator);\n}\nfunction getLiquidityFromMarginByLower(sqrtEntryPX96, sqrtLowerPX96, entryMargin, initialMarginRatio) {\n const numerator = entryMargin.mul(sqrtEntryPX96).div(sqrtEntryPX96.sub(sqrtLowerPX96));\n const denominator = sqrtEntryPX96.sub(sqrtLowerPX96).add((0, math_1.wmulUp)(sqrtLowerPX96, (0, math_1.r2w)(initialMarginRatio)));\n return numerator.mul(math_1.Q96).div(denominator);\n}\nfunction getMarginFromLiquidity(sqrtEntryPX96, tickUpper, liquidity, initialMarginRatio) {\n const sqrtUpperPX96 = math_1.TickMath.getSqrtRatioAtTick(tickUpper);\n const denominator = (0, math_1.wmulUp)(sqrtUpperPX96, (0, math_1.r2w)(10000 + initialMarginRatio)).sub(sqrtEntryPX96);\n const temp = liquidity.mul(denominator).div(math_1.Q96);\n return temp.mul(sqrtUpperPX96.sub(sqrtEntryPX96)).div(sqrtEntryPX96);\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.reverseSide = reverseSide;\nexports.reversePrice = reversePrice;\nexports.reverseOrder = reverseOrder;\nexports.reversePosition = reversePosition;\nexports.reverseRange = reverseRange;\nexports.reversePortfolio = reversePortfolio;\nexports.reverseAmm = reverseAmm;\nexports.reverseInstrument = reverseInstrument;\nexports.reversePriceInfo = reversePriceInfo;\nconst math_1 = require(\"../math\");\nconst enum_1 = require(\"../enum\");\nfunction reverseSide(side) {\n return side === enum_1.Side.LONG ? enum_1.Side.SHORT : side === enum_1.Side.SHORT ? enum_1.Side.LONG : enum_1.Side.FLAT;\n}\nfunction reversePrice(price) {\n return (0, math_1.safeWDiv)(math_1.WAD, price);\n}\nfunction reverseOrder(order) {\n return {\n ...order,\n size: order.size.mul(-1),\n side: reverseSide(order.side),\n limitPrice: reversePrice(order.limitPrice),\n isInverse: !order.isInverse,\n };\n}\nfunction reversePosition(position) {\n return {\n ...position,\n size: position.size.mul(-1),\n side: reverseSide(position.side),\n entryPrice: reversePrice(position.entryPrice),\n isInverse: !position.isInverse,\n };\n}\nfunction reverseRange(range) {\n return {\n ...range,\n tickLower: range.tickUpper,\n tickUpper: range.tickLower,\n lowerPrice: reversePrice(range.upperPrice),\n upperPrice: reversePrice(range.lowerPrice),\n entryPrice: reversePrice(range.entryPrice),\n isInverse: !range.isInverse,\n };\n}\nfunction reversePortfolio(portfolio) {\n return {\n ...portfolio,\n orders: new Map(Array.from(portfolio.orders.entries()).map(([oid, order]) => [oid, reverseOrder(order)])),\n ranges: new Map(Array.from(portfolio.ranges.entries()).map(([rid, range]) => [rid, reverseRange(range)])),\n position: reversePosition(portfolio.position),\n isInverse: !portfolio.isInverse,\n };\n}\nfunction reverseAmm(amm) {\n return {\n ...amm,\n totalLong: amm.totalShort,\n totalShort: amm.totalLong,\n shortFundingIndex: amm.longFundingIndex,\n longFundingIndex: amm.shortFundingIndex,\n shortSocialLossIndex: amm.longSocialLossIndex,\n longSocialLossIndex: amm.shortSocialLossIndex,\n settlementPrice: reversePrice(amm.settlementPrice),\n markPrice: reversePrice(amm.markPrice),\n fairPrice: reversePrice(amm.fairPrice),\n isInverse: !amm.isInverse,\n };\n}\nfunction reverseInstrument(instrument) {\n return {\n ...instrument,\n spotPrice: reversePrice(instrument.spotPrice),\n amms: new Map(Array.from(instrument.amms.entries()).map(([expiry, amm]) => [expiry, reverseAmm(amm)])),\n isInverse: !instrument.isInverse,\n displayBase: instrument.displayQuote,\n displayQuote: instrument.displayBase,\n };\n}\nfunction reversePriceInfo(priceInfo) {\n return typeof priceInfo === 'number' ? priceInfo : reversePrice(priceInfo);\n}\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || (function () {\n var ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n };\n return function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n };\n})();\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.quickRetry = quickRetry;\nexports.getLeverageFromImr = getLeverageFromImr;\nexports.alignExpiry = alignExpiry;\nexports.alignTick = alignTick;\nexports.getMinTick = getMinTick;\nexports.getMaxTick = getMaxTick;\nexports.getMaxLiquidityPerTick = getMaxLiquidityPerTick;\nexports.rangeKey = rangeKey;\nexports.orderKey = orderKey;\nexports.parseTicks = parseTicks;\nexports.parseOrderTickNonce = parseOrderTickNonce;\nexports.normalizeTick = normalizeTick;\nexports.solidityRequire = solidityRequire;\nexports.tickDeltaToAlphaWad = tickDeltaToAlphaWad;\nexports.alphaWadToTickDelta = alphaWadToTickDelta;\nexports.decomposePbitmap = decomposePbitmap;\nexports.trimObj = trimObj;\nexports.formatExpiry = formatExpiry;\nexports.dateExpiry2Ts = dateExpiry2Ts;\nexports.getTokenSymbol = getTokenSymbol;\nexports.getTokenInfo = getTokenInfo;\nexports.isEmptyPortfolio = isEmptyPortfolio;\nexports.isCexMarket = isCexMarket;\nexports.sizeToSide = sizeToSide;\nexports.signOfSide = signOfSide;\nexports.isByBase = isByBase;\nexports.isPosition = isPosition;\nexports.isPortfolio = isPortfolio;\nexports.isInstrument = isInstrument;\nexports.toPopulatedTxOverrides = toPopulatedTxOverrides;\nexports.toPortfolio = toPortfolio;\nconst ethers_1 = require(\"ethers\");\nconst moment_1 = __importDefault(require(\"moment\"));\nconst constants_1 = require(\"../constants\");\nconst math_1 = require(\"../math\");\nconst enum_1 = require(\"../enum\");\nconst factory = __importStar(require(\"./factory\"));\nconst calculationError_1 = require(\"../errors/calculationError\");\nconst synfError_1 = require(\"../errors/synfError\");\nasync function quickRetry(fn, times = 3, interval = 100) {\n let error;\n for (let i = 0;; i++) {\n try {\n return await fn();\n }\n catch (err) {\n error = err;\n }\n if (i === times - 1) {\n break;\n }\n await new Promise((r) => setTimeout(r, (i + 1) * interval));\n }\n throw error;\n}\nfunction getLeverageFromImr(imr) {\n if (imr === 1000)\n return enum_1.Leverage.LOW;\n if (imr === 500)\n return enum_1.Leverage.MEDIUM;\n if (imr === 300)\n return enum_1.Leverage.HIGH;\n if (imr === 100)\n return enum_1.Leverage.RISKY;\n throw new calculationError_1.CalculationError('Invalid IMR value', { imr });\n}\nfunction alignExpiry() {\n return Math.floor((Date.now() / 1000 + 259200) / 604800) * 604800 + 345600 + 28800 - 259200;\n}\nfunction alignTick(tick, tickSpacing) {\n return tick - (tick % tickSpacing);\n}\nfunction getMinTick(tickSpacing) {\n return Math.ceil(-math_1.TickMath.MAX_TICK / tickSpacing) * tickSpacing;\n}\nfunction getMaxTick(tickSpacing) {\n return Math.floor(math_1.TickMath.MAX_TICK / tickSpacing) * tickSpacing;\n}\nfunction getMaxLiquidityPerTick(tickSpacing) {\n return math_1.MAX_UINT_128.div((getMaxTick(tickSpacing) - getMinTick(tickSpacing)) / tickSpacing + 1);\n}\nfunction rangeKey(tickLower, tickUpper) {\n return shiftLeft((0, math_1.asUint24)(tickLower), 24) + (0, math_1.asUint24)(tickUpper);\n}\nfunction orderKey(tick, nonce) {\n return shiftLeft((0, math_1.asUint24)(tick), 24) + nonce;\n}\nfunction shiftLeft(x, n) {\n return x * Math.pow(2, n);\n}\nfunction shiftRight(x, n) {\n return Math.floor(x / Math.pow(2, n));\n}\nconst MAX_UINT_24 = shiftLeft(1, 24) - 1;\nconst MAX_UINT_48 = shiftLeft(1, 48) - 1;\nfunction parseTicks(key) {\n if (key > MAX_UINT_48) {\n throw new calculationError_1.CalculationError('Not 48-bit key', { key });\n }\n const tickLower = (0, math_1.asInt24)(shiftRight(key, 24));\n const tickUpper = (0, math_1.asInt24)(key & MAX_UINT_24);\n return { tickLower, tickUpper };\n}\nfunction parseOrderTickNonce(key) {\n if (key > MAX_UINT_48) {\n throw new calculationError_1.CalculationError('Not 48-bit key', { key });\n }\n const tick = (0, math_1.asInt24)(shiftRight(key, 24));\n const nonce = key & MAX_UINT_24;\n return { tick, nonce };\n}\nfunction normalizeTick(originTick, tickSpacing) {\n return ethers_1.BigNumber.from(originTick).div(tickSpacing).mul(tickSpacing).toNumber();\n}\nfunction solidityRequire(condition, message) {\n if (!condition) {\n throw new synfError_1.SynfError(message ?? 'Solidity require failed');\n }\n}\nfunction tickDeltaToAlphaWad(tickDelta) {\n return math_1.TickMath.getWadAtTick(tickDelta);\n}\nfunction alphaWadToTickDelta(alphaWad) {\n return math_1.TickMath.getTickAtPWad(alphaWad) + 1;\n}\nfunction decomposePbitmap(pbitmap) {\n const bits = [];\n for (let i = 0; i < constants_1.MAX_POSITION_NUM; i++) {\n if (!pbitmap.and(math_1.ONE.shl(i)).isZero()) {\n bits.push(i);\n }\n }\n return bits;\n}\nfunction isEthersArray(obj) {\n if (obj instanceof Array) {\n return obj.length === Object.keys(obj).length;\n }\n return false;\n}\nfunction isEthersTypeChainStruct(obj) {\n if (obj instanceof Array) {\n return obj.length !== Object.keys(obj).length;\n }\n return false;\n}\nfunction trimObj(obj) {\n if (isEthersTypeChainStruct(obj)) {\n const ret = {};\n Object.keys(obj).forEach((key, i) => {\n if (i >= obj.length) {\n ret[key] = trimObj(obj[key]);\n }\n });\n return ret;\n }\n else if (isEthersArray(obj)) {\n return obj.map((item) => trimObj(item));\n }\n else {\n return obj;\n }\n}\nfunction formatExpiry(expiry) {\n return expiry === constants_1.PERP_EXPIRY ? 'PERP' : moment_1.default.utc(expiry * 1000).format('yyyyMMDD');\n}\nfunction dateExpiry2Ts(expiry) {\n if (expiry === '0' || expiry.toUpperCase() === 'PERPETUAL' || expiry.toUpperCase() === 'PERP') {\n return constants_1.PERP_EXPIRY;\n }\n return moment_1.default.utc(expiry, 'YYYYMMDD').unix();\n}\nfunction getTokenSymbol(base, quote) {\n const baseSymbol = typeof base === 'string' ? base : base.symbol;\n const quoteSymbol = typeof quote === 'string' ? quote : quote.symbol;\n return { baseSymbol, quoteSymbol };\n}\nasync function getTokenInfo(instrumentIdentifier, ctx) {\n const call1 = typeof instrumentIdentifier.baseSymbol === 'string'\n ? ctx.getTokenInfo(instrumentIdentifier.baseSymbol)\n : instrumentIdentifier.baseSymbol;\n const call2 = typeof instrumentIdentifier.quoteSymbol === 'string'\n ? ctx.getTokenInfo(instrumentIdentifier.quoteSymbol)\n : instrumentIdentifier.quoteSymbol;\n const [baseTokenInfo, quoteTokenInfo] = await Promise.all([call1, call2]);\n return { baseTokenInfo, quoteTokenInfo };\n}\nfunction isEmptyPortfolio(portfolio) {\n return portfolio.orders.size === 0 && portfolio.ranges.size === 0 && portfolio.position.size.isZero();\n}\nfunction isCexMarket(marketType) {\n return marketType === enum_1.MarketType.LINK || marketType === enum_1.MarketType.EMG || marketType === enum_1.MarketType.PYTH;\n}\nfunction sizeToSide(size) {\n if (size.isNegative()) {\n return enum_1.Side.SHORT;\n }\n else if (size.isZero()) {\n return enum_1.Side.FLAT;\n }\n else {\n return enum_1.Side.LONG;\n }\n}\nfunction signOfSide(side) {\n switch (side) {\n case enum_1.Side.LONG:\n return 1;\n case enum_1.Side.SHORT:\n return -1;\n case enum_1.Side.FLAT:\n return 0;\n default:\n throw new synfError_1.SynfError(`Invalid side: ${side}`);\n }\n}\nfunction isByBase(size) {\n return 'base' in size;\n}\nfunction isPosition(info) {\n return 'size' in info;\n}\nfunction isPortfolio(info) {\n return 'position' in info;\n}\nfunction isInstrument(instrument) {\n return 'instrumentAddr' in instrument;\n}\nfunction toPopulatedTxOverrides(txOptions) {\n if (!txOptions) {\n return {};\n }\n const _txOptions = {\n ...txOptions,\n };\n if (_txOptions.signer) {\n if (_txOptions.from === undefined) {\n _txOptions.from = _txOptions.signer.getAddress();\n }\n delete _txOptions['signer'];\n }\n if (_txOptions.blockTag) {\n delete _txOptions['blockTag'];\n }\n if (_txOptions.enableGasPrice) {\n delete _txOptions['enableGasPrice'];\n }\n if (_txOptions.disableGasLimit) {\n delete _txOptions['disableGasLimit'];\n }\n if (_txOptions.gasLimitMultiple) {\n delete _txOptions['gasLimitMultiple'];\n }\n if (_txOptions.gasPriceMultiple) {\n delete _txOptions['gasPriceMultiple'];\n }\n return _txOptions;\n}\nfunction toPortfolio(instrumentAddr, expiry, traderAddr, resp) {\n const position = factory.createPosition({\n instrumentAddr,\n expiry,\n traderAddr,\n ...trimObj(resp.portfolio.position),\n });\n const oids = resp.portfolio.oids;\n const rids = resp.portfolio.rids;\n const rawOrdersFromContract = resp.portfolio.orders;\n const rawRangesFromContract = resp.portfolio.ranges;\n const ordersTaken = resp.portfolio.ordersTaken;\n const orders = new Map();\n const ranges = new Map();\n for (let i = 0; i < oids.length; i++) {\n const { tick, nonce } = parseOrderTickNonce(oids[i]);\n const order = factory.createOrder({\n balance: rawOrdersFromContract[i].balance,\n size: rawOrdersFromContract[i].size,\n instrumentAddr,\n expiry,\n taken: ordersTaken[i] ?? math_1.ZERO,\n tick,\n nonce,\n traderAddr,\n });\n orders.set(oids[i], order);\n }\n for (let i = 0; i < rids.length; i++) {\n const { tickLower, tickUpper } = parseTicks(rids[i]);\n const range = factory.createRange({\n liquidity: rawRangesFromContract[i].liquidity,\n entryFeeIndex: rawRangesFromContract[i].entryFeeIndex,\n balance: rawRangesFromContract[i].balance,\n sqrtEntryPX96: rawRangesFromContract[i].sqrtEntryPX96,\n tickLower,\n tickUpper,\n instrumentAddr,\n expiry,\n traderAddr,\n });\n ranges.set(rids[i], range);\n }\n const portfolio = {\n instrumentAddr: instrumentAddr.toLowerCase(),\n traderAddr: traderAddr.toLowerCase(),\n expiry,\n ranges,\n orders,\n isEmpty: position.size.eq(0) && ranges.size === 0 && orders.size === 0,\n blockInfo: trimObj(resp.blockInfo),\n position,\n };\n return portfolio;\n}\n","'use strict';\nmodule.exports = str => encodeURIComponent(str).replace(/[!'()*]/g, x => `%${x.charCodeAt(0).toString(16).toUpperCase()}`);\n","var camel2hyphen = function (str) {\n return str\n .replace(/[A-Z]/g, function (match) {\n return '-' + match.toLowerCase();\n })\n .toLowerCase();\n};\n\nmodule.exports = camel2hyphen;","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\n/**/\n\nvar isEncoding = Buffer.isEncoding || function (encoding) {\n encoding = '' + encoding;\n switch (encoding && encoding.toLowerCase()) {\n case 'hex':case 'utf8':case 'utf-8':case 'ascii':case 'binary':case 'base64':case 'ucs2':case 'ucs-2':case 'utf16le':case 'utf-16le':case 'raw':\n return true;\n default:\n return false;\n }\n};\n\nfunction _normalizeEncoding(enc) {\n if (!enc) return 'utf8';\n var retried;\n while (true) {\n switch (enc) {\n case 'utf8':\n case 'utf-8':\n return 'utf8';\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return 'utf16le';\n case 'latin1':\n case 'binary':\n return 'latin1';\n case 'base64':\n case 'ascii':\n case 'hex':\n return enc;\n default:\n if (retried) return; // undefined\n enc = ('' + enc).toLowerCase();\n retried = true;\n }\n }\n};\n\n// Do not cache `Buffer.isEncoding` when checking encoding names as some\n// modules monkey-patch it to support additional encodings\nfunction normalizeEncoding(enc) {\n var nenc = _normalizeEncoding(enc);\n if (typeof nenc !== 'string' && (Buffer.isEncoding === isEncoding || !isEncoding(enc))) throw new Error('Unknown encoding: ' + enc);\n return nenc || enc;\n}\n\n// StringDecoder provides an interface for efficiently splitting a series of\n// buffers into a series of JS strings without breaking apart multi-byte\n// characters.\nexports.StringDecoder = StringDecoder;\nfunction StringDecoder(encoding) {\n this.encoding = normalizeEncoding(encoding);\n var nb;\n switch (this.encoding) {\n case 'utf16le':\n this.text = utf16Text;\n this.end = utf16End;\n nb = 4;\n break;\n case 'utf8':\n this.fillLast = utf8FillLast;\n nb = 4;\n break;\n case 'base64':\n this.text = base64Text;\n this.end = base64End;\n nb = 3;\n break;\n default:\n this.write = simpleWrite;\n this.end = simpleEnd;\n return;\n }\n this.lastNeed = 0;\n this.lastTotal = 0;\n this.lastChar = Buffer.allocUnsafe(nb);\n}\n\nStringDecoder.prototype.write = function (buf) {\n if (buf.length === 0) return '';\n var r;\n var i;\n if (this.lastNeed) {\n r = this.fillLast(buf);\n if (r === undefined) return '';\n i = this.lastNeed;\n this.lastNeed = 0;\n } else {\n i = 0;\n }\n if (i < buf.length) return r ? r + this.text(buf, i) : this.text(buf, i);\n return r || '';\n};\n\nStringDecoder.prototype.end = utf8End;\n\n// Returns only complete characters in a Buffer\nStringDecoder.prototype.text = utf8Text;\n\n// Attempts to complete a partial non-UTF-8 character using bytes from a Buffer\nStringDecoder.prototype.fillLast = function (buf) {\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf.length);\n this.lastNeed -= buf.length;\n};\n\n// Checks the type of a UTF-8 byte, whether it's ASCII, a leading byte, or a\n// continuation byte. If an invalid byte is detected, -2 is returned.\nfunction utf8CheckByte(byte) {\n if (byte <= 0x7F) return 0;else if (byte >> 5 === 0x06) return 2;else if (byte >> 4 === 0x0E) return 3;else if (byte >> 3 === 0x1E) return 4;\n return byte >> 6 === 0x02 ? -1 : -2;\n}\n\n// Checks at most 3 bytes at the end of a Buffer in order to detect an\n// incomplete multi-byte UTF-8 character. The total number of bytes (2, 3, or 4)\n// needed to complete the UTF-8 character (if applicable) are returned.\nfunction utf8CheckIncomplete(self, buf, i) {\n var j = buf.length - 1;\n if (j < i) return 0;\n var nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 1;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 2;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) {\n if (nb === 2) nb = 0;else self.lastNeed = nb - 3;\n }\n return nb;\n }\n return 0;\n}\n\n// Validates as many continuation bytes for a multi-byte UTF-8 character as\n// needed or are available. If we see a non-continuation byte where we expect\n// one, we \"replace\" the validated continuation bytes we've seen so far with\n// a single UTF-8 replacement character ('\\ufffd'), to match v8's UTF-8 decoding\n// behavior. The continuation byte check is included three times in the case\n// where all of the continuation bytes for a character exist in the same buffer.\n// It is also done this way as a slight performance increase instead of using a\n// loop.\nfunction utf8CheckExtraBytes(self, buf, p) {\n if ((buf[0] & 0xC0) !== 0x80) {\n self.lastNeed = 0;\n return '\\ufffd';\n }\n if (self.lastNeed > 1 && buf.length > 1) {\n if ((buf[1] & 0xC0) !== 0x80) {\n self.lastNeed = 1;\n return '\\ufffd';\n }\n if (self.lastNeed > 2 && buf.length > 2) {\n if ((buf[2] & 0xC0) !== 0x80) {\n self.lastNeed = 2;\n return '\\ufffd';\n }\n }\n }\n}\n\n// Attempts to complete a multi-byte UTF-8 character using bytes from a Buffer.\nfunction utf8FillLast(buf) {\n var p = this.lastTotal - this.lastNeed;\n var r = utf8CheckExtraBytes(this, buf, p);\n if (r !== undefined) return r;\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, p, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, p, 0, buf.length);\n this.lastNeed -= buf.length;\n}\n\n// Returns all complete UTF-8 characters in a Buffer. If the Buffer ended on a\n// partial character, the character's bytes are buffered until the required\n// number of bytes are available.\nfunction utf8Text(buf, i) {\n var total = utf8CheckIncomplete(this, buf, i);\n if (!this.lastNeed) return buf.toString('utf8', i);\n this.lastTotal = total;\n var end = buf.length - (total - this.lastNeed);\n buf.copy(this.lastChar, 0, end);\n return buf.toString('utf8', i, end);\n}\n\n// For UTF-8, a replacement character is added when ending on a partial\n// character.\nfunction utf8End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + '\\ufffd';\n return r;\n}\n\n// UTF-16LE typically needs two bytes per character, but even if we have an even\n// number of bytes available, we need to check if we end on a leading/high\n// surrogate. In that case, we need to wait for the next two bytes in order to\n// decode the last character properly.\nfunction utf16Text(buf, i) {\n if ((buf.length - i) % 2 === 0) {\n var r = buf.toString('utf16le', i);\n if (r) {\n var c = r.charCodeAt(r.length - 1);\n if (c >= 0xD800 && c <= 0xDBFF) {\n this.lastNeed = 2;\n this.lastTotal = 4;\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n return r.slice(0, -1);\n }\n }\n return r;\n }\n this.lastNeed = 1;\n this.lastTotal = 2;\n this.lastChar[0] = buf[buf.length - 1];\n return buf.toString('utf16le', i, buf.length - 1);\n}\n\n// For UTF-16LE we do not explicitly append special replacement characters if we\n// end on a partial character, we simply let v8 handle that.\nfunction utf16End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) {\n var end = this.lastTotal - this.lastNeed;\n return r + this.lastChar.toString('utf16le', 0, end);\n }\n return r;\n}\n\nfunction base64Text(buf, i) {\n var n = (buf.length - i) % 3;\n if (n === 0) return buf.toString('base64', i);\n this.lastNeed = 3 - n;\n this.lastTotal = 3;\n if (n === 1) {\n this.lastChar[0] = buf[buf.length - 1];\n } else {\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n }\n return buf.toString('base64', i, buf.length - n);\n}\n\nfunction base64End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + this.lastChar.toString('base64', 0, 3 - this.lastNeed);\n return r;\n}\n\n// Pass bytes on through for single-byte encodings (e.g. ascii, latin1, hex)\nfunction simpleWrite(buf) {\n return buf.toString(this.encoding);\n}\n\nfunction simpleEnd(buf) {\n return buf && buf.length ? this.write(buf) : '';\n}","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nvar style_to_object_1 = __importDefault(require(\"style-to-object\"));\nvar utilities_1 = require(\"./utilities\");\n/**\n * Parses CSS inline style to JavaScript object (camelCased).\n */\nfunction StyleToJS(style, options) {\n var output = {};\n if (!style || typeof style !== 'string') {\n return output;\n }\n (0, style_to_object_1.default)(style, function (property, value) {\n // skip CSS comment\n if (property && value) {\n output[(0, utilities_1.camelCase)(property, options)] = value;\n }\n });\n return output;\n}\nStyleToJS.default = StyleToJS;\nmodule.exports = StyleToJS;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.camelCase = void 0;\nvar CUSTOM_PROPERTY_REGEX = /^--[a-zA-Z0-9-]+$/;\nvar HYPHEN_REGEX = /-([a-z])/g;\nvar NO_HYPHEN_REGEX = /^[^-]+$/;\nvar VENDOR_PREFIX_REGEX = /^-(webkit|moz|ms|o|khtml)-/;\nvar MS_VENDOR_PREFIX_REGEX = /^-(ms)-/;\n/**\n * Checks whether to skip camelCase.\n */\nvar skipCamelCase = function (property) {\n return !property ||\n NO_HYPHEN_REGEX.test(property) ||\n CUSTOM_PROPERTY_REGEX.test(property);\n};\n/**\n * Replacer that capitalizes first character.\n */\nvar capitalize = function (match, character) {\n return character.toUpperCase();\n};\n/**\n * Replacer that removes beginning hyphen of vendor prefix property.\n */\nvar trimHyphen = function (match, prefix) { return \"\".concat(prefix, \"-\"); };\n/**\n * CamelCases a CSS property.\n */\nvar camelCase = function (property, options) {\n if (options === void 0) { options = {}; }\n if (skipCamelCase(property)) {\n return property;\n }\n property = property.toLowerCase();\n if (options.reactCompat) {\n // `-ms` vendor prefix should not be capitalized\n property = property.replace(MS_VENDOR_PREFIX_REGEX, trimHyphen);\n }\n else {\n // for non-React, remove first hyphen so vendor prefix is not capitalized\n property = property.replace(VENDOR_PREFIX_REGEX, trimHyphen);\n }\n return property.replace(HYPHEN_REGEX, capitalize);\n};\nexports.camelCase = camelCase;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar inline_style_parser_1 = __importDefault(require(\"inline-style-parser\"));\n/**\n * Parses inline style to object.\n *\n * @param style - Inline style.\n * @param iterator - Iterator.\n * @returns - Style object or null.\n *\n * @example Parsing inline style to object:\n *\n * ```js\n * import parse from 'style-to-object';\n * parse('line-height: 42;'); // { 'line-height': '42' }\n * ```\n */\nfunction StyleToObject(style, iterator) {\n var styleObject = null;\n if (!style || typeof style !== 'string') {\n return styleObject;\n }\n var declarations = (0, inline_style_parser_1.default)(style);\n var hasIterator = typeof iterator === 'function';\n declarations.forEach(function (declaration) {\n if (declaration.type !== 'declaration') {\n return;\n }\n var property = declaration.property, value = declaration.value;\n if (hasIterator) {\n iterator(property, value, declaration);\n }\n else if (value) {\n styleObject = styleObject || {};\n styleObject[property] = value;\n }\n });\n return styleObject;\n}\nexports.default = StyleToObject;\n","import memoize from '@emotion/memoize';\n\nvar reactPropsRegex = /^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|abbr|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|disableRemotePlayback|download|draggable|encType|enterKeyHint|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|translate|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|incremental|fallback|inert|itemProp|itemScope|itemType|itemID|itemRef|on|option|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/; // https://esbench.com/bench/5bfee68a4cd7e6009ef61d23\n\nvar isPropValid = /* #__PURE__ */memoize(function (prop) {\n return reactPropsRegex.test(prop) || prop.charCodeAt(0) === 111\n /* o */\n && prop.charCodeAt(1) === 110\n /* n */\n && prop.charCodeAt(2) < 91;\n}\n/* Z+1 */\n);\n\nexport { isPropValid as default };\n","import{typeOf as e,isElement as t,isValidElementType as n}from\"react-is\";import r,{useState as o,useContext as s,useMemo as i,useEffect as a,useRef as c,createElement as u,useLayoutEffect as l}from\"react\";import d from\"shallowequal\";import h from\"@emotion/stylis\";import p from\"@emotion/unitless\";import f from\"@emotion/is-prop-valid\";import m from\"hoist-non-react-statics\";function y(){return(y=Object.assign||function(e){for(var t=1;t ({})}\\n```\\n\\n',8:'ThemeProvider: Please make your \"theme\" prop an object.\\n\\n',9:\"Missing document ``\\n\\n\",10:\"Cannot find a StyleSheet instance. Usually this happens if there are multiple copies of styled-components loaded at once. Check out this issue for how to troubleshoot and fix the common cases where this situation can happen: https://github.com/styled-components/styled-components/issues/1941#issuecomment-417862021\\n\\n\",11:\"_This error was replaced with a dev-time warning, it will be deleted for v4 final._ [createGlobalStyle] received children which will not be rendered. Please use the component without passing children elements.\\n\\n\",12:\"It seems you are interpolating a keyframe declaration (%s) into an untagged string. This was supported in styled-components v3, but is not longer supported in v4 as keyframes are now injected on-demand. Please wrap your string in the css\\\\`\\\\` helper which ensures the styles are injected correctly. See https://www.styled-components.com/docs/api#css\\n\\n\",13:\"%s is not a styled component and cannot be referred to via component selector. See https://www.styled-components.com/docs/advanced#referring-to-other-components for more details.\\n\\n\",14:'ThemeProvider: \"theme\" prop is required.\\n\\n',15:\"A stylis plugin has been supplied that is not named. We need a name for each plugin to be able to prevent styling collisions between different stylis configurations within the same app. Before you pass your plugin to ``, please make sure each plugin is uniquely-named, e.g.\\n\\n```js\\nObject.defineProperty(importedPlugin, 'name', { value: 'some-unique-name' });\\n```\\n\\n\",16:\"Reached the limit of how many styled components may be created at group %s.\\nYou may only create up to 1,073,741,824 components. If you're creating components dynamically,\\nas for instance in your render method then you may be running into this limitation.\\n\\n\",17:\"CSSStyleSheet could not be found on HTMLStyleElement.\\nHas styled-components' style tag been unmounted or altered by another script?\\n\"}:{};function R(){for(var e=arguments.length<=0?void 0:arguments[0],t=[],n=1,r=arguments.length;n1?t-1:0),r=1;r0?\" Args: \"+n.join(\", \"):\"\")):new Error(R.apply(void 0,[O[e]].concat(n)).trim())}var j=function(){function e(e){this.groupSizes=new Uint32Array(512),this.length=512,this.tag=e}var t=e.prototype;return t.indexOfGroup=function(e){for(var t=0,n=0;n=this.groupSizes.length){for(var n=this.groupSizes,r=n.length,o=r;e>=o;)(o<<=1)<0&&D(16,\"\"+e);this.groupSizes=new Uint32Array(o),this.groupSizes.set(n),this.length=o;for(var s=r;s=this.length||0===this.groupSizes[e])return t;for(var n=this.groupSizes[e],r=this.indexOfGroup(e),o=r+n,s=r;s1<<30)&&D(16,\"\"+t),T.set(e,t),x.set(t,e),t},B=function(e){return x.get(e)},z=function(e,t){t>=k&&(k=t+1),T.set(e,t),x.set(t,e)},M=\"style[\"+N+'][data-styled-version=\"5.3.11\"]',G=new RegExp(\"^\"+N+'\\\\.g(\\\\d+)\\\\[id=\"([\\\\w\\\\d-]+)\"\\\\].*?\"([^\"]*)'),L=function(e,t,n){for(var r,o=n.split(\",\"),s=0,i=o.length;s=0;n--){var r=t[n];if(r&&1===r.nodeType&&r.hasAttribute(N))return r}}(n),s=void 0!==o?o.nextSibling:null;r.setAttribute(N,\"active\"),r.setAttribute(\"data-styled-version\",\"5.3.11\");var i=Y();return i&&r.setAttribute(\"nonce\",i),n.insertBefore(r,s),r},H=function(){function e(e){var t=this.element=q(e);t.appendChild(document.createTextNode(\"\")),this.sheet=function(e){if(e.sheet)return e.sheet;for(var t=document.styleSheets,n=0,r=t.length;n=0){var n=document.createTextNode(t),r=this.nodes[e];return this.element.insertBefore(n,r||null),this.length++,!0}return!1},t.deleteRule=function(e){this.element.removeChild(this.nodes[e]),this.length--},t.getRule=function(e){return e0&&(u+=e+\",\")})),r+=\"\"+a+c+'{content:\"'+u+'\"}/*!sc*/\\n'}}}return r}(this)},e}(),Z=/(a)(d)/gi,K=function(e){return String.fromCharCode(e+(e>25?39:97))};function Q(e){var t,n=\"\";for(t=Math.abs(e);t>52;t=t/52|0)n=K(t%52)+n;return(K(t%52)+n).replace(Z,\"$1-$2\")}var ee=function(e,t){for(var n=t.length;n;)e=33*e^t.charCodeAt(--n);return e},te=function(e){return ee(5381,e)};function ne(e){for(var t=0;t>>0);if(!t.hasNameForId(r,i)){var a=n(s,\".\"+i,void 0,r);t.insertRules(r,i,a)}o.push(i),this.staticRulesId=i}else{for(var c=this.rules.length,u=ee(this.baseHash,n.hash),l=\"\",d=0;d>>0);if(!t.hasNameForId(r,m)){var y=n(l,\".\"+m,void 0,r);t.insertRules(r,m,y)}o.push(m)}}return o.join(\" \")},e}(),se=/^\\s*\\/\\/.*$/gm,ie=[\":\",\"[\",\".\",\"#\"];function ae(e){var t,n,r,o,s=void 0===e?w:e,i=s.options,a=void 0===i?w:i,c=s.plugins,u=void 0===c?S:c,l=new h(a),d=[],p=function(e){function t(t){if(t)try{e(t+\"}\")}catch(e){}}return function(n,r,o,s,i,a,c,u,l,d){switch(n){case 1:if(0===l&&64===r.charCodeAt(0))return e(r+\";\"),\"\";break;case 2:if(0===u)return r+\"/*|*/\";break;case 3:switch(u){case 102:case 112:return e(o[0]+r),\"\";default:return r+(0===d?\"/*|*/\":\"\")}case-2:r.split(\"/*|*/}\").forEach(t)}}}((function(e){d.push(e)})),f=function(e,r,s){return 0===r&&-1!==ie.indexOf(s[n.length])||s.match(o)?e:\".\"+t};function m(e,s,i,a){void 0===a&&(a=\"&\");var c=e.replace(se,\"\"),u=s&&i?i+\" \"+s+\" { \"+c+\" }\":c;return t=a,n=s,r=new RegExp(\"\\\\\"+n+\"\\\\b\",\"g\"),o=new RegExp(\"(\\\\\"+n+\"\\\\b){2,}\"),l(i||!s?\"\":s,u)}return l.use([].concat(u,[function(e,t,o){2===e&&o.length&&o[0].lastIndexOf(n)>0&&(o[0]=o[0].replace(r,f))},p,function(e){if(-2===e){var t=d;return d=[],t}}])),m.hash=u.length?u.reduce((function(e,t){return t.name||D(15),ee(e,t.name)}),5381).toString():\"\",m}var ce=r.createContext(),ue=ce.Consumer,le=r.createContext(),de=(le.Consumer,new X),he=ae();function pe(){return s(ce)||de}function fe(){return s(le)||he}function me(e){var t=o(e.stylisPlugins),n=t[0],s=t[1],c=pe(),u=i((function(){var t=c;return e.sheet?t=e.sheet:e.target&&(t=t.reconstructWithOptions({target:e.target},!1)),e.disableCSSOMInjection&&(t=t.reconstructWithOptions({useCSSOMInjection:!1})),t}),[e.disableCSSOMInjection,e.sheet,e.target]),l=i((function(){return ae({options:{prefix:!e.disableVendorPrefixes},plugins:n})}),[e.disableVendorPrefixes,n]);return a((function(){d(n,e.stylisPlugins)||s(e.stylisPlugins)}),[e.stylisPlugins]),r.createElement(ce.Provider,{value:u},r.createElement(le.Provider,{value:l},\"production\"!==process.env.NODE_ENV?r.Children.only(e.children):e.children))}var ye=function(){function e(e,t){var n=this;this.inject=function(e,t){void 0===t&&(t=he);var r=n.name+t.hash;e.hasNameForId(n.id,r)||e.insertRules(n.id,r,t(n.rules,r,\"@keyframes\"))},this.toString=function(){return D(12,String(n.name))},this.name=e,this.id=\"sc-keyframes-\"+e,this.rules=t}return e.prototype.getName=function(e){return void 0===e&&(e=he),this.name+e.hash},e}(),ve=/([A-Z])/,ge=/([A-Z])/g,Se=/^ms-/,we=function(e){return\"-\"+e.toLowerCase()};function Ee(e){return ve.test(e)?e.replace(ge,we).replace(Se,\"-ms-\"):e}var be=function(e){return null==e||!1===e||\"\"===e};function _e(e,n,r,o){if(Array.isArray(e)){for(var s,i=[],a=0,c=e.length;a1?t-1:0),r=1;r1?t-1:0),i=1;i?@[\\\\\\]^`{|}~-]+/g,De=/(^-|-$)/g;function je(e){return e.replace(Re,\"-\").replace(De,\"\")}var Te=function(e){return Q(te(e)>>>0)};function xe(e){return\"string\"==typeof e&&(\"production\"===process.env.NODE_ENV||e.charAt(0)===e.charAt(0).toLowerCase())}var ke=function(e){return\"function\"==typeof e||\"object\"==typeof e&&null!==e&&!Array.isArray(e)},Ve=function(e){return\"__proto__\"!==e&&\"constructor\"!==e&&\"prototype\"!==e};function Be(e,t,n){var r=e[n];ke(t)&&ke(r)?ze(r,t):e[n]=t}function ze(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r=0||(o[n]=e[n]);return o}(t,[\"componentId\"]),s=r&&r+\"-\"+(xe(e)?e:je(b(e)));return Ye(e,y({},o,{attrs:g,componentId:s}),n)},Object.defineProperty(A,\"defaultProps\",{get:function(){return this._foldedDefaultProps},set:function(t){this._foldedDefaultProps=o?ze({},e.defaultProps,t):t}}),\"production\"!==process.env.NODE_ENV&&(Pe(p,v),A.warnTooManyClasses=function(e,t){var n={},r=!1;return function(o){if(!r&&(n[o]=!0,Object.keys(n).length>=200)){var s=t?' with the id of \"'+t+'\"':\"\";console.warn(\"Over 200 classes were generated for component \"+e+s+\".\\nConsider using the attrs method, together with a style object for frequently changed styles.\\nExample:\\n const Component = styled.div.attrs(props => ({\\n style: {\\n background: props.background,\\n },\\n }))`width: 100%;`\\n\\n \"),r=!0,n={}}}}(p,v)),Object.defineProperty(A,\"toString\",{value:function(){return\".\"+A.styledComponentId}}),i&&m(A,e,{attrs:!0,componentStyle:!0,displayName:!0,foldedComponentIds:!0,shouldForwardProp:!0,styledComponentId:!0,target:!0,withComponent:!0}),A}var qe=function(e){return function e(t,r,o){if(void 0===o&&(o=w),!n(r))return D(1,String(r));var s=function(){return t(r,o,Ae.apply(void 0,arguments))};return s.withConfig=function(n){return e(t,r,y({},o,{},n))},s.attrs=function(n){return e(t,r,y({},o,{attrs:Array.prototype.concat(o.attrs,n).filter(Boolean)}))},s}(Ye,e)};[\"a\",\"abbr\",\"address\",\"area\",\"article\",\"aside\",\"audio\",\"b\",\"base\",\"bdi\",\"bdo\",\"big\",\"blockquote\",\"body\",\"br\",\"button\",\"canvas\",\"caption\",\"cite\",\"code\",\"col\",\"colgroup\",\"data\",\"datalist\",\"dd\",\"del\",\"details\",\"dfn\",\"dialog\",\"div\",\"dl\",\"dt\",\"em\",\"embed\",\"fieldset\",\"figcaption\",\"figure\",\"footer\",\"form\",\"h1\",\"h2\",\"h3\",\"h4\",\"h5\",\"h6\",\"head\",\"header\",\"hgroup\",\"hr\",\"html\",\"i\",\"iframe\",\"img\",\"input\",\"ins\",\"kbd\",\"keygen\",\"label\",\"legend\",\"li\",\"link\",\"main\",\"map\",\"mark\",\"marquee\",\"menu\",\"menuitem\",\"meta\",\"meter\",\"nav\",\"noscript\",\"object\",\"ol\",\"optgroup\",\"option\",\"output\",\"p\",\"param\",\"picture\",\"pre\",\"progress\",\"q\",\"rp\",\"rt\",\"ruby\",\"s\",\"samp\",\"script\",\"section\",\"select\",\"small\",\"source\",\"span\",\"strong\",\"style\",\"sub\",\"summary\",\"sup\",\"table\",\"tbody\",\"td\",\"textarea\",\"tfoot\",\"th\",\"thead\",\"time\",\"title\",\"tr\",\"track\",\"u\",\"ul\",\"var\",\"video\",\"wbr\",\"circle\",\"clipPath\",\"defs\",\"ellipse\",\"foreignObject\",\"g\",\"image\",\"line\",\"linearGradient\",\"marker\",\"mask\",\"path\",\"pattern\",\"polygon\",\"polyline\",\"radialGradient\",\"rect\",\"stop\",\"svg\",\"text\",\"textPath\",\"tspan\"].forEach((function(e){qe[e]=qe(e)}));var He=function(){function e(e,t){this.rules=e,this.componentId=t,this.isStatic=ne(e),X.registerId(this.componentId+1)}var t=e.prototype;return t.createStyles=function(e,t,n,r){var o=r(_e(this.rules,t,n,r).join(\"\"),\"\"),s=this.componentId+e;n.insertRules(s,s,o)},t.removeStyles=function(e,t){t.clearRules(this.componentId+e)},t.renderStyles=function(e,t,n,r){e>2&&X.registerId(this.componentId+e),this.removeStyles(e,n),this.createStyles(e,t,n,r)},e}();function $e(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),o=1;o meta tag to the stylesheet, or simply embedding it manually in your index.html section for a simpler app.\"),t.server&&h(d,e,t,o,n),l((function(){if(!t.server)return h(d,e,t,o,n),function(){return u.removeStyles(d,t)}}),[d,e,t,o,n]),null}function h(e,t,n,r,o){if(u.isStatic)u.renderStyles(e,P,n,o);else{var s=y({},t,{theme:Oe(t,r,d.defaultProps)});u.renderStyles(e,s,n,o)}}return\"production\"!==process.env.NODE_ENV&&Pe(a),r.memo(d)}function We(e){\"production\"!==process.env.NODE_ENV&&\"undefined\"!=typeof navigator&&\"ReactNative\"===navigator.product&&console.warn(\"`keyframes` cannot be used on ReactNative, only on the web. To do animation in ReactNative please use Animated.\");for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r\"+t+\"\"},this.getStyleTags=function(){return e.sealed?D(2):e._emitSheetCSS()},this.getStyleElement=function(){var t;if(e.sealed)return D(2);var n=((t={})[N]=\"\",t[\"data-styled-version\"]=\"5.3.11\",t.dangerouslySetInnerHTML={__html:e.instance.toString()},t),o=Y();return o&&(n.nonce=o),[r.createElement(\"style\",y({},n,{key:\"sc-0-0\"}))]},this.seal=function(){e.sealed=!0},this.instance=new X({isServer:!0}),this.sealed=!1}var t=e.prototype;return t.collectStyles=function(e){return this.sealed?D(2):r.createElement(me,{sheet:this.instance},e)},t.interleaveWithNodeStream=function(e){return D(3)},e}(),Je=function(e){var t=r.forwardRef((function(t,n){var o=s(Me),i=e.defaultProps,a=Oe(t,o,i);return\"production\"!==process.env.NODE_ENV&&void 0===a&&console.warn('[withTheme] You are not using a ThemeProvider nor passing a theme prop or a theme in defaultProps in component class \"'+b(e)+'\"'),r.createElement(e,y({},t,{theme:a,ref:n}))}));return m(t,e),t.displayName=\"WithTheme(\"+b(e)+\")\",t},Xe=function(){return s(Me)},Ze={StyleSheet:X,masterSheet:de};\"production\"!==process.env.NODE_ENV&&\"undefined\"!=typeof navigator&&\"ReactNative\"===navigator.product&&console.warn(\"It looks like you've imported 'styled-components' on React Native.\\nPerhaps you're looking to import 'styled-components/native'?\\nRead more about this at https://www.styled-components.com/docs/basics#react-native\"),\"production\"!==process.env.NODE_ENV&&\"test\"!==process.env.NODE_ENV&&\"undefined\"!=typeof window&&(window[\"__styled-components-init__\"]=window[\"__styled-components-init__\"]||0,1===window[\"__styled-components-init__\"]&&console.warn(\"It looks like there are several instances of 'styled-components' initialized in this application. This may cause dynamic styles to not render properly, errors during the rehydration process, a missing theme prop, and makes your application bigger without good reason.\\n\\nSee https://s-c.sh/2BAXzed for more info.\"),window[\"__styled-components-init__\"]+=1);export default qe;export{Ue as ServerStyleSheet,ue as StyleSheetConsumer,ce as StyleSheetContext,me as StyleSheetManager,Ge as ThemeConsumer,Me as ThemeContext,Le as ThemeProvider,Ze as __PRIVATE__,$e as createGlobalStyle,Ae as css,_ as isStyledComponent,We as keyframes,Xe as useTheme,A as version,Je as withTheme};\n","function memoize(fn) {\n var cache = Object.create(null);\n return function (arg) {\n if (cache[arg] === undefined) cache[arg] = fn(arg);\n return cache[arg];\n };\n}\n\nexport { memoize as default };\n","/**\n * A `StructFailure` represents a single specific failure in validation.\n */\n/**\n * `StructError` objects are thrown (or returned) when validation fails.\n *\n * Validation logic is design to exit early for maximum performance. The error\n * represents the first error encountered during validation. For more detail,\n * the `error.failures` property is a generator function that can be run to\n * continue validation and receive all the failures in the data.\n */\nclass StructError extends TypeError {\n constructor(failure, failures) {\n let cached;\n const { message, explanation, ...rest } = failure;\n const { path } = failure;\n const msg = path.length === 0 ? message : `At path: ${path.join('.')} -- ${message}`;\n super(explanation ?? msg);\n if (explanation != null)\n this.cause = msg;\n Object.assign(this, rest);\n this.name = this.constructor.name;\n this.failures = () => {\n return (cached ?? (cached = [failure, ...failures()]));\n };\n }\n}\n\n/**\n * Check if a value is an iterator.\n */\nfunction isIterable(x) {\n return isObject(x) && typeof x[Symbol.iterator] === 'function';\n}\n/**\n * Check if a value is a plain object.\n */\nfunction isObject(x) {\n return typeof x === 'object' && x != null;\n}\n/**\n * Check if a value is a plain object.\n */\nfunction isPlainObject(x) {\n if (Object.prototype.toString.call(x) !== '[object Object]') {\n return false;\n }\n const prototype = Object.getPrototypeOf(x);\n return prototype === null || prototype === Object.prototype;\n}\n/**\n * Return a value as a printable string.\n */\nfunction print(value) {\n if (typeof value === 'symbol') {\n return value.toString();\n }\n return typeof value === 'string' ? JSON.stringify(value) : `${value}`;\n}\n/**\n * Shifts (removes and returns) the first value from the `input` iterator.\n * Like `Array.prototype.shift()` but for an `Iterator`.\n */\nfunction shiftIterator(input) {\n const { done, value } = input.next();\n return done ? undefined : value;\n}\n/**\n * Convert a single validation result to a failure.\n */\nfunction toFailure(result, context, struct, value) {\n if (result === true) {\n return;\n }\n else if (result === false) {\n result = {};\n }\n else if (typeof result === 'string') {\n result = { message: result };\n }\n const { path, branch } = context;\n const { type } = struct;\n const { refinement, message = `Expected a value of type \\`${type}\\`${refinement ? ` with refinement \\`${refinement}\\`` : ''}, but received: \\`${print(value)}\\``, } = result;\n return {\n value,\n type,\n refinement,\n key: path[path.length - 1],\n path,\n branch,\n ...result,\n message,\n };\n}\n/**\n * Convert a validation result to an iterable of failures.\n */\nfunction* toFailures(result, context, struct, value) {\n if (!isIterable(result)) {\n result = [result];\n }\n for (const r of result) {\n const failure = toFailure(r, context, struct, value);\n if (failure) {\n yield failure;\n }\n }\n}\n/**\n * Check a value against a struct, traversing deeply into nested values, and\n * returning an iterator of failures or success.\n */\nfunction* run(value, struct, options = {}) {\n const { path = [], branch = [value], coerce = false, mask = false } = options;\n const ctx = { path, branch };\n if (coerce) {\n value = struct.coercer(value, ctx);\n if (mask &&\n struct.type !== 'type' &&\n isObject(struct.schema) &&\n isObject(value) &&\n !Array.isArray(value)) {\n for (const key in value) {\n if (struct.schema[key] === undefined) {\n delete value[key];\n }\n }\n }\n }\n let status = 'valid';\n for (const failure of struct.validator(value, ctx)) {\n failure.explanation = options.message;\n status = 'not_valid';\n yield [failure, undefined];\n }\n for (let [k, v, s] of struct.entries(value, ctx)) {\n const ts = run(v, s, {\n path: k === undefined ? path : [...path, k],\n branch: k === undefined ? branch : [...branch, v],\n coerce,\n mask,\n message: options.message,\n });\n for (const t of ts) {\n if (t[0]) {\n status = t[0].refinement != null ? 'not_refined' : 'not_valid';\n yield [t[0], undefined];\n }\n else if (coerce) {\n v = t[1];\n if (k === undefined) {\n value = v;\n }\n else if (value instanceof Map) {\n value.set(k, v);\n }\n else if (value instanceof Set) {\n value.add(v);\n }\n else if (isObject(value)) {\n if (v !== undefined || k in value)\n value[k] = v;\n }\n }\n }\n }\n if (status !== 'not_valid') {\n for (const failure of struct.refiner(value, ctx)) {\n failure.explanation = options.message;\n status = 'not_refined';\n yield [failure, undefined];\n }\n }\n if (status === 'valid') {\n yield [undefined, value];\n }\n}\n\n/**\n * `Struct` objects encapsulate the validation logic for a specific type of\n * values. Once constructed, you use the `assert`, `is` or `validate` helpers to\n * validate unknown input data against the struct.\n */\nclass Struct {\n constructor(props) {\n const { type, schema, validator, refiner, coercer = (value) => value, entries = function* () { }, } = props;\n this.type = type;\n this.schema = schema;\n this.entries = entries;\n this.coercer = coercer;\n if (validator) {\n this.validator = (value, context) => {\n const result = validator(value, context);\n return toFailures(result, context, this, value);\n };\n }\n else {\n this.validator = () => [];\n }\n if (refiner) {\n this.refiner = (value, context) => {\n const result = refiner(value, context);\n return toFailures(result, context, this, value);\n };\n }\n else {\n this.refiner = () => [];\n }\n }\n /**\n * Assert that a value passes the struct's validation, throwing if it doesn't.\n */\n assert(value, message) {\n return assert(value, this, message);\n }\n /**\n * Create a value with the struct's coercion logic, then validate it.\n */\n create(value, message) {\n return create(value, this, message);\n }\n /**\n * Check if a value passes the struct's validation.\n */\n is(value) {\n return is(value, this);\n }\n /**\n * Mask a value, coercing and validating it, but returning only the subset of\n * properties defined by the struct's schema.\n */\n mask(value, message) {\n return mask(value, this, message);\n }\n /**\n * Validate a value with the struct's validation logic, returning a tuple\n * representing the result.\n *\n * You may optionally pass `true` for the `withCoercion` argument to coerce\n * the value before attempting to validate it. If you do, the result will\n * contain the coerced result when successful.\n */\n validate(value, options = {}) {\n return validate(value, this, options);\n }\n}\n/**\n * Assert that a value passes a struct, throwing if it doesn't.\n */\nfunction assert(value, struct, message) {\n const result = validate(value, struct, { message });\n if (result[0]) {\n throw result[0];\n }\n}\n/**\n * Create a value with the coercion logic of struct and validate it.\n */\nfunction create(value, struct, message) {\n const result = validate(value, struct, { coerce: true, message });\n if (result[0]) {\n throw result[0];\n }\n else {\n return result[1];\n }\n}\n/**\n * Mask a value, returning only the subset of properties defined by a struct.\n */\nfunction mask(value, struct, message) {\n const result = validate(value, struct, { coerce: true, mask: true, message });\n if (result[0]) {\n throw result[0];\n }\n else {\n return result[1];\n }\n}\n/**\n * Check if a value passes a struct.\n */\nfunction is(value, struct) {\n const result = validate(value, struct);\n return !result[0];\n}\n/**\n * Validate a value against a struct, returning an error if invalid, or the\n * value (with potential coercion) if valid.\n */\nfunction validate(value, struct, options = {}) {\n const tuples = run(value, struct, options);\n const tuple = shiftIterator(tuples);\n if (tuple[0]) {\n const error = new StructError(tuple[0], function* () {\n for (const t of tuples) {\n if (t[0]) {\n yield t[0];\n }\n }\n });\n return [error, undefined];\n }\n else {\n const v = tuple[1];\n return [undefined, v];\n }\n}\n\nfunction assign(...Structs) {\n const isType = Structs[0].type === 'type';\n const schemas = Structs.map((s) => s.schema);\n const schema = Object.assign({}, ...schemas);\n return isType ? type(schema) : object(schema);\n}\n/**\n * Define a new struct type with a custom validation function.\n */\nfunction define(name, validator) {\n return new Struct({ type: name, schema: null, validator });\n}\n/**\n * Create a new struct based on an existing struct, but the value is allowed to\n * be `undefined`. `log` will be called if the value is not `undefined`.\n */\nfunction deprecated(struct, log) {\n return new Struct({\n ...struct,\n refiner: (value, ctx) => value === undefined || struct.refiner(value, ctx),\n validator(value, ctx) {\n if (value === undefined) {\n return true;\n }\n else {\n log(value, ctx);\n return struct.validator(value, ctx);\n }\n },\n });\n}\n/**\n * Create a struct with dynamic validation logic.\n *\n * The callback will receive the value currently being validated, and must\n * return a struct object to validate it with. This can be useful to model\n * validation logic that changes based on its input.\n */\nfunction dynamic(fn) {\n return new Struct({\n type: 'dynamic',\n schema: null,\n *entries(value, ctx) {\n const struct = fn(value, ctx);\n yield* struct.entries(value, ctx);\n },\n validator(value, ctx) {\n const struct = fn(value, ctx);\n return struct.validator(value, ctx);\n },\n coercer(value, ctx) {\n const struct = fn(value, ctx);\n return struct.coercer(value, ctx);\n },\n refiner(value, ctx) {\n const struct = fn(value, ctx);\n return struct.refiner(value, ctx);\n },\n });\n}\n/**\n * Create a struct with lazily evaluated validation logic.\n *\n * The first time validation is run with the struct, the callback will be called\n * and must return a struct object to use. This is useful for cases where you\n * want to have self-referential structs for nested data structures to avoid a\n * circular definition problem.\n */\nfunction lazy(fn) {\n let struct;\n return new Struct({\n type: 'lazy',\n schema: null,\n *entries(value, ctx) {\n struct ?? (struct = fn());\n yield* struct.entries(value, ctx);\n },\n validator(value, ctx) {\n struct ?? (struct = fn());\n return struct.validator(value, ctx);\n },\n coercer(value, ctx) {\n struct ?? (struct = fn());\n return struct.coercer(value, ctx);\n },\n refiner(value, ctx) {\n struct ?? (struct = fn());\n return struct.refiner(value, ctx);\n },\n });\n}\n/**\n * Create a new struct based on an existing object struct, but excluding\n * specific properties.\n *\n * Like TypeScript's `Omit` utility.\n */\nfunction omit(struct, keys) {\n const { schema } = struct;\n const subschema = { ...schema };\n for (const key of keys) {\n delete subschema[key];\n }\n switch (struct.type) {\n case 'type':\n return type(subschema);\n default:\n return object(subschema);\n }\n}\n/**\n * Create a new struct based on an existing object struct, but with all of its\n * properties allowed to be `undefined`.\n *\n * Like TypeScript's `Partial` utility.\n */\nfunction partial(struct) {\n const isStruct = struct instanceof Struct;\n const schema = isStruct ? { ...struct.schema } : { ...struct };\n for (const key in schema) {\n schema[key] = optional(schema[key]);\n }\n if (isStruct && struct.type === 'type') {\n return type(schema);\n }\n return object(schema);\n}\n/**\n * Create a new struct based on an existing object struct, but only including\n * specific properties.\n *\n * Like TypeScript's `Pick` utility.\n */\nfunction pick(struct, keys) {\n const { schema } = struct;\n const subschema = {};\n for (const key of keys) {\n subschema[key] = schema[key];\n }\n switch (struct.type) {\n case 'type':\n return type(subschema);\n default:\n return object(subschema);\n }\n}\n/**\n * Define a new struct type with a custom validation function.\n *\n * @deprecated This function has been renamed to `define`.\n */\nfunction struct(name, validator) {\n console.warn('superstruct@0.11 - The `struct` helper has been renamed to `define`.');\n return define(name, validator);\n}\n\n/**\n * Ensure that any value passes validation.\n */\nfunction any() {\n return define('any', () => true);\n}\nfunction array(Element) {\n return new Struct({\n type: 'array',\n schema: Element,\n *entries(value) {\n if (Element && Array.isArray(value)) {\n for (const [i, v] of value.entries()) {\n yield [i, v, Element];\n }\n }\n },\n coercer(value) {\n return Array.isArray(value) ? value.slice() : value;\n },\n validator(value) {\n return (Array.isArray(value) ||\n `Expected an array value, but received: ${print(value)}`);\n },\n });\n}\n/**\n * Ensure that a value is a bigint.\n */\nfunction bigint() {\n return define('bigint', (value) => {\n return typeof value === 'bigint';\n });\n}\n/**\n * Ensure that a value is a boolean.\n */\nfunction boolean() {\n return define('boolean', (value) => {\n return typeof value === 'boolean';\n });\n}\n/**\n * Ensure that a value is a valid `Date`.\n *\n * Note: this also ensures that the value is *not* an invalid `Date` object,\n * which can occur when parsing a date fails but still returns a `Date`.\n */\nfunction date() {\n return define('date', (value) => {\n return ((value instanceof Date && !isNaN(value.getTime())) ||\n `Expected a valid \\`Date\\` object, but received: ${print(value)}`);\n });\n}\nfunction enums(values) {\n const schema = {};\n const description = values.map((v) => print(v)).join();\n for (const key of values) {\n schema[key] = key;\n }\n return new Struct({\n type: 'enums',\n schema,\n validator(value) {\n return (values.includes(value) ||\n `Expected one of \\`${description}\\`, but received: ${print(value)}`);\n },\n });\n}\n/**\n * Ensure that a value is a function.\n */\nfunction func() {\n return define('func', (value) => {\n return (typeof value === 'function' ||\n `Expected a function, but received: ${print(value)}`);\n });\n}\n/**\n * Ensure that a value is an instance of a specific class.\n */\nfunction instance(Class) {\n return define('instance', (value) => {\n return (value instanceof Class ||\n `Expected a \\`${Class.name}\\` instance, but received: ${print(value)}`);\n });\n}\n/**\n * Ensure that a value is an integer.\n */\nfunction integer() {\n return define('integer', (value) => {\n return ((typeof value === 'number' && !isNaN(value) && Number.isInteger(value)) ||\n `Expected an integer, but received: ${print(value)}`);\n });\n}\n/**\n * Ensure that a value matches all of a set of types.\n */\nfunction intersection(Structs) {\n return new Struct({\n type: 'intersection',\n schema: null,\n *entries(value, ctx) {\n for (const S of Structs) {\n yield* S.entries(value, ctx);\n }\n },\n *validator(value, ctx) {\n for (const S of Structs) {\n yield* S.validator(value, ctx);\n }\n },\n *refiner(value, ctx) {\n for (const S of Structs) {\n yield* S.refiner(value, ctx);\n }\n },\n });\n}\nfunction literal(constant) {\n const description = print(constant);\n const t = typeof constant;\n return new Struct({\n type: 'literal',\n schema: t === 'string' || t === 'number' || t === 'boolean' ? constant : null,\n validator(value) {\n return (value === constant ||\n `Expected the literal \\`${description}\\`, but received: ${print(value)}`);\n },\n });\n}\nfunction map(Key, Value) {\n return new Struct({\n type: 'map',\n schema: null,\n *entries(value) {\n if (Key && Value && value instanceof Map) {\n for (const [k, v] of value.entries()) {\n yield [k, k, Key];\n yield [k, v, Value];\n }\n }\n },\n coercer(value) {\n return value instanceof Map ? new Map(value) : value;\n },\n validator(value) {\n return (value instanceof Map ||\n `Expected a \\`Map\\` object, but received: ${print(value)}`);\n },\n });\n}\n/**\n * Ensure that no value ever passes validation.\n */\nfunction never() {\n return define('never', () => false);\n}\n/**\n * Augment an existing struct to allow `null` values.\n */\nfunction nullable(struct) {\n return new Struct({\n ...struct,\n validator: (value, ctx) => value === null || struct.validator(value, ctx),\n refiner: (value, ctx) => value === null || struct.refiner(value, ctx),\n });\n}\n/**\n * Ensure that a value is a number.\n */\nfunction number() {\n return define('number', (value) => {\n return ((typeof value === 'number' && !isNaN(value)) ||\n `Expected a number, but received: ${print(value)}`);\n });\n}\nfunction object(schema) {\n const knowns = schema ? Object.keys(schema) : [];\n const Never = never();\n return new Struct({\n type: 'object',\n schema: schema ? schema : null,\n *entries(value) {\n if (schema && isObject(value)) {\n const unknowns = new Set(Object.keys(value));\n for (const key of knowns) {\n unknowns.delete(key);\n yield [key, value[key], schema[key]];\n }\n for (const key of unknowns) {\n yield [key, value[key], Never];\n }\n }\n },\n validator(value) {\n return (isObject(value) || `Expected an object, but received: ${print(value)}`);\n },\n coercer(value) {\n return isObject(value) ? { ...value } : value;\n },\n });\n}\n/**\n * Augment a struct to allow `undefined` values.\n */\nfunction optional(struct) {\n return new Struct({\n ...struct,\n validator: (value, ctx) => value === undefined || struct.validator(value, ctx),\n refiner: (value, ctx) => value === undefined || struct.refiner(value, ctx),\n });\n}\n/**\n * Ensure that a value is an object with keys and values of specific types, but\n * without ensuring any specific shape of properties.\n *\n * Like TypeScript's `Record` utility.\n */\nfunction record(Key, Value) {\n return new Struct({\n type: 'record',\n schema: null,\n *entries(value) {\n if (isObject(value)) {\n for (const k in value) {\n const v = value[k];\n yield [k, k, Key];\n yield [k, v, Value];\n }\n }\n },\n validator(value) {\n return (isObject(value) || `Expected an object, but received: ${print(value)}`);\n },\n });\n}\n/**\n * Ensure that a value is a `RegExp`.\n *\n * Note: this does not test the value against the regular expression! For that\n * you need to use the `pattern()` refinement.\n */\nfunction regexp() {\n return define('regexp', (value) => {\n return value instanceof RegExp;\n });\n}\nfunction set(Element) {\n return new Struct({\n type: 'set',\n schema: null,\n *entries(value) {\n if (Element && value instanceof Set) {\n for (const v of value) {\n yield [v, v, Element];\n }\n }\n },\n coercer(value) {\n return value instanceof Set ? new Set(value) : value;\n },\n validator(value) {\n return (value instanceof Set ||\n `Expected a \\`Set\\` object, but received: ${print(value)}`);\n },\n });\n}\n/**\n * Ensure that a value is a string.\n */\nfunction string() {\n return define('string', (value) => {\n return (typeof value === 'string' ||\n `Expected a string, but received: ${print(value)}`);\n });\n}\n/**\n * Ensure that a value is a tuple of a specific length, and that each of its\n * elements is of a specific type.\n */\nfunction tuple(Structs) {\n const Never = never();\n return new Struct({\n type: 'tuple',\n schema: null,\n *entries(value) {\n if (Array.isArray(value)) {\n const length = Math.max(Structs.length, value.length);\n for (let i = 0; i < length; i++) {\n yield [i, value[i], Structs[i] || Never];\n }\n }\n },\n validator(value) {\n return (Array.isArray(value) ||\n `Expected an array, but received: ${print(value)}`);\n },\n });\n}\n/**\n * Ensure that a value has a set of known properties of specific types.\n *\n * Note: Unrecognized properties are allowed and untouched. This is similar to\n * how TypeScript's structural typing works.\n */\nfunction type(schema) {\n const keys = Object.keys(schema);\n return new Struct({\n type: 'type',\n schema,\n *entries(value) {\n if (isObject(value)) {\n for (const k of keys) {\n yield [k, value[k], schema[k]];\n }\n }\n },\n validator(value) {\n return (isObject(value) || `Expected an object, but received: ${print(value)}`);\n },\n coercer(value) {\n return isObject(value) ? { ...value } : value;\n },\n });\n}\n/**\n * Ensure that a value matches one of a set of types.\n */\nfunction union(Structs) {\n const description = Structs.map((s) => s.type).join(' | ');\n return new Struct({\n type: 'union',\n schema: null,\n coercer(value) {\n for (const S of Structs) {\n const [error, coerced] = S.validate(value, { coerce: true });\n if (!error) {\n return coerced;\n }\n }\n return value;\n },\n validator(value, ctx) {\n const failures = [];\n for (const S of Structs) {\n const [...tuples] = run(value, S, ctx);\n const [first] = tuples;\n if (!first[0]) {\n return [];\n }\n else {\n for (const [failure] of tuples) {\n if (failure) {\n failures.push(failure);\n }\n }\n }\n }\n return [\n `Expected the value to satisfy a union of \\`${description}\\`, but received: ${print(value)}`,\n ...failures,\n ];\n },\n });\n}\n/**\n * Ensure that any value passes validation, without widening its type to `any`.\n */\nfunction unknown() {\n return define('unknown', () => true);\n}\n\n/**\n * Augment a `Struct` to add an additional coercion step to its input.\n *\n * This allows you to transform input data before validating it, to increase the\n * likelihood that it passes validation—for example for default values, parsing\n * different formats, etc.\n *\n * Note: You must use `create(value, Struct)` on the value to have the coercion\n * take effect! Using simply `assert()` or `is()` will not use coercion.\n */\nfunction coerce(struct, condition, coercer) {\n return new Struct({\n ...struct,\n coercer: (value, ctx) => {\n return is(value, condition)\n ? struct.coercer(coercer(value, ctx), ctx)\n : struct.coercer(value, ctx);\n },\n });\n}\n/**\n * Augment a struct to replace `undefined` values with a default.\n *\n * Note: You must use `create(value, Struct)` on the value to have the coercion\n * take effect! Using simply `assert()` or `is()` will not use coercion.\n */\nfunction defaulted(struct, fallback, options = {}) {\n return coerce(struct, unknown(), (x) => {\n const f = typeof fallback === 'function' ? fallback() : fallback;\n if (x === undefined) {\n return f;\n }\n if (!options.strict && isPlainObject(x) && isPlainObject(f)) {\n const ret = { ...x };\n let changed = false;\n for (const key in f) {\n if (ret[key] === undefined) {\n ret[key] = f[key];\n changed = true;\n }\n }\n if (changed) {\n return ret;\n }\n }\n return x;\n });\n}\n/**\n * Augment a struct to trim string inputs.\n *\n * Note: You must use `create(value, Struct)` on the value to have the coercion\n * take effect! Using simply `assert()` or `is()` will not use coercion.\n */\nfunction trimmed(struct) {\n return coerce(struct, string(), (x) => x.trim());\n}\n\n/**\n * Ensure that a string, array, map, or set is empty.\n */\nfunction empty(struct) {\n return refine(struct, 'empty', (value) => {\n const size = getSize(value);\n return (size === 0 ||\n `Expected an empty ${struct.type} but received one with a size of \\`${size}\\``);\n });\n}\nfunction getSize(value) {\n if (value instanceof Map || value instanceof Set) {\n return value.size;\n }\n else {\n return value.length;\n }\n}\n/**\n * Ensure that a number or date is below a threshold.\n */\nfunction max(struct, threshold, options = {}) {\n const { exclusive } = options;\n return refine(struct, 'max', (value) => {\n return exclusive\n ? value < threshold\n : value <= threshold ||\n `Expected a ${struct.type} less than ${exclusive ? '' : 'or equal to '}${threshold} but received \\`${value}\\``;\n });\n}\n/**\n * Ensure that a number or date is above a threshold.\n */\nfunction min(struct, threshold, options = {}) {\n const { exclusive } = options;\n return refine(struct, 'min', (value) => {\n return exclusive\n ? value > threshold\n : value >= threshold ||\n `Expected a ${struct.type} greater than ${exclusive ? '' : 'or equal to '}${threshold} but received \\`${value}\\``;\n });\n}\n/**\n * Ensure that a string, array, map or set is not empty.\n */\nfunction nonempty(struct) {\n return refine(struct, 'nonempty', (value) => {\n const size = getSize(value);\n return (size > 0 || `Expected a nonempty ${struct.type} but received an empty one`);\n });\n}\n/**\n * Ensure that a string matches a regular expression.\n */\nfunction pattern(struct, regexp) {\n return refine(struct, 'pattern', (value) => {\n return (regexp.test(value) ||\n `Expected a ${struct.type} matching \\`/${regexp.source}/\\` but received \"${value}\"`);\n });\n}\n/**\n * Ensure that a string, array, number, date, map, or set has a size (or length, or time) between `min` and `max`.\n */\nfunction size(struct, min, max = min) {\n const expected = `Expected a ${struct.type}`;\n const of = min === max ? `of \\`${min}\\`` : `between \\`${min}\\` and \\`${max}\\``;\n return refine(struct, 'size', (value) => {\n if (typeof value === 'number' || value instanceof Date) {\n return ((min <= value && value <= max) ||\n `${expected} ${of} but received \\`${value}\\``);\n }\n else if (value instanceof Map || value instanceof Set) {\n const { size } = value;\n return ((min <= size && size <= max) ||\n `${expected} with a size ${of} but received one with a size of \\`${size}\\``);\n }\n else {\n const { length } = value;\n return ((min <= length && length <= max) ||\n `${expected} with a length ${of} but received one with a length of \\`${length}\\``);\n }\n });\n}\n/**\n * Augment a `Struct` to add an additional refinement to the validation.\n *\n * The refiner function is guaranteed to receive a value of the struct's type,\n * because the struct's existing validation will already have passed. This\n * allows you to layer additional validation on top of existing structs.\n */\nfunction refine(struct, name, refiner) {\n return new Struct({\n ...struct,\n *refiner(value, ctx) {\n yield* struct.refiner(value, ctx);\n const result = refiner(value, ctx);\n const failures = toFailures(result, ctx, struct, value);\n for (const failure of failures) {\n yield { ...failure, refinement: name };\n }\n },\n });\n}\n\nexport { Struct, StructError, any, array, assert, assign, bigint, boolean, coerce, create, date, defaulted, define, deprecated, dynamic, empty, enums, func, instance, integer, intersection, is, lazy, literal, map, mask, max, min, never, nonempty, nullable, number, object, omit, optional, partial, pattern, pick, record, refine, regexp, set, size, string, struct, trimmed, tuple, type, union, unknown, validate };\n","'use strict';\nmodule.exports = {\n\tstdout: false,\n\tstderr: false\n};\n","var THREE = require('three');\r\n\r\nconsole.warn( \"WARNING: The 'three.js' npm package is deprecated in favor of the 'three' npm package, please upgrade.\");\r\n\r\nif (typeof exports !== 'undefined') {\r\n if (typeof module !== 'undefined' && module.exports) {\r\n exports = module.exports = THREE;\r\n }\r\n exports.THREE = THREE;\r\n} else {\r\n this['THREE'] = THREE;\r\n}\r\n","// threejs.org/license\nconst REVISION = '125dev';\nconst MOUSE = { LEFT: 0, MIDDLE: 1, RIGHT: 2, ROTATE: 0, DOLLY: 1, PAN: 2 };\nconst TOUCH = { ROTATE: 0, PAN: 1, DOLLY_PAN: 2, DOLLY_ROTATE: 3 };\nconst CullFaceNone = 0;\nconst CullFaceBack = 1;\nconst CullFaceFront = 2;\nconst CullFaceFrontBack = 3;\nconst BasicShadowMap = 0;\nconst PCFShadowMap = 1;\nconst PCFSoftShadowMap = 2;\nconst VSMShadowMap = 3;\nconst FrontSide = 0;\nconst BackSide = 1;\nconst DoubleSide = 2;\nconst FlatShading = 1;\nconst SmoothShading = 2;\nconst NoBlending = 0;\nconst NormalBlending = 1;\nconst AdditiveBlending = 2;\nconst SubtractiveBlending = 3;\nconst MultiplyBlending = 4;\nconst CustomBlending = 5;\nconst AddEquation = 100;\nconst SubtractEquation = 101;\nconst ReverseSubtractEquation = 102;\nconst MinEquation = 103;\nconst MaxEquation = 104;\nconst ZeroFactor = 200;\nconst OneFactor = 201;\nconst SrcColorFactor = 202;\nconst OneMinusSrcColorFactor = 203;\nconst SrcAlphaFactor = 204;\nconst OneMinusSrcAlphaFactor = 205;\nconst DstAlphaFactor = 206;\nconst OneMinusDstAlphaFactor = 207;\nconst DstColorFactor = 208;\nconst OneMinusDstColorFactor = 209;\nconst SrcAlphaSaturateFactor = 210;\nconst NeverDepth = 0;\nconst AlwaysDepth = 1;\nconst LessDepth = 2;\nconst LessEqualDepth = 3;\nconst EqualDepth = 4;\nconst GreaterEqualDepth = 5;\nconst GreaterDepth = 6;\nconst NotEqualDepth = 7;\nconst MultiplyOperation = 0;\nconst MixOperation = 1;\nconst AddOperation = 2;\nconst NoToneMapping = 0;\nconst LinearToneMapping = 1;\nconst ReinhardToneMapping = 2;\nconst CineonToneMapping = 3;\nconst ACESFilmicToneMapping = 4;\nconst CustomToneMapping = 5;\n\nconst UVMapping = 300;\nconst CubeReflectionMapping = 301;\nconst CubeRefractionMapping = 302;\nconst EquirectangularReflectionMapping = 303;\nconst EquirectangularRefractionMapping = 304;\nconst CubeUVReflectionMapping = 306;\nconst CubeUVRefractionMapping = 307;\nconst RepeatWrapping = 1000;\nconst ClampToEdgeWrapping = 1001;\nconst MirroredRepeatWrapping = 1002;\nconst NearestFilter = 1003;\nconst NearestMipmapNearestFilter = 1004;\nconst NearestMipMapNearestFilter = 1004;\nconst NearestMipmapLinearFilter = 1005;\nconst NearestMipMapLinearFilter = 1005;\nconst LinearFilter = 1006;\nconst LinearMipmapNearestFilter = 1007;\nconst LinearMipMapNearestFilter = 1007;\nconst LinearMipmapLinearFilter = 1008;\nconst LinearMipMapLinearFilter = 1008;\nconst UnsignedByteType = 1009;\nconst ByteType = 1010;\nconst ShortType = 1011;\nconst UnsignedShortType = 1012;\nconst IntType = 1013;\nconst UnsignedIntType = 1014;\nconst FloatType = 1015;\nconst HalfFloatType = 1016;\nconst UnsignedShort4444Type = 1017;\nconst UnsignedShort5551Type = 1018;\nconst UnsignedShort565Type = 1019;\nconst UnsignedInt248Type = 1020;\nconst AlphaFormat = 1021;\nconst RGBFormat = 1022;\nconst RGBAFormat = 1023;\nconst LuminanceFormat = 1024;\nconst LuminanceAlphaFormat = 1025;\nconst RGBEFormat = RGBAFormat;\nconst DepthFormat = 1026;\nconst DepthStencilFormat = 1027;\nconst RedFormat = 1028;\nconst RedIntegerFormat = 1029;\nconst RGFormat = 1030;\nconst RGIntegerFormat = 1031;\nconst RGBIntegerFormat = 1032;\nconst RGBAIntegerFormat = 1033;\n\nconst RGB_S3TC_DXT1_Format = 33776;\nconst RGBA_S3TC_DXT1_Format = 33777;\nconst RGBA_S3TC_DXT3_Format = 33778;\nconst RGBA_S3TC_DXT5_Format = 33779;\nconst RGB_PVRTC_4BPPV1_Format = 35840;\nconst RGB_PVRTC_2BPPV1_Format = 35841;\nconst RGBA_PVRTC_4BPPV1_Format = 35842;\nconst RGBA_PVRTC_2BPPV1_Format = 35843;\nconst RGB_ETC1_Format = 36196;\nconst RGB_ETC2_Format = 37492;\nconst RGBA_ETC2_EAC_Format = 37496;\nconst RGBA_ASTC_4x4_Format = 37808;\nconst RGBA_ASTC_5x4_Format = 37809;\nconst RGBA_ASTC_5x5_Format = 37810;\nconst RGBA_ASTC_6x5_Format = 37811;\nconst RGBA_ASTC_6x6_Format = 37812;\nconst RGBA_ASTC_8x5_Format = 37813;\nconst RGBA_ASTC_8x6_Format = 37814;\nconst RGBA_ASTC_8x8_Format = 37815;\nconst RGBA_ASTC_10x5_Format = 37816;\nconst RGBA_ASTC_10x6_Format = 37817;\nconst RGBA_ASTC_10x8_Format = 37818;\nconst RGBA_ASTC_10x10_Format = 37819;\nconst RGBA_ASTC_12x10_Format = 37820;\nconst RGBA_ASTC_12x12_Format = 37821;\nconst RGBA_BPTC_Format = 36492;\nconst SRGB8_ALPHA8_ASTC_4x4_Format = 37840;\nconst SRGB8_ALPHA8_ASTC_5x4_Format = 37841;\nconst SRGB8_ALPHA8_ASTC_5x5_Format = 37842;\nconst SRGB8_ALPHA8_ASTC_6x5_Format = 37843;\nconst SRGB8_ALPHA8_ASTC_6x6_Format = 37844;\nconst SRGB8_ALPHA8_ASTC_8x5_Format = 37845;\nconst SRGB8_ALPHA8_ASTC_8x6_Format = 37846;\nconst SRGB8_ALPHA8_ASTC_8x8_Format = 37847;\nconst SRGB8_ALPHA8_ASTC_10x5_Format = 37848;\nconst SRGB8_ALPHA8_ASTC_10x6_Format = 37849;\nconst SRGB8_ALPHA8_ASTC_10x8_Format = 37850;\nconst SRGB8_ALPHA8_ASTC_10x10_Format = 37851;\nconst SRGB8_ALPHA8_ASTC_12x10_Format = 37852;\nconst SRGB8_ALPHA8_ASTC_12x12_Format = 37853;\nconst LoopOnce = 2200;\nconst LoopRepeat = 2201;\nconst LoopPingPong = 2202;\nconst InterpolateDiscrete = 2300;\nconst InterpolateLinear = 2301;\nconst InterpolateSmooth = 2302;\nconst ZeroCurvatureEnding = 2400;\nconst ZeroSlopeEnding = 2401;\nconst WrapAroundEnding = 2402;\nconst NormalAnimationBlendMode = 2500;\nconst AdditiveAnimationBlendMode = 2501;\nconst TrianglesDrawMode = 0;\nconst TriangleStripDrawMode = 1;\nconst TriangleFanDrawMode = 2;\nconst LinearEncoding = 3000;\nconst sRGBEncoding = 3001;\nconst GammaEncoding = 3007;\nconst RGBEEncoding = 3002;\nconst LogLuvEncoding = 3003;\nconst RGBM7Encoding = 3004;\nconst RGBM16Encoding = 3005;\nconst RGBDEncoding = 3006;\nconst BasicDepthPacking = 3200;\nconst RGBADepthPacking = 3201;\nconst TangentSpaceNormalMap = 0;\nconst ObjectSpaceNormalMap = 1;\n\nconst ZeroStencilOp = 0;\nconst KeepStencilOp = 7680;\nconst ReplaceStencilOp = 7681;\nconst IncrementStencilOp = 7682;\nconst DecrementStencilOp = 7683;\nconst IncrementWrapStencilOp = 34055;\nconst DecrementWrapStencilOp = 34056;\nconst InvertStencilOp = 5386;\n\nconst NeverStencilFunc = 512;\nconst LessStencilFunc = 513;\nconst EqualStencilFunc = 514;\nconst LessEqualStencilFunc = 515;\nconst GreaterStencilFunc = 516;\nconst NotEqualStencilFunc = 517;\nconst GreaterEqualStencilFunc = 518;\nconst AlwaysStencilFunc = 519;\n\nconst StaticDrawUsage = 35044;\nconst DynamicDrawUsage = 35048;\nconst StreamDrawUsage = 35040;\nconst StaticReadUsage = 35045;\nconst DynamicReadUsage = 35049;\nconst StreamReadUsage = 35041;\nconst StaticCopyUsage = 35046;\nconst DynamicCopyUsage = 35050;\nconst StreamCopyUsage = 35042;\n\nconst GLSL1 = '100';\nconst GLSL3 = '300 es';\n\n/**\n * https://github.com/mrdoob/eventdispatcher.js/\n */\n\nfunction EventDispatcher() {}\n\nObject.assign( EventDispatcher.prototype, {\n\n\taddEventListener: function ( type, listener ) {\n\n\t\tif ( this._listeners === undefined ) this._listeners = {};\n\n\t\tconst listeners = this._listeners;\n\n\t\tif ( listeners[ type ] === undefined ) {\n\n\t\t\tlisteners[ type ] = [];\n\n\t\t}\n\n\t\tif ( listeners[ type ].indexOf( listener ) === - 1 ) {\n\n\t\t\tlisteners[ type ].push( listener );\n\n\t\t}\n\n\t},\n\n\thasEventListener: function ( type, listener ) {\n\n\t\tif ( this._listeners === undefined ) return false;\n\n\t\tconst listeners = this._listeners;\n\n\t\treturn listeners[ type ] !== undefined && listeners[ type ].indexOf( listener ) !== - 1;\n\n\t},\n\n\tremoveEventListener: function ( type, listener ) {\n\n\t\tif ( this._listeners === undefined ) return;\n\n\t\tconst listeners = this._listeners;\n\t\tconst listenerArray = listeners[ type ];\n\n\t\tif ( listenerArray !== undefined ) {\n\n\t\t\tconst index = listenerArray.indexOf( listener );\n\n\t\t\tif ( index !== - 1 ) {\n\n\t\t\t\tlistenerArray.splice( index, 1 );\n\n\t\t\t}\n\n\t\t}\n\n\t},\n\n\tdispatchEvent: function ( event ) {\n\n\t\tif ( this._listeners === undefined ) return;\n\n\t\tconst listeners = this._listeners;\n\t\tconst listenerArray = listeners[ event.type ];\n\n\t\tif ( listenerArray !== undefined ) {\n\n\t\t\tevent.target = this;\n\n\t\t\t// Make a copy, in case listeners are removed while iterating.\n\t\t\tconst array = listenerArray.slice( 0 );\n\n\t\t\tfor ( let i = 0, l = array.length; i < l; i ++ ) {\n\n\t\t\t\tarray[ i ].call( this, event );\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n} );\n\nconst _lut = [];\n\nfor ( let i = 0; i < 256; i ++ ) {\n\n\t_lut[ i ] = ( i < 16 ? '0' : '' ) + ( i ).toString( 16 );\n\n}\n\nlet _seed = 1234567;\n\nconst MathUtils = {\n\n\tDEG2RAD: Math.PI / 180,\n\tRAD2DEG: 180 / Math.PI,\n\n\tgenerateUUID: function () {\n\n\t\t// http://stackoverflow.com/questions/105034/how-to-create-a-guid-uuid-in-javascript/21963136#21963136\n\n\t\tconst d0 = Math.random() * 0xffffffff | 0;\n\t\tconst d1 = Math.random() * 0xffffffff | 0;\n\t\tconst d2 = Math.random() * 0xffffffff | 0;\n\t\tconst d3 = Math.random() * 0xffffffff | 0;\n\t\tconst uuid = _lut[ d0 & 0xff ] + _lut[ d0 >> 8 & 0xff ] + _lut[ d0 >> 16 & 0xff ] + _lut[ d0 >> 24 & 0xff ] + '-' +\n\t\t\t_lut[ d1 & 0xff ] + _lut[ d1 >> 8 & 0xff ] + '-' + _lut[ d1 >> 16 & 0x0f | 0x40 ] + _lut[ d1 >> 24 & 0xff ] + '-' +\n\t\t\t_lut[ d2 & 0x3f | 0x80 ] + _lut[ d2 >> 8 & 0xff ] + '-' + _lut[ d2 >> 16 & 0xff ] + _lut[ d2 >> 24 & 0xff ] +\n\t\t\t_lut[ d3 & 0xff ] + _lut[ d3 >> 8 & 0xff ] + _lut[ d3 >> 16 & 0xff ] + _lut[ d3 >> 24 & 0xff ];\n\n\t\t// .toUpperCase() here flattens concatenated strings to save heap memory space.\n\t\treturn uuid.toUpperCase();\n\n\t},\n\n\tclamp: function ( value, min, max ) {\n\n\t\treturn Math.max( min, Math.min( max, value ) );\n\n\t},\n\n\t// compute euclidian modulo of m % n\n\t// https://en.wikipedia.org/wiki/Modulo_operation\n\n\teuclideanModulo: function ( n, m ) {\n\n\t\treturn ( ( n % m ) + m ) % m;\n\n\t},\n\n\t// Linear mapping from range to range \n\n\tmapLinear: function ( x, a1, a2, b1, b2 ) {\n\n\t\treturn b1 + ( x - a1 ) * ( b2 - b1 ) / ( a2 - a1 );\n\n\t},\n\n\t// https://en.wikipedia.org/wiki/Linear_interpolation\n\n\tlerp: function ( x, y, t ) {\n\n\t\treturn ( 1 - t ) * x + t * y;\n\n\t},\n\n\t// http://www.rorydriscoll.com/2016/03/07/frame-rate-independent-damping-using-lerp/\n\n\tdamp: function ( x, y, lambda, dt ) {\n\n\t\treturn MathUtils.lerp( x, y, 1 - Math.exp( - lambda * dt ) );\n\n\t},\n\n\t// https://www.desmos.com/calculator/vcsjnyz7x4\n\n\tpingpong: function ( x, length = 1 ) {\n\n\t\treturn length - Math.abs( MathUtils.euclideanModulo( x, length * 2 ) - length );\n\n\t},\n\n\t// http://en.wikipedia.org/wiki/Smoothstep\n\n\tsmoothstep: function ( x, min, max ) {\n\n\t\tif ( x <= min ) return 0;\n\t\tif ( x >= max ) return 1;\n\n\t\tx = ( x - min ) / ( max - min );\n\n\t\treturn x * x * ( 3 - 2 * x );\n\n\t},\n\n\tsmootherstep: function ( x, min, max ) {\n\n\t\tif ( x <= min ) return 0;\n\t\tif ( x >= max ) return 1;\n\n\t\tx = ( x - min ) / ( max - min );\n\n\t\treturn x * x * x * ( x * ( x * 6 - 15 ) + 10 );\n\n\t},\n\n\t// Random integer from interval\n\n\trandInt: function ( low, high ) {\n\n\t\treturn low + Math.floor( Math.random() * ( high - low + 1 ) );\n\n\t},\n\n\t// Random float from interval\n\n\trandFloat: function ( low, high ) {\n\n\t\treturn low + Math.random() * ( high - low );\n\n\t},\n\n\t// Random float from <-range/2, range/2> interval\n\n\trandFloatSpread: function ( range ) {\n\n\t\treturn range * ( 0.5 - Math.random() );\n\n\t},\n\n\t// Deterministic pseudo-random float in the interval [ 0, 1 ]\n\n\tseededRandom: function ( s ) {\n\n\t\tif ( s !== undefined ) _seed = s % 2147483647;\n\n\t\t// Park-Miller algorithm\n\n\t\t_seed = _seed * 16807 % 2147483647;\n\n\t\treturn ( _seed - 1 ) / 2147483646;\n\n\t},\n\n\tdegToRad: function ( degrees ) {\n\n\t\treturn degrees * MathUtils.DEG2RAD;\n\n\t},\n\n\tradToDeg: function ( radians ) {\n\n\t\treturn radians * MathUtils.RAD2DEG;\n\n\t},\n\n\tisPowerOfTwo: function ( value ) {\n\n\t\treturn ( value & ( value - 1 ) ) === 0 && value !== 0;\n\n\t},\n\n\tceilPowerOfTwo: function ( value ) {\n\n\t\treturn Math.pow( 2, Math.ceil( Math.log( value ) / Math.LN2 ) );\n\n\t},\n\n\tfloorPowerOfTwo: function ( value ) {\n\n\t\treturn Math.pow( 2, Math.floor( Math.log( value ) / Math.LN2 ) );\n\n\t},\n\n\tsetQuaternionFromProperEuler: function ( q, a, b, c, order ) {\n\n\t\t// Intrinsic Proper Euler Angles - see https://en.wikipedia.org/wiki/Euler_angles\n\n\t\t// rotations are applied to the axes in the order specified by 'order'\n\t\t// rotation by angle 'a' is applied first, then by angle 'b', then by angle 'c'\n\t\t// angles are in radians\n\n\t\tconst cos = Math.cos;\n\t\tconst sin = Math.sin;\n\n\t\tconst c2 = cos( b / 2 );\n\t\tconst s2 = sin( b / 2 );\n\n\t\tconst c13 = cos( ( a + c ) / 2 );\n\t\tconst s13 = sin( ( a + c ) / 2 );\n\n\t\tconst c1_3 = cos( ( a - c ) / 2 );\n\t\tconst s1_3 = sin( ( a - c ) / 2 );\n\n\t\tconst c3_1 = cos( ( c - a ) / 2 );\n\t\tconst s3_1 = sin( ( c - a ) / 2 );\n\n\t\tswitch ( order ) {\n\n\t\t\tcase 'XYX':\n\t\t\t\tq.set( c2 * s13, s2 * c1_3, s2 * s1_3, c2 * c13 );\n\t\t\t\tbreak;\n\n\t\t\tcase 'YZY':\n\t\t\t\tq.set( s2 * s1_3, c2 * s13, s2 * c1_3, c2 * c13 );\n\t\t\t\tbreak;\n\n\t\t\tcase 'ZXZ':\n\t\t\t\tq.set( s2 * c1_3, s2 * s1_3, c2 * s13, c2 * c13 );\n\t\t\t\tbreak;\n\n\t\t\tcase 'XZX':\n\t\t\t\tq.set( c2 * s13, s2 * s3_1, s2 * c3_1, c2 * c13 );\n\t\t\t\tbreak;\n\n\t\t\tcase 'YXY':\n\t\t\t\tq.set( s2 * c3_1, c2 * s13, s2 * s3_1, c2 * c13 );\n\t\t\t\tbreak;\n\n\t\t\tcase 'ZYZ':\n\t\t\t\tq.set( s2 * s3_1, s2 * c3_1, c2 * s13, c2 * c13 );\n\t\t\t\tbreak;\n\n\t\t\tdefault:\n\t\t\t\tconsole.warn( 'THREE.MathUtils: .setQuaternionFromProperEuler() encountered an unknown order: ' + order );\n\n\t\t}\n\n\t}\n\n};\n\nclass Vector2 {\n\n\tconstructor( x = 0, y = 0 ) {\n\n\t\tObject.defineProperty( this, 'isVector2', { value: true } );\n\n\t\tthis.x = x;\n\t\tthis.y = y;\n\n\t}\n\n\tget width() {\n\n\t\treturn this.x;\n\n\t}\n\n\tset width( value ) {\n\n\t\tthis.x = value;\n\n\t}\n\n\tget height() {\n\n\t\treturn this.y;\n\n\t}\n\n\tset height( value ) {\n\n\t\tthis.y = value;\n\n\t}\n\n\tset( x, y ) {\n\n\t\tthis.x = x;\n\t\tthis.y = y;\n\n\t\treturn this;\n\n\t}\n\n\tsetScalar( scalar ) {\n\n\t\tthis.x = scalar;\n\t\tthis.y = scalar;\n\n\t\treturn this;\n\n\t}\n\n\tsetX( x ) {\n\n\t\tthis.x = x;\n\n\t\treturn this;\n\n\t}\n\n\tsetY( y ) {\n\n\t\tthis.y = y;\n\n\t\treturn this;\n\n\t}\n\n\tsetComponent( index, value ) {\n\n\t\tswitch ( index ) {\n\n\t\t\tcase 0: this.x = value; break;\n\t\t\tcase 1: this.y = value; break;\n\t\t\tdefault: throw new Error( 'index is out of range: ' + index );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tgetComponent( index ) {\n\n\t\tswitch ( index ) {\n\n\t\t\tcase 0: return this.x;\n\t\t\tcase 1: return this.y;\n\t\t\tdefault: throw new Error( 'index is out of range: ' + index );\n\n\t\t}\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor( this.x, this.y );\n\n\t}\n\n\tcopy( v ) {\n\n\t\tthis.x = v.x;\n\t\tthis.y = v.y;\n\n\t\treturn this;\n\n\t}\n\n\tadd( v, w ) {\n\n\t\tif ( w !== undefined ) {\n\n\t\t\tconsole.warn( 'THREE.Vector2: .add() now only accepts one argument. Use .addVectors( a, b ) instead.' );\n\t\t\treturn this.addVectors( v, w );\n\n\t\t}\n\n\t\tthis.x += v.x;\n\t\tthis.y += v.y;\n\n\t\treturn this;\n\n\t}\n\n\taddScalar( s ) {\n\n\t\tthis.x += s;\n\t\tthis.y += s;\n\n\t\treturn this;\n\n\t}\n\n\taddVectors( a, b ) {\n\n\t\tthis.x = a.x + b.x;\n\t\tthis.y = a.y + b.y;\n\n\t\treturn this;\n\n\t}\n\n\taddScaledVector( v, s ) {\n\n\t\tthis.x += v.x * s;\n\t\tthis.y += v.y * s;\n\n\t\treturn this;\n\n\t}\n\n\tsub( v, w ) {\n\n\t\tif ( w !== undefined ) {\n\n\t\t\tconsole.warn( 'THREE.Vector2: .sub() now only accepts one argument. Use .subVectors( a, b ) instead.' );\n\t\t\treturn this.subVectors( v, w );\n\n\t\t}\n\n\t\tthis.x -= v.x;\n\t\tthis.y -= v.y;\n\n\t\treturn this;\n\n\t}\n\n\tsubScalar( s ) {\n\n\t\tthis.x -= s;\n\t\tthis.y -= s;\n\n\t\treturn this;\n\n\t}\n\n\tsubVectors( a, b ) {\n\n\t\tthis.x = a.x - b.x;\n\t\tthis.y = a.y - b.y;\n\n\t\treturn this;\n\n\t}\n\n\tmultiply( v ) {\n\n\t\tthis.x *= v.x;\n\t\tthis.y *= v.y;\n\n\t\treturn this;\n\n\t}\n\n\tmultiplyScalar( scalar ) {\n\n\t\tthis.x *= scalar;\n\t\tthis.y *= scalar;\n\n\t\treturn this;\n\n\t}\n\n\tdivide( v ) {\n\n\t\tthis.x /= v.x;\n\t\tthis.y /= v.y;\n\n\t\treturn this;\n\n\t}\n\n\tdivideScalar( scalar ) {\n\n\t\treturn this.multiplyScalar( 1 / scalar );\n\n\t}\n\n\tapplyMatrix3( m ) {\n\n\t\tconst x = this.x, y = this.y;\n\t\tconst e = m.elements;\n\n\t\tthis.x = e[ 0 ] * x + e[ 3 ] * y + e[ 6 ];\n\t\tthis.y = e[ 1 ] * x + e[ 4 ] * y + e[ 7 ];\n\n\t\treturn this;\n\n\t}\n\n\tmin( v ) {\n\n\t\tthis.x = Math.min( this.x, v.x );\n\t\tthis.y = Math.min( this.y, v.y );\n\n\t\treturn this;\n\n\t}\n\n\tmax( v ) {\n\n\t\tthis.x = Math.max( this.x, v.x );\n\t\tthis.y = Math.max( this.y, v.y );\n\n\t\treturn this;\n\n\t}\n\n\tclamp( min, max ) {\n\n\t\t// assumes min < max, componentwise\n\n\t\tthis.x = Math.max( min.x, Math.min( max.x, this.x ) );\n\t\tthis.y = Math.max( min.y, Math.min( max.y, this.y ) );\n\n\t\treturn this;\n\n\t}\n\n\tclampScalar( minVal, maxVal ) {\n\n\t\tthis.x = Math.max( minVal, Math.min( maxVal, this.x ) );\n\t\tthis.y = Math.max( minVal, Math.min( maxVal, this.y ) );\n\n\t\treturn this;\n\n\t}\n\n\tclampLength( min, max ) {\n\n\t\tconst length = this.length();\n\n\t\treturn this.divideScalar( length || 1 ).multiplyScalar( Math.max( min, Math.min( max, length ) ) );\n\n\t}\n\n\tfloor() {\n\n\t\tthis.x = Math.floor( this.x );\n\t\tthis.y = Math.floor( this.y );\n\n\t\treturn this;\n\n\t}\n\n\tceil() {\n\n\t\tthis.x = Math.ceil( this.x );\n\t\tthis.y = Math.ceil( this.y );\n\n\t\treturn this;\n\n\t}\n\n\tround() {\n\n\t\tthis.x = Math.round( this.x );\n\t\tthis.y = Math.round( this.y );\n\n\t\treturn this;\n\n\t}\n\n\troundToZero() {\n\n\t\tthis.x = ( this.x < 0 ) ? Math.ceil( this.x ) : Math.floor( this.x );\n\t\tthis.y = ( this.y < 0 ) ? Math.ceil( this.y ) : Math.floor( this.y );\n\n\t\treturn this;\n\n\t}\n\n\tnegate() {\n\n\t\tthis.x = - this.x;\n\t\tthis.y = - this.y;\n\n\t\treturn this;\n\n\t}\n\n\tdot( v ) {\n\n\t\treturn this.x * v.x + this.y * v.y;\n\n\t}\n\n\tcross( v ) {\n\n\t\treturn this.x * v.y - this.y * v.x;\n\n\t}\n\n\tlengthSq() {\n\n\t\treturn this.x * this.x + this.y * this.y;\n\n\t}\n\n\tlength() {\n\n\t\treturn Math.sqrt( this.x * this.x + this.y * this.y );\n\n\t}\n\n\tmanhattanLength() {\n\n\t\treturn Math.abs( this.x ) + Math.abs( this.y );\n\n\t}\n\n\tnormalize() {\n\n\t\treturn this.divideScalar( this.length() || 1 );\n\n\t}\n\n\tangle() {\n\n\t\t// computes the angle in radians with respect to the positive x-axis\n\n\t\tconst angle = Math.atan2( - this.y, - this.x ) + Math.PI;\n\n\t\treturn angle;\n\n\t}\n\n\tdistanceTo( v ) {\n\n\t\treturn Math.sqrt( this.distanceToSquared( v ) );\n\n\t}\n\n\tdistanceToSquared( v ) {\n\n\t\tconst dx = this.x - v.x, dy = this.y - v.y;\n\t\treturn dx * dx + dy * dy;\n\n\t}\n\n\tmanhattanDistanceTo( v ) {\n\n\t\treturn Math.abs( this.x - v.x ) + Math.abs( this.y - v.y );\n\n\t}\n\n\tsetLength( length ) {\n\n\t\treturn this.normalize().multiplyScalar( length );\n\n\t}\n\n\tlerp( v, alpha ) {\n\n\t\tthis.x += ( v.x - this.x ) * alpha;\n\t\tthis.y += ( v.y - this.y ) * alpha;\n\n\t\treturn this;\n\n\t}\n\n\tlerpVectors( v1, v2, alpha ) {\n\n\t\tthis.x = v1.x + ( v2.x - v1.x ) * alpha;\n\t\tthis.y = v1.y + ( v2.y - v1.y ) * alpha;\n\n\t\treturn this;\n\n\t}\n\n\tequals( v ) {\n\n\t\treturn ( ( v.x === this.x ) && ( v.y === this.y ) );\n\n\t}\n\n\tfromArray( array, offset = 0 ) {\n\n\t\tthis.x = array[ offset ];\n\t\tthis.y = array[ offset + 1 ];\n\n\t\treturn this;\n\n\t}\n\n\ttoArray( array = [], offset = 0 ) {\n\n\t\tarray[ offset ] = this.x;\n\t\tarray[ offset + 1 ] = this.y;\n\n\t\treturn array;\n\n\t}\n\n\tfromBufferAttribute( attribute, index, offset ) {\n\n\t\tif ( offset !== undefined ) {\n\n\t\t\tconsole.warn( 'THREE.Vector2: offset has been removed from .fromBufferAttribute().' );\n\n\t\t}\n\n\t\tthis.x = attribute.getX( index );\n\t\tthis.y = attribute.getY( index );\n\n\t\treturn this;\n\n\t}\n\n\trotateAround( center, angle ) {\n\n\t\tconst c = Math.cos( angle ), s = Math.sin( angle );\n\n\t\tconst x = this.x - center.x;\n\t\tconst y = this.y - center.y;\n\n\t\tthis.x = x * c - y * s + center.x;\n\t\tthis.y = x * s + y * c + center.y;\n\n\t\treturn this;\n\n\t}\n\n\trandom() {\n\n\t\tthis.x = Math.random();\n\t\tthis.y = Math.random();\n\n\t\treturn this;\n\n\t}\n\n}\n\nclass Matrix3 {\n\n\tconstructor() {\n\n\t\tObject.defineProperty( this, 'isMatrix3', { value: true } );\n\n\t\tthis.elements = [\n\n\t\t\t1, 0, 0,\n\t\t\t0, 1, 0,\n\t\t\t0, 0, 1\n\n\t\t];\n\n\t\tif ( arguments.length > 0 ) {\n\n\t\t\tconsole.error( 'THREE.Matrix3: the constructor no longer reads arguments. use .set() instead.' );\n\n\t\t}\n\n\t}\n\n\tset( n11, n12, n13, n21, n22, n23, n31, n32, n33 ) {\n\n\t\tconst te = this.elements;\n\n\t\tte[ 0 ] = n11; te[ 1 ] = n21; te[ 2 ] = n31;\n\t\tte[ 3 ] = n12; te[ 4 ] = n22; te[ 5 ] = n32;\n\t\tte[ 6 ] = n13; te[ 7 ] = n23; te[ 8 ] = n33;\n\n\t\treturn this;\n\n\t}\n\n\tidentity() {\n\n\t\tthis.set(\n\n\t\t\t1, 0, 0,\n\t\t\t0, 1, 0,\n\t\t\t0, 0, 1\n\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().fromArray( this.elements );\n\n\t}\n\n\tcopy( m ) {\n\n\t\tconst te = this.elements;\n\t\tconst me = m.elements;\n\n\t\tte[ 0 ] = me[ 0 ]; te[ 1 ] = me[ 1 ]; te[ 2 ] = me[ 2 ];\n\t\tte[ 3 ] = me[ 3 ]; te[ 4 ] = me[ 4 ]; te[ 5 ] = me[ 5 ];\n\t\tte[ 6 ] = me[ 6 ]; te[ 7 ] = me[ 7 ]; te[ 8 ] = me[ 8 ];\n\n\t\treturn this;\n\n\t}\n\n\textractBasis( xAxis, yAxis, zAxis ) {\n\n\t\txAxis.setFromMatrix3Column( this, 0 );\n\t\tyAxis.setFromMatrix3Column( this, 1 );\n\t\tzAxis.setFromMatrix3Column( this, 2 );\n\n\t\treturn this;\n\n\t}\n\n\tsetFromMatrix4( m ) {\n\n\t\tconst me = m.elements;\n\n\t\tthis.set(\n\n\t\t\tme[ 0 ], me[ 4 ], me[ 8 ],\n\t\t\tme[ 1 ], me[ 5 ], me[ 9 ],\n\t\t\tme[ 2 ], me[ 6 ], me[ 10 ]\n\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\tmultiply( m ) {\n\n\t\treturn this.multiplyMatrices( this, m );\n\n\t}\n\n\tpremultiply( m ) {\n\n\t\treturn this.multiplyMatrices( m, this );\n\n\t}\n\n\tmultiplyMatrices( a, b ) {\n\n\t\tconst ae = a.elements;\n\t\tconst be = b.elements;\n\t\tconst te = this.elements;\n\n\t\tconst a11 = ae[ 0 ], a12 = ae[ 3 ], a13 = ae[ 6 ];\n\t\tconst a21 = ae[ 1 ], a22 = ae[ 4 ], a23 = ae[ 7 ];\n\t\tconst a31 = ae[ 2 ], a32 = ae[ 5 ], a33 = ae[ 8 ];\n\n\t\tconst b11 = be[ 0 ], b12 = be[ 3 ], b13 = be[ 6 ];\n\t\tconst b21 = be[ 1 ], b22 = be[ 4 ], b23 = be[ 7 ];\n\t\tconst b31 = be[ 2 ], b32 = be[ 5 ], b33 = be[ 8 ];\n\n\t\tte[ 0 ] = a11 * b11 + a12 * b21 + a13 * b31;\n\t\tte[ 3 ] = a11 * b12 + a12 * b22 + a13 * b32;\n\t\tte[ 6 ] = a11 * b13 + a12 * b23 + a13 * b33;\n\n\t\tte[ 1 ] = a21 * b11 + a22 * b21 + a23 * b31;\n\t\tte[ 4 ] = a21 * b12 + a22 * b22 + a23 * b32;\n\t\tte[ 7 ] = a21 * b13 + a22 * b23 + a23 * b33;\n\n\t\tte[ 2 ] = a31 * b11 + a32 * b21 + a33 * b31;\n\t\tte[ 5 ] = a31 * b12 + a32 * b22 + a33 * b32;\n\t\tte[ 8 ] = a31 * b13 + a32 * b23 + a33 * b33;\n\n\t\treturn this;\n\n\t}\n\n\tmultiplyScalar( s ) {\n\n\t\tconst te = this.elements;\n\n\t\tte[ 0 ] *= s; te[ 3 ] *= s; te[ 6 ] *= s;\n\t\tte[ 1 ] *= s; te[ 4 ] *= s; te[ 7 ] *= s;\n\t\tte[ 2 ] *= s; te[ 5 ] *= s; te[ 8 ] *= s;\n\n\t\treturn this;\n\n\t}\n\n\tdeterminant() {\n\n\t\tconst te = this.elements;\n\n\t\tconst a = te[ 0 ], b = te[ 1 ], c = te[ 2 ],\n\t\t\td = te[ 3 ], e = te[ 4 ], f = te[ 5 ],\n\t\t\tg = te[ 6 ], h = te[ 7 ], i = te[ 8 ];\n\n\t\treturn a * e * i - a * f * h - b * d * i + b * f * g + c * d * h - c * e * g;\n\n\t}\n\n\tinvert() {\n\n\t\tconst te = this.elements,\n\n\t\t\tn11 = te[ 0 ], n21 = te[ 1 ], n31 = te[ 2 ],\n\t\t\tn12 = te[ 3 ], n22 = te[ 4 ], n32 = te[ 5 ],\n\t\t\tn13 = te[ 6 ], n23 = te[ 7 ], n33 = te[ 8 ],\n\n\t\t\tt11 = n33 * n22 - n32 * n23,\n\t\t\tt12 = n32 * n13 - n33 * n12,\n\t\t\tt13 = n23 * n12 - n22 * n13,\n\n\t\t\tdet = n11 * t11 + n21 * t12 + n31 * t13;\n\n\t\tif ( det === 0 ) return this.set( 0, 0, 0, 0, 0, 0, 0, 0, 0 );\n\n\t\tconst detInv = 1 / det;\n\n\t\tte[ 0 ] = t11 * detInv;\n\t\tte[ 1 ] = ( n31 * n23 - n33 * n21 ) * detInv;\n\t\tte[ 2 ] = ( n32 * n21 - n31 * n22 ) * detInv;\n\n\t\tte[ 3 ] = t12 * detInv;\n\t\tte[ 4 ] = ( n33 * n11 - n31 * n13 ) * detInv;\n\t\tte[ 5 ] = ( n31 * n12 - n32 * n11 ) * detInv;\n\n\t\tte[ 6 ] = t13 * detInv;\n\t\tte[ 7 ] = ( n21 * n13 - n23 * n11 ) * detInv;\n\t\tte[ 8 ] = ( n22 * n11 - n21 * n12 ) * detInv;\n\n\t\treturn this;\n\n\t}\n\n\ttranspose() {\n\n\t\tlet tmp;\n\t\tconst m = this.elements;\n\n\t\ttmp = m[ 1 ]; m[ 1 ] = m[ 3 ]; m[ 3 ] = tmp;\n\t\ttmp = m[ 2 ]; m[ 2 ] = m[ 6 ]; m[ 6 ] = tmp;\n\t\ttmp = m[ 5 ]; m[ 5 ] = m[ 7 ]; m[ 7 ] = tmp;\n\n\t\treturn this;\n\n\t}\n\n\tgetNormalMatrix( matrix4 ) {\n\n\t\treturn this.setFromMatrix4( matrix4 ).copy( this ).invert().transpose();\n\n\t}\n\n\ttransposeIntoArray( r ) {\n\n\t\tconst m = this.elements;\n\n\t\tr[ 0 ] = m[ 0 ];\n\t\tr[ 1 ] = m[ 3 ];\n\t\tr[ 2 ] = m[ 6 ];\n\t\tr[ 3 ] = m[ 1 ];\n\t\tr[ 4 ] = m[ 4 ];\n\t\tr[ 5 ] = m[ 7 ];\n\t\tr[ 6 ] = m[ 2 ];\n\t\tr[ 7 ] = m[ 5 ];\n\t\tr[ 8 ] = m[ 8 ];\n\n\t\treturn this;\n\n\t}\n\n\tsetUvTransform( tx, ty, sx, sy, rotation, cx, cy ) {\n\n\t\tconst c = Math.cos( rotation );\n\t\tconst s = Math.sin( rotation );\n\n\t\tthis.set(\n\t\t\tsx * c, sx * s, - sx * ( c * cx + s * cy ) + cx + tx,\n\t\t\t- sy * s, sy * c, - sy * ( - s * cx + c * cy ) + cy + ty,\n\t\t\t0, 0, 1\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\tscale( sx, sy ) {\n\n\t\tconst te = this.elements;\n\n\t\tte[ 0 ] *= sx; te[ 3 ] *= sx; te[ 6 ] *= sx;\n\t\tte[ 1 ] *= sy; te[ 4 ] *= sy; te[ 7 ] *= sy;\n\n\t\treturn this;\n\n\t}\n\n\trotate( theta ) {\n\n\t\tconst c = Math.cos( theta );\n\t\tconst s = Math.sin( theta );\n\n\t\tconst te = this.elements;\n\n\t\tconst a11 = te[ 0 ], a12 = te[ 3 ], a13 = te[ 6 ];\n\t\tconst a21 = te[ 1 ], a22 = te[ 4 ], a23 = te[ 7 ];\n\n\t\tte[ 0 ] = c * a11 + s * a21;\n\t\tte[ 3 ] = c * a12 + s * a22;\n\t\tte[ 6 ] = c * a13 + s * a23;\n\n\t\tte[ 1 ] = - s * a11 + c * a21;\n\t\tte[ 4 ] = - s * a12 + c * a22;\n\t\tte[ 7 ] = - s * a13 + c * a23;\n\n\t\treturn this;\n\n\t}\n\n\ttranslate( tx, ty ) {\n\n\t\tconst te = this.elements;\n\n\t\tte[ 0 ] += tx * te[ 2 ]; te[ 3 ] += tx * te[ 5 ]; te[ 6 ] += tx * te[ 8 ];\n\t\tte[ 1 ] += ty * te[ 2 ]; te[ 4 ] += ty * te[ 5 ]; te[ 7 ] += ty * te[ 8 ];\n\n\t\treturn this;\n\n\t}\n\n\tequals( matrix ) {\n\n\t\tconst te = this.elements;\n\t\tconst me = matrix.elements;\n\n\t\tfor ( let i = 0; i < 9; i ++ ) {\n\n\t\t\tif ( te[ i ] !== me[ i ] ) return false;\n\n\t\t}\n\n\t\treturn true;\n\n\t}\n\n\tfromArray( array, offset = 0 ) {\n\n\t\tfor ( let i = 0; i < 9; i ++ ) {\n\n\t\t\tthis.elements[ i ] = array[ i + offset ];\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\ttoArray( array = [], offset = 0 ) {\n\n\t\tconst te = this.elements;\n\n\t\tarray[ offset ] = te[ 0 ];\n\t\tarray[ offset + 1 ] = te[ 1 ];\n\t\tarray[ offset + 2 ] = te[ 2 ];\n\n\t\tarray[ offset + 3 ] = te[ 3 ];\n\t\tarray[ offset + 4 ] = te[ 4 ];\n\t\tarray[ offset + 5 ] = te[ 5 ];\n\n\t\tarray[ offset + 6 ] = te[ 6 ];\n\t\tarray[ offset + 7 ] = te[ 7 ];\n\t\tarray[ offset + 8 ] = te[ 8 ];\n\n\t\treturn array;\n\n\t}\n\n}\n\nlet _canvas;\n\nconst ImageUtils = {\n\n\tgetDataURL: function ( image ) {\n\n\t\tif ( /^data:/i.test( image.src ) ) {\n\n\t\t\treturn image.src;\n\n\t\t}\n\n\t\tif ( typeof HTMLCanvasElement == 'undefined' ) {\n\n\t\t\treturn image.src;\n\n\t\t}\n\n\t\tlet canvas;\n\n\t\tif ( image instanceof HTMLCanvasElement ) {\n\n\t\t\tcanvas = image;\n\n\t\t} else {\n\n\t\t\tif ( _canvas === undefined ) _canvas = document.createElementNS( 'http://www.w3.org/1999/xhtml', 'canvas' );\n\n\t\t\t_canvas.width = image.width;\n\t\t\t_canvas.height = image.height;\n\n\t\t\tconst context = _canvas.getContext( '2d' );\n\n\t\t\tif ( image instanceof ImageData ) {\n\n\t\t\t\tcontext.putImageData( image, 0, 0 );\n\n\t\t\t} else {\n\n\t\t\t\tcontext.drawImage( image, 0, 0, image.width, image.height );\n\n\t\t\t}\n\n\t\t\tcanvas = _canvas;\n\n\t\t}\n\n\t\tif ( canvas.width > 2048 || canvas.height > 2048 ) {\n\n\t\t\treturn canvas.toDataURL( 'image/jpeg', 0.6 );\n\n\t\t} else {\n\n\t\t\treturn canvas.toDataURL( 'image/png' );\n\n\t\t}\n\n\t}\n\n};\n\nlet textureId = 0;\n\nfunction Texture( image = Texture.DEFAULT_IMAGE, mapping = Texture.DEFAULT_MAPPING, wrapS = ClampToEdgeWrapping, wrapT = ClampToEdgeWrapping, magFilter = LinearFilter, minFilter = LinearMipmapLinearFilter, format = RGBAFormat, type = UnsignedByteType, anisotropy = 1, encoding = LinearEncoding ) {\n\n\tObject.defineProperty( this, 'id', { value: textureId ++ } );\n\n\tthis.uuid = MathUtils.generateUUID();\n\n\tthis.name = '';\n\n\tthis.image = image;\n\tthis.mipmaps = [];\n\n\tthis.mapping = mapping;\n\n\tthis.wrapS = wrapS;\n\tthis.wrapT = wrapT;\n\n\tthis.magFilter = magFilter;\n\tthis.minFilter = minFilter;\n\n\tthis.anisotropy = anisotropy;\n\n\tthis.format = format;\n\tthis.internalFormat = null;\n\tthis.type = type;\n\n\tthis.offset = new Vector2( 0, 0 );\n\tthis.repeat = new Vector2( 1, 1 );\n\tthis.center = new Vector2( 0, 0 );\n\tthis.rotation = 0;\n\n\tthis.matrixAutoUpdate = true;\n\tthis.matrix = new Matrix3();\n\n\tthis.generateMipmaps = true;\n\tthis.premultiplyAlpha = false;\n\tthis.flipY = true;\n\tthis.unpackAlignment = 4;\t// valid values: 1, 2, 4, 8 (see http://www.khronos.org/opengles/sdk/docs/man/xhtml/glPixelStorei.xml)\n\n\t// Values of encoding !== THREE.LinearEncoding only supported on map, envMap and emissiveMap.\n\t//\n\t// Also changing the encoding after already used by a Material will not automatically make the Material\n\t// update. You need to explicitly call Material.needsUpdate to trigger it to recompile.\n\tthis.encoding = encoding;\n\n\tthis.version = 0;\n\tthis.onUpdate = null;\n\n}\n\nTexture.DEFAULT_IMAGE = undefined;\nTexture.DEFAULT_MAPPING = UVMapping;\n\nTexture.prototype = Object.assign( Object.create( EventDispatcher.prototype ), {\n\n\tconstructor: Texture,\n\n\tisTexture: true,\n\n\tupdateMatrix: function () {\n\n\t\tthis.matrix.setUvTransform( this.offset.x, this.offset.y, this.repeat.x, this.repeat.y, this.rotation, this.center.x, this.center.y );\n\n\t},\n\n\tclone: function () {\n\n\t\treturn new this.constructor().copy( this );\n\n\t},\n\n\tcopy: function ( source ) {\n\n\t\tthis.name = source.name;\n\n\t\tthis.image = source.image;\n\t\tthis.mipmaps = source.mipmaps.slice( 0 );\n\n\t\tthis.mapping = source.mapping;\n\n\t\tthis.wrapS = source.wrapS;\n\t\tthis.wrapT = source.wrapT;\n\n\t\tthis.magFilter = source.magFilter;\n\t\tthis.minFilter = source.minFilter;\n\n\t\tthis.anisotropy = source.anisotropy;\n\n\t\tthis.format = source.format;\n\t\tthis.internalFormat = source.internalFormat;\n\t\tthis.type = source.type;\n\n\t\tthis.offset.copy( source.offset );\n\t\tthis.repeat.copy( source.repeat );\n\t\tthis.center.copy( source.center );\n\t\tthis.rotation = source.rotation;\n\n\t\tthis.matrixAutoUpdate = source.matrixAutoUpdate;\n\t\tthis.matrix.copy( source.matrix );\n\n\t\tthis.generateMipmaps = source.generateMipmaps;\n\t\tthis.premultiplyAlpha = source.premultiplyAlpha;\n\t\tthis.flipY = source.flipY;\n\t\tthis.unpackAlignment = source.unpackAlignment;\n\t\tthis.encoding = source.encoding;\n\n\t\treturn this;\n\n\t},\n\n\ttoJSON: function ( meta ) {\n\n\t\tconst isRootObject = ( meta === undefined || typeof meta === 'string' );\n\n\t\tif ( ! isRootObject && meta.textures[ this.uuid ] !== undefined ) {\n\n\t\t\treturn meta.textures[ this.uuid ];\n\n\t\t}\n\n\t\tconst output = {\n\n\t\t\tmetadata: {\n\t\t\t\tversion: 4.5,\n\t\t\t\ttype: 'Texture',\n\t\t\t\tgenerator: 'Texture.toJSON'\n\t\t\t},\n\n\t\t\tuuid: this.uuid,\n\t\t\tname: this.name,\n\n\t\t\tmapping: this.mapping,\n\n\t\t\trepeat: [ this.repeat.x, this.repeat.y ],\n\t\t\toffset: [ this.offset.x, this.offset.y ],\n\t\t\tcenter: [ this.center.x, this.center.y ],\n\t\t\trotation: this.rotation,\n\n\t\t\twrap: [ this.wrapS, this.wrapT ],\n\n\t\t\tformat: this.format,\n\t\t\ttype: this.type,\n\t\t\tencoding: this.encoding,\n\n\t\t\tminFilter: this.minFilter,\n\t\t\tmagFilter: this.magFilter,\n\t\t\tanisotropy: this.anisotropy,\n\n\t\t\tflipY: this.flipY,\n\n\t\t\tpremultiplyAlpha: this.premultiplyAlpha,\n\t\t\tunpackAlignment: this.unpackAlignment\n\n\t\t};\n\n\t\tif ( this.image !== undefined ) {\n\n\t\t\t// TODO: Move to THREE.Image\n\n\t\t\tconst image = this.image;\n\n\t\t\tif ( image.uuid === undefined ) {\n\n\t\t\t\timage.uuid = MathUtils.generateUUID(); // UGH\n\n\t\t\t}\n\n\t\t\tif ( ! isRootObject && meta.images[ image.uuid ] === undefined ) {\n\n\t\t\t\tlet url;\n\n\t\t\t\tif ( Array.isArray( image ) ) {\n\n\t\t\t\t\t// process array of images e.g. CubeTexture\n\n\t\t\t\t\turl = [];\n\n\t\t\t\t\tfor ( let i = 0, l = image.length; i < l; i ++ ) {\n\n\t\t\t\t\t\t// check cube texture with data textures\n\n\t\t\t\t\t\tif ( image[ i ].isDataTexture ) {\n\n\t\t\t\t\t\t\turl.push( serializeImage( image[ i ].image ) );\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\turl.push( serializeImage( image[ i ] ) );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// process single image\n\n\t\t\t\t\turl = serializeImage( image );\n\n\t\t\t\t}\n\n\t\t\t\tmeta.images[ image.uuid ] = {\n\t\t\t\t\tuuid: image.uuid,\n\t\t\t\t\turl: url\n\t\t\t\t};\n\n\t\t\t}\n\n\t\t\toutput.image = image.uuid;\n\n\t\t}\n\n\t\tif ( ! isRootObject ) {\n\n\t\t\tmeta.textures[ this.uuid ] = output;\n\n\t\t}\n\n\t\treturn output;\n\n\t},\n\n\tdispose: function () {\n\n\t\tthis.dispatchEvent( { type: 'dispose' } );\n\n\t},\n\n\ttransformUv: function ( uv ) {\n\n\t\tif ( this.mapping !== UVMapping ) return uv;\n\n\t\tuv.applyMatrix3( this.matrix );\n\n\t\tif ( uv.x < 0 || uv.x > 1 ) {\n\n\t\t\tswitch ( this.wrapS ) {\n\n\t\t\t\tcase RepeatWrapping:\n\n\t\t\t\t\tuv.x = uv.x - Math.floor( uv.x );\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase ClampToEdgeWrapping:\n\n\t\t\t\t\tuv.x = uv.x < 0 ? 0 : 1;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase MirroredRepeatWrapping:\n\n\t\t\t\t\tif ( Math.abs( Math.floor( uv.x ) % 2 ) === 1 ) {\n\n\t\t\t\t\t\tuv.x = Math.ceil( uv.x ) - uv.x;\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tuv.x = uv.x - Math.floor( uv.x );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( uv.y < 0 || uv.y > 1 ) {\n\n\t\t\tswitch ( this.wrapT ) {\n\n\t\t\t\tcase RepeatWrapping:\n\n\t\t\t\t\tuv.y = uv.y - Math.floor( uv.y );\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase ClampToEdgeWrapping:\n\n\t\t\t\t\tuv.y = uv.y < 0 ? 0 : 1;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase MirroredRepeatWrapping:\n\n\t\t\t\t\tif ( Math.abs( Math.floor( uv.y ) % 2 ) === 1 ) {\n\n\t\t\t\t\t\tuv.y = Math.ceil( uv.y ) - uv.y;\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tuv.y = uv.y - Math.floor( uv.y );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( this.flipY ) {\n\n\t\t\tuv.y = 1 - uv.y;\n\n\t\t}\n\n\t\treturn uv;\n\n\t}\n\n} );\n\nObject.defineProperty( Texture.prototype, 'needsUpdate', {\n\n\tset: function ( value ) {\n\n\t\tif ( value === true ) this.version ++;\n\n\t}\n\n} );\n\nfunction serializeImage( image ) {\n\n\tif ( ( typeof HTMLImageElement !== 'undefined' && image instanceof HTMLImageElement ) ||\n\t\t( typeof HTMLCanvasElement !== 'undefined' && image instanceof HTMLCanvasElement ) ||\n\t\t( typeof ImageBitmap !== 'undefined' && image instanceof ImageBitmap ) ) {\n\n\t\t// default images\n\n\t\treturn ImageUtils.getDataURL( image );\n\n\t} else {\n\n\t\tif ( image.data ) {\n\n\t\t\t// images of DataTexture\n\n\t\t\treturn {\n\t\t\t\tdata: Array.prototype.slice.call( image.data ),\n\t\t\t\twidth: image.width,\n\t\t\t\theight: image.height,\n\t\t\t\ttype: image.data.constructor.name\n\t\t\t};\n\n\t\t} else {\n\n\t\t\tconsole.warn( 'THREE.Texture: Unable to serialize Texture.' );\n\t\t\treturn {};\n\n\t\t}\n\n\t}\n\n}\n\nclass Vector4 {\n\n\tconstructor( x = 0, y = 0, z = 0, w = 1 ) {\n\n\t\tObject.defineProperty( this, 'isVector4', { value: true } );\n\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t\tthis.z = z;\n\t\tthis.w = w;\n\n\t}\n\n\tget width() {\n\n\t\treturn this.z;\n\n\t}\n\n\tset width( value ) {\n\n\t\tthis.z = value;\n\n\t}\n\n\tget height() {\n\n\t\treturn this.w;\n\n\t}\n\n\tset height( value ) {\n\n\t\tthis.w = value;\n\n\t}\n\n\tset( x, y, z, w ) {\n\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t\tthis.z = z;\n\t\tthis.w = w;\n\n\t\treturn this;\n\n\t}\n\n\tsetScalar( scalar ) {\n\n\t\tthis.x = scalar;\n\t\tthis.y = scalar;\n\t\tthis.z = scalar;\n\t\tthis.w = scalar;\n\n\t\treturn this;\n\n\t}\n\n\tsetX( x ) {\n\n\t\tthis.x = x;\n\n\t\treturn this;\n\n\t}\n\n\tsetY( y ) {\n\n\t\tthis.y = y;\n\n\t\treturn this;\n\n\t}\n\n\tsetZ( z ) {\n\n\t\tthis.z = z;\n\n\t\treturn this;\n\n\t}\n\n\tsetW( w ) {\n\n\t\tthis.w = w;\n\n\t\treturn this;\n\n\t}\n\n\tsetComponent( index, value ) {\n\n\t\tswitch ( index ) {\n\n\t\t\tcase 0: this.x = value; break;\n\t\t\tcase 1: this.y = value; break;\n\t\t\tcase 2: this.z = value; break;\n\t\t\tcase 3: this.w = value; break;\n\t\t\tdefault: throw new Error( 'index is out of range: ' + index );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tgetComponent( index ) {\n\n\t\tswitch ( index ) {\n\n\t\t\tcase 0: return this.x;\n\t\t\tcase 1: return this.y;\n\t\t\tcase 2: return this.z;\n\t\t\tcase 3: return this.w;\n\t\t\tdefault: throw new Error( 'index is out of range: ' + index );\n\n\t\t}\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor( this.x, this.y, this.z, this.w );\n\n\t}\n\n\tcopy( v ) {\n\n\t\tthis.x = v.x;\n\t\tthis.y = v.y;\n\t\tthis.z = v.z;\n\t\tthis.w = ( v.w !== undefined ) ? v.w : 1;\n\n\t\treturn this;\n\n\t}\n\n\tadd( v, w ) {\n\n\t\tif ( w !== undefined ) {\n\n\t\t\tconsole.warn( 'THREE.Vector4: .add() now only accepts one argument. Use .addVectors( a, b ) instead.' );\n\t\t\treturn this.addVectors( v, w );\n\n\t\t}\n\n\t\tthis.x += v.x;\n\t\tthis.y += v.y;\n\t\tthis.z += v.z;\n\t\tthis.w += v.w;\n\n\t\treturn this;\n\n\t}\n\n\taddScalar( s ) {\n\n\t\tthis.x += s;\n\t\tthis.y += s;\n\t\tthis.z += s;\n\t\tthis.w += s;\n\n\t\treturn this;\n\n\t}\n\n\taddVectors( a, b ) {\n\n\t\tthis.x = a.x + b.x;\n\t\tthis.y = a.y + b.y;\n\t\tthis.z = a.z + b.z;\n\t\tthis.w = a.w + b.w;\n\n\t\treturn this;\n\n\t}\n\n\taddScaledVector( v, s ) {\n\n\t\tthis.x += v.x * s;\n\t\tthis.y += v.y * s;\n\t\tthis.z += v.z * s;\n\t\tthis.w += v.w * s;\n\n\t\treturn this;\n\n\t}\n\n\tsub( v, w ) {\n\n\t\tif ( w !== undefined ) {\n\n\t\t\tconsole.warn( 'THREE.Vector4: .sub() now only accepts one argument. Use .subVectors( a, b ) instead.' );\n\t\t\treturn this.subVectors( v, w );\n\n\t\t}\n\n\t\tthis.x -= v.x;\n\t\tthis.y -= v.y;\n\t\tthis.z -= v.z;\n\t\tthis.w -= v.w;\n\n\t\treturn this;\n\n\t}\n\n\tsubScalar( s ) {\n\n\t\tthis.x -= s;\n\t\tthis.y -= s;\n\t\tthis.z -= s;\n\t\tthis.w -= s;\n\n\t\treturn this;\n\n\t}\n\n\tsubVectors( a, b ) {\n\n\t\tthis.x = a.x - b.x;\n\t\tthis.y = a.y - b.y;\n\t\tthis.z = a.z - b.z;\n\t\tthis.w = a.w - b.w;\n\n\t\treturn this;\n\n\t}\n\n\tmultiply( v ) {\n\n\t\tthis.x *= v.x;\n\t\tthis.y *= v.y;\n\t\tthis.z *= v.z;\n\t\tthis.w *= v.w;\n\n\t\treturn this;\n\n\t}\n\n\tmultiplyScalar( scalar ) {\n\n\t\tthis.x *= scalar;\n\t\tthis.y *= scalar;\n\t\tthis.z *= scalar;\n\t\tthis.w *= scalar;\n\n\t\treturn this;\n\n\t}\n\n\tapplyMatrix4( m ) {\n\n\t\tconst x = this.x, y = this.y, z = this.z, w = this.w;\n\t\tconst e = m.elements;\n\n\t\tthis.x = e[ 0 ] * x + e[ 4 ] * y + e[ 8 ] * z + e[ 12 ] * w;\n\t\tthis.y = e[ 1 ] * x + e[ 5 ] * y + e[ 9 ] * z + e[ 13 ] * w;\n\t\tthis.z = e[ 2 ] * x + e[ 6 ] * y + e[ 10 ] * z + e[ 14 ] * w;\n\t\tthis.w = e[ 3 ] * x + e[ 7 ] * y + e[ 11 ] * z + e[ 15 ] * w;\n\n\t\treturn this;\n\n\t}\n\n\tdivideScalar( scalar ) {\n\n\t\treturn this.multiplyScalar( 1 / scalar );\n\n\t}\n\n\tsetAxisAngleFromQuaternion( q ) {\n\n\t\t// http://www.euclideanspace.com/maths/geometry/rotations/conversions/quaternionToAngle/index.htm\n\n\t\t// q is assumed to be normalized\n\n\t\tthis.w = 2 * Math.acos( q.w );\n\n\t\tconst s = Math.sqrt( 1 - q.w * q.w );\n\n\t\tif ( s < 0.0001 ) {\n\n\t\t\tthis.x = 1;\n\t\t\tthis.y = 0;\n\t\t\tthis.z = 0;\n\n\t\t} else {\n\n\t\t\tthis.x = q.x / s;\n\t\t\tthis.y = q.y / s;\n\t\t\tthis.z = q.z / s;\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tsetAxisAngleFromRotationMatrix( m ) {\n\n\t\t// http://www.euclideanspace.com/maths/geometry/rotations/conversions/matrixToAngle/index.htm\n\n\t\t// assumes the upper 3x3 of m is a pure rotation matrix (i.e, unscaled)\n\n\t\tlet angle, x, y, z; // variables for result\n\t\tconst epsilon = 0.01,\t\t// margin to allow for rounding errors\n\t\t\tepsilon2 = 0.1,\t\t// margin to distinguish between 0 and 180 degrees\n\n\t\t\tte = m.elements,\n\n\t\t\tm11 = te[ 0 ], m12 = te[ 4 ], m13 = te[ 8 ],\n\t\t\tm21 = te[ 1 ], m22 = te[ 5 ], m23 = te[ 9 ],\n\t\t\tm31 = te[ 2 ], m32 = te[ 6 ], m33 = te[ 10 ];\n\n\t\tif ( ( Math.abs( m12 - m21 ) < epsilon ) &&\n\t\t ( Math.abs( m13 - m31 ) < epsilon ) &&\n\t\t ( Math.abs( m23 - m32 ) < epsilon ) ) {\n\n\t\t\t// singularity found\n\t\t\t// first check for identity matrix which must have +1 for all terms\n\t\t\t// in leading diagonal and zero in other terms\n\n\t\t\tif ( ( Math.abs( m12 + m21 ) < epsilon2 ) &&\n\t\t\t ( Math.abs( m13 + m31 ) < epsilon2 ) &&\n\t\t\t ( Math.abs( m23 + m32 ) < epsilon2 ) &&\n\t\t\t ( Math.abs( m11 + m22 + m33 - 3 ) < epsilon2 ) ) {\n\n\t\t\t\t// this singularity is identity matrix so angle = 0\n\n\t\t\t\tthis.set( 1, 0, 0, 0 );\n\n\t\t\t\treturn this; // zero angle, arbitrary axis\n\n\t\t\t}\n\n\t\t\t// otherwise this singularity is angle = 180\n\n\t\t\tangle = Math.PI;\n\n\t\t\tconst xx = ( m11 + 1 ) / 2;\n\t\t\tconst yy = ( m22 + 1 ) / 2;\n\t\t\tconst zz = ( m33 + 1 ) / 2;\n\t\t\tconst xy = ( m12 + m21 ) / 4;\n\t\t\tconst xz = ( m13 + m31 ) / 4;\n\t\t\tconst yz = ( m23 + m32 ) / 4;\n\n\t\t\tif ( ( xx > yy ) && ( xx > zz ) ) {\n\n\t\t\t\t// m11 is the largest diagonal term\n\n\t\t\t\tif ( xx < epsilon ) {\n\n\t\t\t\t\tx = 0;\n\t\t\t\t\ty = 0.707106781;\n\t\t\t\t\tz = 0.707106781;\n\n\t\t\t\t} else {\n\n\t\t\t\t\tx = Math.sqrt( xx );\n\t\t\t\t\ty = xy / x;\n\t\t\t\t\tz = xz / x;\n\n\t\t\t\t}\n\n\t\t\t} else if ( yy > zz ) {\n\n\t\t\t\t// m22 is the largest diagonal term\n\n\t\t\t\tif ( yy < epsilon ) {\n\n\t\t\t\t\tx = 0.707106781;\n\t\t\t\t\ty = 0;\n\t\t\t\t\tz = 0.707106781;\n\n\t\t\t\t} else {\n\n\t\t\t\t\ty = Math.sqrt( yy );\n\t\t\t\t\tx = xy / y;\n\t\t\t\t\tz = yz / y;\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\t// m33 is the largest diagonal term so base result on this\n\n\t\t\t\tif ( zz < epsilon ) {\n\n\t\t\t\t\tx = 0.707106781;\n\t\t\t\t\ty = 0.707106781;\n\t\t\t\t\tz = 0;\n\n\t\t\t\t} else {\n\n\t\t\t\t\tz = Math.sqrt( zz );\n\t\t\t\t\tx = xz / z;\n\t\t\t\t\ty = yz / z;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tthis.set( x, y, z, angle );\n\n\t\t\treturn this; // return 180 deg rotation\n\n\t\t}\n\n\t\t// as we have reached here there are no singularities so we can handle normally\n\n\t\tlet s = Math.sqrt( ( m32 - m23 ) * ( m32 - m23 ) +\n\t\t\t( m13 - m31 ) * ( m13 - m31 ) +\n\t\t\t( m21 - m12 ) * ( m21 - m12 ) ); // used to normalize\n\n\t\tif ( Math.abs( s ) < 0.001 ) s = 1;\n\n\t\t// prevent divide by zero, should not happen if matrix is orthogonal and should be\n\t\t// caught by singularity test above, but I've left it in just in case\n\n\t\tthis.x = ( m32 - m23 ) / s;\n\t\tthis.y = ( m13 - m31 ) / s;\n\t\tthis.z = ( m21 - m12 ) / s;\n\t\tthis.w = Math.acos( ( m11 + m22 + m33 - 1 ) / 2 );\n\n\t\treturn this;\n\n\t}\n\n\tmin( v ) {\n\n\t\tthis.x = Math.min( this.x, v.x );\n\t\tthis.y = Math.min( this.y, v.y );\n\t\tthis.z = Math.min( this.z, v.z );\n\t\tthis.w = Math.min( this.w, v.w );\n\n\t\treturn this;\n\n\t}\n\n\tmax( v ) {\n\n\t\tthis.x = Math.max( this.x, v.x );\n\t\tthis.y = Math.max( this.y, v.y );\n\t\tthis.z = Math.max( this.z, v.z );\n\t\tthis.w = Math.max( this.w, v.w );\n\n\t\treturn this;\n\n\t}\n\n\tclamp( min, max ) {\n\n\t\t// assumes min < max, componentwise\n\n\t\tthis.x = Math.max( min.x, Math.min( max.x, this.x ) );\n\t\tthis.y = Math.max( min.y, Math.min( max.y, this.y ) );\n\t\tthis.z = Math.max( min.z, Math.min( max.z, this.z ) );\n\t\tthis.w = Math.max( min.w, Math.min( max.w, this.w ) );\n\n\t\treturn this;\n\n\t}\n\n\tclampScalar( minVal, maxVal ) {\n\n\t\tthis.x = Math.max( minVal, Math.min( maxVal, this.x ) );\n\t\tthis.y = Math.max( minVal, Math.min( maxVal, this.y ) );\n\t\tthis.z = Math.max( minVal, Math.min( maxVal, this.z ) );\n\t\tthis.w = Math.max( minVal, Math.min( maxVal, this.w ) );\n\n\t\treturn this;\n\n\t}\n\n\tclampLength( min, max ) {\n\n\t\tconst length = this.length();\n\n\t\treturn this.divideScalar( length || 1 ).multiplyScalar( Math.max( min, Math.min( max, length ) ) );\n\n\t}\n\n\tfloor() {\n\n\t\tthis.x = Math.floor( this.x );\n\t\tthis.y = Math.floor( this.y );\n\t\tthis.z = Math.floor( this.z );\n\t\tthis.w = Math.floor( this.w );\n\n\t\treturn this;\n\n\t}\n\n\tceil() {\n\n\t\tthis.x = Math.ceil( this.x );\n\t\tthis.y = Math.ceil( this.y );\n\t\tthis.z = Math.ceil( this.z );\n\t\tthis.w = Math.ceil( this.w );\n\n\t\treturn this;\n\n\t}\n\n\tround() {\n\n\t\tthis.x = Math.round( this.x );\n\t\tthis.y = Math.round( this.y );\n\t\tthis.z = Math.round( this.z );\n\t\tthis.w = Math.round( this.w );\n\n\t\treturn this;\n\n\t}\n\n\troundToZero() {\n\n\t\tthis.x = ( this.x < 0 ) ? Math.ceil( this.x ) : Math.floor( this.x );\n\t\tthis.y = ( this.y < 0 ) ? Math.ceil( this.y ) : Math.floor( this.y );\n\t\tthis.z = ( this.z < 0 ) ? Math.ceil( this.z ) : Math.floor( this.z );\n\t\tthis.w = ( this.w < 0 ) ? Math.ceil( this.w ) : Math.floor( this.w );\n\n\t\treturn this;\n\n\t}\n\n\tnegate() {\n\n\t\tthis.x = - this.x;\n\t\tthis.y = - this.y;\n\t\tthis.z = - this.z;\n\t\tthis.w = - this.w;\n\n\t\treturn this;\n\n\t}\n\n\tdot( v ) {\n\n\t\treturn this.x * v.x + this.y * v.y + this.z * v.z + this.w * v.w;\n\n\t}\n\n\tlengthSq() {\n\n\t\treturn this.x * this.x + this.y * this.y + this.z * this.z + this.w * this.w;\n\n\t}\n\n\tlength() {\n\n\t\treturn Math.sqrt( this.x * this.x + this.y * this.y + this.z * this.z + this.w * this.w );\n\n\t}\n\n\tmanhattanLength() {\n\n\t\treturn Math.abs( this.x ) + Math.abs( this.y ) + Math.abs( this.z ) + Math.abs( this.w );\n\n\t}\n\n\tnormalize() {\n\n\t\treturn this.divideScalar( this.length() || 1 );\n\n\t}\n\n\tsetLength( length ) {\n\n\t\treturn this.normalize().multiplyScalar( length );\n\n\t}\n\n\tlerp( v, alpha ) {\n\n\t\tthis.x += ( v.x - this.x ) * alpha;\n\t\tthis.y += ( v.y - this.y ) * alpha;\n\t\tthis.z += ( v.z - this.z ) * alpha;\n\t\tthis.w += ( v.w - this.w ) * alpha;\n\n\t\treturn this;\n\n\t}\n\n\tlerpVectors( v1, v2, alpha ) {\n\n\t\tthis.x = v1.x + ( v2.x - v1.x ) * alpha;\n\t\tthis.y = v1.y + ( v2.y - v1.y ) * alpha;\n\t\tthis.z = v1.z + ( v2.z - v1.z ) * alpha;\n\t\tthis.w = v1.w + ( v2.w - v1.w ) * alpha;\n\n\t\treturn this;\n\n\t}\n\n\tequals( v ) {\n\n\t\treturn ( ( v.x === this.x ) && ( v.y === this.y ) && ( v.z === this.z ) && ( v.w === this.w ) );\n\n\t}\n\n\tfromArray( array, offset = 0 ) {\n\n\t\tthis.x = array[ offset ];\n\t\tthis.y = array[ offset + 1 ];\n\t\tthis.z = array[ offset + 2 ];\n\t\tthis.w = array[ offset + 3 ];\n\n\t\treturn this;\n\n\t}\n\n\ttoArray( array = [], offset = 0 ) {\n\n\t\tarray[ offset ] = this.x;\n\t\tarray[ offset + 1 ] = this.y;\n\t\tarray[ offset + 2 ] = this.z;\n\t\tarray[ offset + 3 ] = this.w;\n\n\t\treturn array;\n\n\t}\n\n\tfromBufferAttribute( attribute, index, offset ) {\n\n\t\tif ( offset !== undefined ) {\n\n\t\t\tconsole.warn( 'THREE.Vector4: offset has been removed from .fromBufferAttribute().' );\n\n\t\t}\n\n\t\tthis.x = attribute.getX( index );\n\t\tthis.y = attribute.getY( index );\n\t\tthis.z = attribute.getZ( index );\n\t\tthis.w = attribute.getW( index );\n\n\t\treturn this;\n\n\t}\n\n\trandom() {\n\n\t\tthis.x = Math.random();\n\t\tthis.y = Math.random();\n\t\tthis.z = Math.random();\n\t\tthis.w = Math.random();\n\n\t\treturn this;\n\n\t}\n\n}\n\n/*\n In options, we can specify:\n * Texture parameters for an auto-generated target texture\n * depthBuffer/stencilBuffer: Booleans to indicate if we should generate these buffers\n*/\nclass WebGLRenderTarget extends EventDispatcher {\n\n\tconstructor( width, height, options ) {\n\n\t\tsuper();\n\n\t\tObject.defineProperty( this, 'isWebGLRenderTarget', { value: true } );\n\n\t\tthis.width = width;\n\t\tthis.height = height;\n\n\t\tthis.scissor = new Vector4( 0, 0, width, height );\n\t\tthis.scissorTest = false;\n\n\t\tthis.viewport = new Vector4( 0, 0, width, height );\n\n\t\toptions = options || {};\n\n\t\tthis.texture = new Texture( undefined, options.mapping, options.wrapS, options.wrapT, options.magFilter, options.minFilter, options.format, options.type, options.anisotropy, options.encoding );\n\n\t\tthis.texture.image = {};\n\t\tthis.texture.image.width = width;\n\t\tthis.texture.image.height = height;\n\n\t\tthis.texture.generateMipmaps = options.generateMipmaps !== undefined ? options.generateMipmaps : false;\n\t\tthis.texture.minFilter = options.minFilter !== undefined ? options.minFilter : LinearFilter;\n\n\t\tthis.depthBuffer = options.depthBuffer !== undefined ? options.depthBuffer : true;\n\t\tthis.stencilBuffer = options.stencilBuffer !== undefined ? options.stencilBuffer : false;\n\t\tthis.depthTexture = options.depthTexture !== undefined ? options.depthTexture : null;\n\n\t}\n\n\tsetSize( width, height ) {\n\n\t\tif ( this.width !== width || this.height !== height ) {\n\n\t\t\tthis.width = width;\n\t\t\tthis.height = height;\n\n\t\t\tthis.texture.image.width = width;\n\t\t\tthis.texture.image.height = height;\n\n\t\t\tthis.dispose();\n\n\t\t}\n\n\t\tthis.viewport.set( 0, 0, width, height );\n\t\tthis.scissor.set( 0, 0, width, height );\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tthis.width = source.width;\n\t\tthis.height = source.height;\n\n\t\tthis.viewport.copy( source.viewport );\n\n\t\tthis.texture = source.texture.clone();\n\n\t\tthis.depthBuffer = source.depthBuffer;\n\t\tthis.stencilBuffer = source.stencilBuffer;\n\t\tthis.depthTexture = source.depthTexture;\n\n\t\treturn this;\n\n\t}\n\n\tdispose() {\n\n\t\tthis.dispatchEvent( { type: 'dispose' } );\n\n\t}\n\n}\n\nclass WebGLMultisampleRenderTarget extends WebGLRenderTarget {\n\n\tconstructor( width, height, options ) {\n\n\t\tsuper( width, height, options );\n\n\t\tObject.defineProperty( this, 'isWebGLMultisampleRenderTarget', { value: true } );\n\n\t\tthis.samples = 4;\n\n\t}\n\n\tcopy( source ) {\n\n\t\tsuper.copy.call( this, source );\n\n\t\tthis.samples = source.samples;\n\n\t\treturn this;\n\n\t}\n\n}\n\nclass Quaternion {\n\n\tconstructor( x = 0, y = 0, z = 0, w = 1 ) {\n\n\t\tObject.defineProperty( this, 'isQuaternion', { value: true } );\n\n\t\tthis._x = x;\n\t\tthis._y = y;\n\t\tthis._z = z;\n\t\tthis._w = w;\n\n\t}\n\n\tstatic slerp( qa, qb, qm, t ) {\n\n\t\treturn qm.copy( qa ).slerp( qb, t );\n\n\t}\n\n\tstatic slerpFlat( dst, dstOffset, src0, srcOffset0, src1, srcOffset1, t ) {\n\n\t\t// fuzz-free, array-based Quaternion SLERP operation\n\n\t\tlet x0 = src0[ srcOffset0 + 0 ],\n\t\t\ty0 = src0[ srcOffset0 + 1 ],\n\t\t\tz0 = src0[ srcOffset0 + 2 ],\n\t\t\tw0 = src0[ srcOffset0 + 3 ];\n\n\t\tconst x1 = src1[ srcOffset1 + 0 ],\n\t\t\ty1 = src1[ srcOffset1 + 1 ],\n\t\t\tz1 = src1[ srcOffset1 + 2 ],\n\t\t\tw1 = src1[ srcOffset1 + 3 ];\n\n\t\tif ( w0 !== w1 || x0 !== x1 || y0 !== y1 || z0 !== z1 ) {\n\n\t\t\tlet s = 1 - t;\n\t\t\tconst cos = x0 * x1 + y0 * y1 + z0 * z1 + w0 * w1,\n\t\t\t\tdir = ( cos >= 0 ? 1 : - 1 ),\n\t\t\t\tsqrSin = 1 - cos * cos;\n\n\t\t\t// Skip the Slerp for tiny steps to avoid numeric problems:\n\t\t\tif ( sqrSin > Number.EPSILON ) {\n\n\t\t\t\tconst sin = Math.sqrt( sqrSin ),\n\t\t\t\t\tlen = Math.atan2( sin, cos * dir );\n\n\t\t\t\ts = Math.sin( s * len ) / sin;\n\t\t\t\tt = Math.sin( t * len ) / sin;\n\n\t\t\t}\n\n\t\t\tconst tDir = t * dir;\n\n\t\t\tx0 = x0 * s + x1 * tDir;\n\t\t\ty0 = y0 * s + y1 * tDir;\n\t\t\tz0 = z0 * s + z1 * tDir;\n\t\t\tw0 = w0 * s + w1 * tDir;\n\n\t\t\t// Normalize in case we just did a lerp:\n\t\t\tif ( s === 1 - t ) {\n\n\t\t\t\tconst f = 1 / Math.sqrt( x0 * x0 + y0 * y0 + z0 * z0 + w0 * w0 );\n\n\t\t\t\tx0 *= f;\n\t\t\t\ty0 *= f;\n\t\t\t\tz0 *= f;\n\t\t\t\tw0 *= f;\n\n\t\t\t}\n\n\t\t}\n\n\t\tdst[ dstOffset ] = x0;\n\t\tdst[ dstOffset + 1 ] = y0;\n\t\tdst[ dstOffset + 2 ] = z0;\n\t\tdst[ dstOffset + 3 ] = w0;\n\n\t}\n\n\tstatic multiplyQuaternionsFlat( dst, dstOffset, src0, srcOffset0, src1, srcOffset1 ) {\n\n\t\tconst x0 = src0[ srcOffset0 ];\n\t\tconst y0 = src0[ srcOffset0 + 1 ];\n\t\tconst z0 = src0[ srcOffset0 + 2 ];\n\t\tconst w0 = src0[ srcOffset0 + 3 ];\n\n\t\tconst x1 = src1[ srcOffset1 ];\n\t\tconst y1 = src1[ srcOffset1 + 1 ];\n\t\tconst z1 = src1[ srcOffset1 + 2 ];\n\t\tconst w1 = src1[ srcOffset1 + 3 ];\n\n\t\tdst[ dstOffset ] = x0 * w1 + w0 * x1 + y0 * z1 - z0 * y1;\n\t\tdst[ dstOffset + 1 ] = y0 * w1 + w0 * y1 + z0 * x1 - x0 * z1;\n\t\tdst[ dstOffset + 2 ] = z0 * w1 + w0 * z1 + x0 * y1 - y0 * x1;\n\t\tdst[ dstOffset + 3 ] = w0 * w1 - x0 * x1 - y0 * y1 - z0 * z1;\n\n\t\treturn dst;\n\n\t}\n\n\tget x() {\n\n\t\treturn this._x;\n\n\t}\n\n\tset x( value ) {\n\n\t\tthis._x = value;\n\t\tthis._onChangeCallback();\n\n\t}\n\n\tget y() {\n\n\t\treturn this._y;\n\n\t}\n\n\tset y( value ) {\n\n\t\tthis._y = value;\n\t\tthis._onChangeCallback();\n\n\t}\n\n\tget z() {\n\n\t\treturn this._z;\n\n\t}\n\n\tset z( value ) {\n\n\t\tthis._z = value;\n\t\tthis._onChangeCallback();\n\n\t}\n\n\tget w() {\n\n\t\treturn this._w;\n\n\t}\n\n\tset w( value ) {\n\n\t\tthis._w = value;\n\t\tthis._onChangeCallback();\n\n\t}\n\n\tset( x, y, z, w ) {\n\n\t\tthis._x = x;\n\t\tthis._y = y;\n\t\tthis._z = z;\n\t\tthis._w = w;\n\n\t\tthis._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor( this._x, this._y, this._z, this._w );\n\n\t}\n\n\tcopy( quaternion ) {\n\n\t\tthis._x = quaternion.x;\n\t\tthis._y = quaternion.y;\n\t\tthis._z = quaternion.z;\n\t\tthis._w = quaternion.w;\n\n\t\tthis._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\tsetFromEuler( euler, update ) {\n\n\t\tif ( ! ( euler && euler.isEuler ) ) {\n\n\t\t\tthrow new Error( 'THREE.Quaternion: .setFromEuler() now expects an Euler rotation rather than a Vector3 and order.' );\n\n\t\t}\n\n\t\tconst x = euler._x, y = euler._y, z = euler._z, order = euler._order;\n\n\t\t// http://www.mathworks.com/matlabcentral/fileexchange/\n\t\t// \t20696-function-to-convert-between-dcm-euler-angles-quaternions-and-euler-vectors/\n\t\t//\tcontent/SpinCalc.m\n\n\t\tconst cos = Math.cos;\n\t\tconst sin = Math.sin;\n\n\t\tconst c1 = cos( x / 2 );\n\t\tconst c2 = cos( y / 2 );\n\t\tconst c3 = cos( z / 2 );\n\n\t\tconst s1 = sin( x / 2 );\n\t\tconst s2 = sin( y / 2 );\n\t\tconst s3 = sin( z / 2 );\n\n\t\tswitch ( order ) {\n\n\t\t\tcase 'XYZ':\n\t\t\t\tthis._x = s1 * c2 * c3 + c1 * s2 * s3;\n\t\t\t\tthis._y = c1 * s2 * c3 - s1 * c2 * s3;\n\t\t\t\tthis._z = c1 * c2 * s3 + s1 * s2 * c3;\n\t\t\t\tthis._w = c1 * c2 * c3 - s1 * s2 * s3;\n\t\t\t\tbreak;\n\n\t\t\tcase 'YXZ':\n\t\t\t\tthis._x = s1 * c2 * c3 + c1 * s2 * s3;\n\t\t\t\tthis._y = c1 * s2 * c3 - s1 * c2 * s3;\n\t\t\t\tthis._z = c1 * c2 * s3 - s1 * s2 * c3;\n\t\t\t\tthis._w = c1 * c2 * c3 + s1 * s2 * s3;\n\t\t\t\tbreak;\n\n\t\t\tcase 'ZXY':\n\t\t\t\tthis._x = s1 * c2 * c3 - c1 * s2 * s3;\n\t\t\t\tthis._y = c1 * s2 * c3 + s1 * c2 * s3;\n\t\t\t\tthis._z = c1 * c2 * s3 + s1 * s2 * c3;\n\t\t\t\tthis._w = c1 * c2 * c3 - s1 * s2 * s3;\n\t\t\t\tbreak;\n\n\t\t\tcase 'ZYX':\n\t\t\t\tthis._x = s1 * c2 * c3 - c1 * s2 * s3;\n\t\t\t\tthis._y = c1 * s2 * c3 + s1 * c2 * s3;\n\t\t\t\tthis._z = c1 * c2 * s3 - s1 * s2 * c3;\n\t\t\t\tthis._w = c1 * c2 * c3 + s1 * s2 * s3;\n\t\t\t\tbreak;\n\n\t\t\tcase 'YZX':\n\t\t\t\tthis._x = s1 * c2 * c3 + c1 * s2 * s3;\n\t\t\t\tthis._y = c1 * s2 * c3 + s1 * c2 * s3;\n\t\t\t\tthis._z = c1 * c2 * s3 - s1 * s2 * c3;\n\t\t\t\tthis._w = c1 * c2 * c3 - s1 * s2 * s3;\n\t\t\t\tbreak;\n\n\t\t\tcase 'XZY':\n\t\t\t\tthis._x = s1 * c2 * c3 - c1 * s2 * s3;\n\t\t\t\tthis._y = c1 * s2 * c3 - s1 * c2 * s3;\n\t\t\t\tthis._z = c1 * c2 * s3 + s1 * s2 * c3;\n\t\t\t\tthis._w = c1 * c2 * c3 + s1 * s2 * s3;\n\t\t\t\tbreak;\n\n\t\t\tdefault:\n\t\t\t\tconsole.warn( 'THREE.Quaternion: .setFromEuler() encountered an unknown order: ' + order );\n\n\t\t}\n\n\t\tif ( update !== false ) this._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\tsetFromAxisAngle( axis, angle ) {\n\n\t\t// http://www.euclideanspace.com/maths/geometry/rotations/conversions/angleToQuaternion/index.htm\n\n\t\t// assumes axis is normalized\n\n\t\tconst halfAngle = angle / 2, s = Math.sin( halfAngle );\n\n\t\tthis._x = axis.x * s;\n\t\tthis._y = axis.y * s;\n\t\tthis._z = axis.z * s;\n\t\tthis._w = Math.cos( halfAngle );\n\n\t\tthis._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\tsetFromRotationMatrix( m ) {\n\n\t\t// http://www.euclideanspace.com/maths/geometry/rotations/conversions/matrixToQuaternion/index.htm\n\n\t\t// assumes the upper 3x3 of m is a pure rotation matrix (i.e, unscaled)\n\n\t\tconst te = m.elements,\n\n\t\t\tm11 = te[ 0 ], m12 = te[ 4 ], m13 = te[ 8 ],\n\t\t\tm21 = te[ 1 ], m22 = te[ 5 ], m23 = te[ 9 ],\n\t\t\tm31 = te[ 2 ], m32 = te[ 6 ], m33 = te[ 10 ],\n\n\t\t\ttrace = m11 + m22 + m33;\n\n\t\tif ( trace > 0 ) {\n\n\t\t\tconst s = 0.5 / Math.sqrt( trace + 1.0 );\n\n\t\t\tthis._w = 0.25 / s;\n\t\t\tthis._x = ( m32 - m23 ) * s;\n\t\t\tthis._y = ( m13 - m31 ) * s;\n\t\t\tthis._z = ( m21 - m12 ) * s;\n\n\t\t} else if ( m11 > m22 && m11 > m33 ) {\n\n\t\t\tconst s = 2.0 * Math.sqrt( 1.0 + m11 - m22 - m33 );\n\n\t\t\tthis._w = ( m32 - m23 ) / s;\n\t\t\tthis._x = 0.25 * s;\n\t\t\tthis._y = ( m12 + m21 ) / s;\n\t\t\tthis._z = ( m13 + m31 ) / s;\n\n\t\t} else if ( m22 > m33 ) {\n\n\t\t\tconst s = 2.0 * Math.sqrt( 1.0 + m22 - m11 - m33 );\n\n\t\t\tthis._w = ( m13 - m31 ) / s;\n\t\t\tthis._x = ( m12 + m21 ) / s;\n\t\t\tthis._y = 0.25 * s;\n\t\t\tthis._z = ( m23 + m32 ) / s;\n\n\t\t} else {\n\n\t\t\tconst s = 2.0 * Math.sqrt( 1.0 + m33 - m11 - m22 );\n\n\t\t\tthis._w = ( m21 - m12 ) / s;\n\t\t\tthis._x = ( m13 + m31 ) / s;\n\t\t\tthis._y = ( m23 + m32 ) / s;\n\t\t\tthis._z = 0.25 * s;\n\n\t\t}\n\n\t\tthis._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\tsetFromUnitVectors( vFrom, vTo ) {\n\n\t\t// assumes direction vectors vFrom and vTo are normalized\n\n\t\tconst EPS = 0.000001;\n\n\t\tlet r = vFrom.dot( vTo ) + 1;\n\n\t\tif ( r < EPS ) {\n\n\t\t\tr = 0;\n\n\t\t\tif ( Math.abs( vFrom.x ) > Math.abs( vFrom.z ) ) {\n\n\t\t\t\tthis._x = - vFrom.y;\n\t\t\t\tthis._y = vFrom.x;\n\t\t\t\tthis._z = 0;\n\t\t\t\tthis._w = r;\n\n\t\t\t} else {\n\n\t\t\t\tthis._x = 0;\n\t\t\t\tthis._y = - vFrom.z;\n\t\t\t\tthis._z = vFrom.y;\n\t\t\t\tthis._w = r;\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\t// crossVectors( vFrom, vTo ); // inlined to avoid cyclic dependency on Vector3\n\n\t\t\tthis._x = vFrom.y * vTo.z - vFrom.z * vTo.y;\n\t\t\tthis._y = vFrom.z * vTo.x - vFrom.x * vTo.z;\n\t\t\tthis._z = vFrom.x * vTo.y - vFrom.y * vTo.x;\n\t\t\tthis._w = r;\n\n\t\t}\n\n\t\treturn this.normalize();\n\n\t}\n\n\tangleTo( q ) {\n\n\t\treturn 2 * Math.acos( Math.abs( MathUtils.clamp( this.dot( q ), - 1, 1 ) ) );\n\n\t}\n\n\trotateTowards( q, step ) {\n\n\t\tconst angle = this.angleTo( q );\n\n\t\tif ( angle === 0 ) return this;\n\n\t\tconst t = Math.min( 1, step / angle );\n\n\t\tthis.slerp( q, t );\n\n\t\treturn this;\n\n\t}\n\n\tidentity() {\n\n\t\treturn this.set( 0, 0, 0, 1 );\n\n\t}\n\n\tinvert() {\n\n\t\t// quaternion is assumed to have unit length\n\n\t\treturn this.conjugate();\n\n\t}\n\n\tconjugate() {\n\n\t\tthis._x *= - 1;\n\t\tthis._y *= - 1;\n\t\tthis._z *= - 1;\n\n\t\tthis._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\tdot( v ) {\n\n\t\treturn this._x * v._x + this._y * v._y + this._z * v._z + this._w * v._w;\n\n\t}\n\n\tlengthSq() {\n\n\t\treturn this._x * this._x + this._y * this._y + this._z * this._z + this._w * this._w;\n\n\t}\n\n\tlength() {\n\n\t\treturn Math.sqrt( this._x * this._x + this._y * this._y + this._z * this._z + this._w * this._w );\n\n\t}\n\n\tnormalize() {\n\n\t\tlet l = this.length();\n\n\t\tif ( l === 0 ) {\n\n\t\t\tthis._x = 0;\n\t\t\tthis._y = 0;\n\t\t\tthis._z = 0;\n\t\t\tthis._w = 1;\n\n\t\t} else {\n\n\t\t\tl = 1 / l;\n\n\t\t\tthis._x = this._x * l;\n\t\t\tthis._y = this._y * l;\n\t\t\tthis._z = this._z * l;\n\t\t\tthis._w = this._w * l;\n\n\t\t}\n\n\t\tthis._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\tmultiply( q, p ) {\n\n\t\tif ( p !== undefined ) {\n\n\t\t\tconsole.warn( 'THREE.Quaternion: .multiply() now only accepts one argument. Use .multiplyQuaternions( a, b ) instead.' );\n\t\t\treturn this.multiplyQuaternions( q, p );\n\n\t\t}\n\n\t\treturn this.multiplyQuaternions( this, q );\n\n\t}\n\n\tpremultiply( q ) {\n\n\t\treturn this.multiplyQuaternions( q, this );\n\n\t}\n\n\tmultiplyQuaternions( a, b ) {\n\n\t\t// from http://www.euclideanspace.com/maths/algebra/realNormedAlgebra/quaternions/code/index.htm\n\n\t\tconst qax = a._x, qay = a._y, qaz = a._z, qaw = a._w;\n\t\tconst qbx = b._x, qby = b._y, qbz = b._z, qbw = b._w;\n\n\t\tthis._x = qax * qbw + qaw * qbx + qay * qbz - qaz * qby;\n\t\tthis._y = qay * qbw + qaw * qby + qaz * qbx - qax * qbz;\n\t\tthis._z = qaz * qbw + qaw * qbz + qax * qby - qay * qbx;\n\t\tthis._w = qaw * qbw - qax * qbx - qay * qby - qaz * qbz;\n\n\t\tthis._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\tslerp( qb, t ) {\n\n\t\tif ( t === 0 ) return this;\n\t\tif ( t === 1 ) return this.copy( qb );\n\n\t\tconst x = this._x, y = this._y, z = this._z, w = this._w;\n\n\t\t// http://www.euclideanspace.com/maths/algebra/realNormedAlgebra/quaternions/slerp/\n\n\t\tlet cosHalfTheta = w * qb._w + x * qb._x + y * qb._y + z * qb._z;\n\n\t\tif ( cosHalfTheta < 0 ) {\n\n\t\t\tthis._w = - qb._w;\n\t\t\tthis._x = - qb._x;\n\t\t\tthis._y = - qb._y;\n\t\t\tthis._z = - qb._z;\n\n\t\t\tcosHalfTheta = - cosHalfTheta;\n\n\t\t} else {\n\n\t\t\tthis.copy( qb );\n\n\t\t}\n\n\t\tif ( cosHalfTheta >= 1.0 ) {\n\n\t\t\tthis._w = w;\n\t\t\tthis._x = x;\n\t\t\tthis._y = y;\n\t\t\tthis._z = z;\n\n\t\t\treturn this;\n\n\t\t}\n\n\t\tconst sqrSinHalfTheta = 1.0 - cosHalfTheta * cosHalfTheta;\n\n\t\tif ( sqrSinHalfTheta <= Number.EPSILON ) {\n\n\t\t\tconst s = 1 - t;\n\t\t\tthis._w = s * w + t * this._w;\n\t\t\tthis._x = s * x + t * this._x;\n\t\t\tthis._y = s * y + t * this._y;\n\t\t\tthis._z = s * z + t * this._z;\n\n\t\t\tthis.normalize();\n\t\t\tthis._onChangeCallback();\n\n\t\t\treturn this;\n\n\t\t}\n\n\t\tconst sinHalfTheta = Math.sqrt( sqrSinHalfTheta );\n\t\tconst halfTheta = Math.atan2( sinHalfTheta, cosHalfTheta );\n\t\tconst ratioA = Math.sin( ( 1 - t ) * halfTheta ) / sinHalfTheta,\n\t\t\tratioB = Math.sin( t * halfTheta ) / sinHalfTheta;\n\n\t\tthis._w = ( w * ratioA + this._w * ratioB );\n\t\tthis._x = ( x * ratioA + this._x * ratioB );\n\t\tthis._y = ( y * ratioA + this._y * ratioB );\n\t\tthis._z = ( z * ratioA + this._z * ratioB );\n\n\t\tthis._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\tequals( quaternion ) {\n\n\t\treturn ( quaternion._x === this._x ) && ( quaternion._y === this._y ) && ( quaternion._z === this._z ) && ( quaternion._w === this._w );\n\n\t}\n\n\tfromArray( array, offset = 0 ) {\n\n\t\tthis._x = array[ offset ];\n\t\tthis._y = array[ offset + 1 ];\n\t\tthis._z = array[ offset + 2 ];\n\t\tthis._w = array[ offset + 3 ];\n\n\t\tthis._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\ttoArray( array = [], offset = 0 ) {\n\n\t\tarray[ offset ] = this._x;\n\t\tarray[ offset + 1 ] = this._y;\n\t\tarray[ offset + 2 ] = this._z;\n\t\tarray[ offset + 3 ] = this._w;\n\n\t\treturn array;\n\n\t}\n\n\tfromBufferAttribute( attribute, index ) {\n\n\t\tthis._x = attribute.getX( index );\n\t\tthis._y = attribute.getY( index );\n\t\tthis._z = attribute.getZ( index );\n\t\tthis._w = attribute.getW( index );\n\n\t\treturn this;\n\n\t}\n\n\t_onChange( callback ) {\n\n\t\tthis._onChangeCallback = callback;\n\n\t\treturn this;\n\n\t}\n\n\t_onChangeCallback() {}\n\n}\n\nclass Vector3 {\n\n\tconstructor( x = 0, y = 0, z = 0 ) {\n\n\t\tObject.defineProperty( this, 'isVector3', { value: true } );\n\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t\tthis.z = z;\n\n\t}\n\n\tset( x, y, z ) {\n\n\t\tif ( z === undefined ) z = this.z; // sprite.scale.set(x,y)\n\n\t\tthis.x = x;\n\t\tthis.y = y;\n\t\tthis.z = z;\n\n\t\treturn this;\n\n\t}\n\n\tsetScalar( scalar ) {\n\n\t\tthis.x = scalar;\n\t\tthis.y = scalar;\n\t\tthis.z = scalar;\n\n\t\treturn this;\n\n\t}\n\n\tsetX( x ) {\n\n\t\tthis.x = x;\n\n\t\treturn this;\n\n\t}\n\n\tsetY( y ) {\n\n\t\tthis.y = y;\n\n\t\treturn this;\n\n\t}\n\n\tsetZ( z ) {\n\n\t\tthis.z = z;\n\n\t\treturn this;\n\n\t}\n\n\tsetComponent( index, value ) {\n\n\t\tswitch ( index ) {\n\n\t\t\tcase 0: this.x = value; break;\n\t\t\tcase 1: this.y = value; break;\n\t\t\tcase 2: this.z = value; break;\n\t\t\tdefault: throw new Error( 'index is out of range: ' + index );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tgetComponent( index ) {\n\n\t\tswitch ( index ) {\n\n\t\t\tcase 0: return this.x;\n\t\t\tcase 1: return this.y;\n\t\t\tcase 2: return this.z;\n\t\t\tdefault: throw new Error( 'index is out of range: ' + index );\n\n\t\t}\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor( this.x, this.y, this.z );\n\n\t}\n\n\tcopy( v ) {\n\n\t\tthis.x = v.x;\n\t\tthis.y = v.y;\n\t\tthis.z = v.z;\n\n\t\treturn this;\n\n\t}\n\n\tadd( v, w ) {\n\n\t\tif ( w !== undefined ) {\n\n\t\t\tconsole.warn( 'THREE.Vector3: .add() now only accepts one argument. Use .addVectors( a, b ) instead.' );\n\t\t\treturn this.addVectors( v, w );\n\n\t\t}\n\n\t\tthis.x += v.x;\n\t\tthis.y += v.y;\n\t\tthis.z += v.z;\n\n\t\treturn this;\n\n\t}\n\n\taddScalar( s ) {\n\n\t\tthis.x += s;\n\t\tthis.y += s;\n\t\tthis.z += s;\n\n\t\treturn this;\n\n\t}\n\n\taddVectors( a, b ) {\n\n\t\tthis.x = a.x + b.x;\n\t\tthis.y = a.y + b.y;\n\t\tthis.z = a.z + b.z;\n\n\t\treturn this;\n\n\t}\n\n\taddScaledVector( v, s ) {\n\n\t\tthis.x += v.x * s;\n\t\tthis.y += v.y * s;\n\t\tthis.z += v.z * s;\n\n\t\treturn this;\n\n\t}\n\n\tsub( v, w ) {\n\n\t\tif ( w !== undefined ) {\n\n\t\t\tconsole.warn( 'THREE.Vector3: .sub() now only accepts one argument. Use .subVectors( a, b ) instead.' );\n\t\t\treturn this.subVectors( v, w );\n\n\t\t}\n\n\t\tthis.x -= v.x;\n\t\tthis.y -= v.y;\n\t\tthis.z -= v.z;\n\n\t\treturn this;\n\n\t}\n\n\tsubScalar( s ) {\n\n\t\tthis.x -= s;\n\t\tthis.y -= s;\n\t\tthis.z -= s;\n\n\t\treturn this;\n\n\t}\n\n\tsubVectors( a, b ) {\n\n\t\tthis.x = a.x - b.x;\n\t\tthis.y = a.y - b.y;\n\t\tthis.z = a.z - b.z;\n\n\t\treturn this;\n\n\t}\n\n\tmultiply( v, w ) {\n\n\t\tif ( w !== undefined ) {\n\n\t\t\tconsole.warn( 'THREE.Vector3: .multiply() now only accepts one argument. Use .multiplyVectors( a, b ) instead.' );\n\t\t\treturn this.multiplyVectors( v, w );\n\n\t\t}\n\n\t\tthis.x *= v.x;\n\t\tthis.y *= v.y;\n\t\tthis.z *= v.z;\n\n\t\treturn this;\n\n\t}\n\n\tmultiplyScalar( scalar ) {\n\n\t\tthis.x *= scalar;\n\t\tthis.y *= scalar;\n\t\tthis.z *= scalar;\n\n\t\treturn this;\n\n\t}\n\n\tmultiplyVectors( a, b ) {\n\n\t\tthis.x = a.x * b.x;\n\t\tthis.y = a.y * b.y;\n\t\tthis.z = a.z * b.z;\n\n\t\treturn this;\n\n\t}\n\n\tapplyEuler( euler ) {\n\n\t\tif ( ! ( euler && euler.isEuler ) ) {\n\n\t\t\tconsole.error( 'THREE.Vector3: .applyEuler() now expects an Euler rotation rather than a Vector3 and order.' );\n\n\t\t}\n\n\t\treturn this.applyQuaternion( _quaternion.setFromEuler( euler ) );\n\n\t}\n\n\tapplyAxisAngle( axis, angle ) {\n\n\t\treturn this.applyQuaternion( _quaternion.setFromAxisAngle( axis, angle ) );\n\n\t}\n\n\tapplyMatrix3( m ) {\n\n\t\tconst x = this.x, y = this.y, z = this.z;\n\t\tconst e = m.elements;\n\n\t\tthis.x = e[ 0 ] * x + e[ 3 ] * y + e[ 6 ] * z;\n\t\tthis.y = e[ 1 ] * x + e[ 4 ] * y + e[ 7 ] * z;\n\t\tthis.z = e[ 2 ] * x + e[ 5 ] * y + e[ 8 ] * z;\n\n\t\treturn this;\n\n\t}\n\n\tapplyNormalMatrix( m ) {\n\n\t\treturn this.applyMatrix3( m ).normalize();\n\n\t}\n\n\tapplyMatrix4( m ) {\n\n\t\tconst x = this.x, y = this.y, z = this.z;\n\t\tconst e = m.elements;\n\n\t\tconst w = 1 / ( e[ 3 ] * x + e[ 7 ] * y + e[ 11 ] * z + e[ 15 ] );\n\n\t\tthis.x = ( e[ 0 ] * x + e[ 4 ] * y + e[ 8 ] * z + e[ 12 ] ) * w;\n\t\tthis.y = ( e[ 1 ] * x + e[ 5 ] * y + e[ 9 ] * z + e[ 13 ] ) * w;\n\t\tthis.z = ( e[ 2 ] * x + e[ 6 ] * y + e[ 10 ] * z + e[ 14 ] ) * w;\n\n\t\treturn this;\n\n\t}\n\n\tapplyQuaternion( q ) {\n\n\t\tconst x = this.x, y = this.y, z = this.z;\n\t\tconst qx = q.x, qy = q.y, qz = q.z, qw = q.w;\n\n\t\t// calculate quat * vector\n\n\t\tconst ix = qw * x + qy * z - qz * y;\n\t\tconst iy = qw * y + qz * x - qx * z;\n\t\tconst iz = qw * z + qx * y - qy * x;\n\t\tconst iw = - qx * x - qy * y - qz * z;\n\n\t\t// calculate result * inverse quat\n\n\t\tthis.x = ix * qw + iw * - qx + iy * - qz - iz * - qy;\n\t\tthis.y = iy * qw + iw * - qy + iz * - qx - ix * - qz;\n\t\tthis.z = iz * qw + iw * - qz + ix * - qy - iy * - qx;\n\n\t\treturn this;\n\n\t}\n\n\tproject( camera ) {\n\n\t\treturn this.applyMatrix4( camera.matrixWorldInverse ).applyMatrix4( camera.projectionMatrix );\n\n\t}\n\n\tunproject( camera ) {\n\n\t\treturn this.applyMatrix4( camera.projectionMatrixInverse ).applyMatrix4( camera.matrixWorld );\n\n\t}\n\n\ttransformDirection( m ) {\n\n\t\t// input: THREE.Matrix4 affine matrix\n\t\t// vector interpreted as a direction\n\n\t\tconst x = this.x, y = this.y, z = this.z;\n\t\tconst e = m.elements;\n\n\t\tthis.x = e[ 0 ] * x + e[ 4 ] * y + e[ 8 ] * z;\n\t\tthis.y = e[ 1 ] * x + e[ 5 ] * y + e[ 9 ] * z;\n\t\tthis.z = e[ 2 ] * x + e[ 6 ] * y + e[ 10 ] * z;\n\n\t\treturn this.normalize();\n\n\t}\n\n\tdivide( v ) {\n\n\t\tthis.x /= v.x;\n\t\tthis.y /= v.y;\n\t\tthis.z /= v.z;\n\n\t\treturn this;\n\n\t}\n\n\tdivideScalar( scalar ) {\n\n\t\treturn this.multiplyScalar( 1 / scalar );\n\n\t}\n\n\tmin( v ) {\n\n\t\tthis.x = Math.min( this.x, v.x );\n\t\tthis.y = Math.min( this.y, v.y );\n\t\tthis.z = Math.min( this.z, v.z );\n\n\t\treturn this;\n\n\t}\n\n\tmax( v ) {\n\n\t\tthis.x = Math.max( this.x, v.x );\n\t\tthis.y = Math.max( this.y, v.y );\n\t\tthis.z = Math.max( this.z, v.z );\n\n\t\treturn this;\n\n\t}\n\n\tclamp( min, max ) {\n\n\t\t// assumes min < max, componentwise\n\n\t\tthis.x = Math.max( min.x, Math.min( max.x, this.x ) );\n\t\tthis.y = Math.max( min.y, Math.min( max.y, this.y ) );\n\t\tthis.z = Math.max( min.z, Math.min( max.z, this.z ) );\n\n\t\treturn this;\n\n\t}\n\n\tclampScalar( minVal, maxVal ) {\n\n\t\tthis.x = Math.max( minVal, Math.min( maxVal, this.x ) );\n\t\tthis.y = Math.max( minVal, Math.min( maxVal, this.y ) );\n\t\tthis.z = Math.max( minVal, Math.min( maxVal, this.z ) );\n\n\t\treturn this;\n\n\t}\n\n\tclampLength( min, max ) {\n\n\t\tconst length = this.length();\n\n\t\treturn this.divideScalar( length || 1 ).multiplyScalar( Math.max( min, Math.min( max, length ) ) );\n\n\t}\n\n\tfloor() {\n\n\t\tthis.x = Math.floor( this.x );\n\t\tthis.y = Math.floor( this.y );\n\t\tthis.z = Math.floor( this.z );\n\n\t\treturn this;\n\n\t}\n\n\tceil() {\n\n\t\tthis.x = Math.ceil( this.x );\n\t\tthis.y = Math.ceil( this.y );\n\t\tthis.z = Math.ceil( this.z );\n\n\t\treturn this;\n\n\t}\n\n\tround() {\n\n\t\tthis.x = Math.round( this.x );\n\t\tthis.y = Math.round( this.y );\n\t\tthis.z = Math.round( this.z );\n\n\t\treturn this;\n\n\t}\n\n\troundToZero() {\n\n\t\tthis.x = ( this.x < 0 ) ? Math.ceil( this.x ) : Math.floor( this.x );\n\t\tthis.y = ( this.y < 0 ) ? Math.ceil( this.y ) : Math.floor( this.y );\n\t\tthis.z = ( this.z < 0 ) ? Math.ceil( this.z ) : Math.floor( this.z );\n\n\t\treturn this;\n\n\t}\n\n\tnegate() {\n\n\t\tthis.x = - this.x;\n\t\tthis.y = - this.y;\n\t\tthis.z = - this.z;\n\n\t\treturn this;\n\n\t}\n\n\tdot( v ) {\n\n\t\treturn this.x * v.x + this.y * v.y + this.z * v.z;\n\n\t}\n\n\t// TODO lengthSquared?\n\n\tlengthSq() {\n\n\t\treturn this.x * this.x + this.y * this.y + this.z * this.z;\n\n\t}\n\n\tlength() {\n\n\t\treturn Math.sqrt( this.x * this.x + this.y * this.y + this.z * this.z );\n\n\t}\n\n\tmanhattanLength() {\n\n\t\treturn Math.abs( this.x ) + Math.abs( this.y ) + Math.abs( this.z );\n\n\t}\n\n\tnormalize() {\n\n\t\treturn this.divideScalar( this.length() || 1 );\n\n\t}\n\n\tsetLength( length ) {\n\n\t\treturn this.normalize().multiplyScalar( length );\n\n\t}\n\n\tlerp( v, alpha ) {\n\n\t\tthis.x += ( v.x - this.x ) * alpha;\n\t\tthis.y += ( v.y - this.y ) * alpha;\n\t\tthis.z += ( v.z - this.z ) * alpha;\n\n\t\treturn this;\n\n\t}\n\n\tlerpVectors( v1, v2, alpha ) {\n\n\t\tthis.x = v1.x + ( v2.x - v1.x ) * alpha;\n\t\tthis.y = v1.y + ( v2.y - v1.y ) * alpha;\n\t\tthis.z = v1.z + ( v2.z - v1.z ) * alpha;\n\n\t\treturn this;\n\n\t}\n\n\tcross( v, w ) {\n\n\t\tif ( w !== undefined ) {\n\n\t\t\tconsole.warn( 'THREE.Vector3: .cross() now only accepts one argument. Use .crossVectors( a, b ) instead.' );\n\t\t\treturn this.crossVectors( v, w );\n\n\t\t}\n\n\t\treturn this.crossVectors( this, v );\n\n\t}\n\n\tcrossVectors( a, b ) {\n\n\t\tconst ax = a.x, ay = a.y, az = a.z;\n\t\tconst bx = b.x, by = b.y, bz = b.z;\n\n\t\tthis.x = ay * bz - az * by;\n\t\tthis.y = az * bx - ax * bz;\n\t\tthis.z = ax * by - ay * bx;\n\n\t\treturn this;\n\n\t}\n\n\tprojectOnVector( v ) {\n\n\t\tconst denominator = v.lengthSq();\n\n\t\tif ( denominator === 0 ) return this.set( 0, 0, 0 );\n\n\t\tconst scalar = v.dot( this ) / denominator;\n\n\t\treturn this.copy( v ).multiplyScalar( scalar );\n\n\t}\n\n\tprojectOnPlane( planeNormal ) {\n\n\t\t_vector.copy( this ).projectOnVector( planeNormal );\n\n\t\treturn this.sub( _vector );\n\n\t}\n\n\treflect( normal ) {\n\n\t\t// reflect incident vector off plane orthogonal to normal\n\t\t// normal is assumed to have unit length\n\n\t\treturn this.sub( _vector.copy( normal ).multiplyScalar( 2 * this.dot( normal ) ) );\n\n\t}\n\n\tangleTo( v ) {\n\n\t\tconst denominator = Math.sqrt( this.lengthSq() * v.lengthSq() );\n\n\t\tif ( denominator === 0 ) return Math.PI / 2;\n\n\t\tconst theta = this.dot( v ) / denominator;\n\n\t\t// clamp, to handle numerical problems\n\n\t\treturn Math.acos( MathUtils.clamp( theta, - 1, 1 ) );\n\n\t}\n\n\tdistanceTo( v ) {\n\n\t\treturn Math.sqrt( this.distanceToSquared( v ) );\n\n\t}\n\n\tdistanceToSquared( v ) {\n\n\t\tconst dx = this.x - v.x, dy = this.y - v.y, dz = this.z - v.z;\n\n\t\treturn dx * dx + dy * dy + dz * dz;\n\n\t}\n\n\tmanhattanDistanceTo( v ) {\n\n\t\treturn Math.abs( this.x - v.x ) + Math.abs( this.y - v.y ) + Math.abs( this.z - v.z );\n\n\t}\n\n\tsetFromSpherical( s ) {\n\n\t\treturn this.setFromSphericalCoords( s.radius, s.phi, s.theta );\n\n\t}\n\n\tsetFromSphericalCoords( radius, phi, theta ) {\n\n\t\tconst sinPhiRadius = Math.sin( phi ) * radius;\n\n\t\tthis.x = sinPhiRadius * Math.sin( theta );\n\t\tthis.y = Math.cos( phi ) * radius;\n\t\tthis.z = sinPhiRadius * Math.cos( theta );\n\n\t\treturn this;\n\n\t}\n\n\tsetFromCylindrical( c ) {\n\n\t\treturn this.setFromCylindricalCoords( c.radius, c.theta, c.y );\n\n\t}\n\n\tsetFromCylindricalCoords( radius, theta, y ) {\n\n\t\tthis.x = radius * Math.sin( theta );\n\t\tthis.y = y;\n\t\tthis.z = radius * Math.cos( theta );\n\n\t\treturn this;\n\n\t}\n\n\tsetFromMatrixPosition( m ) {\n\n\t\tconst e = m.elements;\n\n\t\tthis.x = e[ 12 ];\n\t\tthis.y = e[ 13 ];\n\t\tthis.z = e[ 14 ];\n\n\t\treturn this;\n\n\t}\n\n\tsetFromMatrixScale( m ) {\n\n\t\tconst sx = this.setFromMatrixColumn( m, 0 ).length();\n\t\tconst sy = this.setFromMatrixColumn( m, 1 ).length();\n\t\tconst sz = this.setFromMatrixColumn( m, 2 ).length();\n\n\t\tthis.x = sx;\n\t\tthis.y = sy;\n\t\tthis.z = sz;\n\n\t\treturn this;\n\n\t}\n\n\tsetFromMatrixColumn( m, index ) {\n\n\t\treturn this.fromArray( m.elements, index * 4 );\n\n\t}\n\n\tsetFromMatrix3Column( m, index ) {\n\n\t\treturn this.fromArray( m.elements, index * 3 );\n\n\t}\n\n\tequals( v ) {\n\n\t\treturn ( ( v.x === this.x ) && ( v.y === this.y ) && ( v.z === this.z ) );\n\n\t}\n\n\tfromArray( array, offset = 0 ) {\n\n\t\tthis.x = array[ offset ];\n\t\tthis.y = array[ offset + 1 ];\n\t\tthis.z = array[ offset + 2 ];\n\n\t\treturn this;\n\n\t}\n\n\ttoArray( array = [], offset = 0 ) {\n\n\t\tarray[ offset ] = this.x;\n\t\tarray[ offset + 1 ] = this.y;\n\t\tarray[ offset + 2 ] = this.z;\n\n\t\treturn array;\n\n\t}\n\n\tfromBufferAttribute( attribute, index, offset ) {\n\n\t\tif ( offset !== undefined ) {\n\n\t\t\tconsole.warn( 'THREE.Vector3: offset has been removed from .fromBufferAttribute().' );\n\n\t\t}\n\n\t\tthis.x = attribute.getX( index );\n\t\tthis.y = attribute.getY( index );\n\t\tthis.z = attribute.getZ( index );\n\n\t\treturn this;\n\n\t}\n\n\trandom() {\n\n\t\tthis.x = Math.random();\n\t\tthis.y = Math.random();\n\t\tthis.z = Math.random();\n\n\t\treturn this;\n\n\t}\n\n}\n\nconst _vector = /*@__PURE__*/ new Vector3();\nconst _quaternion = /*@__PURE__*/ new Quaternion();\n\nclass Box3 {\n\n\tconstructor( min, max ) {\n\n\t\tObject.defineProperty( this, 'isBox3', { value: true } );\n\n\t\tthis.min = ( min !== undefined ) ? min : new Vector3( + Infinity, + Infinity, + Infinity );\n\t\tthis.max = ( max !== undefined ) ? max : new Vector3( - Infinity, - Infinity, - Infinity );\n\n\t}\n\n\tset( min, max ) {\n\n\t\tthis.min.copy( min );\n\t\tthis.max.copy( max );\n\n\t\treturn this;\n\n\t}\n\n\tsetFromArray( array ) {\n\n\t\tlet minX = + Infinity;\n\t\tlet minY = + Infinity;\n\t\tlet minZ = + Infinity;\n\n\t\tlet maxX = - Infinity;\n\t\tlet maxY = - Infinity;\n\t\tlet maxZ = - Infinity;\n\n\t\tfor ( let i = 0, l = array.length; i < l; i += 3 ) {\n\n\t\t\tconst x = array[ i ];\n\t\t\tconst y = array[ i + 1 ];\n\t\t\tconst z = array[ i + 2 ];\n\n\t\t\tif ( x < minX ) minX = x;\n\t\t\tif ( y < minY ) minY = y;\n\t\t\tif ( z < minZ ) minZ = z;\n\n\t\t\tif ( x > maxX ) maxX = x;\n\t\t\tif ( y > maxY ) maxY = y;\n\t\t\tif ( z > maxZ ) maxZ = z;\n\n\t\t}\n\n\t\tthis.min.set( minX, minY, minZ );\n\t\tthis.max.set( maxX, maxY, maxZ );\n\n\t\treturn this;\n\n\t}\n\n\tsetFromBufferAttribute( attribute ) {\n\n\t\tlet minX = + Infinity;\n\t\tlet minY = + Infinity;\n\t\tlet minZ = + Infinity;\n\n\t\tlet maxX = - Infinity;\n\t\tlet maxY = - Infinity;\n\t\tlet maxZ = - Infinity;\n\n\t\tfor ( let i = 0, l = attribute.count; i < l; i ++ ) {\n\n\t\t\tconst x = attribute.getX( i );\n\t\t\tconst y = attribute.getY( i );\n\t\t\tconst z = attribute.getZ( i );\n\n\t\t\tif ( x < minX ) minX = x;\n\t\t\tif ( y < minY ) minY = y;\n\t\t\tif ( z < minZ ) minZ = z;\n\n\t\t\tif ( x > maxX ) maxX = x;\n\t\t\tif ( y > maxY ) maxY = y;\n\t\t\tif ( z > maxZ ) maxZ = z;\n\n\t\t}\n\n\t\tthis.min.set( minX, minY, minZ );\n\t\tthis.max.set( maxX, maxY, maxZ );\n\n\t\treturn this;\n\n\t}\n\n\tsetFromPoints( points ) {\n\n\t\tthis.makeEmpty();\n\n\t\tfor ( let i = 0, il = points.length; i < il; i ++ ) {\n\n\t\t\tthis.expandByPoint( points[ i ] );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tsetFromCenterAndSize( center, size ) {\n\n\t\tconst halfSize = _vector$1.copy( size ).multiplyScalar( 0.5 );\n\n\t\tthis.min.copy( center ).sub( halfSize );\n\t\tthis.max.copy( center ).add( halfSize );\n\n\t\treturn this;\n\n\t}\n\n\tsetFromObject( object ) {\n\n\t\tthis.makeEmpty();\n\n\t\treturn this.expandByObject( object );\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n\tcopy( box ) {\n\n\t\tthis.min.copy( box.min );\n\t\tthis.max.copy( box.max );\n\n\t\treturn this;\n\n\t}\n\n\tmakeEmpty() {\n\n\t\tthis.min.x = this.min.y = this.min.z = + Infinity;\n\t\tthis.max.x = this.max.y = this.max.z = - Infinity;\n\n\t\treturn this;\n\n\t}\n\n\tisEmpty() {\n\n\t\t// this is a more robust check for empty than ( volume <= 0 ) because volume can get positive with two negative axes\n\n\t\treturn ( this.max.x < this.min.x ) || ( this.max.y < this.min.y ) || ( this.max.z < this.min.z );\n\n\t}\n\n\tgetCenter( target ) {\n\n\t\tif ( target === undefined ) {\n\n\t\t\tconsole.warn( 'THREE.Box3: .getCenter() target is now required' );\n\t\t\ttarget = new Vector3();\n\n\t\t}\n\n\t\treturn this.isEmpty() ? target.set( 0, 0, 0 ) : target.addVectors( this.min, this.max ).multiplyScalar( 0.5 );\n\n\t}\n\n\tgetSize( target ) {\n\n\t\tif ( target === undefined ) {\n\n\t\t\tconsole.warn( 'THREE.Box3: .getSize() target is now required' );\n\t\t\ttarget = new Vector3();\n\n\t\t}\n\n\t\treturn this.isEmpty() ? target.set( 0, 0, 0 ) : target.subVectors( this.max, this.min );\n\n\t}\n\n\texpandByPoint( point ) {\n\n\t\tthis.min.min( point );\n\t\tthis.max.max( point );\n\n\t\treturn this;\n\n\t}\n\n\texpandByVector( vector ) {\n\n\t\tthis.min.sub( vector );\n\t\tthis.max.add( vector );\n\n\t\treturn this;\n\n\t}\n\n\texpandByScalar( scalar ) {\n\n\t\tthis.min.addScalar( - scalar );\n\t\tthis.max.addScalar( scalar );\n\n\t\treturn this;\n\n\t}\n\n\texpandByObject( object ) {\n\n\t\t// Computes the world-axis-aligned bounding box of an object (including its children),\n\t\t// accounting for both the object's, and children's, world transforms\n\n\t\tobject.updateWorldMatrix( false, false );\n\n\t\tconst geometry = object.geometry;\n\n\t\tif ( geometry !== undefined ) {\n\n\t\t\tif ( geometry.boundingBox === null ) {\n\n\t\t\t\tgeometry.computeBoundingBox();\n\n\t\t\t}\n\n\t\t\t_box.copy( geometry.boundingBox );\n\t\t\t_box.applyMatrix4( object.matrixWorld );\n\n\t\t\tthis.union( _box );\n\n\t\t}\n\n\t\tconst children = object.children;\n\n\t\tfor ( let i = 0, l = children.length; i < l; i ++ ) {\n\n\t\t\tthis.expandByObject( children[ i ] );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tcontainsPoint( point ) {\n\n\t\treturn point.x < this.min.x || point.x > this.max.x ||\n\t\t\tpoint.y < this.min.y || point.y > this.max.y ||\n\t\t\tpoint.z < this.min.z || point.z > this.max.z ? false : true;\n\n\t}\n\n\tcontainsBox( box ) {\n\n\t\treturn this.min.x <= box.min.x && box.max.x <= this.max.x &&\n\t\t\tthis.min.y <= box.min.y && box.max.y <= this.max.y &&\n\t\t\tthis.min.z <= box.min.z && box.max.z <= this.max.z;\n\n\t}\n\n\tgetParameter( point, target ) {\n\n\t\t// This can potentially have a divide by zero if the box\n\t\t// has a size dimension of 0.\n\n\t\tif ( target === undefined ) {\n\n\t\t\tconsole.warn( 'THREE.Box3: .getParameter() target is now required' );\n\t\t\ttarget = new Vector3();\n\n\t\t}\n\n\t\treturn target.set(\n\t\t\t( point.x - this.min.x ) / ( this.max.x - this.min.x ),\n\t\t\t( point.y - this.min.y ) / ( this.max.y - this.min.y ),\n\t\t\t( point.z - this.min.z ) / ( this.max.z - this.min.z )\n\t\t);\n\n\t}\n\n\tintersectsBox( box ) {\n\n\t\t// using 6 splitting planes to rule out intersections.\n\t\treturn box.max.x < this.min.x || box.min.x > this.max.x ||\n\t\t\tbox.max.y < this.min.y || box.min.y > this.max.y ||\n\t\t\tbox.max.z < this.min.z || box.min.z > this.max.z ? false : true;\n\n\t}\n\n\tintersectsSphere( sphere ) {\n\n\t\t// Find the point on the AABB closest to the sphere center.\n\t\tthis.clampPoint( sphere.center, _vector$1 );\n\n\t\t// If that point is inside the sphere, the AABB and sphere intersect.\n\t\treturn _vector$1.distanceToSquared( sphere.center ) <= ( sphere.radius * sphere.radius );\n\n\t}\n\n\tintersectsPlane( plane ) {\n\n\t\t// We compute the minimum and maximum dot product values. If those values\n\t\t// are on the same side (back or front) of the plane, then there is no intersection.\n\n\t\tlet min, max;\n\n\t\tif ( plane.normal.x > 0 ) {\n\n\t\t\tmin = plane.normal.x * this.min.x;\n\t\t\tmax = plane.normal.x * this.max.x;\n\n\t\t} else {\n\n\t\t\tmin = plane.normal.x * this.max.x;\n\t\t\tmax = plane.normal.x * this.min.x;\n\n\t\t}\n\n\t\tif ( plane.normal.y > 0 ) {\n\n\t\t\tmin += plane.normal.y * this.min.y;\n\t\t\tmax += plane.normal.y * this.max.y;\n\n\t\t} else {\n\n\t\t\tmin += plane.normal.y * this.max.y;\n\t\t\tmax += plane.normal.y * this.min.y;\n\n\t\t}\n\n\t\tif ( plane.normal.z > 0 ) {\n\n\t\t\tmin += plane.normal.z * this.min.z;\n\t\t\tmax += plane.normal.z * this.max.z;\n\n\t\t} else {\n\n\t\t\tmin += plane.normal.z * this.max.z;\n\t\t\tmax += plane.normal.z * this.min.z;\n\n\t\t}\n\n\t\treturn ( min <= - plane.constant && max >= - plane.constant );\n\n\t}\n\n\tintersectsTriangle( triangle ) {\n\n\t\tif ( this.isEmpty() ) {\n\n\t\t\treturn false;\n\n\t\t}\n\n\t\t// compute box center and extents\n\t\tthis.getCenter( _center );\n\t\t_extents.subVectors( this.max, _center );\n\n\t\t// translate triangle to aabb origin\n\t\t_v0.subVectors( triangle.a, _center );\n\t\t_v1.subVectors( triangle.b, _center );\n\t\t_v2.subVectors( triangle.c, _center );\n\n\t\t// compute edge vectors for triangle\n\t\t_f0.subVectors( _v1, _v0 );\n\t\t_f1.subVectors( _v2, _v1 );\n\t\t_f2.subVectors( _v0, _v2 );\n\n\t\t// test against axes that are given by cross product combinations of the edges of the triangle and the edges of the aabb\n\t\t// make an axis testing of each of the 3 sides of the aabb against each of the 3 sides of the triangle = 9 axis of separation\n\t\t// axis_ij = u_i x f_j (u0, u1, u2 = face normals of aabb = x,y,z axes vectors since aabb is axis aligned)\n\t\tlet axes = [\n\t\t\t0, - _f0.z, _f0.y, 0, - _f1.z, _f1.y, 0, - _f2.z, _f2.y,\n\t\t\t_f0.z, 0, - _f0.x, _f1.z, 0, - _f1.x, _f2.z, 0, - _f2.x,\n\t\t\t- _f0.y, _f0.x, 0, - _f1.y, _f1.x, 0, - _f2.y, _f2.x, 0\n\t\t];\n\t\tif ( ! satForAxes( axes, _v0, _v1, _v2, _extents ) ) {\n\n\t\t\treturn false;\n\n\t\t}\n\n\t\t// test 3 face normals from the aabb\n\t\taxes = [ 1, 0, 0, 0, 1, 0, 0, 0, 1 ];\n\t\tif ( ! satForAxes( axes, _v0, _v1, _v2, _extents ) ) {\n\n\t\t\treturn false;\n\n\t\t}\n\n\t\t// finally testing the face normal of the triangle\n\t\t// use already existing triangle edge vectors here\n\t\t_triangleNormal.crossVectors( _f0, _f1 );\n\t\taxes = [ _triangleNormal.x, _triangleNormal.y, _triangleNormal.z ];\n\n\t\treturn satForAxes( axes, _v0, _v1, _v2, _extents );\n\n\t}\n\n\tclampPoint( point, target ) {\n\n\t\tif ( target === undefined ) {\n\n\t\t\tconsole.warn( 'THREE.Box3: .clampPoint() target is now required' );\n\t\t\ttarget = new Vector3();\n\n\t\t}\n\n\t\treturn target.copy( point ).clamp( this.min, this.max );\n\n\t}\n\n\tdistanceToPoint( point ) {\n\n\t\tconst clampedPoint = _vector$1.copy( point ).clamp( this.min, this.max );\n\n\t\treturn clampedPoint.sub( point ).length();\n\n\t}\n\n\tgetBoundingSphere( target ) {\n\n\t\tif ( target === undefined ) {\n\n\t\t\tconsole.error( 'THREE.Box3: .getBoundingSphere() target is now required' );\n\t\t\t//target = new Sphere(); // removed to avoid cyclic dependency\n\n\t\t}\n\n\t\tthis.getCenter( target.center );\n\n\t\ttarget.radius = this.getSize( _vector$1 ).length() * 0.5;\n\n\t\treturn target;\n\n\t}\n\n\tintersect( box ) {\n\n\t\tthis.min.max( box.min );\n\t\tthis.max.min( box.max );\n\n\t\t// ensure that if there is no overlap, the result is fully empty, not slightly empty with non-inf/+inf values that will cause subsequence intersects to erroneously return valid values.\n\t\tif ( this.isEmpty() ) this.makeEmpty();\n\n\t\treturn this;\n\n\t}\n\n\tunion( box ) {\n\n\t\tthis.min.min( box.min );\n\t\tthis.max.max( box.max );\n\n\t\treturn this;\n\n\t}\n\n\tapplyMatrix4( matrix ) {\n\n\t\t// transform of empty box is an empty box.\n\t\tif ( this.isEmpty() ) return this;\n\n\t\t// NOTE: I am using a binary pattern to specify all 2^3 combinations below\n\t\t_points[ 0 ].set( this.min.x, this.min.y, this.min.z ).applyMatrix4( matrix ); // 000\n\t\t_points[ 1 ].set( this.min.x, this.min.y, this.max.z ).applyMatrix4( matrix ); // 001\n\t\t_points[ 2 ].set( this.min.x, this.max.y, this.min.z ).applyMatrix4( matrix ); // 010\n\t\t_points[ 3 ].set( this.min.x, this.max.y, this.max.z ).applyMatrix4( matrix ); // 011\n\t\t_points[ 4 ].set( this.max.x, this.min.y, this.min.z ).applyMatrix4( matrix ); // 100\n\t\t_points[ 5 ].set( this.max.x, this.min.y, this.max.z ).applyMatrix4( matrix ); // 101\n\t\t_points[ 6 ].set( this.max.x, this.max.y, this.min.z ).applyMatrix4( matrix ); // 110\n\t\t_points[ 7 ].set( this.max.x, this.max.y, this.max.z ).applyMatrix4( matrix ); // 111\n\n\t\tthis.setFromPoints( _points );\n\n\t\treturn this;\n\n\t}\n\n\ttranslate( offset ) {\n\n\t\tthis.min.add( offset );\n\t\tthis.max.add( offset );\n\n\t\treturn this;\n\n\t}\n\n\tequals( box ) {\n\n\t\treturn box.min.equals( this.min ) && box.max.equals( this.max );\n\n\t}\n\n}\n\nfunction satForAxes( axes, v0, v1, v2, extents ) {\n\n\tfor ( let i = 0, j = axes.length - 3; i <= j; i += 3 ) {\n\n\t\t_testAxis.fromArray( axes, i );\n\t\t// project the aabb onto the seperating axis\n\t\tconst r = extents.x * Math.abs( _testAxis.x ) + extents.y * Math.abs( _testAxis.y ) + extents.z * Math.abs( _testAxis.z );\n\t\t// project all 3 vertices of the triangle onto the seperating axis\n\t\tconst p0 = v0.dot( _testAxis );\n\t\tconst p1 = v1.dot( _testAxis );\n\t\tconst p2 = v2.dot( _testAxis );\n\t\t// actual test, basically see if either of the most extreme of the triangle points intersects r\n\t\tif ( Math.max( - Math.max( p0, p1, p2 ), Math.min( p0, p1, p2 ) ) > r ) {\n\n\t\t\t// points of the projected triangle are outside the projected half-length of the aabb\n\t\t\t// the axis is seperating and we can exit\n\t\t\treturn false;\n\n\t\t}\n\n\t}\n\n\treturn true;\n\n}\n\nconst _points = [\n\t/*@__PURE__*/ new Vector3(),\n\t/*@__PURE__*/ new Vector3(),\n\t/*@__PURE__*/ new Vector3(),\n\t/*@__PURE__*/ new Vector3(),\n\t/*@__PURE__*/ new Vector3(),\n\t/*@__PURE__*/ new Vector3(),\n\t/*@__PURE__*/ new Vector3(),\n\t/*@__PURE__*/ new Vector3()\n];\n\nconst _vector$1 = /*@__PURE__*/ new Vector3();\n\nconst _box = /*@__PURE__*/ new Box3();\n\n// triangle centered vertices\n\nconst _v0 = /*@__PURE__*/ new Vector3();\nconst _v1 = /*@__PURE__*/ new Vector3();\nconst _v2 = /*@__PURE__*/ new Vector3();\n\n// triangle edge vectors\n\nconst _f0 = /*@__PURE__*/ new Vector3();\nconst _f1 = /*@__PURE__*/ new Vector3();\nconst _f2 = /*@__PURE__*/ new Vector3();\n\nconst _center = /*@__PURE__*/ new Vector3();\nconst _extents = /*@__PURE__*/ new Vector3();\nconst _triangleNormal = /*@__PURE__*/ new Vector3();\nconst _testAxis = /*@__PURE__*/ new Vector3();\n\nconst _box$1 = /*@__PURE__*/ new Box3();\n\nclass Sphere {\n\n\tconstructor( center, radius ) {\n\n\t\tthis.center = ( center !== undefined ) ? center : new Vector3();\n\t\tthis.radius = ( radius !== undefined ) ? radius : - 1;\n\n\t}\n\n\tset( center, radius ) {\n\n\t\tthis.center.copy( center );\n\t\tthis.radius = radius;\n\n\t\treturn this;\n\n\t}\n\n\tsetFromPoints( points, optionalCenter ) {\n\n\t\tconst center = this.center;\n\n\t\tif ( optionalCenter !== undefined ) {\n\n\t\t\tcenter.copy( optionalCenter );\n\n\t\t} else {\n\n\t\t\t_box$1.setFromPoints( points ).getCenter( center );\n\n\t\t}\n\n\t\tlet maxRadiusSq = 0;\n\n\t\tfor ( let i = 0, il = points.length; i < il; i ++ ) {\n\n\t\t\tmaxRadiusSq = Math.max( maxRadiusSq, center.distanceToSquared( points[ i ] ) );\n\n\t\t}\n\n\t\tthis.radius = Math.sqrt( maxRadiusSq );\n\n\t\treturn this;\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n\tcopy( sphere ) {\n\n\t\tthis.center.copy( sphere.center );\n\t\tthis.radius = sphere.radius;\n\n\t\treturn this;\n\n\t}\n\n\tisEmpty() {\n\n\t\treturn ( this.radius < 0 );\n\n\t}\n\n\tmakeEmpty() {\n\n\t\tthis.center.set( 0, 0, 0 );\n\t\tthis.radius = - 1;\n\n\t\treturn this;\n\n\t}\n\n\tcontainsPoint( point ) {\n\n\t\treturn ( point.distanceToSquared( this.center ) <= ( this.radius * this.radius ) );\n\n\t}\n\n\tdistanceToPoint( point ) {\n\n\t\treturn ( point.distanceTo( this.center ) - this.radius );\n\n\t}\n\n\tintersectsSphere( sphere ) {\n\n\t\tconst radiusSum = this.radius + sphere.radius;\n\n\t\treturn sphere.center.distanceToSquared( this.center ) <= ( radiusSum * radiusSum );\n\n\t}\n\n\tintersectsBox( box ) {\n\n\t\treturn box.intersectsSphere( this );\n\n\t}\n\n\tintersectsPlane( plane ) {\n\n\t\treturn Math.abs( plane.distanceToPoint( this.center ) ) <= this.radius;\n\n\t}\n\n\tclampPoint( point, target ) {\n\n\t\tconst deltaLengthSq = this.center.distanceToSquared( point );\n\n\t\tif ( target === undefined ) {\n\n\t\t\tconsole.warn( 'THREE.Sphere: .clampPoint() target is now required' );\n\t\t\ttarget = new Vector3();\n\n\t\t}\n\n\t\ttarget.copy( point );\n\n\t\tif ( deltaLengthSq > ( this.radius * this.radius ) ) {\n\n\t\t\ttarget.sub( this.center ).normalize();\n\t\t\ttarget.multiplyScalar( this.radius ).add( this.center );\n\n\t\t}\n\n\t\treturn target;\n\n\t}\n\n\tgetBoundingBox( target ) {\n\n\t\tif ( target === undefined ) {\n\n\t\t\tconsole.warn( 'THREE.Sphere: .getBoundingBox() target is now required' );\n\t\t\ttarget = new Box3();\n\n\t\t}\n\n\t\tif ( this.isEmpty() ) {\n\n\t\t\t// Empty sphere produces empty bounding box\n\t\t\ttarget.makeEmpty();\n\t\t\treturn target;\n\n\t\t}\n\n\t\ttarget.set( this.center, this.center );\n\t\ttarget.expandByScalar( this.radius );\n\n\t\treturn target;\n\n\t}\n\n\tapplyMatrix4( matrix ) {\n\n\t\tthis.center.applyMatrix4( matrix );\n\t\tthis.radius = this.radius * matrix.getMaxScaleOnAxis();\n\n\t\treturn this;\n\n\t}\n\n\ttranslate( offset ) {\n\n\t\tthis.center.add( offset );\n\n\t\treturn this;\n\n\t}\n\n\tequals( sphere ) {\n\n\t\treturn sphere.center.equals( this.center ) && ( sphere.radius === this.radius );\n\n\t}\n\n}\n\nconst _vector$2 = /*@__PURE__*/ new Vector3();\nconst _segCenter = /*@__PURE__*/ new Vector3();\nconst _segDir = /*@__PURE__*/ new Vector3();\nconst _diff = /*@__PURE__*/ new Vector3();\n\nconst _edge1 = /*@__PURE__*/ new Vector3();\nconst _edge2 = /*@__PURE__*/ new Vector3();\nconst _normal = /*@__PURE__*/ new Vector3();\n\nclass Ray {\n\n\tconstructor( origin, direction ) {\n\n\t\tthis.origin = ( origin !== undefined ) ? origin : new Vector3();\n\t\tthis.direction = ( direction !== undefined ) ? direction : new Vector3( 0, 0, - 1 );\n\n\t}\n\n\tset( origin, direction ) {\n\n\t\tthis.origin.copy( origin );\n\t\tthis.direction.copy( direction );\n\n\t\treturn this;\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n\tcopy( ray ) {\n\n\t\tthis.origin.copy( ray.origin );\n\t\tthis.direction.copy( ray.direction );\n\n\t\treturn this;\n\n\t}\n\n\tat( t, target ) {\n\n\t\tif ( target === undefined ) {\n\n\t\t\tconsole.warn( 'THREE.Ray: .at() target is now required' );\n\t\t\ttarget = new Vector3();\n\n\t\t}\n\n\t\treturn target.copy( this.direction ).multiplyScalar( t ).add( this.origin );\n\n\t}\n\n\tlookAt( v ) {\n\n\t\tthis.direction.copy( v ).sub( this.origin ).normalize();\n\n\t\treturn this;\n\n\t}\n\n\trecast( t ) {\n\n\t\tthis.origin.copy( this.at( t, _vector$2 ) );\n\n\t\treturn this;\n\n\t}\n\n\tclosestPointToPoint( point, target ) {\n\n\t\tif ( target === undefined ) {\n\n\t\t\tconsole.warn( 'THREE.Ray: .closestPointToPoint() target is now required' );\n\t\t\ttarget = new Vector3();\n\n\t\t}\n\n\t\ttarget.subVectors( point, this.origin );\n\n\t\tconst directionDistance = target.dot( this.direction );\n\n\t\tif ( directionDistance < 0 ) {\n\n\t\t\treturn target.copy( this.origin );\n\n\t\t}\n\n\t\treturn target.copy( this.direction ).multiplyScalar( directionDistance ).add( this.origin );\n\n\t}\n\n\tdistanceToPoint( point ) {\n\n\t\treturn Math.sqrt( this.distanceSqToPoint( point ) );\n\n\t}\n\n\tdistanceSqToPoint( point ) {\n\n\t\tconst directionDistance = _vector$2.subVectors( point, this.origin ).dot( this.direction );\n\n\t\t// point behind the ray\n\n\t\tif ( directionDistance < 0 ) {\n\n\t\t\treturn this.origin.distanceToSquared( point );\n\n\t\t}\n\n\t\t_vector$2.copy( this.direction ).multiplyScalar( directionDistance ).add( this.origin );\n\n\t\treturn _vector$2.distanceToSquared( point );\n\n\t}\n\n\tdistanceSqToSegment( v0, v1, optionalPointOnRay, optionalPointOnSegment ) {\n\n\t\t// from http://www.geometrictools.com/GTEngine/Include/Mathematics/GteDistRaySegment.h\n\t\t// It returns the min distance between the ray and the segment\n\t\t// defined by v0 and v1\n\t\t// It can also set two optional targets :\n\t\t// - The closest point on the ray\n\t\t// - The closest point on the segment\n\n\t\t_segCenter.copy( v0 ).add( v1 ).multiplyScalar( 0.5 );\n\t\t_segDir.copy( v1 ).sub( v0 ).normalize();\n\t\t_diff.copy( this.origin ).sub( _segCenter );\n\n\t\tconst segExtent = v0.distanceTo( v1 ) * 0.5;\n\t\tconst a01 = - this.direction.dot( _segDir );\n\t\tconst b0 = _diff.dot( this.direction );\n\t\tconst b1 = - _diff.dot( _segDir );\n\t\tconst c = _diff.lengthSq();\n\t\tconst det = Math.abs( 1 - a01 * a01 );\n\t\tlet s0, s1, sqrDist, extDet;\n\n\t\tif ( det > 0 ) {\n\n\t\t\t// The ray and segment are not parallel.\n\n\t\t\ts0 = a01 * b1 - b0;\n\t\t\ts1 = a01 * b0 - b1;\n\t\t\textDet = segExtent * det;\n\n\t\t\tif ( s0 >= 0 ) {\n\n\t\t\t\tif ( s1 >= - extDet ) {\n\n\t\t\t\t\tif ( s1 <= extDet ) {\n\n\t\t\t\t\t\t// region 0\n\t\t\t\t\t\t// Minimum at interior points of ray and segment.\n\n\t\t\t\t\t\tconst invDet = 1 / det;\n\t\t\t\t\t\ts0 *= invDet;\n\t\t\t\t\t\ts1 *= invDet;\n\t\t\t\t\t\tsqrDist = s0 * ( s0 + a01 * s1 + 2 * b0 ) + s1 * ( a01 * s0 + s1 + 2 * b1 ) + c;\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t// region 1\n\n\t\t\t\t\t\ts1 = segExtent;\n\t\t\t\t\t\ts0 = Math.max( 0, - ( a01 * s1 + b0 ) );\n\t\t\t\t\t\tsqrDist = - s0 * s0 + s1 * ( s1 + 2 * b1 ) + c;\n\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// region 5\n\n\t\t\t\t\ts1 = - segExtent;\n\t\t\t\t\ts0 = Math.max( 0, - ( a01 * s1 + b0 ) );\n\t\t\t\t\tsqrDist = - s0 * s0 + s1 * ( s1 + 2 * b1 ) + c;\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\tif ( s1 <= - extDet ) {\n\n\t\t\t\t\t// region 4\n\n\t\t\t\t\ts0 = Math.max( 0, - ( - a01 * segExtent + b0 ) );\n\t\t\t\t\ts1 = ( s0 > 0 ) ? - segExtent : Math.min( Math.max( - segExtent, - b1 ), segExtent );\n\t\t\t\t\tsqrDist = - s0 * s0 + s1 * ( s1 + 2 * b1 ) + c;\n\n\t\t\t\t} else if ( s1 <= extDet ) {\n\n\t\t\t\t\t// region 3\n\n\t\t\t\t\ts0 = 0;\n\t\t\t\t\ts1 = Math.min( Math.max( - segExtent, - b1 ), segExtent );\n\t\t\t\t\tsqrDist = s1 * ( s1 + 2 * b1 ) + c;\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// region 2\n\n\t\t\t\t\ts0 = Math.max( 0, - ( a01 * segExtent + b0 ) );\n\t\t\t\t\ts1 = ( s0 > 0 ) ? segExtent : Math.min( Math.max( - segExtent, - b1 ), segExtent );\n\t\t\t\t\tsqrDist = - s0 * s0 + s1 * ( s1 + 2 * b1 ) + c;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\t// Ray and segment are parallel.\n\n\t\t\ts1 = ( a01 > 0 ) ? - segExtent : segExtent;\n\t\t\ts0 = Math.max( 0, - ( a01 * s1 + b0 ) );\n\t\t\tsqrDist = - s0 * s0 + s1 * ( s1 + 2 * b1 ) + c;\n\n\t\t}\n\n\t\tif ( optionalPointOnRay ) {\n\n\t\t\toptionalPointOnRay.copy( this.direction ).multiplyScalar( s0 ).add( this.origin );\n\n\t\t}\n\n\t\tif ( optionalPointOnSegment ) {\n\n\t\t\toptionalPointOnSegment.copy( _segDir ).multiplyScalar( s1 ).add( _segCenter );\n\n\t\t}\n\n\t\treturn sqrDist;\n\n\t}\n\n\tintersectSphere( sphere, target ) {\n\n\t\t_vector$2.subVectors( sphere.center, this.origin );\n\t\tconst tca = _vector$2.dot( this.direction );\n\t\tconst d2 = _vector$2.dot( _vector$2 ) - tca * tca;\n\t\tconst radius2 = sphere.radius * sphere.radius;\n\n\t\tif ( d2 > radius2 ) return null;\n\n\t\tconst thc = Math.sqrt( radius2 - d2 );\n\n\t\t// t0 = first intersect point - entrance on front of sphere\n\t\tconst t0 = tca - thc;\n\n\t\t// t1 = second intersect point - exit point on back of sphere\n\t\tconst t1 = tca + thc;\n\n\t\t// test to see if both t0 and t1 are behind the ray - if so, return null\n\t\tif ( t0 < 0 && t1 < 0 ) return null;\n\n\t\t// test to see if t0 is behind the ray:\n\t\t// if it is, the ray is inside the sphere, so return the second exit point scaled by t1,\n\t\t// in order to always return an intersect point that is in front of the ray.\n\t\tif ( t0 < 0 ) return this.at( t1, target );\n\n\t\t// else t0 is in front of the ray, so return the first collision point scaled by t0\n\t\treturn this.at( t0, target );\n\n\t}\n\n\tintersectsSphere( sphere ) {\n\n\t\treturn this.distanceSqToPoint( sphere.center ) <= ( sphere.radius * sphere.radius );\n\n\t}\n\n\tdistanceToPlane( plane ) {\n\n\t\tconst denominator = plane.normal.dot( this.direction );\n\n\t\tif ( denominator === 0 ) {\n\n\t\t\t// line is coplanar, return origin\n\t\t\tif ( plane.distanceToPoint( this.origin ) === 0 ) {\n\n\t\t\t\treturn 0;\n\n\t\t\t}\n\n\t\t\t// Null is preferable to undefined since undefined means.... it is undefined\n\n\t\t\treturn null;\n\n\t\t}\n\n\t\tconst t = - ( this.origin.dot( plane.normal ) + plane.constant ) / denominator;\n\n\t\t// Return if the ray never intersects the plane\n\n\t\treturn t >= 0 ? t : null;\n\n\t}\n\n\tintersectPlane( plane, target ) {\n\n\t\tconst t = this.distanceToPlane( plane );\n\n\t\tif ( t === null ) {\n\n\t\t\treturn null;\n\n\t\t}\n\n\t\treturn this.at( t, target );\n\n\t}\n\n\tintersectsPlane( plane ) {\n\n\t\t// check if the ray lies on the plane first\n\n\t\tconst distToPoint = plane.distanceToPoint( this.origin );\n\n\t\tif ( distToPoint === 0 ) {\n\n\t\t\treturn true;\n\n\t\t}\n\n\t\tconst denominator = plane.normal.dot( this.direction );\n\n\t\tif ( denominator * distToPoint < 0 ) {\n\n\t\t\treturn true;\n\n\t\t}\n\n\t\t// ray origin is behind the plane (and is pointing behind it)\n\n\t\treturn false;\n\n\t}\n\n\tintersectBox( box, target ) {\n\n\t\tlet tmin, tmax, tymin, tymax, tzmin, tzmax;\n\n\t\tconst invdirx = 1 / this.direction.x,\n\t\t\tinvdiry = 1 / this.direction.y,\n\t\t\tinvdirz = 1 / this.direction.z;\n\n\t\tconst origin = this.origin;\n\n\t\tif ( invdirx >= 0 ) {\n\n\t\t\ttmin = ( box.min.x - origin.x ) * invdirx;\n\t\t\ttmax = ( box.max.x - origin.x ) * invdirx;\n\n\t\t} else {\n\n\t\t\ttmin = ( box.max.x - origin.x ) * invdirx;\n\t\t\ttmax = ( box.min.x - origin.x ) * invdirx;\n\n\t\t}\n\n\t\tif ( invdiry >= 0 ) {\n\n\t\t\ttymin = ( box.min.y - origin.y ) * invdiry;\n\t\t\ttymax = ( box.max.y - origin.y ) * invdiry;\n\n\t\t} else {\n\n\t\t\ttymin = ( box.max.y - origin.y ) * invdiry;\n\t\t\ttymax = ( box.min.y - origin.y ) * invdiry;\n\n\t\t}\n\n\t\tif ( ( tmin > tymax ) || ( tymin > tmax ) ) return null;\n\n\t\t// These lines also handle the case where tmin or tmax is NaN\n\t\t// (result of 0 * Infinity). x !== x returns true if x is NaN\n\n\t\tif ( tymin > tmin || tmin !== tmin ) tmin = tymin;\n\n\t\tif ( tymax < tmax || tmax !== tmax ) tmax = tymax;\n\n\t\tif ( invdirz >= 0 ) {\n\n\t\t\ttzmin = ( box.min.z - origin.z ) * invdirz;\n\t\t\ttzmax = ( box.max.z - origin.z ) * invdirz;\n\n\t\t} else {\n\n\t\t\ttzmin = ( box.max.z - origin.z ) * invdirz;\n\t\t\ttzmax = ( box.min.z - origin.z ) * invdirz;\n\n\t\t}\n\n\t\tif ( ( tmin > tzmax ) || ( tzmin > tmax ) ) return null;\n\n\t\tif ( tzmin > tmin || tmin !== tmin ) tmin = tzmin;\n\n\t\tif ( tzmax < tmax || tmax !== tmax ) tmax = tzmax;\n\n\t\t//return point closest to the ray (positive side)\n\n\t\tif ( tmax < 0 ) return null;\n\n\t\treturn this.at( tmin >= 0 ? tmin : tmax, target );\n\n\t}\n\n\tintersectsBox( box ) {\n\n\t\treturn this.intersectBox( box, _vector$2 ) !== null;\n\n\t}\n\n\tintersectTriangle( a, b, c, backfaceCulling, target ) {\n\n\t\t// Compute the offset origin, edges, and normal.\n\n\t\t// from http://www.geometrictools.com/GTEngine/Include/Mathematics/GteIntrRay3Triangle3.h\n\n\t\t_edge1.subVectors( b, a );\n\t\t_edge2.subVectors( c, a );\n\t\t_normal.crossVectors( _edge1, _edge2 );\n\n\t\t// Solve Q + t*D = b1*E1 + b2*E2 (Q = kDiff, D = ray direction,\n\t\t// E1 = kEdge1, E2 = kEdge2, N = Cross(E1,E2)) by\n\t\t// |Dot(D,N)|*b1 = sign(Dot(D,N))*Dot(D,Cross(Q,E2))\n\t\t// |Dot(D,N)|*b2 = sign(Dot(D,N))*Dot(D,Cross(E1,Q))\n\t\t// |Dot(D,N)|*t = -sign(Dot(D,N))*Dot(Q,N)\n\t\tlet DdN = this.direction.dot( _normal );\n\t\tlet sign;\n\n\t\tif ( DdN > 0 ) {\n\n\t\t\tif ( backfaceCulling ) return null;\n\t\t\tsign = 1;\n\n\t\t} else if ( DdN < 0 ) {\n\n\t\t\tsign = - 1;\n\t\t\tDdN = - DdN;\n\n\t\t} else {\n\n\t\t\treturn null;\n\n\t\t}\n\n\t\t_diff.subVectors( this.origin, a );\n\t\tconst DdQxE2 = sign * this.direction.dot( _edge2.crossVectors( _diff, _edge2 ) );\n\n\t\t// b1 < 0, no intersection\n\t\tif ( DdQxE2 < 0 ) {\n\n\t\t\treturn null;\n\n\t\t}\n\n\t\tconst DdE1xQ = sign * this.direction.dot( _edge1.cross( _diff ) );\n\n\t\t// b2 < 0, no intersection\n\t\tif ( DdE1xQ < 0 ) {\n\n\t\t\treturn null;\n\n\t\t}\n\n\t\t// b1+b2 > 1, no intersection\n\t\tif ( DdQxE2 + DdE1xQ > DdN ) {\n\n\t\t\treturn null;\n\n\t\t}\n\n\t\t// Line intersects triangle, check if ray does.\n\t\tconst QdN = - sign * _diff.dot( _normal );\n\n\t\t// t < 0, no intersection\n\t\tif ( QdN < 0 ) {\n\n\t\t\treturn null;\n\n\t\t}\n\n\t\t// Ray intersects triangle.\n\t\treturn this.at( QdN / DdN, target );\n\n\t}\n\n\tapplyMatrix4( matrix4 ) {\n\n\t\tthis.origin.applyMatrix4( matrix4 );\n\t\tthis.direction.transformDirection( matrix4 );\n\n\t\treturn this;\n\n\t}\n\n\tequals( ray ) {\n\n\t\treturn ray.origin.equals( this.origin ) && ray.direction.equals( this.direction );\n\n\t}\n\n}\n\nclass Matrix4 {\n\n\tconstructor() {\n\n\t\tObject.defineProperty( this, 'isMatrix4', { value: true } );\n\n\t\tthis.elements = [\n\n\t\t\t1, 0, 0, 0,\n\t\t\t0, 1, 0, 0,\n\t\t\t0, 0, 1, 0,\n\t\t\t0, 0, 0, 1\n\n\t\t];\n\n\t\tif ( arguments.length > 0 ) {\n\n\t\t\tconsole.error( 'THREE.Matrix4: the constructor no longer reads arguments. use .set() instead.' );\n\n\t\t}\n\n\t}\n\n\tset( n11, n12, n13, n14, n21, n22, n23, n24, n31, n32, n33, n34, n41, n42, n43, n44 ) {\n\n\t\tconst te = this.elements;\n\n\t\tte[ 0 ] = n11; te[ 4 ] = n12; te[ 8 ] = n13; te[ 12 ] = n14;\n\t\tte[ 1 ] = n21; te[ 5 ] = n22; te[ 9 ] = n23; te[ 13 ] = n24;\n\t\tte[ 2 ] = n31; te[ 6 ] = n32; te[ 10 ] = n33; te[ 14 ] = n34;\n\t\tte[ 3 ] = n41; te[ 7 ] = n42; te[ 11 ] = n43; te[ 15 ] = n44;\n\n\t\treturn this;\n\n\t}\n\n\tidentity() {\n\n\t\tthis.set(\n\n\t\t\t1, 0, 0, 0,\n\t\t\t0, 1, 0, 0,\n\t\t\t0, 0, 1, 0,\n\t\t\t0, 0, 0, 1\n\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\tclone() {\n\n\t\treturn new Matrix4().fromArray( this.elements );\n\n\t}\n\n\tcopy( m ) {\n\n\t\tconst te = this.elements;\n\t\tconst me = m.elements;\n\n\t\tte[ 0 ] = me[ 0 ]; te[ 1 ] = me[ 1 ]; te[ 2 ] = me[ 2 ]; te[ 3 ] = me[ 3 ];\n\t\tte[ 4 ] = me[ 4 ]; te[ 5 ] = me[ 5 ]; te[ 6 ] = me[ 6 ]; te[ 7 ] = me[ 7 ];\n\t\tte[ 8 ] = me[ 8 ]; te[ 9 ] = me[ 9 ]; te[ 10 ] = me[ 10 ]; te[ 11 ] = me[ 11 ];\n\t\tte[ 12 ] = me[ 12 ]; te[ 13 ] = me[ 13 ]; te[ 14 ] = me[ 14 ]; te[ 15 ] = me[ 15 ];\n\n\t\treturn this;\n\n\t}\n\n\tcopyPosition( m ) {\n\n\t\tconst te = this.elements, me = m.elements;\n\n\t\tte[ 12 ] = me[ 12 ];\n\t\tte[ 13 ] = me[ 13 ];\n\t\tte[ 14 ] = me[ 14 ];\n\n\t\treturn this;\n\n\t}\n\n\tsetFromMatrix3( m ) {\n\n\t\tconst me = m.elements;\n\n\t\tthis.set(\n\n\t\t\tme[ 0 ], me[ 3 ], me[ 6 ], 0,\n\t\t\tme[ 1 ], me[ 4 ], me[ 7 ], 0,\n\t\t\tme[ 2 ], me[ 5 ], me[ 8 ], 0,\n\t\t\t0, 0, 0, 1\n\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\textractBasis( xAxis, yAxis, zAxis ) {\n\n\t\txAxis.setFromMatrixColumn( this, 0 );\n\t\tyAxis.setFromMatrixColumn( this, 1 );\n\t\tzAxis.setFromMatrixColumn( this, 2 );\n\n\t\treturn this;\n\n\t}\n\n\tmakeBasis( xAxis, yAxis, zAxis ) {\n\n\t\tthis.set(\n\t\t\txAxis.x, yAxis.x, zAxis.x, 0,\n\t\t\txAxis.y, yAxis.y, zAxis.y, 0,\n\t\t\txAxis.z, yAxis.z, zAxis.z, 0,\n\t\t\t0, 0, 0, 1\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\textractRotation( m ) {\n\n\t\t// this method does not support reflection matrices\n\n\t\tconst te = this.elements;\n\t\tconst me = m.elements;\n\n\t\tconst scaleX = 1 / _v1$1.setFromMatrixColumn( m, 0 ).length();\n\t\tconst scaleY = 1 / _v1$1.setFromMatrixColumn( m, 1 ).length();\n\t\tconst scaleZ = 1 / _v1$1.setFromMatrixColumn( m, 2 ).length();\n\n\t\tte[ 0 ] = me[ 0 ] * scaleX;\n\t\tte[ 1 ] = me[ 1 ] * scaleX;\n\t\tte[ 2 ] = me[ 2 ] * scaleX;\n\t\tte[ 3 ] = 0;\n\n\t\tte[ 4 ] = me[ 4 ] * scaleY;\n\t\tte[ 5 ] = me[ 5 ] * scaleY;\n\t\tte[ 6 ] = me[ 6 ] * scaleY;\n\t\tte[ 7 ] = 0;\n\n\t\tte[ 8 ] = me[ 8 ] * scaleZ;\n\t\tte[ 9 ] = me[ 9 ] * scaleZ;\n\t\tte[ 10 ] = me[ 10 ] * scaleZ;\n\t\tte[ 11 ] = 0;\n\n\t\tte[ 12 ] = 0;\n\t\tte[ 13 ] = 0;\n\t\tte[ 14 ] = 0;\n\t\tte[ 15 ] = 1;\n\n\t\treturn this;\n\n\t}\n\n\tmakeRotationFromEuler( euler ) {\n\n\t\tif ( ! ( euler && euler.isEuler ) ) {\n\n\t\t\tconsole.error( 'THREE.Matrix4: .makeRotationFromEuler() now expects a Euler rotation rather than a Vector3 and order.' );\n\n\t\t}\n\n\t\tconst te = this.elements;\n\n\t\tconst x = euler.x, y = euler.y, z = euler.z;\n\t\tconst a = Math.cos( x ), b = Math.sin( x );\n\t\tconst c = Math.cos( y ), d = Math.sin( y );\n\t\tconst e = Math.cos( z ), f = Math.sin( z );\n\n\t\tif ( euler.order === 'XYZ' ) {\n\n\t\t\tconst ae = a * e, af = a * f, be = b * e, bf = b * f;\n\n\t\t\tte[ 0 ] = c * e;\n\t\t\tte[ 4 ] = - c * f;\n\t\t\tte[ 8 ] = d;\n\n\t\t\tte[ 1 ] = af + be * d;\n\t\t\tte[ 5 ] = ae - bf * d;\n\t\t\tte[ 9 ] = - b * c;\n\n\t\t\tte[ 2 ] = bf - ae * d;\n\t\t\tte[ 6 ] = be + af * d;\n\t\t\tte[ 10 ] = a * c;\n\n\t\t} else if ( euler.order === 'YXZ' ) {\n\n\t\t\tconst ce = c * e, cf = c * f, de = d * e, df = d * f;\n\n\t\t\tte[ 0 ] = ce + df * b;\n\t\t\tte[ 4 ] = de * b - cf;\n\t\t\tte[ 8 ] = a * d;\n\n\t\t\tte[ 1 ] = a * f;\n\t\t\tte[ 5 ] = a * e;\n\t\t\tte[ 9 ] = - b;\n\n\t\t\tte[ 2 ] = cf * b - de;\n\t\t\tte[ 6 ] = df + ce * b;\n\t\t\tte[ 10 ] = a * c;\n\n\t\t} else if ( euler.order === 'ZXY' ) {\n\n\t\t\tconst ce = c * e, cf = c * f, de = d * e, df = d * f;\n\n\t\t\tte[ 0 ] = ce - df * b;\n\t\t\tte[ 4 ] = - a * f;\n\t\t\tte[ 8 ] = de + cf * b;\n\n\t\t\tte[ 1 ] = cf + de * b;\n\t\t\tte[ 5 ] = a * e;\n\t\t\tte[ 9 ] = df - ce * b;\n\n\t\t\tte[ 2 ] = - a * d;\n\t\t\tte[ 6 ] = b;\n\t\t\tte[ 10 ] = a * c;\n\n\t\t} else if ( euler.order === 'ZYX' ) {\n\n\t\t\tconst ae = a * e, af = a * f, be = b * e, bf = b * f;\n\n\t\t\tte[ 0 ] = c * e;\n\t\t\tte[ 4 ] = be * d - af;\n\t\t\tte[ 8 ] = ae * d + bf;\n\n\t\t\tte[ 1 ] = c * f;\n\t\t\tte[ 5 ] = bf * d + ae;\n\t\t\tte[ 9 ] = af * d - be;\n\n\t\t\tte[ 2 ] = - d;\n\t\t\tte[ 6 ] = b * c;\n\t\t\tte[ 10 ] = a * c;\n\n\t\t} else if ( euler.order === 'YZX' ) {\n\n\t\t\tconst ac = a * c, ad = a * d, bc = b * c, bd = b * d;\n\n\t\t\tte[ 0 ] = c * e;\n\t\t\tte[ 4 ] = bd - ac * f;\n\t\t\tte[ 8 ] = bc * f + ad;\n\n\t\t\tte[ 1 ] = f;\n\t\t\tte[ 5 ] = a * e;\n\t\t\tte[ 9 ] = - b * e;\n\n\t\t\tte[ 2 ] = - d * e;\n\t\t\tte[ 6 ] = ad * f + bc;\n\t\t\tte[ 10 ] = ac - bd * f;\n\n\t\t} else if ( euler.order === 'XZY' ) {\n\n\t\t\tconst ac = a * c, ad = a * d, bc = b * c, bd = b * d;\n\n\t\t\tte[ 0 ] = c * e;\n\t\t\tte[ 4 ] = - f;\n\t\t\tte[ 8 ] = d * e;\n\n\t\t\tte[ 1 ] = ac * f + bd;\n\t\t\tte[ 5 ] = a * e;\n\t\t\tte[ 9 ] = ad * f - bc;\n\n\t\t\tte[ 2 ] = bc * f - ad;\n\t\t\tte[ 6 ] = b * e;\n\t\t\tte[ 10 ] = bd * f + ac;\n\n\t\t}\n\n\t\t// bottom row\n\t\tte[ 3 ] = 0;\n\t\tte[ 7 ] = 0;\n\t\tte[ 11 ] = 0;\n\n\t\t// last column\n\t\tte[ 12 ] = 0;\n\t\tte[ 13 ] = 0;\n\t\tte[ 14 ] = 0;\n\t\tte[ 15 ] = 1;\n\n\t\treturn this;\n\n\t}\n\n\tmakeRotationFromQuaternion( q ) {\n\n\t\treturn this.compose( _zero, q, _one );\n\n\t}\n\n\tlookAt( eye, target, up ) {\n\n\t\tconst te = this.elements;\n\n\t\t_z.subVectors( eye, target );\n\n\t\tif ( _z.lengthSq() === 0 ) {\n\n\t\t\t// eye and target are in the same position\n\n\t\t\t_z.z = 1;\n\n\t\t}\n\n\t\t_z.normalize();\n\t\t_x.crossVectors( up, _z );\n\n\t\tif ( _x.lengthSq() === 0 ) {\n\n\t\t\t// up and z are parallel\n\n\t\t\tif ( Math.abs( up.z ) === 1 ) {\n\n\t\t\t\t_z.x += 0.0001;\n\n\t\t\t} else {\n\n\t\t\t\t_z.z += 0.0001;\n\n\t\t\t}\n\n\t\t\t_z.normalize();\n\t\t\t_x.crossVectors( up, _z );\n\n\t\t}\n\n\t\t_x.normalize();\n\t\t_y.crossVectors( _z, _x );\n\n\t\tte[ 0 ] = _x.x; te[ 4 ] = _y.x; te[ 8 ] = _z.x;\n\t\tte[ 1 ] = _x.y; te[ 5 ] = _y.y; te[ 9 ] = _z.y;\n\t\tte[ 2 ] = _x.z; te[ 6 ] = _y.z; te[ 10 ] = _z.z;\n\n\t\treturn this;\n\n\t}\n\n\tmultiply( m, n ) {\n\n\t\tif ( n !== undefined ) {\n\n\t\t\tconsole.warn( 'THREE.Matrix4: .multiply() now only accepts one argument. Use .multiplyMatrices( a, b ) instead.' );\n\t\t\treturn this.multiplyMatrices( m, n );\n\n\t\t}\n\n\t\treturn this.multiplyMatrices( this, m );\n\n\t}\n\n\tpremultiply( m ) {\n\n\t\treturn this.multiplyMatrices( m, this );\n\n\t}\n\n\tmultiplyMatrices( a, b ) {\n\n\t\tconst ae = a.elements;\n\t\tconst be = b.elements;\n\t\tconst te = this.elements;\n\n\t\tconst a11 = ae[ 0 ], a12 = ae[ 4 ], a13 = ae[ 8 ], a14 = ae[ 12 ];\n\t\tconst a21 = ae[ 1 ], a22 = ae[ 5 ], a23 = ae[ 9 ], a24 = ae[ 13 ];\n\t\tconst a31 = ae[ 2 ], a32 = ae[ 6 ], a33 = ae[ 10 ], a34 = ae[ 14 ];\n\t\tconst a41 = ae[ 3 ], a42 = ae[ 7 ], a43 = ae[ 11 ], a44 = ae[ 15 ];\n\n\t\tconst b11 = be[ 0 ], b12 = be[ 4 ], b13 = be[ 8 ], b14 = be[ 12 ];\n\t\tconst b21 = be[ 1 ], b22 = be[ 5 ], b23 = be[ 9 ], b24 = be[ 13 ];\n\t\tconst b31 = be[ 2 ], b32 = be[ 6 ], b33 = be[ 10 ], b34 = be[ 14 ];\n\t\tconst b41 = be[ 3 ], b42 = be[ 7 ], b43 = be[ 11 ], b44 = be[ 15 ];\n\n\t\tte[ 0 ] = a11 * b11 + a12 * b21 + a13 * b31 + a14 * b41;\n\t\tte[ 4 ] = a11 * b12 + a12 * b22 + a13 * b32 + a14 * b42;\n\t\tte[ 8 ] = a11 * b13 + a12 * b23 + a13 * b33 + a14 * b43;\n\t\tte[ 12 ] = a11 * b14 + a12 * b24 + a13 * b34 + a14 * b44;\n\n\t\tte[ 1 ] = a21 * b11 + a22 * b21 + a23 * b31 + a24 * b41;\n\t\tte[ 5 ] = a21 * b12 + a22 * b22 + a23 * b32 + a24 * b42;\n\t\tte[ 9 ] = a21 * b13 + a22 * b23 + a23 * b33 + a24 * b43;\n\t\tte[ 13 ] = a21 * b14 + a22 * b24 + a23 * b34 + a24 * b44;\n\n\t\tte[ 2 ] = a31 * b11 + a32 * b21 + a33 * b31 + a34 * b41;\n\t\tte[ 6 ] = a31 * b12 + a32 * b22 + a33 * b32 + a34 * b42;\n\t\tte[ 10 ] = a31 * b13 + a32 * b23 + a33 * b33 + a34 * b43;\n\t\tte[ 14 ] = a31 * b14 + a32 * b24 + a33 * b34 + a34 * b44;\n\n\t\tte[ 3 ] = a41 * b11 + a42 * b21 + a43 * b31 + a44 * b41;\n\t\tte[ 7 ] = a41 * b12 + a42 * b22 + a43 * b32 + a44 * b42;\n\t\tte[ 11 ] = a41 * b13 + a42 * b23 + a43 * b33 + a44 * b43;\n\t\tte[ 15 ] = a41 * b14 + a42 * b24 + a43 * b34 + a44 * b44;\n\n\t\treturn this;\n\n\t}\n\n\tmultiplyScalar( s ) {\n\n\t\tconst te = this.elements;\n\n\t\tte[ 0 ] *= s; te[ 4 ] *= s; te[ 8 ] *= s; te[ 12 ] *= s;\n\t\tte[ 1 ] *= s; te[ 5 ] *= s; te[ 9 ] *= s; te[ 13 ] *= s;\n\t\tte[ 2 ] *= s; te[ 6 ] *= s; te[ 10 ] *= s; te[ 14 ] *= s;\n\t\tte[ 3 ] *= s; te[ 7 ] *= s; te[ 11 ] *= s; te[ 15 ] *= s;\n\n\t\treturn this;\n\n\t}\n\n\tdeterminant() {\n\n\t\tconst te = this.elements;\n\n\t\tconst n11 = te[ 0 ], n12 = te[ 4 ], n13 = te[ 8 ], n14 = te[ 12 ];\n\t\tconst n21 = te[ 1 ], n22 = te[ 5 ], n23 = te[ 9 ], n24 = te[ 13 ];\n\t\tconst n31 = te[ 2 ], n32 = te[ 6 ], n33 = te[ 10 ], n34 = te[ 14 ];\n\t\tconst n41 = te[ 3 ], n42 = te[ 7 ], n43 = te[ 11 ], n44 = te[ 15 ];\n\n\t\t//TODO: make this more efficient\n\t\t//( based on http://www.euclideanspace.com/maths/algebra/matrix/functions/inverse/fourD/index.htm )\n\n\t\treturn (\n\t\t\tn41 * (\n\t\t\t\t+ n14 * n23 * n32\n\t\t\t\t - n13 * n24 * n32\n\t\t\t\t - n14 * n22 * n33\n\t\t\t\t + n12 * n24 * n33\n\t\t\t\t + n13 * n22 * n34\n\t\t\t\t - n12 * n23 * n34\n\t\t\t) +\n\t\t\tn42 * (\n\t\t\t\t+ n11 * n23 * n34\n\t\t\t\t - n11 * n24 * n33\n\t\t\t\t + n14 * n21 * n33\n\t\t\t\t - n13 * n21 * n34\n\t\t\t\t + n13 * n24 * n31\n\t\t\t\t - n14 * n23 * n31\n\t\t\t) +\n\t\t\tn43 * (\n\t\t\t\t+ n11 * n24 * n32\n\t\t\t\t - n11 * n22 * n34\n\t\t\t\t - n14 * n21 * n32\n\t\t\t\t + n12 * n21 * n34\n\t\t\t\t + n14 * n22 * n31\n\t\t\t\t - n12 * n24 * n31\n\t\t\t) +\n\t\t\tn44 * (\n\t\t\t\t- n13 * n22 * n31\n\t\t\t\t - n11 * n23 * n32\n\t\t\t\t + n11 * n22 * n33\n\t\t\t\t + n13 * n21 * n32\n\t\t\t\t - n12 * n21 * n33\n\t\t\t\t + n12 * n23 * n31\n\t\t\t)\n\n\t\t);\n\n\t}\n\n\ttranspose() {\n\n\t\tconst te = this.elements;\n\t\tlet tmp;\n\n\t\ttmp = te[ 1 ]; te[ 1 ] = te[ 4 ]; te[ 4 ] = tmp;\n\t\ttmp = te[ 2 ]; te[ 2 ] = te[ 8 ]; te[ 8 ] = tmp;\n\t\ttmp = te[ 6 ]; te[ 6 ] = te[ 9 ]; te[ 9 ] = tmp;\n\n\t\ttmp = te[ 3 ]; te[ 3 ] = te[ 12 ]; te[ 12 ] = tmp;\n\t\ttmp = te[ 7 ]; te[ 7 ] = te[ 13 ]; te[ 13 ] = tmp;\n\t\ttmp = te[ 11 ]; te[ 11 ] = te[ 14 ]; te[ 14 ] = tmp;\n\n\t\treturn this;\n\n\t}\n\n\tsetPosition( x, y, z ) {\n\n\t\tconst te = this.elements;\n\n\t\tif ( x.isVector3 ) {\n\n\t\t\tte[ 12 ] = x.x;\n\t\t\tte[ 13 ] = x.y;\n\t\t\tte[ 14 ] = x.z;\n\n\t\t} else {\n\n\t\t\tte[ 12 ] = x;\n\t\t\tte[ 13 ] = y;\n\t\t\tte[ 14 ] = z;\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tinvert() {\n\n\t\t// based on http://www.euclideanspace.com/maths/algebra/matrix/functions/inverse/fourD/index.htm\n\t\tconst te = this.elements,\n\n\t\t\tn11 = te[ 0 ], n21 = te[ 1 ], n31 = te[ 2 ], n41 = te[ 3 ],\n\t\t\tn12 = te[ 4 ], n22 = te[ 5 ], n32 = te[ 6 ], n42 = te[ 7 ],\n\t\t\tn13 = te[ 8 ], n23 = te[ 9 ], n33 = te[ 10 ], n43 = te[ 11 ],\n\t\t\tn14 = te[ 12 ], n24 = te[ 13 ], n34 = te[ 14 ], n44 = te[ 15 ],\n\n\t\t\tt11 = n23 * n34 * n42 - n24 * n33 * n42 + n24 * n32 * n43 - n22 * n34 * n43 - n23 * n32 * n44 + n22 * n33 * n44,\n\t\t\tt12 = n14 * n33 * n42 - n13 * n34 * n42 - n14 * n32 * n43 + n12 * n34 * n43 + n13 * n32 * n44 - n12 * n33 * n44,\n\t\t\tt13 = n13 * n24 * n42 - n14 * n23 * n42 + n14 * n22 * n43 - n12 * n24 * n43 - n13 * n22 * n44 + n12 * n23 * n44,\n\t\t\tt14 = n14 * n23 * n32 - n13 * n24 * n32 - n14 * n22 * n33 + n12 * n24 * n33 + n13 * n22 * n34 - n12 * n23 * n34;\n\n\t\tconst det = n11 * t11 + n21 * t12 + n31 * t13 + n41 * t14;\n\n\t\tif ( det === 0 ) return this.set( 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 );\n\n\t\tconst detInv = 1 / det;\n\n\t\tte[ 0 ] = t11 * detInv;\n\t\tte[ 1 ] = ( n24 * n33 * n41 - n23 * n34 * n41 - n24 * n31 * n43 + n21 * n34 * n43 + n23 * n31 * n44 - n21 * n33 * n44 ) * detInv;\n\t\tte[ 2 ] = ( n22 * n34 * n41 - n24 * n32 * n41 + n24 * n31 * n42 - n21 * n34 * n42 - n22 * n31 * n44 + n21 * n32 * n44 ) * detInv;\n\t\tte[ 3 ] = ( n23 * n32 * n41 - n22 * n33 * n41 - n23 * n31 * n42 + n21 * n33 * n42 + n22 * n31 * n43 - n21 * n32 * n43 ) * detInv;\n\n\t\tte[ 4 ] = t12 * detInv;\n\t\tte[ 5 ] = ( n13 * n34 * n41 - n14 * n33 * n41 + n14 * n31 * n43 - n11 * n34 * n43 - n13 * n31 * n44 + n11 * n33 * n44 ) * detInv;\n\t\tte[ 6 ] = ( n14 * n32 * n41 - n12 * n34 * n41 - n14 * n31 * n42 + n11 * n34 * n42 + n12 * n31 * n44 - n11 * n32 * n44 ) * detInv;\n\t\tte[ 7 ] = ( n12 * n33 * n41 - n13 * n32 * n41 + n13 * n31 * n42 - n11 * n33 * n42 - n12 * n31 * n43 + n11 * n32 * n43 ) * detInv;\n\n\t\tte[ 8 ] = t13 * detInv;\n\t\tte[ 9 ] = ( n14 * n23 * n41 - n13 * n24 * n41 - n14 * n21 * n43 + n11 * n24 * n43 + n13 * n21 * n44 - n11 * n23 * n44 ) * detInv;\n\t\tte[ 10 ] = ( n12 * n24 * n41 - n14 * n22 * n41 + n14 * n21 * n42 - n11 * n24 * n42 - n12 * n21 * n44 + n11 * n22 * n44 ) * detInv;\n\t\tte[ 11 ] = ( n13 * n22 * n41 - n12 * n23 * n41 - n13 * n21 * n42 + n11 * n23 * n42 + n12 * n21 * n43 - n11 * n22 * n43 ) * detInv;\n\n\t\tte[ 12 ] = t14 * detInv;\n\t\tte[ 13 ] = ( n13 * n24 * n31 - n14 * n23 * n31 + n14 * n21 * n33 - n11 * n24 * n33 - n13 * n21 * n34 + n11 * n23 * n34 ) * detInv;\n\t\tte[ 14 ] = ( n14 * n22 * n31 - n12 * n24 * n31 - n14 * n21 * n32 + n11 * n24 * n32 + n12 * n21 * n34 - n11 * n22 * n34 ) * detInv;\n\t\tte[ 15 ] = ( n12 * n23 * n31 - n13 * n22 * n31 + n13 * n21 * n32 - n11 * n23 * n32 - n12 * n21 * n33 + n11 * n22 * n33 ) * detInv;\n\n\t\treturn this;\n\n\t}\n\n\tscale( v ) {\n\n\t\tconst te = this.elements;\n\t\tconst x = v.x, y = v.y, z = v.z;\n\n\t\tte[ 0 ] *= x; te[ 4 ] *= y; te[ 8 ] *= z;\n\t\tte[ 1 ] *= x; te[ 5 ] *= y; te[ 9 ] *= z;\n\t\tte[ 2 ] *= x; te[ 6 ] *= y; te[ 10 ] *= z;\n\t\tte[ 3 ] *= x; te[ 7 ] *= y; te[ 11 ] *= z;\n\n\t\treturn this;\n\n\t}\n\n\tgetMaxScaleOnAxis() {\n\n\t\tconst te = this.elements;\n\n\t\tconst scaleXSq = te[ 0 ] * te[ 0 ] + te[ 1 ] * te[ 1 ] + te[ 2 ] * te[ 2 ];\n\t\tconst scaleYSq = te[ 4 ] * te[ 4 ] + te[ 5 ] * te[ 5 ] + te[ 6 ] * te[ 6 ];\n\t\tconst scaleZSq = te[ 8 ] * te[ 8 ] + te[ 9 ] * te[ 9 ] + te[ 10 ] * te[ 10 ];\n\n\t\treturn Math.sqrt( Math.max( scaleXSq, scaleYSq, scaleZSq ) );\n\n\t}\n\n\tmakeTranslation( x, y, z ) {\n\n\t\tthis.set(\n\n\t\t\t1, 0, 0, x,\n\t\t\t0, 1, 0, y,\n\t\t\t0, 0, 1, z,\n\t\t\t0, 0, 0, 1\n\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\tmakeRotationX( theta ) {\n\n\t\tconst c = Math.cos( theta ), s = Math.sin( theta );\n\n\t\tthis.set(\n\n\t\t\t1, 0, 0, 0,\n\t\t\t0, c, - s, 0,\n\t\t\t0, s, c, 0,\n\t\t\t0, 0, 0, 1\n\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\tmakeRotationY( theta ) {\n\n\t\tconst c = Math.cos( theta ), s = Math.sin( theta );\n\n\t\tthis.set(\n\n\t\t\t c, 0, s, 0,\n\t\t\t 0, 1, 0, 0,\n\t\t\t- s, 0, c, 0,\n\t\t\t 0, 0, 0, 1\n\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\tmakeRotationZ( theta ) {\n\n\t\tconst c = Math.cos( theta ), s = Math.sin( theta );\n\n\t\tthis.set(\n\n\t\t\tc, - s, 0, 0,\n\t\t\ts, c, 0, 0,\n\t\t\t0, 0, 1, 0,\n\t\t\t0, 0, 0, 1\n\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\tmakeRotationAxis( axis, angle ) {\n\n\t\t// Based on http://www.gamedev.net/reference/articles/article1199.asp\n\n\t\tconst c = Math.cos( angle );\n\t\tconst s = Math.sin( angle );\n\t\tconst t = 1 - c;\n\t\tconst x = axis.x, y = axis.y, z = axis.z;\n\t\tconst tx = t * x, ty = t * y;\n\n\t\tthis.set(\n\n\t\t\ttx * x + c, tx * y - s * z, tx * z + s * y, 0,\n\t\t\ttx * y + s * z, ty * y + c, ty * z - s * x, 0,\n\t\t\ttx * z - s * y, ty * z + s * x, t * z * z + c, 0,\n\t\t\t0, 0, 0, 1\n\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\tmakeScale( x, y, z ) {\n\n\t\tthis.set(\n\n\t\t\tx, 0, 0, 0,\n\t\t\t0, y, 0, 0,\n\t\t\t0, 0, z, 0,\n\t\t\t0, 0, 0, 1\n\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\tmakeShear( x, y, z ) {\n\n\t\tthis.set(\n\n\t\t\t1, y, z, 0,\n\t\t\tx, 1, z, 0,\n\t\t\tx, y, 1, 0,\n\t\t\t0, 0, 0, 1\n\n\t\t);\n\n\t\treturn this;\n\n\t}\n\n\tcompose( position, quaternion, scale ) {\n\n\t\tconst te = this.elements;\n\n\t\tconst x = quaternion._x, y = quaternion._y, z = quaternion._z, w = quaternion._w;\n\t\tconst x2 = x + x,\ty2 = y + y, z2 = z + z;\n\t\tconst xx = x * x2, xy = x * y2, xz = x * z2;\n\t\tconst yy = y * y2, yz = y * z2, zz = z * z2;\n\t\tconst wx = w * x2, wy = w * y2, wz = w * z2;\n\n\t\tconst sx = scale.x, sy = scale.y, sz = scale.z;\n\n\t\tte[ 0 ] = ( 1 - ( yy + zz ) ) * sx;\n\t\tte[ 1 ] = ( xy + wz ) * sx;\n\t\tte[ 2 ] = ( xz - wy ) * sx;\n\t\tte[ 3 ] = 0;\n\n\t\tte[ 4 ] = ( xy - wz ) * sy;\n\t\tte[ 5 ] = ( 1 - ( xx + zz ) ) * sy;\n\t\tte[ 6 ] = ( yz + wx ) * sy;\n\t\tte[ 7 ] = 0;\n\n\t\tte[ 8 ] = ( xz + wy ) * sz;\n\t\tte[ 9 ] = ( yz - wx ) * sz;\n\t\tte[ 10 ] = ( 1 - ( xx + yy ) ) * sz;\n\t\tte[ 11 ] = 0;\n\n\t\tte[ 12 ] = position.x;\n\t\tte[ 13 ] = position.y;\n\t\tte[ 14 ] = position.z;\n\t\tte[ 15 ] = 1;\n\n\t\treturn this;\n\n\t}\n\n\tdecompose( position, quaternion, scale ) {\n\n\t\tconst te = this.elements;\n\n\t\tlet sx = _v1$1.set( te[ 0 ], te[ 1 ], te[ 2 ] ).length();\n\t\tconst sy = _v1$1.set( te[ 4 ], te[ 5 ], te[ 6 ] ).length();\n\t\tconst sz = _v1$1.set( te[ 8 ], te[ 9 ], te[ 10 ] ).length();\n\n\t\t// if determine is negative, we need to invert one scale\n\t\tconst det = this.determinant();\n\t\tif ( det < 0 ) sx = - sx;\n\n\t\tposition.x = te[ 12 ];\n\t\tposition.y = te[ 13 ];\n\t\tposition.z = te[ 14 ];\n\n\t\t// scale the rotation part\n\t\t_m1.copy( this );\n\n\t\tconst invSX = 1 / sx;\n\t\tconst invSY = 1 / sy;\n\t\tconst invSZ = 1 / sz;\n\n\t\t_m1.elements[ 0 ] *= invSX;\n\t\t_m1.elements[ 1 ] *= invSX;\n\t\t_m1.elements[ 2 ] *= invSX;\n\n\t\t_m1.elements[ 4 ] *= invSY;\n\t\t_m1.elements[ 5 ] *= invSY;\n\t\t_m1.elements[ 6 ] *= invSY;\n\n\t\t_m1.elements[ 8 ] *= invSZ;\n\t\t_m1.elements[ 9 ] *= invSZ;\n\t\t_m1.elements[ 10 ] *= invSZ;\n\n\t\tquaternion.setFromRotationMatrix( _m1 );\n\n\t\tscale.x = sx;\n\t\tscale.y = sy;\n\t\tscale.z = sz;\n\n\t\treturn this;\n\n\t}\n\n\tmakePerspective( left, right, top, bottom, near, far ) {\n\n\t\tif ( far === undefined ) {\n\n\t\t\tconsole.warn( 'THREE.Matrix4: .makePerspective() has been redefined and has a new signature. Please check the docs.' );\n\n\t\t}\n\n\t\tconst te = this.elements;\n\t\tconst x = 2 * near / ( right - left );\n\t\tconst y = 2 * near / ( top - bottom );\n\n\t\tconst a = ( right + left ) / ( right - left );\n\t\tconst b = ( top + bottom ) / ( top - bottom );\n\t\tconst c = - ( far + near ) / ( far - near );\n\t\tconst d = - 2 * far * near / ( far - near );\n\n\t\tte[ 0 ] = x;\tte[ 4 ] = 0;\tte[ 8 ] = a;\tte[ 12 ] = 0;\n\t\tte[ 1 ] = 0;\tte[ 5 ] = y;\tte[ 9 ] = b;\tte[ 13 ] = 0;\n\t\tte[ 2 ] = 0;\tte[ 6 ] = 0;\tte[ 10 ] = c;\tte[ 14 ] = d;\n\t\tte[ 3 ] = 0;\tte[ 7 ] = 0;\tte[ 11 ] = - 1;\tte[ 15 ] = 0;\n\n\t\treturn this;\n\n\t}\n\n\tmakeOrthographic( left, right, top, bottom, near, far ) {\n\n\t\tconst te = this.elements;\n\t\tconst w = 1.0 / ( right - left );\n\t\tconst h = 1.0 / ( top - bottom );\n\t\tconst p = 1.0 / ( far - near );\n\n\t\tconst x = ( right + left ) * w;\n\t\tconst y = ( top + bottom ) * h;\n\t\tconst z = ( far + near ) * p;\n\n\t\tte[ 0 ] = 2 * w;\tte[ 4 ] = 0;\tte[ 8 ] = 0;\tte[ 12 ] = - x;\n\t\tte[ 1 ] = 0;\tte[ 5 ] = 2 * h;\tte[ 9 ] = 0;\tte[ 13 ] = - y;\n\t\tte[ 2 ] = 0;\tte[ 6 ] = 0;\tte[ 10 ] = - 2 * p;\tte[ 14 ] = - z;\n\t\tte[ 3 ] = 0;\tte[ 7 ] = 0;\tte[ 11 ] = 0;\tte[ 15 ] = 1;\n\n\t\treturn this;\n\n\t}\n\n\tequals( matrix ) {\n\n\t\tconst te = this.elements;\n\t\tconst me = matrix.elements;\n\n\t\tfor ( let i = 0; i < 16; i ++ ) {\n\n\t\t\tif ( te[ i ] !== me[ i ] ) return false;\n\n\t\t}\n\n\t\treturn true;\n\n\t}\n\n\tfromArray( array, offset = 0 ) {\n\n\t\tfor ( let i = 0; i < 16; i ++ ) {\n\n\t\t\tthis.elements[ i ] = array[ i + offset ];\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\ttoArray( array = [], offset = 0 ) {\n\n\t\tconst te = this.elements;\n\n\t\tarray[ offset ] = te[ 0 ];\n\t\tarray[ offset + 1 ] = te[ 1 ];\n\t\tarray[ offset + 2 ] = te[ 2 ];\n\t\tarray[ offset + 3 ] = te[ 3 ];\n\n\t\tarray[ offset + 4 ] = te[ 4 ];\n\t\tarray[ offset + 5 ] = te[ 5 ];\n\t\tarray[ offset + 6 ] = te[ 6 ];\n\t\tarray[ offset + 7 ] = te[ 7 ];\n\n\t\tarray[ offset + 8 ] = te[ 8 ];\n\t\tarray[ offset + 9 ] = te[ 9 ];\n\t\tarray[ offset + 10 ] = te[ 10 ];\n\t\tarray[ offset + 11 ] = te[ 11 ];\n\n\t\tarray[ offset + 12 ] = te[ 12 ];\n\t\tarray[ offset + 13 ] = te[ 13 ];\n\t\tarray[ offset + 14 ] = te[ 14 ];\n\t\tarray[ offset + 15 ] = te[ 15 ];\n\n\t\treturn array;\n\n\t}\n\n}\n\nconst _v1$1 = /*@__PURE__*/ new Vector3();\nconst _m1 = /*@__PURE__*/ new Matrix4();\nconst _zero = /*@__PURE__*/ new Vector3( 0, 0, 0 );\nconst _one = /*@__PURE__*/ new Vector3( 1, 1, 1 );\nconst _x = /*@__PURE__*/ new Vector3();\nconst _y = /*@__PURE__*/ new Vector3();\nconst _z = /*@__PURE__*/ new Vector3();\n\nclass Euler {\n\n\tconstructor( x = 0, y = 0, z = 0, order = Euler.DefaultOrder ) {\n\n\t\tObject.defineProperty( this, 'isEuler', { value: true } );\n\n\t\tthis._x = x;\n\t\tthis._y = y;\n\t\tthis._z = z;\n\t\tthis._order = order;\n\n\t}\n\n\tget x() {\n\n\t\treturn this._x;\n\n\t}\n\n\tset x( value ) {\n\n\t\tthis._x = value;\n\t\tthis._onChangeCallback();\n\n\t}\n\n\tget y() {\n\n\t\treturn this._y;\n\n\t}\n\n\tset y( value ) {\n\n\t\tthis._y = value;\n\t\tthis._onChangeCallback();\n\n\t}\n\n\tget z() {\n\n\t\treturn this._z;\n\n\t}\n\n\tset z( value ) {\n\n\t\tthis._z = value;\n\t\tthis._onChangeCallback();\n\n\t}\n\n\tget order() {\n\n\t\treturn this._order;\n\n\t}\n\n\tset order( value ) {\n\n\t\tthis._order = value;\n\t\tthis._onChangeCallback();\n\n\t}\n\n\tset( x, y, z, order ) {\n\n\t\tthis._x = x;\n\t\tthis._y = y;\n\t\tthis._z = z;\n\t\tthis._order = order || this._order;\n\n\t\tthis._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor( this._x, this._y, this._z, this._order );\n\n\t}\n\n\tcopy( euler ) {\n\n\t\tthis._x = euler._x;\n\t\tthis._y = euler._y;\n\t\tthis._z = euler._z;\n\t\tthis._order = euler._order;\n\n\t\tthis._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\tsetFromRotationMatrix( m, order, update ) {\n\n\t\tconst clamp = MathUtils.clamp;\n\n\t\t// assumes the upper 3x3 of m is a pure rotation matrix (i.e, unscaled)\n\n\t\tconst te = m.elements;\n\t\tconst m11 = te[ 0 ], m12 = te[ 4 ], m13 = te[ 8 ];\n\t\tconst m21 = te[ 1 ], m22 = te[ 5 ], m23 = te[ 9 ];\n\t\tconst m31 = te[ 2 ], m32 = te[ 6 ], m33 = te[ 10 ];\n\n\t\torder = order || this._order;\n\n\t\tswitch ( order ) {\n\n\t\t\tcase 'XYZ':\n\n\t\t\t\tthis._y = Math.asin( clamp( m13, - 1, 1 ) );\n\n\t\t\t\tif ( Math.abs( m13 ) < 0.9999999 ) {\n\n\t\t\t\t\tthis._x = Math.atan2( - m23, m33 );\n\t\t\t\t\tthis._z = Math.atan2( - m12, m11 );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tthis._x = Math.atan2( m32, m22 );\n\t\t\t\t\tthis._z = 0;\n\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'YXZ':\n\n\t\t\t\tthis._x = Math.asin( - clamp( m23, - 1, 1 ) );\n\n\t\t\t\tif ( Math.abs( m23 ) < 0.9999999 ) {\n\n\t\t\t\t\tthis._y = Math.atan2( m13, m33 );\n\t\t\t\t\tthis._z = Math.atan2( m21, m22 );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tthis._y = Math.atan2( - m31, m11 );\n\t\t\t\t\tthis._z = 0;\n\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'ZXY':\n\n\t\t\t\tthis._x = Math.asin( clamp( m32, - 1, 1 ) );\n\n\t\t\t\tif ( Math.abs( m32 ) < 0.9999999 ) {\n\n\t\t\t\t\tthis._y = Math.atan2( - m31, m33 );\n\t\t\t\t\tthis._z = Math.atan2( - m12, m22 );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tthis._y = 0;\n\t\t\t\t\tthis._z = Math.atan2( m21, m11 );\n\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'ZYX':\n\n\t\t\t\tthis._y = Math.asin( - clamp( m31, - 1, 1 ) );\n\n\t\t\t\tif ( Math.abs( m31 ) < 0.9999999 ) {\n\n\t\t\t\t\tthis._x = Math.atan2( m32, m33 );\n\t\t\t\t\tthis._z = Math.atan2( m21, m11 );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tthis._x = 0;\n\t\t\t\t\tthis._z = Math.atan2( - m12, m22 );\n\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'YZX':\n\n\t\t\t\tthis._z = Math.asin( clamp( m21, - 1, 1 ) );\n\n\t\t\t\tif ( Math.abs( m21 ) < 0.9999999 ) {\n\n\t\t\t\t\tthis._x = Math.atan2( - m23, m22 );\n\t\t\t\t\tthis._y = Math.atan2( - m31, m11 );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tthis._x = 0;\n\t\t\t\t\tthis._y = Math.atan2( m13, m33 );\n\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\n\t\t\tcase 'XZY':\n\n\t\t\t\tthis._z = Math.asin( - clamp( m12, - 1, 1 ) );\n\n\t\t\t\tif ( Math.abs( m12 ) < 0.9999999 ) {\n\n\t\t\t\t\tthis._x = Math.atan2( m32, m22 );\n\t\t\t\t\tthis._y = Math.atan2( m13, m11 );\n\n\t\t\t\t} else {\n\n\t\t\t\t\tthis._x = Math.atan2( - m23, m33 );\n\t\t\t\t\tthis._y = 0;\n\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\n\t\t\tdefault:\n\n\t\t\t\tconsole.warn( 'THREE.Euler: .setFromRotationMatrix() encountered an unknown order: ' + order );\n\n\t\t}\n\n\t\tthis._order = order;\n\n\t\tif ( update !== false ) this._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\tsetFromQuaternion( q, order, update ) {\n\n\t\t_matrix.makeRotationFromQuaternion( q );\n\n\t\treturn this.setFromRotationMatrix( _matrix, order, update );\n\n\t}\n\n\tsetFromVector3( v, order ) {\n\n\t\treturn this.set( v.x, v.y, v.z, order || this._order );\n\n\t}\n\n\treorder( newOrder ) {\n\n\t\t// WARNING: this discards revolution information -bhouston\n\n\t\t_quaternion$1.setFromEuler( this );\n\n\t\treturn this.setFromQuaternion( _quaternion$1, newOrder );\n\n\t}\n\n\tequals( euler ) {\n\n\t\treturn ( euler._x === this._x ) && ( euler._y === this._y ) && ( euler._z === this._z ) && ( euler._order === this._order );\n\n\t}\n\n\tfromArray( array ) {\n\n\t\tthis._x = array[ 0 ];\n\t\tthis._y = array[ 1 ];\n\t\tthis._z = array[ 2 ];\n\t\tif ( array[ 3 ] !== undefined ) this._order = array[ 3 ];\n\n\t\tthis._onChangeCallback();\n\n\t\treturn this;\n\n\t}\n\n\ttoArray( array = [], offset = 0 ) {\n\n\t\tarray[ offset ] = this._x;\n\t\tarray[ offset + 1 ] = this._y;\n\t\tarray[ offset + 2 ] = this._z;\n\t\tarray[ offset + 3 ] = this._order;\n\n\t\treturn array;\n\n\t}\n\n\ttoVector3( optionalResult ) {\n\n\t\tif ( optionalResult ) {\n\n\t\t\treturn optionalResult.set( this._x, this._y, this._z );\n\n\t\t} else {\n\n\t\t\treturn new Vector3( this._x, this._y, this._z );\n\n\t\t}\n\n\t}\n\n\t_onChange( callback ) {\n\n\t\tthis._onChangeCallback = callback;\n\n\t\treturn this;\n\n\t}\n\n\t_onChangeCallback() {}\n\n}\n\nEuler.DefaultOrder = 'XYZ';\nEuler.RotationOrders = [ 'XYZ', 'YZX', 'ZXY', 'XZY', 'YXZ', 'ZYX' ];\n\nconst _matrix = /*@__PURE__*/ new Matrix4();\nconst _quaternion$1 = /*@__PURE__*/ new Quaternion();\n\nclass Layers {\n\n\tconstructor() {\n\n\t\tthis.mask = 1 | 0;\n\n\t}\n\n\tset( channel ) {\n\n\t\tthis.mask = 1 << channel | 0;\n\n\t}\n\n\tenable( channel ) {\n\n\t\tthis.mask |= 1 << channel | 0;\n\n\t}\n\n\tenableAll() {\n\n\t\tthis.mask = 0xffffffff | 0;\n\n\t}\n\n\ttoggle( channel ) {\n\n\t\tthis.mask ^= 1 << channel | 0;\n\n\t}\n\n\tdisable( channel ) {\n\n\t\tthis.mask &= ~ ( 1 << channel | 0 );\n\n\t}\n\n\tdisableAll() {\n\n\t\tthis.mask = 0;\n\n\t}\n\n\ttest( layers ) {\n\n\t\treturn ( this.mask & layers.mask ) !== 0;\n\n\t}\n\n}\n\nlet _object3DId = 0;\n\nconst _v1$2 = new Vector3();\nconst _q1 = new Quaternion();\nconst _m1$1 = new Matrix4();\nconst _target = new Vector3();\n\nconst _position = new Vector3();\nconst _scale = new Vector3();\nconst _quaternion$2 = new Quaternion();\n\nconst _xAxis = new Vector3( 1, 0, 0 );\nconst _yAxis = new Vector3( 0, 1, 0 );\nconst _zAxis = new Vector3( 0, 0, 1 );\n\nconst _addedEvent = { type: 'added' };\nconst _removedEvent = { type: 'removed' };\n\nfunction Object3D() {\n\n\tObject.defineProperty( this, 'id', { value: _object3DId ++ } );\n\n\tthis.uuid = MathUtils.generateUUID();\n\n\tthis.name = '';\n\tthis.type = 'Object3D';\n\n\tthis.parent = null;\n\tthis.children = [];\n\n\tthis.up = Object3D.DefaultUp.clone();\n\n\tconst position = new Vector3();\n\tconst rotation = new Euler();\n\tconst quaternion = new Quaternion();\n\tconst scale = new Vector3( 1, 1, 1 );\n\n\tfunction onRotationChange() {\n\n\t\tquaternion.setFromEuler( rotation, false );\n\n\t}\n\n\tfunction onQuaternionChange() {\n\n\t\trotation.setFromQuaternion( quaternion, undefined, false );\n\n\t}\n\n\trotation._onChange( onRotationChange );\n\tquaternion._onChange( onQuaternionChange );\n\n\tObject.defineProperties( this, {\n\t\tposition: {\n\t\t\tconfigurable: true,\n\t\t\tenumerable: true,\n\t\t\tvalue: position\n\t\t},\n\t\trotation: {\n\t\t\tconfigurable: true,\n\t\t\tenumerable: true,\n\t\t\tvalue: rotation\n\t\t},\n\t\tquaternion: {\n\t\t\tconfigurable: true,\n\t\t\tenumerable: true,\n\t\t\tvalue: quaternion\n\t\t},\n\t\tscale: {\n\t\t\tconfigurable: true,\n\t\t\tenumerable: true,\n\t\t\tvalue: scale\n\t\t},\n\t\tmodelViewMatrix: {\n\t\t\tvalue: new Matrix4()\n\t\t},\n\t\tnormalMatrix: {\n\t\t\tvalue: new Matrix3()\n\t\t}\n\t} );\n\n\tthis.matrix = new Matrix4();\n\tthis.matrixWorld = new Matrix4();\n\n\tthis.matrixAutoUpdate = Object3D.DefaultMatrixAutoUpdate;\n\tthis.matrixWorldNeedsUpdate = false;\n\n\tthis.layers = new Layers();\n\tthis.visible = true;\n\n\tthis.castShadow = false;\n\tthis.receiveShadow = false;\n\n\tthis.frustumCulled = true;\n\tthis.renderOrder = 0;\n\n\tthis.animations = [];\n\n\tthis.userData = {};\n\n}\n\nObject3D.DefaultUp = new Vector3( 0, 1, 0 );\nObject3D.DefaultMatrixAutoUpdate = true;\n\nObject3D.prototype = Object.assign( Object.create( EventDispatcher.prototype ), {\n\n\tconstructor: Object3D,\n\n\tisObject3D: true,\n\n\tonBeforeRender: function () {},\n\tonAfterRender: function () {},\n\n\tapplyMatrix4: function ( matrix ) {\n\n\t\tif ( this.matrixAutoUpdate ) this.updateMatrix();\n\n\t\tthis.matrix.premultiply( matrix );\n\n\t\tthis.matrix.decompose( this.position, this.quaternion, this.scale );\n\n\t},\n\n\tapplyQuaternion: function ( q ) {\n\n\t\tthis.quaternion.premultiply( q );\n\n\t\treturn this;\n\n\t},\n\n\tsetRotationFromAxisAngle: function ( axis, angle ) {\n\n\t\t// assumes axis is normalized\n\n\t\tthis.quaternion.setFromAxisAngle( axis, angle );\n\n\t},\n\n\tsetRotationFromEuler: function ( euler ) {\n\n\t\tthis.quaternion.setFromEuler( euler, true );\n\n\t},\n\n\tsetRotationFromMatrix: function ( m ) {\n\n\t\t// assumes the upper 3x3 of m is a pure rotation matrix (i.e, unscaled)\n\n\t\tthis.quaternion.setFromRotationMatrix( m );\n\n\t},\n\n\tsetRotationFromQuaternion: function ( q ) {\n\n\t\t// assumes q is normalized\n\n\t\tthis.quaternion.copy( q );\n\n\t},\n\n\trotateOnAxis: function ( axis, angle ) {\n\n\t\t// rotate object on axis in object space\n\t\t// axis is assumed to be normalized\n\n\t\t_q1.setFromAxisAngle( axis, angle );\n\n\t\tthis.quaternion.multiply( _q1 );\n\n\t\treturn this;\n\n\t},\n\n\trotateOnWorldAxis: function ( axis, angle ) {\n\n\t\t// rotate object on axis in world space\n\t\t// axis is assumed to be normalized\n\t\t// method assumes no rotated parent\n\n\t\t_q1.setFromAxisAngle( axis, angle );\n\n\t\tthis.quaternion.premultiply( _q1 );\n\n\t\treturn this;\n\n\t},\n\n\trotateX: function ( angle ) {\n\n\t\treturn this.rotateOnAxis( _xAxis, angle );\n\n\t},\n\n\trotateY: function ( angle ) {\n\n\t\treturn this.rotateOnAxis( _yAxis, angle );\n\n\t},\n\n\trotateZ: function ( angle ) {\n\n\t\treturn this.rotateOnAxis( _zAxis, angle );\n\n\t},\n\n\ttranslateOnAxis: function ( axis, distance ) {\n\n\t\t// translate object by distance along axis in object space\n\t\t// axis is assumed to be normalized\n\n\t\t_v1$2.copy( axis ).applyQuaternion( this.quaternion );\n\n\t\tthis.position.add( _v1$2.multiplyScalar( distance ) );\n\n\t\treturn this;\n\n\t},\n\n\ttranslateX: function ( distance ) {\n\n\t\treturn this.translateOnAxis( _xAxis, distance );\n\n\t},\n\n\ttranslateY: function ( distance ) {\n\n\t\treturn this.translateOnAxis( _yAxis, distance );\n\n\t},\n\n\ttranslateZ: function ( distance ) {\n\n\t\treturn this.translateOnAxis( _zAxis, distance );\n\n\t},\n\n\tlocalToWorld: function ( vector ) {\n\n\t\treturn vector.applyMatrix4( this.matrixWorld );\n\n\t},\n\n\tworldToLocal: function ( vector ) {\n\n\t\treturn vector.applyMatrix4( _m1$1.copy( this.matrixWorld ).invert() );\n\n\t},\n\n\tlookAt: function ( x, y, z ) {\n\n\t\t// This method does not support objects having non-uniformly-scaled parent(s)\n\n\t\tif ( x.isVector3 ) {\n\n\t\t\t_target.copy( x );\n\n\t\t} else {\n\n\t\t\t_target.set( x, y, z );\n\n\t\t}\n\n\t\tconst parent = this.parent;\n\n\t\tthis.updateWorldMatrix( true, false );\n\n\t\t_position.setFromMatrixPosition( this.matrixWorld );\n\n\t\tif ( this.isCamera || this.isLight ) {\n\n\t\t\t_m1$1.lookAt( _position, _target, this.up );\n\n\t\t} else {\n\n\t\t\t_m1$1.lookAt( _target, _position, this.up );\n\n\t\t}\n\n\t\tthis.quaternion.setFromRotationMatrix( _m1$1 );\n\n\t\tif ( parent ) {\n\n\t\t\t_m1$1.extractRotation( parent.matrixWorld );\n\t\t\t_q1.setFromRotationMatrix( _m1$1 );\n\t\t\tthis.quaternion.premultiply( _q1.invert() );\n\n\t\t}\n\n\t},\n\n\tadd: function ( object ) {\n\n\t\tif ( arguments.length > 1 ) {\n\n\t\t\tfor ( let i = 0; i < arguments.length; i ++ ) {\n\n\t\t\t\tthis.add( arguments[ i ] );\n\n\t\t\t}\n\n\t\t\treturn this;\n\n\t\t}\n\n\t\tif ( object === this ) {\n\n\t\t\tconsole.error( 'THREE.Object3D.add: object can\\'t be added as a child of itself.', object );\n\t\t\treturn this;\n\n\t\t}\n\n\t\tif ( object && object.isObject3D ) {\n\n\t\t\tif ( object.parent !== null ) {\n\n\t\t\t\tobject.parent.remove( object );\n\n\t\t\t}\n\n\t\t\tobject.parent = this;\n\t\t\tthis.children.push( object );\n\n\t\t\tobject.dispatchEvent( _addedEvent );\n\n\t\t} else {\n\n\t\t\tconsole.error( 'THREE.Object3D.add: object not an instance of THREE.Object3D.', object );\n\n\t\t}\n\n\t\treturn this;\n\n\t},\n\n\tremove: function ( object ) {\n\n\t\tif ( arguments.length > 1 ) {\n\n\t\t\tfor ( let i = 0; i < arguments.length; i ++ ) {\n\n\t\t\t\tthis.remove( arguments[ i ] );\n\n\t\t\t}\n\n\t\t\treturn this;\n\n\t\t}\n\n\t\tconst index = this.children.indexOf( object );\n\n\t\tif ( index !== - 1 ) {\n\n\t\t\tobject.parent = null;\n\t\t\tthis.children.splice( index, 1 );\n\n\t\t\tobject.dispatchEvent( _removedEvent );\n\n\t\t}\n\n\t\treturn this;\n\n\t},\n\n\tclear: function () {\n\n\t\tfor ( let i = 0; i < this.children.length; i ++ ) {\n\n\t\t\tconst object = this.children[ i ];\n\n\t\t\tobject.parent = null;\n\n\t\t\tobject.dispatchEvent( _removedEvent );\n\n\t\t}\n\n\t\tthis.children.length = 0;\n\n\t\treturn this;\n\n\n\t},\n\n\tattach: function ( object ) {\n\n\t\t// adds object as a child of this, while maintaining the object's world transform\n\n\t\tthis.updateWorldMatrix( true, false );\n\n\t\t_m1$1.copy( this.matrixWorld ).invert();\n\n\t\tif ( object.parent !== null ) {\n\n\t\t\tobject.parent.updateWorldMatrix( true, false );\n\n\t\t\t_m1$1.multiply( object.parent.matrixWorld );\n\n\t\t}\n\n\t\tobject.applyMatrix4( _m1$1 );\n\n\t\tobject.updateWorldMatrix( false, false );\n\n\t\tthis.add( object );\n\n\t\treturn this;\n\n\t},\n\n\tgetObjectById: function ( id ) {\n\n\t\treturn this.getObjectByProperty( 'id', id );\n\n\t},\n\n\tgetObjectByName: function ( name ) {\n\n\t\treturn this.getObjectByProperty( 'name', name );\n\n\t},\n\n\tgetObjectByProperty: function ( name, value ) {\n\n\t\tif ( this[ name ] === value ) return this;\n\n\t\tfor ( let i = 0, l = this.children.length; i < l; i ++ ) {\n\n\t\t\tconst child = this.children[ i ];\n\t\t\tconst object = child.getObjectByProperty( name, value );\n\n\t\t\tif ( object !== undefined ) {\n\n\t\t\t\treturn object;\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn undefined;\n\n\t},\n\n\tgetWorldPosition: function ( target ) {\n\n\t\tif ( target === undefined ) {\n\n\t\t\tconsole.warn( 'THREE.Object3D: .getWorldPosition() target is now required' );\n\t\t\ttarget = new Vector3();\n\n\t\t}\n\n\t\tthis.updateWorldMatrix( true, false );\n\n\t\treturn target.setFromMatrixPosition( this.matrixWorld );\n\n\t},\n\n\tgetWorldQuaternion: function ( target ) {\n\n\t\tif ( target === undefined ) {\n\n\t\t\tconsole.warn( 'THREE.Object3D: .getWorldQuaternion() target is now required' );\n\t\t\ttarget = new Quaternion();\n\n\t\t}\n\n\t\tthis.updateWorldMatrix( true, false );\n\n\t\tthis.matrixWorld.decompose( _position, target, _scale );\n\n\t\treturn target;\n\n\t},\n\n\tgetWorldScale: function ( target ) {\n\n\t\tif ( target === undefined ) {\n\n\t\t\tconsole.warn( 'THREE.Object3D: .getWorldScale() target is now required' );\n\t\t\ttarget = new Vector3();\n\n\t\t}\n\n\t\tthis.updateWorldMatrix( true, false );\n\n\t\tthis.matrixWorld.decompose( _position, _quaternion$2, target );\n\n\t\treturn target;\n\n\t},\n\n\tgetWorldDirection: function ( target ) {\n\n\t\tif ( target === undefined ) {\n\n\t\t\tconsole.warn( 'THREE.Object3D: .getWorldDirection() target is now required' );\n\t\t\ttarget = new Vector3();\n\n\t\t}\n\n\t\tthis.updateWorldMatrix( true, false );\n\n\t\tconst e = this.matrixWorld.elements;\n\n\t\treturn target.set( e[ 8 ], e[ 9 ], e[ 10 ] ).normalize();\n\n\t},\n\n\traycast: function () {},\n\n\ttraverse: function ( callback ) {\n\n\t\tcallback( this );\n\n\t\tconst children = this.children;\n\n\t\tfor ( let i = 0, l = children.length; i < l; i ++ ) {\n\n\t\t\tchildren[ i ].traverse( callback );\n\n\t\t}\n\n\t},\n\n\ttraverseVisible: function ( callback ) {\n\n\t\tif ( this.visible === false ) return;\n\n\t\tcallback( this );\n\n\t\tconst children = this.children;\n\n\t\tfor ( let i = 0, l = children.length; i < l; i ++ ) {\n\n\t\t\tchildren[ i ].traverseVisible( callback );\n\n\t\t}\n\n\t},\n\n\ttraverseAncestors: function ( callback ) {\n\n\t\tconst parent = this.parent;\n\n\t\tif ( parent !== null ) {\n\n\t\t\tcallback( parent );\n\n\t\t\tparent.traverseAncestors( callback );\n\n\t\t}\n\n\t},\n\n\tupdateMatrix: function () {\n\n\t\tthis.matrix.compose( this.position, this.quaternion, this.scale );\n\n\t\tthis.matrixWorldNeedsUpdate = true;\n\n\t},\n\n\tupdateMatrixWorld: function ( force ) {\n\n\t\tif ( this.matrixAutoUpdate ) this.updateMatrix();\n\n\t\tif ( this.matrixWorldNeedsUpdate || force ) {\n\n\t\t\tif ( this.parent === null ) {\n\n\t\t\t\tthis.matrixWorld.copy( this.matrix );\n\n\t\t\t} else {\n\n\t\t\t\tthis.matrixWorld.multiplyMatrices( this.parent.matrixWorld, this.matrix );\n\n\t\t\t}\n\n\t\t\tthis.matrixWorldNeedsUpdate = false;\n\n\t\t\tforce = true;\n\n\t\t}\n\n\t\t// update children\n\n\t\tconst children = this.children;\n\n\t\tfor ( let i = 0, l = children.length; i < l; i ++ ) {\n\n\t\t\tchildren[ i ].updateMatrixWorld( force );\n\n\t\t}\n\n\t},\n\n\tupdateWorldMatrix: function ( updateParents, updateChildren ) {\n\n\t\tconst parent = this.parent;\n\n\t\tif ( updateParents === true && parent !== null ) {\n\n\t\t\tparent.updateWorldMatrix( true, false );\n\n\t\t}\n\n\t\tif ( this.matrixAutoUpdate ) this.updateMatrix();\n\n\t\tif ( this.parent === null ) {\n\n\t\t\tthis.matrixWorld.copy( this.matrix );\n\n\t\t} else {\n\n\t\t\tthis.matrixWorld.multiplyMatrices( this.parent.matrixWorld, this.matrix );\n\n\t\t}\n\n\t\t// update children\n\n\t\tif ( updateChildren === true ) {\n\n\t\t\tconst children = this.children;\n\n\t\t\tfor ( let i = 0, l = children.length; i < l; i ++ ) {\n\n\t\t\t\tchildren[ i ].updateWorldMatrix( false, true );\n\n\t\t\t}\n\n\t\t}\n\n\t},\n\n\ttoJSON: function ( meta ) {\n\n\t\t// meta is a string when called from JSON.stringify\n\t\tconst isRootObject = ( meta === undefined || typeof meta === 'string' );\n\n\t\tconst output = {};\n\n\t\t// meta is a hash used to collect geometries, materials.\n\t\t// not providing it implies that this is the root object\n\t\t// being serialized.\n\t\tif ( isRootObject ) {\n\n\t\t\t// initialize meta obj\n\t\t\tmeta = {\n\t\t\t\tgeometries: {},\n\t\t\t\tmaterials: {},\n\t\t\t\ttextures: {},\n\t\t\t\timages: {},\n\t\t\t\tshapes: {},\n\t\t\t\tskeletons: {},\n\t\t\t\tanimations: {}\n\t\t\t};\n\n\t\t\toutput.metadata = {\n\t\t\t\tversion: 4.5,\n\t\t\t\ttype: 'Object',\n\t\t\t\tgenerator: 'Object3D.toJSON'\n\t\t\t};\n\n\t\t}\n\n\t\t// standard Object3D serialization\n\n\t\tconst object = {};\n\n\t\tobject.uuid = this.uuid;\n\t\tobject.type = this.type;\n\n\t\tif ( this.name !== '' ) object.name = this.name;\n\t\tif ( this.castShadow === true ) object.castShadow = true;\n\t\tif ( this.receiveShadow === true ) object.receiveShadow = true;\n\t\tif ( this.visible === false ) object.visible = false;\n\t\tif ( this.frustumCulled === false ) object.frustumCulled = false;\n\t\tif ( this.renderOrder !== 0 ) object.renderOrder = this.renderOrder;\n\t\tif ( JSON.stringify( this.userData ) !== '{}' ) object.userData = this.userData;\n\n\t\tobject.layers = this.layers.mask;\n\t\tobject.matrix = this.matrix.toArray();\n\n\t\tif ( this.matrixAutoUpdate === false ) object.matrixAutoUpdate = false;\n\n\t\t// object specific properties\n\n\t\tif ( this.isInstancedMesh ) {\n\n\t\t\tobject.type = 'InstancedMesh';\n\t\t\tobject.count = this.count;\n\t\t\tobject.instanceMatrix = this.instanceMatrix.toJSON();\n\n\t\t}\n\n\t\t//\n\n\t\tfunction serialize( library, element ) {\n\n\t\t\tif ( library[ element.uuid ] === undefined ) {\n\n\t\t\t\tlibrary[ element.uuid ] = element.toJSON( meta );\n\n\t\t\t}\n\n\t\t\treturn element.uuid;\n\n\t\t}\n\n\t\tif ( this.isMesh || this.isLine || this.isPoints ) {\n\n\t\t\tobject.geometry = serialize( meta.geometries, this.geometry );\n\n\t\t\tconst parameters = this.geometry.parameters;\n\n\t\t\tif ( parameters !== undefined && parameters.shapes !== undefined ) {\n\n\t\t\t\tconst shapes = parameters.shapes;\n\n\t\t\t\tif ( Array.isArray( shapes ) ) {\n\n\t\t\t\t\tfor ( let i = 0, l = shapes.length; i < l; i ++ ) {\n\n\t\t\t\t\t\tconst shape = shapes[ i ];\n\n\t\t\t\t\t\tserialize( meta.shapes, shape );\n\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\n\t\t\t\t\tserialize( meta.shapes, shapes );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( this.isSkinnedMesh ) {\n\n\t\t\tobject.bindMode = this.bindMode;\n\t\t\tobject.bindMatrix = this.bindMatrix.toArray();\n\n\t\t\tif ( this.skeleton !== undefined ) {\n\n\t\t\t\tserialize( meta.skeletons, this.skeleton );\n\n\t\t\t\tobject.skeleton = this.skeleton.uuid;\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( this.material !== undefined ) {\n\n\t\t\tif ( Array.isArray( this.material ) ) {\n\n\t\t\t\tconst uuids = [];\n\n\t\t\t\tfor ( let i = 0, l = this.material.length; i < l; i ++ ) {\n\n\t\t\t\t\tuuids.push( serialize( meta.materials, this.material[ i ] ) );\n\n\t\t\t\t}\n\n\t\t\t\tobject.material = uuids;\n\n\t\t\t} else {\n\n\t\t\t\tobject.material = serialize( meta.materials, this.material );\n\n\t\t\t}\n\n\t\t}\n\n\t\t//\n\n\t\tif ( this.children.length > 0 ) {\n\n\t\t\tobject.children = [];\n\n\t\t\tfor ( let i = 0; i < this.children.length; i ++ ) {\n\n\t\t\t\tobject.children.push( this.children[ i ].toJSON( meta ).object );\n\n\t\t\t}\n\n\t\t}\n\n\t\t//\n\n\t\tif ( this.animations.length > 0 ) {\n\n\t\t\tobject.animations = [];\n\n\t\t\tfor ( let i = 0; i < this.animations.length; i ++ ) {\n\n\t\t\t\tconst animation = this.animations[ i ];\n\n\t\t\t\tobject.animations.push( serialize( meta.animations, animation ) );\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( isRootObject ) {\n\n\t\t\tconst geometries = extractFromCache( meta.geometries );\n\t\t\tconst materials = extractFromCache( meta.materials );\n\t\t\tconst textures = extractFromCache( meta.textures );\n\t\t\tconst images = extractFromCache( meta.images );\n\t\t\tconst shapes = extractFromCache( meta.shapes );\n\t\t\tconst skeletons = extractFromCache( meta.skeletons );\n\t\t\tconst animations = extractFromCache( meta.animations );\n\n\t\t\tif ( geometries.length > 0 ) output.geometries = geometries;\n\t\t\tif ( materials.length > 0 ) output.materials = materials;\n\t\t\tif ( textures.length > 0 ) output.textures = textures;\n\t\t\tif ( images.length > 0 ) output.images = images;\n\t\t\tif ( shapes.length > 0 ) output.shapes = shapes;\n\t\t\tif ( skeletons.length > 0 ) output.skeletons = skeletons;\n\t\t\tif ( animations.length > 0 ) output.animations = animations;\n\n\t\t}\n\n\t\toutput.object = object;\n\n\t\treturn output;\n\n\t\t// extract data from the cache hash\n\t\t// remove metadata on each item\n\t\t// and return as array\n\t\tfunction extractFromCache( cache ) {\n\n\t\t\tconst values = [];\n\t\t\tfor ( const key in cache ) {\n\n\t\t\t\tconst data = cache[ key ];\n\t\t\t\tdelete data.metadata;\n\t\t\t\tvalues.push( data );\n\n\t\t\t}\n\n\t\t\treturn values;\n\n\t\t}\n\n\t},\n\n\tclone: function ( recursive ) {\n\n\t\treturn new this.constructor().copy( this, recursive );\n\n\t},\n\n\tcopy: function ( source, recursive = true ) {\n\n\t\tthis.name = source.name;\n\n\t\tthis.up.copy( source.up );\n\n\t\tthis.position.copy( source.position );\n\t\tthis.rotation.order = source.rotation.order;\n\t\tthis.quaternion.copy( source.quaternion );\n\t\tthis.scale.copy( source.scale );\n\n\t\tthis.matrix.copy( source.matrix );\n\t\tthis.matrixWorld.copy( source.matrixWorld );\n\n\t\tthis.matrixAutoUpdate = source.matrixAutoUpdate;\n\t\tthis.matrixWorldNeedsUpdate = source.matrixWorldNeedsUpdate;\n\n\t\tthis.layers.mask = source.layers.mask;\n\t\tthis.visible = source.visible;\n\n\t\tthis.castShadow = source.castShadow;\n\t\tthis.receiveShadow = source.receiveShadow;\n\n\t\tthis.frustumCulled = source.frustumCulled;\n\t\tthis.renderOrder = source.renderOrder;\n\n\t\tthis.userData = JSON.parse( JSON.stringify( source.userData ) );\n\n\t\tif ( recursive === true ) {\n\n\t\t\tfor ( let i = 0; i < source.children.length; i ++ ) {\n\n\t\t\t\tconst child = source.children[ i ];\n\t\t\t\tthis.add( child.clone() );\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n} );\n\nconst _vector1 = /*@__PURE__*/ new Vector3();\nconst _vector2 = /*@__PURE__*/ new Vector3();\nconst _normalMatrix = /*@__PURE__*/ new Matrix3();\n\nclass Plane {\n\n\tconstructor( normal, constant ) {\n\n\t\tObject.defineProperty( this, 'isPlane', { value: true } );\n\n\t\t// normal is assumed to be normalized\n\n\t\tthis.normal = ( normal !== undefined ) ? normal : new Vector3( 1, 0, 0 );\n\t\tthis.constant = ( constant !== undefined ) ? constant : 0;\n\n\t}\n\n\tset( normal, constant ) {\n\n\t\tthis.normal.copy( normal );\n\t\tthis.constant = constant;\n\n\t\treturn this;\n\n\t}\n\n\tsetComponents( x, y, z, w ) {\n\n\t\tthis.normal.set( x, y, z );\n\t\tthis.constant = w;\n\n\t\treturn this;\n\n\t}\n\n\tsetFromNormalAndCoplanarPoint( normal, point ) {\n\n\t\tthis.normal.copy( normal );\n\t\tthis.constant = - point.dot( this.normal );\n\n\t\treturn this;\n\n\t}\n\n\tsetFromCoplanarPoints( a, b, c ) {\n\n\t\tconst normal = _vector1.subVectors( c, b ).cross( _vector2.subVectors( a, b ) ).normalize();\n\n\t\t// Q: should an error be thrown if normal is zero (e.g. degenerate plane)?\n\n\t\tthis.setFromNormalAndCoplanarPoint( normal, a );\n\n\t\treturn this;\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n\tcopy( plane ) {\n\n\t\tthis.normal.copy( plane.normal );\n\t\tthis.constant = plane.constant;\n\n\t\treturn this;\n\n\t}\n\n\tnormalize() {\n\n\t\t// Note: will lead to a divide by zero if the plane is invalid.\n\n\t\tconst inverseNormalLength = 1.0 / this.normal.length();\n\t\tthis.normal.multiplyScalar( inverseNormalLength );\n\t\tthis.constant *= inverseNormalLength;\n\n\t\treturn this;\n\n\t}\n\n\tnegate() {\n\n\t\tthis.constant *= - 1;\n\t\tthis.normal.negate();\n\n\t\treturn this;\n\n\t}\n\n\tdistanceToPoint( point ) {\n\n\t\treturn this.normal.dot( point ) + this.constant;\n\n\t}\n\n\tdistanceToSphere( sphere ) {\n\n\t\treturn this.distanceToPoint( sphere.center ) - sphere.radius;\n\n\t}\n\n\tprojectPoint( point, target ) {\n\n\t\tif ( target === undefined ) {\n\n\t\t\tconsole.warn( 'THREE.Plane: .projectPoint() target is now required' );\n\t\t\ttarget = new Vector3();\n\n\t\t}\n\n\t\treturn target.copy( this.normal ).multiplyScalar( - this.distanceToPoint( point ) ).add( point );\n\n\t}\n\n\tintersectLine( line, target ) {\n\n\t\tif ( target === undefined ) {\n\n\t\t\tconsole.warn( 'THREE.Plane: .intersectLine() target is now required' );\n\t\t\ttarget = new Vector3();\n\n\t\t}\n\n\t\tconst direction = line.delta( _vector1 );\n\n\t\tconst denominator = this.normal.dot( direction );\n\n\t\tif ( denominator === 0 ) {\n\n\t\t\t// line is coplanar, return origin\n\t\t\tif ( this.distanceToPoint( line.start ) === 0 ) {\n\n\t\t\t\treturn target.copy( line.start );\n\n\t\t\t}\n\n\t\t\t// Unsure if this is the correct method to handle this case.\n\t\t\treturn undefined;\n\n\t\t}\n\n\t\tconst t = - ( line.start.dot( this.normal ) + this.constant ) / denominator;\n\n\t\tif ( t < 0 || t > 1 ) {\n\n\t\t\treturn undefined;\n\n\t\t}\n\n\t\treturn target.copy( direction ).multiplyScalar( t ).add( line.start );\n\n\t}\n\n\tintersectsLine( line ) {\n\n\t\t// Note: this tests if a line intersects the plane, not whether it (or its end-points) are coplanar with it.\n\n\t\tconst startSign = this.distanceToPoint( line.start );\n\t\tconst endSign = this.distanceToPoint( line.end );\n\n\t\treturn ( startSign < 0 && endSign > 0 ) || ( endSign < 0 && startSign > 0 );\n\n\t}\n\n\tintersectsBox( box ) {\n\n\t\treturn box.intersectsPlane( this );\n\n\t}\n\n\tintersectsSphere( sphere ) {\n\n\t\treturn sphere.intersectsPlane( this );\n\n\t}\n\n\tcoplanarPoint( target ) {\n\n\t\tif ( target === undefined ) {\n\n\t\t\tconsole.warn( 'THREE.Plane: .coplanarPoint() target is now required' );\n\t\t\ttarget = new Vector3();\n\n\t\t}\n\n\t\treturn target.copy( this.normal ).multiplyScalar( - this.constant );\n\n\t}\n\n\tapplyMatrix4( matrix, optionalNormalMatrix ) {\n\n\t\tconst normalMatrix = optionalNormalMatrix || _normalMatrix.getNormalMatrix( matrix );\n\n\t\tconst referencePoint = this.coplanarPoint( _vector1 ).applyMatrix4( matrix );\n\n\t\tconst normal = this.normal.applyMatrix3( normalMatrix ).normalize();\n\n\t\tthis.constant = - referencePoint.dot( normal );\n\n\t\treturn this;\n\n\t}\n\n\ttranslate( offset ) {\n\n\t\tthis.constant -= offset.dot( this.normal );\n\n\t\treturn this;\n\n\t}\n\n\tequals( plane ) {\n\n\t\treturn plane.normal.equals( this.normal ) && ( plane.constant === this.constant );\n\n\t}\n\n}\n\nconst _v0$1 = /*@__PURE__*/ new Vector3();\nconst _v1$3 = /*@__PURE__*/ new Vector3();\nconst _v2$1 = /*@__PURE__*/ new Vector3();\nconst _v3 = /*@__PURE__*/ new Vector3();\n\nconst _vab = /*@__PURE__*/ new Vector3();\nconst _vac = /*@__PURE__*/ new Vector3();\nconst _vbc = /*@__PURE__*/ new Vector3();\nconst _vap = /*@__PURE__*/ new Vector3();\nconst _vbp = /*@__PURE__*/ new Vector3();\nconst _vcp = /*@__PURE__*/ new Vector3();\n\nclass Triangle {\n\n\tconstructor( a, b, c ) {\n\n\t\tthis.a = ( a !== undefined ) ? a : new Vector3();\n\t\tthis.b = ( b !== undefined ) ? b : new Vector3();\n\t\tthis.c = ( c !== undefined ) ? c : new Vector3();\n\n\t}\n\n\tstatic getNormal( a, b, c, target ) {\n\n\t\tif ( target === undefined ) {\n\n\t\t\tconsole.warn( 'THREE.Triangle: .getNormal() target is now required' );\n\t\t\ttarget = new Vector3();\n\n\t\t}\n\n\t\ttarget.subVectors( c, b );\n\t\t_v0$1.subVectors( a, b );\n\t\ttarget.cross( _v0$1 );\n\n\t\tconst targetLengthSq = target.lengthSq();\n\t\tif ( targetLengthSq > 0 ) {\n\n\t\t\treturn target.multiplyScalar( 1 / Math.sqrt( targetLengthSq ) );\n\n\t\t}\n\n\t\treturn target.set( 0, 0, 0 );\n\n\t}\n\n\t// static/instance method to calculate barycentric coordinates\n\t// based on: http://www.blackpawn.com/texts/pointinpoly/default.html\n\tstatic getBarycoord( point, a, b, c, target ) {\n\n\t\t_v0$1.subVectors( c, a );\n\t\t_v1$3.subVectors( b, a );\n\t\t_v2$1.subVectors( point, a );\n\n\t\tconst dot00 = _v0$1.dot( _v0$1 );\n\t\tconst dot01 = _v0$1.dot( _v1$3 );\n\t\tconst dot02 = _v0$1.dot( _v2$1 );\n\t\tconst dot11 = _v1$3.dot( _v1$3 );\n\t\tconst dot12 = _v1$3.dot( _v2$1 );\n\n\t\tconst denom = ( dot00 * dot11 - dot01 * dot01 );\n\n\t\tif ( target === undefined ) {\n\n\t\t\tconsole.warn( 'THREE.Triangle: .getBarycoord() target is now required' );\n\t\t\ttarget = new Vector3();\n\n\t\t}\n\n\t\t// collinear or singular triangle\n\t\tif ( denom === 0 ) {\n\n\t\t\t// arbitrary location outside of triangle?\n\t\t\t// not sure if this is the best idea, maybe should be returning undefined\n\t\t\treturn target.set( - 2, - 1, - 1 );\n\n\t\t}\n\n\t\tconst invDenom = 1 / denom;\n\t\tconst u = ( dot11 * dot02 - dot01 * dot12 ) * invDenom;\n\t\tconst v = ( dot00 * dot12 - dot01 * dot02 ) * invDenom;\n\n\t\t// barycentric coordinates must always sum to 1\n\t\treturn target.set( 1 - u - v, v, u );\n\n\t}\n\n\tstatic containsPoint( point, a, b, c ) {\n\n\t\tthis.getBarycoord( point, a, b, c, _v3 );\n\n\t\treturn ( _v3.x >= 0 ) && ( _v3.y >= 0 ) && ( ( _v3.x + _v3.y ) <= 1 );\n\n\t}\n\n\tstatic getUV( point, p1, p2, p3, uv1, uv2, uv3, target ) {\n\n\t\tthis.getBarycoord( point, p1, p2, p3, _v3 );\n\n\t\ttarget.set( 0, 0 );\n\t\ttarget.addScaledVector( uv1, _v3.x );\n\t\ttarget.addScaledVector( uv2, _v3.y );\n\t\ttarget.addScaledVector( uv3, _v3.z );\n\n\t\treturn target;\n\n\t}\n\n\tstatic isFrontFacing( a, b, c, direction ) {\n\n\t\t_v0$1.subVectors( c, b );\n\t\t_v1$3.subVectors( a, b );\n\n\t\t// strictly front facing\n\t\treturn ( _v0$1.cross( _v1$3 ).dot( direction ) < 0 ) ? true : false;\n\n\t}\n\n\tset( a, b, c ) {\n\n\t\tthis.a.copy( a );\n\t\tthis.b.copy( b );\n\t\tthis.c.copy( c );\n\n\t\treturn this;\n\n\t}\n\n\tsetFromPointsAndIndices( points, i0, i1, i2 ) {\n\n\t\tthis.a.copy( points[ i0 ] );\n\t\tthis.b.copy( points[ i1 ] );\n\t\tthis.c.copy( points[ i2 ] );\n\n\t\treturn this;\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n\tcopy( triangle ) {\n\n\t\tthis.a.copy( triangle.a );\n\t\tthis.b.copy( triangle.b );\n\t\tthis.c.copy( triangle.c );\n\n\t\treturn this;\n\n\t}\n\n\tgetArea() {\n\n\t\t_v0$1.subVectors( this.c, this.b );\n\t\t_v1$3.subVectors( this.a, this.b );\n\n\t\treturn _v0$1.cross( _v1$3 ).length() * 0.5;\n\n\t}\n\n\tgetMidpoint( target ) {\n\n\t\tif ( target === undefined ) {\n\n\t\t\tconsole.warn( 'THREE.Triangle: .getMidpoint() target is now required' );\n\t\t\ttarget = new Vector3();\n\n\t\t}\n\n\t\treturn target.addVectors( this.a, this.b ).add( this.c ).multiplyScalar( 1 / 3 );\n\n\t}\n\n\tgetNormal( target ) {\n\n\t\treturn Triangle.getNormal( this.a, this.b, this.c, target );\n\n\t}\n\n\tgetPlane( target ) {\n\n\t\tif ( target === undefined ) {\n\n\t\t\tconsole.warn( 'THREE.Triangle: .getPlane() target is now required' );\n\t\t\ttarget = new Plane();\n\n\t\t}\n\n\t\treturn target.setFromCoplanarPoints( this.a, this.b, this.c );\n\n\t}\n\n\tgetBarycoord( point, target ) {\n\n\t\treturn Triangle.getBarycoord( point, this.a, this.b, this.c, target );\n\n\t}\n\n\tgetUV( point, uv1, uv2, uv3, target ) {\n\n\t\treturn Triangle.getUV( point, this.a, this.b, this.c, uv1, uv2, uv3, target );\n\n\t}\n\n\tcontainsPoint( point ) {\n\n\t\treturn Triangle.containsPoint( point, this.a, this.b, this.c );\n\n\t}\n\n\tisFrontFacing( direction ) {\n\n\t\treturn Triangle.isFrontFacing( this.a, this.b, this.c, direction );\n\n\t}\n\n\tintersectsBox( box ) {\n\n\t\treturn box.intersectsTriangle( this );\n\n\t}\n\n\tclosestPointToPoint( p, target ) {\n\n\t\tif ( target === undefined ) {\n\n\t\t\tconsole.warn( 'THREE.Triangle: .closestPointToPoint() target is now required' );\n\t\t\ttarget = new Vector3();\n\n\t\t}\n\n\t\tconst a = this.a, b = this.b, c = this.c;\n\t\tlet v, w;\n\n\t\t// algorithm thanks to Real-Time Collision Detection by Christer Ericson,\n\t\t// published by Morgan Kaufmann Publishers, (c) 2005 Elsevier Inc.,\n\t\t// under the accompanying license; see chapter 5.1.5 for detailed explanation.\n\t\t// basically, we're distinguishing which of the voronoi regions of the triangle\n\t\t// the point lies in with the minimum amount of redundant computation.\n\n\t\t_vab.subVectors( b, a );\n\t\t_vac.subVectors( c, a );\n\t\t_vap.subVectors( p, a );\n\t\tconst d1 = _vab.dot( _vap );\n\t\tconst d2 = _vac.dot( _vap );\n\t\tif ( d1 <= 0 && d2 <= 0 ) {\n\n\t\t\t// vertex region of A; barycentric coords (1, 0, 0)\n\t\t\treturn target.copy( a );\n\n\t\t}\n\n\t\t_vbp.subVectors( p, b );\n\t\tconst d3 = _vab.dot( _vbp );\n\t\tconst d4 = _vac.dot( _vbp );\n\t\tif ( d3 >= 0 && d4 <= d3 ) {\n\n\t\t\t// vertex region of B; barycentric coords (0, 1, 0)\n\t\t\treturn target.copy( b );\n\n\t\t}\n\n\t\tconst vc = d1 * d4 - d3 * d2;\n\t\tif ( vc <= 0 && d1 >= 0 && d3 <= 0 ) {\n\n\t\t\tv = d1 / ( d1 - d3 );\n\t\t\t// edge region of AB; barycentric coords (1-v, v, 0)\n\t\t\treturn target.copy( a ).addScaledVector( _vab, v );\n\n\t\t}\n\n\t\t_vcp.subVectors( p, c );\n\t\tconst d5 = _vab.dot( _vcp );\n\t\tconst d6 = _vac.dot( _vcp );\n\t\tif ( d6 >= 0 && d5 <= d6 ) {\n\n\t\t\t// vertex region of C; barycentric coords (0, 0, 1)\n\t\t\treturn target.copy( c );\n\n\t\t}\n\n\t\tconst vb = d5 * d2 - d1 * d6;\n\t\tif ( vb <= 0 && d2 >= 0 && d6 <= 0 ) {\n\n\t\t\tw = d2 / ( d2 - d6 );\n\t\t\t// edge region of AC; barycentric coords (1-w, 0, w)\n\t\t\treturn target.copy( a ).addScaledVector( _vac, w );\n\n\t\t}\n\n\t\tconst va = d3 * d6 - d5 * d4;\n\t\tif ( va <= 0 && ( d4 - d3 ) >= 0 && ( d5 - d6 ) >= 0 ) {\n\n\t\t\t_vbc.subVectors( c, b );\n\t\t\tw = ( d4 - d3 ) / ( ( d4 - d3 ) + ( d5 - d6 ) );\n\t\t\t// edge region of BC; barycentric coords (0, 1-w, w)\n\t\t\treturn target.copy( b ).addScaledVector( _vbc, w ); // edge region of BC\n\n\t\t}\n\n\t\t// face region\n\t\tconst denom = 1 / ( va + vb + vc );\n\t\t// u = va * denom\n\t\tv = vb * denom;\n\t\tw = vc * denom;\n\n\t\treturn target.copy( a ).addScaledVector( _vab, v ).addScaledVector( _vac, w );\n\n\t}\n\n\tequals( triangle ) {\n\n\t\treturn triangle.a.equals( this.a ) && triangle.b.equals( this.b ) && triangle.c.equals( this.c );\n\n\t}\n\n}\n\nconst _colorKeywords = { 'aliceblue': 0xF0F8FF, 'antiquewhite': 0xFAEBD7, 'aqua': 0x00FFFF, 'aquamarine': 0x7FFFD4, 'azure': 0xF0FFFF,\n\t'beige': 0xF5F5DC, 'bisque': 0xFFE4C4, 'black': 0x000000, 'blanchedalmond': 0xFFEBCD, 'blue': 0x0000FF, 'blueviolet': 0x8A2BE2,\n\t'brown': 0xA52A2A, 'burlywood': 0xDEB887, 'cadetblue': 0x5F9EA0, 'chartreuse': 0x7FFF00, 'chocolate': 0xD2691E, 'coral': 0xFF7F50,\n\t'cornflowerblue': 0x6495ED, 'cornsilk': 0xFFF8DC, 'crimson': 0xDC143C, 'cyan': 0x00FFFF, 'darkblue': 0x00008B, 'darkcyan': 0x008B8B,\n\t'darkgoldenrod': 0xB8860B, 'darkgray': 0xA9A9A9, 'darkgreen': 0x006400, 'darkgrey': 0xA9A9A9, 'darkkhaki': 0xBDB76B, 'darkmagenta': 0x8B008B,\n\t'darkolivegreen': 0x556B2F, 'darkorange': 0xFF8C00, 'darkorchid': 0x9932CC, 'darkred': 0x8B0000, 'darksalmon': 0xE9967A, 'darkseagreen': 0x8FBC8F,\n\t'darkslateblue': 0x483D8B, 'darkslategray': 0x2F4F4F, 'darkslategrey': 0x2F4F4F, 'darkturquoise': 0x00CED1, 'darkviolet': 0x9400D3,\n\t'deeppink': 0xFF1493, 'deepskyblue': 0x00BFFF, 'dimgray': 0x696969, 'dimgrey': 0x696969, 'dodgerblue': 0x1E90FF, 'firebrick': 0xB22222,\n\t'floralwhite': 0xFFFAF0, 'forestgreen': 0x228B22, 'fuchsia': 0xFF00FF, 'gainsboro': 0xDCDCDC, 'ghostwhite': 0xF8F8FF, 'gold': 0xFFD700,\n\t'goldenrod': 0xDAA520, 'gray': 0x808080, 'green': 0x008000, 'greenyellow': 0xADFF2F, 'grey': 0x808080, 'honeydew': 0xF0FFF0, 'hotpink': 0xFF69B4,\n\t'indianred': 0xCD5C5C, 'indigo': 0x4B0082, 'ivory': 0xFFFFF0, 'khaki': 0xF0E68C, 'lavender': 0xE6E6FA, 'lavenderblush': 0xFFF0F5, 'lawngreen': 0x7CFC00,\n\t'lemonchiffon': 0xFFFACD, 'lightblue': 0xADD8E6, 'lightcoral': 0xF08080, 'lightcyan': 0xE0FFFF, 'lightgoldenrodyellow': 0xFAFAD2, 'lightgray': 0xD3D3D3,\n\t'lightgreen': 0x90EE90, 'lightgrey': 0xD3D3D3, 'lightpink': 0xFFB6C1, 'lightsalmon': 0xFFA07A, 'lightseagreen': 0x20B2AA, 'lightskyblue': 0x87CEFA,\n\t'lightslategray': 0x778899, 'lightslategrey': 0x778899, 'lightsteelblue': 0xB0C4DE, 'lightyellow': 0xFFFFE0, 'lime': 0x00FF00, 'limegreen': 0x32CD32,\n\t'linen': 0xFAF0E6, 'magenta': 0xFF00FF, 'maroon': 0x800000, 'mediumaquamarine': 0x66CDAA, 'mediumblue': 0x0000CD, 'mediumorchid': 0xBA55D3,\n\t'mediumpurple': 0x9370DB, 'mediumseagreen': 0x3CB371, 'mediumslateblue': 0x7B68EE, 'mediumspringgreen': 0x00FA9A, 'mediumturquoise': 0x48D1CC,\n\t'mediumvioletred': 0xC71585, 'midnightblue': 0x191970, 'mintcream': 0xF5FFFA, 'mistyrose': 0xFFE4E1, 'moccasin': 0xFFE4B5, 'navajowhite': 0xFFDEAD,\n\t'navy': 0x000080, 'oldlace': 0xFDF5E6, 'olive': 0x808000, 'olivedrab': 0x6B8E23, 'orange': 0xFFA500, 'orangered': 0xFF4500, 'orchid': 0xDA70D6,\n\t'palegoldenrod': 0xEEE8AA, 'palegreen': 0x98FB98, 'paleturquoise': 0xAFEEEE, 'palevioletred': 0xDB7093, 'papayawhip': 0xFFEFD5, 'peachpuff': 0xFFDAB9,\n\t'peru': 0xCD853F, 'pink': 0xFFC0CB, 'plum': 0xDDA0DD, 'powderblue': 0xB0E0E6, 'purple': 0x800080, 'rebeccapurple': 0x663399, 'red': 0xFF0000, 'rosybrown': 0xBC8F8F,\n\t'royalblue': 0x4169E1, 'saddlebrown': 0x8B4513, 'salmon': 0xFA8072, 'sandybrown': 0xF4A460, 'seagreen': 0x2E8B57, 'seashell': 0xFFF5EE,\n\t'sienna': 0xA0522D, 'silver': 0xC0C0C0, 'skyblue': 0x87CEEB, 'slateblue': 0x6A5ACD, 'slategray': 0x708090, 'slategrey': 0x708090, 'snow': 0xFFFAFA,\n\t'springgreen': 0x00FF7F, 'steelblue': 0x4682B4, 'tan': 0xD2B48C, 'teal': 0x008080, 'thistle': 0xD8BFD8, 'tomato': 0xFF6347, 'turquoise': 0x40E0D0,\n\t'violet': 0xEE82EE, 'wheat': 0xF5DEB3, 'white': 0xFFFFFF, 'whitesmoke': 0xF5F5F5, 'yellow': 0xFFFF00, 'yellowgreen': 0x9ACD32 };\n\nconst _hslA = { h: 0, s: 0, l: 0 };\nconst _hslB = { h: 0, s: 0, l: 0 };\n\nfunction hue2rgb( p, q, t ) {\n\n\tif ( t < 0 ) t += 1;\n\tif ( t > 1 ) t -= 1;\n\tif ( t < 1 / 6 ) return p + ( q - p ) * 6 * t;\n\tif ( t < 1 / 2 ) return q;\n\tif ( t < 2 / 3 ) return p + ( q - p ) * 6 * ( 2 / 3 - t );\n\treturn p;\n\n}\n\nfunction SRGBToLinear( c ) {\n\n\treturn ( c < 0.04045 ) ? c * 0.0773993808 : Math.pow( c * 0.9478672986 + 0.0521327014, 2.4 );\n\n}\n\nfunction LinearToSRGB( c ) {\n\n\treturn ( c < 0.0031308 ) ? c * 12.92 : 1.055 * ( Math.pow( c, 0.41666 ) ) - 0.055;\n\n}\n\nclass Color {\n\n\tconstructor( r, g, b ) {\n\n\t\tObject.defineProperty( this, 'isColor', { value: true } );\n\n\t\tif ( g === undefined && b === undefined ) {\n\n\t\t\t// r is THREE.Color, hex or string\n\t\t\treturn this.set( r );\n\n\t\t}\n\n\t\treturn this.setRGB( r, g, b );\n\n\t}\n\n\tset( value ) {\n\n\t\tif ( value && value.isColor ) {\n\n\t\t\tthis.copy( value );\n\n\t\t} else if ( typeof value === 'number' ) {\n\n\t\t\tthis.setHex( value );\n\n\t\t} else if ( typeof value === 'string' ) {\n\n\t\t\tthis.setStyle( value );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tsetScalar( scalar ) {\n\n\t\tthis.r = scalar;\n\t\tthis.g = scalar;\n\t\tthis.b = scalar;\n\n\t\treturn this;\n\n\t}\n\n\tsetHex( hex ) {\n\n\t\thex = Math.floor( hex );\n\n\t\tthis.r = ( hex >> 16 & 255 ) / 255;\n\t\tthis.g = ( hex >> 8 & 255 ) / 255;\n\t\tthis.b = ( hex & 255 ) / 255;\n\n\t\treturn this;\n\n\t}\n\n\tsetRGB( r, g, b ) {\n\n\t\tthis.r = r;\n\t\tthis.g = g;\n\t\tthis.b = b;\n\n\t\treturn this;\n\n\t}\n\n\tsetHSL( h, s, l ) {\n\n\t\t// h,s,l ranges are in 0.0 - 1.0\n\t\th = MathUtils.euclideanModulo( h, 1 );\n\t\ts = MathUtils.clamp( s, 0, 1 );\n\t\tl = MathUtils.clamp( l, 0, 1 );\n\n\t\tif ( s === 0 ) {\n\n\t\t\tthis.r = this.g = this.b = l;\n\n\t\t} else {\n\n\t\t\tconst p = l <= 0.5 ? l * ( 1 + s ) : l + s - ( l * s );\n\t\t\tconst q = ( 2 * l ) - p;\n\n\t\t\tthis.r = hue2rgb( q, p, h + 1 / 3 );\n\t\t\tthis.g = hue2rgb( q, p, h );\n\t\t\tthis.b = hue2rgb( q, p, h - 1 / 3 );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tsetStyle( style ) {\n\n\t\tfunction handleAlpha( string ) {\n\n\t\t\tif ( string === undefined ) return;\n\n\t\t\tif ( parseFloat( string ) < 1 ) {\n\n\t\t\t\tconsole.warn( 'THREE.Color: Alpha component of ' + style + ' will be ignored.' );\n\n\t\t\t}\n\n\t\t}\n\n\n\t\tlet m;\n\n\t\tif ( m = /^((?:rgb|hsl)a?)\\(([^\\)]*)\\)/.exec( style ) ) {\n\n\t\t\t// rgb / hsl\n\n\t\t\tlet color;\n\t\t\tconst name = m[ 1 ];\n\t\t\tconst components = m[ 2 ];\n\n\t\t\tswitch ( name ) {\n\n\t\t\t\tcase 'rgb':\n\t\t\t\tcase 'rgba':\n\n\t\t\t\t\tif ( color = /^\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*(?:,\\s*(\\d*\\.?\\d+)\\s*)?$/.exec( components ) ) {\n\n\t\t\t\t\t\t// rgb(255,0,0) rgba(255,0,0,0.5)\n\t\t\t\t\t\tthis.r = Math.min( 255, parseInt( color[ 1 ], 10 ) ) / 255;\n\t\t\t\t\t\tthis.g = Math.min( 255, parseInt( color[ 2 ], 10 ) ) / 255;\n\t\t\t\t\t\tthis.b = Math.min( 255, parseInt( color[ 3 ], 10 ) ) / 255;\n\n\t\t\t\t\t\thandleAlpha( color[ 4 ] );\n\n\t\t\t\t\t\treturn this;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( color = /^\\s*(\\d+)\\%\\s*,\\s*(\\d+)\\%\\s*,\\s*(\\d+)\\%\\s*(?:,\\s*(\\d*\\.?\\d+)\\s*)?$/.exec( components ) ) {\n\n\t\t\t\t\t\t// rgb(100%,0%,0%) rgba(100%,0%,0%,0.5)\n\t\t\t\t\t\tthis.r = Math.min( 100, parseInt( color[ 1 ], 10 ) ) / 100;\n\t\t\t\t\t\tthis.g = Math.min( 100, parseInt( color[ 2 ], 10 ) ) / 100;\n\t\t\t\t\t\tthis.b = Math.min( 100, parseInt( color[ 3 ], 10 ) ) / 100;\n\n\t\t\t\t\t\thandleAlpha( color[ 4 ] );\n\n\t\t\t\t\t\treturn this;\n\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'hsl':\n\t\t\t\tcase 'hsla':\n\n\t\t\t\t\tif ( color = /^\\s*(\\d*\\.?\\d+)\\s*,\\s*(\\d+)\\%\\s*,\\s*(\\d+)\\%\\s*(?:,\\s*(\\d*\\.?\\d+)\\s*)?$/.exec( components ) ) {\n\n\t\t\t\t\t\t// hsl(120,50%,50%) hsla(120,50%,50%,0.5)\n\t\t\t\t\t\tconst h = parseFloat( color[ 1 ] ) / 360;\n\t\t\t\t\t\tconst s = parseInt( color[ 2 ], 10 ) / 100;\n\t\t\t\t\t\tconst l = parseInt( color[ 3 ], 10 ) / 100;\n\n\t\t\t\t\t\thandleAlpha( color[ 4 ] );\n\n\t\t\t\t\t\treturn this.setHSL( h, s, l );\n\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\n\t\t\t}\n\n\t\t} else if ( m = /^\\#([A-Fa-f\\d]+)$/.exec( style ) ) {\n\n\t\t\t// hex color\n\n\t\t\tconst hex = m[ 1 ];\n\t\t\tconst size = hex.length;\n\n\t\t\tif ( size === 3 ) {\n\n\t\t\t\t// #ff0\n\t\t\t\tthis.r = parseInt( hex.charAt( 0 ) + hex.charAt( 0 ), 16 ) / 255;\n\t\t\t\tthis.g = parseInt( hex.charAt( 1 ) + hex.charAt( 1 ), 16 ) / 255;\n\t\t\t\tthis.b = parseInt( hex.charAt( 2 ) + hex.charAt( 2 ), 16 ) / 255;\n\n\t\t\t\treturn this;\n\n\t\t\t} else if ( size === 6 ) {\n\n\t\t\t\t// #ff0000\n\t\t\t\tthis.r = parseInt( hex.charAt( 0 ) + hex.charAt( 1 ), 16 ) / 255;\n\t\t\t\tthis.g = parseInt( hex.charAt( 2 ) + hex.charAt( 3 ), 16 ) / 255;\n\t\t\t\tthis.b = parseInt( hex.charAt( 4 ) + hex.charAt( 5 ), 16 ) / 255;\n\n\t\t\t\treturn this;\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( style && style.length > 0 ) {\n\n\t\t\treturn this.setColorName( style );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tsetColorName( style ) {\n\n\t\t// color keywords\n\t\tconst hex = _colorKeywords[ style ];\n\n\t\tif ( hex !== undefined ) {\n\n\t\t\t// red\n\t\t\tthis.setHex( hex );\n\n\t\t} else {\n\n\t\t\t// unknown color\n\t\t\tconsole.warn( 'THREE.Color: Unknown color ' + style );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor( this.r, this.g, this.b );\n\n\t}\n\n\tcopy( color ) {\n\n\t\tthis.r = color.r;\n\t\tthis.g = color.g;\n\t\tthis.b = color.b;\n\n\t\treturn this;\n\n\t}\n\n\tcopyGammaToLinear( color, gammaFactor = 2.0 ) {\n\n\t\tthis.r = Math.pow( color.r, gammaFactor );\n\t\tthis.g = Math.pow( color.g, gammaFactor );\n\t\tthis.b = Math.pow( color.b, gammaFactor );\n\n\t\treturn this;\n\n\t}\n\n\tcopyLinearToGamma( color, gammaFactor = 2.0 ) {\n\n\t\tconst safeInverse = ( gammaFactor > 0 ) ? ( 1.0 / gammaFactor ) : 1.0;\n\n\t\tthis.r = Math.pow( color.r, safeInverse );\n\t\tthis.g = Math.pow( color.g, safeInverse );\n\t\tthis.b = Math.pow( color.b, safeInverse );\n\n\t\treturn this;\n\n\t}\n\n\tconvertGammaToLinear( gammaFactor ) {\n\n\t\tthis.copyGammaToLinear( this, gammaFactor );\n\n\t\treturn this;\n\n\t}\n\n\tconvertLinearToGamma( gammaFactor ) {\n\n\t\tthis.copyLinearToGamma( this, gammaFactor );\n\n\t\treturn this;\n\n\t}\n\n\tcopySRGBToLinear( color ) {\n\n\t\tthis.r = SRGBToLinear( color.r );\n\t\tthis.g = SRGBToLinear( color.g );\n\t\tthis.b = SRGBToLinear( color.b );\n\n\t\treturn this;\n\n\t}\n\n\tcopyLinearToSRGB( color ) {\n\n\t\tthis.r = LinearToSRGB( color.r );\n\t\tthis.g = LinearToSRGB( color.g );\n\t\tthis.b = LinearToSRGB( color.b );\n\n\t\treturn this;\n\n\t}\n\n\tconvertSRGBToLinear() {\n\n\t\tthis.copySRGBToLinear( this );\n\n\t\treturn this;\n\n\t}\n\n\tconvertLinearToSRGB() {\n\n\t\tthis.copyLinearToSRGB( this );\n\n\t\treturn this;\n\n\t}\n\n\tgetHex() {\n\n\t\treturn ( this.r * 255 ) << 16 ^ ( this.g * 255 ) << 8 ^ ( this.b * 255 ) << 0;\n\n\t}\n\n\tgetHexString() {\n\n\t\treturn ( '000000' + this.getHex().toString( 16 ) ).slice( - 6 );\n\n\t}\n\n\tgetHSL( target ) {\n\n\t\t// h,s,l ranges are in 0.0 - 1.0\n\n\t\tif ( target === undefined ) {\n\n\t\t\tconsole.warn( 'THREE.Color: .getHSL() target is now required' );\n\t\t\ttarget = { h: 0, s: 0, l: 0 };\n\n\t\t}\n\n\t\tconst r = this.r, g = this.g, b = this.b;\n\n\t\tconst max = Math.max( r, g, b );\n\t\tconst min = Math.min( r, g, b );\n\n\t\tlet hue, saturation;\n\t\tconst lightness = ( min + max ) / 2.0;\n\n\t\tif ( min === max ) {\n\n\t\t\thue = 0;\n\t\t\tsaturation = 0;\n\n\t\t} else {\n\n\t\t\tconst delta = max - min;\n\n\t\t\tsaturation = lightness <= 0.5 ? delta / ( max + min ) : delta / ( 2 - max - min );\n\n\t\t\tswitch ( max ) {\n\n\t\t\t\tcase r: hue = ( g - b ) / delta + ( g < b ? 6 : 0 ); break;\n\t\t\t\tcase g: hue = ( b - r ) / delta + 2; break;\n\t\t\t\tcase b: hue = ( r - g ) / delta + 4; break;\n\n\t\t\t}\n\n\t\t\thue /= 6;\n\n\t\t}\n\n\t\ttarget.h = hue;\n\t\ttarget.s = saturation;\n\t\ttarget.l = lightness;\n\n\t\treturn target;\n\n\t}\n\n\tgetStyle() {\n\n\t\treturn 'rgb(' + ( ( this.r * 255 ) | 0 ) + ',' + ( ( this.g * 255 ) | 0 ) + ',' + ( ( this.b * 255 ) | 0 ) + ')';\n\n\t}\n\n\toffsetHSL( h, s, l ) {\n\n\t\tthis.getHSL( _hslA );\n\n\t\t_hslA.h += h; _hslA.s += s; _hslA.l += l;\n\n\t\tthis.setHSL( _hslA.h, _hslA.s, _hslA.l );\n\n\t\treturn this;\n\n\t}\n\n\tadd( color ) {\n\n\t\tthis.r += color.r;\n\t\tthis.g += color.g;\n\t\tthis.b += color.b;\n\n\t\treturn this;\n\n\t}\n\n\taddColors( color1, color2 ) {\n\n\t\tthis.r = color1.r + color2.r;\n\t\tthis.g = color1.g + color2.g;\n\t\tthis.b = color1.b + color2.b;\n\n\t\treturn this;\n\n\t}\n\n\taddScalar( s ) {\n\n\t\tthis.r += s;\n\t\tthis.g += s;\n\t\tthis.b += s;\n\n\t\treturn this;\n\n\t}\n\n\tsub( color ) {\n\n\t\tthis.r = Math.max( 0, this.r - color.r );\n\t\tthis.g = Math.max( 0, this.g - color.g );\n\t\tthis.b = Math.max( 0, this.b - color.b );\n\n\t\treturn this;\n\n\t}\n\n\tmultiply( color ) {\n\n\t\tthis.r *= color.r;\n\t\tthis.g *= color.g;\n\t\tthis.b *= color.b;\n\n\t\treturn this;\n\n\t}\n\n\tmultiplyScalar( s ) {\n\n\t\tthis.r *= s;\n\t\tthis.g *= s;\n\t\tthis.b *= s;\n\n\t\treturn this;\n\n\t}\n\n\tlerp( color, alpha ) {\n\n\t\tthis.r += ( color.r - this.r ) * alpha;\n\t\tthis.g += ( color.g - this.g ) * alpha;\n\t\tthis.b += ( color.b - this.b ) * alpha;\n\n\t\treturn this;\n\n\t}\n\n\tlerpColors( color1, color2, alpha ) {\n\n\t\tthis.r = color1.r + ( color2.r - color1.r ) * alpha;\n\t\tthis.g = color1.g + ( color2.g - color1.g ) * alpha;\n\t\tthis.b = color1.b + ( color2.b - color1.b ) * alpha;\n\n\t\treturn this;\n\n\t}\n\n\tlerpHSL( color, alpha ) {\n\n\t\tthis.getHSL( _hslA );\n\t\tcolor.getHSL( _hslB );\n\n\t\tconst h = MathUtils.lerp( _hslA.h, _hslB.h, alpha );\n\t\tconst s = MathUtils.lerp( _hslA.s, _hslB.s, alpha );\n\t\tconst l = MathUtils.lerp( _hslA.l, _hslB.l, alpha );\n\n\t\tthis.setHSL( h, s, l );\n\n\t\treturn this;\n\n\t}\n\n\tequals( c ) {\n\n\t\treturn ( c.r === this.r ) && ( c.g === this.g ) && ( c.b === this.b );\n\n\t}\n\n\tfromArray( array, offset = 0 ) {\n\n\t\tthis.r = array[ offset ];\n\t\tthis.g = array[ offset + 1 ];\n\t\tthis.b = array[ offset + 2 ];\n\n\t\treturn this;\n\n\t}\n\n\ttoArray( array = [], offset = 0 ) {\n\n\t\tarray[ offset ] = this.r;\n\t\tarray[ offset + 1 ] = this.g;\n\t\tarray[ offset + 2 ] = this.b;\n\n\t\treturn array;\n\n\t}\n\n\tfromBufferAttribute( attribute, index ) {\n\n\t\tthis.r = attribute.getX( index );\n\t\tthis.g = attribute.getY( index );\n\t\tthis.b = attribute.getZ( index );\n\n\t\tif ( attribute.normalized === true ) {\n\n\t\t\t// assuming Uint8Array\n\n\t\t\tthis.r /= 255;\n\t\t\tthis.g /= 255;\n\t\t\tthis.b /= 255;\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\ttoJSON() {\n\n\t\treturn this.getHex();\n\n\t}\n\n}\n\nColor.NAMES = _colorKeywords;\nColor.prototype.r = 1;\nColor.prototype.g = 1;\nColor.prototype.b = 1;\n\nclass Face3 {\n\n\tconstructor( a, b, c, normal, color, materialIndex = 0 ) {\n\n\t\tthis.a = a;\n\t\tthis.b = b;\n\t\tthis.c = c;\n\n\t\tthis.normal = ( normal && normal.isVector3 ) ? normal : new Vector3();\n\t\tthis.vertexNormals = Array.isArray( normal ) ? normal : [];\n\n\t\tthis.color = ( color && color.isColor ) ? color : new Color();\n\t\tthis.vertexColors = Array.isArray( color ) ? color : [];\n\n\t\tthis.materialIndex = materialIndex;\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n\tcopy( source ) {\n\n\t\tthis.a = source.a;\n\t\tthis.b = source.b;\n\t\tthis.c = source.c;\n\n\t\tthis.normal.copy( source.normal );\n\t\tthis.color.copy( source.color );\n\n\t\tthis.materialIndex = source.materialIndex;\n\n\t\tfor ( let i = 0, il = source.vertexNormals.length; i < il; i ++ ) {\n\n\t\t\tthis.vertexNormals[ i ] = source.vertexNormals[ i ].clone();\n\n\t\t}\n\n\t\tfor ( let i = 0, il = source.vertexColors.length; i < il; i ++ ) {\n\n\t\t\tthis.vertexColors[ i ] = source.vertexColors[ i ].clone();\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n}\n\nlet materialId = 0;\n\nfunction Material() {\n\n\tObject.defineProperty( this, 'id', { value: materialId ++ } );\n\n\tthis.uuid = MathUtils.generateUUID();\n\n\tthis.name = '';\n\tthis.type = 'Material';\n\n\tthis.fog = true;\n\n\tthis.blending = NormalBlending;\n\tthis.side = FrontSide;\n\tthis.flatShading = false;\n\tthis.vertexColors = false;\n\n\tthis.opacity = 1;\n\tthis.transparent = false;\n\n\tthis.blendSrc = SrcAlphaFactor;\n\tthis.blendDst = OneMinusSrcAlphaFactor;\n\tthis.blendEquation = AddEquation;\n\tthis.blendSrcAlpha = null;\n\tthis.blendDstAlpha = null;\n\tthis.blendEquationAlpha = null;\n\n\tthis.depthFunc = LessEqualDepth;\n\tthis.depthTest = true;\n\tthis.depthWrite = true;\n\n\tthis.stencilWriteMask = 0xff;\n\tthis.stencilFunc = AlwaysStencilFunc;\n\tthis.stencilRef = 0;\n\tthis.stencilFuncMask = 0xff;\n\tthis.stencilFail = KeepStencilOp;\n\tthis.stencilZFail = KeepStencilOp;\n\tthis.stencilZPass = KeepStencilOp;\n\tthis.stencilWrite = false;\n\n\tthis.clippingPlanes = null;\n\tthis.clipIntersection = false;\n\tthis.clipShadows = false;\n\n\tthis.shadowSide = null;\n\n\tthis.colorWrite = true;\n\n\tthis.precision = null; // override the renderer's default precision for this material\n\n\tthis.polygonOffset = false;\n\tthis.polygonOffsetFactor = 0;\n\tthis.polygonOffsetUnits = 0;\n\n\tthis.dithering = false;\n\n\tthis.alphaTest = 0;\n\tthis.premultipliedAlpha = false;\n\n\tthis.visible = true;\n\n\tthis.toneMapped = true;\n\n\tthis.userData = {};\n\n\tthis.version = 0;\n\n}\n\nMaterial.prototype = Object.assign( Object.create( EventDispatcher.prototype ), {\n\n\tconstructor: Material,\n\n\tisMaterial: true,\n\n\tonBeforeCompile: function ( /* shaderobject, renderer */ ) {},\n\n\tcustomProgramCacheKey: function () {\n\n\t\treturn this.onBeforeCompile.toString();\n\n\t},\n\n\tsetValues: function ( values ) {\n\n\t\tif ( values === undefined ) return;\n\n\t\tfor ( const key in values ) {\n\n\t\t\tconst newValue = values[ key ];\n\n\t\t\tif ( newValue === undefined ) {\n\n\t\t\t\tconsole.warn( 'THREE.Material: \\'' + key + '\\' parameter is undefined.' );\n\t\t\t\tcontinue;\n\n\t\t\t}\n\n\t\t\t// for backward compatability if shading is set in the constructor\n\t\t\tif ( key === 'shading' ) {\n\n\t\t\t\tconsole.warn( 'THREE.' + this.type + ': .shading has been removed. Use the boolean .flatShading instead.' );\n\t\t\t\tthis.flatShading = ( newValue === FlatShading ) ? true : false;\n\t\t\t\tcontinue;\n\n\t\t\t}\n\n\t\t\tconst currentValue = this[ key ];\n\n\t\t\tif ( currentValue === undefined ) {\n\n\t\t\t\tconsole.warn( 'THREE.' + this.type + ': \\'' + key + '\\' is not a property of this material.' );\n\t\t\t\tcontinue;\n\n\t\t\t}\n\n\t\t\tif ( currentValue && currentValue.isColor ) {\n\n\t\t\t\tcurrentValue.set( newValue );\n\n\t\t\t} else if ( ( currentValue && currentValue.isVector3 ) && ( newValue && newValue.isVector3 ) ) {\n\n\t\t\t\tcurrentValue.copy( newValue );\n\n\t\t\t} else {\n\n\t\t\t\tthis[ key ] = newValue;\n\n\t\t\t}\n\n\t\t}\n\n\t},\n\n\ttoJSON: function ( meta ) {\n\n\t\tconst isRoot = ( meta === undefined || typeof meta === 'string' );\n\n\t\tif ( isRoot ) {\n\n\t\t\tmeta = {\n\t\t\t\ttextures: {},\n\t\t\t\timages: {}\n\t\t\t};\n\n\t\t}\n\n\t\tconst data = {\n\t\t\tmetadata: {\n\t\t\t\tversion: 4.5,\n\t\t\t\ttype: 'Material',\n\t\t\t\tgenerator: 'Material.toJSON'\n\t\t\t}\n\t\t};\n\n\t\t// standard Material serialization\n\t\tdata.uuid = this.uuid;\n\t\tdata.type = this.type;\n\n\t\tif ( this.name !== '' ) data.name = this.name;\n\n\t\tif ( this.color && this.color.isColor ) data.color = this.color.getHex();\n\n\t\tif ( this.roughness !== undefined ) data.roughness = this.roughness;\n\t\tif ( this.metalness !== undefined ) data.metalness = this.metalness;\n\n\t\tif ( this.sheen && this.sheen.isColor ) data.sheen = this.sheen.getHex();\n\t\tif ( this.emissive && this.emissive.isColor ) data.emissive = this.emissive.getHex();\n\t\tif ( this.emissiveIntensity && this.emissiveIntensity !== 1 ) data.emissiveIntensity = this.emissiveIntensity;\n\n\t\tif ( this.specular && this.specular.isColor ) data.specular = this.specular.getHex();\n\t\tif ( this.shininess !== undefined ) data.shininess = this.shininess;\n\t\tif ( this.clearcoat !== undefined ) data.clearcoat = this.clearcoat;\n\t\tif ( this.clearcoatRoughness !== undefined ) data.clearcoatRoughness = this.clearcoatRoughness;\n\n\t\tif ( this.clearcoatMap && this.clearcoatMap.isTexture ) {\n\n\t\t\tdata.clearcoatMap = this.clearcoatMap.toJSON( meta ).uuid;\n\n\t\t}\n\n\t\tif ( this.clearcoatRoughnessMap && this.clearcoatRoughnessMap.isTexture ) {\n\n\t\t\tdata.clearcoatRoughnessMap = this.clearcoatRoughnessMap.toJSON( meta ).uuid;\n\n\t\t}\n\n\t\tif ( this.clearcoatNormalMap && this.clearcoatNormalMap.isTexture ) {\n\n\t\t\tdata.clearcoatNormalMap = this.clearcoatNormalMap.toJSON( meta ).uuid;\n\t\t\tdata.clearcoatNormalScale = this.clearcoatNormalScale.toArray();\n\n\t\t}\n\n\t\tif ( this.map && this.map.isTexture ) data.map = this.map.toJSON( meta ).uuid;\n\t\tif ( this.matcap && this.matcap.isTexture ) data.matcap = this.matcap.toJSON( meta ).uuid;\n\t\tif ( this.alphaMap && this.alphaMap.isTexture ) data.alphaMap = this.alphaMap.toJSON( meta ).uuid;\n\t\tif ( this.lightMap && this.lightMap.isTexture ) data.lightMap = this.lightMap.toJSON( meta ).uuid;\n\n\t\tif ( this.aoMap && this.aoMap.isTexture ) {\n\n\t\t\tdata.aoMap = this.aoMap.toJSON( meta ).uuid;\n\t\t\tdata.aoMapIntensity = this.aoMapIntensity;\n\n\t\t}\n\n\t\tif ( this.bumpMap && this.bumpMap.isTexture ) {\n\n\t\t\tdata.bumpMap = this.bumpMap.toJSON( meta ).uuid;\n\t\t\tdata.bumpScale = this.bumpScale;\n\n\t\t}\n\n\t\tif ( this.normalMap && this.normalMap.isTexture ) {\n\n\t\t\tdata.normalMap = this.normalMap.toJSON( meta ).uuid;\n\t\t\tdata.normalMapType = this.normalMapType;\n\t\t\tdata.normalScale = this.normalScale.toArray();\n\n\t\t}\n\n\t\tif ( this.displacementMap && this.displacementMap.isTexture ) {\n\n\t\t\tdata.displacementMap = this.displacementMap.toJSON( meta ).uuid;\n\t\t\tdata.displacementScale = this.displacementScale;\n\t\t\tdata.displacementBias = this.displacementBias;\n\n\t\t}\n\n\t\tif ( this.roughnessMap && this.roughnessMap.isTexture ) data.roughnessMap = this.roughnessMap.toJSON( meta ).uuid;\n\t\tif ( this.metalnessMap && this.metalnessMap.isTexture ) data.metalnessMap = this.metalnessMap.toJSON( meta ).uuid;\n\n\t\tif ( this.emissiveMap && this.emissiveMap.isTexture ) data.emissiveMap = this.emissiveMap.toJSON( meta ).uuid;\n\t\tif ( this.specularMap && this.specularMap.isTexture ) data.specularMap = this.specularMap.toJSON( meta ).uuid;\n\n\t\tif ( this.envMap && this.envMap.isTexture ) {\n\n\t\t\tdata.envMap = this.envMap.toJSON( meta ).uuid;\n\t\t\tdata.reflectivity = this.reflectivity; // Scale behind envMap\n\t\t\tdata.refractionRatio = this.refractionRatio;\n\n\t\t\tif ( this.combine !== undefined ) data.combine = this.combine;\n\t\t\tif ( this.envMapIntensity !== undefined ) data.envMapIntensity = this.envMapIntensity;\n\n\t\t}\n\n\t\tif ( this.gradientMap && this.gradientMap.isTexture ) {\n\n\t\t\tdata.gradientMap = this.gradientMap.toJSON( meta ).uuid;\n\n\t\t}\n\n\t\tif ( this.size !== undefined ) data.size = this.size;\n\t\tif ( this.sizeAttenuation !== undefined ) data.sizeAttenuation = this.sizeAttenuation;\n\n\t\tif ( this.blending !== NormalBlending ) data.blending = this.blending;\n\t\tif ( this.flatShading === true ) data.flatShading = this.flatShading;\n\t\tif ( this.side !== FrontSide ) data.side = this.side;\n\t\tif ( this.vertexColors ) data.vertexColors = true;\n\n\t\tif ( this.opacity < 1 ) data.opacity = this.opacity;\n\t\tif ( this.transparent === true ) data.transparent = this.transparent;\n\n\t\tdata.depthFunc = this.depthFunc;\n\t\tdata.depthTest = this.depthTest;\n\t\tdata.depthWrite = this.depthWrite;\n\n\t\tdata.stencilWrite = this.stencilWrite;\n\t\tdata.stencilWriteMask = this.stencilWriteMask;\n\t\tdata.stencilFunc = this.stencilFunc;\n\t\tdata.stencilRef = this.stencilRef;\n\t\tdata.stencilFuncMask = this.stencilFuncMask;\n\t\tdata.stencilFail = this.stencilFail;\n\t\tdata.stencilZFail = this.stencilZFail;\n\t\tdata.stencilZPass = this.stencilZPass;\n\n\t\t// rotation (SpriteMaterial)\n\t\tif ( this.rotation && this.rotation !== 0 ) data.rotation = this.rotation;\n\n\t\tif ( this.polygonOffset === true ) data.polygonOffset = true;\n\t\tif ( this.polygonOffsetFactor !== 0 ) data.polygonOffsetFactor = this.polygonOffsetFactor;\n\t\tif ( this.polygonOffsetUnits !== 0 ) data.polygonOffsetUnits = this.polygonOffsetUnits;\n\n\t\tif ( this.linewidth && this.linewidth !== 1 ) data.linewidth = this.linewidth;\n\t\tif ( this.dashSize !== undefined ) data.dashSize = this.dashSize;\n\t\tif ( this.gapSize !== undefined ) data.gapSize = this.gapSize;\n\t\tif ( this.scale !== undefined ) data.scale = this.scale;\n\n\t\tif ( this.dithering === true ) data.dithering = true;\n\n\t\tif ( this.alphaTest > 0 ) data.alphaTest = this.alphaTest;\n\t\tif ( this.premultipliedAlpha === true ) data.premultipliedAlpha = this.premultipliedAlpha;\n\n\t\tif ( this.wireframe === true ) data.wireframe = this.wireframe;\n\t\tif ( this.wireframeLinewidth > 1 ) data.wireframeLinewidth = this.wireframeLinewidth;\n\t\tif ( this.wireframeLinecap !== 'round' ) data.wireframeLinecap = this.wireframeLinecap;\n\t\tif ( this.wireframeLinejoin !== 'round' ) data.wireframeLinejoin = this.wireframeLinejoin;\n\n\t\tif ( this.morphTargets === true ) data.morphTargets = true;\n\t\tif ( this.morphNormals === true ) data.morphNormals = true;\n\t\tif ( this.skinning === true ) data.skinning = true;\n\n\t\tif ( this.visible === false ) data.visible = false;\n\n\t\tif ( this.toneMapped === false ) data.toneMapped = false;\n\n\t\tif ( JSON.stringify( this.userData ) !== '{}' ) data.userData = this.userData;\n\n\t\t// TODO: Copied from Object3D.toJSON\n\n\t\tfunction extractFromCache( cache ) {\n\n\t\t\tconst values = [];\n\n\t\t\tfor ( const key in cache ) {\n\n\t\t\t\tconst data = cache[ key ];\n\t\t\t\tdelete data.metadata;\n\t\t\t\tvalues.push( data );\n\n\t\t\t}\n\n\t\t\treturn values;\n\n\t\t}\n\n\t\tif ( isRoot ) {\n\n\t\t\tconst textures = extractFromCache( meta.textures );\n\t\t\tconst images = extractFromCache( meta.images );\n\n\t\t\tif ( textures.length > 0 ) data.textures = textures;\n\t\t\tif ( images.length > 0 ) data.images = images;\n\n\t\t}\n\n\t\treturn data;\n\n\t},\n\n\tclone: function () {\n\n\t\treturn new this.constructor().copy( this );\n\n\t},\n\n\tcopy: function ( source ) {\n\n\t\tthis.name = source.name;\n\n\t\tthis.fog = source.fog;\n\n\t\tthis.blending = source.blending;\n\t\tthis.side = source.side;\n\t\tthis.flatShading = source.flatShading;\n\t\tthis.vertexColors = source.vertexColors;\n\n\t\tthis.opacity = source.opacity;\n\t\tthis.transparent = source.transparent;\n\n\t\tthis.blendSrc = source.blendSrc;\n\t\tthis.blendDst = source.blendDst;\n\t\tthis.blendEquation = source.blendEquation;\n\t\tthis.blendSrcAlpha = source.blendSrcAlpha;\n\t\tthis.blendDstAlpha = source.blendDstAlpha;\n\t\tthis.blendEquationAlpha = source.blendEquationAlpha;\n\n\t\tthis.depthFunc = source.depthFunc;\n\t\tthis.depthTest = source.depthTest;\n\t\tthis.depthWrite = source.depthWrite;\n\n\t\tthis.stencilWriteMask = source.stencilWriteMask;\n\t\tthis.stencilFunc = source.stencilFunc;\n\t\tthis.stencilRef = source.stencilRef;\n\t\tthis.stencilFuncMask = source.stencilFuncMask;\n\t\tthis.stencilFail = source.stencilFail;\n\t\tthis.stencilZFail = source.stencilZFail;\n\t\tthis.stencilZPass = source.stencilZPass;\n\t\tthis.stencilWrite = source.stencilWrite;\n\n\t\tconst srcPlanes = source.clippingPlanes;\n\t\tlet dstPlanes = null;\n\n\t\tif ( srcPlanes !== null ) {\n\n\t\t\tconst n = srcPlanes.length;\n\t\t\tdstPlanes = new Array( n );\n\n\t\t\tfor ( let i = 0; i !== n; ++ i ) {\n\n\t\t\t\tdstPlanes[ i ] = srcPlanes[ i ].clone();\n\n\t\t\t}\n\n\t\t}\n\n\t\tthis.clippingPlanes = dstPlanes;\n\t\tthis.clipIntersection = source.clipIntersection;\n\t\tthis.clipShadows = source.clipShadows;\n\n\t\tthis.shadowSide = source.shadowSide;\n\n\t\tthis.colorWrite = source.colorWrite;\n\n\t\tthis.precision = source.precision;\n\n\t\tthis.polygonOffset = source.polygonOffset;\n\t\tthis.polygonOffsetFactor = source.polygonOffsetFactor;\n\t\tthis.polygonOffsetUnits = source.polygonOffsetUnits;\n\n\t\tthis.dithering = source.dithering;\n\n\t\tthis.alphaTest = source.alphaTest;\n\t\tthis.premultipliedAlpha = source.premultipliedAlpha;\n\n\t\tthis.visible = source.visible;\n\n\t\tthis.toneMapped = source.toneMapped;\n\n\t\tthis.userData = JSON.parse( JSON.stringify( source.userData ) );\n\n\t\treturn this;\n\n\t},\n\n\tdispose: function () {\n\n\t\tthis.dispatchEvent( { type: 'dispose' } );\n\n\t}\n\n} );\n\nObject.defineProperty( Material.prototype, 'needsUpdate', {\n\n\tset: function ( value ) {\n\n\t\tif ( value === true ) this.version ++;\n\n\t}\n\n} );\n\n/**\n * parameters = {\n * color: ,\n * opacity: ,\n * map: new THREE.Texture( ),\n *\n * lightMap: new THREE.Texture( ),\n * lightMapIntensity: \n *\n * aoMap: new THREE.Texture( ),\n * aoMapIntensity: \n *\n * specularMap: new THREE.Texture( ),\n *\n * alphaMap: new THREE.Texture( ),\n *\n * envMap: new THREE.CubeTexture( [posx, negx, posy, negy, posz, negz] ),\n * combine: THREE.Multiply,\n * reflectivity: ,\n * refractionRatio: ,\n *\n * depthTest: ,\n * depthWrite: ,\n *\n * wireframe: ,\n * wireframeLinewidth: ,\n *\n * skinning: ,\n * morphTargets: \n * }\n */\n\nfunction MeshBasicMaterial( parameters ) {\n\n\tMaterial.call( this );\n\n\tthis.type = 'MeshBasicMaterial';\n\n\tthis.color = new Color( 0xffffff ); // emissive\n\n\tthis.map = null;\n\n\tthis.lightMap = null;\n\tthis.lightMapIntensity = 1.0;\n\n\tthis.aoMap = null;\n\tthis.aoMapIntensity = 1.0;\n\n\tthis.specularMap = null;\n\n\tthis.alphaMap = null;\n\n\tthis.envMap = null;\n\tthis.combine = MultiplyOperation;\n\tthis.reflectivity = 1;\n\tthis.refractionRatio = 0.98;\n\n\tthis.wireframe = false;\n\tthis.wireframeLinewidth = 1;\n\tthis.wireframeLinecap = 'round';\n\tthis.wireframeLinejoin = 'round';\n\n\tthis.skinning = false;\n\tthis.morphTargets = false;\n\n\tthis.setValues( parameters );\n\n}\n\nMeshBasicMaterial.prototype = Object.create( Material.prototype );\nMeshBasicMaterial.prototype.constructor = MeshBasicMaterial;\n\nMeshBasicMaterial.prototype.isMeshBasicMaterial = true;\n\nMeshBasicMaterial.prototype.copy = function ( source ) {\n\n\tMaterial.prototype.copy.call( this, source );\n\n\tthis.color.copy( source.color );\n\n\tthis.map = source.map;\n\n\tthis.lightMap = source.lightMap;\n\tthis.lightMapIntensity = source.lightMapIntensity;\n\n\tthis.aoMap = source.aoMap;\n\tthis.aoMapIntensity = source.aoMapIntensity;\n\n\tthis.specularMap = source.specularMap;\n\n\tthis.alphaMap = source.alphaMap;\n\n\tthis.envMap = source.envMap;\n\tthis.combine = source.combine;\n\tthis.reflectivity = source.reflectivity;\n\tthis.refractionRatio = source.refractionRatio;\n\n\tthis.wireframe = source.wireframe;\n\tthis.wireframeLinewidth = source.wireframeLinewidth;\n\tthis.wireframeLinecap = source.wireframeLinecap;\n\tthis.wireframeLinejoin = source.wireframeLinejoin;\n\n\tthis.skinning = source.skinning;\n\tthis.morphTargets = source.morphTargets;\n\n\treturn this;\n\n};\n\nconst _vector$3 = new Vector3();\nconst _vector2$1 = new Vector2();\n\nfunction BufferAttribute( array, itemSize, normalized ) {\n\n\tif ( Array.isArray( array ) ) {\n\n\t\tthrow new TypeError( 'THREE.BufferAttribute: array should be a Typed Array.' );\n\n\t}\n\n\tthis.name = '';\n\n\tthis.array = array;\n\tthis.itemSize = itemSize;\n\tthis.count = array !== undefined ? array.length / itemSize : 0;\n\tthis.normalized = normalized === true;\n\n\tthis.usage = StaticDrawUsage;\n\tthis.updateRange = { offset: 0, count: - 1 };\n\n\tthis.version = 0;\n\n}\n\nObject.defineProperty( BufferAttribute.prototype, 'needsUpdate', {\n\n\tset: function ( value ) {\n\n\t\tif ( value === true ) this.version ++;\n\n\t}\n\n} );\n\nObject.assign( BufferAttribute.prototype, {\n\n\tisBufferAttribute: true,\n\n\tonUploadCallback: function () {},\n\n\tsetUsage: function ( value ) {\n\n\t\tthis.usage = value;\n\n\t\treturn this;\n\n\t},\n\n\tcopy: function ( source ) {\n\n\t\tthis.name = source.name;\n\t\tthis.array = new source.array.constructor( source.array );\n\t\tthis.itemSize = source.itemSize;\n\t\tthis.count = source.count;\n\t\tthis.normalized = source.normalized;\n\n\t\tthis.usage = source.usage;\n\n\t\treturn this;\n\n\t},\n\n\tcopyAt: function ( index1, attribute, index2 ) {\n\n\t\tindex1 *= this.itemSize;\n\t\tindex2 *= attribute.itemSize;\n\n\t\tfor ( let i = 0, l = this.itemSize; i < l; i ++ ) {\n\n\t\t\tthis.array[ index1 + i ] = attribute.array[ index2 + i ];\n\n\t\t}\n\n\t\treturn this;\n\n\t},\n\n\tcopyArray: function ( array ) {\n\n\t\tthis.array.set( array );\n\n\t\treturn this;\n\n\t},\n\n\tcopyColorsArray: function ( colors ) {\n\n\t\tconst array = this.array;\n\t\tlet offset = 0;\n\n\t\tfor ( let i = 0, l = colors.length; i < l; i ++ ) {\n\n\t\t\tlet color = colors[ i ];\n\n\t\t\tif ( color === undefined ) {\n\n\t\t\t\tconsole.warn( 'THREE.BufferAttribute.copyColorsArray(): color is undefined', i );\n\t\t\t\tcolor = new Color();\n\n\t\t\t}\n\n\t\t\tarray[ offset ++ ] = color.r;\n\t\t\tarray[ offset ++ ] = color.g;\n\t\t\tarray[ offset ++ ] = color.b;\n\n\t\t}\n\n\t\treturn this;\n\n\t},\n\n\tcopyVector2sArray: function ( vectors ) {\n\n\t\tconst array = this.array;\n\t\tlet offset = 0;\n\n\t\tfor ( let i = 0, l = vectors.length; i < l; i ++ ) {\n\n\t\t\tlet vector = vectors[ i ];\n\n\t\t\tif ( vector === undefined ) {\n\n\t\t\t\tconsole.warn( 'THREE.BufferAttribute.copyVector2sArray(): vector is undefined', i );\n\t\t\t\tvector = new Vector2();\n\n\t\t\t}\n\n\t\t\tarray[ offset ++ ] = vector.x;\n\t\t\tarray[ offset ++ ] = vector.y;\n\n\t\t}\n\n\t\treturn this;\n\n\t},\n\n\tcopyVector3sArray: function ( vectors ) {\n\n\t\tconst array = this.array;\n\t\tlet offset = 0;\n\n\t\tfor ( let i = 0, l = vectors.length; i < l; i ++ ) {\n\n\t\t\tlet vector = vectors[ i ];\n\n\t\t\tif ( vector === undefined ) {\n\n\t\t\t\tconsole.warn( 'THREE.BufferAttribute.copyVector3sArray(): vector is undefined', i );\n\t\t\t\tvector = new Vector3();\n\n\t\t\t}\n\n\t\t\tarray[ offset ++ ] = vector.x;\n\t\t\tarray[ offset ++ ] = vector.y;\n\t\t\tarray[ offset ++ ] = vector.z;\n\n\t\t}\n\n\t\treturn this;\n\n\t},\n\n\tcopyVector4sArray: function ( vectors ) {\n\n\t\tconst array = this.array;\n\t\tlet offset = 0;\n\n\t\tfor ( let i = 0, l = vectors.length; i < l; i ++ ) {\n\n\t\t\tlet vector = vectors[ i ];\n\n\t\t\tif ( vector === undefined ) {\n\n\t\t\t\tconsole.warn( 'THREE.BufferAttribute.copyVector4sArray(): vector is undefined', i );\n\t\t\t\tvector = new Vector4();\n\n\t\t\t}\n\n\t\t\tarray[ offset ++ ] = vector.x;\n\t\t\tarray[ offset ++ ] = vector.y;\n\t\t\tarray[ offset ++ ] = vector.z;\n\t\t\tarray[ offset ++ ] = vector.w;\n\n\t\t}\n\n\t\treturn this;\n\n\t},\n\n\tapplyMatrix3: function ( m ) {\n\n\t\tif ( this.itemSize === 2 ) {\n\n\t\t\tfor ( let i = 0, l = this.count; i < l; i ++ ) {\n\n\t\t\t\t_vector2$1.fromBufferAttribute( this, i );\n\t\t\t\t_vector2$1.applyMatrix3( m );\n\n\t\t\t\tthis.setXY( i, _vector2$1.x, _vector2$1.y );\n\n\t\t\t}\n\n\t\t} else if ( this.itemSize === 3 ) {\n\n\t\t\tfor ( let i = 0, l = this.count; i < l; i ++ ) {\n\n\t\t\t\t_vector$3.fromBufferAttribute( this, i );\n\t\t\t\t_vector$3.applyMatrix3( m );\n\n\t\t\t\tthis.setXYZ( i, _vector$3.x, _vector$3.y, _vector$3.z );\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn this;\n\n\t},\n\n\tapplyMatrix4: function ( m ) {\n\n\t\tfor ( let i = 0, l = this.count; i < l; i ++ ) {\n\n\t\t\t_vector$3.x = this.getX( i );\n\t\t\t_vector$3.y = this.getY( i );\n\t\t\t_vector$3.z = this.getZ( i );\n\n\t\t\t_vector$3.applyMatrix4( m );\n\n\t\t\tthis.setXYZ( i, _vector$3.x, _vector$3.y, _vector$3.z );\n\n\t\t}\n\n\t\treturn this;\n\n\t},\n\n\tapplyNormalMatrix: function ( m ) {\n\n\t\tfor ( let i = 0, l = this.count; i < l; i ++ ) {\n\n\t\t\t_vector$3.x = this.getX( i );\n\t\t\t_vector$3.y = this.getY( i );\n\t\t\t_vector$3.z = this.getZ( i );\n\n\t\t\t_vector$3.applyNormalMatrix( m );\n\n\t\t\tthis.setXYZ( i, _vector$3.x, _vector$3.y, _vector$3.z );\n\n\t\t}\n\n\t\treturn this;\n\n\t},\n\n\ttransformDirection: function ( m ) {\n\n\t\tfor ( let i = 0, l = this.count; i < l; i ++ ) {\n\n\t\t\t_vector$3.x = this.getX( i );\n\t\t\t_vector$3.y = this.getY( i );\n\t\t\t_vector$3.z = this.getZ( i );\n\n\t\t\t_vector$3.transformDirection( m );\n\n\t\t\tthis.setXYZ( i, _vector$3.x, _vector$3.y, _vector$3.z );\n\n\t\t}\n\n\t\treturn this;\n\n\t},\n\n\tset: function ( value, offset = 0 ) {\n\n\t\tthis.array.set( value, offset );\n\n\t\treturn this;\n\n\t},\n\n\tgetX: function ( index ) {\n\n\t\treturn this.array[ index * this.itemSize ];\n\n\t},\n\n\tsetX: function ( index, x ) {\n\n\t\tthis.array[ index * this.itemSize ] = x;\n\n\t\treturn this;\n\n\t},\n\n\tgetY: function ( index ) {\n\n\t\treturn this.array[ index * this.itemSize + 1 ];\n\n\t},\n\n\tsetY: function ( index, y ) {\n\n\t\tthis.array[ index * this.itemSize + 1 ] = y;\n\n\t\treturn this;\n\n\t},\n\n\tgetZ: function ( index ) {\n\n\t\treturn this.array[ index * this.itemSize + 2 ];\n\n\t},\n\n\tsetZ: function ( index, z ) {\n\n\t\tthis.array[ index * this.itemSize + 2 ] = z;\n\n\t\treturn this;\n\n\t},\n\n\tgetW: function ( index ) {\n\n\t\treturn this.array[ index * this.itemSize + 3 ];\n\n\t},\n\n\tsetW: function ( index, w ) {\n\n\t\tthis.array[ index * this.itemSize + 3 ] = w;\n\n\t\treturn this;\n\n\t},\n\n\tsetXY: function ( index, x, y ) {\n\n\t\tindex *= this.itemSize;\n\n\t\tthis.array[ index + 0 ] = x;\n\t\tthis.array[ index + 1 ] = y;\n\n\t\treturn this;\n\n\t},\n\n\tsetXYZ: function ( index, x, y, z ) {\n\n\t\tindex *= this.itemSize;\n\n\t\tthis.array[ index + 0 ] = x;\n\t\tthis.array[ index + 1 ] = y;\n\t\tthis.array[ index + 2 ] = z;\n\n\t\treturn this;\n\n\t},\n\n\tsetXYZW: function ( index, x, y, z, w ) {\n\n\t\tindex *= this.itemSize;\n\n\t\tthis.array[ index + 0 ] = x;\n\t\tthis.array[ index + 1 ] = y;\n\t\tthis.array[ index + 2 ] = z;\n\t\tthis.array[ index + 3 ] = w;\n\n\t\treturn this;\n\n\t},\n\n\tonUpload: function ( callback ) {\n\n\t\tthis.onUploadCallback = callback;\n\n\t\treturn this;\n\n\t},\n\n\tclone: function () {\n\n\t\treturn new this.constructor( this.array, this.itemSize ).copy( this );\n\n\t},\n\n\ttoJSON: function () {\n\n\t\treturn {\n\t\t\titemSize: this.itemSize,\n\t\t\ttype: this.array.constructor.name,\n\t\t\tarray: Array.prototype.slice.call( this.array ),\n\t\t\tnormalized: this.normalized\n\t\t};\n\n\t}\n\n} );\n\n//\n\nfunction Int8BufferAttribute( array, itemSize, normalized ) {\n\n\tBufferAttribute.call( this, new Int8Array( array ), itemSize, normalized );\n\n}\n\nInt8BufferAttribute.prototype = Object.create( BufferAttribute.prototype );\nInt8BufferAttribute.prototype.constructor = Int8BufferAttribute;\n\n\nfunction Uint8BufferAttribute( array, itemSize, normalized ) {\n\n\tBufferAttribute.call( this, new Uint8Array( array ), itemSize, normalized );\n\n}\n\nUint8BufferAttribute.prototype = Object.create( BufferAttribute.prototype );\nUint8BufferAttribute.prototype.constructor = Uint8BufferAttribute;\n\n\nfunction Uint8ClampedBufferAttribute( array, itemSize, normalized ) {\n\n\tBufferAttribute.call( this, new Uint8ClampedArray( array ), itemSize, normalized );\n\n}\n\nUint8ClampedBufferAttribute.prototype = Object.create( BufferAttribute.prototype );\nUint8ClampedBufferAttribute.prototype.constructor = Uint8ClampedBufferAttribute;\n\n\nfunction Int16BufferAttribute( array, itemSize, normalized ) {\n\n\tBufferAttribute.call( this, new Int16Array( array ), itemSize, normalized );\n\n}\n\nInt16BufferAttribute.prototype = Object.create( BufferAttribute.prototype );\nInt16BufferAttribute.prototype.constructor = Int16BufferAttribute;\n\n\nfunction Uint16BufferAttribute( array, itemSize, normalized ) {\n\n\tBufferAttribute.call( this, new Uint16Array( array ), itemSize, normalized );\n\n}\n\nUint16BufferAttribute.prototype = Object.create( BufferAttribute.prototype );\nUint16BufferAttribute.prototype.constructor = Uint16BufferAttribute;\n\n\nfunction Int32BufferAttribute( array, itemSize, normalized ) {\n\n\tBufferAttribute.call( this, new Int32Array( array ), itemSize, normalized );\n\n}\n\nInt32BufferAttribute.prototype = Object.create( BufferAttribute.prototype );\nInt32BufferAttribute.prototype.constructor = Int32BufferAttribute;\n\n\nfunction Uint32BufferAttribute( array, itemSize, normalized ) {\n\n\tBufferAttribute.call( this, new Uint32Array( array ), itemSize, normalized );\n\n}\n\nUint32BufferAttribute.prototype = Object.create( BufferAttribute.prototype );\nUint32BufferAttribute.prototype.constructor = Uint32BufferAttribute;\n\nfunction Float16BufferAttribute( array, itemSize, normalized ) {\n\n\tBufferAttribute.call( this, new Uint16Array( array ), itemSize, normalized );\n\n}\n\nFloat16BufferAttribute.prototype = Object.create( BufferAttribute.prototype );\nFloat16BufferAttribute.prototype.constructor = Float16BufferAttribute;\nFloat16BufferAttribute.prototype.isFloat16BufferAttribute = true;\n\nfunction Float32BufferAttribute( array, itemSize, normalized ) {\n\n\tBufferAttribute.call( this, new Float32Array( array ), itemSize, normalized );\n\n}\n\nFloat32BufferAttribute.prototype = Object.create( BufferAttribute.prototype );\nFloat32BufferAttribute.prototype.constructor = Float32BufferAttribute;\n\n\nfunction Float64BufferAttribute( array, itemSize, normalized ) {\n\n\tBufferAttribute.call( this, new Float64Array( array ), itemSize, normalized );\n\n}\n\nFloat64BufferAttribute.prototype = Object.create( BufferAttribute.prototype );\nFloat64BufferAttribute.prototype.constructor = Float64BufferAttribute;\n\nfunction arrayMax( array ) {\n\n\tif ( array.length === 0 ) return - Infinity;\n\n\tlet max = array[ 0 ];\n\n\tfor ( let i = 1, l = array.length; i < l; ++ i ) {\n\n\t\tif ( array[ i ] > max ) max = array[ i ];\n\n\t}\n\n\treturn max;\n\n}\n\nconst TYPED_ARRAYS = {\n\tInt8Array: Int8Array,\n\tUint8Array: Uint8Array,\n\t// Workaround for IE11 pre KB2929437. See #11440\n\tUint8ClampedArray: typeof Uint8ClampedArray !== 'undefined' ? Uint8ClampedArray : Uint8Array,\n\tInt16Array: Int16Array,\n\tUint16Array: Uint16Array,\n\tInt32Array: Int32Array,\n\tUint32Array: Uint32Array,\n\tFloat32Array: Float32Array,\n\tFloat64Array: Float64Array\n};\n\nfunction getTypedArray( type, buffer ) {\n\n\treturn new TYPED_ARRAYS[ type ]( buffer );\n\n}\n\nlet _id = 0;\n\nconst _m1$2 = new Matrix4();\nconst _obj = new Object3D();\nconst _offset = new Vector3();\nconst _box$2 = new Box3();\nconst _boxMorphTargets = new Box3();\nconst _vector$4 = new Vector3();\n\nfunction BufferGeometry() {\n\n\tObject.defineProperty( this, 'id', { value: _id ++ } );\n\n\tthis.uuid = MathUtils.generateUUID();\n\n\tthis.name = '';\n\tthis.type = 'BufferGeometry';\n\n\tthis.index = null;\n\tthis.attributes = {};\n\n\tthis.morphAttributes = {};\n\tthis.morphTargetsRelative = false;\n\n\tthis.groups = [];\n\n\tthis.boundingBox = null;\n\tthis.boundingSphere = null;\n\n\tthis.drawRange = { start: 0, count: Infinity };\n\n\tthis.userData = {};\n\n}\n\nBufferGeometry.prototype = Object.assign( Object.create( EventDispatcher.prototype ), {\n\n\tconstructor: BufferGeometry,\n\n\tisBufferGeometry: true,\n\n\tgetIndex: function () {\n\n\t\treturn this.index;\n\n\t},\n\n\tsetIndex: function ( index ) {\n\n\t\tif ( Array.isArray( index ) ) {\n\n\t\t\tthis.index = new ( arrayMax( index ) > 65535 ? Uint32BufferAttribute : Uint16BufferAttribute )( index, 1 );\n\n\t\t} else {\n\n\t\t\tthis.index = index;\n\n\t\t}\n\n\t\treturn this;\n\n\t},\n\n\tgetAttribute: function ( name ) {\n\n\t\treturn this.attributes[ name ];\n\n\t},\n\n\tsetAttribute: function ( name, attribute ) {\n\n\t\tthis.attributes[ name ] = attribute;\n\n\t\treturn this;\n\n\t},\n\n\tdeleteAttribute: function ( name ) {\n\n\t\tdelete this.attributes[ name ];\n\n\t\treturn this;\n\n\t},\n\n\thasAttribute: function ( name ) {\n\n\t\treturn this.attributes[ name ] !== undefined;\n\n\t},\n\n\taddGroup: function ( start, count, materialIndex = 0 ) {\n\n\t\tthis.groups.push( {\n\n\t\t\tstart: start,\n\t\t\tcount: count,\n\t\t\tmaterialIndex: materialIndex\n\n\t\t} );\n\n\t},\n\n\tclearGroups: function () {\n\n\t\tthis.groups = [];\n\n\t},\n\n\tsetDrawRange: function ( start, count ) {\n\n\t\tthis.drawRange.start = start;\n\t\tthis.drawRange.count = count;\n\n\t},\n\n\tapplyMatrix4: function ( matrix ) {\n\n\t\tconst position = this.attributes.position;\n\n\t\tif ( position !== undefined ) {\n\n\t\t\tposition.applyMatrix4( matrix );\n\n\t\t\tposition.needsUpdate = true;\n\n\t\t}\n\n\t\tconst normal = this.attributes.normal;\n\n\t\tif ( normal !== undefined ) {\n\n\t\t\tconst normalMatrix = new Matrix3().getNormalMatrix( matrix );\n\n\t\t\tnormal.applyNormalMatrix( normalMatrix );\n\n\t\t\tnormal.needsUpdate = true;\n\n\t\t}\n\n\t\tconst tangent = this.attributes.tangent;\n\n\t\tif ( tangent !== undefined ) {\n\n\t\t\ttangent.transformDirection( matrix );\n\n\t\t\ttangent.needsUpdate = true;\n\n\t\t}\n\n\t\tif ( this.boundingBox !== null ) {\n\n\t\t\tthis.computeBoundingBox();\n\n\t\t}\n\n\t\tif ( this.boundingSphere !== null ) {\n\n\t\t\tthis.computeBoundingSphere();\n\n\t\t}\n\n\t\treturn this;\n\n\t},\n\n\trotateX: function ( angle ) {\n\n\t\t// rotate geometry around world x-axis\n\n\t\t_m1$2.makeRotationX( angle );\n\n\t\tthis.applyMatrix4( _m1$2 );\n\n\t\treturn this;\n\n\t},\n\n\trotateY: function ( angle ) {\n\n\t\t// rotate geometry around world y-axis\n\n\t\t_m1$2.makeRotationY( angle );\n\n\t\tthis.applyMatrix4( _m1$2 );\n\n\t\treturn this;\n\n\t},\n\n\trotateZ: function ( angle ) {\n\n\t\t// rotate geometry around world z-axis\n\n\t\t_m1$2.makeRotationZ( angle );\n\n\t\tthis.applyMatrix4( _m1$2 );\n\n\t\treturn this;\n\n\t},\n\n\ttranslate: function ( x, y, z ) {\n\n\t\t// translate geometry\n\n\t\t_m1$2.makeTranslation( x, y, z );\n\n\t\tthis.applyMatrix4( _m1$2 );\n\n\t\treturn this;\n\n\t},\n\n\tscale: function ( x, y, z ) {\n\n\t\t// scale geometry\n\n\t\t_m1$2.makeScale( x, y, z );\n\n\t\tthis.applyMatrix4( _m1$2 );\n\n\t\treturn this;\n\n\t},\n\n\tlookAt: function ( vector ) {\n\n\t\t_obj.lookAt( vector );\n\n\t\t_obj.updateMatrix();\n\n\t\tthis.applyMatrix4( _obj.matrix );\n\n\t\treturn this;\n\n\t},\n\n\tcenter: function () {\n\n\t\tthis.computeBoundingBox();\n\n\t\tthis.boundingBox.getCenter( _offset ).negate();\n\n\t\tthis.translate( _offset.x, _offset.y, _offset.z );\n\n\t\treturn this;\n\n\t},\n\n\tsetFromPoints: function ( points ) {\n\n\t\tconst position = [];\n\n\t\tfor ( let i = 0, l = points.length; i < l; i ++ ) {\n\n\t\t\tconst point = points[ i ];\n\t\t\tposition.push( point.x, point.y, point.z || 0 );\n\n\t\t}\n\n\t\tthis.setAttribute( 'position', new Float32BufferAttribute( position, 3 ) );\n\n\t\treturn this;\n\n\t},\n\n\tcomputeBoundingBox: function () {\n\n\t\tif ( this.boundingBox === null ) {\n\n\t\t\tthis.boundingBox = new Box3();\n\n\t\t}\n\n\t\tconst position = this.attributes.position;\n\t\tconst morphAttributesPosition = this.morphAttributes.position;\n\n\t\tif ( position && position.isGLBufferAttribute ) {\n\n\t\t\tconsole.error( 'THREE.BufferGeometry.computeBoundingBox(): GLBufferAttribute requires a manual bounding box. Alternatively set \"mesh.frustumCulled\" to \"false\".', this );\n\n\t\t\tthis.boundingBox.set(\n\t\t\t\tnew Vector3( - Infinity, - Infinity, - Infinity ),\n\t\t\t\tnew Vector3( + Infinity, + Infinity, + Infinity )\n\t\t\t);\n\n\t\t\treturn;\n\n\t\t}\n\n\t\tif ( position !== undefined ) {\n\n\t\t\tthis.boundingBox.setFromBufferAttribute( position );\n\n\t\t\t// process morph attributes if present\n\n\t\t\tif ( morphAttributesPosition ) {\n\n\t\t\t\tfor ( let i = 0, il = morphAttributesPosition.length; i < il; i ++ ) {\n\n\t\t\t\t\tconst morphAttribute = morphAttributesPosition[ i ];\n\t\t\t\t\t_box$2.setFromBufferAttribute( morphAttribute );\n\n\t\t\t\t\tif ( this.morphTargetsRelative ) {\n\n\t\t\t\t\t\t_vector$4.addVectors( this.boundingBox.min, _box$2.min );\n\t\t\t\t\t\tthis.boundingBox.expandByPoint( _vector$4 );\n\n\t\t\t\t\t\t_vector$4.addVectors( this.boundingBox.max, _box$2.max );\n\t\t\t\t\t\tthis.boundingBox.expandByPoint( _vector$4 );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\tthis.boundingBox.expandByPoint( _box$2.min );\n\t\t\t\t\t\tthis.boundingBox.expandByPoint( _box$2.max );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tthis.boundingBox.makeEmpty();\n\n\t\t}\n\n\t\tif ( isNaN( this.boundingBox.min.x ) || isNaN( this.boundingBox.min.y ) || isNaN( this.boundingBox.min.z ) ) {\n\n\t\t\tconsole.error( 'THREE.BufferGeometry.computeBoundingBox(): Computed min/max have NaN values. The \"position\" attribute is likely to have NaN values.', this );\n\n\t\t}\n\n\t},\n\n\tcomputeBoundingSphere: function () {\n\n\t\tif ( this.boundingSphere === null ) {\n\n\t\t\tthis.boundingSphere = new Sphere();\n\n\t\t}\n\n\t\tconst position = this.attributes.position;\n\t\tconst morphAttributesPosition = this.morphAttributes.position;\n\n\t\tif ( position && position.isGLBufferAttribute ) {\n\n\t\t\tconsole.error( 'THREE.BufferGeometry.computeBoundingSphere(): GLBufferAttribute requires a manual bounding sphere. Alternatively set \"mesh.frustumCulled\" to \"false\".', this );\n\n\t\t\tthis.boundingSphere.set( new Vector3(), Infinity );\n\n\t\t\treturn;\n\n\t\t}\n\n\t\tif ( position ) {\n\n\t\t\t// first, find the center of the bounding sphere\n\n\t\t\tconst center = this.boundingSphere.center;\n\n\t\t\t_box$2.setFromBufferAttribute( position );\n\n\t\t\t// process morph attributes if present\n\n\t\t\tif ( morphAttributesPosition ) {\n\n\t\t\t\tfor ( let i = 0, il = morphAttributesPosition.length; i < il; i ++ ) {\n\n\t\t\t\t\tconst morphAttribute = morphAttributesPosition[ i ];\n\t\t\t\t\t_boxMorphTargets.setFromBufferAttribute( morphAttribute );\n\n\t\t\t\t\tif ( this.morphTargetsRelative ) {\n\n\t\t\t\t\t\t_vector$4.addVectors( _box$2.min, _boxMorphTargets.min );\n\t\t\t\t\t\t_box$2.expandByPoint( _vector$4 );\n\n\t\t\t\t\t\t_vector$4.addVectors( _box$2.max, _boxMorphTargets.max );\n\t\t\t\t\t\t_box$2.expandByPoint( _vector$4 );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t_box$2.expandByPoint( _boxMorphTargets.min );\n\t\t\t\t\t\t_box$2.expandByPoint( _boxMorphTargets.max );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t_box$2.getCenter( center );\n\n\t\t\t// second, try to find a boundingSphere with a radius smaller than the\n\t\t\t// boundingSphere of the boundingBox: sqrt(3) smaller in the best case\n\n\t\t\tlet maxRadiusSq = 0;\n\n\t\t\tfor ( let i = 0, il = position.count; i < il; i ++ ) {\n\n\t\t\t\t_vector$4.fromBufferAttribute( position, i );\n\n\t\t\t\tmaxRadiusSq = Math.max( maxRadiusSq, center.distanceToSquared( _vector$4 ) );\n\n\t\t\t}\n\n\t\t\t// process morph attributes if present\n\n\t\t\tif ( morphAttributesPosition ) {\n\n\t\t\t\tfor ( let i = 0, il = morphAttributesPosition.length; i < il; i ++ ) {\n\n\t\t\t\t\tconst morphAttribute = morphAttributesPosition[ i ];\n\t\t\t\t\tconst morphTargetsRelative = this.morphTargetsRelative;\n\n\t\t\t\t\tfor ( let j = 0, jl = morphAttribute.count; j < jl; j ++ ) {\n\n\t\t\t\t\t\t_vector$4.fromBufferAttribute( morphAttribute, j );\n\n\t\t\t\t\t\tif ( morphTargetsRelative ) {\n\n\t\t\t\t\t\t\t_offset.fromBufferAttribute( position, j );\n\t\t\t\t\t\t\t_vector$4.add( _offset );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tmaxRadiusSq = Math.max( maxRadiusSq, center.distanceToSquared( _vector$4 ) );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tthis.boundingSphere.radius = Math.sqrt( maxRadiusSq );\n\n\t\t\tif ( isNaN( this.boundingSphere.radius ) ) {\n\n\t\t\t\tconsole.error( 'THREE.BufferGeometry.computeBoundingSphere(): Computed radius is NaN. The \"position\" attribute is likely to have NaN values.', this );\n\n\t\t\t}\n\n\t\t}\n\n\t},\n\n\tcomputeFaceNormals: function () {\n\n\t\t// backwards compatibility\n\n\t},\n\n\tcomputeTangents: function () {\n\n\t\tconst index = this.index;\n\t\tconst attributes = this.attributes;\n\n\t\t// based on http://www.terathon.com/code/tangent.html\n\t\t// (per vertex tangents)\n\n\t\tif ( index === null ||\n\t\t\t attributes.position === undefined ||\n\t\t\t attributes.normal === undefined ||\n\t\t\t attributes.uv === undefined ) {\n\n\t\t\tconsole.error( 'THREE.BufferGeometry: .computeTangents() failed. Missing required attributes (index, position, normal or uv)' );\n\t\t\treturn;\n\n\t\t}\n\n\t\tconst indices = index.array;\n\t\tconst positions = attributes.position.array;\n\t\tconst normals = attributes.normal.array;\n\t\tconst uvs = attributes.uv.array;\n\n\t\tconst nVertices = positions.length / 3;\n\n\t\tif ( attributes.tangent === undefined ) {\n\n\t\t\tthis.setAttribute( 'tangent', new BufferAttribute( new Float32Array( 4 * nVertices ), 4 ) );\n\n\t\t}\n\n\t\tconst tangents = attributes.tangent.array;\n\n\t\tconst tan1 = [], tan2 = [];\n\n\t\tfor ( let i = 0; i < nVertices; i ++ ) {\n\n\t\t\ttan1[ i ] = new Vector3();\n\t\t\ttan2[ i ] = new Vector3();\n\n\t\t}\n\n\t\tconst vA = new Vector3(),\n\t\t\tvB = new Vector3(),\n\t\t\tvC = new Vector3(),\n\n\t\t\tuvA = new Vector2(),\n\t\t\tuvB = new Vector2(),\n\t\t\tuvC = new Vector2(),\n\n\t\t\tsdir = new Vector3(),\n\t\t\ttdir = new Vector3();\n\n\t\tfunction handleTriangle( a, b, c ) {\n\n\t\t\tvA.fromArray( positions, a * 3 );\n\t\t\tvB.fromArray( positions, b * 3 );\n\t\t\tvC.fromArray( positions, c * 3 );\n\n\t\t\tuvA.fromArray( uvs, a * 2 );\n\t\t\tuvB.fromArray( uvs, b * 2 );\n\t\t\tuvC.fromArray( uvs, c * 2 );\n\n\t\t\tvB.sub( vA );\n\t\t\tvC.sub( vA );\n\n\t\t\tuvB.sub( uvA );\n\t\t\tuvC.sub( uvA );\n\n\t\t\tconst r = 1.0 / ( uvB.x * uvC.y - uvC.x * uvB.y );\n\n\t\t\t// silently ignore degenerate uv triangles having coincident or colinear vertices\n\n\t\t\tif ( ! isFinite( r ) ) return;\n\n\t\t\tsdir.copy( vB ).multiplyScalar( uvC.y ).addScaledVector( vC, - uvB.y ).multiplyScalar( r );\n\t\t\ttdir.copy( vC ).multiplyScalar( uvB.x ).addScaledVector( vB, - uvC.x ).multiplyScalar( r );\n\n\t\t\ttan1[ a ].add( sdir );\n\t\t\ttan1[ b ].add( sdir );\n\t\t\ttan1[ c ].add( sdir );\n\n\t\t\ttan2[ a ].add( tdir );\n\t\t\ttan2[ b ].add( tdir );\n\t\t\ttan2[ c ].add( tdir );\n\n\t\t}\n\n\t\tlet groups = this.groups;\n\n\t\tif ( groups.length === 0 ) {\n\n\t\t\tgroups = [ {\n\t\t\t\tstart: 0,\n\t\t\t\tcount: indices.length\n\t\t\t} ];\n\n\t\t}\n\n\t\tfor ( let i = 0, il = groups.length; i < il; ++ i ) {\n\n\t\t\tconst group = groups[ i ];\n\n\t\t\tconst start = group.start;\n\t\t\tconst count = group.count;\n\n\t\t\tfor ( let j = start, jl = start + count; j < jl; j += 3 ) {\n\n\t\t\t\thandleTriangle(\n\t\t\t\t\tindices[ j + 0 ],\n\t\t\t\t\tindices[ j + 1 ],\n\t\t\t\t\tindices[ j + 2 ]\n\t\t\t\t);\n\n\t\t\t}\n\n\t\t}\n\n\t\tconst tmp = new Vector3(), tmp2 = new Vector3();\n\t\tconst n = new Vector3(), n2 = new Vector3();\n\n\t\tfunction handleVertex( v ) {\n\n\t\t\tn.fromArray( normals, v * 3 );\n\t\t\tn2.copy( n );\n\n\t\t\tconst t = tan1[ v ];\n\n\t\t\t// Gram-Schmidt orthogonalize\n\n\t\t\ttmp.copy( t );\n\t\t\ttmp.sub( n.multiplyScalar( n.dot( t ) ) ).normalize();\n\n\t\t\t// Calculate handedness\n\n\t\t\ttmp2.crossVectors( n2, t );\n\t\t\tconst test = tmp2.dot( tan2[ v ] );\n\t\t\tconst w = ( test < 0.0 ) ? - 1.0 : 1.0;\n\n\t\t\ttangents[ v * 4 ] = tmp.x;\n\t\t\ttangents[ v * 4 + 1 ] = tmp.y;\n\t\t\ttangents[ v * 4 + 2 ] = tmp.z;\n\t\t\ttangents[ v * 4 + 3 ] = w;\n\n\t\t}\n\n\t\tfor ( let i = 0, il = groups.length; i < il; ++ i ) {\n\n\t\t\tconst group = groups[ i ];\n\n\t\t\tconst start = group.start;\n\t\t\tconst count = group.count;\n\n\t\t\tfor ( let j = start, jl = start + count; j < jl; j += 3 ) {\n\n\t\t\t\thandleVertex( indices[ j + 0 ] );\n\t\t\t\thandleVertex( indices[ j + 1 ] );\n\t\t\t\thandleVertex( indices[ j + 2 ] );\n\n\t\t\t}\n\n\t\t}\n\n\t},\n\n\tcomputeVertexNormals: function () {\n\n\t\tconst index = this.index;\n\t\tconst positionAttribute = this.getAttribute( 'position' );\n\n\t\tif ( positionAttribute !== undefined ) {\n\n\t\t\tlet normalAttribute = this.getAttribute( 'normal' );\n\n\t\t\tif ( normalAttribute === undefined ) {\n\n\t\t\t\tnormalAttribute = new BufferAttribute( new Float32Array( positionAttribute.count * 3 ), 3 );\n\t\t\t\tthis.setAttribute( 'normal', normalAttribute );\n\n\t\t\t} else {\n\n\t\t\t\t// reset existing normals to zero\n\n\t\t\t\tfor ( let i = 0, il = normalAttribute.count; i < il; i ++ ) {\n\n\t\t\t\t\tnormalAttribute.setXYZ( i, 0, 0, 0 );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tconst pA = new Vector3(), pB = new Vector3(), pC = new Vector3();\n\t\t\tconst nA = new Vector3(), nB = new Vector3(), nC = new Vector3();\n\t\t\tconst cb = new Vector3(), ab = new Vector3();\n\n\t\t\t// indexed elements\n\n\t\t\tif ( index ) {\n\n\t\t\t\tfor ( let i = 0, il = index.count; i < il; i += 3 ) {\n\n\t\t\t\t\tconst vA = index.getX( i + 0 );\n\t\t\t\t\tconst vB = index.getX( i + 1 );\n\t\t\t\t\tconst vC = index.getX( i + 2 );\n\n\t\t\t\t\tpA.fromBufferAttribute( positionAttribute, vA );\n\t\t\t\t\tpB.fromBufferAttribute( positionAttribute, vB );\n\t\t\t\t\tpC.fromBufferAttribute( positionAttribute, vC );\n\n\t\t\t\t\tcb.subVectors( pC, pB );\n\t\t\t\t\tab.subVectors( pA, pB );\n\t\t\t\t\tcb.cross( ab );\n\n\t\t\t\t\tnA.fromBufferAttribute( normalAttribute, vA );\n\t\t\t\t\tnB.fromBufferAttribute( normalAttribute, vB );\n\t\t\t\t\tnC.fromBufferAttribute( normalAttribute, vC );\n\n\t\t\t\t\tnA.add( cb );\n\t\t\t\t\tnB.add( cb );\n\t\t\t\t\tnC.add( cb );\n\n\t\t\t\t\tnormalAttribute.setXYZ( vA, nA.x, nA.y, nA.z );\n\t\t\t\t\tnormalAttribute.setXYZ( vB, nB.x, nB.y, nB.z );\n\t\t\t\t\tnormalAttribute.setXYZ( vC, nC.x, nC.y, nC.z );\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\t// non-indexed elements (unconnected triangle soup)\n\n\t\t\t\tfor ( let i = 0, il = positionAttribute.count; i < il; i += 3 ) {\n\n\t\t\t\t\tpA.fromBufferAttribute( positionAttribute, i + 0 );\n\t\t\t\t\tpB.fromBufferAttribute( positionAttribute, i + 1 );\n\t\t\t\t\tpC.fromBufferAttribute( positionAttribute, i + 2 );\n\n\t\t\t\t\tcb.subVectors( pC, pB );\n\t\t\t\t\tab.subVectors( pA, pB );\n\t\t\t\t\tcb.cross( ab );\n\n\t\t\t\t\tnormalAttribute.setXYZ( i + 0, cb.x, cb.y, cb.z );\n\t\t\t\t\tnormalAttribute.setXYZ( i + 1, cb.x, cb.y, cb.z );\n\t\t\t\t\tnormalAttribute.setXYZ( i + 2, cb.x, cb.y, cb.z );\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tthis.normalizeNormals();\n\n\t\t\tnormalAttribute.needsUpdate = true;\n\n\t\t}\n\n\t},\n\n\tmerge: function ( geometry, offset ) {\n\n\t\tif ( ! ( geometry && geometry.isBufferGeometry ) ) {\n\n\t\t\tconsole.error( 'THREE.BufferGeometry.merge(): geometry not an instance of THREE.BufferGeometry.', geometry );\n\t\t\treturn;\n\n\t\t}\n\n\t\tif ( offset === undefined ) {\n\n\t\t\toffset = 0;\n\n\t\t\tconsole.warn(\n\t\t\t\t'THREE.BufferGeometry.merge(): Overwriting original geometry, starting at offset=0. '\n\t\t\t\t+ 'Use BufferGeometryUtils.mergeBufferGeometries() for lossless merge.'\n\t\t\t);\n\n\t\t}\n\n\t\tconst attributes = this.attributes;\n\n\t\tfor ( const key in attributes ) {\n\n\t\t\tif ( geometry.attributes[ key ] === undefined ) continue;\n\n\t\t\tconst attribute1 = attributes[ key ];\n\t\t\tconst attributeArray1 = attribute1.array;\n\n\t\t\tconst attribute2 = geometry.attributes[ key ];\n\t\t\tconst attributeArray2 = attribute2.array;\n\n\t\t\tconst attributeOffset = attribute2.itemSize * offset;\n\t\t\tconst length = Math.min( attributeArray2.length, attributeArray1.length - attributeOffset );\n\n\t\t\tfor ( let i = 0, j = attributeOffset; i < length; i ++, j ++ ) {\n\n\t\t\t\tattributeArray1[ j ] = attributeArray2[ i ];\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn this;\n\n\t},\n\n\tnormalizeNormals: function () {\n\n\t\tconst normals = this.attributes.normal;\n\n\t\tfor ( let i = 0, il = normals.count; i < il; i ++ ) {\n\n\t\t\t_vector$4.fromBufferAttribute( normals, i );\n\n\t\t\t_vector$4.normalize();\n\n\t\t\tnormals.setXYZ( i, _vector$4.x, _vector$4.y, _vector$4.z );\n\n\t\t}\n\n\t},\n\n\ttoNonIndexed: function () {\n\n\t\tfunction convertBufferAttribute( attribute, indices ) {\n\n\t\t\tconst array = attribute.array;\n\t\t\tconst itemSize = attribute.itemSize;\n\t\t\tconst normalized = attribute.normalized;\n\n\t\t\tconst array2 = new array.constructor( indices.length * itemSize );\n\n\t\t\tlet index = 0, index2 = 0;\n\n\t\t\tfor ( let i = 0, l = indices.length; i < l; i ++ ) {\n\n\t\t\t\tindex = indices[ i ] * itemSize;\n\n\t\t\t\tfor ( let j = 0; j < itemSize; j ++ ) {\n\n\t\t\t\t\tarray2[ index2 ++ ] = array[ index ++ ];\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\treturn new BufferAttribute( array2, itemSize, normalized );\n\n\t\t}\n\n\t\t//\n\n\t\tif ( this.index === null ) {\n\n\t\t\tconsole.warn( 'THREE.BufferGeometry.toNonIndexed(): BufferGeometry is already non-indexed.' );\n\t\t\treturn this;\n\n\t\t}\n\n\t\tconst geometry2 = new BufferGeometry();\n\n\t\tconst indices = this.index.array;\n\t\tconst attributes = this.attributes;\n\n\t\t// attributes\n\n\t\tfor ( const name in attributes ) {\n\n\t\t\tconst attribute = attributes[ name ];\n\n\t\t\tconst newAttribute = convertBufferAttribute( attribute, indices );\n\n\t\t\tgeometry2.setAttribute( name, newAttribute );\n\n\t\t}\n\n\t\t// morph attributes\n\n\t\tconst morphAttributes = this.morphAttributes;\n\n\t\tfor ( const name in morphAttributes ) {\n\n\t\t\tconst morphArray = [];\n\t\t\tconst morphAttribute = morphAttributes[ name ]; // morphAttribute: array of Float32BufferAttributes\n\n\t\t\tfor ( let i = 0, il = morphAttribute.length; i < il; i ++ ) {\n\n\t\t\t\tconst attribute = morphAttribute[ i ];\n\n\t\t\t\tconst newAttribute = convertBufferAttribute( attribute, indices );\n\n\t\t\t\tmorphArray.push( newAttribute );\n\n\t\t\t}\n\n\t\t\tgeometry2.morphAttributes[ name ] = morphArray;\n\n\t\t}\n\n\t\tgeometry2.morphTargetsRelative = this.morphTargetsRelative;\n\n\t\t// groups\n\n\t\tconst groups = this.groups;\n\n\t\tfor ( let i = 0, l = groups.length; i < l; i ++ ) {\n\n\t\t\tconst group = groups[ i ];\n\t\t\tgeometry2.addGroup( group.start, group.count, group.materialIndex );\n\n\t\t}\n\n\t\treturn geometry2;\n\n\t},\n\n\ttoJSON: function () {\n\n\t\tconst data = {\n\t\t\tmetadata: {\n\t\t\t\tversion: 4.5,\n\t\t\t\ttype: 'BufferGeometry',\n\t\t\t\tgenerator: 'BufferGeometry.toJSON'\n\t\t\t}\n\t\t};\n\n\t\t// standard BufferGeometry serialization\n\n\t\tdata.uuid = this.uuid;\n\t\tdata.type = this.type;\n\t\tif ( this.name !== '' ) data.name = this.name;\n\t\tif ( Object.keys( this.userData ).length > 0 ) data.userData = this.userData;\n\n\t\tif ( this.parameters !== undefined ) {\n\n\t\t\tconst parameters = this.parameters;\n\n\t\t\tfor ( const key in parameters ) {\n\n\t\t\t\tif ( parameters[ key ] !== undefined ) data[ key ] = parameters[ key ];\n\n\t\t\t}\n\n\t\t\treturn data;\n\n\t\t}\n\n\t\tdata.data = { attributes: {} };\n\n\t\tconst index = this.index;\n\n\t\tif ( index !== null ) {\n\n\t\t\tdata.data.index = {\n\t\t\t\ttype: index.array.constructor.name,\n\t\t\t\tarray: Array.prototype.slice.call( index.array )\n\t\t\t};\n\n\t\t}\n\n\t\tconst attributes = this.attributes;\n\n\t\tfor ( const key in attributes ) {\n\n\t\t\tconst attribute = attributes[ key ];\n\n\t\t\tconst attributeData = attribute.toJSON( data.data );\n\n\t\t\tif ( attribute.name !== '' ) attributeData.name = attribute.name;\n\n\t\t\tdata.data.attributes[ key ] = attributeData;\n\n\t\t}\n\n\t\tconst morphAttributes = {};\n\t\tlet hasMorphAttributes = false;\n\n\t\tfor ( const key in this.morphAttributes ) {\n\n\t\t\tconst attributeArray = this.morphAttributes[ key ];\n\n\t\t\tconst array = [];\n\n\t\t\tfor ( let i = 0, il = attributeArray.length; i < il; i ++ ) {\n\n\t\t\t\tconst attribute = attributeArray[ i ];\n\n\t\t\t\tconst attributeData = attribute.toJSON( data.data );\n\n\t\t\t\tif ( attribute.name !== '' ) attributeData.name = attribute.name;\n\n\t\t\t\tarray.push( attributeData );\n\n\t\t\t}\n\n\t\t\tif ( array.length > 0 ) {\n\n\t\t\t\tmorphAttributes[ key ] = array;\n\n\t\t\t\thasMorphAttributes = true;\n\n\t\t\t}\n\n\t\t}\n\n\t\tif ( hasMorphAttributes ) {\n\n\t\t\tdata.data.morphAttributes = morphAttributes;\n\t\t\tdata.data.morphTargetsRelative = this.morphTargetsRelative;\n\n\t\t}\n\n\t\tconst groups = this.groups;\n\n\t\tif ( groups.length > 0 ) {\n\n\t\t\tdata.data.groups = JSON.parse( JSON.stringify( groups ) );\n\n\t\t}\n\n\t\tconst boundingSphere = this.boundingSphere;\n\n\t\tif ( boundingSphere !== null ) {\n\n\t\t\tdata.data.boundingSphere = {\n\t\t\t\tcenter: boundingSphere.center.toArray(),\n\t\t\t\tradius: boundingSphere.radius\n\t\t\t};\n\n\t\t}\n\n\t\treturn data;\n\n\t},\n\n\tclone: function () {\n\n\t\t/*\n\t\t // Handle primitives\n\n\t\t const parameters = this.parameters;\n\n\t\t if ( parameters !== undefined ) {\n\n\t\t const values = [];\n\n\t\t for ( const key in parameters ) {\n\n\t\t values.push( parameters[ key ] );\n\n\t\t }\n\n\t\t const geometry = Object.create( this.constructor.prototype );\n\t\t this.constructor.apply( geometry, values );\n\t\t return geometry;\n\n\t\t }\n\n\t\t return new this.constructor().copy( this );\n\t\t */\n\n\t\treturn new BufferGeometry().copy( this );\n\n\t},\n\n\tcopy: function ( source ) {\n\n\t\t// reset\n\n\t\tthis.index = null;\n\t\tthis.attributes = {};\n\t\tthis.morphAttributes = {};\n\t\tthis.groups = [];\n\t\tthis.boundingBox = null;\n\t\tthis.boundingSphere = null;\n\n\t\t// used for storing cloned, shared data\n\n\t\tconst data = {};\n\n\t\t// name\n\n\t\tthis.name = source.name;\n\n\t\t// index\n\n\t\tconst index = source.index;\n\n\t\tif ( index !== null ) {\n\n\t\t\tthis.setIndex( index.clone( data ) );\n\n\t\t}\n\n\t\t// attributes\n\n\t\tconst attributes = source.attributes;\n\n\t\tfor ( const name in attributes ) {\n\n\t\t\tconst attribute = attributes[ name ];\n\t\t\tthis.setAttribute( name, attribute.clone( data ) );\n\n\t\t}\n\n\t\t// morph attributes\n\n\t\tconst morphAttributes = source.morphAttributes;\n\n\t\tfor ( const name in morphAttributes ) {\n\n\t\t\tconst array = [];\n\t\t\tconst morphAttribute = morphAttributes[ name ]; // morphAttribute: array of Float32BufferAttributes\n\n\t\t\tfor ( let i = 0, l = morphAttribute.length; i < l; i ++ ) {\n\n\t\t\t\tarray.push( morphAttribute[ i ].clone( data ) );\n\n\t\t\t}\n\n\t\t\tthis.morphAttributes[ name ] = array;\n\n\t\t}\n\n\t\tthis.morphTargetsRelative = source.morphTargetsRelative;\n\n\t\t// groups\n\n\t\tconst groups = source.groups;\n\n\t\tfor ( let i = 0, l = groups.length; i < l; i ++ ) {\n\n\t\t\tconst group = groups[ i ];\n\t\t\tthis.addGroup( group.start, group.count, group.materialIndex );\n\n\t\t}\n\n\t\t// bounding box\n\n\t\tconst boundingBox = source.boundingBox;\n\n\t\tif ( boundingBox !== null ) {\n\n\t\t\tthis.boundingBox = boundingBox.clone();\n\n\t\t}\n\n\t\t// bounding sphere\n\n\t\tconst boundingSphere = source.boundingSphere;\n\n\t\tif ( boundingSphere !== null ) {\n\n\t\t\tthis.boundingSphere = boundingSphere.clone();\n\n\t\t}\n\n\t\t// draw range\n\n\t\tthis.drawRange.start = source.drawRange.start;\n\t\tthis.drawRange.count = source.drawRange.count;\n\n\t\t// user data\n\n\t\tthis.userData = source.userData;\n\n\t\treturn this;\n\n\t},\n\n\tdispose: function () {\n\n\t\tthis.dispatchEvent( { type: 'dispose' } );\n\n\t}\n\n} );\n\nconst _inverseMatrix = new Matrix4();\nconst _ray = new Ray();\nconst _sphere = new Sphere();\n\nconst _vA = new Vector3();\nconst _vB = new Vector3();\nconst _vC = new Vector3();\n\nconst _tempA = new Vector3();\nconst _tempB = new Vector3();\nconst _tempC = new Vector3();\n\nconst _morphA = new Vector3();\nconst _morphB = new Vector3();\nconst _morphC = new Vector3();\n\nconst _uvA = new Vector2();\nconst _uvB = new Vector2();\nconst _uvC = new Vector2();\n\nconst _intersectionPoint = new Vector3();\nconst _intersectionPointWorld = new Vector3();\n\nfunction Mesh( geometry = new BufferGeometry(), material = new MeshBasicMaterial() ) {\n\n\tObject3D.call( this );\n\n\tthis.type = 'Mesh';\n\n\tthis.geometry = geometry;\n\tthis.material = material;\n\n\tthis.updateMorphTargets();\n\n}\n\nMesh.prototype = Object.assign( Object.create( Object3D.prototype ), {\n\n\tconstructor: Mesh,\n\n\tisMesh: true,\n\n\tcopy: function ( source ) {\n\n\t\tObject3D.prototype.copy.call( this, source );\n\n\t\tif ( source.morphTargetInfluences !== undefined ) {\n\n\t\t\tthis.morphTargetInfluences = source.morphTargetInfluences.slice();\n\n\t\t}\n\n\t\tif ( source.morphTargetDictionary !== undefined ) {\n\n\t\t\tthis.morphTargetDictionary = Object.assign( {}, source.morphTargetDictionary );\n\n\t\t}\n\n\t\tthis.material = source.material;\n\t\tthis.geometry = source.geometry;\n\n\t\treturn this;\n\n\t},\n\n\tupdateMorphTargets: function () {\n\n\t\tconst geometry = this.geometry;\n\n\t\tif ( geometry.isBufferGeometry ) {\n\n\t\t\tconst morphAttributes = geometry.morphAttributes;\n\t\t\tconst keys = Object.keys( morphAttributes );\n\n\t\t\tif ( keys.length > 0 ) {\n\n\t\t\t\tconst morphAttribute = morphAttributes[ keys[ 0 ] ];\n\n\t\t\t\tif ( morphAttribute !== undefined ) {\n\n\t\t\t\t\tthis.morphTargetInfluences = [];\n\t\t\t\t\tthis.morphTargetDictionary = {};\n\n\t\t\t\t\tfor ( let m = 0, ml = morphAttribute.length; m < ml; m ++ ) {\n\n\t\t\t\t\t\tconst name = morphAttribute[ m ].name || String( m );\n\n\t\t\t\t\t\tthis.morphTargetInfluences.push( 0 );\n\t\t\t\t\t\tthis.morphTargetDictionary[ name ] = m;\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tconst morphTargets = geometry.morphTargets;\n\n\t\t\tif ( morphTargets !== undefined && morphTargets.length > 0 ) {\n\n\t\t\t\tconsole.error( 'THREE.Mesh.updateMorphTargets() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.' );\n\n\t\t\t}\n\n\t\t}\n\n\t},\n\n\traycast: function ( raycaster, intersects ) {\n\n\t\tconst geometry = this.geometry;\n\t\tconst material = this.material;\n\t\tconst matrixWorld = this.matrixWorld;\n\n\t\tif ( material === undefined ) return;\n\n\t\t// Checking boundingSphere distance to ray\n\n\t\tif ( geometry.boundingSphere === null ) geometry.computeBoundingSphere();\n\n\t\t_sphere.copy( geometry.boundingSphere );\n\t\t_sphere.applyMatrix4( matrixWorld );\n\n\t\tif ( raycaster.ray.intersectsSphere( _sphere ) === false ) return;\n\n\t\t//\n\n\t\t_inverseMatrix.copy( matrixWorld ).invert();\n\t\t_ray.copy( raycaster.ray ).applyMatrix4( _inverseMatrix );\n\n\t\t// Check boundingBox before continuing\n\n\t\tif ( geometry.boundingBox !== null ) {\n\n\t\t\tif ( _ray.intersectsBox( geometry.boundingBox ) === false ) return;\n\n\t\t}\n\n\t\tlet intersection;\n\n\t\tif ( geometry.isBufferGeometry ) {\n\n\t\t\tconst index = geometry.index;\n\t\t\tconst position = geometry.attributes.position;\n\t\t\tconst morphPosition = geometry.morphAttributes.position;\n\t\t\tconst morphTargetsRelative = geometry.morphTargetsRelative;\n\t\t\tconst uv = geometry.attributes.uv;\n\t\t\tconst uv2 = geometry.attributes.uv2;\n\t\t\tconst groups = geometry.groups;\n\t\t\tconst drawRange = geometry.drawRange;\n\n\t\t\tif ( index !== null ) {\n\n\t\t\t\t// indexed buffer geometry\n\n\t\t\t\tif ( Array.isArray( material ) ) {\n\n\t\t\t\t\tfor ( let i = 0, il = groups.length; i < il; i ++ ) {\n\n\t\t\t\t\t\tconst group = groups[ i ];\n\t\t\t\t\t\tconst groupMaterial = material[ group.materialIndex ];\n\n\t\t\t\t\t\tconst start = Math.max( group.start, drawRange.start );\n\t\t\t\t\t\tconst end = Math.min( ( group.start + group.count ), ( drawRange.start + drawRange.count ) );\n\n\t\t\t\t\t\tfor ( let j = start, jl = end; j < jl; j += 3 ) {\n\n\t\t\t\t\t\t\tconst a = index.getX( j );\n\t\t\t\t\t\t\tconst b = index.getX( j + 1 );\n\t\t\t\t\t\t\tconst c = index.getX( j + 2 );\n\n\t\t\t\t\t\t\tintersection = checkBufferGeometryIntersection( this, groupMaterial, raycaster, _ray, position, morphPosition, morphTargetsRelative, uv, uv2, a, b, c );\n\n\t\t\t\t\t\t\tif ( intersection ) {\n\n\t\t\t\t\t\t\t\tintersection.faceIndex = Math.floor( j / 3 ); // triangle number in indexed buffer semantics\n\t\t\t\t\t\t\t\tintersection.face.materialIndex = group.materialIndex;\n\t\t\t\t\t\t\t\tintersects.push( intersection );\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\n\t\t\t\t\tconst start = Math.max( 0, drawRange.start );\n\t\t\t\t\tconst end = Math.min( index.count, ( drawRange.start + drawRange.count ) );\n\n\t\t\t\t\tfor ( let i = start, il = end; i < il; i += 3 ) {\n\n\t\t\t\t\t\tconst a = index.getX( i );\n\t\t\t\t\t\tconst b = index.getX( i + 1 );\n\t\t\t\t\t\tconst c = index.getX( i + 2 );\n\n\t\t\t\t\t\tintersection = checkBufferGeometryIntersection( this, material, raycaster, _ray, position, morphPosition, morphTargetsRelative, uv, uv2, a, b, c );\n\n\t\t\t\t\t\tif ( intersection ) {\n\n\t\t\t\t\t\t\tintersection.faceIndex = Math.floor( i / 3 ); // triangle number in indexed buffer semantics\n\t\t\t\t\t\t\tintersects.push( intersection );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t} else if ( position !== undefined ) {\n\n\t\t\t\t// non-indexed buffer geometry\n\n\t\t\t\tif ( Array.isArray( material ) ) {\n\n\t\t\t\t\tfor ( let i = 0, il = groups.length; i < il; i ++ ) {\n\n\t\t\t\t\t\tconst group = groups[ i ];\n\t\t\t\t\t\tconst groupMaterial = material[ group.materialIndex ];\n\n\t\t\t\t\t\tconst start = Math.max( group.start, drawRange.start );\n\t\t\t\t\t\tconst end = Math.min( ( group.start + group.count ), ( drawRange.start + drawRange.count ) );\n\n\t\t\t\t\t\tfor ( let j = start, jl = end; j < jl; j += 3 ) {\n\n\t\t\t\t\t\t\tconst a = j;\n\t\t\t\t\t\t\tconst b = j + 1;\n\t\t\t\t\t\t\tconst c = j + 2;\n\n\t\t\t\t\t\t\tintersection = checkBufferGeometryIntersection( this, groupMaterial, raycaster, _ray, position, morphPosition, morphTargetsRelative, uv, uv2, a, b, c );\n\n\t\t\t\t\t\t\tif ( intersection ) {\n\n\t\t\t\t\t\t\t\tintersection.faceIndex = Math.floor( j / 3 ); // triangle number in non-indexed buffer semantics\n\t\t\t\t\t\t\t\tintersection.face.materialIndex = group.materialIndex;\n\t\t\t\t\t\t\t\tintersects.push( intersection );\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\n\t\t\t\t\tconst start = Math.max( 0, drawRange.start );\n\t\t\t\t\tconst end = Math.min( position.count, ( drawRange.start + drawRange.count ) );\n\n\t\t\t\t\tfor ( let i = start, il = end; i < il; i += 3 ) {\n\n\t\t\t\t\t\tconst a = i;\n\t\t\t\t\t\tconst b = i + 1;\n\t\t\t\t\t\tconst c = i + 2;\n\n\t\t\t\t\t\tintersection = checkBufferGeometryIntersection( this, material, raycaster, _ray, position, morphPosition, morphTargetsRelative, uv, uv2, a, b, c );\n\n\t\t\t\t\t\tif ( intersection ) {\n\n\t\t\t\t\t\t\tintersection.faceIndex = Math.floor( i / 3 ); // triangle number in non-indexed buffer semantics\n\t\t\t\t\t\t\tintersects.push( intersection );\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t} else if ( geometry.isGeometry ) {\n\n\t\t\tconsole.error( 'THREE.Mesh.raycast() no longer supports THREE.Geometry. Use THREE.BufferGeometry instead.' );\n\n\t\t}\n\n\t}\n\n} );\n\nfunction checkIntersection( object, material, raycaster, ray, pA, pB, pC, point ) {\n\n\tlet intersect;\n\n\tif ( material.side === BackSide ) {\n\n\t\tintersect = ray.intersectTriangle( pC, pB, pA, true, point );\n\n\t} else {\n\n\t\tintersect = ray.intersectTriangle( pA, pB, pC, material.side !== DoubleSide, point );\n\n\t}\n\n\tif ( intersect === null ) return null;\n\n\t_intersectionPointWorld.copy( point );\n\t_intersectionPointWorld.applyMatrix4( object.matrixWorld );\n\n\tconst distance = raycaster.ray.origin.distanceTo( _intersectionPointWorld );\n\n\tif ( distance < raycaster.near || distance > raycaster.far ) return null;\n\n\treturn {\n\t\tdistance: distance,\n\t\tpoint: _intersectionPointWorld.clone(),\n\t\tobject: object\n\t};\n\n}\n\nfunction checkBufferGeometryIntersection( object, material, raycaster, ray, position, morphPosition, morphTargetsRelative, uv, uv2, a, b, c ) {\n\n\t_vA.fromBufferAttribute( position, a );\n\t_vB.fromBufferAttribute( position, b );\n\t_vC.fromBufferAttribute( position, c );\n\n\tconst morphInfluences = object.morphTargetInfluences;\n\n\tif ( material.morphTargets && morphPosition && morphInfluences ) {\n\n\t\t_morphA.set( 0, 0, 0 );\n\t\t_morphB.set( 0, 0, 0 );\n\t\t_morphC.set( 0, 0, 0 );\n\n\t\tfor ( let i = 0, il = morphPosition.length; i < il; i ++ ) {\n\n\t\t\tconst influence = morphInfluences[ i ];\n\t\t\tconst morphAttribute = morphPosition[ i ];\n\n\t\t\tif ( influence === 0 ) continue;\n\n\t\t\t_tempA.fromBufferAttribute( morphAttribute, a );\n\t\t\t_tempB.fromBufferAttribute( morphAttribute, b );\n\t\t\t_tempC.fromBufferAttribute( morphAttribute, c );\n\n\t\t\tif ( morphTargetsRelative ) {\n\n\t\t\t\t_morphA.addScaledVector( _tempA, influence );\n\t\t\t\t_morphB.addScaledVector( _tempB, influence );\n\t\t\t\t_morphC.addScaledVector( _tempC, influence );\n\n\t\t\t} else {\n\n\t\t\t\t_morphA.addScaledVector( _tempA.sub( _vA ), influence );\n\t\t\t\t_morphB.addScaledVector( _tempB.sub( _vB ), influence );\n\t\t\t\t_morphC.addScaledVector( _tempC.sub( _vC ), influence );\n\n\t\t\t}\n\n\t\t}\n\n\t\t_vA.add( _morphA );\n\t\t_vB.add( _morphB );\n\t\t_vC.add( _morphC );\n\n\t}\n\n\tif ( object.isSkinnedMesh ) {\n\n\t\tobject.boneTransform( a, _vA );\n\t\tobject.boneTransform( b, _vB );\n\t\tobject.boneTransform( c, _vC );\n\n\t}\n\n\tconst intersection = checkIntersection( object, material, raycaster, ray, _vA, _vB, _vC, _intersectionPoint );\n\n\tif ( intersection ) {\n\n\t\tif ( uv ) {\n\n\t\t\t_uvA.fromBufferAttribute( uv, a );\n\t\t\t_uvB.fromBufferAttribute( uv, b );\n\t\t\t_uvC.fromBufferAttribute( uv, c );\n\n\t\t\tintersection.uv = Triangle.getUV( _intersectionPoint, _vA, _vB, _vC, _uvA, _uvB, _uvC, new Vector2() );\n\n\t\t}\n\n\t\tif ( uv2 ) {\n\n\t\t\t_uvA.fromBufferAttribute( uv2, a );\n\t\t\t_uvB.fromBufferAttribute( uv2, b );\n\t\t\t_uvC.fromBufferAttribute( uv2, c );\n\n\t\t\tintersection.uv2 = Triangle.getUV( _intersectionPoint, _vA, _vB, _vC, _uvA, _uvB, _uvC, new Vector2() );\n\n\t\t}\n\n\t\tconst face = new Face3( a, b, c );\n\t\tTriangle.getNormal( _vA, _vB, _vC, face.normal );\n\n\t\tintersection.face = face;\n\n\t}\n\n\treturn intersection;\n\n}\n\nclass BoxGeometry extends BufferGeometry {\n\n\tconstructor( width = 1, height = 1, depth = 1, widthSegments = 1, heightSegments = 1, depthSegments = 1 ) {\n\n\t\tsuper();\n\n\t\tthis.type = 'BoxGeometry';\n\n\t\tthis.parameters = {\n\t\t\twidth: width,\n\t\t\theight: height,\n\t\t\tdepth: depth,\n\t\t\twidthSegments: widthSegments,\n\t\t\theightSegments: heightSegments,\n\t\t\tdepthSegments: depthSegments\n\t\t};\n\n\t\tconst scope = this;\n\n\t\t// segments\n\n\t\twidthSegments = Math.floor( widthSegments );\n\t\theightSegments = Math.floor( heightSegments );\n\t\tdepthSegments = Math.floor( depthSegments );\n\n\t\t// buffers\n\n\t\tconst indices = [];\n\t\tconst vertices = [];\n\t\tconst normals = [];\n\t\tconst uvs = [];\n\n\t\t// helper variables\n\n\t\tlet numberOfVertices = 0;\n\t\tlet groupStart = 0;\n\n\t\t// build each side of the box geometry\n\n\t\tbuildPlane( 'z', 'y', 'x', - 1, - 1, depth, height, width, depthSegments, heightSegments, 0 ); // px\n\t\tbuildPlane( 'z', 'y', 'x', 1, - 1, depth, height, - width, depthSegments, heightSegments, 1 ); // nx\n\t\tbuildPlane( 'x', 'z', 'y', 1, 1, width, depth, height, widthSegments, depthSegments, 2 ); // py\n\t\tbuildPlane( 'x', 'z', 'y', 1, - 1, width, depth, - height, widthSegments, depthSegments, 3 ); // ny\n\t\tbuildPlane( 'x', 'y', 'z', 1, - 1, width, height, depth, widthSegments, heightSegments, 4 ); // pz\n\t\tbuildPlane( 'x', 'y', 'z', - 1, - 1, width, height, - depth, widthSegments, heightSegments, 5 ); // nz\n\n\t\t// build geometry\n\n\t\tthis.setIndex( indices );\n\t\tthis.setAttribute( 'position', new Float32BufferAttribute( vertices, 3 ) );\n\t\tthis.setAttribute( 'normal', new Float32BufferAttribute( normals, 3 ) );\n\t\tthis.setAttribute( 'uv', new Float32BufferAttribute( uvs, 2 ) );\n\n\t\tfunction buildPlane( u, v, w, udir, vdir, width, height, depth, gridX, gridY, materialIndex ) {\n\n\t\t\tconst segmentWidth = width / gridX;\n\t\t\tconst segmentHeight = height / gridY;\n\n\t\t\tconst widthHalf = width / 2;\n\t\t\tconst heightHalf = height / 2;\n\t\t\tconst depthHalf = depth / 2;\n\n\t\t\tconst gridX1 = gridX + 1;\n\t\t\tconst gridY1 = gridY + 1;\n\n\t\t\tlet vertexCounter = 0;\n\t\t\tlet groupCount = 0;\n\n\t\t\tconst vector = new Vector3();\n\n\t\t\t// generate vertices, normals and uvs\n\n\t\t\tfor ( let iy = 0; iy < gridY1; iy ++ ) {\n\n\t\t\t\tconst y = iy * segmentHeight - heightHalf;\n\n\t\t\t\tfor ( let ix = 0; ix < gridX1; ix ++ ) {\n\n\t\t\t\t\tconst x = ix * segmentWidth - widthHalf;\n\n\t\t\t\t\t// set values to correct vector component\n\n\t\t\t\t\tvector[ u ] = x * udir;\n\t\t\t\t\tvector[ v ] = y * vdir;\n\t\t\t\t\tvector[ w ] = depthHalf;\n\n\t\t\t\t\t// now apply vector to vertex buffer\n\n\t\t\t\t\tvertices.push( vector.x, vector.y, vector.z );\n\n\t\t\t\t\t// set values to correct vector component\n\n\t\t\t\t\tvector[ u ] = 0;\n\t\t\t\t\tvector[ v ] = 0;\n\t\t\t\t\tvector[ w ] = depth > 0 ? 1 : - 1;\n\n\t\t\t\t\t// now apply vector to normal buffer\n\n\t\t\t\t\tnormals.push( vector.x, vector.y, vector.z );\n\n\t\t\t\t\t// uvs\n\n\t\t\t\t\tuvs.push( ix / gridX );\n\t\t\t\t\tuvs.push( 1 - ( iy / gridY ) );\n\n\t\t\t\t\t// counters\n\n\t\t\t\t\tvertexCounter += 1;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t// indices\n\n\t\t\t// 1. you need three indices to draw a single face\n\t\t\t// 2. a single segment consists of two faces\n\t\t\t// 3. so we need to generate six (2*3) indices per segment\n\n\t\t\tfor ( let iy = 0; iy < gridY; iy ++ ) {\n\n\t\t\t\tfor ( let ix = 0; ix < gridX; ix ++ ) {\n\n\t\t\t\t\tconst a = numberOfVertices + ix + gridX1 * iy;\n\t\t\t\t\tconst b = numberOfVertices + ix + gridX1 * ( iy + 1 );\n\t\t\t\t\tconst c = numberOfVertices + ( ix + 1 ) + gridX1 * ( iy + 1 );\n\t\t\t\t\tconst d = numberOfVertices + ( ix + 1 ) + gridX1 * iy;\n\n\t\t\t\t\t// faces\n\n\t\t\t\t\tindices.push( a, b, d );\n\t\t\t\t\tindices.push( b, c, d );\n\n\t\t\t\t\t// increase counter\n\n\t\t\t\t\tgroupCount += 6;\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t// add a group to the geometry. this will ensure multi material support\n\n\t\t\tscope.addGroup( groupStart, groupCount, materialIndex );\n\n\t\t\t// calculate new start value for groups\n\n\t\t\tgroupStart += groupCount;\n\n\t\t\t// update total number of vertices\n\n\t\t\tnumberOfVertices += vertexCounter;\n\n\t\t}\n\n\t}\n\n}\n\n/**\n * Uniform Utilities\n */\n\nfunction cloneUniforms( src ) {\n\n\tconst dst = {};\n\n\tfor ( const u in src ) {\n\n\t\tdst[ u ] = {};\n\n\t\tfor ( const p in src[ u ] ) {\n\n\t\t\tconst property = src[ u ][ p ];\n\n\t\t\tif ( property && ( property.isColor ||\n\t\t\t\tproperty.isMatrix3 || property.isMatrix4 ||\n\t\t\t\tproperty.isVector2 || property.isVector3 || property.isVector4 ||\n\t\t\t\tproperty.isTexture ) ) {\n\n\t\t\t\tdst[ u ][ p ] = property.clone();\n\n\t\t\t} else if ( Array.isArray( property ) ) {\n\n\t\t\t\tdst[ u ][ p ] = property.slice();\n\n\t\t\t} else {\n\n\t\t\t\tdst[ u ][ p ] = property;\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\treturn dst;\n\n}\n\nfunction mergeUniforms( uniforms ) {\n\n\tconst merged = {};\n\n\tfor ( let u = 0; u < uniforms.length; u ++ ) {\n\n\t\tconst tmp = cloneUniforms( uniforms[ u ] );\n\n\t\tfor ( const p in tmp ) {\n\n\t\t\tmerged[ p ] = tmp[ p ];\n\n\t\t}\n\n\t}\n\n\treturn merged;\n\n}\n\n// Legacy\n\nconst UniformsUtils = { clone: cloneUniforms, merge: mergeUniforms };\n\nvar default_vertex = \"void main() {\\n\\tgl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\\n}\";\n\nvar default_fragment = \"void main() {\\n\\tgl_FragColor = vec4( 1.0, 0.0, 0.0, 1.0 );\\n}\";\n\n/**\n * parameters = {\n * defines: { \"label\" : \"value\" },\n * uniforms: { \"parameter1\": { value: 1.0 }, \"parameter2\": { value2: 2 } },\n *\n * fragmentShader: ,\n * vertexShader: ,\n *\n * wireframe: ,\n * wireframeLinewidth: ,\n *\n * lights: ,\n *\n * skinning: ,\n * morphTargets: ,\n * morphNormals: \n * }\n */\n\nfunction ShaderMaterial( parameters ) {\n\n\tMaterial.call( this );\n\n\tthis.type = 'ShaderMaterial';\n\n\tthis.defines = {};\n\tthis.uniforms = {};\n\n\tthis.vertexShader = default_vertex;\n\tthis.fragmentShader = default_fragment;\n\n\tthis.linewidth = 1;\n\n\tthis.wireframe = false;\n\tthis.wireframeLinewidth = 1;\n\n\tthis.fog = false; // set to use scene fog\n\tthis.lights = false; // set to use scene lights\n\tthis.clipping = false; // set to use user-defined clipping planes\n\n\tthis.skinning = false; // set to use skinning attribute streams\n\tthis.morphTargets = false; // set to use morph targets\n\tthis.morphNormals = false; // set to use morph normals\n\n\tthis.extensions = {\n\t\tderivatives: false, // set to use derivatives\n\t\tfragDepth: false, // set to use fragment depth values\n\t\tdrawBuffers: false, // set to use draw buffers\n\t\tshaderTextureLOD: false // set to use shader texture LOD\n\t};\n\n\t// When rendered geometry doesn't include these attributes but the material does,\n\t// use these default values in WebGL. This avoids errors when buffer data is missing.\n\tthis.defaultAttributeValues = {\n\t\t'color': [ 1, 1, 1 ],\n\t\t'uv': [ 0, 0 ],\n\t\t'uv2': [ 0, 0 ]\n\t};\n\n\tthis.index0AttributeName = undefined;\n\tthis.uniformsNeedUpdate = false;\n\n\tthis.glslVersion = null;\n\n\tif ( parameters !== undefined ) {\n\n\t\tif ( parameters.attributes !== undefined ) {\n\n\t\t\tconsole.error( 'THREE.ShaderMaterial: attributes should now be defined in THREE.BufferGeometry instead.' );\n\n\t\t}\n\n\t\tthis.setValues( parameters );\n\n\t}\n\n}\n\nShaderMaterial.prototype = Object.create( Material.prototype );\nShaderMaterial.prototype.constructor = ShaderMaterial;\n\nShaderMaterial.prototype.isShaderMaterial = true;\n\nShaderMaterial.prototype.copy = function ( source ) {\n\n\tMaterial.prototype.copy.call( this, source );\n\n\tthis.fragmentShader = source.fragmentShader;\n\tthis.vertexShader = source.vertexShader;\n\n\tthis.uniforms = cloneUniforms( source.uniforms );\n\n\tthis.defines = Object.assign( {}, source.defines );\n\n\tthis.wireframe = source.wireframe;\n\tthis.wireframeLinewidth = source.wireframeLinewidth;\n\n\tthis.lights = source.lights;\n\tthis.clipping = source.clipping;\n\n\tthis.skinning = source.skinning;\n\n\tthis.morphTargets = source.morphTargets;\n\tthis.morphNormals = source.morphNormals;\n\n\tthis.extensions = Object.assign( {}, source.extensions );\n\n\tthis.glslVersion = source.glslVersion;\n\n\treturn this;\n\n};\n\nShaderMaterial.prototype.toJSON = function ( meta ) {\n\n\tconst data = Material.prototype.toJSON.call( this, meta );\n\n\tdata.glslVersion = this.glslVersion;\n\tdata.uniforms = {};\n\n\tfor ( const name in this.uniforms ) {\n\n\t\tconst uniform = this.uniforms[ name ];\n\t\tconst value = uniform.value;\n\n\t\tif ( value && value.isTexture ) {\n\n\t\t\tdata.uniforms[ name ] = {\n\t\t\t\ttype: 't',\n\t\t\t\tvalue: value.toJSON( meta ).uuid\n\t\t\t};\n\n\t\t} else if ( value && value.isColor ) {\n\n\t\t\tdata.uniforms[ name ] = {\n\t\t\t\ttype: 'c',\n\t\t\t\tvalue: value.getHex()\n\t\t\t};\n\n\t\t} else if ( value && value.isVector2 ) {\n\n\t\t\tdata.uniforms[ name ] = {\n\t\t\t\ttype: 'v2',\n\t\t\t\tvalue: value.toArray()\n\t\t\t};\n\n\t\t} else if ( value && value.isVector3 ) {\n\n\t\t\tdata.uniforms[ name ] = {\n\t\t\t\ttype: 'v3',\n\t\t\t\tvalue: value.toArray()\n\t\t\t};\n\n\t\t} else if ( value && value.isVector4 ) {\n\n\t\t\tdata.uniforms[ name ] = {\n\t\t\t\ttype: 'v4',\n\t\t\t\tvalue: value.toArray()\n\t\t\t};\n\n\t\t} else if ( value && value.isMatrix3 ) {\n\n\t\t\tdata.uniforms[ name ] = {\n\t\t\t\ttype: 'm3',\n\t\t\t\tvalue: value.toArray()\n\t\t\t};\n\n\t\t} else if ( value && value.isMatrix4 ) {\n\n\t\t\tdata.uniforms[ name ] = {\n\t\t\t\ttype: 'm4',\n\t\t\t\tvalue: value.toArray()\n\t\t\t};\n\n\t\t} else {\n\n\t\t\tdata.uniforms[ name ] = {\n\t\t\t\tvalue: value\n\t\t\t};\n\n\t\t\t// note: the array variants v2v, v3v, v4v, m4v and tv are not supported so far\n\n\t\t}\n\n\t}\n\n\tif ( Object.keys( this.defines ).length > 0 ) data.defines = this.defines;\n\n\tdata.vertexShader = this.vertexShader;\n\tdata.fragmentShader = this.fragmentShader;\n\n\tconst extensions = {};\n\n\tfor ( const key in this.extensions ) {\n\n\t\tif ( this.extensions[ key ] === true ) extensions[ key ] = true;\n\n\t}\n\n\tif ( Object.keys( extensions ).length > 0 ) data.extensions = extensions;\n\n\treturn data;\n\n};\n\nfunction Camera() {\n\n\tObject3D.call( this );\n\n\tthis.type = 'Camera';\n\n\tthis.matrixWorldInverse = new Matrix4();\n\n\tthis.projectionMatrix = new Matrix4();\n\tthis.projectionMatrixInverse = new Matrix4();\n\n}\n\nCamera.prototype = Object.assign( Object.create( Object3D.prototype ), {\n\n\tconstructor: Camera,\n\n\tisCamera: true,\n\n\tcopy: function ( source, recursive ) {\n\n\t\tObject3D.prototype.copy.call( this, source, recursive );\n\n\t\tthis.matrixWorldInverse.copy( source.matrixWorldInverse );\n\n\t\tthis.projectionMatrix.copy( source.projectionMatrix );\n\t\tthis.projectionMatrixInverse.copy( source.projectionMatrixInverse );\n\n\t\treturn this;\n\n\t},\n\n\tgetWorldDirection: function ( target ) {\n\n\t\tif ( target === undefined ) {\n\n\t\t\tconsole.warn( 'THREE.Camera: .getWorldDirection() target is now required' );\n\t\t\ttarget = new Vector3();\n\n\t\t}\n\n\t\tthis.updateWorldMatrix( true, false );\n\n\t\tconst e = this.matrixWorld.elements;\n\n\t\treturn target.set( - e[ 8 ], - e[ 9 ], - e[ 10 ] ).normalize();\n\n\t},\n\n\tupdateMatrixWorld: function ( force ) {\n\n\t\tObject3D.prototype.updateMatrixWorld.call( this, force );\n\n\t\tthis.matrixWorldInverse.copy( this.matrixWorld ).invert();\n\n\t},\n\n\tupdateWorldMatrix: function ( updateParents, updateChildren ) {\n\n\t\tObject3D.prototype.updateWorldMatrix.call( this, updateParents, updateChildren );\n\n\t\tthis.matrixWorldInverse.copy( this.matrixWorld ).invert();\n\n\t},\n\n\tclone: function () {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n} );\n\nfunction PerspectiveCamera( fov = 50, aspect = 1, near = 0.1, far = 2000 ) {\n\n\tCamera.call( this );\n\n\tthis.type = 'PerspectiveCamera';\n\n\tthis.fov = fov;\n\tthis.zoom = 1;\n\n\tthis.near = near;\n\tthis.far = far;\n\tthis.focus = 10;\n\n\tthis.aspect = aspect;\n\tthis.view = null;\n\n\tthis.filmGauge = 35;\t// width of the film (default in millimeters)\n\tthis.filmOffset = 0;\t// horizontal film offset (same unit as gauge)\n\n\tthis.updateProjectionMatrix();\n\n}\n\nPerspectiveCamera.prototype = Object.assign( Object.create( Camera.prototype ), {\n\n\tconstructor: PerspectiveCamera,\n\n\tisPerspectiveCamera: true,\n\n\tcopy: function ( source, recursive ) {\n\n\t\tCamera.prototype.copy.call( this, source, recursive );\n\n\t\tthis.fov = source.fov;\n\t\tthis.zoom = source.zoom;\n\n\t\tthis.near = source.near;\n\t\tthis.far = source.far;\n\t\tthis.focus = source.focus;\n\n\t\tthis.aspect = source.aspect;\n\t\tthis.view = source.view === null ? null : Object.assign( {}, source.view );\n\n\t\tthis.filmGauge = source.filmGauge;\n\t\tthis.filmOffset = source.filmOffset;\n\n\t\treturn this;\n\n\t},\n\n\t/**\n\t * Sets the FOV by focal length in respect to the current .filmGauge.\n\t *\n\t * The default film gauge is 35, so that the focal length can be specified for\n\t * a 35mm (full frame) camera.\n\t *\n\t * Values for focal length and film gauge must have the same unit.\n\t */\n\tsetFocalLength: function ( focalLength ) {\n\n\t\t/** see {@link http://www.bobatkins.com/photography/technical/field_of_view.html} */\n\t\tconst vExtentSlope = 0.5 * this.getFilmHeight() / focalLength;\n\n\t\tthis.fov = MathUtils.RAD2DEG * 2 * Math.atan( vExtentSlope );\n\t\tthis.updateProjectionMatrix();\n\n\t},\n\n\t/**\n\t * Calculates the focal length from the current .fov and .filmGauge.\n\t */\n\tgetFocalLength: function () {\n\n\t\tconst vExtentSlope = Math.tan( MathUtils.DEG2RAD * 0.5 * this.fov );\n\n\t\treturn 0.5 * this.getFilmHeight() / vExtentSlope;\n\n\t},\n\n\tgetEffectiveFOV: function () {\n\n\t\treturn MathUtils.RAD2DEG * 2 * Math.atan(\n\t\t\tMath.tan( MathUtils.DEG2RAD * 0.5 * this.fov ) / this.zoom );\n\n\t},\n\n\tgetFilmWidth: function () {\n\n\t\t// film not completely covered in portrait format (aspect < 1)\n\t\treturn this.filmGauge * Math.min( this.aspect, 1 );\n\n\t},\n\n\tgetFilmHeight: function () {\n\n\t\t// film not completely covered in landscape format (aspect > 1)\n\t\treturn this.filmGauge / Math.max( this.aspect, 1 );\n\n\t},\n\n\t/**\n\t * Sets an offset in a larger frustum. This is useful for multi-window or\n\t * multi-monitor/multi-machine setups.\n\t *\n\t * For example, if you have 3x2 monitors and each monitor is 1920x1080 and\n\t * the monitors are in grid like this\n\t *\n\t * +---+---+---+\n\t * | A | B | C |\n\t * +---+---+---+\n\t * | D | E | F |\n\t * +---+---+---+\n\t *\n\t * then for each monitor you would call it like this\n\t *\n\t * const w = 1920;\n\t * const h = 1080;\n\t * const fullWidth = w * 3;\n\t * const fullHeight = h * 2;\n\t *\n\t * --A--\n\t * camera.setViewOffset( fullWidth, fullHeight, w * 0, h * 0, w, h );\n\t * --B--\n\t * camera.setViewOffset( fullWidth, fullHeight, w * 1, h * 0, w, h );\n\t * --C--\n\t * camera.setViewOffset( fullWidth, fullHeight, w * 2, h * 0, w, h );\n\t * --D--\n\t * camera.setViewOffset( fullWidth, fullHeight, w * 0, h * 1, w, h );\n\t * --E--\n\t * camera.setViewOffset( fullWidth, fullHeight, w * 1, h * 1, w, h );\n\t * --F--\n\t * camera.setViewOffset( fullWidth, fullHeight, w * 2, h * 1, w, h );\n\t *\n\t * Note there is no reason monitors have to be the same size or in a grid.\n\t */\n\tsetViewOffset: function ( fullWidth, fullHeight, x, y, width, height ) {\n\n\t\tthis.aspect = fullWidth / fullHeight;\n\n\t\tif ( this.view === null ) {\n\n\t\t\tthis.view = {\n\t\t\t\tenabled: true,\n\t\t\t\tfullWidth: 1,\n\t\t\t\tfullHeight: 1,\n\t\t\t\toffsetX: 0,\n\t\t\t\toffsetY: 0,\n\t\t\t\twidth: 1,\n\t\t\t\theight: 1\n\t\t\t};\n\n\t\t}\n\n\t\tthis.view.enabled = true;\n\t\tthis.view.fullWidth = fullWidth;\n\t\tthis.view.fullHeight = fullHeight;\n\t\tthis.view.offsetX = x;\n\t\tthis.view.offsetY = y;\n\t\tthis.view.width = width;\n\t\tthis.view.height = height;\n\n\t\tthis.updateProjectionMatrix();\n\n\t},\n\n\tclearViewOffset: function () {\n\n\t\tif ( this.view !== null ) {\n\n\t\t\tthis.view.enabled = false;\n\n\t\t}\n\n\t\tthis.updateProjectionMatrix();\n\n\t},\n\n\tupdateProjectionMatrix: function () {\n\n\t\tconst near = this.near;\n\t\tlet top = near * Math.tan( MathUtils.DEG2RAD * 0.5 * this.fov ) / this.zoom;\n\t\tlet height = 2 * top;\n\t\tlet width = this.aspect * height;\n\t\tlet left = - 0.5 * width;\n\t\tconst view = this.view;\n\n\t\tif ( this.view !== null && this.view.enabled ) {\n\n\t\t\tconst fullWidth = view.fullWidth,\n\t\t\t\tfullHeight = view.fullHeight;\n\n\t\t\tleft += view.offsetX * width / fullWidth;\n\t\t\ttop -= view.offsetY * height / fullHeight;\n\t\t\twidth *= view.width / fullWidth;\n\t\t\theight *= view.height / fullHeight;\n\n\t\t}\n\n\t\tconst skew = this.filmOffset;\n\t\tif ( skew !== 0 ) left += near * skew / this.getFilmWidth();\n\n\t\tthis.projectionMatrix.makePerspective( left, left + width, top, top - height, near, this.far );\n\n\t\tthis.projectionMatrixInverse.copy( this.projectionMatrix ).invert();\n\n\t},\n\n\ttoJSON: function ( meta ) {\n\n\t\tconst data = Object3D.prototype.toJSON.call( this, meta );\n\n\t\tdata.object.fov = this.fov;\n\t\tdata.object.zoom = this.zoom;\n\n\t\tdata.object.near = this.near;\n\t\tdata.object.far = this.far;\n\t\tdata.object.focus = this.focus;\n\n\t\tdata.object.aspect = this.aspect;\n\n\t\tif ( this.view !== null ) data.object.view = Object.assign( {}, this.view );\n\n\t\tdata.object.filmGauge = this.filmGauge;\n\t\tdata.object.filmOffset = this.filmOffset;\n\n\t\treturn data;\n\n\t}\n\n} );\n\nconst fov = 90, aspect = 1;\n\nfunction CubeCamera( near, far, renderTarget ) {\n\n\tObject3D.call( this );\n\n\tthis.type = 'CubeCamera';\n\n\tif ( renderTarget.isWebGLCubeRenderTarget !== true ) {\n\n\t\tconsole.error( 'THREE.CubeCamera: The constructor now expects an instance of WebGLCubeRenderTarget as third parameter.' );\n\t\treturn;\n\n\t}\n\n\tthis.renderTarget = renderTarget;\n\n\tconst cameraPX = new PerspectiveCamera( fov, aspect, near, far );\n\tcameraPX.layers = this.layers;\n\tcameraPX.up.set( 0, - 1, 0 );\n\tcameraPX.lookAt( new Vector3( 1, 0, 0 ) );\n\tthis.add( cameraPX );\n\n\tconst cameraNX = new PerspectiveCamera( fov, aspect, near, far );\n\tcameraNX.layers = this.layers;\n\tcameraNX.up.set( 0, - 1, 0 );\n\tcameraNX.lookAt( new Vector3( - 1, 0, 0 ) );\n\tthis.add( cameraNX );\n\n\tconst cameraPY = new PerspectiveCamera( fov, aspect, near, far );\n\tcameraPY.layers = this.layers;\n\tcameraPY.up.set( 0, 0, 1 );\n\tcameraPY.lookAt( new Vector3( 0, 1, 0 ) );\n\tthis.add( cameraPY );\n\n\tconst cameraNY = new PerspectiveCamera( fov, aspect, near, far );\n\tcameraNY.layers = this.layers;\n\tcameraNY.up.set( 0, 0, - 1 );\n\tcameraNY.lookAt( new Vector3( 0, - 1, 0 ) );\n\tthis.add( cameraNY );\n\n\tconst cameraPZ = new PerspectiveCamera( fov, aspect, near, far );\n\tcameraPZ.layers = this.layers;\n\tcameraPZ.up.set( 0, - 1, 0 );\n\tcameraPZ.lookAt( new Vector3( 0, 0, 1 ) );\n\tthis.add( cameraPZ );\n\n\tconst cameraNZ = new PerspectiveCamera( fov, aspect, near, far );\n\tcameraNZ.layers = this.layers;\n\tcameraNZ.up.set( 0, - 1, 0 );\n\tcameraNZ.lookAt( new Vector3( 0, 0, - 1 ) );\n\tthis.add( cameraNZ );\n\n\tthis.update = function ( renderer, scene ) {\n\n\t\tif ( this.parent === null ) this.updateMatrixWorld();\n\n\t\tconst currentXrEnabled = renderer.xr.enabled;\n\t\tconst currentRenderTarget = renderer.getRenderTarget();\n\n\t\trenderer.xr.enabled = false;\n\n\t\tconst generateMipmaps = renderTarget.texture.generateMipmaps;\n\n\t\trenderTarget.texture.generateMipmaps = false;\n\n\t\trenderer.setRenderTarget( renderTarget, 0 );\n\t\trenderer.render( scene, cameraPX );\n\n\t\trenderer.setRenderTarget( renderTarget, 1 );\n\t\trenderer.render( scene, cameraNX );\n\n\t\trenderer.setRenderTarget( renderTarget, 2 );\n\t\trenderer.render( scene, cameraPY );\n\n\t\trenderer.setRenderTarget( renderTarget, 3 );\n\t\trenderer.render( scene, cameraNY );\n\n\t\trenderer.setRenderTarget( renderTarget, 4 );\n\t\trenderer.render( scene, cameraPZ );\n\n\t\trenderTarget.texture.generateMipmaps = generateMipmaps;\n\n\t\trenderer.setRenderTarget( renderTarget, 5 );\n\t\trenderer.render( scene, cameraNZ );\n\n\t\trenderer.setRenderTarget( currentRenderTarget );\n\n\t\trenderer.xr.enabled = currentXrEnabled;\n\n\t};\n\n}\n\nCubeCamera.prototype = Object.create( Object3D.prototype );\nCubeCamera.prototype.constructor = CubeCamera;\n\nfunction CubeTexture( images, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy, encoding ) {\n\n\timages = images !== undefined ? images : [];\n\tmapping = mapping !== undefined ? mapping : CubeReflectionMapping;\n\tformat = format !== undefined ? format : RGBFormat;\n\n\tTexture.call( this, images, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy, encoding );\n\n\tthis.flipY = false;\n\n\t// Why CubeTexture._needsFlipEnvMap is necessary:\n\t//\n\t// By convention -- likely based on the RenderMan spec from the 1990's -- cube maps are specified by WebGL (and three.js)\n\t// in a coordinate system in which positive-x is to the right when looking up the positive-z axis -- in other words,\n\t// in a left-handed coordinate system. By continuing this convention, preexisting cube maps continued to render correctly.\n\n\t// three.js uses a right-handed coordinate system. So environment maps used in three.js appear to have px and nx swapped\n\t// and the flag _needsFlipEnvMap controls this conversion. The flip is not required (and thus _needsFlipEnvMap is set to false)\n\t// when using WebGLCubeRenderTarget.texture as a cube texture.\n\n\tthis._needsFlipEnvMap = true;\n\n}\n\nCubeTexture.prototype = Object.create( Texture.prototype );\nCubeTexture.prototype.constructor = CubeTexture;\n\nCubeTexture.prototype.isCubeTexture = true;\n\nObject.defineProperty( CubeTexture.prototype, 'images', {\n\n\tget: function () {\n\n\t\treturn this.image;\n\n\t},\n\n\tset: function ( value ) {\n\n\t\tthis.image = value;\n\n\t}\n\n} );\n\nclass WebGLCubeRenderTarget extends WebGLRenderTarget {\n\n\tconstructor( size, options, dummy ) {\n\n\t\tif ( Number.isInteger( options ) ) {\n\n\t\t\tconsole.warn( 'THREE.WebGLCubeRenderTarget: constructor signature is now WebGLCubeRenderTarget( size, options )' );\n\n\t\t\toptions = dummy;\n\n\t\t}\n\n\t\tsuper( size, size, options );\n\n\t\tObject.defineProperty( this, 'isWebGLCubeRenderTarget', { value: true } );\n\n\t\toptions = options || {};\n\n\t\tthis.texture = new CubeTexture( undefined, options.mapping, options.wrapS, options.wrapT, options.magFilter, options.minFilter, options.format, options.type, options.anisotropy, options.encoding );\n\n\t\tthis.texture._needsFlipEnvMap = false;\n\n\t}\n\n\tfromEquirectangularTexture( renderer, texture ) {\n\n\t\tthis.texture.type = texture.type;\n\t\tthis.texture.format = RGBAFormat; // see #18859\n\t\tthis.texture.encoding = texture.encoding;\n\n\t\tthis.texture.generateMipmaps = texture.generateMipmaps;\n\t\tthis.texture.minFilter = texture.minFilter;\n\t\tthis.texture.magFilter = texture.magFilter;\n\n\t\tconst shader = {\n\n\t\t\tuniforms: {\n\t\t\t\ttEquirect: { value: null },\n\t\t\t},\n\n\t\t\tvertexShader: /* glsl */`\n\n\t\t\t\tvarying vec3 vWorldDirection;\n\n\t\t\t\tvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\n\n\t\t\t\t\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\n\n\t\t\t\t}\n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tvWorldDirection = transformDirection( position, modelMatrix );\n\n\t\t\t\t\t#include \n\t\t\t\t\t#include \n\n\t\t\t\t}\n\t\t\t`,\n\n\t\t\tfragmentShader: /* glsl */`\n\n\t\t\t\tuniform sampler2D tEquirect;\n\n\t\t\t\tvarying vec3 vWorldDirection;\n\n\t\t\t\t#include \n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tvec3 direction = normalize( vWorldDirection );\n\n\t\t\t\t\tvec2 sampleUV = equirectUv( direction );\n\n\t\t\t\t\tgl_FragColor = texture2D( tEquirect, sampleUV );\n\n\t\t\t\t}\n\t\t\t`\n\t\t};\n\n\t\tconst geometry = new BoxGeometry( 5, 5, 5 );\n\n\t\tconst material = new ShaderMaterial( {\n\n\t\t\tname: 'CubemapFromEquirect',\n\n\t\t\tuniforms: cloneUniforms( shader.uniforms ),\n\t\t\tvertexShader: shader.vertexShader,\n\t\t\tfragmentShader: shader.fragmentShader,\n\t\t\tside: BackSide,\n\t\t\tblending: NoBlending\n\n\t\t} );\n\n\t\tmaterial.uniforms.tEquirect.value = texture;\n\n\t\tconst mesh = new Mesh( geometry, material );\n\n\t\tconst currentMinFilter = texture.minFilter;\n\n\t\t// Avoid blurred poles\n\t\tif ( texture.minFilter === LinearMipmapLinearFilter ) texture.minFilter = LinearFilter;\n\n\t\tconst camera = new CubeCamera( 1, 10, this );\n\t\tcamera.update( renderer, mesh );\n\n\t\ttexture.minFilter = currentMinFilter;\n\n\t\tmesh.geometry.dispose();\n\t\tmesh.material.dispose();\n\n\t\treturn this;\n\n\t}\n\n\tclear( renderer, color, depth, stencil ) {\n\n\t\tconst currentRenderTarget = renderer.getRenderTarget();\n\n\t\tfor ( let i = 0; i < 6; i ++ ) {\n\n\t\t\trenderer.setRenderTarget( this, i );\n\n\t\t\trenderer.clear( color, depth, stencil );\n\n\t\t}\n\n\t\trenderer.setRenderTarget( currentRenderTarget );\n\n\t}\n\n}\n\nfunction DataTexture( data, width, height, format, type, mapping, wrapS, wrapT, magFilter, minFilter, anisotropy, encoding ) {\n\n\tTexture.call( this, null, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy, encoding );\n\n\tthis.image = { data: data || null, width: width || 1, height: height || 1 };\n\n\tthis.magFilter = magFilter !== undefined ? magFilter : NearestFilter;\n\tthis.minFilter = minFilter !== undefined ? minFilter : NearestFilter;\n\n\tthis.generateMipmaps = false;\n\tthis.flipY = false;\n\tthis.unpackAlignment = 1;\n\n\tthis.needsUpdate = true;\n\n}\n\nDataTexture.prototype = Object.create( Texture.prototype );\nDataTexture.prototype.constructor = DataTexture;\n\nDataTexture.prototype.isDataTexture = true;\n\nconst _sphere$1 = /*@__PURE__*/ new Sphere();\nconst _vector$5 = /*@__PURE__*/ new Vector3();\n\nclass Frustum {\n\n\tconstructor( p0, p1, p2, p3, p4, p5 ) {\n\n\t\tthis.planes = [\n\n\t\t\t( p0 !== undefined ) ? p0 : new Plane(),\n\t\t\t( p1 !== undefined ) ? p1 : new Plane(),\n\t\t\t( p2 !== undefined ) ? p2 : new Plane(),\n\t\t\t( p3 !== undefined ) ? p3 : new Plane(),\n\t\t\t( p4 !== undefined ) ? p4 : new Plane(),\n\t\t\t( p5 !== undefined ) ? p5 : new Plane()\n\n\t\t];\n\n\t}\n\n\tset( p0, p1, p2, p3, p4, p5 ) {\n\n\t\tconst planes = this.planes;\n\n\t\tplanes[ 0 ].copy( p0 );\n\t\tplanes[ 1 ].copy( p1 );\n\t\tplanes[ 2 ].copy( p2 );\n\t\tplanes[ 3 ].copy( p3 );\n\t\tplanes[ 4 ].copy( p4 );\n\t\tplanes[ 5 ].copy( p5 );\n\n\t\treturn this;\n\n\t}\n\n\tclone() {\n\n\t\treturn new this.constructor().copy( this );\n\n\t}\n\n\tcopy( frustum ) {\n\n\t\tconst planes = this.planes;\n\n\t\tfor ( let i = 0; i < 6; i ++ ) {\n\n\t\t\tplanes[ i ].copy( frustum.planes[ i ] );\n\n\t\t}\n\n\t\treturn this;\n\n\t}\n\n\tsetFromProjectionMatrix( m ) {\n\n\t\tconst planes = this.planes;\n\t\tconst me = m.elements;\n\t\tconst me0 = me[ 0 ], me1 = me[ 1 ], me2 = me[ 2 ], me3 = me[ 3 ];\n\t\tconst me4 = me[ 4 ], me5 = me[ 5 ], me6 = me[ 6 ], me7 = me[ 7 ];\n\t\tconst me8 = me[ 8 ], me9 = me[ 9 ], me10 = me[ 10 ], me11 = me[ 11 ];\n\t\tconst me12 = me[ 12 ], me13 = me[ 13 ], me14 = me[ 14 ], me15 = me[ 15 ];\n\n\t\tplanes[ 0 ].setComponents( me3 - me0, me7 - me4, me11 - me8, me15 - me12 ).normalize();\n\t\tplanes[ 1 ].setComponents( me3 + me0, me7 + me4, me11 + me8, me15 + me12 ).normalize();\n\t\tplanes[ 2 ].setComponents( me3 + me1, me7 + me5, me11 + me9, me15 + me13 ).normalize();\n\t\tplanes[ 3 ].setComponents( me3 - me1, me7 - me5, me11 - me9, me15 - me13 ).normalize();\n\t\tplanes[ 4 ].setComponents( me3 - me2, me7 - me6, me11 - me10, me15 - me14 ).normalize();\n\t\tplanes[ 5 ].setComponents( me3 + me2, me7 + me6, me11 + me10, me15 + me14 ).normalize();\n\n\t\treturn this;\n\n\t}\n\n\tintersectsObject( object ) {\n\n\t\tconst geometry = object.geometry;\n\n\t\tif ( geometry.boundingSphere === null ) geometry.computeBoundingSphere();\n\n\t\t_sphere$1.copy( geometry.boundingSphere ).applyMatrix4( object.matrixWorld );\n\n\t\treturn this.intersectsSphere( _sphere$1 );\n\n\t}\n\n\tintersectsSprite( sprite ) {\n\n\t\t_sphere$1.center.set( 0, 0, 0 );\n\t\t_sphere$1.radius = 0.7071067811865476;\n\t\t_sphere$1.applyMatrix4( sprite.matrixWorld );\n\n\t\treturn this.intersectsSphere( _sphere$1 );\n\n\t}\n\n\tintersectsSphere( sphere ) {\n\n\t\tconst planes = this.planes;\n\t\tconst center = sphere.center;\n\t\tconst negRadius = - sphere.radius;\n\n\t\tfor ( let i = 0; i < 6; i ++ ) {\n\n\t\t\tconst distance = planes[ i ].distanceToPoint( center );\n\n\t\t\tif ( distance < negRadius ) {\n\n\t\t\t\treturn false;\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn true;\n\n\t}\n\n\tintersectsBox( box ) {\n\n\t\tconst planes = this.planes;\n\n\t\tfor ( let i = 0; i < 6; i ++ ) {\n\n\t\t\tconst plane = planes[ i ];\n\n\t\t\t// corner at max distance\n\n\t\t\t_vector$5.x = plane.normal.x > 0 ? box.max.x : box.min.x;\n\t\t\t_vector$5.y = plane.normal.y > 0 ? box.max.y : box.min.y;\n\t\t\t_vector$5.z = plane.normal.z > 0 ? box.max.z : box.min.z;\n\n\t\t\tif ( plane.distanceToPoint( _vector$5 ) < 0 ) {\n\n\t\t\t\treturn false;\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn true;\n\n\t}\n\n\tcontainsPoint( point ) {\n\n\t\tconst planes = this.planes;\n\n\t\tfor ( let i = 0; i < 6; i ++ ) {\n\n\t\t\tif ( planes[ i ].distanceToPoint( point ) < 0 ) {\n\n\t\t\t\treturn false;\n\n\t\t\t}\n\n\t\t}\n\n\t\treturn true;\n\n\t}\n\n}\n\nfunction WebGLAnimation() {\n\n\tlet context = null;\n\tlet isAnimating = false;\n\tlet animationLoop = null;\n\tlet requestId = null;\n\n\tfunction onAnimationFrame( time, frame ) {\n\n\t\tanimationLoop( time, frame );\n\n\t\trequestId = context.requestAnimationFrame( onAnimationFrame );\n\n\t}\n\n\treturn {\n\n\t\tstart: function () {\n\n\t\t\tif ( isAnimating === true ) return;\n\t\t\tif ( animationLoop === null ) return;\n\n\t\t\trequestId = context.requestAnimationFrame( onAnimationFrame );\n\n\t\t\tisAnimating = true;\n\n\t\t},\n\n\t\tstop: function () {\n\n\t\t\tcontext.cancelAnimationFrame( requestId );\n\n\t\t\tisAnimating = false;\n\n\t\t},\n\n\t\tsetAnimationLoop: function ( callback ) {\n\n\t\t\tanimationLoop = callback;\n\n\t\t},\n\n\t\tsetContext: function ( value ) {\n\n\t\t\tcontext = value;\n\n\t\t}\n\n\t};\n\n}\n\nfunction WebGLAttributes( gl, capabilities ) {\n\n\tconst isWebGL2 = capabilities.isWebGL2;\n\n\tconst buffers = new WeakMap();\n\n\tfunction createBuffer( attribute, bufferType ) {\n\n\t\tconst array = attribute.array;\n\t\tconst usage = attribute.usage;\n\n\t\tconst buffer = gl.createBuffer();\n\n\t\tgl.bindBuffer( bufferType, buffer );\n\t\tgl.bufferData( bufferType, array, usage );\n\n\t\tattribute.onUploadCallback();\n\n\t\tlet type = 5126;\n\n\t\tif ( array instanceof Float32Array ) {\n\n\t\t\ttype = 5126;\n\n\t\t} else if ( array instanceof Float64Array ) {\n\n\t\t\tconsole.warn( 'THREE.WebGLAttributes: Unsupported data buffer format: Float64Array.' );\n\n\t\t} else if ( array instanceof Uint16Array ) {\n\n\t\t\tif ( attribute.isFloat16BufferAttribute ) {\n\n\t\t\t\tif ( isWebGL2 ) {\n\n\t\t\t\t\ttype = 5131;\n\n\t\t\t\t} else {\n\n\t\t\t\t\tconsole.warn( 'THREE.WebGLAttributes: Usage of Float16BufferAttribute requires WebGL2.' );\n\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\ttype = 5123;\n\n\t\t\t}\n\n\t\t} else if ( array instanceof Int16Array ) {\n\n\t\t\ttype = 5122;\n\n\t\t} else if ( array instanceof Uint32Array ) {\n\n\t\t\ttype = 5125;\n\n\t\t} else if ( array instanceof Int32Array ) {\n\n\t\t\ttype = 5124;\n\n\t\t} else if ( array instanceof Int8Array ) {\n\n\t\t\ttype = 5120;\n\n\t\t} else if ( array instanceof Uint8Array ) {\n\n\t\t\ttype = 5121;\n\n\t\t}\n\n\t\treturn {\n\t\t\tbuffer: buffer,\n\t\t\ttype: type,\n\t\t\tbytesPerElement: array.BYTES_PER_ELEMENT,\n\t\t\tversion: attribute.version\n\t\t};\n\n\t}\n\n\tfunction updateBuffer( buffer, attribute, bufferType ) {\n\n\t\tconst array = attribute.array;\n\t\tconst updateRange = attribute.updateRange;\n\n\t\tgl.bindBuffer( bufferType, buffer );\n\n\t\tif ( updateRange.count === - 1 ) {\n\n\t\t\t// Not using update ranges\n\n\t\t\tgl.bufferSubData( bufferType, 0, array );\n\n\t\t} else {\n\n\t\t\tif ( isWebGL2 ) {\n\n\t\t\t\tgl.bufferSubData( bufferType, updateRange.offset * array.BYTES_PER_ELEMENT,\n\t\t\t\t\tarray, updateRange.offset, updateRange.count );\n\n\t\t\t} else {\n\n\t\t\t\tgl.bufferSubData( bufferType, updateRange.offset * array.BYTES_PER_ELEMENT,\n\t\t\t\t\tarray.subarray( updateRange.offset, updateRange.offset + updateRange.count ) );\n\n\t\t\t}\n\n\t\t\tupdateRange.count = - 1; // reset range\n\n\t\t}\n\n\t}\n\n\t//\n\n\tfunction get( attribute ) {\n\n\t\tif ( attribute.isInterleavedBufferAttribute ) attribute = attribute.data;\n\n\t\treturn buffers.get( attribute );\n\n\t}\n\n\tfunction remove( attribute ) {\n\n\t\tif ( attribute.isInterleavedBufferAttribute ) attribute = attribute.data;\n\n\t\tconst data = buffers.get( attribute );\n\n\t\tif ( data ) {\n\n\t\t\tgl.deleteBuffer( data.buffer );\n\n\t\t\tbuffers.delete( attribute );\n\n\t\t}\n\n\t}\n\n\tfunction update( attribute, bufferType ) {\n\n\t\tif ( attribute.isGLBufferAttribute ) {\n\n\t\t\tconst cached = buffers.get( attribute );\n\n\t\t\tif ( ! cached || cached.version < attribute.version ) {\n\n\t\t\t\tbuffers.set( attribute, {\n\t\t\t\t\tbuffer: attribute.buffer,\n\t\t\t\t\ttype: attribute.type,\n\t\t\t\t\tbytesPerElement: attribute.elementSize,\n\t\t\t\t\tversion: attribute.version\n\t\t\t\t} );\n\n\t\t\t}\n\n\t\t\treturn;\n\n\t\t}\n\n\t\tif ( attribute.isInterleavedBufferAttribute ) attribute = attribute.data;\n\n\t\tconst data = buffers.get( attribute );\n\n\t\tif ( data === undefined ) {\n\n\t\t\tbuffers.set( attribute, createBuffer( attribute, bufferType ) );\n\n\t\t} else if ( data.version < attribute.version ) {\n\n\t\t\tupdateBuffer( data.buffer, attribute, bufferType );\n\n\t\t\tdata.version = attribute.version;\n\n\t\t}\n\n\t}\n\n\treturn {\n\n\t\tget: get,\n\t\tremove: remove,\n\t\tupdate: update\n\n\t};\n\n}\n\nclass PlaneGeometry extends BufferGeometry {\n\n\tconstructor( width = 1, height = 1, widthSegments = 1, heightSegments = 1 ) {\n\n\t\tsuper();\n\t\tthis.type = 'PlaneGeometry';\n\n\t\tthis.parameters = {\n\t\t\twidth: width,\n\t\t\theight: height,\n\t\t\twidthSegments: widthSegments,\n\t\t\theightSegments: heightSegments\n\t\t};\n\n\t\tconst width_half = width / 2;\n\t\tconst height_half = height / 2;\n\n\t\tconst gridX = Math.floor( widthSegments );\n\t\tconst gridY = Math.floor( heightSegments );\n\n\t\tconst gridX1 = gridX + 1;\n\t\tconst gridY1 = gridY + 1;\n\n\t\tconst segment_width = width / gridX;\n\t\tconst segment_height = height / gridY;\n\n\t\t//\n\n\t\tconst indices = [];\n\t\tconst vertices = [];\n\t\tconst normals = [];\n\t\tconst uvs = [];\n\n\t\tfor ( let iy = 0; iy < gridY1; iy ++ ) {\n\n\t\t\tconst y = iy * segment_height - height_half;\n\n\t\t\tfor ( let ix = 0; ix < gridX1; ix ++ ) {\n\n\t\t\t\tconst x = ix * segment_width - width_half;\n\n\t\t\t\tvertices.push( x, - y, 0 );\n\n\t\t\t\tnormals.push( 0, 0, 1 );\n\n\t\t\t\tuvs.push( ix / gridX );\n\t\t\t\tuvs.push( 1 - ( iy / gridY ) );\n\n\t\t\t}\n\n\t\t}\n\n\t\tfor ( let iy = 0; iy < gridY; iy ++ ) {\n\n\t\t\tfor ( let ix = 0; ix < gridX; ix ++ ) {\n\n\t\t\t\tconst a = ix + gridX1 * iy;\n\t\t\t\tconst b = ix + gridX1 * ( iy + 1 );\n\t\t\t\tconst c = ( ix + 1 ) + gridX1 * ( iy + 1 );\n\t\t\t\tconst d = ( ix + 1 ) + gridX1 * iy;\n\n\t\t\t\tindices.push( a, b, d );\n\t\t\t\tindices.push( b, c, d );\n\n\t\t\t}\n\n\t\t}\n\n\t\tthis.setIndex( indices );\n\t\tthis.setAttribute( 'position', new Float32BufferAttribute( vertices, 3 ) );\n\t\tthis.setAttribute( 'normal', new Float32BufferAttribute( normals, 3 ) );\n\t\tthis.setAttribute( 'uv', new Float32BufferAttribute( uvs, 2 ) );\n\n\t}\n\n}\n\nvar alphamap_fragment = \"#ifdef USE_ALPHAMAP\\n\\tdiffuseColor.a *= texture2D( alphaMap, vUv ).g;\\n#endif\";\n\nvar alphamap_pars_fragment = \"#ifdef USE_ALPHAMAP\\n\\tuniform sampler2D alphaMap;\\n#endif\";\n\nvar alphatest_fragment = \"#ifdef ALPHATEST\\n\\tif ( diffuseColor.a < ALPHATEST ) discard;\\n#endif\";\n\nvar aomap_fragment = \"#ifdef USE_AOMAP\\n\\tfloat ambientOcclusion = ( texture2D( aoMap, vUv2 ).r - 1.0 ) * aoMapIntensity + 1.0;\\n\\treflectedLight.indirectDiffuse *= ambientOcclusion;\\n\\t#if defined( USE_ENVMAP ) && defined( STANDARD )\\n\\t\\tfloat dotNV = saturate( dot( geometry.normal, geometry.viewDir ) );\\n\\t\\treflectedLight.indirectSpecular *= computeSpecularOcclusion( dotNV, ambientOcclusion, material.specularRoughness );\\n\\t#endif\\n#endif\";\n\nvar aomap_pars_fragment = \"#ifdef USE_AOMAP\\n\\tuniform sampler2D aoMap;\\n\\tuniform float aoMapIntensity;\\n#endif\";\n\nvar begin_vertex = \"vec3 transformed = vec3( position );\";\n\nvar beginnormal_vertex = \"vec3 objectNormal = vec3( normal );\\n#ifdef USE_TANGENT\\n\\tvec3 objectTangent = vec3( tangent.xyz );\\n#endif\";\n\nvar bsdfs = \"vec2 integrateSpecularBRDF( const in float dotNV, const in float roughness ) {\\n\\tconst vec4 c0 = vec4( - 1, - 0.0275, - 0.572, 0.022 );\\n\\tconst vec4 c1 = vec4( 1, 0.0425, 1.04, - 0.04 );\\n\\tvec4 r = roughness * c0 + c1;\\n\\tfloat a004 = min( r.x * r.x, exp2( - 9.28 * dotNV ) ) * r.x + r.y;\\n\\treturn vec2( -1.04, 1.04 ) * a004 + r.zw;\\n}\\nfloat punctualLightIntensityToIrradianceFactor( const in float lightDistance, const in float cutoffDistance, const in float decayExponent ) {\\n#if defined ( PHYSICALLY_CORRECT_LIGHTS )\\n\\tfloat distanceFalloff = 1.0 / max( pow( lightDistance, decayExponent ), 0.01 );\\n\\tif( cutoffDistance > 0.0 ) {\\n\\t\\tdistanceFalloff *= pow2( saturate( 1.0 - pow4( lightDistance / cutoffDistance ) ) );\\n\\t}\\n\\treturn distanceFalloff;\\n#else\\n\\tif( cutoffDistance > 0.0 && decayExponent > 0.0 ) {\\n\\t\\treturn pow( saturate( -lightDistance / cutoffDistance + 1.0 ), decayExponent );\\n\\t}\\n\\treturn 1.0;\\n#endif\\n}\\nvec3 BRDF_Diffuse_Lambert( const in vec3 diffuseColor ) {\\n\\treturn RECIPROCAL_PI * diffuseColor;\\n}\\nvec3 F_Schlick( const in vec3 specularColor, const in float dotLH ) {\\n\\tfloat fresnel = exp2( ( -5.55473 * dotLH - 6.98316 ) * dotLH );\\n\\treturn ( 1.0 - specularColor ) * fresnel + specularColor;\\n}\\nvec3 F_Schlick_RoughnessDependent( const in vec3 F0, const in float dotNV, const in float roughness ) {\\n\\tfloat fresnel = exp2( ( -5.55473 * dotNV - 6.98316 ) * dotNV );\\n\\tvec3 Fr = max( vec3( 1.0 - roughness ), F0 ) - F0;\\n\\treturn Fr * fresnel + F0;\\n}\\nfloat G_GGX_Smith( const in float alpha, const in float dotNL, const in float dotNV ) {\\n\\tfloat a2 = pow2( alpha );\\n\\tfloat gl = dotNL + sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );\\n\\tfloat gv = dotNV + sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) );\\n\\treturn 1.0 / ( gl * gv );\\n}\\nfloat G_GGX_SmithCorrelated( const in float alpha, const in float dotNL, const in float dotNV ) {\\n\\tfloat a2 = pow2( alpha );\\n\\tfloat gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) );\\n\\tfloat gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );\\n\\treturn 0.5 / max( gv + gl, EPSILON );\\n}\\nfloat D_GGX( const in float alpha, const in float dotNH ) {\\n\\tfloat a2 = pow2( alpha );\\n\\tfloat denom = pow2( dotNH ) * ( a2 - 1.0 ) + 1.0;\\n\\treturn RECIPROCAL_PI * a2 / pow2( denom );\\n}\\nvec3 BRDF_Specular_GGX( const in IncidentLight incidentLight, const in vec3 viewDir, const in vec3 normal, const in vec3 specularColor, const in float roughness ) {\\n\\tfloat alpha = pow2( roughness );\\n\\tvec3 halfDir = normalize( incidentLight.direction + viewDir );\\n\\tfloat dotNL = saturate( dot( normal, incidentLight.direction ) );\\n\\tfloat dotNV = saturate( dot( normal, viewDir ) );\\n\\tfloat dotNH = saturate( dot( normal, halfDir ) );\\n\\tfloat dotLH = saturate( dot( incidentLight.direction, halfDir ) );\\n\\tvec3 F = F_Schlick( specularColor, dotLH );\\n\\tfloat G = G_GGX_SmithCorrelated( alpha, dotNL, dotNV );\\n\\tfloat D = D_GGX( alpha, dotNH );\\n\\treturn F * ( G * D );\\n}\\nvec2 LTC_Uv( const in vec3 N, const in vec3 V, const in float roughness ) {\\n\\tconst float LUT_SIZE = 64.0;\\n\\tconst float LUT_SCALE = ( LUT_SIZE - 1.0 ) / LUT_SIZE;\\n\\tconst float LUT_BIAS = 0.5 / LUT_SIZE;\\n\\tfloat dotNV = saturate( dot( N, V ) );\\n\\tvec2 uv = vec2( roughness, sqrt( 1.0 - dotNV ) );\\n\\tuv = uv * LUT_SCALE + LUT_BIAS;\\n\\treturn uv;\\n}\\nfloat LTC_ClippedSphereFormFactor( const in vec3 f ) {\\n\\tfloat l = length( f );\\n\\treturn max( ( l * l + f.z ) / ( l + 1.0 ), 0.0 );\\n}\\nvec3 LTC_EdgeVectorFormFactor( const in vec3 v1, const in vec3 v2 ) {\\n\\tfloat x = dot( v1, v2 );\\n\\tfloat y = abs( x );\\n\\tfloat a = 0.8543985 + ( 0.4965155 + 0.0145206 * y ) * y;\\n\\tfloat b = 3.4175940 + ( 4.1616724 + y ) * y;\\n\\tfloat v = a / b;\\n\\tfloat theta_sintheta = ( x > 0.0 ) ? v : 0.5 * inversesqrt( max( 1.0 - x * x, 1e-7 ) ) - v;\\n\\treturn cross( v1, v2 ) * theta_sintheta;\\n}\\nvec3 LTC_Evaluate( const in vec3 N, const in vec3 V, const in vec3 P, const in mat3 mInv, const in vec3 rectCoords[ 4 ] ) {\\n\\tvec3 v1 = rectCoords[ 1 ] - rectCoords[ 0 ];\\n\\tvec3 v2 = rectCoords[ 3 ] - rectCoords[ 0 ];\\n\\tvec3 lightNormal = cross( v1, v2 );\\n\\tif( dot( lightNormal, P - rectCoords[ 0 ] ) < 0.0 ) return vec3( 0.0 );\\n\\tvec3 T1, T2;\\n\\tT1 = normalize( V - N * dot( V, N ) );\\n\\tT2 = - cross( N, T1 );\\n\\tmat3 mat = mInv * transposeMat3( mat3( T1, T2, N ) );\\n\\tvec3 coords[ 4 ];\\n\\tcoords[ 0 ] = mat * ( rectCoords[ 0 ] - P );\\n\\tcoords[ 1 ] = mat * ( rectCoords[ 1 ] - P );\\n\\tcoords[ 2 ] = mat * ( rectCoords[ 2 ] - P );\\n\\tcoords[ 3 ] = mat * ( rectCoords[ 3 ] - P );\\n\\tcoords[ 0 ] = normalize( coords[ 0 ] );\\n\\tcoords[ 1 ] = normalize( coords[ 1 ] );\\n\\tcoords[ 2 ] = normalize( coords[ 2 ] );\\n\\tcoords[ 3 ] = normalize( coords[ 3 ] );\\n\\tvec3 vectorFormFactor = vec3( 0.0 );\\n\\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 0 ], coords[ 1 ] );\\n\\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 1 ], coords[ 2 ] );\\n\\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 2 ], coords[ 3 ] );\\n\\tvectorFormFactor += LTC_EdgeVectorFormFactor( coords[ 3 ], coords[ 0 ] );\\n\\tfloat result = LTC_ClippedSphereFormFactor( vectorFormFactor );\\n\\treturn vec3( result );\\n}\\nvec3 BRDF_Specular_GGX_Environment( const in vec3 viewDir, const in vec3 normal, const in vec3 specularColor, const in float roughness ) {\\n\\tfloat dotNV = saturate( dot( normal, viewDir ) );\\n\\tvec2 brdf = integrateSpecularBRDF( dotNV, roughness );\\n\\treturn specularColor * brdf.x + brdf.y;\\n}\\nvoid BRDF_Specular_Multiscattering_Environment( const in GeometricContext geometry, const in vec3 specularColor, const in float roughness, inout vec3 singleScatter, inout vec3 multiScatter ) {\\n\\tfloat dotNV = saturate( dot( geometry.normal, geometry.viewDir ) );\\n\\tvec3 F = F_Schlick_RoughnessDependent( specularColor, dotNV, roughness );\\n\\tvec2 brdf = integrateSpecularBRDF( dotNV, roughness );\\n\\tvec3 FssEss = F * brdf.x + brdf.y;\\n\\tfloat Ess = brdf.x + brdf.y;\\n\\tfloat Ems = 1.0 - Ess;\\n\\tvec3 Favg = specularColor + ( 1.0 - specularColor ) * 0.047619;\\tvec3 Fms = FssEss * Favg / ( 1.0 - Ems * Favg );\\n\\tsingleScatter += FssEss;\\n\\tmultiScatter += Fms * Ems;\\n}\\nfloat G_BlinnPhong_Implicit( ) {\\n\\treturn 0.25;\\n}\\nfloat D_BlinnPhong( const in float shininess, const in float dotNH ) {\\n\\treturn RECIPROCAL_PI * ( shininess * 0.5 + 1.0 ) * pow( dotNH, shininess );\\n}\\nvec3 BRDF_Specular_BlinnPhong( const in IncidentLight incidentLight, const in GeometricContext geometry, const in vec3 specularColor, const in float shininess ) {\\n\\tvec3 halfDir = normalize( incidentLight.direction + geometry.viewDir );\\n\\tfloat dotNH = saturate( dot( geometry.normal, halfDir ) );\\n\\tfloat dotLH = saturate( dot( incidentLight.direction, halfDir ) );\\n\\tvec3 F = F_Schlick( specularColor, dotLH );\\n\\tfloat G = G_BlinnPhong_Implicit( );\\n\\tfloat D = D_BlinnPhong( shininess, dotNH );\\n\\treturn F * ( G * D );\\n}\\nfloat GGXRoughnessToBlinnExponent( const in float ggxRoughness ) {\\n\\treturn ( 2.0 / pow2( ggxRoughness + 0.0001 ) - 2.0 );\\n}\\nfloat BlinnExponentToGGXRoughness( const in float blinnExponent ) {\\n\\treturn sqrt( 2.0 / ( blinnExponent + 2.0 ) );\\n}\\n#if defined( USE_SHEEN )\\nfloat D_Charlie(float roughness, float NoH) {\\n\\tfloat invAlpha = 1.0 / roughness;\\n\\tfloat cos2h = NoH * NoH;\\n\\tfloat sin2h = max(1.0 - cos2h, 0.0078125);\\treturn (2.0 + invAlpha) * pow(sin2h, invAlpha * 0.5) / (2.0 * PI);\\n}\\nfloat V_Neubelt(float NoV, float NoL) {\\n\\treturn saturate(1.0 / (4.0 * (NoL + NoV - NoL * NoV)));\\n}\\nvec3 BRDF_Specular_Sheen( const in float roughness, const in vec3 L, const in GeometricContext geometry, vec3 specularColor ) {\\n\\tvec3 N = geometry.normal;\\n\\tvec3 V = geometry.viewDir;\\n\\tvec3 H = normalize( V + L );\\n\\tfloat dotNH = saturate( dot( N, H ) );\\n\\treturn specularColor * D_Charlie( roughness, dotNH ) * V_Neubelt( dot(N, V), dot(N, L) );\\n}\\n#endif\";\n\nvar bumpmap_pars_fragment = \"#ifdef USE_BUMPMAP\\n\\tuniform sampler2D bumpMap;\\n\\tuniform float bumpScale;\\n\\tvec2 dHdxy_fwd() {\\n\\t\\tvec2 dSTdx = dFdx( vUv );\\n\\t\\tvec2 dSTdy = dFdy( vUv );\\n\\t\\tfloat Hll = bumpScale * texture2D( bumpMap, vUv ).x;\\n\\t\\tfloat dBx = bumpScale * texture2D( bumpMap, vUv + dSTdx ).x - Hll;\\n\\t\\tfloat dBy = bumpScale * texture2D( bumpMap, vUv + dSTdy ).x - Hll;\\n\\t\\treturn vec2( dBx, dBy );\\n\\t}\\n\\tvec3 perturbNormalArb( vec3 surf_pos, vec3 surf_norm, vec2 dHdxy ) {\\n\\t\\tvec3 vSigmaX = vec3( dFdx( surf_pos.x ), dFdx( surf_pos.y ), dFdx( surf_pos.z ) );\\n\\t\\tvec3 vSigmaY = vec3( dFdy( surf_pos.x ), dFdy( surf_pos.y ), dFdy( surf_pos.z ) );\\n\\t\\tvec3 vN = surf_norm;\\n\\t\\tvec3 R1 = cross( vSigmaY, vN );\\n\\t\\tvec3 R2 = cross( vN, vSigmaX );\\n\\t\\tfloat fDet = dot( vSigmaX, R1 );\\n\\t\\tfDet *= ( float( gl_FrontFacing ) * 2.0 - 1.0 );\\n\\t\\tvec3 vGrad = sign( fDet ) * ( dHdxy.x * R1 + dHdxy.y * R2 );\\n\\t\\treturn normalize( abs( fDet ) * surf_norm - vGrad );\\n\\t}\\n#endif\";\n\nvar clipping_planes_fragment = \"#if NUM_CLIPPING_PLANES > 0\\n\\tvec4 plane;\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < UNION_CLIPPING_PLANES; i ++ ) {\\n\\t\\tplane = clippingPlanes[ i ];\\n\\t\\tif ( dot( vClipPosition, plane.xyz ) > plane.w ) discard;\\n\\t}\\n\\t#pragma unroll_loop_end\\n\\t#if UNION_CLIPPING_PLANES < NUM_CLIPPING_PLANES\\n\\t\\tbool clipped = true;\\n\\t\\t#pragma unroll_loop_start\\n\\t\\tfor ( int i = UNION_CLIPPING_PLANES; i < NUM_CLIPPING_PLANES; i ++ ) {\\n\\t\\t\\tplane = clippingPlanes[ i ];\\n\\t\\t\\tclipped = ( dot( vClipPosition, plane.xyz ) > plane.w ) && clipped;\\n\\t\\t}\\n\\t\\t#pragma unroll_loop_end\\n\\t\\tif ( clipped ) discard;\\n\\t#endif\\n#endif\";\n\nvar clipping_planes_pars_fragment = \"#if NUM_CLIPPING_PLANES > 0\\n\\tvarying vec3 vClipPosition;\\n\\tuniform vec4 clippingPlanes[ NUM_CLIPPING_PLANES ];\\n#endif\";\n\nvar clipping_planes_pars_vertex = \"#if NUM_CLIPPING_PLANES > 0\\n\\tvarying vec3 vClipPosition;\\n#endif\";\n\nvar clipping_planes_vertex = \"#if NUM_CLIPPING_PLANES > 0\\n\\tvClipPosition = - mvPosition.xyz;\\n#endif\";\n\nvar color_fragment = \"#ifdef USE_COLOR\\n\\tdiffuseColor.rgb *= vColor;\\n#endif\";\n\nvar color_pars_fragment = \"#ifdef USE_COLOR\\n\\tvarying vec3 vColor;\\n#endif\";\n\nvar color_pars_vertex = \"#if defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR )\\n\\tvarying vec3 vColor;\\n#endif\";\n\nvar color_vertex = \"#if defined( USE_COLOR ) || defined( USE_INSTANCING_COLOR )\\n\\tvColor = vec3( 1.0 );\\n#endif\\n#ifdef USE_COLOR\\n\\tvColor.xyz *= color.xyz;\\n#endif\\n#ifdef USE_INSTANCING_COLOR\\n\\tvColor.xyz *= instanceColor.xyz;\\n#endif\";\n\nvar common = \"#define PI 3.141592653589793\\n#define PI2 6.283185307179586\\n#define PI_HALF 1.5707963267948966\\n#define RECIPROCAL_PI 0.3183098861837907\\n#define RECIPROCAL_PI2 0.15915494309189535\\n#define EPSILON 1e-6\\n#ifndef saturate\\n#define saturate(a) clamp( a, 0.0, 1.0 )\\n#endif\\n#define whiteComplement(a) ( 1.0 - saturate( a ) )\\nfloat pow2( const in float x ) { return x*x; }\\nfloat pow3( const in float x ) { return x*x*x; }\\nfloat pow4( const in float x ) { float x2 = x*x; return x2*x2; }\\nfloat average( const in vec3 color ) { return dot( color, vec3( 0.3333 ) ); }\\nhighp float rand( const in vec2 uv ) {\\n\\tconst highp float a = 12.9898, b = 78.233, c = 43758.5453;\\n\\thighp float dt = dot( uv.xy, vec2( a,b ) ), sn = mod( dt, PI );\\n\\treturn fract(sin(sn) * c);\\n}\\n#ifdef HIGH_PRECISION\\n\\tfloat precisionSafeLength( vec3 v ) { return length( v ); }\\n#else\\n\\tfloat max3( vec3 v ) { return max( max( v.x, v.y ), v.z ); }\\n\\tfloat precisionSafeLength( vec3 v ) {\\n\\t\\tfloat maxComponent = max3( abs( v ) );\\n\\t\\treturn length( v / maxComponent ) * maxComponent;\\n\\t}\\n#endif\\nstruct IncidentLight {\\n\\tvec3 color;\\n\\tvec3 direction;\\n\\tbool visible;\\n};\\nstruct ReflectedLight {\\n\\tvec3 directDiffuse;\\n\\tvec3 directSpecular;\\n\\tvec3 indirectDiffuse;\\n\\tvec3 indirectSpecular;\\n};\\nstruct GeometricContext {\\n\\tvec3 position;\\n\\tvec3 normal;\\n\\tvec3 viewDir;\\n#ifdef CLEARCOAT\\n\\tvec3 clearcoatNormal;\\n#endif\\n};\\nvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\\n\\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\\n}\\nvec3 inverseTransformDirection( in vec3 dir, in mat4 matrix ) {\\n\\treturn normalize( ( vec4( dir, 0.0 ) * matrix ).xyz );\\n}\\nvec3 projectOnPlane(in vec3 point, in vec3 pointOnPlane, in vec3 planeNormal ) {\\n\\tfloat distance = dot( planeNormal, point - pointOnPlane );\\n\\treturn - distance * planeNormal + point;\\n}\\nfloat sideOfPlane( in vec3 point, in vec3 pointOnPlane, in vec3 planeNormal ) {\\n\\treturn sign( dot( point - pointOnPlane, planeNormal ) );\\n}\\nvec3 linePlaneIntersect( in vec3 pointOnLine, in vec3 lineDirection, in vec3 pointOnPlane, in vec3 planeNormal ) {\\n\\treturn lineDirection * ( dot( planeNormal, pointOnPlane - pointOnLine ) / dot( planeNormal, lineDirection ) ) + pointOnLine;\\n}\\nmat3 transposeMat3( const in mat3 m ) {\\n\\tmat3 tmp;\\n\\ttmp[ 0 ] = vec3( m[ 0 ].x, m[ 1 ].x, m[ 2 ].x );\\n\\ttmp[ 1 ] = vec3( m[ 0 ].y, m[ 1 ].y, m[ 2 ].y );\\n\\ttmp[ 2 ] = vec3( m[ 0 ].z, m[ 1 ].z, m[ 2 ].z );\\n\\treturn tmp;\\n}\\nfloat linearToRelativeLuminance( const in vec3 color ) {\\n\\tvec3 weights = vec3( 0.2126, 0.7152, 0.0722 );\\n\\treturn dot( weights, color.rgb );\\n}\\nbool isPerspectiveMatrix( mat4 m ) {\\n\\treturn m[ 2 ][ 3 ] == - 1.0;\\n}\\nvec2 equirectUv( in vec3 dir ) {\\n\\tfloat u = atan( dir.z, dir.x ) * RECIPROCAL_PI2 + 0.5;\\n\\tfloat v = asin( clamp( dir.y, - 1.0, 1.0 ) ) * RECIPROCAL_PI + 0.5;\\n\\treturn vec2( u, v );\\n}\";\n\nvar cube_uv_reflection_fragment = \"#ifdef ENVMAP_TYPE_CUBE_UV\\n\\t#define cubeUV_maxMipLevel 8.0\\n\\t#define cubeUV_minMipLevel 4.0\\n\\t#define cubeUV_maxTileSize 256.0\\n\\t#define cubeUV_minTileSize 16.0\\n\\tfloat getFace( vec3 direction ) {\\n\\t\\tvec3 absDirection = abs( direction );\\n\\t\\tfloat face = - 1.0;\\n\\t\\tif ( absDirection.x > absDirection.z ) {\\n\\t\\t\\tif ( absDirection.x > absDirection.y )\\n\\t\\t\\t\\tface = direction.x > 0.0 ? 0.0 : 3.0;\\n\\t\\t\\telse\\n\\t\\t\\t\\tface = direction.y > 0.0 ? 1.0 : 4.0;\\n\\t\\t} else {\\n\\t\\t\\tif ( absDirection.z > absDirection.y )\\n\\t\\t\\t\\tface = direction.z > 0.0 ? 2.0 : 5.0;\\n\\t\\t\\telse\\n\\t\\t\\t\\tface = direction.y > 0.0 ? 1.0 : 4.0;\\n\\t\\t}\\n\\t\\treturn face;\\n\\t}\\n\\tvec2 getUV( vec3 direction, float face ) {\\n\\t\\tvec2 uv;\\n\\t\\tif ( face == 0.0 ) {\\n\\t\\t\\tuv = vec2( direction.z, direction.y ) / abs( direction.x );\\n\\t\\t} else if ( face == 1.0 ) {\\n\\t\\t\\tuv = vec2( - direction.x, - direction.z ) / abs( direction.y );\\n\\t\\t} else if ( face == 2.0 ) {\\n\\t\\t\\tuv = vec2( - direction.x, direction.y ) / abs( direction.z );\\n\\t\\t} else if ( face == 3.0 ) {\\n\\t\\t\\tuv = vec2( - direction.z, direction.y ) / abs( direction.x );\\n\\t\\t} else if ( face == 4.0 ) {\\n\\t\\t\\tuv = vec2( - direction.x, direction.z ) / abs( direction.y );\\n\\t\\t} else {\\n\\t\\t\\tuv = vec2( direction.x, direction.y ) / abs( direction.z );\\n\\t\\t}\\n\\t\\treturn 0.5 * ( uv + 1.0 );\\n\\t}\\n\\tvec3 bilinearCubeUV( sampler2D envMap, vec3 direction, float mipInt ) {\\n\\t\\tfloat face = getFace( direction );\\n\\t\\tfloat filterInt = max( cubeUV_minMipLevel - mipInt, 0.0 );\\n\\t\\tmipInt = max( mipInt, cubeUV_minMipLevel );\\n\\t\\tfloat faceSize = exp2( mipInt );\\n\\t\\tfloat texelSize = 1.0 / ( 3.0 * cubeUV_maxTileSize );\\n\\t\\tvec2 uv = getUV( direction, face ) * ( faceSize - 1.0 );\\n\\t\\tvec2 f = fract( uv );\\n\\t\\tuv += 0.5 - f;\\n\\t\\tif ( face > 2.0 ) {\\n\\t\\t\\tuv.y += faceSize;\\n\\t\\t\\tface -= 3.0;\\n\\t\\t}\\n\\t\\tuv.x += face * faceSize;\\n\\t\\tif ( mipInt < cubeUV_maxMipLevel ) {\\n\\t\\t\\tuv.y += 2.0 * cubeUV_maxTileSize;\\n\\t\\t}\\n\\t\\tuv.y += filterInt * 2.0 * cubeUV_minTileSize;\\n\\t\\tuv.x += 3.0 * max( 0.0, cubeUV_maxTileSize - 2.0 * faceSize );\\n\\t\\tuv *= texelSize;\\n\\t\\tvec3 tl = envMapTexelToLinear( texture2D( envMap, uv ) ).rgb;\\n\\t\\tuv.x += texelSize;\\n\\t\\tvec3 tr = envMapTexelToLinear( texture2D( envMap, uv ) ).rgb;\\n\\t\\tuv.y += texelSize;\\n\\t\\tvec3 br = envMapTexelToLinear( texture2D( envMap, uv ) ).rgb;\\n\\t\\tuv.x -= texelSize;\\n\\t\\tvec3 bl = envMapTexelToLinear( texture2D( envMap, uv ) ).rgb;\\n\\t\\tvec3 tm = mix( tl, tr, f.x );\\n\\t\\tvec3 bm = mix( bl, br, f.x );\\n\\t\\treturn mix( tm, bm, f.y );\\n\\t}\\n\\t#define r0 1.0\\n\\t#define v0 0.339\\n\\t#define m0 - 2.0\\n\\t#define r1 0.8\\n\\t#define v1 0.276\\n\\t#define m1 - 1.0\\n\\t#define r4 0.4\\n\\t#define v4 0.046\\n\\t#define m4 2.0\\n\\t#define r5 0.305\\n\\t#define v5 0.016\\n\\t#define m5 3.0\\n\\t#define r6 0.21\\n\\t#define v6 0.0038\\n\\t#define m6 4.0\\n\\tfloat roughnessToMip( float roughness ) {\\n\\t\\tfloat mip = 0.0;\\n\\t\\tif ( roughness >= r1 ) {\\n\\t\\t\\tmip = ( r0 - roughness ) * ( m1 - m0 ) / ( r0 - r1 ) + m0;\\n\\t\\t} else if ( roughness >= r4 ) {\\n\\t\\t\\tmip = ( r1 - roughness ) * ( m4 - m1 ) / ( r1 - r4 ) + m1;\\n\\t\\t} else if ( roughness >= r5 ) {\\n\\t\\t\\tmip = ( r4 - roughness ) * ( m5 - m4 ) / ( r4 - r5 ) + m4;\\n\\t\\t} else if ( roughness >= r6 ) {\\n\\t\\t\\tmip = ( r5 - roughness ) * ( m6 - m5 ) / ( r5 - r6 ) + m5;\\n\\t\\t} else {\\n\\t\\t\\tmip = - 2.0 * log2( 1.16 * roughness );\\t\\t}\\n\\t\\treturn mip;\\n\\t}\\n\\tvec4 textureCubeUV( sampler2D envMap, vec3 sampleDir, float roughness ) {\\n\\t\\tfloat mip = clamp( roughnessToMip( roughness ), m0, cubeUV_maxMipLevel );\\n\\t\\tfloat mipF = fract( mip );\\n\\t\\tfloat mipInt = floor( mip );\\n\\t\\tvec3 color0 = bilinearCubeUV( envMap, sampleDir, mipInt );\\n\\t\\tif ( mipF == 0.0 ) {\\n\\t\\t\\treturn vec4( color0, 1.0 );\\n\\t\\t} else {\\n\\t\\t\\tvec3 color1 = bilinearCubeUV( envMap, sampleDir, mipInt + 1.0 );\\n\\t\\t\\treturn vec4( mix( color0, color1, mipF ), 1.0 );\\n\\t\\t}\\n\\t}\\n#endif\";\n\nvar defaultnormal_vertex = \"vec3 transformedNormal = objectNormal;\\n#ifdef USE_INSTANCING\\n\\tmat3 m = mat3( instanceMatrix );\\n\\ttransformedNormal /= vec3( dot( m[ 0 ], m[ 0 ] ), dot( m[ 1 ], m[ 1 ] ), dot( m[ 2 ], m[ 2 ] ) );\\n\\ttransformedNormal = m * transformedNormal;\\n#endif\\ntransformedNormal = normalMatrix * transformedNormal;\\n#ifdef FLIP_SIDED\\n\\ttransformedNormal = - transformedNormal;\\n#endif\\n#ifdef USE_TANGENT\\n\\tvec3 transformedTangent = ( modelViewMatrix * vec4( objectTangent, 0.0 ) ).xyz;\\n\\t#ifdef FLIP_SIDED\\n\\t\\ttransformedTangent = - transformedTangent;\\n\\t#endif\\n#endif\";\n\nvar displacementmap_pars_vertex = \"#ifdef USE_DISPLACEMENTMAP\\n\\tuniform sampler2D displacementMap;\\n\\tuniform float displacementScale;\\n\\tuniform float displacementBias;\\n#endif\";\n\nvar displacementmap_vertex = \"#ifdef USE_DISPLACEMENTMAP\\n\\ttransformed += normalize( objectNormal ) * ( texture2D( displacementMap, vUv ).x * displacementScale + displacementBias );\\n#endif\";\n\nvar emissivemap_fragment = \"#ifdef USE_EMISSIVEMAP\\n\\tvec4 emissiveColor = texture2D( emissiveMap, vUv );\\n\\temissiveColor.rgb = emissiveMapTexelToLinear( emissiveColor ).rgb;\\n\\ttotalEmissiveRadiance *= emissiveColor.rgb;\\n#endif\";\n\nvar emissivemap_pars_fragment = \"#ifdef USE_EMISSIVEMAP\\n\\tuniform sampler2D emissiveMap;\\n#endif\";\n\nvar encodings_fragment = \"gl_FragColor = linearToOutputTexel( gl_FragColor );\";\n\nvar encodings_pars_fragment = \"\\nvec4 LinearToLinear( in vec4 value ) {\\n\\treturn value;\\n}\\nvec4 GammaToLinear( in vec4 value, in float gammaFactor ) {\\n\\treturn vec4( pow( value.rgb, vec3( gammaFactor ) ), value.a );\\n}\\nvec4 LinearToGamma( in vec4 value, in float gammaFactor ) {\\n\\treturn vec4( pow( value.rgb, vec3( 1.0 / gammaFactor ) ), value.a );\\n}\\nvec4 sRGBToLinear( in vec4 value ) {\\n\\treturn vec4( mix( pow( value.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), value.rgb * 0.0773993808, vec3( lessThanEqual( value.rgb, vec3( 0.04045 ) ) ) ), value.a );\\n}\\nvec4 LinearTosRGB( in vec4 value ) {\\n\\treturn vec4( mix( pow( value.rgb, vec3( 0.41666 ) ) * 1.055 - vec3( 0.055 ), value.rgb * 12.92, vec3( lessThanEqual( value.rgb, vec3( 0.0031308 ) ) ) ), value.a );\\n}\\nvec4 RGBEToLinear( in vec4 value ) {\\n\\treturn vec4( value.rgb * exp2( value.a * 255.0 - 128.0 ), 1.0 );\\n}\\nvec4 LinearToRGBE( in vec4 value ) {\\n\\tfloat maxComponent = max( max( value.r, value.g ), value.b );\\n\\tfloat fExp = clamp( ceil( log2( maxComponent ) ), -128.0, 127.0 );\\n\\treturn vec4( value.rgb / exp2( fExp ), ( fExp + 128.0 ) / 255.0 );\\n}\\nvec4 RGBMToLinear( in vec4 value, in float maxRange ) {\\n\\treturn vec4( value.rgb * value.a * maxRange, 1.0 );\\n}\\nvec4 LinearToRGBM( in vec4 value, in float maxRange ) {\\n\\tfloat maxRGB = max( value.r, max( value.g, value.b ) );\\n\\tfloat M = clamp( maxRGB / maxRange, 0.0, 1.0 );\\n\\tM = ceil( M * 255.0 ) / 255.0;\\n\\treturn vec4( value.rgb / ( M * maxRange ), M );\\n}\\nvec4 RGBDToLinear( in vec4 value, in float maxRange ) {\\n\\treturn vec4( value.rgb * ( ( maxRange / 255.0 ) / value.a ), 1.0 );\\n}\\nvec4 LinearToRGBD( in vec4 value, in float maxRange ) {\\n\\tfloat maxRGB = max( value.r, max( value.g, value.b ) );\\n\\tfloat D = max( maxRange / maxRGB, 1.0 );\\n\\tD = clamp( floor( D ) / 255.0, 0.0, 1.0 );\\n\\treturn vec4( value.rgb * ( D * ( 255.0 / maxRange ) ), D );\\n}\\nconst mat3 cLogLuvM = mat3( 0.2209, 0.3390, 0.4184, 0.1138, 0.6780, 0.7319, 0.0102, 0.1130, 0.2969 );\\nvec4 LinearToLogLuv( in vec4 value ) {\\n\\tvec3 Xp_Y_XYZp = cLogLuvM * value.rgb;\\n\\tXp_Y_XYZp = max( Xp_Y_XYZp, vec3( 1e-6, 1e-6, 1e-6 ) );\\n\\tvec4 vResult;\\n\\tvResult.xy = Xp_Y_XYZp.xy / Xp_Y_XYZp.z;\\n\\tfloat Le = 2.0 * log2(Xp_Y_XYZp.y) + 127.0;\\n\\tvResult.w = fract( Le );\\n\\tvResult.z = ( Le - ( floor( vResult.w * 255.0 ) ) / 255.0 ) / 255.0;\\n\\treturn vResult;\\n}\\nconst mat3 cLogLuvInverseM = mat3( 6.0014, -2.7008, -1.7996, -1.3320, 3.1029, -5.7721, 0.3008, -1.0882, 5.6268 );\\nvec4 LogLuvToLinear( in vec4 value ) {\\n\\tfloat Le = value.z * 255.0 + value.w;\\n\\tvec3 Xp_Y_XYZp;\\n\\tXp_Y_XYZp.y = exp2( ( Le - 127.0 ) / 2.0 );\\n\\tXp_Y_XYZp.z = Xp_Y_XYZp.y / value.y;\\n\\tXp_Y_XYZp.x = value.x * Xp_Y_XYZp.z;\\n\\tvec3 vRGB = cLogLuvInverseM * Xp_Y_XYZp.rgb;\\n\\treturn vec4( max( vRGB, 0.0 ), 1.0 );\\n}\";\n\nvar envmap_fragment = \"#ifdef USE_ENVMAP\\n\\t#ifdef ENV_WORLDPOS\\n\\t\\tvec3 cameraToFrag;\\n\\t\\tif ( isOrthographic ) {\\n\\t\\t\\tcameraToFrag = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\\n\\t\\t} else {\\n\\t\\t\\tcameraToFrag = normalize( vWorldPosition - cameraPosition );\\n\\t\\t}\\n\\t\\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\\n\\t\\t#ifdef ENVMAP_MODE_REFLECTION\\n\\t\\t\\tvec3 reflectVec = reflect( cameraToFrag, worldNormal );\\n\\t\\t#else\\n\\t\\t\\tvec3 reflectVec = refract( cameraToFrag, worldNormal, refractionRatio );\\n\\t\\t#endif\\n\\t#else\\n\\t\\tvec3 reflectVec = vReflect;\\n\\t#endif\\n\\t#ifdef ENVMAP_TYPE_CUBE\\n\\t\\tvec4 envColor = textureCube( envMap, vec3( flipEnvMap * reflectVec.x, reflectVec.yz ) );\\n\\t#elif defined( ENVMAP_TYPE_CUBE_UV )\\n\\t\\tvec4 envColor = textureCubeUV( envMap, reflectVec, 0.0 );\\n\\t#else\\n\\t\\tvec4 envColor = vec4( 0.0 );\\n\\t#endif\\n\\t#ifndef ENVMAP_TYPE_CUBE_UV\\n\\t\\tenvColor = envMapTexelToLinear( envColor );\\n\\t#endif\\n\\t#ifdef ENVMAP_BLENDING_MULTIPLY\\n\\t\\toutgoingLight = mix( outgoingLight, outgoingLight * envColor.xyz, specularStrength * reflectivity );\\n\\t#elif defined( ENVMAP_BLENDING_MIX )\\n\\t\\toutgoingLight = mix( outgoingLight, envColor.xyz, specularStrength * reflectivity );\\n\\t#elif defined( ENVMAP_BLENDING_ADD )\\n\\t\\toutgoingLight += envColor.xyz * specularStrength * reflectivity;\\n\\t#endif\\n#endif\";\n\nvar envmap_common_pars_fragment = \"#ifdef USE_ENVMAP\\n\\tuniform float envMapIntensity;\\n\\tuniform float flipEnvMap;\\n\\tuniform int maxMipLevel;\\n\\t#ifdef ENVMAP_TYPE_CUBE\\n\\t\\tuniform samplerCube envMap;\\n\\t#else\\n\\t\\tuniform sampler2D envMap;\\n\\t#endif\\n\\t\\n#endif\";\n\nvar envmap_pars_fragment = \"#ifdef USE_ENVMAP\\n\\tuniform float reflectivity;\\n\\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG )\\n\\t\\t#define ENV_WORLDPOS\\n\\t#endif\\n\\t#ifdef ENV_WORLDPOS\\n\\t\\tvarying vec3 vWorldPosition;\\n\\t\\tuniform float refractionRatio;\\n\\t#else\\n\\t\\tvarying vec3 vReflect;\\n\\t#endif\\n#endif\";\n\nvar envmap_pars_vertex = \"#ifdef USE_ENVMAP\\n\\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) ||defined( PHONG )\\n\\t\\t#define ENV_WORLDPOS\\n\\t#endif\\n\\t#ifdef ENV_WORLDPOS\\n\\t\\t\\n\\t\\tvarying vec3 vWorldPosition;\\n\\t#else\\n\\t\\tvarying vec3 vReflect;\\n\\t\\tuniform float refractionRatio;\\n\\t#endif\\n#endif\";\n\nvar envmap_vertex = \"#ifdef USE_ENVMAP\\n\\t#ifdef ENV_WORLDPOS\\n\\t\\tvWorldPosition = worldPosition.xyz;\\n\\t#else\\n\\t\\tvec3 cameraToVertex;\\n\\t\\tif ( isOrthographic ) {\\n\\t\\t\\tcameraToVertex = normalize( vec3( - viewMatrix[ 0 ][ 2 ], - viewMatrix[ 1 ][ 2 ], - viewMatrix[ 2 ][ 2 ] ) );\\n\\t\\t} else {\\n\\t\\t\\tcameraToVertex = normalize( worldPosition.xyz - cameraPosition );\\n\\t\\t}\\n\\t\\tvec3 worldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\\n\\t\\t#ifdef ENVMAP_MODE_REFLECTION\\n\\t\\t\\tvReflect = reflect( cameraToVertex, worldNormal );\\n\\t\\t#else\\n\\t\\t\\tvReflect = refract( cameraToVertex, worldNormal, refractionRatio );\\n\\t\\t#endif\\n\\t#endif\\n#endif\";\n\nvar fog_vertex = \"#ifdef USE_FOG\\n\\tfogDepth = - mvPosition.z;\\n#endif\";\n\nvar fog_pars_vertex = \"#ifdef USE_FOG\\n\\tvarying float fogDepth;\\n#endif\";\n\nvar fog_fragment = \"#ifdef USE_FOG\\n\\t#ifdef FOG_EXP2\\n\\t\\tfloat fogFactor = 1.0 - exp( - fogDensity * fogDensity * fogDepth * fogDepth );\\n\\t#else\\n\\t\\tfloat fogFactor = smoothstep( fogNear, fogFar, fogDepth );\\n\\t#endif\\n\\tgl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor );\\n#endif\";\n\nvar fog_pars_fragment = \"#ifdef USE_FOG\\n\\tuniform vec3 fogColor;\\n\\tvarying float fogDepth;\\n\\t#ifdef FOG_EXP2\\n\\t\\tuniform float fogDensity;\\n\\t#else\\n\\t\\tuniform float fogNear;\\n\\t\\tuniform float fogFar;\\n\\t#endif\\n#endif\";\n\nvar gradientmap_pars_fragment = \"#ifdef USE_GRADIENTMAP\\n\\tuniform sampler2D gradientMap;\\n#endif\\nvec3 getGradientIrradiance( vec3 normal, vec3 lightDirection ) {\\n\\tfloat dotNL = dot( normal, lightDirection );\\n\\tvec2 coord = vec2( dotNL * 0.5 + 0.5, 0.0 );\\n\\t#ifdef USE_GRADIENTMAP\\n\\t\\treturn texture2D( gradientMap, coord ).rgb;\\n\\t#else\\n\\t\\treturn ( coord.x < 0.7 ) ? vec3( 0.7 ) : vec3( 1.0 );\\n\\t#endif\\n}\";\n\nvar lightmap_fragment = \"#ifdef USE_LIGHTMAP\\n\\tvec4 lightMapTexel= texture2D( lightMap, vUv2 );\\n\\treflectedLight.indirectDiffuse += PI * lightMapTexelToLinear( lightMapTexel ).rgb * lightMapIntensity;\\n#endif\";\n\nvar lightmap_pars_fragment = \"#ifdef USE_LIGHTMAP\\n\\tuniform sampler2D lightMap;\\n\\tuniform float lightMapIntensity;\\n#endif\";\n\nvar lights_lambert_vertex = \"vec3 diffuse = vec3( 1.0 );\\nGeometricContext geometry;\\ngeometry.position = mvPosition.xyz;\\ngeometry.normal = normalize( transformedNormal );\\ngeometry.viewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( -mvPosition.xyz );\\nGeometricContext backGeometry;\\nbackGeometry.position = geometry.position;\\nbackGeometry.normal = -geometry.normal;\\nbackGeometry.viewDir = geometry.viewDir;\\nvLightFront = vec3( 0.0 );\\nvIndirectFront = vec3( 0.0 );\\n#ifdef DOUBLE_SIDED\\n\\tvLightBack = vec3( 0.0 );\\n\\tvIndirectBack = vec3( 0.0 );\\n#endif\\nIncidentLight directLight;\\nfloat dotNL;\\nvec3 directLightColor_Diffuse;\\nvIndirectFront += getAmbientLightIrradiance( ambientLightColor );\\nvIndirectFront += getLightProbeIrradiance( lightProbe, geometry );\\n#ifdef DOUBLE_SIDED\\n\\tvIndirectBack += getAmbientLightIrradiance( ambientLightColor );\\n\\tvIndirectBack += getLightProbeIrradiance( lightProbe, backGeometry );\\n#endif\\n#if NUM_POINT_LIGHTS > 0\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\\n\\t\\tgetPointDirectLightIrradiance( pointLights[ i ], geometry, directLight );\\n\\t\\tdotNL = dot( geometry.normal, directLight.direction );\\n\\t\\tdirectLightColor_Diffuse = PI * directLight.color;\\n\\t\\tvLightFront += saturate( dotNL ) * directLightColor_Diffuse;\\n\\t\\t#ifdef DOUBLE_SIDED\\n\\t\\t\\tvLightBack += saturate( -dotNL ) * directLightColor_Diffuse;\\n\\t\\t#endif\\n\\t}\\n\\t#pragma unroll_loop_end\\n#endif\\n#if NUM_SPOT_LIGHTS > 0\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\\n\\t\\tgetSpotDirectLightIrradiance( spotLights[ i ], geometry, directLight );\\n\\t\\tdotNL = dot( geometry.normal, directLight.direction );\\n\\t\\tdirectLightColor_Diffuse = PI * directLight.color;\\n\\t\\tvLightFront += saturate( dotNL ) * directLightColor_Diffuse;\\n\\t\\t#ifdef DOUBLE_SIDED\\n\\t\\t\\tvLightBack += saturate( -dotNL ) * directLightColor_Diffuse;\\n\\t\\t#endif\\n\\t}\\n\\t#pragma unroll_loop_end\\n#endif\\n#if NUM_DIR_LIGHTS > 0\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\\n\\t\\tgetDirectionalDirectLightIrradiance( directionalLights[ i ], geometry, directLight );\\n\\t\\tdotNL = dot( geometry.normal, directLight.direction );\\n\\t\\tdirectLightColor_Diffuse = PI * directLight.color;\\n\\t\\tvLightFront += saturate( dotNL ) * directLightColor_Diffuse;\\n\\t\\t#ifdef DOUBLE_SIDED\\n\\t\\t\\tvLightBack += saturate( -dotNL ) * directLightColor_Diffuse;\\n\\t\\t#endif\\n\\t}\\n\\t#pragma unroll_loop_end\\n#endif\\n#if NUM_HEMI_LIGHTS > 0\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {\\n\\t\\tvIndirectFront += getHemisphereLightIrradiance( hemisphereLights[ i ], geometry );\\n\\t\\t#ifdef DOUBLE_SIDED\\n\\t\\t\\tvIndirectBack += getHemisphereLightIrradiance( hemisphereLights[ i ], backGeometry );\\n\\t\\t#endif\\n\\t}\\n\\t#pragma unroll_loop_end\\n#endif\";\n\nvar lights_pars_begin = \"uniform bool receiveShadow;\\nuniform vec3 ambientLightColor;\\nuniform vec3 lightProbe[ 9 ];\\nvec3 shGetIrradianceAt( in vec3 normal, in vec3 shCoefficients[ 9 ] ) {\\n\\tfloat x = normal.x, y = normal.y, z = normal.z;\\n\\tvec3 result = shCoefficients[ 0 ] * 0.886227;\\n\\tresult += shCoefficients[ 1 ] * 2.0 * 0.511664 * y;\\n\\tresult += shCoefficients[ 2 ] * 2.0 * 0.511664 * z;\\n\\tresult += shCoefficients[ 3 ] * 2.0 * 0.511664 * x;\\n\\tresult += shCoefficients[ 4 ] * 2.0 * 0.429043 * x * y;\\n\\tresult += shCoefficients[ 5 ] * 2.0 * 0.429043 * y * z;\\n\\tresult += shCoefficients[ 6 ] * ( 0.743125 * z * z - 0.247708 );\\n\\tresult += shCoefficients[ 7 ] * 2.0 * 0.429043 * x * z;\\n\\tresult += shCoefficients[ 8 ] * 0.429043 * ( x * x - y * y );\\n\\treturn result;\\n}\\nvec3 getLightProbeIrradiance( const in vec3 lightProbe[ 9 ], const in GeometricContext geometry ) {\\n\\tvec3 worldNormal = inverseTransformDirection( geometry.normal, viewMatrix );\\n\\tvec3 irradiance = shGetIrradianceAt( worldNormal, lightProbe );\\n\\treturn irradiance;\\n}\\nvec3 getAmbientLightIrradiance( const in vec3 ambientLightColor ) {\\n\\tvec3 irradiance = ambientLightColor;\\n\\t#ifndef PHYSICALLY_CORRECT_LIGHTS\\n\\t\\tirradiance *= PI;\\n\\t#endif\\n\\treturn irradiance;\\n}\\n#if NUM_DIR_LIGHTS > 0\\n\\tstruct DirectionalLight {\\n\\t\\tvec3 direction;\\n\\t\\tvec3 color;\\n\\t};\\n\\tuniform DirectionalLight directionalLights[ NUM_DIR_LIGHTS ];\\n\\tvoid getDirectionalDirectLightIrradiance( const in DirectionalLight directionalLight, const in GeometricContext geometry, out IncidentLight directLight ) {\\n\\t\\tdirectLight.color = directionalLight.color;\\n\\t\\tdirectLight.direction = directionalLight.direction;\\n\\t\\tdirectLight.visible = true;\\n\\t}\\n#endif\\n#if NUM_POINT_LIGHTS > 0\\n\\tstruct PointLight {\\n\\t\\tvec3 position;\\n\\t\\tvec3 color;\\n\\t\\tfloat distance;\\n\\t\\tfloat decay;\\n\\t};\\n\\tuniform PointLight pointLights[ NUM_POINT_LIGHTS ];\\n\\tvoid getPointDirectLightIrradiance( const in PointLight pointLight, const in GeometricContext geometry, out IncidentLight directLight ) {\\n\\t\\tvec3 lVector = pointLight.position - geometry.position;\\n\\t\\tdirectLight.direction = normalize( lVector );\\n\\t\\tfloat lightDistance = length( lVector );\\n\\t\\tdirectLight.color = pointLight.color;\\n\\t\\tdirectLight.color *= punctualLightIntensityToIrradianceFactor( lightDistance, pointLight.distance, pointLight.decay );\\n\\t\\tdirectLight.visible = ( directLight.color != vec3( 0.0 ) );\\n\\t}\\n#endif\\n#if NUM_SPOT_LIGHTS > 0\\n\\tstruct SpotLight {\\n\\t\\tvec3 position;\\n\\t\\tvec3 direction;\\n\\t\\tvec3 color;\\n\\t\\tfloat distance;\\n\\t\\tfloat decay;\\n\\t\\tfloat coneCos;\\n\\t\\tfloat penumbraCos;\\n\\t};\\n\\tuniform SpotLight spotLights[ NUM_SPOT_LIGHTS ];\\n\\tvoid getSpotDirectLightIrradiance( const in SpotLight spotLight, const in GeometricContext geometry, out IncidentLight directLight ) {\\n\\t\\tvec3 lVector = spotLight.position - geometry.position;\\n\\t\\tdirectLight.direction = normalize( lVector );\\n\\t\\tfloat lightDistance = length( lVector );\\n\\t\\tfloat angleCos = dot( directLight.direction, spotLight.direction );\\n\\t\\tif ( angleCos > spotLight.coneCos ) {\\n\\t\\t\\tfloat spotEffect = smoothstep( spotLight.coneCos, spotLight.penumbraCos, angleCos );\\n\\t\\t\\tdirectLight.color = spotLight.color;\\n\\t\\t\\tdirectLight.color *= spotEffect * punctualLightIntensityToIrradianceFactor( lightDistance, spotLight.distance, spotLight.decay );\\n\\t\\t\\tdirectLight.visible = true;\\n\\t\\t} else {\\n\\t\\t\\tdirectLight.color = vec3( 0.0 );\\n\\t\\t\\tdirectLight.visible = false;\\n\\t\\t}\\n\\t}\\n#endif\\n#if NUM_RECT_AREA_LIGHTS > 0\\n\\tstruct RectAreaLight {\\n\\t\\tvec3 color;\\n\\t\\tvec3 position;\\n\\t\\tvec3 halfWidth;\\n\\t\\tvec3 halfHeight;\\n\\t};\\n\\tuniform sampler2D ltc_1;\\tuniform sampler2D ltc_2;\\n\\tuniform RectAreaLight rectAreaLights[ NUM_RECT_AREA_LIGHTS ];\\n#endif\\n#if NUM_HEMI_LIGHTS > 0\\n\\tstruct HemisphereLight {\\n\\t\\tvec3 direction;\\n\\t\\tvec3 skyColor;\\n\\t\\tvec3 groundColor;\\n\\t};\\n\\tuniform HemisphereLight hemisphereLights[ NUM_HEMI_LIGHTS ];\\n\\tvec3 getHemisphereLightIrradiance( const in HemisphereLight hemiLight, const in GeometricContext geometry ) {\\n\\t\\tfloat dotNL = dot( geometry.normal, hemiLight.direction );\\n\\t\\tfloat hemiDiffuseWeight = 0.5 * dotNL + 0.5;\\n\\t\\tvec3 irradiance = mix( hemiLight.groundColor, hemiLight.skyColor, hemiDiffuseWeight );\\n\\t\\t#ifndef PHYSICALLY_CORRECT_LIGHTS\\n\\t\\t\\tirradiance *= PI;\\n\\t\\t#endif\\n\\t\\treturn irradiance;\\n\\t}\\n#endif\";\n\nvar envmap_physical_pars_fragment = \"#if defined( USE_ENVMAP )\\n\\t#ifdef ENVMAP_MODE_REFRACTION\\n\\t\\tuniform float refractionRatio;\\n\\t#endif\\n\\tvec3 getLightProbeIndirectIrradiance( const in GeometricContext geometry, const in int maxMIPLevel ) {\\n\\t\\tvec3 worldNormal = inverseTransformDirection( geometry.normal, viewMatrix );\\n\\t\\t#ifdef ENVMAP_TYPE_CUBE\\n\\t\\t\\tvec3 queryVec = vec3( flipEnvMap * worldNormal.x, worldNormal.yz );\\n\\t\\t\\t#ifdef TEXTURE_LOD_EXT\\n\\t\\t\\t\\tvec4 envMapColor = textureCubeLodEXT( envMap, queryVec, float( maxMIPLevel ) );\\n\\t\\t\\t#else\\n\\t\\t\\t\\tvec4 envMapColor = textureCube( envMap, queryVec, float( maxMIPLevel ) );\\n\\t\\t\\t#endif\\n\\t\\t\\tenvMapColor.rgb = envMapTexelToLinear( envMapColor ).rgb;\\n\\t\\t#elif defined( ENVMAP_TYPE_CUBE_UV )\\n\\t\\t\\tvec4 envMapColor = textureCubeUV( envMap, worldNormal, 1.0 );\\n\\t\\t#else\\n\\t\\t\\tvec4 envMapColor = vec4( 0.0 );\\n\\t\\t#endif\\n\\t\\treturn PI * envMapColor.rgb * envMapIntensity;\\n\\t}\\n\\tfloat getSpecularMIPLevel( const in float roughness, const in int maxMIPLevel ) {\\n\\t\\tfloat maxMIPLevelScalar = float( maxMIPLevel );\\n\\t\\tfloat sigma = PI * roughness * roughness / ( 1.0 + roughness );\\n\\t\\tfloat desiredMIPLevel = maxMIPLevelScalar + log2( sigma );\\n\\t\\treturn clamp( desiredMIPLevel, 0.0, maxMIPLevelScalar );\\n\\t}\\n\\tvec3 getLightProbeIndirectRadiance( const in vec3 viewDir, const in vec3 normal, const in float roughness, const in int maxMIPLevel ) {\\n\\t\\t#ifdef ENVMAP_MODE_REFLECTION\\n\\t\\t\\tvec3 reflectVec = reflect( -viewDir, normal );\\n\\t\\t\\treflectVec = normalize( mix( reflectVec, normal, roughness * roughness) );\\n\\t\\t#else\\n\\t\\t\\tvec3 reflectVec = refract( -viewDir, normal, refractionRatio );\\n\\t\\t#endif\\n\\t\\treflectVec = inverseTransformDirection( reflectVec, viewMatrix );\\n\\t\\tfloat specularMIPLevel = getSpecularMIPLevel( roughness, maxMIPLevel );\\n\\t\\t#ifdef ENVMAP_TYPE_CUBE\\n\\t\\t\\tvec3 queryReflectVec = vec3( flipEnvMap * reflectVec.x, reflectVec.yz );\\n\\t\\t\\t#ifdef TEXTURE_LOD_EXT\\n\\t\\t\\t\\tvec4 envMapColor = textureCubeLodEXT( envMap, queryReflectVec, specularMIPLevel );\\n\\t\\t\\t#else\\n\\t\\t\\t\\tvec4 envMapColor = textureCube( envMap, queryReflectVec, specularMIPLevel );\\n\\t\\t\\t#endif\\n\\t\\t\\tenvMapColor.rgb = envMapTexelToLinear( envMapColor ).rgb;\\n\\t\\t#elif defined( ENVMAP_TYPE_CUBE_UV )\\n\\t\\t\\tvec4 envMapColor = textureCubeUV( envMap, reflectVec, roughness );\\n\\t\\t#endif\\n\\t\\treturn envMapColor.rgb * envMapIntensity;\\n\\t}\\n#endif\";\n\nvar lights_toon_fragment = \"ToonMaterial material;\\nmaterial.diffuseColor = diffuseColor.rgb;\";\n\nvar lights_toon_pars_fragment = \"varying vec3 vViewPosition;\\n#ifndef FLAT_SHADED\\n\\tvarying vec3 vNormal;\\n#endif\\nstruct ToonMaterial {\\n\\tvec3 diffuseColor;\\n};\\nvoid RE_Direct_Toon( const in IncidentLight directLight, const in GeometricContext geometry, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\\n\\tvec3 irradiance = getGradientIrradiance( geometry.normal, directLight.direction ) * directLight.color;\\n\\t#ifndef PHYSICALLY_CORRECT_LIGHTS\\n\\t\\tirradiance *= PI;\\n\\t#endif\\n\\treflectedLight.directDiffuse += irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\\n}\\nvoid RE_IndirectDiffuse_Toon( const in vec3 irradiance, const in GeometricContext geometry, const in ToonMaterial material, inout ReflectedLight reflectedLight ) {\\n\\treflectedLight.indirectDiffuse += irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\\n}\\n#define RE_Direct\\t\\t\\t\\tRE_Direct_Toon\\n#define RE_IndirectDiffuse\\t\\tRE_IndirectDiffuse_Toon\\n#define Material_LightProbeLOD( material )\\t(0)\";\n\nvar lights_phong_fragment = \"BlinnPhongMaterial material;\\nmaterial.diffuseColor = diffuseColor.rgb;\\nmaterial.specularColor = specular;\\nmaterial.specularShininess = shininess;\\nmaterial.specularStrength = specularStrength;\";\n\nvar lights_phong_pars_fragment = \"varying vec3 vViewPosition;\\n#ifndef FLAT_SHADED\\n\\tvarying vec3 vNormal;\\n#endif\\nstruct BlinnPhongMaterial {\\n\\tvec3 diffuseColor;\\n\\tvec3 specularColor;\\n\\tfloat specularShininess;\\n\\tfloat specularStrength;\\n};\\nvoid RE_Direct_BlinnPhong( const in IncidentLight directLight, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\\n\\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\\n\\tvec3 irradiance = dotNL * directLight.color;\\n\\t#ifndef PHYSICALLY_CORRECT_LIGHTS\\n\\t\\tirradiance *= PI;\\n\\t#endif\\n\\treflectedLight.directDiffuse += irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\\n\\treflectedLight.directSpecular += irradiance * BRDF_Specular_BlinnPhong( directLight, geometry, material.specularColor, material.specularShininess ) * material.specularStrength;\\n}\\nvoid RE_IndirectDiffuse_BlinnPhong( const in vec3 irradiance, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\\n\\treflectedLight.indirectDiffuse += irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\\n}\\n#define RE_Direct\\t\\t\\t\\tRE_Direct_BlinnPhong\\n#define RE_IndirectDiffuse\\t\\tRE_IndirectDiffuse_BlinnPhong\\n#define Material_LightProbeLOD( material )\\t(0)\";\n\nvar lights_physical_fragment = \"PhysicalMaterial material;\\nmaterial.diffuseColor = diffuseColor.rgb * ( 1.0 - metalnessFactor );\\nvec3 dxy = max( abs( dFdx( geometryNormal ) ), abs( dFdy( geometryNormal ) ) );\\nfloat geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z );\\nmaterial.specularRoughness = max( roughnessFactor, 0.0525 );material.specularRoughness += geometryRoughness;\\nmaterial.specularRoughness = min( material.specularRoughness, 1.0 );\\n#ifdef REFLECTIVITY\\n\\tmaterial.specularColor = mix( vec3( MAXIMUM_SPECULAR_COEFFICIENT * pow2( reflectivity ) ), diffuseColor.rgb, metalnessFactor );\\n#else\\n\\tmaterial.specularColor = mix( vec3( DEFAULT_SPECULAR_COEFFICIENT ), diffuseColor.rgb, metalnessFactor );\\n#endif\\n#ifdef CLEARCOAT\\n\\tmaterial.clearcoat = clearcoat;\\n\\tmaterial.clearcoatRoughness = clearcoatRoughness;\\n\\t#ifdef USE_CLEARCOATMAP\\n\\t\\tmaterial.clearcoat *= texture2D( clearcoatMap, vUv ).x;\\n\\t#endif\\n\\t#ifdef USE_CLEARCOAT_ROUGHNESSMAP\\n\\t\\tmaterial.clearcoatRoughness *= texture2D( clearcoatRoughnessMap, vUv ).y;\\n\\t#endif\\n\\tmaterial.clearcoat = saturate( material.clearcoat );\\tmaterial.clearcoatRoughness = max( material.clearcoatRoughness, 0.0525 );\\n\\tmaterial.clearcoatRoughness += geometryRoughness;\\n\\tmaterial.clearcoatRoughness = min( material.clearcoatRoughness, 1.0 );\\n#endif\\n#ifdef USE_SHEEN\\n\\tmaterial.sheenColor = sheen;\\n#endif\";\n\nvar lights_physical_pars_fragment = \"struct PhysicalMaterial {\\n\\tvec3 diffuseColor;\\n\\tfloat specularRoughness;\\n\\tvec3 specularColor;\\n#ifdef CLEARCOAT\\n\\tfloat clearcoat;\\n\\tfloat clearcoatRoughness;\\n#endif\\n#ifdef USE_SHEEN\\n\\tvec3 sheenColor;\\n#endif\\n};\\n#define MAXIMUM_SPECULAR_COEFFICIENT 0.16\\n#define DEFAULT_SPECULAR_COEFFICIENT 0.04\\nfloat clearcoatDHRApprox( const in float roughness, const in float dotNL ) {\\n\\treturn DEFAULT_SPECULAR_COEFFICIENT + ( 1.0 - DEFAULT_SPECULAR_COEFFICIENT ) * ( pow( 1.0 - dotNL, 5.0 ) * pow( 1.0 - roughness, 2.0 ) );\\n}\\n#if NUM_RECT_AREA_LIGHTS > 0\\n\\tvoid RE_Direct_RectArea_Physical( const in RectAreaLight rectAreaLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\\n\\t\\tvec3 normal = geometry.normal;\\n\\t\\tvec3 viewDir = geometry.viewDir;\\n\\t\\tvec3 position = geometry.position;\\n\\t\\tvec3 lightPos = rectAreaLight.position;\\n\\t\\tvec3 halfWidth = rectAreaLight.halfWidth;\\n\\t\\tvec3 halfHeight = rectAreaLight.halfHeight;\\n\\t\\tvec3 lightColor = rectAreaLight.color;\\n\\t\\tfloat roughness = material.specularRoughness;\\n\\t\\tvec3 rectCoords[ 4 ];\\n\\t\\trectCoords[ 0 ] = lightPos + halfWidth - halfHeight;\\t\\trectCoords[ 1 ] = lightPos - halfWidth - halfHeight;\\n\\t\\trectCoords[ 2 ] = lightPos - halfWidth + halfHeight;\\n\\t\\trectCoords[ 3 ] = lightPos + halfWidth + halfHeight;\\n\\t\\tvec2 uv = LTC_Uv( normal, viewDir, roughness );\\n\\t\\tvec4 t1 = texture2D( ltc_1, uv );\\n\\t\\tvec4 t2 = texture2D( ltc_2, uv );\\n\\t\\tmat3 mInv = mat3(\\n\\t\\t\\tvec3( t1.x, 0, t1.y ),\\n\\t\\t\\tvec3( 0, 1, 0 ),\\n\\t\\t\\tvec3( t1.z, 0, t1.w )\\n\\t\\t);\\n\\t\\tvec3 fresnel = ( material.specularColor * t2.x + ( vec3( 1.0 ) - material.specularColor ) * t2.y );\\n\\t\\treflectedLight.directSpecular += lightColor * fresnel * LTC_Evaluate( normal, viewDir, position, mInv, rectCoords );\\n\\t\\treflectedLight.directDiffuse += lightColor * material.diffuseColor * LTC_Evaluate( normal, viewDir, position, mat3( 1.0 ), rectCoords );\\n\\t}\\n#endif\\nvoid RE_Direct_Physical( const in IncidentLight directLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\\n\\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\\n\\tvec3 irradiance = dotNL * directLight.color;\\n\\t#ifndef PHYSICALLY_CORRECT_LIGHTS\\n\\t\\tirradiance *= PI;\\n\\t#endif\\n\\t#ifdef CLEARCOAT\\n\\t\\tfloat ccDotNL = saturate( dot( geometry.clearcoatNormal, directLight.direction ) );\\n\\t\\tvec3 ccIrradiance = ccDotNL * directLight.color;\\n\\t\\t#ifndef PHYSICALLY_CORRECT_LIGHTS\\n\\t\\t\\tccIrradiance *= PI;\\n\\t\\t#endif\\n\\t\\tfloat clearcoatDHR = material.clearcoat * clearcoatDHRApprox( material.clearcoatRoughness, ccDotNL );\\n\\t\\treflectedLight.directSpecular += ccIrradiance * material.clearcoat * BRDF_Specular_GGX( directLight, geometry.viewDir, geometry.clearcoatNormal, vec3( DEFAULT_SPECULAR_COEFFICIENT ), material.clearcoatRoughness );\\n\\t#else\\n\\t\\tfloat clearcoatDHR = 0.0;\\n\\t#endif\\n\\t#ifdef USE_SHEEN\\n\\t\\treflectedLight.directSpecular += ( 1.0 - clearcoatDHR ) * irradiance * BRDF_Specular_Sheen(\\n\\t\\t\\tmaterial.specularRoughness,\\n\\t\\t\\tdirectLight.direction,\\n\\t\\t\\tgeometry,\\n\\t\\t\\tmaterial.sheenColor\\n\\t\\t);\\n\\t#else\\n\\t\\treflectedLight.directSpecular += ( 1.0 - clearcoatDHR ) * irradiance * BRDF_Specular_GGX( directLight, geometry.viewDir, geometry.normal, material.specularColor, material.specularRoughness);\\n\\t#endif\\n\\treflectedLight.directDiffuse += ( 1.0 - clearcoatDHR ) * irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\\n}\\nvoid RE_IndirectDiffuse_Physical( const in vec3 irradiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\\n\\treflectedLight.indirectDiffuse += irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\\n}\\nvoid RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 irradiance, const in vec3 clearcoatRadiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight) {\\n\\t#ifdef CLEARCOAT\\n\\t\\tfloat ccDotNV = saturate( dot( geometry.clearcoatNormal, geometry.viewDir ) );\\n\\t\\treflectedLight.indirectSpecular += clearcoatRadiance * material.clearcoat * BRDF_Specular_GGX_Environment( geometry.viewDir, geometry.clearcoatNormal, vec3( DEFAULT_SPECULAR_COEFFICIENT ), material.clearcoatRoughness );\\n\\t\\tfloat ccDotNL = ccDotNV;\\n\\t\\tfloat clearcoatDHR = material.clearcoat * clearcoatDHRApprox( material.clearcoatRoughness, ccDotNL );\\n\\t#else\\n\\t\\tfloat clearcoatDHR = 0.0;\\n\\t#endif\\n\\tfloat clearcoatInv = 1.0 - clearcoatDHR;\\n\\tvec3 singleScattering = vec3( 0.0 );\\n\\tvec3 multiScattering = vec3( 0.0 );\\n\\tvec3 cosineWeightedIrradiance = irradiance * RECIPROCAL_PI;\\n\\tBRDF_Specular_Multiscattering_Environment( geometry, material.specularColor, material.specularRoughness, singleScattering, multiScattering );\\n\\tvec3 diffuse = material.diffuseColor * ( 1.0 - ( singleScattering + multiScattering ) );\\n\\treflectedLight.indirectSpecular += clearcoatInv * radiance * singleScattering;\\n\\treflectedLight.indirectSpecular += multiScattering * cosineWeightedIrradiance;\\n\\treflectedLight.indirectDiffuse += diffuse * cosineWeightedIrradiance;\\n}\\n#define RE_Direct\\t\\t\\t\\tRE_Direct_Physical\\n#define RE_Direct_RectArea\\t\\tRE_Direct_RectArea_Physical\\n#define RE_IndirectDiffuse\\t\\tRE_IndirectDiffuse_Physical\\n#define RE_IndirectSpecular\\t\\tRE_IndirectSpecular_Physical\\nfloat computeSpecularOcclusion( const in float dotNV, const in float ambientOcclusion, const in float roughness ) {\\n\\treturn saturate( pow( dotNV + ambientOcclusion, exp2( - 16.0 * roughness - 1.0 ) ) - 1.0 + ambientOcclusion );\\n}\";\n\nvar lights_fragment_begin = \"\\nGeometricContext geometry;\\ngeometry.position = - vViewPosition;\\ngeometry.normal = normal;\\ngeometry.viewDir = ( isOrthographic ) ? vec3( 0, 0, 1 ) : normalize( vViewPosition );\\n#ifdef CLEARCOAT\\n\\tgeometry.clearcoatNormal = clearcoatNormal;\\n#endif\\nIncidentLight directLight;\\n#if ( NUM_POINT_LIGHTS > 0 ) && defined( RE_Direct )\\n\\tPointLight pointLight;\\n\\t#if defined( USE_SHADOWMAP ) && NUM_POINT_LIGHT_SHADOWS > 0\\n\\tPointLightShadow pointLightShadow;\\n\\t#endif\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\\n\\t\\tpointLight = pointLights[ i ];\\n\\t\\tgetPointDirectLightIrradiance( pointLight, geometry, directLight );\\n\\t\\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_POINT_LIGHT_SHADOWS )\\n\\t\\tpointLightShadow = pointLightShadows[ i ];\\n\\t\\tdirectLight.color *= all( bvec2( directLight.visible, receiveShadow ) ) ? getPointShadow( pointShadowMap[ i ], pointLightShadow.shadowMapSize, pointLightShadow.shadowBias, pointLightShadow.shadowRadius, vPointShadowCoord[ i ], pointLightShadow.shadowCameraNear, pointLightShadow.shadowCameraFar ) : 1.0;\\n\\t\\t#endif\\n\\t\\tRE_Direct( directLight, geometry, material, reflectedLight );\\n\\t}\\n\\t#pragma unroll_loop_end\\n#endif\\n#if ( NUM_SPOT_LIGHTS > 0 ) && defined( RE_Direct )\\n\\tSpotLight spotLight;\\n\\t#if defined( USE_SHADOWMAP ) && NUM_SPOT_LIGHT_SHADOWS > 0\\n\\tSpotLightShadow spotLightShadow;\\n\\t#endif\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\\n\\t\\tspotLight = spotLights[ i ];\\n\\t\\tgetSpotDirectLightIrradiance( spotLight, geometry, directLight );\\n\\t\\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_SPOT_LIGHT_SHADOWS )\\n\\t\\tspotLightShadow = spotLightShadows[ i ];\\n\\t\\tdirectLight.color *= all( bvec2( directLight.visible, receiveShadow ) ) ? getShadow( spotShadowMap[ i ], spotLightShadow.shadowMapSize, spotLightShadow.shadowBias, spotLightShadow.shadowRadius, vSpotShadowCoord[ i ] ) : 1.0;\\n\\t\\t#endif\\n\\t\\tRE_Direct( directLight, geometry, material, reflectedLight );\\n\\t}\\n\\t#pragma unroll_loop_end\\n#endif\\n#if ( NUM_DIR_LIGHTS > 0 ) && defined( RE_Direct )\\n\\tDirectionalLight directionalLight;\\n\\t#if defined( USE_SHADOWMAP ) && NUM_DIR_LIGHT_SHADOWS > 0\\n\\tDirectionalLightShadow directionalLightShadow;\\n\\t#endif\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\\n\\t\\tdirectionalLight = directionalLights[ i ];\\n\\t\\tgetDirectionalDirectLightIrradiance( directionalLight, geometry, directLight );\\n\\t\\t#if defined( USE_SHADOWMAP ) && ( UNROLLED_LOOP_INDEX < NUM_DIR_LIGHT_SHADOWS )\\n\\t\\tdirectionalLightShadow = directionalLightShadows[ i ];\\n\\t\\tdirectLight.color *= all( bvec2( directLight.visible, receiveShadow ) ) ? getShadow( directionalShadowMap[ i ], directionalLightShadow.shadowMapSize, directionalLightShadow.shadowBias, directionalLightShadow.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\\n\\t\\t#endif\\n\\t\\tRE_Direct( directLight, geometry, material, reflectedLight );\\n\\t}\\n\\t#pragma unroll_loop_end\\n#endif\\n#if ( NUM_RECT_AREA_LIGHTS > 0 ) && defined( RE_Direct_RectArea )\\n\\tRectAreaLight rectAreaLight;\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_RECT_AREA_LIGHTS; i ++ ) {\\n\\t\\trectAreaLight = rectAreaLights[ i ];\\n\\t\\tRE_Direct_RectArea( rectAreaLight, geometry, material, reflectedLight );\\n\\t}\\n\\t#pragma unroll_loop_end\\n#endif\\n#if defined( RE_IndirectDiffuse )\\n\\tvec3 iblIrradiance = vec3( 0.0 );\\n\\tvec3 irradiance = getAmbientLightIrradiance( ambientLightColor );\\n\\tirradiance += getLightProbeIrradiance( lightProbe, geometry );\\n\\t#if ( NUM_HEMI_LIGHTS > 0 )\\n\\t\\t#pragma unroll_loop_start\\n\\t\\tfor ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {\\n\\t\\t\\tirradiance += getHemisphereLightIrradiance( hemisphereLights[ i ], geometry );\\n\\t\\t}\\n\\t\\t#pragma unroll_loop_end\\n\\t#endif\\n#endif\\n#if defined( RE_IndirectSpecular )\\n\\tvec3 radiance = vec3( 0.0 );\\n\\tvec3 clearcoatRadiance = vec3( 0.0 );\\n#endif\";\n\nvar lights_fragment_maps = \"#if defined( RE_IndirectDiffuse )\\n\\t#ifdef USE_LIGHTMAP\\n\\t\\tvec4 lightMapTexel= texture2D( lightMap, vUv2 );\\n\\t\\tvec3 lightMapIrradiance = lightMapTexelToLinear( lightMapTexel ).rgb * lightMapIntensity;\\n\\t\\t#ifndef PHYSICALLY_CORRECT_LIGHTS\\n\\t\\t\\tlightMapIrradiance *= PI;\\n\\t\\t#endif\\n\\t\\tirradiance += lightMapIrradiance;\\n\\t#endif\\n\\t#if defined( USE_ENVMAP ) && defined( STANDARD ) && defined( ENVMAP_TYPE_CUBE_UV )\\n\\t\\tiblIrradiance += getLightProbeIndirectIrradiance( geometry, maxMipLevel );\\n\\t#endif\\n#endif\\n#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular )\\n\\tradiance += getLightProbeIndirectRadiance( geometry.viewDir, geometry.normal, material.specularRoughness, maxMipLevel );\\n\\t#ifdef CLEARCOAT\\n\\t\\tclearcoatRadiance += getLightProbeIndirectRadiance( geometry.viewDir, geometry.clearcoatNormal, material.clearcoatRoughness, maxMipLevel );\\n\\t#endif\\n#endif\";\n\nvar lights_fragment_end = \"#if defined( RE_IndirectDiffuse )\\n\\tRE_IndirectDiffuse( irradiance, geometry, material, reflectedLight );\\n#endif\\n#if defined( RE_IndirectSpecular )\\n\\tRE_IndirectSpecular( radiance, iblIrradiance, clearcoatRadiance, geometry, material, reflectedLight );\\n#endif\";\n\nvar logdepthbuf_fragment = \"#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT )\\n\\tgl_FragDepthEXT = vIsPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;\\n#endif\";\n\nvar logdepthbuf_pars_fragment = \"#if defined( USE_LOGDEPTHBUF ) && defined( USE_LOGDEPTHBUF_EXT )\\n\\tuniform float logDepthBufFC;\\n\\tvarying float vFragDepth;\\n\\tvarying float vIsPerspective;\\n#endif\";\n\nvar logdepthbuf_pars_vertex = \"#ifdef USE_LOGDEPTHBUF\\n\\t#ifdef USE_LOGDEPTHBUF_EXT\\n\\t\\tvarying float vFragDepth;\\n\\t\\tvarying float vIsPerspective;\\n\\t#else\\n\\t\\tuniform float logDepthBufFC;\\n\\t#endif\\n#endif\";\n\nvar logdepthbuf_vertex = \"#ifdef USE_LOGDEPTHBUF\\n\\t#ifdef USE_LOGDEPTHBUF_EXT\\n\\t\\tvFragDepth = 1.0 + gl_Position.w;\\n\\t\\tvIsPerspective = float( isPerspectiveMatrix( projectionMatrix ) );\\n\\t#else\\n\\t\\tif ( isPerspectiveMatrix( projectionMatrix ) ) {\\n\\t\\t\\tgl_Position.z = log2( max( EPSILON, gl_Position.w + 1.0 ) ) * logDepthBufFC - 1.0;\\n\\t\\t\\tgl_Position.z *= gl_Position.w;\\n\\t\\t}\\n\\t#endif\\n#endif\";\n\nvar map_fragment = \"#ifdef USE_MAP\\n\\tvec4 texelColor = texture2D( map, vUv );\\n\\ttexelColor = mapTexelToLinear( texelColor );\\n\\tdiffuseColor *= texelColor;\\n#endif\";\n\nvar map_pars_fragment = \"#ifdef USE_MAP\\n\\tuniform sampler2D map;\\n#endif\";\n\nvar map_particle_fragment = \"#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\\n\\tvec2 uv = ( uvTransform * vec3( gl_PointCoord.x, 1.0 - gl_PointCoord.y, 1 ) ).xy;\\n#endif\\n#ifdef USE_MAP\\n\\tvec4 mapTexel = texture2D( map, uv );\\n\\tdiffuseColor *= mapTexelToLinear( mapTexel );\\n#endif\\n#ifdef USE_ALPHAMAP\\n\\tdiffuseColor.a *= texture2D( alphaMap, uv ).g;\\n#endif\";\n\nvar map_particle_pars_fragment = \"#if defined( USE_MAP ) || defined( USE_ALPHAMAP )\\n\\tuniform mat3 uvTransform;\\n#endif\\n#ifdef USE_MAP\\n\\tuniform sampler2D map;\\n#endif\\n#ifdef USE_ALPHAMAP\\n\\tuniform sampler2D alphaMap;\\n#endif\";\n\nvar metalnessmap_fragment = \"float metalnessFactor = metalness;\\n#ifdef USE_METALNESSMAP\\n\\tvec4 texelMetalness = texture2D( metalnessMap, vUv );\\n\\tmetalnessFactor *= texelMetalness.b;\\n#endif\";\n\nvar metalnessmap_pars_fragment = \"#ifdef USE_METALNESSMAP\\n\\tuniform sampler2D metalnessMap;\\n#endif\";\n\nvar morphnormal_vertex = \"#ifdef USE_MORPHNORMALS\\n\\tobjectNormal *= morphTargetBaseInfluence;\\n\\tobjectNormal += morphNormal0 * morphTargetInfluences[ 0 ];\\n\\tobjectNormal += morphNormal1 * morphTargetInfluences[ 1 ];\\n\\tobjectNormal += morphNormal2 * morphTargetInfluences[ 2 ];\\n\\tobjectNormal += morphNormal3 * morphTargetInfluences[ 3 ];\\n#endif\";\n\nvar morphtarget_pars_vertex = \"#ifdef USE_MORPHTARGETS\\n\\tuniform float morphTargetBaseInfluence;\\n\\t#ifndef USE_MORPHNORMALS\\n\\t\\tuniform float morphTargetInfluences[ 8 ];\\n\\t#else\\n\\t\\tuniform float morphTargetInfluences[ 4 ];\\n\\t#endif\\n#endif\";\n\nvar morphtarget_vertex = \"#ifdef USE_MORPHTARGETS\\n\\ttransformed *= morphTargetBaseInfluence;\\n\\ttransformed += morphTarget0 * morphTargetInfluences[ 0 ];\\n\\ttransformed += morphTarget1 * morphTargetInfluences[ 1 ];\\n\\ttransformed += morphTarget2 * morphTargetInfluences[ 2 ];\\n\\ttransformed += morphTarget3 * morphTargetInfluences[ 3 ];\\n\\t#ifndef USE_MORPHNORMALS\\n\\t\\ttransformed += morphTarget4 * morphTargetInfluences[ 4 ];\\n\\t\\ttransformed += morphTarget5 * morphTargetInfluences[ 5 ];\\n\\t\\ttransformed += morphTarget6 * morphTargetInfluences[ 6 ];\\n\\t\\ttransformed += morphTarget7 * morphTargetInfluences[ 7 ];\\n\\t#endif\\n#endif\";\n\nvar normal_fragment_begin = \"#ifdef FLAT_SHADED\\n\\tvec3 fdx = vec3( dFdx( vViewPosition.x ), dFdx( vViewPosition.y ), dFdx( vViewPosition.z ) );\\n\\tvec3 fdy = vec3( dFdy( vViewPosition.x ), dFdy( vViewPosition.y ), dFdy( vViewPosition.z ) );\\n\\tvec3 normal = normalize( cross( fdx, fdy ) );\\n#else\\n\\tvec3 normal = normalize( vNormal );\\n\\t#ifdef DOUBLE_SIDED\\n\\t\\tnormal = normal * ( float( gl_FrontFacing ) * 2.0 - 1.0 );\\n\\t#endif\\n\\t#ifdef USE_TANGENT\\n\\t\\tvec3 tangent = normalize( vTangent );\\n\\t\\tvec3 bitangent = normalize( vBitangent );\\n\\t\\t#ifdef DOUBLE_SIDED\\n\\t\\t\\ttangent = tangent * ( float( gl_FrontFacing ) * 2.0 - 1.0 );\\n\\t\\t\\tbitangent = bitangent * ( float( gl_FrontFacing ) * 2.0 - 1.0 );\\n\\t\\t#endif\\n\\t\\t#if defined( TANGENTSPACE_NORMALMAP ) || defined( USE_CLEARCOAT_NORMALMAP )\\n\\t\\t\\tmat3 vTBN = mat3( tangent, bitangent, normal );\\n\\t\\t#endif\\n\\t#endif\\n#endif\\nvec3 geometryNormal = normal;\";\n\nvar normal_fragment_maps = \"#ifdef OBJECTSPACE_NORMALMAP\\n\\tnormal = texture2D( normalMap, vUv ).xyz * 2.0 - 1.0;\\n\\t#ifdef FLIP_SIDED\\n\\t\\tnormal = - normal;\\n\\t#endif\\n\\t#ifdef DOUBLE_SIDED\\n\\t\\tnormal = normal * ( float( gl_FrontFacing ) * 2.0 - 1.0 );\\n\\t#endif\\n\\tnormal = normalize( normalMatrix * normal );\\n#elif defined( TANGENTSPACE_NORMALMAP )\\n\\tvec3 mapN = texture2D( normalMap, vUv ).xyz * 2.0 - 1.0;\\n\\tmapN.xy *= normalScale;\\n\\t#ifdef USE_TANGENT\\n\\t\\tnormal = normalize( vTBN * mapN );\\n\\t#else\\n\\t\\tnormal = perturbNormal2Arb( -vViewPosition, normal, mapN );\\n\\t#endif\\n#elif defined( USE_BUMPMAP )\\n\\tnormal = perturbNormalArb( -vViewPosition, normal, dHdxy_fwd() );\\n#endif\";\n\nvar normalmap_pars_fragment = \"#ifdef USE_NORMALMAP\\n\\tuniform sampler2D normalMap;\\n\\tuniform vec2 normalScale;\\n#endif\\n#ifdef OBJECTSPACE_NORMALMAP\\n\\tuniform mat3 normalMatrix;\\n#endif\\n#if ! defined ( USE_TANGENT ) && ( defined ( TANGENTSPACE_NORMALMAP ) || defined ( USE_CLEARCOAT_NORMALMAP ) )\\n\\tvec3 perturbNormal2Arb( vec3 eye_pos, vec3 surf_norm, vec3 mapN ) {\\n\\t\\tvec3 q0 = vec3( dFdx( eye_pos.x ), dFdx( eye_pos.y ), dFdx( eye_pos.z ) );\\n\\t\\tvec3 q1 = vec3( dFdy( eye_pos.x ), dFdy( eye_pos.y ), dFdy( eye_pos.z ) );\\n\\t\\tvec2 st0 = dFdx( vUv.st );\\n\\t\\tvec2 st1 = dFdy( vUv.st );\\n\\t\\tfloat scale = sign( st1.t * st0.s - st0.t * st1.s );\\n\\t\\tvec3 S = normalize( ( q0 * st1.t - q1 * st0.t ) * scale );\\n\\t\\tvec3 T = normalize( ( - q0 * st1.s + q1 * st0.s ) * scale );\\n\\t\\tvec3 N = normalize( surf_norm );\\n\\t\\tmat3 tsn = mat3( S, T, N );\\n\\t\\tmapN.xy *= ( float( gl_FrontFacing ) * 2.0 - 1.0 );\\n\\t\\treturn normalize( tsn * mapN );\\n\\t}\\n#endif\";\n\nvar clearcoat_normal_fragment_begin = \"#ifdef CLEARCOAT\\n\\tvec3 clearcoatNormal = geometryNormal;\\n#endif\";\n\nvar clearcoat_normal_fragment_maps = \"#ifdef USE_CLEARCOAT_NORMALMAP\\n\\tvec3 clearcoatMapN = texture2D( clearcoatNormalMap, vUv ).xyz * 2.0 - 1.0;\\n\\tclearcoatMapN.xy *= clearcoatNormalScale;\\n\\t#ifdef USE_TANGENT\\n\\t\\tclearcoatNormal = normalize( vTBN * clearcoatMapN );\\n\\t#else\\n\\t\\tclearcoatNormal = perturbNormal2Arb( - vViewPosition, clearcoatNormal, clearcoatMapN );\\n\\t#endif\\n#endif\";\n\nvar clearcoat_pars_fragment = \"#ifdef USE_CLEARCOATMAP\\n\\tuniform sampler2D clearcoatMap;\\n#endif\\n#ifdef USE_CLEARCOAT_ROUGHNESSMAP\\n\\tuniform sampler2D clearcoatRoughnessMap;\\n#endif\\n#ifdef USE_CLEARCOAT_NORMALMAP\\n\\tuniform sampler2D clearcoatNormalMap;\\n\\tuniform vec2 clearcoatNormalScale;\\n#endif\";\n\nvar packing = \"vec3 packNormalToRGB( const in vec3 normal ) {\\n\\treturn normalize( normal ) * 0.5 + 0.5;\\n}\\nvec3 unpackRGBToNormal( const in vec3 rgb ) {\\n\\treturn 2.0 * rgb.xyz - 1.0;\\n}\\nconst float PackUpscale = 256. / 255.;const float UnpackDownscale = 255. / 256.;\\nconst vec3 PackFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );\\nconst vec4 UnpackFactors = UnpackDownscale / vec4( PackFactors, 1. );\\nconst float ShiftRight8 = 1. / 256.;\\nvec4 packDepthToRGBA( const in float v ) {\\n\\tvec4 r = vec4( fract( v * PackFactors ), v );\\n\\tr.yzw -= r.xyz * ShiftRight8;\\treturn r * PackUpscale;\\n}\\nfloat unpackRGBAToDepth( const in vec4 v ) {\\n\\treturn dot( v, UnpackFactors );\\n}\\nvec4 pack2HalfToRGBA( vec2 v ) {\\n\\tvec4 r = vec4( v.x, fract( v.x * 255.0 ), v.y, fract( v.y * 255.0 ));\\n\\treturn vec4( r.x - r.y / 255.0, r.y, r.z - r.w / 255.0, r.w);\\n}\\nvec2 unpackRGBATo2Half( vec4 v ) {\\n\\treturn vec2( v.x + ( v.y / 255.0 ), v.z + ( v.w / 255.0 ) );\\n}\\nfloat viewZToOrthographicDepth( const in float viewZ, const in float near, const in float far ) {\\n\\treturn ( viewZ + near ) / ( near - far );\\n}\\nfloat orthographicDepthToViewZ( const in float linearClipZ, const in float near, const in float far ) {\\n\\treturn linearClipZ * ( near - far ) - near;\\n}\\nfloat viewZToPerspectiveDepth( const in float viewZ, const in float near, const in float far ) {\\n\\treturn (( near + viewZ ) * far ) / (( far - near ) * viewZ );\\n}\\nfloat perspectiveDepthToViewZ( const in float invClipZ, const in float near, const in float far ) {\\n\\treturn ( near * far ) / ( ( far - near ) * invClipZ - far );\\n}\";\n\nvar premultiplied_alpha_fragment = \"#ifdef PREMULTIPLIED_ALPHA\\n\\tgl_FragColor.rgb *= gl_FragColor.a;\\n#endif\";\n\nvar project_vertex = \"vec4 mvPosition = vec4( transformed, 1.0 );\\n#ifdef USE_INSTANCING\\n\\tmvPosition = instanceMatrix * mvPosition;\\n#endif\\nmvPosition = modelViewMatrix * mvPosition;\\ngl_Position = projectionMatrix * mvPosition;\";\n\nvar dithering_fragment = \"#ifdef DITHERING\\n\\tgl_FragColor.rgb = dithering( gl_FragColor.rgb );\\n#endif\";\n\nvar dithering_pars_fragment = \"#ifdef DITHERING\\n\\tvec3 dithering( vec3 color ) {\\n\\t\\tfloat grid_position = rand( gl_FragCoord.xy );\\n\\t\\tvec3 dither_shift_RGB = vec3( 0.25 / 255.0, -0.25 / 255.0, 0.25 / 255.0 );\\n\\t\\tdither_shift_RGB = mix( 2.0 * dither_shift_RGB, -2.0 * dither_shift_RGB, grid_position );\\n\\t\\treturn color + dither_shift_RGB;\\n\\t}\\n#endif\";\n\nvar roughnessmap_fragment = \"float roughnessFactor = roughness;\\n#ifdef USE_ROUGHNESSMAP\\n\\tvec4 texelRoughness = texture2D( roughnessMap, vUv );\\n\\troughnessFactor *= texelRoughness.g;\\n#endif\";\n\nvar roughnessmap_pars_fragment = \"#ifdef USE_ROUGHNESSMAP\\n\\tuniform sampler2D roughnessMap;\\n#endif\";\n\nvar shadowmap_pars_fragment = \"#ifdef USE_SHADOWMAP\\n\\t#if NUM_DIR_LIGHT_SHADOWS > 0\\n\\t\\tuniform sampler2D directionalShadowMap[ NUM_DIR_LIGHT_SHADOWS ];\\n\\t\\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\\n\\t\\tstruct DirectionalLightShadow {\\n\\t\\t\\tfloat shadowBias;\\n\\t\\t\\tfloat shadowNormalBias;\\n\\t\\t\\tfloat shadowRadius;\\n\\t\\t\\tvec2 shadowMapSize;\\n\\t\\t};\\n\\t\\tuniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];\\n\\t#endif\\n\\t#if NUM_SPOT_LIGHT_SHADOWS > 0\\n\\t\\tuniform sampler2D spotShadowMap[ NUM_SPOT_LIGHT_SHADOWS ];\\n\\t\\tvarying vec4 vSpotShadowCoord[ NUM_SPOT_LIGHT_SHADOWS ];\\n\\t\\tstruct SpotLightShadow {\\n\\t\\t\\tfloat shadowBias;\\n\\t\\t\\tfloat shadowNormalBias;\\n\\t\\t\\tfloat shadowRadius;\\n\\t\\t\\tvec2 shadowMapSize;\\n\\t\\t};\\n\\t\\tuniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];\\n\\t#endif\\n\\t#if NUM_POINT_LIGHT_SHADOWS > 0\\n\\t\\tuniform sampler2D pointShadowMap[ NUM_POINT_LIGHT_SHADOWS ];\\n\\t\\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\\n\\t\\tstruct PointLightShadow {\\n\\t\\t\\tfloat shadowBias;\\n\\t\\t\\tfloat shadowNormalBias;\\n\\t\\t\\tfloat shadowRadius;\\n\\t\\t\\tvec2 shadowMapSize;\\n\\t\\t\\tfloat shadowCameraNear;\\n\\t\\t\\tfloat shadowCameraFar;\\n\\t\\t};\\n\\t\\tuniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];\\n\\t#endif\\n\\tfloat texture2DCompare( sampler2D depths, vec2 uv, float compare ) {\\n\\t\\treturn step( compare, unpackRGBAToDepth( texture2D( depths, uv ) ) );\\n\\t}\\n\\tvec2 texture2DDistribution( sampler2D shadow, vec2 uv ) {\\n\\t\\treturn unpackRGBATo2Half( texture2D( shadow, uv ) );\\n\\t}\\n\\tfloat VSMShadow (sampler2D shadow, vec2 uv, float compare ){\\n\\t\\tfloat occlusion = 1.0;\\n\\t\\tvec2 distribution = texture2DDistribution( shadow, uv );\\n\\t\\tfloat hard_shadow = step( compare , distribution.x );\\n\\t\\tif (hard_shadow != 1.0 ) {\\n\\t\\t\\tfloat distance = compare - distribution.x ;\\n\\t\\t\\tfloat variance = max( 0.00000, distribution.y * distribution.y );\\n\\t\\t\\tfloat softness_probability = variance / (variance + distance * distance );\\t\\t\\tsoftness_probability = clamp( ( softness_probability - 0.3 ) / ( 0.95 - 0.3 ), 0.0, 1.0 );\\t\\t\\tocclusion = clamp( max( hard_shadow, softness_probability ), 0.0, 1.0 );\\n\\t\\t}\\n\\t\\treturn occlusion;\\n\\t}\\n\\tfloat getShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord ) {\\n\\t\\tfloat shadow = 1.0;\\n\\t\\tshadowCoord.xyz /= shadowCoord.w;\\n\\t\\tshadowCoord.z += shadowBias;\\n\\t\\tbvec4 inFrustumVec = bvec4 ( shadowCoord.x >= 0.0, shadowCoord.x <= 1.0, shadowCoord.y >= 0.0, shadowCoord.y <= 1.0 );\\n\\t\\tbool inFrustum = all( inFrustumVec );\\n\\t\\tbvec2 frustumTestVec = bvec2( inFrustum, shadowCoord.z <= 1.0 );\\n\\t\\tbool frustumTest = all( frustumTestVec );\\n\\t\\tif ( frustumTest ) {\\n\\t\\t#if defined( SHADOWMAP_TYPE_PCF )\\n\\t\\t\\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\\n\\t\\t\\tfloat dx0 = - texelSize.x * shadowRadius;\\n\\t\\t\\tfloat dy0 = - texelSize.y * shadowRadius;\\n\\t\\t\\tfloat dx1 = + texelSize.x * shadowRadius;\\n\\t\\t\\tfloat dy1 = + texelSize.y * shadowRadius;\\n\\t\\t\\tfloat dx2 = dx0 / 2.0;\\n\\t\\t\\tfloat dy2 = dy0 / 2.0;\\n\\t\\t\\tfloat dx3 = dx1 / 2.0;\\n\\t\\t\\tfloat dy3 = dy1 / 2.0;\\n\\t\\t\\tshadow = (\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy2 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy2 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy2 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, 0.0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, 0.0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, 0.0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, 0.0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx2, dy3 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy3 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx3, dy3 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy1 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy1 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy1 ), shadowCoord.z )\\n\\t\\t\\t) * ( 1.0 / 17.0 );\\n\\t\\t#elif defined( SHADOWMAP_TYPE_PCF_SOFT )\\n\\t\\t\\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\\n\\t\\t\\tfloat dx = texelSize.x;\\n\\t\\t\\tfloat dy = texelSize.y;\\n\\t\\t\\tvec2 uv = shadowCoord.xy;\\n\\t\\t\\tvec2 f = fract( uv * shadowMapSize + 0.5 );\\n\\t\\t\\tuv -= f * texelSize;\\n\\t\\t\\tshadow = (\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, uv, shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, uv + vec2( dx, 0.0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, uv + vec2( 0.0, dy ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, uv + texelSize, shadowCoord.z ) +\\n\\t\\t\\t\\tmix( texture2DCompare( shadowMap, uv + vec2( -dx, 0.0 ), shadowCoord.z ), \\n\\t\\t\\t\\t\\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 0.0 ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t f.x ) +\\n\\t\\t\\t\\tmix( texture2DCompare( shadowMap, uv + vec2( -dx, dy ), shadowCoord.z ), \\n\\t\\t\\t\\t\\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, dy ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t f.x ) +\\n\\t\\t\\t\\tmix( texture2DCompare( shadowMap, uv + vec2( 0.0, -dy ), shadowCoord.z ), \\n\\t\\t\\t\\t\\t texture2DCompare( shadowMap, uv + vec2( 0.0, 2.0 * dy ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t f.y ) +\\n\\t\\t\\t\\tmix( texture2DCompare( shadowMap, uv + vec2( dx, -dy ), shadowCoord.z ), \\n\\t\\t\\t\\t\\t texture2DCompare( shadowMap, uv + vec2( dx, 2.0 * dy ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t f.y ) +\\n\\t\\t\\t\\tmix( mix( texture2DCompare( shadowMap, uv + vec2( -dx, -dy ), shadowCoord.z ), \\n\\t\\t\\t\\t\\t\\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, -dy ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t\\t f.x ),\\n\\t\\t\\t\\t\\t mix( texture2DCompare( shadowMap, uv + vec2( -dx, 2.0 * dy ), shadowCoord.z ), \\n\\t\\t\\t\\t\\t\\t texture2DCompare( shadowMap, uv + vec2( 2.0 * dx, 2.0 * dy ), shadowCoord.z ),\\n\\t\\t\\t\\t\\t\\t f.x ),\\n\\t\\t\\t\\t\\t f.y )\\n\\t\\t\\t) * ( 1.0 / 9.0 );\\n\\t\\t#elif defined( SHADOWMAP_TYPE_VSM )\\n\\t\\t\\tshadow = VSMShadow( shadowMap, shadowCoord.xy, shadowCoord.z );\\n\\t\\t#else\\n\\t\\t\\tshadow = texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z );\\n\\t\\t#endif\\n\\t\\t}\\n\\t\\treturn shadow;\\n\\t}\\n\\tvec2 cubeToUV( vec3 v, float texelSizeY ) {\\n\\t\\tvec3 absV = abs( v );\\n\\t\\tfloat scaleToCube = 1.0 / max( absV.x, max( absV.y, absV.z ) );\\n\\t\\tabsV *= scaleToCube;\\n\\t\\tv *= scaleToCube * ( 1.0 - 2.0 * texelSizeY );\\n\\t\\tvec2 planar = v.xy;\\n\\t\\tfloat almostATexel = 1.5 * texelSizeY;\\n\\t\\tfloat almostOne = 1.0 - almostATexel;\\n\\t\\tif ( absV.z >= almostOne ) {\\n\\t\\t\\tif ( v.z > 0.0 )\\n\\t\\t\\t\\tplanar.x = 4.0 - v.x;\\n\\t\\t} else if ( absV.x >= almostOne ) {\\n\\t\\t\\tfloat signX = sign( v.x );\\n\\t\\t\\tplanar.x = v.z * signX + 2.0 * signX;\\n\\t\\t} else if ( absV.y >= almostOne ) {\\n\\t\\t\\tfloat signY = sign( v.y );\\n\\t\\t\\tplanar.x = v.x + 2.0 * signY + 2.0;\\n\\t\\t\\tplanar.y = v.z * signY - 2.0;\\n\\t\\t}\\n\\t\\treturn vec2( 0.125, 0.25 ) * planar + vec2( 0.375, 0.75 );\\n\\t}\\n\\tfloat getPointShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord, float shadowCameraNear, float shadowCameraFar ) {\\n\\t\\tvec2 texelSize = vec2( 1.0 ) / ( shadowMapSize * vec2( 4.0, 2.0 ) );\\n\\t\\tvec3 lightToPosition = shadowCoord.xyz;\\n\\t\\tfloat dp = ( length( lightToPosition ) - shadowCameraNear ) / ( shadowCameraFar - shadowCameraNear );\\t\\tdp += shadowBias;\\n\\t\\tvec3 bd3D = normalize( lightToPosition );\\n\\t\\t#if defined( SHADOWMAP_TYPE_PCF ) || defined( SHADOWMAP_TYPE_PCF_SOFT ) || defined( SHADOWMAP_TYPE_VSM )\\n\\t\\t\\tvec2 offset = vec2( - 1, 1 ) * shadowRadius * texelSize.y;\\n\\t\\t\\treturn (\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyy, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyy, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyx, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyx, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxy, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxy, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxx, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxx, texelSize.y ), dp )\\n\\t\\t\\t) * ( 1.0 / 9.0 );\\n\\t\\t#else\\n\\t\\t\\treturn texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp );\\n\\t\\t#endif\\n\\t}\\n#endif\";\n\nvar shadowmap_pars_vertex = \"#ifdef USE_SHADOWMAP\\n\\t#if NUM_DIR_LIGHT_SHADOWS > 0\\n\\t\\tuniform mat4 directionalShadowMatrix[ NUM_DIR_LIGHT_SHADOWS ];\\n\\t\\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHT_SHADOWS ];\\n\\t\\tstruct DirectionalLightShadow {\\n\\t\\t\\tfloat shadowBias;\\n\\t\\t\\tfloat shadowNormalBias;\\n\\t\\t\\tfloat shadowRadius;\\n\\t\\t\\tvec2 shadowMapSize;\\n\\t\\t};\\n\\t\\tuniform DirectionalLightShadow directionalLightShadows[ NUM_DIR_LIGHT_SHADOWS ];\\n\\t#endif\\n\\t#if NUM_SPOT_LIGHT_SHADOWS > 0\\n\\t\\tuniform mat4 spotShadowMatrix[ NUM_SPOT_LIGHT_SHADOWS ];\\n\\t\\tvarying vec4 vSpotShadowCoord[ NUM_SPOT_LIGHT_SHADOWS ];\\n\\t\\tstruct SpotLightShadow {\\n\\t\\t\\tfloat shadowBias;\\n\\t\\t\\tfloat shadowNormalBias;\\n\\t\\t\\tfloat shadowRadius;\\n\\t\\t\\tvec2 shadowMapSize;\\n\\t\\t};\\n\\t\\tuniform SpotLightShadow spotLightShadows[ NUM_SPOT_LIGHT_SHADOWS ];\\n\\t#endif\\n\\t#if NUM_POINT_LIGHT_SHADOWS > 0\\n\\t\\tuniform mat4 pointShadowMatrix[ NUM_POINT_LIGHT_SHADOWS ];\\n\\t\\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHT_SHADOWS ];\\n\\t\\tstruct PointLightShadow {\\n\\t\\t\\tfloat shadowBias;\\n\\t\\t\\tfloat shadowNormalBias;\\n\\t\\t\\tfloat shadowRadius;\\n\\t\\t\\tvec2 shadowMapSize;\\n\\t\\t\\tfloat shadowCameraNear;\\n\\t\\t\\tfloat shadowCameraFar;\\n\\t\\t};\\n\\t\\tuniform PointLightShadow pointLightShadows[ NUM_POINT_LIGHT_SHADOWS ];\\n\\t#endif\\n#endif\";\n\nvar shadowmap_vertex = \"#ifdef USE_SHADOWMAP\\n\\t#if NUM_DIR_LIGHT_SHADOWS > 0 || NUM_SPOT_LIGHT_SHADOWS > 0 || NUM_POINT_LIGHT_SHADOWS > 0\\n\\t\\tvec3 shadowWorldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\\n\\t\\tvec4 shadowWorldPosition;\\n\\t#endif\\n\\t#if NUM_DIR_LIGHT_SHADOWS > 0\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\\n\\t\\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * directionalLightShadows[ i ].shadowNormalBias, 0 );\\n\\t\\tvDirectionalShadowCoord[ i ] = directionalShadowMatrix[ i ] * shadowWorldPosition;\\n\\t}\\n\\t#pragma unroll_loop_end\\n\\t#endif\\n\\t#if NUM_SPOT_LIGHT_SHADOWS > 0\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) {\\n\\t\\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * spotLightShadows[ i ].shadowNormalBias, 0 );\\n\\t\\tvSpotShadowCoord[ i ] = spotShadowMatrix[ i ] * shadowWorldPosition;\\n\\t}\\n\\t#pragma unroll_loop_end\\n\\t#endif\\n\\t#if NUM_POINT_LIGHT_SHADOWS > 0\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\\n\\t\\tshadowWorldPosition = worldPosition + vec4( shadowWorldNormal * pointLightShadows[ i ].shadowNormalBias, 0 );\\n\\t\\tvPointShadowCoord[ i ] = pointShadowMatrix[ i ] * shadowWorldPosition;\\n\\t}\\n\\t#pragma unroll_loop_end\\n\\t#endif\\n#endif\";\n\nvar shadowmask_pars_fragment = \"float getShadowMask() {\\n\\tfloat shadow = 1.0;\\n\\t#ifdef USE_SHADOWMAP\\n\\t#if NUM_DIR_LIGHT_SHADOWS > 0\\n\\tDirectionalLightShadow directionalLight;\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_DIR_LIGHT_SHADOWS; i ++ ) {\\n\\t\\tdirectionalLight = directionalLightShadows[ i ];\\n\\t\\tshadow *= receiveShadow ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\\n\\t}\\n\\t#pragma unroll_loop_end\\n\\t#endif\\n\\t#if NUM_SPOT_LIGHT_SHADOWS > 0\\n\\tSpotLightShadow spotLight;\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_SPOT_LIGHT_SHADOWS; i ++ ) {\\n\\t\\tspotLight = spotLightShadows[ i ];\\n\\t\\tshadow *= receiveShadow ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowBias, spotLight.shadowRadius, vSpotShadowCoord[ i ] ) : 1.0;\\n\\t}\\n\\t#pragma unroll_loop_end\\n\\t#endif\\n\\t#if NUM_POINT_LIGHT_SHADOWS > 0\\n\\tPointLightShadow pointLight;\\n\\t#pragma unroll_loop_start\\n\\tfor ( int i = 0; i < NUM_POINT_LIGHT_SHADOWS; i ++ ) {\\n\\t\\tpointLight = pointLightShadows[ i ];\\n\\t\\tshadow *= receiveShadow ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ], pointLight.shadowCameraNear, pointLight.shadowCameraFar ) : 1.0;\\n\\t}\\n\\t#pragma unroll_loop_end\\n\\t#endif\\n\\t#endif\\n\\treturn shadow;\\n}\";\n\nvar skinbase_vertex = \"#ifdef USE_SKINNING\\n\\tmat4 boneMatX = getBoneMatrix( skinIndex.x );\\n\\tmat4 boneMatY = getBoneMatrix( skinIndex.y );\\n\\tmat4 boneMatZ = getBoneMatrix( skinIndex.z );\\n\\tmat4 boneMatW = getBoneMatrix( skinIndex.w );\\n#endif\";\n\nvar skinning_pars_vertex = \"#ifdef USE_SKINNING\\n\\tuniform mat4 bindMatrix;\\n\\tuniform mat4 bindMatrixInverse;\\n\\t#ifdef BONE_TEXTURE\\n\\t\\tuniform highp sampler2D boneTexture;\\n\\t\\tuniform int boneTextureSize;\\n\\t\\tmat4 getBoneMatrix( const in float i ) {\\n\\t\\t\\tfloat j = i * 4.0;\\n\\t\\t\\tfloat x = mod( j, float( boneTextureSize ) );\\n\\t\\t\\tfloat y = floor( j / float( boneTextureSize ) );\\n\\t\\t\\tfloat dx = 1.0 / float( boneTextureSize );\\n\\t\\t\\tfloat dy = 1.0 / float( boneTextureSize );\\n\\t\\t\\ty = dy * ( y + 0.5 );\\n\\t\\t\\tvec4 v1 = texture2D( boneTexture, vec2( dx * ( x + 0.5 ), y ) );\\n\\t\\t\\tvec4 v2 = texture2D( boneTexture, vec2( dx * ( x + 1.5 ), y ) );\\n\\t\\t\\tvec4 v3 = texture2D( boneTexture, vec2( dx * ( x + 2.5 ), y ) );\\n\\t\\t\\tvec4 v4 = texture2D( boneTexture, vec2( dx * ( x + 3.5 ), y ) );\\n\\t\\t\\tmat4 bone = mat4( v1, v2, v3, v4 );\\n\\t\\t\\treturn bone;\\n\\t\\t}\\n\\t#else\\n\\t\\tuniform mat4 boneMatrices[ MAX_BONES ];\\n\\t\\tmat4 getBoneMatrix( const in float i ) {\\n\\t\\t\\tmat4 bone = boneMatrices[ int(i) ];\\n\\t\\t\\treturn bone;\\n\\t\\t}\\n\\t#endif\\n#endif\";\n\nvar skinning_vertex = \"#ifdef USE_SKINNING\\n\\tvec4 skinVertex = bindMatrix * vec4( transformed, 1.0 );\\n\\tvec4 skinned = vec4( 0.0 );\\n\\tskinned += boneMatX * skinVertex * skinWeight.x;\\n\\tskinned += boneMatY * skinVertex * skinWeight.y;\\n\\tskinned += boneMatZ * skinVertex * skinWeight.z;\\n\\tskinned += boneMatW * skinVertex * skinWeight.w;\\n\\ttransformed = ( bindMatrixInverse * skinned ).xyz;\\n#endif\";\n\nvar skinnormal_vertex = \"#ifdef USE_SKINNING\\n\\tmat4 skinMatrix = mat4( 0.0 );\\n\\tskinMatrix += skinWeight.x * boneMatX;\\n\\tskinMatrix += skinWeight.y * boneMatY;\\n\\tskinMatrix += skinWeight.z * boneMatZ;\\n\\tskinMatrix += skinWeight.w * boneMatW;\\n\\tskinMatrix = bindMatrixInverse * skinMatrix * bindMatrix;\\n\\tobjectNormal = vec4( skinMatrix * vec4( objectNormal, 0.0 ) ).xyz;\\n\\t#ifdef USE_TANGENT\\n\\t\\tobjectTangent = vec4( skinMatrix * vec4( objectTangent, 0.0 ) ).xyz;\\n\\t#endif\\n#endif\";\n\nvar specularmap_fragment = \"float specularStrength;\\n#ifdef USE_SPECULARMAP\\n\\tvec4 texelSpecular = texture2D( specularMap, vUv );\\n\\tspecularStrength = texelSpecular.r;\\n#else\\n\\tspecularStrength = 1.0;\\n#endif\";\n\nvar specularmap_pars_fragment = \"#ifdef USE_SPECULARMAP\\n\\tuniform sampler2D specularMap;\\n#endif\";\n\nvar tonemapping_fragment = \"#if defined( TONE_MAPPING )\\n\\tgl_FragColor.rgb = toneMapping( gl_FragColor.rgb );\\n#endif\";\n\nvar tonemapping_pars_fragment = \"#ifndef saturate\\n#define saturate(a) clamp( a, 0.0, 1.0 )\\n#endif\\nuniform float toneMappingExposure;\\nvec3 LinearToneMapping( vec3 color ) {\\n\\treturn toneMappingExposure * color;\\n}\\nvec3 ReinhardToneMapping( vec3 color ) {\\n\\tcolor *= toneMappingExposure;\\n\\treturn saturate( color / ( vec3( 1.0 ) + color ) );\\n}\\nvec3 OptimizedCineonToneMapping( vec3 color ) {\\n\\tcolor *= toneMappingExposure;\\n\\tcolor = max( vec3( 0.0 ), color - 0.004 );\\n\\treturn pow( ( color * ( 6.2 * color + 0.5 ) ) / ( color * ( 6.2 * color + 1.7 ) + 0.06 ), vec3( 2.2 ) );\\n}\\nvec3 RRTAndODTFit( vec3 v ) {\\n\\tvec3 a = v * ( v + 0.0245786 ) - 0.000090537;\\n\\tvec3 b = v * ( 0.983729 * v + 0.4329510 ) + 0.238081;\\n\\treturn a / b;\\n}\\nvec3 ACESFilmicToneMapping( vec3 color ) {\\n\\tconst mat3 ACESInputMat = mat3(\\n\\t\\tvec3( 0.59719, 0.07600, 0.02840 ),\\t\\tvec3( 0.35458, 0.90834, 0.13383 ),\\n\\t\\tvec3( 0.04823, 0.01566, 0.83777 )\\n\\t);\\n\\tconst mat3 ACESOutputMat = mat3(\\n\\t\\tvec3( 1.60475, -0.10208, -0.00327 ),\\t\\tvec3( -0.53108, 1.10813, -0.07276 ),\\n\\t\\tvec3( -0.07367, -0.00605, 1.07602 )\\n\\t);\\n\\tcolor *= toneMappingExposure / 0.6;\\n\\tcolor = ACESInputMat * color;\\n\\tcolor = RRTAndODTFit( color );\\n\\tcolor = ACESOutputMat * color;\\n\\treturn saturate( color );\\n}\\nvec3 CustomToneMapping( vec3 color ) { return color; }\";\n\nvar transmissionmap_fragment = \"#ifdef USE_TRANSMISSIONMAP\\n\\ttotalTransmission *= texture2D( transmissionMap, vUv ).r;\\n#endif\";\n\nvar transmissionmap_pars_fragment = \"#ifdef USE_TRANSMISSIONMAP\\n\\tuniform sampler2D transmissionMap;\\n#endif\";\n\nvar uv_pars_fragment = \"#if ( defined( USE_UV ) && ! defined( UVS_VERTEX_ONLY ) )\\n\\tvarying vec2 vUv;\\n#endif\";\n\nvar uv_pars_vertex = \"#ifdef USE_UV\\n\\t#ifdef UVS_VERTEX_ONLY\\n\\t\\tvec2 vUv;\\n\\t#else\\n\\t\\tvarying vec2 vUv;\\n\\t#endif\\n\\tuniform mat3 uvTransform;\\n#endif\";\n\nvar uv_vertex = \"#ifdef USE_UV\\n\\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\\n#endif\";\n\nvar uv2_pars_fragment = \"#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\\n\\tvarying vec2 vUv2;\\n#endif\";\n\nvar uv2_pars_vertex = \"#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\\n\\tattribute vec2 uv2;\\n\\tvarying vec2 vUv2;\\n\\tuniform mat3 uv2Transform;\\n#endif\";\n\nvar uv2_vertex = \"#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\\n\\tvUv2 = ( uv2Transform * vec3( uv2, 1 ) ).xy;\\n#endif\";\n\nvar worldpos_vertex = \"#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP )\\n\\tvec4 worldPosition = vec4( transformed, 1.0 );\\n\\t#ifdef USE_INSTANCING\\n\\t\\tworldPosition = instanceMatrix * worldPosition;\\n\\t#endif\\n\\tworldPosition = modelMatrix * worldPosition;\\n#endif\";\n\nvar background_frag = \"uniform sampler2D t2D;\\nvarying vec2 vUv;\\nvoid main() {\\n\\tvec4 texColor = texture2D( t2D, vUv );\\n\\tgl_FragColor = mapTexelToLinear( texColor );\\n\\t#include \\n\\t#include \\n}\";\n\nvar background_vert = \"varying vec2 vUv;\\nuniform mat3 uvTransform;\\nvoid main() {\\n\\tvUv = ( uvTransform * vec3( uv, 1 ) ).xy;\\n\\tgl_Position = vec4( position.xy, 1.0, 1.0 );\\n}\";\n\nvar cube_frag = \"#include \\nuniform float opacity;\\nvarying vec3 vWorldDirection;\\n#include \\nvoid main() {\\n\\tvec3 vReflect = vWorldDirection;\\n\\t#include \\n\\tgl_FragColor = envColor;\\n\\tgl_FragColor.a *= opacity;\\n\\t#include \\n\\t#include \\n}\";\n\nvar cube_vert = \"varying vec3 vWorldDirection;\\n#include \\nvoid main() {\\n\\tvWorldDirection = transformDirection( position, modelMatrix );\\n\\t#include \\n\\t#include \\n\\tgl_Position.z = gl_Position.w;\\n}\";\n\nvar depth_frag = \"#if DEPTH_PACKING == 3200\\n\\tuniform float opacity;\\n#endif\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvarying vec2 vHighPrecisionZW;\\nvoid main() {\\n\\t#include \\n\\tvec4 diffuseColor = vec4( 1.0 );\\n\\t#if DEPTH_PACKING == 3200\\n\\t\\tdiffuseColor.a = opacity;\\n\\t#endif\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tfloat fragCoordZ = 0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5;\\n\\t#if DEPTH_PACKING == 3200\\n\\t\\tgl_FragColor = vec4( vec3( 1.0 - fragCoordZ ), opacity );\\n\\t#elif DEPTH_PACKING == 3201\\n\\t\\tgl_FragColor = packDepthToRGBA( fragCoordZ );\\n\\t#endif\\n}\";\n\nvar depth_vert = \"#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvarying vec2 vHighPrecisionZW;\\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#ifdef USE_DISPLACEMENTMAP\\n\\t\\t#include \\n\\t\\t#include \\n\\t\\t#include \\n\\t#endif\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tvHighPrecisionZW = gl_Position.zw;\\n}\";\n\nvar distanceRGBA_frag = \"#define DISTANCE\\nuniform vec3 referencePosition;\\nuniform float nearDistance;\\nuniform float farDistance;\\nvarying vec3 vWorldPosition;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main () {\\n\\t#include \\n\\tvec4 diffuseColor = vec4( 1.0 );\\n\\t#include \\n\\t#include \\n\\t#include \\n\\tfloat dist = length( vWorldPosition - referencePosition );\\n\\tdist = ( dist - nearDistance ) / ( farDistance - nearDistance );\\n\\tdist = saturate( dist );\\n\\tgl_FragColor = packDepthToRGBA( dist );\\n}\";\n\nvar distanceRGBA_vert = \"#define DISTANCE\\nvarying vec3 vWorldPosition;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#ifdef USE_DISPLACEMENTMAP\\n\\t\\t#include \\n\\t\\t#include \\n\\t\\t#include \\n\\t#endif\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tvWorldPosition = worldPosition.xyz;\\n}\";\n\nvar equirect_frag = \"uniform sampler2D tEquirect;\\nvarying vec3 vWorldDirection;\\n#include \\nvoid main() {\\n\\tvec3 direction = normalize( vWorldDirection );\\n\\tvec2 sampleUV = equirectUv( direction );\\n\\tvec4 texColor = texture2D( tEquirect, sampleUV );\\n\\tgl_FragColor = mapTexelToLinear( texColor );\\n\\t#include \\n\\t#include \\n}\";\n\nvar equirect_vert = \"varying vec3 vWorldDirection;\\n#include \\nvoid main() {\\n\\tvWorldDirection = transformDirection( position, modelMatrix );\\n\\t#include \\n\\t#include \\n}\";\n\nvar linedashed_frag = \"uniform vec3 diffuse;\\nuniform float opacity;\\nuniform float dashSize;\\nuniform float totalSize;\\nvarying float vLineDistance;\\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\tif ( mod( vLineDistance, totalSize ) > dashSize ) {\\n\\t\\tdiscard;\\n\\t}\\n\\tvec3 outgoingLight = vec3( 0.0 );\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\t#include \\n\\t#include \\n\\toutgoingLight = diffuseColor.rgb;\\n\\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\n\nvar linedashed_vert = \"uniform float scale;\\nattribute float lineDistance;\\nvarying float vLineDistance;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\tvLineDistance = scale * lineDistance;\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\n\nvar meshbasic_frag = \"uniform vec3 diffuse;\\nuniform float opacity;\\n#ifndef FLAT_SHADED\\n\\tvarying vec3 vNormal;\\n#endif\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\\n\\t#ifdef USE_LIGHTMAP\\n\\t\\n\\t\\tvec4 lightMapTexel= texture2D( lightMap, vUv2 );\\n\\t\\treflectedLight.indirectDiffuse += lightMapTexelToLinear( lightMapTexel ).rgb * lightMapIntensity;\\n\\t#else\\n\\t\\treflectedLight.indirectDiffuse += vec3( 1.0 );\\n\\t#endif\\n\\t#include \\n\\treflectedLight.indirectDiffuse *= diffuseColor.rgb;\\n\\tvec3 outgoingLight = reflectedLight.indirectDiffuse;\\n\\t#include \\n\\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\n\nvar meshbasic_vert = \"#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#ifdef USE_ENVMAP\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#endif\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\n\nvar meshlambert_frag = \"uniform vec3 diffuse;\\nuniform vec3 emissive;\\nuniform float opacity;\\nvarying vec3 vLightFront;\\nvarying vec3 vIndirectFront;\\n#ifdef DOUBLE_SIDED\\n\\tvarying vec3 vLightBack;\\n\\tvarying vec3 vIndirectBack;\\n#endif\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\\n\\tvec3 totalEmissiveRadiance = emissive;\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#ifdef DOUBLE_SIDED\\n\\t\\treflectedLight.indirectDiffuse += ( gl_FrontFacing ) ? vIndirectFront : vIndirectBack;\\n\\t#else\\n\\t\\treflectedLight.indirectDiffuse += vIndirectFront;\\n\\t#endif\\n\\t#include \\n\\treflectedLight.indirectDiffuse *= BRDF_Diffuse_Lambert( diffuseColor.rgb );\\n\\t#ifdef DOUBLE_SIDED\\n\\t\\treflectedLight.directDiffuse = ( gl_FrontFacing ) ? vLightFront : vLightBack;\\n\\t#else\\n\\t\\treflectedLight.directDiffuse = vLightFront;\\n\\t#endif\\n\\treflectedLight.directDiffuse *= BRDF_Diffuse_Lambert( diffuseColor.rgb ) * getShadowMask();\\n\\t#include \\n\\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\\n\\t#include \\n\\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\";\n\nvar meshlambert_vert = \"#define LAMBERT\\nvarying vec3 vLightFront;\\nvarying vec3 vIndirectFront;\\n#ifdef DOUBLE_SIDED\\n\\tvarying vec3 vLightBack;\\n\\tvarying vec3 vIndirectBack;\\n#endif\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include