@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
|
@@ -19,20 +19,69 @@ import { Account } from '@solana/spl-token';
|
|
|
19
19
|
import { OracleInfo, OraclePriceData } from '../oracles/types';
|
|
20
20
|
import { User } from '../user';
|
|
21
21
|
import { Client, CommitmentLevel, LaserstreamConfig } from '../isomorphic/grpc';
|
|
22
|
+
/**
|
|
23
|
+
* Common contract for a subscriber that tracks a single on-chain account of type `T`.
|
|
24
|
+
* Implemented by the `WebSocketAccountSubscriber`/`WebSocketAccountSubscriberV2`,
|
|
25
|
+
* `grpcAccountSubscriber`, and polling-loader-backed subscribers. `dataAndSlot` is
|
|
26
|
+
* undefined until the first fetch/notification lands; once set, `data` and `slot`
|
|
27
|
+
* are always updated together (see `DataAndSlot`) so a caller never sees data from
|
|
28
|
+
* one slot paired with another.
|
|
29
|
+
*/
|
|
22
30
|
export interface AccountSubscriber<T> {
|
|
31
|
+
/** Latest decoded account data and the slot it was observed at, or undefined before the first load. */
|
|
23
32
|
dataAndSlot?: DataAndSlot<T>;
|
|
33
|
+
/**
|
|
34
|
+
* Begins tracking the account, seeding `dataAndSlot` with an initial `fetch()` if not already
|
|
35
|
+
* set, then attaching a live update source (WebSocket/gRPC notification or accountLoader
|
|
36
|
+
* callback). Idempotent: calling again while already subscribed is a no-op.
|
|
37
|
+
* @param onChange Invoked with the newly decoded account data whenever a strictly newer slot's
|
|
38
|
+
* update is observed.
|
|
39
|
+
*/
|
|
24
40
|
subscribe(onChange: (data: T) => void): Promise<void>;
|
|
41
|
+
/** Fetches the account once via RPC and updates `dataAndSlot` if the response's slot is newer than what's cached. */
|
|
25
42
|
fetch(): Promise<void>;
|
|
43
|
+
/** Tears down the live update source. Safe to call when not subscribed. */
|
|
26
44
|
unsubscribe(): Promise<void>;
|
|
45
|
+
/**
|
|
46
|
+
* Seeds or overwrites `dataAndSlot` without an RPC round trip. Used to inject data the caller
|
|
47
|
+
* already has (e.g. from a prior fetch elsewhere) before `subscribe()` runs its own fetch.
|
|
48
|
+
* @param userAccount Decoded account data to store.
|
|
49
|
+
* @param slot Slot the data was observed at; defaults to 0 (the oldest-possible sentinel) if omitted, so a later real update always wins.
|
|
50
|
+
*/
|
|
27
51
|
setData(userAccount: T, slot?: number): void;
|
|
28
52
|
}
|
|
53
|
+
/**
|
|
54
|
+
* Contract for a subscriber that tracks every account matching a program-account filter
|
|
55
|
+
* (e.g. all `User` accounts owned by the program), rather than one specific pubkey.
|
|
56
|
+
* Implemented by `WebSocketProgramAccountSubscriber`, `WebSocketProgramAccountsSubscriberV2`,
|
|
57
|
+
* `grpcProgramAccountSubscriber`, and `LaserstreamProgramAccountSubscriber`.
|
|
58
|
+
*/
|
|
29
59
|
export interface ProgramAccountSubscriber<T> {
|
|
60
|
+
/**
|
|
61
|
+
* Subscribes to program-account change notifications matching the filters supplied at
|
|
62
|
+
* construction.
|
|
63
|
+
* @param onChange Invoked once per changed account with its pubkey, decoded data, the
|
|
64
|
+
* notification's `Context` (including `slot`), and the raw account buffer.
|
|
65
|
+
*/
|
|
30
66
|
subscribe(onChange: (accountId: PublicKey, data: T, context: Context, buffer: Buffer) => void): Promise<void>;
|
|
67
|
+
/** Tears down the underlying subscription. Safe to call when not subscribed. */
|
|
31
68
|
unsubscribe(): Promise<void>;
|
|
32
69
|
}
|
|
70
|
+
/**
|
|
71
|
+
* Thrown by every subscriber's `assertIsSubscribed()`-guarded getter (e.g.
|
|
72
|
+
* `getUserAccountAndSlot`, `getStateAccountAndSlot`) when called before `subscribe()` has
|
|
73
|
+
* completed. This is the uniform contract across all subscriber implementations in this
|
|
74
|
+
* directory: never read cached account data without having subscribed first.
|
|
75
|
+
*/
|
|
33
76
|
export declare class NotSubscribedError extends Error {
|
|
34
77
|
name: string;
|
|
35
78
|
}
|
|
79
|
+
/**
|
|
80
|
+
* Events emitted by a `VelocityClientAccountSubscriber` on its `eventEmitter`. `update` fires
|
|
81
|
+
* after every individual account-specific event (state/market/oracle) as a generic "something
|
|
82
|
+
* changed" signal; `error` surfaces underlying transport errors (e.g. RPC batch failures)
|
|
83
|
+
* without unsubscribing.
|
|
84
|
+
*/
|
|
36
85
|
export interface VelocityClientAccountEvents {
|
|
37
86
|
stateAccountUpdate: (payload: StateAccount) => void;
|
|
38
87
|
perpMarketAccountUpdate: (payload: PerpMarketAccount) => void;
|
|
@@ -42,6 +91,18 @@ export interface VelocityClientAccountEvents {
|
|
|
42
91
|
update: void;
|
|
43
92
|
error: (e: Error) => void;
|
|
44
93
|
}
|
|
94
|
+
/**
|
|
95
|
+
* Contract for the subscriber `VelocityClient` uses to keep `State`, `PerpMarket`,
|
|
96
|
+
* `SpotMarket`, and oracle accounts cached in memory. See `webSocketVelocityClientAccountSubscriber.ts`
|
|
97
|
+
* (default, one WebSocket subscription per account), `pollingVelocityClientAccountSubscriber.ts`
|
|
98
|
+
* (single `BulkAccountLoader` batches all accounts via periodic `getMultipleAccounts`), and
|
|
99
|
+
* `grpcVelocityClientAccountSubscriber.ts`/`grpcVelocityClientAccountSubscriberV2.ts` (gRPC
|
|
100
|
+
* Geyser stream). Accessor contracts differ by shape: the guarded singleton getters
|
|
101
|
+
* (`getStateAccountAndSlot`) throw `NotSubscribedError` until `subscribe()` has completed; the
|
|
102
|
+
* per-market/oracle accessors return `undefined` when that entry isn't cached yet; and the
|
|
103
|
+
* collection getters (`getMarketAccountsAndSlots`, etc.) are cache reads that return a
|
|
104
|
+
* possibly-empty array.
|
|
105
|
+
*/
|
|
45
106
|
export interface VelocityClientAccountSubscriber {
|
|
46
107
|
eventEmitter: StrictEventEmitter<EventEmitter, VelocityClientAccountEvents>;
|
|
47
108
|
isSubscribed: boolean;
|
|
@@ -61,108 +122,190 @@ export interface VelocityClientAccountSubscriber {
|
|
|
61
122
|
getOraclePriceDataAndSlot(oracleId: string): DataAndSlot<OraclePriceData> | undefined;
|
|
62
123
|
getOraclePriceDataAndSlotForPerpMarket(marketIndex: number): DataAndSlot<OraclePriceData> | undefined;
|
|
63
124
|
getOraclePriceDataAndSlotForSpotMarket(marketIndex: number): DataAndSlot<OraclePriceData> | undefined;
|
|
125
|
+
/** Present only on polling-backed implementations; retunes the shared `BulkAccountLoader`'s poll interval (ms) for all accounts it batches. */
|
|
64
126
|
updateAccountLoaderPollingFrequency?: (pollingFrequency: number) => void;
|
|
65
127
|
}
|
|
128
|
+
/**
|
|
129
|
+
* Controls what a `VelocityClientAccountSubscriber` does with a perp market (and its oracle, if
|
|
130
|
+
* unused elsewhere) once the on-chain market status becomes `delisted`.
|
|
131
|
+
*/
|
|
66
132
|
export declare enum DelistedMarketSetting {
|
|
133
|
+
/** Drop the live subscription for the delisted market/oracle but keep the last-known data cached. */
|
|
67
134
|
Unsubscribe = 0,
|
|
135
|
+
/** Keep subscribing to the delisted market/oracle as normal (no special handling). */
|
|
68
136
|
Subscribe = 1,
|
|
137
|
+
/** Drop the subscription and remove the market/oracle from the subscriber's internal maps entirely. */
|
|
69
138
|
Discard = 2
|
|
70
139
|
}
|
|
140
|
+
/** Events emitted by a `UserAccountSubscriber` on its `eventEmitter`. `update` fires alongside every `userAccountUpdate`. */
|
|
71
141
|
export interface UserAccountEvents {
|
|
72
142
|
userAccountUpdate: (payload: UserAccount) => void;
|
|
73
143
|
update: void;
|
|
74
144
|
error: (e: Error) => void;
|
|
75
145
|
}
|
|
146
|
+
/** Events emitted at the `User` (SDK wrapper) level, distinct from the lower-level `UserAccountEvents`. */
|
|
76
147
|
export interface UserEvents {
|
|
77
148
|
userUpdate: (payload: User) => void;
|
|
78
149
|
update: void;
|
|
79
150
|
error: (e: Error) => void;
|
|
80
151
|
}
|
|
152
|
+
/**
|
|
153
|
+
* Contract for the subscriber `User` uses to track a single `UserAccount`. Implementations:
|
|
154
|
+
* `WebSocketUserAccountSubscriber` (default), `PollingUserAccountSubscriber` (via
|
|
155
|
+
* `BulkAccountLoader`), `grpcUserAccountSubscriber`, `OneShotUserAccountSubscriber` (fetch-only,
|
|
156
|
+
* ~1 RPC call), `BasicUserAccountSubscriber` (no network I/O, data supplied by the caller), and
|
|
157
|
+
* `WebSocketProgramUserAccountSubscriber` (filters a shared program-account stream).
|
|
158
|
+
*/
|
|
81
159
|
export interface UserAccountSubscriber {
|
|
82
160
|
eventEmitter: StrictEventEmitter<EventEmitter, UserAccountEvents>;
|
|
83
161
|
isSubscribed: boolean;
|
|
162
|
+
/**
|
|
163
|
+
* @param userAccount Optional pre-fetched account data to seed the subscriber with, skipping
|
|
164
|
+
* the initial RPC fetch.
|
|
165
|
+
*/
|
|
84
166
|
subscribe(userAccount?: UserAccount): Promise<boolean>;
|
|
85
167
|
fetch(): Promise<void>;
|
|
168
|
+
/**
|
|
169
|
+
* Applies an externally-obtained account update (e.g. relayed from a parent subscriber) if its
|
|
170
|
+
* slot is not older than the currently cached one, emitting `userAccountUpdate`/`update` on
|
|
171
|
+
* acceptance.
|
|
172
|
+
* @param userAccount Decoded account data to apply.
|
|
173
|
+
* @param slot Slot the data was observed at.
|
|
174
|
+
*/
|
|
86
175
|
updateData(userAccount: UserAccount, slot: number): void;
|
|
87
176
|
unsubscribe(): Promise<void>;
|
|
177
|
+
/** Throws `NotSubscribedError` if not subscribed. Returns undefined only if subscribed but no data has loaded yet. */
|
|
88
178
|
getUserAccountAndSlot(): DataAndSlot<UserAccount> | undefined;
|
|
89
179
|
}
|
|
180
|
+
/** Events emitted by a `TokenAccountSubscriber` on its `eventEmitter`. */
|
|
90
181
|
export interface TokenAccountEvents {
|
|
91
182
|
tokenAccountUpdate: (payload: Account) => void;
|
|
92
183
|
update: void;
|
|
93
184
|
error: (e: Error) => void;
|
|
94
185
|
}
|
|
186
|
+
/** Contract for tracking an SPL token account balance (e.g. a spot market vault or a user's token wallet). Implemented by `PollingTokenAccountSubscriber`. */
|
|
95
187
|
export interface TokenAccountSubscriber {
|
|
96
188
|
eventEmitter: StrictEventEmitter<EventEmitter, TokenAccountEvents>;
|
|
97
189
|
isSubscribed: boolean;
|
|
98
190
|
subscribe(): Promise<boolean>;
|
|
99
191
|
fetch(): Promise<void>;
|
|
100
192
|
unsubscribe(): Promise<void>;
|
|
193
|
+
/** Throws `NotSubscribedError` if not subscribed. */
|
|
101
194
|
getTokenAccountAndSlot(): DataAndSlot<Account>;
|
|
102
195
|
}
|
|
196
|
+
/**
|
|
197
|
+
* Contract for tracking an `InsuranceFundStake` account. Implementations:
|
|
198
|
+
* `WebSocketInsuranceFundStakeAccountSubscriber` (default), `PollingInsuranceFundStakeAccountSubscriber`,
|
|
199
|
+
* and `grpcInsuranceFundStakeAccountSubscriber`.
|
|
200
|
+
*/
|
|
103
201
|
export interface InsuranceFundStakeAccountSubscriber {
|
|
104
202
|
eventEmitter: StrictEventEmitter<EventEmitter, InsuranceFundStakeAccountEvents>;
|
|
105
203
|
isSubscribed: boolean;
|
|
106
204
|
subscribe(): Promise<boolean>;
|
|
107
205
|
fetch(): Promise<void>;
|
|
108
206
|
unsubscribe(): Promise<void>;
|
|
207
|
+
/** Throws `NotSubscribedError` if not subscribed. */
|
|
109
208
|
getInsuranceFundStakeAccountAndSlot(): DataAndSlot<InsuranceFundStake> | undefined;
|
|
110
209
|
}
|
|
210
|
+
/** Events emitted by an `InsuranceFundStakeAccountSubscriber` on its `eventEmitter`. */
|
|
111
211
|
export interface InsuranceFundStakeAccountEvents {
|
|
112
212
|
insuranceFundStakeAccountUpdate: (payload: InsuranceFundStake) => void;
|
|
113
213
|
update: void;
|
|
114
214
|
error: (e: Error) => void;
|
|
115
215
|
}
|
|
216
|
+
/** Events emitted by an `OracleAccountSubscriber` on its `eventEmitter`. */
|
|
116
217
|
export interface OracleEvents {
|
|
117
218
|
oracleUpdate: (payload: OraclePriceData) => void;
|
|
118
219
|
update: void;
|
|
119
220
|
error: (e: Error) => void;
|
|
120
221
|
}
|
|
222
|
+
/** Contract for tracking a single oracle account's decoded price data. Implemented by `PollingOracleAccountSubscriber` (via `BulkAccountLoader`). */
|
|
121
223
|
export interface OracleAccountSubscriber {
|
|
122
224
|
eventEmitter: StrictEventEmitter<EventEmitter, OracleEvents>;
|
|
123
225
|
isSubscribed: boolean;
|
|
124
226
|
subscribe(): Promise<boolean>;
|
|
125
227
|
fetch(): Promise<void>;
|
|
126
228
|
unsubscribe(): Promise<void>;
|
|
229
|
+
/** Throws `NotSubscribedError` if not subscribed. */
|
|
127
230
|
getOraclePriceData(): DataAndSlot<OraclePriceData>;
|
|
128
231
|
}
|
|
232
|
+
/** A `state`/`perpMarket`/`spotMarket` account registered with a `PollingVelocityClientAccountSubscriber`'s `BulkAccountLoader`. */
|
|
129
233
|
export type AccountToPoll = {
|
|
234
|
+
/** Anchor account discriminator name, also used to route the decoded data and pick the emitted event. */
|
|
130
235
|
key: 'state' | 'perpMarket' | 'spotMarket';
|
|
131
236
|
publicKey: PublicKey;
|
|
237
|
+
/** `VelocityClientAccountEvents` key emitted when this account changes. */
|
|
132
238
|
eventType: string;
|
|
239
|
+
/** `BulkAccountLoader` callback id, set once registered; used to remove the account later. */
|
|
133
240
|
callbackId?: string;
|
|
241
|
+
/** For `perpMarket`/`spotMarket`, the market index this account decodes to. */
|
|
134
242
|
mapKey?: number;
|
|
135
243
|
};
|
|
244
|
+
/** An oracle account registered with a `PollingVelocityClientAccountSubscriber`'s `BulkAccountLoader`. */
|
|
136
245
|
export type OraclesToPoll = {
|
|
137
246
|
publicKey: PublicKey;
|
|
138
247
|
source: OracleSource;
|
|
248
|
+
/** `BulkAccountLoader` callback id, set once registered; used to remove the oracle later. */
|
|
139
249
|
callbackId?: string;
|
|
140
250
|
};
|
|
251
|
+
/** Raw account buffer paired with the slot it was fetched/observed at; the buffer is undefined if the account does not exist on-chain. */
|
|
141
252
|
export type BufferAndSlot = {
|
|
142
253
|
slot: number;
|
|
143
254
|
buffer: Buffer | undefined;
|
|
144
255
|
};
|
|
256
|
+
/**
|
|
257
|
+
* A decoded account payload paired atomically with the slot it was observed at. Every
|
|
258
|
+
* `AccountSubscriber`/getter in this directory updates `data` and `slot` together in a single
|
|
259
|
+
* assignment, so a caller reading `dataAndSlot` never sees data from one slot mixed with a slot
|
|
260
|
+
* number from another. `slot === 0` is the seeded sentinel used when data is injected via
|
|
261
|
+
* `setData`/a constructor without a real fetch (e.g. `BasicUserAccountSubscriber`) — it is
|
|
262
|
+
* always superseded once a real fetch or notification lands, since updates only apply when the
|
|
263
|
+
* new slot is `>=` the cached one.
|
|
264
|
+
*/
|
|
145
265
|
export type DataAndSlot<T> = {
|
|
146
266
|
data: T;
|
|
147
267
|
slot: number;
|
|
148
268
|
};
|
|
269
|
+
/** Resubscription/polling-fallback tuning for WebSocket- and gRPC-backed subscribers. */
|
|
149
270
|
export type ResubOpts = {
|
|
271
|
+
/**
|
|
272
|
+
* Milliseconds of inactivity (no notification) before the subscriber treats the stream as
|
|
273
|
+
* stalled and resubscribes (or starts polling, see `usePollingInsteadOfResub`). Should be at
|
|
274
|
+
* least 1000ms; smaller values log a warning. Leave undefined to disable the inactivity
|
|
275
|
+
* watchdog entirely.
|
|
276
|
+
*/
|
|
150
277
|
resubTimeoutMs?: number;
|
|
278
|
+
/** Emits verbose `console.log`/`console.debug` diagnostics for resub/polling transitions. Defaults to false. */
|
|
151
279
|
logResubMessages?: boolean;
|
|
280
|
+
/**
|
|
281
|
+
* On inactivity timeout, poll via RPC to check for a missed update instead of immediately
|
|
282
|
+
* tearing down and recreating the WebSocket subscription. Defaults to false on the v1
|
|
283
|
+
* `WebSocketAccountSubscriber`; the V2 subscribers default this to `true`.
|
|
284
|
+
*/
|
|
152
285
|
usePollingInsteadOfResub?: boolean;
|
|
286
|
+
/** Polling cadence in ms when `usePollingInsteadOfResub` is active. Defaults to 30000 (30s). */
|
|
153
287
|
pollingIntervalMs?: number;
|
|
154
288
|
};
|
|
289
|
+
/** Events emitted by a `UserStatsAccountSubscriber` on its `eventEmitter`. */
|
|
155
290
|
export interface UserStatsAccountEvents {
|
|
156
291
|
userStatsAccountUpdate: (payload: UserStatsAccount) => void;
|
|
157
292
|
update: void;
|
|
158
293
|
error: (e: Error) => void;
|
|
159
294
|
}
|
|
295
|
+
/**
|
|
296
|
+
* Contract for the subscriber `UserStats` uses to track a single `UserStatsAccount`.
|
|
297
|
+
* Implementations mirror `UserAccountSubscriber`: `WebSocketUserStatsAccountSubscriber` (default),
|
|
298
|
+
* `PollingUserStatsAccountSubscriber`, `grpcUserStatsAccountSubscriber`,
|
|
299
|
+
* `OneShotUserStatsAccountSubscriber`, and `BasicUserStatsAccountSubscriber`.
|
|
300
|
+
*/
|
|
160
301
|
export interface UserStatsAccountSubscriber {
|
|
161
302
|
eventEmitter: StrictEventEmitter<EventEmitter, UserStatsAccountEvents>;
|
|
162
303
|
isSubscribed: boolean;
|
|
304
|
+
/** @param userStatsAccount Optional pre-fetched account data to seed the subscriber with, skipping the initial RPC fetch. */
|
|
163
305
|
subscribe(userStatsAccount?: UserStatsAccount): Promise<boolean>;
|
|
164
306
|
fetch(): Promise<void>;
|
|
165
307
|
unsubscribe(): Promise<void>;
|
|
308
|
+
/** Throws `NotSubscribedError` if not subscribed. Returns undefined only if subscribed but no data has loaded yet. */
|
|
166
309
|
getUserStatsAccountAndSlot(): DataAndSlot<UserStatsAccount> | undefined;
|
|
167
310
|
}
|
|
168
311
|
type BaseGrpcConfigs = {
|
|
@@ -175,22 +318,28 @@ type BaseGrpcConfigs = {
|
|
|
175
318
|
*/
|
|
176
319
|
enableReconnect?: boolean;
|
|
177
320
|
};
|
|
321
|
+
/** gRPC Geyser config for the default Yellowstone (Triton/Dragon's Mouth-compatible) client. */
|
|
178
322
|
export type YellowstoneGrpcConfigs = BaseGrpcConfigs & {
|
|
179
323
|
client?: 'yellowstone';
|
|
180
324
|
channelOptions?: ConstructorParameters<typeof Client>[2];
|
|
181
325
|
};
|
|
326
|
+
/** gRPC Geyser config for the Helius LaserStream client (`LaserstreamProgramAccountSubscriber`). Requires the optional `helius-laserstream` peer dependency. */
|
|
182
327
|
export type LaserGrpcConfigs = BaseGrpcConfigs & {
|
|
183
328
|
client: 'laser';
|
|
184
329
|
channelOptions?: LaserstreamConfig['channelOptions'];
|
|
185
330
|
};
|
|
331
|
+
/** Union of supported gRPC Geyser client configs; the `client` discriminant selects Yellowstone vs. LaserStream. */
|
|
186
332
|
export type GrpcConfigs = YellowstoneGrpcConfigs | LaserGrpcConfigs;
|
|
333
|
+
/** Contract for tracking an LP-pool `ConstituentAccount`. `sync()` is the fetch/reconcile entry point (analogous to `fetch()` on other subscribers). */
|
|
187
334
|
export interface ConstituentAccountSubscriber {
|
|
188
335
|
eventEmitter: StrictEventEmitter<EventEmitter, ConstituentAccountEvents>;
|
|
189
336
|
isSubscribed: boolean;
|
|
337
|
+
/** @param constituentAccount Optional pre-fetched account data to seed the subscriber with. */
|
|
190
338
|
subscribe(constituentAccount?: ConstituentAccount): Promise<boolean>;
|
|
191
339
|
sync(): Promise<void>;
|
|
192
340
|
unsubscribe(): Promise<void>;
|
|
193
341
|
}
|
|
342
|
+
/** Events emitted by a `ConstituentAccountSubscriber` on its `eventEmitter`. */
|
|
194
343
|
export interface ConstituentAccountEvents {
|
|
195
344
|
onAccountUpdate: (account: ConstituentAccount, pubkey: PublicKey, slot: number) => void;
|
|
196
345
|
update: void;
|
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.DelistedMarketSetting = exports.NotSubscribedError = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Thrown by every subscriber's `assertIsSubscribed()`-guarded getter (e.g.
|
|
6
|
+
* `getUserAccountAndSlot`, `getStateAccountAndSlot`) when called before `subscribe()` has
|
|
7
|
+
* completed. This is the uniform contract across all subscriber implementations in this
|
|
8
|
+
* directory: never read cached account data without having subscribed first.
|
|
9
|
+
*/
|
|
4
10
|
class NotSubscribedError extends Error {
|
|
5
11
|
constructor() {
|
|
6
12
|
super(...arguments);
|
|
@@ -8,9 +14,16 @@ class NotSubscribedError extends Error {
|
|
|
8
14
|
}
|
|
9
15
|
}
|
|
10
16
|
exports.NotSubscribedError = NotSubscribedError;
|
|
17
|
+
/**
|
|
18
|
+
* Controls what a `VelocityClientAccountSubscriber` does with a perp market (and its oracle, if
|
|
19
|
+
* unused elsewhere) once the on-chain market status becomes `delisted`.
|
|
20
|
+
*/
|
|
11
21
|
var DelistedMarketSetting;
|
|
12
22
|
(function (DelistedMarketSetting) {
|
|
23
|
+
/** Drop the live subscription for the delisted market/oracle but keep the last-known data cached. */
|
|
13
24
|
DelistedMarketSetting[DelistedMarketSetting["Unsubscribe"] = 0] = "Unsubscribe";
|
|
25
|
+
/** Keep subscribing to the delisted market/oracle as normal (no special handling). */
|
|
14
26
|
DelistedMarketSetting[DelistedMarketSetting["Subscribe"] = 1] = "Subscribe";
|
|
27
|
+
/** Drop the subscription and remove the market/oracle from the subscriber's internal maps entirely. */
|
|
15
28
|
DelistedMarketSetting[DelistedMarketSetting["Discard"] = 2] = "Discard";
|
|
16
29
|
})(DelistedMarketSetting || (exports.DelistedMarketSetting = DelistedMarketSetting = {}));
|
|
@@ -1,8 +1,26 @@
|
|
|
1
1
|
import { DataAndSlot } from './types';
|
|
2
2
|
import { PerpMarketAccount, SpotMarketAccount } from '../types';
|
|
3
3
|
import { OracleInfo } from '../oracles/types';
|
|
4
|
+
/** Capitalizes the first character of `value` (e.g. for building Anchor event/method names from account names). */
|
|
4
5
|
export declare function capitalize(value: string): string;
|
|
6
|
+
/**
|
|
7
|
+
* Unwraps a possibly-undefined `DataAndSlot<T>`, throwing if it hasn't loaded. Use this instead
|
|
8
|
+
* of a bare non-null assertion when a subscriber's cached data must be present by this point.
|
|
9
|
+
* @param dataAndSlot The cached data/slot pair to check, typically from `AccountSubscriber.dataAndSlot`.
|
|
10
|
+
* @param message Error message to throw if `dataAndSlot` is undefined.
|
|
11
|
+
* @returns The same `dataAndSlot`, narrowed to non-undefined.
|
|
12
|
+
*/
|
|
5
13
|
export declare function assertDataAndSlot<T>(dataAndSlot: DataAndSlot<T> | undefined, message: string): DataAndSlot<T>;
|
|
14
|
+
/**
|
|
15
|
+
* Scans cached perp/spot market data for perp markets with `status: delisted` and identifies
|
|
16
|
+
* both the delisted market indexes and their oracles, excluding any oracle still in use by a
|
|
17
|
+
* spot market or a non-delisted perp market (so a shared oracle isn't dropped out from under a
|
|
18
|
+
* still-live market). Used by `VelocityClientAccountSubscriber` implementations to drive
|
|
19
|
+
* `DelistedMarketSetting` (unsubscribe/discard) handling.
|
|
20
|
+
* @param perpMarkets Currently cached perp market data/slots (entries with missing `data` are skipped).
|
|
21
|
+
* @param spotMarkets Currently cached spot market data/slots, checked to avoid dropping oracles they still reference.
|
|
22
|
+
* @returns `perpMarketIndexes` of delisted perp markets and `oracles` safe to stop tracking.
|
|
23
|
+
*/
|
|
6
24
|
export declare function findDelistedPerpMarketsAndOracles(perpMarkets: DataAndSlot<PerpMarketAccount>[], spotMarkets: DataAndSlot<SpotMarketAccount>[]): {
|
|
7
25
|
perpMarketIndexes: number[];
|
|
8
26
|
oracles: OracleInfo[];
|
|
@@ -3,10 +3,18 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.findDelistedPerpMarketsAndOracles = exports.assertDataAndSlot = exports.capitalize = void 0;
|
|
4
4
|
const types_1 = require("../types");
|
|
5
5
|
const oracleId_1 = require("../oracles/oracleId");
|
|
6
|
+
/** Capitalizes the first character of `value` (e.g. for building Anchor event/method names from account names). */
|
|
6
7
|
function capitalize(value) {
|
|
7
8
|
return value[0].toUpperCase() + value.slice(1);
|
|
8
9
|
}
|
|
9
10
|
exports.capitalize = capitalize;
|
|
11
|
+
/**
|
|
12
|
+
* Unwraps a possibly-undefined `DataAndSlot<T>`, throwing if it hasn't loaded. Use this instead
|
|
13
|
+
* of a bare non-null assertion when a subscriber's cached data must be present by this point.
|
|
14
|
+
* @param dataAndSlot The cached data/slot pair to check, typically from `AccountSubscriber.dataAndSlot`.
|
|
15
|
+
* @param message Error message to throw if `dataAndSlot` is undefined.
|
|
16
|
+
* @returns The same `dataAndSlot`, narrowed to non-undefined.
|
|
17
|
+
*/
|
|
10
18
|
function assertDataAndSlot(dataAndSlot, message) {
|
|
11
19
|
if (!dataAndSlot) {
|
|
12
20
|
throw new Error(message);
|
|
@@ -14,6 +22,16 @@ function assertDataAndSlot(dataAndSlot, message) {
|
|
|
14
22
|
return dataAndSlot;
|
|
15
23
|
}
|
|
16
24
|
exports.assertDataAndSlot = assertDataAndSlot;
|
|
25
|
+
/**
|
|
26
|
+
* Scans cached perp/spot market data for perp markets with `status: delisted` and identifies
|
|
27
|
+
* both the delisted market indexes and their oracles, excluding any oracle still in use by a
|
|
28
|
+
* spot market or a non-delisted perp market (so a shared oracle isn't dropped out from under a
|
|
29
|
+
* still-live market). Used by `VelocityClientAccountSubscriber` implementations to drive
|
|
30
|
+
* `DelistedMarketSetting` (unsubscribe/discard) handling.
|
|
31
|
+
* @param perpMarkets Currently cached perp market data/slots (entries with missing `data` are skipped).
|
|
32
|
+
* @param spotMarkets Currently cached spot market data/slots, checked to avoid dropping oracles they still reference.
|
|
33
|
+
* @returns `perpMarketIndexes` of delisted perp markets and `oracles` safe to stop tracking.
|
|
34
|
+
*/
|
|
17
35
|
function findDelistedPerpMarketsAndOracles(perpMarkets, spotMarkets) {
|
|
18
36
|
const delistedPerpMarketIndexes = [];
|
|
19
37
|
const delistedOracles = [];
|
|
@@ -29,25 +47,23 @@ function findDelistedPerpMarketsAndOracles(perpMarkets, spotMarkets) {
|
|
|
29
47
|
});
|
|
30
48
|
}
|
|
31
49
|
}
|
|
32
|
-
// make sure oracle isn't used by spot market
|
|
33
|
-
const
|
|
34
|
-
for (const
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
isUsedBySpotMarket = true;
|
|
44
|
-
break;
|
|
45
|
-
}
|
|
50
|
+
// make sure oracle isn't still used by a spot market or a live perp market
|
|
51
|
+
const liveOracleIds = new Set();
|
|
52
|
+
for (const spotMarket of spotMarkets) {
|
|
53
|
+
if (!spotMarket || !spotMarket.data) {
|
|
54
|
+
continue;
|
|
55
|
+
}
|
|
56
|
+
liveOracleIds.add((0, oracleId_1.getOracleId)(spotMarket.data.oracle, spotMarket.data.oracleSource));
|
|
57
|
+
}
|
|
58
|
+
for (const perpMarket of perpMarkets) {
|
|
59
|
+
if (!perpMarket || !perpMarket.data) {
|
|
60
|
+
continue;
|
|
46
61
|
}
|
|
47
|
-
if (!
|
|
48
|
-
|
|
62
|
+
if (!(0, types_1.isVariant)(perpMarket.data.status, 'delisted')) {
|
|
63
|
+
liveOracleIds.add((0, oracleId_1.getOracleId)(perpMarket.data.oracle, perpMarket.data.oracleSource));
|
|
49
64
|
}
|
|
50
65
|
}
|
|
66
|
+
const filteredDelistedOracles = delistedOracles.filter((delistedOracle) => !liveOracleIds.has((0, oracleId_1.getOracleId)(delistedOracle.publicKey, delistedOracle.source)));
|
|
51
67
|
return {
|
|
52
68
|
perpMarketIndexes: delistedPerpMarketIndexes,
|
|
53
69
|
oracles: filteredDelistedOracles,
|
|
@@ -3,6 +3,16 @@
|
|
|
3
3
|
import { DataAndSlot, BufferAndSlot, AccountSubscriber, ResubOpts } from './types';
|
|
4
4
|
import { AccountInfo, Commitment, Context, PublicKey } from '@solana/web3.js';
|
|
5
5
|
import { VelocityProgram } from '../config';
|
|
6
|
+
/**
|
|
7
|
+
* Default `AccountSubscriber` implementation: tracks a single account via
|
|
8
|
+
* `connection.onAccountChange`, decoding each notification with either a supplied
|
|
9
|
+
* `decodeBuffer` function or the program's Anchor coder for `accountName`. Updates are applied
|
|
10
|
+
* only when the notification's slot is not older than the last-seen slot and the raw buffer
|
|
11
|
+
* actually changed, so `onChange` never fires twice for the same bytes. If `resubOpts.resubTimeoutMs`
|
|
12
|
+
* is set, a watchdog timer resubscribes to the WebSocket whenever no notification arrives within
|
|
13
|
+
* that window — see `ResubOpts` for tuning. This is the base class extended by
|
|
14
|
+
* `grpcAccountSubscriber` for gRPC Geyser-backed tracking.
|
|
15
|
+
*/
|
|
6
16
|
export declare class WebSocketAccountSubscriber<T> implements AccountSubscriber<T> {
|
|
7
17
|
dataAndSlot?: DataAndSlot<T>;
|
|
8
18
|
bufferAndSlot?: BufferAndSlot;
|
|
@@ -20,12 +30,43 @@ export declare class WebSocketAccountSubscriber<T> implements AccountSubscriber<
|
|
|
20
30
|
isUnsubscribing: boolean;
|
|
21
31
|
timeoutId?: ReturnType<typeof setTimeout>;
|
|
22
32
|
receivingData: boolean;
|
|
33
|
+
/**
|
|
34
|
+
* @param accountName Anchor account type name (used for logging and, absent `decodeBuffer`, for decoding via the program coder).
|
|
35
|
+
* @param program Anchor program providing the connection and coder.
|
|
36
|
+
* @param accountPublicKey Address of the account to track.
|
|
37
|
+
* @param decodeBuffer Optional custom decode function; defaults to `program.coder.accounts.decode(accountName, buffer)`.
|
|
38
|
+
* @param resubOpts Resubscription watchdog options; omit to disable the inactivity timer.
|
|
39
|
+
* @param commitment Commitment for both the initial fetch and the `onAccountChange` subscription; defaults to the provider's configured commitment.
|
|
40
|
+
*/
|
|
23
41
|
constructor(accountName: string, program: VelocityProgram, accountPublicKey: PublicKey, decodeBuffer?: (buffer: Buffer) => T, resubOpts?: ResubOpts, commitment?: Commitment);
|
|
42
|
+
/**
|
|
43
|
+
* Seeds `dataAndSlot` with an initial `fetch()` (if not already set via `setData`) and then
|
|
44
|
+
* attaches the `onAccountChange` WebSocket listener. Returning early (no-op) if already
|
|
45
|
+
* subscribed or mid-unsubscribe.
|
|
46
|
+
* @param onChange Invoked with the newly decoded account data on each accepted update.
|
|
47
|
+
*/
|
|
24
48
|
subscribe(onChange: (data: T) => void): Promise<void>;
|
|
49
|
+
/**
|
|
50
|
+
* Seeds or overwrites `dataAndSlot` directly, bypassing RPC. A no-op if the currently cached
|
|
51
|
+
* slot is already newer than `slot`.
|
|
52
|
+
* @param data Decoded account data to store.
|
|
53
|
+
* @param slot Slot the data was observed at; defaults to 0 (the seeded sentinel) if omitted.
|
|
54
|
+
*/
|
|
25
55
|
setData(data: T, slot?: number): void;
|
|
26
56
|
protected setTimeout(): void;
|
|
57
|
+
/** Fetches the account once via `getAccountInfoAndContext` and routes the result through `handleRpcResponse`, applying it if newer than the cached slot. */
|
|
27
58
|
fetch(): Promise<void>;
|
|
59
|
+
/**
|
|
60
|
+
* Applies a raw RPC/WS response: decodes and stores it (updating `bufferAndSlot`/`dataAndSlot`
|
|
61
|
+
* and invoking `onChange`) only if the slot is not older than the cached one and the buffer's
|
|
62
|
+
* bytes actually changed (or this is the first observation).
|
|
63
|
+
*/
|
|
28
64
|
handleRpcResponse(context: Context, accountInfo?: AccountInfo<Buffer>): void;
|
|
65
|
+
/** Decodes a raw account buffer using the constructor-supplied `decodeBufferFn`, or the program's Anchor coder for `accountName` if none was supplied. */
|
|
29
66
|
decodeBuffer(buffer: Buffer): T;
|
|
67
|
+
/**
|
|
68
|
+
* Tears down the WebSocket listener and cancels any pending resub timeout.
|
|
69
|
+
* @param onResub Internal flag set to `true` when called as part of an automatic resubscribe cycle, which preserves `resubOpts.resubTimeoutMs` instead of clearing it. Callers should omit this.
|
|
70
|
+
*/
|
|
30
71
|
unsubscribe(onResub?: boolean): Promise<void>;
|
|
31
72
|
}
|
|
@@ -1,6 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.WebSocketAccountSubscriber = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Default `AccountSubscriber` implementation: tracks a single account via
|
|
6
|
+
* `connection.onAccountChange`, decoding each notification with either a supplied
|
|
7
|
+
* `decodeBuffer` function or the program's Anchor coder for `accountName`. Updates are applied
|
|
8
|
+
* only when the notification's slot is not older than the last-seen slot and the raw buffer
|
|
9
|
+
* actually changed, so `onChange` never fires twice for the same bytes. If `resubOpts.resubTimeoutMs`
|
|
10
|
+
* is set, a watchdog timer resubscribes to the WebSocket whenever no notification arrives within
|
|
11
|
+
* that window — see `ResubOpts` for tuning. This is the base class extended by
|
|
12
|
+
* `grpcAccountSubscriber` for gRPC Geyser-backed tracking.
|
|
13
|
+
*/
|
|
4
14
|
class WebSocketAccountSubscriber {
|
|
5
15
|
get onChange() {
|
|
6
16
|
if (!this._onChange) {
|
|
@@ -11,6 +21,14 @@ class WebSocketAccountSubscriber {
|
|
|
11
21
|
set onChange(onChange) {
|
|
12
22
|
this._onChange = onChange;
|
|
13
23
|
}
|
|
24
|
+
/**
|
|
25
|
+
* @param accountName Anchor account type name (used for logging and, absent `decodeBuffer`, for decoding via the program coder).
|
|
26
|
+
* @param program Anchor program providing the connection and coder.
|
|
27
|
+
* @param accountPublicKey Address of the account to track.
|
|
28
|
+
* @param decodeBuffer Optional custom decode function; defaults to `program.coder.accounts.decode(accountName, buffer)`.
|
|
29
|
+
* @param resubOpts Resubscription watchdog options; omit to disable the inactivity timer.
|
|
30
|
+
* @param commitment Commitment for both the initial fetch and the `onAccountChange` subscription; defaults to the provider's configured commitment.
|
|
31
|
+
*/
|
|
14
32
|
constructor(accountName, program, accountPublicKey, decodeBuffer, resubOpts, commitment) {
|
|
15
33
|
var _a;
|
|
16
34
|
this.isUnsubscribing = false;
|
|
@@ -28,6 +46,12 @@ class WebSocketAccountSubscriber {
|
|
|
28
46
|
this.commitment =
|
|
29
47
|
commitment !== null && commitment !== void 0 ? commitment : this.program.provider.opts.commitment;
|
|
30
48
|
}
|
|
49
|
+
/**
|
|
50
|
+
* Seeds `dataAndSlot` with an initial `fetch()` (if not already set via `setData`) and then
|
|
51
|
+
* attaches the `onAccountChange` WebSocket listener. Returning early (no-op) if already
|
|
52
|
+
* subscribed or mid-unsubscribe.
|
|
53
|
+
* @param onChange Invoked with the newly decoded account data on each accepted update.
|
|
54
|
+
*/
|
|
31
55
|
async subscribe(onChange) {
|
|
32
56
|
var _a, _b;
|
|
33
57
|
if (this.listenerId != null || this.isUnsubscribing) {
|
|
@@ -57,6 +81,12 @@ class WebSocketAccountSubscriber {
|
|
|
57
81
|
this.setTimeout();
|
|
58
82
|
}
|
|
59
83
|
}
|
|
84
|
+
/**
|
|
85
|
+
* Seeds or overwrites `dataAndSlot` directly, bypassing RPC. A no-op if the currently cached
|
|
86
|
+
* slot is already newer than `slot`.
|
|
87
|
+
* @param data Decoded account data to store.
|
|
88
|
+
* @param slot Slot the data was observed at; defaults to 0 (the seeded sentinel) if omitted.
|
|
89
|
+
*/
|
|
60
90
|
setData(data, slot) {
|
|
61
91
|
const newSlot = slot || 0;
|
|
62
92
|
if (this.dataAndSlot && this.dataAndSlot.slot > newSlot) {
|
|
@@ -99,11 +129,17 @@ class WebSocketAccountSubscriber {
|
|
|
99
129
|
}
|
|
100
130
|
}, (_a = this.resubOpts) === null || _a === void 0 ? void 0 : _a.resubTimeoutMs);
|
|
101
131
|
}
|
|
132
|
+
/** Fetches the account once via `getAccountInfoAndContext` and routes the result through `handleRpcResponse`, applying it if newer than the cached slot. */
|
|
102
133
|
async fetch() {
|
|
103
134
|
var _a;
|
|
104
135
|
const rpcResponse = await this.program.provider.connection.getAccountInfoAndContext(this.accountPublicKey, this.program.provider.opts.commitment);
|
|
105
136
|
this.handleRpcResponse(rpcResponse.context, (_a = rpcResponse === null || rpcResponse === void 0 ? void 0 : rpcResponse.value) !== null && _a !== void 0 ? _a : undefined);
|
|
106
137
|
}
|
|
138
|
+
/**
|
|
139
|
+
* Applies a raw RPC/WS response: decodes and stores it (updating `bufferAndSlot`/`dataAndSlot`
|
|
140
|
+
* and invoking `onChange`) only if the slot is not older than the cached one and the buffer's
|
|
141
|
+
* bytes actually changed (or this is the first observation).
|
|
142
|
+
*/
|
|
107
143
|
handleRpcResponse(context, accountInfo) {
|
|
108
144
|
const newSlot = context.slot;
|
|
109
145
|
let newBuffer = undefined;
|
|
@@ -142,6 +178,7 @@ class WebSocketAccountSubscriber {
|
|
|
142
178
|
this.onChange(account);
|
|
143
179
|
}
|
|
144
180
|
}
|
|
181
|
+
/** Decodes a raw account buffer using the constructor-supplied `decodeBufferFn`, or the program's Anchor coder for `accountName` if none was supplied. */
|
|
145
182
|
decodeBuffer(buffer) {
|
|
146
183
|
if (this.decodeBufferFn) {
|
|
147
184
|
return this.decodeBufferFn(buffer);
|
|
@@ -150,6 +187,10 @@ class WebSocketAccountSubscriber {
|
|
|
150
187
|
return this.program.coder.accounts.decode(this.accountName, buffer);
|
|
151
188
|
}
|
|
152
189
|
}
|
|
190
|
+
/**
|
|
191
|
+
* Tears down the WebSocket listener and cancels any pending resub timeout.
|
|
192
|
+
* @param onResub Internal flag set to `true` when called as part of an automatic resubscribe cycle, which preserves `resubOpts.resubTimeoutMs` instead of clearing it. Callers should omit this.
|
|
193
|
+
*/
|
|
153
194
|
unsubscribe(onResub = false) {
|
|
154
195
|
if (!onResub && this.resubOpts) {
|
|
155
196
|
this.resubOpts.resubTimeoutMs = undefined;
|
|
@@ -88,8 +88,28 @@ export declare class WebSocketAccountSubscriberV2<T> implements AccountSubscribe
|
|
|
88
88
|
*/
|
|
89
89
|
constructor(accountName: string, program: VelocityProgram, accountPublicKey: PublicKey, decodeBuffer?: (buffer: Buffer) => T, resubOpts?: ResubOpts, commitment?: Commitment, rpcSubscriptions?: RpcSubscriptions<SolanaRpcSubscriptionsApi> & string, rpc?: Rpc<any>);
|
|
90
90
|
private handleNotificationLoop;
|
|
91
|
+
/**
|
|
92
|
+
* Seeds `dataAndSlot` with an initial `fetch()` (if not already set via `setData`), then opens
|
|
93
|
+
* the `gill` `accountNotifications` WebSocket subscription and, if `resubOpts.resubTimeoutMs`
|
|
94
|
+
* is set, arms the inactivity watchdog (`setTimeout`). Idempotent: a no-op if already
|
|
95
|
+
* subscribed or mid-unsubscribe.
|
|
96
|
+
* @param onChange Invoked with the newly decoded account data on each accepted update.
|
|
97
|
+
* @throws Error if `accountPublicKey` is not a valid address per `gill`'s `isAddress`.
|
|
98
|
+
*/
|
|
91
99
|
subscribe(onChange: (data: T) => void): Promise<void>;
|
|
100
|
+
/**
|
|
101
|
+
* Seeds or overwrites `dataAndSlot` directly, bypassing RPC. A no-op if the currently cached
|
|
102
|
+
* slot is already newer than `slot`.
|
|
103
|
+
* @param data Decoded account data to store.
|
|
104
|
+
* @param slot Slot the data was observed at; defaults to 0 (the seeded sentinel) if omitted.
|
|
105
|
+
*/
|
|
92
106
|
setData(data: T, slot?: number): void;
|
|
107
|
+
/**
|
|
108
|
+
* Arms the inactivity watchdog: if no WS notification resets this timeout within
|
|
109
|
+
* `resubOpts.resubTimeoutMs`, either starts the polling fallback (`usePollingInsteadOfResub`)
|
|
110
|
+
* or tears down and recreates the WS subscription. Throws if `onChange` was never set (i.e.
|
|
111
|
+
* called outside `subscribe()`'s flow).
|
|
112
|
+
*/
|
|
93
113
|
protected setTimeout(): void;
|
|
94
114
|
/**
|
|
95
115
|
* Start the polling loop (single-account).
|
|
@@ -103,9 +123,20 @@ export declare class WebSocketAccountSubscriberV2<T> implements AccountSubscribe
|
|
|
103
123
|
* decoding and update pathway as WS notifications.
|
|
104
124
|
*/
|
|
105
125
|
fetch(): Promise<void>;
|
|
126
|
+
/**
|
|
127
|
+
* Applies a raw `gill` RPC/WS response: decodes (base58 or base64) and stores it (updating
|
|
128
|
+
* `bufferAndSlot`/`dataAndSlot` and invoking `onChange`) only if the slot is not older than
|
|
129
|
+
* the cached one and the buffer's bytes actually changed (or this is the first observation).
|
|
130
|
+
*/
|
|
106
131
|
handleRpcResponse(context: {
|
|
107
132
|
slot: bigint;
|
|
108
133
|
}, accountInfo?: AccountInfoBase & (AccountInfoWithBase58EncodedData | AccountInfoWithBase64EncodedData)): void;
|
|
134
|
+
/** Decodes a raw account buffer using the constructor-supplied `decodeBufferFn`, or the program's Anchor coder for `accountName` if none was supplied. */
|
|
109
135
|
decodeBuffer(buffer: Buffer): T;
|
|
136
|
+
/**
|
|
137
|
+
* Tears down the WebSocket subscription (via `abortController`) and cancels any pending resub
|
|
138
|
+
* timeout and in-progress polling.
|
|
139
|
+
* @param onResub Internal flag set to `true` when called as part of an automatic resubscribe cycle, which preserves `resubOpts.resubTimeoutMs` instead of clearing it. Callers should omit this.
|
|
140
|
+
*/
|
|
110
141
|
unsubscribe(onResub?: boolean): Promise<void>;
|
|
111
142
|
}
|