@velocity-exchange/sdk 0.3.0 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +51 -0
- package/lib/browser/accounts/basicUserAccountSubscriber.d.ts +18 -0
- package/lib/browser/accounts/basicUserAccountSubscriber.js +18 -0
- package/lib/browser/accounts/basicUserStatsAccountSubscriber.d.ts +18 -0
- package/lib/browser/accounts/basicUserStatsAccountSubscriber.js +18 -0
- package/lib/browser/accounts/bulkAccountLoader.d.ts +52 -0
- package/lib/browser/accounts/bulkAccountLoader.js +51 -0
- package/lib/browser/accounts/bulkUserStatsSubscription.d.ts +9 -2
- package/lib/browser/accounts/bulkUserStatsSubscription.js +9 -2
- package/lib/browser/accounts/bulkUserSubscription.d.ts +8 -2
- package/lib/browser/accounts/bulkUserSubscription.js +8 -2
- package/lib/browser/accounts/customizedCadenceBulkAccountLoader.d.ts +37 -0
- package/lib/browser/accounts/customizedCadenceBulkAccountLoader.js +37 -0
- package/lib/browser/accounts/fetch.d.ts +59 -2
- package/lib/browser/accounts/fetch.js +57 -2
- package/lib/browser/accounts/grpcAccountSubscriber.d.ts +30 -0
- package/lib/browser/accounts/grpcAccountSubscriber.js +30 -0
- package/lib/browser/accounts/grpcInsuranceFundStakeAccountSubscriber.d.ts +16 -0
- package/lib/browser/accounts/grpcInsuranceFundStakeAccountSubscriber.js +16 -0
- package/lib/browser/accounts/grpcMultiAccountSubscriber.d.ts +60 -1
- package/lib/browser/accounts/grpcMultiAccountSubscriber.js +118 -37
- package/lib/browser/accounts/grpcMultiUserAccountSubscriber.d.ts +32 -0
- package/lib/browser/accounts/grpcMultiUserAccountSubscriber.js +40 -12
- package/lib/browser/accounts/grpcProgramAccountSubscriber.d.ts +33 -0
- package/lib/browser/accounts/grpcProgramAccountSubscriber.js +33 -0
- package/lib/browser/accounts/grpcUserAccountSubscriber.d.ts +15 -0
- package/lib/browser/accounts/grpcUserAccountSubscriber.js +15 -0
- package/lib/browser/accounts/grpcUserStatsAccountSubscriber.d.ts +15 -0
- package/lib/browser/accounts/grpcUserStatsAccountSubscriber.js +15 -0
- package/lib/browser/accounts/grpcVelocityClientAccountSubscriber.d.ts +41 -0
- package/lib/browser/accounts/grpcVelocityClientAccountSubscriber.js +41 -0
- package/lib/browser/accounts/grpcVelocityClientAccountSubscriberV2.d.ts +116 -0
- package/lib/browser/accounts/grpcVelocityClientAccountSubscriberV2.js +152 -1
- package/lib/browser/accounts/laserProgramAccountSubscriber.d.ts +34 -0
- package/lib/browser/accounts/laserProgramAccountSubscriber.js +34 -0
- package/lib/browser/accounts/oneShotUserAccountSubscriber.d.ts +19 -0
- package/lib/browser/accounts/oneShotUserAccountSubscriber.js +19 -0
- package/lib/browser/accounts/oneShotUserStatsAccountSubscriber.d.ts +19 -0
- package/lib/browser/accounts/oneShotUserStatsAccountSubscriber.js +19 -0
- package/lib/browser/accounts/pollingInsuranceFundStakeAccountSubscriber.d.ts +31 -0
- package/lib/browser/accounts/pollingInsuranceFundStakeAccountSubscriber.js +31 -0
- package/lib/browser/accounts/pollingOracleAccountSubscriber.d.ts +19 -0
- package/lib/browser/accounts/pollingOracleAccountSubscriber.js +21 -2
- package/lib/browser/accounts/pollingTokenAccountSubscriber.d.ts +22 -0
- package/lib/browser/accounts/pollingTokenAccountSubscriber.js +22 -0
- package/lib/browser/accounts/pollingUserAccountSubscriber.d.ts +32 -0
- package/lib/browser/accounts/pollingUserAccountSubscriber.js +32 -0
- package/lib/browser/accounts/pollingUserStatsAccountSubscriber.d.ts +22 -0
- package/lib/browser/accounts/pollingUserStatsAccountSubscriber.js +22 -0
- package/lib/browser/accounts/pollingVelocityClientAccountSubscriber.d.ts +83 -0
- package/lib/browser/accounts/pollingVelocityClientAccountSubscriber.js +84 -1
- package/lib/browser/accounts/testBulkAccountLoader.d.ts +8 -0
- package/lib/browser/accounts/testBulkAccountLoader.js +8 -0
- package/lib/browser/accounts/types.d.ts +149 -0
- package/lib/browser/accounts/types.js +13 -0
- package/lib/browser/accounts/utils.d.ts +18 -0
- package/lib/browser/accounts/utils.js +32 -16
- package/lib/browser/accounts/webSocketAccountSubscriber.d.ts +41 -0
- package/lib/browser/accounts/webSocketAccountSubscriber.js +41 -0
- package/lib/browser/accounts/webSocketAccountSubscriberV2.d.ts +31 -0
- package/lib/browser/accounts/webSocketAccountSubscriberV2.js +31 -23
- package/lib/browser/accounts/webSocketInsuranceFundStakeAccountSubscriber.d.ts +27 -0
- package/lib/browser/accounts/webSocketInsuranceFundStakeAccountSubscriber.js +27 -0
- package/lib/browser/accounts/webSocketProgramAccountSubscriber.d.ts +36 -0
- package/lib/browser/accounts/webSocketProgramAccountSubscriber.js +36 -0
- package/lib/browser/accounts/webSocketProgramAccountSubscriberV2.d.ts +21 -0
- package/lib/browser/accounts/webSocketProgramAccountSubscriberV2.js +25 -0
- package/lib/browser/accounts/webSocketProgramAccountsSubscriberV2.d.ts +21 -0
- package/lib/browser/accounts/webSocketProgramAccountsSubscriberV2.js +21 -0
- package/lib/browser/accounts/webSocketUserAccountSubscriber.d.ts +26 -0
- package/lib/browser/accounts/webSocketUserAccountSubscriber.js +26 -0
- package/lib/browser/accounts/webSocketUserStatsAccountSubsriber.d.ts +20 -0
- package/lib/browser/accounts/webSocketUserStatsAccountSubsriber.js +20 -0
- package/lib/browser/accounts/webSocketVelocityClientAccountSubscriber.d.ts +121 -0
- package/lib/browser/accounts/webSocketVelocityClientAccountSubscriber.js +123 -2
- package/lib/browser/accounts/webSocketVelocityClientAccountSubscriberV2.d.ts +96 -0
- package/lib/browser/accounts/webSocketVelocityClientAccountSubscriberV2.js +108 -0
- package/lib/browser/accounts/websocketProgramUserAccountSubscriber.d.ts +28 -0
- package/lib/browser/accounts/websocketProgramUserAccountSubscriber.js +33 -0
- package/lib/browser/addresses/marketAddresses.d.ts +10 -0
- package/lib/browser/addresses/marketAddresses.js +10 -0
- package/lib/browser/addresses/pda.d.ts +214 -2
- package/lib/browser/addresses/pda.js +217 -5
- package/lib/browser/adminClient.d.ts +2136 -4
- package/lib/browser/adminClient.js +2150 -4
- package/lib/browser/auctionSubscriber/auctionSubscriber.d.ts +15 -0
- package/lib/browser/auctionSubscriber/auctionSubscriber.js +15 -0
- package/lib/browser/auctionSubscriber/auctionSubscriberGrpc.d.ts +19 -0
- package/lib/browser/auctionSubscriber/auctionSubscriberGrpc.js +19 -0
- package/lib/browser/auctionSubscriber/index.d.ts +6 -0
- package/lib/browser/auctionSubscriber/index.js +6 -0
- package/lib/browser/auctionSubscriber/types.d.ts +7 -0
- package/lib/browser/blockhashSubscriber/BlockhashSubscriber.d.ts +33 -0
- package/lib/browser/blockhashSubscriber/BlockhashSubscriber.js +33 -0
- package/lib/browser/blockhashSubscriber/index.d.ts +5 -0
- package/lib/browser/blockhashSubscriber/index.js +5 -0
- package/lib/browser/blockhashSubscriber/types.d.ts +5 -0
- package/lib/browser/clock/clockSubscriber.d.ts +24 -0
- package/lib/browser/clock/clockSubscriber.js +22 -0
- package/lib/browser/config.d.ts +58 -4
- package/lib/browser/config.js +88 -21
- package/lib/browser/constants/numericConstants.d.ts +67 -0
- package/lib/browser/constants/numericConstants.js +68 -1
- package/lib/browser/constants/perpMarkets.d.ts +10 -0
- package/lib/browser/constants/perpMarkets.js +40 -908
- package/lib/browser/constants/spotMarkets.d.ts +13 -0
- package/lib/browser/constants/spotMarkets.js +16 -742
- package/lib/browser/constants/txConstants.d.ts +1 -0
- package/lib/browser/constants/txConstants.js +1 -0
- package/lib/browser/core/VelocityCore.d.ts +285 -8
- package/lib/browser/core/VelocityCore.js +281 -8
- package/lib/browser/core/instructions/deposit.d.ts +22 -0
- package/lib/browser/core/instructions/deposit.js +22 -0
- package/lib/browser/core/instructions/fill.d.ts +17 -0
- package/lib/browser/core/instructions/fill.js +17 -0
- package/lib/browser/core/instructions/funding.d.ts +12 -0
- package/lib/browser/core/instructions/funding.js +12 -0
- package/lib/browser/core/instructions/liquidation.d.ts +18 -0
- package/lib/browser/core/instructions/liquidation.js +18 -0
- package/lib/browser/core/instructions/orders.d.ts +28 -0
- package/lib/browser/core/instructions/orders.js +28 -0
- package/lib/browser/core/instructions/perpOrders.d.ts +106 -0
- package/lib/browser/core/instructions/perpOrders.js +106 -0
- package/lib/browser/core/instructions/settlement.d.ts +14 -0
- package/lib/browser/core/instructions/settlement.js +14 -0
- package/lib/browser/core/instructions/trigger.d.ts +15 -0
- package/lib/browser/core/instructions/trigger.js +15 -0
- package/lib/browser/core/instructions/withdraw.d.ts +21 -0
- package/lib/browser/core/instructions/withdraw.js +21 -0
- package/lib/browser/core/remainingAccounts.d.ts +47 -3
- package/lib/browser/core/remainingAccounts.js +20 -0
- package/lib/browser/core/signedMsg.d.ts +38 -0
- package/lib/browser/core/signedMsg.js +33 -0
- package/lib/browser/decode/customCoder.d.ts +39 -3
- package/lib/browser/decode/customCoder.js +45 -3
- package/lib/browser/decode/user.d.ts +22 -0
- package/lib/browser/decode/user.js +22 -0
- package/lib/browser/dlob/DLOB.d.ts +502 -53
- package/lib/browser/dlob/DLOB.js +540 -98
- package/lib/browser/dlob/DLOBNode.d.ts +86 -4
- package/lib/browser/dlob/DLOBNode.js +37 -4
- package/lib/browser/dlob/DLOBSubscriber.d.ts +39 -12
- package/lib/browser/dlob/DLOBSubscriber.js +42 -12
- package/lib/browser/dlob/NodeList.d.ts +69 -0
- package/lib/browser/dlob/NodeList.js +66 -0
- package/lib/browser/dlob/orderBookLevels.d.ts +106 -13
- package/lib/browser/dlob/orderBookLevels.js +84 -14
- package/lib/browser/dlob/types.d.ts +15 -0
- package/lib/browser/events/eventList.d.ts +14 -0
- package/lib/browser/events/eventList.js +14 -0
- package/lib/browser/events/eventSubscriber.d.ts +87 -10
- package/lib/browser/events/eventSubscriber.js +93 -8
- package/lib/browser/events/eventsServerLogProvider.d.ts +22 -0
- package/lib/browser/events/eventsServerLogProvider.js +27 -0
- package/lib/browser/events/fetchLogs.d.ts +31 -0
- package/lib/browser/events/fetchLogs.js +46 -1
- package/lib/browser/events/parse.d.ts +23 -0
- package/lib/browser/events/parse.js +23 -0
- package/lib/browser/events/pollingLogProvider.d.ts +24 -0
- package/lib/browser/events/pollingLogProvider.js +24 -0
- package/lib/browser/events/sort.d.ts +11 -0
- package/lib/browser/events/sort.js +12 -0
- package/lib/browser/events/txEventCache.d.ts +13 -3
- package/lib/browser/events/txEventCache.js +19 -7
- package/lib/browser/events/types.d.ts +118 -2
- package/lib/browser/events/types.js +11 -0
- package/lib/browser/events/webSocketLogProvider.d.ts +23 -0
- package/lib/browser/events/webSocketLogProvider.js +28 -0
- package/lib/browser/factory/oracleClient.js +2 -2
- package/lib/browser/idl/velocity.d.ts +4 -4
- package/lib/browser/idl/velocity.json +4 -4
- package/lib/browser/keypair.d.ts +8 -0
- package/lib/browser/keypair.js +8 -0
- package/lib/browser/marginCalculation.d.ts +134 -2
- package/lib/browser/marginCalculation.js +121 -0
- package/lib/browser/math/amm.d.ts +348 -29
- package/lib/browser/math/amm.js +310 -32
- package/lib/browser/math/auction.d.ts +95 -19
- package/lib/browser/math/auction.js +118 -28
- package/lib/browser/math/bankruptcy.d.ts +46 -0
- package/lib/browser/math/bankruptcy.js +89 -1
- package/lib/browser/math/builder.d.ts +64 -8
- package/lib/browser/math/builder.js +71 -9
- package/lib/browser/math/conversion.d.ts +21 -0
- package/lib/browser/math/conversion.js +21 -0
- package/lib/browser/math/exchangeStatus.d.ts +91 -0
- package/lib/browser/math/exchangeStatus.js +106 -3
- package/lib/browser/math/funding.d.ts +57 -20
- package/lib/browser/math/funding.js +63 -23
- package/lib/browser/math/insurance.d.ts +62 -0
- package/lib/browser/math/insurance.js +62 -0
- package/lib/browser/math/liquidation.d.ts +127 -11
- package/lib/browser/math/liquidation.js +182 -19
- package/lib/browser/math/margin.d.ts +79 -13
- package/lib/browser/math/margin.js +80 -14
- package/lib/browser/math/market.d.ts +135 -15
- package/lib/browser/math/market.js +145 -17
- package/lib/browser/math/oracles.d.ts +113 -0
- package/lib/browser/math/oracles.js +118 -1
- package/lib/browser/math/orders.d.ts +115 -10
- package/lib/browser/math/orders.js +130 -19
- package/lib/browser/math/position.d.ts +80 -33
- package/lib/browser/math/position.js +80 -33
- package/lib/browser/math/repeg.d.ts +48 -10
- package/lib/browser/math/repeg.js +48 -10
- package/lib/browser/math/spotBalance.d.ts +200 -5
- package/lib/browser/math/spotBalance.js +239 -10
- package/lib/browser/math/spotMarket.d.ts +36 -3
- package/lib/browser/math/spotMarket.js +36 -3
- package/lib/browser/math/spotPosition.d.ts +72 -0
- package/lib/browser/math/spotPosition.js +62 -0
- package/lib/browser/math/state.d.ts +31 -0
- package/lib/browser/math/state.js +31 -0
- package/lib/browser/math/superStake.d.ts +126 -2
- package/lib/browser/math/superStake.js +123 -3
- package/lib/browser/math/tiers.d.ts +29 -0
- package/lib/browser/math/tiers.js +29 -0
- package/lib/browser/math/trade.d.ts +102 -51
- package/lib/browser/math/trade.js +101 -55
- package/lib/browser/math/utils.d.ts +71 -9
- package/lib/browser/math/utils.js +71 -9
- package/lib/browser/memcmp.d.ts +94 -0
- package/lib/browser/memcmp.js +103 -2
- package/lib/browser/oracles/oracleClientCache.d.ts +16 -0
- package/lib/browser/oracles/oracleClientCache.js +16 -0
- package/lib/browser/oracles/oracleId.d.ts +31 -0
- package/lib/browser/oracles/oracleId.js +39 -8
- package/lib/browser/oracles/prelaunchOracleClient.d.ts +20 -0
- package/lib/browser/oracles/prelaunchOracleClient.js +20 -0
- package/lib/browser/oracles/pythClient.d.ts +31 -0
- package/lib/browser/oracles/pythClient.js +32 -1
- package/lib/browser/oracles/pythLazerClient.d.ts +34 -0
- package/lib/browser/oracles/pythLazerClient.js +35 -1
- package/lib/browser/oracles/quoteAssetOracleClient.d.ts +18 -0
- package/lib/browser/oracles/quoteAssetOracleClient.js +18 -0
- package/lib/browser/oracles/strictOraclePrice.d.ts +21 -0
- package/lib/browser/oracles/strictOraclePrice.js +21 -0
- package/lib/browser/oracles/types.d.ts +45 -0
- package/lib/browser/oracles/utils.d.ts +20 -0
- package/lib/browser/oracles/utils.js +20 -0
- package/lib/browser/orderParams.d.ts +42 -4
- package/lib/browser/orderParams.js +42 -4
- package/lib/browser/orderSubscriber/OrderSubscriber.d.ts +56 -0
- package/lib/browser/orderSubscriber/OrderSubscriber.js +56 -0
- package/lib/browser/orderSubscriber/PollingSubscription.d.ts +11 -0
- package/lib/browser/orderSubscriber/PollingSubscription.js +11 -0
- package/lib/browser/orderSubscriber/WebsocketSubscription.d.ts +18 -0
- package/lib/browser/orderSubscriber/WebsocketSubscription.js +18 -0
- package/lib/browser/orderSubscriber/grpcSubscription.d.ts +16 -0
- package/lib/browser/orderSubscriber/grpcSubscription.js +16 -0
- package/lib/browser/orderSubscriber/types.d.ts +9 -0
- package/lib/browser/priorityFee/averageOverSlotsStrategy.d.ts +1 -0
- package/lib/browser/priorityFee/averageOverSlotsStrategy.js +1 -0
- package/lib/browser/priorityFee/averageStrategy.d.ts +1 -0
- package/lib/browser/priorityFee/averageStrategy.js +1 -0
- package/lib/browser/priorityFee/ewmaStrategy.d.ts +10 -0
- package/lib/browser/priorityFee/ewmaStrategy.js +10 -0
- package/lib/browser/priorityFee/heliusPriorityFeeMethod.d.ts +13 -0
- package/lib/browser/priorityFee/heliusPriorityFeeMethod.js +9 -2
- package/lib/browser/priorityFee/maxOverSlotsStrategy.d.ts +1 -0
- package/lib/browser/priorityFee/maxOverSlotsStrategy.js +1 -0
- package/lib/browser/priorityFee/maxStrategy.d.ts +1 -0
- package/lib/browser/priorityFee/maxStrategy.js +1 -0
- package/lib/browser/priorityFee/priorityFeeSubscriber.d.ts +39 -0
- package/lib/browser/priorityFee/priorityFeeSubscriber.js +39 -0
- package/lib/browser/priorityFee/priorityFeeSubscriberMap.d.ts +20 -1
- package/lib/browser/priorityFee/priorityFeeSubscriberMap.js +21 -2
- package/lib/browser/priorityFee/solanaPriorityFeeMethod.d.ts +12 -0
- package/lib/browser/priorityFee/solanaPriorityFeeMethod.js +10 -0
- package/lib/browser/priorityFee/types.d.ts +32 -0
- package/lib/browser/priorityFee/types.js +5 -0
- package/lib/browser/priorityFee/velocityPriorityFeeMethod.d.ts +11 -0
- package/lib/browser/priorityFee/velocityPriorityFeeMethod.js +8 -0
- package/lib/browser/slot/SlotSubscriber.d.ts +18 -0
- package/lib/browser/slot/SlotSubscriber.js +16 -0
- package/lib/browser/slot/SlothashSubscriber.d.ts +26 -0
- package/lib/browser/slot/SlothashSubscriber.js +25 -1
- package/lib/browser/tx/baseTxSender.d.ts +163 -0
- package/lib/browser/tx/baseTxSender.js +174 -6
- package/lib/browser/tx/blockhashFetcher/baseBlockhashFetcher.d.ts +12 -0
- package/lib/browser/tx/blockhashFetcher/baseBlockhashFetcher.js +12 -0
- package/lib/browser/tx/blockhashFetcher/cachedBlockhashFetcher.d.ts +15 -0
- package/lib/browser/tx/blockhashFetcher/cachedBlockhashFetcher.js +15 -0
- package/lib/browser/tx/blockhashFetcher/types.d.ts +4 -0
- package/lib/browser/tx/fastSingleTxSender.d.ts +47 -0
- package/lib/browser/tx/fastSingleTxSender.js +48 -1
- package/lib/browser/tx/forwardOnlyTxSender.d.ts +48 -0
- package/lib/browser/tx/forwardOnlyTxSender.js +48 -0
- package/lib/browser/tx/reportTransactionError.d.ts +18 -6
- package/lib/browser/tx/reportTransactionError.js +18 -6
- package/lib/browser/tx/retryTxSender.d.ts +40 -0
- package/lib/browser/tx/retryTxSender.js +39 -0
- package/lib/browser/tx/txHandler.d.ts +146 -35
- package/lib/browser/tx/txHandler.js +132 -32
- package/lib/browser/tx/txParamProcessor.d.ts +47 -0
- package/lib/browser/tx/txParamProcessor.js +47 -0
- package/lib/browser/tx/types.d.ts +46 -0
- package/lib/browser/tx/types.js +5 -0
- package/lib/browser/tx/utils.d.ts +26 -0
- package/lib/browser/tx/utils.js +26 -0
- package/lib/browser/tx/whileValidTxSender.d.ts +82 -0
- package/lib/browser/tx/whileValidTxSender.js +81 -0
- package/lib/browser/types.d.ts +781 -13
- package/lib/browser/types.js +126 -9
- package/lib/browser/user.d.ts +645 -84
- package/lib/browser/user.js +779 -96
- package/lib/browser/userMap/PollingSubscription.d.ts +10 -0
- package/lib/browser/userMap/PollingSubscription.js +14 -2
- package/lib/browser/userMap/WebsocketSubscription.d.ts +9 -0
- package/lib/browser/userMap/WebsocketSubscription.js +9 -0
- package/lib/browser/userMap/grpcSubscription.d.ts +8 -0
- package/lib/browser/userMap/grpcSubscription.js +8 -0
- package/lib/browser/userMap/referrerMap.d.ts +72 -2
- package/lib/browser/userMap/referrerMap.js +84 -2
- package/lib/browser/userMap/revenueShareEscrowMap.d.ts +37 -10
- package/lib/browser/userMap/revenueShareEscrowMap.js +38 -11
- package/lib/browser/userMap/userMap.d.ts +81 -3
- package/lib/browser/userMap/userMap.js +81 -4
- package/lib/browser/userMap/userMapConfig.d.ts +23 -0
- package/lib/browser/userMap/userStatsMap.d.ts +22 -0
- package/lib/browser/userMap/userStatsMap.js +22 -0
- package/lib/browser/userName.d.ts +16 -0
- package/lib/browser/userName.js +16 -0
- package/lib/browser/userStats.d.ts +28 -1
- package/lib/browser/userStats.js +28 -1
- package/lib/browser/util/TransactionConfirmationManager.d.ts +33 -0
- package/lib/browser/util/TransactionConfirmationManager.js +33 -0
- package/lib/browser/util/chainClock.d.ts +24 -0
- package/lib/browser/util/chainClock.js +20 -0
- package/lib/browser/util/computeUnits.d.ts +32 -0
- package/lib/browser/util/computeUnits.js +32 -0
- package/lib/browser/util/digest.d.ts +17 -0
- package/lib/browser/util/digest.js +17 -0
- package/lib/browser/util/ed25519Utils.d.ts +12 -2
- package/lib/browser/util/ed25519Utils.js +12 -2
- package/lib/browser/util/promiseTimeout.d.ts +9 -0
- package/lib/browser/util/promiseTimeout.js +9 -0
- package/lib/browser/velocityClient.d.ts +3322 -215
- package/lib/browser/velocityClient.js +3412 -245
- package/lib/browser/wallet.d.ts +37 -0
- package/lib/browser/wallet.js +37 -0
- package/lib/node/accounts/basicUserAccountSubscriber.d.ts +18 -0
- package/lib/node/accounts/basicUserAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/basicUserAccountSubscriber.js +18 -0
- package/lib/node/accounts/basicUserStatsAccountSubscriber.d.ts +18 -0
- package/lib/node/accounts/basicUserStatsAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/basicUserStatsAccountSubscriber.js +18 -0
- package/lib/node/accounts/bulkAccountLoader.d.ts +52 -0
- package/lib/node/accounts/bulkAccountLoader.d.ts.map +1 -1
- package/lib/node/accounts/bulkAccountLoader.js +51 -0
- package/lib/node/accounts/bulkUserStatsSubscription.d.ts +9 -2
- package/lib/node/accounts/bulkUserStatsSubscription.d.ts.map +1 -1
- package/lib/node/accounts/bulkUserStatsSubscription.js +9 -2
- package/lib/node/accounts/bulkUserSubscription.d.ts +8 -2
- package/lib/node/accounts/bulkUserSubscription.d.ts.map +1 -1
- package/lib/node/accounts/bulkUserSubscription.js +8 -2
- package/lib/node/accounts/customizedCadenceBulkAccountLoader.d.ts +37 -0
- package/lib/node/accounts/customizedCadenceBulkAccountLoader.d.ts.map +1 -1
- package/lib/node/accounts/customizedCadenceBulkAccountLoader.js +37 -0
- package/lib/node/accounts/fetch.d.ts +59 -2
- package/lib/node/accounts/fetch.d.ts.map +1 -1
- package/lib/node/accounts/fetch.js +57 -2
- package/lib/node/accounts/grpcAccountSubscriber.d.ts +30 -0
- package/lib/node/accounts/grpcAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/grpcAccountSubscriber.js +30 -0
- package/lib/node/accounts/grpcInsuranceFundStakeAccountSubscriber.d.ts +16 -0
- package/lib/node/accounts/grpcInsuranceFundStakeAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/grpcInsuranceFundStakeAccountSubscriber.js +16 -0
- package/lib/node/accounts/grpcMultiAccountSubscriber.d.ts +60 -1
- package/lib/node/accounts/grpcMultiAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/grpcMultiAccountSubscriber.js +118 -37
- package/lib/node/accounts/grpcMultiUserAccountSubscriber.d.ts +32 -0
- package/lib/node/accounts/grpcMultiUserAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/grpcMultiUserAccountSubscriber.js +40 -12
- package/lib/node/accounts/grpcProgramAccountSubscriber.d.ts +33 -0
- package/lib/node/accounts/grpcProgramAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/grpcProgramAccountSubscriber.js +33 -0
- package/lib/node/accounts/grpcUserAccountSubscriber.d.ts +15 -0
- package/lib/node/accounts/grpcUserAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/grpcUserAccountSubscriber.js +15 -0
- package/lib/node/accounts/grpcUserStatsAccountSubscriber.d.ts +15 -0
- package/lib/node/accounts/grpcUserStatsAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/grpcUserStatsAccountSubscriber.js +15 -0
- package/lib/node/accounts/grpcVelocityClientAccountSubscriber.d.ts +41 -0
- package/lib/node/accounts/grpcVelocityClientAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/grpcVelocityClientAccountSubscriber.js +41 -0
- package/lib/node/accounts/grpcVelocityClientAccountSubscriberV2.d.ts +116 -0
- package/lib/node/accounts/grpcVelocityClientAccountSubscriberV2.d.ts.map +1 -1
- package/lib/node/accounts/grpcVelocityClientAccountSubscriberV2.js +152 -1
- package/lib/node/accounts/laserProgramAccountSubscriber.d.ts +34 -0
- package/lib/node/accounts/laserProgramAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/laserProgramAccountSubscriber.js +34 -0
- package/lib/node/accounts/oneShotUserAccountSubscriber.d.ts +19 -0
- package/lib/node/accounts/oneShotUserAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/oneShotUserAccountSubscriber.js +19 -0
- package/lib/node/accounts/oneShotUserStatsAccountSubscriber.d.ts +19 -0
- package/lib/node/accounts/oneShotUserStatsAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/oneShotUserStatsAccountSubscriber.js +19 -0
- package/lib/node/accounts/pollingInsuranceFundStakeAccountSubscriber.d.ts +31 -0
- package/lib/node/accounts/pollingInsuranceFundStakeAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/pollingInsuranceFundStakeAccountSubscriber.js +31 -0
- package/lib/node/accounts/pollingOracleAccountSubscriber.d.ts +19 -0
- package/lib/node/accounts/pollingOracleAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/pollingOracleAccountSubscriber.js +21 -2
- package/lib/node/accounts/pollingTokenAccountSubscriber.d.ts +22 -0
- package/lib/node/accounts/pollingTokenAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/pollingTokenAccountSubscriber.js +22 -0
- package/lib/node/accounts/pollingUserAccountSubscriber.d.ts +32 -0
- package/lib/node/accounts/pollingUserAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/pollingUserAccountSubscriber.js +32 -0
- package/lib/node/accounts/pollingUserStatsAccountSubscriber.d.ts +22 -0
- package/lib/node/accounts/pollingUserStatsAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/pollingUserStatsAccountSubscriber.js +22 -0
- package/lib/node/accounts/pollingVelocityClientAccountSubscriber.d.ts +83 -0
- package/lib/node/accounts/pollingVelocityClientAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/pollingVelocityClientAccountSubscriber.js +84 -1
- package/lib/node/accounts/testBulkAccountLoader.d.ts +8 -0
- package/lib/node/accounts/testBulkAccountLoader.d.ts.map +1 -1
- package/lib/node/accounts/testBulkAccountLoader.js +8 -0
- package/lib/node/accounts/types.d.ts +149 -0
- package/lib/node/accounts/types.d.ts.map +1 -1
- package/lib/node/accounts/types.js +13 -0
- package/lib/node/accounts/utils.d.ts +18 -0
- package/lib/node/accounts/utils.d.ts.map +1 -1
- package/lib/node/accounts/utils.js +32 -16
- package/lib/node/accounts/webSocketAccountSubscriber.d.ts +41 -0
- package/lib/node/accounts/webSocketAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/webSocketAccountSubscriber.js +41 -0
- package/lib/node/accounts/webSocketAccountSubscriberV2.d.ts +31 -0
- package/lib/node/accounts/webSocketAccountSubscriberV2.d.ts.map +1 -1
- package/lib/node/accounts/webSocketAccountSubscriberV2.js +31 -23
- package/lib/node/accounts/webSocketInsuranceFundStakeAccountSubscriber.d.ts +27 -0
- package/lib/node/accounts/webSocketInsuranceFundStakeAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/webSocketInsuranceFundStakeAccountSubscriber.js +27 -0
- package/lib/node/accounts/webSocketProgramAccountSubscriber.d.ts +36 -0
- package/lib/node/accounts/webSocketProgramAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/webSocketProgramAccountSubscriber.js +36 -0
- package/lib/node/accounts/webSocketProgramAccountSubscriberV2.d.ts +21 -0
- package/lib/node/accounts/webSocketProgramAccountSubscriberV2.d.ts.map +1 -1
- package/lib/node/accounts/webSocketProgramAccountSubscriberV2.js +25 -0
- package/lib/node/accounts/webSocketProgramAccountsSubscriberV2.d.ts +21 -0
- package/lib/node/accounts/webSocketProgramAccountsSubscriberV2.d.ts.map +1 -1
- package/lib/node/accounts/webSocketProgramAccountsSubscriberV2.js +21 -0
- package/lib/node/accounts/webSocketUserAccountSubscriber.d.ts +26 -0
- package/lib/node/accounts/webSocketUserAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/webSocketUserAccountSubscriber.js +26 -0
- package/lib/node/accounts/webSocketUserStatsAccountSubsriber.d.ts +20 -0
- package/lib/node/accounts/webSocketUserStatsAccountSubsriber.d.ts.map +1 -1
- package/lib/node/accounts/webSocketUserStatsAccountSubsriber.js +20 -0
- package/lib/node/accounts/webSocketVelocityClientAccountSubscriber.d.ts +121 -0
- package/lib/node/accounts/webSocketVelocityClientAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/webSocketVelocityClientAccountSubscriber.js +123 -2
- package/lib/node/accounts/webSocketVelocityClientAccountSubscriberV2.d.ts +96 -0
- package/lib/node/accounts/webSocketVelocityClientAccountSubscriberV2.d.ts.map +1 -1
- package/lib/node/accounts/webSocketVelocityClientAccountSubscriberV2.js +108 -0
- package/lib/node/accounts/websocketProgramUserAccountSubscriber.d.ts +28 -0
- package/lib/node/accounts/websocketProgramUserAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/websocketProgramUserAccountSubscriber.js +33 -0
- package/lib/node/addresses/marketAddresses.d.ts +10 -0
- package/lib/node/addresses/marketAddresses.d.ts.map +1 -1
- package/lib/node/addresses/marketAddresses.js +10 -0
- package/lib/node/addresses/pda.d.ts +214 -2
- package/lib/node/addresses/pda.d.ts.map +1 -1
- package/lib/node/addresses/pda.js +217 -5
- package/lib/node/adminClient.d.ts +2136 -4
- package/lib/node/adminClient.d.ts.map +1 -1
- package/lib/node/adminClient.js +2150 -4
- package/lib/node/auctionSubscriber/auctionSubscriber.d.ts +15 -0
- package/lib/node/auctionSubscriber/auctionSubscriber.d.ts.map +1 -1
- package/lib/node/auctionSubscriber/auctionSubscriber.js +15 -0
- package/lib/node/auctionSubscriber/auctionSubscriberGrpc.d.ts +19 -0
- package/lib/node/auctionSubscriber/auctionSubscriberGrpc.d.ts.map +1 -1
- package/lib/node/auctionSubscriber/auctionSubscriberGrpc.js +19 -0
- package/lib/node/auctionSubscriber/index.d.ts +6 -0
- package/lib/node/auctionSubscriber/index.d.ts.map +1 -1
- package/lib/node/auctionSubscriber/index.js +6 -0
- package/lib/node/auctionSubscriber/types.d.ts +7 -0
- package/lib/node/auctionSubscriber/types.d.ts.map +1 -1
- package/lib/node/blockhashSubscriber/BlockhashSubscriber.d.ts +33 -0
- package/lib/node/blockhashSubscriber/BlockhashSubscriber.d.ts.map +1 -1
- package/lib/node/blockhashSubscriber/BlockhashSubscriber.js +33 -0
- package/lib/node/blockhashSubscriber/index.d.ts +5 -0
- package/lib/node/blockhashSubscriber/index.d.ts.map +1 -1
- package/lib/node/blockhashSubscriber/index.js +5 -0
- package/lib/node/blockhashSubscriber/types.d.ts +5 -0
- package/lib/node/blockhashSubscriber/types.d.ts.map +1 -1
- package/lib/node/clock/clockSubscriber.d.ts +24 -0
- package/lib/node/clock/clockSubscriber.d.ts.map +1 -1
- package/lib/node/clock/clockSubscriber.js +22 -0
- package/lib/node/config.d.ts +58 -4
- package/lib/node/config.d.ts.map +1 -1
- package/lib/node/config.js +88 -21
- package/lib/node/constants/numericConstants.d.ts +67 -0
- package/lib/node/constants/numericConstants.d.ts.map +1 -1
- package/lib/node/constants/numericConstants.js +68 -1
- package/lib/node/constants/perpMarkets.d.ts +10 -0
- package/lib/node/constants/perpMarkets.d.ts.map +1 -1
- package/lib/node/constants/perpMarkets.js +40 -908
- package/lib/node/constants/spotMarkets.d.ts +13 -0
- package/lib/node/constants/spotMarkets.d.ts.map +1 -1
- package/lib/node/constants/spotMarkets.js +16 -742
- package/lib/node/constants/txConstants.d.ts +1 -0
- package/lib/node/constants/txConstants.d.ts.map +1 -1
- package/lib/node/constants/txConstants.js +1 -0
- package/lib/node/core/VelocityCore.d.ts +285 -8
- package/lib/node/core/VelocityCore.d.ts.map +1 -1
- package/lib/node/core/VelocityCore.js +281 -8
- package/lib/node/core/instructions/deposit.d.ts +22 -0
- package/lib/node/core/instructions/deposit.d.ts.map +1 -1
- package/lib/node/core/instructions/deposit.js +22 -0
- package/lib/node/core/instructions/fill.d.ts +17 -0
- package/lib/node/core/instructions/fill.d.ts.map +1 -1
- package/lib/node/core/instructions/fill.js +17 -0
- package/lib/node/core/instructions/funding.d.ts +12 -0
- package/lib/node/core/instructions/funding.d.ts.map +1 -1
- package/lib/node/core/instructions/funding.js +12 -0
- package/lib/node/core/instructions/liquidation.d.ts +18 -0
- package/lib/node/core/instructions/liquidation.d.ts.map +1 -1
- package/lib/node/core/instructions/liquidation.js +18 -0
- package/lib/node/core/instructions/orders.d.ts +28 -0
- package/lib/node/core/instructions/orders.d.ts.map +1 -1
- package/lib/node/core/instructions/orders.js +28 -0
- package/lib/node/core/instructions/perpOrders.d.ts +106 -0
- package/lib/node/core/instructions/perpOrders.d.ts.map +1 -1
- package/lib/node/core/instructions/perpOrders.js +106 -0
- package/lib/node/core/instructions/settlement.d.ts +14 -0
- package/lib/node/core/instructions/settlement.d.ts.map +1 -1
- package/lib/node/core/instructions/settlement.js +14 -0
- package/lib/node/core/instructions/trigger.d.ts +15 -0
- package/lib/node/core/instructions/trigger.d.ts.map +1 -1
- package/lib/node/core/instructions/trigger.js +15 -0
- package/lib/node/core/instructions/withdraw.d.ts +21 -0
- package/lib/node/core/instructions/withdraw.d.ts.map +1 -1
- package/lib/node/core/instructions/withdraw.js +21 -0
- package/lib/node/core/remainingAccounts.d.ts +47 -3
- package/lib/node/core/remainingAccounts.d.ts.map +1 -1
- package/lib/node/core/remainingAccounts.js +20 -0
- package/lib/node/core/signedMsg.d.ts +38 -0
- package/lib/node/core/signedMsg.d.ts.map +1 -1
- package/lib/node/core/signedMsg.js +33 -0
- package/lib/node/decode/customCoder.d.ts +39 -3
- package/lib/node/decode/customCoder.d.ts.map +1 -1
- package/lib/node/decode/customCoder.js +45 -3
- package/lib/node/decode/user.d.ts +22 -0
- package/lib/node/decode/user.d.ts.map +1 -1
- package/lib/node/decode/user.js +22 -0
- package/lib/node/dlob/DLOB.d.ts +502 -53
- package/lib/node/dlob/DLOB.d.ts.map +1 -1
- package/lib/node/dlob/DLOB.js +540 -98
- package/lib/node/dlob/DLOBNode.d.ts +86 -4
- package/lib/node/dlob/DLOBNode.d.ts.map +1 -1
- package/lib/node/dlob/DLOBNode.js +37 -4
- package/lib/node/dlob/DLOBSubscriber.d.ts +39 -12
- package/lib/node/dlob/DLOBSubscriber.d.ts.map +1 -1
- package/lib/node/dlob/DLOBSubscriber.js +42 -12
- package/lib/node/dlob/NodeList.d.ts +69 -0
- package/lib/node/dlob/NodeList.d.ts.map +1 -1
- package/lib/node/dlob/NodeList.js +66 -0
- package/lib/node/dlob/orderBookLevels.d.ts +106 -13
- package/lib/node/dlob/orderBookLevels.d.ts.map +1 -1
- package/lib/node/dlob/orderBookLevels.js +84 -14
- package/lib/node/dlob/types.d.ts +15 -0
- package/lib/node/dlob/types.d.ts.map +1 -1
- package/lib/node/events/eventList.d.ts +14 -0
- package/lib/node/events/eventList.d.ts.map +1 -1
- package/lib/node/events/eventList.js +14 -0
- package/lib/node/events/eventSubscriber.d.ts +87 -10
- package/lib/node/events/eventSubscriber.d.ts.map +1 -1
- package/lib/node/events/eventSubscriber.js +93 -8
- package/lib/node/events/eventsServerLogProvider.d.ts +22 -0
- package/lib/node/events/eventsServerLogProvider.d.ts.map +1 -1
- package/lib/node/events/eventsServerLogProvider.js +27 -0
- package/lib/node/events/fetchLogs.d.ts +31 -0
- package/lib/node/events/fetchLogs.d.ts.map +1 -1
- package/lib/node/events/fetchLogs.js +46 -1
- package/lib/node/events/parse.d.ts +23 -0
- package/lib/node/events/parse.d.ts.map +1 -1
- package/lib/node/events/parse.js +23 -0
- package/lib/node/events/pollingLogProvider.d.ts +24 -0
- package/lib/node/events/pollingLogProvider.d.ts.map +1 -1
- package/lib/node/events/pollingLogProvider.js +24 -0
- package/lib/node/events/sort.d.ts +11 -0
- package/lib/node/events/sort.d.ts.map +1 -1
- package/lib/node/events/sort.js +12 -0
- package/lib/node/events/txEventCache.d.ts +13 -3
- package/lib/node/events/txEventCache.d.ts.map +1 -1
- package/lib/node/events/txEventCache.js +19 -7
- package/lib/node/events/types.d.ts +118 -2
- package/lib/node/events/types.d.ts.map +1 -1
- package/lib/node/events/types.js +11 -0
- package/lib/node/events/webSocketLogProvider.d.ts +23 -0
- package/lib/node/events/webSocketLogProvider.d.ts.map +1 -1
- package/lib/node/events/webSocketLogProvider.js +28 -0
- package/lib/node/factory/oracleClient.js +2 -2
- package/lib/node/idl/velocity.d.ts +4 -4
- package/lib/node/idl/velocity.d.ts.map +1 -1
- package/lib/node/idl/velocity.json +4 -4
- package/lib/node/keypair.d.ts +8 -0
- package/lib/node/keypair.d.ts.map +1 -1
- package/lib/node/keypair.js +8 -0
- package/lib/node/marginCalculation.d.ts +134 -2
- package/lib/node/marginCalculation.d.ts.map +1 -1
- package/lib/node/marginCalculation.js +121 -0
- package/lib/node/math/amm.d.ts +348 -29
- package/lib/node/math/amm.d.ts.map +1 -1
- package/lib/node/math/amm.js +310 -32
- package/lib/node/math/auction.d.ts +95 -19
- package/lib/node/math/auction.d.ts.map +1 -1
- package/lib/node/math/auction.js +118 -28
- package/lib/node/math/bankruptcy.d.ts +46 -0
- package/lib/node/math/bankruptcy.d.ts.map +1 -1
- package/lib/node/math/bankruptcy.js +89 -1
- package/lib/node/math/builder.d.ts +64 -8
- package/lib/node/math/builder.d.ts.map +1 -1
- package/lib/node/math/builder.js +71 -9
- package/lib/node/math/conversion.d.ts +21 -0
- package/lib/node/math/conversion.d.ts.map +1 -1
- package/lib/node/math/conversion.js +21 -0
- package/lib/node/math/exchangeStatus.d.ts +91 -0
- package/lib/node/math/exchangeStatus.d.ts.map +1 -1
- package/lib/node/math/exchangeStatus.js +106 -3
- package/lib/node/math/funding.d.ts +57 -20
- package/lib/node/math/funding.d.ts.map +1 -1
- package/lib/node/math/funding.js +63 -23
- package/lib/node/math/insurance.d.ts +62 -0
- package/lib/node/math/insurance.d.ts.map +1 -1
- package/lib/node/math/insurance.js +62 -0
- package/lib/node/math/liquidation.d.ts +127 -11
- package/lib/node/math/liquidation.d.ts.map +1 -1
- package/lib/node/math/liquidation.js +182 -19
- package/lib/node/math/margin.d.ts +79 -13
- package/lib/node/math/margin.d.ts.map +1 -1
- package/lib/node/math/margin.js +80 -14
- package/lib/node/math/market.d.ts +135 -15
- package/lib/node/math/market.d.ts.map +1 -1
- package/lib/node/math/market.js +145 -17
- package/lib/node/math/oracles.d.ts +113 -0
- package/lib/node/math/oracles.d.ts.map +1 -1
- package/lib/node/math/oracles.js +118 -1
- package/lib/node/math/orders.d.ts +115 -10
- package/lib/node/math/orders.d.ts.map +1 -1
- package/lib/node/math/orders.js +130 -19
- package/lib/node/math/position.d.ts +80 -33
- package/lib/node/math/position.d.ts.map +1 -1
- package/lib/node/math/position.js +80 -33
- package/lib/node/math/repeg.d.ts +48 -10
- package/lib/node/math/repeg.d.ts.map +1 -1
- package/lib/node/math/repeg.js +48 -10
- package/lib/node/math/spotBalance.d.ts +200 -5
- package/lib/node/math/spotBalance.d.ts.map +1 -1
- package/lib/node/math/spotBalance.js +239 -10
- package/lib/node/math/spotMarket.d.ts +36 -3
- package/lib/node/math/spotMarket.d.ts.map +1 -1
- package/lib/node/math/spotMarket.js +36 -3
- package/lib/node/math/spotPosition.d.ts +72 -0
- package/lib/node/math/spotPosition.d.ts.map +1 -1
- package/lib/node/math/spotPosition.js +62 -0
- package/lib/node/math/state.d.ts +31 -0
- package/lib/node/math/state.d.ts.map +1 -1
- package/lib/node/math/state.js +31 -0
- package/lib/node/math/superStake.d.ts +126 -2
- package/lib/node/math/superStake.d.ts.map +1 -1
- package/lib/node/math/superStake.js +123 -3
- package/lib/node/math/tiers.d.ts +29 -0
- package/lib/node/math/tiers.d.ts.map +1 -1
- package/lib/node/math/tiers.js +29 -0
- package/lib/node/math/trade.d.ts +102 -51
- package/lib/node/math/trade.d.ts.map +1 -1
- package/lib/node/math/trade.js +101 -55
- package/lib/node/math/utils.d.ts +71 -9
- package/lib/node/math/utils.d.ts.map +1 -1
- package/lib/node/math/utils.js +71 -9
- package/lib/node/memcmp.d.ts +94 -0
- package/lib/node/memcmp.d.ts.map +1 -1
- package/lib/node/memcmp.js +103 -2
- package/lib/node/oracles/oracleClientCache.d.ts +16 -0
- package/lib/node/oracles/oracleClientCache.d.ts.map +1 -1
- package/lib/node/oracles/oracleClientCache.js +16 -0
- package/lib/node/oracles/oracleId.d.ts +31 -0
- package/lib/node/oracles/oracleId.d.ts.map +1 -1
- package/lib/node/oracles/oracleId.js +39 -8
- package/lib/node/oracles/prelaunchOracleClient.d.ts +20 -0
- package/lib/node/oracles/prelaunchOracleClient.d.ts.map +1 -1
- package/lib/node/oracles/prelaunchOracleClient.js +20 -0
- package/lib/node/oracles/pythClient.d.ts +31 -0
- package/lib/node/oracles/pythClient.d.ts.map +1 -1
- package/lib/node/oracles/pythClient.js +32 -1
- package/lib/node/oracles/pythLazerClient.d.ts +34 -0
- package/lib/node/oracles/pythLazerClient.d.ts.map +1 -1
- package/lib/node/oracles/pythLazerClient.js +35 -1
- package/lib/node/oracles/quoteAssetOracleClient.d.ts +18 -0
- package/lib/node/oracles/quoteAssetOracleClient.d.ts.map +1 -1
- package/lib/node/oracles/quoteAssetOracleClient.js +18 -0
- package/lib/node/oracles/strictOraclePrice.d.ts +21 -0
- package/lib/node/oracles/strictOraclePrice.d.ts.map +1 -1
- package/lib/node/oracles/strictOraclePrice.js +21 -0
- package/lib/node/oracles/types.d.ts +45 -0
- package/lib/node/oracles/types.d.ts.map +1 -1
- package/lib/node/oracles/utils.d.ts +20 -0
- package/lib/node/oracles/utils.d.ts.map +1 -1
- package/lib/node/oracles/utils.js +20 -0
- package/lib/node/orderParams.d.ts +42 -4
- package/lib/node/orderParams.d.ts.map +1 -1
- package/lib/node/orderParams.js +42 -4
- package/lib/node/orderSubscriber/OrderSubscriber.d.ts +56 -0
- package/lib/node/orderSubscriber/OrderSubscriber.d.ts.map +1 -1
- package/lib/node/orderSubscriber/OrderSubscriber.js +56 -0
- package/lib/node/orderSubscriber/PollingSubscription.d.ts +11 -0
- package/lib/node/orderSubscriber/PollingSubscription.d.ts.map +1 -1
- package/lib/node/orderSubscriber/PollingSubscription.js +11 -0
- package/lib/node/orderSubscriber/WebsocketSubscription.d.ts +18 -0
- package/lib/node/orderSubscriber/WebsocketSubscription.d.ts.map +1 -1
- package/lib/node/orderSubscriber/WebsocketSubscription.js +18 -0
- package/lib/node/orderSubscriber/grpcSubscription.d.ts +16 -0
- package/lib/node/orderSubscriber/grpcSubscription.d.ts.map +1 -1
- package/lib/node/orderSubscriber/grpcSubscription.js +16 -0
- package/lib/node/orderSubscriber/types.d.ts +9 -0
- package/lib/node/orderSubscriber/types.d.ts.map +1 -1
- package/lib/node/priorityFee/averageOverSlotsStrategy.d.ts +1 -0
- package/lib/node/priorityFee/averageOverSlotsStrategy.d.ts.map +1 -1
- package/lib/node/priorityFee/averageOverSlotsStrategy.js +1 -0
- package/lib/node/priorityFee/averageStrategy.d.ts +1 -0
- package/lib/node/priorityFee/averageStrategy.d.ts.map +1 -1
- package/lib/node/priorityFee/averageStrategy.js +1 -0
- package/lib/node/priorityFee/ewmaStrategy.d.ts +10 -0
- package/lib/node/priorityFee/ewmaStrategy.d.ts.map +1 -1
- package/lib/node/priorityFee/ewmaStrategy.js +10 -0
- package/lib/node/priorityFee/heliusPriorityFeeMethod.d.ts +13 -0
- package/lib/node/priorityFee/heliusPriorityFeeMethod.d.ts.map +1 -1
- package/lib/node/priorityFee/heliusPriorityFeeMethod.js +9 -2
- package/lib/node/priorityFee/maxOverSlotsStrategy.d.ts +1 -0
- package/lib/node/priorityFee/maxOverSlotsStrategy.d.ts.map +1 -1
- package/lib/node/priorityFee/maxOverSlotsStrategy.js +1 -0
- package/lib/node/priorityFee/maxStrategy.d.ts +1 -0
- package/lib/node/priorityFee/maxStrategy.d.ts.map +1 -1
- package/lib/node/priorityFee/maxStrategy.js +1 -0
- package/lib/node/priorityFee/priorityFeeSubscriber.d.ts +39 -0
- package/lib/node/priorityFee/priorityFeeSubscriber.d.ts.map +1 -1
- package/lib/node/priorityFee/priorityFeeSubscriber.js +39 -0
- package/lib/node/priorityFee/priorityFeeSubscriberMap.d.ts +20 -1
- package/lib/node/priorityFee/priorityFeeSubscriberMap.d.ts.map +1 -1
- package/lib/node/priorityFee/priorityFeeSubscriberMap.js +21 -2
- package/lib/node/priorityFee/solanaPriorityFeeMethod.d.ts +12 -0
- package/lib/node/priorityFee/solanaPriorityFeeMethod.d.ts.map +1 -1
- package/lib/node/priorityFee/solanaPriorityFeeMethod.js +10 -0
- package/lib/node/priorityFee/types.d.ts +32 -0
- package/lib/node/priorityFee/types.d.ts.map +1 -1
- package/lib/node/priorityFee/types.js +5 -0
- package/lib/node/priorityFee/velocityPriorityFeeMethod.d.ts +11 -0
- package/lib/node/priorityFee/velocityPriorityFeeMethod.d.ts.map +1 -1
- package/lib/node/priorityFee/velocityPriorityFeeMethod.js +8 -0
- package/lib/node/slot/SlotSubscriber.d.ts +18 -0
- package/lib/node/slot/SlotSubscriber.d.ts.map +1 -1
- package/lib/node/slot/SlotSubscriber.js +16 -0
- package/lib/node/slot/SlothashSubscriber.d.ts +26 -0
- package/lib/node/slot/SlothashSubscriber.d.ts.map +1 -1
- package/lib/node/slot/SlothashSubscriber.js +25 -1
- package/lib/node/tx/baseTxSender.d.ts +163 -0
- package/lib/node/tx/baseTxSender.d.ts.map +1 -1
- package/lib/node/tx/baseTxSender.js +174 -6
- package/lib/node/tx/blockhashFetcher/baseBlockhashFetcher.d.ts +12 -0
- package/lib/node/tx/blockhashFetcher/baseBlockhashFetcher.d.ts.map +1 -1
- package/lib/node/tx/blockhashFetcher/baseBlockhashFetcher.js +12 -0
- package/lib/node/tx/blockhashFetcher/cachedBlockhashFetcher.d.ts +15 -0
- package/lib/node/tx/blockhashFetcher/cachedBlockhashFetcher.d.ts.map +1 -1
- package/lib/node/tx/blockhashFetcher/cachedBlockhashFetcher.js +15 -0
- package/lib/node/tx/blockhashFetcher/types.d.ts +4 -0
- package/lib/node/tx/blockhashFetcher/types.d.ts.map +1 -1
- package/lib/node/tx/fastSingleTxSender.d.ts +47 -0
- package/lib/node/tx/fastSingleTxSender.d.ts.map +1 -1
- package/lib/node/tx/fastSingleTxSender.js +48 -1
- package/lib/node/tx/forwardOnlyTxSender.d.ts +48 -0
- package/lib/node/tx/forwardOnlyTxSender.d.ts.map +1 -1
- package/lib/node/tx/forwardOnlyTxSender.js +48 -0
- package/lib/node/tx/reportTransactionError.d.ts +18 -6
- package/lib/node/tx/reportTransactionError.d.ts.map +1 -1
- package/lib/node/tx/reportTransactionError.js +18 -6
- package/lib/node/tx/retryTxSender.d.ts +40 -0
- package/lib/node/tx/retryTxSender.d.ts.map +1 -1
- package/lib/node/tx/retryTxSender.js +39 -0
- package/lib/node/tx/txHandler.d.ts +146 -35
- package/lib/node/tx/txHandler.d.ts.map +1 -1
- package/lib/node/tx/txHandler.js +132 -32
- package/lib/node/tx/txParamProcessor.d.ts +47 -0
- package/lib/node/tx/txParamProcessor.d.ts.map +1 -1
- package/lib/node/tx/txParamProcessor.js +47 -0
- package/lib/node/tx/types.d.ts +46 -0
- package/lib/node/tx/types.d.ts.map +1 -1
- package/lib/node/tx/types.js +5 -0
- package/lib/node/tx/utils.d.ts +26 -0
- package/lib/node/tx/utils.d.ts.map +1 -1
- package/lib/node/tx/utils.js +26 -0
- package/lib/node/tx/whileValidTxSender.d.ts +82 -0
- package/lib/node/tx/whileValidTxSender.d.ts.map +1 -1
- package/lib/node/tx/whileValidTxSender.js +81 -0
- package/lib/node/types.d.ts +781 -13
- package/lib/node/types.d.ts.map +1 -1
- package/lib/node/types.js +126 -9
- package/lib/node/user.d.ts +645 -84
- package/lib/node/user.d.ts.map +1 -1
- package/lib/node/user.js +779 -96
- package/lib/node/userMap/PollingSubscription.d.ts +10 -0
- package/lib/node/userMap/PollingSubscription.d.ts.map +1 -1
- package/lib/node/userMap/PollingSubscription.js +14 -2
- package/lib/node/userMap/WebsocketSubscription.d.ts +9 -0
- package/lib/node/userMap/WebsocketSubscription.d.ts.map +1 -1
- package/lib/node/userMap/WebsocketSubscription.js +9 -0
- package/lib/node/userMap/grpcSubscription.d.ts +8 -0
- package/lib/node/userMap/grpcSubscription.d.ts.map +1 -1
- package/lib/node/userMap/grpcSubscription.js +8 -0
- package/lib/node/userMap/referrerMap.d.ts +72 -2
- package/lib/node/userMap/referrerMap.d.ts.map +1 -1
- package/lib/node/userMap/referrerMap.js +84 -2
- package/lib/node/userMap/revenueShareEscrowMap.d.ts +37 -10
- package/lib/node/userMap/revenueShareEscrowMap.d.ts.map +1 -1
- package/lib/node/userMap/revenueShareEscrowMap.js +38 -11
- package/lib/node/userMap/userMap.d.ts +81 -3
- package/lib/node/userMap/userMap.d.ts.map +1 -1
- package/lib/node/userMap/userMap.js +81 -4
- package/lib/node/userMap/userMapConfig.d.ts +23 -0
- package/lib/node/userMap/userMapConfig.d.ts.map +1 -1
- package/lib/node/userMap/userStatsMap.d.ts +22 -0
- package/lib/node/userMap/userStatsMap.d.ts.map +1 -1
- package/lib/node/userMap/userStatsMap.js +22 -0
- package/lib/node/userName.d.ts +16 -0
- package/lib/node/userName.d.ts.map +1 -1
- package/lib/node/userName.js +16 -0
- package/lib/node/userStats.d.ts +28 -1
- package/lib/node/userStats.d.ts.map +1 -1
- package/lib/node/userStats.js +28 -1
- package/lib/node/util/TransactionConfirmationManager.d.ts +33 -0
- package/lib/node/util/TransactionConfirmationManager.d.ts.map +1 -1
- package/lib/node/util/TransactionConfirmationManager.js +33 -0
- package/lib/node/util/chainClock.d.ts +24 -0
- package/lib/node/util/chainClock.d.ts.map +1 -1
- package/lib/node/util/chainClock.js +20 -0
- package/lib/node/util/computeUnits.d.ts +32 -0
- package/lib/node/util/computeUnits.d.ts.map +1 -1
- package/lib/node/util/computeUnits.js +32 -0
- package/lib/node/util/digest.d.ts +17 -0
- package/lib/node/util/digest.d.ts.map +1 -1
- package/lib/node/util/digest.js +17 -0
- package/lib/node/util/ed25519Utils.d.ts +12 -2
- package/lib/node/util/ed25519Utils.d.ts.map +1 -1
- package/lib/node/util/ed25519Utils.js +12 -2
- package/lib/node/util/promiseTimeout.d.ts +9 -0
- package/lib/node/util/promiseTimeout.d.ts.map +1 -1
- package/lib/node/util/promiseTimeout.js +9 -0
- package/lib/node/velocityClient.d.ts +3322 -215
- package/lib/node/velocityClient.d.ts.map +1 -1
- package/lib/node/velocityClient.js +3412 -245
- package/lib/node/wallet.d.ts +37 -0
- package/lib/node/wallet.d.ts.map +1 -1
- package/lib/node/wallet.js +37 -0
- package/package.json +2 -1
- package/src/accounts/basicUserAccountSubscriber.ts +18 -0
- package/src/accounts/basicUserStatsAccountSubscriber.ts +18 -0
- package/src/accounts/bulkAccountLoader.ts +52 -0
- package/src/accounts/bulkUserStatsSubscription.ts +9 -2
- package/src/accounts/bulkUserSubscription.ts +8 -2
- package/src/accounts/customizedCadenceBulkAccountLoader.ts +37 -0
- package/src/accounts/fetch.ts +59 -2
- package/src/accounts/grpcAccountSubscriber.ts +30 -0
- package/src/accounts/grpcInsuranceFundStakeAccountSubscriber.ts +16 -0
- package/src/accounts/grpcMultiAccountSubscriber.ts +121 -38
- package/src/accounts/grpcMultiUserAccountSubscriber.ts +49 -11
- package/src/accounts/grpcProgramAccountSubscriber.ts +33 -0
- package/src/accounts/grpcUserAccountSubscriber.ts +15 -0
- package/src/accounts/grpcUserStatsAccountSubscriber.ts +15 -0
- package/src/accounts/grpcVelocityClientAccountSubscriber.ts +41 -0
- package/src/accounts/grpcVelocityClientAccountSubscriberV2.ts +160 -1
- package/src/accounts/laserProgramAccountSubscriber.ts +34 -0
- package/src/accounts/oneShotUserAccountSubscriber.ts +19 -0
- package/src/accounts/oneShotUserStatsAccountSubscriber.ts +19 -0
- package/src/accounts/pollingInsuranceFundStakeAccountSubscriber.ts +31 -0
- package/src/accounts/pollingOracleAccountSubscriber.ts +21 -2
- package/src/accounts/pollingTokenAccountSubscriber.ts +22 -0
- package/src/accounts/pollingUserAccountSubscriber.ts +32 -0
- package/src/accounts/pollingUserStatsAccountSubscriber.ts +22 -0
- package/src/accounts/pollingVelocityClientAccountSubscriber.ts +84 -1
- package/src/accounts/testBulkAccountLoader.ts +8 -0
- package/src/accounts/types.ts +149 -0
- package/src/accounts/utils.ts +42 -24
- package/src/accounts/webSocketAccountSubscriber.ts +41 -0
- package/src/accounts/webSocketAccountSubscriberV2.ts +31 -23
- package/src/accounts/webSocketInsuranceFundStakeAccountSubscriber.ts +27 -0
- package/src/accounts/webSocketProgramAccountSubscriber.ts +36 -0
- package/src/accounts/webSocketProgramAccountSubscriberV2.ts +26 -0
- package/src/accounts/webSocketProgramAccountsSubscriberV2.ts +21 -0
- package/src/accounts/webSocketUserAccountSubscriber.ts +26 -0
- package/src/accounts/webSocketUserStatsAccountSubsriber.ts +20 -0
- package/src/accounts/webSocketVelocityClientAccountSubscriber.ts +127 -2
- package/src/accounts/webSocketVelocityClientAccountSubscriberV2.ts +110 -0
- package/src/accounts/websocketProgramUserAccountSubscriber.ts +33 -0
- package/src/addresses/marketAddresses.ts +10 -0
- package/src/addresses/pda.ts +228 -12
- package/src/adminClient.ts +2156 -4
- package/src/auctionSubscriber/auctionSubscriber.ts +15 -0
- package/src/auctionSubscriber/auctionSubscriberGrpc.ts +19 -0
- package/src/auctionSubscriber/index.ts +6 -0
- package/src/auctionSubscriber/types.ts +7 -0
- package/src/blockhashSubscriber/BlockhashSubscriber.ts +33 -0
- package/src/blockhashSubscriber/index.ts +5 -0
- package/src/blockhashSubscriber/types.ts +5 -4
- package/src/clock/clockSubscriber.ts +24 -0
- package/src/config.ts +109 -22
- package/src/constants/numericConstants.ts +70 -0
- package/src/constants/perpMarkets.ts +45 -960
- package/src/constants/spotMarkets.ts +23 -793
- package/src/constants/txConstants.ts +1 -0
- package/src/core/VelocityCore.ts +286 -8
- package/src/core/instructions/deposit.ts +22 -0
- package/src/core/instructions/fill.ts +17 -0
- package/src/core/instructions/funding.ts +12 -0
- package/src/core/instructions/liquidation.ts +18 -0
- package/src/core/instructions/orders.ts +28 -0
- package/src/core/instructions/perpOrders.ts +106 -0
- package/src/core/instructions/settlement.ts +14 -0
- package/src/core/instructions/trigger.ts +15 -0
- package/src/core/instructions/withdraw.ts +21 -0
- package/src/core/remainingAccounts.ts +47 -3
- package/src/core/signedMsg.ts +38 -0
- package/src/decode/customCoder.ts +46 -3
- package/src/decode/user.ts +22 -0
- package/src/dlob/DLOB.ts +668 -97
- package/src/dlob/DLOBNode.ts +98 -6
- package/src/dlob/DLOBSubscriber.ts +49 -12
- package/src/dlob/NodeList.ts +69 -0
- package/src/dlob/orderBookLevels.ts +108 -14
- package/src/dlob/types.ts +15 -0
- package/src/events/eventList.ts +14 -0
- package/src/events/eventSubscriber.ts +100 -19
- package/src/events/eventsServerLogProvider.ts +28 -0
- package/src/events/fetchLogs.ts +52 -2
- package/src/events/parse.ts +23 -0
- package/src/events/pollingLogProvider.ts +24 -0
- package/src/events/sort.ts +12 -0
- package/src/events/txEventCache.ts +19 -7
- package/src/events/types.ts +131 -11
- package/src/events/webSocketLogProvider.ts +29 -0
- package/src/factory/oracleClient.ts +2 -2
- package/src/idl/velocity.json +4 -4
- package/src/idl/velocity.ts +4 -4
- package/src/keypair.ts +8 -0
- package/src/marginCalculation.ts +153 -2
- package/src/math/amm.ts +371 -36
- package/src/math/auction.ts +139 -30
- package/src/math/bankruptcy.ts +104 -1
- package/src/math/builder.ts +74 -8
- package/src/math/conversion.ts +21 -0
- package/src/math/exchangeStatus.ts +117 -2
- package/src/math/funding.ts +63 -23
- package/src/math/insurance.ts +62 -0
- package/src/math/liquidation.ts +227 -17
- package/src/math/margin.ts +80 -14
- package/src/math/market.ts +148 -17
- package/src/math/oracles.ts +124 -0
- package/src/math/orders.ts +141 -19
- package/src/math/position.ts +80 -33
- package/src/math/repeg.ts +48 -10
- package/src/math/spotBalance.ts +252 -12
- package/src/math/spotMarket.ts +36 -3
- package/src/math/spotPosition.ts +72 -0
- package/src/math/state.ts +31 -0
- package/src/math/superStake.ts +126 -3
- package/src/math/tiers.ts +29 -0
- package/src/math/trade.ts +125 -55
- package/src/math/utils.ts +71 -9
- package/src/memcmp.ts +104 -2
- package/src/oracles/oracleClientCache.ts +16 -0
- package/src/oracles/oracleId.ts +39 -6
- package/src/oracles/prelaunchOracleClient.ts +20 -0
- package/src/oracles/pythClient.ts +32 -1
- package/src/oracles/pythLazerClient.ts +35 -1
- package/src/oracles/quoteAssetOracleClient.ts +18 -0
- package/src/oracles/strictOraclePrice.ts +21 -0
- package/src/oracles/types.ts +45 -0
- package/src/oracles/utils.ts +20 -0
- package/src/orderParams.ts +42 -4
- package/src/orderSubscriber/OrderSubscriber.ts +56 -0
- package/src/orderSubscriber/PollingSubscription.ts +11 -0
- package/src/orderSubscriber/WebsocketSubscription.ts +18 -0
- package/src/orderSubscriber/grpcSubscription.ts +16 -0
- package/src/orderSubscriber/types.ts +9 -0
- package/src/priorityFee/averageOverSlotsStrategy.ts +1 -0
- package/src/priorityFee/averageStrategy.ts +1 -0
- package/src/priorityFee/ewmaStrategy.ts +10 -0
- package/src/priorityFee/heliusPriorityFeeMethod.ts +13 -2
- package/src/priorityFee/maxOverSlotsStrategy.ts +1 -0
- package/src/priorityFee/maxStrategy.ts +1 -0
- package/src/priorityFee/priorityFeeSubscriber.ts +39 -0
- package/src/priorityFee/priorityFeeSubscriberMap.ts +21 -2
- package/src/priorityFee/solanaPriorityFeeMethod.ts +12 -0
- package/src/priorityFee/types.ts +33 -15
- package/src/priorityFee/velocityPriorityFeeMethod.ts +11 -0
- package/src/slot/SlotSubscriber.ts +18 -0
- package/src/slot/SlothashSubscriber.ts +27 -1
- package/src/tx/baseTxSender.ts +185 -5
- package/src/tx/blockhashFetcher/baseBlockhashFetcher.ts +12 -0
- package/src/tx/blockhashFetcher/cachedBlockhashFetcher.ts +15 -0
- package/src/tx/blockhashFetcher/types.ts +4 -0
- package/src/tx/fastSingleTxSender.ts +58 -4
- package/src/tx/forwardOnlyTxSender.ts +48 -0
- package/src/tx/reportTransactionError.ts +18 -6
- package/src/tx/retryTxSender.ts +40 -0
- package/src/tx/txHandler.ts +146 -35
- package/src/tx/txParamProcessor.ts +47 -0
- package/src/tx/types.ts +46 -0
- package/src/tx/utils.ts +26 -0
- package/src/tx/whileValidTxSender.ts +82 -0
- package/src/types.ts +777 -24
- package/src/user.ts +869 -110
- package/src/userMap/PollingSubscription.ts +16 -2
- package/src/userMap/WebsocketSubscription.ts +9 -0
- package/src/userMap/grpcSubscription.ts +8 -0
- package/src/userMap/referrerMap.ts +92 -3
- package/src/userMap/revenueShareEscrowMap.ts +38 -11
- package/src/userMap/userMap.ts +82 -4
- package/src/userMap/userMapConfig.ts +23 -10
- package/src/userMap/userStatsMap.ts +22 -0
- package/src/userName.ts +16 -0
- package/src/userStats.ts +28 -1
- package/src/util/TransactionConfirmationManager.ts +33 -0
- package/src/util/chainClock.ts +24 -0
- package/src/util/computeUnits.ts +32 -0
- package/src/util/digest.ts +17 -0
- package/src/util/ed25519Utils.ts +12 -2
- package/src/util/promiseTimeout.ts +9 -0
- package/src/velocityClient.ts +3439 -249
- package/src/wallet.ts +37 -0
- package/tests/VelocityCore/builder_escrow.test.ts +121 -0
- package/tests/amm/test.ts +102 -0
- package/tests/builder/builderFee.test.ts +42 -0
- package/tests/dlob/tickSizeStandardization.ts +545 -0
- package/tests/exchangeStatus/test.ts +45 -0
- package/tests/liquidation/test.ts +125 -0
- package/tests/oracles/mmOracleGate.test.ts +379 -0
- package/tests/oracles/pythPegSnap.test.ts +76 -0
- package/tests/sdkParity/enumParity.test.ts +84 -0
- package/tests/sdkParity/marginCategoryFill.test.ts +143 -0
- package/tests/sdkParity/memcmpOffsets.test.ts +139 -0
- package/tests/spot/test.ts +55 -0
- package/tests/user/bankruptcy.ts +165 -0
- package/tests/user/feeAndWithdrawLimits.ts +284 -0
- package/tests/user/getMarginCalculation.ts +226 -1
- package/tests/user/test.ts +8 -4
|
@@ -5,24 +5,57 @@ import { Commitment, ConfirmOptions, RpcResponseAndContext, Signer, SignatureRes
|
|
|
5
5
|
import { TxHandler } from './txHandler';
|
|
6
6
|
import { IWallet } from '../types';
|
|
7
7
|
import NodeCache from 'node-cache';
|
|
8
|
+
/**
|
|
9
|
+
* Shared base for all `TxSender` implementations (`RetryTxSender`, `WhileValidTxSender`,
|
|
10
|
+
* `FastSingleTxSender`, `ForwardOnlyTxSender`). Provides signing/serialization via `TxHandler`,
|
|
11
|
+
* confirmation via websocket subscription and/or polling (per `ConfirmationStrategy`),
|
|
12
|
+
* timeout/land-rate bookkeeping, and fan-out to `additionalConnections`. Subclasses are expected
|
|
13
|
+
* to implement `sendRawTransaction` with their specific retry/broadcast behavior — the base
|
|
14
|
+
* implementation always throws.
|
|
15
|
+
*/
|
|
8
16
|
export declare abstract class BaseTxSender implements TxSender {
|
|
9
17
|
connection: Connection;
|
|
10
18
|
wallet: IWallet;
|
|
11
19
|
opts: ConfirmOptions;
|
|
20
|
+
/** Confirmation timeout in milliseconds, applied to both websocket and polling confirmation. */
|
|
12
21
|
timeout: number;
|
|
22
|
+
/** Extra RPC connections a raw transaction is also broadcast to (best-effort, errors logged not thrown), for redundancy. */
|
|
13
23
|
additionalConnections: Connection[];
|
|
24
|
+
/** Count of `confirmTransactionWebSocket`/`confirmTransactionPolling` calls that hit `timeout` without a definitive result. */
|
|
14
25
|
timeoutCount: number;
|
|
15
26
|
confirmationStrategy: ConfirmationStrategy;
|
|
27
|
+
/** Callbacks invoked with the base58-encoded raw transaction alongside `additionalConnections` broadcasts, e.g. for logging/mempool submission. */
|
|
16
28
|
additionalTxSenderCallbacks?: ((base58EncodedTx: string) => void)[];
|
|
17
29
|
txHandler: TxHandler;
|
|
30
|
+
/** Whether to record each sent signature (via `txSigCache`) to compute `getTxLandRate()`. */
|
|
18
31
|
trackTxLandRate?: boolean;
|
|
32
|
+
/** Whether `confirmTransactionWebSocket`/`confirmTransactionPolling` throw `TxSendError` on timeout (`true`) or return `undefined` (`false`). */
|
|
19
33
|
throwOnTimeoutError: boolean;
|
|
34
|
+
/** Whether `checkConfirmationResultForError` throws the resolved on-chain error, or is a no-op. */
|
|
20
35
|
throwOnTransactionError: boolean;
|
|
36
|
+
/** Lookback window, in seconds, over which `txSigCache` entries expire for the land-rate calculation. */
|
|
21
37
|
lookbackWindowMinutes: number;
|
|
38
|
+
/** TTL cache of `txSig -> landed?` used to compute `getTxLandRate()` when `trackTxLandRate` is set. */
|
|
22
39
|
txSigCache?: NodeCache;
|
|
23
40
|
txLandRate: number;
|
|
24
41
|
lastPriorityFeeSuggestion: number;
|
|
42
|
+
/** Maps a land rate (0-1) to a priority-fee multiplier; defaults to `defaultLandRateToFeeFunc`. */
|
|
25
43
|
landRateToFeeFunc: (landRate: number) => number;
|
|
44
|
+
/**
|
|
45
|
+
* @param props.connection - Primary RPC connection used for sending and confirming transactions.
|
|
46
|
+
* @param props.wallet - Wallet used to sign transactions that aren't already `preSigned`.
|
|
47
|
+
* @param props.opts - Default `ConfirmOptions` used when a call site doesn't pass its own; defaults to `DEFAULT_CONFIRMATION_OPTS` (`'confirmed'`).
|
|
48
|
+
* @param props.timeout - Confirmation timeout in milliseconds; defaults to 35000 (35s).
|
|
49
|
+
* @param props.additionalConnections - Extra connections to also broadcast raw transactions to.
|
|
50
|
+
* @param props.confirmationStrategy - How to wait for confirmation; defaults to `ConfirmationStrategy.Combo`.
|
|
51
|
+
* @param props.additionalTxSenderCallbacks - Callbacks invoked with each sent transaction's base58 encoding.
|
|
52
|
+
* @param props.trackTxLandRate - Enables land-rate tracking (backs `getTxLandRate()`/`getSuggestedPriorityFeeMultiplier()`).
|
|
53
|
+
* @param props.txHandler - Custom `TxHandler` for signing/building transactions; defaults to one constructed from `connection`/`wallet`/`opts`.
|
|
54
|
+
* @param props.txLandRateLookbackWindowMinutes - Rolling window, in minutes, of sent signatures kept for the land-rate calculation; defaults to 10.
|
|
55
|
+
* @param props.landRateToFeeFunc - Custom mapping from land rate to priority-fee multiplier; defaults to `defaultLandRateToFeeFunc`.
|
|
56
|
+
* @param props.throwOnTimeoutError - Whether confirmation timeouts throw `TxSendError` instead of returning `undefined`; defaults to `true`.
|
|
57
|
+
* @param props.throwOnTransactionError - Whether a failed on-chain result throws the resolved program error; defaults to `true`.
|
|
58
|
+
*/
|
|
26
59
|
constructor({ connection, wallet, opts, timeout, additionalConnections, confirmationStrategy, additionalTxSenderCallbacks, trackTxLandRate, txHandler, txLandRateLookbackWindowMinutes, landRateToFeeFunc, throwOnTimeoutError, throwOnTransactionError, }: {
|
|
27
60
|
connection: Connection;
|
|
28
61
|
wallet: IWallet;
|
|
@@ -38,22 +71,152 @@ export declare abstract class BaseTxSender implements TxSender {
|
|
|
38
71
|
throwOnTimeoutError?: boolean;
|
|
39
72
|
throwOnTransactionError?: boolean;
|
|
40
73
|
});
|
|
74
|
+
/**
|
|
75
|
+
* Signs (via `prepareTx`, unless `preSigned`) and sends a legacy `Transaction`.
|
|
76
|
+
* @param tx - Transaction to send.
|
|
77
|
+
* @param additionalSigners - Extra signers to co-sign alongside the wallet; defaults to none.
|
|
78
|
+
* @param opts - Confirmation options; defaults to `this.opts`.
|
|
79
|
+
* @param preSigned - If `true`, skip wallet signing.
|
|
80
|
+
* @returns The result of `sendRawTransaction` on the serialized, signed transaction.
|
|
81
|
+
*/
|
|
41
82
|
send(tx: Transaction, additionalSigners?: Array<Signer>, opts?: ConfirmOptions, preSigned?: boolean): Promise<TxSigAndSlot>;
|
|
83
|
+
/**
|
|
84
|
+
* Delegates to `TxHandler.prepareTx` to attach a recent blockhash, fee payer, and signatures.
|
|
85
|
+
* @param tx - Transaction to prepare.
|
|
86
|
+
* @param additionalSigners - Extra signers to co-sign alongside the wallet.
|
|
87
|
+
* @param opts - Confirmation options (affects blockhash commitment).
|
|
88
|
+
* @param preSigned - If `true`, skip wallet signing.
|
|
89
|
+
* @returns The prepared (blockhash-populated, signed unless `preSigned`) transaction.
|
|
90
|
+
*/
|
|
42
91
|
prepareTx(tx: Transaction, additionalSigners: Array<Signer>, opts: ConfirmOptions, preSigned?: boolean): Promise<Transaction>;
|
|
92
|
+
/**
|
|
93
|
+
* Builds (but does not send) a `VersionedTransaction` from raw instructions via
|
|
94
|
+
* `TxHandler.generateVersionedTransaction`.
|
|
95
|
+
* @param ixs - Instructions to include, in order.
|
|
96
|
+
* @param lookupTableAccounts - Address lookup tables to compile the message against.
|
|
97
|
+
* @param _additionalSigners - Unused by this implementation.
|
|
98
|
+
* @param opts - Unused by this implementation (present for `TxSender` interface compatibility).
|
|
99
|
+
* @param blockhash - Blockhash to use; if omitted, fetched fresh via `connection.getLatestBlockhash()`.
|
|
100
|
+
* @returns The compiled `VersionedTransaction` (not yet signed by additional signers beyond the wallet).
|
|
101
|
+
*/
|
|
43
102
|
getVersionedTransaction(ixs: TransactionInstruction[], lookupTableAccounts: AddressLookupTableAccount[], _additionalSigners?: Array<Signer>, opts?: ConfirmOptions, blockhash?: BlockhashWithExpiryBlockHeight): Promise<VersionedTransaction>;
|
|
103
|
+
/**
|
|
104
|
+
* Signs (unless `preSigned`) and sends a `VersionedTransaction`. When the wallet exposes a
|
|
105
|
+
* `payer` `Keypair` directly, signs in-place with `tx.sign(...)`; otherwise delegates to
|
|
106
|
+
* `TxHandler.signVersionedTx` (needed for wallet adapters without direct keypair access).
|
|
107
|
+
* @param tx - Transaction to send.
|
|
108
|
+
* @param additionalSigners - Extra signers to co-sign alongside the wallet.
|
|
109
|
+
* @param opts - Confirmation options; defaults to `this.opts`.
|
|
110
|
+
* @param preSigned - If `true`, skip signing entirely.
|
|
111
|
+
* @returns The result of `sendRawTransaction` on the serialized, signed transaction.
|
|
112
|
+
*/
|
|
44
113
|
sendVersionedTransaction(tx: VersionedTransaction, additionalSigners?: Array<Signer>, opts?: ConfirmOptions, preSigned?: boolean): Promise<TxSigAndSlot>;
|
|
114
|
+
/**
|
|
115
|
+
* Sends and confirms an already-serialized, already-signed transaction. `BaseTxSender` itself
|
|
116
|
+
* has no broadcast/retry strategy — every concrete sender (`RetryTxSender`,
|
|
117
|
+
* `WhileValidTxSender`, `FastSingleTxSender`, `ForwardOnlyTxSender`) must override this.
|
|
118
|
+
* @throws Error always, if not overridden by a subclass.
|
|
119
|
+
*/
|
|
45
120
|
sendRawTransaction(rawTransaction: Buffer | Uint8Array, opts: ConfirmOptions): Promise<TxSigAndSlot>;
|
|
121
|
+
/**
|
|
122
|
+
* Simulates a transaction via `connection.simulateTransaction` without sending it, swallowing
|
|
123
|
+
* both simulation errors and RPC-call failures into a `false` result (logged to `console.error`).
|
|
124
|
+
* @param tx - Transaction to simulate.
|
|
125
|
+
* @returns `true` if simulation succeeded with no error, `false` otherwise.
|
|
126
|
+
*/
|
|
46
127
|
simulateTransaction(tx: VersionedTransaction): Promise<boolean>;
|
|
128
|
+
/**
|
|
129
|
+
* Waits for a transaction to confirm by subscribing to `onSignature` on `connection` and every
|
|
130
|
+
* `additionalConnections` entry simultaneously, resolving on whichever responds first. If no
|
|
131
|
+
* connection confirms within `this.timeout` and `confirmationStrategy` is `Combo`, falls back
|
|
132
|
+
* to a one-shot `getSignatureStatuses` check before giving up.
|
|
133
|
+
* @param signature - Base58-encoded transaction signature to confirm.
|
|
134
|
+
* @param commitment - Commitment level for the subscription; defaults to `this.opts.commitment`.
|
|
135
|
+
* @returns The confirmation result, or `undefined` if it timed out and `throwOnTimeoutError` is `false`.
|
|
136
|
+
* @throws Error if `signature` isn't valid base58 or isn't 64 bytes decoded. `TxSendError`
|
|
137
|
+
* (code `NOT_CONFIRMED_ERROR_CODE`) on timeout if `throwOnTimeoutError` is `true` (the default) —
|
|
138
|
+
* in that case the transaction's actual outcome is unknown, not necessarily failed.
|
|
139
|
+
*/
|
|
47
140
|
confirmTransactionWebSocket(signature: TransactionSignature, commitment?: Commitment): Promise<RpcResponseAndContext<SignatureResult> | undefined>;
|
|
141
|
+
/**
|
|
142
|
+
* Waits for a transaction to confirm by polling `getSignatureStatuses` with exponential
|
|
143
|
+
* backoff, starting at 400ms and capping at 5000ms, until `commitment` is reached or
|
|
144
|
+
* `this.timeout` elapses.
|
|
145
|
+
* @param signature - Base58-encoded transaction signature to confirm.
|
|
146
|
+
* @param commitment - Commitment level to wait for; defaults to `'finalized'`.
|
|
147
|
+
* @returns The confirmation result (`{ err: null }` on success), or `undefined` if it timed out and `throwOnTimeoutError` is `false`.
|
|
148
|
+
* @throws TxSendError (code `NOT_CONFIRMED_ERROR_CODE`) on timeout if `throwOnTimeoutError` is
|
|
149
|
+
* `true` (the default) — in that case the transaction's actual outcome is unknown, not
|
|
150
|
+
* necessarily failed.
|
|
151
|
+
*/
|
|
48
152
|
confirmTransactionPolling(signature: TransactionSignature, commitment?: Commitment): Promise<RpcResponseAndContext<SignatureResult> | undefined>;
|
|
153
|
+
/**
|
|
154
|
+
* Confirms a transaction using whichever strategy `this.confirmationStrategy` selects:
|
|
155
|
+
* `WebSocket`/`Combo` route to `confirmTransactionWebSocket`, `Polling` to `confirmTransactionPolling`.
|
|
156
|
+
* @param signature - Base58-encoded transaction signature to confirm.
|
|
157
|
+
* @param commitment - Commitment level to wait for.
|
|
158
|
+
* @returns The confirmation result, or `undefined` on timeout if `throwOnTimeoutError` is `false`.
|
|
159
|
+
* @throws TxSendError on timeout if `throwOnTimeoutError` is `true` (see `confirmTransactionWebSocket`/`confirmTransactionPolling`).
|
|
160
|
+
*/
|
|
49
161
|
confirmTransaction(signature: TransactionSignature, commitment?: Commitment): Promise<RpcResponseAndContext<SignatureResult> | undefined>;
|
|
162
|
+
/** Current time in milliseconds since epoch (thin wrapper over `Date.now()`, overridable in tests). */
|
|
50
163
|
getTimestamp(): number;
|
|
164
|
+
/**
|
|
165
|
+
* Races an array of promises against a timeout, resolving to `null` (rather than rejecting) if
|
|
166
|
+
* none settle in time. Unlike `../util/promiseTimeout`, this accepts multiple promises (used to
|
|
167
|
+
* race confirmation across `connection` plus every `additionalConnections` entry).
|
|
168
|
+
* @param promises - Promises to race.
|
|
169
|
+
* @param timeoutMs - Timeout in milliseconds.
|
|
170
|
+
* @returns The first promise's resolved value, or `null` if none settled before `timeoutMs`.
|
|
171
|
+
*/
|
|
51
172
|
promiseTimeout<T>(promises: Promise<T>[], timeoutMs: number): Promise<T | null>;
|
|
173
|
+
/**
|
|
174
|
+
* Best-effort broadcasts a raw transaction to every `additionalConnections` entry and invokes
|
|
175
|
+
* `additionalTxSenderCallbacks` with its base58 encoding. Failures are logged, not thrown or
|
|
176
|
+
* awaited by the caller — this never affects whether the primary send/confirm succeeds.
|
|
177
|
+
* @param rawTx - Serialized, signed transaction bytes.
|
|
178
|
+
* @param opts - Options passed through to each connection's `sendRawTransaction`.
|
|
179
|
+
*/
|
|
52
180
|
sendToAdditionalConnections(rawTx: Buffer | Uint8Array, opts: ConfirmOptions): void;
|
|
181
|
+
/**
|
|
182
|
+
* Adds an extra RPC connection to broadcast future transactions to, unless a connection with
|
|
183
|
+
* the same RPC endpoint is already registered.
|
|
184
|
+
* @param newConnection - Connection to add to `additionalConnections`.
|
|
185
|
+
*/
|
|
53
186
|
addAdditionalConnection(newConnection: Connection): void;
|
|
187
|
+
/** @returns The number of confirmation attempts that have timed out so far. */
|
|
54
188
|
getTimeoutCount(): number;
|
|
189
|
+
/**
|
|
190
|
+
* Inspects a confirmed signature's result and, if it recorded an on-chain error, resolves the
|
|
191
|
+
* detailed program error via `throwTransactionError` and throws it. Note this check runs
|
|
192
|
+
* whenever `result.err` is set, independent of the `throwOnTransactionError` field — callers
|
|
193
|
+
* that want to suppress transaction-error throwing should avoid calling this method rather
|
|
194
|
+
* than rely on that flag here.
|
|
195
|
+
* @param txSig - Transaction signature to look up the detailed error for.
|
|
196
|
+
* @param result - The `SignatureResult` returned by confirmation.
|
|
197
|
+
* @throws Error the resolved on-chain program error, if `result.err` is set.
|
|
198
|
+
*/
|
|
55
199
|
checkConfirmationResultForError(txSig: string, result: SignatureResult): Promise<void>;
|
|
200
|
+
/**
|
|
201
|
+
* Computes the fraction of recently sent transactions (within `lookbackWindowMinutes`) that
|
|
202
|
+
* landed, from `txSigCache`'s current entries. Returns the last computed `txLandRate` (default
|
|
203
|
+
* 0) if `trackTxLandRate` is disabled or the cache is empty, rather than recomputing.
|
|
204
|
+
* @returns The land rate as a fraction between 0 and 1.
|
|
205
|
+
*/
|
|
56
206
|
getTxLandRate(): number;
|
|
207
|
+
/**
|
|
208
|
+
* Default `landRateToFeeFunc`: returns `1` (no boost) if the land rate is already at/above
|
|
209
|
+
* `BASELINE_TX_LAND_RATE` (0.9) or fewer than 3 samples have been recorded yet (too little data
|
|
210
|
+
* to react); otherwise returns a multiplier that grows logarithmically as the land rate falls
|
|
211
|
+
* further below baseline, capped at `10`.
|
|
212
|
+
* @param txLandRate - Recent land rate, 0-1 (see `getTxLandRate`).
|
|
213
|
+
* @returns A priority-fee multiplier between 1 and 10.
|
|
214
|
+
*/
|
|
57
215
|
private defaultLandRateToFeeFunc;
|
|
216
|
+
/**
|
|
217
|
+
* Suggests a multiplier to apply to a base priority fee, based on recent land rate — intended
|
|
218
|
+
* for callers to scale up their compute-unit price when transactions have been landing poorly.
|
|
219
|
+
* @returns `1` (no change) if `trackTxLandRate` is disabled; otherwise `landRateToFeeFunc(getTxLandRate())`.
|
|
220
|
+
*/
|
|
58
221
|
getSuggestedPriorityFeeMultiplier(): number;
|
|
59
222
|
}
|
|
@@ -15,8 +15,32 @@ const reportTransactionError_1 = require("./reportTransactionError");
|
|
|
15
15
|
const BASELINE_TX_LAND_RATE = 0.9;
|
|
16
16
|
const DEFAULT_TIMEOUT = 35000;
|
|
17
17
|
const DEFAULT_TX_LAND_RATE_LOOKBACK_WINDOW_MINUTES = 10;
|
|
18
|
+
/**
|
|
19
|
+
* Shared base for all `TxSender` implementations (`RetryTxSender`, `WhileValidTxSender`,
|
|
20
|
+
* `FastSingleTxSender`, `ForwardOnlyTxSender`). Provides signing/serialization via `TxHandler`,
|
|
21
|
+
* confirmation via websocket subscription and/or polling (per `ConfirmationStrategy`),
|
|
22
|
+
* timeout/land-rate bookkeeping, and fan-out to `additionalConnections`. Subclasses are expected
|
|
23
|
+
* to implement `sendRawTransaction` with their specific retry/broadcast behavior — the base
|
|
24
|
+
* implementation always throws.
|
|
25
|
+
*/
|
|
18
26
|
class BaseTxSender {
|
|
27
|
+
/**
|
|
28
|
+
* @param props.connection - Primary RPC connection used for sending and confirming transactions.
|
|
29
|
+
* @param props.wallet - Wallet used to sign transactions that aren't already `preSigned`.
|
|
30
|
+
* @param props.opts - Default `ConfirmOptions` used when a call site doesn't pass its own; defaults to `DEFAULT_CONFIRMATION_OPTS` (`'confirmed'`).
|
|
31
|
+
* @param props.timeout - Confirmation timeout in milliseconds; defaults to 35000 (35s).
|
|
32
|
+
* @param props.additionalConnections - Extra connections to also broadcast raw transactions to.
|
|
33
|
+
* @param props.confirmationStrategy - How to wait for confirmation; defaults to `ConfirmationStrategy.Combo`.
|
|
34
|
+
* @param props.additionalTxSenderCallbacks - Callbacks invoked with each sent transaction's base58 encoding.
|
|
35
|
+
* @param props.trackTxLandRate - Enables land-rate tracking (backs `getTxLandRate()`/`getSuggestedPriorityFeeMultiplier()`).
|
|
36
|
+
* @param props.txHandler - Custom `TxHandler` for signing/building transactions; defaults to one constructed from `connection`/`wallet`/`opts`.
|
|
37
|
+
* @param props.txLandRateLookbackWindowMinutes - Rolling window, in minutes, of sent signatures kept for the land-rate calculation; defaults to 10.
|
|
38
|
+
* @param props.landRateToFeeFunc - Custom mapping from land rate to priority-fee multiplier; defaults to `defaultLandRateToFeeFunc`.
|
|
39
|
+
* @param props.throwOnTimeoutError - Whether confirmation timeouts throw `TxSendError` instead of returning `undefined`; defaults to `true`.
|
|
40
|
+
* @param props.throwOnTransactionError - Whether a failed on-chain result throws the resolved program error; defaults to `true`.
|
|
41
|
+
*/
|
|
19
42
|
constructor({ connection, wallet, opts = config_1.DEFAULT_CONFIRMATION_OPTS, timeout = DEFAULT_TIMEOUT, additionalConnections = new Array(), confirmationStrategy = types_1.ConfirmationStrategy.Combo, additionalTxSenderCallbacks, trackTxLandRate, txHandler, txLandRateLookbackWindowMinutes = DEFAULT_TX_LAND_RATE_LOOKBACK_WINDOW_MINUTES, landRateToFeeFunc, throwOnTimeoutError = true, throwOnTransactionError = true, }) {
|
|
43
|
+
/** Count of `confirmTransactionWebSocket`/`confirmTransactionPolling` calls that hit `timeout` without a definitive result. */
|
|
20
44
|
this.timeoutCount = 0;
|
|
21
45
|
this.txLandRate = 0;
|
|
22
46
|
this.lastPriorityFeeSuggestion = 1;
|
|
@@ -46,6 +70,14 @@ class BaseTxSender {
|
|
|
46
70
|
this.throwOnTimeoutError = throwOnTimeoutError;
|
|
47
71
|
this.throwOnTransactionError = throwOnTransactionError;
|
|
48
72
|
}
|
|
73
|
+
/**
|
|
74
|
+
* Signs (via `prepareTx`, unless `preSigned`) and sends a legacy `Transaction`.
|
|
75
|
+
* @param tx - Transaction to send.
|
|
76
|
+
* @param additionalSigners - Extra signers to co-sign alongside the wallet; defaults to none.
|
|
77
|
+
* @param opts - Confirmation options; defaults to `this.opts`.
|
|
78
|
+
* @param preSigned - If `true`, skip wallet signing.
|
|
79
|
+
* @returns The result of `sendRawTransaction` on the serialized, signed transaction.
|
|
80
|
+
*/
|
|
49
81
|
async send(tx, additionalSigners, opts, preSigned) {
|
|
50
82
|
if (additionalSigners === undefined) {
|
|
51
83
|
additionalSigners = [];
|
|
@@ -56,12 +88,40 @@ class BaseTxSender {
|
|
|
56
88
|
const signedTx = await this.prepareTx(tx, additionalSigners, opts, preSigned);
|
|
57
89
|
return this.sendRawTransaction(signedTx.serialize(), opts);
|
|
58
90
|
}
|
|
91
|
+
/**
|
|
92
|
+
* Delegates to `TxHandler.prepareTx` to attach a recent blockhash, fee payer, and signatures.
|
|
93
|
+
* @param tx - Transaction to prepare.
|
|
94
|
+
* @param additionalSigners - Extra signers to co-sign alongside the wallet.
|
|
95
|
+
* @param opts - Confirmation options (affects blockhash commitment).
|
|
96
|
+
* @param preSigned - If `true`, skip wallet signing.
|
|
97
|
+
* @returns The prepared (blockhash-populated, signed unless `preSigned`) transaction.
|
|
98
|
+
*/
|
|
59
99
|
async prepareTx(tx, additionalSigners, opts, preSigned) {
|
|
60
100
|
return this.txHandler.prepareTx(tx, additionalSigners, undefined, opts, preSigned);
|
|
61
101
|
}
|
|
102
|
+
/**
|
|
103
|
+
* Builds (but does not send) a `VersionedTransaction` from raw instructions via
|
|
104
|
+
* `TxHandler.generateVersionedTransaction`.
|
|
105
|
+
* @param ixs - Instructions to include, in order.
|
|
106
|
+
* @param lookupTableAccounts - Address lookup tables to compile the message against.
|
|
107
|
+
* @param _additionalSigners - Unused by this implementation.
|
|
108
|
+
* @param opts - Unused by this implementation (present for `TxSender` interface compatibility).
|
|
109
|
+
* @param blockhash - Blockhash to use; if omitted, fetched fresh via `connection.getLatestBlockhash()`.
|
|
110
|
+
* @returns The compiled `VersionedTransaction` (not yet signed by additional signers beyond the wallet).
|
|
111
|
+
*/
|
|
62
112
|
async getVersionedTransaction(ixs, lookupTableAccounts, _additionalSigners, opts, blockhash) {
|
|
63
113
|
return this.txHandler.generateVersionedTransaction(blockhash !== null && blockhash !== void 0 ? blockhash : (await this.connection.getLatestBlockhash()), ixs, lookupTableAccounts, this.wallet);
|
|
64
114
|
}
|
|
115
|
+
/**
|
|
116
|
+
* Signs (unless `preSigned`) and sends a `VersionedTransaction`. When the wallet exposes a
|
|
117
|
+
* `payer` `Keypair` directly, signs in-place with `tx.sign(...)`; otherwise delegates to
|
|
118
|
+
* `TxHandler.signVersionedTx` (needed for wallet adapters without direct keypair access).
|
|
119
|
+
* @param tx - Transaction to send.
|
|
120
|
+
* @param additionalSigners - Extra signers to co-sign alongside the wallet.
|
|
121
|
+
* @param opts - Confirmation options; defaults to `this.opts`.
|
|
122
|
+
* @param preSigned - If `true`, skip signing entirely.
|
|
123
|
+
* @returns The result of `sendRawTransaction` on the serialized, signed transaction.
|
|
124
|
+
*/
|
|
65
125
|
async sendVersionedTransaction(tx, additionalSigners, opts, preSigned) {
|
|
66
126
|
let signedTx;
|
|
67
127
|
if (preSigned) {
|
|
@@ -81,6 +141,12 @@ class BaseTxSender {
|
|
|
81
141
|
}
|
|
82
142
|
return this.sendRawTransaction(signedTx.serialize(), opts);
|
|
83
143
|
}
|
|
144
|
+
/**
|
|
145
|
+
* Sends and confirms an already-serialized, already-signed transaction. `BaseTxSender` itself
|
|
146
|
+
* has no broadcast/retry strategy — every concrete sender (`RetryTxSender`,
|
|
147
|
+
* `WhileValidTxSender`, `FastSingleTxSender`, `ForwardOnlyTxSender`) must override this.
|
|
148
|
+
* @throws Error always, if not overridden by a subclass.
|
|
149
|
+
*/
|
|
84
150
|
async sendRawTransaction(
|
|
85
151
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
86
152
|
rawTransaction,
|
|
@@ -88,7 +154,12 @@ class BaseTxSender {
|
|
|
88
154
|
opts) {
|
|
89
155
|
throw new Error('Must be implemented by subclass');
|
|
90
156
|
}
|
|
91
|
-
|
|
157
|
+
/**
|
|
158
|
+
* Simulates a transaction via `connection.simulateTransaction` without sending it, swallowing
|
|
159
|
+
* both simulation errors and RPC-call failures into a `false` result (logged to `console.error`).
|
|
160
|
+
* @param tx - Transaction to simulate.
|
|
161
|
+
* @returns `true` if simulation succeeded with no error, `false` otherwise.
|
|
162
|
+
*/
|
|
92
163
|
async simulateTransaction(tx) {
|
|
93
164
|
try {
|
|
94
165
|
const result = await this.connection.simulateTransaction(tx);
|
|
@@ -103,6 +174,18 @@ class BaseTxSender {
|
|
|
103
174
|
return false;
|
|
104
175
|
}
|
|
105
176
|
}
|
|
177
|
+
/**
|
|
178
|
+
* Waits for a transaction to confirm by subscribing to `onSignature` on `connection` and every
|
|
179
|
+
* `additionalConnections` entry simultaneously, resolving on whichever responds first. If no
|
|
180
|
+
* connection confirms within `this.timeout` and `confirmationStrategy` is `Combo`, falls back
|
|
181
|
+
* to a one-shot `getSignatureStatuses` check before giving up.
|
|
182
|
+
* @param signature - Base58-encoded transaction signature to confirm.
|
|
183
|
+
* @param commitment - Commitment level for the subscription; defaults to `this.opts.commitment`.
|
|
184
|
+
* @returns The confirmation result, or `undefined` if it timed out and `throwOnTimeoutError` is `false`.
|
|
185
|
+
* @throws Error if `signature` isn't valid base58 or isn't 64 bytes decoded. `TxSendError`
|
|
186
|
+
* (code `NOT_CONFIRMED_ERROR_CODE`) on timeout if `throwOnTimeoutError` is `true` (the default) —
|
|
187
|
+
* in that case the transaction's actual outcome is unknown, not necessarily failed.
|
|
188
|
+
*/
|
|
106
189
|
async confirmTransactionWebSocket(signature, commitment) {
|
|
107
190
|
var _a, _b;
|
|
108
191
|
let decodedSignature;
|
|
@@ -120,7 +203,10 @@ class BaseTxSender {
|
|
|
120
203
|
let response = null;
|
|
121
204
|
const promises = connections.map((connection, i) => {
|
|
122
205
|
let subscriptionId;
|
|
123
|
-
|
|
206
|
+
// a failed subscription setup on one connection is best-effort: log and
|
|
207
|
+
// leave its promise pending so the race keeps waiting on the others
|
|
208
|
+
// (if every subscription fails, the timeout/Combo fallback still applies)
|
|
209
|
+
const confirmPromise = new Promise((resolve) => {
|
|
124
210
|
try {
|
|
125
211
|
subscriptionId = connection.onSignature(signature, (result, context) => {
|
|
126
212
|
subscriptionIds[i] = undefined;
|
|
@@ -132,7 +218,7 @@ class BaseTxSender {
|
|
|
132
218
|
}, subscriptionCommitment);
|
|
133
219
|
}
|
|
134
220
|
catch (err) {
|
|
135
|
-
|
|
221
|
+
console.error('confirmTransactionWebSocket: failed to set up onSignature listener', err);
|
|
136
222
|
}
|
|
137
223
|
});
|
|
138
224
|
subscriptionIds.push(subscriptionId);
|
|
@@ -174,8 +260,19 @@ class BaseTxSender {
|
|
|
174
260
|
}
|
|
175
261
|
return response !== null && response !== void 0 ? response : undefined;
|
|
176
262
|
}
|
|
263
|
+
/**
|
|
264
|
+
* Waits for a transaction to confirm by polling `getSignatureStatuses` with exponential
|
|
265
|
+
* backoff, starting at 400ms and capping at 5000ms, until `commitment` is reached or
|
|
266
|
+
* `this.timeout` elapses.
|
|
267
|
+
* @param signature - Base58-encoded transaction signature to confirm.
|
|
268
|
+
* @param commitment - Commitment level to wait for; defaults to `'finalized'`.
|
|
269
|
+
* @returns The confirmation result (`{ err: null }` on success), or `undefined` if it timed out and `throwOnTimeoutError` is `false`.
|
|
270
|
+
* @throws TxSendError (code `NOT_CONFIRMED_ERROR_CODE`) on timeout if `throwOnTimeoutError` is
|
|
271
|
+
* `true` (the default) — in that case the transaction's actual outcome is unknown, not
|
|
272
|
+
* necessarily failed.
|
|
273
|
+
*/
|
|
177
274
|
async confirmTransactionPolling(signature, commitment = 'finalized') {
|
|
178
|
-
var _a;
|
|
275
|
+
var _a, _b;
|
|
179
276
|
let totalTime = 0;
|
|
180
277
|
let backoffTime = 400; // approx block time
|
|
181
278
|
const start = Date.now();
|
|
@@ -185,10 +282,22 @@ class BaseTxSender {
|
|
|
185
282
|
signature,
|
|
186
283
|
]);
|
|
187
284
|
const signatureResult = rpcResponse && ((_a = rpcResponse.value) === null || _a === void 0 ? void 0 : _a[0]);
|
|
285
|
+
// a stronger status satisfies a weaker commitment (processed < confirmed < finalized),
|
|
286
|
+
// e.g. a tx already finalized must not keep a 'confirmed' wait polling until timeout
|
|
287
|
+
const statusRank = {
|
|
288
|
+
processed: 0,
|
|
289
|
+
confirmed: 1,
|
|
290
|
+
finalized: 2,
|
|
291
|
+
};
|
|
188
292
|
if (rpcResponse &&
|
|
189
293
|
signatureResult &&
|
|
190
|
-
signatureResult.confirmationStatus
|
|
191
|
-
|
|
294
|
+
signatureResult.confirmationStatus &&
|
|
295
|
+
statusRank[signatureResult.confirmationStatus] >=
|
|
296
|
+
((_b = statusRank[commitment]) !== null && _b !== void 0 ? _b : 2)) {
|
|
297
|
+
return {
|
|
298
|
+
context: rpcResponse.context,
|
|
299
|
+
value: { err: signatureResult.err },
|
|
300
|
+
};
|
|
192
301
|
}
|
|
193
302
|
totalTime += backoffTime;
|
|
194
303
|
backoffTime = Math.min(backoffTime * 2, 5000);
|
|
@@ -200,6 +309,14 @@ class BaseTxSender {
|
|
|
200
309
|
throw new types_1.TxSendError(`Transaction was not confirmed in ${duration.toFixed(2)} seconds. It is unknown if it succeeded or failed. Check signature ${signature} using the Solana Explorer or CLI tools.`, txConstants_1.NOT_CONFIRMED_ERROR_CODE);
|
|
201
310
|
}
|
|
202
311
|
}
|
|
312
|
+
/**
|
|
313
|
+
* Confirms a transaction using whichever strategy `this.confirmationStrategy` selects:
|
|
314
|
+
* `WebSocket`/`Combo` route to `confirmTransactionWebSocket`, `Polling` to `confirmTransactionPolling`.
|
|
315
|
+
* @param signature - Base58-encoded transaction signature to confirm.
|
|
316
|
+
* @param commitment - Commitment level to wait for.
|
|
317
|
+
* @returns The confirmation result, or `undefined` on timeout if `throwOnTimeoutError` is `false`.
|
|
318
|
+
* @throws TxSendError on timeout if `throwOnTimeoutError` is `true` (see `confirmTransactionWebSocket`/`confirmTransactionPolling`).
|
|
319
|
+
*/
|
|
203
320
|
async confirmTransaction(signature, commitment) {
|
|
204
321
|
if (this.confirmationStrategy === types_1.ConfirmationStrategy.WebSocket ||
|
|
205
322
|
this.confirmationStrategy === types_1.ConfirmationStrategy.Combo) {
|
|
@@ -209,9 +326,18 @@ class BaseTxSender {
|
|
|
209
326
|
return await this.confirmTransactionPolling(signature, commitment);
|
|
210
327
|
}
|
|
211
328
|
}
|
|
329
|
+
/** Current time in milliseconds since epoch (thin wrapper over `Date.now()`, overridable in tests). */
|
|
212
330
|
getTimestamp() {
|
|
213
331
|
return new Date().getTime();
|
|
214
332
|
}
|
|
333
|
+
/**
|
|
334
|
+
* Races an array of promises against a timeout, resolving to `null` (rather than rejecting) if
|
|
335
|
+
* none settle in time. Unlike `../util/promiseTimeout`, this accepts multiple promises (used to
|
|
336
|
+
* race confirmation across `connection` plus every `additionalConnections` entry).
|
|
337
|
+
* @param promises - Promises to race.
|
|
338
|
+
* @param timeoutMs - Timeout in milliseconds.
|
|
339
|
+
* @returns The first promise's resolved value, or `null` if none settled before `timeoutMs`.
|
|
340
|
+
*/
|
|
215
341
|
promiseTimeout(promises, timeoutMs) {
|
|
216
342
|
let timeoutId;
|
|
217
343
|
const timeoutPromise = new Promise((resolve) => {
|
|
@@ -222,6 +348,13 @@ class BaseTxSender {
|
|
|
222
348
|
return result;
|
|
223
349
|
});
|
|
224
350
|
}
|
|
351
|
+
/**
|
|
352
|
+
* Best-effort broadcasts a raw transaction to every `additionalConnections` entry and invokes
|
|
353
|
+
* `additionalTxSenderCallbacks` with its base58 encoding. Failures are logged, not thrown or
|
|
354
|
+
* awaited by the caller — this never affects whether the primary send/confirm succeeds.
|
|
355
|
+
* @param rawTx - Serialized, signed transaction bytes.
|
|
356
|
+
* @param opts - Options passed through to each connection's `sendRawTransaction`.
|
|
357
|
+
*/
|
|
225
358
|
sendToAdditionalConnections(rawTx, opts) {
|
|
226
359
|
var _a;
|
|
227
360
|
this.additionalConnections.map((connection) => {
|
|
@@ -236,6 +369,11 @@ class BaseTxSender {
|
|
|
236
369
|
callback(bs58_1.default.encode(rawTx));
|
|
237
370
|
});
|
|
238
371
|
}
|
|
372
|
+
/**
|
|
373
|
+
* Adds an extra RPC connection to broadcast future transactions to, unless a connection with
|
|
374
|
+
* the same RPC endpoint is already registered.
|
|
375
|
+
* @param newConnection - Connection to add to `additionalConnections`.
|
|
376
|
+
*/
|
|
239
377
|
addAdditionalConnection(newConnection) {
|
|
240
378
|
const alreadyUsingConnection = this.additionalConnections.filter((connection) => {
|
|
241
379
|
// @ts-ignore
|
|
@@ -245,9 +383,20 @@ class BaseTxSender {
|
|
|
245
383
|
this.additionalConnections.push(newConnection);
|
|
246
384
|
}
|
|
247
385
|
}
|
|
386
|
+
/** @returns The number of confirmation attempts that have timed out so far. */
|
|
248
387
|
getTimeoutCount() {
|
|
249
388
|
return this.timeoutCount;
|
|
250
389
|
}
|
|
390
|
+
/**
|
|
391
|
+
* Inspects a confirmed signature's result and, if it recorded an on-chain error, resolves the
|
|
392
|
+
* detailed program error via `throwTransactionError` and throws it. Note this check runs
|
|
393
|
+
* whenever `result.err` is set, independent of the `throwOnTransactionError` field — callers
|
|
394
|
+
* that want to suppress transaction-error throwing should avoid calling this method rather
|
|
395
|
+
* than rely on that flag here.
|
|
396
|
+
* @param txSig - Transaction signature to look up the detailed error for.
|
|
397
|
+
* @param result - The `SignatureResult` returned by confirmation.
|
|
398
|
+
* @throws Error the resolved on-chain program error, if `result.err` is set.
|
|
399
|
+
*/
|
|
251
400
|
async checkConfirmationResultForError(txSig, result) {
|
|
252
401
|
var _a;
|
|
253
402
|
if (result === null || result === void 0 ? void 0 : result.err) {
|
|
@@ -255,6 +404,12 @@ class BaseTxSender {
|
|
|
255
404
|
}
|
|
256
405
|
return;
|
|
257
406
|
}
|
|
407
|
+
/**
|
|
408
|
+
* Computes the fraction of recently sent transactions (within `lookbackWindowMinutes`) that
|
|
409
|
+
* landed, from `txSigCache`'s current entries. Returns the last computed `txLandRate` (default
|
|
410
|
+
* 0) if `trackTxLandRate` is disabled or the cache is empty, rather than recomputing.
|
|
411
|
+
* @returns The land rate as a fraction between 0 and 1.
|
|
412
|
+
*/
|
|
258
413
|
getTxLandRate() {
|
|
259
414
|
if (!this.trackTxLandRate || !this.txSigCache) {
|
|
260
415
|
return this.txLandRate;
|
|
@@ -274,6 +429,14 @@ class BaseTxSender {
|
|
|
274
429
|
this.txLandRate = numerator / denominator;
|
|
275
430
|
return this.txLandRate;
|
|
276
431
|
}
|
|
432
|
+
/**
|
|
433
|
+
* Default `landRateToFeeFunc`: returns `1` (no boost) if the land rate is already at/above
|
|
434
|
+
* `BASELINE_TX_LAND_RATE` (0.9) or fewer than 3 samples have been recorded yet (too little data
|
|
435
|
+
* to react); otherwise returns a multiplier that grows logarithmically as the land rate falls
|
|
436
|
+
* further below baseline, capped at `10`.
|
|
437
|
+
* @param txLandRate - Recent land rate, 0-1 (see `getTxLandRate`).
|
|
438
|
+
* @returns A priority-fee multiplier between 1 and 10.
|
|
439
|
+
*/
|
|
277
440
|
defaultLandRateToFeeFunc(txLandRate) {
|
|
278
441
|
var _a, _b;
|
|
279
442
|
if (txLandRate >= BASELINE_TX_LAND_RATE ||
|
|
@@ -283,6 +446,11 @@ class BaseTxSender {
|
|
|
283
446
|
const multiplier = 10 * Math.log10(1 + (BASELINE_TX_LAND_RATE - txLandRate) * 5);
|
|
284
447
|
return Math.min(multiplier, 10);
|
|
285
448
|
}
|
|
449
|
+
/**
|
|
450
|
+
* Suggests a multiplier to apply to a base priority fee, based on recent land rate — intended
|
|
451
|
+
* for callers to scale up their compute-unit price when transactions have been landing poorly.
|
|
452
|
+
* @returns `1` (no change) if `trackTxLandRate` is disabled; otherwise `landRateToFeeFunc(getTxLandRate())`.
|
|
453
|
+
*/
|
|
286
454
|
getSuggestedPriorityFeeMultiplier() {
|
|
287
455
|
if (!this.trackTxLandRate) {
|
|
288
456
|
return 1;
|
|
@@ -1,8 +1,20 @@
|
|
|
1
1
|
import { BlockhashWithExpiryBlockHeight, Commitment, Connection } from '@solana/web3.js';
|
|
2
2
|
import { BlockhashFetcher } from './types';
|
|
3
|
+
/**
|
|
4
|
+
* Simplest `BlockhashFetcher`: makes a fresh `getLatestBlockhash` RPC call on every request, no
|
|
5
|
+
* caching or retry. Prefer `CachedBlockhashFetcher` for senders issuing many transactions in quick
|
|
6
|
+
* succession to avoid RPC rate limits.
|
|
7
|
+
*/
|
|
3
8
|
export declare class BaseBlockhashFetcher implements BlockhashFetcher {
|
|
4
9
|
private connection;
|
|
5
10
|
private blockhashCommitment;
|
|
11
|
+
/**
|
|
12
|
+
* @param connection - RPC connection to fetch the blockhash from.
|
|
13
|
+
* @param blockhashCommitment - Commitment level to request the blockhash at.
|
|
14
|
+
*/
|
|
6
15
|
constructor(connection: Connection, blockhashCommitment: Commitment);
|
|
16
|
+
/**
|
|
17
|
+
* @returns The latest blockhash and its expiry block height, fetched fresh from `connection`.
|
|
18
|
+
*/
|
|
7
19
|
getLatestBlockhash(): Promise<BlockhashWithExpiryBlockHeight | undefined>;
|
|
8
20
|
}
|
|
@@ -1,11 +1,23 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.BaseBlockhashFetcher = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Simplest `BlockhashFetcher`: makes a fresh `getLatestBlockhash` RPC call on every request, no
|
|
6
|
+
* caching or retry. Prefer `CachedBlockhashFetcher` for senders issuing many transactions in quick
|
|
7
|
+
* succession to avoid RPC rate limits.
|
|
8
|
+
*/
|
|
4
9
|
class BaseBlockhashFetcher {
|
|
10
|
+
/**
|
|
11
|
+
* @param connection - RPC connection to fetch the blockhash from.
|
|
12
|
+
* @param blockhashCommitment - Commitment level to request the blockhash at.
|
|
13
|
+
*/
|
|
5
14
|
constructor(connection, blockhashCommitment) {
|
|
6
15
|
this.connection = connection;
|
|
7
16
|
this.blockhashCommitment = blockhashCommitment;
|
|
8
17
|
}
|
|
18
|
+
/**
|
|
19
|
+
* @returns The latest blockhash and its expiry block height, fetched fresh from `connection`.
|
|
20
|
+
*/
|
|
9
21
|
async getLatestBlockhash() {
|
|
10
22
|
return this.connection.getLatestBlockhash(this.blockhashCommitment);
|
|
11
23
|
}
|
|
@@ -15,10 +15,25 @@ export declare class CachedBlockhashFetcher implements BlockhashFetcher {
|
|
|
15
15
|
private staleCacheTimeMs;
|
|
16
16
|
private recentBlockhashCache;
|
|
17
17
|
private blockhashFetchingPromise;
|
|
18
|
+
/**
|
|
19
|
+
* @param connection - RPC connection to fetch the blockhash from.
|
|
20
|
+
* @param blockhashCommitment - Commitment level to request the blockhash at.
|
|
21
|
+
* @param retryCount - Maximum fetch attempts before giving up and throwing.
|
|
22
|
+
* @param retrySleepTimeMs - Base backoff delay (ms) between retries; doubles each attempt (`retrySleepTimeMs * 2^i`).
|
|
23
|
+
* @param staleCacheTimeMs - How long (ms) a cached blockhash is served before a refresh is triggered.
|
|
24
|
+
*/
|
|
18
25
|
constructor(connection: Connection, blockhashCommitment: Commitment, retryCount: number, retrySleepTimeMs: number, staleCacheTimeMs: number);
|
|
19
26
|
private fetchBlockhashWithRetry;
|
|
20
27
|
private sleep;
|
|
21
28
|
private updateBlockhashCache;
|
|
29
|
+
/**
|
|
30
|
+
* Returns the cached blockhash, refreshing it first if the cache is older than
|
|
31
|
+
* `staleCacheTimeMs`. Concurrent calls during a refresh all await the same in-flight fetch
|
|
32
|
+
* rather than issuing duplicate RPC requests.
|
|
33
|
+
* @returns The latest (possibly cached) blockhash and its expiry block height.
|
|
34
|
+
* @throws If no cached value exists yet and the initial fetch fails after exhausting
|
|
35
|
+
* `retryCount` retries.
|
|
36
|
+
*/
|
|
22
37
|
getLatestBlockhash(): Promise<BlockhashWithExpiryBlockHeight | undefined>;
|
|
23
38
|
private isCacheStale;
|
|
24
39
|
/**
|
|
@@ -9,6 +9,13 @@ exports.CachedBlockhashFetcher = void 0;
|
|
|
9
9
|
* - Prevents concurrent requests for the same blockhash
|
|
10
10
|
*/
|
|
11
11
|
class CachedBlockhashFetcher {
|
|
12
|
+
/**
|
|
13
|
+
* @param connection - RPC connection to fetch the blockhash from.
|
|
14
|
+
* @param blockhashCommitment - Commitment level to request the blockhash at.
|
|
15
|
+
* @param retryCount - Maximum fetch attempts before giving up and throwing.
|
|
16
|
+
* @param retrySleepTimeMs - Base backoff delay (ms) between retries; doubles each attempt (`retrySleepTimeMs * 2^i`).
|
|
17
|
+
* @param staleCacheTimeMs - How long (ms) a cached blockhash is served before a refresh is triggered.
|
|
18
|
+
*/
|
|
12
19
|
constructor(connection, blockhashCommitment, retryCount, retrySleepTimeMs, staleCacheTimeMs) {
|
|
13
20
|
this.connection = connection;
|
|
14
21
|
this.blockhashCommitment = blockhashCommitment;
|
|
@@ -42,6 +49,14 @@ class CachedBlockhashFetcher {
|
|
|
42
49
|
lastUpdated: Date.now(),
|
|
43
50
|
};
|
|
44
51
|
}
|
|
52
|
+
/**
|
|
53
|
+
* Returns the cached blockhash, refreshing it first if the cache is older than
|
|
54
|
+
* `staleCacheTimeMs`. Concurrent calls during a refresh all await the same in-flight fetch
|
|
55
|
+
* rather than issuing duplicate RPC requests.
|
|
56
|
+
* @returns The latest (possibly cached) blockhash and its expiry block height.
|
|
57
|
+
* @throws If no cached value exists yet and the initial fetch fails after exhausting
|
|
58
|
+
* `retryCount` retries.
|
|
59
|
+
*/
|
|
45
60
|
async getLatestBlockhash() {
|
|
46
61
|
if (this.isCacheStale()) {
|
|
47
62
|
await this.refreshBlockhash();
|
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
import { BlockhashWithExpiryBlockHeight } from '@solana/web3.js';
|
|
2
|
+
/** Strategy interface for obtaining a recent blockhash, abstracting whether it's fetched fresh every call or cached (see `BaseBlockhashFetcher`/`CachedBlockhashFetcher`). */
|
|
2
3
|
export interface BlockhashFetcher {
|
|
4
|
+
/**
|
|
5
|
+
* @returns The latest blockhash and its expiry block height, or `undefined` if unavailable.
|
|
6
|
+
*/
|
|
3
7
|
getLatestBlockhash(): Promise<BlockhashWithExpiryBlockHeight | undefined>;
|
|
4
8
|
}
|