@velocity-exchange/sdk 0.3.0 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +51 -0
- package/lib/browser/accounts/basicUserAccountSubscriber.d.ts +18 -0
- package/lib/browser/accounts/basicUserAccountSubscriber.js +18 -0
- package/lib/browser/accounts/basicUserStatsAccountSubscriber.d.ts +18 -0
- package/lib/browser/accounts/basicUserStatsAccountSubscriber.js +18 -0
- package/lib/browser/accounts/bulkAccountLoader.d.ts +52 -0
- package/lib/browser/accounts/bulkAccountLoader.js +51 -0
- package/lib/browser/accounts/bulkUserStatsSubscription.d.ts +9 -2
- package/lib/browser/accounts/bulkUserStatsSubscription.js +9 -2
- package/lib/browser/accounts/bulkUserSubscription.d.ts +8 -2
- package/lib/browser/accounts/bulkUserSubscription.js +8 -2
- package/lib/browser/accounts/customizedCadenceBulkAccountLoader.d.ts +37 -0
- package/lib/browser/accounts/customizedCadenceBulkAccountLoader.js +37 -0
- package/lib/browser/accounts/fetch.d.ts +59 -2
- package/lib/browser/accounts/fetch.js +57 -2
- package/lib/browser/accounts/grpcAccountSubscriber.d.ts +30 -0
- package/lib/browser/accounts/grpcAccountSubscriber.js +30 -0
- package/lib/browser/accounts/grpcInsuranceFundStakeAccountSubscriber.d.ts +16 -0
- package/lib/browser/accounts/grpcInsuranceFundStakeAccountSubscriber.js +16 -0
- package/lib/browser/accounts/grpcMultiAccountSubscriber.d.ts +60 -1
- package/lib/browser/accounts/grpcMultiAccountSubscriber.js +118 -37
- package/lib/browser/accounts/grpcMultiUserAccountSubscriber.d.ts +32 -0
- package/lib/browser/accounts/grpcMultiUserAccountSubscriber.js +40 -12
- package/lib/browser/accounts/grpcProgramAccountSubscriber.d.ts +33 -0
- package/lib/browser/accounts/grpcProgramAccountSubscriber.js +33 -0
- package/lib/browser/accounts/grpcUserAccountSubscriber.d.ts +15 -0
- package/lib/browser/accounts/grpcUserAccountSubscriber.js +15 -0
- package/lib/browser/accounts/grpcUserStatsAccountSubscriber.d.ts +15 -0
- package/lib/browser/accounts/grpcUserStatsAccountSubscriber.js +15 -0
- package/lib/browser/accounts/grpcVelocityClientAccountSubscriber.d.ts +41 -0
- package/lib/browser/accounts/grpcVelocityClientAccountSubscriber.js +41 -0
- package/lib/browser/accounts/grpcVelocityClientAccountSubscriberV2.d.ts +116 -0
- package/lib/browser/accounts/grpcVelocityClientAccountSubscriberV2.js +152 -1
- package/lib/browser/accounts/laserProgramAccountSubscriber.d.ts +34 -0
- package/lib/browser/accounts/laserProgramAccountSubscriber.js +34 -0
- package/lib/browser/accounts/oneShotUserAccountSubscriber.d.ts +19 -0
- package/lib/browser/accounts/oneShotUserAccountSubscriber.js +19 -0
- package/lib/browser/accounts/oneShotUserStatsAccountSubscriber.d.ts +19 -0
- package/lib/browser/accounts/oneShotUserStatsAccountSubscriber.js +19 -0
- package/lib/browser/accounts/pollingInsuranceFundStakeAccountSubscriber.d.ts +31 -0
- package/lib/browser/accounts/pollingInsuranceFundStakeAccountSubscriber.js +31 -0
- package/lib/browser/accounts/pollingOracleAccountSubscriber.d.ts +19 -0
- package/lib/browser/accounts/pollingOracleAccountSubscriber.js +21 -2
- package/lib/browser/accounts/pollingTokenAccountSubscriber.d.ts +22 -0
- package/lib/browser/accounts/pollingTokenAccountSubscriber.js +22 -0
- package/lib/browser/accounts/pollingUserAccountSubscriber.d.ts +32 -0
- package/lib/browser/accounts/pollingUserAccountSubscriber.js +32 -0
- package/lib/browser/accounts/pollingUserStatsAccountSubscriber.d.ts +22 -0
- package/lib/browser/accounts/pollingUserStatsAccountSubscriber.js +22 -0
- package/lib/browser/accounts/pollingVelocityClientAccountSubscriber.d.ts +83 -0
- package/lib/browser/accounts/pollingVelocityClientAccountSubscriber.js +84 -1
- package/lib/browser/accounts/testBulkAccountLoader.d.ts +8 -0
- package/lib/browser/accounts/testBulkAccountLoader.js +8 -0
- package/lib/browser/accounts/types.d.ts +149 -0
- package/lib/browser/accounts/types.js +13 -0
- package/lib/browser/accounts/utils.d.ts +18 -0
- package/lib/browser/accounts/utils.js +32 -16
- package/lib/browser/accounts/webSocketAccountSubscriber.d.ts +41 -0
- package/lib/browser/accounts/webSocketAccountSubscriber.js +41 -0
- package/lib/browser/accounts/webSocketAccountSubscriberV2.d.ts +31 -0
- package/lib/browser/accounts/webSocketAccountSubscriberV2.js +31 -23
- package/lib/browser/accounts/webSocketInsuranceFundStakeAccountSubscriber.d.ts +27 -0
- package/lib/browser/accounts/webSocketInsuranceFundStakeAccountSubscriber.js +27 -0
- package/lib/browser/accounts/webSocketProgramAccountSubscriber.d.ts +36 -0
- package/lib/browser/accounts/webSocketProgramAccountSubscriber.js +36 -0
- package/lib/browser/accounts/webSocketProgramAccountSubscriberV2.d.ts +21 -0
- package/lib/browser/accounts/webSocketProgramAccountSubscriberV2.js +25 -0
- package/lib/browser/accounts/webSocketProgramAccountsSubscriberV2.d.ts +21 -0
- package/lib/browser/accounts/webSocketProgramAccountsSubscriberV2.js +21 -0
- package/lib/browser/accounts/webSocketUserAccountSubscriber.d.ts +26 -0
- package/lib/browser/accounts/webSocketUserAccountSubscriber.js +26 -0
- package/lib/browser/accounts/webSocketUserStatsAccountSubsriber.d.ts +20 -0
- package/lib/browser/accounts/webSocketUserStatsAccountSubsriber.js +20 -0
- package/lib/browser/accounts/webSocketVelocityClientAccountSubscriber.d.ts +121 -0
- package/lib/browser/accounts/webSocketVelocityClientAccountSubscriber.js +123 -2
- package/lib/browser/accounts/webSocketVelocityClientAccountSubscriberV2.d.ts +96 -0
- package/lib/browser/accounts/webSocketVelocityClientAccountSubscriberV2.js +108 -0
- package/lib/browser/accounts/websocketProgramUserAccountSubscriber.d.ts +28 -0
- package/lib/browser/accounts/websocketProgramUserAccountSubscriber.js +33 -0
- package/lib/browser/addresses/marketAddresses.d.ts +10 -0
- package/lib/browser/addresses/marketAddresses.js +10 -0
- package/lib/browser/addresses/pda.d.ts +214 -2
- package/lib/browser/addresses/pda.js +217 -5
- package/lib/browser/adminClient.d.ts +2136 -4
- package/lib/browser/adminClient.js +2150 -4
- package/lib/browser/auctionSubscriber/auctionSubscriber.d.ts +15 -0
- package/lib/browser/auctionSubscriber/auctionSubscriber.js +15 -0
- package/lib/browser/auctionSubscriber/auctionSubscriberGrpc.d.ts +19 -0
- package/lib/browser/auctionSubscriber/auctionSubscriberGrpc.js +19 -0
- package/lib/browser/auctionSubscriber/index.d.ts +6 -0
- package/lib/browser/auctionSubscriber/index.js +6 -0
- package/lib/browser/auctionSubscriber/types.d.ts +7 -0
- package/lib/browser/blockhashSubscriber/BlockhashSubscriber.d.ts +33 -0
- package/lib/browser/blockhashSubscriber/BlockhashSubscriber.js +33 -0
- package/lib/browser/blockhashSubscriber/index.d.ts +5 -0
- package/lib/browser/blockhashSubscriber/index.js +5 -0
- package/lib/browser/blockhashSubscriber/types.d.ts +5 -0
- package/lib/browser/clock/clockSubscriber.d.ts +24 -0
- package/lib/browser/clock/clockSubscriber.js +22 -0
- package/lib/browser/config.d.ts +58 -4
- package/lib/browser/config.js +88 -21
- package/lib/browser/constants/numericConstants.d.ts +67 -0
- package/lib/browser/constants/numericConstants.js +68 -1
- package/lib/browser/constants/perpMarkets.d.ts +10 -0
- package/lib/browser/constants/perpMarkets.js +40 -908
- package/lib/browser/constants/spotMarkets.d.ts +13 -0
- package/lib/browser/constants/spotMarkets.js +16 -742
- package/lib/browser/constants/txConstants.d.ts +1 -0
- package/lib/browser/constants/txConstants.js +1 -0
- package/lib/browser/core/VelocityCore.d.ts +285 -8
- package/lib/browser/core/VelocityCore.js +281 -8
- package/lib/browser/core/instructions/deposit.d.ts +22 -0
- package/lib/browser/core/instructions/deposit.js +22 -0
- package/lib/browser/core/instructions/fill.d.ts +17 -0
- package/lib/browser/core/instructions/fill.js +17 -0
- package/lib/browser/core/instructions/funding.d.ts +12 -0
- package/lib/browser/core/instructions/funding.js +12 -0
- package/lib/browser/core/instructions/liquidation.d.ts +18 -0
- package/lib/browser/core/instructions/liquidation.js +18 -0
- package/lib/browser/core/instructions/orders.d.ts +28 -0
- package/lib/browser/core/instructions/orders.js +28 -0
- package/lib/browser/core/instructions/perpOrders.d.ts +106 -0
- package/lib/browser/core/instructions/perpOrders.js +106 -0
- package/lib/browser/core/instructions/settlement.d.ts +14 -0
- package/lib/browser/core/instructions/settlement.js +14 -0
- package/lib/browser/core/instructions/trigger.d.ts +15 -0
- package/lib/browser/core/instructions/trigger.js +15 -0
- package/lib/browser/core/instructions/withdraw.d.ts +21 -0
- package/lib/browser/core/instructions/withdraw.js +21 -0
- package/lib/browser/core/remainingAccounts.d.ts +47 -3
- package/lib/browser/core/remainingAccounts.js +20 -0
- package/lib/browser/core/signedMsg.d.ts +38 -0
- package/lib/browser/core/signedMsg.js +33 -0
- package/lib/browser/decode/customCoder.d.ts +39 -3
- package/lib/browser/decode/customCoder.js +45 -3
- package/lib/browser/decode/user.d.ts +22 -0
- package/lib/browser/decode/user.js +22 -0
- package/lib/browser/dlob/DLOB.d.ts +502 -53
- package/lib/browser/dlob/DLOB.js +540 -98
- package/lib/browser/dlob/DLOBNode.d.ts +86 -4
- package/lib/browser/dlob/DLOBNode.js +37 -4
- package/lib/browser/dlob/DLOBSubscriber.d.ts +39 -12
- package/lib/browser/dlob/DLOBSubscriber.js +42 -12
- package/lib/browser/dlob/NodeList.d.ts +69 -0
- package/lib/browser/dlob/NodeList.js +66 -0
- package/lib/browser/dlob/orderBookLevels.d.ts +106 -13
- package/lib/browser/dlob/orderBookLevels.js +84 -14
- package/lib/browser/dlob/types.d.ts +15 -0
- package/lib/browser/events/eventList.d.ts +14 -0
- package/lib/browser/events/eventList.js +14 -0
- package/lib/browser/events/eventSubscriber.d.ts +87 -10
- package/lib/browser/events/eventSubscriber.js +93 -8
- package/lib/browser/events/eventsServerLogProvider.d.ts +22 -0
- package/lib/browser/events/eventsServerLogProvider.js +27 -0
- package/lib/browser/events/fetchLogs.d.ts +31 -0
- package/lib/browser/events/fetchLogs.js +46 -1
- package/lib/browser/events/parse.d.ts +23 -0
- package/lib/browser/events/parse.js +23 -0
- package/lib/browser/events/pollingLogProvider.d.ts +24 -0
- package/lib/browser/events/pollingLogProvider.js +24 -0
- package/lib/browser/events/sort.d.ts +11 -0
- package/lib/browser/events/sort.js +12 -0
- package/lib/browser/events/txEventCache.d.ts +13 -3
- package/lib/browser/events/txEventCache.js +19 -7
- package/lib/browser/events/types.d.ts +118 -2
- package/lib/browser/events/types.js +11 -0
- package/lib/browser/events/webSocketLogProvider.d.ts +23 -0
- package/lib/browser/events/webSocketLogProvider.js +28 -0
- package/lib/browser/factory/oracleClient.js +2 -2
- package/lib/browser/idl/velocity.d.ts +4 -4
- package/lib/browser/idl/velocity.json +4 -4
- package/lib/browser/keypair.d.ts +8 -0
- package/lib/browser/keypair.js +8 -0
- package/lib/browser/marginCalculation.d.ts +134 -2
- package/lib/browser/marginCalculation.js +121 -0
- package/lib/browser/math/amm.d.ts +348 -29
- package/lib/browser/math/amm.js +310 -32
- package/lib/browser/math/auction.d.ts +95 -19
- package/lib/browser/math/auction.js +118 -28
- package/lib/browser/math/bankruptcy.d.ts +46 -0
- package/lib/browser/math/bankruptcy.js +89 -1
- package/lib/browser/math/builder.d.ts +64 -8
- package/lib/browser/math/builder.js +71 -9
- package/lib/browser/math/conversion.d.ts +21 -0
- package/lib/browser/math/conversion.js +21 -0
- package/lib/browser/math/exchangeStatus.d.ts +91 -0
- package/lib/browser/math/exchangeStatus.js +106 -3
- package/lib/browser/math/funding.d.ts +57 -20
- package/lib/browser/math/funding.js +63 -23
- package/lib/browser/math/insurance.d.ts +62 -0
- package/lib/browser/math/insurance.js +62 -0
- package/lib/browser/math/liquidation.d.ts +127 -11
- package/lib/browser/math/liquidation.js +182 -19
- package/lib/browser/math/margin.d.ts +79 -13
- package/lib/browser/math/margin.js +80 -14
- package/lib/browser/math/market.d.ts +135 -15
- package/lib/browser/math/market.js +145 -17
- package/lib/browser/math/oracles.d.ts +113 -0
- package/lib/browser/math/oracles.js +118 -1
- package/lib/browser/math/orders.d.ts +115 -10
- package/lib/browser/math/orders.js +130 -19
- package/lib/browser/math/position.d.ts +80 -33
- package/lib/browser/math/position.js +80 -33
- package/lib/browser/math/repeg.d.ts +48 -10
- package/lib/browser/math/repeg.js +48 -10
- package/lib/browser/math/spotBalance.d.ts +200 -5
- package/lib/browser/math/spotBalance.js +239 -10
- package/lib/browser/math/spotMarket.d.ts +36 -3
- package/lib/browser/math/spotMarket.js +36 -3
- package/lib/browser/math/spotPosition.d.ts +72 -0
- package/lib/browser/math/spotPosition.js +62 -0
- package/lib/browser/math/state.d.ts +31 -0
- package/lib/browser/math/state.js +31 -0
- package/lib/browser/math/superStake.d.ts +126 -2
- package/lib/browser/math/superStake.js +123 -3
- package/lib/browser/math/tiers.d.ts +29 -0
- package/lib/browser/math/tiers.js +29 -0
- package/lib/browser/math/trade.d.ts +102 -51
- package/lib/browser/math/trade.js +101 -55
- package/lib/browser/math/utils.d.ts +71 -9
- package/lib/browser/math/utils.js +71 -9
- package/lib/browser/memcmp.d.ts +94 -0
- package/lib/browser/memcmp.js +103 -2
- package/lib/browser/oracles/oracleClientCache.d.ts +16 -0
- package/lib/browser/oracles/oracleClientCache.js +16 -0
- package/lib/browser/oracles/oracleId.d.ts +31 -0
- package/lib/browser/oracles/oracleId.js +39 -8
- package/lib/browser/oracles/prelaunchOracleClient.d.ts +20 -0
- package/lib/browser/oracles/prelaunchOracleClient.js +20 -0
- package/lib/browser/oracles/pythClient.d.ts +31 -0
- package/lib/browser/oracles/pythClient.js +32 -1
- package/lib/browser/oracles/pythLazerClient.d.ts +34 -0
- package/lib/browser/oracles/pythLazerClient.js +35 -1
- package/lib/browser/oracles/quoteAssetOracleClient.d.ts +18 -0
- package/lib/browser/oracles/quoteAssetOracleClient.js +18 -0
- package/lib/browser/oracles/strictOraclePrice.d.ts +21 -0
- package/lib/browser/oracles/strictOraclePrice.js +21 -0
- package/lib/browser/oracles/types.d.ts +45 -0
- package/lib/browser/oracles/utils.d.ts +20 -0
- package/lib/browser/oracles/utils.js +20 -0
- package/lib/browser/orderParams.d.ts +42 -4
- package/lib/browser/orderParams.js +42 -4
- package/lib/browser/orderSubscriber/OrderSubscriber.d.ts +56 -0
- package/lib/browser/orderSubscriber/OrderSubscriber.js +56 -0
- package/lib/browser/orderSubscriber/PollingSubscription.d.ts +11 -0
- package/lib/browser/orderSubscriber/PollingSubscription.js +11 -0
- package/lib/browser/orderSubscriber/WebsocketSubscription.d.ts +18 -0
- package/lib/browser/orderSubscriber/WebsocketSubscription.js +18 -0
- package/lib/browser/orderSubscriber/grpcSubscription.d.ts +16 -0
- package/lib/browser/orderSubscriber/grpcSubscription.js +16 -0
- package/lib/browser/orderSubscriber/types.d.ts +9 -0
- package/lib/browser/priorityFee/averageOverSlotsStrategy.d.ts +1 -0
- package/lib/browser/priorityFee/averageOverSlotsStrategy.js +1 -0
- package/lib/browser/priorityFee/averageStrategy.d.ts +1 -0
- package/lib/browser/priorityFee/averageStrategy.js +1 -0
- package/lib/browser/priorityFee/ewmaStrategy.d.ts +10 -0
- package/lib/browser/priorityFee/ewmaStrategy.js +10 -0
- package/lib/browser/priorityFee/heliusPriorityFeeMethod.d.ts +13 -0
- package/lib/browser/priorityFee/heliusPriorityFeeMethod.js +9 -2
- package/lib/browser/priorityFee/maxOverSlotsStrategy.d.ts +1 -0
- package/lib/browser/priorityFee/maxOverSlotsStrategy.js +1 -0
- package/lib/browser/priorityFee/maxStrategy.d.ts +1 -0
- package/lib/browser/priorityFee/maxStrategy.js +1 -0
- package/lib/browser/priorityFee/priorityFeeSubscriber.d.ts +39 -0
- package/lib/browser/priorityFee/priorityFeeSubscriber.js +39 -0
- package/lib/browser/priorityFee/priorityFeeSubscriberMap.d.ts +20 -1
- package/lib/browser/priorityFee/priorityFeeSubscriberMap.js +21 -2
- package/lib/browser/priorityFee/solanaPriorityFeeMethod.d.ts +12 -0
- package/lib/browser/priorityFee/solanaPriorityFeeMethod.js +10 -0
- package/lib/browser/priorityFee/types.d.ts +32 -0
- package/lib/browser/priorityFee/types.js +5 -0
- package/lib/browser/priorityFee/velocityPriorityFeeMethod.d.ts +11 -0
- package/lib/browser/priorityFee/velocityPriorityFeeMethod.js +8 -0
- package/lib/browser/slot/SlotSubscriber.d.ts +18 -0
- package/lib/browser/slot/SlotSubscriber.js +16 -0
- package/lib/browser/slot/SlothashSubscriber.d.ts +26 -0
- package/lib/browser/slot/SlothashSubscriber.js +25 -1
- package/lib/browser/tx/baseTxSender.d.ts +163 -0
- package/lib/browser/tx/baseTxSender.js +174 -6
- package/lib/browser/tx/blockhashFetcher/baseBlockhashFetcher.d.ts +12 -0
- package/lib/browser/tx/blockhashFetcher/baseBlockhashFetcher.js +12 -0
- package/lib/browser/tx/blockhashFetcher/cachedBlockhashFetcher.d.ts +15 -0
- package/lib/browser/tx/blockhashFetcher/cachedBlockhashFetcher.js +15 -0
- package/lib/browser/tx/blockhashFetcher/types.d.ts +4 -0
- package/lib/browser/tx/fastSingleTxSender.d.ts +47 -0
- package/lib/browser/tx/fastSingleTxSender.js +48 -1
- package/lib/browser/tx/forwardOnlyTxSender.d.ts +48 -0
- package/lib/browser/tx/forwardOnlyTxSender.js +48 -0
- package/lib/browser/tx/reportTransactionError.d.ts +18 -6
- package/lib/browser/tx/reportTransactionError.js +18 -6
- package/lib/browser/tx/retryTxSender.d.ts +40 -0
- package/lib/browser/tx/retryTxSender.js +39 -0
- package/lib/browser/tx/txHandler.d.ts +146 -35
- package/lib/browser/tx/txHandler.js +132 -32
- package/lib/browser/tx/txParamProcessor.d.ts +47 -0
- package/lib/browser/tx/txParamProcessor.js +47 -0
- package/lib/browser/tx/types.d.ts +46 -0
- package/lib/browser/tx/types.js +5 -0
- package/lib/browser/tx/utils.d.ts +26 -0
- package/lib/browser/tx/utils.js +26 -0
- package/lib/browser/tx/whileValidTxSender.d.ts +82 -0
- package/lib/browser/tx/whileValidTxSender.js +81 -0
- package/lib/browser/types.d.ts +781 -13
- package/lib/browser/types.js +126 -9
- package/lib/browser/user.d.ts +645 -84
- package/lib/browser/user.js +779 -96
- package/lib/browser/userMap/PollingSubscription.d.ts +10 -0
- package/lib/browser/userMap/PollingSubscription.js +14 -2
- package/lib/browser/userMap/WebsocketSubscription.d.ts +9 -0
- package/lib/browser/userMap/WebsocketSubscription.js +9 -0
- package/lib/browser/userMap/grpcSubscription.d.ts +8 -0
- package/lib/browser/userMap/grpcSubscription.js +8 -0
- package/lib/browser/userMap/referrerMap.d.ts +72 -2
- package/lib/browser/userMap/referrerMap.js +84 -2
- package/lib/browser/userMap/revenueShareEscrowMap.d.ts +37 -10
- package/lib/browser/userMap/revenueShareEscrowMap.js +38 -11
- package/lib/browser/userMap/userMap.d.ts +81 -3
- package/lib/browser/userMap/userMap.js +81 -4
- package/lib/browser/userMap/userMapConfig.d.ts +23 -0
- package/lib/browser/userMap/userStatsMap.d.ts +22 -0
- package/lib/browser/userMap/userStatsMap.js +22 -0
- package/lib/browser/userName.d.ts +16 -0
- package/lib/browser/userName.js +16 -0
- package/lib/browser/userStats.d.ts +28 -1
- package/lib/browser/userStats.js +28 -1
- package/lib/browser/util/TransactionConfirmationManager.d.ts +33 -0
- package/lib/browser/util/TransactionConfirmationManager.js +33 -0
- package/lib/browser/util/chainClock.d.ts +24 -0
- package/lib/browser/util/chainClock.js +20 -0
- package/lib/browser/util/computeUnits.d.ts +32 -0
- package/lib/browser/util/computeUnits.js +32 -0
- package/lib/browser/util/digest.d.ts +17 -0
- package/lib/browser/util/digest.js +17 -0
- package/lib/browser/util/ed25519Utils.d.ts +12 -2
- package/lib/browser/util/ed25519Utils.js +12 -2
- package/lib/browser/util/promiseTimeout.d.ts +9 -0
- package/lib/browser/util/promiseTimeout.js +9 -0
- package/lib/browser/velocityClient.d.ts +3322 -215
- package/lib/browser/velocityClient.js +3412 -245
- package/lib/browser/wallet.d.ts +37 -0
- package/lib/browser/wallet.js +37 -0
- package/lib/node/accounts/basicUserAccountSubscriber.d.ts +18 -0
- package/lib/node/accounts/basicUserAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/basicUserAccountSubscriber.js +18 -0
- package/lib/node/accounts/basicUserStatsAccountSubscriber.d.ts +18 -0
- package/lib/node/accounts/basicUserStatsAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/basicUserStatsAccountSubscriber.js +18 -0
- package/lib/node/accounts/bulkAccountLoader.d.ts +52 -0
- package/lib/node/accounts/bulkAccountLoader.d.ts.map +1 -1
- package/lib/node/accounts/bulkAccountLoader.js +51 -0
- package/lib/node/accounts/bulkUserStatsSubscription.d.ts +9 -2
- package/lib/node/accounts/bulkUserStatsSubscription.d.ts.map +1 -1
- package/lib/node/accounts/bulkUserStatsSubscription.js +9 -2
- package/lib/node/accounts/bulkUserSubscription.d.ts +8 -2
- package/lib/node/accounts/bulkUserSubscription.d.ts.map +1 -1
- package/lib/node/accounts/bulkUserSubscription.js +8 -2
- package/lib/node/accounts/customizedCadenceBulkAccountLoader.d.ts +37 -0
- package/lib/node/accounts/customizedCadenceBulkAccountLoader.d.ts.map +1 -1
- package/lib/node/accounts/customizedCadenceBulkAccountLoader.js +37 -0
- package/lib/node/accounts/fetch.d.ts +59 -2
- package/lib/node/accounts/fetch.d.ts.map +1 -1
- package/lib/node/accounts/fetch.js +57 -2
- package/lib/node/accounts/grpcAccountSubscriber.d.ts +30 -0
- package/lib/node/accounts/grpcAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/grpcAccountSubscriber.js +30 -0
- package/lib/node/accounts/grpcInsuranceFundStakeAccountSubscriber.d.ts +16 -0
- package/lib/node/accounts/grpcInsuranceFundStakeAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/grpcInsuranceFundStakeAccountSubscriber.js +16 -0
- package/lib/node/accounts/grpcMultiAccountSubscriber.d.ts +60 -1
- package/lib/node/accounts/grpcMultiAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/grpcMultiAccountSubscriber.js +118 -37
- package/lib/node/accounts/grpcMultiUserAccountSubscriber.d.ts +32 -0
- package/lib/node/accounts/grpcMultiUserAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/grpcMultiUserAccountSubscriber.js +40 -12
- package/lib/node/accounts/grpcProgramAccountSubscriber.d.ts +33 -0
- package/lib/node/accounts/grpcProgramAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/grpcProgramAccountSubscriber.js +33 -0
- package/lib/node/accounts/grpcUserAccountSubscriber.d.ts +15 -0
- package/lib/node/accounts/grpcUserAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/grpcUserAccountSubscriber.js +15 -0
- package/lib/node/accounts/grpcUserStatsAccountSubscriber.d.ts +15 -0
- package/lib/node/accounts/grpcUserStatsAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/grpcUserStatsAccountSubscriber.js +15 -0
- package/lib/node/accounts/grpcVelocityClientAccountSubscriber.d.ts +41 -0
- package/lib/node/accounts/grpcVelocityClientAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/grpcVelocityClientAccountSubscriber.js +41 -0
- package/lib/node/accounts/grpcVelocityClientAccountSubscriberV2.d.ts +116 -0
- package/lib/node/accounts/grpcVelocityClientAccountSubscriberV2.d.ts.map +1 -1
- package/lib/node/accounts/grpcVelocityClientAccountSubscriberV2.js +152 -1
- package/lib/node/accounts/laserProgramAccountSubscriber.d.ts +34 -0
- package/lib/node/accounts/laserProgramAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/laserProgramAccountSubscriber.js +34 -0
- package/lib/node/accounts/oneShotUserAccountSubscriber.d.ts +19 -0
- package/lib/node/accounts/oneShotUserAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/oneShotUserAccountSubscriber.js +19 -0
- package/lib/node/accounts/oneShotUserStatsAccountSubscriber.d.ts +19 -0
- package/lib/node/accounts/oneShotUserStatsAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/oneShotUserStatsAccountSubscriber.js +19 -0
- package/lib/node/accounts/pollingInsuranceFundStakeAccountSubscriber.d.ts +31 -0
- package/lib/node/accounts/pollingInsuranceFundStakeAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/pollingInsuranceFundStakeAccountSubscriber.js +31 -0
- package/lib/node/accounts/pollingOracleAccountSubscriber.d.ts +19 -0
- package/lib/node/accounts/pollingOracleAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/pollingOracleAccountSubscriber.js +21 -2
- package/lib/node/accounts/pollingTokenAccountSubscriber.d.ts +22 -0
- package/lib/node/accounts/pollingTokenAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/pollingTokenAccountSubscriber.js +22 -0
- package/lib/node/accounts/pollingUserAccountSubscriber.d.ts +32 -0
- package/lib/node/accounts/pollingUserAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/pollingUserAccountSubscriber.js +32 -0
- package/lib/node/accounts/pollingUserStatsAccountSubscriber.d.ts +22 -0
- package/lib/node/accounts/pollingUserStatsAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/pollingUserStatsAccountSubscriber.js +22 -0
- package/lib/node/accounts/pollingVelocityClientAccountSubscriber.d.ts +83 -0
- package/lib/node/accounts/pollingVelocityClientAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/pollingVelocityClientAccountSubscriber.js +84 -1
- package/lib/node/accounts/testBulkAccountLoader.d.ts +8 -0
- package/lib/node/accounts/testBulkAccountLoader.d.ts.map +1 -1
- package/lib/node/accounts/testBulkAccountLoader.js +8 -0
- package/lib/node/accounts/types.d.ts +149 -0
- package/lib/node/accounts/types.d.ts.map +1 -1
- package/lib/node/accounts/types.js +13 -0
- package/lib/node/accounts/utils.d.ts +18 -0
- package/lib/node/accounts/utils.d.ts.map +1 -1
- package/lib/node/accounts/utils.js +32 -16
- package/lib/node/accounts/webSocketAccountSubscriber.d.ts +41 -0
- package/lib/node/accounts/webSocketAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/webSocketAccountSubscriber.js +41 -0
- package/lib/node/accounts/webSocketAccountSubscriberV2.d.ts +31 -0
- package/lib/node/accounts/webSocketAccountSubscriberV2.d.ts.map +1 -1
- package/lib/node/accounts/webSocketAccountSubscriberV2.js +31 -23
- package/lib/node/accounts/webSocketInsuranceFundStakeAccountSubscriber.d.ts +27 -0
- package/lib/node/accounts/webSocketInsuranceFundStakeAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/webSocketInsuranceFundStakeAccountSubscriber.js +27 -0
- package/lib/node/accounts/webSocketProgramAccountSubscriber.d.ts +36 -0
- package/lib/node/accounts/webSocketProgramAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/webSocketProgramAccountSubscriber.js +36 -0
- package/lib/node/accounts/webSocketProgramAccountSubscriberV2.d.ts +21 -0
- package/lib/node/accounts/webSocketProgramAccountSubscriberV2.d.ts.map +1 -1
- package/lib/node/accounts/webSocketProgramAccountSubscriberV2.js +25 -0
- package/lib/node/accounts/webSocketProgramAccountsSubscriberV2.d.ts +21 -0
- package/lib/node/accounts/webSocketProgramAccountsSubscriberV2.d.ts.map +1 -1
- package/lib/node/accounts/webSocketProgramAccountsSubscriberV2.js +21 -0
- package/lib/node/accounts/webSocketUserAccountSubscriber.d.ts +26 -0
- package/lib/node/accounts/webSocketUserAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/webSocketUserAccountSubscriber.js +26 -0
- package/lib/node/accounts/webSocketUserStatsAccountSubsriber.d.ts +20 -0
- package/lib/node/accounts/webSocketUserStatsAccountSubsriber.d.ts.map +1 -1
- package/lib/node/accounts/webSocketUserStatsAccountSubsriber.js +20 -0
- package/lib/node/accounts/webSocketVelocityClientAccountSubscriber.d.ts +121 -0
- package/lib/node/accounts/webSocketVelocityClientAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/webSocketVelocityClientAccountSubscriber.js +123 -2
- package/lib/node/accounts/webSocketVelocityClientAccountSubscriberV2.d.ts +96 -0
- package/lib/node/accounts/webSocketVelocityClientAccountSubscriberV2.d.ts.map +1 -1
- package/lib/node/accounts/webSocketVelocityClientAccountSubscriberV2.js +108 -0
- package/lib/node/accounts/websocketProgramUserAccountSubscriber.d.ts +28 -0
- package/lib/node/accounts/websocketProgramUserAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/websocketProgramUserAccountSubscriber.js +33 -0
- package/lib/node/addresses/marketAddresses.d.ts +10 -0
- package/lib/node/addresses/marketAddresses.d.ts.map +1 -1
- package/lib/node/addresses/marketAddresses.js +10 -0
- package/lib/node/addresses/pda.d.ts +214 -2
- package/lib/node/addresses/pda.d.ts.map +1 -1
- package/lib/node/addresses/pda.js +217 -5
- package/lib/node/adminClient.d.ts +2136 -4
- package/lib/node/adminClient.d.ts.map +1 -1
- package/lib/node/adminClient.js +2150 -4
- package/lib/node/auctionSubscriber/auctionSubscriber.d.ts +15 -0
- package/lib/node/auctionSubscriber/auctionSubscriber.d.ts.map +1 -1
- package/lib/node/auctionSubscriber/auctionSubscriber.js +15 -0
- package/lib/node/auctionSubscriber/auctionSubscriberGrpc.d.ts +19 -0
- package/lib/node/auctionSubscriber/auctionSubscriberGrpc.d.ts.map +1 -1
- package/lib/node/auctionSubscriber/auctionSubscriberGrpc.js +19 -0
- package/lib/node/auctionSubscriber/index.d.ts +6 -0
- package/lib/node/auctionSubscriber/index.d.ts.map +1 -1
- package/lib/node/auctionSubscriber/index.js +6 -0
- package/lib/node/auctionSubscriber/types.d.ts +7 -0
- package/lib/node/auctionSubscriber/types.d.ts.map +1 -1
- package/lib/node/blockhashSubscriber/BlockhashSubscriber.d.ts +33 -0
- package/lib/node/blockhashSubscriber/BlockhashSubscriber.d.ts.map +1 -1
- package/lib/node/blockhashSubscriber/BlockhashSubscriber.js +33 -0
- package/lib/node/blockhashSubscriber/index.d.ts +5 -0
- package/lib/node/blockhashSubscriber/index.d.ts.map +1 -1
- package/lib/node/blockhashSubscriber/index.js +5 -0
- package/lib/node/blockhashSubscriber/types.d.ts +5 -0
- package/lib/node/blockhashSubscriber/types.d.ts.map +1 -1
- package/lib/node/clock/clockSubscriber.d.ts +24 -0
- package/lib/node/clock/clockSubscriber.d.ts.map +1 -1
- package/lib/node/clock/clockSubscriber.js +22 -0
- package/lib/node/config.d.ts +58 -4
- package/lib/node/config.d.ts.map +1 -1
- package/lib/node/config.js +88 -21
- package/lib/node/constants/numericConstants.d.ts +67 -0
- package/lib/node/constants/numericConstants.d.ts.map +1 -1
- package/lib/node/constants/numericConstants.js +68 -1
- package/lib/node/constants/perpMarkets.d.ts +10 -0
- package/lib/node/constants/perpMarkets.d.ts.map +1 -1
- package/lib/node/constants/perpMarkets.js +40 -908
- package/lib/node/constants/spotMarkets.d.ts +13 -0
- package/lib/node/constants/spotMarkets.d.ts.map +1 -1
- package/lib/node/constants/spotMarkets.js +16 -742
- package/lib/node/constants/txConstants.d.ts +1 -0
- package/lib/node/constants/txConstants.d.ts.map +1 -1
- package/lib/node/constants/txConstants.js +1 -0
- package/lib/node/core/VelocityCore.d.ts +285 -8
- package/lib/node/core/VelocityCore.d.ts.map +1 -1
- package/lib/node/core/VelocityCore.js +281 -8
- package/lib/node/core/instructions/deposit.d.ts +22 -0
- package/lib/node/core/instructions/deposit.d.ts.map +1 -1
- package/lib/node/core/instructions/deposit.js +22 -0
- package/lib/node/core/instructions/fill.d.ts +17 -0
- package/lib/node/core/instructions/fill.d.ts.map +1 -1
- package/lib/node/core/instructions/fill.js +17 -0
- package/lib/node/core/instructions/funding.d.ts +12 -0
- package/lib/node/core/instructions/funding.d.ts.map +1 -1
- package/lib/node/core/instructions/funding.js +12 -0
- package/lib/node/core/instructions/liquidation.d.ts +18 -0
- package/lib/node/core/instructions/liquidation.d.ts.map +1 -1
- package/lib/node/core/instructions/liquidation.js +18 -0
- package/lib/node/core/instructions/orders.d.ts +28 -0
- package/lib/node/core/instructions/orders.d.ts.map +1 -1
- package/lib/node/core/instructions/orders.js +28 -0
- package/lib/node/core/instructions/perpOrders.d.ts +106 -0
- package/lib/node/core/instructions/perpOrders.d.ts.map +1 -1
- package/lib/node/core/instructions/perpOrders.js +106 -0
- package/lib/node/core/instructions/settlement.d.ts +14 -0
- package/lib/node/core/instructions/settlement.d.ts.map +1 -1
- package/lib/node/core/instructions/settlement.js +14 -0
- package/lib/node/core/instructions/trigger.d.ts +15 -0
- package/lib/node/core/instructions/trigger.d.ts.map +1 -1
- package/lib/node/core/instructions/trigger.js +15 -0
- package/lib/node/core/instructions/withdraw.d.ts +21 -0
- package/lib/node/core/instructions/withdraw.d.ts.map +1 -1
- package/lib/node/core/instructions/withdraw.js +21 -0
- package/lib/node/core/remainingAccounts.d.ts +47 -3
- package/lib/node/core/remainingAccounts.d.ts.map +1 -1
- package/lib/node/core/remainingAccounts.js +20 -0
- package/lib/node/core/signedMsg.d.ts +38 -0
- package/lib/node/core/signedMsg.d.ts.map +1 -1
- package/lib/node/core/signedMsg.js +33 -0
- package/lib/node/decode/customCoder.d.ts +39 -3
- package/lib/node/decode/customCoder.d.ts.map +1 -1
- package/lib/node/decode/customCoder.js +45 -3
- package/lib/node/decode/user.d.ts +22 -0
- package/lib/node/decode/user.d.ts.map +1 -1
- package/lib/node/decode/user.js +22 -0
- package/lib/node/dlob/DLOB.d.ts +502 -53
- package/lib/node/dlob/DLOB.d.ts.map +1 -1
- package/lib/node/dlob/DLOB.js +540 -98
- package/lib/node/dlob/DLOBNode.d.ts +86 -4
- package/lib/node/dlob/DLOBNode.d.ts.map +1 -1
- package/lib/node/dlob/DLOBNode.js +37 -4
- package/lib/node/dlob/DLOBSubscriber.d.ts +39 -12
- package/lib/node/dlob/DLOBSubscriber.d.ts.map +1 -1
- package/lib/node/dlob/DLOBSubscriber.js +42 -12
- package/lib/node/dlob/NodeList.d.ts +69 -0
- package/lib/node/dlob/NodeList.d.ts.map +1 -1
- package/lib/node/dlob/NodeList.js +66 -0
- package/lib/node/dlob/orderBookLevels.d.ts +106 -13
- package/lib/node/dlob/orderBookLevels.d.ts.map +1 -1
- package/lib/node/dlob/orderBookLevels.js +84 -14
- package/lib/node/dlob/types.d.ts +15 -0
- package/lib/node/dlob/types.d.ts.map +1 -1
- package/lib/node/events/eventList.d.ts +14 -0
- package/lib/node/events/eventList.d.ts.map +1 -1
- package/lib/node/events/eventList.js +14 -0
- package/lib/node/events/eventSubscriber.d.ts +87 -10
- package/lib/node/events/eventSubscriber.d.ts.map +1 -1
- package/lib/node/events/eventSubscriber.js +93 -8
- package/lib/node/events/eventsServerLogProvider.d.ts +22 -0
- package/lib/node/events/eventsServerLogProvider.d.ts.map +1 -1
- package/lib/node/events/eventsServerLogProvider.js +27 -0
- package/lib/node/events/fetchLogs.d.ts +31 -0
- package/lib/node/events/fetchLogs.d.ts.map +1 -1
- package/lib/node/events/fetchLogs.js +46 -1
- package/lib/node/events/parse.d.ts +23 -0
- package/lib/node/events/parse.d.ts.map +1 -1
- package/lib/node/events/parse.js +23 -0
- package/lib/node/events/pollingLogProvider.d.ts +24 -0
- package/lib/node/events/pollingLogProvider.d.ts.map +1 -1
- package/lib/node/events/pollingLogProvider.js +24 -0
- package/lib/node/events/sort.d.ts +11 -0
- package/lib/node/events/sort.d.ts.map +1 -1
- package/lib/node/events/sort.js +12 -0
- package/lib/node/events/txEventCache.d.ts +13 -3
- package/lib/node/events/txEventCache.d.ts.map +1 -1
- package/lib/node/events/txEventCache.js +19 -7
- package/lib/node/events/types.d.ts +118 -2
- package/lib/node/events/types.d.ts.map +1 -1
- package/lib/node/events/types.js +11 -0
- package/lib/node/events/webSocketLogProvider.d.ts +23 -0
- package/lib/node/events/webSocketLogProvider.d.ts.map +1 -1
- package/lib/node/events/webSocketLogProvider.js +28 -0
- package/lib/node/factory/oracleClient.js +2 -2
- package/lib/node/idl/velocity.d.ts +4 -4
- package/lib/node/idl/velocity.d.ts.map +1 -1
- package/lib/node/idl/velocity.json +4 -4
- package/lib/node/keypair.d.ts +8 -0
- package/lib/node/keypair.d.ts.map +1 -1
- package/lib/node/keypair.js +8 -0
- package/lib/node/marginCalculation.d.ts +134 -2
- package/lib/node/marginCalculation.d.ts.map +1 -1
- package/lib/node/marginCalculation.js +121 -0
- package/lib/node/math/amm.d.ts +348 -29
- package/lib/node/math/amm.d.ts.map +1 -1
- package/lib/node/math/amm.js +310 -32
- package/lib/node/math/auction.d.ts +95 -19
- package/lib/node/math/auction.d.ts.map +1 -1
- package/lib/node/math/auction.js +118 -28
- package/lib/node/math/bankruptcy.d.ts +46 -0
- package/lib/node/math/bankruptcy.d.ts.map +1 -1
- package/lib/node/math/bankruptcy.js +89 -1
- package/lib/node/math/builder.d.ts +64 -8
- package/lib/node/math/builder.d.ts.map +1 -1
- package/lib/node/math/builder.js +71 -9
- package/lib/node/math/conversion.d.ts +21 -0
- package/lib/node/math/conversion.d.ts.map +1 -1
- package/lib/node/math/conversion.js +21 -0
- package/lib/node/math/exchangeStatus.d.ts +91 -0
- package/lib/node/math/exchangeStatus.d.ts.map +1 -1
- package/lib/node/math/exchangeStatus.js +106 -3
- package/lib/node/math/funding.d.ts +57 -20
- package/lib/node/math/funding.d.ts.map +1 -1
- package/lib/node/math/funding.js +63 -23
- package/lib/node/math/insurance.d.ts +62 -0
- package/lib/node/math/insurance.d.ts.map +1 -1
- package/lib/node/math/insurance.js +62 -0
- package/lib/node/math/liquidation.d.ts +127 -11
- package/lib/node/math/liquidation.d.ts.map +1 -1
- package/lib/node/math/liquidation.js +182 -19
- package/lib/node/math/margin.d.ts +79 -13
- package/lib/node/math/margin.d.ts.map +1 -1
- package/lib/node/math/margin.js +80 -14
- package/lib/node/math/market.d.ts +135 -15
- package/lib/node/math/market.d.ts.map +1 -1
- package/lib/node/math/market.js +145 -17
- package/lib/node/math/oracles.d.ts +113 -0
- package/lib/node/math/oracles.d.ts.map +1 -1
- package/lib/node/math/oracles.js +118 -1
- package/lib/node/math/orders.d.ts +115 -10
- package/lib/node/math/orders.d.ts.map +1 -1
- package/lib/node/math/orders.js +130 -19
- package/lib/node/math/position.d.ts +80 -33
- package/lib/node/math/position.d.ts.map +1 -1
- package/lib/node/math/position.js +80 -33
- package/lib/node/math/repeg.d.ts +48 -10
- package/lib/node/math/repeg.d.ts.map +1 -1
- package/lib/node/math/repeg.js +48 -10
- package/lib/node/math/spotBalance.d.ts +200 -5
- package/lib/node/math/spotBalance.d.ts.map +1 -1
- package/lib/node/math/spotBalance.js +239 -10
- package/lib/node/math/spotMarket.d.ts +36 -3
- package/lib/node/math/spotMarket.d.ts.map +1 -1
- package/lib/node/math/spotMarket.js +36 -3
- package/lib/node/math/spotPosition.d.ts +72 -0
- package/lib/node/math/spotPosition.d.ts.map +1 -1
- package/lib/node/math/spotPosition.js +62 -0
- package/lib/node/math/state.d.ts +31 -0
- package/lib/node/math/state.d.ts.map +1 -1
- package/lib/node/math/state.js +31 -0
- package/lib/node/math/superStake.d.ts +126 -2
- package/lib/node/math/superStake.d.ts.map +1 -1
- package/lib/node/math/superStake.js +123 -3
- package/lib/node/math/tiers.d.ts +29 -0
- package/lib/node/math/tiers.d.ts.map +1 -1
- package/lib/node/math/tiers.js +29 -0
- package/lib/node/math/trade.d.ts +102 -51
- package/lib/node/math/trade.d.ts.map +1 -1
- package/lib/node/math/trade.js +101 -55
- package/lib/node/math/utils.d.ts +71 -9
- package/lib/node/math/utils.d.ts.map +1 -1
- package/lib/node/math/utils.js +71 -9
- package/lib/node/memcmp.d.ts +94 -0
- package/lib/node/memcmp.d.ts.map +1 -1
- package/lib/node/memcmp.js +103 -2
- package/lib/node/oracles/oracleClientCache.d.ts +16 -0
- package/lib/node/oracles/oracleClientCache.d.ts.map +1 -1
- package/lib/node/oracles/oracleClientCache.js +16 -0
- package/lib/node/oracles/oracleId.d.ts +31 -0
- package/lib/node/oracles/oracleId.d.ts.map +1 -1
- package/lib/node/oracles/oracleId.js +39 -8
- package/lib/node/oracles/prelaunchOracleClient.d.ts +20 -0
- package/lib/node/oracles/prelaunchOracleClient.d.ts.map +1 -1
- package/lib/node/oracles/prelaunchOracleClient.js +20 -0
- package/lib/node/oracles/pythClient.d.ts +31 -0
- package/lib/node/oracles/pythClient.d.ts.map +1 -1
- package/lib/node/oracles/pythClient.js +32 -1
- package/lib/node/oracles/pythLazerClient.d.ts +34 -0
- package/lib/node/oracles/pythLazerClient.d.ts.map +1 -1
- package/lib/node/oracles/pythLazerClient.js +35 -1
- package/lib/node/oracles/quoteAssetOracleClient.d.ts +18 -0
- package/lib/node/oracles/quoteAssetOracleClient.d.ts.map +1 -1
- package/lib/node/oracles/quoteAssetOracleClient.js +18 -0
- package/lib/node/oracles/strictOraclePrice.d.ts +21 -0
- package/lib/node/oracles/strictOraclePrice.d.ts.map +1 -1
- package/lib/node/oracles/strictOraclePrice.js +21 -0
- package/lib/node/oracles/types.d.ts +45 -0
- package/lib/node/oracles/types.d.ts.map +1 -1
- package/lib/node/oracles/utils.d.ts +20 -0
- package/lib/node/oracles/utils.d.ts.map +1 -1
- package/lib/node/oracles/utils.js +20 -0
- package/lib/node/orderParams.d.ts +42 -4
- package/lib/node/orderParams.d.ts.map +1 -1
- package/lib/node/orderParams.js +42 -4
- package/lib/node/orderSubscriber/OrderSubscriber.d.ts +56 -0
- package/lib/node/orderSubscriber/OrderSubscriber.d.ts.map +1 -1
- package/lib/node/orderSubscriber/OrderSubscriber.js +56 -0
- package/lib/node/orderSubscriber/PollingSubscription.d.ts +11 -0
- package/lib/node/orderSubscriber/PollingSubscription.d.ts.map +1 -1
- package/lib/node/orderSubscriber/PollingSubscription.js +11 -0
- package/lib/node/orderSubscriber/WebsocketSubscription.d.ts +18 -0
- package/lib/node/orderSubscriber/WebsocketSubscription.d.ts.map +1 -1
- package/lib/node/orderSubscriber/WebsocketSubscription.js +18 -0
- package/lib/node/orderSubscriber/grpcSubscription.d.ts +16 -0
- package/lib/node/orderSubscriber/grpcSubscription.d.ts.map +1 -1
- package/lib/node/orderSubscriber/grpcSubscription.js +16 -0
- package/lib/node/orderSubscriber/types.d.ts +9 -0
- package/lib/node/orderSubscriber/types.d.ts.map +1 -1
- package/lib/node/priorityFee/averageOverSlotsStrategy.d.ts +1 -0
- package/lib/node/priorityFee/averageOverSlotsStrategy.d.ts.map +1 -1
- package/lib/node/priorityFee/averageOverSlotsStrategy.js +1 -0
- package/lib/node/priorityFee/averageStrategy.d.ts +1 -0
- package/lib/node/priorityFee/averageStrategy.d.ts.map +1 -1
- package/lib/node/priorityFee/averageStrategy.js +1 -0
- package/lib/node/priorityFee/ewmaStrategy.d.ts +10 -0
- package/lib/node/priorityFee/ewmaStrategy.d.ts.map +1 -1
- package/lib/node/priorityFee/ewmaStrategy.js +10 -0
- package/lib/node/priorityFee/heliusPriorityFeeMethod.d.ts +13 -0
- package/lib/node/priorityFee/heliusPriorityFeeMethod.d.ts.map +1 -1
- package/lib/node/priorityFee/heliusPriorityFeeMethod.js +9 -2
- package/lib/node/priorityFee/maxOverSlotsStrategy.d.ts +1 -0
- package/lib/node/priorityFee/maxOverSlotsStrategy.d.ts.map +1 -1
- package/lib/node/priorityFee/maxOverSlotsStrategy.js +1 -0
- package/lib/node/priorityFee/maxStrategy.d.ts +1 -0
- package/lib/node/priorityFee/maxStrategy.d.ts.map +1 -1
- package/lib/node/priorityFee/maxStrategy.js +1 -0
- package/lib/node/priorityFee/priorityFeeSubscriber.d.ts +39 -0
- package/lib/node/priorityFee/priorityFeeSubscriber.d.ts.map +1 -1
- package/lib/node/priorityFee/priorityFeeSubscriber.js +39 -0
- package/lib/node/priorityFee/priorityFeeSubscriberMap.d.ts +20 -1
- package/lib/node/priorityFee/priorityFeeSubscriberMap.d.ts.map +1 -1
- package/lib/node/priorityFee/priorityFeeSubscriberMap.js +21 -2
- package/lib/node/priorityFee/solanaPriorityFeeMethod.d.ts +12 -0
- package/lib/node/priorityFee/solanaPriorityFeeMethod.d.ts.map +1 -1
- package/lib/node/priorityFee/solanaPriorityFeeMethod.js +10 -0
- package/lib/node/priorityFee/types.d.ts +32 -0
- package/lib/node/priorityFee/types.d.ts.map +1 -1
- package/lib/node/priorityFee/types.js +5 -0
- package/lib/node/priorityFee/velocityPriorityFeeMethod.d.ts +11 -0
- package/lib/node/priorityFee/velocityPriorityFeeMethod.d.ts.map +1 -1
- package/lib/node/priorityFee/velocityPriorityFeeMethod.js +8 -0
- package/lib/node/slot/SlotSubscriber.d.ts +18 -0
- package/lib/node/slot/SlotSubscriber.d.ts.map +1 -1
- package/lib/node/slot/SlotSubscriber.js +16 -0
- package/lib/node/slot/SlothashSubscriber.d.ts +26 -0
- package/lib/node/slot/SlothashSubscriber.d.ts.map +1 -1
- package/lib/node/slot/SlothashSubscriber.js +25 -1
- package/lib/node/tx/baseTxSender.d.ts +163 -0
- package/lib/node/tx/baseTxSender.d.ts.map +1 -1
- package/lib/node/tx/baseTxSender.js +174 -6
- package/lib/node/tx/blockhashFetcher/baseBlockhashFetcher.d.ts +12 -0
- package/lib/node/tx/blockhashFetcher/baseBlockhashFetcher.d.ts.map +1 -1
- package/lib/node/tx/blockhashFetcher/baseBlockhashFetcher.js +12 -0
- package/lib/node/tx/blockhashFetcher/cachedBlockhashFetcher.d.ts +15 -0
- package/lib/node/tx/blockhashFetcher/cachedBlockhashFetcher.d.ts.map +1 -1
- package/lib/node/tx/blockhashFetcher/cachedBlockhashFetcher.js +15 -0
- package/lib/node/tx/blockhashFetcher/types.d.ts +4 -0
- package/lib/node/tx/blockhashFetcher/types.d.ts.map +1 -1
- package/lib/node/tx/fastSingleTxSender.d.ts +47 -0
- package/lib/node/tx/fastSingleTxSender.d.ts.map +1 -1
- package/lib/node/tx/fastSingleTxSender.js +48 -1
- package/lib/node/tx/forwardOnlyTxSender.d.ts +48 -0
- package/lib/node/tx/forwardOnlyTxSender.d.ts.map +1 -1
- package/lib/node/tx/forwardOnlyTxSender.js +48 -0
- package/lib/node/tx/reportTransactionError.d.ts +18 -6
- package/lib/node/tx/reportTransactionError.d.ts.map +1 -1
- package/lib/node/tx/reportTransactionError.js +18 -6
- package/lib/node/tx/retryTxSender.d.ts +40 -0
- package/lib/node/tx/retryTxSender.d.ts.map +1 -1
- package/lib/node/tx/retryTxSender.js +39 -0
- package/lib/node/tx/txHandler.d.ts +146 -35
- package/lib/node/tx/txHandler.d.ts.map +1 -1
- package/lib/node/tx/txHandler.js +132 -32
- package/lib/node/tx/txParamProcessor.d.ts +47 -0
- package/lib/node/tx/txParamProcessor.d.ts.map +1 -1
- package/lib/node/tx/txParamProcessor.js +47 -0
- package/lib/node/tx/types.d.ts +46 -0
- package/lib/node/tx/types.d.ts.map +1 -1
- package/lib/node/tx/types.js +5 -0
- package/lib/node/tx/utils.d.ts +26 -0
- package/lib/node/tx/utils.d.ts.map +1 -1
- package/lib/node/tx/utils.js +26 -0
- package/lib/node/tx/whileValidTxSender.d.ts +82 -0
- package/lib/node/tx/whileValidTxSender.d.ts.map +1 -1
- package/lib/node/tx/whileValidTxSender.js +81 -0
- package/lib/node/types.d.ts +781 -13
- package/lib/node/types.d.ts.map +1 -1
- package/lib/node/types.js +126 -9
- package/lib/node/user.d.ts +645 -84
- package/lib/node/user.d.ts.map +1 -1
- package/lib/node/user.js +779 -96
- package/lib/node/userMap/PollingSubscription.d.ts +10 -0
- package/lib/node/userMap/PollingSubscription.d.ts.map +1 -1
- package/lib/node/userMap/PollingSubscription.js +14 -2
- package/lib/node/userMap/WebsocketSubscription.d.ts +9 -0
- package/lib/node/userMap/WebsocketSubscription.d.ts.map +1 -1
- package/lib/node/userMap/WebsocketSubscription.js +9 -0
- package/lib/node/userMap/grpcSubscription.d.ts +8 -0
- package/lib/node/userMap/grpcSubscription.d.ts.map +1 -1
- package/lib/node/userMap/grpcSubscription.js +8 -0
- package/lib/node/userMap/referrerMap.d.ts +72 -2
- package/lib/node/userMap/referrerMap.d.ts.map +1 -1
- package/lib/node/userMap/referrerMap.js +84 -2
- package/lib/node/userMap/revenueShareEscrowMap.d.ts +37 -10
- package/lib/node/userMap/revenueShareEscrowMap.d.ts.map +1 -1
- package/lib/node/userMap/revenueShareEscrowMap.js +38 -11
- package/lib/node/userMap/userMap.d.ts +81 -3
- package/lib/node/userMap/userMap.d.ts.map +1 -1
- package/lib/node/userMap/userMap.js +81 -4
- package/lib/node/userMap/userMapConfig.d.ts +23 -0
- package/lib/node/userMap/userMapConfig.d.ts.map +1 -1
- package/lib/node/userMap/userStatsMap.d.ts +22 -0
- package/lib/node/userMap/userStatsMap.d.ts.map +1 -1
- package/lib/node/userMap/userStatsMap.js +22 -0
- package/lib/node/userName.d.ts +16 -0
- package/lib/node/userName.d.ts.map +1 -1
- package/lib/node/userName.js +16 -0
- package/lib/node/userStats.d.ts +28 -1
- package/lib/node/userStats.d.ts.map +1 -1
- package/lib/node/userStats.js +28 -1
- package/lib/node/util/TransactionConfirmationManager.d.ts +33 -0
- package/lib/node/util/TransactionConfirmationManager.d.ts.map +1 -1
- package/lib/node/util/TransactionConfirmationManager.js +33 -0
- package/lib/node/util/chainClock.d.ts +24 -0
- package/lib/node/util/chainClock.d.ts.map +1 -1
- package/lib/node/util/chainClock.js +20 -0
- package/lib/node/util/computeUnits.d.ts +32 -0
- package/lib/node/util/computeUnits.d.ts.map +1 -1
- package/lib/node/util/computeUnits.js +32 -0
- package/lib/node/util/digest.d.ts +17 -0
- package/lib/node/util/digest.d.ts.map +1 -1
- package/lib/node/util/digest.js +17 -0
- package/lib/node/util/ed25519Utils.d.ts +12 -2
- package/lib/node/util/ed25519Utils.d.ts.map +1 -1
- package/lib/node/util/ed25519Utils.js +12 -2
- package/lib/node/util/promiseTimeout.d.ts +9 -0
- package/lib/node/util/promiseTimeout.d.ts.map +1 -1
- package/lib/node/util/promiseTimeout.js +9 -0
- package/lib/node/velocityClient.d.ts +3322 -215
- package/lib/node/velocityClient.d.ts.map +1 -1
- package/lib/node/velocityClient.js +3412 -245
- package/lib/node/wallet.d.ts +37 -0
- package/lib/node/wallet.d.ts.map +1 -1
- package/lib/node/wallet.js +37 -0
- package/package.json +2 -1
- package/src/accounts/basicUserAccountSubscriber.ts +18 -0
- package/src/accounts/basicUserStatsAccountSubscriber.ts +18 -0
- package/src/accounts/bulkAccountLoader.ts +52 -0
- package/src/accounts/bulkUserStatsSubscription.ts +9 -2
- package/src/accounts/bulkUserSubscription.ts +8 -2
- package/src/accounts/customizedCadenceBulkAccountLoader.ts +37 -0
- package/src/accounts/fetch.ts +59 -2
- package/src/accounts/grpcAccountSubscriber.ts +30 -0
- package/src/accounts/grpcInsuranceFundStakeAccountSubscriber.ts +16 -0
- package/src/accounts/grpcMultiAccountSubscriber.ts +121 -38
- package/src/accounts/grpcMultiUserAccountSubscriber.ts +49 -11
- package/src/accounts/grpcProgramAccountSubscriber.ts +33 -0
- package/src/accounts/grpcUserAccountSubscriber.ts +15 -0
- package/src/accounts/grpcUserStatsAccountSubscriber.ts +15 -0
- package/src/accounts/grpcVelocityClientAccountSubscriber.ts +41 -0
- package/src/accounts/grpcVelocityClientAccountSubscriberV2.ts +160 -1
- package/src/accounts/laserProgramAccountSubscriber.ts +34 -0
- package/src/accounts/oneShotUserAccountSubscriber.ts +19 -0
- package/src/accounts/oneShotUserStatsAccountSubscriber.ts +19 -0
- package/src/accounts/pollingInsuranceFundStakeAccountSubscriber.ts +31 -0
- package/src/accounts/pollingOracleAccountSubscriber.ts +21 -2
- package/src/accounts/pollingTokenAccountSubscriber.ts +22 -0
- package/src/accounts/pollingUserAccountSubscriber.ts +32 -0
- package/src/accounts/pollingUserStatsAccountSubscriber.ts +22 -0
- package/src/accounts/pollingVelocityClientAccountSubscriber.ts +84 -1
- package/src/accounts/testBulkAccountLoader.ts +8 -0
- package/src/accounts/types.ts +149 -0
- package/src/accounts/utils.ts +42 -24
- package/src/accounts/webSocketAccountSubscriber.ts +41 -0
- package/src/accounts/webSocketAccountSubscriberV2.ts +31 -23
- package/src/accounts/webSocketInsuranceFundStakeAccountSubscriber.ts +27 -0
- package/src/accounts/webSocketProgramAccountSubscriber.ts +36 -0
- package/src/accounts/webSocketProgramAccountSubscriberV2.ts +26 -0
- package/src/accounts/webSocketProgramAccountsSubscriberV2.ts +21 -0
- package/src/accounts/webSocketUserAccountSubscriber.ts +26 -0
- package/src/accounts/webSocketUserStatsAccountSubsriber.ts +20 -0
- package/src/accounts/webSocketVelocityClientAccountSubscriber.ts +127 -2
- package/src/accounts/webSocketVelocityClientAccountSubscriberV2.ts +110 -0
- package/src/accounts/websocketProgramUserAccountSubscriber.ts +33 -0
- package/src/addresses/marketAddresses.ts +10 -0
- package/src/addresses/pda.ts +228 -12
- package/src/adminClient.ts +2156 -4
- package/src/auctionSubscriber/auctionSubscriber.ts +15 -0
- package/src/auctionSubscriber/auctionSubscriberGrpc.ts +19 -0
- package/src/auctionSubscriber/index.ts +6 -0
- package/src/auctionSubscriber/types.ts +7 -0
- package/src/blockhashSubscriber/BlockhashSubscriber.ts +33 -0
- package/src/blockhashSubscriber/index.ts +5 -0
- package/src/blockhashSubscriber/types.ts +5 -4
- package/src/clock/clockSubscriber.ts +24 -0
- package/src/config.ts +109 -22
- package/src/constants/numericConstants.ts +70 -0
- package/src/constants/perpMarkets.ts +45 -960
- package/src/constants/spotMarkets.ts +23 -793
- package/src/constants/txConstants.ts +1 -0
- package/src/core/VelocityCore.ts +286 -8
- package/src/core/instructions/deposit.ts +22 -0
- package/src/core/instructions/fill.ts +17 -0
- package/src/core/instructions/funding.ts +12 -0
- package/src/core/instructions/liquidation.ts +18 -0
- package/src/core/instructions/orders.ts +28 -0
- package/src/core/instructions/perpOrders.ts +106 -0
- package/src/core/instructions/settlement.ts +14 -0
- package/src/core/instructions/trigger.ts +15 -0
- package/src/core/instructions/withdraw.ts +21 -0
- package/src/core/remainingAccounts.ts +47 -3
- package/src/core/signedMsg.ts +38 -0
- package/src/decode/customCoder.ts +46 -3
- package/src/decode/user.ts +22 -0
- package/src/dlob/DLOB.ts +668 -97
- package/src/dlob/DLOBNode.ts +98 -6
- package/src/dlob/DLOBSubscriber.ts +49 -12
- package/src/dlob/NodeList.ts +69 -0
- package/src/dlob/orderBookLevels.ts +108 -14
- package/src/dlob/types.ts +15 -0
- package/src/events/eventList.ts +14 -0
- package/src/events/eventSubscriber.ts +100 -19
- package/src/events/eventsServerLogProvider.ts +28 -0
- package/src/events/fetchLogs.ts +52 -2
- package/src/events/parse.ts +23 -0
- package/src/events/pollingLogProvider.ts +24 -0
- package/src/events/sort.ts +12 -0
- package/src/events/txEventCache.ts +19 -7
- package/src/events/types.ts +131 -11
- package/src/events/webSocketLogProvider.ts +29 -0
- package/src/factory/oracleClient.ts +2 -2
- package/src/idl/velocity.json +4 -4
- package/src/idl/velocity.ts +4 -4
- package/src/keypair.ts +8 -0
- package/src/marginCalculation.ts +153 -2
- package/src/math/amm.ts +371 -36
- package/src/math/auction.ts +139 -30
- package/src/math/bankruptcy.ts +104 -1
- package/src/math/builder.ts +74 -8
- package/src/math/conversion.ts +21 -0
- package/src/math/exchangeStatus.ts +117 -2
- package/src/math/funding.ts +63 -23
- package/src/math/insurance.ts +62 -0
- package/src/math/liquidation.ts +227 -17
- package/src/math/margin.ts +80 -14
- package/src/math/market.ts +148 -17
- package/src/math/oracles.ts +124 -0
- package/src/math/orders.ts +141 -19
- package/src/math/position.ts +80 -33
- package/src/math/repeg.ts +48 -10
- package/src/math/spotBalance.ts +252 -12
- package/src/math/spotMarket.ts +36 -3
- package/src/math/spotPosition.ts +72 -0
- package/src/math/state.ts +31 -0
- package/src/math/superStake.ts +126 -3
- package/src/math/tiers.ts +29 -0
- package/src/math/trade.ts +125 -55
- package/src/math/utils.ts +71 -9
- package/src/memcmp.ts +104 -2
- package/src/oracles/oracleClientCache.ts +16 -0
- package/src/oracles/oracleId.ts +39 -6
- package/src/oracles/prelaunchOracleClient.ts +20 -0
- package/src/oracles/pythClient.ts +32 -1
- package/src/oracles/pythLazerClient.ts +35 -1
- package/src/oracles/quoteAssetOracleClient.ts +18 -0
- package/src/oracles/strictOraclePrice.ts +21 -0
- package/src/oracles/types.ts +45 -0
- package/src/oracles/utils.ts +20 -0
- package/src/orderParams.ts +42 -4
- package/src/orderSubscriber/OrderSubscriber.ts +56 -0
- package/src/orderSubscriber/PollingSubscription.ts +11 -0
- package/src/orderSubscriber/WebsocketSubscription.ts +18 -0
- package/src/orderSubscriber/grpcSubscription.ts +16 -0
- package/src/orderSubscriber/types.ts +9 -0
- package/src/priorityFee/averageOverSlotsStrategy.ts +1 -0
- package/src/priorityFee/averageStrategy.ts +1 -0
- package/src/priorityFee/ewmaStrategy.ts +10 -0
- package/src/priorityFee/heliusPriorityFeeMethod.ts +13 -2
- package/src/priorityFee/maxOverSlotsStrategy.ts +1 -0
- package/src/priorityFee/maxStrategy.ts +1 -0
- package/src/priorityFee/priorityFeeSubscriber.ts +39 -0
- package/src/priorityFee/priorityFeeSubscriberMap.ts +21 -2
- package/src/priorityFee/solanaPriorityFeeMethod.ts +12 -0
- package/src/priorityFee/types.ts +33 -15
- package/src/priorityFee/velocityPriorityFeeMethod.ts +11 -0
- package/src/slot/SlotSubscriber.ts +18 -0
- package/src/slot/SlothashSubscriber.ts +27 -1
- package/src/tx/baseTxSender.ts +185 -5
- package/src/tx/blockhashFetcher/baseBlockhashFetcher.ts +12 -0
- package/src/tx/blockhashFetcher/cachedBlockhashFetcher.ts +15 -0
- package/src/tx/blockhashFetcher/types.ts +4 -0
- package/src/tx/fastSingleTxSender.ts +58 -4
- package/src/tx/forwardOnlyTxSender.ts +48 -0
- package/src/tx/reportTransactionError.ts +18 -6
- package/src/tx/retryTxSender.ts +40 -0
- package/src/tx/txHandler.ts +146 -35
- package/src/tx/txParamProcessor.ts +47 -0
- package/src/tx/types.ts +46 -0
- package/src/tx/utils.ts +26 -0
- package/src/tx/whileValidTxSender.ts +82 -0
- package/src/types.ts +777 -24
- package/src/user.ts +869 -110
- package/src/userMap/PollingSubscription.ts +16 -2
- package/src/userMap/WebsocketSubscription.ts +9 -0
- package/src/userMap/grpcSubscription.ts +8 -0
- package/src/userMap/referrerMap.ts +92 -3
- package/src/userMap/revenueShareEscrowMap.ts +38 -11
- package/src/userMap/userMap.ts +82 -4
- package/src/userMap/userMapConfig.ts +23 -10
- package/src/userMap/userStatsMap.ts +22 -0
- package/src/userName.ts +16 -0
- package/src/userStats.ts +28 -1
- package/src/util/TransactionConfirmationManager.ts +33 -0
- package/src/util/chainClock.ts +24 -0
- package/src/util/computeUnits.ts +32 -0
- package/src/util/digest.ts +17 -0
- package/src/util/ed25519Utils.ts +12 -2
- package/src/util/promiseTimeout.ts +9 -0
- package/src/velocityClient.ts +3439 -249
- package/src/wallet.ts +37 -0
- package/tests/VelocityCore/builder_escrow.test.ts +121 -0
- package/tests/amm/test.ts +102 -0
- package/tests/builder/builderFee.test.ts +42 -0
- package/tests/dlob/tickSizeStandardization.ts +545 -0
- package/tests/exchangeStatus/test.ts +45 -0
- package/tests/liquidation/test.ts +125 -0
- package/tests/oracles/mmOracleGate.test.ts +379 -0
- package/tests/oracles/pythPegSnap.test.ts +76 -0
- package/tests/sdkParity/enumParity.test.ts +84 -0
- package/tests/sdkParity/marginCategoryFill.test.ts +143 -0
- package/tests/sdkParity/memcmpOffsets.test.ts +139 -0
- package/tests/spot/test.ts +55 -0
- package/tests/user/bankruptcy.ts +165 -0
- package/tests/user/feeAndWithdrawLimits.ts +284 -0
- package/tests/user/getMarginCalculation.ts +226 -1
- package/tests/user/test.ts +8 -4
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
import { LogProvider, logProviderCallback } from './types';
|
|
2
2
|
import { Commitment, Connection, PublicKey } from '@solana/web3.js';
|
|
3
|
+
/**
|
|
4
|
+
* `LogProvider` that polls `fetchLogs` (`getSignaturesForAddress` +
|
|
5
|
+
* `getTransaction`) on a fixed interval instead of holding a websocket open.
|
|
6
|
+
* Used both as the default fallback provider after repeated websocket
|
|
7
|
+
* reconnect failures and as an explicit choice for RPCs without reliable log
|
|
8
|
+
* subscriptions. Only one poll runs at a time (a simple mutex flag skips an
|
|
9
|
+
* overlapping tick if the previous fetch hasn't finished).
|
|
10
|
+
*/
|
|
3
11
|
export declare class PollingLogProvider implements LogProvider {
|
|
4
12
|
private connection;
|
|
5
13
|
private address;
|
|
@@ -10,8 +18,24 @@ export declare class PollingLogProvider implements LogProvider {
|
|
|
10
18
|
private mostRecentSeenTx?;
|
|
11
19
|
private mutex;
|
|
12
20
|
private firstFetch;
|
|
21
|
+
/**
|
|
22
|
+
* @param connection RPC connection to poll on.
|
|
23
|
+
* @param address Account/program address to poll logs for.
|
|
24
|
+
* @param commitment Commitment level; anything other than `'finalized'` is treated as `'confirmed'` for the underlying `fetchLogs` calls.
|
|
25
|
+
* @param frequency Poll interval in milliseconds; defaults to 15000 (15s).
|
|
26
|
+
* @param batchSize Max `getTransaction` calls batched per `fetchLogs` round-trip.
|
|
27
|
+
*/
|
|
13
28
|
constructor(connection: Connection, address: PublicKey, commitment: Commitment, frequency?: number, batchSize?: number | undefined);
|
|
29
|
+
/**
|
|
30
|
+
* Starts the polling interval; the first tick fires immediately per
|
|
31
|
+
* `setInterval` semantics only after `frequency` ms (there is no
|
|
32
|
+
* immediate initial fetch). Idempotent — a second call while already
|
|
33
|
+
* subscribed is a no-op.
|
|
34
|
+
* @param skipHistory On the first poll only, fetches just the single most recent transaction instead of the full backlog since `mostRecentSeenTx`.
|
|
35
|
+
* @returns Always resolves `true`.
|
|
36
|
+
*/
|
|
14
37
|
subscribe(callback: logProviderCallback, skipHistory?: boolean): Promise<boolean>;
|
|
15
38
|
isSubscribed(): boolean;
|
|
39
|
+
/** Stops the polling interval. Always resolves `true`. */
|
|
16
40
|
unsubscribe(): Promise<boolean>;
|
|
17
41
|
}
|
|
@@ -2,7 +2,22 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.PollingLogProvider = void 0;
|
|
4
4
|
const fetchLogs_1 = require("./fetchLogs");
|
|
5
|
+
/**
|
|
6
|
+
* `LogProvider` that polls `fetchLogs` (`getSignaturesForAddress` +
|
|
7
|
+
* `getTransaction`) on a fixed interval instead of holding a websocket open.
|
|
8
|
+
* Used both as the default fallback provider after repeated websocket
|
|
9
|
+
* reconnect failures and as an explicit choice for RPCs without reliable log
|
|
10
|
+
* subscriptions. Only one poll runs at a time (a simple mutex flag skips an
|
|
11
|
+
* overlapping tick if the previous fetch hasn't finished).
|
|
12
|
+
*/
|
|
5
13
|
class PollingLogProvider {
|
|
14
|
+
/**
|
|
15
|
+
* @param connection RPC connection to poll on.
|
|
16
|
+
* @param address Account/program address to poll logs for.
|
|
17
|
+
* @param commitment Commitment level; anything other than `'finalized'` is treated as `'confirmed'` for the underlying `fetchLogs` calls.
|
|
18
|
+
* @param frequency Poll interval in milliseconds; defaults to 15000 (15s).
|
|
19
|
+
* @param batchSize Max `getTransaction` calls batched per `fetchLogs` round-trip.
|
|
20
|
+
*/
|
|
6
21
|
constructor(connection, address, commitment, frequency = 15 * 1000, batchSize) {
|
|
7
22
|
this.connection = connection;
|
|
8
23
|
this.address = address;
|
|
@@ -12,6 +27,14 @@ class PollingLogProvider {
|
|
|
12
27
|
this.firstFetch = true;
|
|
13
28
|
this.finality = commitment === 'finalized' ? 'finalized' : 'confirmed';
|
|
14
29
|
}
|
|
30
|
+
/**
|
|
31
|
+
* Starts the polling interval; the first tick fires immediately per
|
|
32
|
+
* `setInterval` semantics only after `frequency` ms (there is no
|
|
33
|
+
* immediate initial fetch). Idempotent — a second call while already
|
|
34
|
+
* subscribed is a no-op.
|
|
35
|
+
* @param skipHistory On the first poll only, fetches just the single most recent transaction instead of the full backlog since `mostRecentSeenTx`.
|
|
36
|
+
* @returns Always resolves `true`.
|
|
37
|
+
*/
|
|
15
38
|
async subscribe(callback, skipHistory) {
|
|
16
39
|
if (this.intervalId) {
|
|
17
40
|
return true;
|
|
@@ -48,6 +71,7 @@ class PollingLogProvider {
|
|
|
48
71
|
isSubscribed() {
|
|
49
72
|
return this.intervalId !== undefined;
|
|
50
73
|
}
|
|
74
|
+
/** Stops the polling interval. Always resolves `true`. */
|
|
51
75
|
async unsubscribe() {
|
|
52
76
|
if (this.intervalId !== undefined) {
|
|
53
77
|
clearInterval(this.intervalId);
|
|
@@ -1,2 +1,13 @@
|
|
|
1
1
|
import { EventSubscriptionOrderBy, EventSubscriptionOrderDirection, SortFn } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* Selects the `SortFn` an `EventList` uses to place newly inserted events.
|
|
4
|
+
* `orderBy: 'client'` always inserts at the position matching `orderDir`
|
|
5
|
+
* (head for `'asc'`, tail for `'desc'`) regardless of the events' own
|
|
6
|
+
* slot/index — i.e. pure arrival order. `orderBy: 'blockchain'` always uses
|
|
7
|
+
* `blockchainSortFn` (slot, then `txSigIndex`); `orderDir` is ignored in that
|
|
8
|
+
* case — blockchain order is always ascending by slot/`txSigIndex`.
|
|
9
|
+
* @param orderBy Whether to sort by client arrival order or blockchain-produced order.
|
|
10
|
+
* @param orderDir Sort direction; ignored when `orderBy` is `'blockchain'`.
|
|
11
|
+
* @returns The `SortFn` to pass to `EventList`.
|
|
12
|
+
*/
|
|
2
13
|
export declare function getSortFn(orderBy: EventSubscriptionOrderBy, orderDir: EventSubscriptionOrderDirection): SortFn;
|
|
@@ -7,6 +7,7 @@ function clientSortAscFn() {
|
|
|
7
7
|
function clientSortDescFn() {
|
|
8
8
|
return 'greater than';
|
|
9
9
|
}
|
|
10
|
+
/** Orders events by `slot`, breaking ties by `txSigIndex` (position within the same transaction). Reproducible regardless of delivery order. */
|
|
10
11
|
function blockchainSortFn(currentEvent, newEvent) {
|
|
11
12
|
if (currentEvent.slot == newEvent.slot) {
|
|
12
13
|
return currentEvent.txSigIndex < newEvent.txSigIndex
|
|
@@ -15,6 +16,17 @@ function blockchainSortFn(currentEvent, newEvent) {
|
|
|
15
16
|
}
|
|
16
17
|
return currentEvent.slot < newEvent.slot ? 'less than' : 'greater than';
|
|
17
18
|
}
|
|
19
|
+
/**
|
|
20
|
+
* Selects the `SortFn` an `EventList` uses to place newly inserted events.
|
|
21
|
+
* `orderBy: 'client'` always inserts at the position matching `orderDir`
|
|
22
|
+
* (head for `'asc'`, tail for `'desc'`) regardless of the events' own
|
|
23
|
+
* slot/index — i.e. pure arrival order. `orderBy: 'blockchain'` always uses
|
|
24
|
+
* `blockchainSortFn` (slot, then `txSigIndex`); `orderDir` is ignored in that
|
|
25
|
+
* case — blockchain order is always ascending by slot/`txSigIndex`.
|
|
26
|
+
* @param orderBy Whether to sort by client arrival order or blockchain-produced order.
|
|
27
|
+
* @param orderDir Sort direction; ignored when `orderBy` is `'blockchain'`.
|
|
28
|
+
* @returns The `SortFn` to pass to `EventList`.
|
|
29
|
+
*/
|
|
18
30
|
function getSortFn(orderBy, orderDir) {
|
|
19
31
|
if (orderBy === 'client') {
|
|
20
32
|
return orderDir === 'asc' ? clientSortAscFn : clientSortDescFn;
|
|
@@ -6,19 +6,29 @@ declare class Node {
|
|
|
6
6
|
prev?: Node | undefined;
|
|
7
7
|
constructor(key: string, value: WrappedEvent<EventType>[], next?: Node | undefined, prev?: Node | undefined);
|
|
8
8
|
}
|
|
9
|
+
/**
|
|
10
|
+
* LRU cache of decoded events keyed by transaction signature, used by
|
|
11
|
+
* `EventSubscriber` both to serve `getEventsByTx`/`awaitTx` and to dedup
|
|
12
|
+
* redeliveries of the same transaction from a log provider. Evicts the
|
|
13
|
+
* least-recently-used entry once `maxTx` is exceeded (`add()` refreshes an
|
|
14
|
+
* existing key's recency by moving it back to the head).
|
|
15
|
+
*/
|
|
9
16
|
export declare class TxEventCache {
|
|
10
17
|
maxTx: number;
|
|
11
18
|
size: number;
|
|
12
19
|
head?: Node;
|
|
13
20
|
tail?: Node;
|
|
14
|
-
cacheMap:
|
|
15
|
-
|
|
16
|
-
};
|
|
21
|
+
cacheMap: Map<string, Node>;
|
|
22
|
+
/** @param maxTx Max number of transactions retained; defaults to 1024. */
|
|
17
23
|
constructor(maxTx?: number);
|
|
24
|
+
/** Inserts (or refreshes, if `key` already exists) the events for transaction `key` at the head, evicting the tail if this exceeds `maxTx`. */
|
|
18
25
|
add(key: string, events: WrappedEvent<EventType>[]): void;
|
|
26
|
+
/** Whether transaction `key` is currently cached. */
|
|
19
27
|
has(key: string): boolean;
|
|
28
|
+
/** @returns The cached events for transaction `key`, or `undefined` if not cached (never seen, or evicted). */
|
|
20
29
|
get(key: string): WrappedEvent<EventType>[] | undefined;
|
|
21
30
|
detach(node: Node): void;
|
|
31
|
+
/** Empties the cache. */
|
|
22
32
|
clear(): void;
|
|
23
33
|
}
|
|
24
34
|
export {};
|
|
@@ -10,14 +10,23 @@ class Node {
|
|
|
10
10
|
}
|
|
11
11
|
}
|
|
12
12
|
// lru cache
|
|
13
|
+
/**
|
|
14
|
+
* LRU cache of decoded events keyed by transaction signature, used by
|
|
15
|
+
* `EventSubscriber` both to serve `getEventsByTx`/`awaitTx` and to dedup
|
|
16
|
+
* redeliveries of the same transaction from a log provider. Evicts the
|
|
17
|
+
* least-recently-used entry once `maxTx` is exceeded (`add()` refreshes an
|
|
18
|
+
* existing key's recency by moving it back to the head).
|
|
19
|
+
*/
|
|
13
20
|
class TxEventCache {
|
|
21
|
+
/** @param maxTx Max number of transactions retained; defaults to 1024. */
|
|
14
22
|
constructor(maxTx = 1024) {
|
|
15
23
|
this.maxTx = maxTx;
|
|
16
24
|
this.size = 0;
|
|
17
|
-
this.cacheMap =
|
|
25
|
+
this.cacheMap = new Map();
|
|
18
26
|
}
|
|
27
|
+
/** Inserts (or refreshes, if `key` already exists) the events for transaction `key` at the head, evicting the tail if this exceeds `maxTx`. */
|
|
19
28
|
add(key, events) {
|
|
20
|
-
const existingNode = this.cacheMap
|
|
29
|
+
const existingNode = this.cacheMap.get(key);
|
|
21
30
|
if (existingNode) {
|
|
22
31
|
this.detach(existingNode);
|
|
23
32
|
this.size--;
|
|
@@ -27,7 +36,7 @@ class TxEventCache {
|
|
|
27
36
|
if (tail === undefined) {
|
|
28
37
|
throw new Error('TxEventCache.add: cache at capacity but tail is unset');
|
|
29
38
|
}
|
|
30
|
-
|
|
39
|
+
this.cacheMap.delete(tail.key);
|
|
31
40
|
this.detach(tail);
|
|
32
41
|
this.size--;
|
|
33
42
|
}
|
|
@@ -41,15 +50,17 @@ class TxEventCache {
|
|
|
41
50
|
this.head = node;
|
|
42
51
|
}
|
|
43
52
|
// update cacheMap with LinkedList key and Node reference
|
|
44
|
-
this.cacheMap
|
|
53
|
+
this.cacheMap.set(key, this.head);
|
|
45
54
|
this.size++;
|
|
46
55
|
}
|
|
56
|
+
/** Whether transaction `key` is currently cached. */
|
|
47
57
|
has(key) {
|
|
48
|
-
return this.cacheMap.
|
|
58
|
+
return this.cacheMap.has(key);
|
|
49
59
|
}
|
|
60
|
+
/** @returns The cached events for transaction `key`, or `undefined` if not cached (never seen, or evicted). */
|
|
50
61
|
get(key) {
|
|
51
62
|
var _a;
|
|
52
|
-
return (_a = this.cacheMap
|
|
63
|
+
return (_a = this.cacheMap.get(key)) === null || _a === void 0 ? void 0 : _a.value;
|
|
53
64
|
}
|
|
54
65
|
detach(node) {
|
|
55
66
|
if (node.prev !== undefined) {
|
|
@@ -65,11 +76,12 @@ class TxEventCache {
|
|
|
65
76
|
this.tail = node.prev;
|
|
66
77
|
}
|
|
67
78
|
}
|
|
79
|
+
/** Empties the cache. */
|
|
68
80
|
clear() {
|
|
69
81
|
this.head = undefined;
|
|
70
82
|
this.tail = undefined;
|
|
71
83
|
this.size = 0;
|
|
72
|
-
this.cacheMap
|
|
84
|
+
this.cacheMap.clear();
|
|
73
85
|
}
|
|
74
86
|
}
|
|
75
87
|
exports.TxEventCache = TxEventCache;
|
|
@@ -1,30 +1,80 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
import { Commitment, PublicKey, TransactionSignature } from '@solana/web3.js';
|
|
3
|
-
import { DepositRecord, FundingPaymentRecord, FundingRateRecord, LiquidationRecord, NewUserRecord, OrderActionRecord, OrderRecord, SettlePnlRecord, InsuranceFundRecord, SpotInterestRecord, InsuranceFundStakeRecord, AmmCurveChanged, SwapRecord, SpotMarketVaultDepositRecord, SignedMsgOrderRecord, DeleteUserRecord, LPMintRedeemRecord, LPSettleRecord, LPSwapRecord, LPBorrowLendDepositRecord } from '../types';
|
|
3
|
+
import { DepositRecord, FundingPaymentRecord, FundingRateRecord, LiquidationRecord, NewUserRecord, OrderActionRecord, OrderRecord, SettlePnlRecord, InsuranceFundRecord, SpotInterestRecord, InsuranceFundStakeRecord, AmmCurveChanged, SwapRecord, SpotMarketVaultDepositRecord, SignedMsgOrderRecord, DeleteUserRecord, LPMintRedeemRecord, LPSettleRecord, LPSwapRecord, LPBorrowLendDepositRecord, PerpMarketFeeSweepRecord, ProtocolFeeWithdrawRecord, RevenueShareSettleRecord, TransferFeeAndPnlPoolRecord } from '../types';
|
|
4
4
|
import { EventEmitter } from 'events';
|
|
5
|
+
/**
|
|
6
|
+
* Configuration for `EventSubscriber`. Unset fields fall back to the matching
|
|
7
|
+
* field in `DefaultEventSubscriptionOptions`.
|
|
8
|
+
*/
|
|
5
9
|
export type EventSubscriptionOptions = {
|
|
10
|
+
/** Program/account whose logs are parsed for events. Defaults to the Velocity program ID. */
|
|
6
11
|
address?: PublicKey;
|
|
12
|
+
/** Event names to decode and retain; events not in this list are dropped even if present in the logs. */
|
|
7
13
|
eventTypes?: EventType[];
|
|
14
|
+
/** Max events retained per event type in the in-memory `EventList` (oldest evicted first once exceeded). */
|
|
8
15
|
maxEventsPerType?: number;
|
|
16
|
+
/** Whether `EventList`s are sorted by the order the blockchain produced events (`'blockchain'`, by slot/txSigIndex) or the order the client received them (`'client'`). */
|
|
9
17
|
orderBy?: EventSubscriptionOrderBy;
|
|
18
|
+
/** Sort direction applied on top of `orderBy`. */
|
|
10
19
|
orderDir?: EventSubscriptionOrderDirection;
|
|
20
|
+
/** Commitment level used for both the live log subscription and any `fetchPreviousTx` backfill. */
|
|
11
21
|
commitment?: Commitment;
|
|
22
|
+
/** Max number of past transactions to backfill via `fetchPreviousTx`, and the `TxEventCache` LRU size. */
|
|
12
23
|
maxTx?: number;
|
|
24
|
+
/** Which `LogProvider` implementation streams new events: websocket, polling, or the Velocity events-server. */
|
|
13
25
|
logProviderConfig?: LogProviderConfig;
|
|
26
|
+
/** When the subscription starts, backtrack and fetch historical transactions until this signature (exclusive) is reached. Only consulted by `fetchPreviousTx`. */
|
|
14
27
|
untilTx?: TransactionSignature;
|
|
15
28
|
};
|
|
29
|
+
/**
|
|
30
|
+
* Default `EventSubscriptionOptions`: all known event types (including the
|
|
31
|
+
* fee-sweep/revenue-share/LP-borrow-lend records), 4096 events retained per
|
|
32
|
+
* type, blockchain-order ascending sort, `confirmed` commitment, and a
|
|
33
|
+
* websocket log provider.
|
|
34
|
+
*/
|
|
16
35
|
export declare const DefaultEventSubscriptionOptions: EventSubscriptionOptions;
|
|
36
|
+
/**
|
|
37
|
+
* `'blockchain'` sorts by the order the chain produced events (slot, then
|
|
38
|
+
* `txSigIndex` within a tx) — stable across reconnects/replays. `'client'`
|
|
39
|
+
* sorts purely by arrival order at this process, which is cheaper but not
|
|
40
|
+
* reproducible if the client reconnects or replays history.
|
|
41
|
+
*/
|
|
17
42
|
export type EventSubscriptionOrderBy = 'blockchain' | 'client';
|
|
43
|
+
/** Direction applied on top of `EventSubscriptionOrderBy`: `'asc'` sorts oldest/lowest-order-key first, `'desc'` newest first. */
|
|
18
44
|
export type EventSubscriptionOrderDirection = 'asc' | 'desc';
|
|
45
|
+
/**
|
|
46
|
+
* A decoded program event record `T` (e.g. `DepositRecord`, `OrderRecord`)
|
|
47
|
+
* augmented with the transaction it was emitted in.
|
|
48
|
+
*/
|
|
19
49
|
export type Event<T> = T & {
|
|
50
|
+
/** Signature of the transaction that emitted this event. */
|
|
20
51
|
txSig: TransactionSignature;
|
|
52
|
+
/** Slot the transaction landed in. */
|
|
21
53
|
slot: number;
|
|
54
|
+
/** Index of this event among all decoded events in the same transaction; used to break slot ties when sorting and for dedup. */
|
|
22
55
|
txSigIndex: number;
|
|
23
56
|
};
|
|
57
|
+
/** An `Event` tagged with its `EventMap` key, as emitted on `EventSubscriber.eventEmitter`'s `'newEvent'`. */
|
|
24
58
|
export type WrappedEvent<Type extends EventType> = EventMap[Type] & {
|
|
25
59
|
eventType: Type;
|
|
26
60
|
};
|
|
61
|
+
/** An array of `WrappedEvent`s of any `EventType`, e.g. as returned by `getEventsByTx`/`LogParser.parseEventsFromLogs`. */
|
|
27
62
|
export type WrappedEvents = WrappedEvent<EventType>[];
|
|
63
|
+
/**
|
|
64
|
+
* Maps each on-chain event name (as declared in `state/events.rs` and emitted
|
|
65
|
+
* via Anchor's `emit!`) to its decoded, transaction-augmented shape. See
|
|
66
|
+
* `../types.ts` for each record's field-level precisions. Five entries were
|
|
67
|
+
* newly wired in this parity pass: `LPBorrowLendDepositRecord` (LP pool
|
|
68
|
+
* borrow/lend deposit or withdraw against a constituent, token-amount
|
|
69
|
+
* precision per the constituent's spot market), `PerpMarketFeeSweepRecord`
|
|
70
|
+
* (streaming fee-sweep drains from a perp market's pnl pool — insurance,
|
|
71
|
+
* protocol, and AMM-provision cuts — quote-token amounts, `QUOTE_PRECISION`),
|
|
72
|
+
* `ProtocolFeeWithdrawRecord` (admin withdrawal from a perp or spot market's
|
|
73
|
+
* protocol fee pool, token-amount precision of the source spot market),
|
|
74
|
+
* `RevenueShareSettleRecord` (builder/referrer revenue-share settlement, fee
|
|
75
|
+
* amounts in `QUOTE_PRECISION`), and `TransferFeeAndPnlPoolRecord` (internal
|
|
76
|
+
* transfer between a market's fee pool and pnl pool, `QUOTE_PRECISION`).
|
|
77
|
+
*/
|
|
28
78
|
export type EventMap = {
|
|
29
79
|
DepositRecord: Event<DepositRecord>;
|
|
30
80
|
FundingPaymentRecord: Event<FundingPaymentRecord>;
|
|
@@ -45,40 +95,103 @@ export type EventMap = {
|
|
|
45
95
|
LPSettleRecord: Event<LPSettleRecord>;
|
|
46
96
|
LPMintRedeemRecord: Event<LPMintRedeemRecord>;
|
|
47
97
|
LPSwapRecord: Event<LPSwapRecord>;
|
|
98
|
+
/** LP pool borrow/lend deposit or withdraw against a constituent's spot market. */
|
|
99
|
+
LPBorrowLendDepositRecord: Event<LPBorrowLendDepositRecord>;
|
|
100
|
+
/** Streaming sweep of a perp market's accrued fee ledger into the insurance, protocol, and AMM fee pools. Amounts are quote-token, `QUOTE_PRECISION` (1e6). */
|
|
101
|
+
PerpMarketFeeSweepRecord: Event<PerpMarketFeeSweepRecord>;
|
|
102
|
+
/** Admin withdrawal from a perp or spot market's protocol fee pool to a recipient token account. */
|
|
103
|
+
ProtocolFeeWithdrawRecord: Event<ProtocolFeeWithdrawRecord>;
|
|
104
|
+
/** Builder/referrer fee revenue-share settlement for a market. Fee amounts are quote-token, `QUOTE_PRECISION` (1e6). */
|
|
105
|
+
RevenueShareSettleRecord: Event<RevenueShareSettleRecord>;
|
|
106
|
+
/** Internal transfer of quote token between a perp market's fee pool and pnl pool. */
|
|
107
|
+
TransferFeeAndPnlPoolRecord: Event<TransferFeeAndPnlPoolRecord>;
|
|
48
108
|
};
|
|
109
|
+
/** Union of all decodable event names — the keys of `EventMap`. */
|
|
49
110
|
export type EventType = keyof EventMap;
|
|
50
|
-
|
|
111
|
+
/**
|
|
112
|
+
* Union of every possible decoded event shape (all `EventMap` value types
|
|
113
|
+
* plus the synthetic `CuUsage` event, which is not a program event and is
|
|
114
|
+
* only produced by `parseLogsForCuUsage`, not by `EventSubscriber`).
|
|
115
|
+
*/
|
|
116
|
+
export type VelocityEvent = Event<DepositRecord> | Event<FundingPaymentRecord> | Event<LiquidationRecord> | Event<FundingRateRecord> | Event<OrderRecord> | Event<OrderActionRecord> | Event<SettlePnlRecord> | Event<NewUserRecord> | Event<InsuranceFundRecord> | Event<SpotInterestRecord> | Event<InsuranceFundStakeRecord> | Event<AmmCurveChanged> | Event<SwapRecord> | Event<SpotMarketVaultDepositRecord> | Event<SignedMsgOrderRecord> | Event<DeleteUserRecord> | Event<LPSettleRecord> | Event<LPMintRedeemRecord> | Event<LPSwapRecord> | Event<LPBorrowLendDepositRecord> | Event<PerpMarketFeeSweepRecord> | Event<ProtocolFeeWithdrawRecord> | Event<RevenueShareSettleRecord> | Event<TransferFeeAndPnlPoolRecord> | Event<CuUsage>;
|
|
117
|
+
/** Events emitted on `EventSubscriber.eventEmitter`. */
|
|
51
118
|
export interface EventSubscriberEvents {
|
|
119
|
+
/** Fired once per decoded event, after it has been inserted into the subscriber's `EventList` for its type. */
|
|
52
120
|
newEvent: (event: WrappedEvent<EventType>) => void;
|
|
53
121
|
}
|
|
122
|
+
/**
|
|
123
|
+
* Comparator used by `EventList` to keep events ordered. Returns whether
|
|
124
|
+
* `newRecord` sorts before (`'less than'`) or after (`'greater than'`)
|
|
125
|
+
* `currentRecord`; see `getSortFn` for the concrete `'blockchain'`/`'client'`
|
|
126
|
+
* implementations.
|
|
127
|
+
*/
|
|
54
128
|
export type SortFn = (currentRecord: EventMap[EventType], newRecord: EventMap[EventType]) => 'less than' | 'greater than';
|
|
129
|
+
/**
|
|
130
|
+
* Callback a `LogProvider` invokes once per transaction containing raw
|
|
131
|
+
* program logs, before they are decoded into typed events.
|
|
132
|
+
* @param txSig Signature of the transaction the logs came from.
|
|
133
|
+
* @param slot Slot the transaction landed in.
|
|
134
|
+
* @param logs Raw log lines for the transaction.
|
|
135
|
+
* @param mostRecentBlockTime Unix timestamp (seconds) of the most recent block seen by the provider, if known.
|
|
136
|
+
* @param txSigIndex Explicit event index within the tx, if the provider can supply one (e.g. events-server); otherwise the consumer numbers events by decode order.
|
|
137
|
+
*/
|
|
55
138
|
export type logProviderCallback = (txSig: TransactionSignature, slot: number, logs: string[], mostRecentBlockTime: number | undefined, txSigIndex: number | undefined) => void;
|
|
139
|
+
/**
|
|
140
|
+
* Common interface implemented by each log transport (`WebSocketLogProvider`,
|
|
141
|
+
* `PollingLogProvider`, `EventsServerLogProvider`) that `EventSubscriber`
|
|
142
|
+
* drives to receive raw transaction logs.
|
|
143
|
+
*/
|
|
56
144
|
export interface LogProvider {
|
|
145
|
+
/** Whether the provider currently has an active subscription/connection. */
|
|
57
146
|
isSubscribed(): boolean;
|
|
147
|
+
/**
|
|
148
|
+
* Starts streaming logs, invoking `callback` per transaction.
|
|
149
|
+
* @param skipHistory If true, only the most recent log (not full backlog) is fetched on initial subscribe, where supported.
|
|
150
|
+
* @returns `true` once the subscription is established.
|
|
151
|
+
*/
|
|
58
152
|
subscribe(callback: logProviderCallback, skipHistory?: boolean): Promise<boolean>;
|
|
153
|
+
/**
|
|
154
|
+
* Tears down the subscription.
|
|
155
|
+
* @param external Whether this is a caller-initiated unsubscribe (as opposed to an internal one during a reconnect); suppresses auto-resubscribe when true.
|
|
156
|
+
*/
|
|
59
157
|
unsubscribe(external?: boolean): Promise<boolean>;
|
|
158
|
+
/** Emits `'reconnect'` with the current attempt count when a streaming provider detects a stall and is about to resubscribe. Only set on streaming (websocket/events-server) providers. */
|
|
60
159
|
eventEmitter?: EventEmitter;
|
|
61
160
|
}
|
|
161
|
+
/** Which `LogProvider` implementation backs an `EventSubscriber`. */
|
|
62
162
|
export type LogProviderType = 'websocket' | 'polling' | 'events-server';
|
|
163
|
+
/** Shared reconnect/fallback options for streaming (websocket, events-server) log providers. */
|
|
63
164
|
export type StreamingLogProviderConfig = {
|
|
165
|
+
/** Max reconnect attempts before `EventSubscriber` fails over to the next provider in the chain (events-server → websocket → polling); default `Infinity` (never fails over). */
|
|
64
166
|
maxReconnectAttempts?: number;
|
|
167
|
+
/** Poll interval (ms) for the `PollingLogProviderConfig` used once failed over to polling. */
|
|
65
168
|
fallbackFrequency?: number;
|
|
169
|
+
/** `getTransaction` batch size for the `PollingLogProviderConfig` used once failed over to polling. */
|
|
66
170
|
fallbackBatchSize?: number;
|
|
67
171
|
};
|
|
172
|
+
/** Configures `EventSubscriber` to stream events via `connection.onLogs`. */
|
|
68
173
|
export type WebSocketLogProviderConfig = StreamingLogProviderConfig & {
|
|
69
174
|
type: 'websocket';
|
|
175
|
+
/** Resubscribe if no log data arrives within this many ms; left unset, the websocket never auto-resubscribes. */
|
|
70
176
|
resubTimeoutMs?: number;
|
|
71
177
|
};
|
|
178
|
+
/** Configures `EventSubscriber` to poll for new transactions via `getSignaturesForAddress`/`getTransaction` on an interval. */
|
|
72
179
|
export type PollingLogProviderConfig = {
|
|
73
180
|
type: 'polling';
|
|
181
|
+
/** Poll interval in milliseconds. */
|
|
74
182
|
frequency: number;
|
|
183
|
+
/** Max `getTransaction` calls batched per poll round-trip; defaults to 25 (see `fetchLogs`). */
|
|
75
184
|
batchSize?: number;
|
|
76
185
|
};
|
|
186
|
+
/** Configures `EventSubscriber` to receive pre-decoded events pushed over a websocket from the Velocity-hosted events server, instead of raw RPC logs. */
|
|
77
187
|
export type EventsServerLogProviderConfig = StreamingLogProviderConfig & {
|
|
78
188
|
type: 'events-server';
|
|
189
|
+
/** Websocket URL of the Velocity events server. */
|
|
79
190
|
url: string;
|
|
80
191
|
};
|
|
192
|
+
/** Discriminated union of the three supported log-transport configs; the `type` field selects which `LogProvider` is constructed. */
|
|
81
193
|
export type LogProviderConfig = WebSocketLogProviderConfig | PollingLogProviderConfig | EventsServerLogProviderConfig;
|
|
194
|
+
/** IDL-style event descriptor used to synthesize the `CuUsage` pseudo-event decoded by `parseLogsForCuUsage`; not a real on-chain `#[event]`. */
|
|
82
195
|
export type CuUsageEvent = {
|
|
83
196
|
name: 'CuUsage';
|
|
84
197
|
fields: [
|
|
@@ -94,7 +207,10 @@ export type CuUsageEvent = {
|
|
|
94
207
|
}
|
|
95
208
|
];
|
|
96
209
|
};
|
|
210
|
+
/** Compute-unit usage for one instruction, derived from `Program ... consumed N of M compute units` log lines (see `parseLogsForCuUsage`). Not emitted by the program itself. */
|
|
97
211
|
export type CuUsage = {
|
|
212
|
+
/** Instruction name, as logged by `Program log: Instruction: <name>`. */
|
|
98
213
|
instruction: string;
|
|
214
|
+
/** Compute units consumed by that instruction. */
|
|
99
215
|
cuUsage: number;
|
|
100
216
|
};
|
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.DefaultEventSubscriptionOptions = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Default `EventSubscriptionOptions`: all known event types (including the
|
|
6
|
+
* fee-sweep/revenue-share/LP-borrow-lend records), 4096 events retained per
|
|
7
|
+
* type, blockchain-order ascending sort, `confirmed` commitment, and a
|
|
8
|
+
* websocket log provider.
|
|
9
|
+
*/
|
|
4
10
|
exports.DefaultEventSubscriptionOptions = {
|
|
5
11
|
eventTypes: [
|
|
6
12
|
'DepositRecord',
|
|
@@ -22,6 +28,11 @@ exports.DefaultEventSubscriptionOptions = {
|
|
|
22
28
|
'LPMintRedeemRecord',
|
|
23
29
|
'LPSettleRecord',
|
|
24
30
|
'LPSwapRecord',
|
|
31
|
+
'LPBorrowLendDepositRecord',
|
|
32
|
+
'PerpMarketFeeSweepRecord',
|
|
33
|
+
'ProtocolFeeWithdrawRecord',
|
|
34
|
+
'RevenueShareSettleRecord',
|
|
35
|
+
'TransferFeeAndPnlPoolRecord',
|
|
25
36
|
],
|
|
26
37
|
maxEventsPerType: 4096,
|
|
27
38
|
orderBy: 'blockchain',
|
|
@@ -2,6 +2,16 @@
|
|
|
2
2
|
import { LogProvider, logProviderCallback } from './types';
|
|
3
3
|
import { Commitment, Connection, PublicKey } from '@solana/web3.js';
|
|
4
4
|
import { EventEmitter } from 'events';
|
|
5
|
+
/**
|
|
6
|
+
* `LogProvider` backed by `connection.onLogs` — a raw Solana websocket log
|
|
7
|
+
* subscription for `address`. Delivers only new logs from the point of
|
|
8
|
+
* subscribe (no history) and does not attempt any batching; errored
|
|
9
|
+
* transactions (`logs.err !== null`) are dropped. If `resubTimeoutMs` is set,
|
|
10
|
+
* the provider watches for a gap with no log data and automatically
|
|
11
|
+
* unsubscribes/resubscribes, emitting `'reconnect'` on `eventEmitter` with
|
|
12
|
+
* the running attempt count each time — `EventSubscriber` uses that to fail
|
|
13
|
+
* over to `PollingLogProvider` after enough attempts.
|
|
14
|
+
*/
|
|
5
15
|
export declare class WebSocketLogProvider implements LogProvider {
|
|
6
16
|
private connection;
|
|
7
17
|
private address;
|
|
@@ -15,10 +25,23 @@ export declare class WebSocketLogProvider implements LogProvider {
|
|
|
15
25
|
private reconnectAttempts;
|
|
16
26
|
eventEmitter?: EventEmitter;
|
|
17
27
|
private callback?;
|
|
28
|
+
/**
|
|
29
|
+
* @param connection RPC connection to subscribe on.
|
|
30
|
+
* @param address Account/program address to receive logs for.
|
|
31
|
+
* @param commitment Commitment level for the log subscription.
|
|
32
|
+
* @param resubTimeoutMs If set, resubscribe when no log data arrives for this many ms; also enables `eventEmitter`/`'reconnect'`. Left unset, the provider never auto-resubscribes and `eventEmitter` stays `undefined`.
|
|
33
|
+
*/
|
|
18
34
|
constructor(connection: Connection, address: PublicKey, commitment: Commitment, resubTimeoutMs?: number | undefined);
|
|
35
|
+
/** Establishes the `onLogs` subscription (retrying once after 2s if the websocket isn't ready yet). Always resolves `true`; `skipHistory` is accepted for `LogProvider` interface compatibility but has no effect here (this provider never delivers history). */
|
|
19
36
|
subscribe(callback: logProviderCallback): Promise<boolean>;
|
|
37
|
+
/** Raw `connection.onLogs` registration used internally by `subscribe` (and to reconnect). Filters out errored transactions before invoking `callback`. */
|
|
20
38
|
setSubscription(callback: logProviderCallback): void;
|
|
21
39
|
isSubscribed(): boolean;
|
|
40
|
+
/**
|
|
41
|
+
* Removes the websocket log listener and clears the resub timeout.
|
|
42
|
+
* @param external Whether this is a caller-initiated unsubscribe rather than an internal one during a reconnect cycle; controls whether the resub timeout is allowed to fire again afterward.
|
|
43
|
+
* @returns `true` on success (including when already unsubscribed), `false` if `removeOnLogsListener` threw (logged to console).
|
|
44
|
+
*/
|
|
22
45
|
unsubscribe(external?: boolean): Promise<boolean>;
|
|
23
46
|
private setTimeout;
|
|
24
47
|
}
|
|
@@ -2,7 +2,23 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.WebSocketLogProvider = void 0;
|
|
4
4
|
const events_1 = require("events");
|
|
5
|
+
/**
|
|
6
|
+
* `LogProvider` backed by `connection.onLogs` — a raw Solana websocket log
|
|
7
|
+
* subscription for `address`. Delivers only new logs from the point of
|
|
8
|
+
* subscribe (no history) and does not attempt any batching; errored
|
|
9
|
+
* transactions (`logs.err !== null`) are dropped. If `resubTimeoutMs` is set,
|
|
10
|
+
* the provider watches for a gap with no log data and automatically
|
|
11
|
+
* unsubscribes/resubscribes, emitting `'reconnect'` on `eventEmitter` with
|
|
12
|
+
* the running attempt count each time — `EventSubscriber` uses that to fail
|
|
13
|
+
* over to `PollingLogProvider` after enough attempts.
|
|
14
|
+
*/
|
|
5
15
|
class WebSocketLogProvider {
|
|
16
|
+
/**
|
|
17
|
+
* @param connection RPC connection to subscribe on.
|
|
18
|
+
* @param address Account/program address to receive logs for.
|
|
19
|
+
* @param commitment Commitment level for the log subscription.
|
|
20
|
+
* @param resubTimeoutMs If set, resubscribe when no log data arrives for this many ms; also enables `eventEmitter`/`'reconnect'`. Left unset, the provider never auto-resubscribes and `eventEmitter` stays `undefined`.
|
|
21
|
+
*/
|
|
6
22
|
constructor(connection, address, commitment, resubTimeoutMs) {
|
|
7
23
|
this.connection = connection;
|
|
8
24
|
this.address = address;
|
|
@@ -16,10 +32,16 @@ class WebSocketLogProvider {
|
|
|
16
32
|
this.eventEmitter = new events_1.EventEmitter();
|
|
17
33
|
}
|
|
18
34
|
}
|
|
35
|
+
/** Establishes the `onLogs` subscription (retrying once after 2s if the websocket isn't ready yet). Always resolves `true`; `skipHistory` is accepted for `LogProvider` interface compatibility but has no effect here (this provider never delivers history). */
|
|
19
36
|
async subscribe(callback) {
|
|
20
37
|
if (this.subscriptionId != null) {
|
|
21
38
|
return true;
|
|
22
39
|
}
|
|
40
|
+
// reset teardown flags for a fresh subscription cycle — a caller-initiated
|
|
41
|
+
// unsubscribe(true) leaves externalUnsubscribe set, which would otherwise
|
|
42
|
+
// permanently suppress the heartbeat-driven resubscribe watchdog here
|
|
43
|
+
this.isUnsubscribing = false;
|
|
44
|
+
this.externalUnsubscribe = false;
|
|
23
45
|
this.callback = callback;
|
|
24
46
|
try {
|
|
25
47
|
this.setSubscription(callback);
|
|
@@ -33,6 +55,7 @@ class WebSocketLogProvider {
|
|
|
33
55
|
}
|
|
34
56
|
return true;
|
|
35
57
|
}
|
|
58
|
+
/** Raw `connection.onLogs` registration used internally by `subscribe` (and to reconnect). Filters out errored transactions before invoking `callback`. */
|
|
36
59
|
setSubscription(callback) {
|
|
37
60
|
this.subscriptionId = this.connection.onLogs(this.address, (logs, ctx) => {
|
|
38
61
|
if (this.resubTimeoutMs && !this.isUnsubscribing) {
|
|
@@ -53,6 +76,11 @@ class WebSocketLogProvider {
|
|
|
53
76
|
isSubscribed() {
|
|
54
77
|
return this.subscriptionId != null;
|
|
55
78
|
}
|
|
79
|
+
/**
|
|
80
|
+
* Removes the websocket log listener and clears the resub timeout.
|
|
81
|
+
* @param external Whether this is a caller-initiated unsubscribe rather than an internal one during a reconnect cycle; controls whether the resub timeout is allowed to fire again afterward.
|
|
82
|
+
* @returns `true` on success (including when already unsubscribed), `false` if `removeOnLogsListener` threw (logged to console).
|
|
83
|
+
*/
|
|
56
84
|
async unsubscribe(external = false) {
|
|
57
85
|
this.isUnsubscribing = true;
|
|
58
86
|
this.externalUnsubscribe = external;
|
|
@@ -32,8 +32,8 @@ function getOracleClient(oracleSource, connection, program) {
|
|
|
32
32
|
(0, types_1.isVariant)(oracleSource, 'pythStableCoinPull')) {
|
|
33
33
|
throw new Error('Pyth pull oracle support has been removed from the SDK');
|
|
34
34
|
}
|
|
35
|
-
if ((0, types_1.isVariant)(oracleSource, '
|
|
36
|
-
(0, types_1.isVariant)(oracleSource, '
|
|
35
|
+
if ((0, types_1.isVariant)(oracleSource, 'deprecatedSwitchboard') ||
|
|
36
|
+
(0, types_1.isVariant)(oracleSource, 'deprecatedSwitchboardOnDemand')) {
|
|
37
37
|
throw new Error('Switchboard oracle support has been removed from the SDK');
|
|
38
38
|
}
|
|
39
39
|
if ((0, types_1.isVariant)(oracleSource, 'pythLazer')) {
|
|
@@ -11087,13 +11087,13 @@ export type Velocity = {
|
|
|
11087
11087
|
133
|
|
11088
11088
|
];
|
|
11089
11089
|
"accounts": [
|
|
11090
|
-
{
|
|
11091
|
-
"name": "admin";
|
|
11092
|
-
"signer": true;
|
|
11093
|
-
},
|
|
11094
11090
|
{
|
|
11095
11091
|
"name": "state";
|
|
11096
11092
|
"writable": true;
|
|
11093
|
+
},
|
|
11094
|
+
{
|
|
11095
|
+
"name": "admin";
|
|
11096
|
+
"signer": true;
|
|
11097
11097
|
}
|
|
11098
11098
|
];
|
|
11099
11099
|
"args": [
|
|
@@ -11081,13 +11081,13 @@
|
|
|
11081
11081
|
133
|
|
11082
11082
|
],
|
|
11083
11083
|
"accounts": [
|
|
11084
|
-
{
|
|
11085
|
-
"name": "admin",
|
|
11086
|
-
"signer": true
|
|
11087
|
-
},
|
|
11088
11084
|
{
|
|
11089
11085
|
"name": "state",
|
|
11090
11086
|
"writable": true
|
|
11087
|
+
},
|
|
11088
|
+
{
|
|
11089
|
+
"name": "admin",
|
|
11090
|
+
"signer": true
|
|
11091
11091
|
}
|
|
11092
11092
|
],
|
|
11093
11093
|
"args": [
|
package/lib/browser/keypair.d.ts
CHANGED
|
@@ -1,2 +1,10 @@
|
|
|
1
1
|
import { Keypair } from '@solana/web3.js';
|
|
2
|
+
/**
|
|
3
|
+
* Loads a Solana `Keypair` from a private key given in any of the common CLI/env formats.
|
|
4
|
+
* @param privateKey - One of: a filesystem path to a JSON keypair file (checked first via
|
|
5
|
+
* `fs.existsSync`); a JSON array string (e.g. `"[1,2,3,...]"`); a comma-separated list of byte
|
|
6
|
+
* values (e.g. `"1,2,3,..."`); or a base58-encoded secret key string (whitespace is stripped).
|
|
7
|
+
* @returns The decoded `Keypair`.
|
|
8
|
+
* @throws Error (from `Keypair.fromSecretKey`) if the decoded bytes are not a valid 64-byte secret key.
|
|
9
|
+
*/
|
|
2
10
|
export declare function loadKeypair(privateKey: string): Keypair;
|
package/lib/browser/keypair.js
CHANGED
|
@@ -7,6 +7,14 @@ exports.loadKeypair = void 0;
|
|
|
7
7
|
const fs_1 = __importDefault(require("fs"));
|
|
8
8
|
const bs58_1 = __importDefault(require("bs58"));
|
|
9
9
|
const web3_js_1 = require("@solana/web3.js");
|
|
10
|
+
/**
|
|
11
|
+
* Loads a Solana `Keypair` from a private key given in any of the common CLI/env formats.
|
|
12
|
+
* @param privateKey - One of: a filesystem path to a JSON keypair file (checked first via
|
|
13
|
+
* `fs.existsSync`); a JSON array string (e.g. `"[1,2,3,...]"`); a comma-separated list of byte
|
|
14
|
+
* values (e.g. `"1,2,3,..."`); or a base58-encoded secret key string (whitespace is stripped).
|
|
15
|
+
* @returns The decoded `Keypair`.
|
|
16
|
+
* @throws Error (from `Keypair.fromSecretKey`) if the decoded bytes are not a valid 64-byte secret key.
|
|
17
|
+
*/
|
|
10
18
|
function loadKeypair(privateKey) {
|
|
11
19
|
// try to load privateKey as a filepath
|
|
12
20
|
let loadedKey;
|