@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
package/lib/browser/wallet.d.ts
CHANGED
|
@@ -1,16 +1,53 @@
|
|
|
1
1
|
import { Keypair, PublicKey, Transaction, VersionedTransaction } from '@solana/web3.js';
|
|
2
2
|
import { IWallet, IVersionedWallet } from './types';
|
|
3
|
+
/**
|
|
4
|
+
* Local-keypair implementation of `IWallet`/`IVersionedWallet` that signs directly with an
|
|
5
|
+
* in-memory `Keypair` (no external wallet/RPC round-trip). Suitable for keeper bots, scripts, and
|
|
6
|
+
* tests; not for browser dapps holding user funds.
|
|
7
|
+
*/
|
|
3
8
|
export declare class Wallet implements IWallet, IVersionedWallet {
|
|
4
9
|
readonly payer: Keypair;
|
|
5
10
|
constructor(payer: Keypair);
|
|
11
|
+
/**
|
|
12
|
+
* Partially signs a legacy `Transaction` with this wallet's keypair, leaving any other
|
|
13
|
+
* required signatures untouched.
|
|
14
|
+
* @param tx - Transaction to sign; mutated in place.
|
|
15
|
+
* @returns The same transaction instance, now signed by `payer`.
|
|
16
|
+
*/
|
|
6
17
|
signTransaction(tx: Transaction): Promise<Transaction>;
|
|
18
|
+
/**
|
|
19
|
+
* Signs a `VersionedTransaction` with this wallet's keypair.
|
|
20
|
+
* @param tx - Transaction to sign; mutated in place.
|
|
21
|
+
* @returns The same transaction instance, now signed by `payer`.
|
|
22
|
+
*/
|
|
7
23
|
signVersionedTransaction(tx: VersionedTransaction): Promise<VersionedTransaction>;
|
|
24
|
+
/**
|
|
25
|
+
* Partially signs a batch of legacy `Transaction`s with this wallet's keypair.
|
|
26
|
+
* @param txs - Transactions to sign; each is mutated in place.
|
|
27
|
+
* @returns The same transaction instances, now signed by `payer`.
|
|
28
|
+
*/
|
|
8
29
|
signAllTransactions(txs: Transaction[]): Promise<Transaction[]>;
|
|
30
|
+
/**
|
|
31
|
+
* Signs a batch of `VersionedTransaction`s with this wallet's keypair.
|
|
32
|
+
* @param txs - Transactions to sign; each is mutated in place.
|
|
33
|
+
* @returns The same transaction instances, now signed by `payer`.
|
|
34
|
+
*/
|
|
9
35
|
signAllVersionedTransactions(txs: VersionedTransaction[]): Promise<VersionedTransaction[]>;
|
|
36
|
+
/** The wallet's public key, i.e. `payer.publicKey`. */
|
|
10
37
|
get publicKey(): PublicKey;
|
|
11
38
|
}
|
|
39
|
+
/**
|
|
40
|
+
* `Wallet` variant that additionally supports raw message signing (`signMessage`), needed for
|
|
41
|
+
* flows like swift/signed-message orders that sign an ed25519 payload outside of a transaction.
|
|
42
|
+
*/
|
|
12
43
|
export declare class WalletV2 extends Wallet {
|
|
13
44
|
readonly payer: Keypair;
|
|
14
45
|
constructor(payer: Keypair);
|
|
46
|
+
/**
|
|
47
|
+
* Signs an arbitrary message with this wallet's ed25519 secret key (detached signature, not a
|
|
48
|
+
* transaction).
|
|
49
|
+
* @param message - Raw bytes to sign.
|
|
50
|
+
* @returns The 64-byte detached ed25519 signature.
|
|
51
|
+
*/
|
|
15
52
|
signMessage(message: Uint8Array): Promise<Uint8Array>;
|
|
16
53
|
}
|
package/lib/browser/wallet.js
CHANGED
|
@@ -5,40 +5,77 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.WalletV2 = exports.Wallet = void 0;
|
|
7
7
|
const tweetnacl_1 = __importDefault(require("tweetnacl"));
|
|
8
|
+
/**
|
|
9
|
+
* Local-keypair implementation of `IWallet`/`IVersionedWallet` that signs directly with an
|
|
10
|
+
* in-memory `Keypair` (no external wallet/RPC round-trip). Suitable for keeper bots, scripts, and
|
|
11
|
+
* tests; not for browser dapps holding user funds.
|
|
12
|
+
*/
|
|
8
13
|
class Wallet {
|
|
9
14
|
constructor(payer) {
|
|
10
15
|
this.payer = payer;
|
|
11
16
|
}
|
|
17
|
+
/**
|
|
18
|
+
* Partially signs a legacy `Transaction` with this wallet's keypair, leaving any other
|
|
19
|
+
* required signatures untouched.
|
|
20
|
+
* @param tx - Transaction to sign; mutated in place.
|
|
21
|
+
* @returns The same transaction instance, now signed by `payer`.
|
|
22
|
+
*/
|
|
12
23
|
async signTransaction(tx) {
|
|
13
24
|
tx.partialSign(this.payer);
|
|
14
25
|
return tx;
|
|
15
26
|
}
|
|
27
|
+
/**
|
|
28
|
+
* Signs a `VersionedTransaction` with this wallet's keypair.
|
|
29
|
+
* @param tx - Transaction to sign; mutated in place.
|
|
30
|
+
* @returns The same transaction instance, now signed by `payer`.
|
|
31
|
+
*/
|
|
16
32
|
async signVersionedTransaction(tx) {
|
|
17
33
|
tx.sign([this.payer]);
|
|
18
34
|
return tx;
|
|
19
35
|
}
|
|
36
|
+
/**
|
|
37
|
+
* Partially signs a batch of legacy `Transaction`s with this wallet's keypair.
|
|
38
|
+
* @param txs - Transactions to sign; each is mutated in place.
|
|
39
|
+
* @returns The same transaction instances, now signed by `payer`.
|
|
40
|
+
*/
|
|
20
41
|
async signAllTransactions(txs) {
|
|
21
42
|
return txs.map((t) => {
|
|
22
43
|
t.partialSign(this.payer);
|
|
23
44
|
return t;
|
|
24
45
|
});
|
|
25
46
|
}
|
|
47
|
+
/**
|
|
48
|
+
* Signs a batch of `VersionedTransaction`s with this wallet's keypair.
|
|
49
|
+
* @param txs - Transactions to sign; each is mutated in place.
|
|
50
|
+
* @returns The same transaction instances, now signed by `payer`.
|
|
51
|
+
*/
|
|
26
52
|
async signAllVersionedTransactions(txs) {
|
|
27
53
|
return txs.map((t) => {
|
|
28
54
|
t.sign([this.payer]);
|
|
29
55
|
return t;
|
|
30
56
|
});
|
|
31
57
|
}
|
|
58
|
+
/** The wallet's public key, i.e. `payer.publicKey`. */
|
|
32
59
|
get publicKey() {
|
|
33
60
|
return this.payer.publicKey;
|
|
34
61
|
}
|
|
35
62
|
}
|
|
36
63
|
exports.Wallet = Wallet;
|
|
64
|
+
/**
|
|
65
|
+
* `Wallet` variant that additionally supports raw message signing (`signMessage`), needed for
|
|
66
|
+
* flows like swift/signed-message orders that sign an ed25519 payload outside of a transaction.
|
|
67
|
+
*/
|
|
37
68
|
class WalletV2 extends Wallet {
|
|
38
69
|
constructor(payer) {
|
|
39
70
|
super(payer);
|
|
40
71
|
this.payer = payer;
|
|
41
72
|
}
|
|
73
|
+
/**
|
|
74
|
+
* Signs an arbitrary message with this wallet's ed25519 secret key (detached signature, not a
|
|
75
|
+
* transaction).
|
|
76
|
+
* @param message - Raw bytes to sign.
|
|
77
|
+
* @returns The 64-byte detached ed25519 signature.
|
|
78
|
+
*/
|
|
42
79
|
async signMessage(message) {
|
|
43
80
|
return Buffer.from(tweetnacl_1.default.sign.detached(message, this.payer.secretKey));
|
|
44
81
|
}
|
|
@@ -15,16 +15,34 @@ export declare class BasicUserAccountSubscriber implements UserAccountSubscriber
|
|
|
15
15
|
callbackId?: string;
|
|
16
16
|
errorCallbackId?: string;
|
|
17
17
|
user?: DataAndSlot<UserAccount>;
|
|
18
|
+
/**
|
|
19
|
+
* @param userAccountPublicKey Address of the `UserAccount` this subscriber represents (not fetched — used only for identity).
|
|
20
|
+
* @param data Optional decoded account data to seed with; if omitted, `getUserAccountAndSlot()` returns undefined until `updateData` is called.
|
|
21
|
+
* @param slot Slot `data` was observed at; defaults to 0 (the seeded sentinel) if omitted.
|
|
22
|
+
*/
|
|
18
23
|
constructor(userAccountPublicKey: PublicKey, data?: UserAccount, slot?: number);
|
|
24
|
+
/** No-op; this subscriber never performs network I/O. Always resolves `true` since `isSubscribed` is already `true` from construction. */
|
|
19
25
|
subscribe(_userAccount?: UserAccount): Promise<boolean>;
|
|
20
26
|
addToAccountLoader(): Promise<void>;
|
|
27
|
+
/** No-op; this subscriber never fetches. Data only changes via `updateData`. */
|
|
21
28
|
fetch(): Promise<void>;
|
|
29
|
+
/** Type predicate: true once `user` has been seeded or set via `updateData`, narrowing `this.user` to non-undefined. */
|
|
22
30
|
doesAccountExist(): this is {
|
|
23
31
|
user: DataAndSlot<UserAccount>;
|
|
24
32
|
};
|
|
33
|
+
/** No-op; there is no live subscription to tear down. */
|
|
25
34
|
unsubscribe(): Promise<void>;
|
|
35
|
+
/** No-op; this subscriber is always considered subscribed and never throws `NotSubscribedError`. */
|
|
26
36
|
assertIsSubscribed(): void;
|
|
37
|
+
/** Returns the currently cached data/slot, or undefined if never seeded/updated. Never throws (unlike other implementations, this subscriber has no "not subscribed" state). */
|
|
27
38
|
getUserAccountAndSlot(): DataAndSlot<UserAccount> | undefined;
|
|
39
|
+
/**
|
|
40
|
+
* Applies an externally-obtained account update if `slot` is not older than the currently
|
|
41
|
+
* cached slot, emitting `userAccountUpdate`/`update` on acceptance. This is the only way this
|
|
42
|
+
* subscriber's data changes after construction.
|
|
43
|
+
* @param userAccount Decoded account data to apply.
|
|
44
|
+
* @param slot Slot the data was observed at.
|
|
45
|
+
*/
|
|
28
46
|
updateData(userAccount: UserAccount, slot: number): void;
|
|
29
47
|
}
|
|
30
48
|
//# sourceMappingURL=basicUserAccountSubscriber.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"basicUserAccountSubscriber.d.ts","sourceRoot":"","sources":["../../../src/accounts/basicUserAccountSubscriber.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAChF,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,kBAAkB,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEvC;;;GAGG;AACH,qBAAa,0BAA2B,YAAW,qBAAqB;IACvE,YAAY,EAAE,OAAO,CAAC;IACtB,YAAY,EAAE,kBAAkB,CAAC,YAAY,EAAE,iBAAiB,CAAC,CAAC;IAClE,oBAAoB,EAAE,SAAS,CAAC;IAEhC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,IAAI,CAAC,EAAE,WAAW,CAAC,WAAW,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"basicUserAccountSubscriber.d.ts","sourceRoot":"","sources":["../../../src/accounts/basicUserAccountSubscriber.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAChF,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,kBAAkB,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEvC;;;GAGG;AACH,qBAAa,0BAA2B,YAAW,qBAAqB;IACvE,YAAY,EAAE,OAAO,CAAC;IACtB,YAAY,EAAE,kBAAkB,CAAC,YAAY,EAAE,iBAAiB,CAAC,CAAC;IAClE,oBAAoB,EAAE,SAAS,CAAC;IAEhC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,IAAI,CAAC,EAAE,WAAW,CAAC,WAAW,CAAC,CAAC;IAEhC;;;;OAIG;gBAEF,oBAAoB,EAAE,SAAS,EAC/B,IAAI,CAAC,EAAE,WAAW,EAClB,IAAI,CAAC,EAAE,MAAM;IAUd,0IAA0I;IACpI,SAAS,CAAC,YAAY,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC;IAIvD,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC;IAEzC,gFAAgF;IAC1E,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAE5B,wHAAwH;IACxH,gBAAgB,IAAI,IAAI,IAAI;QAAE,IAAI,EAAE,WAAW,CAAC,WAAW,CAAC,CAAA;KAAE;IAI9D,yDAAyD;IACnD,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAElC,oGAAoG;IACpG,kBAAkB,IAAI,IAAI;IAE1B,gLAAgL;IACzK,qBAAqB,IAAI,WAAW,CAAC,WAAW,CAAC,GAAG,SAAS;IAIpE;;;;;;OAMG;IACI,UAAU,CAAC,WAAW,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;CAO/D"}
|
|
@@ -7,6 +7,11 @@ const events_1 = require("events");
|
|
|
7
7
|
* data during initialization and will not fetch or subscribe to updates.
|
|
8
8
|
*/
|
|
9
9
|
class BasicUserAccountSubscriber {
|
|
10
|
+
/**
|
|
11
|
+
* @param userAccountPublicKey Address of the `UserAccount` this subscriber represents (not fetched — used only for identity).
|
|
12
|
+
* @param data Optional decoded account data to seed with; if omitted, `getUserAccountAndSlot()` returns undefined until `updateData` is called.
|
|
13
|
+
* @param slot Slot `data` was observed at; defaults to 0 (the seeded sentinel) if omitted.
|
|
14
|
+
*/
|
|
10
15
|
constructor(userAccountPublicKey, data, slot) {
|
|
11
16
|
this.isSubscribed = true;
|
|
12
17
|
this.eventEmitter = new events_1.EventEmitter();
|
|
@@ -15,19 +20,32 @@ class BasicUserAccountSubscriber {
|
|
|
15
20
|
// slot (0 = oldest-possible sentinel, overwritten by the first real fetch).
|
|
16
21
|
this.user = data ? { data, slot: slot !== null && slot !== void 0 ? slot : 0 } : undefined;
|
|
17
22
|
}
|
|
23
|
+
/** No-op; this subscriber never performs network I/O. Always resolves `true` since `isSubscribed` is already `true` from construction. */
|
|
18
24
|
async subscribe(_userAccount) {
|
|
19
25
|
return true;
|
|
20
26
|
}
|
|
21
27
|
async addToAccountLoader() { }
|
|
28
|
+
/** No-op; this subscriber never fetches. Data only changes via `updateData`. */
|
|
22
29
|
async fetch() { }
|
|
30
|
+
/** Type predicate: true once `user` has been seeded or set via `updateData`, narrowing `this.user` to non-undefined. */
|
|
23
31
|
doesAccountExist() {
|
|
24
32
|
return this.user !== undefined;
|
|
25
33
|
}
|
|
34
|
+
/** No-op; there is no live subscription to tear down. */
|
|
26
35
|
async unsubscribe() { }
|
|
36
|
+
/** No-op; this subscriber is always considered subscribed and never throws `NotSubscribedError`. */
|
|
27
37
|
assertIsSubscribed() { }
|
|
38
|
+
/** Returns the currently cached data/slot, or undefined if never seeded/updated. Never throws (unlike other implementations, this subscriber has no "not subscribed" state). */
|
|
28
39
|
getUserAccountAndSlot() {
|
|
29
40
|
return this.user;
|
|
30
41
|
}
|
|
42
|
+
/**
|
|
43
|
+
* Applies an externally-obtained account update if `slot` is not older than the currently
|
|
44
|
+
* cached slot, emitting `userAccountUpdate`/`update` on acceptance. This is the only way this
|
|
45
|
+
* subscriber's data changes after construction.
|
|
46
|
+
* @param userAccount Decoded account data to apply.
|
|
47
|
+
* @param slot Slot the data was observed at.
|
|
48
|
+
*/
|
|
31
49
|
updateData(userAccount, slot) {
|
|
32
50
|
if (!this.user || slot >= this.user.slot) {
|
|
33
51
|
this.user = { data: userAccount, slot };
|
|
@@ -15,16 +15,34 @@ export declare class BasicUserStatsAccountSubscriber implements UserStatsAccount
|
|
|
15
15
|
callbackId?: string;
|
|
16
16
|
errorCallbackId?: string;
|
|
17
17
|
userStats?: DataAndSlot<UserStatsAccount>;
|
|
18
|
+
/**
|
|
19
|
+
* @param userStatsAccountPublicKey Address of the `UserStatsAccount` this subscriber represents (not fetched — used only for identity).
|
|
20
|
+
* @param data Optional decoded account data to seed with; if omitted, `getUserStatsAccountAndSlot()` returns undefined until `updateData` is called.
|
|
21
|
+
* @param slot Slot `data` was observed at; defaults to 0 (the seeded sentinel) if omitted.
|
|
22
|
+
*/
|
|
18
23
|
constructor(userStatsAccountPublicKey: PublicKey, data?: UserStatsAccount, slot?: number);
|
|
24
|
+
/** No-op; this subscriber never performs network I/O. Always resolves `true` since `isSubscribed` is already `true` from construction. */
|
|
19
25
|
subscribe(_userStatsAccount?: UserStatsAccount): Promise<boolean>;
|
|
20
26
|
addToAccountLoader(): Promise<void>;
|
|
27
|
+
/** No-op; this subscriber never fetches. Data only changes via `updateData`. */
|
|
21
28
|
fetch(): Promise<void>;
|
|
29
|
+
/** Type predicate: true once `userStats` has been seeded or set via `updateData`, narrowing `this.userStats` to non-undefined. */
|
|
22
30
|
doesAccountExist(): this is {
|
|
23
31
|
userStats: DataAndSlot<UserStatsAccount>;
|
|
24
32
|
};
|
|
33
|
+
/** No-op; there is no live subscription to tear down. */
|
|
25
34
|
unsubscribe(): Promise<void>;
|
|
35
|
+
/** No-op; this subscriber is always considered subscribed and never throws `NotSubscribedError`. */
|
|
26
36
|
assertIsSubscribed(): void;
|
|
37
|
+
/** Returns the currently cached data/slot, or undefined if never seeded/updated. Never throws (unlike other implementations, this subscriber has no "not subscribed" state). */
|
|
27
38
|
getUserStatsAccountAndSlot(): DataAndSlot<UserStatsAccount> | undefined;
|
|
39
|
+
/**
|
|
40
|
+
* Applies an externally-obtained account update if `slot` is not older than the currently
|
|
41
|
+
* cached slot, emitting `userStatsAccountUpdate`/`update` on acceptance. This is the only way
|
|
42
|
+
* this subscriber's data changes after construction.
|
|
43
|
+
* @param userStatsAccount Decoded account data to apply.
|
|
44
|
+
* @param slot Slot the data was observed at.
|
|
45
|
+
*/
|
|
28
46
|
updateData(userStatsAccount: UserStatsAccount, slot: number): void;
|
|
29
47
|
}
|
|
30
48
|
//# sourceMappingURL=basicUserStatsAccountSubscriber.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"basicUserStatsAccountSubscriber.d.ts","sourceRoot":"","sources":["../../../src/accounts/basicUserStatsAccountSubscriber.ts"],"names":[],"mappings":";AAAA,OAAO,EACN,WAAW,EACX,sBAAsB,EACtB,0BAA0B,EAC1B,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,kBAAkB,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAE5C;;;GAGG;AACH,qBAAa,+BACZ,YAAW,0BAA0B;IAErC,YAAY,EAAE,OAAO,CAAC;IACtB,YAAY,EAAE,kBAAkB,CAAC,YAAY,EAAE,sBAAsB,CAAC,CAAC;IACvE,yBAAyB,EAAE,SAAS,CAAC;IAErC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,SAAS,CAAC,EAAE,WAAW,CAAC,gBAAgB,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"basicUserStatsAccountSubscriber.d.ts","sourceRoot":"","sources":["../../../src/accounts/basicUserStatsAccountSubscriber.ts"],"names":[],"mappings":";AAAA,OAAO,EACN,WAAW,EACX,sBAAsB,EACtB,0BAA0B,EAC1B,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,kBAAkB,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAE5C;;;GAGG;AACH,qBAAa,+BACZ,YAAW,0BAA0B;IAErC,YAAY,EAAE,OAAO,CAAC;IACtB,YAAY,EAAE,kBAAkB,CAAC,YAAY,EAAE,sBAAsB,CAAC,CAAC;IACvE,yBAAyB,EAAE,SAAS,CAAC;IAErC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,SAAS,CAAC,EAAE,WAAW,CAAC,gBAAgB,CAAC,CAAC;IAE1C;;;;OAIG;gBAEF,yBAAyB,EAAE,SAAS,EACpC,IAAI,CAAC,EAAE,gBAAgB,EACvB,IAAI,CAAC,EAAE,MAAM;IAUd,0IAA0I;IACpI,SAAS,CAAC,iBAAiB,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC;IAIjE,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC;IAEzC,gFAAgF;IAC1E,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAE5B,kIAAkI;IAClI,gBAAgB,IAAI,IAAI,IAAI;QAAE,SAAS,EAAE,WAAW,CAAC,gBAAgB,CAAC,CAAA;KAAE;IAIxE,yDAAyD;IACnD,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAElC,oGAAoG;IACpG,kBAAkB,IAAI,IAAI;IAE1B,gLAAgL;IACzK,0BAA0B,IAC9B,WAAW,CAAC,gBAAgB,CAAC,GAC7B,SAAS;IAIZ;;;;;;OAMG;IACI,UAAU,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;CAOzE"}
|
|
@@ -7,6 +7,11 @@ const events_1 = require("events");
|
|
|
7
7
|
* data during initialization and will not fetch or subscribe to updates.
|
|
8
8
|
*/
|
|
9
9
|
class BasicUserStatsAccountSubscriber {
|
|
10
|
+
/**
|
|
11
|
+
* @param userStatsAccountPublicKey Address of the `UserStatsAccount` this subscriber represents (not fetched — used only for identity).
|
|
12
|
+
* @param data Optional decoded account data to seed with; if omitted, `getUserStatsAccountAndSlot()` returns undefined until `updateData` is called.
|
|
13
|
+
* @param slot Slot `data` was observed at; defaults to 0 (the seeded sentinel) if omitted.
|
|
14
|
+
*/
|
|
10
15
|
constructor(userStatsAccountPublicKey, data, slot) {
|
|
11
16
|
this.isSubscribed = true;
|
|
12
17
|
this.eventEmitter = new events_1.EventEmitter();
|
|
@@ -15,19 +20,32 @@ class BasicUserStatsAccountSubscriber {
|
|
|
15
20
|
// slot (0 = oldest-possible sentinel, overwritten by the first real fetch).
|
|
16
21
|
this.userStats = data ? { data, slot: slot !== null && slot !== void 0 ? slot : 0 } : undefined;
|
|
17
22
|
}
|
|
23
|
+
/** No-op; this subscriber never performs network I/O. Always resolves `true` since `isSubscribed` is already `true` from construction. */
|
|
18
24
|
async subscribe(_userStatsAccount) {
|
|
19
25
|
return true;
|
|
20
26
|
}
|
|
21
27
|
async addToAccountLoader() { }
|
|
28
|
+
/** No-op; this subscriber never fetches. Data only changes via `updateData`. */
|
|
22
29
|
async fetch() { }
|
|
30
|
+
/** Type predicate: true once `userStats` has been seeded or set via `updateData`, narrowing `this.userStats` to non-undefined. */
|
|
23
31
|
doesAccountExist() {
|
|
24
32
|
return this.userStats !== undefined;
|
|
25
33
|
}
|
|
34
|
+
/** No-op; there is no live subscription to tear down. */
|
|
26
35
|
async unsubscribe() { }
|
|
36
|
+
/** No-op; this subscriber is always considered subscribed and never throws `NotSubscribedError`. */
|
|
27
37
|
assertIsSubscribed() { }
|
|
38
|
+
/** Returns the currently cached data/slot, or undefined if never seeded/updated. Never throws (unlike other implementations, this subscriber has no "not subscribed" state). */
|
|
28
39
|
getUserStatsAccountAndSlot() {
|
|
29
40
|
return this.userStats;
|
|
30
41
|
}
|
|
42
|
+
/**
|
|
43
|
+
* Applies an externally-obtained account update if `slot` is not older than the currently
|
|
44
|
+
* cached slot, emitting `userStatsAccountUpdate`/`update` on acceptance. This is the only way
|
|
45
|
+
* this subscriber's data changes after construction.
|
|
46
|
+
* @param userStatsAccount Decoded account data to apply.
|
|
47
|
+
* @param slot Slot the data was observed at.
|
|
48
|
+
*/
|
|
31
49
|
updateData(userStatsAccount, slot) {
|
|
32
50
|
if (!this.userStats || slot >= this.userStats.slot) {
|
|
33
51
|
this.userStats = { data: userStatsAccount, slot };
|
|
@@ -3,10 +3,22 @@
|
|
|
3
3
|
import { Commitment, PublicKey } from '@solana/web3.js';
|
|
4
4
|
import { BufferAndSlot } from './types';
|
|
5
5
|
import { Connection } from '../bankrun/bankrunConnection';
|
|
6
|
+
/** An account registered with a `BulkAccountLoader`, along with every callback subscribed to its updates (keyed by callback id). */
|
|
6
7
|
export type AccountToLoad = {
|
|
7
8
|
publicKey: PublicKey;
|
|
8
9
|
callbacks: Map<string, (buffer: Buffer, slot: number) => void>;
|
|
9
10
|
};
|
|
11
|
+
/**
|
|
12
|
+
* Batches many accounts behind a single periodic `getMultipleAccounts` RPC poll instead of one
|
|
13
|
+
* WebSocket subscription per account. Multiple independent callbacks (e.g. from different
|
|
14
|
+
* `PollingUserAccountSubscriber`/`PollingVelocityClientAccountSubscriber` instances) can register
|
|
15
|
+
* against the same `publicKey`; polling starts automatically on the first `addAccount` and stops
|
|
16
|
+
* when the last callback for the last account is removed. A buffer is only re-delivered to
|
|
17
|
+
* callbacks when its slot is not older than the last-seen slot for that account and its bytes
|
|
18
|
+
* actually changed, so a callback never observes a stale or duplicate update. `load()` calls are
|
|
19
|
+
* coalesced: concurrent callers share one in-flight RPC batch rather than issuing redundant
|
|
20
|
+
* requests.
|
|
21
|
+
*/
|
|
10
22
|
export declare class BulkAccountLoader {
|
|
11
23
|
connection: Connection;
|
|
12
24
|
commitment: Commitment;
|
|
@@ -19,20 +31,60 @@ export declare class BulkAccountLoader {
|
|
|
19
31
|
private loadPromiseResolver;
|
|
20
32
|
lastTimeLoadingPromiseCleared: number;
|
|
21
33
|
mostRecentSlot: number;
|
|
34
|
+
/**
|
|
35
|
+
* @param connection Connection (or bankrun-compatible shim) used for the batched `getMultipleAccounts` polls.
|
|
36
|
+
* @param commitment Commitment level applied to every poll.
|
|
37
|
+
* @param pollingFrequency Poll interval in ms; `0` disables automatic polling (`startPolling` becomes a no-op), useful when the loader is driven manually via `load()`.
|
|
38
|
+
*/
|
|
22
39
|
constructor(connection: Connection, commitment: Commitment, pollingFrequency: number);
|
|
40
|
+
/**
|
|
41
|
+
* Registers a callback to be invoked whenever `publicKey`'s account data changes on a poll.
|
|
42
|
+
* Multiple callbacks may be registered for the same account. Starts polling automatically if
|
|
43
|
+
* this is the loader's first account. Awaits any in-flight `load()` before returning so a
|
|
44
|
+
* caller can immediately follow with its own `load()` without racing the poll interval.
|
|
45
|
+
* @param publicKey Account to track.
|
|
46
|
+
* @param callback Invoked with the raw account buffer and the slot it was fetched at whenever the buffer changes at a non-decreasing slot.
|
|
47
|
+
* @returns A callback id to pass to `removeAccount` later.
|
|
48
|
+
*/
|
|
23
49
|
addAccount(publicKey: PublicKey, callback: (buffer: Buffer, slot: number) => void): Promise<string>;
|
|
50
|
+
/**
|
|
51
|
+
* Unregisters a callback previously returned by `addAccount`. Once an account has no
|
|
52
|
+
* remaining callbacks, its cached buffer/slot is dropped and it stops being polled; if no
|
|
53
|
+
* accounts remain at all, polling stops entirely. A no-op if `callbackId` is undefined.
|
|
54
|
+
* @param publicKey Account the callback was registered against.
|
|
55
|
+
* @param callbackId Id returned by `addAccount`.
|
|
56
|
+
*/
|
|
24
57
|
removeAccount(publicKey: PublicKey, callbackId: string | undefined): void;
|
|
58
|
+
/**
|
|
59
|
+
* Registers a callback invoked whenever a `load()` batch throws (e.g. RPC failure or timeout).
|
|
60
|
+
* The loader continues polling afterward; errors do not stop the interval.
|
|
61
|
+
* @returns A callback id to pass to `removeErrorCallbacks` later.
|
|
62
|
+
*/
|
|
25
63
|
addErrorCallbacks(callback: (error: Error) => void): string;
|
|
64
|
+
/** Unregisters an error callback previously returned by `addErrorCallbacks`. A no-op if `callbackId` is undefined. */
|
|
26
65
|
removeErrorCallbacks(callbackId: string | undefined): void;
|
|
27
66
|
chunks<T>(array: readonly T[], size: number): T[][];
|
|
67
|
+
/**
|
|
68
|
+
* Fetches every registered account in one or more chunked, concurrent `getMultipleAccounts`
|
|
69
|
+
* batches (via `loadChunk`) and dispatches changed accounts to their callbacks. Concurrent
|
|
70
|
+
* calls while a load is already in flight share that same in-flight promise rather than
|
|
71
|
+
* issuing a duplicate RPC batch, unless the previous load has been running for over a minute
|
|
72
|
+
* (treated as stuck and restarted). On failure, invokes every registered error callback
|
|
73
|
+
* instead of throwing.
|
|
74
|
+
*/
|
|
28
75
|
load(): Promise<void>;
|
|
29
76
|
loadChunk(accountsToLoadChunks: AccountToLoad[][]): Promise<void>;
|
|
30
77
|
handleAccountCallbacks(accountToLoad: AccountToLoad, buffer: Buffer | undefined, slot: number): void;
|
|
78
|
+
/** Returns the last-fetched raw buffer/slot for `publicKey`, or undefined if it has never been loaded. */
|
|
31
79
|
getBufferAndSlot(publicKey: PublicKey): BufferAndSlot | undefined;
|
|
80
|
+
/** Returns the highest slot number observed across any account fetched by this loader so far. */
|
|
32
81
|
getSlot(): number;
|
|
82
|
+
/** Starts the polling interval if not already running and `pollingFrequency !== 0`. Called automatically by `addAccount`. */
|
|
33
83
|
startPolling(): void;
|
|
84
|
+
/** Stops the polling interval, if running. Called automatically by `removeAccount` once no accounts remain. */
|
|
34
85
|
stopPolling(): void;
|
|
35
86
|
log(msg: string): void;
|
|
87
|
+
/** Restarts polling at a new interval (ms), preserving all registered accounts and callbacks. */
|
|
36
88
|
updatePollingFrequency(pollingFrequency: number): void;
|
|
37
89
|
}
|
|
38
90
|
//# sourceMappingURL=bulkAccountLoader.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bulkAccountLoader.d.ts","sourceRoot":"","sources":["../../../src/accounts/bulkAccountLoader.ts"],"names":[],"mappings":";;AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAExD,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAExC,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAG1D,MAAM,MAAM,aAAa,GAAG;IAC3B,SAAS,EAAE,SAAS,CAAC;IACrB,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC,CAAC;CAC/D,CAAC;AAIF,qBAAa,iBAAiB;IAC7B,UAAU,EAAE,UAAU,CAAC;IACvB,UAAU,EAAE,UAAU,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,6BAAoC;IAClD,gBAAgB,6BAAoC;IACpD,cAAc,kBAAuB,KAAK,KAAK,IAAI,EAAI;IACvD,UAAU,CAAC,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC;IAE3C,WAAW,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,OAAO,CAAC,mBAAmB,CAAwB;IACnD,6BAA6B,SAAc;IAC3C,cAAc,SAAK;
|
|
1
|
+
{"version":3,"file":"bulkAccountLoader.d.ts","sourceRoot":"","sources":["../../../src/accounts/bulkAccountLoader.ts"],"names":[],"mappings":";;AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAExD,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAExC,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAG1D,oIAAoI;AACpI,MAAM,MAAM,aAAa,GAAG;IAC3B,SAAS,EAAE,SAAS,CAAC;IACrB,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC,CAAC;CAC/D,CAAC;AAIF;;;;;;;;;;GAUG;AACH,qBAAa,iBAAiB;IAC7B,UAAU,EAAE,UAAU,CAAC;IACvB,UAAU,EAAE,UAAU,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,6BAAoC;IAClD,gBAAgB,6BAAoC;IACpD,cAAc,kBAAuB,KAAK,KAAK,IAAI,EAAI;IACvD,UAAU,CAAC,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC;IAE3C,WAAW,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,OAAO,CAAC,mBAAmB,CAAwB;IACnD,6BAA6B,SAAc;IAC3C,cAAc,SAAK;IAEnB;;;;OAIG;gBAEF,UAAU,EAAE,UAAU,EACtB,UAAU,EAAE,UAAU,EACtB,gBAAgB,EAAE,MAAM;IAOzB;;;;;;;;OAQG;IACU,UAAU,CACtB,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,GAC9C,OAAO,CAAC,MAAM,CAAC;IAkClB;;;;;;OAMG;IACI,aAAa,CACnB,SAAS,EAAE,SAAS,EACpB,UAAU,EAAE,MAAM,GAAG,SAAS,GAC5B,IAAI;IAkBP;;;;OAIG;IACI,iBAAiB,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,GAAG,MAAM;IAMlE,sHAAsH;IAC/G,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IAOjE,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC,EAAE,EAAE;IAOnD;;;;;;;OAOG;IACU,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IA0C5B,SAAS,CAAC,oBAAoB,EAAE,aAAa,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAsFvE,sBAAsB,CACrB,aAAa,EAAE,aAAa,EAC5B,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,IAAI,EAAE,MAAM,GACV,IAAI;IAmBP,0GAA0G;IACnG,gBAAgB,CAAC,SAAS,EAAE,SAAS,GAAG,aAAa,GAAG,SAAS;IAIxE,iGAAiG;IAC1F,OAAO,IAAI,MAAM;IAIxB,6HAA6H;IACtH,YAAY,IAAI,IAAI;IAY3B,+GAA+G;IACxG,WAAW,IAAI,IAAI;IAOnB,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAI7B,iGAAiG;IAC1F,sBAAsB,CAAC,gBAAgB,EAAE,MAAM,GAAG,IAAI;CAO7D"}
|
|
@@ -5,7 +5,23 @@ const uuid_1 = require("uuid");
|
|
|
5
5
|
const promiseTimeout_1 = require("../util/promiseTimeout");
|
|
6
6
|
const numericConstants_1 = require("../constants/numericConstants");
|
|
7
7
|
const oneMinute = 60 * 1000;
|
|
8
|
+
/**
|
|
9
|
+
* Batches many accounts behind a single periodic `getMultipleAccounts` RPC poll instead of one
|
|
10
|
+
* WebSocket subscription per account. Multiple independent callbacks (e.g. from different
|
|
11
|
+
* `PollingUserAccountSubscriber`/`PollingVelocityClientAccountSubscriber` instances) can register
|
|
12
|
+
* against the same `publicKey`; polling starts automatically on the first `addAccount` and stops
|
|
13
|
+
* when the last callback for the last account is removed. A buffer is only re-delivered to
|
|
14
|
+
* callbacks when its slot is not older than the last-seen slot for that account and its bytes
|
|
15
|
+
* actually changed, so a callback never observes a stale or duplicate update. `load()` calls are
|
|
16
|
+
* coalesced: concurrent callers share one in-flight RPC batch rather than issuing redundant
|
|
17
|
+
* requests.
|
|
18
|
+
*/
|
|
8
19
|
class BulkAccountLoader {
|
|
20
|
+
/**
|
|
21
|
+
* @param connection Connection (or bankrun-compatible shim) used for the batched `getMultipleAccounts` polls.
|
|
22
|
+
* @param commitment Commitment level applied to every poll.
|
|
23
|
+
* @param pollingFrequency Poll interval in ms; `0` disables automatic polling (`startPolling` becomes a no-op), useful when the loader is driven manually via `load()`.
|
|
24
|
+
*/
|
|
9
25
|
constructor(connection, commitment, pollingFrequency) {
|
|
10
26
|
this.accountsToLoad = new Map();
|
|
11
27
|
this.bufferAndSlotMap = new Map();
|
|
@@ -17,6 +33,15 @@ class BulkAccountLoader {
|
|
|
17
33
|
this.commitment = commitment;
|
|
18
34
|
this.pollingFrequency = pollingFrequency;
|
|
19
35
|
}
|
|
36
|
+
/**
|
|
37
|
+
* Registers a callback to be invoked whenever `publicKey`'s account data changes on a poll.
|
|
38
|
+
* Multiple callbacks may be registered for the same account. Starts polling automatically if
|
|
39
|
+
* this is the loader's first account. Awaits any in-flight `load()` before returning so a
|
|
40
|
+
* caller can immediately follow with its own `load()` without racing the poll interval.
|
|
41
|
+
* @param publicKey Account to track.
|
|
42
|
+
* @param callback Invoked with the raw account buffer and the slot it was fetched at whenever the buffer changes at a non-decreasing slot.
|
|
43
|
+
* @returns A callback id to pass to `removeAccount` later.
|
|
44
|
+
*/
|
|
20
45
|
async addAccount(publicKey, callback) {
|
|
21
46
|
if (!publicKey) {
|
|
22
47
|
console.trace(`Caught adding blank publickey to bulkAccountLoader`);
|
|
@@ -43,6 +68,13 @@ class BulkAccountLoader {
|
|
|
43
68
|
await this.loadPromise;
|
|
44
69
|
return callbackId;
|
|
45
70
|
}
|
|
71
|
+
/**
|
|
72
|
+
* Unregisters a callback previously returned by `addAccount`. Once an account has no
|
|
73
|
+
* remaining callbacks, its cached buffer/slot is dropped and it stops being polled; if no
|
|
74
|
+
* accounts remain at all, polling stops entirely. A no-op if `callbackId` is undefined.
|
|
75
|
+
* @param publicKey Account the callback was registered against.
|
|
76
|
+
* @param callbackId Id returned by `addAccount`.
|
|
77
|
+
*/
|
|
46
78
|
removeAccount(publicKey, callbackId) {
|
|
47
79
|
if (callbackId === undefined) {
|
|
48
80
|
return;
|
|
@@ -59,11 +91,17 @@ class BulkAccountLoader {
|
|
|
59
91
|
this.stopPolling();
|
|
60
92
|
}
|
|
61
93
|
}
|
|
94
|
+
/**
|
|
95
|
+
* Registers a callback invoked whenever a `load()` batch throws (e.g. RPC failure or timeout).
|
|
96
|
+
* The loader continues polling afterward; errors do not stop the interval.
|
|
97
|
+
* @returns A callback id to pass to `removeErrorCallbacks` later.
|
|
98
|
+
*/
|
|
62
99
|
addErrorCallbacks(callback) {
|
|
63
100
|
const callbackId = (0, uuid_1.v4)();
|
|
64
101
|
this.errorCallbacks.set(callbackId, callback);
|
|
65
102
|
return callbackId;
|
|
66
103
|
}
|
|
104
|
+
/** Unregisters an error callback previously returned by `addErrorCallbacks`. A no-op if `callbackId` is undefined. */
|
|
67
105
|
removeErrorCallbacks(callbackId) {
|
|
68
106
|
if (callbackId === undefined) {
|
|
69
107
|
return;
|
|
@@ -76,6 +114,14 @@ class BulkAccountLoader {
|
|
|
76
114
|
.map((_, index) => index * size)
|
|
77
115
|
.map((begin) => array.slice(begin, begin + size));
|
|
78
116
|
}
|
|
117
|
+
/**
|
|
118
|
+
* Fetches every registered account in one or more chunked, concurrent `getMultipleAccounts`
|
|
119
|
+
* batches (via `loadChunk`) and dispatches changed accounts to their callbacks. Concurrent
|
|
120
|
+
* calls while a load is already in flight share that same in-flight promise rather than
|
|
121
|
+
* issuing a duplicate RPC batch, unless the previous load has been running for over a minute
|
|
122
|
+
* (treated as stuck and restarted). On failure, invokes every registered error callback
|
|
123
|
+
* instead of throwing.
|
|
124
|
+
*/
|
|
79
125
|
async load() {
|
|
80
126
|
if (this.loadPromise) {
|
|
81
127
|
const now = Date.now();
|
|
@@ -200,12 +246,15 @@ class BulkAccountLoader {
|
|
|
200
246
|
}
|
|
201
247
|
}
|
|
202
248
|
}
|
|
249
|
+
/** Returns the last-fetched raw buffer/slot for `publicKey`, or undefined if it has never been loaded. */
|
|
203
250
|
getBufferAndSlot(publicKey) {
|
|
204
251
|
return this.bufferAndSlotMap.get(publicKey.toString());
|
|
205
252
|
}
|
|
253
|
+
/** Returns the highest slot number observed across any account fetched by this loader so far. */
|
|
206
254
|
getSlot() {
|
|
207
255
|
return this.mostRecentSlot;
|
|
208
256
|
}
|
|
257
|
+
/** Starts the polling interval if not already running and `pollingFrequency !== 0`. Called automatically by `addAccount`. */
|
|
209
258
|
startPolling() {
|
|
210
259
|
if (this.intervalId) {
|
|
211
260
|
return;
|
|
@@ -213,6 +262,7 @@ class BulkAccountLoader {
|
|
|
213
262
|
if (this.pollingFrequency !== 0)
|
|
214
263
|
this.intervalId = setInterval(this.load.bind(this), this.pollingFrequency);
|
|
215
264
|
}
|
|
265
|
+
/** Stops the polling interval, if running. Called automatically by `removeAccount` once no accounts remain. */
|
|
216
266
|
stopPolling() {
|
|
217
267
|
if (this.intervalId) {
|
|
218
268
|
clearInterval(this.intervalId);
|
|
@@ -222,6 +272,7 @@ class BulkAccountLoader {
|
|
|
222
272
|
log(msg) {
|
|
223
273
|
console.log(msg);
|
|
224
274
|
}
|
|
275
|
+
/** Restarts polling at a new interval (ms), preserving all registered accounts and callbacks. */
|
|
225
276
|
updatePollingFrequency(pollingFrequency) {
|
|
226
277
|
this.stopPolling();
|
|
227
278
|
this.pollingFrequency = pollingFrequency;
|
|
@@ -1,8 +1,15 @@
|
|
|
1
1
|
import { UserStats } from '../userStats';
|
|
2
2
|
import { BulkAccountLoader } from './bulkAccountLoader';
|
|
3
3
|
/**
|
|
4
|
-
*
|
|
5
|
-
*
|
|
4
|
+
* Subscribes many `UserStats`s that share a single `BulkAccountLoader` in one batched round trip,
|
|
5
|
+
* instead of each `UserStats.subscribe()` triggering its own `addAccount`/`load()`. Registers
|
|
6
|
+
* every account's `PollingUserStatsAccountSubscriber` with the loader first, issues one `load()`
|
|
7
|
+
* to seed all of them from a single batched `getMultipleAccounts` call, and only then calls
|
|
8
|
+
* `userStat.subscribe()` (which becomes a fast no-op fetch since data is already cached). If
|
|
9
|
+
* `userStats` is empty, still calls `accountLoader.load()` so any other accounts already
|
|
10
|
+
* registered on the loader get polled.
|
|
11
|
+
* @param userStats `UserStats` instances to subscribe; each must already be constructed with a `PollingUserStatsAccountSubscriber`.
|
|
12
|
+
* @param accountLoader Shared `BulkAccountLoader` batching the underlying RPC polls.
|
|
6
13
|
*/
|
|
7
14
|
export declare function bulkPollingUserStatsSubscribe(userStats: UserStats[], accountLoader: BulkAccountLoader): Promise<void>;
|
|
8
15
|
//# sourceMappingURL=bulkUserStatsSubscription.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bulkUserStatsSubscription.d.ts","sourceRoot":"","sources":["../../../src/accounts/bulkUserStatsSubscription.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAGxD
|
|
1
|
+
{"version":3,"file":"bulkUserStatsSubscription.d.ts","sourceRoot":"","sources":["../../../src/accounts/bulkUserStatsSubscription.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAGxD;;;;;;;;;;GAUG;AACH,wBAAsB,6BAA6B,CAClD,SAAS,EAAE,SAAS,EAAE,EACtB,aAAa,EAAE,iBAAiB,GAC9B,OAAO,CAAC,IAAI,CAAC,CAqBf"}
|
|
@@ -2,8 +2,15 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.bulkPollingUserStatsSubscribe = void 0;
|
|
4
4
|
/**
|
|
5
|
-
*
|
|
6
|
-
*
|
|
5
|
+
* Subscribes many `UserStats`s that share a single `BulkAccountLoader` in one batched round trip,
|
|
6
|
+
* instead of each `UserStats.subscribe()` triggering its own `addAccount`/`load()`. Registers
|
|
7
|
+
* every account's `PollingUserStatsAccountSubscriber` with the loader first, issues one `load()`
|
|
8
|
+
* to seed all of them from a single batched `getMultipleAccounts` call, and only then calls
|
|
9
|
+
* `userStat.subscribe()` (which becomes a fast no-op fetch since data is already cached). If
|
|
10
|
+
* `userStats` is empty, still calls `accountLoader.load()` so any other accounts already
|
|
11
|
+
* registered on the loader get polled.
|
|
12
|
+
* @param userStats `UserStats` instances to subscribe; each must already be constructed with a `PollingUserStatsAccountSubscriber`.
|
|
13
|
+
* @param accountLoader Shared `BulkAccountLoader` batching the underlying RPC polls.
|
|
7
14
|
*/
|
|
8
15
|
async function bulkPollingUserStatsSubscribe(userStats, accountLoader) {
|
|
9
16
|
if (userStats.length === 0) {
|
|
@@ -1,8 +1,14 @@
|
|
|
1
1
|
import { User } from '../user';
|
|
2
2
|
import { BulkAccountLoader } from './bulkAccountLoader';
|
|
3
3
|
/**
|
|
4
|
-
*
|
|
5
|
-
*
|
|
4
|
+
* Subscribes many `User`s that share a single `BulkAccountLoader` in one batched round trip,
|
|
5
|
+
* instead of each `User.subscribe()` triggering its own `addAccount`/`load()`. Registers every
|
|
6
|
+
* user's `PollingUserAccountSubscriber` with the loader first, issues one `load()` to seed all of
|
|
7
|
+
* them from a single batched `getMultipleAccounts` call, and only then calls `user.subscribe()`
|
|
8
|
+
* (which becomes a fast no-op fetch since data is already cached). If `users` is empty, still
|
|
9
|
+
* calls `accountLoader.load()` so any other accounts already registered on the loader get polled.
|
|
10
|
+
* @param users Users to subscribe; each must already be constructed with a `PollingUserAccountSubscriber`.
|
|
11
|
+
* @param accountLoader Shared `BulkAccountLoader` batching the underlying RPC polls.
|
|
6
12
|
*/
|
|
7
13
|
export declare function bulkPollingUserSubscribe(users: User[], accountLoader: BulkAccountLoader): Promise<void>;
|
|
8
14
|
//# sourceMappingURL=bulkUserSubscription.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bulkUserSubscription.d.ts","sourceRoot":"","sources":["../../../src/accounts/bulkUserSubscription.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAC/B,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAGxD
|
|
1
|
+
{"version":3,"file":"bulkUserSubscription.d.ts","sourceRoot":"","sources":["../../../src/accounts/bulkUserSubscription.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAC/B,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAGxD;;;;;;;;;GASG;AACH,wBAAsB,wBAAwB,CAC7C,KAAK,EAAE,IAAI,EAAE,EACb,aAAa,EAAE,iBAAiB,GAC9B,OAAO,CAAC,IAAI,CAAC,CAqBf"}
|
|
@@ -2,8 +2,14 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.bulkPollingUserSubscribe = void 0;
|
|
4
4
|
/**
|
|
5
|
-
*
|
|
6
|
-
*
|
|
5
|
+
* Subscribes many `User`s that share a single `BulkAccountLoader` in one batched round trip,
|
|
6
|
+
* instead of each `User.subscribe()` triggering its own `addAccount`/`load()`. Registers every
|
|
7
|
+
* user's `PollingUserAccountSubscriber` with the loader first, issues one `load()` to seed all of
|
|
8
|
+
* them from a single batched `getMultipleAccounts` call, and only then calls `user.subscribe()`
|
|
9
|
+
* (which becomes a fast no-op fetch since data is already cached). If `users` is empty, still
|
|
10
|
+
* calls `accountLoader.load()` so any other accounts already registered on the loader get polled.
|
|
11
|
+
* @param users Users to subscribe; each must already be constructed with a `PollingUserAccountSubscriber`.
|
|
12
|
+
* @param accountLoader Shared `BulkAccountLoader` batching the underlying RPC polls.
|
|
7
13
|
*/
|
|
8
14
|
async function bulkPollingUserSubscribe(users, accountLoader) {
|
|
9
15
|
if (users.length === 0) {
|