@velocity-exchange/sdk 0.2.5 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +93 -0
- package/README.md +3 -3
- package/lib/browser/accounts/basicUserAccountSubscriber.d.ts +18 -0
- package/lib/browser/accounts/basicUserAccountSubscriber.js +18 -0
- package/lib/browser/accounts/basicUserStatsAccountSubscriber.d.ts +18 -0
- package/lib/browser/accounts/basicUserStatsAccountSubscriber.js +18 -0
- package/lib/browser/accounts/bulkAccountLoader.d.ts +52 -0
- package/lib/browser/accounts/bulkAccountLoader.js +51 -0
- package/lib/browser/accounts/bulkUserStatsSubscription.d.ts +9 -2
- package/lib/browser/accounts/bulkUserStatsSubscription.js +9 -2
- package/lib/browser/accounts/bulkUserSubscription.d.ts +8 -2
- package/lib/browser/accounts/bulkUserSubscription.js +8 -2
- package/lib/browser/accounts/customizedCadenceBulkAccountLoader.d.ts +37 -0
- package/lib/browser/accounts/customizedCadenceBulkAccountLoader.js +37 -0
- package/lib/browser/accounts/fetch.d.ts +59 -2
- package/lib/browser/accounts/fetch.js +57 -2
- package/lib/browser/accounts/grpcAccountSubscriber.d.ts +30 -0
- package/lib/browser/accounts/grpcAccountSubscriber.js +30 -0
- package/lib/browser/accounts/grpcInsuranceFundStakeAccountSubscriber.d.ts +16 -0
- package/lib/browser/accounts/grpcInsuranceFundStakeAccountSubscriber.js +16 -0
- package/lib/browser/accounts/grpcMultiAccountSubscriber.d.ts +60 -1
- package/lib/browser/accounts/grpcMultiAccountSubscriber.js +118 -37
- package/lib/browser/accounts/grpcMultiUserAccountSubscriber.d.ts +32 -0
- package/lib/browser/accounts/grpcMultiUserAccountSubscriber.js +40 -12
- package/lib/browser/accounts/grpcProgramAccountSubscriber.d.ts +33 -0
- package/lib/browser/accounts/grpcProgramAccountSubscriber.js +33 -0
- package/lib/browser/accounts/grpcUserAccountSubscriber.d.ts +15 -0
- package/lib/browser/accounts/grpcUserAccountSubscriber.js +15 -0
- package/lib/browser/accounts/grpcUserStatsAccountSubscriber.d.ts +15 -0
- package/lib/browser/accounts/grpcUserStatsAccountSubscriber.js +15 -0
- package/lib/browser/accounts/grpcVelocityClientAccountSubscriber.d.ts +41 -0
- package/lib/browser/accounts/grpcVelocityClientAccountSubscriber.js +41 -0
- package/lib/browser/accounts/grpcVelocityClientAccountSubscriberV2.d.ts +116 -0
- package/lib/browser/accounts/grpcVelocityClientAccountSubscriberV2.js +152 -1
- package/lib/browser/accounts/laserProgramAccountSubscriber.d.ts +34 -0
- package/lib/browser/accounts/laserProgramAccountSubscriber.js +34 -0
- package/lib/browser/accounts/oneShotUserAccountSubscriber.d.ts +19 -0
- package/lib/browser/accounts/oneShotUserAccountSubscriber.js +19 -0
- package/lib/browser/accounts/oneShotUserStatsAccountSubscriber.d.ts +19 -0
- package/lib/browser/accounts/oneShotUserStatsAccountSubscriber.js +19 -0
- package/lib/browser/accounts/pollingInsuranceFundStakeAccountSubscriber.d.ts +31 -0
- package/lib/browser/accounts/pollingInsuranceFundStakeAccountSubscriber.js +31 -0
- package/lib/browser/accounts/pollingOracleAccountSubscriber.d.ts +19 -0
- package/lib/browser/accounts/pollingOracleAccountSubscriber.js +21 -2
- package/lib/browser/accounts/pollingTokenAccountSubscriber.d.ts +22 -0
- package/lib/browser/accounts/pollingTokenAccountSubscriber.js +22 -0
- package/lib/browser/accounts/pollingUserAccountSubscriber.d.ts +32 -0
- package/lib/browser/accounts/pollingUserAccountSubscriber.js +32 -0
- package/lib/browser/accounts/pollingUserStatsAccountSubscriber.d.ts +22 -0
- package/lib/browser/accounts/pollingUserStatsAccountSubscriber.js +22 -0
- package/lib/browser/accounts/pollingVelocityClientAccountSubscriber.d.ts +83 -0
- package/lib/browser/accounts/pollingVelocityClientAccountSubscriber.js +84 -1
- package/lib/browser/accounts/testBulkAccountLoader.d.ts +8 -0
- package/lib/browser/accounts/testBulkAccountLoader.js +8 -0
- package/lib/browser/accounts/types.d.ts +149 -0
- package/lib/browser/accounts/types.js +13 -0
- package/lib/browser/accounts/utils.d.ts +18 -0
- package/lib/browser/accounts/utils.js +32 -16
- package/lib/browser/accounts/webSocketAccountSubscriber.d.ts +41 -0
- package/lib/browser/accounts/webSocketAccountSubscriber.js +41 -0
- package/lib/browser/accounts/webSocketAccountSubscriberV2.d.ts +31 -0
- package/lib/browser/accounts/webSocketAccountSubscriberV2.js +31 -23
- package/lib/browser/accounts/webSocketInsuranceFundStakeAccountSubscriber.d.ts +27 -0
- package/lib/browser/accounts/webSocketInsuranceFundStakeAccountSubscriber.js +27 -0
- package/lib/browser/accounts/webSocketProgramAccountSubscriber.d.ts +36 -0
- package/lib/browser/accounts/webSocketProgramAccountSubscriber.js +36 -0
- package/lib/browser/accounts/webSocketProgramAccountSubscriberV2.d.ts +21 -0
- package/lib/browser/accounts/webSocketProgramAccountSubscriberV2.js +25 -0
- package/lib/browser/accounts/webSocketProgramAccountsSubscriberV2.d.ts +21 -0
- package/lib/browser/accounts/webSocketProgramAccountsSubscriberV2.js +21 -0
- package/lib/browser/accounts/webSocketUserAccountSubscriber.d.ts +26 -0
- package/lib/browser/accounts/webSocketUserAccountSubscriber.js +26 -0
- package/lib/browser/accounts/webSocketUserStatsAccountSubsriber.d.ts +20 -0
- package/lib/browser/accounts/webSocketUserStatsAccountSubsriber.js +20 -0
- package/lib/browser/accounts/webSocketVelocityClientAccountSubscriber.d.ts +121 -0
- package/lib/browser/accounts/webSocketVelocityClientAccountSubscriber.js +123 -2
- package/lib/browser/accounts/webSocketVelocityClientAccountSubscriberV2.d.ts +96 -0
- package/lib/browser/accounts/webSocketVelocityClientAccountSubscriberV2.js +108 -0
- package/lib/browser/accounts/websocketProgramUserAccountSubscriber.d.ts +28 -0
- package/lib/browser/accounts/websocketProgramUserAccountSubscriber.js +33 -0
- package/lib/browser/addresses/marketAddresses.d.ts +10 -0
- package/lib/browser/addresses/marketAddresses.js +10 -0
- package/lib/browser/addresses/pda.d.ts +214 -2
- package/lib/browser/addresses/pda.js +217 -5
- package/lib/browser/adminClient.d.ts +2139 -5
- package/lib/browser/adminClient.js +2173 -11
- package/lib/browser/auctionSubscriber/auctionSubscriber.d.ts +15 -0
- package/lib/browser/auctionSubscriber/auctionSubscriber.js +15 -0
- package/lib/browser/auctionSubscriber/auctionSubscriberGrpc.d.ts +19 -0
- package/lib/browser/auctionSubscriber/auctionSubscriberGrpc.js +19 -0
- package/lib/browser/auctionSubscriber/index.d.ts +6 -0
- package/lib/browser/auctionSubscriber/index.js +6 -0
- package/lib/browser/auctionSubscriber/types.d.ts +7 -0
- package/lib/browser/blockhashSubscriber/BlockhashSubscriber.d.ts +33 -0
- package/lib/browser/blockhashSubscriber/BlockhashSubscriber.js +33 -0
- package/lib/browser/blockhashSubscriber/index.d.ts +5 -0
- package/lib/browser/blockhashSubscriber/index.js +5 -0
- package/lib/browser/blockhashSubscriber/types.d.ts +5 -0
- package/lib/browser/clock/clockSubscriber.d.ts +24 -0
- package/lib/browser/clock/clockSubscriber.js +22 -0
- package/lib/browser/config.d.ts +58 -4
- package/lib/browser/config.js +88 -21
- package/lib/browser/constants/numericConstants.d.ts +67 -0
- package/lib/browser/constants/numericConstants.js +68 -1
- package/lib/browser/constants/perpMarkets.d.ts +10 -0
- package/lib/browser/constants/perpMarkets.js +40 -908
- package/lib/browser/constants/spotMarkets.d.ts +13 -0
- package/lib/browser/constants/spotMarkets.js +16 -742
- package/lib/browser/constants/txConstants.d.ts +1 -0
- package/lib/browser/constants/txConstants.js +1 -0
- package/lib/browser/core/VelocityCore.d.ts +285 -8
- package/lib/browser/core/VelocityCore.js +281 -8
- package/lib/browser/core/instructions/deposit.d.ts +22 -0
- package/lib/browser/core/instructions/deposit.js +22 -0
- package/lib/browser/core/instructions/fill.d.ts +17 -0
- package/lib/browser/core/instructions/fill.js +17 -0
- package/lib/browser/core/instructions/funding.d.ts +12 -0
- package/lib/browser/core/instructions/funding.js +12 -0
- package/lib/browser/core/instructions/liquidation.d.ts +18 -0
- package/lib/browser/core/instructions/liquidation.js +18 -0
- package/lib/browser/core/instructions/orders.d.ts +28 -0
- package/lib/browser/core/instructions/orders.js +28 -0
- package/lib/browser/core/instructions/perpOrders.d.ts +106 -0
- package/lib/browser/core/instructions/perpOrders.js +106 -0
- package/lib/browser/core/instructions/settlement.d.ts +14 -0
- package/lib/browser/core/instructions/settlement.js +14 -0
- package/lib/browser/core/instructions/trigger.d.ts +15 -0
- package/lib/browser/core/instructions/trigger.js +15 -0
- package/lib/browser/core/instructions/withdraw.d.ts +21 -0
- package/lib/browser/core/instructions/withdraw.js +21 -0
- package/lib/browser/core/remainingAccounts.d.ts +47 -3
- package/lib/browser/core/remainingAccounts.js +20 -0
- package/lib/browser/core/signedMsg.d.ts +38 -0
- package/lib/browser/core/signedMsg.js +33 -0
- package/lib/browser/decode/customCoder.d.ts +39 -3
- package/lib/browser/decode/customCoder.js +45 -3
- package/lib/browser/decode/user.d.ts +22 -0
- package/lib/browser/decode/user.js +22 -0
- package/lib/browser/dlob/DLOB.d.ts +502 -53
- package/lib/browser/dlob/DLOB.js +540 -98
- package/lib/browser/dlob/DLOBNode.d.ts +86 -4
- package/lib/browser/dlob/DLOBNode.js +37 -4
- package/lib/browser/dlob/DLOBSubscriber.d.ts +39 -12
- package/lib/browser/dlob/DLOBSubscriber.js +42 -12
- package/lib/browser/dlob/NodeList.d.ts +69 -0
- package/lib/browser/dlob/NodeList.js +66 -0
- package/lib/browser/dlob/orderBookLevels.d.ts +106 -13
- package/lib/browser/dlob/orderBookLevels.js +84 -14
- package/lib/browser/dlob/types.d.ts +15 -0
- package/lib/browser/events/eventList.d.ts +14 -0
- package/lib/browser/events/eventList.js +14 -0
- package/lib/browser/events/eventSubscriber.d.ts +87 -10
- package/lib/browser/events/eventSubscriber.js +93 -8
- package/lib/browser/events/eventsServerLogProvider.d.ts +22 -0
- package/lib/browser/events/eventsServerLogProvider.js +27 -0
- package/lib/browser/events/fetchLogs.d.ts +31 -0
- package/lib/browser/events/fetchLogs.js +46 -1
- package/lib/browser/events/parse.d.ts +23 -0
- package/lib/browser/events/parse.js +23 -0
- package/lib/browser/events/pollingLogProvider.d.ts +24 -0
- package/lib/browser/events/pollingLogProvider.js +24 -0
- package/lib/browser/events/sort.d.ts +11 -0
- package/lib/browser/events/sort.js +12 -0
- package/lib/browser/events/txEventCache.d.ts +13 -3
- package/lib/browser/events/txEventCache.js +19 -7
- package/lib/browser/events/types.d.ts +118 -2
- package/lib/browser/events/types.js +11 -0
- package/lib/browser/events/webSocketLogProvider.d.ts +23 -0
- package/lib/browser/events/webSocketLogProvider.js +28 -0
- package/lib/browser/factory/oracleClient.js +2 -2
- package/lib/browser/idl/velocity.d.ts +50 -1
- package/lib/browser/idl/velocity.json +50 -1
- package/lib/browser/keypair.d.ts +8 -0
- package/lib/browser/keypair.js +8 -0
- package/lib/browser/marginCalculation.d.ts +134 -2
- package/lib/browser/marginCalculation.js +121 -0
- package/lib/browser/math/amm.d.ts +348 -29
- package/lib/browser/math/amm.js +310 -32
- package/lib/browser/math/auction.d.ts +95 -19
- package/lib/browser/math/auction.js +118 -28
- package/lib/browser/math/bankruptcy.d.ts +46 -0
- package/lib/browser/math/bankruptcy.js +89 -1
- package/lib/browser/math/builder.d.ts +64 -8
- package/lib/browser/math/builder.js +71 -9
- package/lib/browser/math/conversion.d.ts +21 -0
- package/lib/browser/math/conversion.js +21 -0
- package/lib/browser/math/exchangeStatus.d.ts +92 -0
- package/lib/browser/math/exchangeStatus.js +111 -1
- package/lib/browser/math/funding.d.ts +57 -20
- package/lib/browser/math/funding.js +63 -23
- package/lib/browser/math/insurance.d.ts +62 -0
- package/lib/browser/math/insurance.js +62 -0
- package/lib/browser/math/liquidation.d.ts +127 -11
- package/lib/browser/math/liquidation.js +182 -19
- package/lib/browser/math/margin.d.ts +79 -13
- package/lib/browser/math/margin.js +80 -14
- package/lib/browser/math/market.d.ts +135 -15
- package/lib/browser/math/market.js +145 -17
- package/lib/browser/math/oracles.d.ts +113 -0
- package/lib/browser/math/oracles.js +118 -1
- package/lib/browser/math/orders.d.ts +115 -7
- package/lib/browser/math/orders.js +133 -18
- package/lib/browser/math/position.d.ts +80 -33
- package/lib/browser/math/position.js +80 -33
- package/lib/browser/math/repeg.d.ts +48 -10
- package/lib/browser/math/repeg.js +48 -10
- package/lib/browser/math/spotBalance.d.ts +200 -5
- package/lib/browser/math/spotBalance.js +239 -10
- package/lib/browser/math/spotMarket.d.ts +36 -3
- package/lib/browser/math/spotMarket.js +36 -3
- package/lib/browser/math/spotPosition.d.ts +72 -0
- package/lib/browser/math/spotPosition.js +62 -0
- package/lib/browser/math/state.d.ts +31 -0
- package/lib/browser/math/state.js +32 -1
- package/lib/browser/math/superStake.d.ts +126 -2
- package/lib/browser/math/superStake.js +123 -3
- package/lib/browser/math/tiers.d.ts +29 -0
- package/lib/browser/math/tiers.js +29 -0
- package/lib/browser/math/trade.d.ts +102 -51
- package/lib/browser/math/trade.js +101 -55
- package/lib/browser/math/utils.d.ts +71 -9
- package/lib/browser/math/utils.js +71 -9
- package/lib/browser/memcmp.d.ts +94 -0
- package/lib/browser/memcmp.js +129 -7
- package/lib/browser/oracles/oracleClientCache.d.ts +16 -0
- package/lib/browser/oracles/oracleClientCache.js +16 -0
- package/lib/browser/oracles/oracleId.d.ts +31 -0
- package/lib/browser/oracles/oracleId.js +39 -8
- package/lib/browser/oracles/prelaunchOracleClient.d.ts +20 -0
- package/lib/browser/oracles/prelaunchOracleClient.js +20 -0
- package/lib/browser/oracles/pythClient.d.ts +31 -0
- package/lib/browser/oracles/pythClient.js +32 -1
- package/lib/browser/oracles/pythLazerClient.d.ts +34 -0
- package/lib/browser/oracles/pythLazerClient.js +35 -1
- package/lib/browser/oracles/quoteAssetOracleClient.d.ts +18 -0
- package/lib/browser/oracles/quoteAssetOracleClient.js +18 -0
- package/lib/browser/oracles/strictOraclePrice.d.ts +21 -0
- package/lib/browser/oracles/strictOraclePrice.js +21 -0
- package/lib/browser/oracles/types.d.ts +45 -0
- package/lib/browser/oracles/utils.d.ts +20 -0
- package/lib/browser/oracles/utils.js +20 -0
- package/lib/browser/orderParams.d.ts +42 -4
- package/lib/browser/orderParams.js +42 -4
- package/lib/browser/orderSubscriber/OrderSubscriber.d.ts +56 -0
- package/lib/browser/orderSubscriber/OrderSubscriber.js +67 -2
- package/lib/browser/orderSubscriber/PollingSubscription.d.ts +11 -0
- package/lib/browser/orderSubscriber/PollingSubscription.js +11 -0
- package/lib/browser/orderSubscriber/WebsocketSubscription.d.ts +18 -0
- package/lib/browser/orderSubscriber/WebsocketSubscription.js +18 -0
- package/lib/browser/orderSubscriber/grpcSubscription.d.ts +16 -0
- package/lib/browser/orderSubscriber/grpcSubscription.js +16 -0
- package/lib/browser/orderSubscriber/types.d.ts +9 -0
- package/lib/browser/priorityFee/averageOverSlotsStrategy.d.ts +1 -0
- package/lib/browser/priorityFee/averageOverSlotsStrategy.js +1 -0
- package/lib/browser/priorityFee/averageStrategy.d.ts +1 -0
- package/lib/browser/priorityFee/averageStrategy.js +1 -0
- package/lib/browser/priorityFee/ewmaStrategy.d.ts +10 -0
- package/lib/browser/priorityFee/ewmaStrategy.js +10 -0
- package/lib/browser/priorityFee/heliusPriorityFeeMethod.d.ts +13 -0
- package/lib/browser/priorityFee/heliusPriorityFeeMethod.js +9 -2
- package/lib/browser/priorityFee/maxOverSlotsStrategy.d.ts +1 -0
- package/lib/browser/priorityFee/maxOverSlotsStrategy.js +1 -0
- package/lib/browser/priorityFee/maxStrategy.d.ts +1 -0
- package/lib/browser/priorityFee/maxStrategy.js +1 -0
- package/lib/browser/priorityFee/priorityFeeSubscriber.d.ts +39 -0
- package/lib/browser/priorityFee/priorityFeeSubscriber.js +39 -0
- package/lib/browser/priorityFee/priorityFeeSubscriberMap.d.ts +20 -1
- package/lib/browser/priorityFee/priorityFeeSubscriberMap.js +21 -2
- package/lib/browser/priorityFee/solanaPriorityFeeMethod.d.ts +12 -0
- package/lib/browser/priorityFee/solanaPriorityFeeMethod.js +10 -0
- package/lib/browser/priorityFee/types.d.ts +32 -0
- package/lib/browser/priorityFee/types.js +5 -0
- package/lib/browser/priorityFee/velocityPriorityFeeMethod.d.ts +11 -0
- package/lib/browser/priorityFee/velocityPriorityFeeMethod.js +8 -0
- package/lib/browser/slot/SlotSubscriber.d.ts +18 -0
- package/lib/browser/slot/SlotSubscriber.js +16 -0
- package/lib/browser/slot/SlothashSubscriber.d.ts +26 -0
- package/lib/browser/slot/SlothashSubscriber.js +25 -1
- package/lib/browser/swift/swiftOrderSubscriber.js +2 -2
- package/lib/browser/tokenFaucet.d.ts +2 -2
- package/lib/browser/tokenFaucet.js +11 -4
- package/lib/browser/tx/baseTxSender.d.ts +163 -0
- package/lib/browser/tx/baseTxSender.js +174 -6
- package/lib/browser/tx/blockhashFetcher/baseBlockhashFetcher.d.ts +12 -0
- package/lib/browser/tx/blockhashFetcher/baseBlockhashFetcher.js +12 -0
- package/lib/browser/tx/blockhashFetcher/cachedBlockhashFetcher.d.ts +15 -0
- package/lib/browser/tx/blockhashFetcher/cachedBlockhashFetcher.js +15 -0
- package/lib/browser/tx/blockhashFetcher/types.d.ts +4 -0
- package/lib/browser/tx/fastSingleTxSender.d.ts +47 -0
- package/lib/browser/tx/fastSingleTxSender.js +48 -1
- package/lib/browser/tx/forwardOnlyTxSender.d.ts +48 -0
- package/lib/browser/tx/forwardOnlyTxSender.js +48 -0
- package/lib/browser/tx/reportTransactionError.d.ts +18 -6
- package/lib/browser/tx/reportTransactionError.js +18 -6
- package/lib/browser/tx/retryTxSender.d.ts +40 -0
- package/lib/browser/tx/retryTxSender.js +39 -0
- package/lib/browser/tx/txHandler.d.ts +146 -35
- package/lib/browser/tx/txHandler.js +132 -32
- package/lib/browser/tx/txParamProcessor.d.ts +47 -0
- package/lib/browser/tx/txParamProcessor.js +47 -0
- package/lib/browser/tx/types.d.ts +46 -0
- package/lib/browser/tx/types.js +5 -0
- package/lib/browser/tx/utils.d.ts +26 -0
- package/lib/browser/tx/utils.js +26 -0
- package/lib/browser/tx/whileValidTxSender.d.ts +82 -0
- package/lib/browser/tx/whileValidTxSender.js +81 -0
- package/lib/browser/types.d.ts +786 -13
- package/lib/browser/types.js +133 -9
- package/lib/browser/user.d.ts +645 -84
- package/lib/browser/user.js +779 -96
- package/lib/browser/userMap/PollingSubscription.d.ts +10 -0
- package/lib/browser/userMap/PollingSubscription.js +14 -2
- package/lib/browser/userMap/WebsocketSubscription.d.ts +9 -0
- package/lib/browser/userMap/WebsocketSubscription.js +9 -0
- package/lib/browser/userMap/grpcSubscription.d.ts +8 -0
- package/lib/browser/userMap/grpcSubscription.js +8 -0
- package/lib/browser/userMap/referrerMap.d.ts +72 -2
- package/lib/browser/userMap/referrerMap.js +84 -2
- package/lib/browser/userMap/revenueShareEscrowMap.d.ts +37 -10
- package/lib/browser/userMap/revenueShareEscrowMap.js +38 -11
- package/lib/browser/userMap/userMap.d.ts +81 -3
- package/lib/browser/userMap/userMap.js +81 -4
- package/lib/browser/userMap/userMapConfig.d.ts +23 -0
- package/lib/browser/userMap/userStatsMap.d.ts +22 -0
- package/lib/browser/userMap/userStatsMap.js +22 -0
- package/lib/browser/userName.d.ts +16 -0
- package/lib/browser/userName.js +16 -0
- package/lib/browser/userStats.d.ts +28 -1
- package/lib/browser/userStats.js +28 -1
- package/lib/browser/util/TransactionConfirmationManager.d.ts +33 -0
- package/lib/browser/util/TransactionConfirmationManager.js +33 -0
- package/lib/browser/util/chainClock.d.ts +24 -0
- package/lib/browser/util/chainClock.js +20 -0
- package/lib/browser/util/computeUnits.d.ts +32 -0
- package/lib/browser/util/computeUnits.js +32 -0
- package/lib/browser/util/digest.d.ts +17 -0
- package/lib/browser/util/digest.js +17 -0
- package/lib/browser/util/ed25519Utils.d.ts +12 -2
- package/lib/browser/util/ed25519Utils.js +12 -2
- package/lib/browser/util/promiseTimeout.d.ts +9 -0
- package/lib/browser/util/promiseTimeout.js +9 -0
- package/lib/browser/velocityClient.d.ts +3323 -216
- package/lib/browser/velocityClient.js +3428 -249
- package/lib/browser/wallet.d.ts +37 -0
- package/lib/browser/wallet.js +37 -0
- package/lib/node/accounts/basicUserAccountSubscriber.d.ts +18 -0
- package/lib/node/accounts/basicUserAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/basicUserAccountSubscriber.js +18 -0
- package/lib/node/accounts/basicUserStatsAccountSubscriber.d.ts +18 -0
- package/lib/node/accounts/basicUserStatsAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/basicUserStatsAccountSubscriber.js +18 -0
- package/lib/node/accounts/bulkAccountLoader.d.ts +52 -0
- package/lib/node/accounts/bulkAccountLoader.d.ts.map +1 -1
- package/lib/node/accounts/bulkAccountLoader.js +51 -0
- package/lib/node/accounts/bulkUserStatsSubscription.d.ts +9 -2
- package/lib/node/accounts/bulkUserStatsSubscription.d.ts.map +1 -1
- package/lib/node/accounts/bulkUserStatsSubscription.js +9 -2
- package/lib/node/accounts/bulkUserSubscription.d.ts +8 -2
- package/lib/node/accounts/bulkUserSubscription.d.ts.map +1 -1
- package/lib/node/accounts/bulkUserSubscription.js +8 -2
- package/lib/node/accounts/customizedCadenceBulkAccountLoader.d.ts +37 -0
- package/lib/node/accounts/customizedCadenceBulkAccountLoader.d.ts.map +1 -1
- package/lib/node/accounts/customizedCadenceBulkAccountLoader.js +37 -0
- package/lib/node/accounts/fetch.d.ts +59 -2
- package/lib/node/accounts/fetch.d.ts.map +1 -1
- package/lib/node/accounts/fetch.js +57 -2
- package/lib/node/accounts/grpcAccountSubscriber.d.ts +30 -0
- package/lib/node/accounts/grpcAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/grpcAccountSubscriber.js +30 -0
- package/lib/node/accounts/grpcInsuranceFundStakeAccountSubscriber.d.ts +16 -0
- package/lib/node/accounts/grpcInsuranceFundStakeAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/grpcInsuranceFundStakeAccountSubscriber.js +16 -0
- package/lib/node/accounts/grpcMultiAccountSubscriber.d.ts +60 -1
- package/lib/node/accounts/grpcMultiAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/grpcMultiAccountSubscriber.js +118 -37
- package/lib/node/accounts/grpcMultiUserAccountSubscriber.d.ts +32 -0
- package/lib/node/accounts/grpcMultiUserAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/grpcMultiUserAccountSubscriber.js +40 -12
- package/lib/node/accounts/grpcProgramAccountSubscriber.d.ts +33 -0
- package/lib/node/accounts/grpcProgramAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/grpcProgramAccountSubscriber.js +33 -0
- package/lib/node/accounts/grpcUserAccountSubscriber.d.ts +15 -0
- package/lib/node/accounts/grpcUserAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/grpcUserAccountSubscriber.js +15 -0
- package/lib/node/accounts/grpcUserStatsAccountSubscriber.d.ts +15 -0
- package/lib/node/accounts/grpcUserStatsAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/grpcUserStatsAccountSubscriber.js +15 -0
- package/lib/node/accounts/grpcVelocityClientAccountSubscriber.d.ts +41 -0
- package/lib/node/accounts/grpcVelocityClientAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/grpcVelocityClientAccountSubscriber.js +41 -0
- package/lib/node/accounts/grpcVelocityClientAccountSubscriberV2.d.ts +116 -0
- package/lib/node/accounts/grpcVelocityClientAccountSubscriberV2.d.ts.map +1 -1
- package/lib/node/accounts/grpcVelocityClientAccountSubscriberV2.js +152 -1
- package/lib/node/accounts/laserProgramAccountSubscriber.d.ts +34 -0
- package/lib/node/accounts/laserProgramAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/laserProgramAccountSubscriber.js +34 -0
- package/lib/node/accounts/oneShotUserAccountSubscriber.d.ts +19 -0
- package/lib/node/accounts/oneShotUserAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/oneShotUserAccountSubscriber.js +19 -0
- package/lib/node/accounts/oneShotUserStatsAccountSubscriber.d.ts +19 -0
- package/lib/node/accounts/oneShotUserStatsAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/oneShotUserStatsAccountSubscriber.js +19 -0
- package/lib/node/accounts/pollingInsuranceFundStakeAccountSubscriber.d.ts +31 -0
- package/lib/node/accounts/pollingInsuranceFundStakeAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/pollingInsuranceFundStakeAccountSubscriber.js +31 -0
- package/lib/node/accounts/pollingOracleAccountSubscriber.d.ts +19 -0
- package/lib/node/accounts/pollingOracleAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/pollingOracleAccountSubscriber.js +21 -2
- package/lib/node/accounts/pollingTokenAccountSubscriber.d.ts +22 -0
- package/lib/node/accounts/pollingTokenAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/pollingTokenAccountSubscriber.js +22 -0
- package/lib/node/accounts/pollingUserAccountSubscriber.d.ts +32 -0
- package/lib/node/accounts/pollingUserAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/pollingUserAccountSubscriber.js +32 -0
- package/lib/node/accounts/pollingUserStatsAccountSubscriber.d.ts +22 -0
- package/lib/node/accounts/pollingUserStatsAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/pollingUserStatsAccountSubscriber.js +22 -0
- package/lib/node/accounts/pollingVelocityClientAccountSubscriber.d.ts +83 -0
- package/lib/node/accounts/pollingVelocityClientAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/pollingVelocityClientAccountSubscriber.js +84 -1
- package/lib/node/accounts/testBulkAccountLoader.d.ts +8 -0
- package/lib/node/accounts/testBulkAccountLoader.d.ts.map +1 -1
- package/lib/node/accounts/testBulkAccountLoader.js +8 -0
- package/lib/node/accounts/types.d.ts +149 -0
- package/lib/node/accounts/types.d.ts.map +1 -1
- package/lib/node/accounts/types.js +13 -0
- package/lib/node/accounts/utils.d.ts +18 -0
- package/lib/node/accounts/utils.d.ts.map +1 -1
- package/lib/node/accounts/utils.js +32 -16
- package/lib/node/accounts/webSocketAccountSubscriber.d.ts +41 -0
- package/lib/node/accounts/webSocketAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/webSocketAccountSubscriber.js +41 -0
- package/lib/node/accounts/webSocketAccountSubscriberV2.d.ts +31 -0
- package/lib/node/accounts/webSocketAccountSubscriberV2.d.ts.map +1 -1
- package/lib/node/accounts/webSocketAccountSubscriberV2.js +31 -23
- package/lib/node/accounts/webSocketInsuranceFundStakeAccountSubscriber.d.ts +27 -0
- package/lib/node/accounts/webSocketInsuranceFundStakeAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/webSocketInsuranceFundStakeAccountSubscriber.js +27 -0
- package/lib/node/accounts/webSocketProgramAccountSubscriber.d.ts +36 -0
- package/lib/node/accounts/webSocketProgramAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/webSocketProgramAccountSubscriber.js +36 -0
- package/lib/node/accounts/webSocketProgramAccountSubscriberV2.d.ts +21 -0
- package/lib/node/accounts/webSocketProgramAccountSubscriberV2.d.ts.map +1 -1
- package/lib/node/accounts/webSocketProgramAccountSubscriberV2.js +25 -0
- package/lib/node/accounts/webSocketProgramAccountsSubscriberV2.d.ts +21 -0
- package/lib/node/accounts/webSocketProgramAccountsSubscriberV2.d.ts.map +1 -1
- package/lib/node/accounts/webSocketProgramAccountsSubscriberV2.js +21 -0
- package/lib/node/accounts/webSocketUserAccountSubscriber.d.ts +26 -0
- package/lib/node/accounts/webSocketUserAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/webSocketUserAccountSubscriber.js +26 -0
- package/lib/node/accounts/webSocketUserStatsAccountSubsriber.d.ts +20 -0
- package/lib/node/accounts/webSocketUserStatsAccountSubsriber.d.ts.map +1 -1
- package/lib/node/accounts/webSocketUserStatsAccountSubsriber.js +20 -0
- package/lib/node/accounts/webSocketVelocityClientAccountSubscriber.d.ts +121 -0
- package/lib/node/accounts/webSocketVelocityClientAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/webSocketVelocityClientAccountSubscriber.js +123 -2
- package/lib/node/accounts/webSocketVelocityClientAccountSubscriberV2.d.ts +96 -0
- package/lib/node/accounts/webSocketVelocityClientAccountSubscriberV2.d.ts.map +1 -1
- package/lib/node/accounts/webSocketVelocityClientAccountSubscriberV2.js +108 -0
- package/lib/node/accounts/websocketProgramUserAccountSubscriber.d.ts +28 -0
- package/lib/node/accounts/websocketProgramUserAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/websocketProgramUserAccountSubscriber.js +33 -0
- package/lib/node/addresses/marketAddresses.d.ts +10 -0
- package/lib/node/addresses/marketAddresses.d.ts.map +1 -1
- package/lib/node/addresses/marketAddresses.js +10 -0
- package/lib/node/addresses/pda.d.ts +214 -2
- package/lib/node/addresses/pda.d.ts.map +1 -1
- package/lib/node/addresses/pda.js +217 -5
- package/lib/node/adminClient.d.ts +2139 -5
- package/lib/node/adminClient.d.ts.map +1 -1
- package/lib/node/adminClient.js +2173 -11
- package/lib/node/auctionSubscriber/auctionSubscriber.d.ts +15 -0
- package/lib/node/auctionSubscriber/auctionSubscriber.d.ts.map +1 -1
- package/lib/node/auctionSubscriber/auctionSubscriber.js +15 -0
- package/lib/node/auctionSubscriber/auctionSubscriberGrpc.d.ts +19 -0
- package/lib/node/auctionSubscriber/auctionSubscriberGrpc.d.ts.map +1 -1
- package/lib/node/auctionSubscriber/auctionSubscriberGrpc.js +19 -0
- package/lib/node/auctionSubscriber/index.d.ts +6 -0
- package/lib/node/auctionSubscriber/index.d.ts.map +1 -1
- package/lib/node/auctionSubscriber/index.js +6 -0
- package/lib/node/auctionSubscriber/types.d.ts +7 -0
- package/lib/node/auctionSubscriber/types.d.ts.map +1 -1
- package/lib/node/blockhashSubscriber/BlockhashSubscriber.d.ts +33 -0
- package/lib/node/blockhashSubscriber/BlockhashSubscriber.d.ts.map +1 -1
- package/lib/node/blockhashSubscriber/BlockhashSubscriber.js +33 -0
- package/lib/node/blockhashSubscriber/index.d.ts +5 -0
- package/lib/node/blockhashSubscriber/index.d.ts.map +1 -1
- package/lib/node/blockhashSubscriber/index.js +5 -0
- package/lib/node/blockhashSubscriber/types.d.ts +5 -0
- package/lib/node/blockhashSubscriber/types.d.ts.map +1 -1
- package/lib/node/clock/clockSubscriber.d.ts +24 -0
- package/lib/node/clock/clockSubscriber.d.ts.map +1 -1
- package/lib/node/clock/clockSubscriber.js +22 -0
- package/lib/node/config.d.ts +58 -4
- package/lib/node/config.d.ts.map +1 -1
- package/lib/node/config.js +88 -21
- package/lib/node/constants/numericConstants.d.ts +67 -0
- package/lib/node/constants/numericConstants.d.ts.map +1 -1
- package/lib/node/constants/numericConstants.js +68 -1
- package/lib/node/constants/perpMarkets.d.ts +10 -0
- package/lib/node/constants/perpMarkets.d.ts.map +1 -1
- package/lib/node/constants/perpMarkets.js +40 -908
- package/lib/node/constants/spotMarkets.d.ts +13 -0
- package/lib/node/constants/spotMarkets.d.ts.map +1 -1
- package/lib/node/constants/spotMarkets.js +16 -742
- package/lib/node/constants/txConstants.d.ts +1 -0
- package/lib/node/constants/txConstants.d.ts.map +1 -1
- package/lib/node/constants/txConstants.js +1 -0
- package/lib/node/core/VelocityCore.d.ts +285 -8
- package/lib/node/core/VelocityCore.d.ts.map +1 -1
- package/lib/node/core/VelocityCore.js +281 -8
- package/lib/node/core/instructions/deposit.d.ts +22 -0
- package/lib/node/core/instructions/deposit.d.ts.map +1 -1
- package/lib/node/core/instructions/deposit.js +22 -0
- package/lib/node/core/instructions/fill.d.ts +17 -0
- package/lib/node/core/instructions/fill.d.ts.map +1 -1
- package/lib/node/core/instructions/fill.js +17 -0
- package/lib/node/core/instructions/funding.d.ts +12 -0
- package/lib/node/core/instructions/funding.d.ts.map +1 -1
- package/lib/node/core/instructions/funding.js +12 -0
- package/lib/node/core/instructions/liquidation.d.ts +18 -0
- package/lib/node/core/instructions/liquidation.d.ts.map +1 -1
- package/lib/node/core/instructions/liquidation.js +18 -0
- package/lib/node/core/instructions/orders.d.ts +28 -0
- package/lib/node/core/instructions/orders.d.ts.map +1 -1
- package/lib/node/core/instructions/orders.js +28 -0
- package/lib/node/core/instructions/perpOrders.d.ts +106 -0
- package/lib/node/core/instructions/perpOrders.d.ts.map +1 -1
- package/lib/node/core/instructions/perpOrders.js +106 -0
- package/lib/node/core/instructions/settlement.d.ts +14 -0
- package/lib/node/core/instructions/settlement.d.ts.map +1 -1
- package/lib/node/core/instructions/settlement.js +14 -0
- package/lib/node/core/instructions/trigger.d.ts +15 -0
- package/lib/node/core/instructions/trigger.d.ts.map +1 -1
- package/lib/node/core/instructions/trigger.js +15 -0
- package/lib/node/core/instructions/withdraw.d.ts +21 -0
- package/lib/node/core/instructions/withdraw.d.ts.map +1 -1
- package/lib/node/core/instructions/withdraw.js +21 -0
- package/lib/node/core/remainingAccounts.d.ts +47 -3
- package/lib/node/core/remainingAccounts.d.ts.map +1 -1
- package/lib/node/core/remainingAccounts.js +20 -0
- package/lib/node/core/signedMsg.d.ts +38 -0
- package/lib/node/core/signedMsg.d.ts.map +1 -1
- package/lib/node/core/signedMsg.js +33 -0
- package/lib/node/decode/customCoder.d.ts +39 -3
- package/lib/node/decode/customCoder.d.ts.map +1 -1
- package/lib/node/decode/customCoder.js +45 -3
- package/lib/node/decode/user.d.ts +22 -0
- package/lib/node/decode/user.d.ts.map +1 -1
- package/lib/node/decode/user.js +22 -0
- package/lib/node/dlob/DLOB.d.ts +502 -53
- package/lib/node/dlob/DLOB.d.ts.map +1 -1
- package/lib/node/dlob/DLOB.js +540 -98
- package/lib/node/dlob/DLOBNode.d.ts +86 -4
- package/lib/node/dlob/DLOBNode.d.ts.map +1 -1
- package/lib/node/dlob/DLOBNode.js +37 -4
- package/lib/node/dlob/DLOBSubscriber.d.ts +39 -12
- package/lib/node/dlob/DLOBSubscriber.d.ts.map +1 -1
- package/lib/node/dlob/DLOBSubscriber.js +42 -12
- package/lib/node/dlob/NodeList.d.ts +69 -0
- package/lib/node/dlob/NodeList.d.ts.map +1 -1
- package/lib/node/dlob/NodeList.js +66 -0
- package/lib/node/dlob/orderBookLevels.d.ts +106 -13
- package/lib/node/dlob/orderBookLevels.d.ts.map +1 -1
- package/lib/node/dlob/orderBookLevels.js +84 -14
- package/lib/node/dlob/types.d.ts +15 -0
- package/lib/node/dlob/types.d.ts.map +1 -1
- package/lib/node/events/eventList.d.ts +14 -0
- package/lib/node/events/eventList.d.ts.map +1 -1
- package/lib/node/events/eventList.js +14 -0
- package/lib/node/events/eventSubscriber.d.ts +87 -10
- package/lib/node/events/eventSubscriber.d.ts.map +1 -1
- package/lib/node/events/eventSubscriber.js +93 -8
- package/lib/node/events/eventsServerLogProvider.d.ts +22 -0
- package/lib/node/events/eventsServerLogProvider.d.ts.map +1 -1
- package/lib/node/events/eventsServerLogProvider.js +27 -0
- package/lib/node/events/fetchLogs.d.ts +31 -0
- package/lib/node/events/fetchLogs.d.ts.map +1 -1
- package/lib/node/events/fetchLogs.js +46 -1
- package/lib/node/events/parse.d.ts +23 -0
- package/lib/node/events/parse.d.ts.map +1 -1
- package/lib/node/events/parse.js +23 -0
- package/lib/node/events/pollingLogProvider.d.ts +24 -0
- package/lib/node/events/pollingLogProvider.d.ts.map +1 -1
- package/lib/node/events/pollingLogProvider.js +24 -0
- package/lib/node/events/sort.d.ts +11 -0
- package/lib/node/events/sort.d.ts.map +1 -1
- package/lib/node/events/sort.js +12 -0
- package/lib/node/events/txEventCache.d.ts +13 -3
- package/lib/node/events/txEventCache.d.ts.map +1 -1
- package/lib/node/events/txEventCache.js +19 -7
- package/lib/node/events/types.d.ts +118 -2
- package/lib/node/events/types.d.ts.map +1 -1
- package/lib/node/events/types.js +11 -0
- package/lib/node/events/webSocketLogProvider.d.ts +23 -0
- package/lib/node/events/webSocketLogProvider.d.ts.map +1 -1
- package/lib/node/events/webSocketLogProvider.js +28 -0
- package/lib/node/factory/oracleClient.js +2 -2
- package/lib/node/idl/velocity.d.ts +50 -1
- package/lib/node/idl/velocity.d.ts.map +1 -1
- package/lib/node/idl/velocity.json +50 -1
- package/lib/node/keypair.d.ts +8 -0
- package/lib/node/keypair.d.ts.map +1 -1
- package/lib/node/keypair.js +8 -0
- package/lib/node/marginCalculation.d.ts +134 -2
- package/lib/node/marginCalculation.d.ts.map +1 -1
- package/lib/node/marginCalculation.js +121 -0
- package/lib/node/math/amm.d.ts +348 -29
- package/lib/node/math/amm.d.ts.map +1 -1
- package/lib/node/math/amm.js +310 -32
- package/lib/node/math/auction.d.ts +95 -19
- package/lib/node/math/auction.d.ts.map +1 -1
- package/lib/node/math/auction.js +118 -28
- package/lib/node/math/bankruptcy.d.ts +46 -0
- package/lib/node/math/bankruptcy.d.ts.map +1 -1
- package/lib/node/math/bankruptcy.js +89 -1
- package/lib/node/math/builder.d.ts +64 -8
- package/lib/node/math/builder.d.ts.map +1 -1
- package/lib/node/math/builder.js +71 -9
- package/lib/node/math/conversion.d.ts +21 -0
- package/lib/node/math/conversion.d.ts.map +1 -1
- package/lib/node/math/conversion.js +21 -0
- package/lib/node/math/exchangeStatus.d.ts +92 -0
- package/lib/node/math/exchangeStatus.d.ts.map +1 -1
- package/lib/node/math/exchangeStatus.js +111 -1
- package/lib/node/math/funding.d.ts +57 -20
- package/lib/node/math/funding.d.ts.map +1 -1
- package/lib/node/math/funding.js +63 -23
- package/lib/node/math/insurance.d.ts +62 -0
- package/lib/node/math/insurance.d.ts.map +1 -1
- package/lib/node/math/insurance.js +62 -0
- package/lib/node/math/liquidation.d.ts +127 -11
- package/lib/node/math/liquidation.d.ts.map +1 -1
- package/lib/node/math/liquidation.js +182 -19
- package/lib/node/math/margin.d.ts +79 -13
- package/lib/node/math/margin.d.ts.map +1 -1
- package/lib/node/math/margin.js +80 -14
- package/lib/node/math/market.d.ts +135 -15
- package/lib/node/math/market.d.ts.map +1 -1
- package/lib/node/math/market.js +145 -17
- package/lib/node/math/oracles.d.ts +113 -0
- package/lib/node/math/oracles.d.ts.map +1 -1
- package/lib/node/math/oracles.js +118 -1
- package/lib/node/math/orders.d.ts +115 -7
- package/lib/node/math/orders.d.ts.map +1 -1
- package/lib/node/math/orders.js +133 -18
- package/lib/node/math/position.d.ts +80 -33
- package/lib/node/math/position.d.ts.map +1 -1
- package/lib/node/math/position.js +80 -33
- package/lib/node/math/repeg.d.ts +48 -10
- package/lib/node/math/repeg.d.ts.map +1 -1
- package/lib/node/math/repeg.js +48 -10
- package/lib/node/math/spotBalance.d.ts +200 -5
- package/lib/node/math/spotBalance.d.ts.map +1 -1
- package/lib/node/math/spotBalance.js +239 -10
- package/lib/node/math/spotMarket.d.ts +36 -3
- package/lib/node/math/spotMarket.d.ts.map +1 -1
- package/lib/node/math/spotMarket.js +36 -3
- package/lib/node/math/spotPosition.d.ts +72 -0
- package/lib/node/math/spotPosition.d.ts.map +1 -1
- package/lib/node/math/spotPosition.js +62 -0
- package/lib/node/math/state.d.ts +31 -0
- package/lib/node/math/state.d.ts.map +1 -1
- package/lib/node/math/state.js +32 -1
- package/lib/node/math/superStake.d.ts +126 -2
- package/lib/node/math/superStake.d.ts.map +1 -1
- package/lib/node/math/superStake.js +123 -3
- package/lib/node/math/tiers.d.ts +29 -0
- package/lib/node/math/tiers.d.ts.map +1 -1
- package/lib/node/math/tiers.js +29 -0
- package/lib/node/math/trade.d.ts +102 -51
- package/lib/node/math/trade.d.ts.map +1 -1
- package/lib/node/math/trade.js +101 -55
- package/lib/node/math/utils.d.ts +71 -9
- package/lib/node/math/utils.d.ts.map +1 -1
- package/lib/node/math/utils.js +71 -9
- package/lib/node/memcmp.d.ts +94 -0
- package/lib/node/memcmp.d.ts.map +1 -1
- package/lib/node/memcmp.js +129 -7
- package/lib/node/oracles/oracleClientCache.d.ts +16 -0
- package/lib/node/oracles/oracleClientCache.d.ts.map +1 -1
- package/lib/node/oracles/oracleClientCache.js +16 -0
- package/lib/node/oracles/oracleId.d.ts +31 -0
- package/lib/node/oracles/oracleId.d.ts.map +1 -1
- package/lib/node/oracles/oracleId.js +39 -8
- package/lib/node/oracles/prelaunchOracleClient.d.ts +20 -0
- package/lib/node/oracles/prelaunchOracleClient.d.ts.map +1 -1
- package/lib/node/oracles/prelaunchOracleClient.js +20 -0
- package/lib/node/oracles/pythClient.d.ts +31 -0
- package/lib/node/oracles/pythClient.d.ts.map +1 -1
- package/lib/node/oracles/pythClient.js +32 -1
- package/lib/node/oracles/pythLazerClient.d.ts +34 -0
- package/lib/node/oracles/pythLazerClient.d.ts.map +1 -1
- package/lib/node/oracles/pythLazerClient.js +35 -1
- package/lib/node/oracles/quoteAssetOracleClient.d.ts +18 -0
- package/lib/node/oracles/quoteAssetOracleClient.d.ts.map +1 -1
- package/lib/node/oracles/quoteAssetOracleClient.js +18 -0
- package/lib/node/oracles/strictOraclePrice.d.ts +21 -0
- package/lib/node/oracles/strictOraclePrice.d.ts.map +1 -1
- package/lib/node/oracles/strictOraclePrice.js +21 -0
- package/lib/node/oracles/types.d.ts +45 -0
- package/lib/node/oracles/types.d.ts.map +1 -1
- package/lib/node/oracles/utils.d.ts +20 -0
- package/lib/node/oracles/utils.d.ts.map +1 -1
- package/lib/node/oracles/utils.js +20 -0
- package/lib/node/orderParams.d.ts +42 -4
- package/lib/node/orderParams.d.ts.map +1 -1
- package/lib/node/orderParams.js +42 -4
- package/lib/node/orderSubscriber/OrderSubscriber.d.ts +56 -0
- package/lib/node/orderSubscriber/OrderSubscriber.d.ts.map +1 -1
- package/lib/node/orderSubscriber/OrderSubscriber.js +67 -2
- package/lib/node/orderSubscriber/PollingSubscription.d.ts +11 -0
- package/lib/node/orderSubscriber/PollingSubscription.d.ts.map +1 -1
- package/lib/node/orderSubscriber/PollingSubscription.js +11 -0
- package/lib/node/orderSubscriber/WebsocketSubscription.d.ts +18 -0
- package/lib/node/orderSubscriber/WebsocketSubscription.d.ts.map +1 -1
- package/lib/node/orderSubscriber/WebsocketSubscription.js +18 -0
- package/lib/node/orderSubscriber/grpcSubscription.d.ts +16 -0
- package/lib/node/orderSubscriber/grpcSubscription.d.ts.map +1 -1
- package/lib/node/orderSubscriber/grpcSubscription.js +16 -0
- package/lib/node/orderSubscriber/types.d.ts +9 -0
- package/lib/node/orderSubscriber/types.d.ts.map +1 -1
- package/lib/node/priorityFee/averageOverSlotsStrategy.d.ts +1 -0
- package/lib/node/priorityFee/averageOverSlotsStrategy.d.ts.map +1 -1
- package/lib/node/priorityFee/averageOverSlotsStrategy.js +1 -0
- package/lib/node/priorityFee/averageStrategy.d.ts +1 -0
- package/lib/node/priorityFee/averageStrategy.d.ts.map +1 -1
- package/lib/node/priorityFee/averageStrategy.js +1 -0
- package/lib/node/priorityFee/ewmaStrategy.d.ts +10 -0
- package/lib/node/priorityFee/ewmaStrategy.d.ts.map +1 -1
- package/lib/node/priorityFee/ewmaStrategy.js +10 -0
- package/lib/node/priorityFee/heliusPriorityFeeMethod.d.ts +13 -0
- package/lib/node/priorityFee/heliusPriorityFeeMethod.d.ts.map +1 -1
- package/lib/node/priorityFee/heliusPriorityFeeMethod.js +9 -2
- package/lib/node/priorityFee/maxOverSlotsStrategy.d.ts +1 -0
- package/lib/node/priorityFee/maxOverSlotsStrategy.d.ts.map +1 -1
- package/lib/node/priorityFee/maxOverSlotsStrategy.js +1 -0
- package/lib/node/priorityFee/maxStrategy.d.ts +1 -0
- package/lib/node/priorityFee/maxStrategy.d.ts.map +1 -1
- package/lib/node/priorityFee/maxStrategy.js +1 -0
- package/lib/node/priorityFee/priorityFeeSubscriber.d.ts +39 -0
- package/lib/node/priorityFee/priorityFeeSubscriber.d.ts.map +1 -1
- package/lib/node/priorityFee/priorityFeeSubscriber.js +39 -0
- package/lib/node/priorityFee/priorityFeeSubscriberMap.d.ts +20 -1
- package/lib/node/priorityFee/priorityFeeSubscriberMap.d.ts.map +1 -1
- package/lib/node/priorityFee/priorityFeeSubscriberMap.js +21 -2
- package/lib/node/priorityFee/solanaPriorityFeeMethod.d.ts +12 -0
- package/lib/node/priorityFee/solanaPriorityFeeMethod.d.ts.map +1 -1
- package/lib/node/priorityFee/solanaPriorityFeeMethod.js +10 -0
- package/lib/node/priorityFee/types.d.ts +32 -0
- package/lib/node/priorityFee/types.d.ts.map +1 -1
- package/lib/node/priorityFee/types.js +5 -0
- package/lib/node/priorityFee/velocityPriorityFeeMethod.d.ts +11 -0
- package/lib/node/priorityFee/velocityPriorityFeeMethod.d.ts.map +1 -1
- package/lib/node/priorityFee/velocityPriorityFeeMethod.js +8 -0
- package/lib/node/slot/SlotSubscriber.d.ts +18 -0
- package/lib/node/slot/SlotSubscriber.d.ts.map +1 -1
- package/lib/node/slot/SlotSubscriber.js +16 -0
- package/lib/node/slot/SlothashSubscriber.d.ts +26 -0
- package/lib/node/slot/SlothashSubscriber.d.ts.map +1 -1
- package/lib/node/slot/SlothashSubscriber.js +25 -1
- package/lib/node/swift/swiftOrderSubscriber.js +2 -2
- package/lib/node/tokenFaucet.d.ts +2 -2
- package/lib/node/tokenFaucet.d.ts.map +1 -1
- package/lib/node/tokenFaucet.js +11 -4
- package/lib/node/tx/baseTxSender.d.ts +163 -0
- package/lib/node/tx/baseTxSender.d.ts.map +1 -1
- package/lib/node/tx/baseTxSender.js +174 -6
- package/lib/node/tx/blockhashFetcher/baseBlockhashFetcher.d.ts +12 -0
- package/lib/node/tx/blockhashFetcher/baseBlockhashFetcher.d.ts.map +1 -1
- package/lib/node/tx/blockhashFetcher/baseBlockhashFetcher.js +12 -0
- package/lib/node/tx/blockhashFetcher/cachedBlockhashFetcher.d.ts +15 -0
- package/lib/node/tx/blockhashFetcher/cachedBlockhashFetcher.d.ts.map +1 -1
- package/lib/node/tx/blockhashFetcher/cachedBlockhashFetcher.js +15 -0
- package/lib/node/tx/blockhashFetcher/types.d.ts +4 -0
- package/lib/node/tx/blockhashFetcher/types.d.ts.map +1 -1
- package/lib/node/tx/fastSingleTxSender.d.ts +47 -0
- package/lib/node/tx/fastSingleTxSender.d.ts.map +1 -1
- package/lib/node/tx/fastSingleTxSender.js +48 -1
- package/lib/node/tx/forwardOnlyTxSender.d.ts +48 -0
- package/lib/node/tx/forwardOnlyTxSender.d.ts.map +1 -1
- package/lib/node/tx/forwardOnlyTxSender.js +48 -0
- package/lib/node/tx/reportTransactionError.d.ts +18 -6
- package/lib/node/tx/reportTransactionError.d.ts.map +1 -1
- package/lib/node/tx/reportTransactionError.js +18 -6
- package/lib/node/tx/retryTxSender.d.ts +40 -0
- package/lib/node/tx/retryTxSender.d.ts.map +1 -1
- package/lib/node/tx/retryTxSender.js +39 -0
- package/lib/node/tx/txHandler.d.ts +146 -35
- package/lib/node/tx/txHandler.d.ts.map +1 -1
- package/lib/node/tx/txHandler.js +132 -32
- package/lib/node/tx/txParamProcessor.d.ts +47 -0
- package/lib/node/tx/txParamProcessor.d.ts.map +1 -1
- package/lib/node/tx/txParamProcessor.js +47 -0
- package/lib/node/tx/types.d.ts +46 -0
- package/lib/node/tx/types.d.ts.map +1 -1
- package/lib/node/tx/types.js +5 -0
- package/lib/node/tx/utils.d.ts +26 -0
- package/lib/node/tx/utils.d.ts.map +1 -1
- package/lib/node/tx/utils.js +26 -0
- package/lib/node/tx/whileValidTxSender.d.ts +82 -0
- package/lib/node/tx/whileValidTxSender.d.ts.map +1 -1
- package/lib/node/tx/whileValidTxSender.js +81 -0
- package/lib/node/types.d.ts +786 -13
- package/lib/node/types.d.ts.map +1 -1
- package/lib/node/types.js +133 -9
- package/lib/node/user.d.ts +645 -84
- package/lib/node/user.d.ts.map +1 -1
- package/lib/node/user.js +779 -96
- package/lib/node/userMap/PollingSubscription.d.ts +10 -0
- package/lib/node/userMap/PollingSubscription.d.ts.map +1 -1
- package/lib/node/userMap/PollingSubscription.js +14 -2
- package/lib/node/userMap/WebsocketSubscription.d.ts +9 -0
- package/lib/node/userMap/WebsocketSubscription.d.ts.map +1 -1
- package/lib/node/userMap/WebsocketSubscription.js +9 -0
- package/lib/node/userMap/grpcSubscription.d.ts +8 -0
- package/lib/node/userMap/grpcSubscription.d.ts.map +1 -1
- package/lib/node/userMap/grpcSubscription.js +8 -0
- package/lib/node/userMap/referrerMap.d.ts +72 -2
- package/lib/node/userMap/referrerMap.d.ts.map +1 -1
- package/lib/node/userMap/referrerMap.js +84 -2
- package/lib/node/userMap/revenueShareEscrowMap.d.ts +37 -10
- package/lib/node/userMap/revenueShareEscrowMap.d.ts.map +1 -1
- package/lib/node/userMap/revenueShareEscrowMap.js +38 -11
- package/lib/node/userMap/userMap.d.ts +81 -3
- package/lib/node/userMap/userMap.d.ts.map +1 -1
- package/lib/node/userMap/userMap.js +81 -4
- package/lib/node/userMap/userMapConfig.d.ts +23 -0
- package/lib/node/userMap/userMapConfig.d.ts.map +1 -1
- package/lib/node/userMap/userStatsMap.d.ts +22 -0
- package/lib/node/userMap/userStatsMap.d.ts.map +1 -1
- package/lib/node/userMap/userStatsMap.js +22 -0
- package/lib/node/userName.d.ts +16 -0
- package/lib/node/userName.d.ts.map +1 -1
- package/lib/node/userName.js +16 -0
- package/lib/node/userStats.d.ts +28 -1
- package/lib/node/userStats.d.ts.map +1 -1
- package/lib/node/userStats.js +28 -1
- package/lib/node/util/TransactionConfirmationManager.d.ts +33 -0
- package/lib/node/util/TransactionConfirmationManager.d.ts.map +1 -1
- package/lib/node/util/TransactionConfirmationManager.js +33 -0
- package/lib/node/util/chainClock.d.ts +24 -0
- package/lib/node/util/chainClock.d.ts.map +1 -1
- package/lib/node/util/chainClock.js +20 -0
- package/lib/node/util/computeUnits.d.ts +32 -0
- package/lib/node/util/computeUnits.d.ts.map +1 -1
- package/lib/node/util/computeUnits.js +32 -0
- package/lib/node/util/digest.d.ts +17 -0
- package/lib/node/util/digest.d.ts.map +1 -1
- package/lib/node/util/digest.js +17 -0
- package/lib/node/util/ed25519Utils.d.ts +12 -2
- package/lib/node/util/ed25519Utils.d.ts.map +1 -1
- package/lib/node/util/ed25519Utils.js +12 -2
- package/lib/node/util/promiseTimeout.d.ts +9 -0
- package/lib/node/util/promiseTimeout.d.ts.map +1 -1
- package/lib/node/util/promiseTimeout.js +9 -0
- package/lib/node/velocityClient.d.ts +3323 -216
- package/lib/node/velocityClient.d.ts.map +1 -1
- package/lib/node/velocityClient.js +3428 -249
- package/lib/node/wallet.d.ts +37 -0
- package/lib/node/wallet.d.ts.map +1 -1
- package/lib/node/wallet.js +37 -0
- package/package.json +2 -1
- package/src/accounts/basicUserAccountSubscriber.ts +18 -0
- package/src/accounts/basicUserStatsAccountSubscriber.ts +18 -0
- package/src/accounts/bulkAccountLoader.ts +52 -0
- package/src/accounts/bulkUserStatsSubscription.ts +9 -2
- package/src/accounts/bulkUserSubscription.ts +8 -2
- package/src/accounts/customizedCadenceBulkAccountLoader.ts +37 -0
- package/src/accounts/fetch.ts +59 -2
- package/src/accounts/grpcAccountSubscriber.ts +30 -0
- package/src/accounts/grpcInsuranceFundStakeAccountSubscriber.ts +16 -0
- package/src/accounts/grpcMultiAccountSubscriber.ts +121 -38
- package/src/accounts/grpcMultiUserAccountSubscriber.ts +49 -11
- package/src/accounts/grpcProgramAccountSubscriber.ts +33 -0
- package/src/accounts/grpcUserAccountSubscriber.ts +15 -0
- package/src/accounts/grpcUserStatsAccountSubscriber.ts +15 -0
- package/src/accounts/grpcVelocityClientAccountSubscriber.ts +41 -0
- package/src/accounts/grpcVelocityClientAccountSubscriberV2.ts +160 -1
- package/src/accounts/laserProgramAccountSubscriber.ts +34 -0
- package/src/accounts/oneShotUserAccountSubscriber.ts +19 -0
- package/src/accounts/oneShotUserStatsAccountSubscriber.ts +19 -0
- package/src/accounts/pollingInsuranceFundStakeAccountSubscriber.ts +31 -0
- package/src/accounts/pollingOracleAccountSubscriber.ts +21 -2
- package/src/accounts/pollingTokenAccountSubscriber.ts +22 -0
- package/src/accounts/pollingUserAccountSubscriber.ts +32 -0
- package/src/accounts/pollingUserStatsAccountSubscriber.ts +22 -0
- package/src/accounts/pollingVelocityClientAccountSubscriber.ts +84 -1
- package/src/accounts/testBulkAccountLoader.ts +8 -0
- package/src/accounts/types.ts +149 -0
- package/src/accounts/utils.ts +42 -24
- package/src/accounts/webSocketAccountSubscriber.ts +41 -0
- package/src/accounts/webSocketAccountSubscriberV2.ts +31 -23
- package/src/accounts/webSocketInsuranceFundStakeAccountSubscriber.ts +27 -0
- package/src/accounts/webSocketProgramAccountSubscriber.ts +36 -0
- package/src/accounts/webSocketProgramAccountSubscriberV2.ts +26 -0
- package/src/accounts/webSocketProgramAccountsSubscriberV2.ts +21 -0
- package/src/accounts/webSocketUserAccountSubscriber.ts +26 -0
- package/src/accounts/webSocketUserStatsAccountSubsriber.ts +20 -0
- package/src/accounts/webSocketVelocityClientAccountSubscriber.ts +127 -2
- package/src/accounts/webSocketVelocityClientAccountSubscriberV2.ts +110 -0
- package/src/accounts/websocketProgramUserAccountSubscriber.ts +33 -0
- package/src/addresses/marketAddresses.ts +10 -0
- package/src/addresses/pda.ts +228 -12
- package/src/adminClient.ts +2184 -4
- package/src/auctionSubscriber/auctionSubscriber.ts +15 -0
- package/src/auctionSubscriber/auctionSubscriberGrpc.ts +19 -0
- package/src/auctionSubscriber/index.ts +6 -0
- package/src/auctionSubscriber/types.ts +7 -0
- package/src/blockhashSubscriber/BlockhashSubscriber.ts +33 -0
- package/src/blockhashSubscriber/index.ts +5 -0
- package/src/blockhashSubscriber/types.ts +5 -4
- package/src/clock/clockSubscriber.ts +24 -0
- package/src/config.ts +109 -22
- package/src/constants/numericConstants.ts +70 -0
- package/src/constants/perpMarkets.ts +45 -960
- package/src/constants/spotMarkets.ts +23 -793
- package/src/constants/txConstants.ts +1 -0
- package/src/core/VelocityCore.ts +286 -8
- package/src/core/instructions/deposit.ts +22 -0
- package/src/core/instructions/fill.ts +17 -0
- package/src/core/instructions/funding.ts +12 -0
- package/src/core/instructions/liquidation.ts +18 -0
- package/src/core/instructions/orders.ts +28 -0
- package/src/core/instructions/perpOrders.ts +106 -0
- package/src/core/instructions/settlement.ts +14 -0
- package/src/core/instructions/trigger.ts +15 -0
- package/src/core/instructions/withdraw.ts +21 -0
- package/src/core/remainingAccounts.ts +47 -3
- package/src/core/signedMsg.ts +38 -0
- package/src/decode/customCoder.ts +46 -3
- package/src/decode/user.ts +22 -0
- package/src/dlob/DLOB.ts +668 -97
- package/src/dlob/DLOBNode.ts +98 -6
- package/src/dlob/DLOBSubscriber.ts +49 -12
- package/src/dlob/NodeList.ts +69 -0
- package/src/dlob/orderBookLevels.ts +108 -14
- package/src/dlob/types.ts +15 -0
- package/src/events/eventList.ts +14 -0
- package/src/events/eventSubscriber.ts +100 -19
- package/src/events/eventsServerLogProvider.ts +28 -0
- package/src/events/fetchLogs.ts +52 -2
- package/src/events/parse.ts +23 -0
- package/src/events/pollingLogProvider.ts +24 -0
- package/src/events/sort.ts +12 -0
- package/src/events/txEventCache.ts +19 -7
- package/src/events/types.ts +131 -11
- package/src/events/webSocketLogProvider.ts +29 -0
- package/src/factory/oracleClient.ts +2 -2
- package/src/idl/velocity.json +50 -1
- package/src/idl/velocity.ts +50 -1
- package/src/keypair.ts +8 -0
- package/src/marginCalculation.ts +153 -2
- package/src/math/amm.ts +371 -36
- package/src/math/auction.ts +139 -30
- package/src/math/bankruptcy.ts +104 -1
- package/src/math/builder.ts +74 -8
- package/src/math/conversion.ts +21 -0
- package/src/math/exchangeStatus.ts +125 -0
- package/src/math/funding.ts +63 -23
- package/src/math/insurance.ts +62 -0
- package/src/math/liquidation.ts +227 -17
- package/src/math/margin.ts +80 -14
- package/src/math/market.ts +148 -17
- package/src/math/oracles.ts +124 -0
- package/src/math/orders.ts +144 -18
- package/src/math/position.ts +80 -33
- package/src/math/repeg.ts +48 -10
- package/src/math/spotBalance.ts +252 -12
- package/src/math/spotMarket.ts +36 -3
- package/src/math/spotPosition.ts +72 -0
- package/src/math/state.ts +32 -1
- package/src/math/superStake.ts +126 -3
- package/src/math/tiers.ts +29 -0
- package/src/math/trade.ts +125 -55
- package/src/math/utils.ts +71 -9
- package/src/memcmp.ts +131 -7
- package/src/oracles/oracleClientCache.ts +16 -0
- package/src/oracles/oracleId.ts +39 -6
- package/src/oracles/prelaunchOracleClient.ts +20 -0
- package/src/oracles/pythClient.ts +32 -1
- package/src/oracles/pythLazerClient.ts +35 -1
- package/src/oracles/quoteAssetOracleClient.ts +18 -0
- package/src/oracles/strictOraclePrice.ts +21 -0
- package/src/oracles/types.ts +45 -0
- package/src/oracles/utils.ts +20 -0
- package/src/orderParams.ts +42 -4
- package/src/orderSubscriber/OrderSubscriber.ts +74 -2
- package/src/orderSubscriber/PollingSubscription.ts +11 -0
- package/src/orderSubscriber/WebsocketSubscription.ts +18 -0
- package/src/orderSubscriber/grpcSubscription.ts +16 -0
- package/src/orderSubscriber/types.ts +9 -0
- package/src/priorityFee/averageOverSlotsStrategy.ts +1 -0
- package/src/priorityFee/averageStrategy.ts +1 -0
- package/src/priorityFee/ewmaStrategy.ts +10 -0
- package/src/priorityFee/heliusPriorityFeeMethod.ts +13 -2
- package/src/priorityFee/maxOverSlotsStrategy.ts +1 -0
- package/src/priorityFee/maxStrategy.ts +1 -0
- package/src/priorityFee/priorityFeeSubscriber.ts +39 -0
- package/src/priorityFee/priorityFeeSubscriberMap.ts +21 -2
- package/src/priorityFee/solanaPriorityFeeMethod.ts +12 -0
- package/src/priorityFee/types.ts +33 -15
- package/src/priorityFee/velocityPriorityFeeMethod.ts +11 -0
- package/src/slot/SlotSubscriber.ts +18 -0
- package/src/slot/SlothashSubscriber.ts +27 -1
- package/src/swift/swiftOrderSubscriber.ts +2 -2
- package/src/tokenFaucet.ts +10 -7
- package/src/tx/baseTxSender.ts +185 -5
- package/src/tx/blockhashFetcher/baseBlockhashFetcher.ts +12 -0
- package/src/tx/blockhashFetcher/cachedBlockhashFetcher.ts +15 -0
- package/src/tx/blockhashFetcher/types.ts +4 -0
- package/src/tx/fastSingleTxSender.ts +58 -4
- package/src/tx/forwardOnlyTxSender.ts +48 -0
- package/src/tx/reportTransactionError.ts +18 -6
- package/src/tx/retryTxSender.ts +40 -0
- package/src/tx/txHandler.ts +146 -35
- package/src/tx/txParamProcessor.ts +47 -0
- package/src/tx/types.ts +46 -0
- package/src/tx/utils.ts +26 -0
- package/src/tx/whileValidTxSender.ts +82 -0
- package/src/types.ts +783 -22
- package/src/user.ts +869 -110
- package/src/userMap/PollingSubscription.ts +16 -2
- package/src/userMap/WebsocketSubscription.ts +9 -0
- package/src/userMap/grpcSubscription.ts +8 -0
- package/src/userMap/referrerMap.ts +92 -3
- package/src/userMap/revenueShareEscrowMap.ts +38 -11
- package/src/userMap/userMap.ts +82 -4
- package/src/userMap/userMapConfig.ts +23 -10
- package/src/userMap/userStatsMap.ts +22 -0
- package/src/userName.ts +16 -0
- package/src/userStats.ts +28 -1
- package/src/util/TransactionConfirmationManager.ts +33 -0
- package/src/util/chainClock.ts +24 -0
- package/src/util/computeUnits.ts +32 -0
- package/src/util/digest.ts +17 -0
- package/src/util/ed25519Utils.ts +12 -2
- package/src/util/promiseTimeout.ts +9 -0
- package/src/velocityClient.ts +3456 -254
- package/src/wallet.ts +37 -0
- package/tests/VelocityCore/builder_escrow.test.ts +121 -0
- package/tests/amm/test.ts +102 -0
- package/tests/builder/builderFee.test.ts +42 -0
- package/tests/dlob/helpers.ts +1 -0
- package/tests/dlob/tickSizeStandardization.ts +545 -0
- package/tests/exchangeStatus/test.ts +45 -0
- package/tests/liquidation/test.ts +125 -0
- package/tests/oracles/mmOracleGate.test.ts +379 -0
- package/tests/oracles/pythPegSnap.test.ts +76 -0
- package/tests/sdkParity/enumParity.test.ts +84 -0
- package/tests/sdkParity/marginCategoryFill.test.ts +143 -0
- package/tests/sdkParity/memcmpOffsets.test.ts +139 -0
- package/tests/spot/test.ts +55 -0
- package/tests/user/bankruptcy.ts +165 -0
- package/tests/user/feeAndWithdrawLimits.ts +284 -0
- package/tests/user/getMarginCalculation.ts +226 -1
- package/tests/user/test.ts +8 -4
|
@@ -1 +1,2 @@
|
|
|
1
|
+
/** Error code attached to the `TxSendError` thrown when a transaction send times out without the SDK observing either a confirmation or a definite on-chain failure (see `BaseTxSender`/`TransactionConfirmationManager`). Not a Solana/program error code — it's SDK-internal, meaning "we don't know what happened." */
|
|
1
2
|
export const NOT_CONFIRMED_ERROR_CODE = -1001;
|
package/src/core/VelocityCore.ts
CHANGED
|
@@ -39,6 +39,10 @@ import {
|
|
|
39
39
|
import * as remainingAccounts from './remainingAccounts';
|
|
40
40
|
import * as signedMsg from './signedMsg';
|
|
41
41
|
|
|
42
|
+
/**
|
|
43
|
+
* Configuration passed to subscription-free `VelocityCore` helpers that need to know
|
|
44
|
+
* which deployment (program id / IDL) they are building instructions against.
|
|
45
|
+
*/
|
|
42
46
|
export type VelocityCoreContext = {
|
|
43
47
|
/** Velocity program id. */
|
|
44
48
|
programId: PublicKey;
|
|
@@ -48,37 +52,61 @@ export type VelocityCoreContext = {
|
|
|
48
52
|
};
|
|
49
53
|
|
|
50
54
|
/**
|
|
51
|
-
* VelocityCore is the
|
|
52
|
-
*
|
|
53
|
-
*
|
|
55
|
+
* `VelocityCore` is the subscription-free escape hatch of the SDK: a static-method
|
|
56
|
+
* surface for deriving PDAs, decoding raw account buffers, building `remainingAccounts`,
|
|
57
|
+
* and constructing `TransactionInstruction`s directly against a `Program<Velocity>` —
|
|
58
|
+
* with no `VelocityClient` subscription, polling, or websocket state required. Every
|
|
59
|
+
* method here is pure (or a single RPC call) and safe to use from a stateless backend,
|
|
60
|
+
* a keeper bot, or any context where the full subscribed client is overkill.
|
|
54
61
|
*
|
|
55
62
|
* Transaction/instruction builders will be progressively moved here from `VelocityClient`.
|
|
56
63
|
*/
|
|
57
64
|
export class VelocityCore {
|
|
58
|
-
/** Re-export PDA helpers (
|
|
65
|
+
/** Re-export of `../addresses/pda` — pure PDA derivation helpers (state, user, spot/perp market, vaults, etc). */
|
|
59
66
|
static readonly pdas = pdas;
|
|
60
67
|
|
|
61
|
-
/** Re-export
|
|
68
|
+
/** Re-export of `../constants` — SDK-wide numeric precisions, market configs, and program constants. */
|
|
62
69
|
static readonly constants = constants;
|
|
63
70
|
|
|
64
|
-
/** Re-export
|
|
71
|
+
/** Re-export of `./remainingAccounts` — pure builder for the oracle/market `AccountMeta[]` every trading/keeper instruction needs in `remainingAccounts`. */
|
|
65
72
|
static readonly remainingAccounts = remainingAccounts;
|
|
73
|
+
|
|
74
|
+
/** Re-export of `./signedMsg` — Borsh encode/decode helpers for Swift (signed order) message envelopes. */
|
|
66
75
|
static readonly signedMsg = signedMsg;
|
|
67
76
|
|
|
77
|
+
/** Returns the SDK's bundled Velocity Anchor IDL (`idl/velocity.json`), typed as `Velocity`. */
|
|
68
78
|
static defaultIdl(): Velocity {
|
|
69
79
|
return velocityIDL as unknown as Velocity;
|
|
70
80
|
}
|
|
71
81
|
|
|
82
|
+
/**
|
|
83
|
+
* Builds a `CustomBorshCoder` for the given IDL, usable to encode/decode Anchor
|
|
84
|
+
* account and type layouts without constructing a full `Program`.
|
|
85
|
+
* @param idl - IDL to build the coder from. Defaults to `VelocityCore.defaultIdl()`.
|
|
86
|
+
* @returns a coder that can (de)serialize any account/type defined in `idl`.
|
|
87
|
+
*/
|
|
72
88
|
static coder(idl: Velocity = VelocityCore.defaultIdl()): CustomBorshCoder {
|
|
73
89
|
return new CustomBorshCoder(idl as any);
|
|
74
90
|
}
|
|
75
91
|
|
|
76
|
-
/**
|
|
92
|
+
/**
|
|
93
|
+
* Decodes a raw Velocity `User` account buffer (including its 8-byte Anchor
|
|
94
|
+
* discriminator) into a `UserAccount`, without needing a `Program` or RPC call.
|
|
95
|
+
* Does not verify the discriminator — passing a buffer for a different account
|
|
96
|
+
* type will produce garbage or throw from an out-of-bounds read.
|
|
97
|
+
* @param buffer - raw on-chain account data for a `User` PDA.
|
|
98
|
+
* @returns the decoded `UserAccount`.
|
|
99
|
+
*/
|
|
77
100
|
static decodeUserAccount(buffer: Buffer): UserAccount {
|
|
78
101
|
return decodeUser(buffer);
|
|
79
102
|
}
|
|
80
103
|
|
|
81
|
-
/**
|
|
104
|
+
/**
|
|
105
|
+
* Fetches a `User` account over RPC and decodes it, with no subscription required.
|
|
106
|
+
* @param connection - RPC connection to fetch the account from.
|
|
107
|
+
* @param userAccountPublicKey - the `User` PDA's address.
|
|
108
|
+
* @returns the decoded `UserAccount`, or `null` if the account does not exist.
|
|
109
|
+
*/
|
|
82
110
|
static async fetchUserAccount(
|
|
83
111
|
connection: Connection,
|
|
84
112
|
userAccountPublicKey: PublicKey
|
|
@@ -87,6 +115,28 @@ export class VelocityCore {
|
|
|
87
115
|
return data ? VelocityCore.decodeUserAccount(data) : null;
|
|
88
116
|
}
|
|
89
117
|
|
|
118
|
+
/**
|
|
119
|
+
* Builds a `deposit` instruction, transferring tokens from `userTokenAccount` into
|
|
120
|
+
* the protocol's `spotMarketVault` and crediting the `user` account's spot position.
|
|
121
|
+
* Any signer may fund someone else's `user` account this way (`authority` need not be
|
|
122
|
+
* `user`'s owner/delegate) — the SDK only requires `userTokenAccount` be owned by
|
|
123
|
+
* `authority`; on mainnet, deposits from a non-owner/delegate authority additionally
|
|
124
|
+
* require that authority to be on-chain-whitelisted, or the instruction throws.
|
|
125
|
+
* @param args.program - Anchor `Program<Velocity>` used to build the instruction.
|
|
126
|
+
* @param args.marketIndex - target spot market index.
|
|
127
|
+
* @param args.amount - deposit amount, in the spot market's mint's native token precision (e.g. 1e6 for a 6-decimal USDC-like mint) — not a fixed SDK precision.
|
|
128
|
+
* @param args.reduceOnly - if true (or if the market is reduce-only), the deposited amount is capped to the user's current borrow balance in this market so the deposit can only repay a borrow, never flip to a net deposit.
|
|
129
|
+
* @param args.state - the global `State` PDA.
|
|
130
|
+
* @param args.spotMarket - the target `SpotMarket` PDA.
|
|
131
|
+
* @param args.spotMarketVault - the spot market's token vault PDA (destination of the transfer).
|
|
132
|
+
* @param args.user - the `User` account being credited.
|
|
133
|
+
* @param args.userStats - the depositing user's `UserStats` PDA.
|
|
134
|
+
* @param args.userTokenAccount - token account the deposit is transferred from; must share a mint with `spotMarketVault` and be owned by `authority`.
|
|
135
|
+
* @param args.authority - signer authorizing the token transfer (source token account owner).
|
|
136
|
+
* @param args.tokenProgram - the SPL Token or Token-2022 program owning the mint.
|
|
137
|
+
* @param args.remainingAccounts - oracle/market `AccountMeta[]` for `marketIndex` (see `VelocityCore.remainingAccounts.getRemainingAccounts`), plus the deposited mint account, plus any Token-2022 transfer-hook accounts the mint requires.
|
|
138
|
+
* @returns the unsigned `deposit` `TransactionInstruction`.
|
|
139
|
+
*/
|
|
90
140
|
static async buildDepositInstruction(args: {
|
|
91
141
|
program: VelocityProgram;
|
|
92
142
|
marketIndex: number;
|
|
@@ -105,6 +155,27 @@ export class VelocityCore {
|
|
|
105
155
|
return await buildDepositInstruction(args);
|
|
106
156
|
}
|
|
107
157
|
|
|
158
|
+
/**
|
|
159
|
+
* Builds a `withdraw` instruction, transferring tokens from the protocol's
|
|
160
|
+
* `spotMarketVault` to `userTokenAccount` and debiting (or borrowing against)
|
|
161
|
+
* the user's spot position. Unlike deposit, withdrawal requires `authority` to be
|
|
162
|
+
* the `user` account's own `authority` field (delegates cannot withdraw).
|
|
163
|
+
* @param args.program - Anchor `Program<Velocity>` used to build the instruction.
|
|
164
|
+
* @param args.marketIndex - source spot market index.
|
|
165
|
+
* @param args.amount - withdrawal amount, in the spot market's mint's native token precision.
|
|
166
|
+
* @param args.reduceOnly - if true (or if the market is reduce-only), the withdrawal is capped to the user's current deposit balance in this market so it can only reduce a deposit, never open/increase a borrow.
|
|
167
|
+
* @param args.state - the global `State` PDA.
|
|
168
|
+
* @param args.spotMarket - the source `SpotMarket` PDA.
|
|
169
|
+
* @param args.spotMarketVault - the spot market's token vault PDA (source of the transfer).
|
|
170
|
+
* @param args.velocitySigner - the program's PDA signer authority (`state.signer`) used to authorize the vault-to-user CPI transfer; must equal the `state` account's recorded `signer` field or the instruction throws.
|
|
171
|
+
* @param args.user - the `User` account being debited; its `authority` must equal `args.authority`.
|
|
172
|
+
* @param args.userStats - the withdrawing user's `UserStats` PDA; its `authority` must also equal `args.authority`.
|
|
173
|
+
* @param args.userTokenAccount - token account the withdrawal is transferred to; must share a mint with `spotMarketVault`.
|
|
174
|
+
* @param args.authority - signer that must equal `user.authority` (and `userStats.authority`).
|
|
175
|
+
* @param args.tokenProgram - the SPL Token or Token-2022 program owning the mint.
|
|
176
|
+
* @param args.remainingAccounts - oracle/market `AccountMeta[]` for `marketIndex`, plus the withdrawn mint account, plus any Token-2022 transfer-hook accounts.
|
|
177
|
+
* @returns the unsigned `withdraw` `TransactionInstruction`.
|
|
178
|
+
*/
|
|
108
179
|
static async buildWithdrawInstruction(args: {
|
|
109
180
|
program: VelocityProgram;
|
|
110
181
|
marketIndex: number;
|
|
@@ -124,6 +195,19 @@ export class VelocityCore {
|
|
|
124
195
|
return await buildWithdrawInstruction(args);
|
|
125
196
|
}
|
|
126
197
|
|
|
198
|
+
/**
|
|
199
|
+
* Builds a `placeOrders` instruction, placing a batch of up to 32 perp and/or spot
|
|
200
|
+
* orders in one instruction. None of the orders may be immediate-or-cancel — IOC
|
|
201
|
+
* orders are only valid via `placeAndTake`/`placeAndMake` — or the instruction throws.
|
|
202
|
+
* @param args.program - Anchor `Program<Velocity>` used to build the instruction.
|
|
203
|
+
* @param args.formattedParams - array of `OrderParams` (see `OrderParams` in `types`): `baseAssetAmount` is BASE_PRECISION (1e9), `price`/`triggerPrice`/`oraclePriceOffset` are PRICE_PRECISION (1e6).
|
|
204
|
+
* @param args.state - the global `State` PDA.
|
|
205
|
+
* @param args.user - the `User` account the orders are placed on; `authority` must own or be a delegate of it.
|
|
206
|
+
* @param args.userStats - accepted for forward-compatibility but not required by the current on-chain `place_orders` accounts (only `state`/`user`/`authority` are used).
|
|
207
|
+
* @param args.authority - signer that must own or be a registered delegate of `user`.
|
|
208
|
+
* @param args.remainingAccounts - oracle/market `AccountMeta[]` covering every order's market, plus (if builder codes are enabled protocol-wide) the placing user's `RevenueShareEscrow` account when any order carries a `builderIdx`.
|
|
209
|
+
* @returns the unsigned `placeOrders` `TransactionInstruction`.
|
|
210
|
+
*/
|
|
127
211
|
static async buildPlaceOrdersInstruction(args: {
|
|
128
212
|
program: VelocityProgram;
|
|
129
213
|
formattedParams: any[];
|
|
@@ -136,6 +220,22 @@ export class VelocityCore {
|
|
|
136
220
|
return await buildPlaceOrdersInstruction(args);
|
|
137
221
|
}
|
|
138
222
|
|
|
223
|
+
/**
|
|
224
|
+
* Builds a `cancelOrders` instruction, cancelling every open order on `user` that
|
|
225
|
+
* matches all of the given (optional) filters. Passing `null`/`undefined` for a
|
|
226
|
+
* filter means "don't filter on this dimension" — passing all three as `null`
|
|
227
|
+
* cancels every open order.
|
|
228
|
+
* @param args.program - Anchor `Program<Velocity>` used to build the instruction.
|
|
229
|
+
* @param args.marketType - only cancel orders of this `MarketType` (`Perp`/`Spot`), or `null` for both.
|
|
230
|
+
* @param args.marketIndex - only cancel orders on this market index, or `null` for all markets.
|
|
231
|
+
* @param args.direction - only cancel orders with this `PositionDirection` (long/short), or `null` for both.
|
|
232
|
+
* @param args.user - the `User` account whose orders are cancelled.
|
|
233
|
+
* @param args.state - the global `State` PDA.
|
|
234
|
+
* @param args.userStats - accepted for forward-compatibility but not required by the current on-chain `cancel_orders` accounts (only `state`/`user`/`authority` are used).
|
|
235
|
+
* @param args.authority - signer that must own or be a registered delegate of `user`.
|
|
236
|
+
* @param args.remainingAccounts - oracle/market `AccountMeta[]` needed to re-derive auction/oracle-offset prices for the cancelled orders.
|
|
237
|
+
* @returns the unsigned `cancelOrders` `TransactionInstruction`.
|
|
238
|
+
*/
|
|
139
239
|
static async buildCancelOrdersInstruction(args: {
|
|
140
240
|
program: VelocityProgram;
|
|
141
241
|
marketType: any;
|
|
@@ -150,6 +250,21 @@ export class VelocityCore {
|
|
|
150
250
|
return await buildCancelOrdersInstruction(args);
|
|
151
251
|
}
|
|
152
252
|
|
|
253
|
+
/**
|
|
254
|
+
* Builds a `fillPerpOrder` instruction, matching a resting perp order against the
|
|
255
|
+
* AMM and/or the supplied maker accounts. Permissionless: `user` (the order owner)
|
|
256
|
+
* does not need to sign — only `authority` (owner/delegate of `filler`) does.
|
|
257
|
+
* @param args.program - Anchor `Program<Velocity>` used to build the instruction.
|
|
258
|
+
* @param args.orderId - the order to fill, or `null` to fill `user`'s most recently placed order (resolved on-chain via `get_last_order_id`).
|
|
259
|
+
* @param args.state - the global `State` PDA.
|
|
260
|
+
* @param args.filler - the keeper's `User` account that earns the filler reward.
|
|
261
|
+
* @param args.fillerStats - the filler's `UserStats` PDA.
|
|
262
|
+
* @param args.user - the order owner's `User` account (the taker being filled).
|
|
263
|
+
* @param args.userStats - the taker's `UserStats` PDA.
|
|
264
|
+
* @param args.authority - signer that must own or be a registered delegate of `filler`.
|
|
265
|
+
* @param args.remainingAccounts - writable perp market + oracle `AccountMeta[]` for the order's market, followed by any maker/referrer `(User, UserStats)` account pairs, followed by the taker's `RevenueShareEscrow` account if builder codes are enabled protocol-wide.
|
|
266
|
+
* @returns the unsigned `fillPerpOrder` `TransactionInstruction`.
|
|
267
|
+
*/
|
|
153
268
|
static async buildFillPerpOrderInstruction(args: {
|
|
154
269
|
program: VelocityProgram;
|
|
155
270
|
orderId: number | null;
|
|
@@ -164,6 +279,21 @@ export class VelocityCore {
|
|
|
164
279
|
return await buildFillPerpOrderInstruction(args);
|
|
165
280
|
}
|
|
166
281
|
|
|
282
|
+
/**
|
|
283
|
+
* Builds a `triggerOrder` instruction, flipping a resting trigger order (stop-loss /
|
|
284
|
+
* take-profit) into a fillable market/limit order once its trigger condition is met
|
|
285
|
+
* against the oracle. Permissionless: `user` (the order owner) does not need to sign
|
|
286
|
+
* — only `authority` (owner/delegate of `filler`) does. Does not fill the order; a
|
|
287
|
+
* subsequent `fillPerpOrder` (or `placeAndTake`) is needed to actually execute it.
|
|
288
|
+
* @param args.program - Anchor `Program<Velocity>` used to build the instruction.
|
|
289
|
+
* @param args.orderId - the trigger order's on-chain order ID.
|
|
290
|
+
* @param args.state - the global `State` PDA.
|
|
291
|
+
* @param args.filler - the keeper's `User` account submitting the trigger.
|
|
292
|
+
* @param args.user - the order owner's `User` account.
|
|
293
|
+
* @param args.authority - signer that must own or be a registered delegate of `filler`.
|
|
294
|
+
* @param args.remainingAccounts - oracle/market `AccountMeta[]` for the order's market.
|
|
295
|
+
* @returns the unsigned `triggerOrder` `TransactionInstruction`.
|
|
296
|
+
*/
|
|
167
297
|
static async buildTriggerOrderInstruction(args: {
|
|
168
298
|
program: VelocityProgram;
|
|
169
299
|
orderId: number;
|
|
@@ -176,6 +306,19 @@ export class VelocityCore {
|
|
|
176
306
|
return await buildTriggerOrderInstruction(args);
|
|
177
307
|
}
|
|
178
308
|
|
|
309
|
+
/**
|
|
310
|
+
* Builds a `settlePnl` instruction, settling `user`'s realized/expired perp PnL on
|
|
311
|
+
* `marketIndex` against the quote spot market vault. Fully permissionless: `authority`
|
|
312
|
+
* does not need to own or be a delegate of `user` — any signer can crank this.
|
|
313
|
+
* @param args.program - Anchor `Program<Velocity>` used to build the instruction.
|
|
314
|
+
* @param args.marketIndex - the perp market whose position PnL is settled.
|
|
315
|
+
* @param args.state - the global `State` PDA.
|
|
316
|
+
* @param args.authority - any signer; not required to own `user`.
|
|
317
|
+
* @param args.user - the `User` account being settled.
|
|
318
|
+
* @param args.spotMarketVault - the quote (market index 0) spot market's token vault PDA.
|
|
319
|
+
* @param args.remainingAccounts - writable perp market + oracle `AccountMeta[]` for `marketIndex`, plus the writable quote spot market, plus (if builder codes are enabled) `user`'s `RevenueShareEscrow` and the revenue-share market map needed to sweep completed builder fees.
|
|
320
|
+
* @returns the unsigned `settlePnl` `TransactionInstruction`.
|
|
321
|
+
*/
|
|
179
322
|
static async buildSettlePnlInstruction(args: {
|
|
180
323
|
program: VelocityProgram;
|
|
181
324
|
marketIndex: number;
|
|
@@ -188,6 +331,23 @@ export class VelocityCore {
|
|
|
188
331
|
return await buildSettlePnlInstruction(args);
|
|
189
332
|
}
|
|
190
333
|
|
|
334
|
+
/**
|
|
335
|
+
* Builds a `liquidatePerp` instruction, letting `liquidator` take over (part of) an
|
|
336
|
+
* under-margined perp position from `user`. `user` does not need to sign; `authority`
|
|
337
|
+
* must own or be a delegate of `liquidator`, and `liquidator` must differ from `user`.
|
|
338
|
+
* @param args.program - Anchor `Program<Velocity>` used to build the instruction.
|
|
339
|
+
* @param args.marketIndex - the perp market being liquidated.
|
|
340
|
+
* @param args.maxBaseAssetAmount - maximum base amount the liquidator is willing to take on, BASE_PRECISION (1e9).
|
|
341
|
+
* @param args.limitPrice - worst acceptable execution price, PRICE_PRECISION (1e6), or `null` for no limit.
|
|
342
|
+
* @param args.state - the global `State` PDA.
|
|
343
|
+
* @param args.authority - signer that must own or be a registered delegate of `liquidator`.
|
|
344
|
+
* @param args.user - the `User` account being liquidated.
|
|
345
|
+
* @param args.userStats - the liquidated user's `UserStats` PDA.
|
|
346
|
+
* @param args.liquidator - the `User` account taking over the position; must not equal `user`.
|
|
347
|
+
* @param args.liquidatorStats - the liquidator's `UserStats` PDA.
|
|
348
|
+
* @param args.remainingAccounts - writable perp market + oracle `AccountMeta[]` for `marketIndex`.
|
|
349
|
+
* @returns the unsigned `liquidatePerp` `TransactionInstruction`.
|
|
350
|
+
*/
|
|
191
351
|
static async buildLiquidatePerpInstruction(args: {
|
|
192
352
|
program: VelocityProgram;
|
|
193
353
|
marketIndex: number;
|
|
@@ -204,6 +364,19 @@ export class VelocityCore {
|
|
|
204
364
|
return await buildLiquidatePerpInstruction(args);
|
|
205
365
|
}
|
|
206
366
|
|
|
367
|
+
/**
|
|
368
|
+
* Builds a `placePerpOrder` instruction, placing a single resting perp order.
|
|
369
|
+
* Rejects immediate-or-cancel orders — use `buildPlaceAndTakePerpOrderInstruction`
|
|
370
|
+
* or `buildPlaceAndMakePerpOrderInstruction` for IOC orders instead.
|
|
371
|
+
* @param args.program - Anchor `Program<Velocity>` used to build the instruction.
|
|
372
|
+
* @param args.orderParams - an `OrderParams` object; `baseAssetAmount` is BASE_PRECISION (1e9), `price`/`triggerPrice`/`oraclePriceOffset` are PRICE_PRECISION (1e6).
|
|
373
|
+
* @param args.state - the global `State` PDA.
|
|
374
|
+
* @param args.user - the `User` account the order is placed on.
|
|
375
|
+
* @param args.userStats - accepted for forward-compatibility but not required by the current on-chain `place_perp_order` accounts.
|
|
376
|
+
* @param args.authority - signer that must own or be a registered delegate of `user`.
|
|
377
|
+
* @param args.remainingAccounts - oracle/market `AccountMeta[]` for `orderParams.marketIndex`, plus the placing user's `RevenueShareEscrow` account if the order carries a `builderIdx` and builder codes are enabled.
|
|
378
|
+
* @returns the unsigned `placePerpOrder` `TransactionInstruction`.
|
|
379
|
+
*/
|
|
207
380
|
static async buildPlacePerpOrderInstruction(args: {
|
|
208
381
|
program: VelocityProgram;
|
|
209
382
|
orderParams: any;
|
|
@@ -216,6 +389,22 @@ export class VelocityCore {
|
|
|
216
389
|
return await buildPlacePerpOrderInstruction(args);
|
|
217
390
|
}
|
|
218
391
|
|
|
392
|
+
/**
|
|
393
|
+
* Builds a `placeAndTakePerpOrder` instruction: places an order and immediately
|
|
394
|
+
* attempts to fill it as a taker against the AMM and/or the supplied maker accounts.
|
|
395
|
+
* `orderParams.postOnly` must be `PostOnlyParam.None` or the instruction throws. Any
|
|
396
|
+
* portion left unfilled is auto-cancelled when the order is (or becomes, via
|
|
397
|
+
* `optionalParams`) immediate-or-cancel.
|
|
398
|
+
* @param args.program - Anchor `Program<Velocity>` used to build the instruction.
|
|
399
|
+
* @param args.orderParams - an `OrderParams` object; `baseAssetAmount` is BASE_PRECISION (1e9), `price`/`triggerPrice`/`oraclePriceOffset` are PRICE_PRECISION (1e6).
|
|
400
|
+
* @param args.optionalParams - packed `u32` combining a `PlaceAndTakeOrderSuccessCondition` (fail the tx if not at least partially/fully filled) and an auction-duration percentage override; pass `null` for default behavior (no success-condition check, no override). Also forces IOC cancel-remainder semantics when non-null.
|
|
401
|
+
* @param args.state - the global `State` PDA.
|
|
402
|
+
* @param args.user - the taker's `User` account.
|
|
403
|
+
* @param args.userStats - the taker's `UserStats` PDA.
|
|
404
|
+
* @param args.authority - signer that must own or be a registered delegate of `user`.
|
|
405
|
+
* @param args.remainingAccounts - writable perp market + oracle `AccountMeta[]` for `orderParams.marketIndex`, followed by maker/referrer `(User, UserStats)` pairs, followed by the taker's `RevenueShareEscrow` account if builder codes are enabled.
|
|
406
|
+
* @returns the unsigned `placeAndTakePerpOrder` `TransactionInstruction`.
|
|
407
|
+
*/
|
|
219
408
|
static async buildPlaceAndTakePerpOrderInstruction(args: {
|
|
220
409
|
program: VelocityProgram;
|
|
221
410
|
orderParams: any;
|
|
@@ -229,6 +418,24 @@ export class VelocityCore {
|
|
|
229
418
|
return await buildPlaceAndTakePerpOrderInstruction(args);
|
|
230
419
|
}
|
|
231
420
|
|
|
421
|
+
/**
|
|
422
|
+
* Builds a `placeAndMakePerpOrder` instruction: posts an immediate-or-cancel,
|
|
423
|
+
* post-only limit order for `user` and immediately fills it as the maker against
|
|
424
|
+
* `taker`'s existing resting order. `orderParams` must be an IOC, post-only, `Limit`
|
|
425
|
+
* order or the instruction throws. Any unfilled remainder of the just-placed maker
|
|
426
|
+
* order is auto-cancelled.
|
|
427
|
+
* @param args.program - Anchor `Program<Velocity>` used to build the instruction.
|
|
428
|
+
* @param args.orderParams - an `OrderParams` object; `baseAssetAmount` is BASE_PRECISION (1e9), `price`/`oraclePriceOffset` are PRICE_PRECISION (1e6).
|
|
429
|
+
* @param args.takerOrderId - the on-chain order ID of `taker`'s resting order being filled.
|
|
430
|
+
* @param args.state - the global `State` PDA.
|
|
431
|
+
* @param args.user - the maker's `User` account.
|
|
432
|
+
* @param args.userStats - the maker's `UserStats` PDA.
|
|
433
|
+
* @param args.taker - the taker's `User` account (order owner being filled).
|
|
434
|
+
* @param args.takerStats - the taker's `UserStats` PDA.
|
|
435
|
+
* @param args.authority - signer that must own or be a registered delegate of `user` (the maker).
|
|
436
|
+
* @param args.remainingAccounts - writable perp market + oracle `AccountMeta[]` for `orderParams.marketIndex`, followed by any additional maker/referrer `(User, UserStats)` pairs needed to fill `taker`'s order, followed by `taker`'s `RevenueShareEscrow` account if builder codes are enabled.
|
|
437
|
+
* @returns the unsigned `placeAndMakePerpOrder` `TransactionInstruction`.
|
|
438
|
+
*/
|
|
232
439
|
static async buildPlaceAndMakePerpOrderInstruction(args: {
|
|
233
440
|
program: VelocityProgram;
|
|
234
441
|
orderParams: any;
|
|
@@ -244,6 +451,16 @@ export class VelocityCore {
|
|
|
244
451
|
return await buildPlaceAndMakePerpOrderInstruction(args);
|
|
245
452
|
}
|
|
246
453
|
|
|
454
|
+
/**
|
|
455
|
+
* Builds a `cancelOrder` instruction for a single order.
|
|
456
|
+
* @param args.program - Anchor `Program<Velocity>` used to build the instruction.
|
|
457
|
+
* @param args.orderId - the order to cancel, or `null` to cancel `user`'s most recently placed order (resolved on-chain via `get_last_order_id` — safe to use right after a `place*` instruction in the same transaction, since the on-chain order ID isn't known at build time).
|
|
458
|
+
* @param args.state - the global `State` PDA.
|
|
459
|
+
* @param args.user - the `User` account whose order is cancelled.
|
|
460
|
+
* @param args.authority - signer that must own or be a registered delegate of `user`.
|
|
461
|
+
* @param args.remainingAccounts - oracle/market `AccountMeta[]` needed to re-derive the cancelled order's auction/oracle-offset price.
|
|
462
|
+
* @returns the unsigned `cancelOrder` `TransactionInstruction`.
|
|
463
|
+
*/
|
|
247
464
|
static async buildCancelOrderInstruction(args: {
|
|
248
465
|
program: VelocityProgram;
|
|
249
466
|
orderId: number | null;
|
|
@@ -255,6 +472,19 @@ export class VelocityCore {
|
|
|
255
472
|
return await buildCancelOrderInstruction(args);
|
|
256
473
|
}
|
|
257
474
|
|
|
475
|
+
/**
|
|
476
|
+
* Builds a `cancelOrderByUserId` instruction, cancelling the order matching the
|
|
477
|
+
* caller-assigned `userOrderId` (the `OrderParams.userOrderId` tag set at placement)
|
|
478
|
+
* rather than the program-assigned order ID.
|
|
479
|
+
* @param args.program - Anchor `Program<Velocity>` used to build the instruction.
|
|
480
|
+
* @param args.userOrderId - the caller-assigned order tag (`u8`) supplied when the order was placed.
|
|
481
|
+
* @param args.state - the global `State` PDA.
|
|
482
|
+
* @param args.user - the `User` account whose order is cancelled.
|
|
483
|
+
* @param args.authority - signer that must own or be a registered delegate of `user`.
|
|
484
|
+
* @param args.oracle - accepted for forward-compatibility but not required by the current on-chain `cancel_order_by_user_id` accounts (only `state`/`user`/`authority` are used).
|
|
485
|
+
* @param args.remainingAccounts - oracle/market `AccountMeta[]` needed to re-derive the cancelled order's auction/oracle-offset price.
|
|
486
|
+
* @returns the unsigned `cancelOrderByUserId` `TransactionInstruction`.
|
|
487
|
+
*/
|
|
258
488
|
static async buildCancelOrderByUserIdInstruction(args: {
|
|
259
489
|
program: VelocityProgram;
|
|
260
490
|
userOrderId: number;
|
|
@@ -267,6 +497,17 @@ export class VelocityCore {
|
|
|
267
497
|
return await buildCancelOrderByUserIdInstruction(args);
|
|
268
498
|
}
|
|
269
499
|
|
|
500
|
+
/**
|
|
501
|
+
* Builds a `cancelOrdersByIds` instruction, cancelling multiple orders by their
|
|
502
|
+
* program-assigned order IDs in one instruction.
|
|
503
|
+
* @param args.program - Anchor `Program<Velocity>` used to build the instruction.
|
|
504
|
+
* @param args.orderIds - order IDs to cancel; passing `undefined` sends an empty list on-chain (cancels nothing).
|
|
505
|
+
* @param args.state - the global `State` PDA.
|
|
506
|
+
* @param args.user - the `User` account whose orders are cancelled.
|
|
507
|
+
* @param args.authority - signer that must own or be a registered delegate of `user`.
|
|
508
|
+
* @param args.remainingAccounts - oracle/market `AccountMeta[]` needed to re-derive the cancelled orders' auction/oracle-offset prices.
|
|
509
|
+
* @returns the unsigned `cancelOrdersByIds` `TransactionInstruction`.
|
|
510
|
+
*/
|
|
270
511
|
static async buildCancelOrdersByIdsInstruction(args: {
|
|
271
512
|
program: VelocityProgram;
|
|
272
513
|
orderIds: number[] | undefined;
|
|
@@ -278,6 +519,19 @@ export class VelocityCore {
|
|
|
278
519
|
return await buildCancelOrdersByIdsInstruction(args);
|
|
279
520
|
}
|
|
280
521
|
|
|
522
|
+
/**
|
|
523
|
+
* Builds a `modifyOrder` instruction, mutating an existing resting order in place
|
|
524
|
+
* (e.g. new price/size/trigger) rather than cancel-and-replace.
|
|
525
|
+
* @param args.program - Anchor `Program<Velocity>` used to build the instruction.
|
|
526
|
+
* @param args.orderId - the order to modify, or `null`/`undefined` semantics are not accepted here — pass the program-assigned order ID (use `buildModifyOrderByUserIdInstruction` to target by caller-assigned tag instead).
|
|
527
|
+
* @param args.modifyParams - a `ModifyOrderParams` object; any `baseAssetAmount`/`price`/`triggerPrice` overrides use BASE_PRECISION (1e9) / PRICE_PRECISION (1e6) respectively.
|
|
528
|
+
* @param args.state - the global `State` PDA.
|
|
529
|
+
* @param args.user - the `User` account whose order is modified.
|
|
530
|
+
* @param args.userStats - accepted for forward-compatibility but not required by the current on-chain `modify_order` accounts.
|
|
531
|
+
* @param args.authority - signer that must own or be a registered delegate of `user`.
|
|
532
|
+
* @param args.remainingAccounts - oracle/market `AccountMeta[]` for the order's market.
|
|
533
|
+
* @returns the unsigned `modifyOrder` `TransactionInstruction`.
|
|
534
|
+
*/
|
|
281
535
|
static async buildModifyOrderInstruction(args: {
|
|
282
536
|
program: VelocityProgram;
|
|
283
537
|
orderId: number;
|
|
@@ -291,6 +545,19 @@ export class VelocityCore {
|
|
|
291
545
|
return await buildModifyOrderInstruction(args);
|
|
292
546
|
}
|
|
293
547
|
|
|
548
|
+
/**
|
|
549
|
+
* Builds a `modifyOrderByUserId` instruction, same as `buildModifyOrderInstruction`
|
|
550
|
+
* but targeting the order by its caller-assigned `userOrderId` tag.
|
|
551
|
+
* @param args.program - Anchor `Program<Velocity>` used to build the instruction.
|
|
552
|
+
* @param args.userOrderId - the caller-assigned order tag (`u8`) supplied when the order was placed.
|
|
553
|
+
* @param args.modifyParams - a `ModifyOrderParams` object; any `baseAssetAmount`/`price`/`triggerPrice` overrides use BASE_PRECISION (1e9) / PRICE_PRECISION (1e6) respectively.
|
|
554
|
+
* @param args.state - the global `State` PDA.
|
|
555
|
+
* @param args.user - the `User` account whose order is modified.
|
|
556
|
+
* @param args.userStats - accepted for forward-compatibility but not required by the current on-chain `modify_order_by_user_id` accounts.
|
|
557
|
+
* @param args.authority - signer that must own or be a registered delegate of `user`.
|
|
558
|
+
* @param args.remainingAccounts - oracle/market `AccountMeta[]` for the order's market.
|
|
559
|
+
* @returns the unsigned `modifyOrderByUserId` `TransactionInstruction`.
|
|
560
|
+
*/
|
|
294
561
|
static async buildModifyOrderByUserIdInstruction(args: {
|
|
295
562
|
program: VelocityProgram;
|
|
296
563
|
userOrderId: number;
|
|
@@ -304,6 +571,17 @@ export class VelocityCore {
|
|
|
304
571
|
return await buildModifyOrderByUserIdInstruction(args);
|
|
305
572
|
}
|
|
306
573
|
|
|
574
|
+
/**
|
|
575
|
+
* Builds an `updateFundingRate` instruction. Fully permissionless keeper crank —
|
|
576
|
+
* no signer is required at all; anyone can submit this to advance a perp market's
|
|
577
|
+
* funding rate once its funding period has elapsed.
|
|
578
|
+
* @param args.program - Anchor `Program<Velocity>` used to build the instruction.
|
|
579
|
+
* @param args.perpMarketIndex - the perp market to update.
|
|
580
|
+
* @param args.state - the global `State` PDA.
|
|
581
|
+
* @param args.perpMarket - the target `PerpMarket` PDA.
|
|
582
|
+
* @param args.oracle - the perp market's oracle account (must match `perpMarket.amm.oracle`).
|
|
583
|
+
* @returns the unsigned `updateFundingRate` `TransactionInstruction`.
|
|
584
|
+
*/
|
|
307
585
|
static async buildUpdateFundingRateInstruction(args: {
|
|
308
586
|
program: VelocityProgram;
|
|
309
587
|
perpMarketIndex: number;
|
|
@@ -6,6 +6,28 @@ import type {
|
|
|
6
6
|
import type { BN } from '../../isomorphic/anchor';
|
|
7
7
|
import type { VelocityProgram } from '../../config';
|
|
8
8
|
|
|
9
|
+
/**
|
|
10
|
+
* Builds a `deposit` instruction, transferring tokens from `userTokenAccount` into the
|
|
11
|
+
* protocol's `spotMarketVault` and crediting `user`'s spot position. Any signer may fund
|
|
12
|
+
* someone else's `user` account (`authority` need not own/delegate for `user`) as long as
|
|
13
|
+
* `userTokenAccount` is owned by `authority`; on mainnet, a non-owner/non-delegate
|
|
14
|
+
* `authority` must additionally be on the on-chain external-depositor whitelist or the
|
|
15
|
+
* instruction throws.
|
|
16
|
+
* @param args.program - Anchor `Program<Velocity>` used to build the instruction.
|
|
17
|
+
* @param args.marketIndex - target spot market index.
|
|
18
|
+
* @param args.amount - deposit amount, in the spot market's mint's native token precision (e.g. 1e6 for a 6-decimal mint) — not a fixed SDK precision.
|
|
19
|
+
* @param args.reduceOnly - if true (or the market is reduce-only), caps the deposit to the user's current borrow balance so it can only repay a borrow.
|
|
20
|
+
* @param args.state - the global `State` PDA.
|
|
21
|
+
* @param args.spotMarket - the target `SpotMarket` PDA.
|
|
22
|
+
* @param args.spotMarketVault - the spot market's token vault PDA (transfer destination).
|
|
23
|
+
* @param args.user - the `User` account being credited.
|
|
24
|
+
* @param args.userStats - the depositing user's `UserStats` PDA.
|
|
25
|
+
* @param args.userTokenAccount - source token account; must share a mint with `spotMarketVault` and be owned by `authority`.
|
|
26
|
+
* @param args.authority - signer authorizing the token transfer.
|
|
27
|
+
* @param args.tokenProgram - the SPL Token or Token-2022 program owning the mint.
|
|
28
|
+
* @param args.remainingAccounts - oracle/market `AccountMeta[]` for `marketIndex`, plus the deposited mint account, plus any Token-2022 transfer-hook accounts.
|
|
29
|
+
* @returns the unsigned `deposit` `TransactionInstruction`.
|
|
30
|
+
*/
|
|
9
31
|
export async function buildDepositInstruction(args: {
|
|
10
32
|
program: VelocityProgram;
|
|
11
33
|
marketIndex: number;
|
|
@@ -5,6 +5,23 @@ import type {
|
|
|
5
5
|
} from '@solana/web3.js';
|
|
6
6
|
import type { VelocityProgram } from '../../config';
|
|
7
7
|
|
|
8
|
+
/**
|
|
9
|
+
* Builds a `fillPerpOrder` instruction, matching a resting perp order against the AMM
|
|
10
|
+
* and/or the supplied maker accounts. Permissionless: `user` (the order owner) does not
|
|
11
|
+
* need to sign — only `authority` (owner/delegate of `filler`) does. Hardcodes the
|
|
12
|
+
* on-chain `makerOrderId` arg to `null` (no specific maker order is targeted; the
|
|
13
|
+
* program matches from whichever maker/referrer accounts are supplied).
|
|
14
|
+
* @param args.program - Anchor `Program<Velocity>` used to build the instruction.
|
|
15
|
+
* @param args.orderId - the order to fill, or `null` to fill `user`'s most recently placed order (resolved on-chain via `get_last_order_id`).
|
|
16
|
+
* @param args.state - the global `State` PDA.
|
|
17
|
+
* @param args.filler - the keeper's `User` account that earns the filler reward.
|
|
18
|
+
* @param args.fillerStats - the filler's `UserStats` PDA.
|
|
19
|
+
* @param args.user - the order owner's `User` account (the taker being filled).
|
|
20
|
+
* @param args.userStats - the taker's `UserStats` PDA.
|
|
21
|
+
* @param args.authority - signer that must own or be a registered delegate of `filler`.
|
|
22
|
+
* @param args.remainingAccounts - writable perp market + oracle `AccountMeta[]` for the order's market, followed by any maker/referrer `(User, UserStats)` account pairs, followed by the taker's `RevenueShareEscrow` account if builder codes are enabled protocol-wide.
|
|
23
|
+
* @returns the unsigned `fillPerpOrder` `TransactionInstruction`.
|
|
24
|
+
*/
|
|
8
25
|
export async function buildFillPerpOrderInstruction(args: {
|
|
9
26
|
program: VelocityProgram;
|
|
10
27
|
orderId: number | null;
|
|
@@ -1,6 +1,18 @@
|
|
|
1
1
|
import type { PublicKey, TransactionInstruction } from '@solana/web3.js';
|
|
2
2
|
import type { VelocityProgram } from '../../config';
|
|
3
3
|
|
|
4
|
+
/**
|
|
5
|
+
* Builds an `updateFundingRate` instruction. Fully permissionless keeper crank — no
|
|
6
|
+
* signer is required at all; anyone can submit this to advance a perp market's funding
|
|
7
|
+
* rate once its funding period has elapsed. Throws `FundingWasNotUpdated` on-chain if
|
|
8
|
+
* called before the market's funding period has elapsed.
|
|
9
|
+
* @param args.program - Anchor `Program<Velocity>` used to build the instruction.
|
|
10
|
+
* @param args.perpMarketIndex - the perp market to update.
|
|
11
|
+
* @param args.state - the global `State` PDA.
|
|
12
|
+
* @param args.perpMarket - the target `PerpMarket` PDA.
|
|
13
|
+
* @param args.oracle - the perp market's oracle account (must match `perpMarket.amm.oracle`).
|
|
14
|
+
* @returns the unsigned `updateFundingRate` `TransactionInstruction`.
|
|
15
|
+
*/
|
|
4
16
|
export async function buildUpdateFundingRateInstruction(args: {
|
|
5
17
|
program: VelocityProgram;
|
|
6
18
|
perpMarketIndex: number;
|
|
@@ -5,6 +5,24 @@ import type {
|
|
|
5
5
|
} from '@solana/web3.js';
|
|
6
6
|
import type { VelocityProgram } from '../../config';
|
|
7
7
|
|
|
8
|
+
/**
|
|
9
|
+
* Builds a `liquidatePerp` instruction, letting `liquidator` take over (part of) an
|
|
10
|
+
* under-margined perp position from `user`. `user` does not need to sign; `authority`
|
|
11
|
+
* must own or be a delegate of `liquidator`, and `liquidator` must differ from `user`
|
|
12
|
+
* (self-liquidation throws `UserCantLiquidateThemself`).
|
|
13
|
+
* @param args.program - Anchor `Program<Velocity>` used to build the instruction.
|
|
14
|
+
* @param args.marketIndex - the perp market being liquidated.
|
|
15
|
+
* @param args.maxBaseAssetAmount - maximum base amount the liquidator is willing to take on, BASE_PRECISION (1e9).
|
|
16
|
+
* @param args.limitPrice - worst acceptable execution price, PRICE_PRECISION (1e6), or `null` for no limit.
|
|
17
|
+
* @param args.state - the global `State` PDA.
|
|
18
|
+
* @param args.authority - signer that must own or be a registered delegate of `liquidator`.
|
|
19
|
+
* @param args.user - the `User` account being liquidated.
|
|
20
|
+
* @param args.userStats - the liquidated user's `UserStats` PDA.
|
|
21
|
+
* @param args.liquidator - the `User` account taking over the position; must not equal `user`.
|
|
22
|
+
* @param args.liquidatorStats - the liquidator's `UserStats` PDA.
|
|
23
|
+
* @param args.remainingAccounts - writable perp market + oracle `AccountMeta[]` for `marketIndex`.
|
|
24
|
+
* @returns the unsigned `liquidatePerp` `TransactionInstruction`.
|
|
25
|
+
*/
|
|
8
26
|
export async function buildLiquidatePerpInstruction(args: {
|
|
9
27
|
program: VelocityProgram;
|
|
10
28
|
marketIndex: number;
|
|
@@ -5,6 +5,19 @@ import type {
|
|
|
5
5
|
} from '@solana/web3.js';
|
|
6
6
|
import type { VelocityProgram } from '../../config';
|
|
7
7
|
|
|
8
|
+
/**
|
|
9
|
+
* Builds a `placeOrders` instruction, placing a batch of up to 32 perp and/or spot
|
|
10
|
+
* orders in one instruction. None of the orders may be immediate-or-cancel — IOC orders
|
|
11
|
+
* are only valid via `placeAndTake`/`placeAndMake` — or the instruction throws.
|
|
12
|
+
* @param args.program - Anchor `Program<Velocity>` used to build the instruction.
|
|
13
|
+
* @param args.formattedParams - array of `OrderParams`: `baseAssetAmount` is BASE_PRECISION (1e9), `price`/`triggerPrice`/`oraclePriceOffset` are PRICE_PRECISION (1e6).
|
|
14
|
+
* @param args.state - the global `State` PDA.
|
|
15
|
+
* @param args.user - the `User` account the orders are placed on; `authority` must own or be a delegate of it.
|
|
16
|
+
* @param args.userStats - accepted for forward-compatibility but not required by the current on-chain `place_orders` accounts (only `state`/`user`/`authority` are used).
|
|
17
|
+
* @param args.authority - signer that must own or be a registered delegate of `user`.
|
|
18
|
+
* @param args.remainingAccounts - oracle/market `AccountMeta[]` covering every order's market, plus the placing user's `RevenueShareEscrow` account when any order carries a `builderIdx` and builder codes are enabled protocol-wide.
|
|
19
|
+
* @returns the unsigned `placeOrders` `TransactionInstruction`.
|
|
20
|
+
*/
|
|
8
21
|
export async function buildPlaceOrdersInstruction(args: {
|
|
9
22
|
program: VelocityProgram;
|
|
10
23
|
formattedParams: any[];
|
|
@@ -28,6 +41,21 @@ export async function buildPlaceOrdersInstruction(args: {
|
|
|
28
41
|
);
|
|
29
42
|
}
|
|
30
43
|
|
|
44
|
+
/**
|
|
45
|
+
* Builds a `cancelOrders` instruction, cancelling every open order on `user` that
|
|
46
|
+
* matches all of the given (optional) filters. `null`/`undefined` on a filter means
|
|
47
|
+
* "don't filter on this dimension" — leaving all three `null` cancels every open order.
|
|
48
|
+
* @param args.program - Anchor `Program<Velocity>` used to build the instruction.
|
|
49
|
+
* @param args.marketType - only cancel orders of this `MarketType` (`Perp`/`Spot`), or `null` for both.
|
|
50
|
+
* @param args.marketIndex - only cancel orders on this market index, or `null` for all markets.
|
|
51
|
+
* @param args.direction - only cancel orders with this `PositionDirection`, or `null` for both.
|
|
52
|
+
* @param args.user - the `User` account whose orders are cancelled.
|
|
53
|
+
* @param args.state - the global `State` PDA.
|
|
54
|
+
* @param args.userStats - accepted for forward-compatibility but not required by the current on-chain `cancel_orders` accounts (only `state`/`user`/`authority` are used).
|
|
55
|
+
* @param args.authority - signer that must own or be a registered delegate of `user`.
|
|
56
|
+
* @param args.remainingAccounts - oracle/market `AccountMeta[]` needed to re-derive auction/oracle-offset prices for the cancelled orders.
|
|
57
|
+
* @returns the unsigned `cancelOrders` `TransactionInstruction`.
|
|
58
|
+
*/
|
|
31
59
|
export async function buildCancelOrdersInstruction(args: {
|
|
32
60
|
program: VelocityProgram;
|
|
33
61
|
marketType: any;
|