@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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/accounts/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACtC,OAAO,EAAa,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAC3E,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAG9C,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED,wBAAgB,iBAAiB,CAAC,CAAC,EAClC,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,SAAS,EACvC,OAAO,EAAE,MAAM,GACb,WAAW,CAAC,CAAC,CAAC,CAKhB;AAED,wBAAgB,iCAAiC,CAChD,WAAW,EAAE,WAAW,CAAC,iBAAiB,CAAC,EAAE,EAC7C,WAAW,EAAE,WAAW,CAAC,iBAAiB,CAAC,EAAE,GAC3C;IAAE,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAAC,OAAO,EAAE,UAAU,EAAE,CAAA;CAAE,CAiDxD"}
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/accounts/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACtC,OAAO,EAAa,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAC3E,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAG9C,mHAAmH;AACnH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EAClC,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,SAAS,EACvC,OAAO,EAAE,MAAM,GACb,WAAW,CAAC,CAAC,CAAC,CAKhB;AAED;;;;;;;;;GASG;AACH,wBAAgB,iCAAiC,CAChD,WAAW,EAAE,WAAW,CAAC,iBAAiB,CAAC,EAAE,EAC7C,WAAW,EAAE,WAAW,CAAC,iBAAiB,CAAC,EAAE,GAC3C;IAAE,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAAC,OAAO,EAAE,UAAU,EAAE,CAAA;CAAE,CAiDxD"}
|
|
@@ -3,10 +3,18 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.findDelistedPerpMarketsAndOracles = exports.assertDataAndSlot = exports.capitalize = void 0;
|
|
4
4
|
const types_1 = require("../types");
|
|
5
5
|
const oracleId_1 = require("../oracles/oracleId");
|
|
6
|
+
/** Capitalizes the first character of `value` (e.g. for building Anchor event/method names from account names). */
|
|
6
7
|
function capitalize(value) {
|
|
7
8
|
return value[0].toUpperCase() + value.slice(1);
|
|
8
9
|
}
|
|
9
10
|
exports.capitalize = capitalize;
|
|
11
|
+
/**
|
|
12
|
+
* Unwraps a possibly-undefined `DataAndSlot<T>`, throwing if it hasn't loaded. Use this instead
|
|
13
|
+
* of a bare non-null assertion when a subscriber's cached data must be present by this point.
|
|
14
|
+
* @param dataAndSlot The cached data/slot pair to check, typically from `AccountSubscriber.dataAndSlot`.
|
|
15
|
+
* @param message Error message to throw if `dataAndSlot` is undefined.
|
|
16
|
+
* @returns The same `dataAndSlot`, narrowed to non-undefined.
|
|
17
|
+
*/
|
|
10
18
|
function assertDataAndSlot(dataAndSlot, message) {
|
|
11
19
|
if (!dataAndSlot) {
|
|
12
20
|
throw new Error(message);
|
|
@@ -14,6 +22,16 @@ function assertDataAndSlot(dataAndSlot, message) {
|
|
|
14
22
|
return dataAndSlot;
|
|
15
23
|
}
|
|
16
24
|
exports.assertDataAndSlot = assertDataAndSlot;
|
|
25
|
+
/**
|
|
26
|
+
* Scans cached perp/spot market data for perp markets with `status: delisted` and identifies
|
|
27
|
+
* both the delisted market indexes and their oracles, excluding any oracle still in use by a
|
|
28
|
+
* spot market or a non-delisted perp market (so a shared oracle isn't dropped out from under a
|
|
29
|
+
* still-live market). Used by `VelocityClientAccountSubscriber` implementations to drive
|
|
30
|
+
* `DelistedMarketSetting` (unsubscribe/discard) handling.
|
|
31
|
+
* @param perpMarkets Currently cached perp market data/slots (entries with missing `data` are skipped).
|
|
32
|
+
* @param spotMarkets Currently cached spot market data/slots, checked to avoid dropping oracles they still reference.
|
|
33
|
+
* @returns `perpMarketIndexes` of delisted perp markets and `oracles` safe to stop tracking.
|
|
34
|
+
*/
|
|
17
35
|
function findDelistedPerpMarketsAndOracles(perpMarkets, spotMarkets) {
|
|
18
36
|
const delistedPerpMarketIndexes = [];
|
|
19
37
|
const delistedOracles = [];
|
|
@@ -29,25 +47,23 @@ function findDelistedPerpMarketsAndOracles(perpMarkets, spotMarkets) {
|
|
|
29
47
|
});
|
|
30
48
|
}
|
|
31
49
|
}
|
|
32
|
-
// make sure oracle isn't used by spot market
|
|
33
|
-
const
|
|
34
|
-
for (const
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
isUsedBySpotMarket = true;
|
|
44
|
-
break;
|
|
45
|
-
}
|
|
50
|
+
// make sure oracle isn't still used by a spot market or a live perp market
|
|
51
|
+
const liveOracleIds = new Set();
|
|
52
|
+
for (const spotMarket of spotMarkets) {
|
|
53
|
+
if (!spotMarket || !spotMarket.data) {
|
|
54
|
+
continue;
|
|
55
|
+
}
|
|
56
|
+
liveOracleIds.add((0, oracleId_1.getOracleId)(spotMarket.data.oracle, spotMarket.data.oracleSource));
|
|
57
|
+
}
|
|
58
|
+
for (const perpMarket of perpMarkets) {
|
|
59
|
+
if (!perpMarket || !perpMarket.data) {
|
|
60
|
+
continue;
|
|
46
61
|
}
|
|
47
|
-
if (!
|
|
48
|
-
|
|
62
|
+
if (!(0, types_1.isVariant)(perpMarket.data.status, 'delisted')) {
|
|
63
|
+
liveOracleIds.add((0, oracleId_1.getOracleId)(perpMarket.data.oracle, perpMarket.data.oracleSource));
|
|
49
64
|
}
|
|
50
65
|
}
|
|
66
|
+
const filteredDelistedOracles = delistedOracles.filter((delistedOracle) => !liveOracleIds.has((0, oracleId_1.getOracleId)(delistedOracle.publicKey, delistedOracle.source)));
|
|
51
67
|
return {
|
|
52
68
|
perpMarketIndexes: delistedPerpMarketIndexes,
|
|
53
69
|
oracles: filteredDelistedOracles,
|
|
@@ -3,6 +3,16 @@
|
|
|
3
3
|
import { DataAndSlot, BufferAndSlot, AccountSubscriber, ResubOpts } from './types';
|
|
4
4
|
import { AccountInfo, Commitment, Context, PublicKey } from '@solana/web3.js';
|
|
5
5
|
import { VelocityProgram } from '../config';
|
|
6
|
+
/**
|
|
7
|
+
* Default `AccountSubscriber` implementation: tracks a single account via
|
|
8
|
+
* `connection.onAccountChange`, decoding each notification with either a supplied
|
|
9
|
+
* `decodeBuffer` function or the program's Anchor coder for `accountName`. Updates are applied
|
|
10
|
+
* only when the notification's slot is not older than the last-seen slot and the raw buffer
|
|
11
|
+
* actually changed, so `onChange` never fires twice for the same bytes. If `resubOpts.resubTimeoutMs`
|
|
12
|
+
* is set, a watchdog timer resubscribes to the WebSocket whenever no notification arrives within
|
|
13
|
+
* that window — see `ResubOpts` for tuning. This is the base class extended by
|
|
14
|
+
* `grpcAccountSubscriber` for gRPC Geyser-backed tracking.
|
|
15
|
+
*/
|
|
6
16
|
export declare class WebSocketAccountSubscriber<T> implements AccountSubscriber<T> {
|
|
7
17
|
dataAndSlot?: DataAndSlot<T>;
|
|
8
18
|
bufferAndSlot?: BufferAndSlot;
|
|
@@ -20,13 +30,44 @@ export declare class WebSocketAccountSubscriber<T> implements AccountSubscriber<
|
|
|
20
30
|
isUnsubscribing: boolean;
|
|
21
31
|
timeoutId?: ReturnType<typeof setTimeout>;
|
|
22
32
|
receivingData: boolean;
|
|
33
|
+
/**
|
|
34
|
+
* @param accountName Anchor account type name (used for logging and, absent `decodeBuffer`, for decoding via the program coder).
|
|
35
|
+
* @param program Anchor program providing the connection and coder.
|
|
36
|
+
* @param accountPublicKey Address of the account to track.
|
|
37
|
+
* @param decodeBuffer Optional custom decode function; defaults to `program.coder.accounts.decode(accountName, buffer)`.
|
|
38
|
+
* @param resubOpts Resubscription watchdog options; omit to disable the inactivity timer.
|
|
39
|
+
* @param commitment Commitment for both the initial fetch and the `onAccountChange` subscription; defaults to the provider's configured commitment.
|
|
40
|
+
*/
|
|
23
41
|
constructor(accountName: string, program: VelocityProgram, accountPublicKey: PublicKey, decodeBuffer?: (buffer: Buffer) => T, resubOpts?: ResubOpts, commitment?: Commitment);
|
|
42
|
+
/**
|
|
43
|
+
* Seeds `dataAndSlot` with an initial `fetch()` (if not already set via `setData`) and then
|
|
44
|
+
* attaches the `onAccountChange` WebSocket listener. Returning early (no-op) if already
|
|
45
|
+
* subscribed or mid-unsubscribe.
|
|
46
|
+
* @param onChange Invoked with the newly decoded account data on each accepted update.
|
|
47
|
+
*/
|
|
24
48
|
subscribe(onChange: (data: T) => void): Promise<void>;
|
|
49
|
+
/**
|
|
50
|
+
* Seeds or overwrites `dataAndSlot` directly, bypassing RPC. A no-op if the currently cached
|
|
51
|
+
* slot is already newer than `slot`.
|
|
52
|
+
* @param data Decoded account data to store.
|
|
53
|
+
* @param slot Slot the data was observed at; defaults to 0 (the seeded sentinel) if omitted.
|
|
54
|
+
*/
|
|
25
55
|
setData(data: T, slot?: number): void;
|
|
26
56
|
protected setTimeout(): void;
|
|
57
|
+
/** Fetches the account once via `getAccountInfoAndContext` and routes the result through `handleRpcResponse`, applying it if newer than the cached slot. */
|
|
27
58
|
fetch(): Promise<void>;
|
|
59
|
+
/**
|
|
60
|
+
* Applies a raw RPC/WS response: decodes and stores it (updating `bufferAndSlot`/`dataAndSlot`
|
|
61
|
+
* and invoking `onChange`) only if the slot is not older than the cached one and the buffer's
|
|
62
|
+
* bytes actually changed (or this is the first observation).
|
|
63
|
+
*/
|
|
28
64
|
handleRpcResponse(context: Context, accountInfo?: AccountInfo<Buffer>): void;
|
|
65
|
+
/** Decodes a raw account buffer using the constructor-supplied `decodeBufferFn`, or the program's Anchor coder for `accountName` if none was supplied. */
|
|
29
66
|
decodeBuffer(buffer: Buffer): T;
|
|
67
|
+
/**
|
|
68
|
+
* Tears down the WebSocket listener and cancels any pending resub timeout.
|
|
69
|
+
* @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.
|
|
70
|
+
*/
|
|
30
71
|
unsubscribe(onResub?: boolean): Promise<void>;
|
|
31
72
|
}
|
|
32
73
|
//# sourceMappingURL=webSocketAccountSubscriber.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webSocketAccountSubscriber.d.ts","sourceRoot":"","sources":["../../../src/accounts/webSocketAccountSubscriber.ts"],"names":[],"mappings":";;AAAA,OAAO,EACN,WAAW,EACX,aAAa,EACb,iBAAiB,EACjB,SAAS,EACT,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC9E,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAG5C,qBAAa,0BAA0B,CAAC,CAAC,CAAE,YAAW,iBAAiB,CAAC,CAAC,CAAC;IACzE,WAAW,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;IAC7B,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,eAAe,CAAC;IACzB,gBAAgB,EAAE,SAAS,CAAC;IAC5B,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,CAAC,CAAC;IACvC,OAAO,CAAC,SAAS,CAAC,CAAoB;IACtC,IAAI,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,CAKhC;IACD,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,EAEvC;IACD,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,SAAS,CAAC,EAAE,SAAS,CAAC;IAEtB,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,eAAe,UAAS;IAExB,SAAS,CAAC,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC;IAE1C,aAAa,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"webSocketAccountSubscriber.d.ts","sourceRoot":"","sources":["../../../src/accounts/webSocketAccountSubscriber.ts"],"names":[],"mappings":";;AAAA,OAAO,EACN,WAAW,EACX,aAAa,EACb,iBAAiB,EACjB,SAAS,EACT,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC9E,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAG5C;;;;;;;;;GASG;AACH,qBAAa,0BAA0B,CAAC,CAAC,CAAE,YAAW,iBAAiB,CAAC,CAAC,CAAC;IACzE,WAAW,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;IAC7B,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,eAAe,CAAC;IACzB,gBAAgB,EAAE,SAAS,CAAC;IAC5B,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,CAAC,CAAC;IACvC,OAAO,CAAC,SAAS,CAAC,CAAoB;IACtC,IAAI,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,CAKhC;IACD,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,EAEvC;IACD,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,SAAS,CAAC,EAAE,SAAS,CAAC;IAEtB,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,eAAe,UAAS;IAExB,SAAS,CAAC,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC;IAE1C,aAAa,EAAE,OAAO,CAAC;IAEvB;;;;;;;OAOG;gBAEF,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,eAAe,EACxB,gBAAgB,EAAE,SAAS,EAC3B,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,CAAC,EACpC,SAAS,CAAC,EAAE,SAAS,EACrB,UAAU,CAAC,EAAE,UAAU;IAqBxB;;;;;OAKG;IACG,SAAS,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAoC3D;;;;;OAKG;IACH,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI;IAYrC,SAAS,CAAC,UAAU,IAAI,IAAI;IA0C5B,4JAA4J;IACtJ,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAY5B;;;;OAIG;IACH,iBAAiB,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,IAAI;IA0C5E,0JAA0J;IAC1J,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,CAAC;IAQ/B;;;OAGG;IACH,WAAW,CAAC,OAAO,UAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;CA2C3C"}
|
|
@@ -1,6 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.WebSocketAccountSubscriber = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Default `AccountSubscriber` implementation: tracks a single account via
|
|
6
|
+
* `connection.onAccountChange`, decoding each notification with either a supplied
|
|
7
|
+
* `decodeBuffer` function or the program's Anchor coder for `accountName`. Updates are applied
|
|
8
|
+
* only when the notification's slot is not older than the last-seen slot and the raw buffer
|
|
9
|
+
* actually changed, so `onChange` never fires twice for the same bytes. If `resubOpts.resubTimeoutMs`
|
|
10
|
+
* is set, a watchdog timer resubscribes to the WebSocket whenever no notification arrives within
|
|
11
|
+
* that window — see `ResubOpts` for tuning. This is the base class extended by
|
|
12
|
+
* `grpcAccountSubscriber` for gRPC Geyser-backed tracking.
|
|
13
|
+
*/
|
|
4
14
|
class WebSocketAccountSubscriber {
|
|
5
15
|
get onChange() {
|
|
6
16
|
if (!this._onChange) {
|
|
@@ -11,6 +21,14 @@ class WebSocketAccountSubscriber {
|
|
|
11
21
|
set onChange(onChange) {
|
|
12
22
|
this._onChange = onChange;
|
|
13
23
|
}
|
|
24
|
+
/**
|
|
25
|
+
* @param accountName Anchor account type name (used for logging and, absent `decodeBuffer`, for decoding via the program coder).
|
|
26
|
+
* @param program Anchor program providing the connection and coder.
|
|
27
|
+
* @param accountPublicKey Address of the account to track.
|
|
28
|
+
* @param decodeBuffer Optional custom decode function; defaults to `program.coder.accounts.decode(accountName, buffer)`.
|
|
29
|
+
* @param resubOpts Resubscription watchdog options; omit to disable the inactivity timer.
|
|
30
|
+
* @param commitment Commitment for both the initial fetch and the `onAccountChange` subscription; defaults to the provider's configured commitment.
|
|
31
|
+
*/
|
|
14
32
|
constructor(accountName, program, accountPublicKey, decodeBuffer, resubOpts, commitment) {
|
|
15
33
|
var _a;
|
|
16
34
|
this.isUnsubscribing = false;
|
|
@@ -28,6 +46,12 @@ class WebSocketAccountSubscriber {
|
|
|
28
46
|
this.commitment =
|
|
29
47
|
commitment !== null && commitment !== void 0 ? commitment : this.program.provider.opts.commitment;
|
|
30
48
|
}
|
|
49
|
+
/**
|
|
50
|
+
* Seeds `dataAndSlot` with an initial `fetch()` (if not already set via `setData`) and then
|
|
51
|
+
* attaches the `onAccountChange` WebSocket listener. Returning early (no-op) if already
|
|
52
|
+
* subscribed or mid-unsubscribe.
|
|
53
|
+
* @param onChange Invoked with the newly decoded account data on each accepted update.
|
|
54
|
+
*/
|
|
31
55
|
async subscribe(onChange) {
|
|
32
56
|
var _a, _b;
|
|
33
57
|
if (this.listenerId != null || this.isUnsubscribing) {
|
|
@@ -57,6 +81,12 @@ class WebSocketAccountSubscriber {
|
|
|
57
81
|
this.setTimeout();
|
|
58
82
|
}
|
|
59
83
|
}
|
|
84
|
+
/**
|
|
85
|
+
* Seeds or overwrites `dataAndSlot` directly, bypassing RPC. A no-op if the currently cached
|
|
86
|
+
* slot is already newer than `slot`.
|
|
87
|
+
* @param data Decoded account data to store.
|
|
88
|
+
* @param slot Slot the data was observed at; defaults to 0 (the seeded sentinel) if omitted.
|
|
89
|
+
*/
|
|
60
90
|
setData(data, slot) {
|
|
61
91
|
const newSlot = slot || 0;
|
|
62
92
|
if (this.dataAndSlot && this.dataAndSlot.slot > newSlot) {
|
|
@@ -99,11 +129,17 @@ class WebSocketAccountSubscriber {
|
|
|
99
129
|
}
|
|
100
130
|
}, (_a = this.resubOpts) === null || _a === void 0 ? void 0 : _a.resubTimeoutMs);
|
|
101
131
|
}
|
|
132
|
+
/** Fetches the account once via `getAccountInfoAndContext` and routes the result through `handleRpcResponse`, applying it if newer than the cached slot. */
|
|
102
133
|
async fetch() {
|
|
103
134
|
var _a;
|
|
104
135
|
const rpcResponse = await this.program.provider.connection.getAccountInfoAndContext(this.accountPublicKey, this.program.provider.opts.commitment);
|
|
105
136
|
this.handleRpcResponse(rpcResponse.context, (_a = rpcResponse === null || rpcResponse === void 0 ? void 0 : rpcResponse.value) !== null && _a !== void 0 ? _a : undefined);
|
|
106
137
|
}
|
|
138
|
+
/**
|
|
139
|
+
* Applies a raw RPC/WS response: decodes and stores it (updating `bufferAndSlot`/`dataAndSlot`
|
|
140
|
+
* and invoking `onChange`) only if the slot is not older than the cached one and the buffer's
|
|
141
|
+
* bytes actually changed (or this is the first observation).
|
|
142
|
+
*/
|
|
107
143
|
handleRpcResponse(context, accountInfo) {
|
|
108
144
|
const newSlot = context.slot;
|
|
109
145
|
let newBuffer = undefined;
|
|
@@ -142,6 +178,7 @@ class WebSocketAccountSubscriber {
|
|
|
142
178
|
this.onChange(account);
|
|
143
179
|
}
|
|
144
180
|
}
|
|
181
|
+
/** Decodes a raw account buffer using the constructor-supplied `decodeBufferFn`, or the program's Anchor coder for `accountName` if none was supplied. */
|
|
145
182
|
decodeBuffer(buffer) {
|
|
146
183
|
if (this.decodeBufferFn) {
|
|
147
184
|
return this.decodeBufferFn(buffer);
|
|
@@ -150,6 +187,10 @@ class WebSocketAccountSubscriber {
|
|
|
150
187
|
return this.program.coder.accounts.decode(this.accountName, buffer);
|
|
151
188
|
}
|
|
152
189
|
}
|
|
190
|
+
/**
|
|
191
|
+
* Tears down the WebSocket listener and cancels any pending resub timeout.
|
|
192
|
+
* @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.
|
|
193
|
+
*/
|
|
153
194
|
unsubscribe(onResub = false) {
|
|
154
195
|
if (!onResub && this.resubOpts) {
|
|
155
196
|
this.resubOpts.resubTimeoutMs = undefined;
|
|
@@ -88,8 +88,28 @@ export declare class WebSocketAccountSubscriberV2<T> implements AccountSubscribe
|
|
|
88
88
|
*/
|
|
89
89
|
constructor(accountName: string, program: VelocityProgram, accountPublicKey: PublicKey, decodeBuffer?: (buffer: Buffer) => T, resubOpts?: ResubOpts, commitment?: Commitment, rpcSubscriptions?: RpcSubscriptions<SolanaRpcSubscriptionsApi> & string, rpc?: Rpc<any>);
|
|
90
90
|
private handleNotificationLoop;
|
|
91
|
+
/**
|
|
92
|
+
* Seeds `dataAndSlot` with an initial `fetch()` (if not already set via `setData`), then opens
|
|
93
|
+
* the `gill` `accountNotifications` WebSocket subscription and, if `resubOpts.resubTimeoutMs`
|
|
94
|
+
* is set, arms the inactivity watchdog (`setTimeout`). Idempotent: a no-op if already
|
|
95
|
+
* subscribed or mid-unsubscribe.
|
|
96
|
+
* @param onChange Invoked with the newly decoded account data on each accepted update.
|
|
97
|
+
* @throws Error if `accountPublicKey` is not a valid address per `gill`'s `isAddress`.
|
|
98
|
+
*/
|
|
91
99
|
subscribe(onChange: (data: T) => void): Promise<void>;
|
|
100
|
+
/**
|
|
101
|
+
* Seeds or overwrites `dataAndSlot` directly, bypassing RPC. A no-op if the currently cached
|
|
102
|
+
* slot is already newer than `slot`.
|
|
103
|
+
* @param data Decoded account data to store.
|
|
104
|
+
* @param slot Slot the data was observed at; defaults to 0 (the seeded sentinel) if omitted.
|
|
105
|
+
*/
|
|
92
106
|
setData(data: T, slot?: number): void;
|
|
107
|
+
/**
|
|
108
|
+
* Arms the inactivity watchdog: if no WS notification resets this timeout within
|
|
109
|
+
* `resubOpts.resubTimeoutMs`, either starts the polling fallback (`usePollingInsteadOfResub`)
|
|
110
|
+
* or tears down and recreates the WS subscription. Throws if `onChange` was never set (i.e.
|
|
111
|
+
* called outside `subscribe()`'s flow).
|
|
112
|
+
*/
|
|
93
113
|
protected setTimeout(): void;
|
|
94
114
|
/**
|
|
95
115
|
* Start the polling loop (single-account).
|
|
@@ -103,10 +123,21 @@ export declare class WebSocketAccountSubscriberV2<T> implements AccountSubscribe
|
|
|
103
123
|
* decoding and update pathway as WS notifications.
|
|
104
124
|
*/
|
|
105
125
|
fetch(): Promise<void>;
|
|
126
|
+
/**
|
|
127
|
+
* Applies a raw `gill` RPC/WS response: decodes (base58 or base64) and stores it (updating
|
|
128
|
+
* `bufferAndSlot`/`dataAndSlot` and invoking `onChange`) only if the slot is not older than
|
|
129
|
+
* the cached one and the buffer's bytes actually changed (or this is the first observation).
|
|
130
|
+
*/
|
|
106
131
|
handleRpcResponse(context: {
|
|
107
132
|
slot: bigint;
|
|
108
133
|
}, accountInfo?: AccountInfoBase & (AccountInfoWithBase58EncodedData | AccountInfoWithBase64EncodedData)): void;
|
|
134
|
+
/** Decodes a raw account buffer using the constructor-supplied `decodeBufferFn`, or the program's Anchor coder for `accountName` if none was supplied. */
|
|
109
135
|
decodeBuffer(buffer: Buffer): T;
|
|
136
|
+
/**
|
|
137
|
+
* Tears down the WebSocket subscription (via `abortController`) and cancels any pending resub
|
|
138
|
+
* timeout and in-progress polling.
|
|
139
|
+
* @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.
|
|
140
|
+
*/
|
|
110
141
|
unsubscribe(onResub?: boolean): Promise<void>;
|
|
111
142
|
}
|
|
112
143
|
//# sourceMappingURL=webSocketAccountSubscriberV2.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webSocketAccountSubscriberV2.d.ts","sourceRoot":"","sources":["../../../src/accounts/webSocketAccountSubscriberV2.ts"],"names":[],"mappings":";;AAAA,OAAO,EACN,WAAW,EACX,iBAAiB,EACjB,SAAS,EACT,aAAa,EACb,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EACN,eAAe,EACf,gCAAgC,EAChC,gCAAgC,EAGhC,GAAG,EACH,gBAAgB,EAChB,yBAAyB,EAEzB,UAAU,EACV,MAAM,MAAM,CAAC;AACd,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAG5C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AACH,qBAAa,4BAA4B,CAAC,CAAC,CAAE,YAAW,iBAAiB,CAAC,CAAC,CAAC;IAC3E,WAAW,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;IAC7B,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,eAAe,CAAC;IACzB,gBAAgB,EAAE,SAAS,CAAC;IAC5B,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,CAAC,CAAC;IACvC,OAAO,CAAC,SAAS,CAAC,CAAoB;IACtC,IAAI,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,CAKhC;IACD,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,EAEvC;IACD,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,SAAS,EAAE,SAAS,CAAC;IAErB,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,eAAe,UAAS;IAExB,SAAS,CAAC,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC;IAC1C,gBAAgB,CAAC,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC;IAEjD,aAAa,EAAE,OAAO,CAAC;IAGvB,OAAO,CAAC,GAAG,CAA+C;IAC1D,OAAO,CAAC,gBAAgB,CAEF;IACtB,OAAO,CAAC,eAAe,CAAC,CAAkB;IAE1C;;;;;;;;;;;;OAYG;gBAEF,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,eAAe,EACxB,gBAAgB,EAAE,SAAS,EAC3B,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,CAAC,EACpC,SAAS,CAAC,EAAE,SAAS,EACrB,UAAU,CAAC,EAAE,UAAU,EACvB,gBAAgB,CAAC,EAAE,gBAAgB,CAAC,yBAAyB,CAAC,GAAG,MAAM,EACvE,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC;YA4DD,sBAAsB;
|
|
1
|
+
{"version":3,"file":"webSocketAccountSubscriberV2.d.ts","sourceRoot":"","sources":["../../../src/accounts/webSocketAccountSubscriberV2.ts"],"names":[],"mappings":";;AAAA,OAAO,EACN,WAAW,EACX,iBAAiB,EACjB,SAAS,EACT,aAAa,EACb,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EACN,eAAe,EACf,gCAAgC,EAChC,gCAAgC,EAGhC,GAAG,EACH,gBAAgB,EAChB,yBAAyB,EAEzB,UAAU,EACV,MAAM,MAAM,CAAC;AACd,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAG5C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AACH,qBAAa,4BAA4B,CAAC,CAAC,CAAE,YAAW,iBAAiB,CAAC,CAAC,CAAC;IAC3E,WAAW,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;IAC7B,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,eAAe,CAAC;IACzB,gBAAgB,EAAE,SAAS,CAAC;IAC5B,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,CAAC,CAAC;IACvC,OAAO,CAAC,SAAS,CAAC,CAAoB;IACtC,IAAI,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,CAKhC;IACD,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,EAEvC;IACD,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,SAAS,EAAE,SAAS,CAAC;IAErB,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,eAAe,UAAS;IAExB,SAAS,CAAC,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC;IAC1C,gBAAgB,CAAC,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC;IAEjD,aAAa,EAAE,OAAO,CAAC;IAGvB,OAAO,CAAC,GAAG,CAA+C;IAC1D,OAAO,CAAC,gBAAgB,CAEF;IACtB,OAAO,CAAC,eAAe,CAAC,CAAkB;IAE1C;;;;;;;;;;;;OAYG;gBAEF,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,eAAe,EACxB,gBAAgB,EAAE,SAAS,EAC3B,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,CAAC,EACpC,SAAS,CAAC,EAAE,SAAS,EACrB,UAAU,CAAC,EAAE,UAAU,EACvB,gBAAgB,CAAC,EAAE,gBAAgB,CAAC,yBAAyB,CAAC,GAAG,MAAM,EACvE,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC;YA4DD,sBAAsB;IAsBpC;;;;;;;OAOG;IACG,SAAS,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IA6C3D;;;;;OAKG;IACH,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI;IAYrC;;;;;OAKG;IACH,SAAS,CAAC,UAAU,IAAI,IAAI;IAkD5B;;;;OAIG;IACH,OAAO,CAAC,YAAY;IAuDpB,OAAO,CAAC,WAAW;IAOnB;;;OAGG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAuB5B;;;;OAIG;IACH,iBAAiB,CAChB,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,EACzB,WAAW,CAAC,EAAE,eAAe,GAC5B,CAAC,gCAAgC,GAAG,gCAAgC,CAAC,GACpE,IAAI;IA0DP,0JAA0J;IAC1J,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,CAAC;IAQ/B;;;;OAIG;IACH,WAAW,CAAC,OAAO,UAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;CAsB3C"}
|
|
@@ -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,12 +21,33 @@ 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
|
}
|
|
26
53
|
//# sourceMappingURL=webSocketInsuranceFundStakeAccountSubscriber.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webSocketInsuranceFundStakeAccountSubscriber.d.ts","sourceRoot":"","sources":["../../../src/accounts/webSocketInsuranceFundStakeAccountSubscriber.ts"],"names":[],"mappings":";AAAA,OAAO,EACN,WAAW,EACX,iBAAiB,EAEjB,+BAA+B,EAC/B,mCAAmC,EACnC,MAAM,SAAS,CAAC;AACjB,OAAO,kBAAkB,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAExD,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAE5C,qBAAa,4CACZ,YAAW,mCAAmC;IAE9C,YAAY,EAAE,OAAO,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,OAAO,EAAE,eAAe,CAAC;IACzB,YAAY,EAAE,kBAAkB,CAC/B,YAAY,EACZ,+BAA+B,CAC/B,CAAC;IACF,kCAAkC,EAAE,SAAS,CAAC;IAE9C,OAAO,CAAC,wCAAwC,CAAC,CAAwC;IACzF,IAAI,uCAAuC,IAAI,iBAAiB,CAAC,kBAAkB,CAAC,CAOnF;IACD,IAAI,uCAAuC,CAC1C,UAAU,EAAE,iBAAiB,CAAC,kBAAkB,CAAC,EAGjD;
|
|
1
|
+
{"version":3,"file":"webSocketInsuranceFundStakeAccountSubscriber.d.ts","sourceRoot":"","sources":["../../../src/accounts/webSocketInsuranceFundStakeAccountSubscriber.ts"],"names":[],"mappings":";AAAA,OAAO,EACN,WAAW,EACX,iBAAiB,EAEjB,+BAA+B,EAC/B,mCAAmC,EACnC,MAAM,SAAS,CAAC;AACjB,OAAO,kBAAkB,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAExD,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAE5C;;;;;GAKG;AACH,qBAAa,4CACZ,YAAW,mCAAmC;IAE9C,YAAY,EAAE,OAAO,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,OAAO,EAAE,eAAe,CAAC;IACzB,YAAY,EAAE,kBAAkB,CAC/B,YAAY,EACZ,+BAA+B,CAC/B,CAAC;IACF,kCAAkC,EAAE,SAAS,CAAC;IAE9C,OAAO,CAAC,wCAAwC,CAAC,CAAwC;IACzF,IAAI,uCAAuC,IAAI,iBAAiB,CAAC,kBAAkB,CAAC,CAOnF;IACD,IAAI,uCAAuC,CAC1C,UAAU,EAAE,iBAAiB,CAAC,kBAAkB,CAAC,EAGjD;IAED;;;;;OAKG;gBAEF,OAAO,EAAE,eAAe,EACxB,kCAAkC,EAAE,SAAS,EAC7C,cAAc,CAAC,EAAE,MAAM,EACvB,UAAU,CAAC,EAAE,UAAU;IAWxB;;;;OAIG;IACG,SAAS,CACd,yBAAyB,CAAC,EAAE,kBAAkB,GAC5C,OAAO,CAAC,OAAO,CAAC;IAmCnB,gFAAgF;IAC1E,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAI5B,mFAAmF;IAC7E,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAYlC,wEAAwE;IACxE,kBAAkB,IAAI,IAAI;IAQ1B,sHAAsH;IAC/G,mCAAmC,IACvC,WAAW,CAAC,kBAAkB,CAAC,GAC/B,SAAS;IAKZ;;;;;OAKG;IACI,UAAU,CAChB,kBAAkB,EAAE,kBAAkB,EACtC,IAAI,EAAE,MAAM,GACV,IAAI;CAeP"}
|
|
@@ -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,13 +34,37 @@ 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
|
}
|
|
34
70
|
//# sourceMappingURL=webSocketProgramAccountSubscriber.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webSocketProgramAccountSubscriber.d.ts","sourceRoot":"","sources":["../../../src/accounts/webSocketProgramAccountSubscriber.ts"],"names":[],"mappings":";;AAAA,OAAO,EAAE,aAAa,EAAE,wBAAwB,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAE7E,OAAO,EACN,UAAU,EACV,OAAO,EACP,gBAAgB,EAChB,YAAY,EACZ,SAAS,EACT,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAG5C,qBAAa,iCAAiC,CAAC,CAAC,CAC/C,YAAW,wBAAwB,CAAC,CAAC,CAAC;IAEtC,gBAAgB,EAAE,MAAM,CAAC;IACzB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAAa;IACzD,OAAO,EAAE,eAAe,CAAC;IACzB,YAAY,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,KAAK,CAAC,CAAC;IACrD,OAAO,CAAC,SAAS,CAAC,CAKR;IACV,IAAI,QAAQ,IAAI,CACf,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,CAAC,EACP,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,MAAM,KACV,IAAI,CAKR;IACD,IAAI,QAAQ,CACX,QAAQ,EAAE,CACT,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,CAAC,EACP,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,MAAM,KACV,IAAI,EAGT;IACD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,eAAe,UAAS;IACxB,SAAS,CAAC,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC;IAC1C,OAAO,EAAE;QAAE,OAAO,EAAE,YAAY,EAAE,CAAC;QAAC,UAAU,CAAC,EAAE,UAAU,CAAA;KAAE,CAAC;IAE9D,aAAa,UAAS;
|
|
1
|
+
{"version":3,"file":"webSocketProgramAccountSubscriber.d.ts","sourceRoot":"","sources":["../../../src/accounts/webSocketProgramAccountSubscriber.ts"],"names":[],"mappings":";;AAAA,OAAO,EAAE,aAAa,EAAE,wBAAwB,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAE7E,OAAO,EACN,UAAU,EACV,OAAO,EACP,gBAAgB,EAChB,YAAY,EACZ,SAAS,EACT,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAG5C;;;;;;;;;;;GAWG;AACH,qBAAa,iCAAiC,CAAC,CAAC,CAC/C,YAAW,wBAAwB,CAAC,CAAC,CAAC;IAEtC,gBAAgB,EAAE,MAAM,CAAC;IACzB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAAa;IACzD,OAAO,EAAE,eAAe,CAAC;IACzB,YAAY,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,KAAK,CAAC,CAAC;IACrD,OAAO,CAAC,SAAS,CAAC,CAKR;IACV,IAAI,QAAQ,IAAI,CACf,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,CAAC,EACP,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,MAAM,KACV,IAAI,CAKR;IACD,IAAI,QAAQ,CACX,QAAQ,EAAE,CACT,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,CAAC,EACP,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,MAAM,KACV,IAAI,EAGT;IACD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,eAAe,UAAS;IACxB,SAAS,CAAC,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC;IAC1C,OAAO,EAAE;QAAE,OAAO,EAAE,YAAY,EAAE,CAAC;QAAC,UAAU,CAAC,EAAE,UAAU,CAAA;KAAE,CAAC;IAE9D,aAAa,UAAS;IAEtB;;;;;;;OAOG;gBAEF,gBAAgB,EAAE,MAAM,EACxB,oBAAoB,EAAE,MAAM,EAC5B,OAAO,EAAE,eAAe,EACxB,cAAc,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,KAAK,CAAC,EACtD,OAAO,GAAE;QAAE,OAAO,EAAE,YAAY,EAAE,CAAC;QAAC,UAAU,CAAC,EAAE,UAAU,CAAA;KAE1D,EACD,SAAS,CAAC,EAAE,SAAS;IAmBtB;;;;;OAKG;IACG,SAAS,CACd,QAAQ,EAAE,CACT,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,CAAC,EACP,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,MAAM,KACV,IAAI,GACP,OAAO,CAAC,IAAI,CAAC;IA8BhB,SAAS,CAAC,UAAU,IAAI,IAAI;IA0B5B;;;;;OAKG;IACH,iBAAiB,CAChB,OAAO,EAAE,OAAO,EAChB,gBAAgB,EAAE,gBAAgB,GAChC,IAAI;IAqCP;;;OAGG;IACH,WAAW,CAAC,OAAO,UAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;CAqB3C"}
|