@velocity-exchange/sdk 0.0.5 → 0.2.0
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/.prettierignore +1 -1
- package/CHANGELOG.md +35 -0
- package/README.md +30 -30
- package/bun.lock +24 -2
- 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 +9 -3
- package/lib/browser/accounts/grpcVelocityClientAccountSubscriber.d.ts +0 -4
- package/lib/browser/accounts/grpcVelocityClientAccountSubscriber.js +19 -6
- package/lib/browser/accounts/grpcVelocityClientAccountSubscriberV2.d.ts +1 -5
- package/lib/browser/accounts/grpcVelocityClientAccountSubscriberV2.js +44 -23
- package/lib/browser/accounts/laserProgramAccountSubscriber.js +4 -1
- 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 -5
- package/lib/browser/accounts/pollingVelocityClientAccountSubscriber.js +69 -35
- package/lib/browser/accounts/types.d.ts +6 -12
- package/lib/browser/accounts/utils.d.ts +1 -0
- package/lib/browser/accounts/utils.js +10 -3
- 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 -8
- package/lib/browser/accounts/webSocketVelocityClientAccountSubscriber.js +52 -26
- package/lib/browser/accounts/webSocketVelocityClientAccountSubscriberV2.d.ts +7 -7
- package/lib/browser/accounts/webSocketVelocityClientAccountSubscriberV2.js +49 -20
- 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 +1 -9
- package/lib/browser/addresses/pda.js +4 -23
- package/lib/browser/adminClient.d.ts +25 -29
- package/lib/browser/adminClient.js +168 -169
- package/lib/browser/auctionSubscriber/auctionSubscriber.d.ts +2 -4
- package/lib/browser/auctionSubscriber/auctionSubscriber.js +8 -10
- package/lib/browser/auctionSubscriber/auctionSubscriberGrpc.d.ts +2 -4
- package/lib/browser/auctionSubscriber/auctionSubscriberGrpc.js +11 -10
- package/lib/browser/auctionSubscriber/types.d.ts +3 -2
- package/lib/browser/bankrun/bankrunConnection.d.ts +6 -4
- package/lib/browser/bankrun/bankrunConnection.js +69 -31
- 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 +11 -20
- package/lib/browser/config.js +13 -36
- 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 -3
- package/lib/browser/constants/numericConstants.js +3 -5
- package/lib/browser/constituentMap/constituentMap.d.ts +0 -2
- package/lib/browser/constituentMap/constituentMap.js +10 -6
- 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 +9 -15
- package/lib/browser/core/VelocityCore.js +5 -7
- 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 +1 -1
- package/lib/browser/core/instructions/withdraw.js +1 -1
- package/lib/browser/core/remainingAccounts.d.ts +2 -2
- package/lib/browser/core/remainingAccounts.js +5 -5
- package/lib/browser/decode/user.js +9 -1
- package/lib/browser/dlob/DLOB.d.ts +7 -2
- package/lib/browser/dlob/DLOB.js +205 -142
- package/lib/browser/dlob/DLOBNode.d.ts +5 -2
- package/lib/browser/dlob/DLOBNode.js +7 -0
- package/lib/browser/dlob/DLOBSubscriber.d.ts +0 -2
- package/lib/browser/dlob/DLOBSubscriber.js +39 -39
- package/lib/browser/dlob/NodeList.js +8 -7
- package/lib/browser/dlob/orderBookLevels.js +24 -17
- package/lib/browser/dlob/types.d.ts +0 -2
- package/lib/browser/events/eventList.js +4 -1
- package/lib/browser/events/eventSubscriber.d.ts +6 -3
- package/lib/browser/events/eventSubscriber.js +75 -26
- package/lib/browser/events/eventsServerLogProvider.d.ts +1 -1
- package/lib/browser/events/eventsServerLogProvider.js +17 -10
- package/lib/browser/events/fetchLogs.d.ts +1 -1
- package/lib/browser/events/fetchLogs.js +4 -2
- package/lib/browser/events/parse.js +14 -14
- package/lib/browser/events/pollingLogProvider.d.ts +1 -1
- package/lib/browser/events/pollingLogProvider.js +1 -0
- package/lib/browser/events/txEventCache.js +6 -2
- package/lib/browser/events/types.d.ts +3 -7
- package/lib/browser/events/types.js +1 -3
- package/lib/browser/events/webSocketLogProvider.d.ts +1 -1
- package/lib/browser/events/webSocketLogProvider.js +5 -2
- package/lib/browser/factory/bigNum.js +1 -1
- package/lib/{node/idl/drift.d.ts → browser/idl/velocity.d.ts} +2412 -2481
- package/lib/browser/idl/{drift.json → velocity.json} +2265 -2333
- package/lib/browser/index.d.ts +1 -3
- package/lib/browser/index.js +1 -4
- package/lib/browser/jupiter/jupiterClient.d.ts +1 -1
- package/lib/browser/jupiter/jupiterClient.js +18 -8
- package/lib/browser/marginCalculation.js +1 -0
- package/lib/browser/math/amm.d.ts +31 -13
- package/lib/browser/math/amm.js +87 -31
- package/lib/browser/math/auction.js +16 -12
- package/lib/browser/math/bankruptcy.js +1 -1
- package/lib/browser/math/builder.d.ts +18 -1
- package/lib/browser/math/builder.js +32 -1
- package/lib/browser/math/funding.js +30 -30
- package/lib/browser/math/insurance.d.ts +1 -1
- package/lib/browser/math/insurance.js +4 -5
- package/lib/browser/math/margin.d.ts +3 -11
- package/lib/browser/math/margin.js +10 -69
- package/lib/browser/math/market.d.ts +4 -12
- package/lib/browser/math/market.js +12 -46
- package/lib/browser/math/oracles.d.ts +4 -7
- package/lib/browser/math/oracles.js +24 -37
- package/lib/browser/math/orders.d.ts +2 -7
- package/lib/browser/math/orders.js +9 -81
- package/lib/browser/math/position.d.ts +0 -4
- package/lib/browser/math/position.js +6 -11
- package/lib/browser/math/repeg.d.ts +0 -1
- package/lib/browser/math/repeg.js +1 -23
- package/lib/browser/math/spotBalance.d.ts +4 -4
- package/lib/browser/math/spotBalance.js +6 -6
- package/lib/browser/math/spotMarket.d.ts +0 -6
- package/lib/browser/math/spotMarket.js +1 -16
- package/lib/browser/math/spotPosition.d.ts +4 -4
- package/lib/browser/math/state.d.ts +0 -2
- package/lib/browser/math/state.js +1 -9
- package/lib/browser/math/superStake.d.ts +11 -63
- package/lib/browser/math/superStake.js +29 -28
- package/lib/browser/math/trade.js +7 -7
- package/lib/browser/math/utils.d.ts +1 -1
- package/lib/browser/math/utils.js +1 -1
- package/lib/browser/memcmp.d.ts +0 -1
- package/lib/browser/memcmp.js +1 -10
- package/lib/browser/oracles/prelaunchOracleClient.js +3 -2
- package/lib/browser/oracles/pythClient.js +9 -3
- package/lib/browser/oracles/pythLazerClient.js +5 -4
- package/lib/browser/oracles/utils.d.ts +4 -0
- package/lib/browser/oracles/utils.js +9 -1
- package/lib/browser/orderSubscriber/OrderSubscriber.d.ts +1 -3
- package/lib/browser/orderSubscriber/OrderSubscriber.js +16 -14
- package/lib/browser/orderSubscriber/WebsocketSubscription.js +1 -1
- package/lib/browser/orderSubscriber/grpcSubscription.js +2 -2
- package/lib/browser/orderSubscriber/types.d.ts +0 -2
- package/lib/browser/priorityFee/heliusPriorityFeeMethod.d.ts +1 -1
- package/lib/browser/priorityFee/priorityFeeSubscriber.d.ts +2 -6
- package/lib/browser/priorityFee/priorityFeeSubscriber.js +34 -18
- package/lib/browser/priorityFee/priorityFeeSubscriberMap.d.ts +0 -4
- package/lib/browser/priorityFee/priorityFeeSubscriberMap.js +3 -11
- package/lib/browser/priorityFee/solanaPriorityFeeMethod.d.ts +1 -1
- package/lib/browser/priorityFee/types.d.ts +3 -8
- package/lib/browser/priorityFee/velocityPriorityFeeMethod.d.ts +0 -8
- package/lib/browser/priorityFee/velocityPriorityFeeMethod.js +1 -3
- package/lib/browser/pyth/pythLazerSubscriber.d.ts +1 -1
- package/lib/browser/pyth/pythLazerSubscriber.js +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.js +1 -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 +7 -7
- package/lib/browser/swift/signedMsgUserAccountSubscriber.js +14 -10
- package/lib/browser/swift/swiftOrderSubscriber.d.ts +7 -6
- package/lib/browser/swift/swiftOrderSubscriber.js +15 -16
- package/lib/browser/testClient.js +3 -2
- 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 +7 -1
- 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 +102 -157
- package/lib/browser/types.js +6 -2
- package/lib/browser/user.d.ts +22 -10
- package/lib/browser/user.js +174 -154
- package/lib/browser/userConfig.d.ts +3 -2
- package/lib/browser/userMap/WebsocketSubscription.d.ts +1 -1
- package/lib/browser/userMap/WebsocketSubscription.js +1 -1
- package/lib/browser/userMap/grpcSubscription.d.ts +1 -1
- package/lib/browser/userMap/grpcSubscription.js +1 -1
- package/lib/browser/userMap/referrerMap.d.ts +0 -2
- package/lib/browser/userMap/referrerMap.js +10 -7
- package/lib/browser/userMap/revenueShareEscrowMap.d.ts +0 -2
- package/lib/browser/userMap/revenueShareEscrowMap.js +4 -4
- package/lib/browser/userMap/userMap.d.ts +3 -5
- package/lib/browser/userMap/userMap.js +39 -30
- package/lib/browser/userMap/userMapConfig.d.ts +3 -2
- package/lib/browser/userMap/userStatsMap.d.ts +1 -3
- package/lib/browser/userMap/userStatsMap.js +18 -17
- package/lib/browser/userStats.d.ts +7 -4
- package/lib/browser/userStats.js +28 -18
- package/lib/browser/userStatsConfig.d.ts +3 -2
- 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/util/ed25519Utils.d.ts +1 -1
- package/lib/browser/util/ed25519Utils.js +1 -1
- package/lib/browser/velocityClient.d.ts +144 -71
- package/lib/browser/velocityClient.js +653 -457
- package/lib/browser/velocityClientConfig.d.ts +0 -8
- 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 +9 -3
- package/lib/node/accounts/grpcVelocityClientAccountSubscriber.d.ts +0 -4
- package/lib/node/accounts/grpcVelocityClientAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/grpcVelocityClientAccountSubscriber.js +19 -6
- package/lib/node/accounts/grpcVelocityClientAccountSubscriberV2.d.ts +1 -5
- package/lib/node/accounts/grpcVelocityClientAccountSubscriberV2.d.ts.map +1 -1
- package/lib/node/accounts/grpcVelocityClientAccountSubscriberV2.js +44 -23
- package/lib/node/accounts/laserProgramAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/laserProgramAccountSubscriber.js +4 -1
- 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 -5
- package/lib/node/accounts/pollingVelocityClientAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/pollingVelocityClientAccountSubscriber.js +69 -35
- package/lib/node/accounts/types.d.ts +6 -12
- 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 +10 -3
- 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 -8
- package/lib/node/accounts/webSocketVelocityClientAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/webSocketVelocityClientAccountSubscriber.js +52 -26
- package/lib/node/accounts/webSocketVelocityClientAccountSubscriberV2.d.ts +7 -7
- package/lib/node/accounts/webSocketVelocityClientAccountSubscriberV2.d.ts.map +1 -1
- package/lib/node/accounts/webSocketVelocityClientAccountSubscriberV2.js +49 -20
- 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 +1 -9
- package/lib/node/addresses/pda.d.ts.map +1 -1
- package/lib/node/addresses/pda.js +4 -23
- package/lib/node/adminClient.d.ts +25 -29
- package/lib/node/adminClient.d.ts.map +1 -1
- package/lib/node/adminClient.js +168 -169
- package/lib/node/auctionSubscriber/auctionSubscriber.d.ts +2 -4
- package/lib/node/auctionSubscriber/auctionSubscriber.d.ts.map +1 -1
- package/lib/node/auctionSubscriber/auctionSubscriber.js +8 -10
- package/lib/node/auctionSubscriber/auctionSubscriberGrpc.d.ts +2 -4
- package/lib/node/auctionSubscriber/auctionSubscriberGrpc.d.ts.map +1 -1
- package/lib/node/auctionSubscriber/auctionSubscriberGrpc.js +11 -10
- package/lib/node/auctionSubscriber/types.d.ts +3 -2
- package/lib/node/auctionSubscriber/types.d.ts.map +1 -1
- package/lib/node/bankrun/bankrunConnection.d.ts +6 -4
- package/lib/node/bankrun/bankrunConnection.d.ts.map +1 -1
- package/lib/node/bankrun/bankrunConnection.js +69 -31
- 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 +11 -20
- package/lib/node/config.d.ts.map +1 -1
- package/lib/node/config.js +13 -36
- 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 -3
- package/lib/node/constants/numericConstants.d.ts.map +1 -1
- package/lib/node/constants/numericConstants.js +3 -5
- package/lib/node/constituentMap/constituentMap.d.ts +0 -2
- package/lib/node/constituentMap/constituentMap.d.ts.map +1 -1
- package/lib/node/constituentMap/constituentMap.js +10 -6
- 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 +9 -15
- package/lib/node/core/VelocityCore.d.ts.map +1 -1
- package/lib/node/core/VelocityCore.js +5 -7
- 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 +1 -1
- package/lib/node/core/instructions/withdraw.d.ts.map +1 -1
- package/lib/node/core/instructions/withdraw.js +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 +5 -5
- 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 +7 -2
- package/lib/node/dlob/DLOB.d.ts.map +1 -1
- package/lib/node/dlob/DLOB.js +205 -142
- package/lib/node/dlob/DLOBNode.d.ts +5 -2
- 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 -2
- package/lib/node/dlob/DLOBSubscriber.d.ts.map +1 -1
- package/lib/node/dlob/DLOBSubscriber.js +39 -39
- 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.map +1 -1
- package/lib/node/dlob/orderBookLevels.js +24 -17
- package/lib/node/dlob/types.d.ts +0 -2
- package/lib/node/dlob/types.d.ts.map +1 -1
- 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 +6 -3
- 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 +17 -10
- 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/parse.d.ts.map +1 -1
- package/lib/node/events/parse.js +14 -14
- 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 +3 -7
- package/lib/node/events/types.d.ts.map +1 -1
- package/lib/node/events/types.js +1 -3
- 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.js +1 -1
- package/lib/{browser/idl/drift.d.ts → node/idl/velocity.d.ts} +2413 -2480
- package/lib/node/idl/velocity.d.ts.map +1 -0
- package/lib/node/idl/{drift.json → velocity.json} +2265 -2333
- package/lib/node/index.d.ts +1 -3
- package/lib/node/index.d.ts.map +1 -1
- package/lib/node/index.js +1 -4
- package/lib/node/jupiter/jupiterClient.d.ts +1 -1
- package/lib/node/jupiter/jupiterClient.d.ts.map +1 -1
- package/lib/node/jupiter/jupiterClient.js +18 -8
- package/lib/node/marginCalculation.d.ts.map +1 -1
- package/lib/node/marginCalculation.js +1 -0
- package/lib/node/math/amm.d.ts +31 -13
- package/lib/node/math/amm.d.ts.map +1 -1
- package/lib/node/math/amm.js +87 -31
- package/lib/node/math/auction.d.ts.map +1 -1
- package/lib/node/math/auction.js +16 -12
- package/lib/node/math/bankruptcy.js +1 -1
- package/lib/node/math/builder.d.ts +18 -1
- package/lib/node/math/builder.d.ts.map +1 -1
- package/lib/node/math/builder.js +32 -1
- package/lib/node/math/funding.d.ts.map +1 -1
- package/lib/node/math/funding.js +30 -30
- package/lib/node/math/insurance.d.ts +1 -1
- package/lib/node/math/insurance.d.ts.map +1 -1
- package/lib/node/math/insurance.js +4 -5
- package/lib/node/math/margin.d.ts +3 -11
- package/lib/node/math/margin.d.ts.map +1 -1
- package/lib/node/math/margin.js +10 -69
- package/lib/node/math/market.d.ts +4 -12
- package/lib/node/math/market.d.ts.map +1 -1
- package/lib/node/math/market.js +12 -46
- package/lib/node/math/oracles.d.ts +4 -7
- package/lib/node/math/oracles.d.ts.map +1 -1
- package/lib/node/math/oracles.js +24 -37
- package/lib/node/math/orders.d.ts +2 -7
- package/lib/node/math/orders.d.ts.map +1 -1
- package/lib/node/math/orders.js +9 -81
- package/lib/node/math/position.d.ts +1 -5
- package/lib/node/math/position.d.ts.map +1 -1
- package/lib/node/math/position.js +6 -11
- package/lib/node/math/repeg.d.ts +0 -1
- 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 -4
- 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 -6
- 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 -4
- package/lib/node/math/spotPosition.d.ts.map +1 -1
- package/lib/node/math/state.d.ts +0 -2
- 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 +11 -63
- package/lib/node/math/superStake.d.ts.map +1 -1
- package/lib/node/math/superStake.js +29 -28
- package/lib/node/math/trade.d.ts +2 -2
- package/lib/node/math/trade.d.ts.map +1 -1
- package/lib/node/math/trade.js +7 -7
- package/lib/node/math/utils.d.ts +1 -1
- package/lib/node/math/utils.js +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.map +1 -1
- package/lib/node/oracles/pythClient.js +9 -3
- package/lib/node/oracles/pythLazerClient.d.ts.map +1 -1
- package/lib/node/oracles/pythLazerClient.js +5 -4
- package/lib/node/oracles/utils.d.ts +4 -0
- package/lib/node/oracles/utils.d.ts.map +1 -1
- package/lib/node/oracles/utils.js +9 -1
- package/lib/node/orderSubscriber/OrderSubscriber.d.ts +1 -3
- package/lib/node/orderSubscriber/OrderSubscriber.d.ts.map +1 -1
- package/lib/node/orderSubscriber/OrderSubscriber.js +16 -14
- package/lib/node/orderSubscriber/WebsocketSubscription.js +1 -1
- package/lib/node/orderSubscriber/grpcSubscription.js +2 -2
- package/lib/node/orderSubscriber/types.d.ts +0 -2
- package/lib/node/orderSubscriber/types.d.ts.map +1 -1
- 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 +2 -6
- package/lib/node/priorityFee/priorityFeeSubscriber.d.ts.map +1 -1
- package/lib/node/priorityFee/priorityFeeSubscriber.js +34 -18
- package/lib/node/priorityFee/priorityFeeSubscriberMap.d.ts +0 -4
- package/lib/node/priorityFee/priorityFeeSubscriberMap.d.ts.map +1 -1
- package/lib/node/priorityFee/priorityFeeSubscriberMap.js +3 -11
- package/lib/node/priorityFee/solanaPriorityFeeMethod.d.ts +1 -1
- package/lib/node/priorityFee/solanaPriorityFeeMethod.d.ts.map +1 -1
- package/lib/node/priorityFee/types.d.ts +3 -8
- package/lib/node/priorityFee/types.d.ts.map +1 -1
- package/lib/node/priorityFee/velocityPriorityFeeMethod.d.ts +0 -8
- package/lib/node/priorityFee/velocityPriorityFeeMethod.d.ts.map +1 -1
- package/lib/node/priorityFee/velocityPriorityFeeMethod.js +1 -3
- package/lib/node/pyth/pythLazerSubscriber.d.ts +1 -1
- package/lib/node/pyth/pythLazerSubscriber.js +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.js +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 +7 -7
- package/lib/node/swift/signedMsgUserAccountSubscriber.d.ts.map +1 -1
- package/lib/node/swift/signedMsgUserAccountSubscriber.js +14 -10
- package/lib/node/swift/swiftOrderSubscriber.d.ts +7 -6
- package/lib/node/swift/swiftOrderSubscriber.d.ts.map +1 -1
- package/lib/node/swift/swiftOrderSubscriber.js +15 -16
- package/lib/node/testClient.js +3 -2
- 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 +100 -155
- package/lib/node/types.d.ts.map +1 -1
- package/lib/node/types.js +6 -2
- package/lib/node/user.d.ts +22 -10
- package/lib/node/user.d.ts.map +1 -1
- package/lib/node/user.js +174 -154
- package/lib/node/userConfig.d.ts +3 -2
- package/lib/node/userConfig.d.ts.map +1 -1
- package/lib/node/userMap/WebsocketSubscription.d.ts +1 -1
- package/lib/node/userMap/WebsocketSubscription.d.ts.map +1 -1
- package/lib/node/userMap/WebsocketSubscription.js +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/grpcSubscription.js +1 -1
- package/lib/node/userMap/referrerMap.d.ts +0 -2
- package/lib/node/userMap/referrerMap.d.ts.map +1 -1
- package/lib/node/userMap/referrerMap.js +10 -7
- package/lib/node/userMap/revenueShareEscrowMap.d.ts +0 -2
- package/lib/node/userMap/revenueShareEscrowMap.d.ts.map +1 -1
- package/lib/node/userMap/revenueShareEscrowMap.js +4 -4
- package/lib/node/userMap/userMap.d.ts +3 -5
- package/lib/node/userMap/userMap.d.ts.map +1 -1
- package/lib/node/userMap/userMap.js +39 -30
- package/lib/node/userMap/userMapConfig.d.ts +3 -2
- package/lib/node/userMap/userMapConfig.d.ts.map +1 -1
- package/lib/node/userMap/userStatsMap.d.ts +1 -3
- package/lib/node/userMap/userStatsMap.d.ts.map +1 -1
- package/lib/node/userMap/userStatsMap.js +18 -17
- package/lib/node/userStats.d.ts +7 -4
- package/lib/node/userStats.d.ts.map +1 -1
- package/lib/node/userStats.js +28 -18
- package/lib/node/userStatsConfig.d.ts +3 -2
- package/lib/node/userStatsConfig.d.ts.map +1 -1
- 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/util/ed25519Utils.d.ts +1 -1
- package/lib/node/util/ed25519Utils.js +1 -1
- package/lib/node/velocityClient.d.ts +145 -72
- package/lib/node/velocityClient.d.ts.map +1 -1
- package/lib/node/velocityClient.js +653 -457
- package/lib/node/velocityClientConfig.d.ts +0 -8
- package/lib/node/velocityClientConfig.d.ts.map +1 -1
- package/package.json +10 -9
- package/scripts/deposit-isolated-positions.ts +2 -2
- package/scripts/find-flagged-users.ts +1 -1
- package/scripts/grpc-client-test-comparison.ts +4 -4
- package/scripts/grpc-multiuser-client-test-comparison.ts +2 -2
- package/scripts/single-grpc-client-test.ts +3 -3
- package/scripts/updateVersion.js +4 -4
- package/scripts/withdraw-isolated-positions.ts +2 -2
- 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 +12 -4
- package/src/accounts/grpcVelocityClientAccountSubscriber.ts +17 -14
- package/src/accounts/grpcVelocityClientAccountSubscriberV2.ts +69 -49
- package/src/accounts/laserProgramAccountSubscriber.ts +4 -1
- 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 +80 -41
- package/src/accounts/types.ts +8 -13
- package/src/accounts/utils.ts +12 -2
- 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 +79 -58
- package/src/accounts/webSocketVelocityClientAccountSubscriberV2.ts +77 -45
- package/src/accounts/websocketProgramUserAccountSubscriber.ts +1 -6
- package/src/addresses/marketAddresses.ts +3 -2
- package/src/addresses/pda.ts +3 -38
- package/src/adminClient.ts +285 -315
- package/src/auctionSubscriber/auctionSubscriber.ts +8 -11
- package/src/auctionSubscriber/auctionSubscriberGrpc.ts +13 -11
- package/src/auctionSubscriber/types.ts +3 -3
- package/src/bankrun/bankrunConnection.ts +83 -39
- package/src/blockhashSubscriber/BlockhashSubscriber.ts +5 -4
- package/src/clock/clockSubscriber.ts +10 -9
- package/src/config.ts +16 -70
- package/src/constants/index.ts +1 -2
- package/src/constants/numericConstants.ts +3 -3
- package/src/constituentMap/constituentMap.ts +10 -7
- package/src/constituentMap/pollingConstituentAccountSubscriber.ts +4 -2
- package/src/constituentMap/webSocketConstituentAccountSubscriber.ts +13 -4
- package/src/core/VelocityCore.ts +11 -20
- package/src/core/instructions/perpOrders.ts +14 -0
- package/src/core/instructions/withdraw.ts +2 -2
- package/src/core/remainingAccounts.ts +7 -7
- package/src/decode/user.ts +8 -1
- package/src/dlob/DLOB.ts +300 -176
- package/src/dlob/DLOBNode.ts +23 -3
- package/src/dlob/DLOBSubscriber.ts +53 -42
- package/src/dlob/NodeList.ts +8 -7
- package/src/dlob/orderBookLevels.ts +51 -25
- package/src/dlob/types.ts +0 -2
- package/src/events/eventList.ts +4 -1
- package/src/events/eventSubscriber.ts +108 -50
- package/src/events/eventsServerLogProvider.ts +24 -15
- package/src/events/fetchLogs.ts +3 -3
- package/src/events/parse.ts +14 -14
- package/src/events/pollingLogProvider.ts +2 -2
- package/src/events/txEventCache.ts +8 -2
- package/src/events/types.ts +4 -15
- package/src/events/webSocketLogProvider.ts +5 -3
- package/src/factory/bigNum.ts +2 -2
- package/src/idl/{drift.json → velocity.json} +2265 -2333
- package/src/idl/{drift.ts → velocity.ts} +2267 -2335
- package/src/index.ts +1 -6
- package/src/jupiter/jupiterClient.ts +30 -10
- package/src/margin/README.md +2 -2
- package/src/marginCalculation.ts +1 -0
- package/src/math/amm.ts +217 -40
- package/src/math/auction.ts +16 -12
- package/src/math/bankruptcy.ts +1 -1
- package/src/math/builder.ts +45 -1
- package/src/math/funding.ts +51 -47
- package/src/math/insurance.ts +6 -8
- package/src/math/margin.ts +12 -119
- package/src/math/market.ts +16 -98
- package/src/math/oracles.ts +29 -43
- package/src/math/orders.ts +13 -109
- package/src/math/position.ts +6 -12
- 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 +36 -85
- package/src/math/trade.ts +7 -3
- package/src/math/utils.ts +1 -1
- 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 +10 -5
- package/src/oracles/utils.ts +15 -0
- package/src/orderSubscriber/OrderSubscriber.ts +12 -12
- package/src/orderSubscriber/WebsocketSubscription.ts +1 -1
- package/src/orderSubscriber/grpcSubscription.ts +2 -2
- package/src/orderSubscriber/types.ts +0 -2
- package/src/priorityFee/heliusPriorityFeeMethod.ts +1 -1
- package/src/priorityFee/priorityFeeSubscriber.ts +50 -21
- package/src/priorityFee/priorityFeeSubscriberMap.ts +2 -10
- package/src/priorityFee/solanaPriorityFeeMethod.ts +1 -1
- package/src/priorityFee/types.ts +3 -13
- package/src/priorityFee/velocityPriorityFeeMethod.ts +0 -12
- package/src/pyth/pythLazerSubscriber.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/swap/UnifiedSwapClient.ts +1 -1
- package/src/swift/grpcSignedMsgUserAccountSubscriber.ts +5 -6
- package/src/swift/signedMsgUserAccountSubscriber.ts +18 -16
- package/src/swift/swiftOrderSubscriber.ts +17 -21
- 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 +119 -173
- package/src/user.ts +208 -165
- package/src/userConfig.ts +1 -3
- package/src/userMap/WebsocketSubscription.ts +2 -2
- package/src/userMap/grpcSubscription.ts +2 -2
- package/src/userMap/referrerMap.ts +13 -13
- package/src/userMap/revenueShareEscrowMap.ts +6 -5
- package/src/userMap/userMap.ts +46 -32
- package/src/userMap/userMapConfig.ts +3 -3
- package/src/userMap/userStatsMap.ts +32 -23
- package/src/userStats.ts +22 -13
- package/src/userStatsConfig.ts +3 -3
- package/src/util/TransactionConfirmationManager.ts +10 -2
- package/src/util/chainClock.ts +1 -1
- package/src/util/computeUnits.ts +7 -3
- package/src/util/ed25519Utils.ts +1 -1
- package/src/velocityClient.ts +867 -600
- package/src/velocityClientConfig.ts +0 -10
- package/tests/{DriftCore → VelocityCore}/decode.test.ts +1 -1
- package/tests/{DriftCore → VelocityCore}/fill_trigger.test.ts +1 -1
- package/tests/{DriftCore → VelocityCore}/instructions.test.ts +1 -1
- package/tests/{DriftCore → VelocityCore}/pdas.test.ts +4 -2
- package/tests/amm/test.ts +138 -0
- package/tests/ci/verifyConstants.ts +24 -27
- package/tests/decode/test.ts +2 -2
- package/tests/dlob/helpers.ts +11 -10
- package/tests/events/parseLogsForCuUsage.ts +15 -15
- package/tests/user/helpers.ts +9 -9
- package/tests/user/test.ts +13 -10
- package/tsconfig.json +1 -0
- 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/deprecatedAlias.d.ts +0 -26
- package/lib/browser/util/deprecatedAlias.js +0 -10
- 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/idl/drift.d.ts.map +0 -1
- 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/deprecatedAlias.d.ts +0 -27
- package/lib/node/util/deprecatedAlias.d.ts.map +0 -1
- package/lib/node/util/deprecatedAlias.js +0 -10
- 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/src/constants/insuranceFund.ts +0 -8
- package/src/tx/forwardOnlyTxSender.ts +0 -145
- package/src/util/deprecatedAlias.ts +0 -21
- package/src/util/tps.ts +0 -27
- /package/lib/browser/idl/{drift.js → velocity.js} +0 -0
- /package/lib/node/idl/{drift.js → velocity.js} +0 -0
- /package/tests/{DriftCore → VelocityCore}/perp_orders.test.ts +0 -0
- /package/tests/{DriftCore → VelocityCore}/remainingAccounts.test.ts +0 -0
- /package/tests/{DriftCore → VelocityCore}/settlement_liquidation.test.ts +0 -0
|
@@ -54,8 +54,6 @@ export type VelocityClientConfig = {
|
|
|
54
54
|
useHotWalletAdmin?: boolean;
|
|
55
55
|
coder?: Coder;
|
|
56
56
|
};
|
|
57
|
-
/** @deprecated Use `VelocityClientConfig` instead. `DriftClientConfig` will be removed in a future major. */
|
|
58
|
-
export type DriftClientConfig = VelocityClientConfig;
|
|
59
57
|
type GrpcVelocityClientAccountSubscriberCtor = new (grpcConfigs: GrpcConfigs, program: Program, perpMarketIndexes: number[], spotMarketIndexes: number[], oracleInfos: OracleInfo[], shouldFindAllMarketsAndOracles: boolean, delistedMarketSetting: DelistedMarketSetting) => grpcVelocityClientAccountSubscriberV2 | grpcVelocityClientAccountSubscriber;
|
|
60
58
|
type WsVelocityClientAccountSubscriberCtor = new (program: Program, perpMarketIndexes: number[], spotMarketIndexes: number[], oracleInfos: OracleInfo[], shouldFindAllMarketsAndOracles: boolean, delistedMarketSetting: DelistedMarketSetting) => WebSocketVelocityClientAccountSubscriber | WebSocketVelocityClientAccountSubscriberV2;
|
|
61
59
|
export type VelocityClientSubscriptionConfig = {
|
|
@@ -64,8 +62,6 @@ export type VelocityClientSubscriptionConfig = {
|
|
|
64
62
|
resubTimeoutMs?: number;
|
|
65
63
|
logResubMessages?: boolean;
|
|
66
64
|
velocityClientAccountSubscriber?: GrpcVelocityClientAccountSubscriberCtor;
|
|
67
|
-
/** @deprecated Use `velocityClientAccountSubscriber` instead. `driftClientAccountSubscriber` will be removed in a future major. */
|
|
68
|
-
driftClientAccountSubscriber?: GrpcVelocityClientAccountSubscriberCtor;
|
|
69
65
|
grpcMultiUserAccountSubscriber?: grpcMultiUserAccountSubscriber;
|
|
70
66
|
} | {
|
|
71
67
|
type: 'websocket';
|
|
@@ -76,13 +72,9 @@ export type VelocityClientSubscriptionConfig = {
|
|
|
76
72
|
perpMarketAccountSubscriber?: new (accountName: string, program: Program, accountPublicKey: PublicKey, decodeBuffer?: (buffer: Buffer) => any, resubOpts?: ResubOpts, commitment?: Commitment) => WebSocketAccountSubscriberV2<any> | WebSocketAccountSubscriber<any>;
|
|
77
73
|
/** If you use V2 here, whatever you pass for perpMarketAccountSubscriber will be ignored and it will use v2 under the hood regardless */
|
|
78
74
|
velocityClientAccountSubscriber?: WsVelocityClientAccountSubscriberCtor;
|
|
79
|
-
/** @deprecated Use `velocityClientAccountSubscriber` instead. `driftClientAccountSubscriber` will be removed in a future major. */
|
|
80
|
-
driftClientAccountSubscriber?: WsVelocityClientAccountSubscriberCtor;
|
|
81
75
|
} | {
|
|
82
76
|
type: 'polling';
|
|
83
77
|
accountLoader: BulkAccountLoader;
|
|
84
78
|
};
|
|
85
|
-
/** @deprecated Use `VelocityClientSubscriptionConfig` instead. `DriftClientSubscriptionConfig` will be removed in a future major. */
|
|
86
|
-
export type DriftClientSubscriptionConfig = VelocityClientSubscriptionConfig;
|
|
87
79
|
export {};
|
|
88
80
|
//# sourceMappingURL=velocityClientConfig.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"velocityClientConfig.d.ts","sourceRoot":"","sources":["../../src/velocityClientConfig.ts"],"names":[],"mappings":";;AAAA;;;;;;GAMG;AACH,OAAO,EACN,UAAU,EACV,cAAc,EACd,UAAU,EACV,SAAS,EACT,kBAAkB,EAClB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,EACN,WAAW,EACX,SAAS,EACT,qBAAqB,EACrB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,0BAA0B,EAAE,MAAM,uCAAuC,CAAC;AACnF,OAAO,EAAE,4BAA4B,EAAE,MAAM,yCAAyC,CAAC;AACvF,OAAO,EAAE,qCAAqC,EAAE,MAAM,kDAAkD,CAAC;AACzG,OAAO,EAAE,mCAAmC,EAAE,MAAM,gDAAgD,CAAC;AACrG,OAAO,EAAE,8BAA8B,EAAE,MAAM,2CAA2C,CAAC;AAC3F,OAAO,EAAE,iCAAiC,EAAE,MAAM,8CAA8C,CAAC;AACjG,OAAO,EAAE,wCAAwC,EAAE,MAAM,qDAAqD,CAAC;AAC/G,OAAO,EAAE,0CAA0C,EAAE,MAAM,uDAAuD,CAAC;AAEnH,MAAM,MAAM,oBAAoB,GAAG;IAClC,UAAU,EAAE,UAAU,CAAC;IACvB,MAAM,EAAE,OAAO,CAAC;IAChB,GAAG,CAAC,EAAE,WAAW,CAAC;IAClB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,mBAAmB,CAAC,EAAE,gCAAgC,CAAC;IACvD,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,yCAAyC;IACzC,iBAAiB,CAAC,EAAE,SAAS,CAAC;IAC9B,kBAAkB,CAAC,EAAE,SAAS,EAAE,CAAC;IACjC,WAAW,CAAC,EAAE,UAAU,EAAE,CAAC;IAC3B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,sBAAsB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAC/C,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,SAAS,CAAC,EAAE,kBAAkB,CAAC;IAC/B,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,qBAAqB,CAAC,EAAE,qBAAqB,CAAC;IAC9C,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,KAAK,CAAC,EAAE,KAAK,CAAC;CACd,CAAC;AAEF,
|
|
1
|
+
{"version":3,"file":"velocityClientConfig.d.ts","sourceRoot":"","sources":["../../src/velocityClientConfig.ts"],"names":[],"mappings":";;AAAA;;;;;;GAMG;AACH,OAAO,EACN,UAAU,EACV,cAAc,EACd,UAAU,EACV,SAAS,EACT,kBAAkB,EAClB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,EACN,WAAW,EACX,SAAS,EACT,qBAAqB,EACrB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,0BAA0B,EAAE,MAAM,uCAAuC,CAAC;AACnF,OAAO,EAAE,4BAA4B,EAAE,MAAM,yCAAyC,CAAC;AACvF,OAAO,EAAE,qCAAqC,EAAE,MAAM,kDAAkD,CAAC;AACzG,OAAO,EAAE,mCAAmC,EAAE,MAAM,gDAAgD,CAAC;AACrG,OAAO,EAAE,8BAA8B,EAAE,MAAM,2CAA2C,CAAC;AAC3F,OAAO,EAAE,iCAAiC,EAAE,MAAM,8CAA8C,CAAC;AACjG,OAAO,EAAE,wCAAwC,EAAE,MAAM,qDAAqD,CAAC;AAC/G,OAAO,EAAE,0CAA0C,EAAE,MAAM,uDAAuD,CAAC;AAEnH,MAAM,MAAM,oBAAoB,GAAG;IAClC,UAAU,EAAE,UAAU,CAAC;IACvB,MAAM,EAAE,OAAO,CAAC;IAChB,GAAG,CAAC,EAAE,WAAW,CAAC;IAClB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,mBAAmB,CAAC,EAAE,gCAAgC,CAAC;IACvD,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,yCAAyC;IACzC,iBAAiB,CAAC,EAAE,SAAS,CAAC;IAC9B,kBAAkB,CAAC,EAAE,SAAS,EAAE,CAAC;IACjC,WAAW,CAAC,EAAE,UAAU,EAAE,CAAC;IAC3B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,sBAAsB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAC/C,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,SAAS,CAAC,EAAE,kBAAkB,CAAC;IAC/B,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,qBAAqB,CAAC,EAAE,qBAAqB,CAAC;IAC9C,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,KAAK,CAAC,EAAE,KAAK,CAAC;CACd,CAAC;AAEF,KAAK,uCAAuC,GAAG,KAC9C,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,OAAO,EAChB,iBAAiB,EAAE,MAAM,EAAE,EAC3B,iBAAiB,EAAE,MAAM,EAAE,EAC3B,WAAW,EAAE,UAAU,EAAE,EACzB,8BAA8B,EAAE,OAAO,EACvC,qBAAqB,EAAE,qBAAqB,KAE1C,qCAAqC,GACrC,mCAAmC,CAAC;AAEvC,KAAK,qCAAqC,GAAG,KAC5C,OAAO,EAAE,OAAO,EAChB,iBAAiB,EAAE,MAAM,EAAE,EAC3B,iBAAiB,EAAE,MAAM,EAAE,EAC3B,WAAW,EAAE,UAAU,EAAE,EACzB,8BAA8B,EAAE,OAAO,EACvC,qBAAqB,EAAE,qBAAqB,KAE1C,wCAAwC,GACxC,0CAA0C,CAAC;AAE9C,MAAM,MAAM,gCAAgC,GACzC;IACA,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,WAAW,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,+BAA+B,CAAC,EAAE,uCAAuC,CAAC;IAC1E,8BAA8B,CAAC,EAAE,8BAA8B,CAAC;CAC/D,GACD;IACA,IAAI,EAAE,WAAW,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,4BAA4B,CAAC,EAAE,iCAAiC,CAAC,WAAW,CAAC,CAAC;IAC9E,2BAA2B,CAAC,EAAE,KAC7B,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,OAAO,EAChB,gBAAgB,EAAE,SAAS,EAC3B,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,GAAG,EACtC,SAAS,CAAC,EAAE,SAAS,EACrB,UAAU,CAAC,EAAE,UAAU,KACnB,4BAA4B,CAAC,GAAG,CAAC,GAAG,0BAA0B,CAAC,GAAG,CAAC,CAAC;IACzE,yIAAyI;IACzI,+BAA+B,CAAC,EAAE,qCAAqC,CAAC;CACvE,GACD;IACA,IAAI,EAAE,SAAS,CAAC;IAChB,aAAa,EAAE,iBAAiB,CAAC;CAChC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@velocity-exchange/sdk",
|
|
3
|
-
"version": "0.0
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"main": "lib/node/index.js",
|
|
5
5
|
"types": "lib/node/index.d.ts",
|
|
6
6
|
"module": "./lib/browser/index.js",
|
|
7
|
-
"homepage": "https://www.drift.trade/",
|
|
8
7
|
"repository": {
|
|
9
8
|
"type": "git",
|
|
10
|
-
"url": "git@github.com:drift-labs/protocol-v2.git"
|
|
9
|
+
"url": "git@github.com:drift-labs/protocol-v2-shadow.git"
|
|
11
10
|
},
|
|
12
11
|
"scripts": {
|
|
13
12
|
"lint": "eslint './**/*.{ts,tsx}' --quiet --format unix",
|
|
@@ -22,16 +21,16 @@
|
|
|
22
21
|
"test:ci": "mocha -r ts-node/register tests/ci/**/*.ts",
|
|
23
22
|
"test:dlob": "mocha -r ts-node/register tests/dlob/**/*.ts",
|
|
24
23
|
"test:events": "mocha -r ts-node/register tests/events/**/*.ts",
|
|
25
|
-
"test:
|
|
24
|
+
"test:velocitycore": "bun test tests/VelocityCore",
|
|
26
25
|
"patch-and-pub": "npm version patch --force && npm publish",
|
|
27
|
-
"prettify": "prettier --check './src
|
|
28
|
-
"prettify:fix": "prettier --write './{src,tests}
|
|
26
|
+
"prettify": "prettier --check './src/**/*.ts'",
|
|
27
|
+
"prettify:fix": "prettier --write './{src,tests}/**/*.ts'",
|
|
29
28
|
"version": "node ./scripts/updateVersion.js",
|
|
30
29
|
"circular-deps": "bunx madge --circular --circular --extensions ts src"
|
|
31
30
|
},
|
|
32
31
|
"keywords": [
|
|
33
|
-
"
|
|
34
|
-
"
|
|
32
|
+
"velocity-exchange",
|
|
33
|
+
"velocity",
|
|
35
34
|
"perps",
|
|
36
35
|
"velocity",
|
|
37
36
|
"velocity-exchange"
|
|
@@ -58,6 +57,7 @@
|
|
|
58
57
|
"gill": "0.10.2",
|
|
59
58
|
"nanoid": "3.3.4",
|
|
60
59
|
"node-cache": "5.1.2",
|
|
60
|
+
"node-fetch": "2.6.11",
|
|
61
61
|
"solana-bankrun": "0.4.0",
|
|
62
62
|
"strict-event-emitter-types": "2.0.0",
|
|
63
63
|
"tweetnacl": "1.0.3",
|
|
@@ -77,6 +77,7 @@
|
|
|
77
77
|
"@types/chai": "4.3.20",
|
|
78
78
|
"@types/jest": "28.1.8",
|
|
79
79
|
"@types/mocha": "9.1.1",
|
|
80
|
+
"@types/node-fetch": "2.6.11",
|
|
80
81
|
"@typescript-eslint/eslint-plugin": "6.21.0",
|
|
81
82
|
"@typescript-eslint/parser": "6.21.0",
|
|
82
83
|
"chai": "4.5.0",
|
|
@@ -100,7 +101,7 @@
|
|
|
100
101
|
"typescript": "5.4.5",
|
|
101
102
|
"vm-browserify": "1.1.2"
|
|
102
103
|
},
|
|
103
|
-
"description": "SDK for
|
|
104
|
+
"description": "SDK for Velocity Protocol",
|
|
104
105
|
"engines": {
|
|
105
106
|
"node": "^24.0.0"
|
|
106
107
|
},
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Connection, Keypair, PublicKey } from '@solana/web3.js';
|
|
2
2
|
import dotenv from 'dotenv';
|
|
3
3
|
import { AnchorProvider, Idl, Program, ProgramAccount, BN } from '@coral-xyz/anchor';
|
|
4
|
-
import
|
|
4
|
+
import velocityIDL from '../src/idl/velocity.json';
|
|
5
5
|
import {
|
|
6
6
|
VELOCITY_PROGRAM_ID,
|
|
7
7
|
PerpMarketAccount,
|
|
@@ -35,7 +35,7 @@ async function main() {
|
|
|
35
35
|
commitment: 'processed',
|
|
36
36
|
});
|
|
37
37
|
const programId = new PublicKey(VELOCITY_PROGRAM_ID);
|
|
38
|
-
const program = new Program(
|
|
38
|
+
const program = new Program(velocityIDL as Idl, programId, provider);
|
|
39
39
|
|
|
40
40
|
const allPerpMarketProgramAccounts =
|
|
41
41
|
(await program.account.perpMarket.all()) as ProgramAccount<PerpMarketAccount>[];
|
|
@@ -18,14 +18,14 @@ import {
|
|
|
18
18
|
Program,
|
|
19
19
|
ProgramAccount,
|
|
20
20
|
} from '@coral-xyz/anchor';
|
|
21
|
-
import
|
|
21
|
+
import velocityIDL from '../src/idl/velocity.json';
|
|
22
22
|
import assert from 'assert';
|
|
23
23
|
|
|
24
24
|
const GRPC_ENDPOINT = process.env.GRPC_ENDPOINT;
|
|
25
25
|
const TOKEN = process.env.TOKEN;
|
|
26
26
|
const RPC_ENDPOINT = process.env.RPC_ENDPOINT;
|
|
27
27
|
|
|
28
|
-
async function
|
|
28
|
+
async function initializeGrpcVelocityClientV2VersusV1() {
|
|
29
29
|
const connection = new Connection(RPC_ENDPOINT);
|
|
30
30
|
const wallet = new Wallet(new Keypair());
|
|
31
31
|
dotenv.config({ path: '../' });
|
|
@@ -40,7 +40,7 @@ async function initializeGrpcDriftClientV2VersusV1() {
|
|
|
40
40
|
}
|
|
41
41
|
);
|
|
42
42
|
|
|
43
|
-
const program = new Program(
|
|
43
|
+
const program = new Program(velocityIDL as Idl, programId, provider);
|
|
44
44
|
|
|
45
45
|
const allPerpMarketProgramAccounts =
|
|
46
46
|
(await program.account.perpMarket.all()) as ProgramAccount<PerpMarketAccount>[];
|
|
@@ -369,4 +369,4 @@ async function initializeGrpcDriftClientV2VersusV1() {
|
|
|
369
369
|
process.on('SIGTERM', cleanup);
|
|
370
370
|
}
|
|
371
371
|
|
|
372
|
-
|
|
372
|
+
initializeGrpcVelocityClientV2VersusV1().catch(console.error);
|
|
@@ -4,7 +4,7 @@ import { Connection, Keypair, PublicKey } from '@solana/web3.js';
|
|
|
4
4
|
import { VELOCITY_PROGRAM_ID } from '../src';
|
|
5
5
|
import { CommitmentLevel } from '@triton-one/yellowstone-grpc';
|
|
6
6
|
import { AnchorProvider, Idl, Program } from '@coral-xyz/anchor';
|
|
7
|
-
import
|
|
7
|
+
import velocityIDL from '../src/idl/velocity.json';
|
|
8
8
|
import assert from 'assert';
|
|
9
9
|
import { Wallet } from '../src';
|
|
10
10
|
|
|
@@ -40,7 +40,7 @@ async function testGrpcUserAccountSubscriberV1VsV2() {
|
|
|
40
40
|
}
|
|
41
41
|
);
|
|
42
42
|
|
|
43
|
-
const program = new Program(
|
|
43
|
+
const program = new Program(velocityIDL as Idl, programId, provider);
|
|
44
44
|
|
|
45
45
|
const grpcConfigs = {
|
|
46
46
|
endpoint: GRPC_ENDPOINT,
|
|
@@ -18,7 +18,7 @@ import {
|
|
|
18
18
|
Program,
|
|
19
19
|
ProgramAccount,
|
|
20
20
|
} from '@coral-xyz/anchor';
|
|
21
|
-
import
|
|
21
|
+
import velocityIDL from '../src/idl/velocity.json';
|
|
22
22
|
import { grpcMultiUserAccountSubscriber } from '../src/accounts/grpcMultiUserAccountSubscriber';
|
|
23
23
|
|
|
24
24
|
const GRPC_ENDPOINT = process.env.GRPC_ENDPOINT;
|
|
@@ -26,7 +26,7 @@ const TOKEN = process.env.TOKEN;
|
|
|
26
26
|
const RPC_ENDPOINT = process.env.RPC_ENDPOINT;
|
|
27
27
|
|
|
28
28
|
async function initializeSingleGrpcClient() {
|
|
29
|
-
console.log('🚀 Initializing single gRPC
|
|
29
|
+
console.log('🚀 Initializing single gRPC Velocity Client...');
|
|
30
30
|
|
|
31
31
|
const connection = new Connection(RPC_ENDPOINT);
|
|
32
32
|
const wallet = new Wallet(new Keypair());
|
|
@@ -42,7 +42,7 @@ async function initializeSingleGrpcClient() {
|
|
|
42
42
|
}
|
|
43
43
|
);
|
|
44
44
|
|
|
45
|
-
const program = new Program(
|
|
45
|
+
const program = new Program(velocityIDL as Idl, programId, provider);
|
|
46
46
|
|
|
47
47
|
// Get perp market accounts
|
|
48
48
|
const allPerpMarketProgramAccounts =
|
package/scripts/updateVersion.js
CHANGED
|
@@ -8,10 +8,10 @@ let version = fs.readFileSync(versionFilePath, 'utf8');
|
|
|
8
8
|
version = version.replace(/\n/g, '');
|
|
9
9
|
|
|
10
10
|
const filesToReplace = [
|
|
11
|
-
// sdk/src/idl/
|
|
12
|
-
path.join(__dirname, '..', 'src', 'idl', '
|
|
13
|
-
// programs/
|
|
14
|
-
path.join(__dirname, '..', '..', 'programs', '
|
|
11
|
+
// sdk/src/idl/velocity.json
|
|
12
|
+
path.join(__dirname, '..', 'src', 'idl', 'velocity.json'),
|
|
13
|
+
// programs/velocity/Cargo.toml
|
|
14
|
+
path.join(__dirname, '..', '..', 'programs', 'velocity', 'Cargo.toml'),
|
|
15
15
|
// Cargo.lock
|
|
16
16
|
path.join(__dirname, '..', '..', 'Cargo.lock'),
|
|
17
17
|
]
|
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
Program,
|
|
7
7
|
ProgramAccount,
|
|
8
8
|
} from '@coral-xyz/anchor';
|
|
9
|
-
import
|
|
9
|
+
import velocityIDL from '../src/idl/velocity.json';
|
|
10
10
|
import {
|
|
11
11
|
VELOCITY_PROGRAM_ID,
|
|
12
12
|
PerpMarketAccount,
|
|
@@ -53,7 +53,7 @@ async function main() {
|
|
|
53
53
|
commitment: 'processed',
|
|
54
54
|
});
|
|
55
55
|
const programId = new PublicKey(VELOCITY_PROGRAM_ID);
|
|
56
|
-
const program = new Program(
|
|
56
|
+
const program = new Program(velocityIDL as Idl, programId, provider);
|
|
57
57
|
|
|
58
58
|
// Discover markets and oracles (like the example test script)
|
|
59
59
|
const allPerpMarketProgramAccounts =
|
|
@@ -16,7 +16,7 @@ export class BasicUserAccountSubscriber implements UserAccountSubscriber {
|
|
|
16
16
|
callbackId?: string;
|
|
17
17
|
errorCallbackId?: string;
|
|
18
18
|
|
|
19
|
-
user
|
|
19
|
+
user?: DataAndSlot<UserAccount>;
|
|
20
20
|
|
|
21
21
|
public constructor(
|
|
22
22
|
userAccountPublicKey: PublicKey,
|
|
@@ -26,7 +26,9 @@ export class BasicUserAccountSubscriber implements UserAccountSubscriber {
|
|
|
26
26
|
this.isSubscribed = true;
|
|
27
27
|
this.eventEmitter = new EventEmitter();
|
|
28
28
|
this.userAccountPublicKey = userAccountPublicKey;
|
|
29
|
-
|
|
29
|
+
// `slot ?? 0` keeps {data, slot} atomic: a seeded account always carries a
|
|
30
|
+
// slot (0 = oldest-possible sentinel, overwritten by the first real fetch).
|
|
31
|
+
this.user = data ? { data, slot: slot ?? 0 } : undefined;
|
|
30
32
|
}
|
|
31
33
|
|
|
32
34
|
async subscribe(_userAccount?: UserAccount): Promise<boolean> {
|
|
@@ -37,7 +39,7 @@ export class BasicUserAccountSubscriber implements UserAccountSubscriber {
|
|
|
37
39
|
|
|
38
40
|
async fetch(): Promise<void> {}
|
|
39
41
|
|
|
40
|
-
doesAccountExist():
|
|
42
|
+
doesAccountExist(): this is { user: DataAndSlot<UserAccount> } {
|
|
41
43
|
return this.user !== undefined;
|
|
42
44
|
}
|
|
43
45
|
|
|
@@ -45,12 +47,12 @@ export class BasicUserAccountSubscriber implements UserAccountSubscriber {
|
|
|
45
47
|
|
|
46
48
|
assertIsSubscribed(): void {}
|
|
47
49
|
|
|
48
|
-
public getUserAccountAndSlot(): DataAndSlot<UserAccount> {
|
|
50
|
+
public getUserAccountAndSlot(): DataAndSlot<UserAccount> | undefined {
|
|
49
51
|
return this.user;
|
|
50
52
|
}
|
|
51
53
|
|
|
52
54
|
public updateData(userAccount: UserAccount, slot: number): void {
|
|
53
|
-
if (!this.user || slot >=
|
|
55
|
+
if (!this.user || slot >= this.user.slot) {
|
|
54
56
|
this.user = { data: userAccount, slot };
|
|
55
57
|
this.eventEmitter.emit('userAccountUpdate', userAccount);
|
|
56
58
|
this.eventEmitter.emit('update');
|
|
@@ -22,7 +22,7 @@ export class BasicUserStatsAccountSubscriber
|
|
|
22
22
|
callbackId?: string;
|
|
23
23
|
errorCallbackId?: string;
|
|
24
24
|
|
|
25
|
-
userStats
|
|
25
|
+
userStats?: DataAndSlot<UserStatsAccount>;
|
|
26
26
|
|
|
27
27
|
public constructor(
|
|
28
28
|
userStatsAccountPublicKey: PublicKey,
|
|
@@ -32,7 +32,9 @@ export class BasicUserStatsAccountSubscriber
|
|
|
32
32
|
this.isSubscribed = true;
|
|
33
33
|
this.eventEmitter = new EventEmitter();
|
|
34
34
|
this.userStatsAccountPublicKey = userStatsAccountPublicKey;
|
|
35
|
-
|
|
35
|
+
// `slot ?? 0` keeps {data, slot} atomic: a seeded account always carries a
|
|
36
|
+
// slot (0 = oldest-possible sentinel, overwritten by the first real fetch).
|
|
37
|
+
this.userStats = data ? { data, slot: slot ?? 0 } : undefined;
|
|
36
38
|
}
|
|
37
39
|
|
|
38
40
|
async subscribe(_userStatsAccount?: UserStatsAccount): Promise<boolean> {
|
|
@@ -43,7 +45,7 @@ export class BasicUserStatsAccountSubscriber
|
|
|
43
45
|
|
|
44
46
|
async fetch(): Promise<void> {}
|
|
45
47
|
|
|
46
|
-
doesAccountExist():
|
|
48
|
+
doesAccountExist(): this is { userStats: DataAndSlot<UserStatsAccount> } {
|
|
47
49
|
return this.userStats !== undefined;
|
|
48
50
|
}
|
|
49
51
|
|
|
@@ -51,12 +53,14 @@ export class BasicUserStatsAccountSubscriber
|
|
|
51
53
|
|
|
52
54
|
assertIsSubscribed(): void {}
|
|
53
55
|
|
|
54
|
-
public getUserStatsAccountAndSlot():
|
|
56
|
+
public getUserStatsAccountAndSlot():
|
|
57
|
+
| DataAndSlot<UserStatsAccount>
|
|
58
|
+
| undefined {
|
|
55
59
|
return this.userStats;
|
|
56
60
|
}
|
|
57
61
|
|
|
58
62
|
public updateData(userStatsAccount: UserStatsAccount, slot: number): void {
|
|
59
|
-
if (!this.userStats || slot >=
|
|
63
|
+
if (!this.userStats || slot >= this.userStats.slot) {
|
|
60
64
|
this.userStats = { data: userStatsAccount, slot };
|
|
61
65
|
this.eventEmitter.emit('userStatsAccountUpdate', userStatsAccount);
|
|
62
66
|
this.eventEmitter.emit('update');
|
|
@@ -18,11 +18,11 @@ export class BulkAccountLoader {
|
|
|
18
18
|
pollingFrequency: number;
|
|
19
19
|
accountsToLoad = new Map<string, AccountToLoad>();
|
|
20
20
|
bufferAndSlotMap = new Map<string, BufferAndSlot>();
|
|
21
|
-
errorCallbacks = new Map<string, (e) => void>();
|
|
21
|
+
errorCallbacks = new Map<string, (e: Error) => void>();
|
|
22
22
|
intervalId?: ReturnType<typeof setTimeout>;
|
|
23
23
|
// to handle clients spamming load
|
|
24
24
|
loadPromise?: Promise<void>;
|
|
25
|
-
loadPromiseResolver: () => void;
|
|
25
|
+
private loadPromiseResolver: () => void = () => {};
|
|
26
26
|
lastTimeLoadingPromiseCleared = Date.now();
|
|
27
27
|
mostRecentSlot = 0;
|
|
28
28
|
|
|
@@ -73,7 +73,13 @@ export class BulkAccountLoader {
|
|
|
73
73
|
return callbackId;
|
|
74
74
|
}
|
|
75
75
|
|
|
76
|
-
public removeAccount(
|
|
76
|
+
public removeAccount(
|
|
77
|
+
publicKey: PublicKey,
|
|
78
|
+
callbackId: string | undefined
|
|
79
|
+
): void {
|
|
80
|
+
if (callbackId === undefined) {
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
77
83
|
const existingAccountToLoad = this.accountsToLoad.get(publicKey.toString());
|
|
78
84
|
if (existingAccountToLoad) {
|
|
79
85
|
existingAccountToLoad.callbacks.delete(callbackId);
|
|
@@ -94,7 +100,10 @@ export class BulkAccountLoader {
|
|
|
94
100
|
return callbackId;
|
|
95
101
|
}
|
|
96
102
|
|
|
97
|
-
public removeErrorCallbacks(callbackId: string): void {
|
|
103
|
+
public removeErrorCallbacks(callbackId: string | undefined): void {
|
|
104
|
+
if (callbackId === undefined) {
|
|
105
|
+
return;
|
|
106
|
+
}
|
|
98
107
|
this.errorCallbacks.delete(callbackId);
|
|
99
108
|
}
|
|
100
109
|
|
|
@@ -137,8 +146,9 @@ export class BulkAccountLoader {
|
|
|
137
146
|
} catch (e) {
|
|
138
147
|
console.error(`Error in bulkAccountLoader.load()`);
|
|
139
148
|
console.error(e);
|
|
149
|
+
const error = e instanceof Error ? e : new Error(String(e));
|
|
140
150
|
for (const [_, callback] of this.errorCallbacks) {
|
|
141
|
-
callback(
|
|
151
|
+
callback(error);
|
|
142
152
|
}
|
|
143
153
|
} finally {
|
|
144
154
|
this.loadPromiseResolver();
|
|
@@ -179,7 +189,7 @@ export class BulkAccountLoader {
|
|
|
179
189
|
return;
|
|
180
190
|
}
|
|
181
191
|
|
|
182
|
-
rpcResponses.forEach((rpcResponse, i) => {
|
|
192
|
+
rpcResponses.forEach((rpcResponse: any, i: number) => {
|
|
183
193
|
if (!rpcResponse.result) {
|
|
184
194
|
console.error('rpc response missing result:');
|
|
185
195
|
console.log(JSON.stringify(rpcResponse));
|
|
@@ -234,9 +244,12 @@ export class BulkAccountLoader {
|
|
|
234
244
|
|
|
235
245
|
handleAccountCallbacks(
|
|
236
246
|
accountToLoad: AccountToLoad,
|
|
237
|
-
buffer: Buffer,
|
|
247
|
+
buffer: Buffer | undefined,
|
|
238
248
|
slot: number
|
|
239
249
|
): void {
|
|
250
|
+
if (buffer === undefined) {
|
|
251
|
+
return;
|
|
252
|
+
}
|
|
240
253
|
for (const [_, callback] of accountToLoad.callbacks) {
|
|
241
254
|
try {
|
|
242
255
|
callback(buffer, slot);
|
|
@@ -15,7 +15,15 @@ import {
|
|
|
15
15
|
|
|
16
16
|
export class grpcAccountSubscriber<T> extends WebSocketAccountSubscriber<T> {
|
|
17
17
|
private client: Client;
|
|
18
|
-
private
|
|
18
|
+
private _stream?: ClientDuplexStream;
|
|
19
|
+
private get stream(): ClientDuplexStream {
|
|
20
|
+
if (!this._stream) {
|
|
21
|
+
throw new Error(
|
|
22
|
+
'grpcAccountSubscriber: stream accessed before subscribe()'
|
|
23
|
+
);
|
|
24
|
+
}
|
|
25
|
+
return this._stream;
|
|
26
|
+
}
|
|
19
27
|
private commitmentLevel: CommitmentLevel;
|
|
20
28
|
public listenerId?: number;
|
|
21
29
|
|
|
@@ -75,7 +83,7 @@ export class grpcAccountSubscriber<T> extends WebSocketAccountSubscriber<T> {
|
|
|
75
83
|
}
|
|
76
84
|
|
|
77
85
|
// Subscribe with grpc
|
|
78
|
-
this.
|
|
86
|
+
this._stream =
|
|
79
87
|
(await this.client.subscribe()) as unknown as typeof this.stream;
|
|
80
88
|
const request: SubscribeRequest = {
|
|
81
89
|
slots: {},
|
|
@@ -95,7 +103,7 @@ export class grpcAccountSubscriber<T> extends WebSocketAccountSubscriber<T> {
|
|
|
95
103
|
transactionsStatus: {},
|
|
96
104
|
};
|
|
97
105
|
this.stream.on('data', (chunk: SubscribeUpdate) => {
|
|
98
|
-
if (!chunk.account) {
|
|
106
|
+
if (!chunk.account || !chunk.account.account) {
|
|
99
107
|
return;
|
|
100
108
|
}
|
|
101
109
|
const slot = Number(chunk.account.slot);
|
|
@@ -38,7 +38,15 @@ function commitmentLevelToCommitment(
|
|
|
38
38
|
|
|
39
39
|
export class grpcMultiAccountSubscriber<T, U = undefined> {
|
|
40
40
|
private client: Client;
|
|
41
|
-
private
|
|
41
|
+
private _stream?: ClientDuplexStream;
|
|
42
|
+
private get stream(): ClientDuplexStream {
|
|
43
|
+
if (!this._stream) {
|
|
44
|
+
throw new Error(
|
|
45
|
+
'grpcMultiAccountSubscriber: stream accessed before subscribe()'
|
|
46
|
+
);
|
|
47
|
+
}
|
|
48
|
+
return this._stream;
|
|
49
|
+
}
|
|
42
50
|
private commitmentLevel: CommitmentLevel;
|
|
43
51
|
private program: VelocityProgram;
|
|
44
52
|
private accountName: string;
|
|
@@ -58,7 +66,12 @@ export class grpcMultiAccountSubscriber<T, U = undefined> {
|
|
|
58
66
|
private subscribedAccounts = new Set<string>();
|
|
59
67
|
private onChangeMap = new Map<
|
|
60
68
|
string,
|
|
61
|
-
(
|
|
69
|
+
(
|
|
70
|
+
data: T,
|
|
71
|
+
context: Context,
|
|
72
|
+
buffer: Buffer,
|
|
73
|
+
accountProps: U | undefined
|
|
74
|
+
) => void
|
|
62
75
|
>();
|
|
63
76
|
|
|
64
77
|
private dataMap = new Map<string, DataAndSlot<T>>();
|
|
@@ -82,7 +95,9 @@ export class grpcMultiAccountSubscriber<T, U = undefined> {
|
|
|
82
95
|
this.decodeBufferFn = decodeBuffer;
|
|
83
96
|
this.resubOpts = resubOpts;
|
|
84
97
|
this.onUnsubscribe = onUnsubscribe;
|
|
85
|
-
|
|
98
|
+
if (accountPropsMap) {
|
|
99
|
+
this.accountPropsMap = accountPropsMap;
|
|
100
|
+
}
|
|
86
101
|
}
|
|
87
102
|
|
|
88
103
|
public static async create<T, U = undefined>(
|
|
@@ -119,7 +134,7 @@ export class grpcMultiAccountSubscriber<T, U = undefined> {
|
|
|
119
134
|
}
|
|
120
135
|
|
|
121
136
|
setAccountData(accountPubkey: string, data: T, slot?: number): void {
|
|
122
|
-
this.dataMap.set(accountPubkey, { data, slot });
|
|
137
|
+
this.dataMap.set(accountPubkey, { data, slot: slot ?? 0 });
|
|
123
138
|
}
|
|
124
139
|
|
|
125
140
|
getAccountData(accountPubkey: string): DataAndSlot<T> | undefined {
|
|
@@ -205,7 +220,7 @@ export class grpcMultiAccountSubscriber<T, U = undefined> {
|
|
|
205
220
|
data: T,
|
|
206
221
|
context: Context,
|
|
207
222
|
buffer: Buffer,
|
|
208
|
-
accountProps: U
|
|
223
|
+
accountProps: U | undefined
|
|
209
224
|
) => void
|
|
210
225
|
): Promise<void> {
|
|
211
226
|
if (this.resubOpts?.logResubMessages) {
|
|
@@ -225,7 +240,7 @@ export class grpcMultiAccountSubscriber<T, U = undefined> {
|
|
|
225
240
|
});
|
|
226
241
|
}
|
|
227
242
|
|
|
228
|
-
this.
|
|
243
|
+
this._stream =
|
|
229
244
|
(await this.client.subscribe()) as unknown as typeof this.stream;
|
|
230
245
|
const request: SubscribeRequest = {
|
|
231
246
|
slots: {},
|
|
@@ -246,7 +261,7 @@ export class grpcMultiAccountSubscriber<T, U = undefined> {
|
|
|
246
261
|
};
|
|
247
262
|
|
|
248
263
|
this.stream.on('data', (chunk: SubscribeUpdate) => {
|
|
249
|
-
if (!chunk.account) {
|
|
264
|
+
if (!chunk.account || !chunk.account.account) {
|
|
250
265
|
return;
|
|
251
266
|
}
|
|
252
267
|
const slot = Number(chunk.account.slot);
|
|
@@ -300,11 +315,11 @@ export class grpcMultiAccountSubscriber<T, U = undefined> {
|
|
|
300
315
|
const handleDataBuffer = (
|
|
301
316
|
context: Context,
|
|
302
317
|
buffer: Buffer,
|
|
303
|
-
accountProps: U
|
|
318
|
+
accountProps: U | undefined
|
|
304
319
|
) => {
|
|
305
320
|
const data = this.decodeBufferFn
|
|
306
321
|
? this.decodeBufferFn(buffer, accountPubkey, accountProps)
|
|
307
|
-
: this.program.
|
|
322
|
+
: this.program.coder.accounts.decode(
|
|
308
323
|
this.capitalize(this.accountName),
|
|
309
324
|
buffer
|
|
310
325
|
);
|
|
@@ -15,7 +15,15 @@ import { grpcMultiAccountSubscriber } from './grpcMultiAccountSubscriber';
|
|
|
15
15
|
|
|
16
16
|
export class grpcMultiUserAccountSubscriber {
|
|
17
17
|
private program: VelocityProgram;
|
|
18
|
-
private
|
|
18
|
+
private _multiSubscriber?: grpcMultiAccountSubscriber<UserAccount>;
|
|
19
|
+
private get multiSubscriber(): grpcMultiAccountSubscriber<UserAccount> {
|
|
20
|
+
if (!this._multiSubscriber) {
|
|
21
|
+
throw new Error(
|
|
22
|
+
'grpcMultiUserAccountSubscriber: multiSubscriber accessed before subscribe()'
|
|
23
|
+
);
|
|
24
|
+
}
|
|
25
|
+
return this._multiSubscriber;
|
|
26
|
+
}
|
|
19
27
|
|
|
20
28
|
private userData = new Map<string, DataAndSlot<UserAccount>>();
|
|
21
29
|
private listeners = new Map<
|
|
@@ -56,14 +64,16 @@ export class grpcMultiUserAccountSubscriber {
|
|
|
56
64
|
multiSubscriber?: grpcMultiAccountSubscriber<UserAccount>
|
|
57
65
|
) {
|
|
58
66
|
this.program = program;
|
|
59
|
-
|
|
67
|
+
if (multiSubscriber) {
|
|
68
|
+
this._multiSubscriber = multiSubscriber;
|
|
69
|
+
}
|
|
60
70
|
this.grpcConfigs = grpcConfigs;
|
|
61
71
|
this.resubOpts = resubOpts;
|
|
62
72
|
}
|
|
63
73
|
|
|
64
74
|
public async subscribe(): Promise<void> {
|
|
65
|
-
if (!this.
|
|
66
|
-
this.
|
|
75
|
+
if (!this._multiSubscriber) {
|
|
76
|
+
this._multiSubscriber =
|
|
67
77
|
await grpcMultiAccountSubscriber.create<UserAccount>(
|
|
68
78
|
this.grpcConfigs,
|
|
69
79
|
'user',
|
|
@@ -189,14 +199,8 @@ export class grpcMultiUserAccountSubscriber {
|
|
|
189
199
|
isSubscribed = false;
|
|
190
200
|
},
|
|
191
201
|
|
|
192
|
-
getUserAccountAndSlot(): DataAndSlot<UserAccount> {
|
|
193
|
-
|
|
194
|
-
if (!das) {
|
|
195
|
-
throw new NotSubscribedError(
|
|
196
|
-
'Must subscribe before getting user account data'
|
|
197
|
-
);
|
|
198
|
-
}
|
|
199
|
-
return das;
|
|
202
|
+
getUserAccountAndSlot(): DataAndSlot<UserAccount> | undefined {
|
|
203
|
+
return parent.userData.get(key);
|
|
200
204
|
},
|
|
201
205
|
};
|
|
202
206
|
|
|
@@ -15,7 +15,15 @@ export class grpcProgramAccountSubscriber<
|
|
|
15
15
|
T,
|
|
16
16
|
> extends WebSocketProgramAccountSubscriber<T> {
|
|
17
17
|
private client: Client;
|
|
18
|
-
private
|
|
18
|
+
private _stream?: Awaited<ReturnType<Client['subscribe']>>;
|
|
19
|
+
private get stream(): Awaited<ReturnType<Client['subscribe']>> {
|
|
20
|
+
if (!this._stream) {
|
|
21
|
+
throw new Error(
|
|
22
|
+
'grpcProgramAccountSubscriber: stream accessed before subscribe()'
|
|
23
|
+
);
|
|
24
|
+
}
|
|
25
|
+
return this._stream;
|
|
26
|
+
}
|
|
19
27
|
private commitmentLevel: CommitmentLevel;
|
|
20
28
|
public listenerId?: number;
|
|
21
29
|
|
|
@@ -95,7 +103,7 @@ export class grpcProgramAccountSubscriber<
|
|
|
95
103
|
this.onChange = onChange;
|
|
96
104
|
|
|
97
105
|
// Subscribe with grpc
|
|
98
|
-
this.
|
|
106
|
+
this._stream = await this.client.subscribe();
|
|
99
107
|
|
|
100
108
|
const filters = this.options.filters.map((filter) => {
|
|
101
109
|
return {
|
|
@@ -109,7 +117,7 @@ export class grpcProgramAccountSubscriber<
|
|
|
109
117
|
const request: SubscribeRequest = {
|
|
110
118
|
slots: {},
|
|
111
119
|
accounts: {
|
|
112
|
-
|
|
120
|
+
velocity: {
|
|
113
121
|
account: [],
|
|
114
122
|
owner: [this.program.programId.toBase58()],
|
|
115
123
|
filters,
|
|
@@ -125,7 +133,7 @@ export class grpcProgramAccountSubscriber<
|
|
|
125
133
|
};
|
|
126
134
|
|
|
127
135
|
this.stream.on('data', (chunk: SubscribeUpdate) => {
|
|
128
|
-
if (!chunk.account) {
|
|
136
|
+
if (!chunk.account || !chunk.account.account) {
|
|
129
137
|
return;
|
|
130
138
|
}
|
|
131
139
|
const slot = Number(chunk.account.slot);
|