@velocity-exchange/sdk 0.3.0 → 0.4.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/CHANGELOG.md +51 -0
- package/lib/browser/accounts/basicUserAccountSubscriber.d.ts +18 -0
- package/lib/browser/accounts/basicUserAccountSubscriber.js +18 -0
- package/lib/browser/accounts/basicUserStatsAccountSubscriber.d.ts +18 -0
- package/lib/browser/accounts/basicUserStatsAccountSubscriber.js +18 -0
- package/lib/browser/accounts/bulkAccountLoader.d.ts +52 -0
- package/lib/browser/accounts/bulkAccountLoader.js +51 -0
- package/lib/browser/accounts/bulkUserStatsSubscription.d.ts +9 -2
- package/lib/browser/accounts/bulkUserStatsSubscription.js +9 -2
- package/lib/browser/accounts/bulkUserSubscription.d.ts +8 -2
- package/lib/browser/accounts/bulkUserSubscription.js +8 -2
- package/lib/browser/accounts/customizedCadenceBulkAccountLoader.d.ts +37 -0
- package/lib/browser/accounts/customizedCadenceBulkAccountLoader.js +37 -0
- package/lib/browser/accounts/fetch.d.ts +59 -2
- package/lib/browser/accounts/fetch.js +57 -2
- package/lib/browser/accounts/grpcAccountSubscriber.d.ts +30 -0
- package/lib/browser/accounts/grpcAccountSubscriber.js +30 -0
- package/lib/browser/accounts/grpcInsuranceFundStakeAccountSubscriber.d.ts +16 -0
- package/lib/browser/accounts/grpcInsuranceFundStakeAccountSubscriber.js +16 -0
- package/lib/browser/accounts/grpcMultiAccountSubscriber.d.ts +60 -1
- package/lib/browser/accounts/grpcMultiAccountSubscriber.js +118 -37
- package/lib/browser/accounts/grpcMultiUserAccountSubscriber.d.ts +32 -0
- package/lib/browser/accounts/grpcMultiUserAccountSubscriber.js +40 -12
- package/lib/browser/accounts/grpcProgramAccountSubscriber.d.ts +33 -0
- package/lib/browser/accounts/grpcProgramAccountSubscriber.js +33 -0
- package/lib/browser/accounts/grpcUserAccountSubscriber.d.ts +15 -0
- package/lib/browser/accounts/grpcUserAccountSubscriber.js +15 -0
- package/lib/browser/accounts/grpcUserStatsAccountSubscriber.d.ts +15 -0
- package/lib/browser/accounts/grpcUserStatsAccountSubscriber.js +15 -0
- package/lib/browser/accounts/grpcVelocityClientAccountSubscriber.d.ts +41 -0
- package/lib/browser/accounts/grpcVelocityClientAccountSubscriber.js +41 -0
- package/lib/browser/accounts/grpcVelocityClientAccountSubscriberV2.d.ts +116 -0
- package/lib/browser/accounts/grpcVelocityClientAccountSubscriberV2.js +152 -1
- package/lib/browser/accounts/laserProgramAccountSubscriber.d.ts +34 -0
- package/lib/browser/accounts/laserProgramAccountSubscriber.js +34 -0
- package/lib/browser/accounts/oneShotUserAccountSubscriber.d.ts +19 -0
- package/lib/browser/accounts/oneShotUserAccountSubscriber.js +19 -0
- package/lib/browser/accounts/oneShotUserStatsAccountSubscriber.d.ts +19 -0
- package/lib/browser/accounts/oneShotUserStatsAccountSubscriber.js +19 -0
- package/lib/browser/accounts/pollingInsuranceFundStakeAccountSubscriber.d.ts +31 -0
- package/lib/browser/accounts/pollingInsuranceFundStakeAccountSubscriber.js +31 -0
- package/lib/browser/accounts/pollingOracleAccountSubscriber.d.ts +19 -0
- package/lib/browser/accounts/pollingOracleAccountSubscriber.js +21 -2
- package/lib/browser/accounts/pollingTokenAccountSubscriber.d.ts +22 -0
- package/lib/browser/accounts/pollingTokenAccountSubscriber.js +22 -0
- package/lib/browser/accounts/pollingUserAccountSubscriber.d.ts +32 -0
- package/lib/browser/accounts/pollingUserAccountSubscriber.js +32 -0
- package/lib/browser/accounts/pollingUserStatsAccountSubscriber.d.ts +22 -0
- package/lib/browser/accounts/pollingUserStatsAccountSubscriber.js +22 -0
- package/lib/browser/accounts/pollingVelocityClientAccountSubscriber.d.ts +83 -0
- package/lib/browser/accounts/pollingVelocityClientAccountSubscriber.js +84 -1
- package/lib/browser/accounts/testBulkAccountLoader.d.ts +8 -0
- package/lib/browser/accounts/testBulkAccountLoader.js +8 -0
- package/lib/browser/accounts/types.d.ts +149 -0
- package/lib/browser/accounts/types.js +13 -0
- package/lib/browser/accounts/utils.d.ts +18 -0
- package/lib/browser/accounts/utils.js +32 -16
- package/lib/browser/accounts/webSocketAccountSubscriber.d.ts +41 -0
- package/lib/browser/accounts/webSocketAccountSubscriber.js +41 -0
- package/lib/browser/accounts/webSocketAccountSubscriberV2.d.ts +31 -0
- package/lib/browser/accounts/webSocketAccountSubscriberV2.js +31 -23
- package/lib/browser/accounts/webSocketInsuranceFundStakeAccountSubscriber.d.ts +27 -0
- package/lib/browser/accounts/webSocketInsuranceFundStakeAccountSubscriber.js +27 -0
- package/lib/browser/accounts/webSocketProgramAccountSubscriber.d.ts +36 -0
- package/lib/browser/accounts/webSocketProgramAccountSubscriber.js +36 -0
- package/lib/browser/accounts/webSocketProgramAccountSubscriberV2.d.ts +21 -0
- package/lib/browser/accounts/webSocketProgramAccountSubscriberV2.js +25 -0
- package/lib/browser/accounts/webSocketProgramAccountsSubscriberV2.d.ts +21 -0
- package/lib/browser/accounts/webSocketProgramAccountsSubscriberV2.js +21 -0
- package/lib/browser/accounts/webSocketUserAccountSubscriber.d.ts +26 -0
- package/lib/browser/accounts/webSocketUserAccountSubscriber.js +26 -0
- package/lib/browser/accounts/webSocketUserStatsAccountSubsriber.d.ts +20 -0
- package/lib/browser/accounts/webSocketUserStatsAccountSubsriber.js +20 -0
- package/lib/browser/accounts/webSocketVelocityClientAccountSubscriber.d.ts +121 -0
- package/lib/browser/accounts/webSocketVelocityClientAccountSubscriber.js +123 -2
- package/lib/browser/accounts/webSocketVelocityClientAccountSubscriberV2.d.ts +96 -0
- package/lib/browser/accounts/webSocketVelocityClientAccountSubscriberV2.js +108 -0
- package/lib/browser/accounts/websocketProgramUserAccountSubscriber.d.ts +28 -0
- package/lib/browser/accounts/websocketProgramUserAccountSubscriber.js +33 -0
- package/lib/browser/addresses/marketAddresses.d.ts +10 -0
- package/lib/browser/addresses/marketAddresses.js +10 -0
- package/lib/browser/addresses/pda.d.ts +214 -2
- package/lib/browser/addresses/pda.js +217 -5
- package/lib/browser/adminClient.d.ts +2136 -4
- package/lib/browser/adminClient.js +2150 -4
- package/lib/browser/auctionSubscriber/auctionSubscriber.d.ts +15 -0
- package/lib/browser/auctionSubscriber/auctionSubscriber.js +15 -0
- package/lib/browser/auctionSubscriber/auctionSubscriberGrpc.d.ts +19 -0
- package/lib/browser/auctionSubscriber/auctionSubscriberGrpc.js +19 -0
- package/lib/browser/auctionSubscriber/index.d.ts +6 -0
- package/lib/browser/auctionSubscriber/index.js +6 -0
- package/lib/browser/auctionSubscriber/types.d.ts +7 -0
- package/lib/browser/blockhashSubscriber/BlockhashSubscriber.d.ts +33 -0
- package/lib/browser/blockhashSubscriber/BlockhashSubscriber.js +33 -0
- package/lib/browser/blockhashSubscriber/index.d.ts +5 -0
- package/lib/browser/blockhashSubscriber/index.js +5 -0
- package/lib/browser/blockhashSubscriber/types.d.ts +5 -0
- package/lib/browser/clock/clockSubscriber.d.ts +24 -0
- package/lib/browser/clock/clockSubscriber.js +22 -0
- package/lib/browser/config.d.ts +58 -4
- package/lib/browser/config.js +88 -21
- package/lib/browser/constants/numericConstants.d.ts +67 -0
- package/lib/browser/constants/numericConstants.js +68 -1
- package/lib/browser/constants/perpMarkets.d.ts +10 -0
- package/lib/browser/constants/perpMarkets.js +40 -908
- package/lib/browser/constants/spotMarkets.d.ts +13 -0
- package/lib/browser/constants/spotMarkets.js +16 -742
- package/lib/browser/constants/txConstants.d.ts +1 -0
- package/lib/browser/constants/txConstants.js +1 -0
- package/lib/browser/core/VelocityCore.d.ts +285 -8
- package/lib/browser/core/VelocityCore.js +281 -8
- package/lib/browser/core/instructions/deposit.d.ts +22 -0
- package/lib/browser/core/instructions/deposit.js +22 -0
- package/lib/browser/core/instructions/fill.d.ts +17 -0
- package/lib/browser/core/instructions/fill.js +17 -0
- package/lib/browser/core/instructions/funding.d.ts +12 -0
- package/lib/browser/core/instructions/funding.js +12 -0
- package/lib/browser/core/instructions/liquidation.d.ts +18 -0
- package/lib/browser/core/instructions/liquidation.js +18 -0
- package/lib/browser/core/instructions/orders.d.ts +28 -0
- package/lib/browser/core/instructions/orders.js +28 -0
- package/lib/browser/core/instructions/perpOrders.d.ts +106 -0
- package/lib/browser/core/instructions/perpOrders.js +106 -0
- package/lib/browser/core/instructions/settlement.d.ts +14 -0
- package/lib/browser/core/instructions/settlement.js +14 -0
- package/lib/browser/core/instructions/trigger.d.ts +15 -0
- package/lib/browser/core/instructions/trigger.js +15 -0
- package/lib/browser/core/instructions/withdraw.d.ts +21 -0
- package/lib/browser/core/instructions/withdraw.js +21 -0
- package/lib/browser/core/remainingAccounts.d.ts +47 -3
- package/lib/browser/core/remainingAccounts.js +20 -0
- package/lib/browser/core/signedMsg.d.ts +38 -0
- package/lib/browser/core/signedMsg.js +33 -0
- package/lib/browser/decode/customCoder.d.ts +39 -3
- package/lib/browser/decode/customCoder.js +45 -3
- package/lib/browser/decode/user.d.ts +22 -0
- package/lib/browser/decode/user.js +22 -0
- package/lib/browser/dlob/DLOB.d.ts +502 -53
- package/lib/browser/dlob/DLOB.js +540 -98
- package/lib/browser/dlob/DLOBNode.d.ts +86 -4
- package/lib/browser/dlob/DLOBNode.js +37 -4
- package/lib/browser/dlob/DLOBSubscriber.d.ts +39 -12
- package/lib/browser/dlob/DLOBSubscriber.js +42 -12
- package/lib/browser/dlob/NodeList.d.ts +69 -0
- package/lib/browser/dlob/NodeList.js +66 -0
- package/lib/browser/dlob/orderBookLevels.d.ts +106 -13
- package/lib/browser/dlob/orderBookLevels.js +84 -14
- package/lib/browser/dlob/types.d.ts +15 -0
- package/lib/browser/events/eventList.d.ts +14 -0
- package/lib/browser/events/eventList.js +14 -0
- package/lib/browser/events/eventSubscriber.d.ts +87 -10
- package/lib/browser/events/eventSubscriber.js +93 -8
- package/lib/browser/events/eventsServerLogProvider.d.ts +22 -0
- package/lib/browser/events/eventsServerLogProvider.js +27 -0
- package/lib/browser/events/fetchLogs.d.ts +31 -0
- package/lib/browser/events/fetchLogs.js +46 -1
- package/lib/browser/events/parse.d.ts +23 -0
- package/lib/browser/events/parse.js +23 -0
- package/lib/browser/events/pollingLogProvider.d.ts +24 -0
- package/lib/browser/events/pollingLogProvider.js +24 -0
- package/lib/browser/events/sort.d.ts +11 -0
- package/lib/browser/events/sort.js +12 -0
- package/lib/browser/events/txEventCache.d.ts +13 -3
- package/lib/browser/events/txEventCache.js +19 -7
- package/lib/browser/events/types.d.ts +118 -2
- package/lib/browser/events/types.js +11 -0
- package/lib/browser/events/webSocketLogProvider.d.ts +23 -0
- package/lib/browser/events/webSocketLogProvider.js +28 -0
- package/lib/browser/factory/oracleClient.js +2 -2
- package/lib/browser/idl/velocity.d.ts +4 -4
- package/lib/browser/idl/velocity.json +4 -4
- package/lib/browser/keypair.d.ts +8 -0
- package/lib/browser/keypair.js +8 -0
- package/lib/browser/marginCalculation.d.ts +134 -2
- package/lib/browser/marginCalculation.js +121 -0
- package/lib/browser/math/amm.d.ts +348 -29
- package/lib/browser/math/amm.js +310 -32
- package/lib/browser/math/auction.d.ts +95 -19
- package/lib/browser/math/auction.js +118 -28
- package/lib/browser/math/bankruptcy.d.ts +46 -0
- package/lib/browser/math/bankruptcy.js +89 -1
- package/lib/browser/math/builder.d.ts +64 -8
- package/lib/browser/math/builder.js +71 -9
- package/lib/browser/math/conversion.d.ts +21 -0
- package/lib/browser/math/conversion.js +21 -0
- package/lib/browser/math/exchangeStatus.d.ts +91 -0
- package/lib/browser/math/exchangeStatus.js +106 -3
- package/lib/browser/math/funding.d.ts +57 -20
- package/lib/browser/math/funding.js +63 -23
- package/lib/browser/math/insurance.d.ts +62 -0
- package/lib/browser/math/insurance.js +62 -0
- package/lib/browser/math/liquidation.d.ts +127 -11
- package/lib/browser/math/liquidation.js +182 -19
- package/lib/browser/math/margin.d.ts +79 -13
- package/lib/browser/math/margin.js +80 -14
- package/lib/browser/math/market.d.ts +135 -15
- package/lib/browser/math/market.js +145 -17
- package/lib/browser/math/oracles.d.ts +113 -0
- package/lib/browser/math/oracles.js +118 -1
- package/lib/browser/math/orders.d.ts +115 -10
- package/lib/browser/math/orders.js +130 -19
- package/lib/browser/math/position.d.ts +80 -33
- package/lib/browser/math/position.js +80 -33
- package/lib/browser/math/repeg.d.ts +48 -10
- package/lib/browser/math/repeg.js +48 -10
- package/lib/browser/math/spotBalance.d.ts +200 -5
- package/lib/browser/math/spotBalance.js +239 -10
- package/lib/browser/math/spotMarket.d.ts +36 -3
- package/lib/browser/math/spotMarket.js +36 -3
- package/lib/browser/math/spotPosition.d.ts +72 -0
- package/lib/browser/math/spotPosition.js +62 -0
- package/lib/browser/math/state.d.ts +31 -0
- package/lib/browser/math/state.js +31 -0
- package/lib/browser/math/superStake.d.ts +126 -2
- package/lib/browser/math/superStake.js +123 -3
- package/lib/browser/math/tiers.d.ts +29 -0
- package/lib/browser/math/tiers.js +29 -0
- package/lib/browser/math/trade.d.ts +102 -51
- package/lib/browser/math/trade.js +101 -55
- package/lib/browser/math/utils.d.ts +71 -9
- package/lib/browser/math/utils.js +71 -9
- package/lib/browser/memcmp.d.ts +94 -0
- package/lib/browser/memcmp.js +103 -2
- package/lib/browser/oracles/oracleClientCache.d.ts +16 -0
- package/lib/browser/oracles/oracleClientCache.js +16 -0
- package/lib/browser/oracles/oracleId.d.ts +31 -0
- package/lib/browser/oracles/oracleId.js +39 -8
- package/lib/browser/oracles/prelaunchOracleClient.d.ts +20 -0
- package/lib/browser/oracles/prelaunchOracleClient.js +20 -0
- package/lib/browser/oracles/pythClient.d.ts +31 -0
- package/lib/browser/oracles/pythClient.js +32 -1
- package/lib/browser/oracles/pythLazerClient.d.ts +34 -0
- package/lib/browser/oracles/pythLazerClient.js +35 -1
- package/lib/browser/oracles/quoteAssetOracleClient.d.ts +18 -0
- package/lib/browser/oracles/quoteAssetOracleClient.js +18 -0
- package/lib/browser/oracles/strictOraclePrice.d.ts +21 -0
- package/lib/browser/oracles/strictOraclePrice.js +21 -0
- package/lib/browser/oracles/types.d.ts +45 -0
- package/lib/browser/oracles/utils.d.ts +20 -0
- package/lib/browser/oracles/utils.js +20 -0
- package/lib/browser/orderParams.d.ts +42 -4
- package/lib/browser/orderParams.js +42 -4
- package/lib/browser/orderSubscriber/OrderSubscriber.d.ts +56 -0
- package/lib/browser/orderSubscriber/OrderSubscriber.js +56 -0
- package/lib/browser/orderSubscriber/PollingSubscription.d.ts +11 -0
- package/lib/browser/orderSubscriber/PollingSubscription.js +11 -0
- package/lib/browser/orderSubscriber/WebsocketSubscription.d.ts +18 -0
- package/lib/browser/orderSubscriber/WebsocketSubscription.js +18 -0
- package/lib/browser/orderSubscriber/grpcSubscription.d.ts +16 -0
- package/lib/browser/orderSubscriber/grpcSubscription.js +16 -0
- package/lib/browser/orderSubscriber/types.d.ts +9 -0
- package/lib/browser/priorityFee/averageOverSlotsStrategy.d.ts +1 -0
- package/lib/browser/priorityFee/averageOverSlotsStrategy.js +1 -0
- package/lib/browser/priorityFee/averageStrategy.d.ts +1 -0
- package/lib/browser/priorityFee/averageStrategy.js +1 -0
- package/lib/browser/priorityFee/ewmaStrategy.d.ts +10 -0
- package/lib/browser/priorityFee/ewmaStrategy.js +10 -0
- package/lib/browser/priorityFee/heliusPriorityFeeMethod.d.ts +13 -0
- package/lib/browser/priorityFee/heliusPriorityFeeMethod.js +9 -2
- package/lib/browser/priorityFee/maxOverSlotsStrategy.d.ts +1 -0
- package/lib/browser/priorityFee/maxOverSlotsStrategy.js +1 -0
- package/lib/browser/priorityFee/maxStrategy.d.ts +1 -0
- package/lib/browser/priorityFee/maxStrategy.js +1 -0
- package/lib/browser/priorityFee/priorityFeeSubscriber.d.ts +39 -0
- package/lib/browser/priorityFee/priorityFeeSubscriber.js +39 -0
- package/lib/browser/priorityFee/priorityFeeSubscriberMap.d.ts +20 -1
- package/lib/browser/priorityFee/priorityFeeSubscriberMap.js +21 -2
- package/lib/browser/priorityFee/solanaPriorityFeeMethod.d.ts +12 -0
- package/lib/browser/priorityFee/solanaPriorityFeeMethod.js +10 -0
- package/lib/browser/priorityFee/types.d.ts +32 -0
- package/lib/browser/priorityFee/types.js +5 -0
- package/lib/browser/priorityFee/velocityPriorityFeeMethod.d.ts +11 -0
- package/lib/browser/priorityFee/velocityPriorityFeeMethod.js +8 -0
- package/lib/browser/slot/SlotSubscriber.d.ts +18 -0
- package/lib/browser/slot/SlotSubscriber.js +16 -0
- package/lib/browser/slot/SlothashSubscriber.d.ts +26 -0
- package/lib/browser/slot/SlothashSubscriber.js +25 -1
- package/lib/browser/tx/baseTxSender.d.ts +163 -0
- package/lib/browser/tx/baseTxSender.js +174 -6
- package/lib/browser/tx/blockhashFetcher/baseBlockhashFetcher.d.ts +12 -0
- package/lib/browser/tx/blockhashFetcher/baseBlockhashFetcher.js +12 -0
- package/lib/browser/tx/blockhashFetcher/cachedBlockhashFetcher.d.ts +15 -0
- package/lib/browser/tx/blockhashFetcher/cachedBlockhashFetcher.js +15 -0
- package/lib/browser/tx/blockhashFetcher/types.d.ts +4 -0
- package/lib/browser/tx/fastSingleTxSender.d.ts +47 -0
- package/lib/browser/tx/fastSingleTxSender.js +48 -1
- package/lib/browser/tx/forwardOnlyTxSender.d.ts +48 -0
- package/lib/browser/tx/forwardOnlyTxSender.js +48 -0
- package/lib/browser/tx/reportTransactionError.d.ts +18 -6
- package/lib/browser/tx/reportTransactionError.js +18 -6
- package/lib/browser/tx/retryTxSender.d.ts +40 -0
- package/lib/browser/tx/retryTxSender.js +39 -0
- package/lib/browser/tx/txHandler.d.ts +146 -35
- package/lib/browser/tx/txHandler.js +132 -32
- package/lib/browser/tx/txParamProcessor.d.ts +47 -0
- package/lib/browser/tx/txParamProcessor.js +47 -0
- package/lib/browser/tx/types.d.ts +46 -0
- package/lib/browser/tx/types.js +5 -0
- package/lib/browser/tx/utils.d.ts +26 -0
- package/lib/browser/tx/utils.js +26 -0
- package/lib/browser/tx/whileValidTxSender.d.ts +82 -0
- package/lib/browser/tx/whileValidTxSender.js +81 -0
- package/lib/browser/types.d.ts +781 -13
- package/lib/browser/types.js +126 -9
- package/lib/browser/user.d.ts +645 -84
- package/lib/browser/user.js +779 -96
- package/lib/browser/userMap/PollingSubscription.d.ts +10 -0
- package/lib/browser/userMap/PollingSubscription.js +14 -2
- package/lib/browser/userMap/WebsocketSubscription.d.ts +9 -0
- package/lib/browser/userMap/WebsocketSubscription.js +9 -0
- package/lib/browser/userMap/grpcSubscription.d.ts +8 -0
- package/lib/browser/userMap/grpcSubscription.js +8 -0
- package/lib/browser/userMap/referrerMap.d.ts +72 -2
- package/lib/browser/userMap/referrerMap.js +84 -2
- package/lib/browser/userMap/revenueShareEscrowMap.d.ts +37 -10
- package/lib/browser/userMap/revenueShareEscrowMap.js +38 -11
- package/lib/browser/userMap/userMap.d.ts +81 -3
- package/lib/browser/userMap/userMap.js +81 -4
- package/lib/browser/userMap/userMapConfig.d.ts +23 -0
- package/lib/browser/userMap/userStatsMap.d.ts +22 -0
- package/lib/browser/userMap/userStatsMap.js +22 -0
- package/lib/browser/userName.d.ts +16 -0
- package/lib/browser/userName.js +16 -0
- package/lib/browser/userStats.d.ts +28 -1
- package/lib/browser/userStats.js +28 -1
- package/lib/browser/util/TransactionConfirmationManager.d.ts +33 -0
- package/lib/browser/util/TransactionConfirmationManager.js +33 -0
- package/lib/browser/util/chainClock.d.ts +24 -0
- package/lib/browser/util/chainClock.js +20 -0
- package/lib/browser/util/computeUnits.d.ts +32 -0
- package/lib/browser/util/computeUnits.js +32 -0
- package/lib/browser/util/digest.d.ts +17 -0
- package/lib/browser/util/digest.js +17 -0
- package/lib/browser/util/ed25519Utils.d.ts +12 -2
- package/lib/browser/util/ed25519Utils.js +12 -2
- package/lib/browser/util/promiseTimeout.d.ts +9 -0
- package/lib/browser/util/promiseTimeout.js +9 -0
- package/lib/browser/velocityClient.d.ts +3322 -215
- package/lib/browser/velocityClient.js +3412 -245
- package/lib/browser/wallet.d.ts +37 -0
- package/lib/browser/wallet.js +37 -0
- package/lib/node/accounts/basicUserAccountSubscriber.d.ts +18 -0
- package/lib/node/accounts/basicUserAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/basicUserAccountSubscriber.js +18 -0
- package/lib/node/accounts/basicUserStatsAccountSubscriber.d.ts +18 -0
- package/lib/node/accounts/basicUserStatsAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/basicUserStatsAccountSubscriber.js +18 -0
- package/lib/node/accounts/bulkAccountLoader.d.ts +52 -0
- package/lib/node/accounts/bulkAccountLoader.d.ts.map +1 -1
- package/lib/node/accounts/bulkAccountLoader.js +51 -0
- package/lib/node/accounts/bulkUserStatsSubscription.d.ts +9 -2
- package/lib/node/accounts/bulkUserStatsSubscription.d.ts.map +1 -1
- package/lib/node/accounts/bulkUserStatsSubscription.js +9 -2
- package/lib/node/accounts/bulkUserSubscription.d.ts +8 -2
- package/lib/node/accounts/bulkUserSubscription.d.ts.map +1 -1
- package/lib/node/accounts/bulkUserSubscription.js +8 -2
- package/lib/node/accounts/customizedCadenceBulkAccountLoader.d.ts +37 -0
- package/lib/node/accounts/customizedCadenceBulkAccountLoader.d.ts.map +1 -1
- package/lib/node/accounts/customizedCadenceBulkAccountLoader.js +37 -0
- package/lib/node/accounts/fetch.d.ts +59 -2
- package/lib/node/accounts/fetch.d.ts.map +1 -1
- package/lib/node/accounts/fetch.js +57 -2
- package/lib/node/accounts/grpcAccountSubscriber.d.ts +30 -0
- package/lib/node/accounts/grpcAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/grpcAccountSubscriber.js +30 -0
- package/lib/node/accounts/grpcInsuranceFundStakeAccountSubscriber.d.ts +16 -0
- package/lib/node/accounts/grpcInsuranceFundStakeAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/grpcInsuranceFundStakeAccountSubscriber.js +16 -0
- package/lib/node/accounts/grpcMultiAccountSubscriber.d.ts +60 -1
- package/lib/node/accounts/grpcMultiAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/grpcMultiAccountSubscriber.js +118 -37
- package/lib/node/accounts/grpcMultiUserAccountSubscriber.d.ts +32 -0
- package/lib/node/accounts/grpcMultiUserAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/grpcMultiUserAccountSubscriber.js +40 -12
- package/lib/node/accounts/grpcProgramAccountSubscriber.d.ts +33 -0
- package/lib/node/accounts/grpcProgramAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/grpcProgramAccountSubscriber.js +33 -0
- package/lib/node/accounts/grpcUserAccountSubscriber.d.ts +15 -0
- package/lib/node/accounts/grpcUserAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/grpcUserAccountSubscriber.js +15 -0
- package/lib/node/accounts/grpcUserStatsAccountSubscriber.d.ts +15 -0
- package/lib/node/accounts/grpcUserStatsAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/grpcUserStatsAccountSubscriber.js +15 -0
- package/lib/node/accounts/grpcVelocityClientAccountSubscriber.d.ts +41 -0
- package/lib/node/accounts/grpcVelocityClientAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/grpcVelocityClientAccountSubscriber.js +41 -0
- package/lib/node/accounts/grpcVelocityClientAccountSubscriberV2.d.ts +116 -0
- package/lib/node/accounts/grpcVelocityClientAccountSubscriberV2.d.ts.map +1 -1
- package/lib/node/accounts/grpcVelocityClientAccountSubscriberV2.js +152 -1
- package/lib/node/accounts/laserProgramAccountSubscriber.d.ts +34 -0
- package/lib/node/accounts/laserProgramAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/laserProgramAccountSubscriber.js +34 -0
- package/lib/node/accounts/oneShotUserAccountSubscriber.d.ts +19 -0
- package/lib/node/accounts/oneShotUserAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/oneShotUserAccountSubscriber.js +19 -0
- package/lib/node/accounts/oneShotUserStatsAccountSubscriber.d.ts +19 -0
- package/lib/node/accounts/oneShotUserStatsAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/oneShotUserStatsAccountSubscriber.js +19 -0
- package/lib/node/accounts/pollingInsuranceFundStakeAccountSubscriber.d.ts +31 -0
- package/lib/node/accounts/pollingInsuranceFundStakeAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/pollingInsuranceFundStakeAccountSubscriber.js +31 -0
- package/lib/node/accounts/pollingOracleAccountSubscriber.d.ts +19 -0
- package/lib/node/accounts/pollingOracleAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/pollingOracleAccountSubscriber.js +21 -2
- package/lib/node/accounts/pollingTokenAccountSubscriber.d.ts +22 -0
- package/lib/node/accounts/pollingTokenAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/pollingTokenAccountSubscriber.js +22 -0
- package/lib/node/accounts/pollingUserAccountSubscriber.d.ts +32 -0
- package/lib/node/accounts/pollingUserAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/pollingUserAccountSubscriber.js +32 -0
- package/lib/node/accounts/pollingUserStatsAccountSubscriber.d.ts +22 -0
- package/lib/node/accounts/pollingUserStatsAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/pollingUserStatsAccountSubscriber.js +22 -0
- package/lib/node/accounts/pollingVelocityClientAccountSubscriber.d.ts +83 -0
- package/lib/node/accounts/pollingVelocityClientAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/pollingVelocityClientAccountSubscriber.js +84 -1
- package/lib/node/accounts/testBulkAccountLoader.d.ts +8 -0
- package/lib/node/accounts/testBulkAccountLoader.d.ts.map +1 -1
- package/lib/node/accounts/testBulkAccountLoader.js +8 -0
- package/lib/node/accounts/types.d.ts +149 -0
- package/lib/node/accounts/types.d.ts.map +1 -1
- package/lib/node/accounts/types.js +13 -0
- package/lib/node/accounts/utils.d.ts +18 -0
- package/lib/node/accounts/utils.d.ts.map +1 -1
- package/lib/node/accounts/utils.js +32 -16
- package/lib/node/accounts/webSocketAccountSubscriber.d.ts +41 -0
- package/lib/node/accounts/webSocketAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/webSocketAccountSubscriber.js +41 -0
- package/lib/node/accounts/webSocketAccountSubscriberV2.d.ts +31 -0
- package/lib/node/accounts/webSocketAccountSubscriberV2.d.ts.map +1 -1
- package/lib/node/accounts/webSocketAccountSubscriberV2.js +31 -23
- package/lib/node/accounts/webSocketInsuranceFundStakeAccountSubscriber.d.ts +27 -0
- package/lib/node/accounts/webSocketInsuranceFundStakeAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/webSocketInsuranceFundStakeAccountSubscriber.js +27 -0
- package/lib/node/accounts/webSocketProgramAccountSubscriber.d.ts +36 -0
- package/lib/node/accounts/webSocketProgramAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/webSocketProgramAccountSubscriber.js +36 -0
- package/lib/node/accounts/webSocketProgramAccountSubscriberV2.d.ts +21 -0
- package/lib/node/accounts/webSocketProgramAccountSubscriberV2.d.ts.map +1 -1
- package/lib/node/accounts/webSocketProgramAccountSubscriberV2.js +25 -0
- package/lib/node/accounts/webSocketProgramAccountsSubscriberV2.d.ts +21 -0
- package/lib/node/accounts/webSocketProgramAccountsSubscriberV2.d.ts.map +1 -1
- package/lib/node/accounts/webSocketProgramAccountsSubscriberV2.js +21 -0
- package/lib/node/accounts/webSocketUserAccountSubscriber.d.ts +26 -0
- package/lib/node/accounts/webSocketUserAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/webSocketUserAccountSubscriber.js +26 -0
- package/lib/node/accounts/webSocketUserStatsAccountSubsriber.d.ts +20 -0
- package/lib/node/accounts/webSocketUserStatsAccountSubsriber.d.ts.map +1 -1
- package/lib/node/accounts/webSocketUserStatsAccountSubsriber.js +20 -0
- package/lib/node/accounts/webSocketVelocityClientAccountSubscriber.d.ts +121 -0
- package/lib/node/accounts/webSocketVelocityClientAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/webSocketVelocityClientAccountSubscriber.js +123 -2
- package/lib/node/accounts/webSocketVelocityClientAccountSubscriberV2.d.ts +96 -0
- package/lib/node/accounts/webSocketVelocityClientAccountSubscriberV2.d.ts.map +1 -1
- package/lib/node/accounts/webSocketVelocityClientAccountSubscriberV2.js +108 -0
- package/lib/node/accounts/websocketProgramUserAccountSubscriber.d.ts +28 -0
- package/lib/node/accounts/websocketProgramUserAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/websocketProgramUserAccountSubscriber.js +33 -0
- package/lib/node/addresses/marketAddresses.d.ts +10 -0
- package/lib/node/addresses/marketAddresses.d.ts.map +1 -1
- package/lib/node/addresses/marketAddresses.js +10 -0
- package/lib/node/addresses/pda.d.ts +214 -2
- package/lib/node/addresses/pda.d.ts.map +1 -1
- package/lib/node/addresses/pda.js +217 -5
- package/lib/node/adminClient.d.ts +2136 -4
- package/lib/node/adminClient.d.ts.map +1 -1
- package/lib/node/adminClient.js +2150 -4
- package/lib/node/auctionSubscriber/auctionSubscriber.d.ts +15 -0
- package/lib/node/auctionSubscriber/auctionSubscriber.d.ts.map +1 -1
- package/lib/node/auctionSubscriber/auctionSubscriber.js +15 -0
- package/lib/node/auctionSubscriber/auctionSubscriberGrpc.d.ts +19 -0
- package/lib/node/auctionSubscriber/auctionSubscriberGrpc.d.ts.map +1 -1
- package/lib/node/auctionSubscriber/auctionSubscriberGrpc.js +19 -0
- package/lib/node/auctionSubscriber/index.d.ts +6 -0
- package/lib/node/auctionSubscriber/index.d.ts.map +1 -1
- package/lib/node/auctionSubscriber/index.js +6 -0
- package/lib/node/auctionSubscriber/types.d.ts +7 -0
- package/lib/node/auctionSubscriber/types.d.ts.map +1 -1
- package/lib/node/blockhashSubscriber/BlockhashSubscriber.d.ts +33 -0
- package/lib/node/blockhashSubscriber/BlockhashSubscriber.d.ts.map +1 -1
- package/lib/node/blockhashSubscriber/BlockhashSubscriber.js +33 -0
- package/lib/node/blockhashSubscriber/index.d.ts +5 -0
- package/lib/node/blockhashSubscriber/index.d.ts.map +1 -1
- package/lib/node/blockhashSubscriber/index.js +5 -0
- package/lib/node/blockhashSubscriber/types.d.ts +5 -0
- package/lib/node/blockhashSubscriber/types.d.ts.map +1 -1
- package/lib/node/clock/clockSubscriber.d.ts +24 -0
- package/lib/node/clock/clockSubscriber.d.ts.map +1 -1
- package/lib/node/clock/clockSubscriber.js +22 -0
- package/lib/node/config.d.ts +58 -4
- package/lib/node/config.d.ts.map +1 -1
- package/lib/node/config.js +88 -21
- package/lib/node/constants/numericConstants.d.ts +67 -0
- package/lib/node/constants/numericConstants.d.ts.map +1 -1
- package/lib/node/constants/numericConstants.js +68 -1
- package/lib/node/constants/perpMarkets.d.ts +10 -0
- package/lib/node/constants/perpMarkets.d.ts.map +1 -1
- package/lib/node/constants/perpMarkets.js +40 -908
- package/lib/node/constants/spotMarkets.d.ts +13 -0
- package/lib/node/constants/spotMarkets.d.ts.map +1 -1
- package/lib/node/constants/spotMarkets.js +16 -742
- package/lib/node/constants/txConstants.d.ts +1 -0
- package/lib/node/constants/txConstants.d.ts.map +1 -1
- package/lib/node/constants/txConstants.js +1 -0
- package/lib/node/core/VelocityCore.d.ts +285 -8
- package/lib/node/core/VelocityCore.d.ts.map +1 -1
- package/lib/node/core/VelocityCore.js +281 -8
- package/lib/node/core/instructions/deposit.d.ts +22 -0
- package/lib/node/core/instructions/deposit.d.ts.map +1 -1
- package/lib/node/core/instructions/deposit.js +22 -0
- package/lib/node/core/instructions/fill.d.ts +17 -0
- package/lib/node/core/instructions/fill.d.ts.map +1 -1
- package/lib/node/core/instructions/fill.js +17 -0
- package/lib/node/core/instructions/funding.d.ts +12 -0
- package/lib/node/core/instructions/funding.d.ts.map +1 -1
- package/lib/node/core/instructions/funding.js +12 -0
- package/lib/node/core/instructions/liquidation.d.ts +18 -0
- package/lib/node/core/instructions/liquidation.d.ts.map +1 -1
- package/lib/node/core/instructions/liquidation.js +18 -0
- package/lib/node/core/instructions/orders.d.ts +28 -0
- package/lib/node/core/instructions/orders.d.ts.map +1 -1
- package/lib/node/core/instructions/orders.js +28 -0
- package/lib/node/core/instructions/perpOrders.d.ts +106 -0
- package/lib/node/core/instructions/perpOrders.d.ts.map +1 -1
- package/lib/node/core/instructions/perpOrders.js +106 -0
- package/lib/node/core/instructions/settlement.d.ts +14 -0
- package/lib/node/core/instructions/settlement.d.ts.map +1 -1
- package/lib/node/core/instructions/settlement.js +14 -0
- package/lib/node/core/instructions/trigger.d.ts +15 -0
- package/lib/node/core/instructions/trigger.d.ts.map +1 -1
- package/lib/node/core/instructions/trigger.js +15 -0
- package/lib/node/core/instructions/withdraw.d.ts +21 -0
- package/lib/node/core/instructions/withdraw.d.ts.map +1 -1
- package/lib/node/core/instructions/withdraw.js +21 -0
- package/lib/node/core/remainingAccounts.d.ts +47 -3
- package/lib/node/core/remainingAccounts.d.ts.map +1 -1
- package/lib/node/core/remainingAccounts.js +20 -0
- package/lib/node/core/signedMsg.d.ts +38 -0
- package/lib/node/core/signedMsg.d.ts.map +1 -1
- package/lib/node/core/signedMsg.js +33 -0
- package/lib/node/decode/customCoder.d.ts +39 -3
- package/lib/node/decode/customCoder.d.ts.map +1 -1
- package/lib/node/decode/customCoder.js +45 -3
- package/lib/node/decode/user.d.ts +22 -0
- package/lib/node/decode/user.d.ts.map +1 -1
- package/lib/node/decode/user.js +22 -0
- package/lib/node/dlob/DLOB.d.ts +502 -53
- package/lib/node/dlob/DLOB.d.ts.map +1 -1
- package/lib/node/dlob/DLOB.js +540 -98
- package/lib/node/dlob/DLOBNode.d.ts +86 -4
- package/lib/node/dlob/DLOBNode.d.ts.map +1 -1
- package/lib/node/dlob/DLOBNode.js +37 -4
- package/lib/node/dlob/DLOBSubscriber.d.ts +39 -12
- package/lib/node/dlob/DLOBSubscriber.d.ts.map +1 -1
- package/lib/node/dlob/DLOBSubscriber.js +42 -12
- package/lib/node/dlob/NodeList.d.ts +69 -0
- package/lib/node/dlob/NodeList.d.ts.map +1 -1
- package/lib/node/dlob/NodeList.js +66 -0
- package/lib/node/dlob/orderBookLevels.d.ts +106 -13
- package/lib/node/dlob/orderBookLevels.d.ts.map +1 -1
- package/lib/node/dlob/orderBookLevels.js +84 -14
- package/lib/node/dlob/types.d.ts +15 -0
- package/lib/node/dlob/types.d.ts.map +1 -1
- package/lib/node/events/eventList.d.ts +14 -0
- package/lib/node/events/eventList.d.ts.map +1 -1
- package/lib/node/events/eventList.js +14 -0
- package/lib/node/events/eventSubscriber.d.ts +87 -10
- package/lib/node/events/eventSubscriber.d.ts.map +1 -1
- package/lib/node/events/eventSubscriber.js +93 -8
- package/lib/node/events/eventsServerLogProvider.d.ts +22 -0
- package/lib/node/events/eventsServerLogProvider.d.ts.map +1 -1
- package/lib/node/events/eventsServerLogProvider.js +27 -0
- package/lib/node/events/fetchLogs.d.ts +31 -0
- package/lib/node/events/fetchLogs.d.ts.map +1 -1
- package/lib/node/events/fetchLogs.js +46 -1
- package/lib/node/events/parse.d.ts +23 -0
- package/lib/node/events/parse.d.ts.map +1 -1
- package/lib/node/events/parse.js +23 -0
- package/lib/node/events/pollingLogProvider.d.ts +24 -0
- package/lib/node/events/pollingLogProvider.d.ts.map +1 -1
- package/lib/node/events/pollingLogProvider.js +24 -0
- package/lib/node/events/sort.d.ts +11 -0
- package/lib/node/events/sort.d.ts.map +1 -1
- package/lib/node/events/sort.js +12 -0
- package/lib/node/events/txEventCache.d.ts +13 -3
- package/lib/node/events/txEventCache.d.ts.map +1 -1
- package/lib/node/events/txEventCache.js +19 -7
- package/lib/node/events/types.d.ts +118 -2
- package/lib/node/events/types.d.ts.map +1 -1
- package/lib/node/events/types.js +11 -0
- package/lib/node/events/webSocketLogProvider.d.ts +23 -0
- package/lib/node/events/webSocketLogProvider.d.ts.map +1 -1
- package/lib/node/events/webSocketLogProvider.js +28 -0
- package/lib/node/factory/oracleClient.js +2 -2
- package/lib/node/idl/velocity.d.ts +4 -4
- package/lib/node/idl/velocity.d.ts.map +1 -1
- package/lib/node/idl/velocity.json +4 -4
- package/lib/node/keypair.d.ts +8 -0
- package/lib/node/keypair.d.ts.map +1 -1
- package/lib/node/keypair.js +8 -0
- package/lib/node/marginCalculation.d.ts +134 -2
- package/lib/node/marginCalculation.d.ts.map +1 -1
- package/lib/node/marginCalculation.js +121 -0
- package/lib/node/math/amm.d.ts +348 -29
- package/lib/node/math/amm.d.ts.map +1 -1
- package/lib/node/math/amm.js +310 -32
- package/lib/node/math/auction.d.ts +95 -19
- package/lib/node/math/auction.d.ts.map +1 -1
- package/lib/node/math/auction.js +118 -28
- package/lib/node/math/bankruptcy.d.ts +46 -0
- package/lib/node/math/bankruptcy.d.ts.map +1 -1
- package/lib/node/math/bankruptcy.js +89 -1
- package/lib/node/math/builder.d.ts +64 -8
- package/lib/node/math/builder.d.ts.map +1 -1
- package/lib/node/math/builder.js +71 -9
- package/lib/node/math/conversion.d.ts +21 -0
- package/lib/node/math/conversion.d.ts.map +1 -1
- package/lib/node/math/conversion.js +21 -0
- package/lib/node/math/exchangeStatus.d.ts +91 -0
- package/lib/node/math/exchangeStatus.d.ts.map +1 -1
- package/lib/node/math/exchangeStatus.js +106 -3
- package/lib/node/math/funding.d.ts +57 -20
- package/lib/node/math/funding.d.ts.map +1 -1
- package/lib/node/math/funding.js +63 -23
- package/lib/node/math/insurance.d.ts +62 -0
- package/lib/node/math/insurance.d.ts.map +1 -1
- package/lib/node/math/insurance.js +62 -0
- package/lib/node/math/liquidation.d.ts +127 -11
- package/lib/node/math/liquidation.d.ts.map +1 -1
- package/lib/node/math/liquidation.js +182 -19
- package/lib/node/math/margin.d.ts +79 -13
- package/lib/node/math/margin.d.ts.map +1 -1
- package/lib/node/math/margin.js +80 -14
- package/lib/node/math/market.d.ts +135 -15
- package/lib/node/math/market.d.ts.map +1 -1
- package/lib/node/math/market.js +145 -17
- package/lib/node/math/oracles.d.ts +113 -0
- package/lib/node/math/oracles.d.ts.map +1 -1
- package/lib/node/math/oracles.js +118 -1
- package/lib/node/math/orders.d.ts +115 -10
- package/lib/node/math/orders.d.ts.map +1 -1
- package/lib/node/math/orders.js +130 -19
- package/lib/node/math/position.d.ts +80 -33
- package/lib/node/math/position.d.ts.map +1 -1
- package/lib/node/math/position.js +80 -33
- package/lib/node/math/repeg.d.ts +48 -10
- package/lib/node/math/repeg.d.ts.map +1 -1
- package/lib/node/math/repeg.js +48 -10
- package/lib/node/math/spotBalance.d.ts +200 -5
- package/lib/node/math/spotBalance.d.ts.map +1 -1
- package/lib/node/math/spotBalance.js +239 -10
- package/lib/node/math/spotMarket.d.ts +36 -3
- package/lib/node/math/spotMarket.d.ts.map +1 -1
- package/lib/node/math/spotMarket.js +36 -3
- package/lib/node/math/spotPosition.d.ts +72 -0
- package/lib/node/math/spotPosition.d.ts.map +1 -1
- package/lib/node/math/spotPosition.js +62 -0
- package/lib/node/math/state.d.ts +31 -0
- package/lib/node/math/state.d.ts.map +1 -1
- package/lib/node/math/state.js +31 -0
- package/lib/node/math/superStake.d.ts +126 -2
- package/lib/node/math/superStake.d.ts.map +1 -1
- package/lib/node/math/superStake.js +123 -3
- package/lib/node/math/tiers.d.ts +29 -0
- package/lib/node/math/tiers.d.ts.map +1 -1
- package/lib/node/math/tiers.js +29 -0
- package/lib/node/math/trade.d.ts +102 -51
- package/lib/node/math/trade.d.ts.map +1 -1
- package/lib/node/math/trade.js +101 -55
- package/lib/node/math/utils.d.ts +71 -9
- package/lib/node/math/utils.d.ts.map +1 -1
- package/lib/node/math/utils.js +71 -9
- package/lib/node/memcmp.d.ts +94 -0
- package/lib/node/memcmp.d.ts.map +1 -1
- package/lib/node/memcmp.js +103 -2
- package/lib/node/oracles/oracleClientCache.d.ts +16 -0
- package/lib/node/oracles/oracleClientCache.d.ts.map +1 -1
- package/lib/node/oracles/oracleClientCache.js +16 -0
- package/lib/node/oracles/oracleId.d.ts +31 -0
- package/lib/node/oracles/oracleId.d.ts.map +1 -1
- package/lib/node/oracles/oracleId.js +39 -8
- package/lib/node/oracles/prelaunchOracleClient.d.ts +20 -0
- package/lib/node/oracles/prelaunchOracleClient.d.ts.map +1 -1
- package/lib/node/oracles/prelaunchOracleClient.js +20 -0
- package/lib/node/oracles/pythClient.d.ts +31 -0
- package/lib/node/oracles/pythClient.d.ts.map +1 -1
- package/lib/node/oracles/pythClient.js +32 -1
- package/lib/node/oracles/pythLazerClient.d.ts +34 -0
- package/lib/node/oracles/pythLazerClient.d.ts.map +1 -1
- package/lib/node/oracles/pythLazerClient.js +35 -1
- package/lib/node/oracles/quoteAssetOracleClient.d.ts +18 -0
- package/lib/node/oracles/quoteAssetOracleClient.d.ts.map +1 -1
- package/lib/node/oracles/quoteAssetOracleClient.js +18 -0
- package/lib/node/oracles/strictOraclePrice.d.ts +21 -0
- package/lib/node/oracles/strictOraclePrice.d.ts.map +1 -1
- package/lib/node/oracles/strictOraclePrice.js +21 -0
- package/lib/node/oracles/types.d.ts +45 -0
- package/lib/node/oracles/types.d.ts.map +1 -1
- package/lib/node/oracles/utils.d.ts +20 -0
- package/lib/node/oracles/utils.d.ts.map +1 -1
- package/lib/node/oracles/utils.js +20 -0
- package/lib/node/orderParams.d.ts +42 -4
- package/lib/node/orderParams.d.ts.map +1 -1
- package/lib/node/orderParams.js +42 -4
- package/lib/node/orderSubscriber/OrderSubscriber.d.ts +56 -0
- package/lib/node/orderSubscriber/OrderSubscriber.d.ts.map +1 -1
- package/lib/node/orderSubscriber/OrderSubscriber.js +56 -0
- package/lib/node/orderSubscriber/PollingSubscription.d.ts +11 -0
- package/lib/node/orderSubscriber/PollingSubscription.d.ts.map +1 -1
- package/lib/node/orderSubscriber/PollingSubscription.js +11 -0
- package/lib/node/orderSubscriber/WebsocketSubscription.d.ts +18 -0
- package/lib/node/orderSubscriber/WebsocketSubscription.d.ts.map +1 -1
- package/lib/node/orderSubscriber/WebsocketSubscription.js +18 -0
- package/lib/node/orderSubscriber/grpcSubscription.d.ts +16 -0
- package/lib/node/orderSubscriber/grpcSubscription.d.ts.map +1 -1
- package/lib/node/orderSubscriber/grpcSubscription.js +16 -0
- package/lib/node/orderSubscriber/types.d.ts +9 -0
- package/lib/node/orderSubscriber/types.d.ts.map +1 -1
- package/lib/node/priorityFee/averageOverSlotsStrategy.d.ts +1 -0
- package/lib/node/priorityFee/averageOverSlotsStrategy.d.ts.map +1 -1
- package/lib/node/priorityFee/averageOverSlotsStrategy.js +1 -0
- package/lib/node/priorityFee/averageStrategy.d.ts +1 -0
- package/lib/node/priorityFee/averageStrategy.d.ts.map +1 -1
- package/lib/node/priorityFee/averageStrategy.js +1 -0
- package/lib/node/priorityFee/ewmaStrategy.d.ts +10 -0
- package/lib/node/priorityFee/ewmaStrategy.d.ts.map +1 -1
- package/lib/node/priorityFee/ewmaStrategy.js +10 -0
- package/lib/node/priorityFee/heliusPriorityFeeMethod.d.ts +13 -0
- package/lib/node/priorityFee/heliusPriorityFeeMethod.d.ts.map +1 -1
- package/lib/node/priorityFee/heliusPriorityFeeMethod.js +9 -2
- package/lib/node/priorityFee/maxOverSlotsStrategy.d.ts +1 -0
- package/lib/node/priorityFee/maxOverSlotsStrategy.d.ts.map +1 -1
- package/lib/node/priorityFee/maxOverSlotsStrategy.js +1 -0
- package/lib/node/priorityFee/maxStrategy.d.ts +1 -0
- package/lib/node/priorityFee/maxStrategy.d.ts.map +1 -1
- package/lib/node/priorityFee/maxStrategy.js +1 -0
- package/lib/node/priorityFee/priorityFeeSubscriber.d.ts +39 -0
- package/lib/node/priorityFee/priorityFeeSubscriber.d.ts.map +1 -1
- package/lib/node/priorityFee/priorityFeeSubscriber.js +39 -0
- package/lib/node/priorityFee/priorityFeeSubscriberMap.d.ts +20 -1
- package/lib/node/priorityFee/priorityFeeSubscriberMap.d.ts.map +1 -1
- package/lib/node/priorityFee/priorityFeeSubscriberMap.js +21 -2
- package/lib/node/priorityFee/solanaPriorityFeeMethod.d.ts +12 -0
- package/lib/node/priorityFee/solanaPriorityFeeMethod.d.ts.map +1 -1
- package/lib/node/priorityFee/solanaPriorityFeeMethod.js +10 -0
- package/lib/node/priorityFee/types.d.ts +32 -0
- package/lib/node/priorityFee/types.d.ts.map +1 -1
- package/lib/node/priorityFee/types.js +5 -0
- package/lib/node/priorityFee/velocityPriorityFeeMethod.d.ts +11 -0
- package/lib/node/priorityFee/velocityPriorityFeeMethod.d.ts.map +1 -1
- package/lib/node/priorityFee/velocityPriorityFeeMethod.js +8 -0
- package/lib/node/slot/SlotSubscriber.d.ts +18 -0
- package/lib/node/slot/SlotSubscriber.d.ts.map +1 -1
- package/lib/node/slot/SlotSubscriber.js +16 -0
- package/lib/node/slot/SlothashSubscriber.d.ts +26 -0
- package/lib/node/slot/SlothashSubscriber.d.ts.map +1 -1
- package/lib/node/slot/SlothashSubscriber.js +25 -1
- package/lib/node/tx/baseTxSender.d.ts +163 -0
- package/lib/node/tx/baseTxSender.d.ts.map +1 -1
- package/lib/node/tx/baseTxSender.js +174 -6
- package/lib/node/tx/blockhashFetcher/baseBlockhashFetcher.d.ts +12 -0
- package/lib/node/tx/blockhashFetcher/baseBlockhashFetcher.d.ts.map +1 -1
- package/lib/node/tx/blockhashFetcher/baseBlockhashFetcher.js +12 -0
- package/lib/node/tx/blockhashFetcher/cachedBlockhashFetcher.d.ts +15 -0
- package/lib/node/tx/blockhashFetcher/cachedBlockhashFetcher.d.ts.map +1 -1
- package/lib/node/tx/blockhashFetcher/cachedBlockhashFetcher.js +15 -0
- package/lib/node/tx/blockhashFetcher/types.d.ts +4 -0
- package/lib/node/tx/blockhashFetcher/types.d.ts.map +1 -1
- package/lib/node/tx/fastSingleTxSender.d.ts +47 -0
- package/lib/node/tx/fastSingleTxSender.d.ts.map +1 -1
- package/lib/node/tx/fastSingleTxSender.js +48 -1
- package/lib/node/tx/forwardOnlyTxSender.d.ts +48 -0
- package/lib/node/tx/forwardOnlyTxSender.d.ts.map +1 -1
- package/lib/node/tx/forwardOnlyTxSender.js +48 -0
- package/lib/node/tx/reportTransactionError.d.ts +18 -6
- package/lib/node/tx/reportTransactionError.d.ts.map +1 -1
- package/lib/node/tx/reportTransactionError.js +18 -6
- package/lib/node/tx/retryTxSender.d.ts +40 -0
- package/lib/node/tx/retryTxSender.d.ts.map +1 -1
- package/lib/node/tx/retryTxSender.js +39 -0
- package/lib/node/tx/txHandler.d.ts +146 -35
- package/lib/node/tx/txHandler.d.ts.map +1 -1
- package/lib/node/tx/txHandler.js +132 -32
- package/lib/node/tx/txParamProcessor.d.ts +47 -0
- package/lib/node/tx/txParamProcessor.d.ts.map +1 -1
- package/lib/node/tx/txParamProcessor.js +47 -0
- package/lib/node/tx/types.d.ts +46 -0
- package/lib/node/tx/types.d.ts.map +1 -1
- package/lib/node/tx/types.js +5 -0
- package/lib/node/tx/utils.d.ts +26 -0
- package/lib/node/tx/utils.d.ts.map +1 -1
- package/lib/node/tx/utils.js +26 -0
- package/lib/node/tx/whileValidTxSender.d.ts +82 -0
- package/lib/node/tx/whileValidTxSender.d.ts.map +1 -1
- package/lib/node/tx/whileValidTxSender.js +81 -0
- package/lib/node/types.d.ts +781 -13
- package/lib/node/types.d.ts.map +1 -1
- package/lib/node/types.js +126 -9
- package/lib/node/user.d.ts +645 -84
- package/lib/node/user.d.ts.map +1 -1
- package/lib/node/user.js +779 -96
- package/lib/node/userMap/PollingSubscription.d.ts +10 -0
- package/lib/node/userMap/PollingSubscription.d.ts.map +1 -1
- package/lib/node/userMap/PollingSubscription.js +14 -2
- package/lib/node/userMap/WebsocketSubscription.d.ts +9 -0
- package/lib/node/userMap/WebsocketSubscription.d.ts.map +1 -1
- package/lib/node/userMap/WebsocketSubscription.js +9 -0
- package/lib/node/userMap/grpcSubscription.d.ts +8 -0
- package/lib/node/userMap/grpcSubscription.d.ts.map +1 -1
- package/lib/node/userMap/grpcSubscription.js +8 -0
- package/lib/node/userMap/referrerMap.d.ts +72 -2
- package/lib/node/userMap/referrerMap.d.ts.map +1 -1
- package/lib/node/userMap/referrerMap.js +84 -2
- package/lib/node/userMap/revenueShareEscrowMap.d.ts +37 -10
- package/lib/node/userMap/revenueShareEscrowMap.d.ts.map +1 -1
- package/lib/node/userMap/revenueShareEscrowMap.js +38 -11
- package/lib/node/userMap/userMap.d.ts +81 -3
- package/lib/node/userMap/userMap.d.ts.map +1 -1
- package/lib/node/userMap/userMap.js +81 -4
- package/lib/node/userMap/userMapConfig.d.ts +23 -0
- package/lib/node/userMap/userMapConfig.d.ts.map +1 -1
- package/lib/node/userMap/userStatsMap.d.ts +22 -0
- package/lib/node/userMap/userStatsMap.d.ts.map +1 -1
- package/lib/node/userMap/userStatsMap.js +22 -0
- package/lib/node/userName.d.ts +16 -0
- package/lib/node/userName.d.ts.map +1 -1
- package/lib/node/userName.js +16 -0
- package/lib/node/userStats.d.ts +28 -1
- package/lib/node/userStats.d.ts.map +1 -1
- package/lib/node/userStats.js +28 -1
- package/lib/node/util/TransactionConfirmationManager.d.ts +33 -0
- package/lib/node/util/TransactionConfirmationManager.d.ts.map +1 -1
- package/lib/node/util/TransactionConfirmationManager.js +33 -0
- package/lib/node/util/chainClock.d.ts +24 -0
- package/lib/node/util/chainClock.d.ts.map +1 -1
- package/lib/node/util/chainClock.js +20 -0
- package/lib/node/util/computeUnits.d.ts +32 -0
- package/lib/node/util/computeUnits.d.ts.map +1 -1
- package/lib/node/util/computeUnits.js +32 -0
- package/lib/node/util/digest.d.ts +17 -0
- package/lib/node/util/digest.d.ts.map +1 -1
- package/lib/node/util/digest.js +17 -0
- package/lib/node/util/ed25519Utils.d.ts +12 -2
- package/lib/node/util/ed25519Utils.d.ts.map +1 -1
- package/lib/node/util/ed25519Utils.js +12 -2
- package/lib/node/util/promiseTimeout.d.ts +9 -0
- package/lib/node/util/promiseTimeout.d.ts.map +1 -1
- package/lib/node/util/promiseTimeout.js +9 -0
- package/lib/node/velocityClient.d.ts +3322 -215
- package/lib/node/velocityClient.d.ts.map +1 -1
- package/lib/node/velocityClient.js +3412 -245
- package/lib/node/wallet.d.ts +37 -0
- package/lib/node/wallet.d.ts.map +1 -1
- package/lib/node/wallet.js +37 -0
- package/package.json +2 -1
- package/src/accounts/basicUserAccountSubscriber.ts +18 -0
- package/src/accounts/basicUserStatsAccountSubscriber.ts +18 -0
- package/src/accounts/bulkAccountLoader.ts +52 -0
- package/src/accounts/bulkUserStatsSubscription.ts +9 -2
- package/src/accounts/bulkUserSubscription.ts +8 -2
- package/src/accounts/customizedCadenceBulkAccountLoader.ts +37 -0
- package/src/accounts/fetch.ts +59 -2
- package/src/accounts/grpcAccountSubscriber.ts +30 -0
- package/src/accounts/grpcInsuranceFundStakeAccountSubscriber.ts +16 -0
- package/src/accounts/grpcMultiAccountSubscriber.ts +121 -38
- package/src/accounts/grpcMultiUserAccountSubscriber.ts +49 -11
- package/src/accounts/grpcProgramAccountSubscriber.ts +33 -0
- package/src/accounts/grpcUserAccountSubscriber.ts +15 -0
- package/src/accounts/grpcUserStatsAccountSubscriber.ts +15 -0
- package/src/accounts/grpcVelocityClientAccountSubscriber.ts +41 -0
- package/src/accounts/grpcVelocityClientAccountSubscriberV2.ts +160 -1
- package/src/accounts/laserProgramAccountSubscriber.ts +34 -0
- package/src/accounts/oneShotUserAccountSubscriber.ts +19 -0
- package/src/accounts/oneShotUserStatsAccountSubscriber.ts +19 -0
- package/src/accounts/pollingInsuranceFundStakeAccountSubscriber.ts +31 -0
- package/src/accounts/pollingOracleAccountSubscriber.ts +21 -2
- package/src/accounts/pollingTokenAccountSubscriber.ts +22 -0
- package/src/accounts/pollingUserAccountSubscriber.ts +32 -0
- package/src/accounts/pollingUserStatsAccountSubscriber.ts +22 -0
- package/src/accounts/pollingVelocityClientAccountSubscriber.ts +84 -1
- package/src/accounts/testBulkAccountLoader.ts +8 -0
- package/src/accounts/types.ts +149 -0
- package/src/accounts/utils.ts +42 -24
- package/src/accounts/webSocketAccountSubscriber.ts +41 -0
- package/src/accounts/webSocketAccountSubscriberV2.ts +31 -23
- package/src/accounts/webSocketInsuranceFundStakeAccountSubscriber.ts +27 -0
- package/src/accounts/webSocketProgramAccountSubscriber.ts +36 -0
- package/src/accounts/webSocketProgramAccountSubscriberV2.ts +26 -0
- package/src/accounts/webSocketProgramAccountsSubscriberV2.ts +21 -0
- package/src/accounts/webSocketUserAccountSubscriber.ts +26 -0
- package/src/accounts/webSocketUserStatsAccountSubsriber.ts +20 -0
- package/src/accounts/webSocketVelocityClientAccountSubscriber.ts +127 -2
- package/src/accounts/webSocketVelocityClientAccountSubscriberV2.ts +110 -0
- package/src/accounts/websocketProgramUserAccountSubscriber.ts +33 -0
- package/src/addresses/marketAddresses.ts +10 -0
- package/src/addresses/pda.ts +228 -12
- package/src/adminClient.ts +2156 -4
- package/src/auctionSubscriber/auctionSubscriber.ts +15 -0
- package/src/auctionSubscriber/auctionSubscriberGrpc.ts +19 -0
- package/src/auctionSubscriber/index.ts +6 -0
- package/src/auctionSubscriber/types.ts +7 -0
- package/src/blockhashSubscriber/BlockhashSubscriber.ts +33 -0
- package/src/blockhashSubscriber/index.ts +5 -0
- package/src/blockhashSubscriber/types.ts +5 -4
- package/src/clock/clockSubscriber.ts +24 -0
- package/src/config.ts +109 -22
- package/src/constants/numericConstants.ts +70 -0
- package/src/constants/perpMarkets.ts +45 -960
- package/src/constants/spotMarkets.ts +23 -793
- package/src/constants/txConstants.ts +1 -0
- package/src/core/VelocityCore.ts +286 -8
- package/src/core/instructions/deposit.ts +22 -0
- package/src/core/instructions/fill.ts +17 -0
- package/src/core/instructions/funding.ts +12 -0
- package/src/core/instructions/liquidation.ts +18 -0
- package/src/core/instructions/orders.ts +28 -0
- package/src/core/instructions/perpOrders.ts +106 -0
- package/src/core/instructions/settlement.ts +14 -0
- package/src/core/instructions/trigger.ts +15 -0
- package/src/core/instructions/withdraw.ts +21 -0
- package/src/core/remainingAccounts.ts +47 -3
- package/src/core/signedMsg.ts +38 -0
- package/src/decode/customCoder.ts +46 -3
- package/src/decode/user.ts +22 -0
- package/src/dlob/DLOB.ts +668 -97
- package/src/dlob/DLOBNode.ts +98 -6
- package/src/dlob/DLOBSubscriber.ts +49 -12
- package/src/dlob/NodeList.ts +69 -0
- package/src/dlob/orderBookLevels.ts +108 -14
- package/src/dlob/types.ts +15 -0
- package/src/events/eventList.ts +14 -0
- package/src/events/eventSubscriber.ts +100 -19
- package/src/events/eventsServerLogProvider.ts +28 -0
- package/src/events/fetchLogs.ts +52 -2
- package/src/events/parse.ts +23 -0
- package/src/events/pollingLogProvider.ts +24 -0
- package/src/events/sort.ts +12 -0
- package/src/events/txEventCache.ts +19 -7
- package/src/events/types.ts +131 -11
- package/src/events/webSocketLogProvider.ts +29 -0
- package/src/factory/oracleClient.ts +2 -2
- package/src/idl/velocity.json +4 -4
- package/src/idl/velocity.ts +4 -4
- package/src/keypair.ts +8 -0
- package/src/marginCalculation.ts +153 -2
- package/src/math/amm.ts +371 -36
- package/src/math/auction.ts +139 -30
- package/src/math/bankruptcy.ts +104 -1
- package/src/math/builder.ts +74 -8
- package/src/math/conversion.ts +21 -0
- package/src/math/exchangeStatus.ts +117 -2
- package/src/math/funding.ts +63 -23
- package/src/math/insurance.ts +62 -0
- package/src/math/liquidation.ts +227 -17
- package/src/math/margin.ts +80 -14
- package/src/math/market.ts +148 -17
- package/src/math/oracles.ts +124 -0
- package/src/math/orders.ts +141 -19
- package/src/math/position.ts +80 -33
- package/src/math/repeg.ts +48 -10
- package/src/math/spotBalance.ts +252 -12
- package/src/math/spotMarket.ts +36 -3
- package/src/math/spotPosition.ts +72 -0
- package/src/math/state.ts +31 -0
- package/src/math/superStake.ts +126 -3
- package/src/math/tiers.ts +29 -0
- package/src/math/trade.ts +125 -55
- package/src/math/utils.ts +71 -9
- package/src/memcmp.ts +104 -2
- package/src/oracles/oracleClientCache.ts +16 -0
- package/src/oracles/oracleId.ts +39 -6
- package/src/oracles/prelaunchOracleClient.ts +20 -0
- package/src/oracles/pythClient.ts +32 -1
- package/src/oracles/pythLazerClient.ts +35 -1
- package/src/oracles/quoteAssetOracleClient.ts +18 -0
- package/src/oracles/strictOraclePrice.ts +21 -0
- package/src/oracles/types.ts +45 -0
- package/src/oracles/utils.ts +20 -0
- package/src/orderParams.ts +42 -4
- package/src/orderSubscriber/OrderSubscriber.ts +56 -0
- package/src/orderSubscriber/PollingSubscription.ts +11 -0
- package/src/orderSubscriber/WebsocketSubscription.ts +18 -0
- package/src/orderSubscriber/grpcSubscription.ts +16 -0
- package/src/orderSubscriber/types.ts +9 -0
- package/src/priorityFee/averageOverSlotsStrategy.ts +1 -0
- package/src/priorityFee/averageStrategy.ts +1 -0
- package/src/priorityFee/ewmaStrategy.ts +10 -0
- package/src/priorityFee/heliusPriorityFeeMethod.ts +13 -2
- package/src/priorityFee/maxOverSlotsStrategy.ts +1 -0
- package/src/priorityFee/maxStrategy.ts +1 -0
- package/src/priorityFee/priorityFeeSubscriber.ts +39 -0
- package/src/priorityFee/priorityFeeSubscriberMap.ts +21 -2
- package/src/priorityFee/solanaPriorityFeeMethod.ts +12 -0
- package/src/priorityFee/types.ts +33 -15
- package/src/priorityFee/velocityPriorityFeeMethod.ts +11 -0
- package/src/slot/SlotSubscriber.ts +18 -0
- package/src/slot/SlothashSubscriber.ts +27 -1
- package/src/tx/baseTxSender.ts +185 -5
- package/src/tx/blockhashFetcher/baseBlockhashFetcher.ts +12 -0
- package/src/tx/blockhashFetcher/cachedBlockhashFetcher.ts +15 -0
- package/src/tx/blockhashFetcher/types.ts +4 -0
- package/src/tx/fastSingleTxSender.ts +58 -4
- package/src/tx/forwardOnlyTxSender.ts +48 -0
- package/src/tx/reportTransactionError.ts +18 -6
- package/src/tx/retryTxSender.ts +40 -0
- package/src/tx/txHandler.ts +146 -35
- package/src/tx/txParamProcessor.ts +47 -0
- package/src/tx/types.ts +46 -0
- package/src/tx/utils.ts +26 -0
- package/src/tx/whileValidTxSender.ts +82 -0
- package/src/types.ts +777 -24
- package/src/user.ts +869 -110
- package/src/userMap/PollingSubscription.ts +16 -2
- package/src/userMap/WebsocketSubscription.ts +9 -0
- package/src/userMap/grpcSubscription.ts +8 -0
- package/src/userMap/referrerMap.ts +92 -3
- package/src/userMap/revenueShareEscrowMap.ts +38 -11
- package/src/userMap/userMap.ts +82 -4
- package/src/userMap/userMapConfig.ts +23 -10
- package/src/userMap/userStatsMap.ts +22 -0
- package/src/userName.ts +16 -0
- package/src/userStats.ts +28 -1
- package/src/util/TransactionConfirmationManager.ts +33 -0
- package/src/util/chainClock.ts +24 -0
- package/src/util/computeUnits.ts +32 -0
- package/src/util/digest.ts +17 -0
- package/src/util/ed25519Utils.ts +12 -2
- package/src/util/promiseTimeout.ts +9 -0
- package/src/velocityClient.ts +3439 -249
- package/src/wallet.ts +37 -0
- package/tests/VelocityCore/builder_escrow.test.ts +121 -0
- package/tests/amm/test.ts +102 -0
- package/tests/builder/builderFee.test.ts +42 -0
- package/tests/dlob/tickSizeStandardization.ts +545 -0
- package/tests/exchangeStatus/test.ts +45 -0
- package/tests/liquidation/test.ts +125 -0
- package/tests/oracles/mmOracleGate.test.ts +379 -0
- package/tests/oracles/pythPegSnap.test.ts +76 -0
- package/tests/sdkParity/enumParity.test.ts +84 -0
- package/tests/sdkParity/marginCategoryFill.test.ts +143 -0
- package/tests/sdkParity/memcmpOffsets.test.ts +139 -0
- package/tests/spot/test.ts +55 -0
- package/tests/user/bankruptcy.ts +165 -0
- package/tests/user/feeAndWithdrawLimits.ts +284 -0
- package/tests/user/getMarginCalculation.ts +226 -1
- package/tests/user/test.ts +8 -4
|
@@ -138,20 +138,15 @@ class WebSocketAccountSubscriberV2 {
|
|
|
138
138
|
this.setTimeout();
|
|
139
139
|
}
|
|
140
140
|
}
|
|
141
|
+
/**
|
|
142
|
+
* Seeds `dataAndSlot` with an initial `fetch()` (if not already set via `setData`), then opens
|
|
143
|
+
* the `gill` `accountNotifications` WebSocket subscription and, if `resubOpts.resubTimeoutMs`
|
|
144
|
+
* is set, arms the inactivity watchdog (`setTimeout`). Idempotent: a no-op if already
|
|
145
|
+
* subscribed or mid-unsubscribe.
|
|
146
|
+
* @param onChange Invoked with the newly decoded account data on each accepted update.
|
|
147
|
+
* @throws Error if `accountPublicKey` is not a valid address per `gill`'s `isAddress`.
|
|
148
|
+
*/
|
|
141
149
|
async subscribe(onChange) {
|
|
142
|
-
/**
|
|
143
|
-
* Start the WebSocket subscription and (optionally) setup inactivity
|
|
144
|
-
* fallback.
|
|
145
|
-
*
|
|
146
|
-
* Flow
|
|
147
|
-
* - If we do not have initial state, perform a one-time `fetch()` to seed
|
|
148
|
-
* internal buffers and emit current data.
|
|
149
|
-
* - Subscribe to account notifications via WS.
|
|
150
|
-
* - If `resubOpts.resubTimeoutMs` is set, schedule an inactivity timeout.
|
|
151
|
-
* When it fires:
|
|
152
|
-
* - if `usePollingInsteadOfResub` is true, start polling loop;
|
|
153
|
-
* - otherwise, resubscribe to WS immediately.
|
|
154
|
-
*/
|
|
155
150
|
if (this.listenerId != null || this.isUnsubscribing) {
|
|
156
151
|
if (this.resubOpts.logResubMessages) {
|
|
157
152
|
console.log(`[${this.logAccountName}] Subscribe returning early - listenerId=${this.listenerId}, isUnsubscribing=${this.isUnsubscribing}`);
|
|
@@ -188,6 +183,12 @@ class WebSocketAccountSubscriberV2 {
|
|
|
188
183
|
throw new Error('Invalid account public key');
|
|
189
184
|
}
|
|
190
185
|
}
|
|
186
|
+
/**
|
|
187
|
+
* Seeds or overwrites `dataAndSlot` directly, bypassing RPC. A no-op if the currently cached
|
|
188
|
+
* slot is already newer than `slot`.
|
|
189
|
+
* @param data Decoded account data to store.
|
|
190
|
+
* @param slot Slot the data was observed at; defaults to 0 (the seeded sentinel) if omitted.
|
|
191
|
+
*/
|
|
191
192
|
setData(data, slot) {
|
|
192
193
|
const newSlot = slot || 0;
|
|
193
194
|
if (this.dataAndSlot && this.dataAndSlot.slot > newSlot) {
|
|
@@ -198,12 +199,13 @@ class WebSocketAccountSubscriberV2 {
|
|
|
198
199
|
slot: newSlot,
|
|
199
200
|
};
|
|
200
201
|
}
|
|
202
|
+
/**
|
|
203
|
+
* Arms the inactivity watchdog: if no WS notification resets this timeout within
|
|
204
|
+
* `resubOpts.resubTimeoutMs`, either starts the polling fallback (`usePollingInsteadOfResub`)
|
|
205
|
+
* or tears down and recreates the WS subscription. Throws if `onChange` was never set (i.e.
|
|
206
|
+
* called outside `subscribe()`'s flow).
|
|
207
|
+
*/
|
|
201
208
|
setTimeout() {
|
|
202
|
-
/**
|
|
203
|
-
* Schedule inactivity handling. If WS is quiet for
|
|
204
|
-
* `resubOpts.resubTimeoutMs` and `receivingData` is true, trigger either
|
|
205
|
-
* a polling loop or a resubscribe depending on options.
|
|
206
|
-
*/
|
|
207
209
|
if (!this._onChange) {
|
|
208
210
|
throw new Error('onChange callback function must be set');
|
|
209
211
|
}
|
|
@@ -317,6 +319,11 @@ class WebSocketAccountSubscriberV2 {
|
|
|
317
319
|
const accountInfo = rpcResponse.value;
|
|
318
320
|
this.handleRpcResponse({ slot: BigInt(context.slot) }, accountInfo !== null && accountInfo !== void 0 ? accountInfo : undefined);
|
|
319
321
|
}
|
|
322
|
+
/**
|
|
323
|
+
* Applies a raw `gill` RPC/WS response: decodes (base58 or base64) and stores it (updating
|
|
324
|
+
* `bufferAndSlot`/`dataAndSlot` and invoking `onChange`) only if the slot is not older than
|
|
325
|
+
* the cached one and the buffer's bytes actually changed (or this is the first observation).
|
|
326
|
+
*/
|
|
320
327
|
handleRpcResponse(context, accountInfo) {
|
|
321
328
|
const newSlot = context.slot;
|
|
322
329
|
let newBuffer = undefined;
|
|
@@ -370,6 +377,7 @@ class WebSocketAccountSubscriberV2 {
|
|
|
370
377
|
this.onChange(account);
|
|
371
378
|
}
|
|
372
379
|
}
|
|
380
|
+
/** Decodes a raw account buffer using the constructor-supplied `decodeBufferFn`, or the program's Anchor coder for `accountName` if none was supplied. */
|
|
373
381
|
decodeBuffer(buffer) {
|
|
374
382
|
if (this.decodeBufferFn) {
|
|
375
383
|
return this.decodeBufferFn(buffer);
|
|
@@ -378,12 +386,12 @@ class WebSocketAccountSubscriberV2 {
|
|
|
378
386
|
return this.program.coder.accounts.decode(this.accountName, buffer);
|
|
379
387
|
}
|
|
380
388
|
}
|
|
389
|
+
/**
|
|
390
|
+
* Tears down the WebSocket subscription (via `abortController`) and cancels any pending resub
|
|
391
|
+
* timeout and in-progress polling.
|
|
392
|
+
* @param onResub Internal flag set to `true` when called as part of an automatic resubscribe cycle, which preserves `resubOpts.resubTimeoutMs` instead of clearing it. Callers should omit this.
|
|
393
|
+
*/
|
|
381
394
|
unsubscribe(onResub = false) {
|
|
382
|
-
/**
|
|
383
|
-
* Stop timers, polling, and WS subscription.
|
|
384
|
-
* - When called during a resubscribe (`onResub=true`), we preserve
|
|
385
|
-
* `resubOpts.resubTimeoutMs` for the restarted subscription.
|
|
386
|
-
*/
|
|
387
395
|
if (!onResub && this.resubOpts) {
|
|
388
396
|
this.resubOpts.resubTimeoutMs = undefined;
|
|
389
397
|
}
|
|
@@ -5,6 +5,12 @@ import { EventEmitter } from 'events';
|
|
|
5
5
|
import { Commitment, PublicKey } from '@solana/web3.js';
|
|
6
6
|
import { InsuranceFundStake } from '../types';
|
|
7
7
|
import { VelocityProgram } from '../config';
|
|
8
|
+
/**
|
|
9
|
+
* Default `InsuranceFundStakeAccountSubscriber` implementation: wraps a single
|
|
10
|
+
* `WebSocketAccountSubscriber` for the `InsuranceFundStake` account, mirroring
|
|
11
|
+
* `WebSocketUserAccountSubscriber`. `insuranceFundStakeDataAccountSubscriber` throws if accessed
|
|
12
|
+
* before `subscribe()` has run.
|
|
13
|
+
*/
|
|
8
14
|
export declare class WebSocketInsuranceFundStakeAccountSubscriber implements InsuranceFundStakeAccountSubscriber {
|
|
9
15
|
isSubscribed: boolean;
|
|
10
16
|
resubTimeoutMs?: number;
|
|
@@ -15,11 +21,32 @@ export declare class WebSocketInsuranceFundStakeAccountSubscriber implements Ins
|
|
|
15
21
|
private _insuranceFundStakeDataAccountSubscriber?;
|
|
16
22
|
get insuranceFundStakeDataAccountSubscriber(): AccountSubscriber<InsuranceFundStake>;
|
|
17
23
|
set insuranceFundStakeDataAccountSubscriber(subscriber: AccountSubscriber<InsuranceFundStake>);
|
|
24
|
+
/**
|
|
25
|
+
* @param program Anchor program providing the connection and coder.
|
|
26
|
+
* @param insuranceFundStakeAccountPublicKey Address of the `InsuranceFundStake` account to track.
|
|
27
|
+
* @param resubTimeoutMs Resub watchdog timeout (ms) passed through as `ResubOpts.resubTimeoutMs` to the underlying `WebSocketAccountSubscriber`. Unlike other subscribers here, only this single option is exposed (not the full `ResubOpts` shape).
|
|
28
|
+
* @param commitment Commitment for the underlying subscription; defaults to the provider's configured commitment.
|
|
29
|
+
*/
|
|
18
30
|
constructor(program: VelocityProgram, insuranceFundStakeAccountPublicKey: PublicKey, resubTimeoutMs?: number, commitment?: Commitment);
|
|
31
|
+
/**
|
|
32
|
+
* Creates the underlying `WebSocketAccountSubscriber` and subscribes it. Idempotent: a no-op
|
|
33
|
+
* (returns `true`) if already subscribed.
|
|
34
|
+
* @param insuranceFundStakeAccount Optional pre-fetched account data to seed the subscriber with, skipping the initial RPC fetch.
|
|
35
|
+
*/
|
|
19
36
|
subscribe(insuranceFundStakeAccount?: InsuranceFundStake): Promise<boolean>;
|
|
37
|
+
/** Fetches the account once via the underlying `WebSocketAccountSubscriber`. */
|
|
20
38
|
fetch(): Promise<void>;
|
|
39
|
+
/** Tears down the underlying WebSocket subscription. A no-op if not subscribed. */
|
|
21
40
|
unsubscribe(): Promise<void>;
|
|
41
|
+
/** Throws `NotSubscribedError` if `subscribe()` has not been called. */
|
|
22
42
|
assertIsSubscribed(): void;
|
|
43
|
+
/** Throws `NotSubscribedError` if not subscribed. Returns undefined only if subscribed but no data has loaded yet. */
|
|
23
44
|
getInsuranceFundStakeAccountAndSlot(): DataAndSlot<InsuranceFundStake> | undefined;
|
|
45
|
+
/**
|
|
46
|
+
* Applies an externally-obtained account update if `slot` is not older than the currently
|
|
47
|
+
* cached slot.
|
|
48
|
+
* @param insuranceFundStake Decoded account data to apply.
|
|
49
|
+
* @param slot Slot the data was observed at.
|
|
50
|
+
*/
|
|
24
51
|
updateData(insuranceFundStake: InsuranceFundStake, slot: number): void;
|
|
25
52
|
}
|
|
@@ -4,6 +4,12 @@ exports.WebSocketInsuranceFundStakeAccountSubscriber = void 0;
|
|
|
4
4
|
const types_1 = require("./types");
|
|
5
5
|
const events_1 = require("events");
|
|
6
6
|
const webSocketAccountSubscriber_1 = require("./webSocketAccountSubscriber");
|
|
7
|
+
/**
|
|
8
|
+
* Default `InsuranceFundStakeAccountSubscriber` implementation: wraps a single
|
|
9
|
+
* `WebSocketAccountSubscriber` for the `InsuranceFundStake` account, mirroring
|
|
10
|
+
* `WebSocketUserAccountSubscriber`. `insuranceFundStakeDataAccountSubscriber` throws if accessed
|
|
11
|
+
* before `subscribe()` has run.
|
|
12
|
+
*/
|
|
7
13
|
class WebSocketInsuranceFundStakeAccountSubscriber {
|
|
8
14
|
get insuranceFundStakeDataAccountSubscriber() {
|
|
9
15
|
if (!this._insuranceFundStakeDataAccountSubscriber) {
|
|
@@ -14,6 +20,12 @@ class WebSocketInsuranceFundStakeAccountSubscriber {
|
|
|
14
20
|
set insuranceFundStakeDataAccountSubscriber(subscriber) {
|
|
15
21
|
this._insuranceFundStakeDataAccountSubscriber = subscriber;
|
|
16
22
|
}
|
|
23
|
+
/**
|
|
24
|
+
* @param program Anchor program providing the connection and coder.
|
|
25
|
+
* @param insuranceFundStakeAccountPublicKey Address of the `InsuranceFundStake` account to track.
|
|
26
|
+
* @param resubTimeoutMs Resub watchdog timeout (ms) passed through as `ResubOpts.resubTimeoutMs` to the underlying `WebSocketAccountSubscriber`. Unlike other subscribers here, only this single option is exposed (not the full `ResubOpts` shape).
|
|
27
|
+
* @param commitment Commitment for the underlying subscription; defaults to the provider's configured commitment.
|
|
28
|
+
*/
|
|
17
29
|
constructor(program, insuranceFundStakeAccountPublicKey, resubTimeoutMs, commitment) {
|
|
18
30
|
this.isSubscribed = false;
|
|
19
31
|
this.program = program;
|
|
@@ -23,6 +35,11 @@ class WebSocketInsuranceFundStakeAccountSubscriber {
|
|
|
23
35
|
this.resubTimeoutMs = resubTimeoutMs;
|
|
24
36
|
this.commitment = commitment;
|
|
25
37
|
}
|
|
38
|
+
/**
|
|
39
|
+
* Creates the underlying `WebSocketAccountSubscriber` and subscribes it. Idempotent: a no-op
|
|
40
|
+
* (returns `true`) if already subscribed.
|
|
41
|
+
* @param insuranceFundStakeAccount Optional pre-fetched account data to seed the subscriber with, skipping the initial RPC fetch.
|
|
42
|
+
*/
|
|
26
43
|
async subscribe(insuranceFundStakeAccount) {
|
|
27
44
|
if (this.isSubscribed) {
|
|
28
45
|
return true;
|
|
@@ -42,9 +59,11 @@ class WebSocketInsuranceFundStakeAccountSubscriber {
|
|
|
42
59
|
this.isSubscribed = true;
|
|
43
60
|
return true;
|
|
44
61
|
}
|
|
62
|
+
/** Fetches the account once via the underlying `WebSocketAccountSubscriber`. */
|
|
45
63
|
async fetch() {
|
|
46
64
|
await Promise.all([this.insuranceFundStakeDataAccountSubscriber.fetch()]);
|
|
47
65
|
}
|
|
66
|
+
/** Tears down the underlying WebSocket subscription. A no-op if not subscribed. */
|
|
48
67
|
async unsubscribe() {
|
|
49
68
|
if (!this.isSubscribed) {
|
|
50
69
|
return;
|
|
@@ -54,15 +73,23 @@ class WebSocketInsuranceFundStakeAccountSubscriber {
|
|
|
54
73
|
]);
|
|
55
74
|
this.isSubscribed = false;
|
|
56
75
|
}
|
|
76
|
+
/** Throws `NotSubscribedError` if `subscribe()` has not been called. */
|
|
57
77
|
assertIsSubscribed() {
|
|
58
78
|
if (!this.isSubscribed) {
|
|
59
79
|
throw new types_1.NotSubscribedError('You must call `subscribe` before using this function');
|
|
60
80
|
}
|
|
61
81
|
}
|
|
82
|
+
/** Throws `NotSubscribedError` if not subscribed. Returns undefined only if subscribed but no data has loaded yet. */
|
|
62
83
|
getInsuranceFundStakeAccountAndSlot() {
|
|
63
84
|
this.assertIsSubscribed();
|
|
64
85
|
return this.insuranceFundStakeDataAccountSubscriber.dataAndSlot;
|
|
65
86
|
}
|
|
87
|
+
/**
|
|
88
|
+
* Applies an externally-obtained account update if `slot` is not older than the currently
|
|
89
|
+
* cached slot.
|
|
90
|
+
* @param insuranceFundStake Decoded account data to apply.
|
|
91
|
+
* @param slot Slot the data was observed at.
|
|
92
|
+
*/
|
|
66
93
|
updateData(insuranceFundStake, slot) {
|
|
67
94
|
var _a;
|
|
68
95
|
const currentDataSlot = ((_a = this.insuranceFundStakeDataAccountSubscriber.dataAndSlot) === null || _a === void 0 ? void 0 : _a.slot) || 0;
|
|
@@ -3,6 +3,18 @@
|
|
|
3
3
|
import { BufferAndSlot, ProgramAccountSubscriber, ResubOpts } from './types';
|
|
4
4
|
import { Commitment, Context, KeyedAccountInfo, MemcmpFilter, PublicKey } from '@solana/web3.js';
|
|
5
5
|
import { VelocityProgram } from '../config';
|
|
6
|
+
/**
|
|
7
|
+
* Default `ProgramAccountSubscriber` implementation: tracks every account owned by the program
|
|
8
|
+
* (optionally narrowed by `options.filters`) via `connection.onProgramAccountChange`, decoding
|
|
9
|
+
* each notification with `decodeBufferFn`. Maintains a per-account (not single, unlike
|
|
10
|
+
* `WebSocketAccountSubscriber`) `bufferAndSlotMap`, since one program subscription covers many
|
|
11
|
+
* accounts; updates are applied per-account only when the notification's slot is not older than
|
|
12
|
+
* that account's last-seen slot and its buffer actually changed. If `resubOpts.resubTimeoutMs`
|
|
13
|
+
* is set, a watchdog timer resubscribes the whole program subscription whenever no notification
|
|
14
|
+
* (for *any* account) arrives within that window. This is the base class extended by
|
|
15
|
+
* `grpcProgramAccountSubscriber` and `LaserstreamProgramAccountSubscriber` for gRPC Geyser-backed
|
|
16
|
+
* tracking.
|
|
17
|
+
*/
|
|
6
18
|
export declare class WebSocketProgramAccountSubscriber<T> implements ProgramAccountSubscriber<T> {
|
|
7
19
|
subscriptionName: string;
|
|
8
20
|
accountDiscriminator: string;
|
|
@@ -22,12 +34,36 @@ export declare class WebSocketProgramAccountSubscriber<T> implements ProgramAcco
|
|
|
22
34
|
commitment?: Commitment;
|
|
23
35
|
};
|
|
24
36
|
receivingData: boolean;
|
|
37
|
+
/**
|
|
38
|
+
* @param subscriptionName Human-readable name for logging.
|
|
39
|
+
* @param accountDiscriminator Anchor account type name passed to `decodeBufferFn` for each update.
|
|
40
|
+
* @param program Anchor program whose accounts to watch (filtered to `program.programId` as owner).
|
|
41
|
+
* @param decodeBufferFn Decode function for each account's raw buffer.
|
|
42
|
+
* @param options `filters` narrowing which program accounts are watched (empty watches every account owned by the program); `commitment` for the subscription, defaulting to the provider's configured commitment.
|
|
43
|
+
* @param resubOpts Resubscription watchdog options; omit to disable the inactivity timer.
|
|
44
|
+
*/
|
|
25
45
|
constructor(subscriptionName: string, accountDiscriminator: string, program: VelocityProgram, decodeBufferFn: (accountName: string, ix: Buffer) => T, options?: {
|
|
26
46
|
filters: MemcmpFilter[];
|
|
27
47
|
commitment?: Commitment;
|
|
28
48
|
}, resubOpts?: ResubOpts);
|
|
49
|
+
/**
|
|
50
|
+
* Attaches the `onProgramAccountChange` WebSocket listener. Idempotent: a no-op if already
|
|
51
|
+
* subscribed or mid-unsubscribe. Does not perform an initial fetch of matching accounts — the
|
|
52
|
+
* caller must fetch any pre-existing accounts separately if needed.
|
|
53
|
+
* @param onChange Invoked once per changed account with its pubkey, decoded data, the notification's `Context`, and the raw buffer.
|
|
54
|
+
*/
|
|
29
55
|
subscribe(onChange: (accountId: PublicKey, data: T, context: Context, buffer: Buffer) => void): Promise<void>;
|
|
30
56
|
protected setTimeout(): void;
|
|
57
|
+
/**
|
|
58
|
+
* Applies a raw notification for one account within the program subscription: decodes and
|
|
59
|
+
* stores it (updating that account's entry in `bufferAndSlotMap` and invoking `onChange`) only
|
|
60
|
+
* if the slot is not older than the cached one for that specific account and the buffer's
|
|
61
|
+
* bytes actually changed (or this is the first observation of that account).
|
|
62
|
+
*/
|
|
31
63
|
handleRpcResponse(context: Context, keyedAccountInfo: KeyedAccountInfo): void;
|
|
64
|
+
/**
|
|
65
|
+
* Tears down the `onProgramAccountChange` listener and cancels any pending resub timeout.
|
|
66
|
+
* @param onResub Internal flag set to `true` when called as part of an automatic resubscribe cycle, which preserves `resubOpts.resubTimeoutMs` instead of clearing it. Callers should omit this.
|
|
67
|
+
*/
|
|
32
68
|
unsubscribe(onResub?: boolean): Promise<void>;
|
|
33
69
|
}
|
|
@@ -1,6 +1,18 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.WebSocketProgramAccountSubscriber = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Default `ProgramAccountSubscriber` implementation: tracks every account owned by the program
|
|
6
|
+
* (optionally narrowed by `options.filters`) via `connection.onProgramAccountChange`, decoding
|
|
7
|
+
* each notification with `decodeBufferFn`. Maintains a per-account (not single, unlike
|
|
8
|
+
* `WebSocketAccountSubscriber`) `bufferAndSlotMap`, since one program subscription covers many
|
|
9
|
+
* accounts; updates are applied per-account only when the notification's slot is not older than
|
|
10
|
+
* that account's last-seen slot and its buffer actually changed. If `resubOpts.resubTimeoutMs`
|
|
11
|
+
* is set, a watchdog timer resubscribes the whole program subscription whenever no notification
|
|
12
|
+
* (for *any* account) arrives within that window. This is the base class extended by
|
|
13
|
+
* `grpcProgramAccountSubscriber` and `LaserstreamProgramAccountSubscriber` for gRPC Geyser-backed
|
|
14
|
+
* tracking.
|
|
15
|
+
*/
|
|
4
16
|
class WebSocketProgramAccountSubscriber {
|
|
5
17
|
get onChange() {
|
|
6
18
|
if (!this._onChange) {
|
|
@@ -11,6 +23,14 @@ class WebSocketProgramAccountSubscriber {
|
|
|
11
23
|
set onChange(onChange) {
|
|
12
24
|
this._onChange = onChange;
|
|
13
25
|
}
|
|
26
|
+
/**
|
|
27
|
+
* @param subscriptionName Human-readable name for logging.
|
|
28
|
+
* @param accountDiscriminator Anchor account type name passed to `decodeBufferFn` for each update.
|
|
29
|
+
* @param program Anchor program whose accounts to watch (filtered to `program.programId` as owner).
|
|
30
|
+
* @param decodeBufferFn Decode function for each account's raw buffer.
|
|
31
|
+
* @param options `filters` narrowing which program accounts are watched (empty watches every account owned by the program); `commitment` for the subscription, defaulting to the provider's configured commitment.
|
|
32
|
+
* @param resubOpts Resubscription watchdog options; omit to disable the inactivity timer.
|
|
33
|
+
*/
|
|
14
34
|
constructor(subscriptionName, accountDiscriminator, program, decodeBufferFn, options = {
|
|
15
35
|
filters: [],
|
|
16
36
|
}, resubOpts) {
|
|
@@ -30,6 +50,12 @@ class WebSocketProgramAccountSubscriber {
|
|
|
30
50
|
this.options = options;
|
|
31
51
|
this.receivingData = false;
|
|
32
52
|
}
|
|
53
|
+
/**
|
|
54
|
+
* Attaches the `onProgramAccountChange` WebSocket listener. Idempotent: a no-op if already
|
|
55
|
+
* subscribed or mid-unsubscribe. Does not perform an initial fetch of matching accounts — the
|
|
56
|
+
* caller must fetch any pre-existing accounts separately if needed.
|
|
57
|
+
* @param onChange Invoked once per changed account with its pubkey, decoded data, the notification's `Context`, and the raw buffer.
|
|
58
|
+
*/
|
|
33
59
|
async subscribe(onChange) {
|
|
34
60
|
var _a, _b;
|
|
35
61
|
if (this.listenerId != null || this.isUnsubscribing) {
|
|
@@ -74,6 +100,12 @@ class WebSocketProgramAccountSubscriber {
|
|
|
74
100
|
}
|
|
75
101
|
}, (_a = this.resubOpts) === null || _a === void 0 ? void 0 : _a.resubTimeoutMs);
|
|
76
102
|
}
|
|
103
|
+
/**
|
|
104
|
+
* Applies a raw notification for one account within the program subscription: decodes and
|
|
105
|
+
* stores it (updating that account's entry in `bufferAndSlotMap` and invoking `onChange`) only
|
|
106
|
+
* if the slot is not older than the cached one for that specific account and the buffer's
|
|
107
|
+
* bytes actually changed (or this is the first observation of that account).
|
|
108
|
+
*/
|
|
77
109
|
handleRpcResponse(context, keyedAccountInfo) {
|
|
78
110
|
const newSlot = context.slot;
|
|
79
111
|
let newBuffer = undefined;
|
|
@@ -106,6 +138,10 @@ class WebSocketProgramAccountSubscriber {
|
|
|
106
138
|
this.onChange(keyedAccountInfo.accountId, account, context, newBuffer);
|
|
107
139
|
}
|
|
108
140
|
}
|
|
141
|
+
/**
|
|
142
|
+
* Tears down the `onProgramAccountChange` listener and cancels any pending resub timeout.
|
|
143
|
+
* @param onResub Internal flag set to `true` when called as part of an automatic resubscribe cycle, which preserves `resubOpts.resubTimeoutMs` instead of clearing it. Callers should omit this.
|
|
144
|
+
*/
|
|
109
145
|
unsubscribe(onResub = false) {
|
|
110
146
|
if (!onResub && this.resubOpts) {
|
|
111
147
|
this.resubOpts.resubTimeoutMs = undefined;
|
|
@@ -95,6 +95,15 @@ export declare class WebSocketProgramAccountsSubscriberV2<T> implements ProgramA
|
|
|
95
95
|
private missedChangeDetected;
|
|
96
96
|
private resubscriptionTimeout?;
|
|
97
97
|
private accountsWithMissedUpdates;
|
|
98
|
+
/**
|
|
99
|
+
* @param subscriptionName Human-readable name for logging.
|
|
100
|
+
* @param accountDiscriminator Anchor account type name passed to `decodeBufferFn` for each update.
|
|
101
|
+
* @param program Anchor program whose accounts to watch (filtered to `program.programId` as owner); its connection's RPC endpoint is reused to build the `gill` client.
|
|
102
|
+
* @param decodeBufferFn Decode function for each account's raw buffer.
|
|
103
|
+
* @param options `filters` narrowing which program accounts are watched; `commitment` for the WS subscription and RPC polls.
|
|
104
|
+
* @param resubOpts Resubscription/polling options; defaults to `{ resubTimeoutMs: 30000, usePollingInsteadOfResub: true }` if omitted (stricter than the v1 `WebSocketProgramAccountSubscriber`, which defaults to no watchdog at all).
|
|
105
|
+
* @param accountsToMonitor Initial set of accounts to apply the polling safeguard to; more can be added later via `addAccountToMonitor`.
|
|
106
|
+
*/
|
|
98
107
|
constructor(subscriptionName: string, accountDiscriminator: string, program: VelocityProgram, decodeBufferFn: (accountName: string, ix: Buffer) => T, options?: {
|
|
99
108
|
filters: MemcmpFilter[];
|
|
100
109
|
commitment?: Commitment;
|
|
@@ -102,6 +111,13 @@ export declare class WebSocketProgramAccountsSubscriberV2<T> implements ProgramA
|
|
|
102
111
|
private handleNotificationLoop;
|
|
103
112
|
subscribe(onChange: (accountId: PublicKey, data: T, context: Context, buffer: Buffer) => void): Promise<void>;
|
|
104
113
|
protected setTimeout(): void;
|
|
114
|
+
/**
|
|
115
|
+
* Applies a raw notification (or polled response) for one account: decodes and stores it
|
|
116
|
+
* (updating that account's entry in `bufferAndSlotMap` and invoking `onChange`) only if the
|
|
117
|
+
* slot is not older than the cached one for that specific account and the buffer's bytes
|
|
118
|
+
* actually changed. Also records the WS notification time and, if this account was in the
|
|
119
|
+
* polling set, removes it from polling now that a fresh WS update arrived.
|
|
120
|
+
*/
|
|
105
121
|
handleRpcResponse(context: {
|
|
106
122
|
slot: bigint;
|
|
107
123
|
}, accountId: Address, accountInfo?: AccountInfoBase & (AccountInfoWithBase58EncodedData | AccountInfoWithBase64EncodedData)['data']): void;
|
|
@@ -130,6 +146,10 @@ export declare class WebSocketProgramAccountsSubscriberV2<T> implements ProgramA
|
|
|
130
146
|
* Signal that a missed change was detected and schedule resubscription
|
|
131
147
|
*/
|
|
132
148
|
private signalMissedChange;
|
|
149
|
+
/**
|
|
150
|
+
* Tears down all polling timeouts and aborts the WebSocket subscription.
|
|
151
|
+
* @param onResub Internal flag set to `true` when called as part of an automatic resubscribe cycle, which preserves `resubOpts.resubTimeoutMs` instead of clearing it. Callers should omit this.
|
|
152
|
+
*/
|
|
133
153
|
unsubscribe(onResub?: boolean): Promise<void>;
|
|
134
154
|
/**
|
|
135
155
|
* Add an account to the monitored set.
|
|
@@ -137,6 +157,7 @@ export declare class WebSocketProgramAccountsSubscriberV2<T> implements ProgramA
|
|
|
137
157
|
* if WS notifications are not observed within `pollingIntervalMs`.
|
|
138
158
|
*/
|
|
139
159
|
addAccountToMonitor(accountId: PublicKey): void;
|
|
160
|
+
/** Removes an account from the monitored set and clears any pending/active polling state for it. */
|
|
140
161
|
removeAccountFromMonitor(accountId: PublicKey): void;
|
|
141
162
|
/**
|
|
142
163
|
* Set the monitoring/polling interval for monitored accounts.
|
|
@@ -76,6 +76,15 @@ class WebSocketProgramAccountsSubscriberV2 {
|
|
|
76
76
|
set onChange(onChange) {
|
|
77
77
|
this._onChange = onChange;
|
|
78
78
|
}
|
|
79
|
+
/**
|
|
80
|
+
* @param subscriptionName Human-readable name for logging.
|
|
81
|
+
* @param accountDiscriminator Anchor account type name passed to `decodeBufferFn` for each update.
|
|
82
|
+
* @param program Anchor program whose accounts to watch (filtered to `program.programId` as owner); its connection's RPC endpoint is reused to build the `gill` client.
|
|
83
|
+
* @param decodeBufferFn Decode function for each account's raw buffer.
|
|
84
|
+
* @param options `filters` narrowing which program accounts are watched; `commitment` for the WS subscription and RPC polls.
|
|
85
|
+
* @param resubOpts Resubscription/polling options; defaults to `{ resubTimeoutMs: 30000, usePollingInsteadOfResub: true }` if omitted (stricter than the v1 `WebSocketProgramAccountSubscriber`, which defaults to no watchdog at all).
|
|
86
|
+
* @param accountsToMonitor Initial set of accounts to apply the polling safeguard to; more can be added later via `addAccountToMonitor`.
|
|
87
|
+
*/
|
|
79
88
|
constructor(subscriptionName, accountDiscriminator, program, decodeBufferFn, options = {
|
|
80
89
|
filters: [],
|
|
81
90
|
}, resubOpts, accountsToMonitor // Optional list of accounts to poll
|
|
@@ -249,6 +258,13 @@ class WebSocketProgramAccountsSubscriberV2 {
|
|
|
249
258
|
}
|
|
250
259
|
}, (_a = this.resubOpts) === null || _a === void 0 ? void 0 : _a.resubTimeoutMs);
|
|
251
260
|
}
|
|
261
|
+
/**
|
|
262
|
+
* Applies a raw notification (or polled response) for one account: decodes and stores it
|
|
263
|
+
* (updating that account's entry in `bufferAndSlotMap` and invoking `onChange`) only if the
|
|
264
|
+
* slot is not older than the cached one for that specific account and the buffer's bytes
|
|
265
|
+
* actually changed. Also records the WS notification time and, if this account was in the
|
|
266
|
+
* polling set, removes it from polling now that a fresh WS update arrived.
|
|
267
|
+
*/
|
|
252
268
|
handleRpcResponse(context, accountId, accountInfo) {
|
|
253
269
|
const newSlot = Number(context.slot);
|
|
254
270
|
let newBuffer = undefined;
|
|
@@ -681,6 +697,10 @@ class WebSocketProgramAccountsSubscriberV2 {
|
|
|
681
697
|
this.accountsWithMissedUpdates.add(accountIdString);
|
|
682
698
|
}
|
|
683
699
|
}
|
|
700
|
+
/**
|
|
701
|
+
* Tears down all polling timeouts and aborts the WebSocket subscription.
|
|
702
|
+
* @param onResub Internal flag set to `true` when called as part of an automatic resubscribe cycle, which preserves `resubOpts.resubTimeoutMs` instead of clearing it. Callers should omit this.
|
|
703
|
+
*/
|
|
684
704
|
unsubscribe(onResub = false) {
|
|
685
705
|
if (!onResub) {
|
|
686
706
|
this.resubOpts.resubTimeoutMs = undefined;
|
|
@@ -714,6 +734,7 @@ class WebSocketProgramAccountsSubscriberV2 {
|
|
|
714
734
|
}
|
|
715
735
|
}
|
|
716
736
|
// Method to remove accounts from the polling list
|
|
737
|
+
/** Removes an account from the monitored set and clears any pending/active polling state for it. */
|
|
717
738
|
removeAccountFromMonitor(accountId) {
|
|
718
739
|
const accountIdString = accountId.toBase58();
|
|
719
740
|
this.accountsToMonitor.delete(accountIdString);
|
|
@@ -725,6 +746,10 @@ class WebSocketProgramAccountsSubscriberV2 {
|
|
|
725
746
|
}
|
|
726
747
|
// Remove from currently polling set if it was being polled
|
|
727
748
|
this.accountsCurrentlyPolling.delete(accountIdString);
|
|
749
|
+
// Clear stale monitoring bookkeeping so a re-added pubkey isn't mistaken for
|
|
750
|
+
// having a recent WS notification or a still-pending missed update.
|
|
751
|
+
this.lastWsNotificationTime.delete(accountIdString);
|
|
752
|
+
this.accountsWithMissedUpdates.delete(accountIdString);
|
|
728
753
|
// If no more accounts are being polled, stop batch polling
|
|
729
754
|
if (this.accountsCurrentlyPolling.size === 0 && this.batchPollingTimeout) {
|
|
730
755
|
clearTimeout(this.batchPollingTimeout);
|
|
@@ -95,6 +95,15 @@ export declare class WebSocketProgramAccountsSubscriberV2<T> implements ProgramA
|
|
|
95
95
|
private missedChangeDetected;
|
|
96
96
|
private resubscriptionTimeout?;
|
|
97
97
|
private accountsWithMissedUpdates;
|
|
98
|
+
/**
|
|
99
|
+
* @param subscriptionName Human-readable name for logging.
|
|
100
|
+
* @param accountDiscriminator Anchor account type name passed to `decodeBufferFn` for each update.
|
|
101
|
+
* @param program Anchor program whose accounts to watch (filtered to `program.programId` as owner); its connection's RPC endpoint is reused to build the `gill` client.
|
|
102
|
+
* @param decodeBufferFn Decode function for each account's raw buffer.
|
|
103
|
+
* @param options `filters` narrowing which program accounts are watched; `commitment` for the WS subscription and RPC polls.
|
|
104
|
+
* @param resubOpts Resubscription/polling options; defaults to `{ resubTimeoutMs: 30000, usePollingInsteadOfResub: true }` if omitted (stricter than the v1 `WebSocketProgramAccountSubscriber`, which defaults to no watchdog at all).
|
|
105
|
+
* @param accountsToMonitor Initial set of accounts to apply the polling safeguard to; more can be added later via `addAccountToMonitor`.
|
|
106
|
+
*/
|
|
98
107
|
constructor(subscriptionName: string, accountDiscriminator: string, program: VelocityProgram, decodeBufferFn: (accountName: string, ix: Buffer) => T, options?: {
|
|
99
108
|
filters: MemcmpFilter[];
|
|
100
109
|
commitment?: Commitment;
|
|
@@ -102,6 +111,13 @@ export declare class WebSocketProgramAccountsSubscriberV2<T> implements ProgramA
|
|
|
102
111
|
private handleNotificationLoop;
|
|
103
112
|
subscribe(onChange: (accountId: PublicKey, data: T, context: Context, buffer: Buffer) => void): Promise<void>;
|
|
104
113
|
protected setTimeout(): void;
|
|
114
|
+
/**
|
|
115
|
+
* Applies a raw notification (or polled response) for one account: decodes and stores it
|
|
116
|
+
* (updating that account's entry in `bufferAndSlotMap` and invoking `onChange`) only if the
|
|
117
|
+
* slot is not older than the cached one for that specific account and the buffer's bytes
|
|
118
|
+
* actually changed. Also records the WS notification time and, if this account was in the
|
|
119
|
+
* polling set, removes it from polling now that a fresh WS update arrived.
|
|
120
|
+
*/
|
|
105
121
|
handleRpcResponse(context: {
|
|
106
122
|
slot: bigint;
|
|
107
123
|
}, accountId: Address, accountInfo?: AccountInfoBase & (AccountInfoWithBase58EncodedData | AccountInfoWithBase64EncodedData)['data']): void;
|
|
@@ -130,6 +146,10 @@ export declare class WebSocketProgramAccountsSubscriberV2<T> implements ProgramA
|
|
|
130
146
|
* Signal that a missed change was detected and schedule resubscription
|
|
131
147
|
*/
|
|
132
148
|
private signalMissedChange;
|
|
149
|
+
/**
|
|
150
|
+
* Tears down all polling timeouts and aborts the WebSocket subscription.
|
|
151
|
+
* @param onResub Internal flag set to `true` when called as part of an automatic resubscribe cycle, which preserves `resubOpts.resubTimeoutMs` instead of clearing it. Callers should omit this.
|
|
152
|
+
*/
|
|
133
153
|
unsubscribe(onResub?: boolean): Promise<void>;
|
|
134
154
|
/**
|
|
135
155
|
* Add an account to the monitored set.
|
|
@@ -137,6 +157,7 @@ export declare class WebSocketProgramAccountsSubscriberV2<T> implements ProgramA
|
|
|
137
157
|
* if WS notifications are not observed within `pollingIntervalMs`.
|
|
138
158
|
*/
|
|
139
159
|
addAccountToMonitor(accountId: PublicKey): void;
|
|
160
|
+
/** Removes an account from the monitored set and clears any pending/active polling state for it. */
|
|
140
161
|
removeAccountFromMonitor(accountId: PublicKey): void;
|
|
141
162
|
/**
|
|
142
163
|
* Set the monitoring/polling interval for monitored accounts.
|
|
@@ -76,6 +76,15 @@ class WebSocketProgramAccountsSubscriberV2 {
|
|
|
76
76
|
set onChange(onChange) {
|
|
77
77
|
this._onChange = onChange;
|
|
78
78
|
}
|
|
79
|
+
/**
|
|
80
|
+
* @param subscriptionName Human-readable name for logging.
|
|
81
|
+
* @param accountDiscriminator Anchor account type name passed to `decodeBufferFn` for each update.
|
|
82
|
+
* @param program Anchor program whose accounts to watch (filtered to `program.programId` as owner); its connection's RPC endpoint is reused to build the `gill` client.
|
|
83
|
+
* @param decodeBufferFn Decode function for each account's raw buffer.
|
|
84
|
+
* @param options `filters` narrowing which program accounts are watched; `commitment` for the WS subscription and RPC polls.
|
|
85
|
+
* @param resubOpts Resubscription/polling options; defaults to `{ resubTimeoutMs: 30000, usePollingInsteadOfResub: true }` if omitted (stricter than the v1 `WebSocketProgramAccountSubscriber`, which defaults to no watchdog at all).
|
|
86
|
+
* @param accountsToMonitor Initial set of accounts to apply the polling safeguard to; more can be added later via `addAccountToMonitor`.
|
|
87
|
+
*/
|
|
79
88
|
constructor(subscriptionName, accountDiscriminator, program, decodeBufferFn, options = {
|
|
80
89
|
filters: [],
|
|
81
90
|
}, resubOpts, accountsToMonitor // Optional list of accounts to poll
|
|
@@ -248,6 +257,13 @@ class WebSocketProgramAccountsSubscriberV2 {
|
|
|
248
257
|
}
|
|
249
258
|
}, (_a = this.resubOpts) === null || _a === void 0 ? void 0 : _a.resubTimeoutMs);
|
|
250
259
|
}
|
|
260
|
+
/**
|
|
261
|
+
* Applies a raw notification (or polled response) for one account: decodes and stores it
|
|
262
|
+
* (updating that account's entry in `bufferAndSlotMap` and invoking `onChange`) only if the
|
|
263
|
+
* slot is not older than the cached one for that specific account and the buffer's bytes
|
|
264
|
+
* actually changed. Also records the WS notification time and, if this account was in the
|
|
265
|
+
* polling set, removes it from polling now that a fresh WS update arrived.
|
|
266
|
+
*/
|
|
251
267
|
handleRpcResponse(context, accountId, accountInfo) {
|
|
252
268
|
const newSlot = Number(context.slot);
|
|
253
269
|
let newBuffer = undefined;
|
|
@@ -679,6 +695,10 @@ class WebSocketProgramAccountsSubscriberV2 {
|
|
|
679
695
|
this.accountsWithMissedUpdates.add(accountIdString);
|
|
680
696
|
}
|
|
681
697
|
}
|
|
698
|
+
/**
|
|
699
|
+
* Tears down all polling timeouts and aborts the WebSocket subscription.
|
|
700
|
+
* @param onResub Internal flag set to `true` when called as part of an automatic resubscribe cycle, which preserves `resubOpts.resubTimeoutMs` instead of clearing it. Callers should omit this.
|
|
701
|
+
*/
|
|
682
702
|
unsubscribe(onResub = false) {
|
|
683
703
|
if (!onResub) {
|
|
684
704
|
this.resubOpts.resubTimeoutMs = undefined;
|
|
@@ -712,6 +732,7 @@ class WebSocketProgramAccountsSubscriberV2 {
|
|
|
712
732
|
}
|
|
713
733
|
}
|
|
714
734
|
// Method to remove accounts from the polling list
|
|
735
|
+
/** Removes an account from the monitored set and clears any pending/active polling state for it. */
|
|
715
736
|
removeAccountFromMonitor(accountId) {
|
|
716
737
|
const accountIdString = accountId.toBase58();
|
|
717
738
|
this.accountsToMonitor.delete(accountIdString);
|
|
@@ -5,6 +5,11 @@ import StrictEventEmitter from 'strict-event-emitter-types';
|
|
|
5
5
|
import { EventEmitter } from 'events';
|
|
6
6
|
import { Commitment, PublicKey } from '@solana/web3.js';
|
|
7
7
|
import { UserAccount } from '../types';
|
|
8
|
+
/**
|
|
9
|
+
* Default `UserAccountSubscriber` implementation: wraps a single `WebSocketAccountSubscriber`
|
|
10
|
+
* for the `UserAccount`. `userDataAccountSubscriber` throws if accessed before `subscribe()` has
|
|
11
|
+
* run (it is created there, not in the constructor).
|
|
12
|
+
*/
|
|
8
13
|
export declare class WebSocketUserAccountSubscriber implements UserAccountSubscriber {
|
|
9
14
|
isSubscribed: boolean;
|
|
10
15
|
resubOpts?: ResubOpts;
|
|
@@ -15,11 +20,32 @@ export declare class WebSocketUserAccountSubscriber implements UserAccountSubscr
|
|
|
15
20
|
private _userDataAccountSubscriber?;
|
|
16
21
|
get userDataAccountSubscriber(): AccountSubscriber<UserAccount>;
|
|
17
22
|
set userDataAccountSubscriber(subscriber: AccountSubscriber<UserAccount>);
|
|
23
|
+
/**
|
|
24
|
+
* @param program Anchor program providing the connection and coder.
|
|
25
|
+
* @param userAccountPublicKey Address of the `UserAccount` to track.
|
|
26
|
+
* @param resubOpts Resubscription watchdog options passed through to the underlying `WebSocketAccountSubscriber`.
|
|
27
|
+
* @param commitment Commitment for the underlying subscription; defaults to the provider's configured commitment.
|
|
28
|
+
*/
|
|
18
29
|
constructor(program: VelocityProgram, userAccountPublicKey: PublicKey, resubOpts?: ResubOpts, commitment?: Commitment);
|
|
30
|
+
/**
|
|
31
|
+
* Creates the underlying `WebSocketAccountSubscriber` and subscribes it. Idempotent: a no-op
|
|
32
|
+
* (returns `true`) if already subscribed.
|
|
33
|
+
* @param userAccount Optional pre-fetched account data to seed the subscriber with, skipping the initial RPC fetch.
|
|
34
|
+
*/
|
|
19
35
|
subscribe(userAccount?: UserAccount): Promise<boolean>;
|
|
36
|
+
/** Fetches the account once via the underlying `WebSocketAccountSubscriber`. */
|
|
20
37
|
fetch(): Promise<void>;
|
|
38
|
+
/** Tears down the underlying WebSocket subscription. A no-op if not subscribed. */
|
|
21
39
|
unsubscribe(): Promise<void>;
|
|
40
|
+
/** Throws `NotSubscribedError` if `subscribe()` has not been called. */
|
|
22
41
|
assertIsSubscribed(): void;
|
|
42
|
+
/** Throws `NotSubscribedError` if not subscribed. Returns undefined only if subscribed but no data has loaded yet. */
|
|
23
43
|
getUserAccountAndSlot(): DataAndSlot<UserAccount> | undefined;
|
|
44
|
+
/**
|
|
45
|
+
* Applies an externally-obtained account update if `slot` is not older than the currently
|
|
46
|
+
* cached slot.
|
|
47
|
+
* @param userAccount Decoded account data to apply.
|
|
48
|
+
* @param slot Slot the data was observed at.
|
|
49
|
+
*/
|
|
24
50
|
updateData(userAccount: UserAccount, slot: number): void;
|
|
25
51
|
}
|