@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
|
@@ -6,6 +6,12 @@ const userStats_1 = require("../userStats");
|
|
|
6
6
|
const bulkAccountLoader_1 = require("../accounts/bulkAccountLoader");
|
|
7
7
|
const memcmp_1 = require("../memcmp");
|
|
8
8
|
const web3_js_1 = require("@solana/web3.js");
|
|
9
|
+
/**
|
|
10
|
+
* In-memory cache of `UserStats` accounts (one per trading authority, shared
|
|
11
|
+
* across that authority's sub-accounts), keyed by authority pubkey. Backed by
|
|
12
|
+
* a shared `BulkAccountLoader` for the default sync strategy so many
|
|
13
|
+
* `UserStats` can be fetched/polled together instead of one subscription each.
|
|
14
|
+
*/
|
|
9
15
|
class UserStatsMap {
|
|
10
16
|
/**
|
|
11
17
|
* Creates a new UserStatsMap instance.
|
|
@@ -30,6 +36,7 @@ class UserStatsMap {
|
|
|
30
36
|
};
|
|
31
37
|
this.decode = this.velocityClient.program.account.userStats.coder.accounts.decodeUnchecked.bind(this.velocityClient.program.account.userStats.coder.accounts);
|
|
32
38
|
}
|
|
39
|
+
/** Populates the map for `authorities` via `sync()` (no-op if the map already has entries). */
|
|
33
40
|
async subscribe(authorities) {
|
|
34
41
|
if (this.size() > 0) {
|
|
35
42
|
return;
|
|
@@ -60,12 +67,22 @@ class UserStatsMap {
|
|
|
60
67
|
}
|
|
61
68
|
this.userStatsMap.set(authority.toString(), userStat);
|
|
62
69
|
}
|
|
70
|
+
/** Ensures the `UserStats` entry exists for the authority behind `record.user` (looked up/created in `userMap` first), adding it if this map doesn't have it yet. */
|
|
63
71
|
async updateWithOrderRecord(record, userMap) {
|
|
64
72
|
const user = await userMap.mustGet(record.user.toString());
|
|
65
73
|
if (!this.has(user.getUserAccountOrThrow().authority.toString())) {
|
|
66
74
|
await this.addUserStat(user.getUserAccountOrThrow().authority, undefined, false);
|
|
67
75
|
}
|
|
68
76
|
}
|
|
77
|
+
/**
|
|
78
|
+
* Incrementally updates the map in response to a single program event,
|
|
79
|
+
* ensuring a `UserStats` entry exists for every authority the event
|
|
80
|
+
* references (deposit/funding/new-user/IF-stake records reference an
|
|
81
|
+
* authority directly; order/liquidation/settle-pnl/order-action records
|
|
82
|
+
* reference a `User` account and require `userMap` to resolve its authority).
|
|
83
|
+
* Events whose required `userMap` is not supplied, or whose type isn't
|
|
84
|
+
* recognized, are silently ignored.
|
|
85
|
+
*/
|
|
69
86
|
async updateWithEventRecord(record, userMap) {
|
|
70
87
|
if (record.eventType === 'DepositRecord') {
|
|
71
88
|
const depositRecord = record;
|
|
@@ -123,9 +140,11 @@ class UserStatsMap {
|
|
|
123
140
|
await this.mustGet(ifStakeRecord.userAuthority.toString());
|
|
124
141
|
}
|
|
125
142
|
}
|
|
143
|
+
/** Returns true if `authorityPublicKey` has a `UserStats` cached in the map. */
|
|
126
144
|
has(authorityPublicKey) {
|
|
127
145
|
return this.userStatsMap.has(authorityPublicKey);
|
|
128
146
|
}
|
|
147
|
+
/** Returns the cached `UserStats` for `authorityPublicKey`, or `undefined` if not (yet) in the map. */
|
|
129
148
|
get(authorityPublicKey) {
|
|
130
149
|
return this.userStatsMap.get(authorityPublicKey);
|
|
131
150
|
}
|
|
@@ -145,9 +164,11 @@ class UserStatsMap {
|
|
|
145
164
|
}
|
|
146
165
|
return userStats;
|
|
147
166
|
}
|
|
167
|
+
/** Iterates all cached `UserStats` instances. */
|
|
148
168
|
values() {
|
|
149
169
|
return this.userStatsMap.values();
|
|
150
170
|
}
|
|
171
|
+
/** Number of authorities currently cached in the map. */
|
|
151
172
|
size() {
|
|
152
173
|
return this.userStatsMap.size;
|
|
153
174
|
}
|
|
@@ -261,6 +282,7 @@ class UserStatsMap {
|
|
|
261
282
|
this.syncPromise = undefined;
|
|
262
283
|
}
|
|
263
284
|
}
|
|
285
|
+
/** Unsubscribes and removes every cached `UserStats` from the map. */
|
|
264
286
|
async unsubscribe() {
|
|
265
287
|
for (const [key, userStats] of this.userStatsMap.entries()) {
|
|
266
288
|
await userStats.unsubscribe();
|
|
@@ -1,5 +1,21 @@
|
|
|
1
|
+
/** Maximum length, in characters/bytes, of a `User`/`SpotMarket`/`PerpMarket` name field on-chain. */
|
|
1
2
|
export declare const MAX_NAME_LENGTH = 32;
|
|
3
|
+
/** Default name assigned to a user's first sub-account (id 0) when none is supplied. */
|
|
2
4
|
export declare const DEFAULT_USER_NAME = "Main Account";
|
|
5
|
+
/** Default name used for a market when no explicit name is configured. */
|
|
3
6
|
export declare const DEFAULT_MARKET_NAME = "Default Market Name";
|
|
7
|
+
/**
|
|
8
|
+
* Encodes a name into the fixed 32-byte, space-padded on-chain representation used by `User`,
|
|
9
|
+
* `PerpMarket`, and `SpotMarket` name fields.
|
|
10
|
+
* @param name - Name to encode; must be at most `MAX_NAME_LENGTH` (32) characters.
|
|
11
|
+
* @returns A 32-element array of bytes: the UTF-8 encoding of `name` followed by space (`0x20`)
|
|
12
|
+
* padding to fill the remaining length.
|
|
13
|
+
* @throws Error if `name` is longer than `MAX_NAME_LENGTH`.
|
|
14
|
+
*/
|
|
4
15
|
export declare function encodeName(name: string): number[];
|
|
16
|
+
/**
|
|
17
|
+
* Decodes a fixed 32-byte on-chain name field back into a trimmed string, reversing `encodeName`.
|
|
18
|
+
* @param bytes - The raw 32-byte name field as read from an account.
|
|
19
|
+
* @returns The name with trailing (and leading) whitespace padding removed.
|
|
20
|
+
*/
|
|
5
21
|
export declare function decodeName(bytes: number[]): string;
|
package/lib/browser/userName.js
CHANGED
|
@@ -1,9 +1,20 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.decodeName = exports.encodeName = exports.DEFAULT_MARKET_NAME = exports.DEFAULT_USER_NAME = exports.MAX_NAME_LENGTH = void 0;
|
|
4
|
+
/** Maximum length, in characters/bytes, of a `User`/`SpotMarket`/`PerpMarket` name field on-chain. */
|
|
4
5
|
exports.MAX_NAME_LENGTH = 32;
|
|
6
|
+
/** Default name assigned to a user's first sub-account (id 0) when none is supplied. */
|
|
5
7
|
exports.DEFAULT_USER_NAME = 'Main Account';
|
|
8
|
+
/** Default name used for a market when no explicit name is configured. */
|
|
6
9
|
exports.DEFAULT_MARKET_NAME = 'Default Market Name';
|
|
10
|
+
/**
|
|
11
|
+
* Encodes a name into the fixed 32-byte, space-padded on-chain representation used by `User`,
|
|
12
|
+
* `PerpMarket`, and `SpotMarket` name fields.
|
|
13
|
+
* @param name - Name to encode; must be at most `MAX_NAME_LENGTH` (32) characters.
|
|
14
|
+
* @returns A 32-element array of bytes: the UTF-8 encoding of `name` followed by space (`0x20`)
|
|
15
|
+
* padding to fill the remaining length.
|
|
16
|
+
* @throws Error if `name` is longer than `MAX_NAME_LENGTH`.
|
|
17
|
+
*/
|
|
7
18
|
function encodeName(name) {
|
|
8
19
|
if (name.length > exports.MAX_NAME_LENGTH) {
|
|
9
20
|
throw Error(`Name (${name}) longer than 32 characters`);
|
|
@@ -14,6 +25,11 @@ function encodeName(name) {
|
|
|
14
25
|
return Array(...buffer);
|
|
15
26
|
}
|
|
16
27
|
exports.encodeName = encodeName;
|
|
28
|
+
/**
|
|
29
|
+
* Decodes a fixed 32-byte on-chain name field back into a trimmed string, reversing `encodeName`.
|
|
30
|
+
* @param bytes - The raw 32-byte name field as read from an account.
|
|
31
|
+
* @returns The name with trailing (and leading) whitespace padding removed.
|
|
32
|
+
*/
|
|
17
33
|
function decodeName(bytes) {
|
|
18
34
|
const buffer = Buffer.from(bytes);
|
|
19
35
|
return buffer.toString('utf8').trim();
|
|
@@ -14,16 +14,43 @@ export declare class UserStats {
|
|
|
14
14
|
accountSubscriber: UserStatsAccountSubscriber;
|
|
15
15
|
isSubscribed: boolean;
|
|
16
16
|
constructor(config: UserStatsConfig);
|
|
17
|
+
/**
|
|
18
|
+
* Subscribes to this authority's `UserStats` account.
|
|
19
|
+
* @param userStatsAccount Optional pre-fetched account to seed the subscriber with, skipping the initial RPC fetch.
|
|
20
|
+
* @returns True once the underlying subscriber reports subscribed.
|
|
21
|
+
*/
|
|
17
22
|
subscribe(userStatsAccount?: UserStatsAccount): Promise<boolean>;
|
|
23
|
+
/** Forces the account subscriber to re-fetch the `UserStats` account from RPC. */
|
|
18
24
|
fetchAccounts(): Promise<void>;
|
|
25
|
+
/** Tears down the `UserStats` account subscription. */
|
|
19
26
|
unsubscribe(): Promise<void>;
|
|
27
|
+
/** Like `getAccount`, but also returns the slot at which the account was last observed. Same `undefined`-when-not-found contract. */
|
|
20
28
|
getAccountAndSlot(): DataAndSlot<UserStatsAccount> | undefined;
|
|
29
|
+
/**
|
|
30
|
+
* Returns the cached `UserStats` account, or `undefined` if it has not been
|
|
31
|
+
* loaded yet (e.g. `subscribe()` has not resolved, or the account does not
|
|
32
|
+
* exist on chain). Unlike `User.getUserAccount`, this does not throw
|
|
33
|
+
* `NotSubscribedError` when called before subscribing — it simply returns
|
|
34
|
+
* `undefined` from the subscriber's initial (empty) state.
|
|
35
|
+
*/
|
|
21
36
|
getAccount(): UserStatsAccount | undefined;
|
|
22
37
|
/**
|
|
23
|
-
* Like
|
|
38
|
+
* Like `getAccount` but throws a named error instead of returning
|
|
24
39
|
* `undefined` when the stats account has not been loaded yet.
|
|
25
40
|
*/
|
|
26
41
|
getAccountOrThrow(): UserStatsAccount;
|
|
42
|
+
/**
|
|
43
|
+
* Returns the addresses of this user's referrer's `User` (sub-account 0)
|
|
44
|
+
* and `UserStats` accounts, or `undefined` if the account is not loaded or
|
|
45
|
+
* has no referrer set (`referrer` is the default/zero pubkey).
|
|
46
|
+
*/
|
|
27
47
|
getReferrerInfo(): ReferrerInfo | undefined;
|
|
48
|
+
/**
|
|
49
|
+
* Returns the earliest of the account's three rolling-30-day activity
|
|
50
|
+
* timestamps (filler, maker, taker volume), i.e. the oldest evidence of
|
|
51
|
+
* account activity — used to estimate account age for deletion-eligibility
|
|
52
|
+
* checks (see `User.canBeDeleted`).
|
|
53
|
+
* @returns Unix timestamp in seconds.
|
|
54
|
+
*/
|
|
28
55
|
static getOldestActionTs(account: UserStatsAccount): number;
|
|
29
56
|
}
|
package/lib/browser/userStats.js
CHANGED
|
@@ -38,26 +38,41 @@ class UserStats {
|
|
|
38
38
|
throw new Error(`Unknown user stats account subscription type: ${exhaustiveCheck}`);
|
|
39
39
|
}
|
|
40
40
|
}
|
|
41
|
+
/**
|
|
42
|
+
* Subscribes to this authority's `UserStats` account.
|
|
43
|
+
* @param userStatsAccount Optional pre-fetched account to seed the subscriber with, skipping the initial RPC fetch.
|
|
44
|
+
* @returns True once the underlying subscriber reports subscribed.
|
|
45
|
+
*/
|
|
41
46
|
async subscribe(userStatsAccount) {
|
|
42
47
|
this.isSubscribed = await this.accountSubscriber.subscribe(userStatsAccount);
|
|
43
48
|
return this.isSubscribed;
|
|
44
49
|
}
|
|
50
|
+
/** Forces the account subscriber to re-fetch the `UserStats` account from RPC. */
|
|
45
51
|
async fetchAccounts() {
|
|
46
52
|
await this.accountSubscriber.fetch();
|
|
47
53
|
}
|
|
54
|
+
/** Tears down the `UserStats` account subscription. */
|
|
48
55
|
async unsubscribe() {
|
|
49
56
|
await this.accountSubscriber.unsubscribe();
|
|
50
57
|
this.isSubscribed = false;
|
|
51
58
|
}
|
|
59
|
+
/** Like `getAccount`, but also returns the slot at which the account was last observed. Same `undefined`-when-not-found contract. */
|
|
52
60
|
getAccountAndSlot() {
|
|
53
61
|
return this.accountSubscriber.getUserStatsAccountAndSlot();
|
|
54
62
|
}
|
|
63
|
+
/**
|
|
64
|
+
* Returns the cached `UserStats` account, or `undefined` if it has not been
|
|
65
|
+
* loaded yet (e.g. `subscribe()` has not resolved, or the account does not
|
|
66
|
+
* exist on chain). Unlike `User.getUserAccount`, this does not throw
|
|
67
|
+
* `NotSubscribedError` when called before subscribing — it simply returns
|
|
68
|
+
* `undefined` from the subscriber's initial (empty) state.
|
|
69
|
+
*/
|
|
55
70
|
getAccount() {
|
|
56
71
|
var _a;
|
|
57
72
|
return (_a = this.accountSubscriber.getUserStatsAccountAndSlot()) === null || _a === void 0 ? void 0 : _a.data;
|
|
58
73
|
}
|
|
59
74
|
/**
|
|
60
|
-
* Like
|
|
75
|
+
* Like `getAccount` but throws a named error instead of returning
|
|
61
76
|
* `undefined` when the stats account has not been loaded yet.
|
|
62
77
|
*/
|
|
63
78
|
getAccountOrThrow() {
|
|
@@ -67,6 +82,11 @@ class UserStats {
|
|
|
67
82
|
}
|
|
68
83
|
return account;
|
|
69
84
|
}
|
|
85
|
+
/**
|
|
86
|
+
* Returns the addresses of this user's referrer's `User` (sub-account 0)
|
|
87
|
+
* and `UserStats` accounts, or `undefined` if the account is not loaded or
|
|
88
|
+
* has no referrer set (`referrer` is the default/zero pubkey).
|
|
89
|
+
*/
|
|
70
90
|
getReferrerInfo() {
|
|
71
91
|
const account = this.getAccount();
|
|
72
92
|
if (!account || account.referrer.equals(web3_js_1.PublicKey.default)) {
|
|
@@ -79,6 +99,13 @@ class UserStats {
|
|
|
79
99
|
};
|
|
80
100
|
}
|
|
81
101
|
}
|
|
102
|
+
/**
|
|
103
|
+
* Returns the earliest of the account's three rolling-30-day activity
|
|
104
|
+
* timestamps (filler, maker, taker volume), i.e. the oldest evidence of
|
|
105
|
+
* account activity — used to estimate account age for deletion-eligibility
|
|
106
|
+
* checks (see `User.canBeDeleted`).
|
|
107
|
+
* @returns Unix timestamp in seconds.
|
|
108
|
+
*/
|
|
82
109
|
static getOldestActionTs(account) {
|
|
83
110
|
return Math.min(account.lastFillerVolume30DTs.toNumber(), account.lastMakerVolume30DTs.toNumber(), account.lastTakerVolume30DTs.toNumber());
|
|
84
111
|
}
|
|
@@ -7,7 +7,40 @@ export declare class TransactionConfirmationManager {
|
|
|
7
7
|
private pendingConfirmations;
|
|
8
8
|
private intervalId;
|
|
9
9
|
constructor(connection: Connection);
|
|
10
|
+
/**
|
|
11
|
+
* Waits for a transaction to reach `desiredConfirmationStatus` using a `connection.onSignature`
|
|
12
|
+
* websocket subscription, racing it against a one-shot `getSignatureStatuses` check (in case
|
|
13
|
+
* the transaction already confirmed before the subscription was established) and a timeout.
|
|
14
|
+
* The websocket listener is always removed before returning/throwing.
|
|
15
|
+
* @param txSig - Transaction signature to confirm.
|
|
16
|
+
* @param timeout - Milliseconds to wait before giving up; defaults to 30000 (30s).
|
|
17
|
+
* @param desiredConfirmationStatus - Confirmation level to wait for (`'processed'` <
|
|
18
|
+
* `'confirmed'` < `'finalized'`); defaults to `DEFAULT_CONFIRMATION_OPTS.commitment` (`'confirmed'`).
|
|
19
|
+
* @returns The RPC response once `txSig` reaches (or exceeds) `desiredConfirmationStatus`.
|
|
20
|
+
* @throws Error via `throwTransactionError` if the one-shot status check finds the transaction
|
|
21
|
+
* already failed on-chain; `TxSendError` (code `NOT_CONFIRMED_ERROR_CODE`) if neither the
|
|
22
|
+
* one-shot check nor the websocket confirms it within `timeout` — in that case the transaction's
|
|
23
|
+
* actual outcome is unknown, not necessarily failed.
|
|
24
|
+
*/
|
|
10
25
|
confirmTransactionWebSocket(txSig: string, timeout?: number, desiredConfirmationStatus?: TransactionConfirmationStatus): Promise<RpcResponseAndContext<SignatureResult>>;
|
|
26
|
+
/**
|
|
27
|
+
* Waits for a transaction to reach `desiredConfirmationStatus` by polling
|
|
28
|
+
* `getSignatureStatuses` on a shared 100ms tick (see class doc) rather than a
|
|
29
|
+
* per-transaction interval — this call registers `txSig` and starts the shared loop if it
|
|
30
|
+
* isn't already running.
|
|
31
|
+
* @param txSig - Transaction signature to confirm.
|
|
32
|
+
* @param desiredConfirmationStatus - Confirmation level to wait for; defaults to
|
|
33
|
+
* `DEFAULT_CONFIRMATION_OPTS.commitment` (`'confirmed'`).
|
|
34
|
+
* @param timeout - Milliseconds to wait before rejecting; defaults to 30000 (30s).
|
|
35
|
+
* @param pollInterval - How often (ms) to actually check this transaction's status against the
|
|
36
|
+
* shared 100ms tick; must be at least 400 and a multiple of 100. Defaults to 1000 (1s).
|
|
37
|
+
* @param searchTransactionHistory - Whether to also search already-purged ledger history for
|
|
38
|
+
* this signature (passed to `getSignatureStatuses`); defaults to `false`. If any transaction
|
|
39
|
+
* batched into the same poll round requests this, the whole batch's RPC call requests it.
|
|
40
|
+
* @returns The `SignatureStatus` once `txSig` reaches (or exceeds) `desiredConfirmationStatus`.
|
|
41
|
+
* @throws Error if `pollInterval` is invalid, if the poll times out, or if the transaction is
|
|
42
|
+
* found to have failed on-chain (rejected with the resolved transaction error).
|
|
43
|
+
*/
|
|
11
44
|
confirmTransactionPolling(txSig: string, desiredConfirmationStatus?: TransactionConfirmationStatus, timeout?: number, pollInterval?: number, searchTransactionHistory?: boolean): Promise<SignatureStatus>;
|
|
12
45
|
private startConfirmationLoop;
|
|
13
46
|
private checkPendingConfirmations;
|
|
@@ -20,6 +20,21 @@ class TransactionConfirmationManager {
|
|
|
20
20
|
this.intervalId = null;
|
|
21
21
|
this.connection = connection;
|
|
22
22
|
}
|
|
23
|
+
/**
|
|
24
|
+
* Waits for a transaction to reach `desiredConfirmationStatus` using a `connection.onSignature`
|
|
25
|
+
* websocket subscription, racing it against a one-shot `getSignatureStatuses` check (in case
|
|
26
|
+
* the transaction already confirmed before the subscription was established) and a timeout.
|
|
27
|
+
* The websocket listener is always removed before returning/throwing.
|
|
28
|
+
* @param txSig - Transaction signature to confirm.
|
|
29
|
+
* @param timeout - Milliseconds to wait before giving up; defaults to 30000 (30s).
|
|
30
|
+
* @param desiredConfirmationStatus - Confirmation level to wait for (`'processed'` <
|
|
31
|
+
* `'confirmed'` < `'finalized'`); defaults to `DEFAULT_CONFIRMATION_OPTS.commitment` (`'confirmed'`).
|
|
32
|
+
* @returns The RPC response once `txSig` reaches (or exceeds) `desiredConfirmationStatus`.
|
|
33
|
+
* @throws Error via `throwTransactionError` if the one-shot status check finds the transaction
|
|
34
|
+
* already failed on-chain; `TxSendError` (code `NOT_CONFIRMED_ERROR_CODE`) if neither the
|
|
35
|
+
* one-shot check nor the websocket confirms it within `timeout` — in that case the transaction's
|
|
36
|
+
* actual outcome is unknown, not necessarily failed.
|
|
37
|
+
*/
|
|
23
38
|
async confirmTransactionWebSocket(txSig, timeout = 30000, desiredConfirmationStatus = config_1.DEFAULT_CONFIRMATION_OPTS.commitment) {
|
|
24
39
|
const start = Date.now();
|
|
25
40
|
const subscriptionCommitment = desiredConfirmationStatus || config_1.DEFAULT_CONFIRMATION_OPTS.commitment;
|
|
@@ -88,6 +103,24 @@ class TransactionConfirmationManager {
|
|
|
88
103
|
}
|
|
89
104
|
return response;
|
|
90
105
|
}
|
|
106
|
+
/**
|
|
107
|
+
* Waits for a transaction to reach `desiredConfirmationStatus` by polling
|
|
108
|
+
* `getSignatureStatuses` on a shared 100ms tick (see class doc) rather than a
|
|
109
|
+
* per-transaction interval — this call registers `txSig` and starts the shared loop if it
|
|
110
|
+
* isn't already running.
|
|
111
|
+
* @param txSig - Transaction signature to confirm.
|
|
112
|
+
* @param desiredConfirmationStatus - Confirmation level to wait for; defaults to
|
|
113
|
+
* `DEFAULT_CONFIRMATION_OPTS.commitment` (`'confirmed'`).
|
|
114
|
+
* @param timeout - Milliseconds to wait before rejecting; defaults to 30000 (30s).
|
|
115
|
+
* @param pollInterval - How often (ms) to actually check this transaction's status against the
|
|
116
|
+
* shared 100ms tick; must be at least 400 and a multiple of 100. Defaults to 1000 (1s).
|
|
117
|
+
* @param searchTransactionHistory - Whether to also search already-purged ledger history for
|
|
118
|
+
* this signature (passed to `getSignatureStatuses`); defaults to `false`. If any transaction
|
|
119
|
+
* batched into the same poll round requests this, the whole batch's RPC call requests it.
|
|
120
|
+
* @returns The `SignatureStatus` once `txSig` reaches (or exceeds) `desiredConfirmationStatus`.
|
|
121
|
+
* @throws Error if `pollInterval` is invalid, if the poll times out, or if the transaction is
|
|
122
|
+
* found to have failed on-chain (rejected with the resolved transaction error).
|
|
123
|
+
*/
|
|
91
124
|
async confirmTransactionPolling(txSig, desiredConfirmationStatus = config_1.DEFAULT_CONFIRMATION_OPTS.commitment, timeout = 30000, pollInterval = 1000, searchTransactionHistory = false) {
|
|
92
125
|
// Interval must be > 400ms and a multiple of 100ms
|
|
93
126
|
if (pollInterval < 400 || pollInterval % 100 !== 0) {
|
|
@@ -1,17 +1,41 @@
|
|
|
1
1
|
import { Commitment } from '@solana/web3.js';
|
|
2
|
+
/** Last-known chain progress at a given commitment level: block height, slot, and unix timestamp (seconds). Any field may be absent if never observed. */
|
|
2
3
|
export type ChainClockProgress = {
|
|
3
4
|
blockHeight?: number;
|
|
4
5
|
slot?: number;
|
|
5
6
|
ts?: number;
|
|
6
7
|
};
|
|
8
|
+
/** A `ChainClockProgress` update tagged with the commitment level it was observed at. */
|
|
7
9
|
export type ChainClockUpdateProps = {
|
|
8
10
|
commitment: Commitment;
|
|
9
11
|
} & ChainClockProgress;
|
|
12
|
+
/** Internal state map: one `ChainClockProgress` per `Commitment` level. */
|
|
10
13
|
export type ChainClockState = Map<Commitment, ChainClockProgress>;
|
|
14
|
+
/** Initial per-commitment progress values to seed a `ChainClock` with. */
|
|
11
15
|
export type ChainClickInitialisationProps = ChainClockUpdateProps[];
|
|
16
|
+
/**
|
|
17
|
+
* Tracks the most recently observed block height/slot/timestamp per commitment level, so callers
|
|
18
|
+
* (e.g. tx senders deciding whether a blockhash has expired) can read the latest known chain
|
|
19
|
+
* progress without an RPC round-trip.
|
|
20
|
+
*/
|
|
12
21
|
export declare class ChainClock {
|
|
13
22
|
private _state;
|
|
23
|
+
/**
|
|
24
|
+
* @param props - Initial progress values, one entry per commitment level to track.
|
|
25
|
+
*/
|
|
14
26
|
constructor(props: ChainClickInitialisationProps);
|
|
27
|
+
/**
|
|
28
|
+
* Merges a new observation into the tracked state for `props.commitment`. Only fields present
|
|
29
|
+
* on `props` are updated (falsy/omitted `blockHeight`/`slot`/`ts` leave the existing stored
|
|
30
|
+
* value untouched, including `0` being treated as absent); the commitment level is created if
|
|
31
|
+
* not already tracked.
|
|
32
|
+
* @param props - New progress observation, tagged with its commitment level.
|
|
33
|
+
*/
|
|
15
34
|
update(props: ChainClockUpdateProps): void;
|
|
35
|
+
/**
|
|
36
|
+
* Reads the last-known progress at a commitment level.
|
|
37
|
+
* @param commitment - Commitment level to read.
|
|
38
|
+
* @returns The tracked `ChainClockProgress`, or `undefined` if nothing has been observed yet at that level.
|
|
39
|
+
*/
|
|
16
40
|
getState(commitment: Commitment): ChainClockProgress | undefined;
|
|
17
41
|
}
|
|
@@ -1,13 +1,28 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ChainClock = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Tracks the most recently observed block height/slot/timestamp per commitment level, so callers
|
|
6
|
+
* (e.g. tx senders deciding whether a blockhash has expired) can read the latest known chain
|
|
7
|
+
* progress without an RPC round-trip.
|
|
8
|
+
*/
|
|
4
9
|
class ChainClock {
|
|
10
|
+
/**
|
|
11
|
+
* @param props - Initial progress values, one entry per commitment level to track.
|
|
12
|
+
*/
|
|
5
13
|
constructor(props) {
|
|
6
14
|
this._state = new Map();
|
|
7
15
|
props.forEach((prop) => {
|
|
8
16
|
this._state.set(prop.commitment, prop);
|
|
9
17
|
});
|
|
10
18
|
}
|
|
19
|
+
/**
|
|
20
|
+
* Merges a new observation into the tracked state for `props.commitment`. Only fields present
|
|
21
|
+
* on `props` are updated (falsy/omitted `blockHeight`/`slot`/`ts` leave the existing stored
|
|
22
|
+
* value untouched, including `0` being treated as absent); the commitment level is created if
|
|
23
|
+
* not already tracked.
|
|
24
|
+
* @param props - New progress observation, tagged with its commitment level.
|
|
25
|
+
*/
|
|
11
26
|
update(props) {
|
|
12
27
|
const state = this._state.get(props.commitment);
|
|
13
28
|
if (state) {
|
|
@@ -22,6 +37,11 @@ class ChainClock {
|
|
|
22
37
|
this._state.set(props.commitment, props);
|
|
23
38
|
}
|
|
24
39
|
}
|
|
40
|
+
/**
|
|
41
|
+
* Reads the last-known progress at a commitment level.
|
|
42
|
+
* @param commitment - Commitment level to read.
|
|
43
|
+
* @returns The tracked `ChainClockProgress`, or `undefined` if nothing has been observed yet at that level.
|
|
44
|
+
*/
|
|
25
45
|
getState(commitment) {
|
|
26
46
|
return this._state.get(commitment);
|
|
27
47
|
}
|
|
@@ -1,7 +1,39 @@
|
|
|
1
1
|
import { Connection, Finality, PublicKey, TransactionInstruction } from '@solana/web3.js';
|
|
2
|
+
/**
|
|
3
|
+
* Fetches a confirmed transaction and extracts, from its log messages, every "consumed compute
|
|
4
|
+
* units" line attributable to `programId`. A transaction can invoke the same program more than
|
|
5
|
+
* once (e.g. via CPI or multiple instructions), so this returns one entry per matching log line
|
|
6
|
+
* rather than a single total.
|
|
7
|
+
* @param programId - Program whose compute-unit consumption to extract.
|
|
8
|
+
* @param connection - RPC connection used to fetch the transaction.
|
|
9
|
+
* @param txSignature - Signature of the transaction to inspect.
|
|
10
|
+
* @param commitment - Finality level to fetch the transaction at; defaults to `'confirmed'`.
|
|
11
|
+
* @returns The consumed-compute-unit counts (as strings, parsed straight from the log text) for
|
|
12
|
+
* each invocation of `programId` found in the transaction's logs; empty if the transaction has no
|
|
13
|
+
* log messages (e.g. not yet available at the requested commitment).
|
|
14
|
+
*/
|
|
2
15
|
export declare function findComputeUnitConsumption(programId: PublicKey, connection: Connection, txSignature: string, commitment?: Finality): Promise<string[]>;
|
|
16
|
+
/**
|
|
17
|
+
* Checks whether `ix` is a `ComputeBudgetProgram.setComputeUnitLimit` instruction, by matching
|
|
18
|
+
* the program id and the instruction discriminator byte (`2`).
|
|
19
|
+
* @param ix - Instruction to check.
|
|
20
|
+
* @returns `true` if `ix` sets the transaction's compute unit limit.
|
|
21
|
+
*/
|
|
3
22
|
export declare function isSetComputeUnitsIx(ix: TransactionInstruction): boolean;
|
|
23
|
+
/**
|
|
24
|
+
* Checks whether `ix` is a `ComputeBudgetProgram.setComputeUnitPrice` instruction, by matching
|
|
25
|
+
* the program id and the instruction discriminator byte (`3`).
|
|
26
|
+
* @param ix - Instruction to check.
|
|
27
|
+
* @returns `true` if `ix` sets the transaction's compute unit price (priority fee).
|
|
28
|
+
*/
|
|
4
29
|
export declare function isSetComputeUnitPriceIx(ix: TransactionInstruction): boolean;
|
|
30
|
+
/**
|
|
31
|
+
* Checks a list of instructions for the presence of compute-budget limit/price instructions —
|
|
32
|
+
* used by tx builders to avoid appending a duplicate `setComputeUnitLimit`/`setComputeUnitPrice`
|
|
33
|
+
* instruction when the caller already supplied one.
|
|
34
|
+
* @param ixs - Instructions to scan (typically an in-progress transaction's instruction list).
|
|
35
|
+
* @returns Whether a `setComputeUnitLimit` and/or `setComputeUnitPrice` instruction is present.
|
|
36
|
+
*/
|
|
5
37
|
export declare function containsComputeUnitIxs(ixs: TransactionInstruction[]): {
|
|
6
38
|
hasSetComputeUnitLimitIx: boolean;
|
|
7
39
|
hasSetComputeUnitPriceIx: boolean;
|
|
@@ -2,6 +2,19 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.containsComputeUnitIxs = exports.isSetComputeUnitPriceIx = exports.isSetComputeUnitsIx = exports.findComputeUnitConsumption = void 0;
|
|
4
4
|
const web3_js_1 = require("@solana/web3.js");
|
|
5
|
+
/**
|
|
6
|
+
* Fetches a confirmed transaction and extracts, from its log messages, every "consumed compute
|
|
7
|
+
* units" line attributable to `programId`. A transaction can invoke the same program more than
|
|
8
|
+
* once (e.g. via CPI or multiple instructions), so this returns one entry per matching log line
|
|
9
|
+
* rather than a single total.
|
|
10
|
+
* @param programId - Program whose compute-unit consumption to extract.
|
|
11
|
+
* @param connection - RPC connection used to fetch the transaction.
|
|
12
|
+
* @param txSignature - Signature of the transaction to inspect.
|
|
13
|
+
* @param commitment - Finality level to fetch the transaction at; defaults to `'confirmed'`.
|
|
14
|
+
* @returns The consumed-compute-unit counts (as strings, parsed straight from the log text) for
|
|
15
|
+
* each invocation of `programId` found in the transaction's logs; empty if the transaction has no
|
|
16
|
+
* log messages (e.g. not yet available at the requested commitment).
|
|
17
|
+
*/
|
|
5
18
|
async function findComputeUnitConsumption(programId, connection, txSignature, commitment = 'confirmed') {
|
|
6
19
|
var _a;
|
|
7
20
|
const tx = await connection.getTransaction(txSignature, { commitment });
|
|
@@ -20,6 +33,12 @@ async function findComputeUnitConsumption(programId, connection, txSignature, co
|
|
|
20
33
|
return computeUnits;
|
|
21
34
|
}
|
|
22
35
|
exports.findComputeUnitConsumption = findComputeUnitConsumption;
|
|
36
|
+
/**
|
|
37
|
+
* Checks whether `ix` is a `ComputeBudgetProgram.setComputeUnitLimit` instruction, by matching
|
|
38
|
+
* the program id and the instruction discriminator byte (`2`).
|
|
39
|
+
* @param ix - Instruction to check.
|
|
40
|
+
* @returns `true` if `ix` sets the transaction's compute unit limit.
|
|
41
|
+
*/
|
|
23
42
|
function isSetComputeUnitsIx(ix) {
|
|
24
43
|
// Compute budget program discriminator is first byte
|
|
25
44
|
// 2: set compute unit limit
|
|
@@ -32,6 +51,12 @@ function isSetComputeUnitsIx(ix) {
|
|
|
32
51
|
return false;
|
|
33
52
|
}
|
|
34
53
|
exports.isSetComputeUnitsIx = isSetComputeUnitsIx;
|
|
54
|
+
/**
|
|
55
|
+
* Checks whether `ix` is a `ComputeBudgetProgram.setComputeUnitPrice` instruction, by matching
|
|
56
|
+
* the program id and the instruction discriminator byte (`3`).
|
|
57
|
+
* @param ix - Instruction to check.
|
|
58
|
+
* @returns `true` if `ix` sets the transaction's compute unit price (priority fee).
|
|
59
|
+
*/
|
|
35
60
|
function isSetComputeUnitPriceIx(ix) {
|
|
36
61
|
// Compute budget program discriminator is first byte
|
|
37
62
|
// 2: set compute unit limit
|
|
@@ -44,6 +69,13 @@ function isSetComputeUnitPriceIx(ix) {
|
|
|
44
69
|
return false;
|
|
45
70
|
}
|
|
46
71
|
exports.isSetComputeUnitPriceIx = isSetComputeUnitPriceIx;
|
|
72
|
+
/**
|
|
73
|
+
* Checks a list of instructions for the presence of compute-budget limit/price instructions —
|
|
74
|
+
* used by tx builders to avoid appending a duplicate `setComputeUnitLimit`/`setComputeUnitPrice`
|
|
75
|
+
* instruction when the caller already supplied one.
|
|
76
|
+
* @param ixs - Instructions to scan (typically an in-progress transaction's instruction list).
|
|
77
|
+
* @returns Whether a `setComputeUnitLimit` and/or `setComputeUnitPrice` instruction is present.
|
|
78
|
+
*/
|
|
47
79
|
function containsComputeUnitIxs(ixs) {
|
|
48
80
|
return {
|
|
49
81
|
hasSetComputeUnitLimitIx: ixs.some(isSetComputeUnitsIx),
|
|
@@ -1,5 +1,22 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
/// <reference types="node" />
|
|
3
|
+
/**
|
|
4
|
+
* Computes the raw SHA-256 digest of arbitrary data.
|
|
5
|
+
* @param data - Bytes to hash.
|
|
6
|
+
* @returns The 32-byte SHA-256 digest.
|
|
7
|
+
*/
|
|
3
8
|
export declare function digest(data: Buffer): Buffer;
|
|
9
|
+
/**
|
|
10
|
+
* Computes a base64-encoded SHA-256 digest of a signature, used as a compact, collision-resistant
|
|
11
|
+
* dedup/lookup key for signed messages (e.g. swift/signed-message orders) without storing the full
|
|
12
|
+
* signature.
|
|
13
|
+
* @param signature - Raw signature bytes to hash.
|
|
14
|
+
* @returns The base64-encoded SHA-256 digest.
|
|
15
|
+
*/
|
|
4
16
|
export declare function digestSignature(signature: Uint8Array): string;
|
|
17
|
+
/**
|
|
18
|
+
* Generates a random 8-character uuid for tagging a signed-message (swift) order, matching the
|
|
19
|
+
* `uuid: Uint8Array` field expected on-chain/by the swift server.
|
|
20
|
+
* @returns 8 raw bytes (the ASCII/UTF-8 encoding of an 8-character nanoid string).
|
|
21
|
+
*/
|
|
5
22
|
export declare function generateSignedMsgUuid(): Uint8Array;
|
|
@@ -3,16 +3,33 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.generateSignedMsgUuid = exports.digestSignature = exports.digest = void 0;
|
|
4
4
|
const crypto_1 = require("crypto");
|
|
5
5
|
const nanoid_1 = require("nanoid");
|
|
6
|
+
/**
|
|
7
|
+
* Computes the raw SHA-256 digest of arbitrary data.
|
|
8
|
+
* @param data - Bytes to hash.
|
|
9
|
+
* @returns The 32-byte SHA-256 digest.
|
|
10
|
+
*/
|
|
6
11
|
function digest(data) {
|
|
7
12
|
const hash = (0, crypto_1.createHash)('sha256');
|
|
8
13
|
hash.update(data);
|
|
9
14
|
return hash.digest();
|
|
10
15
|
}
|
|
11
16
|
exports.digest = digest;
|
|
17
|
+
/**
|
|
18
|
+
* Computes a base64-encoded SHA-256 digest of a signature, used as a compact, collision-resistant
|
|
19
|
+
* dedup/lookup key for signed messages (e.g. swift/signed-message orders) without storing the full
|
|
20
|
+
* signature.
|
|
21
|
+
* @param signature - Raw signature bytes to hash.
|
|
22
|
+
* @returns The base64-encoded SHA-256 digest.
|
|
23
|
+
*/
|
|
12
24
|
function digestSignature(signature) {
|
|
13
25
|
return (0, crypto_1.createHash)('sha256').update(signature).digest('base64');
|
|
14
26
|
}
|
|
15
27
|
exports.digestSignature = digestSignature;
|
|
28
|
+
/**
|
|
29
|
+
* Generates a random 8-character uuid for tagging a signed-message (swift) order, matching the
|
|
30
|
+
* `uuid: Uint8Array` field expected on-chain/by the swift server.
|
|
31
|
+
* @returns 8 raw bytes (the ASCII/UTF-8 encoding of an 8-character nanoid string).
|
|
32
|
+
*/
|
|
16
33
|
function generateSignedMsgUuid() {
|
|
17
34
|
return Uint8Array.from(Buffer.from((0, nanoid_1.nanoid)(8)));
|
|
18
35
|
}
|
|
@@ -1,10 +1,20 @@
|
|
|
1
1
|
import { TransactionInstruction } from '@solana/web3.js';
|
|
2
2
|
/**
|
|
3
|
-
* Constructs a minimal Ed25519 verification instruction that
|
|
4
|
-
*
|
|
3
|
+
* Constructs a minimal Ed25519 verification instruction that, instead of embedding its own copy
|
|
4
|
+
* of the signature/pubkey/message, points its offsets at data already present inside another
|
|
5
|
+
* instruction in the same transaction (e.g. `postPythLazerOracleUpdate`, `placeSignedMsgTakerOrder`).
|
|
6
|
+
* This lets the native ed25519 program verify a signature the velocity program also needs to read,
|
|
7
|
+
* without duplicating the signed payload in the transaction (which would blow the size limit for
|
|
8
|
+
* larger payloads like Lazer updates). The Solana runtime requires this ed25519 verify instruction
|
|
9
|
+
* to be a sibling instruction (not a CPI) executed before the instruction that relies on it.
|
|
5
10
|
*
|
|
6
11
|
* @param customInstructionIndex The index of the custom instruction in the transaction (e.g. if tx contains compute budget limit, compute budget price, ed25519 verify, custom ix, this would be 3).
|
|
7
12
|
* @param messageOffset The offset within the custom instruction data where the signed message begins.
|
|
8
13
|
* @param customInstructionData The entire instruction data array for the custom instruction.
|
|
14
|
+
* @param magicLen Length, in bytes, of a "magic"/tag prefix between `messageOffset` and the
|
|
15
|
+
* start of the 64-byte signature; defaults to `MAGIC_LEN` (4) if omitted.
|
|
16
|
+
* @returns A `TransactionInstruction` targeting `Ed25519Program` with no accounts, whose data
|
|
17
|
+
* encodes offsets (not copies) of the signature/pubkey/message living inside the referenced
|
|
18
|
+
* custom instruction.
|
|
9
19
|
*/
|
|
10
20
|
export declare function createMinimalEd25519VerifyIx(customInstructionIndex: number, messageOffset: number, customInstructionData: Uint8Array, magicLen?: number): TransactionInstruction;
|
|
@@ -46,12 +46,22 @@ const ED25519_INSTRUCTION_LAYOUT = BufferLayout.struct([
|
|
|
46
46
|
BufferLayout.u16('messageInstructionIndex'),
|
|
47
47
|
]);
|
|
48
48
|
/**
|
|
49
|
-
* Constructs a minimal Ed25519 verification instruction that
|
|
50
|
-
*
|
|
49
|
+
* Constructs a minimal Ed25519 verification instruction that, instead of embedding its own copy
|
|
50
|
+
* of the signature/pubkey/message, points its offsets at data already present inside another
|
|
51
|
+
* instruction in the same transaction (e.g. `postPythLazerOracleUpdate`, `placeSignedMsgTakerOrder`).
|
|
52
|
+
* This lets the native ed25519 program verify a signature the velocity program also needs to read,
|
|
53
|
+
* without duplicating the signed payload in the transaction (which would blow the size limit for
|
|
54
|
+
* larger payloads like Lazer updates). The Solana runtime requires this ed25519 verify instruction
|
|
55
|
+
* to be a sibling instruction (not a CPI) executed before the instruction that relies on it.
|
|
51
56
|
*
|
|
52
57
|
* @param customInstructionIndex The index of the custom instruction in the transaction (e.g. if tx contains compute budget limit, compute budget price, ed25519 verify, custom ix, this would be 3).
|
|
53
58
|
* @param messageOffset The offset within the custom instruction data where the signed message begins.
|
|
54
59
|
* @param customInstructionData The entire instruction data array for the custom instruction.
|
|
60
|
+
* @param magicLen Length, in bytes, of a "magic"/tag prefix between `messageOffset` and the
|
|
61
|
+
* start of the 64-byte signature; defaults to `MAGIC_LEN` (4) if omitted.
|
|
62
|
+
* @returns A `TransactionInstruction` targeting `Ed25519Program` with no accounts, whose data
|
|
63
|
+
* encodes offsets (not copies) of the signature/pubkey/message living inside the referenced
|
|
64
|
+
* custom instruction.
|
|
55
65
|
*/
|
|
56
66
|
function createMinimalEd25519VerifyIx(customInstructionIndex, messageOffset, customInstructionData, magicLen) {
|
|
57
67
|
const signatureOffset = messageOffset + (magicLen === undefined ? MAGIC_LEN : magicLen);
|
|
@@ -1 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Races `promise` against a timer, resolving to `null` instead of rejecting/hanging if `promise`
|
|
3
|
+
* doesn't settle within `timeoutMs`. `promise` itself is not cancelled — it keeps running in the
|
|
4
|
+
* background and its eventual result/rejection is discarded once the race is decided.
|
|
5
|
+
* @param promise - The promise to await.
|
|
6
|
+
* @param timeoutMs - Timeout in milliseconds.
|
|
7
|
+
* @returns `promise`'s resolved value, or `null` if it didn't settle before `timeoutMs` elapsed.
|
|
8
|
+
* Rejects if `promise` rejects before the timeout.
|
|
9
|
+
*/
|
|
1
10
|
export declare function promiseTimeout<T>(promise: Promise<T>, timeoutMs: number): Promise<T | null>;
|