@velocity-exchange/sdk 0.1.0 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +4 -32
- package/lib/browser/accounts/basicUserAccountSubscriber.d.ts +5 -3
- package/lib/browser/accounts/basicUserAccountSubscriber.js +4 -3
- package/lib/browser/accounts/basicUserStatsAccountSubscriber.d.ts +5 -3
- package/lib/browser/accounts/basicUserStatsAccountSubscriber.js +4 -3
- package/lib/browser/accounts/bulkAccountLoader.d.ts +5 -5
- package/lib/browser/accounts/bulkAccountLoader.js +12 -1
- package/lib/browser/accounts/grpcAccountSubscriber.d.ts +2 -1
- package/lib/browser/accounts/grpcAccountSubscriber.js +8 -2
- package/lib/browser/accounts/grpcMultiAccountSubscriber.d.ts +3 -2
- package/lib/browser/accounts/grpcMultiAccountSubscriber.js +13 -5
- package/lib/browser/accounts/grpcMultiUserAccountSubscriber.d.ts +2 -1
- package/lib/browser/accounts/grpcMultiUserAccountSubscriber.js +12 -8
- package/lib/browser/accounts/grpcProgramAccountSubscriber.d.ts +2 -1
- package/lib/browser/accounts/grpcProgramAccountSubscriber.js +8 -2
- package/lib/browser/accounts/grpcVelocityClientAccountSubscriber.js +18 -3
- package/lib/browser/accounts/grpcVelocityClientAccountSubscriberV2.d.ts +1 -1
- package/lib/browser/accounts/grpcVelocityClientAccountSubscriberV2.js +40 -17
- package/lib/browser/accounts/laserProgramAccountSubscriber.js +3 -0
- package/lib/browser/accounts/oneShotUserAccountSubscriber.js +4 -3
- package/lib/browser/accounts/oneShotUserStatsAccountSubscriber.js +7 -3
- package/lib/browser/accounts/pollingInsuranceFundStakeAccountSubscriber.d.ts +4 -2
- package/lib/browser/accounts/pollingInsuranceFundStakeAccountSubscriber.js +3 -3
- package/lib/browser/accounts/pollingOracleAccountSubscriber.d.ts +0 -2
- package/lib/browser/accounts/pollingOracleAccountSubscriber.js +16 -5
- package/lib/browser/accounts/pollingTokenAccountSubscriber.d.ts +0 -2
- package/lib/browser/accounts/pollingTokenAccountSubscriber.js +16 -5
- package/lib/browser/accounts/pollingUserAccountSubscriber.d.ts +8 -4
- package/lib/browser/accounts/pollingUserAccountSubscriber.js +17 -11
- package/lib/browser/accounts/pollingUserStatsAccountSubscriber.d.ts +4 -2
- package/lib/browser/accounts/pollingUserStatsAccountSubscriber.js +6 -6
- package/lib/browser/accounts/pollingVelocityClientAccountSubscriber.d.ts +7 -1
- package/lib/browser/accounts/pollingVelocityClientAccountSubscriber.js +64 -28
- package/lib/browser/accounts/types.d.ts +4 -4
- package/lib/browser/accounts/utils.d.ts +1 -0
- package/lib/browser/accounts/utils.js +8 -1
- package/lib/browser/accounts/webSocketAccountSubscriber.d.ts +4 -2
- package/lib/browser/accounts/webSocketAccountSubscriber.js +17 -5
- package/lib/browser/accounts/webSocketAccountSubscriberV2.d.ts +4 -2
- package/lib/browser/accounts/webSocketAccountSubscriberV2.js +17 -6
- package/lib/browser/accounts/webSocketInsuranceFundStakeAccountSubscriber.d.ts +4 -2
- package/lib/browser/accounts/webSocketInsuranceFundStakeAccountSubscriber.js +9 -0
- package/lib/browser/accounts/webSocketProgramAccountSubscriber.d.ts +3 -1
- package/lib/browser/accounts/webSocketProgramAccountSubscriber.js +14 -3
- package/lib/browser/accounts/webSocketProgramAccountSubscriberV2.d.ts +3 -1
- package/lib/browser/accounts/webSocketProgramAccountSubscriberV2.js +15 -3
- package/lib/browser/accounts/webSocketProgramAccountsSubscriberV2.d.ts +3 -1
- package/lib/browser/accounts/webSocketProgramAccountsSubscriberV2.js +14 -4
- package/lib/browser/accounts/webSocketUserAccountSubscriber.d.ts +4 -2
- package/lib/browser/accounts/webSocketUserAccountSubscriber.js +9 -0
- package/lib/browser/accounts/webSocketUserStatsAccountSubsriber.d.ts +4 -2
- package/lib/browser/accounts/webSocketUserStatsAccountSubsriber.js +9 -0
- package/lib/browser/accounts/webSocketVelocityClientAccountSubscriber.d.ts +4 -4
- package/lib/browser/accounts/webSocketVelocityClientAccountSubscriber.js +48 -20
- package/lib/browser/accounts/webSocketVelocityClientAccountSubscriberV2.d.ts +7 -3
- package/lib/browser/accounts/webSocketVelocityClientAccountSubscriberV2.js +45 -14
- package/lib/browser/accounts/websocketProgramUserAccountSubscriber.d.ts +1 -1
- package/lib/browser/accounts/websocketProgramUserAccountSubscriber.js +0 -3
- package/lib/browser/addresses/marketAddresses.js +3 -2
- package/lib/browser/addresses/pda.d.ts +0 -2
- package/lib/browser/addresses/pda.js +1 -14
- package/lib/browser/adminClient.d.ts +24 -29
- package/lib/browser/adminClient.js +156 -157
- package/lib/browser/auctionSubscriber/auctionSubscriber.d.ts +1 -1
- package/lib/browser/auctionSubscriber/auctionSubscriber.js +6 -4
- package/lib/browser/auctionSubscriber/auctionSubscriberGrpc.d.ts +1 -1
- package/lib/browser/auctionSubscriber/auctionSubscriberGrpc.js +9 -4
- package/lib/browser/bankrun/bankrunConnection.d.ts +8 -5
- package/lib/browser/bankrun/bankrunConnection.js +92 -32
- package/lib/browser/blockhashSubscriber/BlockhashSubscriber.d.ts +1 -1
- package/lib/browser/blockhashSubscriber/BlockhashSubscriber.js +3 -2
- package/lib/browser/clock/clockSubscriber.d.ts +6 -6
- package/lib/browser/clock/clockSubscriber.js +4 -3
- package/lib/browser/config.d.ts +1 -1
- package/lib/browser/config.js +8 -4
- package/lib/browser/constants/index.d.ts +1 -2
- package/lib/browser/constants/index.js +1 -2
- package/lib/browser/constants/numericConstants.d.ts +1 -2
- package/lib/browser/constants/numericConstants.js +7 -5
- package/lib/browser/constants/spotMarkets.d.ts +0 -1
- package/lib/browser/constituentMap/constituentMap.js +5 -1
- package/lib/browser/constituentMap/pollingConstituentAccountSubscriber.js +3 -2
- package/lib/browser/constituentMap/webSocketConstituentAccountSubscriber.d.ts +2 -3
- package/lib/browser/constituentMap/webSocketConstituentAccountSubscriber.js +10 -3
- package/lib/browser/core/VelocityCore.d.ts +0 -1
- package/lib/browser/core/instructions/deposit.d.ts +0 -1
- package/lib/browser/core/instructions/perpOrders.d.ts +14 -0
- package/lib/browser/core/instructions/perpOrders.js +14 -0
- package/lib/browser/core/instructions/withdraw.d.ts +0 -1
- package/lib/browser/core/remainingAccounts.d.ts +2 -2
- package/lib/browser/core/remainingAccounts.js +2 -2
- package/lib/browser/decode/user.js +9 -1
- package/lib/browser/dlob/DLOB.d.ts +6 -2
- package/lib/browser/dlob/DLOB.js +201 -138
- package/lib/browser/dlob/DLOBNode.d.ts +5 -3
- package/lib/browser/dlob/DLOBNode.js +7 -0
- package/lib/browser/dlob/DLOBSubscriber.d.ts +0 -1
- package/lib/browser/dlob/DLOBSubscriber.js +37 -32
- package/lib/browser/dlob/NodeList.d.ts +0 -1
- package/lib/browser/dlob/NodeList.js +8 -7
- package/lib/browser/dlob/orderBookLevels.d.ts +0 -1
- package/lib/browser/dlob/orderBookLevels.js +19 -12
- package/lib/browser/events/eventList.d.ts +3 -3
- package/lib/browser/events/eventList.js +4 -1
- package/lib/browser/events/eventSubscriber.d.ts +5 -2
- package/lib/browser/events/eventSubscriber.js +75 -26
- package/lib/browser/events/eventsServerLogProvider.d.ts +2 -2
- package/lib/browser/events/eventsServerLogProvider.js +15 -8
- package/lib/browser/events/fetchLogs.d.ts +1 -1
- package/lib/browser/events/fetchLogs.js +4 -2
- package/lib/browser/events/pollingLogProvider.d.ts +2 -2
- package/lib/browser/events/pollingLogProvider.js +1 -0
- package/lib/browser/events/txEventCache.d.ts +3 -3
- package/lib/browser/events/txEventCache.js +6 -2
- package/lib/browser/events/types.d.ts +2 -4
- package/lib/browser/events/types.js +0 -2
- package/lib/browser/events/webSocketLogProvider.d.ts +2 -2
- package/lib/browser/events/webSocketLogProvider.js +5 -2
- package/lib/browser/factory/bigNum.d.ts +0 -1
- package/lib/browser/factory/bigNum.js +1 -1
- package/lib/browser/idl/velocity.d.ts +1243 -1586
- package/lib/browser/idl/velocity.json +1234 -1577
- package/lib/browser/index.d.ts +0 -2
- package/lib/browser/index.js +0 -2
- package/lib/browser/indicative-quotes/indicativeQuotesSender.d.ts +0 -1
- package/lib/browser/jupiter/jupiterClient.d.ts +1 -2
- package/lib/browser/jupiter/jupiterClient.js +18 -8
- package/lib/browser/marginCalculation.d.ts +0 -1
- package/lib/browser/marginCalculation.js +1 -0
- package/lib/browser/marinade/index.d.ts +2 -3
- package/lib/browser/marinade/index.js +5 -0
- package/lib/browser/math/amm.d.ts +31 -14
- package/lib/browser/math/amm.js +77 -22
- package/lib/browser/math/auction.d.ts +0 -1
- package/lib/browser/math/bankruptcy.js +1 -1
- package/lib/browser/math/conversion.d.ts +0 -1
- package/lib/browser/math/funding.d.ts +0 -1
- package/lib/browser/math/funding.js +6 -6
- package/lib/browser/math/insurance.d.ts +1 -2
- package/lib/browser/math/insurance.js +4 -5
- package/lib/browser/math/liquidation.d.ts +0 -1
- package/lib/browser/math/margin.d.ts +1 -10
- package/lib/browser/math/margin.js +3 -62
- package/lib/browser/math/market.d.ts +4 -13
- package/lib/browser/math/market.js +6 -40
- package/lib/browser/math/oracles.d.ts +0 -4
- package/lib/browser/math/oracles.js +1 -14
- package/lib/browser/math/orders.d.ts +0 -6
- package/lib/browser/math/orders.js +2 -74
- package/lib/browser/math/position.d.ts +1 -6
- package/lib/browser/math/position.js +5 -10
- package/lib/browser/math/repeg.d.ts +0 -2
- package/lib/browser/math/repeg.js +1 -23
- package/lib/browser/math/spotBalance.d.ts +4 -5
- package/lib/browser/math/spotBalance.js +6 -6
- package/lib/browser/math/spotMarket.d.ts +0 -7
- package/lib/browser/math/spotMarket.js +1 -16
- package/lib/browser/math/spotPosition.d.ts +4 -5
- package/lib/browser/math/state.d.ts +0 -3
- package/lib/browser/math/state.js +1 -9
- package/lib/browser/math/superStake.d.ts +3 -54
- package/lib/browser/math/superStake.js +16 -13
- package/lib/browser/math/trade.d.ts +2 -3
- package/lib/browser/math/trade.js +6 -6
- package/lib/browser/math/utils.d.ts +0 -1
- package/lib/browser/memcmp.d.ts +0 -1
- package/lib/browser/memcmp.js +1 -10
- package/lib/browser/oracles/oracleClientCache.d.ts +1 -1
- package/lib/browser/oracles/prelaunchOracleClient.js +3 -2
- package/lib/browser/oracles/pythClient.d.ts +0 -1
- package/lib/browser/oracles/pythClient.js +9 -3
- package/lib/browser/oracles/pythLazerClient.d.ts +0 -1
- package/lib/browser/oracles/pythLazerClient.js +3 -2
- package/lib/browser/oracles/strictOraclePrice.d.ts +0 -1
- package/lib/browser/oracles/types.d.ts +0 -1
- package/lib/browser/oracles/utils.d.ts +4 -1
- package/lib/browser/oracles/utils.js +9 -1
- package/lib/browser/orderParams.d.ts +0 -1
- package/lib/browser/orderSubscriber/OrderSubscriber.d.ts +1 -1
- package/lib/browser/orderSubscriber/OrderSubscriber.js +8 -2
- package/lib/browser/priorityFee/heliusPriorityFeeMethod.d.ts +1 -1
- package/lib/browser/priorityFee/priorityFeeSubscriber.d.ts +1 -1
- package/lib/browser/priorityFee/priorityFeeSubscriber.js +32 -8
- package/lib/browser/priorityFee/solanaPriorityFeeMethod.d.ts +1 -1
- package/lib/browser/pyth/types.d.ts +0 -1
- package/lib/browser/slot/SlotSubscriber.d.ts +1 -1
- package/lib/browser/slot/SlotSubscriber.js +2 -1
- package/lib/browser/slot/SlothashSubscriber.d.ts +3 -2
- package/lib/browser/slot/SlothashSubscriber.js +11 -4
- package/lib/browser/swap/UnifiedSwapClient.d.ts +0 -1
- package/lib/browser/swift/grpcSignedMsgUserAccountSubscriber.d.ts +0 -3
- package/lib/browser/swift/grpcSignedMsgUserAccountSubscriber.js +5 -5
- package/lib/browser/swift/signedMsgUserAccountSubscriber.d.ts +3 -2
- package/lib/browser/swift/signedMsgUserAccountSubscriber.js +13 -5
- package/lib/browser/swift/swiftOrderSubscriber.d.ts +1 -1
- package/lib/browser/swift/swiftOrderSubscriber.js +10 -5
- package/lib/browser/testClient.js +3 -2
- package/lib/browser/titan/titanClient.d.ts +0 -1
- package/lib/browser/tokenFaucet.d.ts +0 -1
- package/lib/browser/tokenFaucet.js +16 -2
- package/lib/browser/tx/baseTxSender.d.ts +4 -4
- package/lib/browser/tx/baseTxSender.js +5 -4
- package/lib/browser/tx/fastSingleTxSender.d.ts +3 -3
- package/lib/browser/tx/fastSingleTxSender.js +9 -5
- package/lib/browser/tx/reportTransactionError.d.ts +2 -2
- package/lib/browser/tx/reportTransactionError.js +5 -1
- package/lib/browser/tx/retryTxSender.d.ts +1 -1
- package/lib/browser/tx/retryTxSender.js +4 -2
- package/lib/browser/tx/txHandler.d.ts +9 -3
- package/lib/browser/tx/txHandler.js +54 -40
- package/lib/browser/tx/txParamProcessor.d.ts +4 -1
- package/lib/browser/tx/txParamProcessor.js +6 -0
- package/lib/browser/tx/types.d.ts +1 -1
- package/lib/browser/tx/whileValidTxSender.d.ts +1 -6
- package/lib/browser/tx/whileValidTxSender.js +35 -13
- package/lib/browser/types.d.ts +25 -69
- package/lib/browser/types.js +2 -2
- package/lib/browser/user.d.ts +21 -8
- package/lib/browser/user.js +156 -132
- package/lib/browser/userMap/WebsocketSubscription.d.ts +1 -1
- package/lib/browser/userMap/grpcSubscription.d.ts +1 -1
- package/lib/browser/userMap/referrerMap.js +10 -3
- package/lib/browser/userMap/revenueShareEscrowMap.js +4 -0
- package/lib/browser/userMap/userMap.d.ts +1 -1
- package/lib/browser/userMap/userMap.js +36 -23
- package/lib/browser/userMap/userStatsMap.d.ts +1 -1
- package/lib/browser/userMap/userStatsMap.js +18 -13
- package/lib/browser/userStats.d.ts +7 -2
- package/lib/browser/userStats.js +18 -4
- package/lib/browser/util/TransactionConfirmationManager.js +4 -2
- package/lib/browser/util/chainClock.d.ts +1 -1
- package/lib/browser/util/computeUnits.d.ts +1 -1
- package/lib/browser/util/computeUnits.js +6 -1
- package/lib/browser/velocityClient.d.ts +93 -36
- package/lib/browser/velocityClient.js +414 -280
- package/lib/node/accounts/basicUserAccountSubscriber.d.ts +5 -3
- package/lib/node/accounts/basicUserAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/basicUserAccountSubscriber.js +4 -3
- package/lib/node/accounts/basicUserStatsAccountSubscriber.d.ts +5 -3
- package/lib/node/accounts/basicUserStatsAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/basicUserStatsAccountSubscriber.js +4 -3
- package/lib/node/accounts/bulkAccountLoader.d.ts +5 -5
- package/lib/node/accounts/bulkAccountLoader.d.ts.map +1 -1
- package/lib/node/accounts/bulkAccountLoader.js +12 -1
- package/lib/node/accounts/grpcAccountSubscriber.d.ts +2 -1
- package/lib/node/accounts/grpcAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/grpcAccountSubscriber.js +8 -2
- package/lib/node/accounts/grpcMultiAccountSubscriber.d.ts +3 -2
- package/lib/node/accounts/grpcMultiAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/grpcMultiAccountSubscriber.js +13 -5
- package/lib/node/accounts/grpcMultiUserAccountSubscriber.d.ts +2 -1
- package/lib/node/accounts/grpcMultiUserAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/grpcMultiUserAccountSubscriber.js +12 -8
- package/lib/node/accounts/grpcProgramAccountSubscriber.d.ts +2 -1
- package/lib/node/accounts/grpcProgramAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/grpcProgramAccountSubscriber.js +8 -2
- package/lib/node/accounts/grpcVelocityClientAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/grpcVelocityClientAccountSubscriber.js +18 -3
- package/lib/node/accounts/grpcVelocityClientAccountSubscriberV2.d.ts +1 -1
- package/lib/node/accounts/grpcVelocityClientAccountSubscriberV2.d.ts.map +1 -1
- package/lib/node/accounts/grpcVelocityClientAccountSubscriberV2.js +40 -17
- package/lib/node/accounts/laserProgramAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/laserProgramAccountSubscriber.js +3 -0
- package/lib/node/accounts/oneShotUserAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/oneShotUserAccountSubscriber.js +4 -3
- package/lib/node/accounts/oneShotUserStatsAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/oneShotUserStatsAccountSubscriber.js +7 -3
- package/lib/node/accounts/pollingInsuranceFundStakeAccountSubscriber.d.ts +4 -2
- package/lib/node/accounts/pollingInsuranceFundStakeAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/pollingInsuranceFundStakeAccountSubscriber.js +3 -3
- package/lib/node/accounts/pollingOracleAccountSubscriber.d.ts +0 -2
- package/lib/node/accounts/pollingOracleAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/pollingOracleAccountSubscriber.js +16 -5
- package/lib/node/accounts/pollingTokenAccountSubscriber.d.ts +0 -2
- package/lib/node/accounts/pollingTokenAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/pollingTokenAccountSubscriber.js +16 -5
- package/lib/node/accounts/pollingUserAccountSubscriber.d.ts +8 -4
- package/lib/node/accounts/pollingUserAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/pollingUserAccountSubscriber.js +17 -11
- package/lib/node/accounts/pollingUserStatsAccountSubscriber.d.ts +4 -2
- package/lib/node/accounts/pollingUserStatsAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/pollingUserStatsAccountSubscriber.js +6 -6
- package/lib/node/accounts/pollingVelocityClientAccountSubscriber.d.ts +7 -1
- package/lib/node/accounts/pollingVelocityClientAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/pollingVelocityClientAccountSubscriber.js +64 -28
- package/lib/node/accounts/types.d.ts +4 -4
- package/lib/node/accounts/types.d.ts.map +1 -1
- package/lib/node/accounts/utils.d.ts +1 -0
- package/lib/node/accounts/utils.d.ts.map +1 -1
- package/lib/node/accounts/utils.js +8 -1
- package/lib/node/accounts/webSocketAccountSubscriber.d.ts +4 -2
- package/lib/node/accounts/webSocketAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/webSocketAccountSubscriber.js +17 -5
- package/lib/node/accounts/webSocketAccountSubscriberV2.d.ts +4 -2
- package/lib/node/accounts/webSocketAccountSubscriberV2.d.ts.map +1 -1
- package/lib/node/accounts/webSocketAccountSubscriberV2.js +17 -6
- package/lib/node/accounts/webSocketInsuranceFundStakeAccountSubscriber.d.ts +4 -2
- package/lib/node/accounts/webSocketInsuranceFundStakeAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/webSocketInsuranceFundStakeAccountSubscriber.js +9 -0
- package/lib/node/accounts/webSocketProgramAccountSubscriber.d.ts +3 -1
- package/lib/node/accounts/webSocketProgramAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/webSocketProgramAccountSubscriber.js +14 -3
- package/lib/node/accounts/webSocketProgramAccountSubscriberV2.d.ts +3 -1
- package/lib/node/accounts/webSocketProgramAccountSubscriberV2.d.ts.map +1 -1
- package/lib/node/accounts/webSocketProgramAccountSubscriberV2.js +15 -3
- package/lib/node/accounts/webSocketProgramAccountsSubscriberV2.d.ts +3 -1
- package/lib/node/accounts/webSocketProgramAccountsSubscriberV2.d.ts.map +1 -1
- package/lib/node/accounts/webSocketProgramAccountsSubscriberV2.js +14 -4
- package/lib/node/accounts/webSocketUserAccountSubscriber.d.ts +4 -2
- package/lib/node/accounts/webSocketUserAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/webSocketUserAccountSubscriber.js +9 -0
- package/lib/node/accounts/webSocketUserStatsAccountSubsriber.d.ts +4 -2
- package/lib/node/accounts/webSocketUserStatsAccountSubsriber.d.ts.map +1 -1
- package/lib/node/accounts/webSocketUserStatsAccountSubsriber.js +9 -0
- package/lib/node/accounts/webSocketVelocityClientAccountSubscriber.d.ts +4 -4
- package/lib/node/accounts/webSocketVelocityClientAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/webSocketVelocityClientAccountSubscriber.js +48 -20
- package/lib/node/accounts/webSocketVelocityClientAccountSubscriberV2.d.ts +7 -3
- package/lib/node/accounts/webSocketVelocityClientAccountSubscriberV2.d.ts.map +1 -1
- package/lib/node/accounts/webSocketVelocityClientAccountSubscriberV2.js +45 -14
- package/lib/node/accounts/websocketProgramUserAccountSubscriber.d.ts +1 -1
- package/lib/node/accounts/websocketProgramUserAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/websocketProgramUserAccountSubscriber.js +0 -3
- package/lib/node/addresses/marketAddresses.d.ts.map +1 -1
- package/lib/node/addresses/marketAddresses.js +3 -2
- package/lib/node/addresses/pda.d.ts +0 -2
- package/lib/node/addresses/pda.d.ts.map +1 -1
- package/lib/node/addresses/pda.js +1 -14
- package/lib/node/adminClient.d.ts +24 -29
- package/lib/node/adminClient.d.ts.map +1 -1
- package/lib/node/adminClient.js +156 -157
- package/lib/node/auctionSubscriber/auctionSubscriber.d.ts +1 -1
- package/lib/node/auctionSubscriber/auctionSubscriber.d.ts.map +1 -1
- package/lib/node/auctionSubscriber/auctionSubscriber.js +6 -4
- package/lib/node/auctionSubscriber/auctionSubscriberGrpc.d.ts +1 -1
- package/lib/node/auctionSubscriber/auctionSubscriberGrpc.d.ts.map +1 -1
- package/lib/node/auctionSubscriber/auctionSubscriberGrpc.js +9 -4
- package/lib/node/bankrun/bankrunConnection.d.ts +8 -5
- package/lib/node/bankrun/bankrunConnection.d.ts.map +1 -1
- package/lib/node/bankrun/bankrunConnection.js +92 -32
- package/lib/node/blockhashSubscriber/BlockhashSubscriber.d.ts +1 -1
- package/lib/node/blockhashSubscriber/BlockhashSubscriber.d.ts.map +1 -1
- package/lib/node/blockhashSubscriber/BlockhashSubscriber.js +3 -2
- package/lib/node/clock/clockSubscriber.d.ts +6 -6
- package/lib/node/clock/clockSubscriber.d.ts.map +1 -1
- package/lib/node/clock/clockSubscriber.js +4 -3
- package/lib/node/config.d.ts +1 -1
- package/lib/node/config.d.ts.map +1 -1
- package/lib/node/config.js +8 -4
- package/lib/node/constants/index.d.ts +1 -2
- package/lib/node/constants/index.d.ts.map +1 -1
- package/lib/node/constants/index.js +1 -2
- package/lib/node/constants/numericConstants.d.ts +1 -2
- package/lib/node/constants/numericConstants.d.ts.map +1 -1
- package/lib/node/constants/numericConstants.js +7 -5
- package/lib/node/constants/spotMarkets.d.ts +0 -1
- package/lib/node/constants/spotMarkets.d.ts.map +1 -1
- package/lib/node/constituentMap/constituentMap.d.ts.map +1 -1
- package/lib/node/constituentMap/constituentMap.js +5 -1
- package/lib/node/constituentMap/pollingConstituentAccountSubscriber.d.ts.map +1 -1
- package/lib/node/constituentMap/pollingConstituentAccountSubscriber.js +3 -2
- package/lib/node/constituentMap/webSocketConstituentAccountSubscriber.d.ts +2 -3
- package/lib/node/constituentMap/webSocketConstituentAccountSubscriber.d.ts.map +1 -1
- package/lib/node/constituentMap/webSocketConstituentAccountSubscriber.js +10 -3
- package/lib/node/core/VelocityCore.d.ts +0 -1
- package/lib/node/core/VelocityCore.d.ts.map +1 -1
- package/lib/node/core/instructions/deposit.d.ts +0 -1
- package/lib/node/core/instructions/deposit.d.ts.map +1 -1
- package/lib/node/core/instructions/perpOrders.d.ts +14 -0
- package/lib/node/core/instructions/perpOrders.d.ts.map +1 -1
- package/lib/node/core/instructions/perpOrders.js +14 -0
- package/lib/node/core/instructions/withdraw.d.ts +0 -1
- package/lib/node/core/instructions/withdraw.d.ts.map +1 -1
- package/lib/node/core/remainingAccounts.d.ts +2 -2
- package/lib/node/core/remainingAccounts.d.ts.map +1 -1
- package/lib/node/core/remainingAccounts.js +2 -2
- package/lib/node/decode/user.d.ts.map +1 -1
- package/lib/node/decode/user.js +9 -1
- package/lib/node/dlob/DLOB.d.ts +6 -2
- package/lib/node/dlob/DLOB.d.ts.map +1 -1
- package/lib/node/dlob/DLOB.js +201 -138
- package/lib/node/dlob/DLOBNode.d.ts +5 -3
- package/lib/node/dlob/DLOBNode.d.ts.map +1 -1
- package/lib/node/dlob/DLOBNode.js +7 -0
- package/lib/node/dlob/DLOBSubscriber.d.ts +0 -1
- package/lib/node/dlob/DLOBSubscriber.d.ts.map +1 -1
- package/lib/node/dlob/DLOBSubscriber.js +37 -32
- package/lib/node/dlob/NodeList.d.ts +0 -1
- package/lib/node/dlob/NodeList.d.ts.map +1 -1
- package/lib/node/dlob/NodeList.js +8 -7
- package/lib/node/dlob/orderBookLevels.d.ts +0 -1
- package/lib/node/dlob/orderBookLevels.d.ts.map +1 -1
- package/lib/node/dlob/orderBookLevels.js +19 -12
- package/lib/node/events/eventList.d.ts +3 -3
- package/lib/node/events/eventList.d.ts.map +1 -1
- package/lib/node/events/eventList.js +4 -1
- package/lib/node/events/eventSubscriber.d.ts +5 -2
- package/lib/node/events/eventSubscriber.d.ts.map +1 -1
- package/lib/node/events/eventSubscriber.js +75 -26
- package/lib/node/events/eventsServerLogProvider.d.ts +2 -2
- package/lib/node/events/eventsServerLogProvider.d.ts.map +1 -1
- package/lib/node/events/eventsServerLogProvider.js +15 -8
- package/lib/node/events/fetchLogs.d.ts +1 -1
- package/lib/node/events/fetchLogs.d.ts.map +1 -1
- package/lib/node/events/fetchLogs.js +4 -2
- package/lib/node/events/pollingLogProvider.d.ts +2 -2
- package/lib/node/events/pollingLogProvider.d.ts.map +1 -1
- package/lib/node/events/pollingLogProvider.js +1 -0
- package/lib/node/events/txEventCache.d.ts +3 -3
- package/lib/node/events/txEventCache.d.ts.map +1 -1
- package/lib/node/events/txEventCache.js +6 -2
- package/lib/node/events/types.d.ts +2 -4
- package/lib/node/events/types.d.ts.map +1 -1
- package/lib/node/events/types.js +0 -2
- package/lib/node/events/webSocketLogProvider.d.ts +2 -2
- package/lib/node/events/webSocketLogProvider.d.ts.map +1 -1
- package/lib/node/events/webSocketLogProvider.js +5 -2
- package/lib/node/factory/bigNum.d.ts +0 -1
- package/lib/node/factory/bigNum.d.ts.map +1 -1
- package/lib/node/factory/bigNum.js +1 -1
- package/lib/node/idl/velocity.d.ts +1243 -1586
- package/lib/node/idl/velocity.d.ts.map +1 -1
- package/lib/node/idl/velocity.json +1234 -1577
- package/lib/node/index.d.ts +0 -2
- package/lib/node/index.d.ts.map +1 -1
- package/lib/node/index.js +0 -2
- package/lib/node/indicative-quotes/indicativeQuotesSender.d.ts +0 -1
- package/lib/node/indicative-quotes/indicativeQuotesSender.d.ts.map +1 -1
- package/lib/node/jupiter/jupiterClient.d.ts +1 -2
- package/lib/node/jupiter/jupiterClient.d.ts.map +1 -1
- package/lib/node/jupiter/jupiterClient.js +18 -8
- package/lib/node/marginCalculation.d.ts +0 -1
- package/lib/node/marginCalculation.d.ts.map +1 -1
- package/lib/node/marginCalculation.js +1 -0
- package/lib/node/marinade/index.d.ts +2 -3
- package/lib/node/marinade/index.d.ts.map +1 -1
- package/lib/node/marinade/index.js +5 -0
- package/lib/node/math/amm.d.ts +31 -14
- package/lib/node/math/amm.d.ts.map +1 -1
- package/lib/node/math/amm.js +77 -22
- package/lib/node/math/auction.d.ts +0 -1
- package/lib/node/math/auction.d.ts.map +1 -1
- package/lib/node/math/bankruptcy.js +1 -1
- package/lib/node/math/conversion.d.ts +0 -1
- package/lib/node/math/conversion.d.ts.map +1 -1
- package/lib/node/math/funding.d.ts +0 -1
- package/lib/node/math/funding.d.ts.map +1 -1
- package/lib/node/math/funding.js +6 -6
- package/lib/node/math/insurance.d.ts +1 -2
- package/lib/node/math/insurance.d.ts.map +1 -1
- package/lib/node/math/insurance.js +4 -5
- package/lib/node/math/liquidation.d.ts +0 -1
- package/lib/node/math/liquidation.d.ts.map +1 -1
- package/lib/node/math/margin.d.ts +1 -10
- package/lib/node/math/margin.d.ts.map +1 -1
- package/lib/node/math/margin.js +3 -62
- package/lib/node/math/market.d.ts +4 -13
- package/lib/node/math/market.d.ts.map +1 -1
- package/lib/node/math/market.js +6 -40
- package/lib/node/math/oracles.d.ts +0 -4
- package/lib/node/math/oracles.d.ts.map +1 -1
- package/lib/node/math/oracles.js +1 -14
- package/lib/node/math/orders.d.ts +0 -6
- package/lib/node/math/orders.d.ts.map +1 -1
- package/lib/node/math/orders.js +2 -74
- package/lib/node/math/position.d.ts +1 -6
- package/lib/node/math/position.d.ts.map +1 -1
- package/lib/node/math/position.js +5 -10
- package/lib/node/math/repeg.d.ts +0 -2
- package/lib/node/math/repeg.d.ts.map +1 -1
- package/lib/node/math/repeg.js +1 -23
- package/lib/node/math/spotBalance.d.ts +4 -5
- package/lib/node/math/spotBalance.d.ts.map +1 -1
- package/lib/node/math/spotBalance.js +6 -6
- package/lib/node/math/spotMarket.d.ts +0 -7
- package/lib/node/math/spotMarket.d.ts.map +1 -1
- package/lib/node/math/spotMarket.js +1 -16
- package/lib/node/math/spotPosition.d.ts +4 -5
- package/lib/node/math/spotPosition.d.ts.map +1 -1
- package/lib/node/math/state.d.ts +0 -3
- package/lib/node/math/state.d.ts.map +1 -1
- package/lib/node/math/state.js +1 -9
- package/lib/node/math/superStake.d.ts +3 -54
- package/lib/node/math/superStake.d.ts.map +1 -1
- package/lib/node/math/superStake.js +16 -13
- package/lib/node/math/trade.d.ts +2 -3
- package/lib/node/math/trade.d.ts.map +1 -1
- package/lib/node/math/trade.js +6 -6
- package/lib/node/math/utils.d.ts +0 -1
- package/lib/node/math/utils.d.ts.map +1 -1
- package/lib/node/memcmp.d.ts +0 -1
- package/lib/node/memcmp.d.ts.map +1 -1
- package/lib/node/memcmp.js +1 -10
- package/lib/node/oracles/oracleClientCache.d.ts +1 -1
- package/lib/node/oracles/prelaunchOracleClient.d.ts.map +1 -1
- package/lib/node/oracles/prelaunchOracleClient.js +3 -2
- package/lib/node/oracles/pythClient.d.ts +0 -1
- package/lib/node/oracles/pythClient.d.ts.map +1 -1
- package/lib/node/oracles/pythClient.js +9 -3
- package/lib/node/oracles/pythLazerClient.d.ts +0 -1
- package/lib/node/oracles/pythLazerClient.d.ts.map +1 -1
- package/lib/node/oracles/pythLazerClient.js +3 -2
- package/lib/node/oracles/strictOraclePrice.d.ts +0 -1
- package/lib/node/oracles/strictOraclePrice.d.ts.map +1 -1
- package/lib/node/oracles/types.d.ts +0 -1
- package/lib/node/oracles/types.d.ts.map +1 -1
- package/lib/node/oracles/utils.d.ts +4 -1
- package/lib/node/oracles/utils.d.ts.map +1 -1
- package/lib/node/oracles/utils.js +9 -1
- package/lib/node/orderParams.d.ts +0 -1
- package/lib/node/orderParams.d.ts.map +1 -1
- package/lib/node/orderSubscriber/OrderSubscriber.d.ts +1 -1
- package/lib/node/orderSubscriber/OrderSubscriber.d.ts.map +1 -1
- package/lib/node/orderSubscriber/OrderSubscriber.js +8 -2
- package/lib/node/priorityFee/heliusPriorityFeeMethod.d.ts +1 -1
- package/lib/node/priorityFee/heliusPriorityFeeMethod.d.ts.map +1 -1
- package/lib/node/priorityFee/priorityFeeSubscriber.d.ts +1 -1
- package/lib/node/priorityFee/priorityFeeSubscriber.d.ts.map +1 -1
- package/lib/node/priorityFee/priorityFeeSubscriber.js +32 -8
- package/lib/node/priorityFee/solanaPriorityFeeMethod.d.ts +1 -1
- package/lib/node/priorityFee/solanaPriorityFeeMethod.d.ts.map +1 -1
- package/lib/node/pyth/types.d.ts +0 -1
- package/lib/node/pyth/types.d.ts.map +1 -1
- package/lib/node/slot/SlotSubscriber.d.ts +1 -1
- package/lib/node/slot/SlotSubscriber.d.ts.map +1 -1
- package/lib/node/slot/SlotSubscriber.js +2 -1
- package/lib/node/slot/SlothashSubscriber.d.ts +3 -2
- package/lib/node/slot/SlothashSubscriber.d.ts.map +1 -1
- package/lib/node/slot/SlothashSubscriber.js +11 -4
- package/lib/node/swap/UnifiedSwapClient.d.ts +0 -1
- package/lib/node/swap/UnifiedSwapClient.d.ts.map +1 -1
- package/lib/node/swift/grpcSignedMsgUserAccountSubscriber.d.ts +0 -3
- package/lib/node/swift/grpcSignedMsgUserAccountSubscriber.d.ts.map +1 -1
- package/lib/node/swift/grpcSignedMsgUserAccountSubscriber.js +5 -5
- package/lib/node/swift/signedMsgUserAccountSubscriber.d.ts +3 -2
- package/lib/node/swift/signedMsgUserAccountSubscriber.d.ts.map +1 -1
- package/lib/node/swift/signedMsgUserAccountSubscriber.js +13 -5
- package/lib/node/swift/swiftOrderSubscriber.d.ts +1 -1
- package/lib/node/swift/swiftOrderSubscriber.d.ts.map +1 -1
- package/lib/node/swift/swiftOrderSubscriber.js +10 -5
- package/lib/node/testClient.js +3 -2
- package/lib/node/titan/titanClient.d.ts +0 -1
- package/lib/node/titan/titanClient.d.ts.map +1 -1
- package/lib/node/tokenFaucet.d.ts +0 -1
- package/lib/node/tokenFaucet.d.ts.map +1 -1
- package/lib/node/tokenFaucet.js +16 -2
- package/lib/node/tx/baseTxSender.d.ts +4 -4
- package/lib/node/tx/baseTxSender.d.ts.map +1 -1
- package/lib/node/tx/baseTxSender.js +5 -4
- package/lib/node/tx/fastSingleTxSender.d.ts +3 -3
- package/lib/node/tx/fastSingleTxSender.d.ts.map +1 -1
- package/lib/node/tx/fastSingleTxSender.js +9 -5
- package/lib/node/tx/reportTransactionError.d.ts +2 -2
- package/lib/node/tx/reportTransactionError.d.ts.map +1 -1
- package/lib/node/tx/reportTransactionError.js +5 -1
- package/lib/node/tx/retryTxSender.d.ts +1 -1
- package/lib/node/tx/retryTxSender.d.ts.map +1 -1
- package/lib/node/tx/retryTxSender.js +4 -2
- package/lib/node/tx/txHandler.d.ts +9 -3
- package/lib/node/tx/txHandler.d.ts.map +1 -1
- package/lib/node/tx/txHandler.js +54 -40
- package/lib/node/tx/txParamProcessor.d.ts +4 -1
- package/lib/node/tx/txParamProcessor.d.ts.map +1 -1
- package/lib/node/tx/txParamProcessor.js +6 -0
- package/lib/node/tx/types.d.ts +1 -1
- package/lib/node/tx/types.d.ts.map +1 -1
- package/lib/node/tx/whileValidTxSender.d.ts +1 -6
- package/lib/node/tx/whileValidTxSender.d.ts.map +1 -1
- package/lib/node/tx/whileValidTxSender.js +35 -13
- package/lib/node/types.d.ts +25 -69
- package/lib/node/types.d.ts.map +1 -1
- package/lib/node/types.js +2 -2
- package/lib/node/user.d.ts +21 -8
- package/lib/node/user.d.ts.map +1 -1
- package/lib/node/user.js +156 -132
- package/lib/node/userMap/WebsocketSubscription.d.ts +1 -1
- package/lib/node/userMap/WebsocketSubscription.d.ts.map +1 -1
- package/lib/node/userMap/grpcSubscription.d.ts +1 -1
- package/lib/node/userMap/grpcSubscription.d.ts.map +1 -1
- package/lib/node/userMap/referrerMap.d.ts.map +1 -1
- package/lib/node/userMap/referrerMap.js +10 -3
- package/lib/node/userMap/revenueShareEscrowMap.d.ts.map +1 -1
- package/lib/node/userMap/revenueShareEscrowMap.js +4 -0
- package/lib/node/userMap/userMap.d.ts +1 -1
- package/lib/node/userMap/userMap.d.ts.map +1 -1
- package/lib/node/userMap/userMap.js +36 -23
- package/lib/node/userMap/userStatsMap.d.ts +1 -1
- package/lib/node/userMap/userStatsMap.d.ts.map +1 -1
- package/lib/node/userMap/userStatsMap.js +18 -13
- package/lib/node/userStats.d.ts +7 -2
- package/lib/node/userStats.d.ts.map +1 -1
- package/lib/node/userStats.js +18 -4
- package/lib/node/util/TransactionConfirmationManager.d.ts.map +1 -1
- package/lib/node/util/TransactionConfirmationManager.js +4 -2
- package/lib/node/util/chainClock.d.ts +1 -1
- package/lib/node/util/chainClock.d.ts.map +1 -1
- package/lib/node/util/computeUnits.d.ts +1 -1
- package/lib/node/util/computeUnits.d.ts.map +1 -1
- package/lib/node/util/computeUnits.js +6 -1
- package/lib/node/velocityClient.d.ts +93 -36
- package/lib/node/velocityClient.d.ts.map +1 -1
- package/lib/node/velocityClient.js +414 -280
- package/package.json +15 -8
- package/src/accounts/basicUserAccountSubscriber.ts +7 -5
- package/src/accounts/basicUserStatsAccountSubscriber.ts +9 -5
- package/src/accounts/bulkAccountLoader.ts +20 -7
- package/src/accounts/grpcAccountSubscriber.ts +11 -3
- package/src/accounts/grpcMultiAccountSubscriber.ts +24 -9
- package/src/accounts/grpcMultiUserAccountSubscriber.ts +16 -12
- package/src/accounts/grpcProgramAccountSubscriber.ts +11 -3
- package/src/accounts/grpcVelocityClientAccountSubscriber.ts +17 -7
- package/src/accounts/grpcVelocityClientAccountSubscriberV2.ts +66 -39
- package/src/accounts/laserProgramAccountSubscriber.ts +3 -0
- package/src/accounts/oneShotUserAccountSubscriber.ts +5 -3
- package/src/accounts/oneShotUserStatsAccountSubscriber.ts +8 -3
- package/src/accounts/pollingInsuranceFundStakeAccountSubscriber.ts +11 -5
- package/src/accounts/pollingOracleAccountSubscriber.ts +17 -10
- package/src/accounts/pollingTokenAccountSubscriber.ts +17 -10
- package/src/accounts/pollingUserAccountSubscriber.ts +26 -20
- package/src/accounts/pollingUserStatsAccountSubscriber.ts +12 -10
- package/src/accounts/pollingVelocityClientAccountSubscriber.ts +76 -30
- package/src/accounts/types.ts +6 -4
- package/src/accounts/utils.ts +10 -0
- package/src/accounts/webSocketAccountSubscriber.ts +23 -10
- package/src/accounts/webSocketAccountSubscriberV2.ts +23 -8
- package/src/accounts/webSocketInsuranceFundStakeAccountSubscriber.ts +17 -2
- package/src/accounts/webSocketProgramAccountSubscriber.ts +29 -4
- package/src/accounts/webSocketProgramAccountSubscriberV2.ts +30 -4
- package/src/accounts/webSocketProgramAccountsSubscriberV2.ts +29 -4
- package/src/accounts/webSocketUserAccountSubscriber.ts +11 -2
- package/src/accounts/webSocketUserStatsAccountSubsriber.ts +15 -2
- package/src/accounts/webSocketVelocityClientAccountSubscriber.ts +76 -48
- package/src/accounts/webSocketVelocityClientAccountSubscriberV2.ts +74 -35
- package/src/accounts/websocketProgramUserAccountSubscriber.ts +1 -6
- package/src/addresses/marketAddresses.ts +3 -2
- package/src/addresses/pda.ts +0 -25
- package/src/adminClient.ts +273 -303
- package/src/auctionSubscriber/auctionSubscriber.ts +7 -5
- package/src/auctionSubscriber/auctionSubscriberGrpc.ts +12 -5
- package/src/bankrun/bankrunConnection.ts +110 -40
- package/src/blockhashSubscriber/BlockhashSubscriber.ts +5 -4
- package/src/clock/clockSubscriber.ts +10 -9
- package/src/config.ts +8 -3
- package/src/constants/index.ts +1 -2
- package/src/constants/numericConstants.ts +8 -4
- package/src/constituentMap/constituentMap.ts +8 -1
- package/src/constituentMap/pollingConstituentAccountSubscriber.ts +4 -2
- package/src/constituentMap/webSocketConstituentAccountSubscriber.ts +13 -4
- package/src/core/instructions/perpOrders.ts +14 -0
- package/src/core/remainingAccounts.ts +4 -4
- package/src/decode/user.ts +8 -1
- package/src/dlob/DLOB.ts +296 -172
- package/src/dlob/DLOBNode.ts +23 -3
- package/src/dlob/DLOBSubscriber.ts +51 -34
- package/src/dlob/NodeList.ts +8 -7
- package/src/dlob/orderBookLevels.ts +45 -25
- package/src/events/eventList.ts +4 -1
- package/src/events/eventSubscriber.ts +107 -49
- package/src/events/eventsServerLogProvider.ts +22 -13
- package/src/events/fetchLogs.ts +3 -3
- package/src/events/pollingLogProvider.ts +2 -2
- package/src/events/txEventCache.ts +8 -2
- package/src/events/types.ts +0 -8
- package/src/events/webSocketLogProvider.ts +5 -3
- package/src/factory/bigNum.ts +2 -2
- package/src/idl/velocity.json +1234 -1577
- package/src/idl/velocity.ts +1234 -1577
- package/src/index.ts +0 -2
- package/src/jupiter/jupiterClient.ts +30 -10
- package/src/marginCalculation.ts +1 -0
- package/src/marinade/index.ts +11 -2
- package/src/math/amm.ts +188 -33
- package/src/math/bankruptcy.ts +1 -1
- package/src/math/funding.ts +7 -6
- package/src/math/insurance.ts +6 -8
- package/src/math/margin.ts +5 -112
- package/src/math/market.ts +6 -96
- package/src/math/oracles.ts +0 -17
- package/src/math/orders.ts +1 -110
- package/src/math/position.ts +4 -16
- package/src/math/repeg.ts +0 -29
- package/src/math/spotBalance.ts +14 -10
- package/src/math/spotMarket.ts +2 -28
- package/src/math/spotPosition.ts +4 -4
- package/src/math/state.ts +0 -8
- package/src/math/superStake.ts +19 -65
- package/src/math/trade.ts +2 -6
- package/src/memcmp.ts +0 -9
- package/src/oracles/prelaunchOracleClient.ts +7 -2
- package/src/oracles/pythClient.ts +12 -3
- package/src/oracles/pythLazerClient.ts +7 -2
- package/src/oracles/utils.ts +15 -0
- package/src/orderSubscriber/OrderSubscriber.ts +10 -4
- package/src/priorityFee/heliusPriorityFeeMethod.ts +1 -1
- package/src/priorityFee/priorityFeeSubscriber.ts +45 -9
- package/src/priorityFee/solanaPriorityFeeMethod.ts +1 -1
- package/src/pyth/types.ts +0 -2
- package/src/slot/SlotSubscriber.ts +3 -3
- package/src/slot/SlothashSubscriber.ts +17 -6
- package/src/swift/grpcSignedMsgUserAccountSubscriber.ts +5 -6
- package/src/swift/signedMsgUserAccountSubscriber.ts +16 -8
- package/src/swift/swiftOrderSubscriber.ts +10 -9
- package/src/testClient.ts +2 -2
- package/src/tokenFaucet.ts +22 -3
- package/src/tx/baseTxSender.ts +10 -10
- package/src/tx/fastSingleTxSender.ts +12 -8
- package/src/tx/reportTransactionError.ts +12 -7
- package/src/tx/retryTxSender.ts +6 -4
- package/src/tx/txHandler.ts +88 -43
- package/src/tx/txParamProcessor.ts +18 -3
- package/src/tx/types.ts +1 -1
- package/src/tx/whileValidTxSender.ts +51 -22
- package/src/types.ts +39 -75
- package/src/user.ts +200 -152
- package/src/userMap/WebsocketSubscription.ts +1 -1
- package/src/userMap/grpcSubscription.ts +1 -1
- package/src/userMap/referrerMap.ts +14 -10
- package/src/userMap/revenueShareEscrowMap.ts +8 -3
- package/src/userMap/userMap.ts +43 -25
- package/src/userMap/userStatsMap.ts +32 -19
- package/src/userStats.ts +21 -8
- package/src/util/TransactionConfirmationManager.ts +10 -2
- package/src/util/chainClock.ts +1 -1
- package/src/util/computeUnits.ts +7 -3
- package/src/velocityClient.ts +536 -383
- package/tests/VelocityCore/remainingAccounts.test.ts +4 -5
- package/tests/accounts/customizedCadenceBulkAccountLoader.test.ts +19 -11
- package/tests/amm/test.ts +300 -95
- package/tests/decode/userAccountBufferStrings.ts +100 -100
- package/tests/dlob/helpers.ts +162 -173
- package/tests/dlob/test.ts +155 -106
- package/tests/tx/TransactionConfirmationManager.test.ts +9 -2
- package/tests/user/getMarginCalculation.ts +1 -1
- package/tests/user/helpers.ts +3 -4
- package/tests/user/marginCalculations.test.ts +2 -2
- package/tests/user/test.ts +3 -3
- package/tsconfig.browser.json +3 -1
- package/tsconfig.json +21 -2
- package/.yarn/install-state.gz +0 -0
- package/VERSION +0 -1
- package/bun.lock +0 -1885
- package/lib/browser/constants/insuranceFund.d.ts +0 -5
- package/lib/browser/constants/insuranceFund.js +0 -9
- package/lib/browser/tx/forwardOnlyTxSender.d.ts +0 -37
- package/lib/browser/tx/forwardOnlyTxSender.js +0 -92
- package/lib/browser/util/tps.d.ts +0 -2
- package/lib/browser/util/tps.js +0 -16
- package/lib/node/constants/insuranceFund.d.ts +0 -6
- package/lib/node/constants/insuranceFund.d.ts.map +0 -1
- package/lib/node/constants/insuranceFund.js +0 -9
- package/lib/node/tx/forwardOnlyTxSender.d.ts +0 -38
- package/lib/node/tx/forwardOnlyTxSender.d.ts.map +0 -1
- package/lib/node/tx/forwardOnlyTxSender.js +0 -92
- package/lib/node/util/tps.d.ts +0 -3
- package/lib/node/util/tps.d.ts.map +0 -1
- package/lib/node/util/tps.js +0 -16
- package/scripts/updateVersion.js +0 -28
- package/src/constants/insuranceFund.ts +0 -8
- package/src/tx/forwardOnlyTxSender.ts +0 -145
- package/src/util/tps.ts +0 -27
- package/tests/decode/phoenix.ts +0 -71
|
@@ -14,7 +14,7 @@ export class WebsocketSubscription {
|
|
|
14
14
|
private additionalFilters?: MemcmpFilter[];
|
|
15
15
|
private decodeFn: (name: string, data: Buffer) => UserAccount;
|
|
16
16
|
|
|
17
|
-
private subscriber
|
|
17
|
+
private subscriber?: WebSocketProgramAccountSubscriber<UserAccount>;
|
|
18
18
|
|
|
19
19
|
constructor({
|
|
20
20
|
userMap,
|
|
@@ -15,7 +15,7 @@ export class grpcSubscription {
|
|
|
15
15
|
private additionalFilters?: MemcmpFilter[];
|
|
16
16
|
private decodeFn: (name: string, data: Buffer) => UserAccount;
|
|
17
17
|
|
|
18
|
-
private subscriber
|
|
18
|
+
private subscriber?: WebSocketProgramAccountSubscriber<UserAccount>;
|
|
19
19
|
|
|
20
20
|
constructor({
|
|
21
21
|
grpcConfigs,
|
|
@@ -32,7 +32,7 @@ export class ReferrerMap {
|
|
|
32
32
|
private parallelSync: boolean;
|
|
33
33
|
|
|
34
34
|
private fetchPromise?: Promise<void>;
|
|
35
|
-
private fetchPromiseResolver: () => void;
|
|
35
|
+
private fetchPromiseResolver: () => void = () => {};
|
|
36
36
|
|
|
37
37
|
/**
|
|
38
38
|
* Creates a new UserStatsMap instance.
|
|
@@ -72,12 +72,16 @@ export class ReferrerMap {
|
|
|
72
72
|
this.velocityClient.program.programId,
|
|
73
73
|
new PublicKey(authority)
|
|
74
74
|
);
|
|
75
|
-
const
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
75
|
+
const accountInfo = await this.velocityClient.connection.getAccountInfo(
|
|
76
|
+
userStatsAccountPublicKey,
|
|
77
|
+
'processed'
|
|
78
|
+
);
|
|
79
|
+
if (!accountInfo) {
|
|
80
|
+
throw new Error(
|
|
81
|
+
`ReferrerMap: UserStats account not found for authority ${authority}`
|
|
82
|
+
);
|
|
83
|
+
}
|
|
84
|
+
const buffer = accountInfo.data;
|
|
81
85
|
|
|
82
86
|
const referrer = bs58.encode(buffer.subarray(40, 72));
|
|
83
87
|
|
|
@@ -173,7 +177,7 @@ export class ReferrerMap {
|
|
|
173
177
|
const rpcRequestArgs = [
|
|
174
178
|
this.velocityClient.program.programId.toBase58(),
|
|
175
179
|
{
|
|
176
|
-
commitment: this.velocityClient.opts
|
|
180
|
+
commitment: this.velocityClient.opts?.commitment,
|
|
177
181
|
filters: [getUserStatsFilter()],
|
|
178
182
|
encoding: 'base64',
|
|
179
183
|
dataSlice: {
|
|
@@ -213,7 +217,7 @@ export class ReferrerMap {
|
|
|
213
217
|
const rpcRequestArgs = [
|
|
214
218
|
this.velocityClient.program.programId.toBase58(),
|
|
215
219
|
{
|
|
216
|
-
commitment: this.velocityClient.opts
|
|
220
|
+
commitment: this.velocityClient.opts?.commitment,
|
|
217
221
|
filters: [getUserStatsFilter(), referrerFilter],
|
|
218
222
|
encoding: 'base64',
|
|
219
223
|
dataSlice: {
|
|
@@ -248,7 +252,7 @@ export class ReferrerMap {
|
|
|
248
252
|
// @ts-ignore
|
|
249
253
|
const buffer = Buffer.from(
|
|
250
254
|
programAccount.account.data[0],
|
|
251
|
-
programAccount.account.data[1]
|
|
255
|
+
programAccount.account.data[1] as BufferEncoding
|
|
252
256
|
);
|
|
253
257
|
const authority = bs58.encode(buffer.subarray(8, 40));
|
|
254
258
|
const referrer = bs58.encode(buffer.subarray(40, 72));
|
|
@@ -13,7 +13,7 @@ export class RevenueShareEscrowMap {
|
|
|
13
13
|
private parallelSync: boolean;
|
|
14
14
|
|
|
15
15
|
private fetchPromise?: Promise<void>;
|
|
16
|
-
private fetchPromiseResolver: () => void;
|
|
16
|
+
private fetchPromiseResolver: () => void = () => {};
|
|
17
17
|
|
|
18
18
|
/**
|
|
19
19
|
* Creates a new RevenueShareEscrowMap instance.
|
|
@@ -130,6 +130,11 @@ export class RevenueShareEscrowMap {
|
|
|
130
130
|
),
|
|
131
131
|
'confirmed'
|
|
132
132
|
);
|
|
133
|
+
if (accountInfo === null) {
|
|
134
|
+
throw new Error(
|
|
135
|
+
`RevenueShareEscrow account not found for authority ${authority} during slowSync`
|
|
136
|
+
);
|
|
137
|
+
}
|
|
133
138
|
const escrowNew = (
|
|
134
139
|
this.velocityClient.program.account as any
|
|
135
140
|
).revenueShareEscrow.coder.accounts.decode(
|
|
@@ -178,7 +183,7 @@ export class RevenueShareEscrowMap {
|
|
|
178
183
|
// @ts-ignore
|
|
179
184
|
const buffer = Buffer.from(
|
|
180
185
|
programAccount.account.data[0],
|
|
181
|
-
programAccount.account.data[1]
|
|
186
|
+
programAccount.account.data[1] as BufferEncoding
|
|
182
187
|
);
|
|
183
188
|
|
|
184
189
|
const escrow = (
|
|
@@ -205,7 +210,7 @@ export class RevenueShareEscrowMap {
|
|
|
205
210
|
// @ts-ignore
|
|
206
211
|
const buffer = Buffer.from(
|
|
207
212
|
programAccount.account.data[0],
|
|
208
|
-
programAccount.account.data[1]
|
|
213
|
+
programAccount.account.data[1] as BufferEncoding
|
|
209
214
|
);
|
|
210
215
|
|
|
211
216
|
const escrow = (
|
package/src/userMap/userMap.ts
CHANGED
|
@@ -85,23 +85,26 @@ export class UserMap implements UserMapInterface {
|
|
|
85
85
|
private filterByPoolId?: number;
|
|
86
86
|
private additionalFilters?: MemcmpFilter[];
|
|
87
87
|
private disableSyncOnTotalAccountsChange: boolean;
|
|
88
|
-
private lastNumberOfSubAccounts
|
|
88
|
+
private lastNumberOfSubAccounts?: BN;
|
|
89
89
|
private subscription:
|
|
90
90
|
| PollingSubscription
|
|
91
91
|
| WebsocketSubscription
|
|
92
92
|
| grpcSubscription;
|
|
93
93
|
private stateAccountUpdateCallback = async (state: StateAccount) => {
|
|
94
|
-
if (
|
|
94
|
+
if (
|
|
95
|
+
this.lastNumberOfSubAccounts === undefined ||
|
|
96
|
+
!state.numberOfSubAccounts.eq(this.lastNumberOfSubAccounts)
|
|
97
|
+
) {
|
|
95
98
|
await this.sync();
|
|
96
99
|
this.lastNumberOfSubAccounts = state.numberOfSubAccounts;
|
|
97
100
|
}
|
|
98
101
|
};
|
|
99
|
-
private decode;
|
|
102
|
+
private decode: (name: string, buffer: Buffer) => UserAccount;
|
|
100
103
|
private mostRecentSlot = 0;
|
|
101
104
|
private syncConfig: SyncConfig;
|
|
102
105
|
|
|
103
106
|
private syncPromise?: Promise<void>;
|
|
104
|
-
private syncPromiseResolver: () => void;
|
|
107
|
+
private syncPromiseResolver: () => void = () => {};
|
|
105
108
|
|
|
106
109
|
private throwOnFailedSync: boolean;
|
|
107
110
|
|
|
@@ -117,20 +120,20 @@ export class UserMap implements UserMapInterface {
|
|
|
117
120
|
this.connection = this.velocityClient.connection;
|
|
118
121
|
}
|
|
119
122
|
this.commitment =
|
|
120
|
-
config.subscriptionConfig.type === 'websocket' ||
|
|
123
|
+
(config.subscriptionConfig.type === 'websocket' ||
|
|
121
124
|
config.subscriptionConfig.type === 'polling'
|
|
122
125
|
? config.subscriptionConfig.commitment ??
|
|
123
|
-
this.velocityClient.opts
|
|
124
|
-
: this.velocityClient.opts
|
|
126
|
+
this.velocityClient.opts?.commitment
|
|
127
|
+
: this.velocityClient.opts?.commitment) ?? 'confirmed';
|
|
125
128
|
this.includeIdle = config.includeIdle ?? false;
|
|
126
129
|
this.filterByPoolId = config.filterByPoolId;
|
|
127
130
|
this.additionalFilters = config.additionalFilters;
|
|
128
131
|
this.disableSyncOnTotalAccountsChange =
|
|
129
132
|
config.disableSyncOnTotalAccountsChange ?? false;
|
|
130
133
|
|
|
131
|
-
let decodeFn;
|
|
134
|
+
let decodeFn: (name: string, buffer: Buffer) => UserAccount;
|
|
132
135
|
if (config.fastDecode ?? true) {
|
|
133
|
-
decodeFn = (
|
|
136
|
+
decodeFn = (_name: string, buffer: Buffer) => decodeUser(buffer);
|
|
134
137
|
} else {
|
|
135
138
|
decodeFn = (
|
|
136
139
|
this.velocityClient.program.account as any
|
|
@@ -219,9 +222,15 @@ export class UserMap implements UserMapInterface {
|
|
|
219
222
|
},
|
|
220
223
|
});
|
|
221
224
|
await user.subscribe(userAccount);
|
|
225
|
+
const resolvedSlot = slot ?? user.getUserAccountAndSlot()?.slot;
|
|
226
|
+
if (resolvedSlot === undefined) {
|
|
227
|
+
throw new Error(
|
|
228
|
+
'UserMap.addPubkey: no slot available after subscribing user account'
|
|
229
|
+
);
|
|
230
|
+
}
|
|
222
231
|
this.userMap.set(userAccountPublicKey.toString(), {
|
|
223
232
|
data: user,
|
|
224
|
-
slot:
|
|
233
|
+
slot: resolvedSlot,
|
|
225
234
|
});
|
|
226
235
|
this.eventEmitter.emit('userUpdate', user);
|
|
227
236
|
}
|
|
@@ -259,7 +268,11 @@ export class UserMap implements UserMapInterface {
|
|
|
259
268
|
accountSubscription
|
|
260
269
|
);
|
|
261
270
|
}
|
|
262
|
-
|
|
271
|
+
const userWithSlot = this.userMap.get(key);
|
|
272
|
+
if (!userWithSlot) {
|
|
273
|
+
throw new Error(`UserMap.mustGet: no user found for ${key}`);
|
|
274
|
+
}
|
|
275
|
+
return userWithSlot.data;
|
|
263
276
|
}
|
|
264
277
|
public async mustGetWithSlot(
|
|
265
278
|
key: string,
|
|
@@ -273,12 +286,16 @@ export class UserMap implements UserMapInterface {
|
|
|
273
286
|
accountSubscription
|
|
274
287
|
);
|
|
275
288
|
}
|
|
276
|
-
|
|
289
|
+
const userWithSlot = this.userMap.get(key);
|
|
290
|
+
if (!userWithSlot) {
|
|
291
|
+
throw new Error(`UserMap.mustGetWithSlot: no user found for ${key}`);
|
|
292
|
+
}
|
|
293
|
+
return userWithSlot;
|
|
277
294
|
}
|
|
278
295
|
|
|
279
296
|
public async mustGetUserAccount(key: string): Promise<UserAccount> {
|
|
280
297
|
const user = await this.mustGet(key);
|
|
281
|
-
return user.
|
|
298
|
+
return user.getUserAccountOrThrow();
|
|
282
299
|
}
|
|
283
300
|
|
|
284
301
|
/**
|
|
@@ -291,7 +308,7 @@ export class UserMap implements UserMapInterface {
|
|
|
291
308
|
if (!user) {
|
|
292
309
|
return undefined;
|
|
293
310
|
}
|
|
294
|
-
return user.data.getUserAccount()
|
|
311
|
+
return user.data.getUserAccount()?.authority;
|
|
295
312
|
}
|
|
296
313
|
|
|
297
314
|
/**
|
|
@@ -375,15 +392,15 @@ export class UserMap implements UserMapInterface {
|
|
|
375
392
|
filterCriteria?: UserFilterCriteria
|
|
376
393
|
): PublicKey[] {
|
|
377
394
|
const usersMeetingCriteria = Array.from(this.values()).filter((user) => {
|
|
378
|
-
|
|
395
|
+
const userAccount = user.getUserAccountOrThrow();
|
|
379
396
|
if (filterCriteria && filterCriteria.hasOpenOrders) {
|
|
380
|
-
|
|
397
|
+
return userAccount.hasOpenOrder;
|
|
381
398
|
}
|
|
382
|
-
return
|
|
399
|
+
return true;
|
|
383
400
|
});
|
|
384
401
|
const userAuths = new Set(
|
|
385
402
|
usersMeetingCriteria.map((user) =>
|
|
386
|
-
user.
|
|
403
|
+
user.getUserAccountOrThrow().authority.toBase58()
|
|
387
404
|
)
|
|
388
405
|
);
|
|
389
406
|
const userAuthKeys = Array.from(userAuths).map(
|
|
@@ -537,9 +554,12 @@ export class UserMap implements UserMapInterface {
|
|
|
537
554
|
(account) => account.pubkey
|
|
538
555
|
);
|
|
539
556
|
|
|
540
|
-
const limitConcurrency = async (
|
|
541
|
-
|
|
542
|
-
|
|
557
|
+
const limitConcurrency = async (
|
|
558
|
+
tasks: Array<() => Promise<void>>,
|
|
559
|
+
limit: number
|
|
560
|
+
) => {
|
|
561
|
+
const executing: Promise<void>[] = [];
|
|
562
|
+
const results: Promise<void>[] = [];
|
|
543
563
|
|
|
544
564
|
for (let i = 0; i < tasks.length; i++) {
|
|
545
565
|
const executor = Promise.resolve().then(tasks[i]);
|
|
@@ -565,7 +585,7 @@ export class UserMap implements UserMapInterface {
|
|
|
565
585
|
|
|
566
586
|
// @ts-ignore
|
|
567
587
|
const chunkSize = this.syncConfig.chunkSize ?? 100;
|
|
568
|
-
const tasks = [];
|
|
588
|
+
const tasks: Array<() => Promise<void>> = [];
|
|
569
589
|
for (let i = 0; i < accountPublicKeys.length; i += chunkSize) {
|
|
570
590
|
const chunk = accountPublicKeys.slice(i, i + chunkSize);
|
|
571
591
|
tasks.push(async () => {
|
|
@@ -626,9 +646,7 @@ export class UserMap implements UserMapInterface {
|
|
|
626
646
|
throw err;
|
|
627
647
|
}
|
|
628
648
|
} finally {
|
|
629
|
-
|
|
630
|
-
this.syncPromiseResolver();
|
|
631
|
-
}
|
|
649
|
+
this.syncPromiseResolver();
|
|
632
650
|
this.syncPromise = undefined;
|
|
633
651
|
}
|
|
634
652
|
}
|
|
@@ -32,7 +32,7 @@ export class UserStatsMap {
|
|
|
32
32
|
private syncConfig: SyncConfig;
|
|
33
33
|
|
|
34
34
|
private syncPromise?: Promise<void>;
|
|
35
|
-
private syncPromiseResolver: () => void;
|
|
35
|
+
private syncPromiseResolver: () => void = () => {};
|
|
36
36
|
|
|
37
37
|
/**
|
|
38
38
|
* Creates a new UserStatsMap instance.
|
|
@@ -49,7 +49,7 @@ export class UserStatsMap {
|
|
|
49
49
|
if (!bulkAccountLoader) {
|
|
50
50
|
bulkAccountLoader = new BulkAccountLoader(
|
|
51
51
|
velocityClient.connection,
|
|
52
|
-
velocityClient.opts
|
|
52
|
+
velocityClient.opts?.commitment ?? 'confirmed',
|
|
53
53
|
0
|
|
54
54
|
);
|
|
55
55
|
}
|
|
@@ -110,8 +110,12 @@ export class UserStatsMap {
|
|
|
110
110
|
|
|
111
111
|
public async updateWithOrderRecord(record: OrderRecord, userMap: UserMap) {
|
|
112
112
|
const user = await userMap.mustGet(record.user.toString());
|
|
113
|
-
if (!this.has(user.
|
|
114
|
-
await this.addUserStat(
|
|
113
|
+
if (!this.has(user.getUserAccountOrThrow().authority.toString())) {
|
|
114
|
+
await this.addUserStat(
|
|
115
|
+
user.getUserAccountOrThrow().authority,
|
|
116
|
+
undefined,
|
|
117
|
+
false
|
|
118
|
+
);
|
|
115
119
|
}
|
|
116
120
|
}
|
|
117
121
|
|
|
@@ -133,12 +137,14 @@ export class UserStatsMap {
|
|
|
133
137
|
const liqRecord = record as LiquidationRecord;
|
|
134
138
|
|
|
135
139
|
const user = await userMap.mustGet(liqRecord.user.toString());
|
|
136
|
-
await this.mustGet(user.
|
|
140
|
+
await this.mustGet(user.getUserAccountOrThrow().authority.toString());
|
|
137
141
|
|
|
138
142
|
const liquidatorUser = await userMap.mustGet(
|
|
139
143
|
liqRecord.liquidator.toString()
|
|
140
144
|
);
|
|
141
|
-
await this.mustGet(
|
|
145
|
+
await this.mustGet(
|
|
146
|
+
liquidatorUser.getUserAccountOrThrow().authority.toString()
|
|
147
|
+
);
|
|
142
148
|
} else if (record.eventType === 'OrderRecord') {
|
|
143
149
|
if (!userMap) {
|
|
144
150
|
return;
|
|
@@ -153,11 +159,11 @@ export class UserStatsMap {
|
|
|
153
159
|
|
|
154
160
|
if (actionRecord.taker) {
|
|
155
161
|
const taker = await userMap.mustGet(actionRecord.taker.toString());
|
|
156
|
-
await this.mustGet(taker.
|
|
162
|
+
await this.mustGet(taker.getUserAccountOrThrow().authority.toString());
|
|
157
163
|
}
|
|
158
164
|
if (actionRecord.maker) {
|
|
159
165
|
const maker = await userMap.mustGet(actionRecord.maker.toString());
|
|
160
|
-
await this.mustGet(maker.
|
|
166
|
+
await this.mustGet(maker.getUserAccountOrThrow().authority.toString());
|
|
161
167
|
}
|
|
162
168
|
} else if (record.eventType === 'SettlePnlRecord') {
|
|
163
169
|
if (!userMap) {
|
|
@@ -165,7 +171,7 @@ export class UserStatsMap {
|
|
|
165
171
|
}
|
|
166
172
|
const settlePnlRecord = record as SettlePnlRecord;
|
|
167
173
|
const user = await userMap.mustGet(settlePnlRecord.user.toString());
|
|
168
|
-
await this.mustGet(user.
|
|
174
|
+
await this.mustGet(user.getUserAccountOrThrow().authority.toString());
|
|
169
175
|
} else if (record.eventType === 'NewUserRecord') {
|
|
170
176
|
const newUserRecord = record as NewUserRecord;
|
|
171
177
|
await this.mustGet(newUserRecord.userAuthority.toString());
|
|
@@ -179,7 +185,7 @@ export class UserStatsMap {
|
|
|
179
185
|
return this.userStatsMap.has(authorityPublicKey);
|
|
180
186
|
}
|
|
181
187
|
|
|
182
|
-
public get(authorityPublicKey: string): UserStats {
|
|
188
|
+
public get(authorityPublicKey: string): UserStats | undefined {
|
|
183
189
|
return this.userStatsMap.get(authorityPublicKey);
|
|
184
190
|
}
|
|
185
191
|
|
|
@@ -197,7 +203,13 @@ export class UserStatsMap {
|
|
|
197
203
|
false
|
|
198
204
|
);
|
|
199
205
|
}
|
|
200
|
-
|
|
206
|
+
const userStats = this.get(authorityPublicKey);
|
|
207
|
+
if (!userStats) {
|
|
208
|
+
throw new Error(
|
|
209
|
+
`UserStatsMap: UserStats missing for authority ${authorityPublicKey} after addUserStat`
|
|
210
|
+
);
|
|
211
|
+
}
|
|
212
|
+
return userStats;
|
|
201
213
|
}
|
|
202
214
|
|
|
203
215
|
public values(): IterableIterator<UserStats> {
|
|
@@ -262,9 +274,12 @@ export class UserStatsMap {
|
|
|
262
274
|
accountsToLoad = accountsPrefetch.map((account) => account.pubkey);
|
|
263
275
|
}
|
|
264
276
|
|
|
265
|
-
const limitConcurrency = async (
|
|
266
|
-
|
|
267
|
-
|
|
277
|
+
const limitConcurrency = async (
|
|
278
|
+
tasks: Array<() => Promise<void>>,
|
|
279
|
+
limit: number
|
|
280
|
+
) => {
|
|
281
|
+
const executing: Array<Promise<void>> = [];
|
|
282
|
+
const results: Array<Promise<void>> = [];
|
|
268
283
|
|
|
269
284
|
for (let i = 0; i < tasks.length; i++) {
|
|
270
285
|
const executor = Promise.resolve().then(tasks[i]);
|
|
@@ -290,7 +305,7 @@ export class UserStatsMap {
|
|
|
290
305
|
|
|
291
306
|
// @ts-ignore
|
|
292
307
|
const chunkSize = this.syncConfig.chunkSize ?? 100;
|
|
293
|
-
const tasks = [];
|
|
308
|
+
const tasks: Array<() => Promise<void>> = [];
|
|
294
309
|
for (let i = 0; i < accountsToLoad.length; i += chunkSize) {
|
|
295
310
|
const chunk = accountsToLoad.slice(i, i + chunkSize);
|
|
296
311
|
tasks.push(async () => {
|
|
@@ -298,7 +313,7 @@ export class UserStatsMap {
|
|
|
298
313
|
await this.velocityClient.connection.getMultipleAccountsInfoAndContext(
|
|
299
314
|
chunk,
|
|
300
315
|
{
|
|
301
|
-
commitment: this.velocityClient.opts
|
|
316
|
+
commitment: this.velocityClient.opts?.commitment,
|
|
302
317
|
}
|
|
303
318
|
);
|
|
304
319
|
|
|
@@ -342,9 +357,7 @@ export class UserStatsMap {
|
|
|
342
357
|
} catch (err) {
|
|
343
358
|
console.error(`Error in UserStatsMap.paginatedSync():`, err);
|
|
344
359
|
} finally {
|
|
345
|
-
|
|
346
|
-
this.syncPromiseResolver();
|
|
347
|
-
}
|
|
360
|
+
this.syncPromiseResolver();
|
|
348
361
|
this.syncPromise = undefined;
|
|
349
362
|
}
|
|
350
363
|
}
|
package/src/userStats.ts
CHANGED
|
@@ -20,7 +20,7 @@ export class UserStats {
|
|
|
20
20
|
velocityClient: VelocityClient;
|
|
21
21
|
userStatsAccountPublicKey: PublicKey;
|
|
22
22
|
accountSubscriber: UserStatsAccountSubscriber;
|
|
23
|
-
isSubscribed
|
|
23
|
+
isSubscribed = false;
|
|
24
24
|
|
|
25
25
|
public constructor(config: UserStatsConfig) {
|
|
26
26
|
// Type-system guarantees at least one of the two is supplied.
|
|
@@ -57,7 +57,7 @@ export class UserStats {
|
|
|
57
57
|
this.accountSubscriber =
|
|
58
58
|
config.accountSubscription.userStatsAccountSubscriber;
|
|
59
59
|
} else {
|
|
60
|
-
const exhaustiveCheck:
|
|
60
|
+
const exhaustiveCheck: undefined = config.accountSubscription;
|
|
61
61
|
|
|
62
62
|
throw new Error(
|
|
63
63
|
`Unknown user stats account subscription type: ${exhaustiveCheck}`
|
|
@@ -83,27 +83,40 @@ export class UserStats {
|
|
|
83
83
|
this.isSubscribed = false;
|
|
84
84
|
}
|
|
85
85
|
|
|
86
|
-
public getAccountAndSlot(): DataAndSlot<UserStatsAccount> {
|
|
86
|
+
public getAccountAndSlot(): DataAndSlot<UserStatsAccount> | undefined {
|
|
87
87
|
return this.accountSubscriber.getUserStatsAccountAndSlot();
|
|
88
88
|
}
|
|
89
89
|
|
|
90
|
-
public getAccount(): UserStatsAccount {
|
|
91
|
-
return this.accountSubscriber.getUserStatsAccountAndSlot()
|
|
90
|
+
public getAccount(): UserStatsAccount | undefined {
|
|
91
|
+
return this.accountSubscriber.getUserStatsAccountAndSlot()?.data;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
/**
|
|
95
|
+
* Like {@link getAccount} but throws a named error instead of returning
|
|
96
|
+
* `undefined` when the stats account has not been loaded yet.
|
|
97
|
+
*/
|
|
98
|
+
public getAccountOrThrow(): UserStatsAccount {
|
|
99
|
+
const account = this.getAccount();
|
|
100
|
+
if (!account) {
|
|
101
|
+
throw new Error('UserStats account not loaded');
|
|
102
|
+
}
|
|
103
|
+
return account;
|
|
92
104
|
}
|
|
93
105
|
|
|
94
106
|
public getReferrerInfo(): ReferrerInfo | undefined {
|
|
95
|
-
|
|
107
|
+
const account = this.getAccount();
|
|
108
|
+
if (!account || account.referrer.equals(PublicKey.default)) {
|
|
96
109
|
return undefined;
|
|
97
110
|
} else {
|
|
98
111
|
return {
|
|
99
112
|
referrer: getUserAccountPublicKeySync(
|
|
100
113
|
this.velocityClient.program.programId,
|
|
101
|
-
|
|
114
|
+
account.referrer,
|
|
102
115
|
0
|
|
103
116
|
),
|
|
104
117
|
referrerStats: getUserStatsAccountPublicKey(
|
|
105
118
|
this.velocityClient.program.programId,
|
|
106
|
-
|
|
119
|
+
account.referrer
|
|
107
120
|
),
|
|
108
121
|
};
|
|
109
122
|
}
|
|
@@ -62,7 +62,7 @@ export class TransactionConfirmationManager {
|
|
|
62
62
|
|
|
63
63
|
let response: RpcResponseAndContext<SignatureResult> | null = null;
|
|
64
64
|
|
|
65
|
-
let subscriptionId: ClientSubscriptionId;
|
|
65
|
+
let subscriptionId: ClientSubscriptionId | undefined;
|
|
66
66
|
|
|
67
67
|
const confirmationPromise = new Promise((resolve, reject) => {
|
|
68
68
|
try {
|
|
@@ -262,13 +262,21 @@ export class TransactionConfirmationManager {
|
|
|
262
262
|
|
|
263
263
|
if (status.err) {
|
|
264
264
|
this.pendingConfirmations.delete(request.txSig);
|
|
265
|
+
const txError = await getTransactionErrorFromTxSig(
|
|
266
|
+
request.txSig,
|
|
267
|
+
this.connection
|
|
268
|
+
);
|
|
265
269
|
request.reject(
|
|
266
|
-
|
|
270
|
+
txError ??
|
|
271
|
+
new Error(
|
|
272
|
+
`Transaction failed but no error could be resolved for signature ${request.txSig}`
|
|
273
|
+
)
|
|
267
274
|
);
|
|
268
275
|
continue;
|
|
269
276
|
}
|
|
270
277
|
|
|
271
278
|
if (
|
|
279
|
+
status.confirmationStatus === undefined ||
|
|
272
280
|
confirmationStatusValues[status.confirmationStatus] === undefined ||
|
|
273
281
|
confirmationStatusValues[request.desiredConfirmationStatus] ===
|
|
274
282
|
undefined
|
package/src/util/chainClock.ts
CHANGED
package/src/util/computeUnits.ts
CHANGED
|
@@ -11,13 +11,17 @@ export async function findComputeUnitConsumption(
|
|
|
11
11
|
connection: Connection,
|
|
12
12
|
txSignature: string,
|
|
13
13
|
commitment: Finality = 'confirmed'
|
|
14
|
-
): Promise<
|
|
14
|
+
): Promise<string[]> {
|
|
15
15
|
const tx = await connection.getTransaction(txSignature, { commitment });
|
|
16
|
-
const computeUnits = [];
|
|
16
|
+
const computeUnits: string[] = [];
|
|
17
|
+
const logMessages = tx?.meta?.logMessages;
|
|
18
|
+
if (!logMessages) {
|
|
19
|
+
return computeUnits;
|
|
20
|
+
}
|
|
17
21
|
const regex = new RegExp(
|
|
18
22
|
`Program ${programId.toString()} consumed ([0-9]{0,6}) of ([0-9]{0,7}) compute units`
|
|
19
23
|
);
|
|
20
|
-
|
|
24
|
+
logMessages.forEach((logMessage) => {
|
|
21
25
|
const match = logMessage.match(regex);
|
|
22
26
|
if (match && match[1]) {
|
|
23
27
|
computeUnits.push(match[1]);
|