@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/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@velocity-exchange/sdk",
|
|
3
|
-
"version": "0.1
|
|
3
|
+
"version": "0.2.1",
|
|
4
4
|
"main": "lib/node/index.js",
|
|
5
5
|
"types": "lib/node/index.d.ts",
|
|
6
6
|
"module": "./lib/browser/index.js",
|
|
@@ -14,18 +14,16 @@
|
|
|
14
14
|
"build:browser": "bun run clean && tsc -p tsconfig.json && tsc -p tsconfig.browser.json && node scripts/postbuild.js --force-env browser",
|
|
15
15
|
"build:minify": "node build-browser.js",
|
|
16
16
|
"clean": "rm -rf lib",
|
|
17
|
-
"test": "mocha -r ts-node/register tests/**/*.ts --ignore 'tests/dlob/**/*.ts'",
|
|
18
|
-
"test:match": "mocha -r ts-node/register --ignore 'tests/dlob/**/*.ts'",
|
|
17
|
+
"test": "mocha -r ts-node/register tests/**/*.ts --ignore 'tests/dlob/**/*.ts' --ignore 'tests/VelocityCore/**/*.ts' --ignore 'tests/ci/**/*.ts'",
|
|
18
|
+
"test:match": "mocha -r ts-node/register --ignore 'tests/dlob/**/*.ts' --ignore 'tests/VelocityCore/**/*.ts' --ignore 'tests/ci/**/*.ts'",
|
|
19
19
|
"test:inspect": "mocha --inspect-brk -r ts-node/register tests/**/*.ts",
|
|
20
20
|
"test:bignum": "mocha -r ts-node/register tests/bn/**/*.ts",
|
|
21
21
|
"test:ci": "mocha -r ts-node/register tests/ci/**/*.ts",
|
|
22
22
|
"test:dlob": "mocha -r ts-node/register tests/dlob/**/*.ts",
|
|
23
23
|
"test:events": "mocha -r ts-node/register tests/events/**/*.ts",
|
|
24
24
|
"test:velocitycore": "bun test tests/VelocityCore",
|
|
25
|
-
"
|
|
26
|
-
"prettify": "prettier --
|
|
27
|
-
"prettify:fix": "prettier --write './{src,tests}/***/*.ts'",
|
|
28
|
-
"version": "node ./scripts/updateVersion.js",
|
|
25
|
+
"prettify": "prettier --check './src/**/*.ts'",
|
|
26
|
+
"prettify:fix": "prettier --write './{src,tests}/**/*.ts'",
|
|
29
27
|
"circular-deps": "bunx madge --circular --circular --extensions ts src"
|
|
30
28
|
},
|
|
31
29
|
"keywords": [
|
|
@@ -47,12 +45,17 @@
|
|
|
47
45
|
"@coral-xyz/anchor": "npm:@anchor-lang/core@1.0.1",
|
|
48
46
|
"@coral-xyz/anchor-29": "npm:@coral-xyz/anchor@0.29.0",
|
|
49
47
|
"@msgpack/msgpack": "3.1.2",
|
|
48
|
+
"@noble/hashes": "1.7.1",
|
|
49
|
+
"@solana/buffer-layout": "4.0.1",
|
|
50
|
+
"node-fetch": "2.7.0",
|
|
51
|
+
"ws": "8.18.1",
|
|
50
52
|
"@pythnetwork/client": "2.5.3",
|
|
51
53
|
"@pythnetwork/price-service-sdk": "1.7.1",
|
|
52
54
|
"@pythnetwork/pyth-lazer-sdk": "6.0.0",
|
|
53
55
|
"@solana/spl-token": "0.4.13",
|
|
54
56
|
"@solana/web3.js": "1.98.0",
|
|
55
57
|
"@triton-one/yellowstone-grpc": "5.0.5",
|
|
58
|
+
"bs58": "4.0.1",
|
|
56
59
|
"anchor-bankrun": "0.5.0",
|
|
57
60
|
"gill": "0.10.2",
|
|
58
61
|
"nanoid": "3.3.4",
|
|
@@ -64,7 +67,8 @@
|
|
|
64
67
|
"uuid": "8.3.2",
|
|
65
68
|
"yargs": "17.7.2",
|
|
66
69
|
"zod": "4.0.17",
|
|
67
|
-
"zstddec": "0.1.0"
|
|
70
|
+
"zstddec": "0.1.0",
|
|
71
|
+
"bn.js": "^5.2.0"
|
|
68
72
|
},
|
|
69
73
|
"optionalDependencies": {
|
|
70
74
|
"helius-laserstream": "0.1.8"
|
|
@@ -76,6 +80,9 @@
|
|
|
76
80
|
"@types/chai": "4.3.20",
|
|
77
81
|
"@types/jest": "28.1.8",
|
|
78
82
|
"@types/mocha": "9.1.1",
|
|
83
|
+
"@types/node-fetch": "2.6.11",
|
|
84
|
+
"@types/uuid": "8.3.4",
|
|
85
|
+
"@types/ws": "8.18.1",
|
|
79
86
|
"@typescript-eslint/eslint-plugin": "6.21.0",
|
|
80
87
|
"@typescript-eslint/parser": "6.21.0",
|
|
81
88
|
"chai": "4.5.0",
|
|
@@ -16,7 +16,7 @@ export class BasicUserAccountSubscriber implements UserAccountSubscriber {
|
|
|
16
16
|
callbackId?: string;
|
|
17
17
|
errorCallbackId?: string;
|
|
18
18
|
|
|
19
|
-
user
|
|
19
|
+
user?: DataAndSlot<UserAccount>;
|
|
20
20
|
|
|
21
21
|
public constructor(
|
|
22
22
|
userAccountPublicKey: PublicKey,
|
|
@@ -26,7 +26,9 @@ export class BasicUserAccountSubscriber implements UserAccountSubscriber {
|
|
|
26
26
|
this.isSubscribed = true;
|
|
27
27
|
this.eventEmitter = new EventEmitter();
|
|
28
28
|
this.userAccountPublicKey = userAccountPublicKey;
|
|
29
|
-
|
|
29
|
+
// `slot ?? 0` keeps {data, slot} atomic: a seeded account always carries a
|
|
30
|
+
// slot (0 = oldest-possible sentinel, overwritten by the first real fetch).
|
|
31
|
+
this.user = data ? { data, slot: slot ?? 0 } : undefined;
|
|
30
32
|
}
|
|
31
33
|
|
|
32
34
|
async subscribe(_userAccount?: UserAccount): Promise<boolean> {
|
|
@@ -37,7 +39,7 @@ export class BasicUserAccountSubscriber implements UserAccountSubscriber {
|
|
|
37
39
|
|
|
38
40
|
async fetch(): Promise<void> {}
|
|
39
41
|
|
|
40
|
-
doesAccountExist():
|
|
42
|
+
doesAccountExist(): this is { user: DataAndSlot<UserAccount> } {
|
|
41
43
|
return this.user !== undefined;
|
|
42
44
|
}
|
|
43
45
|
|
|
@@ -45,12 +47,12 @@ export class BasicUserAccountSubscriber implements UserAccountSubscriber {
|
|
|
45
47
|
|
|
46
48
|
assertIsSubscribed(): void {}
|
|
47
49
|
|
|
48
|
-
public getUserAccountAndSlot(): DataAndSlot<UserAccount> {
|
|
50
|
+
public getUserAccountAndSlot(): DataAndSlot<UserAccount> | undefined {
|
|
49
51
|
return this.user;
|
|
50
52
|
}
|
|
51
53
|
|
|
52
54
|
public updateData(userAccount: UserAccount, slot: number): void {
|
|
53
|
-
if (!this.user || slot >=
|
|
55
|
+
if (!this.user || slot >= this.user.slot) {
|
|
54
56
|
this.user = { data: userAccount, slot };
|
|
55
57
|
this.eventEmitter.emit('userAccountUpdate', userAccount);
|
|
56
58
|
this.eventEmitter.emit('update');
|
|
@@ -22,7 +22,7 @@ export class BasicUserStatsAccountSubscriber
|
|
|
22
22
|
callbackId?: string;
|
|
23
23
|
errorCallbackId?: string;
|
|
24
24
|
|
|
25
|
-
userStats
|
|
25
|
+
userStats?: DataAndSlot<UserStatsAccount>;
|
|
26
26
|
|
|
27
27
|
public constructor(
|
|
28
28
|
userStatsAccountPublicKey: PublicKey,
|
|
@@ -32,7 +32,9 @@ export class BasicUserStatsAccountSubscriber
|
|
|
32
32
|
this.isSubscribed = true;
|
|
33
33
|
this.eventEmitter = new EventEmitter();
|
|
34
34
|
this.userStatsAccountPublicKey = userStatsAccountPublicKey;
|
|
35
|
-
|
|
35
|
+
// `slot ?? 0` keeps {data, slot} atomic: a seeded account always carries a
|
|
36
|
+
// slot (0 = oldest-possible sentinel, overwritten by the first real fetch).
|
|
37
|
+
this.userStats = data ? { data, slot: slot ?? 0 } : undefined;
|
|
36
38
|
}
|
|
37
39
|
|
|
38
40
|
async subscribe(_userStatsAccount?: UserStatsAccount): Promise<boolean> {
|
|
@@ -43,7 +45,7 @@ export class BasicUserStatsAccountSubscriber
|
|
|
43
45
|
|
|
44
46
|
async fetch(): Promise<void> {}
|
|
45
47
|
|
|
46
|
-
doesAccountExist():
|
|
48
|
+
doesAccountExist(): this is { userStats: DataAndSlot<UserStatsAccount> } {
|
|
47
49
|
return this.userStats !== undefined;
|
|
48
50
|
}
|
|
49
51
|
|
|
@@ -51,12 +53,14 @@ export class BasicUserStatsAccountSubscriber
|
|
|
51
53
|
|
|
52
54
|
assertIsSubscribed(): void {}
|
|
53
55
|
|
|
54
|
-
public getUserStatsAccountAndSlot():
|
|
56
|
+
public getUserStatsAccountAndSlot():
|
|
57
|
+
| DataAndSlot<UserStatsAccount>
|
|
58
|
+
| undefined {
|
|
55
59
|
return this.userStats;
|
|
56
60
|
}
|
|
57
61
|
|
|
58
62
|
public updateData(userStatsAccount: UserStatsAccount, slot: number): void {
|
|
59
|
-
if (!this.userStats || slot >=
|
|
63
|
+
if (!this.userStats || slot >= this.userStats.slot) {
|
|
60
64
|
this.userStats = { data: userStatsAccount, slot };
|
|
61
65
|
this.eventEmitter.emit('userStatsAccountUpdate', userStatsAccount);
|
|
62
66
|
this.eventEmitter.emit('update');
|
|
@@ -18,11 +18,11 @@ export class BulkAccountLoader {
|
|
|
18
18
|
pollingFrequency: number;
|
|
19
19
|
accountsToLoad = new Map<string, AccountToLoad>();
|
|
20
20
|
bufferAndSlotMap = new Map<string, BufferAndSlot>();
|
|
21
|
-
errorCallbacks = new Map<string, (e) => void>();
|
|
21
|
+
errorCallbacks = new Map<string, (e: Error) => void>();
|
|
22
22
|
intervalId?: ReturnType<typeof setTimeout>;
|
|
23
23
|
// to handle clients spamming load
|
|
24
24
|
loadPromise?: Promise<void>;
|
|
25
|
-
loadPromiseResolver: () => void;
|
|
25
|
+
private loadPromiseResolver: () => void = () => {};
|
|
26
26
|
lastTimeLoadingPromiseCleared = Date.now();
|
|
27
27
|
mostRecentSlot = 0;
|
|
28
28
|
|
|
@@ -73,7 +73,13 @@ export class BulkAccountLoader {
|
|
|
73
73
|
return callbackId;
|
|
74
74
|
}
|
|
75
75
|
|
|
76
|
-
public removeAccount(
|
|
76
|
+
public removeAccount(
|
|
77
|
+
publicKey: PublicKey,
|
|
78
|
+
callbackId: string | undefined
|
|
79
|
+
): void {
|
|
80
|
+
if (callbackId === undefined) {
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
77
83
|
const existingAccountToLoad = this.accountsToLoad.get(publicKey.toString());
|
|
78
84
|
if (existingAccountToLoad) {
|
|
79
85
|
existingAccountToLoad.callbacks.delete(callbackId);
|
|
@@ -94,7 +100,10 @@ export class BulkAccountLoader {
|
|
|
94
100
|
return callbackId;
|
|
95
101
|
}
|
|
96
102
|
|
|
97
|
-
public removeErrorCallbacks(callbackId: string): void {
|
|
103
|
+
public removeErrorCallbacks(callbackId: string | undefined): void {
|
|
104
|
+
if (callbackId === undefined) {
|
|
105
|
+
return;
|
|
106
|
+
}
|
|
98
107
|
this.errorCallbacks.delete(callbackId);
|
|
99
108
|
}
|
|
100
109
|
|
|
@@ -137,8 +146,9 @@ export class BulkAccountLoader {
|
|
|
137
146
|
} catch (e) {
|
|
138
147
|
console.error(`Error in bulkAccountLoader.load()`);
|
|
139
148
|
console.error(e);
|
|
149
|
+
const error = e instanceof Error ? e : new Error(String(e));
|
|
140
150
|
for (const [_, callback] of this.errorCallbacks) {
|
|
141
|
-
callback(
|
|
151
|
+
callback(error);
|
|
142
152
|
}
|
|
143
153
|
} finally {
|
|
144
154
|
this.loadPromiseResolver();
|
|
@@ -179,7 +189,7 @@ export class BulkAccountLoader {
|
|
|
179
189
|
return;
|
|
180
190
|
}
|
|
181
191
|
|
|
182
|
-
rpcResponses.forEach((rpcResponse, i) => {
|
|
192
|
+
rpcResponses.forEach((rpcResponse: any, i: number) => {
|
|
183
193
|
if (!rpcResponse.result) {
|
|
184
194
|
console.error('rpc response missing result:');
|
|
185
195
|
console.log(JSON.stringify(rpcResponse));
|
|
@@ -234,9 +244,12 @@ export class BulkAccountLoader {
|
|
|
234
244
|
|
|
235
245
|
handleAccountCallbacks(
|
|
236
246
|
accountToLoad: AccountToLoad,
|
|
237
|
-
buffer: Buffer,
|
|
247
|
+
buffer: Buffer | undefined,
|
|
238
248
|
slot: number
|
|
239
249
|
): void {
|
|
250
|
+
if (buffer === undefined) {
|
|
251
|
+
return;
|
|
252
|
+
}
|
|
240
253
|
for (const [_, callback] of accountToLoad.callbacks) {
|
|
241
254
|
try {
|
|
242
255
|
callback(buffer, slot);
|
|
@@ -15,7 +15,15 @@ import {
|
|
|
15
15
|
|
|
16
16
|
export class grpcAccountSubscriber<T> extends WebSocketAccountSubscriber<T> {
|
|
17
17
|
private client: Client;
|
|
18
|
-
private
|
|
18
|
+
private _stream?: ClientDuplexStream;
|
|
19
|
+
private get stream(): ClientDuplexStream {
|
|
20
|
+
if (!this._stream) {
|
|
21
|
+
throw new Error(
|
|
22
|
+
'grpcAccountSubscriber: stream accessed before subscribe()'
|
|
23
|
+
);
|
|
24
|
+
}
|
|
25
|
+
return this._stream;
|
|
26
|
+
}
|
|
19
27
|
private commitmentLevel: CommitmentLevel;
|
|
20
28
|
public listenerId?: number;
|
|
21
29
|
|
|
@@ -75,7 +83,7 @@ export class grpcAccountSubscriber<T> extends WebSocketAccountSubscriber<T> {
|
|
|
75
83
|
}
|
|
76
84
|
|
|
77
85
|
// Subscribe with grpc
|
|
78
|
-
this.
|
|
86
|
+
this._stream =
|
|
79
87
|
(await this.client.subscribe()) as unknown as typeof this.stream;
|
|
80
88
|
const request: SubscribeRequest = {
|
|
81
89
|
slots: {},
|
|
@@ -95,7 +103,7 @@ export class grpcAccountSubscriber<T> extends WebSocketAccountSubscriber<T> {
|
|
|
95
103
|
transactionsStatus: {},
|
|
96
104
|
};
|
|
97
105
|
this.stream.on('data', (chunk: SubscribeUpdate) => {
|
|
98
|
-
if (!chunk.account) {
|
|
106
|
+
if (!chunk.account || !chunk.account.account) {
|
|
99
107
|
return;
|
|
100
108
|
}
|
|
101
109
|
const slot = Number(chunk.account.slot);
|
|
@@ -38,7 +38,15 @@ function commitmentLevelToCommitment(
|
|
|
38
38
|
|
|
39
39
|
export class grpcMultiAccountSubscriber<T, U = undefined> {
|
|
40
40
|
private client: Client;
|
|
41
|
-
private
|
|
41
|
+
private _stream?: ClientDuplexStream;
|
|
42
|
+
private get stream(): ClientDuplexStream {
|
|
43
|
+
if (!this._stream) {
|
|
44
|
+
throw new Error(
|
|
45
|
+
'grpcMultiAccountSubscriber: stream accessed before subscribe()'
|
|
46
|
+
);
|
|
47
|
+
}
|
|
48
|
+
return this._stream;
|
|
49
|
+
}
|
|
42
50
|
private commitmentLevel: CommitmentLevel;
|
|
43
51
|
private program: VelocityProgram;
|
|
44
52
|
private accountName: string;
|
|
@@ -58,7 +66,12 @@ export class grpcMultiAccountSubscriber<T, U = undefined> {
|
|
|
58
66
|
private subscribedAccounts = new Set<string>();
|
|
59
67
|
private onChangeMap = new Map<
|
|
60
68
|
string,
|
|
61
|
-
(
|
|
69
|
+
(
|
|
70
|
+
data: T,
|
|
71
|
+
context: Context,
|
|
72
|
+
buffer: Buffer,
|
|
73
|
+
accountProps: U | undefined
|
|
74
|
+
) => void
|
|
62
75
|
>();
|
|
63
76
|
|
|
64
77
|
private dataMap = new Map<string, DataAndSlot<T>>();
|
|
@@ -82,7 +95,9 @@ export class grpcMultiAccountSubscriber<T, U = undefined> {
|
|
|
82
95
|
this.decodeBufferFn = decodeBuffer;
|
|
83
96
|
this.resubOpts = resubOpts;
|
|
84
97
|
this.onUnsubscribe = onUnsubscribe;
|
|
85
|
-
|
|
98
|
+
if (accountPropsMap) {
|
|
99
|
+
this.accountPropsMap = accountPropsMap;
|
|
100
|
+
}
|
|
86
101
|
}
|
|
87
102
|
|
|
88
103
|
public static async create<T, U = undefined>(
|
|
@@ -119,7 +134,7 @@ export class grpcMultiAccountSubscriber<T, U = undefined> {
|
|
|
119
134
|
}
|
|
120
135
|
|
|
121
136
|
setAccountData(accountPubkey: string, data: T, slot?: number): void {
|
|
122
|
-
this.dataMap.set(accountPubkey, { data, slot });
|
|
137
|
+
this.dataMap.set(accountPubkey, { data, slot: slot ?? 0 });
|
|
123
138
|
}
|
|
124
139
|
|
|
125
140
|
getAccountData(accountPubkey: string): DataAndSlot<T> | undefined {
|
|
@@ -205,7 +220,7 @@ export class grpcMultiAccountSubscriber<T, U = undefined> {
|
|
|
205
220
|
data: T,
|
|
206
221
|
context: Context,
|
|
207
222
|
buffer: Buffer,
|
|
208
|
-
accountProps: U
|
|
223
|
+
accountProps: U | undefined
|
|
209
224
|
) => void
|
|
210
225
|
): Promise<void> {
|
|
211
226
|
if (this.resubOpts?.logResubMessages) {
|
|
@@ -225,7 +240,7 @@ export class grpcMultiAccountSubscriber<T, U = undefined> {
|
|
|
225
240
|
});
|
|
226
241
|
}
|
|
227
242
|
|
|
228
|
-
this.
|
|
243
|
+
this._stream =
|
|
229
244
|
(await this.client.subscribe()) as unknown as typeof this.stream;
|
|
230
245
|
const request: SubscribeRequest = {
|
|
231
246
|
slots: {},
|
|
@@ -246,7 +261,7 @@ export class grpcMultiAccountSubscriber<T, U = undefined> {
|
|
|
246
261
|
};
|
|
247
262
|
|
|
248
263
|
this.stream.on('data', (chunk: SubscribeUpdate) => {
|
|
249
|
-
if (!chunk.account) {
|
|
264
|
+
if (!chunk.account || !chunk.account.account) {
|
|
250
265
|
return;
|
|
251
266
|
}
|
|
252
267
|
const slot = Number(chunk.account.slot);
|
|
@@ -300,11 +315,11 @@ export class grpcMultiAccountSubscriber<T, U = undefined> {
|
|
|
300
315
|
const handleDataBuffer = (
|
|
301
316
|
context: Context,
|
|
302
317
|
buffer: Buffer,
|
|
303
|
-
accountProps: U
|
|
318
|
+
accountProps: U | undefined
|
|
304
319
|
) => {
|
|
305
320
|
const data = this.decodeBufferFn
|
|
306
321
|
? this.decodeBufferFn(buffer, accountPubkey, accountProps)
|
|
307
|
-
: this.program.
|
|
322
|
+
: this.program.coder.accounts.decode(
|
|
308
323
|
this.capitalize(this.accountName),
|
|
309
324
|
buffer
|
|
310
325
|
);
|
|
@@ -15,7 +15,15 @@ import { grpcMultiAccountSubscriber } from './grpcMultiAccountSubscriber';
|
|
|
15
15
|
|
|
16
16
|
export class grpcMultiUserAccountSubscriber {
|
|
17
17
|
private program: VelocityProgram;
|
|
18
|
-
private
|
|
18
|
+
private _multiSubscriber?: grpcMultiAccountSubscriber<UserAccount>;
|
|
19
|
+
private get multiSubscriber(): grpcMultiAccountSubscriber<UserAccount> {
|
|
20
|
+
if (!this._multiSubscriber) {
|
|
21
|
+
throw new Error(
|
|
22
|
+
'grpcMultiUserAccountSubscriber: multiSubscriber accessed before subscribe()'
|
|
23
|
+
);
|
|
24
|
+
}
|
|
25
|
+
return this._multiSubscriber;
|
|
26
|
+
}
|
|
19
27
|
|
|
20
28
|
private userData = new Map<string, DataAndSlot<UserAccount>>();
|
|
21
29
|
private listeners = new Map<
|
|
@@ -56,14 +64,16 @@ export class grpcMultiUserAccountSubscriber {
|
|
|
56
64
|
multiSubscriber?: grpcMultiAccountSubscriber<UserAccount>
|
|
57
65
|
) {
|
|
58
66
|
this.program = program;
|
|
59
|
-
|
|
67
|
+
if (multiSubscriber) {
|
|
68
|
+
this._multiSubscriber = multiSubscriber;
|
|
69
|
+
}
|
|
60
70
|
this.grpcConfigs = grpcConfigs;
|
|
61
71
|
this.resubOpts = resubOpts;
|
|
62
72
|
}
|
|
63
73
|
|
|
64
74
|
public async subscribe(): Promise<void> {
|
|
65
|
-
if (!this.
|
|
66
|
-
this.
|
|
75
|
+
if (!this._multiSubscriber) {
|
|
76
|
+
this._multiSubscriber =
|
|
67
77
|
await grpcMultiAccountSubscriber.create<UserAccount>(
|
|
68
78
|
this.grpcConfigs,
|
|
69
79
|
'user',
|
|
@@ -189,14 +199,8 @@ export class grpcMultiUserAccountSubscriber {
|
|
|
189
199
|
isSubscribed = false;
|
|
190
200
|
},
|
|
191
201
|
|
|
192
|
-
getUserAccountAndSlot(): DataAndSlot<UserAccount> {
|
|
193
|
-
|
|
194
|
-
if (!das) {
|
|
195
|
-
throw new NotSubscribedError(
|
|
196
|
-
'Must subscribe before getting user account data'
|
|
197
|
-
);
|
|
198
|
-
}
|
|
199
|
-
return das;
|
|
202
|
+
getUserAccountAndSlot(): DataAndSlot<UserAccount> | undefined {
|
|
203
|
+
return parent.userData.get(key);
|
|
200
204
|
},
|
|
201
205
|
};
|
|
202
206
|
|
|
@@ -15,7 +15,15 @@ export class grpcProgramAccountSubscriber<
|
|
|
15
15
|
T,
|
|
16
16
|
> extends WebSocketProgramAccountSubscriber<T> {
|
|
17
17
|
private client: Client;
|
|
18
|
-
private
|
|
18
|
+
private _stream?: Awaited<ReturnType<Client['subscribe']>>;
|
|
19
|
+
private get stream(): Awaited<ReturnType<Client['subscribe']>> {
|
|
20
|
+
if (!this._stream) {
|
|
21
|
+
throw new Error(
|
|
22
|
+
'grpcProgramAccountSubscriber: stream accessed before subscribe()'
|
|
23
|
+
);
|
|
24
|
+
}
|
|
25
|
+
return this._stream;
|
|
26
|
+
}
|
|
19
27
|
private commitmentLevel: CommitmentLevel;
|
|
20
28
|
public listenerId?: number;
|
|
21
29
|
|
|
@@ -95,7 +103,7 @@ export class grpcProgramAccountSubscriber<
|
|
|
95
103
|
this.onChange = onChange;
|
|
96
104
|
|
|
97
105
|
// Subscribe with grpc
|
|
98
|
-
this.
|
|
106
|
+
this._stream = await this.client.subscribe();
|
|
99
107
|
|
|
100
108
|
const filters = this.options.filters.map((filter) => {
|
|
101
109
|
return {
|
|
@@ -125,7 +133,7 @@ export class grpcProgramAccountSubscriber<
|
|
|
125
133
|
};
|
|
126
134
|
|
|
127
135
|
this.stream.on('data', (chunk: SubscribeUpdate) => {
|
|
128
|
-
if (!chunk.account) {
|
|
136
|
+
if (!chunk.account || !chunk.account.account) {
|
|
129
137
|
return;
|
|
130
138
|
}
|
|
131
139
|
const slot = Number(chunk.account.slot);
|
|
@@ -135,9 +135,11 @@ export class grpcVelocityClientAccountSubscriber extends WebSocketVelocityClient
|
|
|
135
135
|
undefined,
|
|
136
136
|
this.resubOpts
|
|
137
137
|
);
|
|
138
|
-
|
|
139
|
-
this.initialSpotMarketAccountData
|
|
140
|
-
)
|
|
138
|
+
const initialSpotMarketData =
|
|
139
|
+
this.initialSpotMarketAccountData?.get(marketIndex);
|
|
140
|
+
if (initialSpotMarketData) {
|
|
141
|
+
accountSubscriber.setData(initialSpotMarketData);
|
|
142
|
+
}
|
|
141
143
|
await accountSubscriber.subscribe((data: SpotMarketAccount) => {
|
|
142
144
|
this.eventEmitter.emit('spotMarketAccountUpdate', data);
|
|
143
145
|
this.eventEmitter.emit('update');
|
|
@@ -160,9 +162,11 @@ export class grpcVelocityClientAccountSubscriber extends WebSocketVelocityClient
|
|
|
160
162
|
undefined,
|
|
161
163
|
this.resubOpts
|
|
162
164
|
);
|
|
163
|
-
|
|
164
|
-
this.initialPerpMarketAccountData
|
|
165
|
-
)
|
|
165
|
+
const initialPerpMarketData =
|
|
166
|
+
this.initialPerpMarketAccountData?.get(marketIndex);
|
|
167
|
+
if (initialPerpMarketData) {
|
|
168
|
+
accountSubscriber.setData(initialPerpMarketData);
|
|
169
|
+
}
|
|
166
170
|
await accountSubscriber.subscribe((data: PerpMarketAccount) => {
|
|
167
171
|
this.eventEmitter.emit('perpMarketAccountUpdate', data);
|
|
168
172
|
this.eventEmitter.emit('update');
|
|
@@ -178,6 +182,9 @@ export class grpcVelocityClientAccountSubscriber extends WebSocketVelocityClient
|
|
|
178
182
|
this.program.provider.connection,
|
|
179
183
|
this.program
|
|
180
184
|
);
|
|
185
|
+
if (!client) {
|
|
186
|
+
return false;
|
|
187
|
+
}
|
|
181
188
|
const accountSubscriber =
|
|
182
189
|
await grpcAccountSubscriber.create<OraclePriceData>(
|
|
183
190
|
this.grpcConfigs,
|
|
@@ -189,7 +196,10 @@ export class grpcVelocityClientAccountSubscriber extends WebSocketVelocityClient
|
|
|
189
196
|
},
|
|
190
197
|
this.resubOpts
|
|
191
198
|
);
|
|
192
|
-
|
|
199
|
+
const initialOraclePriceData = this.initialOraclePriceData?.get(oracleId);
|
|
200
|
+
if (initialOraclePriceData) {
|
|
201
|
+
accountSubscriber.setData(initialOraclePriceData);
|
|
202
|
+
}
|
|
193
203
|
await accountSubscriber.subscribe((data: OraclePriceData) => {
|
|
194
204
|
this.eventEmitter.emit(
|
|
195
205
|
'oraclePriceUpdate',
|