@velocity-exchange/sdk 0.1.0 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +4 -32
- package/lib/browser/accounts/basicUserAccountSubscriber.d.ts +5 -3
- package/lib/browser/accounts/basicUserAccountSubscriber.js +4 -3
- package/lib/browser/accounts/basicUserStatsAccountSubscriber.d.ts +5 -3
- package/lib/browser/accounts/basicUserStatsAccountSubscriber.js +4 -3
- package/lib/browser/accounts/bulkAccountLoader.d.ts +5 -5
- package/lib/browser/accounts/bulkAccountLoader.js +12 -1
- package/lib/browser/accounts/grpcAccountSubscriber.d.ts +2 -1
- package/lib/browser/accounts/grpcAccountSubscriber.js +8 -2
- package/lib/browser/accounts/grpcMultiAccountSubscriber.d.ts +3 -2
- package/lib/browser/accounts/grpcMultiAccountSubscriber.js +13 -5
- package/lib/browser/accounts/grpcMultiUserAccountSubscriber.d.ts +2 -1
- package/lib/browser/accounts/grpcMultiUserAccountSubscriber.js +12 -8
- package/lib/browser/accounts/grpcProgramAccountSubscriber.d.ts +2 -1
- package/lib/browser/accounts/grpcProgramAccountSubscriber.js +8 -2
- package/lib/browser/accounts/grpcVelocityClientAccountSubscriber.js +18 -3
- package/lib/browser/accounts/grpcVelocityClientAccountSubscriberV2.d.ts +1 -1
- package/lib/browser/accounts/grpcVelocityClientAccountSubscriberV2.js +40 -17
- package/lib/browser/accounts/laserProgramAccountSubscriber.js +3 -0
- package/lib/browser/accounts/oneShotUserAccountSubscriber.js +4 -3
- package/lib/browser/accounts/oneShotUserStatsAccountSubscriber.js +7 -3
- package/lib/browser/accounts/pollingInsuranceFundStakeAccountSubscriber.d.ts +4 -2
- package/lib/browser/accounts/pollingInsuranceFundStakeAccountSubscriber.js +3 -3
- package/lib/browser/accounts/pollingOracleAccountSubscriber.d.ts +0 -2
- package/lib/browser/accounts/pollingOracleAccountSubscriber.js +16 -5
- package/lib/browser/accounts/pollingTokenAccountSubscriber.d.ts +0 -2
- package/lib/browser/accounts/pollingTokenAccountSubscriber.js +16 -5
- package/lib/browser/accounts/pollingUserAccountSubscriber.d.ts +8 -4
- package/lib/browser/accounts/pollingUserAccountSubscriber.js +17 -11
- package/lib/browser/accounts/pollingUserStatsAccountSubscriber.d.ts +4 -2
- package/lib/browser/accounts/pollingUserStatsAccountSubscriber.js +6 -6
- package/lib/browser/accounts/pollingVelocityClientAccountSubscriber.d.ts +7 -1
- package/lib/browser/accounts/pollingVelocityClientAccountSubscriber.js +64 -28
- package/lib/browser/accounts/types.d.ts +4 -4
- package/lib/browser/accounts/utils.d.ts +1 -0
- package/lib/browser/accounts/utils.js +8 -1
- package/lib/browser/accounts/webSocketAccountSubscriber.d.ts +4 -2
- package/lib/browser/accounts/webSocketAccountSubscriber.js +17 -5
- package/lib/browser/accounts/webSocketAccountSubscriberV2.d.ts +4 -2
- package/lib/browser/accounts/webSocketAccountSubscriberV2.js +17 -6
- package/lib/browser/accounts/webSocketInsuranceFundStakeAccountSubscriber.d.ts +4 -2
- package/lib/browser/accounts/webSocketInsuranceFundStakeAccountSubscriber.js +9 -0
- package/lib/browser/accounts/webSocketProgramAccountSubscriber.d.ts +3 -1
- package/lib/browser/accounts/webSocketProgramAccountSubscriber.js +14 -3
- package/lib/browser/accounts/webSocketProgramAccountSubscriberV2.d.ts +3 -1
- package/lib/browser/accounts/webSocketProgramAccountSubscriberV2.js +15 -3
- package/lib/browser/accounts/webSocketProgramAccountsSubscriberV2.d.ts +3 -1
- package/lib/browser/accounts/webSocketProgramAccountsSubscriberV2.js +14 -4
- package/lib/browser/accounts/webSocketUserAccountSubscriber.d.ts +4 -2
- package/lib/browser/accounts/webSocketUserAccountSubscriber.js +9 -0
- package/lib/browser/accounts/webSocketUserStatsAccountSubsriber.d.ts +4 -2
- package/lib/browser/accounts/webSocketUserStatsAccountSubsriber.js +9 -0
- package/lib/browser/accounts/webSocketVelocityClientAccountSubscriber.d.ts +4 -4
- package/lib/browser/accounts/webSocketVelocityClientAccountSubscriber.js +48 -20
- package/lib/browser/accounts/webSocketVelocityClientAccountSubscriberV2.d.ts +7 -3
- package/lib/browser/accounts/webSocketVelocityClientAccountSubscriberV2.js +45 -14
- package/lib/browser/accounts/websocketProgramUserAccountSubscriber.d.ts +1 -1
- package/lib/browser/accounts/websocketProgramUserAccountSubscriber.js +0 -3
- package/lib/browser/addresses/marketAddresses.js +3 -2
- package/lib/browser/addresses/pda.d.ts +0 -2
- package/lib/browser/addresses/pda.js +1 -14
- package/lib/browser/adminClient.d.ts +24 -29
- package/lib/browser/adminClient.js +156 -157
- package/lib/browser/auctionSubscriber/auctionSubscriber.d.ts +1 -1
- package/lib/browser/auctionSubscriber/auctionSubscriber.js +6 -4
- package/lib/browser/auctionSubscriber/auctionSubscriberGrpc.d.ts +1 -1
- package/lib/browser/auctionSubscriber/auctionSubscriberGrpc.js +9 -4
- package/lib/browser/bankrun/bankrunConnection.d.ts +8 -5
- package/lib/browser/bankrun/bankrunConnection.js +92 -32
- package/lib/browser/blockhashSubscriber/BlockhashSubscriber.d.ts +1 -1
- package/lib/browser/blockhashSubscriber/BlockhashSubscriber.js +3 -2
- package/lib/browser/clock/clockSubscriber.d.ts +6 -6
- package/lib/browser/clock/clockSubscriber.js +4 -3
- package/lib/browser/config.d.ts +1 -1
- package/lib/browser/config.js +8 -4
- package/lib/browser/constants/index.d.ts +1 -2
- package/lib/browser/constants/index.js +1 -2
- package/lib/browser/constants/numericConstants.d.ts +1 -2
- package/lib/browser/constants/numericConstants.js +7 -5
- package/lib/browser/constants/spotMarkets.d.ts +0 -1
- package/lib/browser/constituentMap/constituentMap.js +5 -1
- package/lib/browser/constituentMap/pollingConstituentAccountSubscriber.js +3 -2
- package/lib/browser/constituentMap/webSocketConstituentAccountSubscriber.d.ts +2 -3
- package/lib/browser/constituentMap/webSocketConstituentAccountSubscriber.js +10 -3
- package/lib/browser/core/VelocityCore.d.ts +0 -1
- package/lib/browser/core/instructions/deposit.d.ts +0 -1
- package/lib/browser/core/instructions/perpOrders.d.ts +14 -0
- package/lib/browser/core/instructions/perpOrders.js +14 -0
- package/lib/browser/core/instructions/withdraw.d.ts +0 -1
- package/lib/browser/core/remainingAccounts.d.ts +2 -2
- package/lib/browser/core/remainingAccounts.js +2 -2
- package/lib/browser/decode/user.js +9 -1
- package/lib/browser/dlob/DLOB.d.ts +6 -2
- package/lib/browser/dlob/DLOB.js +201 -138
- package/lib/browser/dlob/DLOBNode.d.ts +5 -3
- package/lib/browser/dlob/DLOBNode.js +7 -0
- package/lib/browser/dlob/DLOBSubscriber.d.ts +0 -1
- package/lib/browser/dlob/DLOBSubscriber.js +37 -32
- package/lib/browser/dlob/NodeList.d.ts +0 -1
- package/lib/browser/dlob/NodeList.js +8 -7
- package/lib/browser/dlob/orderBookLevels.d.ts +0 -1
- package/lib/browser/dlob/orderBookLevels.js +19 -12
- package/lib/browser/events/eventList.d.ts +3 -3
- package/lib/browser/events/eventList.js +4 -1
- package/lib/browser/events/eventSubscriber.d.ts +5 -2
- package/lib/browser/events/eventSubscriber.js +75 -26
- package/lib/browser/events/eventsServerLogProvider.d.ts +2 -2
- package/lib/browser/events/eventsServerLogProvider.js +15 -8
- package/lib/browser/events/fetchLogs.d.ts +1 -1
- package/lib/browser/events/fetchLogs.js +4 -2
- package/lib/browser/events/pollingLogProvider.d.ts +2 -2
- package/lib/browser/events/pollingLogProvider.js +1 -0
- package/lib/browser/events/txEventCache.d.ts +3 -3
- package/lib/browser/events/txEventCache.js +6 -2
- package/lib/browser/events/types.d.ts +2 -4
- package/lib/browser/events/types.js +0 -2
- package/lib/browser/events/webSocketLogProvider.d.ts +2 -2
- package/lib/browser/events/webSocketLogProvider.js +5 -2
- package/lib/browser/factory/bigNum.d.ts +0 -1
- package/lib/browser/factory/bigNum.js +1 -1
- package/lib/browser/idl/velocity.d.ts +1243 -1586
- package/lib/browser/idl/velocity.json +1234 -1577
- package/lib/browser/index.d.ts +0 -2
- package/lib/browser/index.js +0 -2
- package/lib/browser/indicative-quotes/indicativeQuotesSender.d.ts +0 -1
- package/lib/browser/jupiter/jupiterClient.d.ts +1 -2
- package/lib/browser/jupiter/jupiterClient.js +18 -8
- package/lib/browser/marginCalculation.d.ts +0 -1
- package/lib/browser/marginCalculation.js +1 -0
- package/lib/browser/marinade/index.d.ts +2 -3
- package/lib/browser/marinade/index.js +5 -0
- package/lib/browser/math/amm.d.ts +31 -14
- package/lib/browser/math/amm.js +77 -22
- package/lib/browser/math/auction.d.ts +0 -1
- package/lib/browser/math/bankruptcy.js +1 -1
- package/lib/browser/math/conversion.d.ts +0 -1
- package/lib/browser/math/funding.d.ts +0 -1
- package/lib/browser/math/funding.js +6 -6
- package/lib/browser/math/insurance.d.ts +1 -2
- package/lib/browser/math/insurance.js +4 -5
- package/lib/browser/math/liquidation.d.ts +0 -1
- package/lib/browser/math/margin.d.ts +1 -10
- package/lib/browser/math/margin.js +3 -62
- package/lib/browser/math/market.d.ts +4 -13
- package/lib/browser/math/market.js +6 -40
- package/lib/browser/math/oracles.d.ts +0 -4
- package/lib/browser/math/oracles.js +1 -14
- package/lib/browser/math/orders.d.ts +0 -6
- package/lib/browser/math/orders.js +2 -74
- package/lib/browser/math/position.d.ts +1 -6
- package/lib/browser/math/position.js +5 -10
- package/lib/browser/math/repeg.d.ts +0 -2
- package/lib/browser/math/repeg.js +1 -23
- package/lib/browser/math/spotBalance.d.ts +4 -5
- package/lib/browser/math/spotBalance.js +6 -6
- package/lib/browser/math/spotMarket.d.ts +0 -7
- package/lib/browser/math/spotMarket.js +1 -16
- package/lib/browser/math/spotPosition.d.ts +4 -5
- package/lib/browser/math/state.d.ts +0 -3
- package/lib/browser/math/state.js +1 -9
- package/lib/browser/math/superStake.d.ts +3 -54
- package/lib/browser/math/superStake.js +16 -13
- package/lib/browser/math/trade.d.ts +2 -3
- package/lib/browser/math/trade.js +6 -6
- package/lib/browser/math/utils.d.ts +0 -1
- package/lib/browser/memcmp.d.ts +0 -1
- package/lib/browser/memcmp.js +1 -10
- package/lib/browser/oracles/oracleClientCache.d.ts +1 -1
- package/lib/browser/oracles/prelaunchOracleClient.js +3 -2
- package/lib/browser/oracles/pythClient.d.ts +0 -1
- package/lib/browser/oracles/pythClient.js +9 -3
- package/lib/browser/oracles/pythLazerClient.d.ts +0 -1
- package/lib/browser/oracles/pythLazerClient.js +3 -2
- package/lib/browser/oracles/strictOraclePrice.d.ts +0 -1
- package/lib/browser/oracles/types.d.ts +0 -1
- package/lib/browser/oracles/utils.d.ts +4 -1
- package/lib/browser/oracles/utils.js +9 -1
- package/lib/browser/orderParams.d.ts +0 -1
- package/lib/browser/orderSubscriber/OrderSubscriber.d.ts +1 -1
- package/lib/browser/orderSubscriber/OrderSubscriber.js +8 -2
- package/lib/browser/priorityFee/heliusPriorityFeeMethod.d.ts +1 -1
- package/lib/browser/priorityFee/priorityFeeSubscriber.d.ts +1 -1
- package/lib/browser/priorityFee/priorityFeeSubscriber.js +32 -8
- package/lib/browser/priorityFee/solanaPriorityFeeMethod.d.ts +1 -1
- package/lib/browser/pyth/types.d.ts +0 -1
- package/lib/browser/slot/SlotSubscriber.d.ts +1 -1
- package/lib/browser/slot/SlotSubscriber.js +2 -1
- package/lib/browser/slot/SlothashSubscriber.d.ts +3 -2
- package/lib/browser/slot/SlothashSubscriber.js +11 -4
- package/lib/browser/swap/UnifiedSwapClient.d.ts +0 -1
- package/lib/browser/swift/grpcSignedMsgUserAccountSubscriber.d.ts +0 -3
- package/lib/browser/swift/grpcSignedMsgUserAccountSubscriber.js +5 -5
- package/lib/browser/swift/signedMsgUserAccountSubscriber.d.ts +3 -2
- package/lib/browser/swift/signedMsgUserAccountSubscriber.js +13 -5
- package/lib/browser/swift/swiftOrderSubscriber.d.ts +1 -1
- package/lib/browser/swift/swiftOrderSubscriber.js +10 -5
- package/lib/browser/testClient.js +3 -2
- package/lib/browser/titan/titanClient.d.ts +0 -1
- package/lib/browser/tokenFaucet.d.ts +0 -1
- package/lib/browser/tokenFaucet.js +16 -2
- package/lib/browser/tx/baseTxSender.d.ts +4 -4
- package/lib/browser/tx/baseTxSender.js +5 -4
- package/lib/browser/tx/fastSingleTxSender.d.ts +3 -3
- package/lib/browser/tx/fastSingleTxSender.js +9 -5
- package/lib/browser/tx/reportTransactionError.d.ts +2 -2
- package/lib/browser/tx/reportTransactionError.js +5 -1
- package/lib/browser/tx/retryTxSender.d.ts +1 -1
- package/lib/browser/tx/retryTxSender.js +4 -2
- package/lib/browser/tx/txHandler.d.ts +9 -3
- package/lib/browser/tx/txHandler.js +54 -40
- package/lib/browser/tx/txParamProcessor.d.ts +4 -1
- package/lib/browser/tx/txParamProcessor.js +6 -0
- package/lib/browser/tx/types.d.ts +1 -1
- package/lib/browser/tx/whileValidTxSender.d.ts +1 -6
- package/lib/browser/tx/whileValidTxSender.js +35 -13
- package/lib/browser/types.d.ts +25 -69
- package/lib/browser/types.js +2 -2
- package/lib/browser/user.d.ts +21 -8
- package/lib/browser/user.js +156 -132
- package/lib/browser/userMap/WebsocketSubscription.d.ts +1 -1
- package/lib/browser/userMap/grpcSubscription.d.ts +1 -1
- package/lib/browser/userMap/referrerMap.js +10 -3
- package/lib/browser/userMap/revenueShareEscrowMap.js +4 -0
- package/lib/browser/userMap/userMap.d.ts +1 -1
- package/lib/browser/userMap/userMap.js +36 -23
- package/lib/browser/userMap/userStatsMap.d.ts +1 -1
- package/lib/browser/userMap/userStatsMap.js +18 -13
- package/lib/browser/userStats.d.ts +7 -2
- package/lib/browser/userStats.js +18 -4
- package/lib/browser/util/TransactionConfirmationManager.js +4 -2
- package/lib/browser/util/chainClock.d.ts +1 -1
- package/lib/browser/util/computeUnits.d.ts +1 -1
- package/lib/browser/util/computeUnits.js +6 -1
- package/lib/browser/velocityClient.d.ts +93 -36
- package/lib/browser/velocityClient.js +414 -280
- package/lib/node/accounts/basicUserAccountSubscriber.d.ts +5 -3
- package/lib/node/accounts/basicUserAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/basicUserAccountSubscriber.js +4 -3
- package/lib/node/accounts/basicUserStatsAccountSubscriber.d.ts +5 -3
- package/lib/node/accounts/basicUserStatsAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/basicUserStatsAccountSubscriber.js +4 -3
- package/lib/node/accounts/bulkAccountLoader.d.ts +5 -5
- package/lib/node/accounts/bulkAccountLoader.d.ts.map +1 -1
- package/lib/node/accounts/bulkAccountLoader.js +12 -1
- package/lib/node/accounts/grpcAccountSubscriber.d.ts +2 -1
- package/lib/node/accounts/grpcAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/grpcAccountSubscriber.js +8 -2
- package/lib/node/accounts/grpcMultiAccountSubscriber.d.ts +3 -2
- package/lib/node/accounts/grpcMultiAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/grpcMultiAccountSubscriber.js +13 -5
- package/lib/node/accounts/grpcMultiUserAccountSubscriber.d.ts +2 -1
- package/lib/node/accounts/grpcMultiUserAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/grpcMultiUserAccountSubscriber.js +12 -8
- package/lib/node/accounts/grpcProgramAccountSubscriber.d.ts +2 -1
- package/lib/node/accounts/grpcProgramAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/grpcProgramAccountSubscriber.js +8 -2
- package/lib/node/accounts/grpcVelocityClientAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/grpcVelocityClientAccountSubscriber.js +18 -3
- package/lib/node/accounts/grpcVelocityClientAccountSubscriberV2.d.ts +1 -1
- package/lib/node/accounts/grpcVelocityClientAccountSubscriberV2.d.ts.map +1 -1
- package/lib/node/accounts/grpcVelocityClientAccountSubscriberV2.js +40 -17
- package/lib/node/accounts/laserProgramAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/laserProgramAccountSubscriber.js +3 -0
- package/lib/node/accounts/oneShotUserAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/oneShotUserAccountSubscriber.js +4 -3
- package/lib/node/accounts/oneShotUserStatsAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/oneShotUserStatsAccountSubscriber.js +7 -3
- package/lib/node/accounts/pollingInsuranceFundStakeAccountSubscriber.d.ts +4 -2
- package/lib/node/accounts/pollingInsuranceFundStakeAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/pollingInsuranceFundStakeAccountSubscriber.js +3 -3
- package/lib/node/accounts/pollingOracleAccountSubscriber.d.ts +0 -2
- package/lib/node/accounts/pollingOracleAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/pollingOracleAccountSubscriber.js +16 -5
- package/lib/node/accounts/pollingTokenAccountSubscriber.d.ts +0 -2
- package/lib/node/accounts/pollingTokenAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/pollingTokenAccountSubscriber.js +16 -5
- package/lib/node/accounts/pollingUserAccountSubscriber.d.ts +8 -4
- package/lib/node/accounts/pollingUserAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/pollingUserAccountSubscriber.js +17 -11
- package/lib/node/accounts/pollingUserStatsAccountSubscriber.d.ts +4 -2
- package/lib/node/accounts/pollingUserStatsAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/pollingUserStatsAccountSubscriber.js +6 -6
- package/lib/node/accounts/pollingVelocityClientAccountSubscriber.d.ts +7 -1
- package/lib/node/accounts/pollingVelocityClientAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/pollingVelocityClientAccountSubscriber.js +64 -28
- package/lib/node/accounts/types.d.ts +4 -4
- package/lib/node/accounts/types.d.ts.map +1 -1
- package/lib/node/accounts/utils.d.ts +1 -0
- package/lib/node/accounts/utils.d.ts.map +1 -1
- package/lib/node/accounts/utils.js +8 -1
- package/lib/node/accounts/webSocketAccountSubscriber.d.ts +4 -2
- package/lib/node/accounts/webSocketAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/webSocketAccountSubscriber.js +17 -5
- package/lib/node/accounts/webSocketAccountSubscriberV2.d.ts +4 -2
- package/lib/node/accounts/webSocketAccountSubscriberV2.d.ts.map +1 -1
- package/lib/node/accounts/webSocketAccountSubscriberV2.js +17 -6
- package/lib/node/accounts/webSocketInsuranceFundStakeAccountSubscriber.d.ts +4 -2
- package/lib/node/accounts/webSocketInsuranceFundStakeAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/webSocketInsuranceFundStakeAccountSubscriber.js +9 -0
- package/lib/node/accounts/webSocketProgramAccountSubscriber.d.ts +3 -1
- package/lib/node/accounts/webSocketProgramAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/webSocketProgramAccountSubscriber.js +14 -3
- package/lib/node/accounts/webSocketProgramAccountSubscriberV2.d.ts +3 -1
- package/lib/node/accounts/webSocketProgramAccountSubscriberV2.d.ts.map +1 -1
- package/lib/node/accounts/webSocketProgramAccountSubscriberV2.js +15 -3
- package/lib/node/accounts/webSocketProgramAccountsSubscriberV2.d.ts +3 -1
- package/lib/node/accounts/webSocketProgramAccountsSubscriberV2.d.ts.map +1 -1
- package/lib/node/accounts/webSocketProgramAccountsSubscriberV2.js +14 -4
- package/lib/node/accounts/webSocketUserAccountSubscriber.d.ts +4 -2
- package/lib/node/accounts/webSocketUserAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/webSocketUserAccountSubscriber.js +9 -0
- package/lib/node/accounts/webSocketUserStatsAccountSubsriber.d.ts +4 -2
- package/lib/node/accounts/webSocketUserStatsAccountSubsriber.d.ts.map +1 -1
- package/lib/node/accounts/webSocketUserStatsAccountSubsriber.js +9 -0
- package/lib/node/accounts/webSocketVelocityClientAccountSubscriber.d.ts +4 -4
- package/lib/node/accounts/webSocketVelocityClientAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/webSocketVelocityClientAccountSubscriber.js +48 -20
- package/lib/node/accounts/webSocketVelocityClientAccountSubscriberV2.d.ts +7 -3
- package/lib/node/accounts/webSocketVelocityClientAccountSubscriberV2.d.ts.map +1 -1
- package/lib/node/accounts/webSocketVelocityClientAccountSubscriberV2.js +45 -14
- package/lib/node/accounts/websocketProgramUserAccountSubscriber.d.ts +1 -1
- package/lib/node/accounts/websocketProgramUserAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/websocketProgramUserAccountSubscriber.js +0 -3
- package/lib/node/addresses/marketAddresses.d.ts.map +1 -1
- package/lib/node/addresses/marketAddresses.js +3 -2
- package/lib/node/addresses/pda.d.ts +0 -2
- package/lib/node/addresses/pda.d.ts.map +1 -1
- package/lib/node/addresses/pda.js +1 -14
- package/lib/node/adminClient.d.ts +24 -29
- package/lib/node/adminClient.d.ts.map +1 -1
- package/lib/node/adminClient.js +156 -157
- package/lib/node/auctionSubscriber/auctionSubscriber.d.ts +1 -1
- package/lib/node/auctionSubscriber/auctionSubscriber.d.ts.map +1 -1
- package/lib/node/auctionSubscriber/auctionSubscriber.js +6 -4
- package/lib/node/auctionSubscriber/auctionSubscriberGrpc.d.ts +1 -1
- package/lib/node/auctionSubscriber/auctionSubscriberGrpc.d.ts.map +1 -1
- package/lib/node/auctionSubscriber/auctionSubscriberGrpc.js +9 -4
- package/lib/node/bankrun/bankrunConnection.d.ts +8 -5
- package/lib/node/bankrun/bankrunConnection.d.ts.map +1 -1
- package/lib/node/bankrun/bankrunConnection.js +92 -32
- package/lib/node/blockhashSubscriber/BlockhashSubscriber.d.ts +1 -1
- package/lib/node/blockhashSubscriber/BlockhashSubscriber.d.ts.map +1 -1
- package/lib/node/blockhashSubscriber/BlockhashSubscriber.js +3 -2
- package/lib/node/clock/clockSubscriber.d.ts +6 -6
- package/lib/node/clock/clockSubscriber.d.ts.map +1 -1
- package/lib/node/clock/clockSubscriber.js +4 -3
- package/lib/node/config.d.ts +1 -1
- package/lib/node/config.d.ts.map +1 -1
- package/lib/node/config.js +8 -4
- package/lib/node/constants/index.d.ts +1 -2
- package/lib/node/constants/index.d.ts.map +1 -1
- package/lib/node/constants/index.js +1 -2
- package/lib/node/constants/numericConstants.d.ts +1 -2
- package/lib/node/constants/numericConstants.d.ts.map +1 -1
- package/lib/node/constants/numericConstants.js +7 -5
- package/lib/node/constants/spotMarkets.d.ts +0 -1
- package/lib/node/constants/spotMarkets.d.ts.map +1 -1
- package/lib/node/constituentMap/constituentMap.d.ts.map +1 -1
- package/lib/node/constituentMap/constituentMap.js +5 -1
- package/lib/node/constituentMap/pollingConstituentAccountSubscriber.d.ts.map +1 -1
- package/lib/node/constituentMap/pollingConstituentAccountSubscriber.js +3 -2
- package/lib/node/constituentMap/webSocketConstituentAccountSubscriber.d.ts +2 -3
- package/lib/node/constituentMap/webSocketConstituentAccountSubscriber.d.ts.map +1 -1
- package/lib/node/constituentMap/webSocketConstituentAccountSubscriber.js +10 -3
- package/lib/node/core/VelocityCore.d.ts +0 -1
- package/lib/node/core/VelocityCore.d.ts.map +1 -1
- package/lib/node/core/instructions/deposit.d.ts +0 -1
- package/lib/node/core/instructions/deposit.d.ts.map +1 -1
- package/lib/node/core/instructions/perpOrders.d.ts +14 -0
- package/lib/node/core/instructions/perpOrders.d.ts.map +1 -1
- package/lib/node/core/instructions/perpOrders.js +14 -0
- package/lib/node/core/instructions/withdraw.d.ts +0 -1
- package/lib/node/core/instructions/withdraw.d.ts.map +1 -1
- package/lib/node/core/remainingAccounts.d.ts +2 -2
- package/lib/node/core/remainingAccounts.d.ts.map +1 -1
- package/lib/node/core/remainingAccounts.js +2 -2
- package/lib/node/decode/user.d.ts.map +1 -1
- package/lib/node/decode/user.js +9 -1
- package/lib/node/dlob/DLOB.d.ts +6 -2
- package/lib/node/dlob/DLOB.d.ts.map +1 -1
- package/lib/node/dlob/DLOB.js +201 -138
- package/lib/node/dlob/DLOBNode.d.ts +5 -3
- package/lib/node/dlob/DLOBNode.d.ts.map +1 -1
- package/lib/node/dlob/DLOBNode.js +7 -0
- package/lib/node/dlob/DLOBSubscriber.d.ts +0 -1
- package/lib/node/dlob/DLOBSubscriber.d.ts.map +1 -1
- package/lib/node/dlob/DLOBSubscriber.js +37 -32
- package/lib/node/dlob/NodeList.d.ts +0 -1
- package/lib/node/dlob/NodeList.d.ts.map +1 -1
- package/lib/node/dlob/NodeList.js +8 -7
- package/lib/node/dlob/orderBookLevels.d.ts +0 -1
- package/lib/node/dlob/orderBookLevels.d.ts.map +1 -1
- package/lib/node/dlob/orderBookLevels.js +19 -12
- package/lib/node/events/eventList.d.ts +3 -3
- package/lib/node/events/eventList.d.ts.map +1 -1
- package/lib/node/events/eventList.js +4 -1
- package/lib/node/events/eventSubscriber.d.ts +5 -2
- package/lib/node/events/eventSubscriber.d.ts.map +1 -1
- package/lib/node/events/eventSubscriber.js +75 -26
- package/lib/node/events/eventsServerLogProvider.d.ts +2 -2
- package/lib/node/events/eventsServerLogProvider.d.ts.map +1 -1
- package/lib/node/events/eventsServerLogProvider.js +15 -8
- package/lib/node/events/fetchLogs.d.ts +1 -1
- package/lib/node/events/fetchLogs.d.ts.map +1 -1
- package/lib/node/events/fetchLogs.js +4 -2
- package/lib/node/events/pollingLogProvider.d.ts +2 -2
- package/lib/node/events/pollingLogProvider.d.ts.map +1 -1
- package/lib/node/events/pollingLogProvider.js +1 -0
- package/lib/node/events/txEventCache.d.ts +3 -3
- package/lib/node/events/txEventCache.d.ts.map +1 -1
- package/lib/node/events/txEventCache.js +6 -2
- package/lib/node/events/types.d.ts +2 -4
- package/lib/node/events/types.d.ts.map +1 -1
- package/lib/node/events/types.js +0 -2
- package/lib/node/events/webSocketLogProvider.d.ts +2 -2
- package/lib/node/events/webSocketLogProvider.d.ts.map +1 -1
- package/lib/node/events/webSocketLogProvider.js +5 -2
- package/lib/node/factory/bigNum.d.ts +0 -1
- package/lib/node/factory/bigNum.d.ts.map +1 -1
- package/lib/node/factory/bigNum.js +1 -1
- package/lib/node/idl/velocity.d.ts +1243 -1586
- package/lib/node/idl/velocity.d.ts.map +1 -1
- package/lib/node/idl/velocity.json +1234 -1577
- package/lib/node/index.d.ts +0 -2
- package/lib/node/index.d.ts.map +1 -1
- package/lib/node/index.js +0 -2
- package/lib/node/indicative-quotes/indicativeQuotesSender.d.ts +0 -1
- package/lib/node/indicative-quotes/indicativeQuotesSender.d.ts.map +1 -1
- package/lib/node/jupiter/jupiterClient.d.ts +1 -2
- package/lib/node/jupiter/jupiterClient.d.ts.map +1 -1
- package/lib/node/jupiter/jupiterClient.js +18 -8
- package/lib/node/marginCalculation.d.ts +0 -1
- package/lib/node/marginCalculation.d.ts.map +1 -1
- package/lib/node/marginCalculation.js +1 -0
- package/lib/node/marinade/index.d.ts +2 -3
- package/lib/node/marinade/index.d.ts.map +1 -1
- package/lib/node/marinade/index.js +5 -0
- package/lib/node/math/amm.d.ts +31 -14
- package/lib/node/math/amm.d.ts.map +1 -1
- package/lib/node/math/amm.js +77 -22
- package/lib/node/math/auction.d.ts +0 -1
- package/lib/node/math/auction.d.ts.map +1 -1
- package/lib/node/math/bankruptcy.js +1 -1
- package/lib/node/math/conversion.d.ts +0 -1
- package/lib/node/math/conversion.d.ts.map +1 -1
- package/lib/node/math/funding.d.ts +0 -1
- package/lib/node/math/funding.d.ts.map +1 -1
- package/lib/node/math/funding.js +6 -6
- package/lib/node/math/insurance.d.ts +1 -2
- package/lib/node/math/insurance.d.ts.map +1 -1
- package/lib/node/math/insurance.js +4 -5
- package/lib/node/math/liquidation.d.ts +0 -1
- package/lib/node/math/liquidation.d.ts.map +1 -1
- package/lib/node/math/margin.d.ts +1 -10
- package/lib/node/math/margin.d.ts.map +1 -1
- package/lib/node/math/margin.js +3 -62
- package/lib/node/math/market.d.ts +4 -13
- package/lib/node/math/market.d.ts.map +1 -1
- package/lib/node/math/market.js +6 -40
- package/lib/node/math/oracles.d.ts +0 -4
- package/lib/node/math/oracles.d.ts.map +1 -1
- package/lib/node/math/oracles.js +1 -14
- package/lib/node/math/orders.d.ts +0 -6
- package/lib/node/math/orders.d.ts.map +1 -1
- package/lib/node/math/orders.js +2 -74
- package/lib/node/math/position.d.ts +1 -6
- package/lib/node/math/position.d.ts.map +1 -1
- package/lib/node/math/position.js +5 -10
- package/lib/node/math/repeg.d.ts +0 -2
- package/lib/node/math/repeg.d.ts.map +1 -1
- package/lib/node/math/repeg.js +1 -23
- package/lib/node/math/spotBalance.d.ts +4 -5
- package/lib/node/math/spotBalance.d.ts.map +1 -1
- package/lib/node/math/spotBalance.js +6 -6
- package/lib/node/math/spotMarket.d.ts +0 -7
- package/lib/node/math/spotMarket.d.ts.map +1 -1
- package/lib/node/math/spotMarket.js +1 -16
- package/lib/node/math/spotPosition.d.ts +4 -5
- package/lib/node/math/spotPosition.d.ts.map +1 -1
- package/lib/node/math/state.d.ts +0 -3
- package/lib/node/math/state.d.ts.map +1 -1
- package/lib/node/math/state.js +1 -9
- package/lib/node/math/superStake.d.ts +3 -54
- package/lib/node/math/superStake.d.ts.map +1 -1
- package/lib/node/math/superStake.js +16 -13
- package/lib/node/math/trade.d.ts +2 -3
- package/lib/node/math/trade.d.ts.map +1 -1
- package/lib/node/math/trade.js +6 -6
- package/lib/node/math/utils.d.ts +0 -1
- package/lib/node/math/utils.d.ts.map +1 -1
- package/lib/node/memcmp.d.ts +0 -1
- package/lib/node/memcmp.d.ts.map +1 -1
- package/lib/node/memcmp.js +1 -10
- package/lib/node/oracles/oracleClientCache.d.ts +1 -1
- package/lib/node/oracles/prelaunchOracleClient.d.ts.map +1 -1
- package/lib/node/oracles/prelaunchOracleClient.js +3 -2
- package/lib/node/oracles/pythClient.d.ts +0 -1
- package/lib/node/oracles/pythClient.d.ts.map +1 -1
- package/lib/node/oracles/pythClient.js +9 -3
- package/lib/node/oracles/pythLazerClient.d.ts +0 -1
- package/lib/node/oracles/pythLazerClient.d.ts.map +1 -1
- package/lib/node/oracles/pythLazerClient.js +3 -2
- package/lib/node/oracles/strictOraclePrice.d.ts +0 -1
- package/lib/node/oracles/strictOraclePrice.d.ts.map +1 -1
- package/lib/node/oracles/types.d.ts +0 -1
- package/lib/node/oracles/types.d.ts.map +1 -1
- package/lib/node/oracles/utils.d.ts +4 -1
- package/lib/node/oracles/utils.d.ts.map +1 -1
- package/lib/node/oracles/utils.js +9 -1
- package/lib/node/orderParams.d.ts +0 -1
- package/lib/node/orderParams.d.ts.map +1 -1
- package/lib/node/orderSubscriber/OrderSubscriber.d.ts +1 -1
- package/lib/node/orderSubscriber/OrderSubscriber.d.ts.map +1 -1
- package/lib/node/orderSubscriber/OrderSubscriber.js +8 -2
- package/lib/node/priorityFee/heliusPriorityFeeMethod.d.ts +1 -1
- package/lib/node/priorityFee/heliusPriorityFeeMethod.d.ts.map +1 -1
- package/lib/node/priorityFee/priorityFeeSubscriber.d.ts +1 -1
- package/lib/node/priorityFee/priorityFeeSubscriber.d.ts.map +1 -1
- package/lib/node/priorityFee/priorityFeeSubscriber.js +32 -8
- package/lib/node/priorityFee/solanaPriorityFeeMethod.d.ts +1 -1
- package/lib/node/priorityFee/solanaPriorityFeeMethod.d.ts.map +1 -1
- package/lib/node/pyth/types.d.ts +0 -1
- package/lib/node/pyth/types.d.ts.map +1 -1
- package/lib/node/slot/SlotSubscriber.d.ts +1 -1
- package/lib/node/slot/SlotSubscriber.d.ts.map +1 -1
- package/lib/node/slot/SlotSubscriber.js +2 -1
- package/lib/node/slot/SlothashSubscriber.d.ts +3 -2
- package/lib/node/slot/SlothashSubscriber.d.ts.map +1 -1
- package/lib/node/slot/SlothashSubscriber.js +11 -4
- package/lib/node/swap/UnifiedSwapClient.d.ts +0 -1
- package/lib/node/swap/UnifiedSwapClient.d.ts.map +1 -1
- package/lib/node/swift/grpcSignedMsgUserAccountSubscriber.d.ts +0 -3
- package/lib/node/swift/grpcSignedMsgUserAccountSubscriber.d.ts.map +1 -1
- package/lib/node/swift/grpcSignedMsgUserAccountSubscriber.js +5 -5
- package/lib/node/swift/signedMsgUserAccountSubscriber.d.ts +3 -2
- package/lib/node/swift/signedMsgUserAccountSubscriber.d.ts.map +1 -1
- package/lib/node/swift/signedMsgUserAccountSubscriber.js +13 -5
- package/lib/node/swift/swiftOrderSubscriber.d.ts +1 -1
- package/lib/node/swift/swiftOrderSubscriber.d.ts.map +1 -1
- package/lib/node/swift/swiftOrderSubscriber.js +10 -5
- package/lib/node/testClient.js +3 -2
- package/lib/node/titan/titanClient.d.ts +0 -1
- package/lib/node/titan/titanClient.d.ts.map +1 -1
- package/lib/node/tokenFaucet.d.ts +0 -1
- package/lib/node/tokenFaucet.d.ts.map +1 -1
- package/lib/node/tokenFaucet.js +16 -2
- package/lib/node/tx/baseTxSender.d.ts +4 -4
- package/lib/node/tx/baseTxSender.d.ts.map +1 -1
- package/lib/node/tx/baseTxSender.js +5 -4
- package/lib/node/tx/fastSingleTxSender.d.ts +3 -3
- package/lib/node/tx/fastSingleTxSender.d.ts.map +1 -1
- package/lib/node/tx/fastSingleTxSender.js +9 -5
- package/lib/node/tx/reportTransactionError.d.ts +2 -2
- package/lib/node/tx/reportTransactionError.d.ts.map +1 -1
- package/lib/node/tx/reportTransactionError.js +5 -1
- package/lib/node/tx/retryTxSender.d.ts +1 -1
- package/lib/node/tx/retryTxSender.d.ts.map +1 -1
- package/lib/node/tx/retryTxSender.js +4 -2
- package/lib/node/tx/txHandler.d.ts +9 -3
- package/lib/node/tx/txHandler.d.ts.map +1 -1
- package/lib/node/tx/txHandler.js +54 -40
- package/lib/node/tx/txParamProcessor.d.ts +4 -1
- package/lib/node/tx/txParamProcessor.d.ts.map +1 -1
- package/lib/node/tx/txParamProcessor.js +6 -0
- package/lib/node/tx/types.d.ts +1 -1
- package/lib/node/tx/types.d.ts.map +1 -1
- package/lib/node/tx/whileValidTxSender.d.ts +1 -6
- package/lib/node/tx/whileValidTxSender.d.ts.map +1 -1
- package/lib/node/tx/whileValidTxSender.js +35 -13
- package/lib/node/types.d.ts +25 -69
- package/lib/node/types.d.ts.map +1 -1
- package/lib/node/types.js +2 -2
- package/lib/node/user.d.ts +21 -8
- package/lib/node/user.d.ts.map +1 -1
- package/lib/node/user.js +156 -132
- package/lib/node/userMap/WebsocketSubscription.d.ts +1 -1
- package/lib/node/userMap/WebsocketSubscription.d.ts.map +1 -1
- package/lib/node/userMap/grpcSubscription.d.ts +1 -1
- package/lib/node/userMap/grpcSubscription.d.ts.map +1 -1
- package/lib/node/userMap/referrerMap.d.ts.map +1 -1
- package/lib/node/userMap/referrerMap.js +10 -3
- package/lib/node/userMap/revenueShareEscrowMap.d.ts.map +1 -1
- package/lib/node/userMap/revenueShareEscrowMap.js +4 -0
- package/lib/node/userMap/userMap.d.ts +1 -1
- package/lib/node/userMap/userMap.d.ts.map +1 -1
- package/lib/node/userMap/userMap.js +36 -23
- package/lib/node/userMap/userStatsMap.d.ts +1 -1
- package/lib/node/userMap/userStatsMap.d.ts.map +1 -1
- package/lib/node/userMap/userStatsMap.js +18 -13
- package/lib/node/userStats.d.ts +7 -2
- package/lib/node/userStats.d.ts.map +1 -1
- package/lib/node/userStats.js +18 -4
- package/lib/node/util/TransactionConfirmationManager.d.ts.map +1 -1
- package/lib/node/util/TransactionConfirmationManager.js +4 -2
- package/lib/node/util/chainClock.d.ts +1 -1
- package/lib/node/util/chainClock.d.ts.map +1 -1
- package/lib/node/util/computeUnits.d.ts +1 -1
- package/lib/node/util/computeUnits.d.ts.map +1 -1
- package/lib/node/util/computeUnits.js +6 -1
- package/lib/node/velocityClient.d.ts +93 -36
- package/lib/node/velocityClient.d.ts.map +1 -1
- package/lib/node/velocityClient.js +414 -280
- package/package.json +15 -8
- package/src/accounts/basicUserAccountSubscriber.ts +7 -5
- package/src/accounts/basicUserStatsAccountSubscriber.ts +9 -5
- package/src/accounts/bulkAccountLoader.ts +20 -7
- package/src/accounts/grpcAccountSubscriber.ts +11 -3
- package/src/accounts/grpcMultiAccountSubscriber.ts +24 -9
- package/src/accounts/grpcMultiUserAccountSubscriber.ts +16 -12
- package/src/accounts/grpcProgramAccountSubscriber.ts +11 -3
- package/src/accounts/grpcVelocityClientAccountSubscriber.ts +17 -7
- package/src/accounts/grpcVelocityClientAccountSubscriberV2.ts +66 -39
- package/src/accounts/laserProgramAccountSubscriber.ts +3 -0
- package/src/accounts/oneShotUserAccountSubscriber.ts +5 -3
- package/src/accounts/oneShotUserStatsAccountSubscriber.ts +8 -3
- package/src/accounts/pollingInsuranceFundStakeAccountSubscriber.ts +11 -5
- package/src/accounts/pollingOracleAccountSubscriber.ts +17 -10
- package/src/accounts/pollingTokenAccountSubscriber.ts +17 -10
- package/src/accounts/pollingUserAccountSubscriber.ts +26 -20
- package/src/accounts/pollingUserStatsAccountSubscriber.ts +12 -10
- package/src/accounts/pollingVelocityClientAccountSubscriber.ts +76 -30
- package/src/accounts/types.ts +6 -4
- package/src/accounts/utils.ts +10 -0
- package/src/accounts/webSocketAccountSubscriber.ts +23 -10
- package/src/accounts/webSocketAccountSubscriberV2.ts +23 -8
- package/src/accounts/webSocketInsuranceFundStakeAccountSubscriber.ts +17 -2
- package/src/accounts/webSocketProgramAccountSubscriber.ts +29 -4
- package/src/accounts/webSocketProgramAccountSubscriberV2.ts +30 -4
- package/src/accounts/webSocketProgramAccountsSubscriberV2.ts +29 -4
- package/src/accounts/webSocketUserAccountSubscriber.ts +11 -2
- package/src/accounts/webSocketUserStatsAccountSubsriber.ts +15 -2
- package/src/accounts/webSocketVelocityClientAccountSubscriber.ts +76 -48
- package/src/accounts/webSocketVelocityClientAccountSubscriberV2.ts +74 -35
- package/src/accounts/websocketProgramUserAccountSubscriber.ts +1 -6
- package/src/addresses/marketAddresses.ts +3 -2
- package/src/addresses/pda.ts +0 -25
- package/src/adminClient.ts +273 -303
- package/src/auctionSubscriber/auctionSubscriber.ts +7 -5
- package/src/auctionSubscriber/auctionSubscriberGrpc.ts +12 -5
- package/src/bankrun/bankrunConnection.ts +110 -40
- package/src/blockhashSubscriber/BlockhashSubscriber.ts +5 -4
- package/src/clock/clockSubscriber.ts +10 -9
- package/src/config.ts +8 -3
- package/src/constants/index.ts +1 -2
- package/src/constants/numericConstants.ts +8 -4
- package/src/constituentMap/constituentMap.ts +8 -1
- package/src/constituentMap/pollingConstituentAccountSubscriber.ts +4 -2
- package/src/constituentMap/webSocketConstituentAccountSubscriber.ts +13 -4
- package/src/core/instructions/perpOrders.ts +14 -0
- package/src/core/remainingAccounts.ts +4 -4
- package/src/decode/user.ts +8 -1
- package/src/dlob/DLOB.ts +296 -172
- package/src/dlob/DLOBNode.ts +23 -3
- package/src/dlob/DLOBSubscriber.ts +51 -34
- package/src/dlob/NodeList.ts +8 -7
- package/src/dlob/orderBookLevels.ts +45 -25
- package/src/events/eventList.ts +4 -1
- package/src/events/eventSubscriber.ts +107 -49
- package/src/events/eventsServerLogProvider.ts +22 -13
- package/src/events/fetchLogs.ts +3 -3
- package/src/events/pollingLogProvider.ts +2 -2
- package/src/events/txEventCache.ts +8 -2
- package/src/events/types.ts +0 -8
- package/src/events/webSocketLogProvider.ts +5 -3
- package/src/factory/bigNum.ts +2 -2
- package/src/idl/velocity.json +1234 -1577
- package/src/idl/velocity.ts +1234 -1577
- package/src/index.ts +0 -2
- package/src/jupiter/jupiterClient.ts +30 -10
- package/src/marginCalculation.ts +1 -0
- package/src/marinade/index.ts +11 -2
- package/src/math/amm.ts +188 -33
- package/src/math/bankruptcy.ts +1 -1
- package/src/math/funding.ts +7 -6
- package/src/math/insurance.ts +6 -8
- package/src/math/margin.ts +5 -112
- package/src/math/market.ts +6 -96
- package/src/math/oracles.ts +0 -17
- package/src/math/orders.ts +1 -110
- package/src/math/position.ts +4 -16
- package/src/math/repeg.ts +0 -29
- package/src/math/spotBalance.ts +14 -10
- package/src/math/spotMarket.ts +2 -28
- package/src/math/spotPosition.ts +4 -4
- package/src/math/state.ts +0 -8
- package/src/math/superStake.ts +19 -65
- package/src/math/trade.ts +2 -6
- package/src/memcmp.ts +0 -9
- package/src/oracles/prelaunchOracleClient.ts +7 -2
- package/src/oracles/pythClient.ts +12 -3
- package/src/oracles/pythLazerClient.ts +7 -2
- package/src/oracles/utils.ts +15 -0
- package/src/orderSubscriber/OrderSubscriber.ts +10 -4
- package/src/priorityFee/heliusPriorityFeeMethod.ts +1 -1
- package/src/priorityFee/priorityFeeSubscriber.ts +45 -9
- package/src/priorityFee/solanaPriorityFeeMethod.ts +1 -1
- package/src/pyth/types.ts +0 -2
- package/src/slot/SlotSubscriber.ts +3 -3
- package/src/slot/SlothashSubscriber.ts +17 -6
- package/src/swift/grpcSignedMsgUserAccountSubscriber.ts +5 -6
- package/src/swift/signedMsgUserAccountSubscriber.ts +16 -8
- package/src/swift/swiftOrderSubscriber.ts +10 -9
- package/src/testClient.ts +2 -2
- package/src/tokenFaucet.ts +22 -3
- package/src/tx/baseTxSender.ts +10 -10
- package/src/tx/fastSingleTxSender.ts +12 -8
- package/src/tx/reportTransactionError.ts +12 -7
- package/src/tx/retryTxSender.ts +6 -4
- package/src/tx/txHandler.ts +88 -43
- package/src/tx/txParamProcessor.ts +18 -3
- package/src/tx/types.ts +1 -1
- package/src/tx/whileValidTxSender.ts +51 -22
- package/src/types.ts +39 -75
- package/src/user.ts +200 -152
- package/src/userMap/WebsocketSubscription.ts +1 -1
- package/src/userMap/grpcSubscription.ts +1 -1
- package/src/userMap/referrerMap.ts +14 -10
- package/src/userMap/revenueShareEscrowMap.ts +8 -3
- package/src/userMap/userMap.ts +43 -25
- package/src/userMap/userStatsMap.ts +32 -19
- package/src/userStats.ts +21 -8
- package/src/util/TransactionConfirmationManager.ts +10 -2
- package/src/util/chainClock.ts +1 -1
- package/src/util/computeUnits.ts +7 -3
- package/src/velocityClient.ts +536 -383
- package/tests/VelocityCore/remainingAccounts.test.ts +4 -5
- package/tests/accounts/customizedCadenceBulkAccountLoader.test.ts +19 -11
- package/tests/amm/test.ts +300 -95
- package/tests/decode/userAccountBufferStrings.ts +100 -100
- package/tests/dlob/helpers.ts +162 -173
- package/tests/dlob/test.ts +155 -106
- package/tests/tx/TransactionConfirmationManager.test.ts +9 -2
- package/tests/user/getMarginCalculation.ts +1 -1
- package/tests/user/helpers.ts +3 -4
- package/tests/user/marginCalculations.test.ts +2 -2
- package/tests/user/test.ts +3 -3
- package/tsconfig.browser.json +3 -1
- package/tsconfig.json +21 -2
- package/.yarn/install-state.gz +0 -0
- package/VERSION +0 -1
- package/bun.lock +0 -1885
- package/lib/browser/constants/insuranceFund.d.ts +0 -5
- package/lib/browser/constants/insuranceFund.js +0 -9
- package/lib/browser/tx/forwardOnlyTxSender.d.ts +0 -37
- package/lib/browser/tx/forwardOnlyTxSender.js +0 -92
- package/lib/browser/util/tps.d.ts +0 -2
- package/lib/browser/util/tps.js +0 -16
- package/lib/node/constants/insuranceFund.d.ts +0 -6
- package/lib/node/constants/insuranceFund.d.ts.map +0 -1
- package/lib/node/constants/insuranceFund.js +0 -9
- package/lib/node/tx/forwardOnlyTxSender.d.ts +0 -38
- package/lib/node/tx/forwardOnlyTxSender.d.ts.map +0 -1
- package/lib/node/tx/forwardOnlyTxSender.js +0 -92
- package/lib/node/util/tps.d.ts +0 -3
- package/lib/node/util/tps.d.ts.map +0 -1
- package/lib/node/util/tps.js +0 -16
- package/scripts/updateVersion.js +0 -28
- package/src/constants/insuranceFund.ts +0 -8
- package/src/tx/forwardOnlyTxSender.ts +0 -145
- package/src/util/tps.ts +0 -27
- package/tests/decode/phoenix.ts +0 -71
package/tests/amm/test.ts
CHANGED
|
@@ -7,6 +7,7 @@ import {
|
|
|
7
7
|
PERCENTAGE_PRECISION,
|
|
8
8
|
calculateSpread,
|
|
9
9
|
calculateSpreadBN,
|
|
10
|
+
calculateSpreadFundingBiasScale,
|
|
10
11
|
ZERO,
|
|
11
12
|
sigNum,
|
|
12
13
|
ONE,
|
|
@@ -57,6 +58,9 @@ class AMMSpreadTerms {
|
|
|
57
58
|
halfRevenueRetreatAmount: number;
|
|
58
59
|
longSpreadwRevRetreat: number;
|
|
59
60
|
shortSpreadwRevRetreat: number;
|
|
61
|
+
fundingBiasScale: number;
|
|
62
|
+
longSpreadwFundingBias: number;
|
|
63
|
+
shortSpreadwFundingBias: number;
|
|
60
64
|
totalSpread: number;
|
|
61
65
|
longSpread: number;
|
|
62
66
|
shortSpread: number;
|
|
@@ -229,6 +233,116 @@ describe('AMM Tests', () => {
|
|
|
229
233
|
assert((3500 * iscale) / 1e6 == 0.06566799749999999); //6.5%
|
|
230
234
|
});
|
|
231
235
|
|
|
236
|
+
it('Funding Bias Scale', () => {
|
|
237
|
+
// values pinned to the program's calculate_spread_funding_bias_scale tests
|
|
238
|
+
const twap = new BN(100).mul(PRICE_PRECISION); // $100
|
|
239
|
+
// hourly rate matching the funding offset floor f_ref (~10.95%/yr):
|
|
240
|
+
// fNorm = 1_250_000 * 1e6 / 1e8 * 24 = 300_000
|
|
241
|
+
const saturatingRate = new BN(1_250_000);
|
|
242
|
+
const qAmmLong = BASE_PRECISION.neg(); // users net short
|
|
243
|
+
const qAmmShort = BASE_PRECISION; // users net long
|
|
244
|
+
const one = BID_ASK_SPREAD_PRECISION.toNumber();
|
|
245
|
+
|
|
246
|
+
// s = 0 disables
|
|
247
|
+
assert(
|
|
248
|
+
calculateSpreadFundingBiasScale(qAmmLong, saturatingRate, twap, 0) == one
|
|
249
|
+
);
|
|
250
|
+
|
|
251
|
+
// f * q >= 0: vAMM receives (or zero rate/inventory), β = 1
|
|
252
|
+
assert(
|
|
253
|
+
calculateSpreadFundingBiasScale(qAmmShort, saturatingRate, twap, 50) ==
|
|
254
|
+
one
|
|
255
|
+
);
|
|
256
|
+
assert(
|
|
257
|
+
calculateSpreadFundingBiasScale(
|
|
258
|
+
qAmmLong,
|
|
259
|
+
saturatingRate.neg(),
|
|
260
|
+
twap,
|
|
261
|
+
50
|
|
262
|
+
) == one
|
|
263
|
+
);
|
|
264
|
+
assert(
|
|
265
|
+
calculateSpreadFundingBiasScale(ZERO, saturatingRate, twap, 50) == one
|
|
266
|
+
);
|
|
267
|
+
assert(calculateSpreadFundingBiasScale(qAmmLong, ZERO, twap, 50) == one);
|
|
268
|
+
|
|
269
|
+
// paying at f_ref: ρ ~= 1, β ~= 1 + s/100
|
|
270
|
+
assert(
|
|
271
|
+
calculateSpreadFundingBiasScale(qAmmLong, saturatingRate, twap, 50) ==
|
|
272
|
+
1_499_950
|
|
273
|
+
);
|
|
274
|
+
assert(
|
|
275
|
+
calculateSpreadFundingBiasScale(
|
|
276
|
+
qAmmShort,
|
|
277
|
+
saturatingRate.neg(),
|
|
278
|
+
twap,
|
|
279
|
+
50
|
|
280
|
+
) == 1_499_950
|
|
281
|
+
);
|
|
282
|
+
|
|
283
|
+
// half ramp: β = 1 + s/100 * 0.5
|
|
284
|
+
assert(
|
|
285
|
+
calculateSpreadFundingBiasScale(
|
|
286
|
+
qAmmLong,
|
|
287
|
+
saturatingRate.divn(2),
|
|
288
|
+
twap,
|
|
289
|
+
50
|
|
290
|
+
) == 1_249_975
|
|
291
|
+
);
|
|
292
|
+
|
|
293
|
+
// past f_ref the ramp clamps at 1: β = 1 + s/100 exactly
|
|
294
|
+
assert(
|
|
295
|
+
calculateSpreadFundingBiasScale(
|
|
296
|
+
qAmmLong,
|
|
297
|
+
saturatingRate.muln(10),
|
|
298
|
+
twap,
|
|
299
|
+
100
|
|
300
|
+
) ==
|
|
301
|
+
2 * one
|
|
302
|
+
);
|
|
303
|
+
|
|
304
|
+
// integration: paying side doubles at s = 100, other side untouched,
|
|
305
|
+
// mirrors the program's calculate_spread_funding_bias_tests
|
|
306
|
+
const calc = (rate: BN, s: number) =>
|
|
307
|
+
calculateSpreadBN(
|
|
308
|
+
1000, // baseSpread
|
|
309
|
+
ZERO,
|
|
310
|
+
ZERO,
|
|
311
|
+
2000, // maxSpread
|
|
312
|
+
AMM_RESERVE_PRECISION.muln(10),
|
|
313
|
+
AMM_RESERVE_PRECISION.muln(10),
|
|
314
|
+
new BN(34000000),
|
|
315
|
+
new BN(-1000), // tiny vAMM-long inventory so σ = λ = 1
|
|
316
|
+
new BN(34562304),
|
|
317
|
+
QUOTE_PRECISION.muln(10),
|
|
318
|
+
ZERO,
|
|
319
|
+
AMM_RESERVE_PRECISION.muln(10),
|
|
320
|
+
ZERO,
|
|
321
|
+
AMM_RESERVE_PRECISION.muln(100000),
|
|
322
|
+
ZERO,
|
|
323
|
+
ZERO,
|
|
324
|
+
ZERO,
|
|
325
|
+
ZERO,
|
|
326
|
+
ZERO,
|
|
327
|
+
0,
|
|
328
|
+
rate,
|
|
329
|
+
twap,
|
|
330
|
+
s
|
|
331
|
+
) as [number, number];
|
|
332
|
+
|
|
333
|
+
const [long0, short0] = calc(saturatingRate.muln(10), 0);
|
|
334
|
+
assert(long0 == 500);
|
|
335
|
+
assert(short0 == 500);
|
|
336
|
+
|
|
337
|
+
const [long1, short1] = calc(saturatingRate.muln(10), 100);
|
|
338
|
+
assert(long1 == long0);
|
|
339
|
+
assert(short1 == short0 * 2);
|
|
340
|
+
|
|
341
|
+
const [long2, short2] = calc(saturatingRate.muln(10).neg(), 100);
|
|
342
|
+
assert(long2 == long0);
|
|
343
|
+
assert(short2 == short0);
|
|
344
|
+
});
|
|
345
|
+
|
|
232
346
|
it('Various Spreads', () => {
|
|
233
347
|
const baseSpread: number = 0.025 * 1e6;
|
|
234
348
|
const lastOracleReservePriceSpreadPct: BN = ZERO;
|
|
@@ -308,6 +422,9 @@ describe('AMM Tests', () => {
|
|
|
308
422
|
shortIntensity,
|
|
309
423
|
volume24H,
|
|
310
424
|
0,
|
|
425
|
+
ZERO,
|
|
426
|
+
ZERO,
|
|
427
|
+
0,
|
|
311
428
|
true
|
|
312
429
|
);
|
|
313
430
|
// console.log(terms1);
|
|
@@ -341,6 +458,9 @@ describe('AMM Tests', () => {
|
|
|
341
458
|
new BN(72230366233),
|
|
342
459
|
new BN(432067603632),
|
|
343
460
|
0,
|
|
461
|
+
ZERO,
|
|
462
|
+
ZERO,
|
|
463
|
+
0,
|
|
344
464
|
true
|
|
345
465
|
);
|
|
346
466
|
|
|
@@ -373,6 +493,9 @@ describe('AMM Tests', () => {
|
|
|
373
493
|
new BN(72230366233),
|
|
374
494
|
new BN(432067603632),
|
|
375
495
|
0,
|
|
496
|
+
ZERO,
|
|
497
|
+
ZERO,
|
|
498
|
+
0,
|
|
376
499
|
true
|
|
377
500
|
);
|
|
378
501
|
|
|
@@ -407,6 +530,9 @@ describe('AMM Tests', () => {
|
|
|
407
530
|
new BN(72230366233),
|
|
408
531
|
new BN(432067603632),
|
|
409
532
|
0,
|
|
533
|
+
ZERO,
|
|
534
|
+
ZERO,
|
|
535
|
+
0,
|
|
410
536
|
true
|
|
411
537
|
);
|
|
412
538
|
|
|
@@ -441,6 +567,9 @@ describe('AMM Tests', () => {
|
|
|
441
567
|
new BN(243875031),
|
|
442
568
|
new BN(130017761029),
|
|
443
569
|
0,
|
|
570
|
+
ZERO,
|
|
571
|
+
ZERO,
|
|
572
|
+
0,
|
|
444
573
|
true
|
|
445
574
|
);
|
|
446
575
|
|
|
@@ -607,6 +736,9 @@ describe('AMM Tests', () => {
|
|
|
607
736
|
new BN(suiExample.amm.shortIntensityVolume),
|
|
608
737
|
new BN(suiExample.amm.volume24H),
|
|
609
738
|
0,
|
|
739
|
+
ZERO,
|
|
740
|
+
ZERO,
|
|
741
|
+
0,
|
|
610
742
|
true
|
|
611
743
|
);
|
|
612
744
|
|
|
@@ -647,6 +779,9 @@ describe('AMM Tests', () => {
|
|
|
647
779
|
new BN(suiExample.amm.shortIntensityVolume),
|
|
648
780
|
new BN(suiExample.amm.volume24H),
|
|
649
781
|
0,
|
|
782
|
+
ZERO,
|
|
783
|
+
ZERO,
|
|
784
|
+
0,
|
|
650
785
|
true
|
|
651
786
|
);
|
|
652
787
|
console.log(termsSuiExampleMod1);
|
|
@@ -676,6 +811,9 @@ describe('AMM Tests', () => {
|
|
|
676
811
|
new BN(suiExample.amm.shortIntensityVolume),
|
|
677
812
|
new BN(suiExample.amm.volume24H),
|
|
678
813
|
0,
|
|
814
|
+
ZERO,
|
|
815
|
+
ZERO,
|
|
816
|
+
0,
|
|
679
817
|
true
|
|
680
818
|
);
|
|
681
819
|
|
|
@@ -706,6 +844,7 @@ describe('AMM Tests', () => {
|
|
|
706
844
|
const myMockPerpMarkets = _.cloneDeep(mockPerpMarkets);
|
|
707
845
|
const mockMarket1 = myMockPerpMarkets[0];
|
|
708
846
|
const mockAmm = mockMarket1.amm;
|
|
847
|
+
const mockMarketStats = mockMarket1.marketStats;
|
|
709
848
|
const now = new BN(new Date().getTime() / 1000); //todo
|
|
710
849
|
|
|
711
850
|
const oraclePriceData = {
|
|
@@ -716,7 +855,12 @@ describe('AMM Tests', () => {
|
|
|
716
855
|
isMMOracleActive: true,
|
|
717
856
|
} as MMOraclePriceData;
|
|
718
857
|
|
|
719
|
-
const reserves = calculateSpreadReserves(
|
|
858
|
+
const reserves = calculateSpreadReserves(
|
|
859
|
+
mockAmm,
|
|
860
|
+
mockMarketStats,
|
|
861
|
+
oraclePriceData,
|
|
862
|
+
now
|
|
863
|
+
);
|
|
720
864
|
assert(reserves[0].baseAssetReserve.eq(new BN('1000000000')));
|
|
721
865
|
assert(reserves[0].quoteAssetReserve.eq(new BN('12000000000')));
|
|
722
866
|
assert(reserves[1].baseAssetReserve.eq(new BN('1000000000')));
|
|
@@ -733,19 +877,19 @@ describe('AMM Tests', () => {
|
|
|
733
877
|
mockAmm.baseSpread = 2500;
|
|
734
878
|
mockAmm.maxSpread = 25000;
|
|
735
879
|
|
|
736
|
-
|
|
880
|
+
mockMarketStats.last24HAvgFundingRate = new BN(7590328523);
|
|
737
881
|
|
|
738
|
-
|
|
882
|
+
mockMarketStats.lastMarkPriceTwap = new BN(
|
|
739
883
|
(oraclePriceData.price.toNumber() / 1e6 - 0.01) * 1e6
|
|
740
884
|
);
|
|
741
|
-
|
|
885
|
+
mockMarketStats.historicalOracleData.lastOraclePriceTwap = new BN(
|
|
742
886
|
(oraclePriceData.price.toNumber() / 1e6 + 0.015) * 1e6
|
|
743
887
|
);
|
|
744
888
|
|
|
745
|
-
|
|
889
|
+
mockMarketStats.historicalOracleData.lastOraclePriceTwap5Min = new BN(
|
|
746
890
|
(oraclePriceData.price.toNumber() / 1e6 + 0.005) * 1e6
|
|
747
891
|
);
|
|
748
|
-
|
|
892
|
+
mockMarketStats.lastMarkPriceTwap5Min = new BN(
|
|
749
893
|
(oraclePriceData.price.toNumber() / 1e6 - 0.005) * 1e6
|
|
750
894
|
);
|
|
751
895
|
|
|
@@ -771,18 +915,27 @@ describe('AMM Tests', () => {
|
|
|
771
915
|
.div(reservePrice);
|
|
772
916
|
|
|
773
917
|
// now = now || new BN(new Date().getTime() / 1000); //todo
|
|
774
|
-
const liveOracleStd = calculateLiveOracleStd(
|
|
918
|
+
const liveOracleStd = calculateLiveOracleStd(
|
|
919
|
+
mockMarketStats,
|
|
920
|
+
oraclePriceData,
|
|
921
|
+
now
|
|
922
|
+
);
|
|
775
923
|
console.log('reservePrice:', reservePrice.toString());
|
|
776
924
|
console.log('targetMarkSpreadPct:', targetMarkSpreadPct.toString());
|
|
777
925
|
console.log('confIntervalPct:', confIntervalPct.toString());
|
|
778
926
|
console.log('liveOracleStd:', liveOracleStd.toString());
|
|
779
927
|
|
|
780
|
-
const tt = calculateSpread(mockAmm, oraclePriceData, now);
|
|
928
|
+
const tt = calculateSpread(mockAmm, mockMarketStats, oraclePriceData, now);
|
|
781
929
|
console.log(tt);
|
|
782
930
|
|
|
783
931
|
console.log('amm.baseAssetReserve:', mockAmm.baseAssetReserve.toString());
|
|
784
932
|
assert(mockAmm.baseAssetReserve.eq(new BN('1000000000')));
|
|
785
|
-
const reserves2 = calculateSpreadReserves(
|
|
933
|
+
const reserves2 = calculateSpreadReserves(
|
|
934
|
+
mockAmm,
|
|
935
|
+
mockMarketStats,
|
|
936
|
+
oraclePriceData,
|
|
937
|
+
now
|
|
938
|
+
);
|
|
786
939
|
console.log(reserves2[0].baseAssetReserve.toString());
|
|
787
940
|
console.log(reserves2[0].quoteAssetReserve.toString());
|
|
788
941
|
|
|
@@ -818,12 +971,12 @@ describe('AMM Tests', () => {
|
|
|
818
971
|
);
|
|
819
972
|
const referencePriceOffset = calculateReferencePriceOffset(
|
|
820
973
|
reservePrice,
|
|
821
|
-
|
|
974
|
+
mockMarketStats.last24HAvgFundingRate,
|
|
822
975
|
liquidityFractionSigned,
|
|
823
|
-
|
|
824
|
-
|
|
825
|
-
|
|
826
|
-
|
|
976
|
+
mockMarketStats.historicalOracleData.lastOraclePriceTwap5Min,
|
|
977
|
+
mockMarketStats.lastMarkPriceTwap5Min,
|
|
978
|
+
mockMarketStats.historicalOracleData.lastOraclePriceTwap,
|
|
979
|
+
mockMarketStats.lastMarkPriceTwap,
|
|
827
980
|
maxOffset
|
|
828
981
|
);
|
|
829
982
|
console.log('referencePriceOffset:', referencePriceOffset.toString());
|
|
@@ -831,7 +984,12 @@ describe('AMM Tests', () => {
|
|
|
831
984
|
assert(referencePriceOffset.eq(new BN(maxOffset)));
|
|
832
985
|
|
|
833
986
|
// mockAmm.curveUpdateIntensity = 100;
|
|
834
|
-
const reserves3 = calculateSpreadReserves(
|
|
987
|
+
const reserves3 = calculateSpreadReserves(
|
|
988
|
+
mockAmm,
|
|
989
|
+
mockMarketStats,
|
|
990
|
+
oraclePriceData,
|
|
991
|
+
now
|
|
992
|
+
);
|
|
835
993
|
console.log(reserves3[0].baseAssetReserve.toString());
|
|
836
994
|
console.log(reserves3[0].quoteAssetReserve.toString());
|
|
837
995
|
|
|
@@ -856,7 +1014,12 @@ describe('AMM Tests', () => {
|
|
|
856
1014
|
assert(p2.eq(new BN(13828180)));
|
|
857
1015
|
|
|
858
1016
|
mockAmm.curveUpdateIntensity = 110;
|
|
859
|
-
const reserves4 = calculateSpreadReserves(
|
|
1017
|
+
const reserves4 = calculateSpreadReserves(
|
|
1018
|
+
mockAmm,
|
|
1019
|
+
mockMarketStats,
|
|
1020
|
+
oraclePriceData,
|
|
1021
|
+
now
|
|
1022
|
+
);
|
|
860
1023
|
|
|
861
1024
|
assert(reserves4[0].baseAssetReserve.eq(new BN('1100068201')));
|
|
862
1025
|
assert(reserves4[0].quoteAssetReserve.eq(new BN('909034546')));
|
|
@@ -879,7 +1042,12 @@ describe('AMM Tests', () => {
|
|
|
879
1042
|
assert(p2RF.eq(new BN(13828180)));
|
|
880
1043
|
// no ref price offset at 100
|
|
881
1044
|
mockAmm.curveUpdateIntensity = 100;
|
|
882
|
-
const reserves5 = calculateSpreadReserves(
|
|
1045
|
+
const reserves5 = calculateSpreadReserves(
|
|
1046
|
+
mockAmm,
|
|
1047
|
+
mockMarketStats,
|
|
1048
|
+
oraclePriceData,
|
|
1049
|
+
now
|
|
1050
|
+
);
|
|
883
1051
|
|
|
884
1052
|
assert(reserves5[0].baseAssetReserve.eq(new BN('1100068201')));
|
|
885
1053
|
assert(reserves5[0].quoteAssetReserve.eq(new BN('909034546')));
|
|
@@ -907,6 +1075,7 @@ describe('AMM Tests', () => {
|
|
|
907
1075
|
const myMockPerpMarkets = _.cloneDeep(mockPerpMarkets);
|
|
908
1076
|
const mockMarket1 = myMockPerpMarkets[0];
|
|
909
1077
|
const mockAmm = mockMarket1.amm;
|
|
1078
|
+
const mockMarketStats = mockMarket1.marketStats;
|
|
910
1079
|
const now = new BN(new Date().getTime() / 1000); //todo
|
|
911
1080
|
|
|
912
1081
|
const oraclePriceData = {
|
|
@@ -917,7 +1086,12 @@ describe('AMM Tests', () => {
|
|
|
917
1086
|
isMMOracleActive: true,
|
|
918
1087
|
} as MMOraclePriceData;
|
|
919
1088
|
|
|
920
|
-
const reserves = calculateSpreadReserves(
|
|
1089
|
+
const reserves = calculateSpreadReserves(
|
|
1090
|
+
mockAmm,
|
|
1091
|
+
mockMarketStats,
|
|
1092
|
+
oraclePriceData,
|
|
1093
|
+
now
|
|
1094
|
+
);
|
|
921
1095
|
assert(reserves[0].baseAssetReserve.eq(new BN('1000000000')));
|
|
922
1096
|
assert(reserves[0].quoteAssetReserve.eq(new BN('12000000000')));
|
|
923
1097
|
assert(reserves[1].baseAssetReserve.eq(new BN('1000000000')));
|
|
@@ -934,19 +1108,19 @@ describe('AMM Tests', () => {
|
|
|
934
1108
|
mockAmm.baseSpread = 2500;
|
|
935
1109
|
mockAmm.maxSpread = 25000;
|
|
936
1110
|
|
|
937
|
-
|
|
1111
|
+
mockMarketStats.last24HAvgFundingRate = new BN(-7590328523);
|
|
938
1112
|
|
|
939
|
-
|
|
1113
|
+
mockMarketStats.lastMarkPriceTwap = new BN(
|
|
940
1114
|
(oraclePriceData.price.toNumber() / 1e6 + 0.01) * 1e6
|
|
941
1115
|
);
|
|
942
|
-
|
|
1116
|
+
mockMarketStats.historicalOracleData.lastOraclePriceTwap = new BN(
|
|
943
1117
|
(oraclePriceData.price.toNumber() / 1e6 - 0.015) * 1e6
|
|
944
1118
|
);
|
|
945
1119
|
|
|
946
|
-
|
|
1120
|
+
mockMarketStats.historicalOracleData.lastOraclePriceTwap5Min = new BN(
|
|
947
1121
|
(oraclePriceData.price.toNumber() / 1e6 + 0.005) * 1e6
|
|
948
1122
|
);
|
|
949
|
-
|
|
1123
|
+
mockMarketStats.lastMarkPriceTwap5Min = new BN(
|
|
950
1124
|
(oraclePriceData.price.toNumber() / 1e6 - 0.005) * 1e6
|
|
951
1125
|
);
|
|
952
1126
|
|
|
@@ -972,19 +1146,28 @@ describe('AMM Tests', () => {
|
|
|
972
1146
|
.div(reservePrice);
|
|
973
1147
|
|
|
974
1148
|
// now = now || new BN(new Date().getTime() / 1000); //todo
|
|
975
|
-
const liveOracleStd = calculateLiveOracleStd(
|
|
1149
|
+
const liveOracleStd = calculateLiveOracleStd(
|
|
1150
|
+
mockMarketStats,
|
|
1151
|
+
oraclePriceData,
|
|
1152
|
+
now
|
|
1153
|
+
);
|
|
976
1154
|
console.log('reservePrice:', reservePrice.toString());
|
|
977
1155
|
console.log('targetMarkSpreadPct:', targetMarkSpreadPct.toString());
|
|
978
1156
|
console.log('confIntervalPct:', confIntervalPct.toString());
|
|
979
1157
|
|
|
980
1158
|
console.log('liveOracleStd:', liveOracleStd.toString());
|
|
981
1159
|
|
|
982
|
-
const tt = calculateSpread(mockAmm, oraclePriceData, now);
|
|
1160
|
+
const tt = calculateSpread(mockAmm, mockMarketStats, oraclePriceData, now);
|
|
983
1161
|
console.log(tt);
|
|
984
1162
|
|
|
985
1163
|
console.log('amm.baseAssetReserve:', mockAmm.baseAssetReserve.toString());
|
|
986
1164
|
assert(mockAmm.baseAssetReserve.eq(new BN('1000000000')));
|
|
987
|
-
const reserves2 = calculateSpreadReserves(
|
|
1165
|
+
const reserves2 = calculateSpreadReserves(
|
|
1166
|
+
mockAmm,
|
|
1167
|
+
mockMarketStats,
|
|
1168
|
+
oraclePriceData,
|
|
1169
|
+
now
|
|
1170
|
+
);
|
|
988
1171
|
console.log(reserves2[1].baseAssetReserve.toString());
|
|
989
1172
|
console.log(reserves2[1].quoteAssetReserve.toString());
|
|
990
1173
|
|
|
@@ -1020,12 +1203,12 @@ describe('AMM Tests', () => {
|
|
|
1020
1203
|
);
|
|
1021
1204
|
const referencePriceOffset = calculateReferencePriceOffset(
|
|
1022
1205
|
reservePrice,
|
|
1023
|
-
|
|
1206
|
+
mockMarketStats.last24HAvgFundingRate,
|
|
1024
1207
|
liquidityFractionSigned,
|
|
1025
|
-
|
|
1026
|
-
|
|
1027
|
-
|
|
1028
|
-
|
|
1208
|
+
mockMarketStats.historicalOracleData.lastOraclePriceTwap5Min,
|
|
1209
|
+
mockMarketStats.lastMarkPriceTwap5Min,
|
|
1210
|
+
mockMarketStats.historicalOracleData.lastOraclePriceTwap,
|
|
1211
|
+
mockMarketStats.lastMarkPriceTwap,
|
|
1029
1212
|
maxOffset
|
|
1030
1213
|
);
|
|
1031
1214
|
console.log('referencePriceOffset:', referencePriceOffset.toString());
|
|
@@ -1034,7 +1217,12 @@ describe('AMM Tests', () => {
|
|
|
1034
1217
|
// assert(referencePriceOffset.eq(new BN(maxOffset)));
|
|
1035
1218
|
|
|
1036
1219
|
// mockAmm.curveUpdateIntensity = 100;
|
|
1037
|
-
const reserves3 = calculateSpreadReserves(
|
|
1220
|
+
const reserves3 = calculateSpreadReserves(
|
|
1221
|
+
mockAmm,
|
|
1222
|
+
mockMarketStats,
|
|
1223
|
+
oraclePriceData,
|
|
1224
|
+
now
|
|
1225
|
+
);
|
|
1038
1226
|
console.log(reserves3[0].baseAssetReserve.toString());
|
|
1039
1227
|
console.log(reserves3[0].quoteAssetReserve.toString());
|
|
1040
1228
|
|
|
@@ -1059,7 +1247,12 @@ describe('AMM Tests', () => {
|
|
|
1059
1247
|
assert(p2.eq(new BN(16401163)));
|
|
1060
1248
|
|
|
1061
1249
|
mockAmm.curveUpdateIntensity = 110;
|
|
1062
|
-
const reserves4 = calculateSpreadReserves(
|
|
1250
|
+
const reserves4 = calculateSpreadReserves(
|
|
1251
|
+
mockAmm,
|
|
1252
|
+
mockMarketStats,
|
|
1253
|
+
oraclePriceData,
|
|
1254
|
+
now
|
|
1255
|
+
);
|
|
1063
1256
|
|
|
1064
1257
|
assert(reserves4[0].baseAssetReserve.eq(new BN('999999998')));
|
|
1065
1258
|
assert(reserves4[0].quoteAssetReserve.eq(new BN('1000000000')));
|
|
@@ -1083,7 +1276,12 @@ describe('AMM Tests', () => {
|
|
|
1083
1276
|
|
|
1084
1277
|
// no ref price offset at 100
|
|
1085
1278
|
mockAmm.curveUpdateIntensity = 100;
|
|
1086
|
-
const reserves5 = calculateSpreadReserves(
|
|
1279
|
+
const reserves5 = calculateSpreadReserves(
|
|
1280
|
+
mockAmm,
|
|
1281
|
+
mockMarketStats,
|
|
1282
|
+
oraclePriceData,
|
|
1283
|
+
now
|
|
1284
|
+
);
|
|
1087
1285
|
|
|
1088
1286
|
assert(reserves5[0].baseAssetReserve.eq(new BN('999999998')));
|
|
1089
1287
|
assert(reserves5[0].quoteAssetReserve.eq(new BN('1000000000')));
|
|
@@ -1112,7 +1310,7 @@ describe('AMM Tests', () => {
|
|
|
1112
1310
|
it('live update functions', () => {
|
|
1113
1311
|
const myMockPerpMarkets = _.cloneDeep(mockPerpMarkets);
|
|
1114
1312
|
const mockMarket1 = myMockPerpMarkets[0];
|
|
1115
|
-
const
|
|
1313
|
+
const mockMarketStats = mockMarket1.marketStats;
|
|
1116
1314
|
const now = new BN(new Date().getTime() / 1000); //todo
|
|
1117
1315
|
const slot = 999999999;
|
|
1118
1316
|
|
|
@@ -1123,29 +1321,34 @@ describe('AMM Tests', () => {
|
|
|
1123
1321
|
hasSufficientNumberOfDataPoints: true,
|
|
1124
1322
|
isMMOracleActive: true,
|
|
1125
1323
|
} as MMOraclePriceData;
|
|
1126
|
-
|
|
1127
|
-
|
|
1128
|
-
|
|
1129
|
-
.mul(new BN(999))
|
|
1130
|
-
|
|
1131
|
-
|
|
1324
|
+
mockMarketStats.oracleStd = new BN(0.18 * PRICE_PRECISION.toNumber());
|
|
1325
|
+
mockMarketStats.fundingPeriod = new BN(3600);
|
|
1326
|
+
mockMarketStats.historicalOracleData.lastOraclePriceTwap =
|
|
1327
|
+
oraclePriceData.price.mul(new BN(999)).div(new BN(1000));
|
|
1328
|
+
mockMarketStats.historicalOracleData.lastOraclePriceTwapTs = now.sub(
|
|
1329
|
+
new BN(11)
|
|
1330
|
+
);
|
|
1132
1331
|
|
|
1133
1332
|
const liveOracleTwap = calculateLiveOracleTwap(
|
|
1134
|
-
|
|
1333
|
+
mockMarketStats.historicalOracleData,
|
|
1135
1334
|
oraclePriceData,
|
|
1136
1335
|
now,
|
|
1137
|
-
|
|
1336
|
+
mockMarketStats.fundingPeriod
|
|
1138
1337
|
);
|
|
1139
1338
|
console.log('liveOracleTwap:', liveOracleTwap.toNumber());
|
|
1140
1339
|
assert(liveOracleTwap.eq(new BN(13539488)));
|
|
1141
1340
|
|
|
1142
|
-
const liveOracleStd = calculateLiveOracleStd(
|
|
1341
|
+
const liveOracleStd = calculateLiveOracleStd(
|
|
1342
|
+
mockMarketStats,
|
|
1343
|
+
oraclePriceData,
|
|
1344
|
+
now
|
|
1345
|
+
);
|
|
1143
1346
|
assert(liveOracleStd.eq(new BN(13732450)));
|
|
1144
1347
|
|
|
1145
|
-
|
|
1348
|
+
mockMarketStats.lastOracleConfPct = new BN(150000);
|
|
1146
1349
|
const reservePrice = new BN(13.553 * PRICE_PRECISION.toNumber());
|
|
1147
1350
|
const newConfPct = getNewOracleConfPct(
|
|
1148
|
-
|
|
1351
|
+
mockMarketStats,
|
|
1149
1352
|
oraclePriceData,
|
|
1150
1353
|
reservePrice,
|
|
1151
1354
|
now
|
|
@@ -1153,7 +1356,9 @@ describe('AMM Tests', () => {
|
|
|
1153
1356
|
console.log('newConfPct:', newConfPct.toString());
|
|
1154
1357
|
|
|
1155
1358
|
assert(
|
|
1156
|
-
now
|
|
1359
|
+
now
|
|
1360
|
+
.sub(mockMarketStats.historicalOracleData.lastOraclePriceTwapTs)
|
|
1361
|
+
.gt(ZERO)
|
|
1157
1362
|
);
|
|
1158
1363
|
|
|
1159
1364
|
assert(newConfPct.eq(new BN(135000)));
|
|
@@ -1296,8 +1501,8 @@ describe('AMM Tests', () => {
|
|
|
1296
1501
|
// make it like RNDR
|
|
1297
1502
|
const now = new BN(1688878353);
|
|
1298
1503
|
|
|
1299
|
-
mockMarket1.
|
|
1300
|
-
mockMarket1.
|
|
1504
|
+
mockMarket1.marketStats.fundingPeriod = new BN(3600);
|
|
1505
|
+
mockMarket1.lastFundingRateTs = new BN(1688860817);
|
|
1301
1506
|
|
|
1302
1507
|
const currentMarkPrice = new BN(1.9843 * PRICE_PRECISION.toNumber()); // trading at a premium
|
|
1303
1508
|
const mmOraclePriceData: MMOraclePriceData = {
|
|
@@ -1307,27 +1512,27 @@ describe('AMM Tests', () => {
|
|
|
1307
1512
|
hasSufficientNumberOfDataPoints: true,
|
|
1308
1513
|
isMMOracleActive: true,
|
|
1309
1514
|
};
|
|
1310
|
-
mockMarket1.
|
|
1515
|
+
mockMarket1.marketStats.historicalOracleData.lastOraclePrice = new BN(
|
|
1311
1516
|
1.9535 * PRICE_PRECISION.toNumber()
|
|
1312
1517
|
);
|
|
1313
1518
|
|
|
1314
1519
|
// mockMarket1.amm.pegMultiplier = new BN(1.897573 * 1e3);
|
|
1315
1520
|
|
|
1316
|
-
mockMarket1.
|
|
1521
|
+
mockMarket1.marketStats.lastMarkPriceTwap = new BN(
|
|
1317
1522
|
1.945594 * PRICE_PRECISION.toNumber()
|
|
1318
1523
|
);
|
|
1319
|
-
mockMarket1.
|
|
1524
|
+
mockMarket1.marketStats.lastBidPriceTwap = new BN(
|
|
1320
1525
|
1.941629 * PRICE_PRECISION.toNumber()
|
|
1321
1526
|
);
|
|
1322
|
-
mockMarket1.
|
|
1527
|
+
mockMarket1.marketStats.lastAskPriceTwap = new BN(
|
|
1323
1528
|
1.94956 * PRICE_PRECISION.toNumber()
|
|
1324
1529
|
);
|
|
1325
|
-
mockMarket1.
|
|
1530
|
+
mockMarket1.marketStats.lastMarkPriceTwapTs = new BN(1688877729);
|
|
1326
1531
|
|
|
1327
|
-
mockMarket1.
|
|
1532
|
+
mockMarket1.marketStats.historicalOracleData.lastOraclePriceTwap = new BN(
|
|
1328
1533
|
1.942449 * PRICE_PRECISION.toNumber()
|
|
1329
1534
|
);
|
|
1330
|
-
mockMarket1.
|
|
1535
|
+
mockMarket1.marketStats.historicalOracleData.lastOraclePriceTwapTs = new BN(
|
|
1331
1536
|
1688878333
|
|
1332
1537
|
);
|
|
1333
1538
|
|
|
@@ -1372,8 +1577,8 @@ describe('AMM Tests', () => {
|
|
|
1372
1577
|
// make it like OP
|
|
1373
1578
|
const now = new BN(1688881915);
|
|
1374
1579
|
|
|
1375
|
-
mockMarket1.
|
|
1376
|
-
mockMarket1.
|
|
1580
|
+
mockMarket1.marketStats.fundingPeriod = new BN(3600);
|
|
1581
|
+
mockMarket1.lastFundingRateTs = new BN(1688864415);
|
|
1377
1582
|
|
|
1378
1583
|
const currentMarkPrice = new BN(1.2242 * PRICE_PRECISION.toNumber()); // trading at a premium
|
|
1379
1584
|
const mmOraclePriceData: MMOraclePriceData = {
|
|
@@ -1383,27 +1588,27 @@ describe('AMM Tests', () => {
|
|
|
1383
1588
|
hasSufficientNumberOfDataPoints: true,
|
|
1384
1589
|
isMMOracleActive: true,
|
|
1385
1590
|
};
|
|
1386
|
-
mockMarket1.
|
|
1591
|
+
mockMarket1.marketStats.historicalOracleData.lastOraclePrice = new BN(
|
|
1387
1592
|
1.9535 * PRICE_PRECISION.toNumber()
|
|
1388
1593
|
);
|
|
1389
1594
|
|
|
1390
1595
|
// mockMarket1.amm.pegMultiplier = new BN(1.897573 * 1e3);
|
|
1391
1596
|
|
|
1392
|
-
mockMarket1.
|
|
1597
|
+
mockMarket1.marketStats.lastMarkPriceTwap = new BN(
|
|
1393
1598
|
1.218363 * PRICE_PRECISION.toNumber()
|
|
1394
1599
|
);
|
|
1395
|
-
mockMarket1.
|
|
1600
|
+
mockMarket1.marketStats.lastBidPriceTwap = new BN(
|
|
1396
1601
|
1.218363 * PRICE_PRECISION.toNumber()
|
|
1397
1602
|
);
|
|
1398
|
-
mockMarket1.
|
|
1603
|
+
mockMarket1.marketStats.lastAskPriceTwap = new BN(
|
|
1399
1604
|
1.218364 * PRICE_PRECISION.toNumber()
|
|
1400
1605
|
);
|
|
1401
|
-
mockMarket1.
|
|
1606
|
+
mockMarket1.marketStats.lastMarkPriceTwapTs = new BN(1688878815);
|
|
1402
1607
|
|
|
1403
|
-
mockMarket1.
|
|
1608
|
+
mockMarket1.marketStats.historicalOracleData.lastOraclePriceTwap = new BN(
|
|
1404
1609
|
1.220964 * PRICE_PRECISION.toNumber()
|
|
1405
1610
|
);
|
|
1406
|
-
mockMarket1.
|
|
1611
|
+
mockMarket1.marketStats.historicalOracleData.lastOraclePriceTwapTs = new BN(
|
|
1407
1612
|
1688879991
|
|
1408
1613
|
);
|
|
1409
1614
|
|
|
@@ -1439,13 +1644,13 @@ describe('AMM Tests', () => {
|
|
|
1439
1644
|
|
|
1440
1645
|
console.log(
|
|
1441
1646
|
'markTwapLive:',
|
|
1442
|
-
mockMarket1.
|
|
1647
|
+
mockMarket1.marketStats.lastMarkPriceTwap.toString(),
|
|
1443
1648
|
'->',
|
|
1444
1649
|
markTwapLive.toString()
|
|
1445
1650
|
);
|
|
1446
1651
|
console.log(
|
|
1447
1652
|
'oracTwapLive:',
|
|
1448
|
-
mockMarket1.
|
|
1653
|
+
mockMarket1.marketStats.historicalOracleData.lastOraclePriceTwap.toString(),
|
|
1449
1654
|
'->',
|
|
1450
1655
|
oracleTwapLive.toString()
|
|
1451
1656
|
);
|
|
@@ -1464,8 +1669,8 @@ describe('AMM Tests', () => {
|
|
|
1464
1669
|
// make it like OP
|
|
1465
1670
|
const now = new BN(1688881915);
|
|
1466
1671
|
|
|
1467
|
-
mockMarket1.
|
|
1468
|
-
mockMarket1.
|
|
1672
|
+
mockMarket1.marketStats.fundingPeriod = new BN(3600);
|
|
1673
|
+
mockMarket1.lastFundingRateTs = new BN(1688864415);
|
|
1469
1674
|
|
|
1470
1675
|
const currentMarkPrice = new BN(1.2242 * PRICE_PRECISION.toNumber()); // trading at a premium
|
|
1471
1676
|
const mmOraclePriceData: MMOraclePriceData = {
|
|
@@ -1475,27 +1680,27 @@ describe('AMM Tests', () => {
|
|
|
1475
1680
|
hasSufficientNumberOfDataPoints: true,
|
|
1476
1681
|
isMMOracleActive: true,
|
|
1477
1682
|
} as MMOraclePriceData;
|
|
1478
|
-
mockMarket1.
|
|
1683
|
+
mockMarket1.marketStats.historicalOracleData.lastOraclePrice = new BN(
|
|
1479
1684
|
1.9535 * PRICE_PRECISION.toNumber()
|
|
1480
1685
|
);
|
|
1481
1686
|
|
|
1482
1687
|
// mockMarket1.amm.pegMultiplier = new BN(1.897573 * 1e3);
|
|
1483
1688
|
|
|
1484
|
-
mockMarket1.
|
|
1689
|
+
mockMarket1.marketStats.lastMarkPriceTwap = new BN(
|
|
1485
1690
|
1.218363 * PRICE_PRECISION.toNumber()
|
|
1486
1691
|
);
|
|
1487
|
-
mockMarket1.
|
|
1692
|
+
mockMarket1.marketStats.lastBidPriceTwap = new BN(
|
|
1488
1693
|
1.218363 * PRICE_PRECISION.toNumber()
|
|
1489
1694
|
);
|
|
1490
|
-
mockMarket1.
|
|
1695
|
+
mockMarket1.marketStats.lastAskPriceTwap = new BN(
|
|
1491
1696
|
1.218364 * PRICE_PRECISION.toNumber()
|
|
1492
1697
|
);
|
|
1493
|
-
mockMarket1.
|
|
1698
|
+
mockMarket1.marketStats.lastMarkPriceTwapTs = new BN(1688878815);
|
|
1494
1699
|
|
|
1495
|
-
mockMarket1.
|
|
1700
|
+
mockMarket1.marketStats.historicalOracleData.lastOraclePriceTwap = new BN(
|
|
1496
1701
|
1.820964 * PRICE_PRECISION.toNumber()
|
|
1497
1702
|
);
|
|
1498
|
-
mockMarket1.
|
|
1703
|
+
mockMarket1.marketStats.historicalOracleData.lastOraclePriceTwapTs = new BN(
|
|
1499
1704
|
1688879991
|
|
1500
1705
|
);
|
|
1501
1706
|
mockMarket1.contractTier = ContractTier.A;
|
|
@@ -1532,13 +1737,13 @@ describe('AMM Tests', () => {
|
|
|
1532
1737
|
|
|
1533
1738
|
console.log(
|
|
1534
1739
|
'markTwapLive:',
|
|
1535
|
-
mockMarket1.
|
|
1740
|
+
mockMarket1.marketStats.lastMarkPriceTwap.toString(),
|
|
1536
1741
|
'->',
|
|
1537
1742
|
markTwapLive.toString()
|
|
1538
1743
|
);
|
|
1539
1744
|
console.log(
|
|
1540
1745
|
'oracTwapLive:',
|
|
1541
|
-
mockMarket1.
|
|
1746
|
+
mockMarket1.marketStats.historicalOracleData.lastOraclePriceTwap.toString(),
|
|
1542
1747
|
'->',
|
|
1543
1748
|
oracleTwapLive.toString()
|
|
1544
1749
|
);
|
|
@@ -1562,13 +1767,13 @@ describe('AMM Tests', () => {
|
|
|
1562
1767
|
|
|
1563
1768
|
console.log(
|
|
1564
1769
|
'markTwapLive:',
|
|
1565
|
-
mockMarket1.
|
|
1770
|
+
mockMarket1.marketStats.lastMarkPriceTwap.toString(),
|
|
1566
1771
|
'->',
|
|
1567
1772
|
markTwapLive.toString()
|
|
1568
1773
|
);
|
|
1569
1774
|
console.log(
|
|
1570
1775
|
'oracTwapLive:',
|
|
1571
|
-
mockMarket1.
|
|
1776
|
+
mockMarket1.marketStats.historicalOracleData.lastOraclePriceTwap.toString(),
|
|
1572
1777
|
'->',
|
|
1573
1778
|
oracleTwapLive.toString()
|
|
1574
1779
|
);
|
|
@@ -1592,13 +1797,13 @@ describe('AMM Tests', () => {
|
|
|
1592
1797
|
|
|
1593
1798
|
console.log(
|
|
1594
1799
|
'markTwapLive:',
|
|
1595
|
-
mockMarket1.
|
|
1800
|
+
mockMarket1.marketStats.lastMarkPriceTwap.toString(),
|
|
1596
1801
|
'->',
|
|
1597
1802
|
markTwapLive.toString()
|
|
1598
1803
|
);
|
|
1599
1804
|
console.log(
|
|
1600
1805
|
'oracTwapLive:',
|
|
1601
|
-
mockMarket1.
|
|
1806
|
+
mockMarket1.marketStats.historicalOracleData.lastOraclePriceTwap.toString(),
|
|
1602
1807
|
'->',
|
|
1603
1808
|
oracleTwapLive.toString()
|
|
1604
1809
|
);
|
|
@@ -1634,7 +1839,7 @@ describe('AMM Tests', () => {
|
|
|
1634
1839
|
hasSufficientNumberOfDataPoints: true,
|
|
1635
1840
|
isMMOracleActive: true,
|
|
1636
1841
|
} as MMOraclePriceData;
|
|
1637
|
-
mockMarket1.
|
|
1842
|
+
mockMarket1.marketStats.historicalOracleData.lastOraclePrice = new BN(
|
|
1638
1843
|
18.5535 * PRICE_PRECISION.toNumber()
|
|
1639
1844
|
);
|
|
1640
1845
|
|
|
@@ -1644,7 +1849,7 @@ describe('AMM Tests', () => {
|
|
|
1644
1849
|
updatedAmm.baseAssetReserve,
|
|
1645
1850
|
updatedAmm.minBaseAssetReserve,
|
|
1646
1851
|
updatedAmm.maxBaseAssetReserve,
|
|
1647
|
-
|
|
1852
|
+
mockMarket1.orderStepSize
|
|
1648
1853
|
);
|
|
1649
1854
|
|
|
1650
1855
|
const generator = getVammL2Generator({
|
|
@@ -1711,7 +1916,7 @@ describe('AMM Tests', () => {
|
|
|
1711
1916
|
hasSufficientNumberOfDataPoints: true,
|
|
1712
1917
|
isMMOracleActive: true,
|
|
1713
1918
|
} as MMOraclePriceData;
|
|
1714
|
-
mockMarket1.
|
|
1919
|
+
mockMarket1.marketStats.historicalOracleData.lastOraclePrice = new BN(
|
|
1715
1920
|
18.5535 * PRICE_PRECISION.toNumber()
|
|
1716
1921
|
);
|
|
1717
1922
|
|
|
@@ -1721,7 +1926,7 @@ describe('AMM Tests', () => {
|
|
|
1721
1926
|
updatedAmm.baseAssetReserve,
|
|
1722
1927
|
updatedAmm.minBaseAssetReserve,
|
|
1723
1928
|
updatedAmm.maxBaseAssetReserve,
|
|
1724
|
-
|
|
1929
|
+
mockMarket1.orderStepSize
|
|
1725
1930
|
);
|
|
1726
1931
|
|
|
1727
1932
|
const generator = getVammL2Generator({
|
|
@@ -1787,7 +1992,7 @@ describe('AMM Tests', () => {
|
|
|
1787
1992
|
hasSufficientNumberOfDataPoints: true,
|
|
1788
1993
|
isMMOracleActive: true,
|
|
1789
1994
|
} as MMOraclePriceData;
|
|
1790
|
-
mockMarket1.
|
|
1995
|
+
mockMarket1.marketStats.historicalOracleData.lastOraclePrice = new BN(
|
|
1791
1996
|
18.5535 * PRICE_PRECISION.toNumber()
|
|
1792
1997
|
);
|
|
1793
1998
|
|
|
@@ -1797,7 +2002,7 @@ describe('AMM Tests', () => {
|
|
|
1797
2002
|
updatedAmm.baseAssetReserve,
|
|
1798
2003
|
updatedAmm.minBaseAssetReserve,
|
|
1799
2004
|
updatedAmm.maxBaseAssetReserve,
|
|
1800
|
-
|
|
2005
|
+
mockMarket1.orderStepSize
|
|
1801
2006
|
);
|
|
1802
2007
|
|
|
1803
2008
|
assert(!openAsks.eq(openBids));
|
|
@@ -1869,7 +2074,7 @@ describe('AMM Tests', () => {
|
|
|
1869
2074
|
hasSufficientNumberOfDataPoints: true,
|
|
1870
2075
|
isMMOracleActive: true,
|
|
1871
2076
|
} as MMOraclePriceData;
|
|
1872
|
-
mockMarket1.
|
|
2077
|
+
mockMarket1.marketStats.historicalOracleData.lastOraclePrice = new BN(
|
|
1873
2078
|
18.5535 * PRICE_PRECISION.toNumber()
|
|
1874
2079
|
);
|
|
1875
2080
|
|
|
@@ -1879,7 +2084,7 @@ describe('AMM Tests', () => {
|
|
|
1879
2084
|
updatedAmm.baseAssetReserve,
|
|
1880
2085
|
updatedAmm.minBaseAssetReserve,
|
|
1881
2086
|
updatedAmm.maxBaseAssetReserve,
|
|
1882
|
-
|
|
2087
|
+
mockMarket1.orderStepSize
|
|
1883
2088
|
);
|
|
1884
2089
|
|
|
1885
2090
|
assert(!openAsks.eq(openBids));
|
|
@@ -1954,7 +2159,7 @@ describe('AMM Tests', () => {
|
|
|
1954
2159
|
hasSufficientNumberOfDataPoints: true,
|
|
1955
2160
|
isMMOracleActive: true,
|
|
1956
2161
|
};
|
|
1957
|
-
mockMarket1.
|
|
2162
|
+
mockMarket1.marketStats.historicalOracleData.lastOraclePrice = new BN(
|
|
1958
2163
|
18.5535 * PRICE_PRECISION.toNumber()
|
|
1959
2164
|
);
|
|
1960
2165
|
|
|
@@ -1964,7 +2169,7 @@ describe('AMM Tests', () => {
|
|
|
1964
2169
|
updatedAmm.baseAssetReserve,
|
|
1965
2170
|
updatedAmm.minBaseAssetReserve,
|
|
1966
2171
|
updatedAmm.maxBaseAssetReserve,
|
|
1967
|
-
|
|
2172
|
+
mockMarket1.orderStepSize
|
|
1968
2173
|
);
|
|
1969
2174
|
|
|
1970
2175
|
assert(!openAsks.eq(openBids));
|
|
@@ -2019,7 +2224,7 @@ describe('AMM Tests', () => {
|
|
|
2019
2224
|
const mockMarket1: PerpMarketAccount = myMockPerpMarkets[0];
|
|
2020
2225
|
const cc = 38104569;
|
|
2021
2226
|
mockMarket1.amm.baseAssetReserve = new BN(cc).mul(BASE_PRECISION);
|
|
2022
|
-
mockMarket1.
|
|
2227
|
+
mockMarket1.marketStats.minOrderSize = new BN(5);
|
|
2023
2228
|
mockMarket1.amm.maxBaseAssetReserve = mockMarket1.amm.baseAssetReserve.add(
|
|
2024
2229
|
new BN(9)
|
|
2025
2230
|
);
|
|
@@ -2039,7 +2244,7 @@ describe('AMM Tests', () => {
|
|
|
2039
2244
|
hasSufficientNumberOfDataPoints: true,
|
|
2040
2245
|
isMMOracleActive: true,
|
|
2041
2246
|
} as MMOraclePriceData;
|
|
2042
|
-
mockMarket1.
|
|
2247
|
+
mockMarket1.marketStats.historicalOracleData.lastOraclePrice = new BN(
|
|
2043
2248
|
18.5535 * PRICE_PRECISION.toNumber()
|
|
2044
2249
|
);
|
|
2045
2250
|
|
|
@@ -2049,7 +2254,7 @@ describe('AMM Tests', () => {
|
|
|
2049
2254
|
updatedAmm.baseAssetReserve,
|
|
2050
2255
|
updatedAmm.minBaseAssetReserve,
|
|
2051
2256
|
updatedAmm.maxBaseAssetReserve,
|
|
2052
|
-
|
|
2257
|
+
mockMarket1.orderStepSize
|
|
2053
2258
|
);
|
|
2054
2259
|
|
|
2055
2260
|
const generator = getVammL2Generator({
|