@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
|
@@ -19,14 +19,10 @@ import {
|
|
|
19
19
|
} from './velocityPriorityFeeMethod';
|
|
20
20
|
|
|
21
21
|
export class PriorityFeeSubscriber {
|
|
22
|
-
connection
|
|
22
|
+
connection?: Connection;
|
|
23
23
|
frequencyMs: number;
|
|
24
24
|
addresses: string[];
|
|
25
25
|
velocityMarkets?: VelocityMarketInfo[];
|
|
26
|
-
/** @deprecated Use `velocityMarkets` instead. `driftMarkets` will be removed in a future major. */
|
|
27
|
-
public get driftMarkets(): VelocityMarketInfo[] | undefined {
|
|
28
|
-
return this.velocityMarkets;
|
|
29
|
-
}
|
|
30
26
|
customStrategy?: PriorityFeeStrategy;
|
|
31
27
|
averageStrategy = new AverageOverSlotsStrategy();
|
|
32
28
|
maxStrategy = new MaxOverSlotsStrategy();
|
|
@@ -36,10 +32,6 @@ export class PriorityFeeSubscriber {
|
|
|
36
32
|
priorityFeeMultiplier?: number;
|
|
37
33
|
|
|
38
34
|
velocityPriorityFeeEndpoint?: string;
|
|
39
|
-
/** @deprecated Use `velocityPriorityFeeEndpoint` instead. `driftPriorityFeeEndpoint` will be removed in a future major. */
|
|
40
|
-
public get driftPriorityFeeEndpoint(): string | undefined {
|
|
41
|
-
return this.velocityPriorityFeeEndpoint;
|
|
42
|
-
}
|
|
43
35
|
heliusRpcUrl?: string;
|
|
44
36
|
lastHeliusSample?: HeliusPriorityFeeLevels;
|
|
45
37
|
|
|
@@ -58,7 +50,7 @@ export class PriorityFeeSubscriber {
|
|
|
58
50
|
this.addresses = config.addresses
|
|
59
51
|
? config.addresses.map((address) => address.toBase58())
|
|
60
52
|
: [];
|
|
61
|
-
this.velocityMarkets = config.velocityMarkets
|
|
53
|
+
this.velocityMarkets = config.velocityMarkets;
|
|
62
54
|
|
|
63
55
|
if (config.customStrategy) {
|
|
64
56
|
this.customStrategy = config.customStrategy;
|
|
@@ -72,7 +64,7 @@ export class PriorityFeeSubscriber {
|
|
|
72
64
|
|
|
73
65
|
if (this.priorityFeeMethod === PriorityFeeMethod.HELIUS) {
|
|
74
66
|
if (config.heliusRpcUrl === undefined) {
|
|
75
|
-
if (this.connection
|
|
67
|
+
if (this.connection?.rpcEndpoint.includes('helius')) {
|
|
76
68
|
this.heliusRpcUrl = this.connection.rpcEndpoint;
|
|
77
69
|
} else {
|
|
78
70
|
throw new Error(
|
|
@@ -84,7 +76,8 @@ export class PriorityFeeSubscriber {
|
|
|
84
76
|
}
|
|
85
77
|
} else if (this.priorityFeeMethod === PriorityFeeMethod.VELOCITY) {
|
|
86
78
|
this.velocityPriorityFeeEndpoint =
|
|
87
|
-
config.velocityPriorityFeeEndpoint ??
|
|
79
|
+
config.velocityPriorityFeeEndpoint ??
|
|
80
|
+
config.velocityPriorityFeeEndpoint;
|
|
88
81
|
}
|
|
89
82
|
}
|
|
90
83
|
|
|
@@ -110,11 +103,19 @@ export class PriorityFeeSubscriber {
|
|
|
110
103
|
}
|
|
111
104
|
|
|
112
105
|
private async loadForSolana(): Promise<void> {
|
|
106
|
+
if (this.connection === undefined) {
|
|
107
|
+
throw new Error(
|
|
108
|
+
'connection must be provided to use SOLANA priority fee API'
|
|
109
|
+
);
|
|
110
|
+
}
|
|
113
111
|
const samples = await fetchSolanaPriorityFee(
|
|
114
|
-
this.connection
|
|
112
|
+
this.connection,
|
|
115
113
|
this.lookbackDistance,
|
|
116
114
|
this.addresses
|
|
117
115
|
);
|
|
116
|
+
if (samples === undefined) {
|
|
117
|
+
throw new Error('fetchSolanaPriorityFee returned no samples');
|
|
118
|
+
}
|
|
118
119
|
if (samples.length > 0) {
|
|
119
120
|
this.latestPriorityFee = samples[0].prioritizationFee;
|
|
120
121
|
this.lastSlotSeen = samples[0].slot;
|
|
@@ -128,6 +129,11 @@ export class PriorityFeeSubscriber {
|
|
|
128
129
|
}
|
|
129
130
|
|
|
130
131
|
private async loadForHelius(): Promise<void> {
|
|
132
|
+
if (this.heliusRpcUrl === undefined) {
|
|
133
|
+
throw new Error(
|
|
134
|
+
'heliusRpcUrl must be provided to use PriorityFeeMethod.HELIUS'
|
|
135
|
+
);
|
|
136
|
+
}
|
|
131
137
|
const sample = await fetchHeliusPriorityFee(
|
|
132
138
|
this.heliusRpcUrl,
|
|
133
139
|
this.lookbackDistance,
|
|
@@ -135,31 +141,54 @@ export class PriorityFeeSubscriber {
|
|
|
135
141
|
);
|
|
136
142
|
this.lastHeliusSample = sample?.result?.priorityFeeLevels ?? undefined;
|
|
137
143
|
|
|
138
|
-
if (this.lastHeliusSample) {
|
|
144
|
+
if (sample !== undefined && this.lastHeliusSample) {
|
|
139
145
|
this.lastAvgStrategyResult =
|
|
140
146
|
this.lastHeliusSample[HeliusPriorityLevel.MEDIUM];
|
|
141
147
|
this.lastMaxStrategyResult =
|
|
142
148
|
this.lastHeliusSample[HeliusPriorityLevel.UNSAFE_MAX];
|
|
143
149
|
if (this.customStrategy) {
|
|
144
|
-
this.lastCustomStrategyResult = this.customStrategy.calculate(sample
|
|
150
|
+
this.lastCustomStrategyResult = this.customStrategy.calculate(sample);
|
|
145
151
|
}
|
|
146
152
|
}
|
|
147
153
|
}
|
|
148
154
|
|
|
149
|
-
private async
|
|
155
|
+
private async loadForVelocity(): Promise<void> {
|
|
150
156
|
if (!this.velocityMarkets) {
|
|
151
157
|
return;
|
|
152
158
|
}
|
|
159
|
+
if (this.velocityPriorityFeeEndpoint === undefined) {
|
|
160
|
+
throw new Error(
|
|
161
|
+
'velocityPriorityFeeEndpoint must be provided to use PriorityFeeMethod.VELOCITY'
|
|
162
|
+
);
|
|
163
|
+
}
|
|
153
164
|
const sample = await fetchVelocityPriorityFee(
|
|
154
|
-
this.velocityPriorityFeeEndpoint
|
|
165
|
+
this.velocityPriorityFeeEndpoint,
|
|
155
166
|
this.velocityMarkets.map((m) => m.marketType),
|
|
156
167
|
this.velocityMarkets.map((m) => m.marketIndex)
|
|
157
168
|
);
|
|
158
169
|
if (sample.length > 0) {
|
|
159
|
-
|
|
160
|
-
|
|
170
|
+
// The endpoint returns one fee-level set per requested market. Take the
|
|
171
|
+
// max level across markets so a transaction touching several markets is
|
|
172
|
+
// covered by the most expensive one. (Base indexed the array itself with
|
|
173
|
+
// a string enum key — `sample['medium']` — which yielded `undefined` and
|
|
174
|
+
// produced NaN strategy results; the missing per-element index is fixed
|
|
175
|
+
// here.)
|
|
176
|
+
this.lastAvgStrategyResult = Math.max(
|
|
177
|
+
...sample.map((s) => s[HeliusPriorityLevel.MEDIUM])
|
|
178
|
+
);
|
|
179
|
+
this.lastMaxStrategyResult = Math.max(
|
|
180
|
+
...sample.map((s) => s[HeliusPriorityLevel.UNSAFE_MAX])
|
|
181
|
+
);
|
|
161
182
|
if (this.customStrategy) {
|
|
162
|
-
|
|
183
|
+
// Custom strategies expect `{ slot, prioritizationFee }[]`; map each
|
|
184
|
+
// market's medium level into that shape so they aggregate real values
|
|
185
|
+
// instead of summing the absent `prioritizationFee` field (NaN).
|
|
186
|
+
this.lastCustomStrategyResult = this.customStrategy.calculate(
|
|
187
|
+
sample.map((s) => ({
|
|
188
|
+
slot: 0,
|
|
189
|
+
prioritizationFee: s[HeliusPriorityLevel.MEDIUM],
|
|
190
|
+
}))
|
|
191
|
+
);
|
|
163
192
|
}
|
|
164
193
|
}
|
|
165
194
|
}
|
|
@@ -228,7 +257,7 @@ export class PriorityFeeSubscriber {
|
|
|
228
257
|
} else if (this.priorityFeeMethod === PriorityFeeMethod.HELIUS) {
|
|
229
258
|
await this.loadForHelius();
|
|
230
259
|
} else if (this.priorityFeeMethod === PriorityFeeMethod.VELOCITY) {
|
|
231
|
-
await this.
|
|
260
|
+
await this.loadForVelocity();
|
|
232
261
|
} else {
|
|
233
262
|
throw new Error(`${this.priorityFeeMethod} load not implemented`);
|
|
234
263
|
}
|
|
@@ -17,15 +17,7 @@ export class PriorityFeeSubscriberMap {
|
|
|
17
17
|
intervalId?: ReturnType<typeof setTimeout>;
|
|
18
18
|
|
|
19
19
|
velocityMarkets?: VelocityMarketInfo[];
|
|
20
|
-
/** @deprecated Use `velocityMarkets` instead. `driftMarkets` will be removed in a future major. */
|
|
21
|
-
public get driftMarkets(): VelocityMarketInfo[] | undefined {
|
|
22
|
-
return this.velocityMarkets;
|
|
23
|
-
}
|
|
24
20
|
velocityPriorityFeeEndpoint: string;
|
|
25
|
-
/** @deprecated Use `velocityPriorityFeeEndpoint` instead. `driftPriorityFeeEndpoint` will be removed in a future major. */
|
|
26
|
-
public get driftPriorityFeeEndpoint(): string {
|
|
27
|
-
return this.velocityPriorityFeeEndpoint;
|
|
28
|
-
}
|
|
29
21
|
feesMap: Map<string, Map<number, VelocityPriorityFeeLevels>>; // marketType -> marketIndex -> priority fee
|
|
30
22
|
|
|
31
23
|
public constructor(config: PriorityFeeSubscriberMapConfig) {
|
|
@@ -33,8 +25,8 @@ export class PriorityFeeSubscriberMap {
|
|
|
33
25
|
config.frequencyMs ?? DEFAULT_PRIORITY_FEE_MAP_FREQUENCY_MS;
|
|
34
26
|
// Type-system guarantees at least one of the two is supplied.
|
|
35
27
|
this.velocityPriorityFeeEndpoint = (config.velocityPriorityFeeEndpoint ??
|
|
36
|
-
config.
|
|
37
|
-
this.velocityMarkets = config.velocityMarkets
|
|
28
|
+
config.velocityPriorityFeeEndpoint)!;
|
|
29
|
+
this.velocityMarkets = config.velocityMarkets;
|
|
38
30
|
this.feesMap = new Map<string, Map<number, VelocityPriorityFeeLevels>>();
|
|
39
31
|
this.feesMap.set('perp', new Map<number, VelocityPriorityFeeLevels>());
|
|
40
32
|
this.feesMap.set('spot', new Map<number, VelocityPriorityFeeLevels>());
|
|
@@ -9,7 +9,7 @@ export async function fetchSolanaPriorityFee(
|
|
|
9
9
|
connection: Connection,
|
|
10
10
|
lookbackDistance: number,
|
|
11
11
|
addresses: string[]
|
|
12
|
-
): Promise<SolanaPriorityFeeResponse[]> {
|
|
12
|
+
): Promise<SolanaPriorityFeeResponse[] | undefined> {
|
|
13
13
|
try {
|
|
14
14
|
// @ts-ignore
|
|
15
15
|
const rpcJSONResponse: any = await connection._rpcRequest(
|
package/src/priorityFee/types.ts
CHANGED
|
@@ -5,7 +5,6 @@ import {
|
|
|
5
5
|
VelocityMarketInfo,
|
|
6
6
|
VelocityPriorityFeeResponse,
|
|
7
7
|
} from './velocityPriorityFeeMethod';
|
|
8
|
-
import { AtLeastOne } from '../util/deprecatedAlias';
|
|
9
8
|
|
|
10
9
|
export const DEFAULT_PRIORITY_FEE_MAP_FREQUENCY_MS = 10_000;
|
|
11
10
|
|
|
@@ -35,8 +34,6 @@ export type PriorityFeeSubscriberConfig = {
|
|
|
35
34
|
addresses?: PublicKey[];
|
|
36
35
|
/// market type and index, optionally provide at initialization time if using priorityFeeMethod.VELOCITY
|
|
37
36
|
velocityMarkets?: VelocityMarketInfo[];
|
|
38
|
-
/** @deprecated Use `velocityMarkets` instead. `driftMarkets` will be removed in a future major. */
|
|
39
|
-
driftMarkets?: VelocityMarketInfo[];
|
|
40
37
|
/// custom strategy to calculate priority fees, defaults to AVERAGE
|
|
41
38
|
customStrategy?: PriorityFeeStrategy;
|
|
42
39
|
/// method for fetching priority fee samples
|
|
@@ -47,8 +44,6 @@ export type PriorityFeeSubscriberConfig = {
|
|
|
47
44
|
heliusRpcUrl?: string;
|
|
48
45
|
/// url for Velocity cached priority fee endpoint, required if using priorityFeeMethod.VELOCITY
|
|
49
46
|
velocityPriorityFeeEndpoint?: string;
|
|
50
|
-
/** @deprecated Use `velocityPriorityFeeEndpoint` instead. `driftPriorityFeeEndpoint` will be removed in a future major. */
|
|
51
|
-
driftPriorityFeeEndpoint?: string;
|
|
52
47
|
/// clamp any returned priority fee value to this value.
|
|
53
48
|
maxFeeMicroLamports?: number;
|
|
54
49
|
/// multiplier applied to priority fee before maxFeeMicroLamports, defaults to 1.0
|
|
@@ -60,15 +55,10 @@ type PriorityFeeSubscriberMapConfigBase = {
|
|
|
60
55
|
frequencyMs?: number;
|
|
61
56
|
/// market type and associated market index to query
|
|
62
57
|
velocityMarkets?: VelocityMarketInfo[];
|
|
63
|
-
/** @deprecated Use `velocityMarkets` instead. `driftMarkets` will be removed in a future major. */
|
|
64
|
-
driftMarkets?: VelocityMarketInfo[];
|
|
65
58
|
};
|
|
66
59
|
|
|
67
60
|
/// url for Velocity cached priority fee endpoint
|
|
68
61
|
export type PriorityFeeSubscriberMapConfig =
|
|
69
|
-
PriorityFeeSubscriberMapConfigBase &
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
'driftPriorityFeeEndpoint',
|
|
73
|
-
string
|
|
74
|
-
>;
|
|
62
|
+
PriorityFeeSubscriberMapConfigBase & {
|
|
63
|
+
velocityPriorityFeeEndpoint: string;
|
|
64
|
+
};
|
|
@@ -6,9 +6,6 @@ export type VelocityMarketInfo = {
|
|
|
6
6
|
marketIndex: number;
|
|
7
7
|
};
|
|
8
8
|
|
|
9
|
-
/** @deprecated Use `VelocityMarketInfo` instead. `DriftMarketInfo` will be removed in a future major. */
|
|
10
|
-
export type DriftMarketInfo = VelocityMarketInfo;
|
|
11
|
-
|
|
12
9
|
export type VelocityPriorityFeeLevels = {
|
|
13
10
|
[key in HeliusPriorityLevel]: number;
|
|
14
11
|
} & {
|
|
@@ -16,14 +13,8 @@ export type VelocityPriorityFeeLevels = {
|
|
|
16
13
|
marketIndex: number;
|
|
17
14
|
};
|
|
18
15
|
|
|
19
|
-
/** @deprecated Use `VelocityPriorityFeeLevels` instead. `DriftPriorityFeeLevels` will be removed in a future major. */
|
|
20
|
-
export type DriftPriorityFeeLevels = VelocityPriorityFeeLevels;
|
|
21
|
-
|
|
22
16
|
export type VelocityPriorityFeeResponse = VelocityPriorityFeeLevels[];
|
|
23
17
|
|
|
24
|
-
/** @deprecated Use `VelocityPriorityFeeResponse` instead. `DriftPriorityFeeResponse` will be removed in a future major. */
|
|
25
|
-
export type DriftPriorityFeeResponse = VelocityPriorityFeeResponse;
|
|
26
|
-
|
|
27
18
|
export async function fetchVelocityPriorityFee(
|
|
28
19
|
url: string,
|
|
29
20
|
marketTypes: string[],
|
|
@@ -49,6 +40,3 @@ export async function fetchVelocityPriorityFee(
|
|
|
49
40
|
|
|
50
41
|
return [];
|
|
51
42
|
}
|
|
52
|
-
|
|
53
|
-
/** @deprecated Use `fetchVelocityPriorityFee` instead. `fetchDriftPriorityFee` will be removed in a future major. */
|
|
54
|
-
export const fetchDriftPriorityFee = fetchVelocityPriorityFee;
|
|
@@ -50,7 +50,7 @@ export class PythLazerSubscriber {
|
|
|
50
50
|
* @param endpoints - Array of WebSocket endpoint URLs for Pyth Lazer
|
|
51
51
|
* @param token - Authentication token for Pyth Lazer API
|
|
52
52
|
* @param priceFeedArrays - Array of price feed configurations to subscribe to
|
|
53
|
-
* @param env -
|
|
53
|
+
* @param env - Velocity environment (mainnet-beta, devnet, etc.)
|
|
54
54
|
* @param resubTimeoutMs - Milliseconds to wait before resubscribing on data timeout
|
|
55
55
|
* @param sdkLogging - Whether to log Pyth SDK logs to the console. This is very noisy but could be useful for debugging.
|
|
56
56
|
* @param feedProperties - Price feed properties to request. Must include both 'price' and 'exponent' (required for getPriceFromMarketIndex). Defaults to ['price', 'bestAskPrice', 'bestBidPrice', 'exponent']. Stored by copy so caller mutation does not affect this instance.
|
package/src/pyth/types.ts
CHANGED
|
@@ -12,8 +12,8 @@ export interface SlotSubscriberEvents {
|
|
|
12
12
|
}
|
|
13
13
|
|
|
14
14
|
export class SlotSubscriber {
|
|
15
|
-
currentSlot
|
|
16
|
-
subscriptionId
|
|
15
|
+
currentSlot = 0;
|
|
16
|
+
subscriptionId?: number;
|
|
17
17
|
eventEmitter: StrictEventEmitter<EventEmitter, SlotSubscriberEvents>;
|
|
18
18
|
|
|
19
19
|
// Reconnection
|
|
@@ -28,7 +28,7 @@ export class SlotSubscriber {
|
|
|
28
28
|
) {
|
|
29
29
|
this.eventEmitter = new EventEmitter();
|
|
30
30
|
this.resubTimeoutMs = config?.resubTimeoutMs;
|
|
31
|
-
if (this.resubTimeoutMs < 1000) {
|
|
31
|
+
if (this.resubTimeoutMs !== undefined && this.resubTimeoutMs < 1000) {
|
|
32
32
|
console.log(
|
|
33
33
|
'resubTimeoutMs should be at least 1000ms to avoid spamming resub'
|
|
34
34
|
);
|
|
@@ -18,8 +18,16 @@ export type Slothash = {
|
|
|
18
18
|
};
|
|
19
19
|
|
|
20
20
|
export class SlothashSubscriber {
|
|
21
|
-
|
|
22
|
-
|
|
21
|
+
private _currentSlothash?: Slothash;
|
|
22
|
+
private get currentSlothash(): Slothash {
|
|
23
|
+
if (!this._currentSlothash) {
|
|
24
|
+
throw new Error(
|
|
25
|
+
'SlothashSubscriber: slothash accessed before subscribe()'
|
|
26
|
+
);
|
|
27
|
+
}
|
|
28
|
+
return this._currentSlothash;
|
|
29
|
+
}
|
|
30
|
+
subscriptionId?: number;
|
|
23
31
|
commitment: Commitment;
|
|
24
32
|
|
|
25
33
|
// Reconnection
|
|
@@ -34,7 +42,7 @@ export class SlothashSubscriber {
|
|
|
34
42
|
) {
|
|
35
43
|
this.resubTimeoutMs = config?.resubTimeoutMs;
|
|
36
44
|
this.commitment = config?.commitment ?? 'processed';
|
|
37
|
-
if (this.resubTimeoutMs < 1000) {
|
|
45
|
+
if (this.resubTimeoutMs != null && this.resubTimeoutMs < 1000) {
|
|
38
46
|
console.log(
|
|
39
47
|
'resubTimeoutMs should be at least 1000ms to avoid spamming resub'
|
|
40
48
|
);
|
|
@@ -53,18 +61,21 @@ export class SlothashSubscriber {
|
|
|
53
61
|
if (currentAccountData == null) {
|
|
54
62
|
throw new Error('Failed to retrieve current slot hash');
|
|
55
63
|
}
|
|
56
|
-
this.
|
|
64
|
+
this._currentSlothash = deserializeSlothash(currentAccountData.data);
|
|
57
65
|
|
|
58
66
|
this.subscriptionId = this.connection.onAccountChange(
|
|
59
67
|
SYSVAR_SLOT_HASHES_PUBKEY,
|
|
60
68
|
(slothashInfo, context) => {
|
|
61
|
-
if (
|
|
69
|
+
if (
|
|
70
|
+
!this._currentSlothash ||
|
|
71
|
+
this._currentSlothash.slot < context.slot
|
|
72
|
+
) {
|
|
62
73
|
if (this.resubTimeoutMs && !this.isUnsubscribing) {
|
|
63
74
|
this.receivingData = true;
|
|
64
75
|
clearTimeout(this.timeoutId);
|
|
65
76
|
this.setTimeout();
|
|
66
77
|
}
|
|
67
|
-
this.
|
|
78
|
+
this._currentSlothash = deserializeSlothash(slothashInfo.data);
|
|
68
79
|
}
|
|
69
80
|
},
|
|
70
81
|
this.commitment
|
|
@@ -270,7 +270,7 @@ export class UnifiedSwapClient {
|
|
|
270
270
|
slippageBps,
|
|
271
271
|
swapMode: isExactOut ? TitanSwapMode.ExactOut : TitanSwapMode.ExactIn,
|
|
272
272
|
onlyDirectRoutes,
|
|
273
|
-
sizeConstraint: sizeConstraint || 1280 - 375, // MAX_TX_BYTE_SIZE - buffer for
|
|
273
|
+
sizeConstraint: sizeConstraint || 1280 - 375, // MAX_TX_BYTE_SIZE - buffer for velocity instructions
|
|
274
274
|
});
|
|
275
275
|
|
|
276
276
|
swapInstructions = titanClient.getTitanInstructions({
|
|
@@ -10,7 +10,6 @@ import {
|
|
|
10
10
|
|
|
11
11
|
export class grpcSignedMsgUserOrdersAccountSubscriber extends SignedMsgUserOrdersAccountSubscriber {
|
|
12
12
|
private grpcConfigs: GrpcConfigs;
|
|
13
|
-
override subscriber: grpcProgramAccountSubscriber<SignedMsgUserOrdersAccount>;
|
|
14
13
|
|
|
15
14
|
constructor({
|
|
16
15
|
grpcConfigs,
|
|
@@ -23,8 +22,8 @@ export class grpcSignedMsgUserOrdersAccountSubscriber extends SignedMsgUserOrder
|
|
|
23
22
|
}
|
|
24
23
|
|
|
25
24
|
public async subscribe(): Promise<void> {
|
|
26
|
-
if (!this.
|
|
27
|
-
this.
|
|
25
|
+
if (!this._subscriber) {
|
|
26
|
+
this._subscriber =
|
|
28
27
|
await grpcProgramAccountSubscriber.create<SignedMsgUserOrdersAccount>(
|
|
29
28
|
this.grpcConfigs,
|
|
30
29
|
'SingedMsgUserOrdersAccountMap',
|
|
@@ -71,9 +70,9 @@ export class grpcSignedMsgUserOrdersAccountSubscriber extends SignedMsgUserOrder
|
|
|
71
70
|
}
|
|
72
71
|
|
|
73
72
|
public async unsubscribe(): Promise<void> {
|
|
74
|
-
if (!this.
|
|
75
|
-
await this.
|
|
76
|
-
this.
|
|
73
|
+
if (!this._subscriber) return;
|
|
74
|
+
await this._subscriber.unsubscribe();
|
|
75
|
+
this._subscriber = undefined;
|
|
77
76
|
if (this.resyncTimeoutId !== undefined) {
|
|
78
77
|
clearTimeout(this.resyncTimeoutId);
|
|
79
78
|
this.resyncTimeoutId = undefined;
|
|
@@ -4,7 +4,6 @@ import { SignedMsgOrderId, SignedMsgUserOrdersAccount } from '../types';
|
|
|
4
4
|
import { Commitment, Context, PublicKey } from '@solana/web3.js';
|
|
5
5
|
import { ResubOpts } from '../accounts/types';
|
|
6
6
|
import { VelocityClient } from '../velocityClient';
|
|
7
|
-
import { AtLeastOne } from '../util/deprecatedAlias';
|
|
8
7
|
import StrictEventEmitter from 'strict-event-emitter-types';
|
|
9
8
|
import { EventEmitter } from 'events';
|
|
10
9
|
|
|
@@ -13,7 +12,7 @@ export type SignedMsgUserOrdersAccountSubscriberConfig = {
|
|
|
13
12
|
resubOpts?: ResubOpts;
|
|
14
13
|
decodeFn?: (name: string, data: Buffer) => SignedMsgUserOrdersAccount;
|
|
15
14
|
resyncIntervalMs?: number;
|
|
16
|
-
} &
|
|
15
|
+
} & { velocityClient: VelocityClient };
|
|
17
16
|
|
|
18
17
|
export interface SignedMsgUserOrdersAccountSubscriberEvents {
|
|
19
18
|
onAccountUpdate: (
|
|
@@ -31,10 +30,6 @@ export interface SignedMsgUserOrdersAccountSubscriberEvents {
|
|
|
31
30
|
|
|
32
31
|
export class SignedMsgUserOrdersAccountSubscriber {
|
|
33
32
|
protected velocityClient: VelocityClient;
|
|
34
|
-
/** @deprecated Use `velocityClient` instead. `driftClient` will be removed in a future major. */
|
|
35
|
-
protected get driftClient(): VelocityClient {
|
|
36
|
-
return this.velocityClient;
|
|
37
|
-
}
|
|
38
33
|
protected commitment: Commitment;
|
|
39
34
|
protected resubOpts?: ResubOpts;
|
|
40
35
|
protected resyncTimeoutId?: ReturnType<typeof setTimeout>;
|
|
@@ -47,12 +42,20 @@ export class SignedMsgUserOrdersAccountSubscriber {
|
|
|
47
42
|
string,
|
|
48
43
|
{ slot: number; signedMsgUserOrdersAccount: SignedMsgUserOrdersAccount }
|
|
49
44
|
>();
|
|
50
|
-
mostRecentSlot
|
|
45
|
+
mostRecentSlot = 0;
|
|
51
46
|
|
|
52
47
|
fetchPromise?: Promise<void>;
|
|
53
|
-
fetchPromiseResolver: () => void;
|
|
48
|
+
private fetchPromiseResolver: () => void = () => {};
|
|
54
49
|
|
|
55
|
-
protected
|
|
50
|
+
protected _subscriber?: WebSocketProgramAccountSubscriber<SignedMsgUserOrdersAccount>;
|
|
51
|
+
protected get subscriber(): WebSocketProgramAccountSubscriber<SignedMsgUserOrdersAccount> {
|
|
52
|
+
if (!this._subscriber) {
|
|
53
|
+
throw new Error(
|
|
54
|
+
'SignedMsgUserOrdersAccountSubscriber: subscriber accessed before subscribe()'
|
|
55
|
+
);
|
|
56
|
+
}
|
|
57
|
+
return this._subscriber;
|
|
58
|
+
}
|
|
56
59
|
public eventEmitter: StrictEventEmitter<
|
|
57
60
|
EventEmitter,
|
|
58
61
|
SignedMsgUserOrdersAccountSubscriberEvents
|
|
@@ -60,7 +63,6 @@ export class SignedMsgUserOrdersAccountSubscriber {
|
|
|
60
63
|
|
|
61
64
|
constructor({
|
|
62
65
|
velocityClient,
|
|
63
|
-
driftClient,
|
|
64
66
|
commitment,
|
|
65
67
|
resubOpts,
|
|
66
68
|
decodeFn,
|
|
@@ -69,7 +71,7 @@ export class SignedMsgUserOrdersAccountSubscriber {
|
|
|
69
71
|
this.commitment = commitment ?? 'confirmed';
|
|
70
72
|
this.resubOpts = resubOpts;
|
|
71
73
|
// Type-system guarantees at least one of the two is supplied.
|
|
72
|
-
this.velocityClient =
|
|
74
|
+
this.velocityClient = velocityClient!;
|
|
73
75
|
this.decodeFn =
|
|
74
76
|
decodeFn ??
|
|
75
77
|
(
|
|
@@ -84,9 +86,9 @@ export class SignedMsgUserOrdersAccountSubscriber {
|
|
|
84
86
|
}
|
|
85
87
|
|
|
86
88
|
public async subscribe(): Promise<void> {
|
|
87
|
-
if (!this.
|
|
89
|
+
if (!this._subscriber) {
|
|
88
90
|
const filters = [getSignedMsgUserOrdersFilter()];
|
|
89
|
-
this.
|
|
91
|
+
this._subscriber =
|
|
90
92
|
new WebSocketProgramAccountSubscriber<SignedMsgUserOrdersAccount>(
|
|
91
93
|
'SingedMsgUserOrdersAccountMap',
|
|
92
94
|
'signedMsgUserOrders',
|
|
@@ -238,9 +240,9 @@ export class SignedMsgUserOrdersAccountSubscriber {
|
|
|
238
240
|
}
|
|
239
241
|
|
|
240
242
|
public async unsubscribe(): Promise<void> {
|
|
241
|
-
if (!this.
|
|
242
|
-
await this.
|
|
243
|
-
this.
|
|
243
|
+
if (!this._subscriber) return;
|
|
244
|
+
await this._subscriber.unsubscribe();
|
|
245
|
+
this._subscriber = undefined;
|
|
244
246
|
if (this.resyncTimeoutId !== undefined) {
|
|
245
247
|
clearTimeout(this.resyncTimeoutId);
|
|
246
248
|
this.resyncTimeoutId = undefined;
|
|
@@ -4,7 +4,6 @@ import {
|
|
|
4
4
|
} from '../constants/perpMarkets';
|
|
5
5
|
import { VelocityClient } from '../velocityClient';
|
|
6
6
|
import { VelocityEnv } from '../config';
|
|
7
|
-
import { AtLeastOne } from '../util/deprecatedAlias';
|
|
8
7
|
import {
|
|
9
8
|
getUserAccountPublicKey,
|
|
10
9
|
getUserStatsAccountPublicKey,
|
|
@@ -33,16 +32,16 @@ type SwiftOrderSubscriberConfigBase = {
|
|
|
33
32
|
endpoint?: string;
|
|
34
33
|
marketIndexes: number[];
|
|
35
34
|
/**
|
|
36
|
-
In the future, this will be used for verifying $
|
|
35
|
+
In the future, this will be used for verifying $VELOCITY stake as we add
|
|
37
36
|
authentication for delegate signers
|
|
38
37
|
For now, pass a new keypair or a keypair to an empty wallet
|
|
39
38
|
*/
|
|
40
39
|
keypair: Keypair;
|
|
41
40
|
};
|
|
42
41
|
|
|
43
|
-
export type SwiftOrderSubscriberConfig = SwiftOrderSubscriberConfigBase &
|
|
44
|
-
|
|
45
|
-
|
|
42
|
+
export type SwiftOrderSubscriberConfig = SwiftOrderSubscriberConfigBase & {
|
|
43
|
+
velocityEnv: VelocityEnv;
|
|
44
|
+
} & { velocityClient: VelocityClient };
|
|
46
45
|
|
|
47
46
|
/**
|
|
48
47
|
* Swift order message received from WebSocket
|
|
@@ -74,12 +73,8 @@ export class SwiftOrderSubscriber {
|
|
|
74
73
|
private readonly heartbeatIntervalMs = 60000;
|
|
75
74
|
private ws: WebSocket | null = null;
|
|
76
75
|
private velocityClient: VelocityClient;
|
|
77
|
-
/** @deprecated Use `velocityClient` instead. `driftClient` will be removed in a future major. */
|
|
78
|
-
private get driftClient(): VelocityClient {
|
|
79
|
-
return this.velocityClient;
|
|
80
|
-
}
|
|
81
76
|
public userAccountGetter?: AccountGetter; // In practice, this for now is just an OrderSubscriber or a UserMap
|
|
82
|
-
public onOrder
|
|
77
|
+
public onOrder?: (
|
|
83
78
|
orderMessageRaw: SwiftOrderMessage,
|
|
84
79
|
signedMessage:
|
|
85
80
|
| SignedMsgOrderParamsMessage
|
|
@@ -91,21 +86,21 @@ export class SwiftOrderSubscriber {
|
|
|
91
86
|
|
|
92
87
|
constructor(private config: SwiftOrderSubscriberConfig) {
|
|
93
88
|
// Type-system guarantees at least one of the two is supplied.
|
|
94
|
-
this.velocityClient =
|
|
89
|
+
this.velocityClient = config.velocityClient!;
|
|
95
90
|
this.userAccountGetter = config.userAccountGetter;
|
|
96
91
|
}
|
|
97
92
|
|
|
98
93
|
unsubscribe() {
|
|
99
94
|
if (this.subscribed) {
|
|
100
|
-
this.ws
|
|
101
|
-
this.ws
|
|
95
|
+
this.ws?.removeAllListeners();
|
|
96
|
+
this.ws?.terminate();
|
|
102
97
|
this.ws = null;
|
|
103
98
|
this.subscribed = false;
|
|
104
99
|
}
|
|
105
100
|
}
|
|
106
101
|
|
|
107
102
|
getSymbolForMarketIndex(marketIndex: number): string {
|
|
108
|
-
const env = this.config.velocityEnv
|
|
103
|
+
const env = this.config.velocityEnv;
|
|
109
104
|
const markets = env === 'devnet' ? DevnetPerpMarkets : MainnetPerpMarkets;
|
|
110
105
|
return markets[marketIndex].symbol;
|
|
111
106
|
}
|
|
@@ -162,7 +157,7 @@ export class SwiftOrderSubscriber {
|
|
|
162
157
|
): Promise<void> {
|
|
163
158
|
this.onOrder = onOrder;
|
|
164
159
|
|
|
165
|
-
const env = this.config.velocityEnv
|
|
160
|
+
const env = this.config.velocityEnv;
|
|
166
161
|
const endpoint =
|
|
167
162
|
this.config.endpoint ??
|
|
168
163
|
(env === 'devnet'
|
|
@@ -250,11 +245,8 @@ export class SwiftOrderSubscriber {
|
|
|
250
245
|
}, 5000);
|
|
251
246
|
});
|
|
252
247
|
|
|
253
|
-
ws.on('error', async (
|
|
254
|
-
console.error(
|
|
255
|
-
'WS closed from error, reconnecting in 1s:',
|
|
256
|
-
response.statusCode
|
|
257
|
-
);
|
|
248
|
+
ws.on('error', async (error: Error) => {
|
|
249
|
+
console.error('WS closed from error, reconnecting in 1s:', error);
|
|
258
250
|
setTimeout(() => {
|
|
259
251
|
if (this.heartbeatTimeout) clearTimeout(this.heartbeatTimeout);
|
|
260
252
|
this.reconnect();
|
|
@@ -348,8 +340,12 @@ export class SwiftOrderSubscriber {
|
|
|
348
340
|
}
|
|
349
341
|
|
|
350
342
|
console.log('Reconnecting to WebSocket...');
|
|
343
|
+
const onOrder = this.onOrder;
|
|
344
|
+
if (!onOrder) {
|
|
345
|
+
throw new Error('onOrder callback function must be set');
|
|
346
|
+
}
|
|
351
347
|
setTimeout(() => {
|
|
352
|
-
this.subscribe(
|
|
348
|
+
this.subscribe(onOrder);
|
|
353
349
|
}, 1000);
|
|
354
350
|
}
|
|
355
351
|
}
|
package/src/testClient.ts
CHANGED
|
@@ -7,7 +7,7 @@ import { VelocityClientConfig } from './velocityClientConfig';
|
|
|
7
7
|
export class TestClient extends AdminClient {
|
|
8
8
|
public constructor(config: VelocityClientConfig) {
|
|
9
9
|
config.txVersion = 'legacy';
|
|
10
|
-
if (config.accountSubscription
|
|
10
|
+
if (config.accountSubscription?.type !== 'polling') {
|
|
11
11
|
throw new Error('Test client must be polling');
|
|
12
12
|
}
|
|
13
13
|
super(config);
|
|
@@ -30,7 +30,7 @@ export class TestClient extends AdminClient {
|
|
|
30
30
|
this.accountSubscriber as PollingVelocityClientAccountSubscriber
|
|
31
31
|
).accountLoader.mostRecentSlot;
|
|
32
32
|
await this.fetchAccounts();
|
|
33
|
-
while (lastFetchedSlot < slot) {
|
|
33
|
+
while (slot !== undefined && lastFetchedSlot < slot) {
|
|
34
34
|
await this.fetchAccounts();
|
|
35
35
|
lastFetchedSlot = (
|
|
36
36
|
this.accountSubscriber as PollingVelocityClientAccountSubscriber
|