@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
|
@@ -5,12 +5,13 @@ import { GrpcConfigs, UserAccountSubscriber } from './accounts/types';
|
|
|
5
5
|
import { WebSocketProgramAccountSubscriber } from './accounts/webSocketProgramAccountSubscriber';
|
|
6
6
|
import { UserAccount } from './types';
|
|
7
7
|
import { grpcMultiUserAccountSubscriber } from './accounts/grpcMultiUserAccountSubscriber';
|
|
8
|
-
import { AtLeastOne } from './util/deprecatedAlias';
|
|
9
8
|
type UserConfigBase = {
|
|
10
9
|
accountSubscription?: UserSubscriptionConfig;
|
|
11
10
|
userAccountPublicKey: PublicKey;
|
|
12
11
|
};
|
|
13
|
-
export type UserConfig = UserConfigBase &
|
|
12
|
+
export type UserConfig = UserConfigBase & {
|
|
13
|
+
velocityClient: VelocityClient;
|
|
14
|
+
};
|
|
14
15
|
export type UserSubscriptionConfig = {
|
|
15
16
|
type: 'grpc';
|
|
16
17
|
resubTimeoutMs?: number;
|
|
@@ -12,7 +12,7 @@ export declare class WebsocketSubscription {
|
|
|
12
12
|
private includeIdle?;
|
|
13
13
|
private additionalFilters?;
|
|
14
14
|
private decodeFn;
|
|
15
|
-
private subscriber
|
|
15
|
+
private subscriber?;
|
|
16
16
|
constructor({ userMap, commitment, skipInitialLoad, resubOpts, includeIdle, decodeFn, additionalFilters, }: {
|
|
17
17
|
userMap: UserMap;
|
|
18
18
|
commitment: Commitment;
|
|
@@ -22,7 +22,7 @@ class WebsocketSubscription {
|
|
|
22
22
|
if (this.additionalFilters) {
|
|
23
23
|
filters.push(...this.additionalFilters);
|
|
24
24
|
}
|
|
25
|
-
this.subscriber = new webSocketProgramAccountSubscriber_1.WebSocketProgramAccountSubscriber('UserMap', 'user', this.userMap.
|
|
25
|
+
this.subscriber = new webSocketProgramAccountSubscriber_1.WebSocketProgramAccountSubscriber('UserMap', 'user', this.userMap.velocityClient.program, this.decodeFn, {
|
|
26
26
|
filters,
|
|
27
27
|
commitment: this.commitment,
|
|
28
28
|
}, this.resubOpts);
|
|
@@ -12,7 +12,7 @@ export declare class grpcSubscription {
|
|
|
12
12
|
private includeIdle?;
|
|
13
13
|
private additionalFilters?;
|
|
14
14
|
private decodeFn;
|
|
15
|
-
private subscriber
|
|
15
|
+
private subscriber?;
|
|
16
16
|
constructor({ grpcConfigs, userMap, skipInitialLoad, resubOpts, includeIdle, decodeFn, additionalFilters, }: {
|
|
17
17
|
grpcConfigs: GrpcConfigs;
|
|
18
18
|
userMap: UserMap;
|
|
@@ -22,7 +22,7 @@ class grpcSubscription {
|
|
|
22
22
|
if (this.additionalFilters) {
|
|
23
23
|
filters.push(...this.additionalFilters);
|
|
24
24
|
}
|
|
25
|
-
this.subscriber = await grpcProgramAccountSubscriber_1.grpcProgramAccountSubscriber.create(this.grpcConfigs, 'UserMap', 'user', this.userMap.
|
|
25
|
+
this.subscriber = await grpcProgramAccountSubscriber_1.grpcProgramAccountSubscriber.create(this.grpcConfigs, 'UserMap', 'user', this.userMap.velocityClient.program, this.decodeFn, {
|
|
26
26
|
filters,
|
|
27
27
|
}, this.resubOpts);
|
|
28
28
|
}
|
|
@@ -12,8 +12,6 @@ export declare class ReferrerMap {
|
|
|
12
12
|
*/
|
|
13
13
|
private referrerReferrerInfoMap;
|
|
14
14
|
private velocityClient;
|
|
15
|
-
/** @deprecated Use `velocityClient` instead. `driftClient` will be removed in a future major. */
|
|
16
|
-
private get driftClient();
|
|
17
15
|
private parallelSync;
|
|
18
16
|
private fetchPromise?;
|
|
19
17
|
private fetchPromiseResolver;
|
|
@@ -10,10 +10,6 @@ const memcmp_1 = require("../memcmp");
|
|
|
10
10
|
const bs58_1 = __importDefault(require("bs58"));
|
|
11
11
|
const DEFAULT_PUBLIC_KEY = web3_js_1.PublicKey.default.toBase58();
|
|
12
12
|
class ReferrerMap {
|
|
13
|
-
/** @deprecated Use `velocityClient` instead. `driftClient` will be removed in a future major. */
|
|
14
|
-
get driftClient() {
|
|
15
|
-
return this.velocityClient;
|
|
16
|
-
}
|
|
17
13
|
/**
|
|
18
14
|
* Creates a new UserStatsMap instance.
|
|
19
15
|
*
|
|
@@ -29,6 +25,7 @@ class ReferrerMap {
|
|
|
29
25
|
* Will be undefined if the referrer is not in the map yet.
|
|
30
26
|
*/
|
|
31
27
|
this.referrerReferrerInfoMap = new Map();
|
|
28
|
+
this.fetchPromiseResolver = () => { };
|
|
32
29
|
this.velocityClient = velocityClient;
|
|
33
30
|
this.parallelSync = parallelSync !== undefined ? parallelSync : true;
|
|
34
31
|
}
|
|
@@ -54,7 +51,11 @@ class ReferrerMap {
|
|
|
54
51
|
}
|
|
55
52
|
else if (referrer === undefined) {
|
|
56
53
|
const userStatsAccountPublicKey = (0, pda_1.getUserStatsAccountPublicKey)(this.velocityClient.program.programId, new web3_js_1.PublicKey(authority));
|
|
57
|
-
const
|
|
54
|
+
const accountInfo = await this.velocityClient.connection.getAccountInfo(userStatsAccountPublicKey, 'processed');
|
|
55
|
+
if (!accountInfo) {
|
|
56
|
+
throw new Error(`ReferrerMap: UserStats account not found for authority ${authority}`);
|
|
57
|
+
}
|
|
58
|
+
const buffer = accountInfo.data;
|
|
58
59
|
const referrer = bs58_1.default.encode(buffer.subarray(40, 72));
|
|
59
60
|
this.addReferrer(authority, referrer);
|
|
60
61
|
}
|
|
@@ -124,10 +125,11 @@ class ReferrerMap {
|
|
|
124
125
|
}
|
|
125
126
|
}
|
|
126
127
|
async syncAll() {
|
|
128
|
+
var _a;
|
|
127
129
|
const rpcRequestArgs = [
|
|
128
130
|
this.velocityClient.program.programId.toBase58(),
|
|
129
131
|
{
|
|
130
|
-
commitment: this.velocityClient.opts.commitment,
|
|
132
|
+
commitment: (_a = this.velocityClient.opts) === null || _a === void 0 ? void 0 : _a.commitment,
|
|
131
133
|
filters: [(0, memcmp_1.getUserStatsFilter)()],
|
|
132
134
|
encoding: 'base64',
|
|
133
135
|
dataSlice: {
|
|
@@ -150,10 +152,11 @@ class ReferrerMap {
|
|
|
150
152
|
}
|
|
151
153
|
}
|
|
152
154
|
async syncReferrer(referrerFilter) {
|
|
155
|
+
var _a;
|
|
153
156
|
const rpcRequestArgs = [
|
|
154
157
|
this.velocityClient.program.programId.toBase58(),
|
|
155
158
|
{
|
|
156
|
-
commitment: this.velocityClient.opts.commitment,
|
|
159
|
+
commitment: (_a = this.velocityClient.opts) === null || _a === void 0 ? void 0 : _a.commitment,
|
|
157
160
|
filters: [(0, memcmp_1.getUserStatsFilter)(), referrerFilter],
|
|
158
161
|
encoding: 'base64',
|
|
159
162
|
dataSlice: {
|
|
@@ -6,8 +6,6 @@ export declare class RevenueShareEscrowMap {
|
|
|
6
6
|
*/
|
|
7
7
|
private authorityEscrowMap;
|
|
8
8
|
private velocityClient;
|
|
9
|
-
/** @deprecated Use `velocityClient` instead. `driftClient` will be removed in a future major. */
|
|
10
|
-
private get driftClient();
|
|
11
9
|
private parallelSync;
|
|
12
10
|
private fetchPromise?;
|
|
13
11
|
private fetchPromiseResolver;
|
|
@@ -5,10 +5,6 @@ const web3_js_1 = require("@solana/web3.js");
|
|
|
5
5
|
const pda_1 = require("../addresses/pda");
|
|
6
6
|
const memcmp_1 = require("../memcmp");
|
|
7
7
|
class RevenueShareEscrowMap {
|
|
8
|
-
/** @deprecated Use `velocityClient` instead. `driftClient` will be removed in a future major. */
|
|
9
|
-
get driftClient() {
|
|
10
|
-
return this.velocityClient;
|
|
11
|
-
}
|
|
12
8
|
/**
|
|
13
9
|
* Creates a new RevenueShareEscrowMap instance.
|
|
14
10
|
*
|
|
@@ -20,6 +16,7 @@ class RevenueShareEscrowMap {
|
|
|
20
16
|
* map from authority pubkey to RevenueShareEscrow account data.
|
|
21
17
|
*/
|
|
22
18
|
this.authorityEscrowMap = new Map();
|
|
19
|
+
this.fetchPromiseResolver = () => { };
|
|
23
20
|
this.velocityClient = velocityClient;
|
|
24
21
|
this.parallelSync = parallelSync !== undefined ? parallelSync : true;
|
|
25
22
|
}
|
|
@@ -93,6 +90,9 @@ class RevenueShareEscrowMap {
|
|
|
93
90
|
}
|
|
94
91
|
for (const authority of this.authorityEscrowMap.keys()) {
|
|
95
92
|
const accountInfo = await this.velocityClient.connection.getAccountInfo((0, pda_1.getRevenueShareEscrowAccountPublicKey)(this.velocityClient.program.programId, new web3_js_1.PublicKey(authority)), 'confirmed');
|
|
93
|
+
if (accountInfo === null) {
|
|
94
|
+
throw new Error(`RevenueShareEscrow account not found for authority ${authority} during slowSync`);
|
|
95
|
+
}
|
|
96
96
|
const escrowNew = this.velocityClient.program.account.revenueShareEscrow.coder.accounts.decode('revenueShareEscrow', accountInfo.data);
|
|
97
97
|
this.authorityEscrowMap.set(authority, escrowNew);
|
|
98
98
|
}
|
|
@@ -30,8 +30,6 @@ export interface UserMapInterface {
|
|
|
30
30
|
export declare class UserMap implements UserMapInterface {
|
|
31
31
|
private userMap;
|
|
32
32
|
velocityClient: VelocityClient;
|
|
33
|
-
/** @deprecated Use `velocityClient` instead. `driftClient` will be removed in a future major. */
|
|
34
|
-
get driftClient(): VelocityClient;
|
|
35
33
|
eventEmitter: StrictEventEmitter<EventEmitter, UserEvents>;
|
|
36
34
|
private connection;
|
|
37
35
|
private commitment;
|
|
@@ -39,7 +37,7 @@ export declare class UserMap implements UserMapInterface {
|
|
|
39
37
|
private filterByPoolId?;
|
|
40
38
|
private additionalFilters?;
|
|
41
39
|
private disableSyncOnTotalAccountsChange;
|
|
42
|
-
private lastNumberOfSubAccounts
|
|
40
|
+
private lastNumberOfSubAccounts?;
|
|
43
41
|
private subscription;
|
|
44
42
|
private stateAccountUpdateCallback;
|
|
45
43
|
private decode;
|
|
@@ -99,13 +97,13 @@ export declare class UserMap implements UserMapInterface {
|
|
|
99
97
|
private getFilters;
|
|
100
98
|
/**
|
|
101
99
|
* Syncs the UserMap using the default sync method (single getProgramAccounts call with filters).
|
|
102
|
-
* This method may fail when
|
|
100
|
+
* This method may fail when velocity has too many users. (nodejs response size limits)
|
|
103
101
|
* @returns
|
|
104
102
|
*/
|
|
105
103
|
private defaultSync;
|
|
106
104
|
/**
|
|
107
105
|
* Syncs the UserMap using the paginated sync method (multiple getMultipleAccounts calls with filters).
|
|
108
|
-
* This method is more reliable when
|
|
106
|
+
* This method is more reliable when velocity has many users.
|
|
109
107
|
* @returns
|
|
110
108
|
*/
|
|
111
109
|
private paginatedSync;
|
|
@@ -15,25 +15,23 @@ const grpcSubscription_1 = require("./grpcSubscription");
|
|
|
15
15
|
const events_1 = require("events");
|
|
16
16
|
const MAX_USER_ACCOUNT_SIZE_BYTES = 4376;
|
|
17
17
|
class UserMap {
|
|
18
|
-
/** @deprecated Use `velocityClient` instead. `driftClient` will be removed in a future major. */
|
|
19
|
-
get driftClient() {
|
|
20
|
-
return this.velocityClient;
|
|
21
|
-
}
|
|
22
18
|
/**
|
|
23
19
|
* Constructs a new UserMap instance.
|
|
24
20
|
*/
|
|
25
21
|
constructor(config) {
|
|
26
|
-
var _a, _b, _c, _d, _e, _f, _g;
|
|
22
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j;
|
|
27
23
|
this.userMap = new Map();
|
|
28
24
|
this.stateAccountUpdateCallback = async (state) => {
|
|
29
|
-
if (
|
|
25
|
+
if (this.lastNumberOfSubAccounts === undefined ||
|
|
26
|
+
!state.numberOfSubAccounts.eq(this.lastNumberOfSubAccounts)) {
|
|
30
27
|
await this.sync();
|
|
31
28
|
this.lastNumberOfSubAccounts = state.numberOfSubAccounts;
|
|
32
29
|
}
|
|
33
30
|
};
|
|
34
31
|
this.mostRecentSlot = 0;
|
|
32
|
+
this.syncPromiseResolver = () => { };
|
|
35
33
|
// Type-system guarantees at least one of the two is supplied.
|
|
36
|
-
this.velocityClient =
|
|
34
|
+
this.velocityClient = config.velocityClient;
|
|
37
35
|
if (config.connection) {
|
|
38
36
|
this.connection = config.connection;
|
|
39
37
|
}
|
|
@@ -41,18 +39,18 @@ class UserMap {
|
|
|
41
39
|
this.connection = this.velocityClient.connection;
|
|
42
40
|
}
|
|
43
41
|
this.commitment =
|
|
44
|
-
config.subscriptionConfig.type === 'websocket' ||
|
|
42
|
+
(_d = (config.subscriptionConfig.type === 'websocket' ||
|
|
45
43
|
config.subscriptionConfig.type === 'polling'
|
|
46
|
-
? (
|
|
47
|
-
: this.velocityClient.opts.commitment;
|
|
48
|
-
this.includeIdle = (
|
|
44
|
+
? (_a = config.subscriptionConfig.commitment) !== null && _a !== void 0 ? _a : (_b = this.velocityClient.opts) === null || _b === void 0 ? void 0 : _b.commitment
|
|
45
|
+
: (_c = this.velocityClient.opts) === null || _c === void 0 ? void 0 : _c.commitment)) !== null && _d !== void 0 ? _d : 'confirmed';
|
|
46
|
+
this.includeIdle = (_e = config.includeIdle) !== null && _e !== void 0 ? _e : false;
|
|
49
47
|
this.filterByPoolId = config.filterByPoolId;
|
|
50
48
|
this.additionalFilters = config.additionalFilters;
|
|
51
49
|
this.disableSyncOnTotalAccountsChange =
|
|
52
|
-
(
|
|
50
|
+
(_f = config.disableSyncOnTotalAccountsChange) !== null && _f !== void 0 ? _f : false;
|
|
53
51
|
let decodeFn;
|
|
54
|
-
if ((
|
|
55
|
-
decodeFn = (
|
|
52
|
+
if ((_g = config.fastDecode) !== null && _g !== void 0 ? _g : true) {
|
|
53
|
+
decodeFn = (_name, buffer) => (0, user_2.decodeUser)(buffer);
|
|
56
54
|
}
|
|
57
55
|
else {
|
|
58
56
|
decodeFn = this.velocityClient.program.account.user.coder.accounts.decodeUnchecked.bind(this.velocityClient.program.account.user.coder.accounts);
|
|
@@ -89,11 +87,11 @@ class UserMap {
|
|
|
89
87
|
decodeFn,
|
|
90
88
|
});
|
|
91
89
|
}
|
|
92
|
-
this.syncConfig = (
|
|
90
|
+
this.syncConfig = (_h = config.syncConfig) !== null && _h !== void 0 ? _h : {
|
|
93
91
|
type: 'default',
|
|
94
92
|
};
|
|
95
93
|
// Whether to throw an error if the userMap fails to sync. Defaults to false.
|
|
96
|
-
this.throwOnFailedSync = (
|
|
94
|
+
this.throwOnFailedSync = (_j = config.throwOnFailedSync) !== null && _j !== void 0 ? _j : false;
|
|
97
95
|
this.eventEmitter = new events_1.EventEmitter();
|
|
98
96
|
}
|
|
99
97
|
async subscribe() {
|
|
@@ -120,9 +118,13 @@ class UserMap {
|
|
|
120
118
|
},
|
|
121
119
|
});
|
|
122
120
|
await user.subscribe(userAccount);
|
|
121
|
+
const resolvedSlot = slot !== null && slot !== void 0 ? slot : (_a = user.getUserAccountAndSlot()) === null || _a === void 0 ? void 0 : _a.slot;
|
|
122
|
+
if (resolvedSlot === undefined) {
|
|
123
|
+
throw new Error('UserMap.addPubkey: no slot available after subscribing user account');
|
|
124
|
+
}
|
|
123
125
|
this.userMap.set(userAccountPublicKey.toString(), {
|
|
124
126
|
data: user,
|
|
125
|
-
slot:
|
|
127
|
+
slot: resolvedSlot,
|
|
126
128
|
});
|
|
127
129
|
this.eventEmitter.emit('userUpdate', user);
|
|
128
130
|
}
|
|
@@ -150,17 +152,25 @@ class UserMap {
|
|
|
150
152
|
if (!this.has(key)) {
|
|
151
153
|
await this.addPubkey(new web3_js_1.PublicKey(key), undefined, undefined, accountSubscription);
|
|
152
154
|
}
|
|
153
|
-
|
|
155
|
+
const userWithSlot = this.userMap.get(key);
|
|
156
|
+
if (!userWithSlot) {
|
|
157
|
+
throw new Error(`UserMap.mustGet: no user found for ${key}`);
|
|
158
|
+
}
|
|
159
|
+
return userWithSlot.data;
|
|
154
160
|
}
|
|
155
161
|
async mustGetWithSlot(key, accountSubscription) {
|
|
156
162
|
if (!this.has(key)) {
|
|
157
163
|
await this.addPubkey(new web3_js_1.PublicKey(key), undefined, undefined, accountSubscription);
|
|
158
164
|
}
|
|
159
|
-
|
|
165
|
+
const userWithSlot = this.userMap.get(key);
|
|
166
|
+
if (!userWithSlot) {
|
|
167
|
+
throw new Error(`UserMap.mustGetWithSlot: no user found for ${key}`);
|
|
168
|
+
}
|
|
169
|
+
return userWithSlot;
|
|
160
170
|
}
|
|
161
171
|
async mustGetUserAccount(key) {
|
|
162
172
|
const user = await this.mustGet(key);
|
|
163
|
-
return user.
|
|
173
|
+
return user.getUserAccountOrThrow();
|
|
164
174
|
}
|
|
165
175
|
/**
|
|
166
176
|
* gets the Authority for a particular userAccountPublicKey, if no User exists, undefined is returned
|
|
@@ -168,11 +178,12 @@ class UserMap {
|
|
|
168
178
|
* @returns authority PublicKey | undefined
|
|
169
179
|
*/
|
|
170
180
|
getUserAuthority(key) {
|
|
181
|
+
var _a;
|
|
171
182
|
const user = this.userMap.get(key);
|
|
172
183
|
if (!user) {
|
|
173
184
|
return undefined;
|
|
174
185
|
}
|
|
175
|
-
return user.data.getUserAccount().authority;
|
|
186
|
+
return (_a = user.data.getUserAccount()) === null || _a === void 0 ? void 0 : _a.authority;
|
|
176
187
|
}
|
|
177
188
|
/**
|
|
178
189
|
* implements the {@link DLOBSource} interface
|
|
@@ -251,13 +262,13 @@ class UserMap {
|
|
|
251
262
|
*/
|
|
252
263
|
getUniqueAuthorities(filterCriteria) {
|
|
253
264
|
const usersMeetingCriteria = Array.from(this.values()).filter((user) => {
|
|
254
|
-
|
|
265
|
+
const userAccount = user.getUserAccountOrThrow();
|
|
255
266
|
if (filterCriteria && filterCriteria.hasOpenOrders) {
|
|
256
|
-
|
|
267
|
+
return userAccount.hasOpenOrder;
|
|
257
268
|
}
|
|
258
|
-
return
|
|
269
|
+
return true;
|
|
259
270
|
});
|
|
260
|
-
const userAuths = new Set(usersMeetingCriteria.map((user) => user.
|
|
271
|
+
const userAuths = new Set(usersMeetingCriteria.map((user) => user.getUserAccountOrThrow().authority.toBase58()));
|
|
261
272
|
const userAuthKeys = Array.from(userAuths).map((userAuth) => new web3_js_1.PublicKey(userAuth));
|
|
262
273
|
return userAuthKeys;
|
|
263
274
|
}
|
|
@@ -284,7 +295,7 @@ class UserMap {
|
|
|
284
295
|
}
|
|
285
296
|
/**
|
|
286
297
|
* Syncs the UserMap using the default sync method (single getProgramAccounts call with filters).
|
|
287
|
-
* This method may fail when
|
|
298
|
+
* This method may fail when velocity has too many users. (nodejs response size limits)
|
|
288
299
|
* @returns
|
|
289
300
|
*/
|
|
290
301
|
async defaultSync() {
|
|
@@ -357,7 +368,7 @@ class UserMap {
|
|
|
357
368
|
}
|
|
358
369
|
/**
|
|
359
370
|
* Syncs the UserMap using the paginated sync method (multiple getMultipleAccounts calls with filters).
|
|
360
|
-
* This method is more reliable when
|
|
371
|
+
* This method is more reliable when velocity has many users.
|
|
361
372
|
* @returns
|
|
362
373
|
*/
|
|
363
374
|
async paginatedSync() {
|
|
@@ -445,9 +456,7 @@ class UserMap {
|
|
|
445
456
|
}
|
|
446
457
|
}
|
|
447
458
|
finally {
|
|
448
|
-
|
|
449
|
-
this.syncPromiseResolver();
|
|
450
|
-
}
|
|
459
|
+
this.syncPromiseResolver();
|
|
451
460
|
this.syncPromise = undefined;
|
|
452
461
|
}
|
|
453
462
|
}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { Commitment, Connection, MemcmpFilter } from '@solana/web3.js';
|
|
2
2
|
import { VelocityClient } from '../velocityClient';
|
|
3
3
|
import { GrpcConfigs } from '../accounts/types';
|
|
4
|
-
import { AtLeastOne } from '../util/deprecatedAlias';
|
|
5
4
|
export type UserAccountFilterCriteria = {
|
|
6
5
|
hasOpenOrders: boolean;
|
|
7
6
|
};
|
|
@@ -38,5 +37,7 @@ type UserMapConfigBase = {
|
|
|
38
37
|
filterByPoolId?: number;
|
|
39
38
|
additionalFilters?: MemcmpFilter[];
|
|
40
39
|
};
|
|
41
|
-
export type UserMapConfig = UserMapConfigBase &
|
|
40
|
+
export type UserMapConfig = UserMapConfigBase & {
|
|
41
|
+
velocityClient: VelocityClient;
|
|
42
|
+
};
|
|
42
43
|
export {};
|
|
@@ -12,8 +12,6 @@ export declare class UserStatsMap {
|
|
|
12
12
|
*/
|
|
13
13
|
private userStatsMap;
|
|
14
14
|
private velocityClient;
|
|
15
|
-
/** @deprecated Use `velocityClient` instead. `driftClient` will be removed in a future major. */
|
|
16
|
-
private get driftClient();
|
|
17
15
|
private bulkAccountLoader;
|
|
18
16
|
private decode;
|
|
19
17
|
private syncConfig;
|
|
@@ -37,7 +35,7 @@ export declare class UserStatsMap {
|
|
|
37
35
|
updateWithOrderRecord(record: OrderRecord, userMap: UserMap): Promise<void>;
|
|
38
36
|
updateWithEventRecord(record: WrappedEvent<any>, userMap?: UserMap): Promise<void>;
|
|
39
37
|
has(authorityPublicKey: string): boolean;
|
|
40
|
-
get(authorityPublicKey: string): UserStats;
|
|
38
|
+
get(authorityPublicKey: string): UserStats | undefined;
|
|
41
39
|
/**
|
|
42
40
|
* Enforce that a UserStats will exist for the given authorityPublicKey,
|
|
43
41
|
* reading one from the blockchain if necessary.
|
|
@@ -7,10 +7,6 @@ const bulkAccountLoader_1 = require("../accounts/bulkAccountLoader");
|
|
|
7
7
|
const memcmp_1 = require("../memcmp");
|
|
8
8
|
const web3_js_1 = require("@solana/web3.js");
|
|
9
9
|
class UserStatsMap {
|
|
10
|
-
/** @deprecated Use `velocityClient` instead. `driftClient` will be removed in a future major. */
|
|
11
|
-
get driftClient() {
|
|
12
|
-
return this.velocityClient;
|
|
13
|
-
}
|
|
14
10
|
/**
|
|
15
11
|
* Creates a new UserStatsMap instance.
|
|
16
12
|
*
|
|
@@ -18,13 +14,15 @@ class UserStatsMap {
|
|
|
18
14
|
* @param {BulkAccountLoader} [bulkAccountLoader] - If not provided, a new BulkAccountLoader with polling disabled will be created.
|
|
19
15
|
*/
|
|
20
16
|
constructor(velocityClient, bulkAccountLoader, syncConfig) {
|
|
17
|
+
var _a, _b;
|
|
21
18
|
/**
|
|
22
19
|
* map from authority pubkey to UserStats
|
|
23
20
|
*/
|
|
24
21
|
this.userStatsMap = new Map();
|
|
22
|
+
this.syncPromiseResolver = () => { };
|
|
25
23
|
this.velocityClient = velocityClient;
|
|
26
24
|
if (!bulkAccountLoader) {
|
|
27
|
-
bulkAccountLoader = new bulkAccountLoader_1.BulkAccountLoader(velocityClient.connection, velocityClient.opts.commitment, 0);
|
|
25
|
+
bulkAccountLoader = new bulkAccountLoader_1.BulkAccountLoader(velocityClient.connection, (_b = (_a = velocityClient.opts) === null || _a === void 0 ? void 0 : _a.commitment) !== null && _b !== void 0 ? _b : 'confirmed', 0);
|
|
28
26
|
}
|
|
29
27
|
this.bulkAccountLoader = bulkAccountLoader;
|
|
30
28
|
this.syncConfig = syncConfig !== null && syncConfig !== void 0 ? syncConfig : {
|
|
@@ -64,8 +62,8 @@ class UserStatsMap {
|
|
|
64
62
|
}
|
|
65
63
|
async updateWithOrderRecord(record, userMap) {
|
|
66
64
|
const user = await userMap.mustGet(record.user.toString());
|
|
67
|
-
if (!this.has(user.
|
|
68
|
-
await this.addUserStat(user.
|
|
65
|
+
if (!this.has(user.getUserAccountOrThrow().authority.toString())) {
|
|
66
|
+
await this.addUserStat(user.getUserAccountOrThrow().authority, undefined, false);
|
|
69
67
|
}
|
|
70
68
|
}
|
|
71
69
|
async updateWithEventRecord(record, userMap) {
|
|
@@ -83,9 +81,9 @@ class UserStatsMap {
|
|
|
83
81
|
}
|
|
84
82
|
const liqRecord = record;
|
|
85
83
|
const user = await userMap.mustGet(liqRecord.user.toString());
|
|
86
|
-
await this.mustGet(user.
|
|
84
|
+
await this.mustGet(user.getUserAccountOrThrow().authority.toString());
|
|
87
85
|
const liquidatorUser = await userMap.mustGet(liqRecord.liquidator.toString());
|
|
88
|
-
await this.mustGet(liquidatorUser.
|
|
86
|
+
await this.mustGet(liquidatorUser.getUserAccountOrThrow().authority.toString());
|
|
89
87
|
}
|
|
90
88
|
else if (record.eventType === 'OrderRecord') {
|
|
91
89
|
if (!userMap) {
|
|
@@ -101,11 +99,11 @@ class UserStatsMap {
|
|
|
101
99
|
const actionRecord = record;
|
|
102
100
|
if (actionRecord.taker) {
|
|
103
101
|
const taker = await userMap.mustGet(actionRecord.taker.toString());
|
|
104
|
-
await this.mustGet(taker.
|
|
102
|
+
await this.mustGet(taker.getUserAccountOrThrow().authority.toString());
|
|
105
103
|
}
|
|
106
104
|
if (actionRecord.maker) {
|
|
107
105
|
const maker = await userMap.mustGet(actionRecord.maker.toString());
|
|
108
|
-
await this.mustGet(maker.
|
|
106
|
+
await this.mustGet(maker.getUserAccountOrThrow().authority.toString());
|
|
109
107
|
}
|
|
110
108
|
}
|
|
111
109
|
else if (record.eventType === 'SettlePnlRecord') {
|
|
@@ -114,7 +112,7 @@ class UserStatsMap {
|
|
|
114
112
|
}
|
|
115
113
|
const settlePnlRecord = record;
|
|
116
114
|
const user = await userMap.mustGet(settlePnlRecord.user.toString());
|
|
117
|
-
await this.mustGet(user.
|
|
115
|
+
await this.mustGet(user.getUserAccountOrThrow().authority.toString());
|
|
118
116
|
}
|
|
119
117
|
else if (record.eventType === 'NewUserRecord') {
|
|
120
118
|
const newUserRecord = record;
|
|
@@ -141,7 +139,11 @@ class UserStatsMap {
|
|
|
141
139
|
if (!this.has(authorityPublicKey)) {
|
|
142
140
|
await this.addUserStat(new web3_js_1.PublicKey(authorityPublicKey), undefined, false);
|
|
143
141
|
}
|
|
144
|
-
|
|
142
|
+
const userStats = this.get(authorityPublicKey);
|
|
143
|
+
if (!userStats) {
|
|
144
|
+
throw new Error(`UserStatsMap: UserStats missing for authority ${authorityPublicKey} after addUserStat`);
|
|
145
|
+
}
|
|
146
|
+
return userStats;
|
|
145
147
|
}
|
|
146
148
|
values() {
|
|
147
149
|
return this.userStatsMap.values();
|
|
@@ -220,8 +222,9 @@ class UserStatsMap {
|
|
|
220
222
|
for (let i = 0; i < accountsToLoad.length; i += chunkSize) {
|
|
221
223
|
const chunk = accountsToLoad.slice(i, i + chunkSize);
|
|
222
224
|
tasks.push(async () => {
|
|
225
|
+
var _a;
|
|
223
226
|
const accountInfos = await this.velocityClient.connection.getMultipleAccountsInfoAndContext(chunk, {
|
|
224
|
-
commitment: this.velocityClient.opts.commitment,
|
|
227
|
+
commitment: (_a = this.velocityClient.opts) === null || _a === void 0 ? void 0 : _a.commitment,
|
|
225
228
|
});
|
|
226
229
|
for (let j = 0; j < accountInfos.value.length; j += 1) {
|
|
227
230
|
const accountInfo = accountInfos.value[j];
|
|
@@ -254,9 +257,7 @@ class UserStatsMap {
|
|
|
254
257
|
console.error(`Error in UserStatsMap.paginatedSync():`, err);
|
|
255
258
|
}
|
|
256
259
|
finally {
|
|
257
|
-
|
|
258
|
-
this.syncPromiseResolver();
|
|
259
|
-
}
|
|
260
|
+
this.syncPromiseResolver();
|
|
260
261
|
this.syncPromise = undefined;
|
|
261
262
|
}
|
|
262
263
|
}
|
|
@@ -10,8 +10,6 @@ import { UserStatsConfig } from './userStatsConfig';
|
|
|
10
10
|
import { ReferrerInfo, UserStatsAccount } from './types';
|
|
11
11
|
export declare class UserStats {
|
|
12
12
|
velocityClient: VelocityClient;
|
|
13
|
-
/** @deprecated Use `velocityClient` instead. `driftClient` will be removed in a future major. */
|
|
14
|
-
get driftClient(): VelocityClient;
|
|
15
13
|
userStatsAccountPublicKey: PublicKey;
|
|
16
14
|
accountSubscriber: UserStatsAccountSubscriber;
|
|
17
15
|
isSubscribed: boolean;
|
|
@@ -19,8 +17,13 @@ export declare class UserStats {
|
|
|
19
17
|
subscribe(userStatsAccount?: UserStatsAccount): Promise<boolean>;
|
|
20
18
|
fetchAccounts(): Promise<void>;
|
|
21
19
|
unsubscribe(): Promise<void>;
|
|
22
|
-
getAccountAndSlot(): DataAndSlot<UserStatsAccount
|
|
23
|
-
getAccount(): UserStatsAccount;
|
|
20
|
+
getAccountAndSlot(): DataAndSlot<UserStatsAccount> | undefined;
|
|
21
|
+
getAccount(): UserStatsAccount | undefined;
|
|
22
|
+
/**
|
|
23
|
+
* Like {@link getAccount} but throws a named error instead of returning
|
|
24
|
+
* `undefined` when the stats account has not been loaded yet.
|
|
25
|
+
*/
|
|
26
|
+
getAccountOrThrow(): UserStatsAccount;
|
|
24
27
|
getReferrerInfo(): ReferrerInfo | undefined;
|
|
25
28
|
static getOldestActionTs(account: UserStatsAccount): number;
|
|
26
29
|
}
|
package/lib/browser/userStats.js
CHANGED
|
@@ -7,32 +7,29 @@ const webSocketUserStatsAccountSubsriber_1 = require("./accounts/webSocketUserSt
|
|
|
7
7
|
const pda_1 = require("./addresses/pda");
|
|
8
8
|
const grpcUserStatsAccountSubscriber_1 = require("./accounts/grpcUserStatsAccountSubscriber");
|
|
9
9
|
class UserStats {
|
|
10
|
-
/** @deprecated Use `velocityClient` instead. `driftClient` will be removed in a future major. */
|
|
11
|
-
get driftClient() {
|
|
12
|
-
return this.velocityClient;
|
|
13
|
-
}
|
|
14
10
|
constructor(config) {
|
|
15
|
-
var _a, _b, _c, _d, _e, _f, _g, _h
|
|
11
|
+
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
12
|
+
this.isSubscribed = false;
|
|
16
13
|
// Type-system guarantees at least one of the two is supplied.
|
|
17
|
-
const velocityClient =
|
|
14
|
+
const velocityClient = config.velocityClient;
|
|
18
15
|
this.velocityClient = velocityClient;
|
|
19
16
|
this.userStatsAccountPublicKey = config.userStatsAccountPublicKey;
|
|
20
|
-
if (((
|
|
17
|
+
if (((_a = config.accountSubscription) === null || _a === void 0 ? void 0 : _a.type) === 'polling') {
|
|
21
18
|
this.accountSubscriber = new pollingUserStatsAccountSubscriber_1.PollingUserStatsAccountSubscriber(velocityClient.program, config.userStatsAccountPublicKey, config.accountSubscription.accountLoader);
|
|
22
19
|
}
|
|
23
|
-
else if (((
|
|
20
|
+
else if (((_b = config.accountSubscription) === null || _b === void 0 ? void 0 : _b.type) === 'grpc') {
|
|
24
21
|
this.accountSubscriber = new grpcUserStatsAccountSubscriber_1.grpcUserStatsAccountSubscriber(config.accountSubscription.grpcConfigs, velocityClient.program, config.userStatsAccountPublicKey, {
|
|
25
|
-
resubTimeoutMs: (
|
|
26
|
-
logResubMessages: (
|
|
22
|
+
resubTimeoutMs: (_c = config.accountSubscription) === null || _c === void 0 ? void 0 : _c.resubTimeoutMs,
|
|
23
|
+
logResubMessages: (_d = config.accountSubscription) === null || _d === void 0 ? void 0 : _d.logResubMessages,
|
|
27
24
|
});
|
|
28
25
|
}
|
|
29
|
-
else if (((
|
|
26
|
+
else if (((_e = config.accountSubscription) === null || _e === void 0 ? void 0 : _e.type) === 'websocket') {
|
|
30
27
|
this.accountSubscriber = new webSocketUserStatsAccountSubsriber_1.WebSocketUserStatsAccountSubscriber(velocityClient.program, config.userStatsAccountPublicKey, {
|
|
31
|
-
resubTimeoutMs: (
|
|
32
|
-
logResubMessages: (
|
|
28
|
+
resubTimeoutMs: (_f = config.accountSubscription) === null || _f === void 0 ? void 0 : _f.resubTimeoutMs,
|
|
29
|
+
logResubMessages: (_g = config.accountSubscription) === null || _g === void 0 ? void 0 : _g.logResubMessages,
|
|
33
30
|
}, config.accountSubscription.commitment);
|
|
34
31
|
}
|
|
35
|
-
else if (((
|
|
32
|
+
else if (((_h = config.accountSubscription) === null || _h === void 0 ? void 0 : _h.type) === 'custom') {
|
|
36
33
|
this.accountSubscriber =
|
|
37
34
|
config.accountSubscription.userStatsAccountSubscriber;
|
|
38
35
|
}
|
|
@@ -56,16 +53,29 @@ class UserStats {
|
|
|
56
53
|
return this.accountSubscriber.getUserStatsAccountAndSlot();
|
|
57
54
|
}
|
|
58
55
|
getAccount() {
|
|
59
|
-
|
|
56
|
+
var _a;
|
|
57
|
+
return (_a = this.accountSubscriber.getUserStatsAccountAndSlot()) === null || _a === void 0 ? void 0 : _a.data;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Like {@link getAccount} but throws a named error instead of returning
|
|
61
|
+
* `undefined` when the stats account has not been loaded yet.
|
|
62
|
+
*/
|
|
63
|
+
getAccountOrThrow() {
|
|
64
|
+
const account = this.getAccount();
|
|
65
|
+
if (!account) {
|
|
66
|
+
throw new Error('UserStats account not loaded');
|
|
67
|
+
}
|
|
68
|
+
return account;
|
|
60
69
|
}
|
|
61
70
|
getReferrerInfo() {
|
|
62
|
-
|
|
71
|
+
const account = this.getAccount();
|
|
72
|
+
if (!account || account.referrer.equals(web3_js_1.PublicKey.default)) {
|
|
63
73
|
return undefined;
|
|
64
74
|
}
|
|
65
75
|
else {
|
|
66
76
|
return {
|
|
67
|
-
referrer: (0, pda_1.getUserAccountPublicKeySync)(this.velocityClient.program.programId,
|
|
68
|
-
referrerStats: (0, pda_1.getUserStatsAccountPublicKey)(this.velocityClient.program.programId,
|
|
77
|
+
referrer: (0, pda_1.getUserAccountPublicKeySync)(this.velocityClient.program.programId, account.referrer, 0),
|
|
78
|
+
referrerStats: (0, pda_1.getUserStatsAccountPublicKey)(this.velocityClient.program.programId, account.referrer),
|
|
69
79
|
};
|
|
70
80
|
}
|
|
71
81
|
}
|
|
@@ -2,12 +2,13 @@ import { VelocityClient } from './velocityClient';
|
|
|
2
2
|
import { Commitment, PublicKey } from '@solana/web3.js';
|
|
3
3
|
import { BulkAccountLoader } from './accounts/bulkAccountLoader';
|
|
4
4
|
import { GrpcConfigs, UserStatsAccountSubscriber } from './accounts/types';
|
|
5
|
-
import { AtLeastOne } from './util/deprecatedAlias';
|
|
6
5
|
type UserStatsConfigBase = {
|
|
7
6
|
accountSubscription?: UserStatsSubscriptionConfig;
|
|
8
7
|
userStatsAccountPublicKey: PublicKey;
|
|
9
8
|
};
|
|
10
|
-
export type UserStatsConfig = UserStatsConfigBase &
|
|
9
|
+
export type UserStatsConfig = UserStatsConfigBase & {
|
|
10
|
+
velocityClient: VelocityClient;
|
|
11
|
+
};
|
|
11
12
|
export type UserStatsSubscriptionConfig = {
|
|
12
13
|
type: 'websocket';
|
|
13
14
|
resubTimeoutMs?: number;
|