@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
package/lib/node/math/utils.js
CHANGED
|
@@ -3,10 +3,28 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.numberToSafeBN = exports.isBNSafe = exports.checkSameDate = exports.timeRemainingUntilUpdate = exports.sigNum = exports.divCeil = exports.squareRootBN = exports.clampBN = void 0;
|
|
4
4
|
const anchor_1 = require("../isomorphic/anchor");
|
|
5
5
|
const numericConstants_1 = require("../constants/numericConstants");
|
|
6
|
+
/**
|
|
7
|
+
* Clamps `x` to the inclusive range `[min, max]`.
|
|
8
|
+
*
|
|
9
|
+
* @param {BN} x - The value to clamp
|
|
10
|
+
* @param {BN} min - The lower bound
|
|
11
|
+
* @param {BN} max - The upper bound
|
|
12
|
+
* @return {BN} `x` if within range, otherwise `min` or `max`
|
|
13
|
+
*/
|
|
6
14
|
function clampBN(x, min, max) {
|
|
7
15
|
return anchor_1.BN.max(min, anchor_1.BN.min(x, max));
|
|
8
16
|
}
|
|
9
17
|
exports.clampBN = clampBN;
|
|
18
|
+
/**
|
|
19
|
+
* Integer square root via binary recursion, floored to the nearest integer (i.e.
|
|
20
|
+
* `squareRootBN(n) === Math.floor(Math.sqrt(n))` for values representable as a double). Used
|
|
21
|
+
* throughout the AMM math wherever the program takes an integer sqrt of the constant-product
|
|
22
|
+
* invariant.
|
|
23
|
+
*
|
|
24
|
+
* @param {BN} n - A non-negative integer
|
|
25
|
+
* @return {BN} `floor(sqrt(n))`
|
|
26
|
+
* @throws {Error} If `n` is negative
|
|
27
|
+
*/
|
|
10
28
|
const squareRootBN = (n) => {
|
|
11
29
|
if (n.lt(new anchor_1.BN(0))) {
|
|
12
30
|
throw new Error('Sqrt only works on non-negtiave inputs');
|
|
@@ -24,6 +42,17 @@ const squareRootBN = (n) => {
|
|
|
24
42
|
}
|
|
25
43
|
};
|
|
26
44
|
exports.squareRootBN = squareRootBN;
|
|
45
|
+
/**
|
|
46
|
+
* Integer division rounded up (ceiling), mirroring the program's unsigned `safe_div_ceil` (e.g.
|
|
47
|
+
* used for borrow token amounts, where rounding up favors the protocol/lenders over the
|
|
48
|
+
* borrower). Only meaningful for non-negative operands — `bn.js`'s `.mod()` returns a remainder
|
|
49
|
+
* with the sign of the dividend, so this is not a general-purpose ceiling division for signed
|
|
50
|
+
* inputs.
|
|
51
|
+
*
|
|
52
|
+
* @param {BN} a - The dividend (expected non-negative)
|
|
53
|
+
* @param {BN} b - The divisor (expected positive)
|
|
54
|
+
* @return {BN} `ceil(a / b)`
|
|
55
|
+
*/
|
|
27
56
|
const divCeil = (a, b) => {
|
|
28
57
|
const quotient = a.div(b);
|
|
29
58
|
const remainder = a.mod(b);
|
|
@@ -35,17 +64,27 @@ const divCeil = (a, b) => {
|
|
|
35
64
|
}
|
|
36
65
|
};
|
|
37
66
|
exports.divCeil = divCeil;
|
|
67
|
+
/**
|
|
68
|
+
* Sign function returning ±1 (never 0).
|
|
69
|
+
*
|
|
70
|
+
* @param {BN} x - The value to test
|
|
71
|
+
* @return {BN} `-1` if `x` is negative, otherwise `1` (including for zero)
|
|
72
|
+
*/
|
|
38
73
|
const sigNum = (x) => {
|
|
39
74
|
return x.isNeg() ? new anchor_1.BN(-1) : new anchor_1.BN(1);
|
|
40
75
|
};
|
|
41
76
|
exports.sigNum = sigNum;
|
|
42
77
|
/**
|
|
43
|
-
*
|
|
44
|
-
*
|
|
45
|
-
*
|
|
46
|
-
*
|
|
47
|
-
*
|
|
48
|
-
*
|
|
78
|
+
* Calculates the time remaining until the next update is eligible under a rounded, "on-the-hour"
|
|
79
|
+
* update schedule. Used for perp funding rate updates and revenue-to-insurance-fund sweeps: if the
|
|
80
|
+
* last update landed within 1/3 of `updatePeriod` of an hour boundary, the next update is allowed
|
|
81
|
+
* on that boundary; otherwise it's pushed to the following boundary (two periods out) to avoid
|
|
82
|
+
* drifting the schedule off-hour. Returns zero once the wait has already elapsed.
|
|
83
|
+
*
|
|
84
|
+
* @param {BN} now - Current unix timestamp, seconds
|
|
85
|
+
* @param {BN} lastUpdateTs - Unix timestamp of the last update, seconds
|
|
86
|
+
* @param {BN} updatePeriod - Desired interval between updates, seconds
|
|
87
|
+
* @return {BN} Seconds remaining until the next update is eligible (zero if already due)
|
|
49
88
|
*/
|
|
50
89
|
function timeRemainingUntilUpdate(now, lastUpdateTs, updatePeriod) {
|
|
51
90
|
const timeSinceLastUpdate = now.sub(lastUpdateTs);
|
|
@@ -77,6 +116,15 @@ function timeRemainingUntilUpdate(now, lastUpdateTs, updatePeriod) {
|
|
|
77
116
|
return timeRemainingUntilUpdate;
|
|
78
117
|
}
|
|
79
118
|
exports.timeRemainingUntilUpdate = timeRemainingUntilUpdate;
|
|
119
|
+
/**
|
|
120
|
+
* Compares two date strings for equality by calendar day (year/month/date), ignoring
|
|
121
|
+
* time-of-day. Uses the local `getDate()`/`getMonth()`/`getFullYear()` getters, so the
|
|
122
|
+
* comparison is against the process's local-timezone calendar day (not UTC).
|
|
123
|
+
*
|
|
124
|
+
* @param {string} dateString1 - A date string parseable by `new Date()`
|
|
125
|
+
* @param {string} dateString2 - A date string parseable by `new Date()`
|
|
126
|
+
* @return {boolean} Whether both parse to the same calendar day
|
|
127
|
+
*/
|
|
80
128
|
const checkSameDate = (dateString1, dateString2) => {
|
|
81
129
|
const date1 = new Date(dateString1);
|
|
82
130
|
const date2 = new Date(dateString2);
|
|
@@ -86,14 +134,28 @@ const checkSameDate = (dateString1, dateString2) => {
|
|
|
86
134
|
return isSameDate;
|
|
87
135
|
};
|
|
88
136
|
exports.checkSameDate = checkSameDate;
|
|
137
|
+
/**
|
|
138
|
+
* True if `number` is within `Number.MAX_SAFE_INTEGER` (2^53 - 1), i.e. safe to convert to a
|
|
139
|
+
* `BN` via a JS `number` without losing precision.
|
|
140
|
+
*
|
|
141
|
+
* @param {number} number - The value to check (typically already multiplied by a target precision)
|
|
142
|
+
* @return {boolean} Whether `number` can be represented exactly as a JS number
|
|
143
|
+
*/
|
|
89
144
|
function isBNSafe(number) {
|
|
90
145
|
return number <= 0x1fffffffffffff;
|
|
91
146
|
}
|
|
92
147
|
exports.isBNSafe = isBNSafe;
|
|
93
148
|
/**
|
|
94
|
-
* Converts a
|
|
95
|
-
*
|
|
96
|
-
*
|
|
149
|
+
* Converts a human-readable JS `number` into a `BN` scaled by `precision`, routing through a
|
|
150
|
+
* string conversion (`number.toString()` for whole numbers) instead of `number * precision` when
|
|
151
|
+
* the naive multiplication would exceed `Number.MAX_SAFE_INTEGER` (per `isBNSafe`), avoiding
|
|
152
|
+
* silent floating-point precision loss for large inputs. Note a fractional input whose scaled
|
|
153
|
+
* value exceeds `Number.MAX_SAFE_INTEGER` has its fractional part truncated (`bn.js` accepts only
|
|
154
|
+
* integer numbers); this is intentional and pinned by `tests/bn/test.ts`.
|
|
155
|
+
*
|
|
156
|
+
* @param {number} number - The human-readable amount to convert
|
|
157
|
+
* @param {BN} precision - The target fixed-point precision (e.g. `QUOTE_PRECISION`, `BASE_PRECISION`)
|
|
158
|
+
* @return {BN} `number` scaled by `precision`
|
|
97
159
|
*/
|
|
98
160
|
function numberToSafeBN(number, precision) {
|
|
99
161
|
// check if number has decimals
|
package/lib/node/memcmp.d.ts
CHANGED
|
@@ -1,18 +1,112 @@
|
|
|
1
1
|
import { MemcmpFilter, PublicKey } from '@solana/web3.js';
|
|
2
|
+
/**
|
|
3
|
+
* Builds a `getProgramAccounts` memcmp filter matching the 8-byte Anchor discriminator of the
|
|
4
|
+
* `User` account type at offset 0. Use to fetch all `User` (sub-account) accounts.
|
|
5
|
+
* @returns A memcmp filter for `User` accounts.
|
|
6
|
+
*/
|
|
2
7
|
export declare function getUserFilter(): MemcmpFilter;
|
|
8
|
+
/**
|
|
9
|
+
* Builds a memcmp filter matching `User` accounts whose `idle` flag (offset 4470) is `false`.
|
|
10
|
+
* Idle sub-accounts have no open positions/orders and have been inactive past the idle threshold;
|
|
11
|
+
* this filter excludes them, e.g. when scanning for accounts that need active monitoring.
|
|
12
|
+
* @returns A memcmp filter for non-idle `User` accounts.
|
|
13
|
+
*/
|
|
3
14
|
export declare function getNonIdleUserFilter(): MemcmpFilter;
|
|
15
|
+
/**
|
|
16
|
+
* Builds a memcmp filter matching `User` accounts with `hasOpenOrder` (offset 4472) set to `true`
|
|
17
|
+
* — i.e. at least one live order. Used by the DLOB to fetch only accounts that can populate the
|
|
18
|
+
* order book.
|
|
19
|
+
* @returns A memcmp filter for `User` accounts with at least one open order.
|
|
20
|
+
*/
|
|
4
21
|
export declare function getUserWithOrderFilter(): MemcmpFilter;
|
|
22
|
+
/**
|
|
23
|
+
* Builds a memcmp filter matching `User` accounts with `hasOpenOrder` (offset 4472) set to `false`
|
|
24
|
+
* — i.e. no live orders.
|
|
25
|
+
* @returns A memcmp filter for `User` accounts with no open orders.
|
|
26
|
+
*/
|
|
5
27
|
export declare function getUserWithoutOrderFilter(): MemcmpFilter;
|
|
28
|
+
/**
|
|
29
|
+
* Builds a memcmp filter matching `User` accounts with `hasOpenAuction` (offset 4474) set to
|
|
30
|
+
* `true` — i.e. at least one order still in its Dutch-auction window.
|
|
31
|
+
* @returns A memcmp filter for `User` accounts with an active order auction.
|
|
32
|
+
*/
|
|
6
33
|
export declare function getUserWithAuctionFilter(): MemcmpFilter;
|
|
34
|
+
/**
|
|
35
|
+
* Builds a memcmp filter matching `User` accounts whose `name` field (32 bytes, offset 72) equals
|
|
36
|
+
* `name` once encoded/padded the same way as on-chain.
|
|
37
|
+
* @param name - Human-readable sub-account name to match; encoded via `encodeName` (UTF-8,
|
|
38
|
+
* space-padded/truncated to 32 bytes) before comparison.
|
|
39
|
+
* @returns A memcmp filter for `User` accounts with the given name.
|
|
40
|
+
*/
|
|
7
41
|
export declare function getUserWithName(name: string): MemcmpFilter;
|
|
42
|
+
/**
|
|
43
|
+
* Builds a memcmp filter matching `User` accounts whose `poolId` (single byte, offset 4475) equals
|
|
44
|
+
* `poolId`. Used to scope account scans to a specific isolated pool.
|
|
45
|
+
* @param poolId - Pool id byte (0 = main/cross pool) to match.
|
|
46
|
+
* @returns A memcmp filter for `User` accounts in the given pool.
|
|
47
|
+
*/
|
|
8
48
|
export declare function getUsersWithPoolId(poolId: number): MemcmpFilter;
|
|
49
|
+
/**
|
|
50
|
+
* Builds a `getProgramAccounts` memcmp filter matching the 8-byte Anchor discriminator of the
|
|
51
|
+
* `UserStats` account type at offset 0. Use to fetch all `UserStats` accounts.
|
|
52
|
+
* @returns A memcmp filter for `UserStats` accounts.
|
|
53
|
+
*/
|
|
9
54
|
export declare function getUserStatsFilter(): MemcmpFilter;
|
|
55
|
+
/**
|
|
56
|
+
* Builds a memcmp filter matching `UserStats` accounts whose `referrerStatus` bitflag byte (offset
|
|
57
|
+
* 164) is exactly `ReferrerStatus.IsReferred` (2) — i.e. the account was referred and is *not*
|
|
58
|
+
* also flagged `IsReferrer`. Because memcmp does an exact byte match rather than a bitwise test,
|
|
59
|
+
* this excludes accounts that are both `IsReferrer` and `IsReferred` (byte value 3); use
|
|
60
|
+
* `getUserStatsIsReferredOrReferrerFilter` for that combined case.
|
|
61
|
+
* @returns A memcmp filter for `UserStats` accounts referred by (but not also referring) another user.
|
|
62
|
+
*/
|
|
10
63
|
export declare function getUserStatsIsReferredFilter(): MemcmpFilter;
|
|
64
|
+
/**
|
|
65
|
+
* Builds a memcmp filter matching `UserStats` accounts whose `referrerStatus` bitflag byte (offset
|
|
66
|
+
* 164) is exactly 3 — i.e. `ReferrerStatus.IsReferrer | ReferrerStatus.IsReferred` both set on the
|
|
67
|
+
* same account. Despite the name, this is an exact-byte match (memcmp can't test bits in
|
|
68
|
+
* isolation), so it does *not* match an account that is only `IsReferrer` (1) or only `IsReferred`
|
|
69
|
+
* (2) — use `getUserStatsIsReferredFilter` for the referred-only case.
|
|
70
|
+
* @returns A memcmp filter for `UserStats` accounts with both the referrer and referred flags set.
|
|
71
|
+
*/
|
|
11
72
|
export declare function getUserStatsIsReferredOrReferrerFilter(): MemcmpFilter;
|
|
73
|
+
/**
|
|
74
|
+
* Builds a `getProgramAccounts` memcmp filter matching the 8-byte Anchor discriminator of the
|
|
75
|
+
* `SignedMsgUserOrders` account type at offset 0. Use to fetch all swift/signed-message order
|
|
76
|
+
* accounts.
|
|
77
|
+
* @returns A memcmp filter for `SignedMsgUserOrders` accounts.
|
|
78
|
+
*/
|
|
12
79
|
export declare function getSignedMsgUserOrdersFilter(): MemcmpFilter;
|
|
80
|
+
/**
|
|
81
|
+
* Builds a `getProgramAccounts` memcmp filter matching the 8-byte Anchor discriminator of the
|
|
82
|
+
* `PerpMarket` account type at offset 0. Use to fetch all perp market accounts.
|
|
83
|
+
* @returns A memcmp filter for `PerpMarket` accounts.
|
|
84
|
+
*/
|
|
13
85
|
export declare function getPerpMarketAccountsFilter(): MemcmpFilter;
|
|
86
|
+
/**
|
|
87
|
+
* Builds a `getProgramAccounts` memcmp filter matching the 8-byte Anchor discriminator of the
|
|
88
|
+
* `SpotMarket` account type at offset 0. Use to fetch all spot market accounts.
|
|
89
|
+
* @returns A memcmp filter for `SpotMarket` accounts.
|
|
90
|
+
*/
|
|
14
91
|
export declare function getSpotMarketAccountsFilter(): MemcmpFilter;
|
|
92
|
+
/**
|
|
93
|
+
* Builds a `getProgramAccounts` memcmp filter matching the 8-byte Anchor discriminator of the
|
|
94
|
+
* `RevenueShareEscrow` account type at offset 0. Use to fetch all revenue-share escrow accounts
|
|
95
|
+
* (builder-fee approvals/referral state).
|
|
96
|
+
* @returns A memcmp filter for `RevenueShareEscrow` accounts.
|
|
97
|
+
*/
|
|
15
98
|
export declare function getRevenueShareEscrowFilter(): MemcmpFilter;
|
|
99
|
+
/**
|
|
100
|
+
* Builds a `getProgramAccounts` memcmp filter matching the 8-byte Anchor discriminator of the
|
|
101
|
+
* `Constituent` account type at offset 0. Use to fetch all LP-pool constituent accounts.
|
|
102
|
+
* @returns A memcmp filter for `Constituent` accounts.
|
|
103
|
+
*/
|
|
16
104
|
export declare function getConstituentFilter(): MemcmpFilter;
|
|
105
|
+
/**
|
|
106
|
+
* Builds a memcmp filter matching `Constituent` accounts belonging to a specific LP pool, by
|
|
107
|
+
* comparing the `lpPool` pubkey field (32 bytes, offset 72) against `lpPoolPublicKey`.
|
|
108
|
+
* @param lpPoolPublicKey - The `LpPool` account's pubkey to match constituents against.
|
|
109
|
+
* @returns A memcmp filter for `Constituent` accounts of the given LP pool.
|
|
110
|
+
*/
|
|
17
111
|
export declare function getConstituentLpPoolFilter(lpPoolPublicKey: PublicKey): MemcmpFilter;
|
|
18
112
|
//# sourceMappingURL=memcmp.d.ts.map
|
package/lib/node/memcmp.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memcmp.d.ts","sourceRoot":"","sources":["../../src/memcmp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAK1D,wBAAgB,aAAa,IAAI,YAAY,CAO5C;AAwBD,wBAAgB,oBAAoB,IAAI,YAAY,CAOnD;AAED,wBAAgB,sBAAsB,IAAI,YAAY,CAOrD;AAED,wBAAgB,yBAAyB,IAAI,YAAY,CAOxD;AAED,wBAAgB,wBAAwB,IAAI,YAAY,CAOvD;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,CAO1D;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,CAO/D;AAED,wBAAgB,kBAAkB,IAAI,YAAY,CAOjD;
|
|
1
|
+
{"version":3,"file":"memcmp.d.ts","sourceRoot":"","sources":["../../src/memcmp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAK1D;;;;GAIG;AACH,wBAAgB,aAAa,IAAI,YAAY,CAO5C;AAwBD;;;;;GAKG;AACH,wBAAgB,oBAAoB,IAAI,YAAY,CAOnD;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,IAAI,YAAY,CAOrD;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,IAAI,YAAY,CAOxD;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,IAAI,YAAY,CAOvD;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,CAO1D;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,CAO/D;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,IAAI,YAAY,CAOjD;AAUD;;;;;;;GAOG;AACH,wBAAgB,4BAA4B,IAAI,YAAY,CAO3D;AAED;;;;;;;GAOG;AACH,wBAAgB,sCAAsC,IAAI,YAAY,CAOrE;AAED;;;;;GAKG;AACH,wBAAgB,4BAA4B,IAAI,YAAY,CAS3D;AAED;;;;GAIG;AACH,wBAAgB,2BAA2B,IAAI,YAAY,CAO1D;AACD;;;;GAIG;AACH,wBAAgB,2BAA2B,IAAI,YAAY,CAO1D;AAED;;;;;GAKG;AACH,wBAAgB,2BAA2B,IAAI,YAAY,CAS1D;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,IAAI,YAAY,CASnD;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,CACzC,eAAe,EAAE,SAAS,GACxB,YAAY,CAOd"}
|
package/lib/node/memcmp.js
CHANGED
|
@@ -7,6 +7,11 @@ exports.getConstituentLpPoolFilter = exports.getConstituentFilter = exports.getR
|
|
|
7
7
|
const bs58_1 = __importDefault(require("bs58"));
|
|
8
8
|
const anchor29_1 = require("./isomorphic/anchor29");
|
|
9
9
|
const userName_1 = require("./userName");
|
|
10
|
+
/**
|
|
11
|
+
* Builds a `getProgramAccounts` memcmp filter matching the 8-byte Anchor discriminator of the
|
|
12
|
+
* `User` account type at offset 0. Use to fetch all `User` (sub-account) accounts.
|
|
13
|
+
* @returns A memcmp filter for `User` accounts.
|
|
14
|
+
*/
|
|
10
15
|
function getUserFilter() {
|
|
11
16
|
return {
|
|
12
17
|
memcmp: {
|
|
@@ -37,6 +42,12 @@ const USER_IDLE_OFFSET = 4470;
|
|
|
37
42
|
const USER_HAS_OPEN_ORDER_OFFSET = 4472;
|
|
38
43
|
const USER_HAS_OPEN_AUCTION_OFFSET = 4474;
|
|
39
44
|
const USER_POOL_ID_OFFSET = 4475;
|
|
45
|
+
/**
|
|
46
|
+
* Builds a memcmp filter matching `User` accounts whose `idle` flag (offset 4470) is `false`.
|
|
47
|
+
* Idle sub-accounts have no open positions/orders and have been inactive past the idle threshold;
|
|
48
|
+
* this filter excludes them, e.g. when scanning for accounts that need active monitoring.
|
|
49
|
+
* @returns A memcmp filter for non-idle `User` accounts.
|
|
50
|
+
*/
|
|
40
51
|
function getNonIdleUserFilter() {
|
|
41
52
|
return {
|
|
42
53
|
memcmp: {
|
|
@@ -46,6 +57,12 @@ function getNonIdleUserFilter() {
|
|
|
46
57
|
};
|
|
47
58
|
}
|
|
48
59
|
exports.getNonIdleUserFilter = getNonIdleUserFilter;
|
|
60
|
+
/**
|
|
61
|
+
* Builds a memcmp filter matching `User` accounts with `hasOpenOrder` (offset 4472) set to `true`
|
|
62
|
+
* — i.e. at least one live order. Used by the DLOB to fetch only accounts that can populate the
|
|
63
|
+
* order book.
|
|
64
|
+
* @returns A memcmp filter for `User` accounts with at least one open order.
|
|
65
|
+
*/
|
|
49
66
|
function getUserWithOrderFilter() {
|
|
50
67
|
return {
|
|
51
68
|
memcmp: {
|
|
@@ -55,6 +72,11 @@ function getUserWithOrderFilter() {
|
|
|
55
72
|
};
|
|
56
73
|
}
|
|
57
74
|
exports.getUserWithOrderFilter = getUserWithOrderFilter;
|
|
75
|
+
/**
|
|
76
|
+
* Builds a memcmp filter matching `User` accounts with `hasOpenOrder` (offset 4472) set to `false`
|
|
77
|
+
* — i.e. no live orders.
|
|
78
|
+
* @returns A memcmp filter for `User` accounts with no open orders.
|
|
79
|
+
*/
|
|
58
80
|
function getUserWithoutOrderFilter() {
|
|
59
81
|
return {
|
|
60
82
|
memcmp: {
|
|
@@ -64,6 +86,11 @@ function getUserWithoutOrderFilter() {
|
|
|
64
86
|
};
|
|
65
87
|
}
|
|
66
88
|
exports.getUserWithoutOrderFilter = getUserWithoutOrderFilter;
|
|
89
|
+
/**
|
|
90
|
+
* Builds a memcmp filter matching `User` accounts with `hasOpenAuction` (offset 4474) set to
|
|
91
|
+
* `true` — i.e. at least one order still in its Dutch-auction window.
|
|
92
|
+
* @returns A memcmp filter for `User` accounts with an active order auction.
|
|
93
|
+
*/
|
|
67
94
|
function getUserWithAuctionFilter() {
|
|
68
95
|
return {
|
|
69
96
|
memcmp: {
|
|
@@ -73,6 +100,13 @@ function getUserWithAuctionFilter() {
|
|
|
73
100
|
};
|
|
74
101
|
}
|
|
75
102
|
exports.getUserWithAuctionFilter = getUserWithAuctionFilter;
|
|
103
|
+
/**
|
|
104
|
+
* Builds a memcmp filter matching `User` accounts whose `name` field (32 bytes, offset 72) equals
|
|
105
|
+
* `name` once encoded/padded the same way as on-chain.
|
|
106
|
+
* @param name - Human-readable sub-account name to match; encoded via `encodeName` (UTF-8,
|
|
107
|
+
* space-padded/truncated to 32 bytes) before comparison.
|
|
108
|
+
* @returns A memcmp filter for `User` accounts with the given name.
|
|
109
|
+
*/
|
|
76
110
|
function getUserWithName(name) {
|
|
77
111
|
return {
|
|
78
112
|
memcmp: {
|
|
@@ -82,6 +116,12 @@ function getUserWithName(name) {
|
|
|
82
116
|
};
|
|
83
117
|
}
|
|
84
118
|
exports.getUserWithName = getUserWithName;
|
|
119
|
+
/**
|
|
120
|
+
* Builds a memcmp filter matching `User` accounts whose `poolId` (single byte, offset 4475) equals
|
|
121
|
+
* `poolId`. Used to scope account scans to a specific isolated pool.
|
|
122
|
+
* @param poolId - Pool id byte (0 = main/cross pool) to match.
|
|
123
|
+
* @returns A memcmp filter for `User` accounts in the given pool.
|
|
124
|
+
*/
|
|
85
125
|
function getUsersWithPoolId(poolId) {
|
|
86
126
|
return {
|
|
87
127
|
memcmp: {
|
|
@@ -91,6 +131,11 @@ function getUsersWithPoolId(poolId) {
|
|
|
91
131
|
};
|
|
92
132
|
}
|
|
93
133
|
exports.getUsersWithPoolId = getUsersWithPoolId;
|
|
134
|
+
/**
|
|
135
|
+
* Builds a `getProgramAccounts` memcmp filter matching the 8-byte Anchor discriminator of the
|
|
136
|
+
* `UserStats` account type at offset 0. Use to fetch all `UserStats` accounts.
|
|
137
|
+
* @returns A memcmp filter for `UserStats` accounts.
|
|
138
|
+
*/
|
|
94
139
|
function getUserStatsFilter() {
|
|
95
140
|
return {
|
|
96
141
|
memcmp: {
|
|
@@ -100,24 +145,53 @@ function getUserStatsFilter() {
|
|
|
100
145
|
};
|
|
101
146
|
}
|
|
102
147
|
exports.getUserStatsFilter = getUserStatsFilter;
|
|
148
|
+
/*
|
|
149
|
+
* Byte offset of `referrer_status` in the `UserStats` account: 8 (discriminator)
|
|
150
|
+
* + authority(32) + referrer(32) + fees(32) + maker/taker/filler volume 30d(24)
|
|
151
|
+
* + last maker/taker/filler volume 30d ts(24) + if_staked_quote_asset_amount(8)
|
|
152
|
+
* + number_of_sub_accounts(2) + number_of_sub_accounts_created(2) = 164.
|
|
153
|
+
*/
|
|
154
|
+
const USER_STATS_REFERRER_STATUS_OFFSET = 164;
|
|
155
|
+
/**
|
|
156
|
+
* Builds a memcmp filter matching `UserStats` accounts whose `referrerStatus` bitflag byte (offset
|
|
157
|
+
* 164) is exactly `ReferrerStatus.IsReferred` (2) — i.e. the account was referred and is *not*
|
|
158
|
+
* also flagged `IsReferrer`. Because memcmp does an exact byte match rather than a bitwise test,
|
|
159
|
+
* this excludes accounts that are both `IsReferrer` and `IsReferred` (byte value 3); use
|
|
160
|
+
* `getUserStatsIsReferredOrReferrerFilter` for that combined case.
|
|
161
|
+
* @returns A memcmp filter for `UserStats` accounts referred by (but not also referring) another user.
|
|
162
|
+
*/
|
|
103
163
|
function getUserStatsIsReferredFilter() {
|
|
104
164
|
return {
|
|
105
165
|
memcmp: {
|
|
106
|
-
offset:
|
|
166
|
+
offset: USER_STATS_REFERRER_STATUS_OFFSET,
|
|
107
167
|
bytes: bs58_1.default.encode(Buffer.from(Uint8Array.from([2]))),
|
|
108
168
|
},
|
|
109
169
|
};
|
|
110
170
|
}
|
|
111
171
|
exports.getUserStatsIsReferredFilter = getUserStatsIsReferredFilter;
|
|
172
|
+
/**
|
|
173
|
+
* Builds a memcmp filter matching `UserStats` accounts whose `referrerStatus` bitflag byte (offset
|
|
174
|
+
* 164) is exactly 3 — i.e. `ReferrerStatus.IsReferrer | ReferrerStatus.IsReferred` both set on the
|
|
175
|
+
* same account. Despite the name, this is an exact-byte match (memcmp can't test bits in
|
|
176
|
+
* isolation), so it does *not* match an account that is only `IsReferrer` (1) or only `IsReferred`
|
|
177
|
+
* (2) — use `getUserStatsIsReferredFilter` for the referred-only case.
|
|
178
|
+
* @returns A memcmp filter for `UserStats` accounts with both the referrer and referred flags set.
|
|
179
|
+
*/
|
|
112
180
|
function getUserStatsIsReferredOrReferrerFilter() {
|
|
113
181
|
return {
|
|
114
182
|
memcmp: {
|
|
115
|
-
offset:
|
|
183
|
+
offset: USER_STATS_REFERRER_STATUS_OFFSET,
|
|
116
184
|
bytes: bs58_1.default.encode(Buffer.from(Uint8Array.from([3]))),
|
|
117
185
|
},
|
|
118
186
|
};
|
|
119
187
|
}
|
|
120
188
|
exports.getUserStatsIsReferredOrReferrerFilter = getUserStatsIsReferredOrReferrerFilter;
|
|
189
|
+
/**
|
|
190
|
+
* Builds a `getProgramAccounts` memcmp filter matching the 8-byte Anchor discriminator of the
|
|
191
|
+
* `SignedMsgUserOrders` account type at offset 0. Use to fetch all swift/signed-message order
|
|
192
|
+
* accounts.
|
|
193
|
+
* @returns A memcmp filter for `SignedMsgUserOrders` accounts.
|
|
194
|
+
*/
|
|
121
195
|
function getSignedMsgUserOrdersFilter() {
|
|
122
196
|
return {
|
|
123
197
|
memcmp: {
|
|
@@ -127,6 +201,11 @@ function getSignedMsgUserOrdersFilter() {
|
|
|
127
201
|
};
|
|
128
202
|
}
|
|
129
203
|
exports.getSignedMsgUserOrdersFilter = getSignedMsgUserOrdersFilter;
|
|
204
|
+
/**
|
|
205
|
+
* Builds a `getProgramAccounts` memcmp filter matching the 8-byte Anchor discriminator of the
|
|
206
|
+
* `PerpMarket` account type at offset 0. Use to fetch all perp market accounts.
|
|
207
|
+
* @returns A memcmp filter for `PerpMarket` accounts.
|
|
208
|
+
*/
|
|
130
209
|
function getPerpMarketAccountsFilter() {
|
|
131
210
|
return {
|
|
132
211
|
memcmp: {
|
|
@@ -136,6 +215,11 @@ function getPerpMarketAccountsFilter() {
|
|
|
136
215
|
};
|
|
137
216
|
}
|
|
138
217
|
exports.getPerpMarketAccountsFilter = getPerpMarketAccountsFilter;
|
|
218
|
+
/**
|
|
219
|
+
* Builds a `getProgramAccounts` memcmp filter matching the 8-byte Anchor discriminator of the
|
|
220
|
+
* `SpotMarket` account type at offset 0. Use to fetch all spot market accounts.
|
|
221
|
+
* @returns A memcmp filter for `SpotMarket` accounts.
|
|
222
|
+
*/
|
|
139
223
|
function getSpotMarketAccountsFilter() {
|
|
140
224
|
return {
|
|
141
225
|
memcmp: {
|
|
@@ -145,6 +229,12 @@ function getSpotMarketAccountsFilter() {
|
|
|
145
229
|
};
|
|
146
230
|
}
|
|
147
231
|
exports.getSpotMarketAccountsFilter = getSpotMarketAccountsFilter;
|
|
232
|
+
/**
|
|
233
|
+
* Builds a `getProgramAccounts` memcmp filter matching the 8-byte Anchor discriminator of the
|
|
234
|
+
* `RevenueShareEscrow` account type at offset 0. Use to fetch all revenue-share escrow accounts
|
|
235
|
+
* (builder-fee approvals/referral state).
|
|
236
|
+
* @returns A memcmp filter for `RevenueShareEscrow` accounts.
|
|
237
|
+
*/
|
|
148
238
|
function getRevenueShareEscrowFilter() {
|
|
149
239
|
return {
|
|
150
240
|
memcmp: {
|
|
@@ -154,6 +244,11 @@ function getRevenueShareEscrowFilter() {
|
|
|
154
244
|
};
|
|
155
245
|
}
|
|
156
246
|
exports.getRevenueShareEscrowFilter = getRevenueShareEscrowFilter;
|
|
247
|
+
/**
|
|
248
|
+
* Builds a `getProgramAccounts` memcmp filter matching the 8-byte Anchor discriminator of the
|
|
249
|
+
* `Constituent` account type at offset 0. Use to fetch all LP-pool constituent accounts.
|
|
250
|
+
* @returns A memcmp filter for `Constituent` accounts.
|
|
251
|
+
*/
|
|
157
252
|
function getConstituentFilter() {
|
|
158
253
|
return {
|
|
159
254
|
memcmp: {
|
|
@@ -163,6 +258,12 @@ function getConstituentFilter() {
|
|
|
163
258
|
};
|
|
164
259
|
}
|
|
165
260
|
exports.getConstituentFilter = getConstituentFilter;
|
|
261
|
+
/**
|
|
262
|
+
* Builds a memcmp filter matching `Constituent` accounts belonging to a specific LP pool, by
|
|
263
|
+
* comparing the `lpPool` pubkey field (32 bytes, offset 72) against `lpPoolPublicKey`.
|
|
264
|
+
* @param lpPoolPublicKey - The `LpPool` account's pubkey to match constituents against.
|
|
265
|
+
* @returns A memcmp filter for `Constituent` accounts of the given LP pool.
|
|
266
|
+
*/
|
|
166
267
|
function getConstituentLpPoolFilter(lpPoolPublicKey) {
|
|
167
268
|
return {
|
|
168
269
|
memcmp: {
|
|
@@ -2,9 +2,25 @@ import { OracleClient } from './types';
|
|
|
2
2
|
import { OracleSource } from '../types';
|
|
3
3
|
import { Connection } from '@solana/web3.js';
|
|
4
4
|
import { VelocityProgram } from '../config';
|
|
5
|
+
/**
|
|
6
|
+
* Caches one `OracleClient` instance per oracle *source kind* (not per account), so repeated
|
|
7
|
+
* lookups for the same `OracleSource` variant (e.g. every `pyth1KPull` market) reuse a single
|
|
8
|
+
* adapter instead of constructing a new one each time.
|
|
9
|
+
*/
|
|
5
10
|
export declare class OracleClientCache {
|
|
6
11
|
cache: Map<string, OracleClient>;
|
|
7
12
|
constructor();
|
|
13
|
+
/**
|
|
14
|
+
* Returns the cached `OracleClient` for `oracleSource`'s variant key, constructing and caching
|
|
15
|
+
* one via `getOracleClient` on first use.
|
|
16
|
+
* @param oracleSource - Oracle source variant (its top-level key, e.g. `"pyth"`, is the cache key —
|
|
17
|
+
* note this means all sources sharing a variant name share one client instance regardless of any
|
|
18
|
+
* other fields on the variant).
|
|
19
|
+
* @param connection - RPC connection passed through to the client on construction.
|
|
20
|
+
* @param program - Velocity Anchor program, used by clients that decode via the program's IDL coder.
|
|
21
|
+
* @returns The `OracleClient` for this source variant.
|
|
22
|
+
* @throws Error (via `getOracleClient`) if `oracleSource` is not a recognized variant.
|
|
23
|
+
*/
|
|
8
24
|
get(oracleSource: OracleSource, connection: Connection, program: VelocityProgram): OracleClient | undefined;
|
|
9
25
|
}
|
|
10
26
|
//# sourceMappingURL=oracleClientCache.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oracleClientCache.d.ts","sourceRoot":"","sources":["../../../src/oracles/oracleClientCache.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAExC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAE5C,qBAAa,iBAAiB;IAC7B,KAAK,4BAAmC;;
|
|
1
|
+
{"version":3,"file":"oracleClientCache.d.ts","sourceRoot":"","sources":["../../../src/oracles/oracleClientCache.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAExC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAE5C;;;;GAIG;AACH,qBAAa,iBAAiB;IAC7B,KAAK,4BAAmC;;IAGxC;;;;;;;;;;OAUG;IACI,GAAG,CACT,YAAY,EAAE,YAAY,EAC1B,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,eAAe;CAWzB"}
|
|
@@ -2,10 +2,26 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.OracleClientCache = void 0;
|
|
4
4
|
const oracleClient_1 = require("../factory/oracleClient");
|
|
5
|
+
/**
|
|
6
|
+
* Caches one `OracleClient` instance per oracle *source kind* (not per account), so repeated
|
|
7
|
+
* lookups for the same `OracleSource` variant (e.g. every `pyth1KPull` market) reuse a single
|
|
8
|
+
* adapter instead of constructing a new one each time.
|
|
9
|
+
*/
|
|
5
10
|
class OracleClientCache {
|
|
6
11
|
constructor() {
|
|
7
12
|
this.cache = new Map();
|
|
8
13
|
}
|
|
14
|
+
/**
|
|
15
|
+
* Returns the cached `OracleClient` for `oracleSource`'s variant key, constructing and caching
|
|
16
|
+
* one via `getOracleClient` on first use.
|
|
17
|
+
* @param oracleSource - Oracle source variant (its top-level key, e.g. `"pyth"`, is the cache key —
|
|
18
|
+
* note this means all sources sharing a variant name share one client instance regardless of any
|
|
19
|
+
* other fields on the variant).
|
|
20
|
+
* @param connection - RPC connection passed through to the client on construction.
|
|
21
|
+
* @param program - Velocity Anchor program, used by clients that decode via the program's IDL coder.
|
|
22
|
+
* @returns The `OracleClient` for this source variant.
|
|
23
|
+
* @throws Error (via `getOracleClient`) if `oracleSource` is not a recognized variant.
|
|
24
|
+
*/
|
|
9
25
|
get(oracleSource, connection, program) {
|
|
10
26
|
const key = Object.keys(oracleSource)[0];
|
|
11
27
|
if (this.cache.has(key)) {
|
|
@@ -1,8 +1,39 @@
|
|
|
1
1
|
import { PublicKey } from '@solana/web3.js';
|
|
2
2
|
import { OracleSource } from '../types';
|
|
3
|
+
/**
|
|
4
|
+
* Maps an `OracleSource` enum-object (e.g. `{ pyth: {} }`) to its stable numeric encoding
|
|
5
|
+
* (`OracleSourceNum`) used as part of an oracle id string. This encoding is SDK-internal — it
|
|
6
|
+
* is not the on-chain Borsh discriminant (see `OracleSourceNum`).
|
|
7
|
+
* @param source - The oracle source variant.
|
|
8
|
+
* @returns The corresponding `OracleSourceNum` value.
|
|
9
|
+
* @throws Error if `source` doesn't match any known variant.
|
|
10
|
+
*/
|
|
3
11
|
export declare function getOracleSourceNum(source: OracleSource): number;
|
|
12
|
+
/**
|
|
13
|
+
* Inverse of `getOracleSourceNum`: maps a numeric `OracleSourceNum` back to its `OracleSource`
|
|
14
|
+
* enum-object.
|
|
15
|
+
* @param sourceNum - Numeric oracle source encoding.
|
|
16
|
+
* @returns The corresponding `OracleSource` variant.
|
|
17
|
+
* @throws Error if `sourceNum` doesn't match any known `OracleSourceNum` value.
|
|
18
|
+
*/
|
|
4
19
|
export declare function getOracleSourceFromNum(sourceNum: number): OracleSource;
|
|
20
|
+
/**
|
|
21
|
+
* Builds a stable string id for an oracle account, uniquely identifying it by both its address
|
|
22
|
+
* and the source/decoding scheme to use — the same pubkey can be interpreted under different
|
|
23
|
+
* `OracleSource`s (e.g. `pyth` vs `pyth1K`) with different results, so the pubkey alone is not a
|
|
24
|
+
* safe cache/map key.
|
|
25
|
+
* @param publicKey - The oracle account's address.
|
|
26
|
+
* @param source - The oracle source variant to decode it as.
|
|
27
|
+
* @returns A string of the form `"<base58 pubkey>-<OracleSourceNum>"`.
|
|
28
|
+
*/
|
|
5
29
|
export declare function getOracleId(publicKey: PublicKey, source: OracleSource): string;
|
|
30
|
+
/**
|
|
31
|
+
* Inverse of `getOracleId`: parses an oracle id string back into its pubkey and `OracleSource`.
|
|
32
|
+
* @param oracleId - An id string previously produced by `getOracleId`.
|
|
33
|
+
* @returns The decoded `publicKey` and `source`.
|
|
34
|
+
* @throws Error if the encoded source number doesn't match any known `OracleSourceNum` value, or
|
|
35
|
+
* `PublicKey` construction fails on a malformed id.
|
|
36
|
+
*/
|
|
6
37
|
export declare function getPublicKeyAndSourceFromOracleId(oracleId: string): {
|
|
7
38
|
publicKey: PublicKey;
|
|
8
39
|
source: OracleSource;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oracleId.d.ts","sourceRoot":"","sources":["../../../src/oracles/oracleId.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAmB,MAAM,UAAU,CAAC;AAEzD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"oracleId.d.ts","sourceRoot":"","sources":["../../../src/oracles/oracleId.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAmB,MAAM,UAAU,CAAC;AAEzD;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAsB/D;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,YAAY,CAsBtE;AAED;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAC1B,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,YAAY,GAClB,MAAM,CAER;AAED;;;;;;GAMG;AACH,wBAAgB,iCAAiC,CAAC,QAAQ,EAAE,MAAM,GAAG;IACpE,SAAS,EAAE,SAAS,CAAC;IACrB,MAAM,EAAE,YAAY,CAAC;CACrB,CAMA"}
|