@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
|
@@ -23,7 +23,18 @@ export class WebSocketUserStatsAccountSubscriber
|
|
|
23
23
|
eventEmitter: StrictEventEmitter<EventEmitter, UserStatsAccountEvents>;
|
|
24
24
|
userStatsAccountPublicKey: PublicKey;
|
|
25
25
|
|
|
26
|
-
|
|
26
|
+
private _userStatsAccountSubscriber?: AccountSubscriber<UserStatsAccount>;
|
|
27
|
+
get userStatsAccountSubscriber(): AccountSubscriber<UserStatsAccount> {
|
|
28
|
+
if (!this._userStatsAccountSubscriber) {
|
|
29
|
+
throw new Error('userStatsAccountSubscriber accessed before subscribe()');
|
|
30
|
+
}
|
|
31
|
+
return this._userStatsAccountSubscriber;
|
|
32
|
+
}
|
|
33
|
+
set userStatsAccountSubscriber(
|
|
34
|
+
subscriber: AccountSubscriber<UserStatsAccount>
|
|
35
|
+
) {
|
|
36
|
+
this._userStatsAccountSubscriber = subscriber;
|
|
37
|
+
}
|
|
27
38
|
|
|
28
39
|
public constructor(
|
|
29
40
|
program: VelocityProgram,
|
|
@@ -91,7 +102,9 @@ export class WebSocketUserStatsAccountSubscriber
|
|
|
91
102
|
}
|
|
92
103
|
}
|
|
93
104
|
|
|
94
|
-
public getUserStatsAccountAndSlot():
|
|
105
|
+
public getUserStatsAccountAndSlot():
|
|
106
|
+
| DataAndSlot<UserStatsAccount>
|
|
107
|
+
| undefined {
|
|
95
108
|
this.assertIsSubscribed();
|
|
96
109
|
return this.userStatsAccountSubscriber.dataAndSlot;
|
|
97
110
|
}
|
|
@@ -18,7 +18,7 @@ import {
|
|
|
18
18
|
getSpotMarketPublicKeySync,
|
|
19
19
|
} from '../addresses/pda';
|
|
20
20
|
import { WebSocketAccountSubscriber } from './webSocketAccountSubscriber';
|
|
21
|
-
import { Commitment, PublicKey } from '@solana/web3.js';
|
|
21
|
+
import { AccountInfo, Commitment, PublicKey } from '@solana/web3.js';
|
|
22
22
|
import { OracleInfo, OraclePriceData } from '../oracles/types';
|
|
23
23
|
import { OracleClientCache } from '../oracles/oracleClientCache';
|
|
24
24
|
import * as Buffer from 'buffer';
|
|
@@ -86,9 +86,9 @@ export class WebSocketVelocityClientAccountSubscriber
|
|
|
86
86
|
oracleSubscribers = new Map<string, AccountSubscriber<OraclePriceData>>();
|
|
87
87
|
delistedMarketSetting: DelistedMarketSetting;
|
|
88
88
|
|
|
89
|
-
initialPerpMarketAccountData
|
|
90
|
-
initialSpotMarketAccountData
|
|
91
|
-
initialOraclePriceData
|
|
89
|
+
initialPerpMarketAccountData?: Map<number, PerpMarketAccount>;
|
|
90
|
+
initialSpotMarketAccountData?: Map<number, SpotMarketAccount>;
|
|
91
|
+
initialOraclePriceData?: Map<string, OraclePriceData>;
|
|
92
92
|
customPerpMarketAccountSubscriber?: new (
|
|
93
93
|
accountName: string,
|
|
94
94
|
program: VelocityProgram,
|
|
@@ -107,8 +107,8 @@ export class WebSocketVelocityClientAccountSubscriber
|
|
|
107
107
|
) => AccountSubscriber<any>;
|
|
108
108
|
|
|
109
109
|
protected isSubscribing = false;
|
|
110
|
-
protected
|
|
111
|
-
protected
|
|
110
|
+
protected subscriptionPromiseResolver: (val: boolean) => void = () => {};
|
|
111
|
+
protected subscriptionPromise: Promise<boolean> = Promise.resolve(false);
|
|
112
112
|
|
|
113
113
|
public constructor(
|
|
114
114
|
program: VelocityProgram,
|
|
@@ -255,7 +255,9 @@ export class WebSocketVelocityClientAccountSubscriber
|
|
|
255
255
|
).flat();
|
|
256
256
|
this.initialPerpMarketAccountData = new Map(
|
|
257
257
|
perpMarketAccountInfos
|
|
258
|
-
.filter(
|
|
258
|
+
.filter(
|
|
259
|
+
(accountInfo): accountInfo is AccountInfo<Buffer> => !!accountInfo
|
|
260
|
+
)
|
|
259
261
|
.map((accountInfo) => {
|
|
260
262
|
const perpMarket = this.program.coder.accounts.decode(
|
|
261
263
|
'perpMarket',
|
|
@@ -280,7 +282,9 @@ export class WebSocketVelocityClientAccountSubscriber
|
|
|
280
282
|
).flat();
|
|
281
283
|
this.initialSpotMarketAccountData = new Map(
|
|
282
284
|
spotMarketAccountInfos
|
|
283
|
-
.filter(
|
|
285
|
+
.filter(
|
|
286
|
+
(accountInfo): accountInfo is AccountInfo<Buffer> => !!accountInfo
|
|
287
|
+
)
|
|
284
288
|
.map((accountInfo) => {
|
|
285
289
|
const spotMarket = this.program.coder.accounts.decode(
|
|
286
290
|
'spotMarket',
|
|
@@ -303,27 +307,34 @@ export class WebSocketVelocityClientAccountSubscriber
|
|
|
303
307
|
)
|
|
304
308
|
).flat();
|
|
305
309
|
this.initialOraclePriceData = new Map(
|
|
306
|
-
this.oracleInfos.reduce(
|
|
307
|
-
|
|
310
|
+
this.oracleInfos.reduce(
|
|
311
|
+
(result, oracleInfo, i) => {
|
|
312
|
+
const oracleAccountInfo = oracleAccountInfos[i];
|
|
313
|
+
if (!oracleAccountInfo) {
|
|
314
|
+
return result;
|
|
315
|
+
}
|
|
316
|
+
|
|
317
|
+
const oracleClient = this.oracleClientCache.get(
|
|
318
|
+
oracleInfo.source,
|
|
319
|
+
connection,
|
|
320
|
+
this.program
|
|
321
|
+
);
|
|
322
|
+
if (!oracleClient) {
|
|
323
|
+
return result;
|
|
324
|
+
}
|
|
325
|
+
|
|
326
|
+
const oraclePriceData = oracleClient.getOraclePriceDataFromBuffer(
|
|
327
|
+
oracleAccountInfo.data
|
|
328
|
+
);
|
|
329
|
+
|
|
330
|
+
result.push([
|
|
331
|
+
getOracleId(oracleInfo.publicKey, oracleInfo.source),
|
|
332
|
+
oraclePriceData,
|
|
333
|
+
]);
|
|
308
334
|
return result;
|
|
309
|
-
}
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
oracleInfo.source,
|
|
313
|
-
connection,
|
|
314
|
-
this.program
|
|
315
|
-
);
|
|
316
|
-
|
|
317
|
-
const oraclePriceData = oracleClient.getOraclePriceDataFromBuffer(
|
|
318
|
-
oracleAccountInfos[i].data
|
|
319
|
-
);
|
|
320
|
-
|
|
321
|
-
result.push([
|
|
322
|
-
getOracleId(oracleInfo.publicKey, oracleInfo.source),
|
|
323
|
-
oraclePriceData,
|
|
324
|
-
]);
|
|
325
|
-
return result;
|
|
326
|
-
}, [])
|
|
335
|
+
},
|
|
336
|
+
[] as [string, OraclePriceData][]
|
|
337
|
+
)
|
|
327
338
|
);
|
|
328
339
|
}
|
|
329
340
|
|
|
@@ -358,7 +369,7 @@ export class WebSocketVelocityClientAccountSubscriber
|
|
|
358
369
|
this.commitment
|
|
359
370
|
);
|
|
360
371
|
const initialPerpMarketData =
|
|
361
|
-
this.initialPerpMarketAccountData
|
|
372
|
+
this.initialPerpMarketAccountData?.get(marketIndex);
|
|
362
373
|
if (initialPerpMarketData) {
|
|
363
374
|
accountSubscriber.setData(initialPerpMarketData);
|
|
364
375
|
}
|
|
@@ -394,7 +405,7 @@ export class WebSocketVelocityClientAccountSubscriber
|
|
|
394
405
|
this.commitment
|
|
395
406
|
);
|
|
396
407
|
const initialSpotMarketData =
|
|
397
|
-
this.initialSpotMarketAccountData
|
|
408
|
+
this.initialSpotMarketAccountData?.get(marketIndex);
|
|
398
409
|
if (initialSpotMarketData) {
|
|
399
410
|
accountSubscriber.setData(initialSpotMarketData);
|
|
400
411
|
}
|
|
@@ -424,6 +435,9 @@ export class WebSocketVelocityClientAccountSubscriber
|
|
|
424
435
|
this.program.provider.connection,
|
|
425
436
|
this.program
|
|
426
437
|
);
|
|
438
|
+
if (!client) {
|
|
439
|
+
return false;
|
|
440
|
+
}
|
|
427
441
|
const AccountSubscriberClass =
|
|
428
442
|
this.customOracleAccountSubscriber || WebSocketAccountSubscriber;
|
|
429
443
|
const accountSubscriber = new AccountSubscriberClass<OraclePriceData>(
|
|
@@ -436,7 +450,7 @@ export class WebSocketVelocityClientAccountSubscriber
|
|
|
436
450
|
this.resubOpts,
|
|
437
451
|
this.commitment
|
|
438
452
|
);
|
|
439
|
-
const initialOraclePriceData = this.initialOraclePriceData
|
|
453
|
+
const initialOraclePriceData = this.initialOraclePriceData?.get(oracleId);
|
|
440
454
|
if (initialOraclePriceData) {
|
|
441
455
|
accountSubscriber.setData(initialOraclePriceData);
|
|
442
456
|
}
|
|
@@ -484,6 +498,10 @@ export class WebSocketVelocityClientAccountSubscriber
|
|
|
484
498
|
return;
|
|
485
499
|
}
|
|
486
500
|
|
|
501
|
+
if (!this.stateAccountSubscriber) {
|
|
502
|
+
return;
|
|
503
|
+
}
|
|
504
|
+
|
|
487
505
|
const promises = [this.stateAccountSubscriber.fetch()]
|
|
488
506
|
.concat(
|
|
489
507
|
Array.from(this.perpMarketAccountSubscribers.values()).map(
|
|
@@ -504,7 +522,7 @@ export class WebSocketVelocityClientAccountSubscriber
|
|
|
504
522
|
return;
|
|
505
523
|
}
|
|
506
524
|
|
|
507
|
-
await this.stateAccountSubscriber
|
|
525
|
+
await this.stateAccountSubscriber?.unsubscribe();
|
|
508
526
|
|
|
509
527
|
await this.unsubscribeFromMarketAccounts();
|
|
510
528
|
await this.unsubscribeFromSpotMarketAccounts();
|
|
@@ -607,7 +625,7 @@ export class WebSocketVelocityClientAccountSubscriber
|
|
|
607
625
|
for (const perpMarketIndex of perpMarketIndexes) {
|
|
608
626
|
await this.perpMarketAccountSubscribers
|
|
609
627
|
.get(perpMarketIndex)
|
|
610
|
-
|
|
628
|
+
?.unsubscribe();
|
|
611
629
|
if (this.delistedMarketSetting === DelistedMarketSetting.Discard) {
|
|
612
630
|
this.perpMarketAccountSubscribers.delete(perpMarketIndex);
|
|
613
631
|
}
|
|
@@ -615,7 +633,7 @@ export class WebSocketVelocityClientAccountSubscriber
|
|
|
615
633
|
|
|
616
634
|
for (const oracle of oracles) {
|
|
617
635
|
const oracleId = getOracleId(oracle.publicKey, oracle.source);
|
|
618
|
-
await this.oracleSubscribers.get(oracleId)
|
|
636
|
+
await this.oracleSubscribers.get(oracleId)?.unsubscribe();
|
|
619
637
|
if (this.delistedMarketSetting === DelistedMarketSetting.Discard) {
|
|
620
638
|
this.oracleSubscribers.delete(oracleId);
|
|
621
639
|
}
|
|
@@ -632,33 +650,43 @@ export class WebSocketVelocityClientAccountSubscriber
|
|
|
632
650
|
|
|
633
651
|
public getStateAccountAndSlot(): DataAndSlot<StateAccount> {
|
|
634
652
|
this.assertIsSubscribed();
|
|
635
|
-
|
|
653
|
+
const dataAndSlot = this.stateAccountSubscriber?.dataAndSlot;
|
|
654
|
+
if (!dataAndSlot) {
|
|
655
|
+
throw new Error('State account data not available');
|
|
656
|
+
}
|
|
657
|
+
return dataAndSlot;
|
|
636
658
|
}
|
|
637
659
|
|
|
638
660
|
public getMarketAccountAndSlot(
|
|
639
661
|
marketIndex: number
|
|
640
662
|
): DataAndSlot<PerpMarketAccount> | undefined {
|
|
641
663
|
this.assertIsSubscribed();
|
|
642
|
-
return this.perpMarketAccountSubscribers.get(marketIndex)
|
|
664
|
+
return this.perpMarketAccountSubscribers.get(marketIndex)?.dataAndSlot;
|
|
643
665
|
}
|
|
644
666
|
|
|
645
667
|
public getMarketAccountsAndSlots(): DataAndSlot<PerpMarketAccount>[] {
|
|
646
|
-
return Array.from(this.perpMarketAccountSubscribers.values())
|
|
647
|
-
(subscriber) => subscriber.dataAndSlot
|
|
648
|
-
|
|
668
|
+
return Array.from(this.perpMarketAccountSubscribers.values())
|
|
669
|
+
.map((subscriber) => subscriber.dataAndSlot)
|
|
670
|
+
.filter(
|
|
671
|
+
(dataAndSlot): dataAndSlot is DataAndSlot<PerpMarketAccount> =>
|
|
672
|
+
dataAndSlot !== undefined
|
|
673
|
+
);
|
|
649
674
|
}
|
|
650
675
|
|
|
651
676
|
public getSpotMarketAccountAndSlot(
|
|
652
677
|
marketIndex: number
|
|
653
678
|
): DataAndSlot<SpotMarketAccount> | undefined {
|
|
654
679
|
this.assertIsSubscribed();
|
|
655
|
-
return this.spotMarketAccountSubscribers.get(marketIndex)
|
|
680
|
+
return this.spotMarketAccountSubscribers.get(marketIndex)?.dataAndSlot;
|
|
656
681
|
}
|
|
657
682
|
|
|
658
683
|
public getSpotMarketAccountsAndSlots(): DataAndSlot<SpotMarketAccount>[] {
|
|
659
|
-
return Array.from(this.spotMarketAccountSubscribers.values())
|
|
660
|
-
(subscriber) => subscriber.dataAndSlot
|
|
661
|
-
|
|
684
|
+
return Array.from(this.spotMarketAccountSubscribers.values())
|
|
685
|
+
.map((subscriber) => subscriber.dataAndSlot)
|
|
686
|
+
.filter(
|
|
687
|
+
(dataAndSlot): dataAndSlot is DataAndSlot<SpotMarketAccount> =>
|
|
688
|
+
dataAndSlot !== undefined
|
|
689
|
+
);
|
|
662
690
|
}
|
|
663
691
|
|
|
664
692
|
public getOraclePriceDataAndSlot(
|
|
@@ -671,7 +699,7 @@ export class WebSocketVelocityClientAccountSubscriber
|
|
|
671
699
|
slot: 0,
|
|
672
700
|
};
|
|
673
701
|
}
|
|
674
|
-
return this.oracleSubscribers.get(oracleId)
|
|
702
|
+
return this.oracleSubscribers.get(oracleId)?.dataAndSlot;
|
|
675
703
|
}
|
|
676
704
|
|
|
677
705
|
public getOraclePriceDataAndSlotForPerpMarket(
|
|
@@ -684,8 +712,8 @@ export class WebSocketVelocityClientAccountSubscriber
|
|
|
684
712
|
return undefined;
|
|
685
713
|
}
|
|
686
714
|
|
|
687
|
-
if (!perpMarketAccount.data.oracle.equals(oracle)) {
|
|
688
|
-
// If the oracle has changed
|
|
715
|
+
if (!oracle || !perpMarketAccount.data.oracle.equals(oracle)) {
|
|
716
|
+
// If the oracle has changed (or not yet cached), update the oracle map in background
|
|
689
717
|
this.setPerpOracleMap();
|
|
690
718
|
}
|
|
691
719
|
|
|
@@ -702,8 +730,8 @@ export class WebSocketVelocityClientAccountSubscriber
|
|
|
702
730
|
return undefined;
|
|
703
731
|
}
|
|
704
732
|
|
|
705
|
-
if (!spotMarketAccount.data.oracle.equals(oracle)) {
|
|
706
|
-
// If the oracle has changed
|
|
733
|
+
if (!oracle || !spotMarketAccount.data.oracle.equals(oracle)) {
|
|
734
|
+
// If the oracle has changed (or not yet cached), update the oracle map in background
|
|
707
735
|
this.setSpotOracleMap();
|
|
708
736
|
}
|
|
709
737
|
|
|
@@ -7,6 +7,7 @@ import {
|
|
|
7
7
|
NotSubscribedError,
|
|
8
8
|
ResubOpts,
|
|
9
9
|
} from './types';
|
|
10
|
+
import { assertDataAndSlot } from './utils';
|
|
10
11
|
import {
|
|
11
12
|
isVariant,
|
|
12
13
|
PerpMarketAccount,
|
|
@@ -66,12 +67,38 @@ export class WebSocketVelocityClientAccountSubscriberV2
|
|
|
66
67
|
|
|
67
68
|
eventEmitter: StrictEventEmitter<EventEmitter, VelocityClientAccountEvents>;
|
|
68
69
|
stateAccountSubscriber?: WebSocketAccountSubscriberV2<StateAccount>;
|
|
69
|
-
|
|
70
|
+
private _perpMarketAllAccountsSubscriber?: WebSocketProgramAccountsSubscriberV2<PerpMarketAccount>;
|
|
71
|
+
get perpMarketAllAccountsSubscriber(): WebSocketProgramAccountsSubscriberV2<PerpMarketAccount> {
|
|
72
|
+
if (!this._perpMarketAllAccountsSubscriber) {
|
|
73
|
+
throw new Error(
|
|
74
|
+
'perpMarketAllAccountsSubscriber accessed before subscribe()'
|
|
75
|
+
);
|
|
76
|
+
}
|
|
77
|
+
return this._perpMarketAllAccountsSubscriber;
|
|
78
|
+
}
|
|
79
|
+
set perpMarketAllAccountsSubscriber(
|
|
80
|
+
subscriber: WebSocketProgramAccountsSubscriberV2<PerpMarketAccount>
|
|
81
|
+
) {
|
|
82
|
+
this._perpMarketAllAccountsSubscriber = subscriber;
|
|
83
|
+
}
|
|
70
84
|
perpMarketAccountLatestData = new Map<
|
|
71
85
|
number,
|
|
72
86
|
DataAndSlot<PerpMarketAccount>
|
|
73
87
|
>();
|
|
74
|
-
|
|
88
|
+
private _spotMarketAllAccountsSubscriber?: WebSocketProgramAccountsSubscriberV2<SpotMarketAccount>;
|
|
89
|
+
get spotMarketAllAccountsSubscriber(): WebSocketProgramAccountsSubscriberV2<SpotMarketAccount> {
|
|
90
|
+
if (!this._spotMarketAllAccountsSubscriber) {
|
|
91
|
+
throw new Error(
|
|
92
|
+
'spotMarketAllAccountsSubscriber accessed before subscribe()'
|
|
93
|
+
);
|
|
94
|
+
}
|
|
95
|
+
return this._spotMarketAllAccountsSubscriber;
|
|
96
|
+
}
|
|
97
|
+
set spotMarketAllAccountsSubscriber(
|
|
98
|
+
subscriber: WebSocketProgramAccountsSubscriberV2<SpotMarketAccount>
|
|
99
|
+
) {
|
|
100
|
+
this._spotMarketAllAccountsSubscriber = subscriber;
|
|
101
|
+
}
|
|
75
102
|
spotMarketAccountLatestData = new Map<
|
|
76
103
|
number,
|
|
77
104
|
DataAndSlot<SpotMarketAccount>
|
|
@@ -83,13 +110,13 @@ export class WebSocketVelocityClientAccountSubscriberV2
|
|
|
83
110
|
oracleSubscribers = new Map<string, AccountSubscriber<OraclePriceData>>();
|
|
84
111
|
delistedMarketSetting: DelistedMarketSetting;
|
|
85
112
|
|
|
86
|
-
initialPerpMarketAccountData: Map<number, PerpMarketAccount
|
|
87
|
-
initialSpotMarketAccountData: Map<number, SpotMarketAccount
|
|
88
|
-
initialOraclePriceData: Map<string, OraclePriceData
|
|
113
|
+
initialPerpMarketAccountData: Map<number, PerpMarketAccount> = new Map();
|
|
114
|
+
initialSpotMarketAccountData: Map<number, SpotMarketAccount> = new Map();
|
|
115
|
+
initialOraclePriceData: Map<string, OraclePriceData> = new Map();
|
|
89
116
|
|
|
90
117
|
protected isSubscribing = false;
|
|
91
|
-
|
|
92
|
-
protected
|
|
118
|
+
private subscriptionPromiseResolver: (val: boolean) => void = () => {};
|
|
119
|
+
protected subscriptionPromise: Promise<boolean> = Promise.resolve(false);
|
|
93
120
|
|
|
94
121
|
private rpc: Rpc<any>;
|
|
95
122
|
private rpcSubscriptions: RpcSubscriptions<SolanaRpcSubscriptionsApi> &
|
|
@@ -349,9 +376,7 @@ export class WebSocketVelocityClientAccountSubscriberV2
|
|
|
349
376
|
this.isSubscribed = true;
|
|
350
377
|
this.isSubscribing = false;
|
|
351
378
|
// Before calling subscriptionPromiseResolver, check if it's defined
|
|
352
|
-
|
|
353
|
-
this.subscriptionPromiseResolver(true);
|
|
354
|
-
}
|
|
379
|
+
this.subscriptionPromiseResolver(true);
|
|
355
380
|
|
|
356
381
|
return true;
|
|
357
382
|
} catch (error) {
|
|
@@ -415,27 +440,34 @@ export class WebSocketVelocityClientAccountSubscriberV2
|
|
|
415
440
|
)
|
|
416
441
|
).flat();
|
|
417
442
|
this.initialOraclePriceData = new Map(
|
|
418
|
-
this.oracleInfos.reduce(
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
443
|
+
this.oracleInfos.reduce(
|
|
444
|
+
(result, oracleInfo, i) => {
|
|
445
|
+
const oracleAccountInfo = oracleAccountInfos[i];
|
|
446
|
+
if (!oracleAccountInfo) {
|
|
447
|
+
return result;
|
|
448
|
+
}
|
|
422
449
|
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
450
|
+
const oracleClient = this.oracleClientCache.get(
|
|
451
|
+
oracleInfo.source,
|
|
452
|
+
connection,
|
|
453
|
+
this.program
|
|
454
|
+
);
|
|
455
|
+
if (!oracleClient) {
|
|
456
|
+
return result;
|
|
457
|
+
}
|
|
428
458
|
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
459
|
+
const oraclePriceData = oracleClient.getOraclePriceDataFromBuffer(
|
|
460
|
+
oracleAccountInfo.data
|
|
461
|
+
);
|
|
432
462
|
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
463
|
+
result.push([
|
|
464
|
+
getOracleId(oracleInfo.publicKey, oracleInfo.source),
|
|
465
|
+
oraclePriceData,
|
|
466
|
+
]);
|
|
467
|
+
return result;
|
|
468
|
+
},
|
|
469
|
+
[] as [string, OraclePriceData][]
|
|
470
|
+
)
|
|
439
471
|
);
|
|
440
472
|
const oracleSetupEndTime = performance.now();
|
|
441
473
|
const oracleSetupDuration = oracleSetupEndTime - oracleSetupStartTime;
|
|
@@ -503,6 +535,9 @@ export class WebSocketVelocityClientAccountSubscriberV2
|
|
|
503
535
|
this.program.provider.connection,
|
|
504
536
|
this.program
|
|
505
537
|
);
|
|
538
|
+
if (!client) {
|
|
539
|
+
return false;
|
|
540
|
+
}
|
|
506
541
|
const accountSubscriber =
|
|
507
542
|
new WebSocketAccountSubscriberV2<OraclePriceData>(
|
|
508
543
|
'oracle',
|
|
@@ -653,8 +688,9 @@ export class WebSocketVelocityClientAccountSubscriberV2
|
|
|
653
688
|
|
|
654
689
|
for (const oracle of oracles) {
|
|
655
690
|
const oracleId = getOracleId(oracle.publicKey, oracle.source);
|
|
656
|
-
|
|
657
|
-
|
|
691
|
+
const subscriber = this.oracleSubscribers.get(oracleId);
|
|
692
|
+
if (subscriber) {
|
|
693
|
+
await subscriber.unsubscribe();
|
|
658
694
|
if (this.delistedMarketSetting === DelistedMarketSetting.Discard) {
|
|
659
695
|
this.oracleSubscribers.delete(oracleId);
|
|
660
696
|
}
|
|
@@ -672,7 +708,10 @@ export class WebSocketVelocityClientAccountSubscriberV2
|
|
|
672
708
|
|
|
673
709
|
public getStateAccountAndSlot(): DataAndSlot<StateAccount> {
|
|
674
710
|
this.assertIsSubscribed();
|
|
675
|
-
return
|
|
711
|
+
return assertDataAndSlot(
|
|
712
|
+
this.stateAccountSubscriber?.dataAndSlot,
|
|
713
|
+
'State account data not available'
|
|
714
|
+
);
|
|
676
715
|
}
|
|
677
716
|
|
|
678
717
|
public getMarketAccountAndSlot(
|
|
@@ -720,8 +759,8 @@ export class WebSocketVelocityClientAccountSubscriberV2
|
|
|
720
759
|
return undefined;
|
|
721
760
|
}
|
|
722
761
|
|
|
723
|
-
if (!perpMarketAccount.data.oracle.equals(oracle)) {
|
|
724
|
-
// If the oracle has changed
|
|
762
|
+
if (!oracle || !perpMarketAccount.data.oracle.equals(oracle)) {
|
|
763
|
+
// If the oracle has changed (or not yet cached), update the oracle map in background
|
|
725
764
|
this.setPerpOracleMap();
|
|
726
765
|
}
|
|
727
766
|
|
|
@@ -738,8 +777,8 @@ export class WebSocketVelocityClientAccountSubscriberV2
|
|
|
738
777
|
return undefined;
|
|
739
778
|
}
|
|
740
779
|
|
|
741
|
-
if (!spotMarketAccount.data.oracle.equals(oracle)) {
|
|
742
|
-
// If the oracle has changed
|
|
780
|
+
if (!oracle || !spotMarketAccount.data.oracle.equals(oracle)) {
|
|
781
|
+
// If the oracle has changed (or not yet cached), update the oracle map in background
|
|
743
782
|
this.setSpotOracleMap();
|
|
744
783
|
}
|
|
745
784
|
|
|
@@ -83,12 +83,7 @@ export class WebSocketProgramUserAccountSubscriber
|
|
|
83
83
|
this.isSubscribed = false;
|
|
84
84
|
}
|
|
85
85
|
|
|
86
|
-
getUserAccountAndSlot(): DataAndSlot<UserAccount> {
|
|
87
|
-
if (!this.userAccountAndSlot) {
|
|
88
|
-
throw new NotSubscribedError(
|
|
89
|
-
'Must subscribe before getting user account data'
|
|
90
|
-
);
|
|
91
|
-
}
|
|
86
|
+
getUserAccountAndSlot(): DataAndSlot<UserAccount> | undefined {
|
|
92
87
|
return this.userAccountAndSlot;
|
|
93
88
|
}
|
|
94
89
|
}
|
|
@@ -7,8 +7,9 @@ export async function getMarketAddress(
|
|
|
7
7
|
marketIndex: number
|
|
8
8
|
): Promise<PublicKey> {
|
|
9
9
|
const cacheKey = `${programId.toString()}-${marketIndex.toString()}`;
|
|
10
|
-
|
|
11
|
-
|
|
10
|
+
const cached = CACHE.get(cacheKey);
|
|
11
|
+
if (cached !== undefined) {
|
|
12
|
+
return cached;
|
|
12
13
|
}
|
|
13
14
|
|
|
14
15
|
const publicKey = await getPerpMarketPublicKey(programId, marketIndex);
|
package/src/addresses/pda.ts
CHANGED
|
@@ -6,7 +6,6 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import { PublicKey } from '@solana/web3.js';
|
|
8
8
|
import * as anchor from '../isomorphic/anchor';
|
|
9
|
-
import { BN } from '../isomorphic/anchor';
|
|
10
9
|
import {
|
|
11
10
|
getAssociatedTokenAddress,
|
|
12
11
|
TOKEN_2022_PROGRAM_ID,
|
|
@@ -229,15 +228,6 @@ export function getReferrerNamePublicKeySync(
|
|
|
229
228
|
)[0];
|
|
230
229
|
}
|
|
231
230
|
|
|
232
|
-
export function getProtocolIfSharesTransferConfigPublicKey(
|
|
233
|
-
programId: PublicKey
|
|
234
|
-
): PublicKey {
|
|
235
|
-
return PublicKey.findProgramAddressSync(
|
|
236
|
-
[Buffer.from(anchor.utils.bytes.utf8.encode('if_shares_transfer_config'))],
|
|
237
|
-
programId
|
|
238
|
-
)[0];
|
|
239
|
-
}
|
|
240
|
-
|
|
241
231
|
export function getPrelaunchOraclePublicKey(
|
|
242
232
|
programId: PublicKey,
|
|
243
233
|
marketIndex: number
|
|
@@ -277,21 +267,6 @@ export function getTokenProgramForSpotMarket(
|
|
|
277
267
|
return TOKEN_PROGRAM_ID;
|
|
278
268
|
}
|
|
279
269
|
|
|
280
|
-
export function getIfRebalanceConfigPublicKey(
|
|
281
|
-
programId: PublicKey,
|
|
282
|
-
inMarketIndex: number,
|
|
283
|
-
outMarketIndex: number
|
|
284
|
-
): PublicKey {
|
|
285
|
-
return PublicKey.findProgramAddressSync(
|
|
286
|
-
[
|
|
287
|
-
Buffer.from(anchor.utils.bytes.utf8.encode('if_rebalance_config')),
|
|
288
|
-
new BN(inMarketIndex).toArrayLike(Buffer, 'le', 2),
|
|
289
|
-
new BN(outMarketIndex).toArrayLike(Buffer, 'le', 2),
|
|
290
|
-
],
|
|
291
|
-
programId
|
|
292
|
-
)[0];
|
|
293
|
-
}
|
|
294
|
-
|
|
295
270
|
export function getRevenueShareAccountPublicKey(
|
|
296
271
|
programId: PublicKey,
|
|
297
272
|
authority: PublicKey
|