@velocity-exchange/sdk 0.2.5 → 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 +93 -0
- package/README.md +3 -3
- 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 +2139 -5
- package/lib/browser/adminClient.js +2173 -11
- 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 +50 -1
- package/lib/browser/idl/velocity.json +50 -1
- 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 +92 -0
- package/lib/browser/math/exchangeStatus.js +111 -1
- 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 -7
- package/lib/browser/math/orders.js +133 -18
- 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 +32 -1
- 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 +129 -7
- 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 +67 -2
- 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/swift/swiftOrderSubscriber.js +2 -2
- package/lib/browser/tokenFaucet.d.ts +2 -2
- package/lib/browser/tokenFaucet.js +11 -4
- 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 +786 -13
- package/lib/browser/types.js +133 -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 +3323 -216
- package/lib/browser/velocityClient.js +3428 -249
- 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 +2139 -5
- package/lib/node/adminClient.d.ts.map +1 -1
- package/lib/node/adminClient.js +2173 -11
- 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 +50 -1
- package/lib/node/idl/velocity.d.ts.map +1 -1
- package/lib/node/idl/velocity.json +50 -1
- 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 +92 -0
- package/lib/node/math/exchangeStatus.d.ts.map +1 -1
- package/lib/node/math/exchangeStatus.js +111 -1
- 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 -7
- package/lib/node/math/orders.d.ts.map +1 -1
- package/lib/node/math/orders.js +133 -18
- 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 +32 -1
- 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 +129 -7
- 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 +67 -2
- 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/swift/swiftOrderSubscriber.js +2 -2
- package/lib/node/tokenFaucet.d.ts +2 -2
- package/lib/node/tokenFaucet.d.ts.map +1 -1
- package/lib/node/tokenFaucet.js +11 -4
- 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 +786 -13
- package/lib/node/types.d.ts.map +1 -1
- package/lib/node/types.js +133 -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 +3323 -216
- package/lib/node/velocityClient.d.ts.map +1 -1
- package/lib/node/velocityClient.js +3428 -249
- 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 +2184 -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 +50 -1
- package/src/idl/velocity.ts +50 -1
- 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 +125 -0
- 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 +144 -18
- 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 +32 -1
- 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 +131 -7
- 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 +74 -2
- 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/swift/swiftOrderSubscriber.ts +2 -2
- package/src/tokenFaucet.ts +10 -7
- 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 +783 -22
- 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 +3456 -254
- 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/helpers.ts +1 -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
|
@@ -2,14 +2,29 @@
|
|
|
2
2
|
/// <reference types="node" />
|
|
3
3
|
import { BulkAccountLoader } from './bulkAccountLoader';
|
|
4
4
|
import { Commitment, Connection, PublicKey } from '@solana/web3.js';
|
|
5
|
+
/**
|
|
6
|
+
* `BulkAccountLoader` variant where each account can be polled at its own cadence instead of a
|
|
7
|
+
* single shared `pollingFrequency`. Overrides the base class's single `setInterval` with a
|
|
8
|
+
* per-account `accountFrequencies` map: `handleAccountLoading()` only includes an account in a
|
|
9
|
+
* given tick if `Date.now() - lastPollingTime >= frequency` for that account, then delegates to
|
|
10
|
+
* the inherited chunked `loadChunk` for the actual `getMultipleAccounts` batch. The interval
|
|
11
|
+
* itself always runs at the fastest frequency across all registered accounts (see `startPolling`),
|
|
12
|
+
* so slower accounts simply get skipped on ticks that fire before they're due.
|
|
13
|
+
*/
|
|
5
14
|
export declare class CustomizedCadenceBulkAccountLoader extends BulkAccountLoader {
|
|
6
15
|
private customIntervalId;
|
|
7
16
|
private currentPollingFrequency;
|
|
8
17
|
private accountFrequencies;
|
|
9
18
|
private lastPollingTimes;
|
|
10
19
|
private defaultPollingFrequency;
|
|
20
|
+
/**
|
|
21
|
+
* @param connection Connection used for the batched `getMultipleAccounts` polls.
|
|
22
|
+
* @param commitment Commitment level applied to every poll.
|
|
23
|
+
* @param defaultPollingFrequency Polling cadence in ms (see base `BulkAccountLoader`) used for any account added without an explicit `customPollingFrequency`, and as the floor when computing the shared interval in `startPolling`.
|
|
24
|
+
*/
|
|
11
25
|
constructor(connection: Connection, commitment: Commitment, defaultPollingFrequency: number);
|
|
12
26
|
private getAccountsToLoad;
|
|
27
|
+
/** Immediately runs one due-account loading pass, bypassing the interval timer. Unlike the base class's `load()`, this does not force-load every registered account — only those currently due per their own cadence. */
|
|
13
28
|
load(): Promise<void>;
|
|
14
29
|
private handleAccountLoading;
|
|
15
30
|
/**
|
|
@@ -36,10 +51,32 @@ export declare class CustomizedCadenceBulkAccountLoader extends BulkAccountLoade
|
|
|
36
51
|
* 4. Automatically restart polling if this account needs a faster frequency than existing accounts
|
|
37
52
|
*/
|
|
38
53
|
addAccount(publicKey: PublicKey, callback: (buffer: Buffer, slot: number) => void, customPollingFrequency?: number): Promise<string>;
|
|
54
|
+
/**
|
|
55
|
+
* Unregisters a callback previously returned by `addAccount`. Once an account has no
|
|
56
|
+
* remaining callbacks, its cached buffer/slot and cadence bookkeeping (`accountFrequencies`,
|
|
57
|
+
* `lastPollingTimes`) are dropped; if no accounts remain at all, polling stops entirely,
|
|
58
|
+
* otherwise polling is restarted in case the removed account held the fastest cadence.
|
|
59
|
+
* @param publicKey Account the callback was registered against.
|
|
60
|
+
* @param callbackId Id returned by `addAccount`.
|
|
61
|
+
*/
|
|
39
62
|
removeAccount(publicKey: PublicKey, callbackId: string): void;
|
|
63
|
+
/** Returns the polling cadence in ms currently set for `publicKey` (custom or default), or `null` if the account isn't registered. */
|
|
40
64
|
getAccountCadence(publicKey: PublicKey): number | null;
|
|
65
|
+
/**
|
|
66
|
+
* Starts the shared interval timer, ticking at the fastest cadence among all registered
|
|
67
|
+
* accounts (or `defaultPollingFrequency` if none are registered). Each tick runs
|
|
68
|
+
* `handleAccountLoading()`, which loads only the accounts due at that moment. A no-op if
|
|
69
|
+
* already running; call `stopPolling()` first to pick up a new minimum frequency.
|
|
70
|
+
*/
|
|
41
71
|
startPolling(): void;
|
|
72
|
+
/** Stops the shared interval timer (and the base class's, via `super.stopPolling()`) and clears `lastPollingTimes` so every account is treated as due again once polling restarts. */
|
|
42
73
|
stopPolling(): void;
|
|
74
|
+
/**
|
|
75
|
+
* Clears all per-account cadence bookkeeping. Because `getAccountsToLoad()` only considers
|
|
76
|
+
* accounts with an entry in `accountFrequencies`, this stops polling for every registered
|
|
77
|
+
* account until a cadence is re-established via `setCustomPollingFrequency` or `addAccount`.
|
|
78
|
+
* Registered accounts/callbacks themselves are untouched.
|
|
79
|
+
*/
|
|
43
80
|
clearAccountFrequencies(): void;
|
|
44
81
|
}
|
|
45
82
|
//# sourceMappingURL=customizedCadenceBulkAccountLoader.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"customizedCadenceBulkAccountLoader.d.ts","sourceRoot":"","sources":["../../../src/accounts/customizedCadenceBulkAccountLoader.ts"],"names":[],"mappings":";;AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAGpE,qBAAa,kCAAmC,SAAQ,iBAAiB;IACxE,OAAO,CAAC,gBAAgB,CAAwB;IAChD,OAAO,CAAC,uBAAuB,CAAgB;IAC/C,OAAO,CAAC,kBAAkB,CAAsB;IAChD,OAAO,CAAC,gBAAgB,CAAsB;IAC9C,OAAO,CAAC,uBAAuB,CAAS;
|
|
1
|
+
{"version":3,"file":"customizedCadenceBulkAccountLoader.d.ts","sourceRoot":"","sources":["../../../src/accounts/customizedCadenceBulkAccountLoader.ts"],"names":[],"mappings":";;AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAGpE;;;;;;;;GAQG;AACH,qBAAa,kCAAmC,SAAQ,iBAAiB;IACxE,OAAO,CAAC,gBAAgB,CAAwB;IAChD,OAAO,CAAC,uBAAuB,CAAgB;IAC/C,OAAO,CAAC,kBAAkB,CAAsB;IAChD,OAAO,CAAC,gBAAgB,CAAsB;IAC9C,OAAO,CAAC,uBAAuB,CAAS;IAExC;;;;OAIG;gBAEF,UAAU,EAAE,UAAU,EACtB,UAAU,EAAE,UAAU,EACtB,uBAAuB,EAAE,MAAM;IAUhC,OAAO,CAAC,iBAAiB;IAwBzB,yNAAyN;IAC5M,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;YAIpB,oBAAoB;IAiBlC;;;;;OAKG;IACI,yBAAyB,CAC/B,SAAS,EAAE,SAAS,EACpB,YAAY,EAAE,MAAM,GAClB,IAAI;IAOP,OAAO,CAAC,sBAAsB;IAW9B;;;;;;;;;;;;;;OAcG;IACU,UAAU,CACtB,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,EAChD,sBAAsB,CAAC,EAAE,MAAM,GAC7B,OAAO,CAAC,MAAM,CAAC;IAmClB;;;;;;;OAOG;IACI,aAAa,CAAC,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI;IAuBpE,sIAAsI;IAC/H,iBAAiB,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM,GAAG,IAAI;IAK7D;;;;;OAKG;IACI,YAAY,IAAI,IAAI;IAmB3B,sLAAsL;IAC/K,WAAW,IAAI,IAAI;IAW1B;;;;;OAKG;IACI,uBAAuB,IAAI,IAAI;CAGtC"}
|
|
@@ -4,7 +4,21 @@ exports.CustomizedCadenceBulkAccountLoader = void 0;
|
|
|
4
4
|
const numericConstants_1 = require("../constants/numericConstants");
|
|
5
5
|
const bulkAccountLoader_1 = require("./bulkAccountLoader");
|
|
6
6
|
const uuid_1 = require("uuid");
|
|
7
|
+
/**
|
|
8
|
+
* `BulkAccountLoader` variant where each account can be polled at its own cadence instead of a
|
|
9
|
+
* single shared `pollingFrequency`. Overrides the base class's single `setInterval` with a
|
|
10
|
+
* per-account `accountFrequencies` map: `handleAccountLoading()` only includes an account in a
|
|
11
|
+
* given tick if `Date.now() - lastPollingTime >= frequency` for that account, then delegates to
|
|
12
|
+
* the inherited chunked `loadChunk` for the actual `getMultipleAccounts` batch. The interval
|
|
13
|
+
* itself always runs at the fastest frequency across all registered accounts (see `startPolling`),
|
|
14
|
+
* so slower accounts simply get skipped on ticks that fire before they're due.
|
|
15
|
+
*/
|
|
7
16
|
class CustomizedCadenceBulkAccountLoader extends bulkAccountLoader_1.BulkAccountLoader {
|
|
17
|
+
/**
|
|
18
|
+
* @param connection Connection used for the batched `getMultipleAccounts` polls.
|
|
19
|
+
* @param commitment Commitment level applied to every poll.
|
|
20
|
+
* @param defaultPollingFrequency Polling cadence in ms (see base `BulkAccountLoader`) used for any account added without an explicit `customPollingFrequency`, and as the floor when computing the shared interval in `startPolling`.
|
|
21
|
+
*/
|
|
8
22
|
constructor(connection, commitment, defaultPollingFrequency) {
|
|
9
23
|
super(connection, commitment, defaultPollingFrequency);
|
|
10
24
|
this.customIntervalId = null;
|
|
@@ -28,6 +42,7 @@ class CustomizedCadenceBulkAccountLoader extends bulkAccountLoader_1.BulkAccount
|
|
|
28
42
|
}
|
|
29
43
|
return accountsToLoad;
|
|
30
44
|
}
|
|
45
|
+
/** Immediately runs one due-account loading pass, bypassing the interval timer. Unlike the base class's `load()`, this does not force-load every registered account — only those currently due per their own cadence. */
|
|
31
46
|
async load() {
|
|
32
47
|
return this.handleAccountLoading();
|
|
33
48
|
}
|
|
@@ -100,6 +115,14 @@ class CustomizedCadenceBulkAccountLoader extends bulkAccountLoader_1.BulkAccount
|
|
|
100
115
|
this.restartPollingIfNeeded(updatedFrequency);
|
|
101
116
|
return callbackId;
|
|
102
117
|
}
|
|
118
|
+
/**
|
|
119
|
+
* Unregisters a callback previously returned by `addAccount`. Once an account has no
|
|
120
|
+
* remaining callbacks, its cached buffer/slot and cadence bookkeeping (`accountFrequencies`,
|
|
121
|
+
* `lastPollingTimes`) are dropped; if no accounts remain at all, polling stops entirely,
|
|
122
|
+
* otherwise polling is restarted in case the removed account held the fastest cadence.
|
|
123
|
+
* @param publicKey Account the callback was registered against.
|
|
124
|
+
* @param callbackId Id returned by `addAccount`.
|
|
125
|
+
*/
|
|
103
126
|
removeAccount(publicKey, callbackId) {
|
|
104
127
|
const existingAccountToLoad = this.accountsToLoad.get(publicKey.toString());
|
|
105
128
|
if (existingAccountToLoad) {
|
|
@@ -120,10 +143,17 @@ class CustomizedCadenceBulkAccountLoader extends bulkAccountLoader_1.BulkAccount
|
|
|
120
143
|
this.restartPollingIfNeeded(this.defaultPollingFrequency);
|
|
121
144
|
}
|
|
122
145
|
}
|
|
146
|
+
/** Returns the polling cadence in ms currently set for `publicKey` (custom or default), or `null` if the account isn't registered. */
|
|
123
147
|
getAccountCadence(publicKey) {
|
|
124
148
|
const key = publicKey.toBase58();
|
|
125
149
|
return this.accountFrequencies.get(key) || null;
|
|
126
150
|
}
|
|
151
|
+
/**
|
|
152
|
+
* Starts the shared interval timer, ticking at the fastest cadence among all registered
|
|
153
|
+
* accounts (or `defaultPollingFrequency` if none are registered). Each tick runs
|
|
154
|
+
* `handleAccountLoading()`, which loads only the accounts due at that moment. A no-op if
|
|
155
|
+
* already running; call `stopPolling()` first to pick up a new minimum frequency.
|
|
156
|
+
*/
|
|
127
157
|
startPolling() {
|
|
128
158
|
if (this.customIntervalId) {
|
|
129
159
|
return;
|
|
@@ -136,6 +166,7 @@ class CustomizedCadenceBulkAccountLoader extends bulkAccountLoader_1.BulkAccount
|
|
|
136
166
|
});
|
|
137
167
|
}, minFrequency);
|
|
138
168
|
}
|
|
169
|
+
/** Stops the shared interval timer (and the base class's, via `super.stopPolling()`) and clears `lastPollingTimes` so every account is treated as due again once polling restarts. */
|
|
139
170
|
stopPolling() {
|
|
140
171
|
super.stopPolling();
|
|
141
172
|
if (this.customIntervalId) {
|
|
@@ -145,6 +176,12 @@ class CustomizedCadenceBulkAccountLoader extends bulkAccountLoader_1.BulkAccount
|
|
|
145
176
|
}
|
|
146
177
|
this.lastPollingTimes.clear();
|
|
147
178
|
}
|
|
179
|
+
/**
|
|
180
|
+
* Clears all per-account cadence bookkeeping. Because `getAccountsToLoad()` only considers
|
|
181
|
+
* accounts with an entry in `accountFrequencies`, this stops polling for every registered
|
|
182
|
+
* account until a cadence is re-established via `setCustomPollingFrequency` or `addAccount`.
|
|
183
|
+
* Registered accounts/callbacks themselves are untouched.
|
|
184
|
+
*/
|
|
148
185
|
clearAccountFrequencies() {
|
|
149
186
|
this.accountFrequencies.clear();
|
|
150
187
|
}
|
|
@@ -3,16 +3,73 @@
|
|
|
3
3
|
import { Connection, PublicKey } from '@solana/web3.js';
|
|
4
4
|
import { RevenueShareAccount, RevenueShareEscrowAccount, UserAccount, UserStatsAccount } from '../types';
|
|
5
5
|
import { VelocityProgram } from '../config';
|
|
6
|
+
/**
|
|
7
|
+
* Fetches every `UserAccount` (sub-account) belonging to `authority`, from sub-account id `0`
|
|
8
|
+
* up to `limit - 1`, in a single batched `getMultipleAccountsInfo` RPC call.
|
|
9
|
+
* @param connection Connection used for the batched fetch.
|
|
10
|
+
* @param program Anchor program used to derive PDAs and decode account data.
|
|
11
|
+
* @param authority Wallet/authority pubkey whose sub-accounts to fetch.
|
|
12
|
+
* @param limit Number of sub-account ids to check, starting at 0. Defaults to 8.
|
|
13
|
+
* @returns One entry per sub-account id in order; `undefined` where no account exists at that id.
|
|
14
|
+
*/
|
|
6
15
|
export declare function fetchUserAccounts(connection: Connection, program: VelocityProgram, authority: PublicKey, limit?: number): Promise<(UserAccount | undefined)[]>;
|
|
16
|
+
/**
|
|
17
|
+
* Fetches and decodes a specific list of `UserAccount` pubkeys in one batched
|
|
18
|
+
* `getMultipleAccountsInfo` RPC call. Unlike `fetchUserAccounts`, the caller supplies the exact
|
|
19
|
+
* addresses rather than deriving them by sub-account id.
|
|
20
|
+
* @param connection Connection used for the batched fetch.
|
|
21
|
+
* @param program Anchor program used to decode account data.
|
|
22
|
+
* @param userAccountPublicKeys Addresses to fetch, in order.
|
|
23
|
+
* @returns One entry per input pubkey, in the same order; `undefined` where no account exists at that address.
|
|
24
|
+
*/
|
|
7
25
|
export declare function fetchUserAccountsUsingKeys(connection: Connection, program: VelocityProgram, userAccountPublicKeys: PublicKey[]): Promise<(UserAccount | undefined)[]>;
|
|
26
|
+
/**
|
|
27
|
+
* Fetches and decodes the `UserStatsAccount` for `authority`, if one exists.
|
|
28
|
+
* @param connection Connection used for the fetch.
|
|
29
|
+
* @param program Anchor program used to derive the PDA and decode account data.
|
|
30
|
+
* @param authority Wallet/authority pubkey the stats account belongs to.
|
|
31
|
+
* @returns The decoded account, or `undefined` if it hasn't been initialized on-chain.
|
|
32
|
+
*/
|
|
8
33
|
export declare function fetchUserStatsAccount(connection: Connection, program: VelocityProgram, authority: PublicKey): Promise<UserStatsAccount | undefined>;
|
|
34
|
+
/**
|
|
35
|
+
* Fetches and decodes the `RevenueShareAccount` for `authority` (tracks referral/builder revenue
|
|
36
|
+
* share balances), if one exists.
|
|
37
|
+
* @param connection Connection used for the fetch.
|
|
38
|
+
* @param program Anchor program used to derive the PDA and decode account data.
|
|
39
|
+
* @param authority Wallet/authority pubkey the revenue share account belongs to.
|
|
40
|
+
* @returns The decoded account, or `null` if it hasn't been initialized on-chain.
|
|
41
|
+
*/
|
|
9
42
|
export declare function fetchRevenueShareAccount(connection: Connection, program: VelocityProgram, authority: PublicKey): Promise<RevenueShareAccount | null>;
|
|
43
|
+
/**
|
|
44
|
+
* Fetches and decodes the `RevenueShareEscrowAccount` for `authority` (holds escrowed
|
|
45
|
+
* revenue-share amounts pending distribution), if one exists.
|
|
46
|
+
* @param connection Connection used for the fetch.
|
|
47
|
+
* @param program Anchor program used to derive the PDA and decode account data.
|
|
48
|
+
* @param authority Wallet/authority pubkey the escrow account belongs to.
|
|
49
|
+
* @returns The decoded account, or `null` if it hasn't been initialized on-chain.
|
|
50
|
+
*/
|
|
10
51
|
export declare function fetchRevenueShareEscrowAccount(connection: Connection, program: VelocityProgram, authority: PublicKey): Promise<RevenueShareEscrowAccount | null>;
|
|
52
|
+
/** Options accepted by `fetchAccount`/`fetchAccounts`. */
|
|
11
53
|
export type FetchAccountOptions = {
|
|
54
|
+
/** Commitment level for the underlying `getAccountInfo`/`getMultipleAccountsInfo` call; defaults to the connection's configured commitment if omitted. */
|
|
12
55
|
commitment?: Parameters<Connection['getAccountInfo']>[1];
|
|
13
56
|
};
|
|
14
|
-
/**
|
|
57
|
+
/**
|
|
58
|
+
* Fetches an account's raw data buffer without decoding it (no Anchor coder involved), for
|
|
59
|
+
* callers that only need the bytes.
|
|
60
|
+
* @param connection Connection used for the fetch.
|
|
61
|
+
* @param publicKey Account address to fetch.
|
|
62
|
+
* @param opts Optional commitment override.
|
|
63
|
+
* @returns The raw account data, or `null` if the account doesn't exist.
|
|
64
|
+
*/
|
|
15
65
|
export declare function fetchAccount(connection: Connection, publicKey: PublicKey, opts?: FetchAccountOptions): Promise<Buffer | null>;
|
|
16
|
-
/**
|
|
66
|
+
/**
|
|
67
|
+
* Batch variant of `fetchAccount` — fetches raw data buffers for multiple accounts in one
|
|
68
|
+
* `getMultipleAccountsInfo` call.
|
|
69
|
+
* @param connection Connection used for the fetch.
|
|
70
|
+
* @param publicKeys Account addresses to fetch, in order.
|
|
71
|
+
* @param opts Optional commitment override.
|
|
72
|
+
* @returns One entry per input pubkey, in the same order; `null` where the account doesn't exist.
|
|
73
|
+
*/
|
|
17
74
|
export declare function fetchAccounts(connection: Connection, publicKeys: PublicKey[], opts?: FetchAccountOptions): Promise<(Buffer | null)[]>;
|
|
18
75
|
//# sourceMappingURL=fetch.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetch.d.ts","sourceRoot":"","sources":["../../../src/accounts/fetch.ts"],"names":[],"mappings":";;AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EACN,mBAAmB,EACnB,yBAAyB,EACzB,WAAW,EACX,gBAAgB,EAChB,MAAM,UAAU,CAAC;AAOlB,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAE5C,wBAAsB,iBAAiB,CACtC,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,eAAe,EACxB,SAAS,EAAE,SAAS,EACpB,KAAK,SAAI,GACP,OAAO,CAAC,CAAC,WAAW,GAAG,SAAS,CAAC,EAAE,CAAC,CAStC;AAED,wBAAsB,0BAA0B,CAC/C,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,eAAe,EACxB,qBAAqB,EAAE,SAAS,EAAE,GAChC,OAAO,CAAC,CAAC,WAAW,GAAG,SAAS,CAAC,EAAE,CAAC,CAetC;AAED,wBAAsB,qBAAqB,CAC1C,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,eAAe,EACxB,SAAS,EAAE,SAAS,GAClB,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC,CAgBvC;AAED,wBAAsB,wBAAwB,CAC7C,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,eAAe,EACxB,SAAS,EAAE,SAAS,GAClB,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC,CAarC;AAED,wBAAsB,8BAA8B,CACnD,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,eAAe,EACxB,SAAS,EAAE,SAAS,GAClB,OAAO,CAAC,yBAAyB,GAAG,IAAI,CAAC,CAkB3C;AAED,MAAM,MAAM,mBAAmB,GAAG;IACjC,UAAU,CAAC,EAAE,UAAU,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CACzD,CAAC;AAEF
|
|
1
|
+
{"version":3,"file":"fetch.d.ts","sourceRoot":"","sources":["../../../src/accounts/fetch.ts"],"names":[],"mappings":";;AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EACN,mBAAmB,EACnB,yBAAyB,EACzB,WAAW,EACX,gBAAgB,EAChB,MAAM,UAAU,CAAC;AAOlB,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAE5C;;;;;;;;GAQG;AACH,wBAAsB,iBAAiB,CACtC,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,eAAe,EACxB,SAAS,EAAE,SAAS,EACpB,KAAK,SAAI,GACP,OAAO,CAAC,CAAC,WAAW,GAAG,SAAS,CAAC,EAAE,CAAC,CAStC;AAED;;;;;;;;GAQG;AACH,wBAAsB,0BAA0B,CAC/C,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,eAAe,EACxB,qBAAqB,EAAE,SAAS,EAAE,GAChC,OAAO,CAAC,CAAC,WAAW,GAAG,SAAS,CAAC,EAAE,CAAC,CAetC;AAED;;;;;;GAMG;AACH,wBAAsB,qBAAqB,CAC1C,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,eAAe,EACxB,SAAS,EAAE,SAAS,GAClB,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC,CAgBvC;AAED;;;;;;;GAOG;AACH,wBAAsB,wBAAwB,CAC7C,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,eAAe,EACxB,SAAS,EAAE,SAAS,GAClB,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC,CAarC;AAED;;;;;;;GAOG;AACH,wBAAsB,8BAA8B,CACnD,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,eAAe,EACxB,SAAS,EAAE,SAAS,GAClB,OAAO,CAAC,yBAAyB,GAAG,IAAI,CAAC,CAkB3C;AAED,0DAA0D;AAC1D,MAAM,MAAM,mBAAmB,GAAG;IACjC,0JAA0J;IAC1J,UAAU,CAAC,EAAE,UAAU,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CACzD,CAAC;AAEF;;;;;;;GAOG;AACH,wBAAsB,YAAY,CACjC,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,SAAS,EACpB,IAAI,CAAC,EAAE,mBAAmB,GACxB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAGxB;AAED;;;;;;;GAOG;AACH,wBAAsB,aAAa,CAClC,UAAU,EAAE,UAAU,EACtB,UAAU,EAAE,SAAS,EAAE,EACvB,IAAI,CAAC,EAAE,mBAAmB,GACxB,OAAO,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,CAM5B"}
|
|
@@ -2,6 +2,15 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.fetchAccounts = exports.fetchAccount = exports.fetchRevenueShareEscrowAccount = exports.fetchRevenueShareAccount = exports.fetchUserStatsAccount = exports.fetchUserAccountsUsingKeys = exports.fetchUserAccounts = void 0;
|
|
4
4
|
const pda_1 = require("../addresses/pda");
|
|
5
|
+
/**
|
|
6
|
+
* Fetches every `UserAccount` (sub-account) belonging to `authority`, from sub-account id `0`
|
|
7
|
+
* up to `limit - 1`, in a single batched `getMultipleAccountsInfo` RPC call.
|
|
8
|
+
* @param connection Connection used for the batched fetch.
|
|
9
|
+
* @param program Anchor program used to derive PDAs and decode account data.
|
|
10
|
+
* @param authority Wallet/authority pubkey whose sub-accounts to fetch.
|
|
11
|
+
* @param limit Number of sub-account ids to check, starting at 0. Defaults to 8.
|
|
12
|
+
* @returns One entry per sub-account id in order; `undefined` where no account exists at that id.
|
|
13
|
+
*/
|
|
5
14
|
async function fetchUserAccounts(connection, program, authority, limit = 8) {
|
|
6
15
|
const userAccountPublicKeys = new Array();
|
|
7
16
|
for (let i = 0; i < limit; i++) {
|
|
@@ -10,6 +19,15 @@ async function fetchUserAccounts(connection, program, authority, limit = 8) {
|
|
|
10
19
|
return fetchUserAccountsUsingKeys(connection, program, userAccountPublicKeys);
|
|
11
20
|
}
|
|
12
21
|
exports.fetchUserAccounts = fetchUserAccounts;
|
|
22
|
+
/**
|
|
23
|
+
* Fetches and decodes a specific list of `UserAccount` pubkeys in one batched
|
|
24
|
+
* `getMultipleAccountsInfo` RPC call. Unlike `fetchUserAccounts`, the caller supplies the exact
|
|
25
|
+
* addresses rather than deriving them by sub-account id.
|
|
26
|
+
* @param connection Connection used for the batched fetch.
|
|
27
|
+
* @param program Anchor program used to decode account data.
|
|
28
|
+
* @param userAccountPublicKeys Addresses to fetch, in order.
|
|
29
|
+
* @returns One entry per input pubkey, in the same order; `undefined` where no account exists at that address.
|
|
30
|
+
*/
|
|
13
31
|
async function fetchUserAccountsUsingKeys(connection, program, userAccountPublicKeys) {
|
|
14
32
|
const accountInfos = await connection.getMultipleAccountsInfo(userAccountPublicKeys, 'confirmed');
|
|
15
33
|
return accountInfos.map((accountInfo) => {
|
|
@@ -20,6 +38,13 @@ async function fetchUserAccountsUsingKeys(connection, program, userAccountPublic
|
|
|
20
38
|
});
|
|
21
39
|
}
|
|
22
40
|
exports.fetchUserAccountsUsingKeys = fetchUserAccountsUsingKeys;
|
|
41
|
+
/**
|
|
42
|
+
* Fetches and decodes the `UserStatsAccount` for `authority`, if one exists.
|
|
43
|
+
* @param connection Connection used for the fetch.
|
|
44
|
+
* @param program Anchor program used to derive the PDA and decode account data.
|
|
45
|
+
* @param authority Wallet/authority pubkey the stats account belongs to.
|
|
46
|
+
* @returns The decoded account, or `undefined` if it hasn't been initialized on-chain.
|
|
47
|
+
*/
|
|
23
48
|
async function fetchUserStatsAccount(connection, program, authority) {
|
|
24
49
|
const userStatsPublicKey = (0, pda_1.getUserStatsAccountPublicKey)(program.programId, authority);
|
|
25
50
|
const accountInfo = await connection.getAccountInfo(userStatsPublicKey, 'confirmed');
|
|
@@ -28,6 +53,14 @@ async function fetchUserStatsAccount(connection, program, authority) {
|
|
|
28
53
|
: undefined;
|
|
29
54
|
}
|
|
30
55
|
exports.fetchUserStatsAccount = fetchUserStatsAccount;
|
|
56
|
+
/**
|
|
57
|
+
* Fetches and decodes the `RevenueShareAccount` for `authority` (tracks referral/builder revenue
|
|
58
|
+
* share balances), if one exists.
|
|
59
|
+
* @param connection Connection used for the fetch.
|
|
60
|
+
* @param program Anchor program used to derive the PDA and decode account data.
|
|
61
|
+
* @param authority Wallet/authority pubkey the revenue share account belongs to.
|
|
62
|
+
* @returns The decoded account, or `null` if it hasn't been initialized on-chain.
|
|
63
|
+
*/
|
|
31
64
|
async function fetchRevenueShareAccount(connection, program, authority) {
|
|
32
65
|
const revenueShareAccountPublicKey = (0, pda_1.getRevenueShareAccountPublicKey)(program.programId, authority);
|
|
33
66
|
const accountInfo = await connection.getAccountInfo(revenueShareAccountPublicKey);
|
|
@@ -36,6 +69,14 @@ async function fetchRevenueShareAccount(connection, program, authority) {
|
|
|
36
69
|
return program.account.revenueShare.coder.accounts.decode('revenueShare', accountInfo.data);
|
|
37
70
|
}
|
|
38
71
|
exports.fetchRevenueShareAccount = fetchRevenueShareAccount;
|
|
72
|
+
/**
|
|
73
|
+
* Fetches and decodes the `RevenueShareEscrowAccount` for `authority` (holds escrowed
|
|
74
|
+
* revenue-share amounts pending distribution), if one exists.
|
|
75
|
+
* @param connection Connection used for the fetch.
|
|
76
|
+
* @param program Anchor program used to derive the PDA and decode account data.
|
|
77
|
+
* @param authority Wallet/authority pubkey the escrow account belongs to.
|
|
78
|
+
* @returns The decoded account, or `null` if it hasn't been initialized on-chain.
|
|
79
|
+
*/
|
|
39
80
|
async function fetchRevenueShareEscrowAccount(connection, program, authority) {
|
|
40
81
|
const revenueShareEscrowPubKey = (0, pda_1.getRevenueShareEscrowAccountPublicKey)(program.programId, authority);
|
|
41
82
|
const escrow = await connection.getAccountInfo(revenueShareEscrowPubKey);
|
|
@@ -45,14 +86,28 @@ async function fetchRevenueShareEscrowAccount(connection, program, authority) {
|
|
|
45
86
|
return escrowAccount;
|
|
46
87
|
}
|
|
47
88
|
exports.fetchRevenueShareEscrowAccount = fetchRevenueShareEscrowAccount;
|
|
48
|
-
/**
|
|
89
|
+
/**
|
|
90
|
+
* Fetches an account's raw data buffer without decoding it (no Anchor coder involved), for
|
|
91
|
+
* callers that only need the bytes.
|
|
92
|
+
* @param connection Connection used for the fetch.
|
|
93
|
+
* @param publicKey Account address to fetch.
|
|
94
|
+
* @param opts Optional commitment override.
|
|
95
|
+
* @returns The raw account data, or `null` if the account doesn't exist.
|
|
96
|
+
*/
|
|
49
97
|
async function fetchAccount(connection, publicKey, opts) {
|
|
50
98
|
var _a;
|
|
51
99
|
const info = await connection.getAccountInfo(publicKey, opts === null || opts === void 0 ? void 0 : opts.commitment);
|
|
52
100
|
return (_a = info === null || info === void 0 ? void 0 : info.data) !== null && _a !== void 0 ? _a : null;
|
|
53
101
|
}
|
|
54
102
|
exports.fetchAccount = fetchAccount;
|
|
55
|
-
/**
|
|
103
|
+
/**
|
|
104
|
+
* Batch variant of `fetchAccount` — fetches raw data buffers for multiple accounts in one
|
|
105
|
+
* `getMultipleAccountsInfo` call.
|
|
106
|
+
* @param connection Connection used for the fetch.
|
|
107
|
+
* @param publicKeys Account addresses to fetch, in order.
|
|
108
|
+
* @param opts Optional commitment override.
|
|
109
|
+
* @returns One entry per input pubkey, in the same order; `null` where the account doesn't exist.
|
|
110
|
+
*/
|
|
56
111
|
async function fetchAccounts(connection, publicKeys, opts) {
|
|
57
112
|
const infos = await connection.getMultipleAccountsInfo(publicKeys, opts === null || opts === void 0 ? void 0 : opts.commitment);
|
|
58
113
|
return infos.map((info) => { var _a; return (_a = info === null || info === void 0 ? void 0 : info.data) !== null && _a !== void 0 ? _a : null; });
|
|
@@ -5,6 +5,13 @@ import { PublicKey } from '@solana/web3.js';
|
|
|
5
5
|
import { VelocityProgram } from '../config';
|
|
6
6
|
import { WebSocketAccountSubscriber } from './webSocketAccountSubscriber';
|
|
7
7
|
import { Client } from '../isomorphic/grpc';
|
|
8
|
+
/**
|
|
9
|
+
* `AccountSubscriber` for a single account, streamed via a gRPC Geyser plugin (Yellowstone or
|
|
10
|
+
* LaserStream, per `GrpcConfigs`) instead of the standard `connection.onAccountChange` WebSocket.
|
|
11
|
+
* Extends `WebSocketAccountSubscriber` to reuse its buffering/decode/resub-timer logic — only the
|
|
12
|
+
* transport (`subscribe`/`unsubscribe`) is replaced. Construct via the static `create` factory,
|
|
13
|
+
* not the constructor directly, since establishing the gRPC client is asynchronous.
|
|
14
|
+
*/
|
|
8
15
|
export declare class grpcAccountSubscriber<T> extends WebSocketAccountSubscriber<T> {
|
|
9
16
|
private client;
|
|
10
17
|
private _stream?;
|
|
@@ -12,8 +19,31 @@ export declare class grpcAccountSubscriber<T> extends WebSocketAccountSubscriber
|
|
|
12
19
|
private commitmentLevel;
|
|
13
20
|
listenerId?: number;
|
|
14
21
|
private constructor();
|
|
22
|
+
/**
|
|
23
|
+
* Creates a gRPC client (or reuses `clientProp`, letting multiple subscribers share one
|
|
24
|
+
* connection) and constructs a `grpcAccountSubscriber`. Does not itself start streaming — call
|
|
25
|
+
* `subscribe()` on the result.
|
|
26
|
+
* @param grpcConfigs gRPC Geyser endpoint/token/commitment config (Yellowstone or LaserStream).
|
|
27
|
+
* @param accountName Anchor account type name (used for logging and, absent `decodeBuffer`, for decoding via the program coder).
|
|
28
|
+
* @param program Anchor program providing the connection and coder.
|
|
29
|
+
* @param accountPublicKey Address of the account to track.
|
|
30
|
+
* @param decodeBuffer Optional custom decode function; defaults to `program.coder.accounts.decode(accountName, buffer)`.
|
|
31
|
+
* @param resubOpts Resubscription watchdog options; omit to disable the inactivity timer.
|
|
32
|
+
* @param clientProp Optional existing gRPC client to reuse instead of creating a new connection.
|
|
33
|
+
*/
|
|
15
34
|
static create<U>(grpcConfigs: GrpcConfigs, accountName: string, program: VelocityProgram, accountPublicKey: PublicKey, decodeBuffer?: (buffer: Buffer) => U, resubOpts?: ResubOpts, clientProp?: Client): Promise<grpcAccountSubscriber<U>>;
|
|
35
|
+
/**
|
|
36
|
+
* Seeds `dataAndSlot` with an initial `fetch()` (if not already set), opens a gRPC subscribe
|
|
37
|
+
* stream filtered to this single account, and writes the subscribe request. Idempotent: a
|
|
38
|
+
* no-op if already subscribed or mid-unsubscribe.
|
|
39
|
+
* @param onChange Invoked with the newly decoded account data on each accepted update.
|
|
40
|
+
*/
|
|
16
41
|
subscribe(onChange: (data: T) => void): Promise<void>;
|
|
42
|
+
/**
|
|
43
|
+
* Writes an empty subscribe request to clear the stream's account filter and cancels any
|
|
44
|
+
* pending resub timeout.
|
|
45
|
+
* @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.
|
|
46
|
+
*/
|
|
17
47
|
unsubscribe(onResub?: boolean): Promise<void>;
|
|
18
48
|
}
|
|
19
49
|
//# sourceMappingURL=grpcAccountSubscriber.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grpcAccountSubscriber.d.ts","sourceRoot":"","sources":["../../../src/accounts/grpcAccountSubscriber.ts"],"names":[],"mappings":";;AAAA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAG5C,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAC1E,OAAO,EACN,MAAM,EAMN,MAAM,oBAAoB,CAAC;AAE5B,qBAAa,qBAAqB,CAAC,CAAC,CAAE,SAAQ,0BAA0B,CAAC,CAAC,CAAC;IAC1E,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAAC,CAAqB;IACrC,OAAO,KAAK,MAAM,GAOjB;IACD,OAAO,CAAC,eAAe,CAAkB;IAClC,UAAU,CAAC,EAAE,MAAM,CAAC;IAE3B,OAAO;
|
|
1
|
+
{"version":3,"file":"grpcAccountSubscriber.d.ts","sourceRoot":"","sources":["../../../src/accounts/grpcAccountSubscriber.ts"],"names":[],"mappings":";;AAAA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAG5C,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAC1E,OAAO,EACN,MAAM,EAMN,MAAM,oBAAoB,CAAC;AAE5B;;;;;;GAMG;AACH,qBAAa,qBAAqB,CAAC,CAAC,CAAE,SAAQ,0BAA0B,CAAC,CAAC,CAAC;IAC1E,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAAC,CAAqB;IACrC,OAAO,KAAK,MAAM,GAOjB;IACD,OAAO,CAAC,eAAe,CAAkB;IAClC,UAAU,CAAC,EAAE,MAAM,CAAC;IAE3B,OAAO;IAcP;;;;;;;;;;;OAWG;WACiB,MAAM,CAAC,CAAC,EAC3B,WAAW,EAAE,WAAW,EACxB,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,MAAM,GACjB,OAAO,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;IAuBpC;;;;;OAKG;IACY,SAAS,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAkFpE;;;;OAIG;IACY,WAAW,CAAC,OAAO,UAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;CAsC1D"}
|
|
@@ -28,6 +28,13 @@ const web3_js_1 = require("@solana/web3.js");
|
|
|
28
28
|
const Buffer = __importStar(require("buffer"));
|
|
29
29
|
const webSocketAccountSubscriber_1 = require("./webSocketAccountSubscriber");
|
|
30
30
|
const grpc_1 = require("../isomorphic/grpc");
|
|
31
|
+
/**
|
|
32
|
+
* `AccountSubscriber` for a single account, streamed via a gRPC Geyser plugin (Yellowstone or
|
|
33
|
+
* LaserStream, per `GrpcConfigs`) instead of the standard `connection.onAccountChange` WebSocket.
|
|
34
|
+
* Extends `WebSocketAccountSubscriber` to reuse its buffering/decode/resub-timer logic — only the
|
|
35
|
+
* transport (`subscribe`/`unsubscribe`) is replaced. Construct via the static `create` factory,
|
|
36
|
+
* not the constructor directly, since establishing the gRPC client is asynchronous.
|
|
37
|
+
*/
|
|
31
38
|
class grpcAccountSubscriber extends webSocketAccountSubscriber_1.WebSocketAccountSubscriber {
|
|
32
39
|
get stream() {
|
|
33
40
|
if (!this._stream) {
|
|
@@ -40,6 +47,18 @@ class grpcAccountSubscriber extends webSocketAccountSubscriber_1.WebSocketAccoun
|
|
|
40
47
|
this.client = client;
|
|
41
48
|
this.commitmentLevel = commitmentLevel;
|
|
42
49
|
}
|
|
50
|
+
/**
|
|
51
|
+
* Creates a gRPC client (or reuses `clientProp`, letting multiple subscribers share one
|
|
52
|
+
* connection) and constructs a `grpcAccountSubscriber`. Does not itself start streaming — call
|
|
53
|
+
* `subscribe()` on the result.
|
|
54
|
+
* @param grpcConfigs gRPC Geyser endpoint/token/commitment config (Yellowstone or LaserStream).
|
|
55
|
+
* @param accountName Anchor account type name (used for logging and, absent `decodeBuffer`, for decoding via the program coder).
|
|
56
|
+
* @param program Anchor program providing the connection and coder.
|
|
57
|
+
* @param accountPublicKey Address of the account to track.
|
|
58
|
+
* @param decodeBuffer Optional custom decode function; defaults to `program.coder.accounts.decode(accountName, buffer)`.
|
|
59
|
+
* @param resubOpts Resubscription watchdog options; omit to disable the inactivity timer.
|
|
60
|
+
* @param clientProp Optional existing gRPC client to reuse instead of creating a new connection.
|
|
61
|
+
*/
|
|
43
62
|
static async create(grpcConfigs, accountName, program, accountPublicKey, decodeBuffer, resubOpts, clientProp) {
|
|
44
63
|
var _a, _b;
|
|
45
64
|
const client = clientProp
|
|
@@ -50,6 +69,12 @@ class grpcAccountSubscriber extends webSocketAccountSubscriber_1.WebSocketAccoun
|
|
|
50
69
|
(_b = grpcConfigs.commitmentLevel) !== null && _b !== void 0 ? _b : grpc_1.CommitmentLevel.CONFIRMED;
|
|
51
70
|
return new grpcAccountSubscriber(client, commitmentLevel, accountName, program, accountPublicKey, decodeBuffer, resubOpts);
|
|
52
71
|
}
|
|
72
|
+
/**
|
|
73
|
+
* Seeds `dataAndSlot` with an initial `fetch()` (if not already set), opens a gRPC subscribe
|
|
74
|
+
* stream filtered to this single account, and writes the subscribe request. Idempotent: a
|
|
75
|
+
* no-op if already subscribed or mid-unsubscribe.
|
|
76
|
+
* @param onChange Invoked with the newly decoded account data on each accepted update.
|
|
77
|
+
*/
|
|
53
78
|
async subscribe(onChange) {
|
|
54
79
|
if (this.listenerId != null || this.isUnsubscribing) {
|
|
55
80
|
return;
|
|
@@ -125,6 +150,11 @@ class grpcAccountSubscriber extends webSocketAccountSubscriber_1.WebSocketAccoun
|
|
|
125
150
|
throw reason;
|
|
126
151
|
});
|
|
127
152
|
}
|
|
153
|
+
/**
|
|
154
|
+
* Writes an empty subscribe request to clear the stream's account filter and cancels any
|
|
155
|
+
* pending resub timeout.
|
|
156
|
+
* @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.
|
|
157
|
+
*/
|
|
128
158
|
async unsubscribe(onResub = false) {
|
|
129
159
|
if (!onResub && this.resubOpts) {
|
|
130
160
|
this.resubOpts.resubTimeoutMs = undefined;
|
|
@@ -3,9 +3,25 @@ import { PublicKey } from '@solana/web3.js';
|
|
|
3
3
|
import { InsuranceFundStake } from '../types';
|
|
4
4
|
import { WebSocketInsuranceFundStakeAccountSubscriber } from './webSocketInsuranceFundStakeAccountSubscriber';
|
|
5
5
|
import { VelocityProgram } from '../config';
|
|
6
|
+
/**
|
|
7
|
+
* `InsuranceFundStakeAccountSubscriber` variant of `WebSocketInsuranceFundStakeAccountSubscriber`
|
|
8
|
+
* that tracks the `InsuranceFundStake` account via a `grpcAccountSubscriber` (gRPC Geyser stream)
|
|
9
|
+
* instead of `connection.onAccountChange`.
|
|
10
|
+
*/
|
|
6
11
|
export declare class grpcInsuranceFundStakeAccountSubscriber extends WebSocketInsuranceFundStakeAccountSubscriber {
|
|
7
12
|
private grpcConfigs;
|
|
13
|
+
/**
|
|
14
|
+
* @param grpcConfigs gRPC Geyser endpoint/token/commitment config (Yellowstone or LaserStream).
|
|
15
|
+
* @param program Anchor program providing the connection and coder.
|
|
16
|
+
* @param insuranceFundStakeAccountPublicKey Address of the `InsuranceFundStake` account to track.
|
|
17
|
+
* @param resubTimeoutMs Resub watchdog timeout (ms) passed to the underlying `grpcAccountSubscriber`.
|
|
18
|
+
*/
|
|
8
19
|
constructor(grpcConfigs: GrpcConfigs, program: VelocityProgram, insuranceFundStakeAccountPublicKey: PublicKey, resubTimeoutMs?: number);
|
|
20
|
+
/**
|
|
21
|
+
* Creates the underlying `grpcAccountSubscriber` and subscribes it. Idempotent: a no-op
|
|
22
|
+
* (returns `true`) if already subscribed.
|
|
23
|
+
* @param insuranceFundStakeAccount Optional pre-fetched account data to seed the subscriber with, skipping the initial RPC fetch.
|
|
24
|
+
*/
|
|
9
25
|
subscribe(insuranceFundStakeAccount?: InsuranceFundStake): Promise<boolean>;
|
|
10
26
|
}
|
|
11
27
|
//# sourceMappingURL=grpcInsuranceFundStakeAccountSubscriber.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grpcInsuranceFundStakeAccountSubscriber.d.ts","sourceRoot":"","sources":["../../../src/accounts/grpcInsuranceFundStakeAccountSubscriber.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,EAAE,4CAA4C,EAAE,MAAM,gDAAgD,CAAC;AAE9G,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAE5C,qBAAa,uCAAwC,SAAQ,4CAA4C;IACxG,OAAO,CAAC,WAAW,CAAc;
|
|
1
|
+
{"version":3,"file":"grpcInsuranceFundStakeAccountSubscriber.d.ts","sourceRoot":"","sources":["../../../src/accounts/grpcInsuranceFundStakeAccountSubscriber.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,EAAE,4CAA4C,EAAE,MAAM,gDAAgD,CAAC;AAE9G,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAE5C;;;;GAIG;AACH,qBAAa,uCAAwC,SAAQ,4CAA4C;IACxG,OAAO,CAAC,WAAW,CAAc;IAEjC;;;;;OAKG;gBAEF,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,eAAe,EACxB,kCAAkC,EAAE,SAAS,EAC7C,cAAc,CAAC,EAAE,MAAM;IAMxB;;;;OAIG;IACG,SAAS,CACd,yBAAyB,CAAC,EAAE,kBAAkB,GAC5C,OAAO,CAAC,OAAO,CAAC;CAkCnB"}
|
|
@@ -3,11 +3,27 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.grpcInsuranceFundStakeAccountSubscriber = void 0;
|
|
4
4
|
const webSocketInsuranceFundStakeAccountSubscriber_1 = require("./webSocketInsuranceFundStakeAccountSubscriber");
|
|
5
5
|
const grpcAccountSubscriber_1 = require("./grpcAccountSubscriber");
|
|
6
|
+
/**
|
|
7
|
+
* `InsuranceFundStakeAccountSubscriber` variant of `WebSocketInsuranceFundStakeAccountSubscriber`
|
|
8
|
+
* that tracks the `InsuranceFundStake` account via a `grpcAccountSubscriber` (gRPC Geyser stream)
|
|
9
|
+
* instead of `connection.onAccountChange`.
|
|
10
|
+
*/
|
|
6
11
|
class grpcInsuranceFundStakeAccountSubscriber extends webSocketInsuranceFundStakeAccountSubscriber_1.WebSocketInsuranceFundStakeAccountSubscriber {
|
|
12
|
+
/**
|
|
13
|
+
* @param grpcConfigs gRPC Geyser endpoint/token/commitment config (Yellowstone or LaserStream).
|
|
14
|
+
* @param program Anchor program providing the connection and coder.
|
|
15
|
+
* @param insuranceFundStakeAccountPublicKey Address of the `InsuranceFundStake` account to track.
|
|
16
|
+
* @param resubTimeoutMs Resub watchdog timeout (ms) passed to the underlying `grpcAccountSubscriber`.
|
|
17
|
+
*/
|
|
7
18
|
constructor(grpcConfigs, program, insuranceFundStakeAccountPublicKey, resubTimeoutMs) {
|
|
8
19
|
super(program, insuranceFundStakeAccountPublicKey, resubTimeoutMs);
|
|
9
20
|
this.grpcConfigs = grpcConfigs;
|
|
10
21
|
}
|
|
22
|
+
/**
|
|
23
|
+
* Creates the underlying `grpcAccountSubscriber` and subscribes it. Idempotent: a no-op
|
|
24
|
+
* (returns `true`) if already subscribed.
|
|
25
|
+
* @param insuranceFundStakeAccount Optional pre-fetched account data to seed the subscriber with, skipping the initial RPC fetch.
|
|
26
|
+
*/
|
|
11
27
|
async subscribe(insuranceFundStakeAccount) {
|
|
12
28
|
if (this.isSubscribed) {
|
|
13
29
|
return true;
|
|
@@ -4,6 +4,15 @@ import { Context, PublicKey } from '@solana/web3.js';
|
|
|
4
4
|
import { VelocityProgram } from '../config';
|
|
5
5
|
import { Client } from '../isomorphic/grpc';
|
|
6
6
|
import { DataAndSlot, GrpcConfigs, ResubOpts } from './types';
|
|
7
|
+
/**
|
|
8
|
+
* Multiplexes many accounts of the same Anchor type onto a single gRPC Geyser subscribe stream,
|
|
9
|
+
* rather than one `grpcAccountSubscriber` per account. Optional generic `U` ("account props")
|
|
10
|
+
* lets a caller attach metadata (e.g. `OracleInfo`) per pubkey — or per **array** of `U` values
|
|
11
|
+
* for a pubkey backing multiple logical entries (see `accountPropsMap`, used when several oracle
|
|
12
|
+
* ids share one underlying account). Construct via the static `create` factory, not the
|
|
13
|
+
* constructor directly, since establishing the gRPC client is asynchronous. Accounts can be added/
|
|
14
|
+
* removed from an already-open stream via `addAccounts`/`removeAccounts` without a full resubscribe.
|
|
15
|
+
*/
|
|
7
16
|
export declare class grpcMultiAccountSubscriber<T, U = undefined> {
|
|
8
17
|
private client;
|
|
9
18
|
private _stream?;
|
|
@@ -24,14 +33,64 @@ export declare class grpcMultiAccountSubscriber<T, U = undefined> {
|
|
|
24
33
|
private accountPropsMap;
|
|
25
34
|
private bufferMap;
|
|
26
35
|
private constructor();
|
|
36
|
+
/**
|
|
37
|
+
* Creates a gRPC client (or reuses `clientProp`) and constructs a `grpcMultiAccountSubscriber`.
|
|
38
|
+
* Does not itself start streaming — call `subscribe(accounts, onChange)` on the result.
|
|
39
|
+
* @param grpcConfigs gRPC Geyser endpoint/token/commitment config (Yellowstone or LaserStream).
|
|
40
|
+
* @param accountName Anchor account type name all multiplexed accounts share, used for decoding via the program coder absent `decodeBuffer`.
|
|
41
|
+
* @param program Anchor program providing the connection (for `fetch()`) and coder.
|
|
42
|
+
* @param decodeBuffer Optional custom decode function receiving the buffer, the account's base58 pubkey, and its `accountProps` entry (or one element of it, if an array); defaults to `program.coder.accounts.decode(accountName, buffer)`.
|
|
43
|
+
* @param resubOpts Resubscription watchdog options; `resubTimeoutMs` triggers a full unsubscribe on inactivity (no automatic resubscribe here — see `onUnsubscribe`).
|
|
44
|
+
* @param clientProp Optional existing gRPC client to reuse instead of creating a new connection.
|
|
45
|
+
* @param onUnsubscribe Optional callback invoked after `unsubscribe()` completes (or the resub-timeout-driven unsubscribe fires), typically used by callers to drive their own resubscribe logic.
|
|
46
|
+
* @param accountPropsMap Optional per-pubkey metadata (or array of metadata, for a shared pubkey) passed through to `decodeBuffer` and the `subscribe`/`addAccounts` change callback.
|
|
47
|
+
*/
|
|
27
48
|
static create<T, U = undefined>(grpcConfigs: GrpcConfigs, accountName: string, program: VelocityProgram, decodeBuffer?: (buffer: Buffer, pubkey?: string, accountProps?: U) => T, resubOpts?: ResubOpts, clientProp?: Client, onUnsubscribe?: () => Promise<void>, accountPropsMap?: Map<string, U | Array<U>>): Promise<grpcMultiAccountSubscriber<T, U>>;
|
|
49
|
+
/**
|
|
50
|
+
* Seeds or overwrites the cached data for one account, bypassing gRPC/RPC. Used to inject
|
|
51
|
+
* data the caller already has (e.g. from an initial batch fetch) before the stream delivers
|
|
52
|
+
* live updates.
|
|
53
|
+
* @param accountPubkey Base58 pubkey of the account.
|
|
54
|
+
* @param data Decoded account data to store.
|
|
55
|
+
* @param slot Slot the data was observed at; defaults to 0 (the seeded sentinel) if omitted.
|
|
56
|
+
*/
|
|
28
57
|
setAccountData(accountPubkey: string, data: T, slot?: number): void;
|
|
58
|
+
/** Returns the cached data/slot for one account, or undefined if not yet loaded. */
|
|
29
59
|
getAccountData(accountPubkey: string): DataAndSlot<T> | undefined;
|
|
60
|
+
/** Returns the full map of base58 pubkey to cached data/slot for every multiplexed account. */
|
|
30
61
|
getAccountDataMap(): Map<string, DataAndSlot<T>>;
|
|
62
|
+
/**
|
|
63
|
+
* Fetches every subscribed account once via chunked `getMultipleAccountsInfoAndContext` calls
|
|
64
|
+
* (100 pubkeys per chunk, processed concurrently), updating `dataMap`/`bufferMap` for any
|
|
65
|
+
* account whose buffer changed at a non-decreasing slot. Errors are logged (if
|
|
66
|
+
* `resubOpts.logResubMessages`) and swallowed rather than thrown.
|
|
67
|
+
*/
|
|
31
68
|
fetch(): Promise<void>;
|
|
69
|
+
/**
|
|
70
|
+
* Opens a single gRPC subscribe stream covering all of `accounts`. Each update is decoded and
|
|
71
|
+
* cached (via `setAccountData`) before `onChange` is invoked. Idempotent: a no-op if already
|
|
72
|
+
* subscribed or mid-unsubscribe.
|
|
73
|
+
* @param accounts Pubkeys to include in the stream filter.
|
|
74
|
+
* @param onChange Invoked once per changed account with its pubkey, decoded data, the notification's `Context` (including `slot`), the raw buffer, and any `accountProps` metadata registered for that pubkey.
|
|
75
|
+
*/
|
|
32
76
|
subscribe(accounts: PublicKey[], onChange: (accountId: PublicKey, data: T, context: Context, buffer: Buffer, accountProps: U | undefined) => void): Promise<void>;
|
|
33
|
-
|
|
77
|
+
/**
|
|
78
|
+
* Extends the already-open stream's filter to include `accounts` (re-writing the full
|
|
79
|
+
* accumulated filter set, since the gRPC protocol has no incremental "add" primitive), then
|
|
80
|
+
* immediately calls `fetch()` to backfill their initial data.
|
|
81
|
+
* @param accounts Additional pubkeys to start tracking.
|
|
82
|
+
* @param accountProps Optional per-pubkey metadata to merge into `accountPropsMap` so the
|
|
83
|
+
* injected decoder can decode the newly added accounts (without it, a new `(pubkey, source)`
|
|
84
|
+
* oracle would decode with missing `accountProps` and throw).
|
|
85
|
+
*/
|
|
86
|
+
addAccounts(accounts: PublicKey[], accountProps?: Map<string, U | Array<U>>): Promise<void>;
|
|
87
|
+
/**
|
|
88
|
+
* Removes `accounts` from `subscribedAccounts`/`onChangeMap` and re-writes the stream's filter
|
|
89
|
+
* to exclude them. Does not clear their cached data from `dataMap`/`bufferMap`.
|
|
90
|
+
* @param accounts Pubkeys to stop tracking.
|
|
91
|
+
*/
|
|
34
92
|
removeAccounts(accounts: PublicKey[]): Promise<void>;
|
|
93
|
+
/** Writes an empty subscribe request to clear the stream's account filter, cancels any pending resub timeout, and invokes `onUnsubscribe` if one was registered at construction. */
|
|
35
94
|
unsubscribe(): Promise<void>;
|
|
36
95
|
private setTimeout;
|
|
37
96
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grpcMultiAccountSubscriber.d.ts","sourceRoot":"","sources":["../../../src/accounts/grpcMultiAccountSubscriber.ts"],"names":[],"mappings":";;AAAA,OAAO,EAAc,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAI5C,OAAO,EACN,MAAM,EAMN,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAiB,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAyB7E,qBAAa,0BAA0B,CAAC,CAAC,EAAE,CAAC,GAAG,SAAS;IACvD,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAAC,CAAqB;IACrC,OAAO,KAAK,MAAM,GAOjB;IACD,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,OAAO,CAAkB;IACjC,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,cAAc,CAAC,CAIhB;IACP,OAAO,CAAC,SAAS,CAAC,CAAY;IAC9B,OAAO,CAAC,aAAa,CAAC,CAAsB;IAErC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,UAAS;IAC/B,OAAO,CAAC,SAAS,CAAC,CAAgC;IAClD,OAAO,CAAC,aAAa,CAAS;IAE9B,OAAO,CAAC,kBAAkB,CAAqB;IAC/C,OAAO,CAAC,WAAW,CAQf;IAEJ,OAAO,CAAC,OAAO,CAAqC;IACpD,OAAO,CAAC,eAAe,CAAmC;IAC1D,OAAO,CAAC,SAAS,CAAoC;IAErD,OAAO;
|
|
1
|
+
{"version":3,"file":"grpcMultiAccountSubscriber.d.ts","sourceRoot":"","sources":["../../../src/accounts/grpcMultiAccountSubscriber.ts"],"names":[],"mappings":";;AAAA,OAAO,EAAc,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAI5C,OAAO,EACN,MAAM,EAMN,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAiB,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAyB7E;;;;;;;;GAQG;AACH,qBAAa,0BAA0B,CAAC,CAAC,EAAE,CAAC,GAAG,SAAS;IACvD,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAAC,CAAqB;IACrC,OAAO,KAAK,MAAM,GAOjB;IACD,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,OAAO,CAAkB;IACjC,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,cAAc,CAAC,CAIhB;IACP,OAAO,CAAC,SAAS,CAAC,CAAY;IAC9B,OAAO,CAAC,aAAa,CAAC,CAAsB;IAErC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,UAAS;IAC/B,OAAO,CAAC,SAAS,CAAC,CAAgC;IAClD,OAAO,CAAC,aAAa,CAAS;IAE9B,OAAO,CAAC,kBAAkB,CAAqB;IAC/C,OAAO,CAAC,WAAW,CAQf;IAEJ,OAAO,CAAC,OAAO,CAAqC;IACpD,OAAO,CAAC,eAAe,CAAmC;IAC1D,OAAO,CAAC,SAAS,CAAoC;IAErD,OAAO;IAsBP;;;;;;;;;;;OAWG;WACiB,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,SAAS,EAC1C,WAAW,EAAE,WAAW,EACxB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,eAAe,EACxB,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,CAAC,KAAK,CAAC,EACvE,SAAS,CAAC,EAAE,SAAS,EACrB,UAAU,CAAC,EAAE,MAAM,EACnB,aAAa,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,EACnC,eAAe,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,GACzC,OAAO,CAAC,0BAA0B,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAwB5C;;;;;;;OAOG;IACH,cAAc,CAAC,aAAa,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI;IAInE,oFAAoF;IACpF,cAAc,CAAC,aAAa,EAAE,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,SAAS;IAIjE,+FAA+F;IAC/F,iBAAiB,IAAI,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;IAIhD;;;;;OAKG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA+E5B;;;;;;OAMG;IACG,SAAS,CACd,QAAQ,EAAE,SAAS,EAAE,EACrB,QAAQ,EAAE,CACT,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,CAAC,EACP,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,CAAC,GAAG,SAAS,KACvB,IAAI,GACP,OAAO,CAAC,IAAI,CAAC;IAmIhB;;;;;;;;OAQG;IACG,WAAW,CAChB,QAAQ,EAAE,SAAS,EAAE,EACrB,YAAY,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,GACtC,OAAO,CAAC,IAAI,CAAC;IAuChB;;;;OAIG;IACG,cAAc,CAAC,QAAQ,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAmC1D,oLAAoL;IAC9K,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAiDlC,OAAO,CAAC,UAAU;CAclB"}
|