@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
|
@@ -14,8 +14,9 @@ class OneShotUserAccountSubscriber extends basicUserAccountSubscriber_1.BasicUse
|
|
|
14
14
|
this.commitment = commitment !== null && commitment !== void 0 ? commitment : 'confirmed';
|
|
15
15
|
}
|
|
16
16
|
async subscribe(userAccount) {
|
|
17
|
+
var _a, _b;
|
|
17
18
|
if (userAccount) {
|
|
18
|
-
this.user = { data: userAccount, slot: this.user.slot };
|
|
19
|
+
this.user = { data: userAccount, slot: (_b = (_a = this.user) === null || _a === void 0 ? void 0 : _a.slot) !== null && _b !== void 0 ? _b : 0 };
|
|
19
20
|
return true;
|
|
20
21
|
}
|
|
21
22
|
await this.fetchIfUnloaded();
|
|
@@ -25,7 +26,7 @@ class OneShotUserAccountSubscriber extends basicUserAccountSubscriber_1.BasicUse
|
|
|
25
26
|
return true;
|
|
26
27
|
}
|
|
27
28
|
async fetchIfUnloaded() {
|
|
28
|
-
if (this.user
|
|
29
|
+
if (!this.user) {
|
|
29
30
|
await this.fetch();
|
|
30
31
|
}
|
|
31
32
|
}
|
|
@@ -41,7 +42,7 @@ class OneShotUserAccountSubscriber extends basicUserAccountSubscriber_1.BasicUse
|
|
|
41
42
|
}
|
|
42
43
|
}
|
|
43
44
|
catch (e) {
|
|
44
|
-
console.error(`OneShotUserAccountSubscriber.fetch() UserAccount does not exist: ${e.message}`);
|
|
45
|
+
console.error(`OneShotUserAccountSubscriber.fetch() UserAccount does not exist: ${e instanceof Error ? e.message : String(e)}`);
|
|
45
46
|
}
|
|
46
47
|
}
|
|
47
48
|
}
|
|
@@ -14,8 +14,12 @@ class OneShotUserStatsAccountSubscriber extends basicUserStatsAccountSubscriber_
|
|
|
14
14
|
this.commitment = commitment !== null && commitment !== void 0 ? commitment : 'confirmed';
|
|
15
15
|
}
|
|
16
16
|
async subscribe(userStatsAccount) {
|
|
17
|
+
var _a, _b;
|
|
17
18
|
if (userStatsAccount) {
|
|
18
|
-
this.userStats = {
|
|
19
|
+
this.userStats = {
|
|
20
|
+
data: userStatsAccount,
|
|
21
|
+
slot: (_b = (_a = this.userStats) === null || _a === void 0 ? void 0 : _a.slot) !== null && _b !== void 0 ? _b : 0,
|
|
22
|
+
};
|
|
19
23
|
return true;
|
|
20
24
|
}
|
|
21
25
|
await this.fetchIfUnloaded();
|
|
@@ -25,7 +29,7 @@ class OneShotUserStatsAccountSubscriber extends basicUserStatsAccountSubscriber_
|
|
|
25
29
|
return true;
|
|
26
30
|
}
|
|
27
31
|
async fetchIfUnloaded() {
|
|
28
|
-
if (this.userStats
|
|
32
|
+
if (!this.userStats) {
|
|
29
33
|
await this.fetch();
|
|
30
34
|
}
|
|
31
35
|
}
|
|
@@ -41,7 +45,7 @@ class OneShotUserStatsAccountSubscriber extends basicUserStatsAccountSubscriber_
|
|
|
41
45
|
}
|
|
42
46
|
}
|
|
43
47
|
catch (e) {
|
|
44
|
-
console.error(`OneShotUserStatsAccountSubscriber.fetch() UserStatsAccount does not exist: ${e.message}`);
|
|
48
|
+
console.error(`OneShotUserStatsAccountSubscriber.fetch() UserStatsAccount does not exist: ${e instanceof Error ? e.message : String(e)}`);
|
|
45
49
|
}
|
|
46
50
|
}
|
|
47
51
|
}
|
|
@@ -20,10 +20,12 @@ export declare class PollingInsuranceFundStakeAccountSubscriber implements Insur
|
|
|
20
20
|
addToAccountLoader(): Promise<void>;
|
|
21
21
|
fetchIfUnloaded(): Promise<void>;
|
|
22
22
|
fetch(): Promise<void>;
|
|
23
|
-
doesAccountExist():
|
|
23
|
+
doesAccountExist(): this is {
|
|
24
|
+
insuranceFundStakeAccountAndSlot: DataAndSlot<InsuranceFundStake>;
|
|
25
|
+
};
|
|
24
26
|
unsubscribe(): Promise<void>;
|
|
25
27
|
assertIsSubscribed(): void;
|
|
26
|
-
getInsuranceFundStakeAccountAndSlot(): DataAndSlot<InsuranceFundStake
|
|
28
|
+
getInsuranceFundStakeAccountAndSlot(): DataAndSlot<InsuranceFundStake> | undefined;
|
|
27
29
|
didSubscriptionSucceed(): boolean;
|
|
28
30
|
updateData(insuranceFundStake: InsuranceFundStake, slot: number): void;
|
|
29
31
|
}
|
|
@@ -18,7 +18,7 @@ class PollingInsuranceFundStakeAccountSubscriber {
|
|
|
18
18
|
if (insuranceFundStake) {
|
|
19
19
|
this.insuranceFundStakeAccountAndSlot = {
|
|
20
20
|
data: insuranceFundStake,
|
|
21
|
-
slot:
|
|
21
|
+
slot: 0,
|
|
22
22
|
};
|
|
23
23
|
}
|
|
24
24
|
await this.addToAccountLoader();
|
|
@@ -50,7 +50,7 @@ class PollingInsuranceFundStakeAccountSubscriber {
|
|
|
50
50
|
});
|
|
51
51
|
}
|
|
52
52
|
async fetchIfUnloaded() {
|
|
53
|
-
if (this.
|
|
53
|
+
if (!this.doesAccountExist()) {
|
|
54
54
|
await this.fetch();
|
|
55
55
|
}
|
|
56
56
|
}
|
|
@@ -67,7 +67,7 @@ class PollingInsuranceFundStakeAccountSubscriber {
|
|
|
67
67
|
}
|
|
68
68
|
}
|
|
69
69
|
catch (e) {
|
|
70
|
-
console.log(`PollingInsuranceFundStakeAccountSubscriber.fetch() InsuranceFundStake does not exist: ${e.message}`);
|
|
70
|
+
console.log(`PollingInsuranceFundStakeAccountSubscriber.fetch() InsuranceFundStake does not exist: ${e instanceof Error ? e.message : String(e)}`);
|
|
71
71
|
}
|
|
72
72
|
}
|
|
73
73
|
doesAccountExist() {
|
|
@@ -5,10 +5,8 @@ import { EventEmitter } from 'events';
|
|
|
5
5
|
import { PublicKey } from '@solana/web3.js';
|
|
6
6
|
import { BulkAccountLoader } from './bulkAccountLoader';
|
|
7
7
|
import { OracleClient, OraclePriceData } from '../oracles/types';
|
|
8
|
-
import { VelocityProgram } from '../config';
|
|
9
8
|
export declare class PollingOracleAccountSubscriber implements OracleAccountSubscriber {
|
|
10
9
|
isSubscribed: boolean;
|
|
11
|
-
program: VelocityProgram;
|
|
12
10
|
eventEmitter: StrictEventEmitter<EventEmitter, OracleEvents>;
|
|
13
11
|
publicKey: PublicKey;
|
|
14
12
|
accountLoader: BulkAccountLoader;
|
|
@@ -46,7 +46,14 @@ class PollingOracleAccountSubscriber {
|
|
|
46
46
|
}
|
|
47
47
|
async fetch() {
|
|
48
48
|
await this.accountLoader.load();
|
|
49
|
-
const
|
|
49
|
+
const bufferAndSlot = this.accountLoader.getBufferAndSlot(this.publicKey);
|
|
50
|
+
if (!bufferAndSlot) {
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
const { buffer, slot } = bufferAndSlot;
|
|
54
|
+
if (!buffer) {
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
50
57
|
this.oraclePriceData = {
|
|
51
58
|
data: await this.oracleClient.getOraclePriceDataFromBuffer(buffer),
|
|
52
59
|
slot,
|
|
@@ -56,10 +63,14 @@ class PollingOracleAccountSubscriber {
|
|
|
56
63
|
if (!this.isSubscribed) {
|
|
57
64
|
return;
|
|
58
65
|
}
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
66
|
+
if (this.callbackId) {
|
|
67
|
+
this.accountLoader.removeAccount(this.publicKey, this.callbackId);
|
|
68
|
+
this.callbackId = undefined;
|
|
69
|
+
}
|
|
70
|
+
if (this.errorCallbackId) {
|
|
71
|
+
this.accountLoader.removeErrorCallbacks(this.errorCallbackId);
|
|
72
|
+
this.errorCallbackId = undefined;
|
|
73
|
+
}
|
|
63
74
|
this.isSubscribed = false;
|
|
64
75
|
}
|
|
65
76
|
assertIsSubscribed() {
|
|
@@ -5,10 +5,8 @@ import { EventEmitter } from 'events';
|
|
|
5
5
|
import { PublicKey } from '@solana/web3.js';
|
|
6
6
|
import { BulkAccountLoader } from './bulkAccountLoader';
|
|
7
7
|
import { Account } from '@solana/spl-token';
|
|
8
|
-
import { VelocityProgram } from '../config';
|
|
9
8
|
export declare class PollingTokenAccountSubscriber implements TokenAccountSubscriber {
|
|
10
9
|
isSubscribed: boolean;
|
|
11
|
-
program: VelocityProgram;
|
|
12
10
|
eventEmitter: StrictEventEmitter<EventEmitter, TokenAccountEvents>;
|
|
13
11
|
publicKey: PublicKey;
|
|
14
12
|
accountLoader: BulkAccountLoader;
|
|
@@ -46,7 +46,14 @@ class PollingTokenAccountSubscriber {
|
|
|
46
46
|
}
|
|
47
47
|
async fetch() {
|
|
48
48
|
await this.accountLoader.load();
|
|
49
|
-
const
|
|
49
|
+
const bufferAndSlot = this.accountLoader.getBufferAndSlot(this.publicKey);
|
|
50
|
+
if (!bufferAndSlot) {
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
const { buffer, slot } = bufferAndSlot;
|
|
54
|
+
if (!buffer) {
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
50
57
|
this.tokenAccountAndSlot = {
|
|
51
58
|
data: (0, token_1.parseTokenAccount)(buffer, this.publicKey),
|
|
52
59
|
slot,
|
|
@@ -56,10 +63,14 @@ class PollingTokenAccountSubscriber {
|
|
|
56
63
|
if (!this.isSubscribed) {
|
|
57
64
|
return;
|
|
58
65
|
}
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
66
|
+
if (this.callbackId) {
|
|
67
|
+
this.accountLoader.removeAccount(this.publicKey, this.callbackId);
|
|
68
|
+
this.callbackId = undefined;
|
|
69
|
+
}
|
|
70
|
+
if (this.errorCallbackId) {
|
|
71
|
+
this.accountLoader.removeErrorCallbacks(this.errorCallbackId);
|
|
72
|
+
this.errorCallbackId = undefined;
|
|
73
|
+
}
|
|
63
74
|
this.isSubscribed = false;
|
|
64
75
|
}
|
|
65
76
|
assertIsSubscribed() {
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
|
+
/// <reference types="node" />
|
|
3
|
+
/// <reference types="node" />
|
|
2
4
|
import { DataAndSlot, UserAccountEvents, UserAccountSubscriber } from './types';
|
|
3
5
|
import { Connection } from '../bankrun/bankrunConnection';
|
|
4
6
|
import StrictEventEmitter from 'strict-event-emitter-types';
|
|
@@ -14,16 +16,18 @@ export declare class PollingUserAccountSubscriber implements UserAccountSubscrib
|
|
|
14
16
|
accountLoader: BulkAccountLoader;
|
|
15
17
|
callbackId?: string;
|
|
16
18
|
errorCallbackId?: string;
|
|
17
|
-
decode: (name:
|
|
19
|
+
decode: (name: string, buffer: Buffer) => UserAccount;
|
|
18
20
|
user?: DataAndSlot<UserAccount>;
|
|
19
|
-
constructor(connection: Connection, userAccountPublicKey: PublicKey, accountLoader: BulkAccountLoader, decode: (name:
|
|
21
|
+
constructor(connection: Connection, userAccountPublicKey: PublicKey, accountLoader: BulkAccountLoader, decode: (name: string, buffer: Buffer) => UserAccount);
|
|
20
22
|
subscribe(userAccount?: UserAccount): Promise<boolean>;
|
|
21
23
|
addToAccountLoader(): Promise<void>;
|
|
22
24
|
fetchIfUnloaded(): Promise<void>;
|
|
23
25
|
fetch(): Promise<void>;
|
|
24
|
-
doesAccountExist():
|
|
26
|
+
doesAccountExist(): this is {
|
|
27
|
+
user: DataAndSlot<UserAccount>;
|
|
28
|
+
};
|
|
25
29
|
unsubscribe(): Promise<void>;
|
|
26
30
|
assertIsSubscribed(): void;
|
|
27
|
-
getUserAccountAndSlot(): DataAndSlot<UserAccount
|
|
31
|
+
getUserAccountAndSlot(): DataAndSlot<UserAccount> | undefined;
|
|
28
32
|
updateData(userAccount: UserAccount, slot: number): void;
|
|
29
33
|
}
|
|
@@ -17,7 +17,9 @@ class PollingUserAccountSubscriber {
|
|
|
17
17
|
return true;
|
|
18
18
|
}
|
|
19
19
|
if (userAccount) {
|
|
20
|
-
|
|
20
|
+
// `slot: 0` keeps {data, slot} atomic: a seeded account always carries a
|
|
21
|
+
// slot (0 = oldest-possible sentinel, overwritten by the first real fetch).
|
|
22
|
+
this.user = { data: userAccount, slot: 0 };
|
|
21
23
|
}
|
|
22
24
|
await this.addToAccountLoader();
|
|
23
25
|
await this.fetchIfUnloaded();
|
|
@@ -48,7 +50,7 @@ class PollingUserAccountSubscriber {
|
|
|
48
50
|
});
|
|
49
51
|
}
|
|
50
52
|
async fetchIfUnloaded() {
|
|
51
|
-
if (this.
|
|
53
|
+
if (!this.doesAccountExist()) {
|
|
52
54
|
await this.fetch();
|
|
53
55
|
}
|
|
54
56
|
}
|
|
@@ -56,7 +58,8 @@ class PollingUserAccountSubscriber {
|
|
|
56
58
|
var _a, _b;
|
|
57
59
|
try {
|
|
58
60
|
const dataAndContext = await this.connection.getAccountInfoAndContext(this.userAccountPublicKey, this.accountLoader.commitment);
|
|
59
|
-
if (dataAndContext.
|
|
61
|
+
if (dataAndContext.value !== null &&
|
|
62
|
+
dataAndContext.context.slot > ((_b = (_a = this.user) === null || _a === void 0 ? void 0 : _a.slot) !== null && _b !== void 0 ? _b : 0)) {
|
|
60
63
|
this.user = {
|
|
61
64
|
data: this.decode('user', dataAndContext.value.data),
|
|
62
65
|
slot: dataAndContext.context.slot,
|
|
@@ -64,7 +67,8 @@ class PollingUserAccountSubscriber {
|
|
|
64
67
|
}
|
|
65
68
|
}
|
|
66
69
|
catch (e) {
|
|
67
|
-
|
|
70
|
+
const err = e instanceof Error ? e : new Error(String(e));
|
|
71
|
+
console.log(`PollingUserAccountSubscriber.fetch() UserAccount does not exist: ${err.message}-${err.stack}`);
|
|
68
72
|
}
|
|
69
73
|
}
|
|
70
74
|
doesAccountExist() {
|
|
@@ -74,10 +78,14 @@ class PollingUserAccountSubscriber {
|
|
|
74
78
|
if (!this.isSubscribed) {
|
|
75
79
|
return;
|
|
76
80
|
}
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
+
if (this.callbackId) {
|
|
82
|
+
this.accountLoader.removeAccount(this.userAccountPublicKey, this.callbackId);
|
|
83
|
+
this.callbackId = undefined;
|
|
84
|
+
}
|
|
85
|
+
if (this.errorCallbackId) {
|
|
86
|
+
this.accountLoader.removeErrorCallbacks(this.errorCallbackId);
|
|
87
|
+
this.errorCallbackId = undefined;
|
|
88
|
+
}
|
|
81
89
|
this.isSubscribed = false;
|
|
82
90
|
}
|
|
83
91
|
assertIsSubscribed() {
|
|
@@ -86,9 +94,7 @@ class PollingUserAccountSubscriber {
|
|
|
86
94
|
}
|
|
87
95
|
}
|
|
88
96
|
getUserAccountAndSlot() {
|
|
89
|
-
|
|
90
|
-
throw new types_1.NotSubscribedError('You must call `subscribe` or `fetch` before using this function');
|
|
91
|
-
}
|
|
97
|
+
this.assertIsSubscribed();
|
|
92
98
|
return this.user;
|
|
93
99
|
}
|
|
94
100
|
updateData(userAccount, slot) {
|
|
@@ -20,8 +20,10 @@ export declare class PollingUserStatsAccountSubscriber implements UserStatsAccou
|
|
|
20
20
|
addToAccountLoader(): Promise<void>;
|
|
21
21
|
fetchIfUnloaded(): Promise<void>;
|
|
22
22
|
fetch(): Promise<void>;
|
|
23
|
-
doesAccountExist():
|
|
23
|
+
doesAccountExist(): this is {
|
|
24
|
+
userStats: DataAndSlot<UserStatsAccount>;
|
|
25
|
+
};
|
|
24
26
|
unsubscribe(): Promise<void>;
|
|
25
27
|
assertIsSubscribed(): void;
|
|
26
|
-
getUserStatsAccountAndSlot(): DataAndSlot<UserStatsAccount
|
|
28
|
+
getUserStatsAccountAndSlot(): DataAndSlot<UserStatsAccount> | undefined;
|
|
27
29
|
}
|
|
@@ -16,7 +16,9 @@ class PollingUserStatsAccountSubscriber {
|
|
|
16
16
|
return true;
|
|
17
17
|
}
|
|
18
18
|
if (userStatsAccount) {
|
|
19
|
-
|
|
19
|
+
// `slot: 0` keeps {data, slot} atomic: a seeded account always carries a
|
|
20
|
+
// slot (0 = oldest-possible sentinel, overwritten by the first real fetch).
|
|
21
|
+
this.userStats = { data: userStatsAccount, slot: 0 };
|
|
20
22
|
}
|
|
21
23
|
await this.addToAccountLoader();
|
|
22
24
|
await this.fetchIfUnloaded();
|
|
@@ -47,7 +49,7 @@ class PollingUserStatsAccountSubscriber {
|
|
|
47
49
|
});
|
|
48
50
|
}
|
|
49
51
|
async fetchIfUnloaded() {
|
|
50
|
-
if (this.
|
|
52
|
+
if (!this.doesAccountExist()) {
|
|
51
53
|
await this.fetch();
|
|
52
54
|
}
|
|
53
55
|
}
|
|
@@ -63,7 +65,7 @@ class PollingUserStatsAccountSubscriber {
|
|
|
63
65
|
}
|
|
64
66
|
}
|
|
65
67
|
catch (e) {
|
|
66
|
-
console.log(`PollingUserStatsAccountSubscriber.fetch() UserStatsAccount does not exist: ${e.message}`);
|
|
68
|
+
console.log(`PollingUserStatsAccountSubscriber.fetch() UserStatsAccount does not exist: ${e instanceof Error ? e.message : String(e)}`);
|
|
67
69
|
}
|
|
68
70
|
}
|
|
69
71
|
doesAccountExist() {
|
|
@@ -85,9 +87,7 @@ class PollingUserStatsAccountSubscriber {
|
|
|
85
87
|
}
|
|
86
88
|
}
|
|
87
89
|
getUserStatsAccountAndSlot() {
|
|
88
|
-
|
|
89
|
-
throw new types_1.NotSubscribedError('You must call `subscribe` or `fetch` before using this function');
|
|
90
|
-
}
|
|
90
|
+
this.assertIsSubscribed();
|
|
91
91
|
return this.userStats;
|
|
92
92
|
}
|
|
93
93
|
}
|
|
@@ -32,8 +32,8 @@ export declare class PollingVelocityClientAccountSubscriber implements VelocityC
|
|
|
32
32
|
user?: DataAndSlot<UserAccount>;
|
|
33
33
|
delistedMarketSetting: DelistedMarketSetting;
|
|
34
34
|
private isSubscribing;
|
|
35
|
-
private subscriptionPromise;
|
|
36
35
|
private subscriptionPromiseResolver;
|
|
36
|
+
private subscriptionPromise;
|
|
37
37
|
constructor(program: VelocityProgram, accountLoader: BulkAccountLoader, perpMarketIndexes: number[], spotMarketIndexes: number[], oracleInfos: OracleInfo[], shouldFindAllMarketsAndOracles: boolean, delistedMarketSetting: DelistedMarketSetting);
|
|
38
38
|
subscribe(): Promise<boolean>;
|
|
39
39
|
updateAccountsToPoll(): Promise<void>;
|
|
@@ -44,6 +44,12 @@ export declare class PollingVelocityClientAccountSubscriber implements VelocityC
|
|
|
44
44
|
updateOraclesToPoll(): boolean;
|
|
45
45
|
addOracleToPoll(oracleInfo: OracleInfo): boolean;
|
|
46
46
|
addToAccountLoader(): Promise<void>;
|
|
47
|
+
/**
|
|
48
|
+
* Routes a freshly-decoded account into the correct container based on
|
|
49
|
+
* its poll key. Replaces dynamic `this[key]` indexing with explicit,
|
|
50
|
+
* type-checked dispatch.
|
|
51
|
+
*/
|
|
52
|
+
private storeDecodedAccount;
|
|
47
53
|
addAccountToAccountLoader(accountToPoll: AccountToPoll): Promise<void>;
|
|
48
54
|
addOracleToAccountLoader(oracleToPoll: OraclesToPoll): Promise<void>;
|
|
49
55
|
fetch(): Promise<void>;
|
|
@@ -25,6 +25,10 @@ class PollingVelocityClientAccountSubscriber {
|
|
|
25
25
|
this.spotOracleStringMap = new Map();
|
|
26
26
|
this.oracles = new Map();
|
|
27
27
|
this.isSubscribing = false;
|
|
28
|
+
this.subscriptionPromiseResolver = () => { };
|
|
29
|
+
this.subscriptionPromise = new Promise((res) => {
|
|
30
|
+
this.subscriptionPromiseResolver = res;
|
|
31
|
+
});
|
|
28
32
|
this.isSubscribed = false;
|
|
29
33
|
this.program = program;
|
|
30
34
|
this.eventEmitter = new events_1.EventEmitter();
|
|
@@ -148,21 +152,39 @@ class PollingVelocityClientAccountSubscriber {
|
|
|
148
152
|
this.eventEmitter.emit('error', error);
|
|
149
153
|
});
|
|
150
154
|
}
|
|
155
|
+
/**
|
|
156
|
+
* Routes a freshly-decoded account into the correct container based on
|
|
157
|
+
* its poll key. Replaces dynamic `this[key]` indexing with explicit,
|
|
158
|
+
* type-checked dispatch.
|
|
159
|
+
*/
|
|
160
|
+
storeDecodedAccount(accountToPoll, account, slot) {
|
|
161
|
+
const dataAndSlot = { data: account, slot };
|
|
162
|
+
switch (accountToPoll.key) {
|
|
163
|
+
case 'perpMarket':
|
|
164
|
+
if (accountToPoll.mapKey !== undefined) {
|
|
165
|
+
this.perpMarket.set(accountToPoll.mapKey, dataAndSlot);
|
|
166
|
+
}
|
|
167
|
+
break;
|
|
168
|
+
case 'spotMarket':
|
|
169
|
+
if (accountToPoll.mapKey !== undefined) {
|
|
170
|
+
this.spotMarket.set(accountToPoll.mapKey, dataAndSlot);
|
|
171
|
+
}
|
|
172
|
+
break;
|
|
173
|
+
case 'state':
|
|
174
|
+
this.state = dataAndSlot;
|
|
175
|
+
break;
|
|
176
|
+
default: {
|
|
177
|
+
const _exhaustive = accountToPoll.key;
|
|
178
|
+
throw new Error(`Unhandled account poll key: ${String(_exhaustive)}`);
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
}
|
|
151
182
|
async addAccountToAccountLoader(accountToPoll) {
|
|
152
183
|
accountToPoll.callbackId = await this.accountLoader.addAccount(accountToPoll.publicKey, (buffer, slot) => {
|
|
153
184
|
if (!buffer)
|
|
154
185
|
return;
|
|
155
186
|
const account = this.program.coder.accounts.decodeUnchecked(accountToPoll.key, buffer);
|
|
156
|
-
|
|
157
|
-
data: account,
|
|
158
|
-
slot,
|
|
159
|
-
};
|
|
160
|
-
if (accountToPoll.mapKey != undefined) {
|
|
161
|
-
this[accountToPoll.key].set(accountToPoll.mapKey, dataAndSlot);
|
|
162
|
-
}
|
|
163
|
-
else {
|
|
164
|
-
this[accountToPoll.key] = dataAndSlot;
|
|
165
|
-
}
|
|
187
|
+
this.storeDecodedAccount(accountToPoll, account, slot);
|
|
166
188
|
// @ts-ignore
|
|
167
189
|
this.eventEmitter.emit(accountToPoll.eventType, account);
|
|
168
190
|
this.eventEmitter.emit('update');
|
|
@@ -177,6 +199,8 @@ class PollingVelocityClientAccountSubscriber {
|
|
|
177
199
|
oracleToPoll.callbackId = await this.accountLoader.addAccount(oracleToPoll.publicKey, (buffer, slot) => {
|
|
178
200
|
if (!buffer)
|
|
179
201
|
return;
|
|
202
|
+
if (!oracleClient)
|
|
203
|
+
return;
|
|
180
204
|
const oraclePriceData = oracleClient.getOraclePriceDataFromBuffer(buffer);
|
|
181
205
|
const dataAndSlot = {
|
|
182
206
|
data: oraclePriceData,
|
|
@@ -197,18 +221,7 @@ class PollingVelocityClientAccountSubscriber {
|
|
|
197
221
|
const { buffer, slot } = bufferAndSlot;
|
|
198
222
|
if (buffer) {
|
|
199
223
|
const account = this.program.coder.accounts.decodeUnchecked(accountToPoll.key, buffer);
|
|
200
|
-
|
|
201
|
-
this[accountToPoll.key].set(accountToPoll.mapKey, {
|
|
202
|
-
data: account,
|
|
203
|
-
slot,
|
|
204
|
-
});
|
|
205
|
-
}
|
|
206
|
-
else {
|
|
207
|
-
this[accountToPoll.key] = {
|
|
208
|
-
data: account,
|
|
209
|
-
slot,
|
|
210
|
-
};
|
|
211
|
-
}
|
|
224
|
+
this.storeDecodedAccount(accountToPoll, account, slot);
|
|
212
225
|
}
|
|
213
226
|
}
|
|
214
227
|
for (const [_, oracleToPoll] of this.oraclesToPoll) {
|
|
@@ -219,6 +232,9 @@ class PollingVelocityClientAccountSubscriber {
|
|
|
219
232
|
const { buffer, slot } = bufferAndSlot;
|
|
220
233
|
if (buffer) {
|
|
221
234
|
const oracleClient = this.oracleClientCache.get(oracleToPoll.source, this.program.provider.connection, this.program);
|
|
235
|
+
if (!oracleClient) {
|
|
236
|
+
continue;
|
|
237
|
+
}
|
|
222
238
|
const oraclePriceData = oracleClient.getOraclePriceDataFromBuffer(buffer);
|
|
223
239
|
this.oracles.set((0, oracleId_1.getOracleId)(oracleToPoll.publicKey, oracleToPoll.source), {
|
|
224
240
|
data: oraclePriceData,
|
|
@@ -252,6 +268,9 @@ class PollingVelocityClientAccountSubscriber {
|
|
|
252
268
|
}
|
|
253
269
|
await this.addSpotMarketAccountToPoll(marketIndex);
|
|
254
270
|
const accountToPoll = this.accountsToPoll.get(marketPublicKey.toString());
|
|
271
|
+
if (!accountToPoll) {
|
|
272
|
+
return false;
|
|
273
|
+
}
|
|
255
274
|
await this.addAccountToAccountLoader(accountToPoll);
|
|
256
275
|
this.setSpotOracleMap();
|
|
257
276
|
return true;
|
|
@@ -263,6 +282,9 @@ class PollingVelocityClientAccountSubscriber {
|
|
|
263
282
|
}
|
|
264
283
|
await this.addPerpMarketAccountToPoll(marketIndex);
|
|
265
284
|
const accountToPoll = this.accountsToPoll.get(marketPublicKey.toString());
|
|
285
|
+
if (!accountToPoll) {
|
|
286
|
+
return false;
|
|
287
|
+
}
|
|
266
288
|
await this.addAccountToAccountLoader(accountToPoll);
|
|
267
289
|
await this.setPerpOracleMap();
|
|
268
290
|
return true;
|
|
@@ -278,7 +300,9 @@ class PollingVelocityClientAccountSubscriber {
|
|
|
278
300
|
if (!this.oraclesToPoll.has(oracleId)) {
|
|
279
301
|
this.addOracleToPoll(oracleInfo);
|
|
280
302
|
const oracleToPoll = this.oraclesToPoll.get(oracleId);
|
|
281
|
-
|
|
303
|
+
if (oracleToPoll) {
|
|
304
|
+
await this.addOracleToAccountLoader(oracleToPoll);
|
|
305
|
+
}
|
|
282
306
|
}
|
|
283
307
|
await this.pauseForOracleToBeAdded(3, oracleInfo.publicKey.toBase58());
|
|
284
308
|
return true;
|
|
@@ -338,8 +362,16 @@ class PollingVelocityClientAccountSubscriber {
|
|
|
338
362
|
}
|
|
339
363
|
const { perpMarketIndexes, oracles } = (0, utils_1.findDelistedPerpMarketsAndOracles)(this.getMarketAccountsAndSlots(), this.getSpotMarketAccountsAndSlots());
|
|
340
364
|
for (const perpMarketIndex of perpMarketIndexes) {
|
|
341
|
-
const
|
|
342
|
-
|
|
365
|
+
const perpMarketData = this.perpMarket.get(perpMarketIndex);
|
|
366
|
+
if (!perpMarketData) {
|
|
367
|
+
throw new Error(`PollingVelocityClientAccountSubscriber: delisted perp market ${perpMarketIndex} not found in perpMarket map`);
|
|
368
|
+
}
|
|
369
|
+
const perpMarketPubkey = perpMarketData.data.pubkey;
|
|
370
|
+
const accountToPoll = this.accountsToPoll.get(perpMarketPubkey.toBase58());
|
|
371
|
+
if (!accountToPoll) {
|
|
372
|
+
throw new Error(`PollingVelocityClientAccountSubscriber: delisted perp market ${perpMarketIndex} not found in accountsToPoll map`);
|
|
373
|
+
}
|
|
374
|
+
const callbackId = accountToPoll.callbackId;
|
|
343
375
|
this.accountLoader.removeAccount(perpMarketPubkey, callbackId);
|
|
344
376
|
if (this.delistedMarketSetting === types_1.DelistedMarketSetting.Discard) {
|
|
345
377
|
this.perpMarket.delete(perpMarketIndex);
|
|
@@ -347,7 +379,11 @@ class PollingVelocityClientAccountSubscriber {
|
|
|
347
379
|
}
|
|
348
380
|
for (const oracle of oracles) {
|
|
349
381
|
const oracleId = (0, oracleId_1.getOracleId)(oracle.publicKey, oracle.source);
|
|
350
|
-
const
|
|
382
|
+
const oracleToPoll = this.oraclesToPoll.get(oracleId);
|
|
383
|
+
if (!oracleToPoll) {
|
|
384
|
+
throw new Error(`PollingVelocityClientAccountSubscriber: delisted oracle ${oracleId} not found in oraclesToPoll map`);
|
|
385
|
+
}
|
|
386
|
+
const callbackId = oracleToPoll.callbackId;
|
|
351
387
|
this.accountLoader.removeAccount(oracle.publicKey, callbackId);
|
|
352
388
|
if (this.delistedMarketSetting === types_1.DelistedMarketSetting.Discard) {
|
|
353
389
|
this.oracles.delete(oracleId);
|
|
@@ -389,7 +425,7 @@ class PollingVelocityClientAccountSubscriber {
|
|
|
389
425
|
const perpMarketAccount = this.getMarketAccountAndSlot(marketIndex);
|
|
390
426
|
const oracle = this.perpOracleMap.get(marketIndex);
|
|
391
427
|
const oracleId = this.perpOracleStringMap.get(marketIndex);
|
|
392
|
-
if (!perpMarketAccount || !oracle) {
|
|
428
|
+
if (!perpMarketAccount || !oracle || !oracleId) {
|
|
393
429
|
return undefined;
|
|
394
430
|
}
|
|
395
431
|
if (!perpMarketAccount.data.oracle.equals(oracle)) {
|
|
@@ -402,7 +438,7 @@ class PollingVelocityClientAccountSubscriber {
|
|
|
402
438
|
const spotMarketAccount = this.getSpotMarketAccountAndSlot(marketIndex);
|
|
403
439
|
const oracle = this.spotOracleMap.get(marketIndex);
|
|
404
440
|
const oracleId = this.spotOracleStringMap.get(marketIndex);
|
|
405
|
-
if (!spotMarketAccount || !oracle) {
|
|
441
|
+
if (!spotMarketAccount || !oracle || !oracleId) {
|
|
406
442
|
return undefined;
|
|
407
443
|
}
|
|
408
444
|
if (!spotMarketAccount.data.oracle.equals(oracle)) {
|
|
@@ -85,7 +85,7 @@ export interface UserAccountSubscriber {
|
|
|
85
85
|
fetch(): Promise<void>;
|
|
86
86
|
updateData(userAccount: UserAccount, slot: number): void;
|
|
87
87
|
unsubscribe(): Promise<void>;
|
|
88
|
-
getUserAccountAndSlot(): DataAndSlot<UserAccount
|
|
88
|
+
getUserAccountAndSlot(): DataAndSlot<UserAccount> | undefined;
|
|
89
89
|
}
|
|
90
90
|
export interface TokenAccountEvents {
|
|
91
91
|
tokenAccountUpdate: (payload: Account) => void;
|
|
@@ -106,7 +106,7 @@ export interface InsuranceFundStakeAccountSubscriber {
|
|
|
106
106
|
subscribe(): Promise<boolean>;
|
|
107
107
|
fetch(): Promise<void>;
|
|
108
108
|
unsubscribe(): Promise<void>;
|
|
109
|
-
getInsuranceFundStakeAccountAndSlot(): DataAndSlot<InsuranceFundStake
|
|
109
|
+
getInsuranceFundStakeAccountAndSlot(): DataAndSlot<InsuranceFundStake> | undefined;
|
|
110
110
|
}
|
|
111
111
|
export interface InsuranceFundStakeAccountEvents {
|
|
112
112
|
insuranceFundStakeAccountUpdate: (payload: InsuranceFundStake) => void;
|
|
@@ -127,7 +127,7 @@ export interface OracleAccountSubscriber {
|
|
|
127
127
|
getOraclePriceData(): DataAndSlot<OraclePriceData>;
|
|
128
128
|
}
|
|
129
129
|
export type AccountToPoll = {
|
|
130
|
-
key:
|
|
130
|
+
key: 'state' | 'perpMarket' | 'spotMarket';
|
|
131
131
|
publicKey: PublicKey;
|
|
132
132
|
eventType: string;
|
|
133
133
|
callbackId?: string;
|
|
@@ -163,7 +163,7 @@ export interface UserStatsAccountSubscriber {
|
|
|
163
163
|
subscribe(userStatsAccount?: UserStatsAccount): Promise<boolean>;
|
|
164
164
|
fetch(): Promise<void>;
|
|
165
165
|
unsubscribe(): Promise<void>;
|
|
166
|
-
getUserStatsAccountAndSlot(): DataAndSlot<UserStatsAccount
|
|
166
|
+
getUserStatsAccountAndSlot(): DataAndSlot<UserStatsAccount> | undefined;
|
|
167
167
|
}
|
|
168
168
|
type BaseGrpcConfigs = {
|
|
169
169
|
endpoint: string;
|
|
@@ -2,6 +2,7 @@ import { DataAndSlot } from './types';
|
|
|
2
2
|
import { PerpMarketAccount, SpotMarketAccount } from '../types';
|
|
3
3
|
import { OracleInfo } from '../oracles/types';
|
|
4
4
|
export declare function capitalize(value: string): string;
|
|
5
|
+
export declare function assertDataAndSlot<T>(dataAndSlot: DataAndSlot<T> | undefined, message: string): DataAndSlot<T>;
|
|
5
6
|
export declare function findDelistedPerpMarketsAndOracles(perpMarkets: DataAndSlot<PerpMarketAccount>[], spotMarkets: DataAndSlot<SpotMarketAccount>[]): {
|
|
6
7
|
perpMarketIndexes: number[];
|
|
7
8
|
oracles: OracleInfo[];
|
|
@@ -1,12 +1,19 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.findDelistedPerpMarketsAndOracles = exports.capitalize = void 0;
|
|
3
|
+
exports.findDelistedPerpMarketsAndOracles = exports.assertDataAndSlot = exports.capitalize = void 0;
|
|
4
4
|
const types_1 = require("../types");
|
|
5
5
|
const oracleId_1 = require("../oracles/oracleId");
|
|
6
6
|
function capitalize(value) {
|
|
7
7
|
return value[0].toUpperCase() + value.slice(1);
|
|
8
8
|
}
|
|
9
9
|
exports.capitalize = capitalize;
|
|
10
|
+
function assertDataAndSlot(dataAndSlot, message) {
|
|
11
|
+
if (!dataAndSlot) {
|
|
12
|
+
throw new Error(message);
|
|
13
|
+
}
|
|
14
|
+
return dataAndSlot;
|
|
15
|
+
}
|
|
16
|
+
exports.assertDataAndSlot = assertDataAndSlot;
|
|
10
17
|
function findDelistedPerpMarketsAndOracles(perpMarkets, spotMarkets) {
|
|
11
18
|
const delistedPerpMarketIndexes = [];
|
|
12
19
|
const delistedOracles = [];
|
|
@@ -10,8 +10,10 @@ export declare class WebSocketAccountSubscriber<T> implements AccountSubscriber<
|
|
|
10
10
|
logAccountName: string;
|
|
11
11
|
program: VelocityProgram;
|
|
12
12
|
accountPublicKey: PublicKey;
|
|
13
|
-
decodeBufferFn
|
|
14
|
-
|
|
13
|
+
decodeBufferFn?: (buffer: Buffer) => T;
|
|
14
|
+
private _onChange?;
|
|
15
|
+
get onChange(): (data: T) => void;
|
|
16
|
+
set onChange(onChange: (data: T) => void);
|
|
15
17
|
listenerId?: number;
|
|
16
18
|
resubOpts?: ResubOpts;
|
|
17
19
|
commitment?: Commitment;
|