@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
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import StrictEventEmitter from 'strict-event-emitter-types';
|
|
2
2
|
import { EventEmitter } from 'events';
|
|
3
3
|
import { OracleInfo, OraclePriceData } from '../oracles/types';
|
|
4
|
-
import { PublicKey } from '@solana/web3.js';
|
|
4
|
+
import { AccountInfo, PublicKey } from '@solana/web3.js';
|
|
5
5
|
import { findAllMarketAndOracles, VelocityProgram } from '../config';
|
|
6
6
|
import {
|
|
7
7
|
getVelocityStateAccountPublicKey,
|
|
@@ -70,8 +70,8 @@ export class grpcVelocityClientAccountSubscriberV2
|
|
|
70
70
|
oracleClientCache = new OracleClientCache();
|
|
71
71
|
private resubOpts?: ResubOpts;
|
|
72
72
|
|
|
73
|
-
private
|
|
74
|
-
|
|
73
|
+
private subscriptionPromiseResolver: (val: boolean) => void = () => {};
|
|
74
|
+
private subscriptionPromise: Promise<boolean> = Promise.resolve(false);
|
|
75
75
|
|
|
76
76
|
constructor(
|
|
77
77
|
grpcConfigs: GrpcConfigs,
|
|
@@ -130,7 +130,9 @@ export class grpcVelocityClientAccountSubscriberV2
|
|
|
130
130
|
).flat();
|
|
131
131
|
this.initialPerpMarketAccountData = new Map(
|
|
132
132
|
perpMarketAccountInfos
|
|
133
|
-
.filter(
|
|
133
|
+
.filter(
|
|
134
|
+
(accountInfo): accountInfo is AccountInfo<Buffer> => !!accountInfo
|
|
135
|
+
)
|
|
134
136
|
.map((accountInfo) => {
|
|
135
137
|
const perpMarket = this.program.coder.accounts.decode(
|
|
136
138
|
'perpMarket',
|
|
@@ -158,7 +160,9 @@ export class grpcVelocityClientAccountSubscriberV2
|
|
|
158
160
|
).flat();
|
|
159
161
|
this.initialSpotMarketAccountData = new Map(
|
|
160
162
|
spotMarketAccountInfos
|
|
161
|
-
.filter(
|
|
163
|
+
.filter(
|
|
164
|
+
(accountInfo): accountInfo is AccountInfo<Buffer> => !!accountInfo
|
|
165
|
+
)
|
|
162
166
|
.map((accountInfo) => {
|
|
163
167
|
const spotMarket = this.program.coder.accounts.decode(
|
|
164
168
|
'spotMarket',
|
|
@@ -181,24 +185,31 @@ export class grpcVelocityClientAccountSubscriberV2
|
|
|
181
185
|
)
|
|
182
186
|
).flat();
|
|
183
187
|
this.initialOraclePriceData = new Map(
|
|
184
|
-
this.oracleInfos.reduce
|
|
185
|
-
|
|
188
|
+
this.oracleInfos.reduce<[string, OraclePriceData][]>(
|
|
189
|
+
(result, oracleInfo, i) => {
|
|
190
|
+
const oracleAccountInfo = oracleAccountInfos[i];
|
|
191
|
+
if (!oracleAccountInfo) {
|
|
192
|
+
return result;
|
|
193
|
+
}
|
|
194
|
+
const oracleClient = this.oracleClientCache.get(
|
|
195
|
+
oracleInfo.source,
|
|
196
|
+
connection,
|
|
197
|
+
this.program
|
|
198
|
+
);
|
|
199
|
+
if (!oracleClient) {
|
|
200
|
+
return result;
|
|
201
|
+
}
|
|
202
|
+
const oraclePriceData = oracleClient.getOraclePriceDataFromBuffer(
|
|
203
|
+
oracleAccountInfo.data
|
|
204
|
+
);
|
|
205
|
+
result.push([
|
|
206
|
+
getOracleId(oracleInfo.publicKey, oracleInfo.source),
|
|
207
|
+
oraclePriceData,
|
|
208
|
+
]);
|
|
186
209
|
return result;
|
|
187
|
-
}
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
connection,
|
|
191
|
-
this.program
|
|
192
|
-
);
|
|
193
|
-
const oraclePriceData = oracleClient.getOraclePriceDataFromBuffer(
|
|
194
|
-
oracleAccountInfos[i].data
|
|
195
|
-
);
|
|
196
|
-
result.push([
|
|
197
|
-
getOracleId(oracleInfo.publicKey, oracleInfo.source),
|
|
198
|
-
oraclePriceData,
|
|
199
|
-
]);
|
|
200
|
-
return result;
|
|
201
|
-
}, [])
|
|
210
|
+
},
|
|
211
|
+
[]
|
|
212
|
+
)
|
|
202
213
|
);
|
|
203
214
|
}
|
|
204
215
|
|
|
@@ -334,7 +345,7 @@ export class grpcVelocityClientAccountSubscriberV2
|
|
|
334
345
|
|
|
335
346
|
public getStateAccountAndSlot(): DataAndSlot<StateAccount> {
|
|
336
347
|
this.assertIsSubscribed();
|
|
337
|
-
return this.stateAccountSubscriber
|
|
348
|
+
return this.stateAccountSubscriber!.dataAndSlot!;
|
|
338
349
|
}
|
|
339
350
|
|
|
340
351
|
public getMarketAccountsAndSlots(): DataAndSlot<PerpMarketAccount>[] {
|
|
@@ -350,17 +361,23 @@ export class grpcVelocityClientAccountSubscriberV2
|
|
|
350
361
|
getMarketAccountAndSlot(
|
|
351
362
|
marketIndex: number
|
|
352
363
|
): DataAndSlot<PerpMarketAccount> | undefined {
|
|
353
|
-
|
|
354
|
-
this.perpMarketIndexToAccountPubkeyMap.get(marketIndex)
|
|
355
|
-
)
|
|
364
|
+
const accountPubkey =
|
|
365
|
+
this.perpMarketIndexToAccountPubkeyMap.get(marketIndex);
|
|
366
|
+
if (!accountPubkey) {
|
|
367
|
+
return undefined;
|
|
368
|
+
}
|
|
369
|
+
return this.perpMarketsSubscriber?.getAccountData(accountPubkey);
|
|
356
370
|
}
|
|
357
371
|
|
|
358
372
|
getSpotMarketAccountAndSlot(
|
|
359
373
|
marketIndex: number
|
|
360
374
|
): DataAndSlot<SpotMarketAccount> | undefined {
|
|
361
|
-
|
|
362
|
-
this.spotMarketIndexToAccountPubkeyMap.get(marketIndex)
|
|
363
|
-
)
|
|
375
|
+
const accountPubkey =
|
|
376
|
+
this.spotMarketIndexToAccountPubkeyMap.get(marketIndex);
|
|
377
|
+
if (!accountPubkey) {
|
|
378
|
+
return undefined;
|
|
379
|
+
}
|
|
380
|
+
return this.spotMarketsSubscriber?.getAccountData(accountPubkey);
|
|
364
381
|
}
|
|
365
382
|
|
|
366
383
|
public getOraclePriceDataAndSlot(
|
|
@@ -382,8 +399,8 @@ export class grpcVelocityClientAccountSubscriberV2
|
|
|
382
399
|
return undefined;
|
|
383
400
|
}
|
|
384
401
|
|
|
385
|
-
if (!perpMarketAccount.data.oracle.equals(oracle)) {
|
|
386
|
-
// If the oracle has changed
|
|
402
|
+
if (!oracle || !perpMarketAccount.data.oracle.equals(oracle)) {
|
|
403
|
+
// If the oracle has changed (or not yet cached), update the oracle map in background
|
|
387
404
|
this.setPerpOracleMap();
|
|
388
405
|
}
|
|
389
406
|
|
|
@@ -400,8 +417,8 @@ export class grpcVelocityClientAccountSubscriberV2
|
|
|
400
417
|
return undefined;
|
|
401
418
|
}
|
|
402
419
|
|
|
403
|
-
if (!spotMarketAccount.data.oracle.equals(oracle)) {
|
|
404
|
-
// If the oracle has changed
|
|
420
|
+
if (!oracle || !spotMarketAccount.data.oracle.equals(oracle)) {
|
|
421
|
+
// If the oracle has changed (or not yet cached), update the oracle map in background
|
|
405
422
|
this.setSpotOracleMap();
|
|
406
423
|
}
|
|
407
424
|
|
|
@@ -410,7 +427,7 @@ export class grpcVelocityClientAccountSubscriberV2
|
|
|
410
427
|
|
|
411
428
|
async setPerpOracleMap() {
|
|
412
429
|
const perpMarketsMap = this.perpMarketsSubscriber?.getAccountDataMap();
|
|
413
|
-
const perpMarkets = Array.from(perpMarketsMap
|
|
430
|
+
const perpMarkets = Array.from(perpMarketsMap?.values() ?? []);
|
|
414
431
|
const addOraclePromises = [];
|
|
415
432
|
for (const perpMarket of perpMarkets) {
|
|
416
433
|
if (!perpMarket || !perpMarket.data) {
|
|
@@ -436,7 +453,7 @@ export class grpcVelocityClientAccountSubscriberV2
|
|
|
436
453
|
|
|
437
454
|
async setSpotOracleMap() {
|
|
438
455
|
const spotMarketsMap = this.spotMarketsSubscriber?.getAccountDataMap();
|
|
439
|
-
const spotMarkets = Array.from(spotMarketsMap
|
|
456
|
+
const spotMarkets = Array.from(spotMarketsMap?.values() ?? []);
|
|
440
457
|
const addOraclePromises = [];
|
|
441
458
|
for (const spotMarket of spotMarkets) {
|
|
442
459
|
if (!spotMarket || !spotMarket.data) {
|
|
@@ -604,7 +621,7 @@ export class grpcVelocityClientAccountSubscriberV2
|
|
|
604
621
|
if (!oraclePubkeyToInfosMap.has(pubkey)) {
|
|
605
622
|
oraclePubkeyToInfosMap.set(pubkey, []);
|
|
606
623
|
}
|
|
607
|
-
oraclePubkeyToInfosMap.get(pubkey)
|
|
624
|
+
oraclePubkeyToInfosMap.get(pubkey)!.push(info);
|
|
608
625
|
}
|
|
609
626
|
|
|
610
627
|
const oraclePubkeys = Array.from(
|
|
@@ -623,11 +640,18 @@ export class grpcVelocityClientAccountSubscriberV2
|
|
|
623
640
|
throw new Error('Oracle pubkey missing in decode');
|
|
624
641
|
}
|
|
625
642
|
|
|
643
|
+
if (!accountProps) {
|
|
644
|
+
throw new Error('Oracle accountProps missing in decode');
|
|
645
|
+
}
|
|
646
|
+
|
|
626
647
|
const client = this.oracleClientCache.get(
|
|
627
648
|
accountProps.source,
|
|
628
649
|
this.program.provider.connection,
|
|
629
650
|
this.program
|
|
630
651
|
);
|
|
652
|
+
if (!client) {
|
|
653
|
+
throw new Error('Oracle client missing in decode');
|
|
654
|
+
}
|
|
631
655
|
const price = client.getOraclePriceDataFromBuffer(buffer);
|
|
632
656
|
return price;
|
|
633
657
|
},
|
|
@@ -660,6 +684,9 @@ export class grpcVelocityClientAccountSubscriberV2
|
|
|
660
684
|
await this.oracleMultiSubscriber.subscribe(
|
|
661
685
|
oraclePubkeys,
|
|
662
686
|
(accountId, data, context, _b, accountProps) => {
|
|
687
|
+
if (accountProps === undefined) {
|
|
688
|
+
return;
|
|
689
|
+
}
|
|
663
690
|
const oracleId = getOracleId(accountId, accountProps.source);
|
|
664
691
|
this.oracleIdToOracleDataMap.set(oracleId, {
|
|
665
692
|
data,
|
|
@@ -698,21 +725,21 @@ export class grpcVelocityClientAccountSubscriberV2
|
|
|
698
725
|
this.perpMarketIndexToAccountPubkeyMap.get(marketIndex);
|
|
699
726
|
return pubkeyString ? new PublicKey(pubkeyString) : null;
|
|
700
727
|
})
|
|
701
|
-
.filter((pubkey) => pubkey !== null)
|
|
728
|
+
.filter((pubkey): pubkey is PublicKey => pubkey !== null);
|
|
702
729
|
|
|
703
730
|
// Build array of oracle pubkeys to remove
|
|
704
731
|
const oraclePubkeysToRemove = oracles.map((oracle) => oracle.publicKey);
|
|
705
732
|
|
|
706
733
|
// Remove accounts in batches - perp markets
|
|
707
734
|
if (perpMarketPubkeysToRemove.length > 0) {
|
|
708
|
-
await this.perpMarketsSubscriber
|
|
735
|
+
await this.perpMarketsSubscriber?.removeAccounts(
|
|
709
736
|
perpMarketPubkeysToRemove
|
|
710
737
|
);
|
|
711
738
|
}
|
|
712
739
|
|
|
713
740
|
// Remove accounts in batches - oracles
|
|
714
741
|
if (oraclePubkeysToRemove.length > 0) {
|
|
715
|
-
await this.oracleMultiSubscriber
|
|
742
|
+
await this.oracleMultiSubscriber?.removeAccounts(oraclePubkeysToRemove);
|
|
716
743
|
}
|
|
717
744
|
}
|
|
718
745
|
|
|
@@ -152,6 +152,9 @@ export class LaserstreamProgramAccountSubscriber<
|
|
|
152
152
|
if (update.account) {
|
|
153
153
|
const slot = Number(update.account.slot);
|
|
154
154
|
const acc = update.account.account;
|
|
155
|
+
if (!acc) {
|
|
156
|
+
return;
|
|
157
|
+
}
|
|
155
158
|
|
|
156
159
|
const accountInfo = {
|
|
157
160
|
owner: new PublicKey(acc.owner),
|
|
@@ -30,7 +30,7 @@ export class OneShotUserAccountSubscriber
|
|
|
30
30
|
|
|
31
31
|
async subscribe(userAccount?: UserAccount): Promise<boolean> {
|
|
32
32
|
if (userAccount) {
|
|
33
|
-
this.user = { data: userAccount, slot: this.user
|
|
33
|
+
this.user = { data: userAccount, slot: this.user?.slot ?? 0 };
|
|
34
34
|
return true;
|
|
35
35
|
}
|
|
36
36
|
|
|
@@ -42,7 +42,7 @@ export class OneShotUserAccountSubscriber
|
|
|
42
42
|
}
|
|
43
43
|
|
|
44
44
|
async fetchIfUnloaded(): Promise<void> {
|
|
45
|
-
if (this.user
|
|
45
|
+
if (!this.user) {
|
|
46
46
|
await this.fetch();
|
|
47
47
|
}
|
|
48
48
|
}
|
|
@@ -60,7 +60,9 @@ export class OneShotUserAccountSubscriber
|
|
|
60
60
|
}
|
|
61
61
|
} catch (e) {
|
|
62
62
|
console.error(
|
|
63
|
-
`OneShotUserAccountSubscriber.fetch() UserAccount does not exist: ${
|
|
63
|
+
`OneShotUserAccountSubscriber.fetch() UserAccount does not exist: ${
|
|
64
|
+
e instanceof Error ? e.message : String(e)
|
|
65
|
+
}`
|
|
64
66
|
);
|
|
65
67
|
}
|
|
66
68
|
}
|
|
@@ -30,7 +30,10 @@ export class OneShotUserStatsAccountSubscriber
|
|
|
30
30
|
|
|
31
31
|
async subscribe(userStatsAccount?: UserStatsAccount): Promise<boolean> {
|
|
32
32
|
if (userStatsAccount) {
|
|
33
|
-
this.userStats = {
|
|
33
|
+
this.userStats = {
|
|
34
|
+
data: userStatsAccount,
|
|
35
|
+
slot: this.userStats?.slot ?? 0,
|
|
36
|
+
};
|
|
34
37
|
return true;
|
|
35
38
|
}
|
|
36
39
|
|
|
@@ -42,7 +45,7 @@ export class OneShotUserStatsAccountSubscriber
|
|
|
42
45
|
}
|
|
43
46
|
|
|
44
47
|
async fetchIfUnloaded(): Promise<void> {
|
|
45
|
-
if (this.userStats
|
|
48
|
+
if (!this.userStats) {
|
|
46
49
|
await this.fetch();
|
|
47
50
|
}
|
|
48
51
|
}
|
|
@@ -63,7 +66,9 @@ export class OneShotUserStatsAccountSubscriber
|
|
|
63
66
|
}
|
|
64
67
|
} catch (e) {
|
|
65
68
|
console.error(
|
|
66
|
-
`OneShotUserStatsAccountSubscriber.fetch() UserStatsAccount does not exist: ${
|
|
69
|
+
`OneShotUserStatsAccountSubscriber.fetch() UserStatsAccount does not exist: ${
|
|
70
|
+
e instanceof Error ? e.message : String(e)
|
|
71
|
+
}`
|
|
67
72
|
);
|
|
68
73
|
}
|
|
69
74
|
}
|
|
@@ -48,7 +48,7 @@ export class PollingInsuranceFundStakeAccountSubscriber
|
|
|
48
48
|
if (insuranceFundStake) {
|
|
49
49
|
this.insuranceFundStakeAccountAndSlot = {
|
|
50
50
|
data: insuranceFundStake,
|
|
51
|
-
slot:
|
|
51
|
+
slot: 0,
|
|
52
52
|
};
|
|
53
53
|
}
|
|
54
54
|
|
|
@@ -97,7 +97,7 @@ export class PollingInsuranceFundStakeAccountSubscriber
|
|
|
97
97
|
}
|
|
98
98
|
|
|
99
99
|
async fetchIfUnloaded(): Promise<void> {
|
|
100
|
-
if (this.
|
|
100
|
+
if (!this.doesAccountExist()) {
|
|
101
101
|
await this.fetch();
|
|
102
102
|
}
|
|
103
103
|
}
|
|
@@ -121,12 +121,16 @@ export class PollingInsuranceFundStakeAccountSubscriber
|
|
|
121
121
|
}
|
|
122
122
|
} catch (e) {
|
|
123
123
|
console.log(
|
|
124
|
-
`PollingInsuranceFundStakeAccountSubscriber.fetch() InsuranceFundStake does not exist: ${
|
|
124
|
+
`PollingInsuranceFundStakeAccountSubscriber.fetch() InsuranceFundStake does not exist: ${
|
|
125
|
+
e instanceof Error ? e.message : String(e)
|
|
126
|
+
}`
|
|
125
127
|
);
|
|
126
128
|
}
|
|
127
129
|
}
|
|
128
130
|
|
|
129
|
-
doesAccountExist():
|
|
131
|
+
doesAccountExist(): this is {
|
|
132
|
+
insuranceFundStakeAccountAndSlot: DataAndSlot<InsuranceFundStake>;
|
|
133
|
+
} {
|
|
130
134
|
return this.insuranceFundStakeAccountAndSlot !== undefined;
|
|
131
135
|
}
|
|
132
136
|
|
|
@@ -155,7 +159,9 @@ export class PollingInsuranceFundStakeAccountSubscriber
|
|
|
155
159
|
}
|
|
156
160
|
}
|
|
157
161
|
|
|
158
|
-
public getInsuranceFundStakeAccountAndSlot():
|
|
162
|
+
public getInsuranceFundStakeAccountAndSlot():
|
|
163
|
+
| DataAndSlot<InsuranceFundStake>
|
|
164
|
+
| undefined {
|
|
159
165
|
this.assertIsSubscribed();
|
|
160
166
|
return this.insuranceFundStakeAccountAndSlot;
|
|
161
167
|
}
|
|
@@ -9,11 +9,9 @@ import { EventEmitter } from 'events';
|
|
|
9
9
|
import { PublicKey } from '@solana/web3.js';
|
|
10
10
|
import { BulkAccountLoader } from './bulkAccountLoader';
|
|
11
11
|
import { OracleClient, OraclePriceData } from '../oracles/types';
|
|
12
|
-
import { VelocityProgram } from '../config';
|
|
13
12
|
|
|
14
13
|
export class PollingOracleAccountSubscriber implements OracleAccountSubscriber {
|
|
15
14
|
isSubscribed: boolean;
|
|
16
|
-
program: VelocityProgram;
|
|
17
15
|
eventEmitter: StrictEventEmitter<EventEmitter, OracleEvents>;
|
|
18
16
|
publicKey: PublicKey;
|
|
19
17
|
|
|
@@ -83,9 +81,14 @@ export class PollingOracleAccountSubscriber implements OracleAccountSubscriber {
|
|
|
83
81
|
|
|
84
82
|
async fetch(): Promise<void> {
|
|
85
83
|
await this.accountLoader.load();
|
|
86
|
-
const
|
|
87
|
-
|
|
88
|
-
|
|
84
|
+
const bufferAndSlot = this.accountLoader.getBufferAndSlot(this.publicKey);
|
|
85
|
+
if (!bufferAndSlot) {
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
const { buffer, slot } = bufferAndSlot;
|
|
89
|
+
if (!buffer) {
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
89
92
|
this.oraclePriceData = {
|
|
90
93
|
data: await this.oracleClient.getOraclePriceDataFromBuffer(buffer),
|
|
91
94
|
slot,
|
|
@@ -97,11 +100,15 @@ export class PollingOracleAccountSubscriber implements OracleAccountSubscriber {
|
|
|
97
100
|
return;
|
|
98
101
|
}
|
|
99
102
|
|
|
100
|
-
|
|
101
|
-
|
|
103
|
+
if (this.callbackId) {
|
|
104
|
+
this.accountLoader.removeAccount(this.publicKey, this.callbackId);
|
|
105
|
+
this.callbackId = undefined;
|
|
106
|
+
}
|
|
102
107
|
|
|
103
|
-
|
|
104
|
-
|
|
108
|
+
if (this.errorCallbackId) {
|
|
109
|
+
this.accountLoader.removeErrorCallbacks(this.errorCallbackId);
|
|
110
|
+
this.errorCallbackId = undefined;
|
|
111
|
+
}
|
|
105
112
|
|
|
106
113
|
this.isSubscribed = false;
|
|
107
114
|
}
|
|
@@ -116,7 +123,7 @@ export class PollingOracleAccountSubscriber implements OracleAccountSubscriber {
|
|
|
116
123
|
|
|
117
124
|
public getOraclePriceData(): DataAndSlot<OraclePriceData> {
|
|
118
125
|
this.assertIsSubscribed();
|
|
119
|
-
return this.oraclePriceData
|
|
126
|
+
return this.oraclePriceData!;
|
|
120
127
|
}
|
|
121
128
|
|
|
122
129
|
didSubscriptionSucceed(): boolean {
|
|
@@ -10,11 +10,9 @@ import { PublicKey } from '@solana/web3.js';
|
|
|
10
10
|
import { BulkAccountLoader } from './bulkAccountLoader';
|
|
11
11
|
import { Account } from '@solana/spl-token';
|
|
12
12
|
import { parseTokenAccount } from '../token';
|
|
13
|
-
import { VelocityProgram } from '../config';
|
|
14
13
|
|
|
15
14
|
export class PollingTokenAccountSubscriber implements TokenAccountSubscriber {
|
|
16
15
|
isSubscribed: boolean;
|
|
17
|
-
program: VelocityProgram;
|
|
18
16
|
eventEmitter: StrictEventEmitter<EventEmitter, TokenAccountEvents>;
|
|
19
17
|
publicKey: PublicKey;
|
|
20
18
|
|
|
@@ -76,9 +74,14 @@ export class PollingTokenAccountSubscriber implements TokenAccountSubscriber {
|
|
|
76
74
|
|
|
77
75
|
async fetch(): Promise<void> {
|
|
78
76
|
await this.accountLoader.load();
|
|
79
|
-
const
|
|
80
|
-
|
|
81
|
-
|
|
77
|
+
const bufferAndSlot = this.accountLoader.getBufferAndSlot(this.publicKey);
|
|
78
|
+
if (!bufferAndSlot) {
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
const { buffer, slot } = bufferAndSlot;
|
|
82
|
+
if (!buffer) {
|
|
83
|
+
return;
|
|
84
|
+
}
|
|
82
85
|
this.tokenAccountAndSlot = {
|
|
83
86
|
data: parseTokenAccount(buffer, this.publicKey),
|
|
84
87
|
slot,
|
|
@@ -90,11 +93,15 @@ export class PollingTokenAccountSubscriber implements TokenAccountSubscriber {
|
|
|
90
93
|
return;
|
|
91
94
|
}
|
|
92
95
|
|
|
93
|
-
|
|
94
|
-
|
|
96
|
+
if (this.callbackId) {
|
|
97
|
+
this.accountLoader.removeAccount(this.publicKey, this.callbackId);
|
|
98
|
+
this.callbackId = undefined;
|
|
99
|
+
}
|
|
95
100
|
|
|
96
|
-
|
|
97
|
-
|
|
101
|
+
if (this.errorCallbackId) {
|
|
102
|
+
this.accountLoader.removeErrorCallbacks(this.errorCallbackId);
|
|
103
|
+
this.errorCallbackId = undefined;
|
|
104
|
+
}
|
|
98
105
|
|
|
99
106
|
this.isSubscribed = false;
|
|
100
107
|
}
|
|
@@ -109,7 +116,7 @@ export class PollingTokenAccountSubscriber implements TokenAccountSubscriber {
|
|
|
109
116
|
|
|
110
117
|
public getTokenAccountAndSlot(): DataAndSlot<Account> {
|
|
111
118
|
this.assertIsSubscribed();
|
|
112
|
-
return this.tokenAccountAndSlot
|
|
119
|
+
return this.tokenAccountAndSlot!;
|
|
113
120
|
}
|
|
114
121
|
|
|
115
122
|
didSubscriptionSucceed(): boolean {
|
|
@@ -21,7 +21,7 @@ export class PollingUserAccountSubscriber implements UserAccountSubscriber {
|
|
|
21
21
|
callbackId?: string;
|
|
22
22
|
errorCallbackId?: string;
|
|
23
23
|
|
|
24
|
-
decode: (name, buffer) => UserAccount;
|
|
24
|
+
decode: (name: string, buffer: Buffer) => UserAccount;
|
|
25
25
|
|
|
26
26
|
user?: DataAndSlot<UserAccount>;
|
|
27
27
|
|
|
@@ -29,7 +29,7 @@ export class PollingUserAccountSubscriber implements UserAccountSubscriber {
|
|
|
29
29
|
connection: Connection,
|
|
30
30
|
userAccountPublicKey: PublicKey,
|
|
31
31
|
accountLoader: BulkAccountLoader,
|
|
32
|
-
decode: (name, buffer) => UserAccount
|
|
32
|
+
decode: (name: string, buffer: Buffer) => UserAccount
|
|
33
33
|
) {
|
|
34
34
|
this.isSubscribed = false;
|
|
35
35
|
this.connection = connection;
|
|
@@ -45,7 +45,9 @@ export class PollingUserAccountSubscriber implements UserAccountSubscriber {
|
|
|
45
45
|
}
|
|
46
46
|
|
|
47
47
|
if (userAccount) {
|
|
48
|
-
|
|
48
|
+
// `slot: 0` keeps {data, slot} atomic: a seeded account always carries a
|
|
49
|
+
// slot (0 = oldest-possible sentinel, overwritten by the first real fetch).
|
|
50
|
+
this.user = { data: userAccount, slot: 0 };
|
|
49
51
|
}
|
|
50
52
|
|
|
51
53
|
await this.addToAccountLoader();
|
|
@@ -88,7 +90,7 @@ export class PollingUserAccountSubscriber implements UserAccountSubscriber {
|
|
|
88
90
|
}
|
|
89
91
|
|
|
90
92
|
async fetchIfUnloaded(): Promise<void> {
|
|
91
|
-
if (this.
|
|
93
|
+
if (!this.doesAccountExist()) {
|
|
92
94
|
await this.fetch();
|
|
93
95
|
}
|
|
94
96
|
}
|
|
@@ -99,20 +101,24 @@ export class PollingUserAccountSubscriber implements UserAccountSubscriber {
|
|
|
99
101
|
this.userAccountPublicKey,
|
|
100
102
|
this.accountLoader.commitment
|
|
101
103
|
);
|
|
102
|
-
if (
|
|
104
|
+
if (
|
|
105
|
+
dataAndContext.value !== null &&
|
|
106
|
+
dataAndContext.context.slot > (this.user?.slot ?? 0)
|
|
107
|
+
) {
|
|
103
108
|
this.user = {
|
|
104
109
|
data: this.decode('user', dataAndContext.value.data),
|
|
105
110
|
slot: dataAndContext.context.slot,
|
|
106
111
|
};
|
|
107
112
|
}
|
|
108
113
|
} catch (e) {
|
|
114
|
+
const err = e instanceof Error ? e : new Error(String(e));
|
|
109
115
|
console.log(
|
|
110
|
-
`PollingUserAccountSubscriber.fetch() UserAccount does not exist: ${
|
|
116
|
+
`PollingUserAccountSubscriber.fetch() UserAccount does not exist: ${err.message}-${err.stack}`
|
|
111
117
|
);
|
|
112
118
|
}
|
|
113
119
|
}
|
|
114
120
|
|
|
115
|
-
doesAccountExist():
|
|
121
|
+
doesAccountExist(): this is { user: DataAndSlot<UserAccount> } {
|
|
116
122
|
return this.user !== undefined;
|
|
117
123
|
}
|
|
118
124
|
|
|
@@ -121,14 +127,18 @@ export class PollingUserAccountSubscriber implements UserAccountSubscriber {
|
|
|
121
127
|
return;
|
|
122
128
|
}
|
|
123
129
|
|
|
124
|
-
this.
|
|
125
|
-
this.
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
130
|
+
if (this.callbackId) {
|
|
131
|
+
this.accountLoader.removeAccount(
|
|
132
|
+
this.userAccountPublicKey,
|
|
133
|
+
this.callbackId
|
|
134
|
+
);
|
|
135
|
+
this.callbackId = undefined;
|
|
136
|
+
}
|
|
129
137
|
|
|
130
|
-
|
|
131
|
-
|
|
138
|
+
if (this.errorCallbackId) {
|
|
139
|
+
this.accountLoader.removeErrorCallbacks(this.errorCallbackId);
|
|
140
|
+
this.errorCallbackId = undefined;
|
|
141
|
+
}
|
|
132
142
|
|
|
133
143
|
this.isSubscribed = false;
|
|
134
144
|
}
|
|
@@ -141,12 +151,8 @@ export class PollingUserAccountSubscriber implements UserAccountSubscriber {
|
|
|
141
151
|
}
|
|
142
152
|
}
|
|
143
153
|
|
|
144
|
-
public getUserAccountAndSlot(): DataAndSlot<UserAccount> {
|
|
145
|
-
|
|
146
|
-
throw new NotSubscribedError(
|
|
147
|
-
'You must call `subscribe` or `fetch` before using this function'
|
|
148
|
-
);
|
|
149
|
-
}
|
|
154
|
+
public getUserAccountAndSlot(): DataAndSlot<UserAccount> | undefined {
|
|
155
|
+
this.assertIsSubscribed();
|
|
150
156
|
return this.user;
|
|
151
157
|
}
|
|
152
158
|
|
|
@@ -43,7 +43,9 @@ export class PollingUserStatsAccountSubscriber
|
|
|
43
43
|
}
|
|
44
44
|
|
|
45
45
|
if (userStatsAccount) {
|
|
46
|
-
|
|
46
|
+
// `slot: 0` keeps {data, slot} atomic: a seeded account always carries a
|
|
47
|
+
// slot (0 = oldest-possible sentinel, overwritten by the first real fetch).
|
|
48
|
+
this.userStats = { data: userStatsAccount, slot: 0 };
|
|
47
49
|
}
|
|
48
50
|
|
|
49
51
|
await this.addToAccountLoader();
|
|
@@ -90,7 +92,7 @@ export class PollingUserStatsAccountSubscriber
|
|
|
90
92
|
}
|
|
91
93
|
|
|
92
94
|
async fetchIfUnloaded(): Promise<void> {
|
|
93
|
-
if (this.
|
|
95
|
+
if (!this.doesAccountExist()) {
|
|
94
96
|
await this.fetch();
|
|
95
97
|
}
|
|
96
98
|
}
|
|
@@ -111,12 +113,14 @@ export class PollingUserStatsAccountSubscriber
|
|
|
111
113
|
}
|
|
112
114
|
} catch (e) {
|
|
113
115
|
console.log(
|
|
114
|
-
`PollingUserStatsAccountSubscriber.fetch() UserStatsAccount does not exist: ${
|
|
116
|
+
`PollingUserStatsAccountSubscriber.fetch() UserStatsAccount does not exist: ${
|
|
117
|
+
e instanceof Error ? e.message : String(e)
|
|
118
|
+
}`
|
|
115
119
|
);
|
|
116
120
|
}
|
|
117
121
|
}
|
|
118
122
|
|
|
119
|
-
doesAccountExist():
|
|
123
|
+
doesAccountExist(): this is { userStats: DataAndSlot<UserStatsAccount> } {
|
|
120
124
|
return this.userStats !== undefined;
|
|
121
125
|
}
|
|
122
126
|
|
|
@@ -145,12 +149,10 @@ export class PollingUserStatsAccountSubscriber
|
|
|
145
149
|
}
|
|
146
150
|
}
|
|
147
151
|
|
|
148
|
-
public getUserStatsAccountAndSlot():
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
);
|
|
153
|
-
}
|
|
152
|
+
public getUserStatsAccountAndSlot():
|
|
153
|
+
| DataAndSlot<UserStatsAccount>
|
|
154
|
+
| undefined {
|
|
155
|
+
this.assertIsSubscribed();
|
|
154
156
|
return this.userStats;
|
|
155
157
|
}
|
|
156
158
|
}
|