@velocity-exchange/sdk 0.2.5 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +93 -0
- package/README.md +3 -3
- package/lib/browser/accounts/basicUserAccountSubscriber.d.ts +18 -0
- package/lib/browser/accounts/basicUserAccountSubscriber.js +18 -0
- package/lib/browser/accounts/basicUserStatsAccountSubscriber.d.ts +18 -0
- package/lib/browser/accounts/basicUserStatsAccountSubscriber.js +18 -0
- package/lib/browser/accounts/bulkAccountLoader.d.ts +52 -0
- package/lib/browser/accounts/bulkAccountLoader.js +51 -0
- package/lib/browser/accounts/bulkUserStatsSubscription.d.ts +9 -2
- package/lib/browser/accounts/bulkUserStatsSubscription.js +9 -2
- package/lib/browser/accounts/bulkUserSubscription.d.ts +8 -2
- package/lib/browser/accounts/bulkUserSubscription.js +8 -2
- package/lib/browser/accounts/customizedCadenceBulkAccountLoader.d.ts +37 -0
- package/lib/browser/accounts/customizedCadenceBulkAccountLoader.js +37 -0
- package/lib/browser/accounts/fetch.d.ts +59 -2
- package/lib/browser/accounts/fetch.js +57 -2
- package/lib/browser/accounts/grpcAccountSubscriber.d.ts +30 -0
- package/lib/browser/accounts/grpcAccountSubscriber.js +30 -0
- package/lib/browser/accounts/grpcInsuranceFundStakeAccountSubscriber.d.ts +16 -0
- package/lib/browser/accounts/grpcInsuranceFundStakeAccountSubscriber.js +16 -0
- package/lib/browser/accounts/grpcMultiAccountSubscriber.d.ts +60 -1
- package/lib/browser/accounts/grpcMultiAccountSubscriber.js +118 -37
- package/lib/browser/accounts/grpcMultiUserAccountSubscriber.d.ts +32 -0
- package/lib/browser/accounts/grpcMultiUserAccountSubscriber.js +40 -12
- package/lib/browser/accounts/grpcProgramAccountSubscriber.d.ts +33 -0
- package/lib/browser/accounts/grpcProgramAccountSubscriber.js +33 -0
- package/lib/browser/accounts/grpcUserAccountSubscriber.d.ts +15 -0
- package/lib/browser/accounts/grpcUserAccountSubscriber.js +15 -0
- package/lib/browser/accounts/grpcUserStatsAccountSubscriber.d.ts +15 -0
- package/lib/browser/accounts/grpcUserStatsAccountSubscriber.js +15 -0
- package/lib/browser/accounts/grpcVelocityClientAccountSubscriber.d.ts +41 -0
- package/lib/browser/accounts/grpcVelocityClientAccountSubscriber.js +41 -0
- package/lib/browser/accounts/grpcVelocityClientAccountSubscriberV2.d.ts +116 -0
- package/lib/browser/accounts/grpcVelocityClientAccountSubscriberV2.js +152 -1
- package/lib/browser/accounts/laserProgramAccountSubscriber.d.ts +34 -0
- package/lib/browser/accounts/laserProgramAccountSubscriber.js +34 -0
- package/lib/browser/accounts/oneShotUserAccountSubscriber.d.ts +19 -0
- package/lib/browser/accounts/oneShotUserAccountSubscriber.js +19 -0
- package/lib/browser/accounts/oneShotUserStatsAccountSubscriber.d.ts +19 -0
- package/lib/browser/accounts/oneShotUserStatsAccountSubscriber.js +19 -0
- package/lib/browser/accounts/pollingInsuranceFundStakeAccountSubscriber.d.ts +31 -0
- package/lib/browser/accounts/pollingInsuranceFundStakeAccountSubscriber.js +31 -0
- package/lib/browser/accounts/pollingOracleAccountSubscriber.d.ts +19 -0
- package/lib/browser/accounts/pollingOracleAccountSubscriber.js +21 -2
- package/lib/browser/accounts/pollingTokenAccountSubscriber.d.ts +22 -0
- package/lib/browser/accounts/pollingTokenAccountSubscriber.js +22 -0
- package/lib/browser/accounts/pollingUserAccountSubscriber.d.ts +32 -0
- package/lib/browser/accounts/pollingUserAccountSubscriber.js +32 -0
- package/lib/browser/accounts/pollingUserStatsAccountSubscriber.d.ts +22 -0
- package/lib/browser/accounts/pollingUserStatsAccountSubscriber.js +22 -0
- package/lib/browser/accounts/pollingVelocityClientAccountSubscriber.d.ts +83 -0
- package/lib/browser/accounts/pollingVelocityClientAccountSubscriber.js +84 -1
- package/lib/browser/accounts/testBulkAccountLoader.d.ts +8 -0
- package/lib/browser/accounts/testBulkAccountLoader.js +8 -0
- package/lib/browser/accounts/types.d.ts +149 -0
- package/lib/browser/accounts/types.js +13 -0
- package/lib/browser/accounts/utils.d.ts +18 -0
- package/lib/browser/accounts/utils.js +32 -16
- package/lib/browser/accounts/webSocketAccountSubscriber.d.ts +41 -0
- package/lib/browser/accounts/webSocketAccountSubscriber.js +41 -0
- package/lib/browser/accounts/webSocketAccountSubscriberV2.d.ts +31 -0
- package/lib/browser/accounts/webSocketAccountSubscriberV2.js +31 -23
- package/lib/browser/accounts/webSocketInsuranceFundStakeAccountSubscriber.d.ts +27 -0
- package/lib/browser/accounts/webSocketInsuranceFundStakeAccountSubscriber.js +27 -0
- package/lib/browser/accounts/webSocketProgramAccountSubscriber.d.ts +36 -0
- package/lib/browser/accounts/webSocketProgramAccountSubscriber.js +36 -0
- package/lib/browser/accounts/webSocketProgramAccountSubscriberV2.d.ts +21 -0
- package/lib/browser/accounts/webSocketProgramAccountSubscriberV2.js +25 -0
- package/lib/browser/accounts/webSocketProgramAccountsSubscriberV2.d.ts +21 -0
- package/lib/browser/accounts/webSocketProgramAccountsSubscriberV2.js +21 -0
- package/lib/browser/accounts/webSocketUserAccountSubscriber.d.ts +26 -0
- package/lib/browser/accounts/webSocketUserAccountSubscriber.js +26 -0
- package/lib/browser/accounts/webSocketUserStatsAccountSubsriber.d.ts +20 -0
- package/lib/browser/accounts/webSocketUserStatsAccountSubsriber.js +20 -0
- package/lib/browser/accounts/webSocketVelocityClientAccountSubscriber.d.ts +121 -0
- package/lib/browser/accounts/webSocketVelocityClientAccountSubscriber.js +123 -2
- package/lib/browser/accounts/webSocketVelocityClientAccountSubscriberV2.d.ts +96 -0
- package/lib/browser/accounts/webSocketVelocityClientAccountSubscriberV2.js +108 -0
- package/lib/browser/accounts/websocketProgramUserAccountSubscriber.d.ts +28 -0
- package/lib/browser/accounts/websocketProgramUserAccountSubscriber.js +33 -0
- package/lib/browser/addresses/marketAddresses.d.ts +10 -0
- package/lib/browser/addresses/marketAddresses.js +10 -0
- package/lib/browser/addresses/pda.d.ts +214 -2
- package/lib/browser/addresses/pda.js +217 -5
- package/lib/browser/adminClient.d.ts +2139 -5
- package/lib/browser/adminClient.js +2173 -11
- package/lib/browser/auctionSubscriber/auctionSubscriber.d.ts +15 -0
- package/lib/browser/auctionSubscriber/auctionSubscriber.js +15 -0
- package/lib/browser/auctionSubscriber/auctionSubscriberGrpc.d.ts +19 -0
- package/lib/browser/auctionSubscriber/auctionSubscriberGrpc.js +19 -0
- package/lib/browser/auctionSubscriber/index.d.ts +6 -0
- package/lib/browser/auctionSubscriber/index.js +6 -0
- package/lib/browser/auctionSubscriber/types.d.ts +7 -0
- package/lib/browser/blockhashSubscriber/BlockhashSubscriber.d.ts +33 -0
- package/lib/browser/blockhashSubscriber/BlockhashSubscriber.js +33 -0
- package/lib/browser/blockhashSubscriber/index.d.ts +5 -0
- package/lib/browser/blockhashSubscriber/index.js +5 -0
- package/lib/browser/blockhashSubscriber/types.d.ts +5 -0
- package/lib/browser/clock/clockSubscriber.d.ts +24 -0
- package/lib/browser/clock/clockSubscriber.js +22 -0
- package/lib/browser/config.d.ts +58 -4
- package/lib/browser/config.js +88 -21
- package/lib/browser/constants/numericConstants.d.ts +67 -0
- package/lib/browser/constants/numericConstants.js +68 -1
- package/lib/browser/constants/perpMarkets.d.ts +10 -0
- package/lib/browser/constants/perpMarkets.js +40 -908
- package/lib/browser/constants/spotMarkets.d.ts +13 -0
- package/lib/browser/constants/spotMarkets.js +16 -742
- package/lib/browser/constants/txConstants.d.ts +1 -0
- package/lib/browser/constants/txConstants.js +1 -0
- package/lib/browser/core/VelocityCore.d.ts +285 -8
- package/lib/browser/core/VelocityCore.js +281 -8
- package/lib/browser/core/instructions/deposit.d.ts +22 -0
- package/lib/browser/core/instructions/deposit.js +22 -0
- package/lib/browser/core/instructions/fill.d.ts +17 -0
- package/lib/browser/core/instructions/fill.js +17 -0
- package/lib/browser/core/instructions/funding.d.ts +12 -0
- package/lib/browser/core/instructions/funding.js +12 -0
- package/lib/browser/core/instructions/liquidation.d.ts +18 -0
- package/lib/browser/core/instructions/liquidation.js +18 -0
- package/lib/browser/core/instructions/orders.d.ts +28 -0
- package/lib/browser/core/instructions/orders.js +28 -0
- package/lib/browser/core/instructions/perpOrders.d.ts +106 -0
- package/lib/browser/core/instructions/perpOrders.js +106 -0
- package/lib/browser/core/instructions/settlement.d.ts +14 -0
- package/lib/browser/core/instructions/settlement.js +14 -0
- package/lib/browser/core/instructions/trigger.d.ts +15 -0
- package/lib/browser/core/instructions/trigger.js +15 -0
- package/lib/browser/core/instructions/withdraw.d.ts +21 -0
- package/lib/browser/core/instructions/withdraw.js +21 -0
- package/lib/browser/core/remainingAccounts.d.ts +47 -3
- package/lib/browser/core/remainingAccounts.js +20 -0
- package/lib/browser/core/signedMsg.d.ts +38 -0
- package/lib/browser/core/signedMsg.js +33 -0
- package/lib/browser/decode/customCoder.d.ts +39 -3
- package/lib/browser/decode/customCoder.js +45 -3
- package/lib/browser/decode/user.d.ts +22 -0
- package/lib/browser/decode/user.js +22 -0
- package/lib/browser/dlob/DLOB.d.ts +502 -53
- package/lib/browser/dlob/DLOB.js +540 -98
- package/lib/browser/dlob/DLOBNode.d.ts +86 -4
- package/lib/browser/dlob/DLOBNode.js +37 -4
- package/lib/browser/dlob/DLOBSubscriber.d.ts +39 -12
- package/lib/browser/dlob/DLOBSubscriber.js +42 -12
- package/lib/browser/dlob/NodeList.d.ts +69 -0
- package/lib/browser/dlob/NodeList.js +66 -0
- package/lib/browser/dlob/orderBookLevels.d.ts +106 -13
- package/lib/browser/dlob/orderBookLevels.js +84 -14
- package/lib/browser/dlob/types.d.ts +15 -0
- package/lib/browser/events/eventList.d.ts +14 -0
- package/lib/browser/events/eventList.js +14 -0
- package/lib/browser/events/eventSubscriber.d.ts +87 -10
- package/lib/browser/events/eventSubscriber.js +93 -8
- package/lib/browser/events/eventsServerLogProvider.d.ts +22 -0
- package/lib/browser/events/eventsServerLogProvider.js +27 -0
- package/lib/browser/events/fetchLogs.d.ts +31 -0
- package/lib/browser/events/fetchLogs.js +46 -1
- package/lib/browser/events/parse.d.ts +23 -0
- package/lib/browser/events/parse.js +23 -0
- package/lib/browser/events/pollingLogProvider.d.ts +24 -0
- package/lib/browser/events/pollingLogProvider.js +24 -0
- package/lib/browser/events/sort.d.ts +11 -0
- package/lib/browser/events/sort.js +12 -0
- package/lib/browser/events/txEventCache.d.ts +13 -3
- package/lib/browser/events/txEventCache.js +19 -7
- package/lib/browser/events/types.d.ts +118 -2
- package/lib/browser/events/types.js +11 -0
- package/lib/browser/events/webSocketLogProvider.d.ts +23 -0
- package/lib/browser/events/webSocketLogProvider.js +28 -0
- package/lib/browser/factory/oracleClient.js +2 -2
- package/lib/browser/idl/velocity.d.ts +50 -1
- package/lib/browser/idl/velocity.json +50 -1
- package/lib/browser/keypair.d.ts +8 -0
- package/lib/browser/keypair.js +8 -0
- package/lib/browser/marginCalculation.d.ts +134 -2
- package/lib/browser/marginCalculation.js +121 -0
- package/lib/browser/math/amm.d.ts +348 -29
- package/lib/browser/math/amm.js +310 -32
- package/lib/browser/math/auction.d.ts +95 -19
- package/lib/browser/math/auction.js +118 -28
- package/lib/browser/math/bankruptcy.d.ts +46 -0
- package/lib/browser/math/bankruptcy.js +89 -1
- package/lib/browser/math/builder.d.ts +64 -8
- package/lib/browser/math/builder.js +71 -9
- package/lib/browser/math/conversion.d.ts +21 -0
- package/lib/browser/math/conversion.js +21 -0
- package/lib/browser/math/exchangeStatus.d.ts +92 -0
- package/lib/browser/math/exchangeStatus.js +111 -1
- package/lib/browser/math/funding.d.ts +57 -20
- package/lib/browser/math/funding.js +63 -23
- package/lib/browser/math/insurance.d.ts +62 -0
- package/lib/browser/math/insurance.js +62 -0
- package/lib/browser/math/liquidation.d.ts +127 -11
- package/lib/browser/math/liquidation.js +182 -19
- package/lib/browser/math/margin.d.ts +79 -13
- package/lib/browser/math/margin.js +80 -14
- package/lib/browser/math/market.d.ts +135 -15
- package/lib/browser/math/market.js +145 -17
- package/lib/browser/math/oracles.d.ts +113 -0
- package/lib/browser/math/oracles.js +118 -1
- package/lib/browser/math/orders.d.ts +115 -7
- package/lib/browser/math/orders.js +133 -18
- package/lib/browser/math/position.d.ts +80 -33
- package/lib/browser/math/position.js +80 -33
- package/lib/browser/math/repeg.d.ts +48 -10
- package/lib/browser/math/repeg.js +48 -10
- package/lib/browser/math/spotBalance.d.ts +200 -5
- package/lib/browser/math/spotBalance.js +239 -10
- package/lib/browser/math/spotMarket.d.ts +36 -3
- package/lib/browser/math/spotMarket.js +36 -3
- package/lib/browser/math/spotPosition.d.ts +72 -0
- package/lib/browser/math/spotPosition.js +62 -0
- package/lib/browser/math/state.d.ts +31 -0
- package/lib/browser/math/state.js +32 -1
- package/lib/browser/math/superStake.d.ts +126 -2
- package/lib/browser/math/superStake.js +123 -3
- package/lib/browser/math/tiers.d.ts +29 -0
- package/lib/browser/math/tiers.js +29 -0
- package/lib/browser/math/trade.d.ts +102 -51
- package/lib/browser/math/trade.js +101 -55
- package/lib/browser/math/utils.d.ts +71 -9
- package/lib/browser/math/utils.js +71 -9
- package/lib/browser/memcmp.d.ts +94 -0
- package/lib/browser/memcmp.js +129 -7
- package/lib/browser/oracles/oracleClientCache.d.ts +16 -0
- package/lib/browser/oracles/oracleClientCache.js +16 -0
- package/lib/browser/oracles/oracleId.d.ts +31 -0
- package/lib/browser/oracles/oracleId.js +39 -8
- package/lib/browser/oracles/prelaunchOracleClient.d.ts +20 -0
- package/lib/browser/oracles/prelaunchOracleClient.js +20 -0
- package/lib/browser/oracles/pythClient.d.ts +31 -0
- package/lib/browser/oracles/pythClient.js +32 -1
- package/lib/browser/oracles/pythLazerClient.d.ts +34 -0
- package/lib/browser/oracles/pythLazerClient.js +35 -1
- package/lib/browser/oracles/quoteAssetOracleClient.d.ts +18 -0
- package/lib/browser/oracles/quoteAssetOracleClient.js +18 -0
- package/lib/browser/oracles/strictOraclePrice.d.ts +21 -0
- package/lib/browser/oracles/strictOraclePrice.js +21 -0
- package/lib/browser/oracles/types.d.ts +45 -0
- package/lib/browser/oracles/utils.d.ts +20 -0
- package/lib/browser/oracles/utils.js +20 -0
- package/lib/browser/orderParams.d.ts +42 -4
- package/lib/browser/orderParams.js +42 -4
- package/lib/browser/orderSubscriber/OrderSubscriber.d.ts +56 -0
- package/lib/browser/orderSubscriber/OrderSubscriber.js +67 -2
- package/lib/browser/orderSubscriber/PollingSubscription.d.ts +11 -0
- package/lib/browser/orderSubscriber/PollingSubscription.js +11 -0
- package/lib/browser/orderSubscriber/WebsocketSubscription.d.ts +18 -0
- package/lib/browser/orderSubscriber/WebsocketSubscription.js +18 -0
- package/lib/browser/orderSubscriber/grpcSubscription.d.ts +16 -0
- package/lib/browser/orderSubscriber/grpcSubscription.js +16 -0
- package/lib/browser/orderSubscriber/types.d.ts +9 -0
- package/lib/browser/priorityFee/averageOverSlotsStrategy.d.ts +1 -0
- package/lib/browser/priorityFee/averageOverSlotsStrategy.js +1 -0
- package/lib/browser/priorityFee/averageStrategy.d.ts +1 -0
- package/lib/browser/priorityFee/averageStrategy.js +1 -0
- package/lib/browser/priorityFee/ewmaStrategy.d.ts +10 -0
- package/lib/browser/priorityFee/ewmaStrategy.js +10 -0
- package/lib/browser/priorityFee/heliusPriorityFeeMethod.d.ts +13 -0
- package/lib/browser/priorityFee/heliusPriorityFeeMethod.js +9 -2
- package/lib/browser/priorityFee/maxOverSlotsStrategy.d.ts +1 -0
- package/lib/browser/priorityFee/maxOverSlotsStrategy.js +1 -0
- package/lib/browser/priorityFee/maxStrategy.d.ts +1 -0
- package/lib/browser/priorityFee/maxStrategy.js +1 -0
- package/lib/browser/priorityFee/priorityFeeSubscriber.d.ts +39 -0
- package/lib/browser/priorityFee/priorityFeeSubscriber.js +39 -0
- package/lib/browser/priorityFee/priorityFeeSubscriberMap.d.ts +20 -1
- package/lib/browser/priorityFee/priorityFeeSubscriberMap.js +21 -2
- package/lib/browser/priorityFee/solanaPriorityFeeMethod.d.ts +12 -0
- package/lib/browser/priorityFee/solanaPriorityFeeMethod.js +10 -0
- package/lib/browser/priorityFee/types.d.ts +32 -0
- package/lib/browser/priorityFee/types.js +5 -0
- package/lib/browser/priorityFee/velocityPriorityFeeMethod.d.ts +11 -0
- package/lib/browser/priorityFee/velocityPriorityFeeMethod.js +8 -0
- package/lib/browser/slot/SlotSubscriber.d.ts +18 -0
- package/lib/browser/slot/SlotSubscriber.js +16 -0
- package/lib/browser/slot/SlothashSubscriber.d.ts +26 -0
- package/lib/browser/slot/SlothashSubscriber.js +25 -1
- package/lib/browser/swift/swiftOrderSubscriber.js +2 -2
- package/lib/browser/tokenFaucet.d.ts +2 -2
- package/lib/browser/tokenFaucet.js +11 -4
- package/lib/browser/tx/baseTxSender.d.ts +163 -0
- package/lib/browser/tx/baseTxSender.js +174 -6
- package/lib/browser/tx/blockhashFetcher/baseBlockhashFetcher.d.ts +12 -0
- package/lib/browser/tx/blockhashFetcher/baseBlockhashFetcher.js +12 -0
- package/lib/browser/tx/blockhashFetcher/cachedBlockhashFetcher.d.ts +15 -0
- package/lib/browser/tx/blockhashFetcher/cachedBlockhashFetcher.js +15 -0
- package/lib/browser/tx/blockhashFetcher/types.d.ts +4 -0
- package/lib/browser/tx/fastSingleTxSender.d.ts +47 -0
- package/lib/browser/tx/fastSingleTxSender.js +48 -1
- package/lib/browser/tx/forwardOnlyTxSender.d.ts +48 -0
- package/lib/browser/tx/forwardOnlyTxSender.js +48 -0
- package/lib/browser/tx/reportTransactionError.d.ts +18 -6
- package/lib/browser/tx/reportTransactionError.js +18 -6
- package/lib/browser/tx/retryTxSender.d.ts +40 -0
- package/lib/browser/tx/retryTxSender.js +39 -0
- package/lib/browser/tx/txHandler.d.ts +146 -35
- package/lib/browser/tx/txHandler.js +132 -32
- package/lib/browser/tx/txParamProcessor.d.ts +47 -0
- package/lib/browser/tx/txParamProcessor.js +47 -0
- package/lib/browser/tx/types.d.ts +46 -0
- package/lib/browser/tx/types.js +5 -0
- package/lib/browser/tx/utils.d.ts +26 -0
- package/lib/browser/tx/utils.js +26 -0
- package/lib/browser/tx/whileValidTxSender.d.ts +82 -0
- package/lib/browser/tx/whileValidTxSender.js +81 -0
- package/lib/browser/types.d.ts +786 -13
- package/lib/browser/types.js +133 -9
- package/lib/browser/user.d.ts +645 -84
- package/lib/browser/user.js +779 -96
- package/lib/browser/userMap/PollingSubscription.d.ts +10 -0
- package/lib/browser/userMap/PollingSubscription.js +14 -2
- package/lib/browser/userMap/WebsocketSubscription.d.ts +9 -0
- package/lib/browser/userMap/WebsocketSubscription.js +9 -0
- package/lib/browser/userMap/grpcSubscription.d.ts +8 -0
- package/lib/browser/userMap/grpcSubscription.js +8 -0
- package/lib/browser/userMap/referrerMap.d.ts +72 -2
- package/lib/browser/userMap/referrerMap.js +84 -2
- package/lib/browser/userMap/revenueShareEscrowMap.d.ts +37 -10
- package/lib/browser/userMap/revenueShareEscrowMap.js +38 -11
- package/lib/browser/userMap/userMap.d.ts +81 -3
- package/lib/browser/userMap/userMap.js +81 -4
- package/lib/browser/userMap/userMapConfig.d.ts +23 -0
- package/lib/browser/userMap/userStatsMap.d.ts +22 -0
- package/lib/browser/userMap/userStatsMap.js +22 -0
- package/lib/browser/userName.d.ts +16 -0
- package/lib/browser/userName.js +16 -0
- package/lib/browser/userStats.d.ts +28 -1
- package/lib/browser/userStats.js +28 -1
- package/lib/browser/util/TransactionConfirmationManager.d.ts +33 -0
- package/lib/browser/util/TransactionConfirmationManager.js +33 -0
- package/lib/browser/util/chainClock.d.ts +24 -0
- package/lib/browser/util/chainClock.js +20 -0
- package/lib/browser/util/computeUnits.d.ts +32 -0
- package/lib/browser/util/computeUnits.js +32 -0
- package/lib/browser/util/digest.d.ts +17 -0
- package/lib/browser/util/digest.js +17 -0
- package/lib/browser/util/ed25519Utils.d.ts +12 -2
- package/lib/browser/util/ed25519Utils.js +12 -2
- package/lib/browser/util/promiseTimeout.d.ts +9 -0
- package/lib/browser/util/promiseTimeout.js +9 -0
- package/lib/browser/velocityClient.d.ts +3323 -216
- package/lib/browser/velocityClient.js +3428 -249
- package/lib/browser/wallet.d.ts +37 -0
- package/lib/browser/wallet.js +37 -0
- package/lib/node/accounts/basicUserAccountSubscriber.d.ts +18 -0
- package/lib/node/accounts/basicUserAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/basicUserAccountSubscriber.js +18 -0
- package/lib/node/accounts/basicUserStatsAccountSubscriber.d.ts +18 -0
- package/lib/node/accounts/basicUserStatsAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/basicUserStatsAccountSubscriber.js +18 -0
- package/lib/node/accounts/bulkAccountLoader.d.ts +52 -0
- package/lib/node/accounts/bulkAccountLoader.d.ts.map +1 -1
- package/lib/node/accounts/bulkAccountLoader.js +51 -0
- package/lib/node/accounts/bulkUserStatsSubscription.d.ts +9 -2
- package/lib/node/accounts/bulkUserStatsSubscription.d.ts.map +1 -1
- package/lib/node/accounts/bulkUserStatsSubscription.js +9 -2
- package/lib/node/accounts/bulkUserSubscription.d.ts +8 -2
- package/lib/node/accounts/bulkUserSubscription.d.ts.map +1 -1
- package/lib/node/accounts/bulkUserSubscription.js +8 -2
- package/lib/node/accounts/customizedCadenceBulkAccountLoader.d.ts +37 -0
- package/lib/node/accounts/customizedCadenceBulkAccountLoader.d.ts.map +1 -1
- package/lib/node/accounts/customizedCadenceBulkAccountLoader.js +37 -0
- package/lib/node/accounts/fetch.d.ts +59 -2
- package/lib/node/accounts/fetch.d.ts.map +1 -1
- package/lib/node/accounts/fetch.js +57 -2
- package/lib/node/accounts/grpcAccountSubscriber.d.ts +30 -0
- package/lib/node/accounts/grpcAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/grpcAccountSubscriber.js +30 -0
- package/lib/node/accounts/grpcInsuranceFundStakeAccountSubscriber.d.ts +16 -0
- package/lib/node/accounts/grpcInsuranceFundStakeAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/grpcInsuranceFundStakeAccountSubscriber.js +16 -0
- package/lib/node/accounts/grpcMultiAccountSubscriber.d.ts +60 -1
- package/lib/node/accounts/grpcMultiAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/grpcMultiAccountSubscriber.js +118 -37
- package/lib/node/accounts/grpcMultiUserAccountSubscriber.d.ts +32 -0
- package/lib/node/accounts/grpcMultiUserAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/grpcMultiUserAccountSubscriber.js +40 -12
- package/lib/node/accounts/grpcProgramAccountSubscriber.d.ts +33 -0
- package/lib/node/accounts/grpcProgramAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/grpcProgramAccountSubscriber.js +33 -0
- package/lib/node/accounts/grpcUserAccountSubscriber.d.ts +15 -0
- package/lib/node/accounts/grpcUserAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/grpcUserAccountSubscriber.js +15 -0
- package/lib/node/accounts/grpcUserStatsAccountSubscriber.d.ts +15 -0
- package/lib/node/accounts/grpcUserStatsAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/grpcUserStatsAccountSubscriber.js +15 -0
- package/lib/node/accounts/grpcVelocityClientAccountSubscriber.d.ts +41 -0
- package/lib/node/accounts/grpcVelocityClientAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/grpcVelocityClientAccountSubscriber.js +41 -0
- package/lib/node/accounts/grpcVelocityClientAccountSubscriberV2.d.ts +116 -0
- package/lib/node/accounts/grpcVelocityClientAccountSubscriberV2.d.ts.map +1 -1
- package/lib/node/accounts/grpcVelocityClientAccountSubscriberV2.js +152 -1
- package/lib/node/accounts/laserProgramAccountSubscriber.d.ts +34 -0
- package/lib/node/accounts/laserProgramAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/laserProgramAccountSubscriber.js +34 -0
- package/lib/node/accounts/oneShotUserAccountSubscriber.d.ts +19 -0
- package/lib/node/accounts/oneShotUserAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/oneShotUserAccountSubscriber.js +19 -0
- package/lib/node/accounts/oneShotUserStatsAccountSubscriber.d.ts +19 -0
- package/lib/node/accounts/oneShotUserStatsAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/oneShotUserStatsAccountSubscriber.js +19 -0
- package/lib/node/accounts/pollingInsuranceFundStakeAccountSubscriber.d.ts +31 -0
- package/lib/node/accounts/pollingInsuranceFundStakeAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/pollingInsuranceFundStakeAccountSubscriber.js +31 -0
- package/lib/node/accounts/pollingOracleAccountSubscriber.d.ts +19 -0
- package/lib/node/accounts/pollingOracleAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/pollingOracleAccountSubscriber.js +21 -2
- package/lib/node/accounts/pollingTokenAccountSubscriber.d.ts +22 -0
- package/lib/node/accounts/pollingTokenAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/pollingTokenAccountSubscriber.js +22 -0
- package/lib/node/accounts/pollingUserAccountSubscriber.d.ts +32 -0
- package/lib/node/accounts/pollingUserAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/pollingUserAccountSubscriber.js +32 -0
- package/lib/node/accounts/pollingUserStatsAccountSubscriber.d.ts +22 -0
- package/lib/node/accounts/pollingUserStatsAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/pollingUserStatsAccountSubscriber.js +22 -0
- package/lib/node/accounts/pollingVelocityClientAccountSubscriber.d.ts +83 -0
- package/lib/node/accounts/pollingVelocityClientAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/pollingVelocityClientAccountSubscriber.js +84 -1
- package/lib/node/accounts/testBulkAccountLoader.d.ts +8 -0
- package/lib/node/accounts/testBulkAccountLoader.d.ts.map +1 -1
- package/lib/node/accounts/testBulkAccountLoader.js +8 -0
- package/lib/node/accounts/types.d.ts +149 -0
- package/lib/node/accounts/types.d.ts.map +1 -1
- package/lib/node/accounts/types.js +13 -0
- package/lib/node/accounts/utils.d.ts +18 -0
- package/lib/node/accounts/utils.d.ts.map +1 -1
- package/lib/node/accounts/utils.js +32 -16
- package/lib/node/accounts/webSocketAccountSubscriber.d.ts +41 -0
- package/lib/node/accounts/webSocketAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/webSocketAccountSubscriber.js +41 -0
- package/lib/node/accounts/webSocketAccountSubscriberV2.d.ts +31 -0
- package/lib/node/accounts/webSocketAccountSubscriberV2.d.ts.map +1 -1
- package/lib/node/accounts/webSocketAccountSubscriberV2.js +31 -23
- package/lib/node/accounts/webSocketInsuranceFundStakeAccountSubscriber.d.ts +27 -0
- package/lib/node/accounts/webSocketInsuranceFundStakeAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/webSocketInsuranceFundStakeAccountSubscriber.js +27 -0
- package/lib/node/accounts/webSocketProgramAccountSubscriber.d.ts +36 -0
- package/lib/node/accounts/webSocketProgramAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/webSocketProgramAccountSubscriber.js +36 -0
- package/lib/node/accounts/webSocketProgramAccountSubscriberV2.d.ts +21 -0
- package/lib/node/accounts/webSocketProgramAccountSubscriberV2.d.ts.map +1 -1
- package/lib/node/accounts/webSocketProgramAccountSubscriberV2.js +25 -0
- package/lib/node/accounts/webSocketProgramAccountsSubscriberV2.d.ts +21 -0
- package/lib/node/accounts/webSocketProgramAccountsSubscriberV2.d.ts.map +1 -1
- package/lib/node/accounts/webSocketProgramAccountsSubscriberV2.js +21 -0
- package/lib/node/accounts/webSocketUserAccountSubscriber.d.ts +26 -0
- package/lib/node/accounts/webSocketUserAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/webSocketUserAccountSubscriber.js +26 -0
- package/lib/node/accounts/webSocketUserStatsAccountSubsriber.d.ts +20 -0
- package/lib/node/accounts/webSocketUserStatsAccountSubsriber.d.ts.map +1 -1
- package/lib/node/accounts/webSocketUserStatsAccountSubsriber.js +20 -0
- package/lib/node/accounts/webSocketVelocityClientAccountSubscriber.d.ts +121 -0
- package/lib/node/accounts/webSocketVelocityClientAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/webSocketVelocityClientAccountSubscriber.js +123 -2
- package/lib/node/accounts/webSocketVelocityClientAccountSubscriberV2.d.ts +96 -0
- package/lib/node/accounts/webSocketVelocityClientAccountSubscriberV2.d.ts.map +1 -1
- package/lib/node/accounts/webSocketVelocityClientAccountSubscriberV2.js +108 -0
- package/lib/node/accounts/websocketProgramUserAccountSubscriber.d.ts +28 -0
- package/lib/node/accounts/websocketProgramUserAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/websocketProgramUserAccountSubscriber.js +33 -0
- package/lib/node/addresses/marketAddresses.d.ts +10 -0
- package/lib/node/addresses/marketAddresses.d.ts.map +1 -1
- package/lib/node/addresses/marketAddresses.js +10 -0
- package/lib/node/addresses/pda.d.ts +214 -2
- package/lib/node/addresses/pda.d.ts.map +1 -1
- package/lib/node/addresses/pda.js +217 -5
- package/lib/node/adminClient.d.ts +2139 -5
- package/lib/node/adminClient.d.ts.map +1 -1
- package/lib/node/adminClient.js +2173 -11
- package/lib/node/auctionSubscriber/auctionSubscriber.d.ts +15 -0
- package/lib/node/auctionSubscriber/auctionSubscriber.d.ts.map +1 -1
- package/lib/node/auctionSubscriber/auctionSubscriber.js +15 -0
- package/lib/node/auctionSubscriber/auctionSubscriberGrpc.d.ts +19 -0
- package/lib/node/auctionSubscriber/auctionSubscriberGrpc.d.ts.map +1 -1
- package/lib/node/auctionSubscriber/auctionSubscriberGrpc.js +19 -0
- package/lib/node/auctionSubscriber/index.d.ts +6 -0
- package/lib/node/auctionSubscriber/index.d.ts.map +1 -1
- package/lib/node/auctionSubscriber/index.js +6 -0
- package/lib/node/auctionSubscriber/types.d.ts +7 -0
- package/lib/node/auctionSubscriber/types.d.ts.map +1 -1
- package/lib/node/blockhashSubscriber/BlockhashSubscriber.d.ts +33 -0
- package/lib/node/blockhashSubscriber/BlockhashSubscriber.d.ts.map +1 -1
- package/lib/node/blockhashSubscriber/BlockhashSubscriber.js +33 -0
- package/lib/node/blockhashSubscriber/index.d.ts +5 -0
- package/lib/node/blockhashSubscriber/index.d.ts.map +1 -1
- package/lib/node/blockhashSubscriber/index.js +5 -0
- package/lib/node/blockhashSubscriber/types.d.ts +5 -0
- package/lib/node/blockhashSubscriber/types.d.ts.map +1 -1
- package/lib/node/clock/clockSubscriber.d.ts +24 -0
- package/lib/node/clock/clockSubscriber.d.ts.map +1 -1
- package/lib/node/clock/clockSubscriber.js +22 -0
- package/lib/node/config.d.ts +58 -4
- package/lib/node/config.d.ts.map +1 -1
- package/lib/node/config.js +88 -21
- package/lib/node/constants/numericConstants.d.ts +67 -0
- package/lib/node/constants/numericConstants.d.ts.map +1 -1
- package/lib/node/constants/numericConstants.js +68 -1
- package/lib/node/constants/perpMarkets.d.ts +10 -0
- package/lib/node/constants/perpMarkets.d.ts.map +1 -1
- package/lib/node/constants/perpMarkets.js +40 -908
- package/lib/node/constants/spotMarkets.d.ts +13 -0
- package/lib/node/constants/spotMarkets.d.ts.map +1 -1
- package/lib/node/constants/spotMarkets.js +16 -742
- package/lib/node/constants/txConstants.d.ts +1 -0
- package/lib/node/constants/txConstants.d.ts.map +1 -1
- package/lib/node/constants/txConstants.js +1 -0
- package/lib/node/core/VelocityCore.d.ts +285 -8
- package/lib/node/core/VelocityCore.d.ts.map +1 -1
- package/lib/node/core/VelocityCore.js +281 -8
- package/lib/node/core/instructions/deposit.d.ts +22 -0
- package/lib/node/core/instructions/deposit.d.ts.map +1 -1
- package/lib/node/core/instructions/deposit.js +22 -0
- package/lib/node/core/instructions/fill.d.ts +17 -0
- package/lib/node/core/instructions/fill.d.ts.map +1 -1
- package/lib/node/core/instructions/fill.js +17 -0
- package/lib/node/core/instructions/funding.d.ts +12 -0
- package/lib/node/core/instructions/funding.d.ts.map +1 -1
- package/lib/node/core/instructions/funding.js +12 -0
- package/lib/node/core/instructions/liquidation.d.ts +18 -0
- package/lib/node/core/instructions/liquidation.d.ts.map +1 -1
- package/lib/node/core/instructions/liquidation.js +18 -0
- package/lib/node/core/instructions/orders.d.ts +28 -0
- package/lib/node/core/instructions/orders.d.ts.map +1 -1
- package/lib/node/core/instructions/orders.js +28 -0
- package/lib/node/core/instructions/perpOrders.d.ts +106 -0
- package/lib/node/core/instructions/perpOrders.d.ts.map +1 -1
- package/lib/node/core/instructions/perpOrders.js +106 -0
- package/lib/node/core/instructions/settlement.d.ts +14 -0
- package/lib/node/core/instructions/settlement.d.ts.map +1 -1
- package/lib/node/core/instructions/settlement.js +14 -0
- package/lib/node/core/instructions/trigger.d.ts +15 -0
- package/lib/node/core/instructions/trigger.d.ts.map +1 -1
- package/lib/node/core/instructions/trigger.js +15 -0
- package/lib/node/core/instructions/withdraw.d.ts +21 -0
- package/lib/node/core/instructions/withdraw.d.ts.map +1 -1
- package/lib/node/core/instructions/withdraw.js +21 -0
- package/lib/node/core/remainingAccounts.d.ts +47 -3
- package/lib/node/core/remainingAccounts.d.ts.map +1 -1
- package/lib/node/core/remainingAccounts.js +20 -0
- package/lib/node/core/signedMsg.d.ts +38 -0
- package/lib/node/core/signedMsg.d.ts.map +1 -1
- package/lib/node/core/signedMsg.js +33 -0
- package/lib/node/decode/customCoder.d.ts +39 -3
- package/lib/node/decode/customCoder.d.ts.map +1 -1
- package/lib/node/decode/customCoder.js +45 -3
- package/lib/node/decode/user.d.ts +22 -0
- package/lib/node/decode/user.d.ts.map +1 -1
- package/lib/node/decode/user.js +22 -0
- package/lib/node/dlob/DLOB.d.ts +502 -53
- package/lib/node/dlob/DLOB.d.ts.map +1 -1
- package/lib/node/dlob/DLOB.js +540 -98
- package/lib/node/dlob/DLOBNode.d.ts +86 -4
- package/lib/node/dlob/DLOBNode.d.ts.map +1 -1
- package/lib/node/dlob/DLOBNode.js +37 -4
- package/lib/node/dlob/DLOBSubscriber.d.ts +39 -12
- package/lib/node/dlob/DLOBSubscriber.d.ts.map +1 -1
- package/lib/node/dlob/DLOBSubscriber.js +42 -12
- package/lib/node/dlob/NodeList.d.ts +69 -0
- package/lib/node/dlob/NodeList.d.ts.map +1 -1
- package/lib/node/dlob/NodeList.js +66 -0
- package/lib/node/dlob/orderBookLevels.d.ts +106 -13
- package/lib/node/dlob/orderBookLevels.d.ts.map +1 -1
- package/lib/node/dlob/orderBookLevels.js +84 -14
- package/lib/node/dlob/types.d.ts +15 -0
- package/lib/node/dlob/types.d.ts.map +1 -1
- package/lib/node/events/eventList.d.ts +14 -0
- package/lib/node/events/eventList.d.ts.map +1 -1
- package/lib/node/events/eventList.js +14 -0
- package/lib/node/events/eventSubscriber.d.ts +87 -10
- package/lib/node/events/eventSubscriber.d.ts.map +1 -1
- package/lib/node/events/eventSubscriber.js +93 -8
- package/lib/node/events/eventsServerLogProvider.d.ts +22 -0
- package/lib/node/events/eventsServerLogProvider.d.ts.map +1 -1
- package/lib/node/events/eventsServerLogProvider.js +27 -0
- package/lib/node/events/fetchLogs.d.ts +31 -0
- package/lib/node/events/fetchLogs.d.ts.map +1 -1
- package/lib/node/events/fetchLogs.js +46 -1
- package/lib/node/events/parse.d.ts +23 -0
- package/lib/node/events/parse.d.ts.map +1 -1
- package/lib/node/events/parse.js +23 -0
- package/lib/node/events/pollingLogProvider.d.ts +24 -0
- package/lib/node/events/pollingLogProvider.d.ts.map +1 -1
- package/lib/node/events/pollingLogProvider.js +24 -0
- package/lib/node/events/sort.d.ts +11 -0
- package/lib/node/events/sort.d.ts.map +1 -1
- package/lib/node/events/sort.js +12 -0
- package/lib/node/events/txEventCache.d.ts +13 -3
- package/lib/node/events/txEventCache.d.ts.map +1 -1
- package/lib/node/events/txEventCache.js +19 -7
- package/lib/node/events/types.d.ts +118 -2
- package/lib/node/events/types.d.ts.map +1 -1
- package/lib/node/events/types.js +11 -0
- package/lib/node/events/webSocketLogProvider.d.ts +23 -0
- package/lib/node/events/webSocketLogProvider.d.ts.map +1 -1
- package/lib/node/events/webSocketLogProvider.js +28 -0
- package/lib/node/factory/oracleClient.js +2 -2
- package/lib/node/idl/velocity.d.ts +50 -1
- package/lib/node/idl/velocity.d.ts.map +1 -1
- package/lib/node/idl/velocity.json +50 -1
- package/lib/node/keypair.d.ts +8 -0
- package/lib/node/keypair.d.ts.map +1 -1
- package/lib/node/keypair.js +8 -0
- package/lib/node/marginCalculation.d.ts +134 -2
- package/lib/node/marginCalculation.d.ts.map +1 -1
- package/lib/node/marginCalculation.js +121 -0
- package/lib/node/math/amm.d.ts +348 -29
- package/lib/node/math/amm.d.ts.map +1 -1
- package/lib/node/math/amm.js +310 -32
- package/lib/node/math/auction.d.ts +95 -19
- package/lib/node/math/auction.d.ts.map +1 -1
- package/lib/node/math/auction.js +118 -28
- package/lib/node/math/bankruptcy.d.ts +46 -0
- package/lib/node/math/bankruptcy.d.ts.map +1 -1
- package/lib/node/math/bankruptcy.js +89 -1
- package/lib/node/math/builder.d.ts +64 -8
- package/lib/node/math/builder.d.ts.map +1 -1
- package/lib/node/math/builder.js +71 -9
- package/lib/node/math/conversion.d.ts +21 -0
- package/lib/node/math/conversion.d.ts.map +1 -1
- package/lib/node/math/conversion.js +21 -0
- package/lib/node/math/exchangeStatus.d.ts +92 -0
- package/lib/node/math/exchangeStatus.d.ts.map +1 -1
- package/lib/node/math/exchangeStatus.js +111 -1
- package/lib/node/math/funding.d.ts +57 -20
- package/lib/node/math/funding.d.ts.map +1 -1
- package/lib/node/math/funding.js +63 -23
- package/lib/node/math/insurance.d.ts +62 -0
- package/lib/node/math/insurance.d.ts.map +1 -1
- package/lib/node/math/insurance.js +62 -0
- package/lib/node/math/liquidation.d.ts +127 -11
- package/lib/node/math/liquidation.d.ts.map +1 -1
- package/lib/node/math/liquidation.js +182 -19
- package/lib/node/math/margin.d.ts +79 -13
- package/lib/node/math/margin.d.ts.map +1 -1
- package/lib/node/math/margin.js +80 -14
- package/lib/node/math/market.d.ts +135 -15
- package/lib/node/math/market.d.ts.map +1 -1
- package/lib/node/math/market.js +145 -17
- package/lib/node/math/oracles.d.ts +113 -0
- package/lib/node/math/oracles.d.ts.map +1 -1
- package/lib/node/math/oracles.js +118 -1
- package/lib/node/math/orders.d.ts +115 -7
- package/lib/node/math/orders.d.ts.map +1 -1
- package/lib/node/math/orders.js +133 -18
- package/lib/node/math/position.d.ts +80 -33
- package/lib/node/math/position.d.ts.map +1 -1
- package/lib/node/math/position.js +80 -33
- package/lib/node/math/repeg.d.ts +48 -10
- package/lib/node/math/repeg.d.ts.map +1 -1
- package/lib/node/math/repeg.js +48 -10
- package/lib/node/math/spotBalance.d.ts +200 -5
- package/lib/node/math/spotBalance.d.ts.map +1 -1
- package/lib/node/math/spotBalance.js +239 -10
- package/lib/node/math/spotMarket.d.ts +36 -3
- package/lib/node/math/spotMarket.d.ts.map +1 -1
- package/lib/node/math/spotMarket.js +36 -3
- package/lib/node/math/spotPosition.d.ts +72 -0
- package/lib/node/math/spotPosition.d.ts.map +1 -1
- package/lib/node/math/spotPosition.js +62 -0
- package/lib/node/math/state.d.ts +31 -0
- package/lib/node/math/state.d.ts.map +1 -1
- package/lib/node/math/state.js +32 -1
- package/lib/node/math/superStake.d.ts +126 -2
- package/lib/node/math/superStake.d.ts.map +1 -1
- package/lib/node/math/superStake.js +123 -3
- package/lib/node/math/tiers.d.ts +29 -0
- package/lib/node/math/tiers.d.ts.map +1 -1
- package/lib/node/math/tiers.js +29 -0
- package/lib/node/math/trade.d.ts +102 -51
- package/lib/node/math/trade.d.ts.map +1 -1
- package/lib/node/math/trade.js +101 -55
- package/lib/node/math/utils.d.ts +71 -9
- package/lib/node/math/utils.d.ts.map +1 -1
- package/lib/node/math/utils.js +71 -9
- package/lib/node/memcmp.d.ts +94 -0
- package/lib/node/memcmp.d.ts.map +1 -1
- package/lib/node/memcmp.js +129 -7
- package/lib/node/oracles/oracleClientCache.d.ts +16 -0
- package/lib/node/oracles/oracleClientCache.d.ts.map +1 -1
- package/lib/node/oracles/oracleClientCache.js +16 -0
- package/lib/node/oracles/oracleId.d.ts +31 -0
- package/lib/node/oracles/oracleId.d.ts.map +1 -1
- package/lib/node/oracles/oracleId.js +39 -8
- package/lib/node/oracles/prelaunchOracleClient.d.ts +20 -0
- package/lib/node/oracles/prelaunchOracleClient.d.ts.map +1 -1
- package/lib/node/oracles/prelaunchOracleClient.js +20 -0
- package/lib/node/oracles/pythClient.d.ts +31 -0
- package/lib/node/oracles/pythClient.d.ts.map +1 -1
- package/lib/node/oracles/pythClient.js +32 -1
- package/lib/node/oracles/pythLazerClient.d.ts +34 -0
- package/lib/node/oracles/pythLazerClient.d.ts.map +1 -1
- package/lib/node/oracles/pythLazerClient.js +35 -1
- package/lib/node/oracles/quoteAssetOracleClient.d.ts +18 -0
- package/lib/node/oracles/quoteAssetOracleClient.d.ts.map +1 -1
- package/lib/node/oracles/quoteAssetOracleClient.js +18 -0
- package/lib/node/oracles/strictOraclePrice.d.ts +21 -0
- package/lib/node/oracles/strictOraclePrice.d.ts.map +1 -1
- package/lib/node/oracles/strictOraclePrice.js +21 -0
- package/lib/node/oracles/types.d.ts +45 -0
- package/lib/node/oracles/types.d.ts.map +1 -1
- package/lib/node/oracles/utils.d.ts +20 -0
- package/lib/node/oracles/utils.d.ts.map +1 -1
- package/lib/node/oracles/utils.js +20 -0
- package/lib/node/orderParams.d.ts +42 -4
- package/lib/node/orderParams.d.ts.map +1 -1
- package/lib/node/orderParams.js +42 -4
- package/lib/node/orderSubscriber/OrderSubscriber.d.ts +56 -0
- package/lib/node/orderSubscriber/OrderSubscriber.d.ts.map +1 -1
- package/lib/node/orderSubscriber/OrderSubscriber.js +67 -2
- package/lib/node/orderSubscriber/PollingSubscription.d.ts +11 -0
- package/lib/node/orderSubscriber/PollingSubscription.d.ts.map +1 -1
- package/lib/node/orderSubscriber/PollingSubscription.js +11 -0
- package/lib/node/orderSubscriber/WebsocketSubscription.d.ts +18 -0
- package/lib/node/orderSubscriber/WebsocketSubscription.d.ts.map +1 -1
- package/lib/node/orderSubscriber/WebsocketSubscription.js +18 -0
- package/lib/node/orderSubscriber/grpcSubscription.d.ts +16 -0
- package/lib/node/orderSubscriber/grpcSubscription.d.ts.map +1 -1
- package/lib/node/orderSubscriber/grpcSubscription.js +16 -0
- package/lib/node/orderSubscriber/types.d.ts +9 -0
- package/lib/node/orderSubscriber/types.d.ts.map +1 -1
- package/lib/node/priorityFee/averageOverSlotsStrategy.d.ts +1 -0
- package/lib/node/priorityFee/averageOverSlotsStrategy.d.ts.map +1 -1
- package/lib/node/priorityFee/averageOverSlotsStrategy.js +1 -0
- package/lib/node/priorityFee/averageStrategy.d.ts +1 -0
- package/lib/node/priorityFee/averageStrategy.d.ts.map +1 -1
- package/lib/node/priorityFee/averageStrategy.js +1 -0
- package/lib/node/priorityFee/ewmaStrategy.d.ts +10 -0
- package/lib/node/priorityFee/ewmaStrategy.d.ts.map +1 -1
- package/lib/node/priorityFee/ewmaStrategy.js +10 -0
- package/lib/node/priorityFee/heliusPriorityFeeMethod.d.ts +13 -0
- package/lib/node/priorityFee/heliusPriorityFeeMethod.d.ts.map +1 -1
- package/lib/node/priorityFee/heliusPriorityFeeMethod.js +9 -2
- package/lib/node/priorityFee/maxOverSlotsStrategy.d.ts +1 -0
- package/lib/node/priorityFee/maxOverSlotsStrategy.d.ts.map +1 -1
- package/lib/node/priorityFee/maxOverSlotsStrategy.js +1 -0
- package/lib/node/priorityFee/maxStrategy.d.ts +1 -0
- package/lib/node/priorityFee/maxStrategy.d.ts.map +1 -1
- package/lib/node/priorityFee/maxStrategy.js +1 -0
- package/lib/node/priorityFee/priorityFeeSubscriber.d.ts +39 -0
- package/lib/node/priorityFee/priorityFeeSubscriber.d.ts.map +1 -1
- package/lib/node/priorityFee/priorityFeeSubscriber.js +39 -0
- package/lib/node/priorityFee/priorityFeeSubscriberMap.d.ts +20 -1
- package/lib/node/priorityFee/priorityFeeSubscriberMap.d.ts.map +1 -1
- package/lib/node/priorityFee/priorityFeeSubscriberMap.js +21 -2
- package/lib/node/priorityFee/solanaPriorityFeeMethod.d.ts +12 -0
- package/lib/node/priorityFee/solanaPriorityFeeMethod.d.ts.map +1 -1
- package/lib/node/priorityFee/solanaPriorityFeeMethod.js +10 -0
- package/lib/node/priorityFee/types.d.ts +32 -0
- package/lib/node/priorityFee/types.d.ts.map +1 -1
- package/lib/node/priorityFee/types.js +5 -0
- package/lib/node/priorityFee/velocityPriorityFeeMethod.d.ts +11 -0
- package/lib/node/priorityFee/velocityPriorityFeeMethod.d.ts.map +1 -1
- package/lib/node/priorityFee/velocityPriorityFeeMethod.js +8 -0
- package/lib/node/slot/SlotSubscriber.d.ts +18 -0
- package/lib/node/slot/SlotSubscriber.d.ts.map +1 -1
- package/lib/node/slot/SlotSubscriber.js +16 -0
- package/lib/node/slot/SlothashSubscriber.d.ts +26 -0
- package/lib/node/slot/SlothashSubscriber.d.ts.map +1 -1
- package/lib/node/slot/SlothashSubscriber.js +25 -1
- package/lib/node/swift/swiftOrderSubscriber.js +2 -2
- package/lib/node/tokenFaucet.d.ts +2 -2
- package/lib/node/tokenFaucet.d.ts.map +1 -1
- package/lib/node/tokenFaucet.js +11 -4
- package/lib/node/tx/baseTxSender.d.ts +163 -0
- package/lib/node/tx/baseTxSender.d.ts.map +1 -1
- package/lib/node/tx/baseTxSender.js +174 -6
- package/lib/node/tx/blockhashFetcher/baseBlockhashFetcher.d.ts +12 -0
- package/lib/node/tx/blockhashFetcher/baseBlockhashFetcher.d.ts.map +1 -1
- package/lib/node/tx/blockhashFetcher/baseBlockhashFetcher.js +12 -0
- package/lib/node/tx/blockhashFetcher/cachedBlockhashFetcher.d.ts +15 -0
- package/lib/node/tx/blockhashFetcher/cachedBlockhashFetcher.d.ts.map +1 -1
- package/lib/node/tx/blockhashFetcher/cachedBlockhashFetcher.js +15 -0
- package/lib/node/tx/blockhashFetcher/types.d.ts +4 -0
- package/lib/node/tx/blockhashFetcher/types.d.ts.map +1 -1
- package/lib/node/tx/fastSingleTxSender.d.ts +47 -0
- package/lib/node/tx/fastSingleTxSender.d.ts.map +1 -1
- package/lib/node/tx/fastSingleTxSender.js +48 -1
- package/lib/node/tx/forwardOnlyTxSender.d.ts +48 -0
- package/lib/node/tx/forwardOnlyTxSender.d.ts.map +1 -1
- package/lib/node/tx/forwardOnlyTxSender.js +48 -0
- package/lib/node/tx/reportTransactionError.d.ts +18 -6
- package/lib/node/tx/reportTransactionError.d.ts.map +1 -1
- package/lib/node/tx/reportTransactionError.js +18 -6
- package/lib/node/tx/retryTxSender.d.ts +40 -0
- package/lib/node/tx/retryTxSender.d.ts.map +1 -1
- package/lib/node/tx/retryTxSender.js +39 -0
- package/lib/node/tx/txHandler.d.ts +146 -35
- package/lib/node/tx/txHandler.d.ts.map +1 -1
- package/lib/node/tx/txHandler.js +132 -32
- package/lib/node/tx/txParamProcessor.d.ts +47 -0
- package/lib/node/tx/txParamProcessor.d.ts.map +1 -1
- package/lib/node/tx/txParamProcessor.js +47 -0
- package/lib/node/tx/types.d.ts +46 -0
- package/lib/node/tx/types.d.ts.map +1 -1
- package/lib/node/tx/types.js +5 -0
- package/lib/node/tx/utils.d.ts +26 -0
- package/lib/node/tx/utils.d.ts.map +1 -1
- package/lib/node/tx/utils.js +26 -0
- package/lib/node/tx/whileValidTxSender.d.ts +82 -0
- package/lib/node/tx/whileValidTxSender.d.ts.map +1 -1
- package/lib/node/tx/whileValidTxSender.js +81 -0
- package/lib/node/types.d.ts +786 -13
- package/lib/node/types.d.ts.map +1 -1
- package/lib/node/types.js +133 -9
- package/lib/node/user.d.ts +645 -84
- package/lib/node/user.d.ts.map +1 -1
- package/lib/node/user.js +779 -96
- package/lib/node/userMap/PollingSubscription.d.ts +10 -0
- package/lib/node/userMap/PollingSubscription.d.ts.map +1 -1
- package/lib/node/userMap/PollingSubscription.js +14 -2
- package/lib/node/userMap/WebsocketSubscription.d.ts +9 -0
- package/lib/node/userMap/WebsocketSubscription.d.ts.map +1 -1
- package/lib/node/userMap/WebsocketSubscription.js +9 -0
- package/lib/node/userMap/grpcSubscription.d.ts +8 -0
- package/lib/node/userMap/grpcSubscription.d.ts.map +1 -1
- package/lib/node/userMap/grpcSubscription.js +8 -0
- package/lib/node/userMap/referrerMap.d.ts +72 -2
- package/lib/node/userMap/referrerMap.d.ts.map +1 -1
- package/lib/node/userMap/referrerMap.js +84 -2
- package/lib/node/userMap/revenueShareEscrowMap.d.ts +37 -10
- package/lib/node/userMap/revenueShareEscrowMap.d.ts.map +1 -1
- package/lib/node/userMap/revenueShareEscrowMap.js +38 -11
- package/lib/node/userMap/userMap.d.ts +81 -3
- package/lib/node/userMap/userMap.d.ts.map +1 -1
- package/lib/node/userMap/userMap.js +81 -4
- package/lib/node/userMap/userMapConfig.d.ts +23 -0
- package/lib/node/userMap/userMapConfig.d.ts.map +1 -1
- package/lib/node/userMap/userStatsMap.d.ts +22 -0
- package/lib/node/userMap/userStatsMap.d.ts.map +1 -1
- package/lib/node/userMap/userStatsMap.js +22 -0
- package/lib/node/userName.d.ts +16 -0
- package/lib/node/userName.d.ts.map +1 -1
- package/lib/node/userName.js +16 -0
- package/lib/node/userStats.d.ts +28 -1
- package/lib/node/userStats.d.ts.map +1 -1
- package/lib/node/userStats.js +28 -1
- package/lib/node/util/TransactionConfirmationManager.d.ts +33 -0
- package/lib/node/util/TransactionConfirmationManager.d.ts.map +1 -1
- package/lib/node/util/TransactionConfirmationManager.js +33 -0
- package/lib/node/util/chainClock.d.ts +24 -0
- package/lib/node/util/chainClock.d.ts.map +1 -1
- package/lib/node/util/chainClock.js +20 -0
- package/lib/node/util/computeUnits.d.ts +32 -0
- package/lib/node/util/computeUnits.d.ts.map +1 -1
- package/lib/node/util/computeUnits.js +32 -0
- package/lib/node/util/digest.d.ts +17 -0
- package/lib/node/util/digest.d.ts.map +1 -1
- package/lib/node/util/digest.js +17 -0
- package/lib/node/util/ed25519Utils.d.ts +12 -2
- package/lib/node/util/ed25519Utils.d.ts.map +1 -1
- package/lib/node/util/ed25519Utils.js +12 -2
- package/lib/node/util/promiseTimeout.d.ts +9 -0
- package/lib/node/util/promiseTimeout.d.ts.map +1 -1
- package/lib/node/util/promiseTimeout.js +9 -0
- package/lib/node/velocityClient.d.ts +3323 -216
- package/lib/node/velocityClient.d.ts.map +1 -1
- package/lib/node/velocityClient.js +3428 -249
- package/lib/node/wallet.d.ts +37 -0
- package/lib/node/wallet.d.ts.map +1 -1
- package/lib/node/wallet.js +37 -0
- package/package.json +2 -1
- package/src/accounts/basicUserAccountSubscriber.ts +18 -0
- package/src/accounts/basicUserStatsAccountSubscriber.ts +18 -0
- package/src/accounts/bulkAccountLoader.ts +52 -0
- package/src/accounts/bulkUserStatsSubscription.ts +9 -2
- package/src/accounts/bulkUserSubscription.ts +8 -2
- package/src/accounts/customizedCadenceBulkAccountLoader.ts +37 -0
- package/src/accounts/fetch.ts +59 -2
- package/src/accounts/grpcAccountSubscriber.ts +30 -0
- package/src/accounts/grpcInsuranceFundStakeAccountSubscriber.ts +16 -0
- package/src/accounts/grpcMultiAccountSubscriber.ts +121 -38
- package/src/accounts/grpcMultiUserAccountSubscriber.ts +49 -11
- package/src/accounts/grpcProgramAccountSubscriber.ts +33 -0
- package/src/accounts/grpcUserAccountSubscriber.ts +15 -0
- package/src/accounts/grpcUserStatsAccountSubscriber.ts +15 -0
- package/src/accounts/grpcVelocityClientAccountSubscriber.ts +41 -0
- package/src/accounts/grpcVelocityClientAccountSubscriberV2.ts +160 -1
- package/src/accounts/laserProgramAccountSubscriber.ts +34 -0
- package/src/accounts/oneShotUserAccountSubscriber.ts +19 -0
- package/src/accounts/oneShotUserStatsAccountSubscriber.ts +19 -0
- package/src/accounts/pollingInsuranceFundStakeAccountSubscriber.ts +31 -0
- package/src/accounts/pollingOracleAccountSubscriber.ts +21 -2
- package/src/accounts/pollingTokenAccountSubscriber.ts +22 -0
- package/src/accounts/pollingUserAccountSubscriber.ts +32 -0
- package/src/accounts/pollingUserStatsAccountSubscriber.ts +22 -0
- package/src/accounts/pollingVelocityClientAccountSubscriber.ts +84 -1
- package/src/accounts/testBulkAccountLoader.ts +8 -0
- package/src/accounts/types.ts +149 -0
- package/src/accounts/utils.ts +42 -24
- package/src/accounts/webSocketAccountSubscriber.ts +41 -0
- package/src/accounts/webSocketAccountSubscriberV2.ts +31 -23
- package/src/accounts/webSocketInsuranceFundStakeAccountSubscriber.ts +27 -0
- package/src/accounts/webSocketProgramAccountSubscriber.ts +36 -0
- package/src/accounts/webSocketProgramAccountSubscriberV2.ts +26 -0
- package/src/accounts/webSocketProgramAccountsSubscriberV2.ts +21 -0
- package/src/accounts/webSocketUserAccountSubscriber.ts +26 -0
- package/src/accounts/webSocketUserStatsAccountSubsriber.ts +20 -0
- package/src/accounts/webSocketVelocityClientAccountSubscriber.ts +127 -2
- package/src/accounts/webSocketVelocityClientAccountSubscriberV2.ts +110 -0
- package/src/accounts/websocketProgramUserAccountSubscriber.ts +33 -0
- package/src/addresses/marketAddresses.ts +10 -0
- package/src/addresses/pda.ts +228 -12
- package/src/adminClient.ts +2184 -4
- package/src/auctionSubscriber/auctionSubscriber.ts +15 -0
- package/src/auctionSubscriber/auctionSubscriberGrpc.ts +19 -0
- package/src/auctionSubscriber/index.ts +6 -0
- package/src/auctionSubscriber/types.ts +7 -0
- package/src/blockhashSubscriber/BlockhashSubscriber.ts +33 -0
- package/src/blockhashSubscriber/index.ts +5 -0
- package/src/blockhashSubscriber/types.ts +5 -4
- package/src/clock/clockSubscriber.ts +24 -0
- package/src/config.ts +109 -22
- package/src/constants/numericConstants.ts +70 -0
- package/src/constants/perpMarkets.ts +45 -960
- package/src/constants/spotMarkets.ts +23 -793
- package/src/constants/txConstants.ts +1 -0
- package/src/core/VelocityCore.ts +286 -8
- package/src/core/instructions/deposit.ts +22 -0
- package/src/core/instructions/fill.ts +17 -0
- package/src/core/instructions/funding.ts +12 -0
- package/src/core/instructions/liquidation.ts +18 -0
- package/src/core/instructions/orders.ts +28 -0
- package/src/core/instructions/perpOrders.ts +106 -0
- package/src/core/instructions/settlement.ts +14 -0
- package/src/core/instructions/trigger.ts +15 -0
- package/src/core/instructions/withdraw.ts +21 -0
- package/src/core/remainingAccounts.ts +47 -3
- package/src/core/signedMsg.ts +38 -0
- package/src/decode/customCoder.ts +46 -3
- package/src/decode/user.ts +22 -0
- package/src/dlob/DLOB.ts +668 -97
- package/src/dlob/DLOBNode.ts +98 -6
- package/src/dlob/DLOBSubscriber.ts +49 -12
- package/src/dlob/NodeList.ts +69 -0
- package/src/dlob/orderBookLevels.ts +108 -14
- package/src/dlob/types.ts +15 -0
- package/src/events/eventList.ts +14 -0
- package/src/events/eventSubscriber.ts +100 -19
- package/src/events/eventsServerLogProvider.ts +28 -0
- package/src/events/fetchLogs.ts +52 -2
- package/src/events/parse.ts +23 -0
- package/src/events/pollingLogProvider.ts +24 -0
- package/src/events/sort.ts +12 -0
- package/src/events/txEventCache.ts +19 -7
- package/src/events/types.ts +131 -11
- package/src/events/webSocketLogProvider.ts +29 -0
- package/src/factory/oracleClient.ts +2 -2
- package/src/idl/velocity.json +50 -1
- package/src/idl/velocity.ts +50 -1
- package/src/keypair.ts +8 -0
- package/src/marginCalculation.ts +153 -2
- package/src/math/amm.ts +371 -36
- package/src/math/auction.ts +139 -30
- package/src/math/bankruptcy.ts +104 -1
- package/src/math/builder.ts +74 -8
- package/src/math/conversion.ts +21 -0
- package/src/math/exchangeStatus.ts +125 -0
- package/src/math/funding.ts +63 -23
- package/src/math/insurance.ts +62 -0
- package/src/math/liquidation.ts +227 -17
- package/src/math/margin.ts +80 -14
- package/src/math/market.ts +148 -17
- package/src/math/oracles.ts +124 -0
- package/src/math/orders.ts +144 -18
- package/src/math/position.ts +80 -33
- package/src/math/repeg.ts +48 -10
- package/src/math/spotBalance.ts +252 -12
- package/src/math/spotMarket.ts +36 -3
- package/src/math/spotPosition.ts +72 -0
- package/src/math/state.ts +32 -1
- package/src/math/superStake.ts +126 -3
- package/src/math/tiers.ts +29 -0
- package/src/math/trade.ts +125 -55
- package/src/math/utils.ts +71 -9
- package/src/memcmp.ts +131 -7
- package/src/oracles/oracleClientCache.ts +16 -0
- package/src/oracles/oracleId.ts +39 -6
- package/src/oracles/prelaunchOracleClient.ts +20 -0
- package/src/oracles/pythClient.ts +32 -1
- package/src/oracles/pythLazerClient.ts +35 -1
- package/src/oracles/quoteAssetOracleClient.ts +18 -0
- package/src/oracles/strictOraclePrice.ts +21 -0
- package/src/oracles/types.ts +45 -0
- package/src/oracles/utils.ts +20 -0
- package/src/orderParams.ts +42 -4
- package/src/orderSubscriber/OrderSubscriber.ts +74 -2
- package/src/orderSubscriber/PollingSubscription.ts +11 -0
- package/src/orderSubscriber/WebsocketSubscription.ts +18 -0
- package/src/orderSubscriber/grpcSubscription.ts +16 -0
- package/src/orderSubscriber/types.ts +9 -0
- package/src/priorityFee/averageOverSlotsStrategy.ts +1 -0
- package/src/priorityFee/averageStrategy.ts +1 -0
- package/src/priorityFee/ewmaStrategy.ts +10 -0
- package/src/priorityFee/heliusPriorityFeeMethod.ts +13 -2
- package/src/priorityFee/maxOverSlotsStrategy.ts +1 -0
- package/src/priorityFee/maxStrategy.ts +1 -0
- package/src/priorityFee/priorityFeeSubscriber.ts +39 -0
- package/src/priorityFee/priorityFeeSubscriberMap.ts +21 -2
- package/src/priorityFee/solanaPriorityFeeMethod.ts +12 -0
- package/src/priorityFee/types.ts +33 -15
- package/src/priorityFee/velocityPriorityFeeMethod.ts +11 -0
- package/src/slot/SlotSubscriber.ts +18 -0
- package/src/slot/SlothashSubscriber.ts +27 -1
- package/src/swift/swiftOrderSubscriber.ts +2 -2
- package/src/tokenFaucet.ts +10 -7
- package/src/tx/baseTxSender.ts +185 -5
- package/src/tx/blockhashFetcher/baseBlockhashFetcher.ts +12 -0
- package/src/tx/blockhashFetcher/cachedBlockhashFetcher.ts +15 -0
- package/src/tx/blockhashFetcher/types.ts +4 -0
- package/src/tx/fastSingleTxSender.ts +58 -4
- package/src/tx/forwardOnlyTxSender.ts +48 -0
- package/src/tx/reportTransactionError.ts +18 -6
- package/src/tx/retryTxSender.ts +40 -0
- package/src/tx/txHandler.ts +146 -35
- package/src/tx/txParamProcessor.ts +47 -0
- package/src/tx/types.ts +46 -0
- package/src/tx/utils.ts +26 -0
- package/src/tx/whileValidTxSender.ts +82 -0
- package/src/types.ts +783 -22
- package/src/user.ts +869 -110
- package/src/userMap/PollingSubscription.ts +16 -2
- package/src/userMap/WebsocketSubscription.ts +9 -0
- package/src/userMap/grpcSubscription.ts +8 -0
- package/src/userMap/referrerMap.ts +92 -3
- package/src/userMap/revenueShareEscrowMap.ts +38 -11
- package/src/userMap/userMap.ts +82 -4
- package/src/userMap/userMapConfig.ts +23 -10
- package/src/userMap/userStatsMap.ts +22 -0
- package/src/userName.ts +16 -0
- package/src/userStats.ts +28 -1
- package/src/util/TransactionConfirmationManager.ts +33 -0
- package/src/util/chainClock.ts +24 -0
- package/src/util/computeUnits.ts +32 -0
- package/src/util/digest.ts +17 -0
- package/src/util/ed25519Utils.ts +12 -2
- package/src/util/promiseTimeout.ts +9 -0
- package/src/velocityClient.ts +3456 -254
- package/src/wallet.ts +37 -0
- package/tests/VelocityCore/builder_escrow.test.ts +121 -0
- package/tests/amm/test.ts +102 -0
- package/tests/builder/builderFee.test.ts +42 -0
- package/tests/dlob/helpers.ts +1 -0
- package/tests/dlob/tickSizeStandardization.ts +545 -0
- package/tests/exchangeStatus/test.ts +45 -0
- package/tests/liquidation/test.ts +125 -0
- package/tests/oracles/mmOracleGate.test.ts +379 -0
- package/tests/oracles/pythPegSnap.test.ts +76 -0
- package/tests/sdkParity/enumParity.test.ts +84 -0
- package/tests/sdkParity/marginCategoryFill.test.ts +143 -0
- package/tests/sdkParity/memcmpOffsets.test.ts +139 -0
- package/tests/spot/test.ts +55 -0
- package/tests/user/bankruptcy.ts +165 -0
- package/tests/user/feeAndWithdrawLimits.ts +284 -0
- package/tests/user/getMarginCalculation.ts +226 -1
- package/tests/user/test.ts +8 -4
|
@@ -13,30 +13,46 @@
|
|
|
13
13
|
import { AddressLookupTableAccount, BlockhashWithExpiryBlockHeight, Commitment, ConfirmOptions, Connection, Signer, SimulatedTransactionResponse, Transaction, TransactionInstruction, TransactionVersion, VersionedTransaction } from '@solana/web3.js';
|
|
14
14
|
import { VelocityClientMetricsEvents, IWallet, MappedRecord, SignedTxData, TxParams } from '../types';
|
|
15
15
|
export declare const COMPUTE_UNITS_DEFAULT = 200000;
|
|
16
|
+
/** Inputs to `TxHandler.buildTransaction`/`buildBulkTransactions` describing what to build and how. */
|
|
16
17
|
export type TxBuildingProps = {
|
|
17
18
|
instructions: TransactionInstruction | TransactionInstruction[];
|
|
19
|
+
/** `'legacy'` for a legacy `Transaction`, or `0` for a v0 `VersionedTransaction`. */
|
|
18
20
|
txVersion: TransactionVersion;
|
|
19
21
|
connection: Connection;
|
|
22
|
+
/** Commitment used when building/signing multiple legacy transactions via `getPreparedAndSignedLegacyTransactionMap`. */
|
|
20
23
|
preFlightCommitment?: Commitment;
|
|
24
|
+
/** Supplies the market address lookup tables to merge with `lookupTables` for a v0 transaction. */
|
|
21
25
|
fetchAllMarketLookupTableAccounts: () => Promise<AddressLookupTableAccount[]>;
|
|
26
|
+
/** Extra address lookup tables to compile the message against, in addition to the market ones from `fetchAllMarketLookupTableAccounts`. */
|
|
22
27
|
lookupTables?: AddressLookupTableAccount[];
|
|
28
|
+
/** If `true`, return a `VersionedTransaction` even when `txVersion === 'legacy'` (wraps the legacy message in a versioned envelope). */
|
|
23
29
|
forceVersionedTransaction?: boolean;
|
|
30
|
+
/** Compute-unit limit/price and simulation-based sizing options for this transaction. */
|
|
24
31
|
txParams?: TxParams;
|
|
32
|
+
/** Blockhash to use; if omitted, one is resolved via `TxHandler`'s `BlockhashFetcher`. */
|
|
25
33
|
recentBlockhash?: BlockhashWithExpiryBlockHeight;
|
|
26
34
|
wallet?: IWallet;
|
|
27
35
|
optionalIxs?: TransactionInstruction[];
|
|
28
36
|
simulatedTx?: SimulatedTransactionResponse;
|
|
29
37
|
};
|
|
38
|
+
/** Configuration for `TxHandler`'s blockhash-fetching strategy. */
|
|
30
39
|
export type TxHandlerConfig = {
|
|
40
|
+
/** If `true`, use a `CachedBlockhashFetcher` (reduces RPC calls during bursts of tx construction); otherwise fetch fresh every time via `BaseBlockhashFetcher`. */
|
|
31
41
|
blockhashCachingEnabled?: boolean;
|
|
42
|
+
/** Tuning for `CachedBlockhashFetcher` when `blockhashCachingEnabled` is `true`; each field defaults if omitted (see `BLOCKHASH_FETCH_RETRY_COUNT`/`BLOCKHASH_FETCH_RETRY_SLEEP`/`RECENT_BLOCKHASH_STALE_TIME_MS`). */
|
|
32
43
|
blockhashCachingConfig?: {
|
|
33
|
-
retryCount
|
|
34
|
-
retrySleepTimeMs
|
|
35
|
-
staleCacheTimeMs
|
|
44
|
+
retryCount?: number;
|
|
45
|
+
retrySleepTimeMs?: number;
|
|
46
|
+
staleCacheTimeMs?: number;
|
|
36
47
|
};
|
|
37
48
|
};
|
|
38
49
|
/**
|
|
39
50
|
* This class is responsible for creating and signing transactions.
|
|
51
|
+
*
|
|
52
|
+
* Owns blockhash resolution (via a `BlockhashFetcher`, optionally caching), compute-budget
|
|
53
|
+
* instruction injection, address-lookup-table compilation, and wallet signing for both legacy and
|
|
54
|
+
* v0 transactions, single or batched. `TxSender` implementations delegate to a `TxHandler`
|
|
55
|
+
* instance for all of this rather than duplicating it.
|
|
40
56
|
*/
|
|
41
57
|
export declare class TxHandler {
|
|
42
58
|
private blockHashToLastValidBlockHeightLookup;
|
|
@@ -48,6 +64,16 @@ export declare class TxHandler {
|
|
|
48
64
|
private onSignedCb?;
|
|
49
65
|
private blockhashCommitment;
|
|
50
66
|
private blockHashFetcher;
|
|
67
|
+
/**
|
|
68
|
+
* @param props.connection - RPC connection used for blockhash fetches and (indirectly) sends.
|
|
69
|
+
* @param props.wallet - Default wallet used to sign transactions when a call doesn't pass its own.
|
|
70
|
+
* @param props.confirmationOptions - Default confirm options; `preflightCommitment` (falling
|
|
71
|
+
* back to `connection.commitment`, then `'confirmed'`) sets the commitment used for blockhash fetches.
|
|
72
|
+
* @param props.opts.returnBlockHeightsWithSignedTxCallbackData - If `true`, `onSignedCb` receives each signed tx's `lastValidBlockHeight` alongside its signature/blockhash.
|
|
73
|
+
* @param props.opts.onSignedCb - Callback invoked with signed-transaction metadata whenever this handler signs one or more transactions.
|
|
74
|
+
* @param props.opts.preSignedCb - Callback invoked immediately before wallet signing occurs.
|
|
75
|
+
* @param props.config - Blockhash-fetching strategy/tuning; see `TxHandlerConfig`.
|
|
76
|
+
*/
|
|
51
77
|
constructor(props: {
|
|
52
78
|
connection: Connection;
|
|
53
79
|
wallet: IWallet;
|
|
@@ -59,16 +85,22 @@ export declare class TxHandler {
|
|
|
59
85
|
};
|
|
60
86
|
config?: TxHandlerConfig;
|
|
61
87
|
});
|
|
88
|
+
/** @returns The wallet this handler currently uses to sign transactions when a call doesn't pass its own. */
|
|
62
89
|
getWallet(): IWallet;
|
|
63
90
|
private addHashAndExpiryToLookup;
|
|
64
91
|
private getProps;
|
|
92
|
+
/**
|
|
93
|
+
* Swaps the default wallet used for subsequent signing calls that don't pass their own.
|
|
94
|
+
* @param wallet - New default wallet.
|
|
95
|
+
*/
|
|
65
96
|
updateWallet(wallet: IWallet): void;
|
|
66
97
|
/**
|
|
67
98
|
* Created this to prevent non-finalized blockhashes being used when building transactions. We want to always use finalized because otherwise it's easy to get the BlockHashNotFound error (RPC uses finalized to validate a transaction). Using an older blockhash when building transactions should never really be a problem right now.
|
|
68
99
|
*
|
|
69
100
|
* https://www.helius.dev/blog/how-to-deal-with-blockhash-errors-on-solana#why-do-blockhash-errors-occur
|
|
70
101
|
*
|
|
71
|
-
* @returns
|
|
102
|
+
* @returns The latest blockhash (via this handler's configured `BlockhashFetcher`) at the
|
|
103
|
+
* commitment level resolved in the constructor, or `undefined` if unavailable.
|
|
72
104
|
*/
|
|
73
105
|
getLatestBlockhashForTransaction(): Promise<Readonly<{
|
|
74
106
|
blockhash: string;
|
|
@@ -81,14 +113,18 @@ export declare class TxHandler {
|
|
|
81
113
|
*/
|
|
82
114
|
private resolveRecentBlockhash;
|
|
83
115
|
/**
|
|
84
|
-
* Applies recent blockhash and signs a given transaction
|
|
85
|
-
*
|
|
86
|
-
*
|
|
87
|
-
*
|
|
88
|
-
* @param
|
|
89
|
-
* @param
|
|
90
|
-
* @param
|
|
91
|
-
* @
|
|
116
|
+
* Applies recent blockhash and signs a given transaction. Attaches an internal
|
|
117
|
+
* `SIGNATURE_BLOCK_AND_EXPIRY` property (undocumented in the `Transaction` type, but read by
|
|
118
|
+
* `WhileValidTxSender`) recording the blockhash/expiry used, so confirmation logic can know
|
|
119
|
+
* when the transaction's blockhash has expired even for pre-built transactions.
|
|
120
|
+
* @param tx - Transaction to prepare; mutated in place (feePayer, recentBlockhash, signature).
|
|
121
|
+
* @param additionalSigners - Extra signers to co-sign alongside the wallet.
|
|
122
|
+
* @param wallet - Wallet to sign with; defaults to this handler's configured wallet.
|
|
123
|
+
* @param confirmationOpts - Unused directly here (present for interface symmetry with other overloads).
|
|
124
|
+
* @param preSigned - If `true`, return `tx` unchanged without touching blockhash/feePayer/signatures.
|
|
125
|
+
* @param recentBlockhash - Blockhash to use; if omitted, resolved via `getLatestBlockhashForTransaction`.
|
|
126
|
+
* @returns The prepared (and signed, unless `preSigned`) transaction.
|
|
127
|
+
* @throws Error if no blockhash could be resolved.
|
|
92
128
|
*/
|
|
93
129
|
prepareTx(tx: Transaction, additionalSigners: Array<Signer>, wallet?: IWallet, confirmationOpts?: ConfirmOptions, preSigned?: boolean, recentBlockhash?: BlockhashWithExpiryBlockHeight): Promise<Transaction>;
|
|
94
130
|
private isVersionedTransaction;
|
|
@@ -96,6 +132,16 @@ export declare class TxHandler {
|
|
|
96
132
|
private getTxSigFromSignedTx;
|
|
97
133
|
private getBlockhashFromSignedTx;
|
|
98
134
|
private signTx;
|
|
135
|
+
/**
|
|
136
|
+
* Signs a `VersionedTransaction`, optionally overwriting its blockhash first.
|
|
137
|
+
* @param tx - Transaction to sign; mutated in place.
|
|
138
|
+
* @param additionalSigners - Extra signers to co-sign alongside the wallet.
|
|
139
|
+
* @param recentBlockhash - If provided, overwrites `tx.message.recentBlockhash` before signing
|
|
140
|
+
* (and records it for `SIGNATURE_BLOCK_AND_EXPIRY` tracking); if omitted, the transaction's
|
|
141
|
+
* existing blockhash is used as-is.
|
|
142
|
+
* @param wallet - Wallet to sign with; defaults to this handler's configured wallet.
|
|
143
|
+
* @returns The signed transaction.
|
|
144
|
+
*/
|
|
99
145
|
signVersionedTx(tx: VersionedTransaction, additionalSigners: Array<Signer>, recentBlockhash?: BlockhashWithExpiryBlockHeight, wallet?: IWallet): Promise<VersionedTransaction>;
|
|
100
146
|
private handleSignedTxData;
|
|
101
147
|
/**
|
|
@@ -105,46 +151,93 @@ export declare class TxHandler {
|
|
|
105
151
|
*/
|
|
106
152
|
private getProcessedTransactionParams;
|
|
107
153
|
private _generateVersionedTransaction;
|
|
154
|
+
/**
|
|
155
|
+
* Builds an unsigned `VersionedTransaction` that wraps a *legacy* compiled message (no address
|
|
156
|
+
* lookup tables) — used when `forceVersionedTransaction` is requested for a `'legacy'`
|
|
157
|
+
* `txVersion`.
|
|
158
|
+
* @param recentBlockhash - Blockhash to build the message with.
|
|
159
|
+
* @param ixs - Instructions to include, in order.
|
|
160
|
+
* @param wallet - Wallet whose pubkey becomes the fee payer; defaults to this handler's configured wallet.
|
|
161
|
+
* @returns The unsigned `VersionedTransaction`.
|
|
162
|
+
*/
|
|
108
163
|
generateLegacyVersionedTransaction(recentBlockhash: BlockhashWithExpiryBlockHeight, ixs: TransactionInstruction[], wallet?: IWallet): VersionedTransaction;
|
|
164
|
+
/**
|
|
165
|
+
* Builds an unsigned v0 `VersionedTransaction`, compiling its message against the given
|
|
166
|
+
* address lookup tables.
|
|
167
|
+
* @param recentBlockhash - Blockhash to build the message with.
|
|
168
|
+
* @param ixs - Instructions to include, in order.
|
|
169
|
+
* @param lookupTableAccounts - Address lookup tables to compile the message against.
|
|
170
|
+
* @param wallet - Wallet whose pubkey becomes the fee payer; defaults to this handler's configured wallet.
|
|
171
|
+
* @returns The unsigned `VersionedTransaction`.
|
|
172
|
+
*/
|
|
109
173
|
generateVersionedTransaction(recentBlockhash: BlockhashWithExpiryBlockHeight, ixs: TransactionInstruction[], lookupTableAccounts: AddressLookupTableAccount[], wallet?: IWallet): VersionedTransaction;
|
|
174
|
+
/**
|
|
175
|
+
* Builds an unsigned legacy `Transaction` from raw instructions. Unlike the other `generate*`
|
|
176
|
+
* methods, this does not set a fee payer.
|
|
177
|
+
* @param ixs - Instructions to include, in order.
|
|
178
|
+
* @param recentBlockhash - If provided, sets `tx.recentBlockhash`; otherwise left unset.
|
|
179
|
+
* @returns The unsigned `Transaction`.
|
|
180
|
+
*/
|
|
110
181
|
generateLegacyTransaction(ixs: TransactionInstruction[], recentBlockhash?: BlockhashWithExpiryBlockHeight): Transaction;
|
|
111
182
|
/**
|
|
112
183
|
* Accepts multiple instructions and builds a transaction for each. Prevents needing to spam RPC with requests for the same blockhash.
|
|
113
|
-
* @param props
|
|
114
|
-
*
|
|
184
|
+
* @param props - Shared `TxBuildingProps` (minus `instructions`) plus one instruction/array
|
|
185
|
+
* per output transaction; a falsy entry in `props.instructions` yields `undefined` at that
|
|
186
|
+
* position rather than being built.
|
|
187
|
+
* @returns One built transaction (or `undefined`) per entry in `props.instructions`, in the same order.
|
|
115
188
|
*/
|
|
116
189
|
buildBulkTransactions(props: Omit<TxBuildingProps, 'instructions'> & {
|
|
117
190
|
instructions: (TransactionInstruction | TransactionInstruction[])[];
|
|
118
191
|
}): Promise<(Transaction | VersionedTransaction | undefined)[]>;
|
|
119
192
|
/**
|
|
120
|
-
*
|
|
121
|
-
*
|
|
122
|
-
*
|
|
123
|
-
*
|
|
124
|
-
*
|
|
125
|
-
*
|
|
126
|
-
* @returns
|
|
193
|
+
* Builds a full transaction from raw instructions: merges caller-supplied `lookupTables` with
|
|
194
|
+
* the market lookup tables from `fetchAllMarketLookupTableAccounts`, optionally appends as many
|
|
195
|
+
* `optionalIxs` (e.g. oracle cranks) as fit under `MAX_TX_BYTE_SIZE` (dropped one-by-one and
|
|
196
|
+
* re-simulated if the batch fails simulation), resolves compute-unit limit/price (via
|
|
197
|
+
* simulation if `txParams.useSimulatedComputeUnits`), and prepends the resulting
|
|
198
|
+
* `ComputeBudgetProgram` instructions unless the caller's instructions already include them.
|
|
199
|
+
* @param props - See `TxBuildingProps`. `props.forceVersionedTransaction` returns a
|
|
200
|
+
* `VersionedTransaction` instance even if `props.txVersion` is `'legacy'`.
|
|
201
|
+
* @returns The built transaction — a `Transaction` for `txVersion === 'legacy'` unless
|
|
202
|
+
* `forceVersionedTransaction` is set, otherwise a `VersionedTransaction`. Not yet signed.
|
|
127
203
|
*/
|
|
128
204
|
buildTransaction(props: TxBuildingProps): Promise<Transaction | VersionedTransaction>;
|
|
205
|
+
/**
|
|
206
|
+
* Wraps a single instruction in a legacy `Transaction`, prepending compute-budget instructions
|
|
207
|
+
* as needed. Does not set a blockhash or fee payer.
|
|
208
|
+
* @param instruction - Instruction to wrap.
|
|
209
|
+
* @param computeUnits - Compute unit limit; defaults to 600,000. A `setComputeUnitLimit`
|
|
210
|
+
* instruction is added unless this value equals `COMPUTE_UNITS_DEFAULT` (200,000) exactly —
|
|
211
|
+
* note the 600,000 default therefore *does* add one.
|
|
212
|
+
* @param computeUnitsPrice - Compute unit price in micro-lamports; defaults to 0, in which case
|
|
213
|
+
* no `setComputeUnitPrice` instruction is added.
|
|
214
|
+
* @returns The unsigned `Transaction`.
|
|
215
|
+
*/
|
|
129
216
|
wrapInTx(instruction: TransactionInstruction, computeUnits?: number, computeUnitsPrice?: number): Transaction;
|
|
130
217
|
/**
|
|
131
218
|
* Get a map of signed and prepared transactions from an array of legacy transactions
|
|
132
|
-
* @param
|
|
133
|
-
* @param
|
|
134
|
-
* @param
|
|
135
|
-
* @param
|
|
136
|
-
* @returns
|
|
219
|
+
* @param txsMap - Map of key to legacy `Transaction` (or `undefined`, passed through unset); each is mutated with blockhash/feePayer before signing.
|
|
220
|
+
* @param wallet - Wallet to sign with; defaults to this handler's configured wallet.
|
|
221
|
+
* @param commitment - Unused directly here (accepted for interface symmetry with `TxSender.send`-style callers).
|
|
222
|
+
* @param recentBlockhash - Blockhash to apply to every transaction in `txsMap`; if omitted, resolved via `getLatestBlockhashForTransaction`.
|
|
223
|
+
* @returns `{ signedTxMap, signedTxData }` — see `getSignedTransactionMap`.
|
|
224
|
+
* @throws Error if no blockhash could be resolved.
|
|
137
225
|
*/
|
|
138
226
|
getPreparedAndSignedLegacyTransactionMap<T extends Record<string, Transaction | undefined>>(txsMap: T, wallet?: IWallet, commitment?: Commitment, recentBlockhash?: BlockhashWithExpiryBlockHeight): Promise<{
|
|
139
227
|
signedTxMap: T;
|
|
140
228
|
signedTxData: SignedTxData[];
|
|
141
229
|
}>;
|
|
142
230
|
/**
|
|
143
|
-
* Get a map of signed transactions from an array of transactions to sign.
|
|
144
|
-
*
|
|
145
|
-
*
|
|
146
|
-
* @param
|
|
147
|
-
*
|
|
231
|
+
* Get a map of signed transactions from an array of transactions to sign. Signs all non-`undefined`
|
|
232
|
+
* entries in a single `wallet.signAllTransactions` batch (one wallet approval for the whole map,
|
|
233
|
+
* where the wallet supports it) rather than one signature request per transaction.
|
|
234
|
+
* @param txsToSignMap - Map of key to `Transaction`/`VersionedTransaction` (or `undefined`,
|
|
235
|
+
* passed through as `undefined` in the result rather than being signed).
|
|
236
|
+
* @param wallet - Wallet to sign with; defaults to this handler's configured wallet.
|
|
237
|
+
* @returns `signedTxMap` — same keys as the input, with each defined entry replaced by its
|
|
238
|
+
* signed transaction; and `signedTxData` — the per-transaction signature/blockhash metadata
|
|
239
|
+
* (with `lastValidBlockHeight` if this handler was configured with
|
|
240
|
+
* `returnBlockHeightsWithSignedTxCallbackData`), also passed to `onSignedCb` if configured.
|
|
148
241
|
*/
|
|
149
242
|
getSignedTransactionMap<T extends Record<string, Transaction | VersionedTransaction | undefined>>(txsToSignMap: T, wallet?: IWallet): Promise<{
|
|
150
243
|
signedTxMap: T;
|
|
@@ -152,16 +245,19 @@ export declare class TxHandler {
|
|
|
152
245
|
}>;
|
|
153
246
|
/**
|
|
154
247
|
* Accepts multiple instructions and builds a transaction for each. Prevents needing to spam RPC with requests for the same blockhash.
|
|
155
|
-
* @param props
|
|
156
|
-
* @returns
|
|
248
|
+
* @param props - Shared `TxBuildingProps` (minus `instructions`) plus a named map of instruction(s) per output transaction.
|
|
249
|
+
* @returns A map with the same keys as `props.instructionsMap`, each value the corresponding built transaction.
|
|
157
250
|
*/
|
|
158
251
|
buildTransactionsMap<T extends Record<string, TransactionInstruction | TransactionInstruction[]>>(props: Omit<TxBuildingProps, 'instructions'> & {
|
|
159
252
|
instructionsMap: T;
|
|
160
253
|
}): Promise<MappedRecord<T, Transaction | VersionedTransaction>>;
|
|
161
254
|
/**
|
|
162
255
|
* Builds and signs transactions from a given array of instructions for multiple transactions.
|
|
163
|
-
*
|
|
164
|
-
*
|
|
256
|
+
* Builds every transaction first (`buildTransactionsMap`), then signs them all in one batch —
|
|
257
|
+
* via `getPreparedAndSignedLegacyTransactionMap` for `'legacy'` `txVersion`, otherwise
|
|
258
|
+
* `getSignedTransactionMap`.
|
|
259
|
+
* @param props - Shared `TxBuildingProps` (minus `instructions`) plus a named map of instruction(s) per output transaction.
|
|
260
|
+
* @returns `{ signedTxMap, signedTxData }` keyed the same as `props.instructionsMap`; see `getSignedTransactionMap`.
|
|
165
261
|
*/
|
|
166
262
|
buildAndSignTransactionMap<T extends Record<string, TransactionInstruction | TransactionInstruction[]>>(props: Omit<TxBuildingProps, 'instructions'> & {
|
|
167
263
|
instructionsMap: T;
|
|
@@ -172,6 +268,21 @@ export declare class TxHandler {
|
|
|
172
268
|
signedTxMap: MappedRecord<T, Transaction | VersionedTransaction>;
|
|
173
269
|
signedTxData: SignedTxData[];
|
|
174
270
|
}>;
|
|
271
|
+
/**
|
|
272
|
+
* Greedily includes as many `optionalInstructions` (e.g. oracle-crank instructions) as fit
|
|
273
|
+
* alongside `txBuildingProps.instructions` under `MAX_TX_BYTE_SIZE`, then simulates the result;
|
|
274
|
+
* if simulation fails, falls back to simulating with only the base instructions (optional ones
|
|
275
|
+
* dropped entirely) rather than trying to isolate which optional instruction caused the failure.
|
|
276
|
+
* @param txBuildingProps - Build props whose `instructions` are the required (non-optional) instructions.
|
|
277
|
+
* @param optionalInstructions - Extra instructions to include only if they fit; prepended
|
|
278
|
+
* ahead of the base instructions and trimmed one-by-one from the front if the combined size
|
|
279
|
+
* exceeds `MAX_TX_BYTE_SIZE`. Defaults to none, in which case this is a no-op passthrough.
|
|
280
|
+
* @param versionedTransaction - Whether to size the candidate transaction as versioned (v0) or legacy; defaults to `true`.
|
|
281
|
+
* @param addressLookupTables - Lookup tables credited toward the size calculation; defaults to none.
|
|
282
|
+
* @returns A tuple of `[instructionsActuallyUsed, simulationResult]` — `instructionsActuallyUsed`
|
|
283
|
+
* includes the optional instructions only if the combined simulation succeeded; `simulationResult`
|
|
284
|
+
* is `undefined` only when `optionalInstructions` was empty (no simulation was needed).
|
|
285
|
+
*/
|
|
175
286
|
simulateAndCalculateInstructions(txBuildingProps: TxBuildingProps, optionalInstructions?: TransactionInstruction[], versionedTransaction?: boolean, addressLookupTables?: AddressLookupTableAccount[]): Promise<[
|
|
176
287
|
TransactionInstruction[],
|
|
177
288
|
SimulatedTransactionResponse | undefined
|
|
@@ -36,8 +36,23 @@ const BLOCKHASH_FETCH_RETRY_SLEEP = 200;
|
|
|
36
36
|
const RECENT_BLOCKHASH_STALE_TIME_MS = 2000; // Reuse blockhashes within this timeframe during bursts of tx contruction
|
|
37
37
|
/**
|
|
38
38
|
* This class is responsible for creating and signing transactions.
|
|
39
|
+
*
|
|
40
|
+
* Owns blockhash resolution (via a `BlockhashFetcher`, optionally caching), compute-budget
|
|
41
|
+
* instruction injection, address-lookup-table compilation, and wallet signing for both legacy and
|
|
42
|
+
* v0 transactions, single or batched. `TxSender` implementations delegate to a `TxHandler`
|
|
43
|
+
* instance for all of this rather than duplicating it.
|
|
39
44
|
*/
|
|
40
45
|
class TxHandler {
|
|
46
|
+
/**
|
|
47
|
+
* @param props.connection - RPC connection used for blockhash fetches and (indirectly) sends.
|
|
48
|
+
* @param props.wallet - Default wallet used to sign transactions when a call doesn't pass its own.
|
|
49
|
+
* @param props.confirmationOptions - Default confirm options; `preflightCommitment` (falling
|
|
50
|
+
* back to `connection.commitment`, then `'confirmed'`) sets the commitment used for blockhash fetches.
|
|
51
|
+
* @param props.opts.returnBlockHeightsWithSignedTxCallbackData - If `true`, `onSignedCb` receives each signed tx's `lastValidBlockHeight` alongside its signature/blockhash.
|
|
52
|
+
* @param props.opts.onSignedCb - Callback invoked with signed-transaction metadata whenever this handler signs one or more transactions.
|
|
53
|
+
* @param props.opts.preSignedCb - Callback invoked immediately before wallet signing occurs.
|
|
54
|
+
* @param props.config - Blockhash-fetching strategy/tuning; see `TxHandlerConfig`.
|
|
55
|
+
*/
|
|
41
56
|
constructor(props) {
|
|
42
57
|
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v;
|
|
43
58
|
this.blockHashToLastValidBlockHeightLookup = {};
|
|
@@ -58,6 +73,7 @@ class TxHandler {
|
|
|
58
73
|
this.onSignedCb = (_u = props.opts) === null || _u === void 0 ? void 0 : _u.onSignedCb;
|
|
59
74
|
this.preSignedCb = (_v = props.opts) === null || _v === void 0 ? void 0 : _v.preSignedCb;
|
|
60
75
|
}
|
|
76
|
+
/** @returns The wallet this handler currently uses to sign transactions when a call doesn't pass its own. */
|
|
61
77
|
getWallet() {
|
|
62
78
|
return this.wallet;
|
|
63
79
|
}
|
|
@@ -67,6 +83,10 @@ class TxHandler {
|
|
|
67
83
|
this.blockHashToLastValidBlockHeightLookup[hashAndExpiry.blockhash] =
|
|
68
84
|
hashAndExpiry.lastValidBlockHeight;
|
|
69
85
|
}
|
|
86
|
+
/**
|
|
87
|
+
* Swaps the default wallet used for subsequent signing calls that don't pass their own.
|
|
88
|
+
* @param wallet - New default wallet.
|
|
89
|
+
*/
|
|
70
90
|
updateWallet(wallet) {
|
|
71
91
|
this.wallet = wallet;
|
|
72
92
|
}
|
|
@@ -75,7 +95,8 @@ class TxHandler {
|
|
|
75
95
|
*
|
|
76
96
|
* https://www.helius.dev/blog/how-to-deal-with-blockhash-errors-on-solana#why-do-blockhash-errors-occur
|
|
77
97
|
*
|
|
78
|
-
* @returns
|
|
98
|
+
* @returns The latest blockhash (via this handler's configured `BlockhashFetcher`) at the
|
|
99
|
+
* commitment level resolved in the constructor, or `undefined` if unavailable.
|
|
79
100
|
*/
|
|
80
101
|
async getLatestBlockhashForTransaction() {
|
|
81
102
|
return this.blockHashFetcher.getLatestBlockhash();
|
|
@@ -93,14 +114,18 @@ class TxHandler {
|
|
|
93
114
|
return resolved;
|
|
94
115
|
}
|
|
95
116
|
/**
|
|
96
|
-
* Applies recent blockhash and signs a given transaction
|
|
97
|
-
*
|
|
98
|
-
*
|
|
99
|
-
*
|
|
100
|
-
* @param
|
|
101
|
-
* @param
|
|
102
|
-
* @param
|
|
103
|
-
* @
|
|
117
|
+
* Applies recent blockhash and signs a given transaction. Attaches an internal
|
|
118
|
+
* `SIGNATURE_BLOCK_AND_EXPIRY` property (undocumented in the `Transaction` type, but read by
|
|
119
|
+
* `WhileValidTxSender`) recording the blockhash/expiry used, so confirmation logic can know
|
|
120
|
+
* when the transaction's blockhash has expired even for pre-built transactions.
|
|
121
|
+
* @param tx - Transaction to prepare; mutated in place (feePayer, recentBlockhash, signature).
|
|
122
|
+
* @param additionalSigners - Extra signers to co-sign alongside the wallet.
|
|
123
|
+
* @param wallet - Wallet to sign with; defaults to this handler's configured wallet.
|
|
124
|
+
* @param confirmationOpts - Unused directly here (present for interface symmetry with other overloads).
|
|
125
|
+
* @param preSigned - If `true`, return `tx` unchanged without touching blockhash/feePayer/signatures.
|
|
126
|
+
* @param recentBlockhash - Blockhash to use; if omitted, resolved via `getLatestBlockhashForTransaction`.
|
|
127
|
+
* @returns The prepared (and signed, unless `preSigned`) transaction.
|
|
128
|
+
* @throws Error if no blockhash could be resolved.
|
|
104
129
|
*/
|
|
105
130
|
async prepareTx(tx, additionalSigners, wallet, confirmationOpts, preSigned, recentBlockhash) {
|
|
106
131
|
if (preSigned) {
|
|
@@ -164,6 +189,16 @@ class TxHandler {
|
|
|
164
189
|
]);
|
|
165
190
|
return signedTx;
|
|
166
191
|
}
|
|
192
|
+
/**
|
|
193
|
+
* Signs a `VersionedTransaction`, optionally overwriting its blockhash first.
|
|
194
|
+
* @param tx - Transaction to sign; mutated in place.
|
|
195
|
+
* @param additionalSigners - Extra signers to co-sign alongside the wallet.
|
|
196
|
+
* @param recentBlockhash - If provided, overwrites `tx.message.recentBlockhash` before signing
|
|
197
|
+
* (and records it for `SIGNATURE_BLOCK_AND_EXPIRY` tracking); if omitted, the transaction's
|
|
198
|
+
* existing blockhash is used as-is.
|
|
199
|
+
* @param wallet - Wallet to sign with; defaults to this handler's configured wallet.
|
|
200
|
+
* @returns The signed transaction.
|
|
201
|
+
*/
|
|
167
202
|
async signVersionedTx(tx, additionalSigners, recentBlockhash, wallet) {
|
|
168
203
|
var _a;
|
|
169
204
|
[wallet] = this.getProps(wallet);
|
|
@@ -247,6 +282,15 @@ class TxHandler {
|
|
|
247
282
|
this.addHashAndExpiryToLookup(recentBlockhash);
|
|
248
283
|
return new web3_js_1.VersionedTransaction(message);
|
|
249
284
|
}
|
|
285
|
+
/**
|
|
286
|
+
* Builds an unsigned `VersionedTransaction` that wraps a *legacy* compiled message (no address
|
|
287
|
+
* lookup tables) — used when `forceVersionedTransaction` is requested for a `'legacy'`
|
|
288
|
+
* `txVersion`.
|
|
289
|
+
* @param recentBlockhash - Blockhash to build the message with.
|
|
290
|
+
* @param ixs - Instructions to include, in order.
|
|
291
|
+
* @param wallet - Wallet whose pubkey becomes the fee payer; defaults to this handler's configured wallet.
|
|
292
|
+
* @returns The unsigned `VersionedTransaction`.
|
|
293
|
+
*/
|
|
250
294
|
generateLegacyVersionedTransaction(recentBlockhash, ixs, wallet) {
|
|
251
295
|
[wallet] = this.getProps(wallet);
|
|
252
296
|
const message = new web3_js_1.TransactionMessage({
|
|
@@ -259,6 +303,15 @@ class TxHandler {
|
|
|
259
303
|
tx.SIGNATURE_BLOCK_AND_EXPIRY = recentBlockhash;
|
|
260
304
|
return tx;
|
|
261
305
|
}
|
|
306
|
+
/**
|
|
307
|
+
* Builds an unsigned v0 `VersionedTransaction`, compiling its message against the given
|
|
308
|
+
* address lookup tables.
|
|
309
|
+
* @param recentBlockhash - Blockhash to build the message with.
|
|
310
|
+
* @param ixs - Instructions to include, in order.
|
|
311
|
+
* @param lookupTableAccounts - Address lookup tables to compile the message against.
|
|
312
|
+
* @param wallet - Wallet whose pubkey becomes the fee payer; defaults to this handler's configured wallet.
|
|
313
|
+
* @returns The unsigned `VersionedTransaction`.
|
|
314
|
+
*/
|
|
262
315
|
generateVersionedTransaction(recentBlockhash, ixs, lookupTableAccounts, wallet) {
|
|
263
316
|
[wallet] = this.getProps(wallet);
|
|
264
317
|
const message = new web3_js_1.TransactionMessage({
|
|
@@ -271,6 +324,13 @@ class TxHandler {
|
|
|
271
324
|
tx.SIGNATURE_BLOCK_AND_EXPIRY = recentBlockhash;
|
|
272
325
|
return tx;
|
|
273
326
|
}
|
|
327
|
+
/**
|
|
328
|
+
* Builds an unsigned legacy `Transaction` from raw instructions. Unlike the other `generate*`
|
|
329
|
+
* methods, this does not set a fee payer.
|
|
330
|
+
* @param ixs - Instructions to include, in order.
|
|
331
|
+
* @param recentBlockhash - If provided, sets `tx.recentBlockhash`; otherwise left unset.
|
|
332
|
+
* @returns The unsigned `Transaction`.
|
|
333
|
+
*/
|
|
274
334
|
generateLegacyTransaction(ixs, recentBlockhash) {
|
|
275
335
|
const tx = new web3_js_1.Transaction().add(...ixs);
|
|
276
336
|
if (recentBlockhash) {
|
|
@@ -280,8 +340,10 @@ class TxHandler {
|
|
|
280
340
|
}
|
|
281
341
|
/**
|
|
282
342
|
* Accepts multiple instructions and builds a transaction for each. Prevents needing to spam RPC with requests for the same blockhash.
|
|
283
|
-
* @param props
|
|
284
|
-
*
|
|
343
|
+
* @param props - Shared `TxBuildingProps` (minus `instructions`) plus one instruction/array
|
|
344
|
+
* per output transaction; a falsy entry in `props.instructions` yields `undefined` at that
|
|
345
|
+
* position rather than being built.
|
|
346
|
+
* @returns One built transaction (or `undefined`) per entry in `props.instructions`, in the same order.
|
|
285
347
|
*/
|
|
286
348
|
async buildBulkTransactions(props) {
|
|
287
349
|
const recentBlockhash = await this.resolveRecentBlockhash(props === null || props === void 0 ? void 0 : props.recentBlockhash);
|
|
@@ -296,13 +358,16 @@ class TxHandler {
|
|
|
296
358
|
}));
|
|
297
359
|
}
|
|
298
360
|
/**
|
|
299
|
-
*
|
|
300
|
-
*
|
|
301
|
-
*
|
|
302
|
-
*
|
|
303
|
-
*
|
|
304
|
-
*
|
|
305
|
-
* @returns
|
|
361
|
+
* Builds a full transaction from raw instructions: merges caller-supplied `lookupTables` with
|
|
362
|
+
* the market lookup tables from `fetchAllMarketLookupTableAccounts`, optionally appends as many
|
|
363
|
+
* `optionalIxs` (e.g. oracle cranks) as fit under `MAX_TX_BYTE_SIZE` (dropped one-by-one and
|
|
364
|
+
* re-simulated if the batch fails simulation), resolves compute-unit limit/price (via
|
|
365
|
+
* simulation if `txParams.useSimulatedComputeUnits`), and prepends the resulting
|
|
366
|
+
* `ComputeBudgetProgram` instructions unless the caller's instructions already include them.
|
|
367
|
+
* @param props - See `TxBuildingProps`. `props.forceVersionedTransaction` returns a
|
|
368
|
+
* `VersionedTransaction` instance even if `props.txVersion` is `'legacy'`.
|
|
369
|
+
* @returns The built transaction — a `Transaction` for `txVersion === 'legacy'` unless
|
|
370
|
+
* `forceVersionedTransaction` is set, otherwise a `VersionedTransaction`. Not yet signed.
|
|
306
371
|
*/
|
|
307
372
|
async buildTransaction(props) {
|
|
308
373
|
const { txVersion, txParams, connection: _connection, preFlightCommitment: _preFlightCommitment, fetchAllMarketLookupTableAccounts, forceVersionedTransaction, instructions, } = props;
|
|
@@ -386,6 +451,17 @@ class TxHandler {
|
|
|
386
451
|
return this.generateVersionedTransaction(recentBlockhash, allIx, lookupTables);
|
|
387
452
|
}
|
|
388
453
|
}
|
|
454
|
+
/**
|
|
455
|
+
* Wraps a single instruction in a legacy `Transaction`, prepending compute-budget instructions
|
|
456
|
+
* as needed. Does not set a blockhash or fee payer.
|
|
457
|
+
* @param instruction - Instruction to wrap.
|
|
458
|
+
* @param computeUnits - Compute unit limit; defaults to 600,000. A `setComputeUnitLimit`
|
|
459
|
+
* instruction is added unless this value equals `COMPUTE_UNITS_DEFAULT` (200,000) exactly —
|
|
460
|
+
* note the 600,000 default therefore *does* add one.
|
|
461
|
+
* @param computeUnitsPrice - Compute unit price in micro-lamports; defaults to 0, in which case
|
|
462
|
+
* no `setComputeUnitPrice` instruction is added.
|
|
463
|
+
* @returns The unsigned `Transaction`.
|
|
464
|
+
*/
|
|
389
465
|
wrapInTx(instruction, computeUnits = 600000, computeUnitsPrice = 0) {
|
|
390
466
|
const tx = new web3_js_1.Transaction();
|
|
391
467
|
if (computeUnits != exports.COMPUTE_UNITS_DEFAULT) {
|
|
@@ -407,11 +483,12 @@ class TxHandler {
|
|
|
407
483
|
}
|
|
408
484
|
/**
|
|
409
485
|
* Get a map of signed and prepared transactions from an array of legacy transactions
|
|
410
|
-
* @param
|
|
411
|
-
* @param
|
|
412
|
-
* @param
|
|
413
|
-
* @param
|
|
414
|
-
* @returns
|
|
486
|
+
* @param txsMap - Map of key to legacy `Transaction` (or `undefined`, passed through unset); each is mutated with blockhash/feePayer before signing.
|
|
487
|
+
* @param wallet - Wallet to sign with; defaults to this handler's configured wallet.
|
|
488
|
+
* @param commitment - Unused directly here (accepted for interface symmetry with `TxSender.send`-style callers).
|
|
489
|
+
* @param recentBlockhash - Blockhash to apply to every transaction in `txsMap`; if omitted, resolved via `getLatestBlockhashForTransaction`.
|
|
490
|
+
* @returns `{ signedTxMap, signedTxData }` — see `getSignedTransactionMap`.
|
|
491
|
+
* @throws Error if no blockhash could be resolved.
|
|
415
492
|
*/
|
|
416
493
|
async getPreparedAndSignedLegacyTransactionMap(txsMap, wallet, commitment, recentBlockhash) {
|
|
417
494
|
var _a, _b;
|
|
@@ -428,11 +505,16 @@ class TxHandler {
|
|
|
428
505
|
return this.getSignedTransactionMap(txsMap, wallet);
|
|
429
506
|
}
|
|
430
507
|
/**
|
|
431
|
-
* Get a map of signed transactions from an array of transactions to sign.
|
|
432
|
-
*
|
|
433
|
-
*
|
|
434
|
-
* @param
|
|
435
|
-
*
|
|
508
|
+
* Get a map of signed transactions from an array of transactions to sign. Signs all non-`undefined`
|
|
509
|
+
* entries in a single `wallet.signAllTransactions` batch (one wallet approval for the whole map,
|
|
510
|
+
* where the wallet supports it) rather than one signature request per transaction.
|
|
511
|
+
* @param txsToSignMap - Map of key to `Transaction`/`VersionedTransaction` (or `undefined`,
|
|
512
|
+
* passed through as `undefined` in the result rather than being signed).
|
|
513
|
+
* @param wallet - Wallet to sign with; defaults to this handler's configured wallet.
|
|
514
|
+
* @returns `signedTxMap` — same keys as the input, with each defined entry replaced by its
|
|
515
|
+
* signed transaction; and `signedTxData` — the per-transaction signature/blockhash metadata
|
|
516
|
+
* (with `lastValidBlockHeight` if this handler was configured with
|
|
517
|
+
* `returnBlockHeightsWithSignedTxCallbackData`), also passed to `onSignedCb` if configured.
|
|
436
518
|
*/
|
|
437
519
|
async getSignedTransactionMap(txsToSignMap, wallet) {
|
|
438
520
|
var _a;
|
|
@@ -475,8 +557,8 @@ class TxHandler {
|
|
|
475
557
|
}
|
|
476
558
|
/**
|
|
477
559
|
* Accepts multiple instructions and builds a transaction for each. Prevents needing to spam RPC with requests for the same blockhash.
|
|
478
|
-
* @param props
|
|
479
|
-
* @returns
|
|
560
|
+
* @param props - Shared `TxBuildingProps` (minus `instructions`) plus a named map of instruction(s) per output transaction.
|
|
561
|
+
* @returns A map with the same keys as `props.instructionsMap`, each value the corresponding built transaction.
|
|
480
562
|
*/
|
|
481
563
|
async buildTransactionsMap(props) {
|
|
482
564
|
const builtTxs = await this.buildBulkTransactions({
|
|
@@ -490,8 +572,11 @@ class TxHandler {
|
|
|
490
572
|
}
|
|
491
573
|
/**
|
|
492
574
|
* Builds and signs transactions from a given array of instructions for multiple transactions.
|
|
493
|
-
*
|
|
494
|
-
*
|
|
575
|
+
* Builds every transaction first (`buildTransactionsMap`), then signs them all in one batch —
|
|
576
|
+
* via `getPreparedAndSignedLegacyTransactionMap` for `'legacy'` `txVersion`, otherwise
|
|
577
|
+
* `getSignedTransactionMap`.
|
|
578
|
+
* @param props - Shared `TxBuildingProps` (minus `instructions`) plus a named map of instruction(s) per output transaction.
|
|
579
|
+
* @returns `{ signedTxMap, signedTxData }` keyed the same as `props.instructionsMap`; see `getSignedTransactionMap`.
|
|
495
580
|
*/
|
|
496
581
|
async buildAndSignTransactionMap(props) {
|
|
497
582
|
const builtTxs = await this.buildTransactionsMap(props);
|
|
@@ -500,6 +585,21 @@ class TxHandler {
|
|
|
500
585
|
: this.getSignedTransactionMap(builtTxs, props.wallet));
|
|
501
586
|
return preppedTransactions;
|
|
502
587
|
}
|
|
588
|
+
/**
|
|
589
|
+
* Greedily includes as many `optionalInstructions` (e.g. oracle-crank instructions) as fit
|
|
590
|
+
* alongside `txBuildingProps.instructions` under `MAX_TX_BYTE_SIZE`, then simulates the result;
|
|
591
|
+
* if simulation fails, falls back to simulating with only the base instructions (optional ones
|
|
592
|
+
* dropped entirely) rather than trying to isolate which optional instruction caused the failure.
|
|
593
|
+
* @param txBuildingProps - Build props whose `instructions` are the required (non-optional) instructions.
|
|
594
|
+
* @param optionalInstructions - Extra instructions to include only if they fit; prepended
|
|
595
|
+
* ahead of the base instructions and trimmed one-by-one from the front if the combined size
|
|
596
|
+
* exceeds `MAX_TX_BYTE_SIZE`. Defaults to none, in which case this is a no-op passthrough.
|
|
597
|
+
* @param versionedTransaction - Whether to size the candidate transaction as versioned (v0) or legacy; defaults to `true`.
|
|
598
|
+
* @param addressLookupTables - Lookup tables credited toward the size calculation; defaults to none.
|
|
599
|
+
* @returns A tuple of `[instructionsActuallyUsed, simulationResult]` — `instructionsActuallyUsed`
|
|
600
|
+
* includes the optional instructions only if the combined simulation succeeded; `simulationResult`
|
|
601
|
+
* is `undefined` only when `optionalInstructions` was empty (no simulation was needed).
|
|
602
|
+
*/
|
|
503
603
|
async simulateAndCalculateInstructions(txBuildingProps, optionalInstructions = [], versionedTransaction = true, addressLookupTables = []) {
|
|
504
604
|
var _a;
|
|
505
605
|
const baseInstructions = Array.isArray(txBuildingProps.instructions)
|
|
@@ -5,9 +5,31 @@ type TransactionBuildingProps = {
|
|
|
5
5
|
};
|
|
6
6
|
/**
|
|
7
7
|
* This class is responsible for running through a "processing" pipeline for a base transaction, to adjust the standard transaction parameters based on a given configuration.
|
|
8
|
+
*
|
|
9
|
+
* Currently the only pipeline step is simulation-based compute unit resolution: build the
|
|
10
|
+
* transaction with a max compute-unit budget, simulate it, and replace the compute-unit limit
|
|
11
|
+
* (and optionally the compute-unit price) with values derived from actual simulated usage.
|
|
8
12
|
*/
|
|
9
13
|
export declare class TransactionParamProcessor {
|
|
10
14
|
private static getComputeUnitsFromSim;
|
|
15
|
+
/**
|
|
16
|
+
* Determines a compute-unit limit to use for a transaction by simulating it (or reusing a
|
|
17
|
+
* pre-supplied simulation), applying `bufferMultiplier` to the actually-consumed units, and
|
|
18
|
+
* clamping the result to at most `MAX_COMPUTE_UNITS` (1,400,000). Simulation runs with
|
|
19
|
+
* `replaceRecentBlockhash: true` to avoid spurious `blockHashNotFound` failures from an
|
|
20
|
+
* already-stale blockhash on the transaction being sized. Never throws: any error (including
|
|
21
|
+
* a simulation error result) is caught and reported via the `success: false` return.
|
|
22
|
+
* @param tx - Transaction to simulate (ignored if `simulatedTx` is supplied instead).
|
|
23
|
+
* @param connection - RPC connection used to simulate, if `simulatedTx` isn't provided.
|
|
24
|
+
* @param bufferMultiplier - Multiplier applied to the raw consumed compute units before
|
|
25
|
+
* clamping (e.g. `1.2` for a 20% buffer) — mandatory to force callers to account for
|
|
26
|
+
* simulated CU counts being an imperfect predictor of the real on-chain cost.
|
|
27
|
+
* @param lowerBoundCu - If provided, the result is floored at `min(lowerBoundCu, MAX_COMPUTE_UNITS)`.
|
|
28
|
+
* @param simulatedTx - A pre-computed simulation result to reuse instead of simulating `tx` again.
|
|
29
|
+
* @returns `{ success: true, computeUnits }` with the buffered/clamped compute-unit limit on
|
|
30
|
+
* success, or `{ success: false, computeUnits: undefined }` if simulation failed or returned no
|
|
31
|
+
* `unitsConsumed`.
|
|
32
|
+
*/
|
|
11
33
|
static getTxSimComputeUnits(tx: VersionedTransaction, connection: Connection, bufferMultiplier: number, // Making this a mandatory param to force the user to remember that simulated CU's can be inaccurate and a buffer should be applied
|
|
12
34
|
lowerBoundCu?: number, simulatedTx?: SimulatedTransactionResponse): Promise<{
|
|
13
35
|
success: true;
|
|
@@ -16,6 +38,31 @@ export declare class TransactionParamProcessor {
|
|
|
16
38
|
success: false;
|
|
17
39
|
computeUnits: undefined;
|
|
18
40
|
}>;
|
|
41
|
+
/**
|
|
42
|
+
* Runs the configured processing steps against a base set of tx params and returns the
|
|
43
|
+
* adjusted params. If `processConfig` is empty/absent, returns `baseTxParams` unchanged
|
|
44
|
+
* without building or simulating anything.
|
|
45
|
+
*
|
|
46
|
+
* When `processConfig.useSimulatedComputeUnits` is set: rebuilds the transaction (via
|
|
47
|
+
* `txBuilder`) with `computeUnits` forced to `MAX_COMPUTE_UNITS` so simulation isn't
|
|
48
|
+
* constrained by an under-sized limit, simulates it, and — on success — replaces
|
|
49
|
+
* `computeUnits` with the result of `getTxSimComputeUnits` (failure leaves the original
|
|
50
|
+
* `baseTxParams.computeUnits` untouched, it does not throw).
|
|
51
|
+
*
|
|
52
|
+
* When additionally `processConfig.useSimulatedComputeUnitsForCUPriceCalculation` is set:
|
|
53
|
+
* derives `computeUnitsPrice` from the simulated `computeUnits` via
|
|
54
|
+
* `processConfig.getCUPriceFromComputeUnits`.
|
|
55
|
+
* @param props.baseTxParams - Starting compute-unit limit/price to adjust.
|
|
56
|
+
* @param props.processConfig - Which processing steps to run (see `ProcessingTxParams`).
|
|
57
|
+
* @param props.processParams.connection - RPC connection used for simulation.
|
|
58
|
+
* @param props.processParams.simulatedTx - Pre-computed simulation result to reuse instead of simulating again.
|
|
59
|
+
* @param props.txBuilder - Builds a `VersionedTransaction` from a given `BaseTxParams`, used to
|
|
60
|
+
* produce the transaction that gets simulated.
|
|
61
|
+
* @returns The adjusted `BaseTxParams`.
|
|
62
|
+
* @throws Error if `useSimulatedComputeUnitsForCUPriceCalculation` is set without
|
|
63
|
+
* `useSimulatedComputeUnits`, without `getCUPriceFromComputeUnits`, or if the simulated compute
|
|
64
|
+
* units are unavailable (simulation failed).
|
|
65
|
+
*/
|
|
19
66
|
static process(props: {
|
|
20
67
|
baseTxParams: BaseTxParams;
|
|
21
68
|
processConfig: ProcessingTxParams;
|