@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/CHANGELOG.md
CHANGED
|
@@ -1,35 +1,7 @@
|
|
|
1
|
-
#
|
|
1
|
+
# @velocity-exchange/sdk
|
|
2
2
|
|
|
3
|
-
##
|
|
3
|
+
## 0.2.1
|
|
4
4
|
|
|
5
|
+
### Patch Changes
|
|
5
6
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
* add builder codes on non swift ([#68](https://github.com/drift-labs/protocol-v2-shadow/issues/68)) ([2df4034](https://github.com/drift-labs/protocol-v2-shadow/commit/2df4034b2162f0df060b21453a16566f9de24f4f))
|
|
9
|
-
* add transfer deposit by delegate ([16386ca](https://github.com/drift-labs/protocol-v2-shadow/commit/16386cad98a2a48d9a8a249ff75c9ce646e9fcac))
|
|
10
|
-
* decouple AMM from rest of codebase ([84aba6d](https://github.com/drift-labs/protocol-v2-shadow/commit/84aba6d0c17ef97069185d82b74671bde6619919))
|
|
11
|
-
* rebrand drift to velocity ([9c330b1](https://github.com/drift-labs/protocol-v2-shadow/commit/9c330b17cda7170482cc8b75ad3d1b3c137a8d32))
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
### Bug Fixes
|
|
15
|
-
|
|
16
|
-
* resolve eslint unused-var and prettier formatting failures ([a3a1e3e](https://github.com/drift-labs/protocol-v2-shadow/commit/a3a1e3e1cbf68f35a7c39ea335927d0136c5bce1))
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
### Refactors
|
|
20
|
-
|
|
21
|
-
* gather vAMM and hedge into a single VLP module ([905edc3](https://github.com/drift-labs/protocol-v2-shadow/commit/905edc338b453a1ce0ebb4dd9a13be97c66aa66d))
|
|
22
|
-
|
|
23
|
-
## [0.0.5](https://github.com/drift-labs/protocol-v2-shadow/compare/sdk-v0.0.4...sdk-v0.0.5) (2026-05-28)
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
### Refactors
|
|
27
|
-
|
|
28
|
-
* increase oracle_price_offset to i64 ([#51](https://github.com/drift-labs/protocol-v2-shadow/issues/51)) ([d04039a](https://github.com/drift-labs/protocol-v2-shadow/commit/d04039a22b2ff37d05afd8fe271b9913d66689e1))
|
|
29
|
-
|
|
30
|
-
## [0.0.4](https://github.com/drift-labs/protocol-v2-shadow/compare/sdk-v0.0.3...sdk-v0.0.4) (2026-05-28)
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
### Refactors
|
|
34
|
-
|
|
35
|
-
* increase oracle_price_offset to i64 ([#51](https://github.com/drift-labs/protocol-v2-shadow/issues/51)) ([d04039a](https://github.com/drift-labs/protocol-v2-shadow/commit/d04039a22b2ff37d05afd8fe271b9913d66689e1))
|
|
7
|
+
- [`4fd7462`](https://github.com/drift-labs/protocol-v2-shadow/commit/4fd7462bfa3c55e31e3457b1b65f519cf052a6fa) Thanks [@ChewingGlass](https://github.com/ChewingGlass)! - Testing new changelog based package publishing flow
|
|
@@ -14,14 +14,16 @@ export declare class BasicUserAccountSubscriber implements UserAccountSubscriber
|
|
|
14
14
|
userAccountPublicKey: PublicKey;
|
|
15
15
|
callbackId?: string;
|
|
16
16
|
errorCallbackId?: string;
|
|
17
|
-
user
|
|
17
|
+
user?: DataAndSlot<UserAccount>;
|
|
18
18
|
constructor(userAccountPublicKey: PublicKey, data?: UserAccount, slot?: number);
|
|
19
19
|
subscribe(_userAccount?: UserAccount): Promise<boolean>;
|
|
20
20
|
addToAccountLoader(): Promise<void>;
|
|
21
21
|
fetch(): Promise<void>;
|
|
22
|
-
doesAccountExist():
|
|
22
|
+
doesAccountExist(): this is {
|
|
23
|
+
user: DataAndSlot<UserAccount>;
|
|
24
|
+
};
|
|
23
25
|
unsubscribe(): Promise<void>;
|
|
24
26
|
assertIsSubscribed(): void;
|
|
25
|
-
getUserAccountAndSlot(): DataAndSlot<UserAccount
|
|
27
|
+
getUserAccountAndSlot(): DataAndSlot<UserAccount> | undefined;
|
|
26
28
|
updateData(userAccount: UserAccount, slot: number): void;
|
|
27
29
|
}
|
|
@@ -11,7 +11,9 @@ class BasicUserAccountSubscriber {
|
|
|
11
11
|
this.isSubscribed = true;
|
|
12
12
|
this.eventEmitter = new events_1.EventEmitter();
|
|
13
13
|
this.userAccountPublicKey = userAccountPublicKey;
|
|
14
|
-
|
|
14
|
+
// `slot ?? 0` keeps {data, slot} atomic: a seeded account always carries a
|
|
15
|
+
// slot (0 = oldest-possible sentinel, overwritten by the first real fetch).
|
|
16
|
+
this.user = data ? { data, slot: slot !== null && slot !== void 0 ? slot : 0 } : undefined;
|
|
15
17
|
}
|
|
16
18
|
async subscribe(_userAccount) {
|
|
17
19
|
return true;
|
|
@@ -27,8 +29,7 @@ class BasicUserAccountSubscriber {
|
|
|
27
29
|
return this.user;
|
|
28
30
|
}
|
|
29
31
|
updateData(userAccount, slot) {
|
|
30
|
-
|
|
31
|
-
if (!this.user || slot >= ((_a = this.user.slot) !== null && _a !== void 0 ? _a : 0)) {
|
|
32
|
+
if (!this.user || slot >= this.user.slot) {
|
|
32
33
|
this.user = { data: userAccount, slot };
|
|
33
34
|
this.eventEmitter.emit('userAccountUpdate', userAccount);
|
|
34
35
|
this.eventEmitter.emit('update');
|
|
@@ -14,14 +14,16 @@ export declare class BasicUserStatsAccountSubscriber implements UserStatsAccount
|
|
|
14
14
|
userStatsAccountPublicKey: PublicKey;
|
|
15
15
|
callbackId?: string;
|
|
16
16
|
errorCallbackId?: string;
|
|
17
|
-
userStats
|
|
17
|
+
userStats?: DataAndSlot<UserStatsAccount>;
|
|
18
18
|
constructor(userStatsAccountPublicKey: PublicKey, data?: UserStatsAccount, slot?: number);
|
|
19
19
|
subscribe(_userStatsAccount?: UserStatsAccount): Promise<boolean>;
|
|
20
20
|
addToAccountLoader(): Promise<void>;
|
|
21
21
|
fetch(): Promise<void>;
|
|
22
|
-
doesAccountExist():
|
|
22
|
+
doesAccountExist(): this is {
|
|
23
|
+
userStats: DataAndSlot<UserStatsAccount>;
|
|
24
|
+
};
|
|
23
25
|
unsubscribe(): Promise<void>;
|
|
24
26
|
assertIsSubscribed(): void;
|
|
25
|
-
getUserStatsAccountAndSlot(): DataAndSlot<UserStatsAccount
|
|
27
|
+
getUserStatsAccountAndSlot(): DataAndSlot<UserStatsAccount> | undefined;
|
|
26
28
|
updateData(userStatsAccount: UserStatsAccount, slot: number): void;
|
|
27
29
|
}
|
|
@@ -11,7 +11,9 @@ class BasicUserStatsAccountSubscriber {
|
|
|
11
11
|
this.isSubscribed = true;
|
|
12
12
|
this.eventEmitter = new events_1.EventEmitter();
|
|
13
13
|
this.userStatsAccountPublicKey = userStatsAccountPublicKey;
|
|
14
|
-
|
|
14
|
+
// `slot ?? 0` keeps {data, slot} atomic: a seeded account always carries a
|
|
15
|
+
// slot (0 = oldest-possible sentinel, overwritten by the first real fetch).
|
|
16
|
+
this.userStats = data ? { data, slot: slot !== null && slot !== void 0 ? slot : 0 } : undefined;
|
|
15
17
|
}
|
|
16
18
|
async subscribe(_userStatsAccount) {
|
|
17
19
|
return true;
|
|
@@ -27,8 +29,7 @@ class BasicUserStatsAccountSubscriber {
|
|
|
27
29
|
return this.userStats;
|
|
28
30
|
}
|
|
29
31
|
updateData(userStatsAccount, slot) {
|
|
30
|
-
|
|
31
|
-
if (!this.userStats || slot >= ((_a = this.userStats.slot) !== null && _a !== void 0 ? _a : 0)) {
|
|
32
|
+
if (!this.userStats || slot >= this.userStats.slot) {
|
|
32
33
|
this.userStats = { data: userStatsAccount, slot };
|
|
33
34
|
this.eventEmitter.emit('userStatsAccountUpdate', userStatsAccount);
|
|
34
35
|
this.eventEmitter.emit('update');
|
|
@@ -13,21 +13,21 @@ export declare class BulkAccountLoader {
|
|
|
13
13
|
pollingFrequency: number;
|
|
14
14
|
accountsToLoad: Map<string, AccountToLoad>;
|
|
15
15
|
bufferAndSlotMap: Map<string, BufferAndSlot>;
|
|
16
|
-
errorCallbacks: Map<string, (e:
|
|
16
|
+
errorCallbacks: Map<string, (e: Error) => void>;
|
|
17
17
|
intervalId?: ReturnType<typeof setTimeout>;
|
|
18
18
|
loadPromise?: Promise<void>;
|
|
19
|
-
loadPromiseResolver
|
|
19
|
+
private loadPromiseResolver;
|
|
20
20
|
lastTimeLoadingPromiseCleared: number;
|
|
21
21
|
mostRecentSlot: number;
|
|
22
22
|
constructor(connection: Connection, commitment: Commitment, pollingFrequency: number);
|
|
23
23
|
addAccount(publicKey: PublicKey, callback: (buffer: Buffer, slot: number) => void): Promise<string>;
|
|
24
|
-
removeAccount(publicKey: PublicKey, callbackId: string): void;
|
|
24
|
+
removeAccount(publicKey: PublicKey, callbackId: string | undefined): void;
|
|
25
25
|
addErrorCallbacks(callback: (error: Error) => void): string;
|
|
26
|
-
removeErrorCallbacks(callbackId: string): void;
|
|
26
|
+
removeErrorCallbacks(callbackId: string | undefined): void;
|
|
27
27
|
chunks<T>(array: readonly T[], size: number): T[][];
|
|
28
28
|
load(): Promise<void>;
|
|
29
29
|
loadChunk(accountsToLoadChunks: AccountToLoad[][]): Promise<void>;
|
|
30
|
-
handleAccountCallbacks(accountToLoad: AccountToLoad, buffer: Buffer, slot: number): void;
|
|
30
|
+
handleAccountCallbacks(accountToLoad: AccountToLoad, buffer: Buffer | undefined, slot: number): void;
|
|
31
31
|
getBufferAndSlot(publicKey: PublicKey): BufferAndSlot | undefined;
|
|
32
32
|
getSlot(): number;
|
|
33
33
|
startPolling(): void;
|
|
@@ -10,6 +10,7 @@ class BulkAccountLoader {
|
|
|
10
10
|
this.accountsToLoad = new Map();
|
|
11
11
|
this.bufferAndSlotMap = new Map();
|
|
12
12
|
this.errorCallbacks = new Map();
|
|
13
|
+
this.loadPromiseResolver = () => { };
|
|
13
14
|
this.lastTimeLoadingPromiseCleared = Date.now();
|
|
14
15
|
this.mostRecentSlot = 0;
|
|
15
16
|
this.connection = connection;
|
|
@@ -43,6 +44,9 @@ class BulkAccountLoader {
|
|
|
43
44
|
return callbackId;
|
|
44
45
|
}
|
|
45
46
|
removeAccount(publicKey, callbackId) {
|
|
47
|
+
if (callbackId === undefined) {
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
46
50
|
const existingAccountToLoad = this.accountsToLoad.get(publicKey.toString());
|
|
47
51
|
if (existingAccountToLoad) {
|
|
48
52
|
existingAccountToLoad.callbacks.delete(callbackId);
|
|
@@ -61,6 +65,9 @@ class BulkAccountLoader {
|
|
|
61
65
|
return callbackId;
|
|
62
66
|
}
|
|
63
67
|
removeErrorCallbacks(callbackId) {
|
|
68
|
+
if (callbackId === undefined) {
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
64
71
|
this.errorCallbacks.delete(callbackId);
|
|
65
72
|
}
|
|
66
73
|
chunks(array, size) {
|
|
@@ -92,8 +99,9 @@ class BulkAccountLoader {
|
|
|
92
99
|
catch (e) {
|
|
93
100
|
console.error(`Error in bulkAccountLoader.load()`);
|
|
94
101
|
console.error(e);
|
|
102
|
+
const error = e instanceof Error ? e : new Error(String(e));
|
|
95
103
|
for (const [_, callback] of this.errorCallbacks) {
|
|
96
|
-
callback(
|
|
104
|
+
callback(error);
|
|
97
105
|
}
|
|
98
106
|
}
|
|
99
107
|
finally {
|
|
@@ -174,6 +182,9 @@ class BulkAccountLoader {
|
|
|
174
182
|
});
|
|
175
183
|
}
|
|
176
184
|
handleAccountCallbacks(accountToLoad, buffer, slot) {
|
|
185
|
+
if (buffer === undefined) {
|
|
186
|
+
return;
|
|
187
|
+
}
|
|
177
188
|
for (const [_, callback] of accountToLoad.callbacks) {
|
|
178
189
|
try {
|
|
179
190
|
callback(buffer, slot);
|
|
@@ -7,7 +7,8 @@ import { WebSocketAccountSubscriber } from './webSocketAccountSubscriber';
|
|
|
7
7
|
import { Client } from '../isomorphic/grpc';
|
|
8
8
|
export declare class grpcAccountSubscriber<T> extends WebSocketAccountSubscriber<T> {
|
|
9
9
|
private client;
|
|
10
|
-
private
|
|
10
|
+
private _stream?;
|
|
11
|
+
private get stream();
|
|
11
12
|
private commitmentLevel;
|
|
12
13
|
listenerId?: number;
|
|
13
14
|
private constructor();
|
|
@@ -29,6 +29,12 @@ const Buffer = __importStar(require("buffer"));
|
|
|
29
29
|
const webSocketAccountSubscriber_1 = require("./webSocketAccountSubscriber");
|
|
30
30
|
const grpc_1 = require("../isomorphic/grpc");
|
|
31
31
|
class grpcAccountSubscriber extends webSocketAccountSubscriber_1.WebSocketAccountSubscriber {
|
|
32
|
+
get stream() {
|
|
33
|
+
if (!this._stream) {
|
|
34
|
+
throw new Error('grpcAccountSubscriber: stream accessed before subscribe()');
|
|
35
|
+
}
|
|
36
|
+
return this._stream;
|
|
37
|
+
}
|
|
32
38
|
constructor(client, commitmentLevel, accountName, program, accountPublicKey, decodeBuffer, resubOpts) {
|
|
33
39
|
super(accountName, program, accountPublicKey, decodeBuffer, resubOpts);
|
|
34
40
|
this.client = client;
|
|
@@ -53,7 +59,7 @@ class grpcAccountSubscriber extends webSocketAccountSubscriber_1.WebSocketAccoun
|
|
|
53
59
|
await this.fetch();
|
|
54
60
|
}
|
|
55
61
|
// Subscribe with grpc
|
|
56
|
-
this.
|
|
62
|
+
this._stream =
|
|
57
63
|
(await this.client.subscribe());
|
|
58
64
|
const request = {
|
|
59
65
|
slots: {},
|
|
@@ -74,7 +80,7 @@ class grpcAccountSubscriber extends webSocketAccountSubscriber_1.WebSocketAccoun
|
|
|
74
80
|
};
|
|
75
81
|
this.stream.on('data', (chunk) => {
|
|
76
82
|
var _a;
|
|
77
|
-
if (!chunk.account) {
|
|
83
|
+
if (!chunk.account || !chunk.account.account) {
|
|
78
84
|
return;
|
|
79
85
|
}
|
|
80
86
|
const slot = Number(chunk.account.slot);
|
|
@@ -6,7 +6,8 @@ import { Client } from '../isomorphic/grpc';
|
|
|
6
6
|
import { DataAndSlot, GrpcConfigs, ResubOpts } from './types';
|
|
7
7
|
export declare class grpcMultiAccountSubscriber<T, U = undefined> {
|
|
8
8
|
private client;
|
|
9
|
-
private
|
|
9
|
+
private _stream?;
|
|
10
|
+
private get stream();
|
|
10
11
|
private commitmentLevel;
|
|
11
12
|
private program;
|
|
12
13
|
private accountName;
|
|
@@ -28,7 +29,7 @@ export declare class grpcMultiAccountSubscriber<T, U = undefined> {
|
|
|
28
29
|
getAccountData(accountPubkey: string): DataAndSlot<T> | undefined;
|
|
29
30
|
getAccountDataMap(): Map<string, DataAndSlot<T>>;
|
|
30
31
|
fetch(): Promise<void>;
|
|
31
|
-
subscribe(accounts: PublicKey[], onChange: (accountId: PublicKey, data: T, context: Context, buffer: Buffer, accountProps: U) => void): Promise<void>;
|
|
32
|
+
subscribe(accounts: PublicKey[], onChange: (accountId: PublicKey, data: T, context: Context, buffer: Buffer, accountProps: U | undefined) => void): Promise<void>;
|
|
32
33
|
addAccounts(accounts: PublicKey[]): Promise<void>;
|
|
33
34
|
removeAccounts(accounts: PublicKey[]): Promise<void>;
|
|
34
35
|
unsubscribe(): Promise<void>;
|
|
@@ -44,6 +44,12 @@ function commitmentLevelToCommitment(commitmentLevel) {
|
|
|
44
44
|
}
|
|
45
45
|
}
|
|
46
46
|
class grpcMultiAccountSubscriber {
|
|
47
|
+
get stream() {
|
|
48
|
+
if (!this._stream) {
|
|
49
|
+
throw new Error('grpcMultiAccountSubscriber: stream accessed before subscribe()');
|
|
50
|
+
}
|
|
51
|
+
return this._stream;
|
|
52
|
+
}
|
|
47
53
|
constructor(client, commitmentLevel, accountName, program, decodeBuffer, resubOpts, onUnsubscribe, accountPropsMap) {
|
|
48
54
|
this.isUnsubscribing = false;
|
|
49
55
|
this.receivingData = false;
|
|
@@ -59,7 +65,9 @@ class grpcMultiAccountSubscriber {
|
|
|
59
65
|
this.decodeBufferFn = decodeBuffer;
|
|
60
66
|
this.resubOpts = resubOpts;
|
|
61
67
|
this.onUnsubscribe = onUnsubscribe;
|
|
62
|
-
|
|
68
|
+
if (accountPropsMap) {
|
|
69
|
+
this.accountPropsMap = accountPropsMap;
|
|
70
|
+
}
|
|
63
71
|
}
|
|
64
72
|
static async create(grpcConfigs, accountName, program, decodeBuffer, resubOpts, clientProp, onUnsubscribe, accountPropsMap) {
|
|
65
73
|
var _a, _b;
|
|
@@ -72,7 +80,7 @@ class grpcMultiAccountSubscriber {
|
|
|
72
80
|
return new grpcMultiAccountSubscriber(client, commitmentLevel, accountName, program, decodeBuffer, resubOpts, onUnsubscribe, accountPropsMap);
|
|
73
81
|
}
|
|
74
82
|
setAccountData(accountPubkey, data, slot) {
|
|
75
|
-
this.dataMap.set(accountPubkey, { data, slot });
|
|
83
|
+
this.dataMap.set(accountPubkey, { data, slot: slot !== null && slot !== void 0 ? slot : 0 });
|
|
76
84
|
}
|
|
77
85
|
getAccountData(accountPubkey) {
|
|
78
86
|
return this.dataMap.get(accountPubkey);
|
|
@@ -146,7 +154,7 @@ class grpcMultiAccountSubscriber {
|
|
|
146
154
|
onChange(new web3_js_1.PublicKey(key), data, ctx, buffer, accountProps);
|
|
147
155
|
});
|
|
148
156
|
}
|
|
149
|
-
this.
|
|
157
|
+
this._stream =
|
|
150
158
|
(await this.client.subscribe());
|
|
151
159
|
const request = {
|
|
152
160
|
slots: {},
|
|
@@ -167,7 +175,7 @@ class grpcMultiAccountSubscriber {
|
|
|
167
175
|
};
|
|
168
176
|
this.stream.on('data', (chunk) => {
|
|
169
177
|
var _a, _b;
|
|
170
|
-
if (!chunk.account) {
|
|
178
|
+
if (!chunk.account || !chunk.account.account) {
|
|
171
179
|
return;
|
|
172
180
|
}
|
|
173
181
|
const slot = Number(chunk.account.slot);
|
|
@@ -212,7 +220,7 @@ class grpcMultiAccountSubscriber {
|
|
|
212
220
|
const handleDataBuffer = (context, buffer, accountProps) => {
|
|
213
221
|
const data = this.decodeBufferFn
|
|
214
222
|
? this.decodeBufferFn(buffer, accountPubkey, accountProps)
|
|
215
|
-
: this.program.
|
|
223
|
+
: this.program.coder.accounts.decode(this.capitalize(this.accountName), buffer);
|
|
216
224
|
const handler = this.onChangeMap.get(accountPubkey);
|
|
217
225
|
if (handler) {
|
|
218
226
|
handler(data, context, buffer, accountProps);
|
|
@@ -5,7 +5,8 @@ import { VelocityProgram } from '../config';
|
|
|
5
5
|
import { grpcMultiAccountSubscriber } from './grpcMultiAccountSubscriber';
|
|
6
6
|
export declare class grpcMultiUserAccountSubscriber {
|
|
7
7
|
private program;
|
|
8
|
-
private
|
|
8
|
+
private _multiSubscriber?;
|
|
9
|
+
private get multiSubscriber();
|
|
9
10
|
private userData;
|
|
10
11
|
private listeners;
|
|
11
12
|
private keyToPk;
|
|
@@ -6,6 +6,12 @@ const events_1 = require("events");
|
|
|
6
6
|
const web3_js_1 = require("@solana/web3.js");
|
|
7
7
|
const grpcMultiAccountSubscriber_1 = require("./grpcMultiAccountSubscriber");
|
|
8
8
|
class grpcMultiUserAccountSubscriber {
|
|
9
|
+
get multiSubscriber() {
|
|
10
|
+
if (!this._multiSubscriber) {
|
|
11
|
+
throw new Error('grpcMultiUserAccountSubscriber: multiSubscriber accessed before subscribe()');
|
|
12
|
+
}
|
|
13
|
+
return this._multiSubscriber;
|
|
14
|
+
}
|
|
9
15
|
constructor(program, grpcConfigs, resubOpts, multiSubscriber) {
|
|
10
16
|
this.userData = new Map();
|
|
11
17
|
this.listeners = new Map();
|
|
@@ -26,13 +32,15 @@ class grpcMultiUserAccountSubscriber {
|
|
|
26
32
|
}
|
|
27
33
|
};
|
|
28
34
|
this.program = program;
|
|
29
|
-
|
|
35
|
+
if (multiSubscriber) {
|
|
36
|
+
this._multiSubscriber = multiSubscriber;
|
|
37
|
+
}
|
|
30
38
|
this.grpcConfigs = grpcConfigs;
|
|
31
39
|
this.resubOpts = resubOpts;
|
|
32
40
|
}
|
|
33
41
|
async subscribe() {
|
|
34
|
-
if (!this.
|
|
35
|
-
this.
|
|
42
|
+
if (!this._multiSubscriber) {
|
|
43
|
+
this._multiSubscriber =
|
|
36
44
|
await grpcMultiAccountSubscriber_1.grpcMultiAccountSubscriber.create(this.grpcConfigs, 'user', this.program, undefined, this.resubOpts);
|
|
37
45
|
}
|
|
38
46
|
// Subscribe all per-user subscribers first
|
|
@@ -138,11 +146,7 @@ class grpcMultiUserAccountSubscriber {
|
|
|
138
146
|
isSubscribed = false;
|
|
139
147
|
},
|
|
140
148
|
getUserAccountAndSlot() {
|
|
141
|
-
|
|
142
|
-
if (!das) {
|
|
143
|
-
throw new types_1.NotSubscribedError('Must subscribe before getting user account data');
|
|
144
|
-
}
|
|
145
|
-
return das;
|
|
149
|
+
return parent.userData.get(key);
|
|
146
150
|
},
|
|
147
151
|
};
|
|
148
152
|
this.userAccountSubscribers.set(userAccountPublicKey.toBase58(), perUser);
|
|
@@ -6,7 +6,8 @@ import { VelocityProgram } from '../config';
|
|
|
6
6
|
import { WebSocketProgramAccountSubscriber } from './webSocketProgramAccountSubscriber';
|
|
7
7
|
export declare class grpcProgramAccountSubscriber<T> extends WebSocketProgramAccountSubscriber<T> {
|
|
8
8
|
private client;
|
|
9
|
-
private
|
|
9
|
+
private _stream?;
|
|
10
|
+
private get stream();
|
|
10
11
|
private commitmentLevel;
|
|
11
12
|
listenerId?: number;
|
|
12
13
|
private constructor();
|
|
@@ -29,6 +29,12 @@ const Buffer = __importStar(require("buffer"));
|
|
|
29
29
|
const webSocketProgramAccountSubscriber_1 = require("./webSocketProgramAccountSubscriber");
|
|
30
30
|
const grpc_1 = require("../isomorphic/grpc");
|
|
31
31
|
class grpcProgramAccountSubscriber extends webSocketProgramAccountSubscriber_1.WebSocketProgramAccountSubscriber {
|
|
32
|
+
get stream() {
|
|
33
|
+
if (!this._stream) {
|
|
34
|
+
throw new Error('grpcProgramAccountSubscriber: stream accessed before subscribe()');
|
|
35
|
+
}
|
|
36
|
+
return this._stream;
|
|
37
|
+
}
|
|
32
38
|
constructor(client, commitmentLevel, subscriptionName, accountDiscriminator, program, decodeBufferFn, options = {
|
|
33
39
|
filters: [],
|
|
34
40
|
}, resubOpts) {
|
|
@@ -57,7 +63,7 @@ class grpcProgramAccountSubscriber extends webSocketProgramAccountSubscriber_1.W
|
|
|
57
63
|
}
|
|
58
64
|
this.onChange = onChange;
|
|
59
65
|
// Subscribe with grpc
|
|
60
|
-
this.
|
|
66
|
+
this._stream = await this.client.subscribe();
|
|
61
67
|
const filters = this.options.filters.map((filter) => {
|
|
62
68
|
return {
|
|
63
69
|
memcmp: {
|
|
@@ -85,7 +91,7 @@ class grpcProgramAccountSubscriber extends webSocketProgramAccountSubscriber_1.W
|
|
|
85
91
|
};
|
|
86
92
|
this.stream.on('data', (chunk) => {
|
|
87
93
|
var _a;
|
|
88
|
-
if (!chunk.account) {
|
|
94
|
+
if (!chunk.account || !chunk.account.account) {
|
|
89
95
|
return;
|
|
90
96
|
}
|
|
91
97
|
const slot = Number(chunk.account.slot);
|
|
@@ -60,9 +60,13 @@ class grpcVelocityClientAccountSubscriber extends webSocketVelocityClientAccount
|
|
|
60
60
|
return true;
|
|
61
61
|
}
|
|
62
62
|
async subscribeToSpotMarketAccount(marketIndex) {
|
|
63
|
+
var _a;
|
|
63
64
|
const marketPublicKey = await (0, pda_1.getSpotMarketPublicKey)(this.program.programId, marketIndex);
|
|
64
65
|
const accountSubscriber = await grpcAccountSubscriber_1.grpcAccountSubscriber.create(this.grpcConfigs, 'spotMarket', this.program, marketPublicKey, undefined, this.resubOpts);
|
|
65
|
-
|
|
66
|
+
const initialSpotMarketData = (_a = this.initialSpotMarketAccountData) === null || _a === void 0 ? void 0 : _a.get(marketIndex);
|
|
67
|
+
if (initialSpotMarketData) {
|
|
68
|
+
accountSubscriber.setData(initialSpotMarketData);
|
|
69
|
+
}
|
|
66
70
|
await accountSubscriber.subscribe((data) => {
|
|
67
71
|
this.eventEmitter.emit('spotMarketAccountUpdate', data);
|
|
68
72
|
this.eventEmitter.emit('update');
|
|
@@ -71,9 +75,13 @@ class grpcVelocityClientAccountSubscriber extends webSocketVelocityClientAccount
|
|
|
71
75
|
return true;
|
|
72
76
|
}
|
|
73
77
|
async subscribeToPerpMarketAccount(marketIndex) {
|
|
78
|
+
var _a;
|
|
74
79
|
const perpMarketPublicKey = await (0, pda_1.getPerpMarketPublicKey)(this.program.programId, marketIndex);
|
|
75
80
|
const accountSubscriber = await grpcAccountSubscriber_1.grpcAccountSubscriber.create(this.grpcConfigs, 'perpMarket', this.program, perpMarketPublicKey, undefined, this.resubOpts);
|
|
76
|
-
|
|
81
|
+
const initialPerpMarketData = (_a = this.initialPerpMarketAccountData) === null || _a === void 0 ? void 0 : _a.get(marketIndex);
|
|
82
|
+
if (initialPerpMarketData) {
|
|
83
|
+
accountSubscriber.setData(initialPerpMarketData);
|
|
84
|
+
}
|
|
77
85
|
await accountSubscriber.subscribe((data) => {
|
|
78
86
|
this.eventEmitter.emit('perpMarketAccountUpdate', data);
|
|
79
87
|
this.eventEmitter.emit('update');
|
|
@@ -82,12 +90,19 @@ class grpcVelocityClientAccountSubscriber extends webSocketVelocityClientAccount
|
|
|
82
90
|
return true;
|
|
83
91
|
}
|
|
84
92
|
async subscribeToOracle(oracleInfo) {
|
|
93
|
+
var _a;
|
|
85
94
|
const oracleId = (0, oracleId_1.getOracleId)(oracleInfo.publicKey, oracleInfo.source);
|
|
86
95
|
const client = this.oracleClientCache.get(oracleInfo.source, this.program.provider.connection, this.program);
|
|
96
|
+
if (!client) {
|
|
97
|
+
return false;
|
|
98
|
+
}
|
|
87
99
|
const accountSubscriber = await grpcAccountSubscriber_1.grpcAccountSubscriber.create(this.grpcConfigs, 'oracle', this.program, oracleInfo.publicKey, (buffer) => {
|
|
88
100
|
return client.getOraclePriceDataFromBuffer(buffer);
|
|
89
101
|
}, this.resubOpts);
|
|
90
|
-
|
|
102
|
+
const initialOraclePriceData = (_a = this.initialOraclePriceData) === null || _a === void 0 ? void 0 : _a.get(oracleId);
|
|
103
|
+
if (initialOraclePriceData) {
|
|
104
|
+
accountSubscriber.setData(initialOraclePriceData);
|
|
105
|
+
}
|
|
91
106
|
await accountSubscriber.subscribe((data) => {
|
|
92
107
|
this.eventEmitter.emit('oraclePriceUpdate', oracleInfo.publicKey, oracleInfo.source, data);
|
|
93
108
|
this.eventEmitter.emit('update');
|
|
@@ -34,8 +34,8 @@ export declare class grpcVelocityClientAccountSubscriberV2 implements VelocityCl
|
|
|
34
34
|
stateAccountSubscriber?: AccountSubscriber<StateAccount>;
|
|
35
35
|
oracleClientCache: OracleClientCache;
|
|
36
36
|
private resubOpts?;
|
|
37
|
+
private subscriptionPromiseResolver;
|
|
37
38
|
private subscriptionPromise;
|
|
38
|
-
protected subscriptionPromiseResolver: (val: boolean) => void;
|
|
39
39
|
constructor(grpcConfigs: GrpcConfigs, program: VelocityProgram, perpMarketIndexes: number[], spotMarketIndexes: number[], oracleInfos: OracleInfo[], shouldFindAllMarketsAndOracles: boolean, delistedMarketSetting: DelistedMarketSetting, resubOpts?: ResubOpts);
|
|
40
40
|
chunks: <T>(array: readonly T[], size: number) => T[][];
|
|
41
41
|
setInitialData(): Promise<void>;
|
|
@@ -21,6 +21,8 @@ class grpcVelocityClientAccountSubscriberV2 {
|
|
|
21
21
|
this.spotOracleStringMap = new Map();
|
|
22
22
|
this.oracleIdToOracleDataMap = new Map();
|
|
23
23
|
this.oracleClientCache = new oracleClientCache_1.OracleClientCache();
|
|
24
|
+
this.subscriptionPromiseResolver = () => { };
|
|
25
|
+
this.subscriptionPromise = Promise.resolve(false);
|
|
24
26
|
this.chunks = (array, size) => {
|
|
25
27
|
return new Array(Math.ceil(array.length / size))
|
|
26
28
|
.fill(null)
|
|
@@ -75,11 +77,15 @@ class grpcVelocityClientAccountSubscriberV2 {
|
|
|
75
77
|
const oracleAccountPubkeyChunks = this.chunks(this.oracleInfos.map((oracleInfo) => oracleInfo.publicKey), 75);
|
|
76
78
|
const oracleAccountInfos = (await Promise.all(oracleAccountPubkeyChunks.map((oracleAccountPublicKeysChunk) => connection.getMultipleAccountsInfo(oracleAccountPublicKeysChunk)))).flat();
|
|
77
79
|
this.initialOraclePriceData = new Map(this.oracleInfos.reduce((result, oracleInfo, i) => {
|
|
78
|
-
|
|
80
|
+
const oracleAccountInfo = oracleAccountInfos[i];
|
|
81
|
+
if (!oracleAccountInfo) {
|
|
79
82
|
return result;
|
|
80
83
|
}
|
|
81
84
|
const oracleClient = this.oracleClientCache.get(oracleInfo.source, connection, this.program);
|
|
82
|
-
|
|
85
|
+
if (!oracleClient) {
|
|
86
|
+
return result;
|
|
87
|
+
}
|
|
88
|
+
const oraclePriceData = oracleClient.getOraclePriceDataFromBuffer(oracleAccountInfo.data);
|
|
83
89
|
result.push([
|
|
84
90
|
(0, oracleId_1.getOracleId)(oracleInfo.publicKey, oracleInfo.source),
|
|
85
91
|
oraclePriceData,
|
|
@@ -187,11 +193,19 @@ class grpcVelocityClientAccountSubscriberV2 {
|
|
|
187
193
|
}
|
|
188
194
|
getMarketAccountAndSlot(marketIndex) {
|
|
189
195
|
var _a;
|
|
190
|
-
|
|
196
|
+
const accountPubkey = this.perpMarketIndexToAccountPubkeyMap.get(marketIndex);
|
|
197
|
+
if (!accountPubkey) {
|
|
198
|
+
return undefined;
|
|
199
|
+
}
|
|
200
|
+
return (_a = this.perpMarketsSubscriber) === null || _a === void 0 ? void 0 : _a.getAccountData(accountPubkey);
|
|
191
201
|
}
|
|
192
202
|
getSpotMarketAccountAndSlot(marketIndex) {
|
|
193
203
|
var _a;
|
|
194
|
-
|
|
204
|
+
const accountPubkey = this.spotMarketIndexToAccountPubkeyMap.get(marketIndex);
|
|
205
|
+
if (!accountPubkey) {
|
|
206
|
+
return undefined;
|
|
207
|
+
}
|
|
208
|
+
return (_a = this.spotMarketsSubscriber) === null || _a === void 0 ? void 0 : _a.getAccountData(accountPubkey);
|
|
195
209
|
}
|
|
196
210
|
getOraclePriceDataAndSlot(oracleId) {
|
|
197
211
|
this.assertIsSubscribed();
|
|
@@ -206,8 +220,8 @@ class grpcVelocityClientAccountSubscriberV2 {
|
|
|
206
220
|
if (!perpMarketAccount || !oracleId) {
|
|
207
221
|
return undefined;
|
|
208
222
|
}
|
|
209
|
-
if (!perpMarketAccount.data.oracle.equals(oracle)) {
|
|
210
|
-
// If the oracle has changed
|
|
223
|
+
if (!oracle || !perpMarketAccount.data.oracle.equals(oracle)) {
|
|
224
|
+
// If the oracle has changed (or not yet cached), update the oracle map in background
|
|
211
225
|
this.setPerpOracleMap();
|
|
212
226
|
}
|
|
213
227
|
return this.getOraclePriceDataAndSlot(oracleId);
|
|
@@ -219,16 +233,16 @@ class grpcVelocityClientAccountSubscriberV2 {
|
|
|
219
233
|
if (!spotMarketAccount || !oracleId) {
|
|
220
234
|
return undefined;
|
|
221
235
|
}
|
|
222
|
-
if (!spotMarketAccount.data.oracle.equals(oracle)) {
|
|
223
|
-
// If the oracle has changed
|
|
236
|
+
if (!oracle || !spotMarketAccount.data.oracle.equals(oracle)) {
|
|
237
|
+
// If the oracle has changed (or not yet cached), update the oracle map in background
|
|
224
238
|
this.setSpotOracleMap();
|
|
225
239
|
}
|
|
226
240
|
return this.getOraclePriceDataAndSlot(oracleId);
|
|
227
241
|
}
|
|
228
242
|
async setPerpOracleMap() {
|
|
229
|
-
var _a, _c;
|
|
243
|
+
var _a, _c, _d;
|
|
230
244
|
const perpMarketsMap = (_a = this.perpMarketsSubscriber) === null || _a === void 0 ? void 0 : _a.getAccountDataMap();
|
|
231
|
-
const perpMarkets = Array.from(perpMarketsMap.values());
|
|
245
|
+
const perpMarkets = Array.from((_c = perpMarketsMap === null || perpMarketsMap === void 0 ? void 0 : perpMarketsMap.values()) !== null && _c !== void 0 ? _c : []);
|
|
232
246
|
const addOraclePromises = [];
|
|
233
247
|
for (const perpMarket of perpMarkets) {
|
|
234
248
|
if (!perpMarket || !perpMarket.data) {
|
|
@@ -238,7 +252,7 @@ class grpcVelocityClientAccountSubscriberV2 {
|
|
|
238
252
|
const perpMarketIndex = perpMarketAccount.marketIndex;
|
|
239
253
|
const oracle = perpMarketAccount.oracle;
|
|
240
254
|
const oracleId = (0, oracleId_1.getOracleId)(oracle, perpMarket.data.oracleSource);
|
|
241
|
-
if (!((
|
|
255
|
+
if (!((_d = this.oracleMultiSubscriber) === null || _d === void 0 ? void 0 : _d.getAccountDataMap().has(oracleId))) {
|
|
242
256
|
addOraclePromises.push(this.addOracle({
|
|
243
257
|
publicKey: oracle,
|
|
244
258
|
source: perpMarket.data.oracleSource,
|
|
@@ -250,9 +264,9 @@ class grpcVelocityClientAccountSubscriberV2 {
|
|
|
250
264
|
await Promise.all(addOraclePromises);
|
|
251
265
|
}
|
|
252
266
|
async setSpotOracleMap() {
|
|
253
|
-
var _a, _c;
|
|
267
|
+
var _a, _c, _d;
|
|
254
268
|
const spotMarketsMap = (_a = this.spotMarketsSubscriber) === null || _a === void 0 ? void 0 : _a.getAccountDataMap();
|
|
255
|
-
const spotMarkets = Array.from(spotMarketsMap.values());
|
|
269
|
+
const spotMarkets = Array.from((_c = spotMarketsMap === null || spotMarketsMap === void 0 ? void 0 : spotMarketsMap.values()) !== null && _c !== void 0 ? _c : []);
|
|
256
270
|
const addOraclePromises = [];
|
|
257
271
|
for (const spotMarket of spotMarkets) {
|
|
258
272
|
if (!spotMarket || !spotMarket.data) {
|
|
@@ -262,7 +276,7 @@ class grpcVelocityClientAccountSubscriberV2 {
|
|
|
262
276
|
const spotMarketIndex = spotMarketAccount.marketIndex;
|
|
263
277
|
const oracle = spotMarketAccount.oracle;
|
|
264
278
|
const oracleId = (0, oracleId_1.getOracleId)(oracle, spotMarketAccount.oracleSource);
|
|
265
|
-
if (!((
|
|
279
|
+
if (!((_d = this.oracleMultiSubscriber) === null || _d === void 0 ? void 0 : _d.getAccountDataMap().has(oracleId))) {
|
|
266
280
|
addOraclePromises.push(this.addOracle({
|
|
267
281
|
publicKey: oracle,
|
|
268
282
|
source: spotMarketAccount.oracleSource,
|
|
@@ -361,7 +375,13 @@ class grpcVelocityClientAccountSubscriberV2 {
|
|
|
361
375
|
if (!pubkey) {
|
|
362
376
|
throw new Error('Oracle pubkey missing in decode');
|
|
363
377
|
}
|
|
378
|
+
if (!accountProps) {
|
|
379
|
+
throw new Error('Oracle accountProps missing in decode');
|
|
380
|
+
}
|
|
364
381
|
const client = this.oracleClientCache.get(accountProps.source, this.program.provider.connection, this.program);
|
|
382
|
+
if (!client) {
|
|
383
|
+
throw new Error('Oracle client missing in decode');
|
|
384
|
+
}
|
|
365
385
|
const price = client.getOraclePriceDataFromBuffer(buffer);
|
|
366
386
|
return price;
|
|
367
387
|
}, this.resubOpts, undefined, async () => {
|
|
@@ -385,6 +405,9 @@ class grpcVelocityClientAccountSubscriberV2 {
|
|
|
385
405
|
});
|
|
386
406
|
}
|
|
387
407
|
await this.oracleMultiSubscriber.subscribe(oraclePubkeys, (accountId, data, context, _b, accountProps) => {
|
|
408
|
+
if (accountProps === undefined) {
|
|
409
|
+
return;
|
|
410
|
+
}
|
|
388
411
|
const oracleId = (0, oracleId_1.getOracleId)(accountId, accountProps.source);
|
|
389
412
|
this.oracleIdToOracleDataMap.set(oracleId, {
|
|
390
413
|
data,
|
|
@@ -396,7 +419,7 @@ class grpcVelocityClientAccountSubscriberV2 {
|
|
|
396
419
|
return true;
|
|
397
420
|
}
|
|
398
421
|
async handleDelistedMarkets() {
|
|
399
|
-
var _a, _c;
|
|
422
|
+
var _a, _c, _d, _e;
|
|
400
423
|
if (this.delistedMarketSetting === types_1.DelistedMarketSetting.Subscribe) {
|
|
401
424
|
return;
|
|
402
425
|
}
|
|
@@ -412,11 +435,11 @@ class grpcVelocityClientAccountSubscriberV2 {
|
|
|
412
435
|
const oraclePubkeysToRemove = oracles.map((oracle) => oracle.publicKey);
|
|
413
436
|
// Remove accounts in batches - perp markets
|
|
414
437
|
if (perpMarketPubkeysToRemove.length > 0) {
|
|
415
|
-
await this.perpMarketsSubscriber.removeAccounts(perpMarketPubkeysToRemove);
|
|
438
|
+
await ((_d = this.perpMarketsSubscriber) === null || _d === void 0 ? void 0 : _d.removeAccounts(perpMarketPubkeysToRemove));
|
|
416
439
|
}
|
|
417
440
|
// Remove accounts in batches - oracles
|
|
418
441
|
if (oraclePubkeysToRemove.length > 0) {
|
|
419
|
-
await this.oracleMultiSubscriber.removeAccounts(oraclePubkeysToRemove);
|
|
442
|
+
await ((_e = this.oracleMultiSubscriber) === null || _e === void 0 ? void 0 : _e.removeAccounts(oraclePubkeysToRemove));
|
|
420
443
|
}
|
|
421
444
|
}
|
|
422
445
|
removeInitialData() {
|
|
@@ -94,6 +94,9 @@ class LaserstreamProgramAccountSubscriber extends webSocketProgramAccountSubscri
|
|
|
94
94
|
if (update.account) {
|
|
95
95
|
const slot = Number(update.account.slot);
|
|
96
96
|
const acc = update.account.account;
|
|
97
|
+
if (!acc) {
|
|
98
|
+
return;
|
|
99
|
+
}
|
|
97
100
|
const accountInfo = {
|
|
98
101
|
owner: new web3_js_1.PublicKey(acc.owner),
|
|
99
102
|
lamports: Number(acc.lamports),
|