@velocity-exchange/sdk 0.3.0 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +51 -0
- package/lib/browser/accounts/basicUserAccountSubscriber.d.ts +18 -0
- package/lib/browser/accounts/basicUserAccountSubscriber.js +18 -0
- package/lib/browser/accounts/basicUserStatsAccountSubscriber.d.ts +18 -0
- package/lib/browser/accounts/basicUserStatsAccountSubscriber.js +18 -0
- package/lib/browser/accounts/bulkAccountLoader.d.ts +52 -0
- package/lib/browser/accounts/bulkAccountLoader.js +51 -0
- package/lib/browser/accounts/bulkUserStatsSubscription.d.ts +9 -2
- package/lib/browser/accounts/bulkUserStatsSubscription.js +9 -2
- package/lib/browser/accounts/bulkUserSubscription.d.ts +8 -2
- package/lib/browser/accounts/bulkUserSubscription.js +8 -2
- package/lib/browser/accounts/customizedCadenceBulkAccountLoader.d.ts +37 -0
- package/lib/browser/accounts/customizedCadenceBulkAccountLoader.js +37 -0
- package/lib/browser/accounts/fetch.d.ts +59 -2
- package/lib/browser/accounts/fetch.js +57 -2
- package/lib/browser/accounts/grpcAccountSubscriber.d.ts +30 -0
- package/lib/browser/accounts/grpcAccountSubscriber.js +30 -0
- package/lib/browser/accounts/grpcInsuranceFundStakeAccountSubscriber.d.ts +16 -0
- package/lib/browser/accounts/grpcInsuranceFundStakeAccountSubscriber.js +16 -0
- package/lib/browser/accounts/grpcMultiAccountSubscriber.d.ts +60 -1
- package/lib/browser/accounts/grpcMultiAccountSubscriber.js +118 -37
- package/lib/browser/accounts/grpcMultiUserAccountSubscriber.d.ts +32 -0
- package/lib/browser/accounts/grpcMultiUserAccountSubscriber.js +40 -12
- package/lib/browser/accounts/grpcProgramAccountSubscriber.d.ts +33 -0
- package/lib/browser/accounts/grpcProgramAccountSubscriber.js +33 -0
- package/lib/browser/accounts/grpcUserAccountSubscriber.d.ts +15 -0
- package/lib/browser/accounts/grpcUserAccountSubscriber.js +15 -0
- package/lib/browser/accounts/grpcUserStatsAccountSubscriber.d.ts +15 -0
- package/lib/browser/accounts/grpcUserStatsAccountSubscriber.js +15 -0
- package/lib/browser/accounts/grpcVelocityClientAccountSubscriber.d.ts +41 -0
- package/lib/browser/accounts/grpcVelocityClientAccountSubscriber.js +41 -0
- package/lib/browser/accounts/grpcVelocityClientAccountSubscriberV2.d.ts +116 -0
- package/lib/browser/accounts/grpcVelocityClientAccountSubscriberV2.js +152 -1
- package/lib/browser/accounts/laserProgramAccountSubscriber.d.ts +34 -0
- package/lib/browser/accounts/laserProgramAccountSubscriber.js +34 -0
- package/lib/browser/accounts/oneShotUserAccountSubscriber.d.ts +19 -0
- package/lib/browser/accounts/oneShotUserAccountSubscriber.js +19 -0
- package/lib/browser/accounts/oneShotUserStatsAccountSubscriber.d.ts +19 -0
- package/lib/browser/accounts/oneShotUserStatsAccountSubscriber.js +19 -0
- package/lib/browser/accounts/pollingInsuranceFundStakeAccountSubscriber.d.ts +31 -0
- package/lib/browser/accounts/pollingInsuranceFundStakeAccountSubscriber.js +31 -0
- package/lib/browser/accounts/pollingOracleAccountSubscriber.d.ts +19 -0
- package/lib/browser/accounts/pollingOracleAccountSubscriber.js +21 -2
- package/lib/browser/accounts/pollingTokenAccountSubscriber.d.ts +22 -0
- package/lib/browser/accounts/pollingTokenAccountSubscriber.js +22 -0
- package/lib/browser/accounts/pollingUserAccountSubscriber.d.ts +32 -0
- package/lib/browser/accounts/pollingUserAccountSubscriber.js +32 -0
- package/lib/browser/accounts/pollingUserStatsAccountSubscriber.d.ts +22 -0
- package/lib/browser/accounts/pollingUserStatsAccountSubscriber.js +22 -0
- package/lib/browser/accounts/pollingVelocityClientAccountSubscriber.d.ts +83 -0
- package/lib/browser/accounts/pollingVelocityClientAccountSubscriber.js +84 -1
- package/lib/browser/accounts/testBulkAccountLoader.d.ts +8 -0
- package/lib/browser/accounts/testBulkAccountLoader.js +8 -0
- package/lib/browser/accounts/types.d.ts +149 -0
- package/lib/browser/accounts/types.js +13 -0
- package/lib/browser/accounts/utils.d.ts +18 -0
- package/lib/browser/accounts/utils.js +32 -16
- package/lib/browser/accounts/webSocketAccountSubscriber.d.ts +41 -0
- package/lib/browser/accounts/webSocketAccountSubscriber.js +41 -0
- package/lib/browser/accounts/webSocketAccountSubscriberV2.d.ts +31 -0
- package/lib/browser/accounts/webSocketAccountSubscriberV2.js +31 -23
- package/lib/browser/accounts/webSocketInsuranceFundStakeAccountSubscriber.d.ts +27 -0
- package/lib/browser/accounts/webSocketInsuranceFundStakeAccountSubscriber.js +27 -0
- package/lib/browser/accounts/webSocketProgramAccountSubscriber.d.ts +36 -0
- package/lib/browser/accounts/webSocketProgramAccountSubscriber.js +36 -0
- package/lib/browser/accounts/webSocketProgramAccountSubscriberV2.d.ts +21 -0
- package/lib/browser/accounts/webSocketProgramAccountSubscriberV2.js +25 -0
- package/lib/browser/accounts/webSocketProgramAccountsSubscriberV2.d.ts +21 -0
- package/lib/browser/accounts/webSocketProgramAccountsSubscriberV2.js +21 -0
- package/lib/browser/accounts/webSocketUserAccountSubscriber.d.ts +26 -0
- package/lib/browser/accounts/webSocketUserAccountSubscriber.js +26 -0
- package/lib/browser/accounts/webSocketUserStatsAccountSubsriber.d.ts +20 -0
- package/lib/browser/accounts/webSocketUserStatsAccountSubsriber.js +20 -0
- package/lib/browser/accounts/webSocketVelocityClientAccountSubscriber.d.ts +121 -0
- package/lib/browser/accounts/webSocketVelocityClientAccountSubscriber.js +123 -2
- package/lib/browser/accounts/webSocketVelocityClientAccountSubscriberV2.d.ts +96 -0
- package/lib/browser/accounts/webSocketVelocityClientAccountSubscriberV2.js +108 -0
- package/lib/browser/accounts/websocketProgramUserAccountSubscriber.d.ts +28 -0
- package/lib/browser/accounts/websocketProgramUserAccountSubscriber.js +33 -0
- package/lib/browser/addresses/marketAddresses.d.ts +10 -0
- package/lib/browser/addresses/marketAddresses.js +10 -0
- package/lib/browser/addresses/pda.d.ts +214 -2
- package/lib/browser/addresses/pda.js +217 -5
- package/lib/browser/adminClient.d.ts +2136 -4
- package/lib/browser/adminClient.js +2150 -4
- package/lib/browser/auctionSubscriber/auctionSubscriber.d.ts +15 -0
- package/lib/browser/auctionSubscriber/auctionSubscriber.js +15 -0
- package/lib/browser/auctionSubscriber/auctionSubscriberGrpc.d.ts +19 -0
- package/lib/browser/auctionSubscriber/auctionSubscriberGrpc.js +19 -0
- package/lib/browser/auctionSubscriber/index.d.ts +6 -0
- package/lib/browser/auctionSubscriber/index.js +6 -0
- package/lib/browser/auctionSubscriber/types.d.ts +7 -0
- package/lib/browser/blockhashSubscriber/BlockhashSubscriber.d.ts +33 -0
- package/lib/browser/blockhashSubscriber/BlockhashSubscriber.js +33 -0
- package/lib/browser/blockhashSubscriber/index.d.ts +5 -0
- package/lib/browser/blockhashSubscriber/index.js +5 -0
- package/lib/browser/blockhashSubscriber/types.d.ts +5 -0
- package/lib/browser/clock/clockSubscriber.d.ts +24 -0
- package/lib/browser/clock/clockSubscriber.js +22 -0
- package/lib/browser/config.d.ts +58 -4
- package/lib/browser/config.js +88 -21
- package/lib/browser/constants/numericConstants.d.ts +67 -0
- package/lib/browser/constants/numericConstants.js +68 -1
- package/lib/browser/constants/perpMarkets.d.ts +10 -0
- package/lib/browser/constants/perpMarkets.js +40 -908
- package/lib/browser/constants/spotMarkets.d.ts +13 -0
- package/lib/browser/constants/spotMarkets.js +16 -742
- package/lib/browser/constants/txConstants.d.ts +1 -0
- package/lib/browser/constants/txConstants.js +1 -0
- package/lib/browser/core/VelocityCore.d.ts +285 -8
- package/lib/browser/core/VelocityCore.js +281 -8
- package/lib/browser/core/instructions/deposit.d.ts +22 -0
- package/lib/browser/core/instructions/deposit.js +22 -0
- package/lib/browser/core/instructions/fill.d.ts +17 -0
- package/lib/browser/core/instructions/fill.js +17 -0
- package/lib/browser/core/instructions/funding.d.ts +12 -0
- package/lib/browser/core/instructions/funding.js +12 -0
- package/lib/browser/core/instructions/liquidation.d.ts +18 -0
- package/lib/browser/core/instructions/liquidation.js +18 -0
- package/lib/browser/core/instructions/orders.d.ts +28 -0
- package/lib/browser/core/instructions/orders.js +28 -0
- package/lib/browser/core/instructions/perpOrders.d.ts +106 -0
- package/lib/browser/core/instructions/perpOrders.js +106 -0
- package/lib/browser/core/instructions/settlement.d.ts +14 -0
- package/lib/browser/core/instructions/settlement.js +14 -0
- package/lib/browser/core/instructions/trigger.d.ts +15 -0
- package/lib/browser/core/instructions/trigger.js +15 -0
- package/lib/browser/core/instructions/withdraw.d.ts +21 -0
- package/lib/browser/core/instructions/withdraw.js +21 -0
- package/lib/browser/core/remainingAccounts.d.ts +47 -3
- package/lib/browser/core/remainingAccounts.js +20 -0
- package/lib/browser/core/signedMsg.d.ts +38 -0
- package/lib/browser/core/signedMsg.js +33 -0
- package/lib/browser/decode/customCoder.d.ts +39 -3
- package/lib/browser/decode/customCoder.js +45 -3
- package/lib/browser/decode/user.d.ts +22 -0
- package/lib/browser/decode/user.js +22 -0
- package/lib/browser/dlob/DLOB.d.ts +502 -53
- package/lib/browser/dlob/DLOB.js +540 -98
- package/lib/browser/dlob/DLOBNode.d.ts +86 -4
- package/lib/browser/dlob/DLOBNode.js +37 -4
- package/lib/browser/dlob/DLOBSubscriber.d.ts +39 -12
- package/lib/browser/dlob/DLOBSubscriber.js +42 -12
- package/lib/browser/dlob/NodeList.d.ts +69 -0
- package/lib/browser/dlob/NodeList.js +66 -0
- package/lib/browser/dlob/orderBookLevels.d.ts +106 -13
- package/lib/browser/dlob/orderBookLevels.js +84 -14
- package/lib/browser/dlob/types.d.ts +15 -0
- package/lib/browser/events/eventList.d.ts +14 -0
- package/lib/browser/events/eventList.js +14 -0
- package/lib/browser/events/eventSubscriber.d.ts +87 -10
- package/lib/browser/events/eventSubscriber.js +93 -8
- package/lib/browser/events/eventsServerLogProvider.d.ts +22 -0
- package/lib/browser/events/eventsServerLogProvider.js +27 -0
- package/lib/browser/events/fetchLogs.d.ts +31 -0
- package/lib/browser/events/fetchLogs.js +46 -1
- package/lib/browser/events/parse.d.ts +23 -0
- package/lib/browser/events/parse.js +23 -0
- package/lib/browser/events/pollingLogProvider.d.ts +24 -0
- package/lib/browser/events/pollingLogProvider.js +24 -0
- package/lib/browser/events/sort.d.ts +11 -0
- package/lib/browser/events/sort.js +12 -0
- package/lib/browser/events/txEventCache.d.ts +13 -3
- package/lib/browser/events/txEventCache.js +19 -7
- package/lib/browser/events/types.d.ts +118 -2
- package/lib/browser/events/types.js +11 -0
- package/lib/browser/events/webSocketLogProvider.d.ts +23 -0
- package/lib/browser/events/webSocketLogProvider.js +28 -0
- package/lib/browser/factory/oracleClient.js +2 -2
- package/lib/browser/idl/velocity.d.ts +4 -4
- package/lib/browser/idl/velocity.json +4 -4
- package/lib/browser/keypair.d.ts +8 -0
- package/lib/browser/keypair.js +8 -0
- package/lib/browser/marginCalculation.d.ts +134 -2
- package/lib/browser/marginCalculation.js +121 -0
- package/lib/browser/math/amm.d.ts +348 -29
- package/lib/browser/math/amm.js +310 -32
- package/lib/browser/math/auction.d.ts +95 -19
- package/lib/browser/math/auction.js +118 -28
- package/lib/browser/math/bankruptcy.d.ts +46 -0
- package/lib/browser/math/bankruptcy.js +89 -1
- package/lib/browser/math/builder.d.ts +64 -8
- package/lib/browser/math/builder.js +71 -9
- package/lib/browser/math/conversion.d.ts +21 -0
- package/lib/browser/math/conversion.js +21 -0
- package/lib/browser/math/exchangeStatus.d.ts +91 -0
- package/lib/browser/math/exchangeStatus.js +106 -3
- package/lib/browser/math/funding.d.ts +57 -20
- package/lib/browser/math/funding.js +63 -23
- package/lib/browser/math/insurance.d.ts +62 -0
- package/lib/browser/math/insurance.js +62 -0
- package/lib/browser/math/liquidation.d.ts +127 -11
- package/lib/browser/math/liquidation.js +182 -19
- package/lib/browser/math/margin.d.ts +79 -13
- package/lib/browser/math/margin.js +80 -14
- package/lib/browser/math/market.d.ts +135 -15
- package/lib/browser/math/market.js +145 -17
- package/lib/browser/math/oracles.d.ts +113 -0
- package/lib/browser/math/oracles.js +118 -1
- package/lib/browser/math/orders.d.ts +115 -10
- package/lib/browser/math/orders.js +130 -19
- package/lib/browser/math/position.d.ts +80 -33
- package/lib/browser/math/position.js +80 -33
- package/lib/browser/math/repeg.d.ts +48 -10
- package/lib/browser/math/repeg.js +48 -10
- package/lib/browser/math/spotBalance.d.ts +200 -5
- package/lib/browser/math/spotBalance.js +239 -10
- package/lib/browser/math/spotMarket.d.ts +36 -3
- package/lib/browser/math/spotMarket.js +36 -3
- package/lib/browser/math/spotPosition.d.ts +72 -0
- package/lib/browser/math/spotPosition.js +62 -0
- package/lib/browser/math/state.d.ts +31 -0
- package/lib/browser/math/state.js +31 -0
- package/lib/browser/math/superStake.d.ts +126 -2
- package/lib/browser/math/superStake.js +123 -3
- package/lib/browser/math/tiers.d.ts +29 -0
- package/lib/browser/math/tiers.js +29 -0
- package/lib/browser/math/trade.d.ts +102 -51
- package/lib/browser/math/trade.js +101 -55
- package/lib/browser/math/utils.d.ts +71 -9
- package/lib/browser/math/utils.js +71 -9
- package/lib/browser/memcmp.d.ts +94 -0
- package/lib/browser/memcmp.js +103 -2
- package/lib/browser/oracles/oracleClientCache.d.ts +16 -0
- package/lib/browser/oracles/oracleClientCache.js +16 -0
- package/lib/browser/oracles/oracleId.d.ts +31 -0
- package/lib/browser/oracles/oracleId.js +39 -8
- package/lib/browser/oracles/prelaunchOracleClient.d.ts +20 -0
- package/lib/browser/oracles/prelaunchOracleClient.js +20 -0
- package/lib/browser/oracles/pythClient.d.ts +31 -0
- package/lib/browser/oracles/pythClient.js +32 -1
- package/lib/browser/oracles/pythLazerClient.d.ts +34 -0
- package/lib/browser/oracles/pythLazerClient.js +35 -1
- package/lib/browser/oracles/quoteAssetOracleClient.d.ts +18 -0
- package/lib/browser/oracles/quoteAssetOracleClient.js +18 -0
- package/lib/browser/oracles/strictOraclePrice.d.ts +21 -0
- package/lib/browser/oracles/strictOraclePrice.js +21 -0
- package/lib/browser/oracles/types.d.ts +45 -0
- package/lib/browser/oracles/utils.d.ts +20 -0
- package/lib/browser/oracles/utils.js +20 -0
- package/lib/browser/orderParams.d.ts +42 -4
- package/lib/browser/orderParams.js +42 -4
- package/lib/browser/orderSubscriber/OrderSubscriber.d.ts +56 -0
- package/lib/browser/orderSubscriber/OrderSubscriber.js +56 -0
- package/lib/browser/orderSubscriber/PollingSubscription.d.ts +11 -0
- package/lib/browser/orderSubscriber/PollingSubscription.js +11 -0
- package/lib/browser/orderSubscriber/WebsocketSubscription.d.ts +18 -0
- package/lib/browser/orderSubscriber/WebsocketSubscription.js +18 -0
- package/lib/browser/orderSubscriber/grpcSubscription.d.ts +16 -0
- package/lib/browser/orderSubscriber/grpcSubscription.js +16 -0
- package/lib/browser/orderSubscriber/types.d.ts +9 -0
- package/lib/browser/priorityFee/averageOverSlotsStrategy.d.ts +1 -0
- package/lib/browser/priorityFee/averageOverSlotsStrategy.js +1 -0
- package/lib/browser/priorityFee/averageStrategy.d.ts +1 -0
- package/lib/browser/priorityFee/averageStrategy.js +1 -0
- package/lib/browser/priorityFee/ewmaStrategy.d.ts +10 -0
- package/lib/browser/priorityFee/ewmaStrategy.js +10 -0
- package/lib/browser/priorityFee/heliusPriorityFeeMethod.d.ts +13 -0
- package/lib/browser/priorityFee/heliusPriorityFeeMethod.js +9 -2
- package/lib/browser/priorityFee/maxOverSlotsStrategy.d.ts +1 -0
- package/lib/browser/priorityFee/maxOverSlotsStrategy.js +1 -0
- package/lib/browser/priorityFee/maxStrategy.d.ts +1 -0
- package/lib/browser/priorityFee/maxStrategy.js +1 -0
- package/lib/browser/priorityFee/priorityFeeSubscriber.d.ts +39 -0
- package/lib/browser/priorityFee/priorityFeeSubscriber.js +39 -0
- package/lib/browser/priorityFee/priorityFeeSubscriberMap.d.ts +20 -1
- package/lib/browser/priorityFee/priorityFeeSubscriberMap.js +21 -2
- package/lib/browser/priorityFee/solanaPriorityFeeMethod.d.ts +12 -0
- package/lib/browser/priorityFee/solanaPriorityFeeMethod.js +10 -0
- package/lib/browser/priorityFee/types.d.ts +32 -0
- package/lib/browser/priorityFee/types.js +5 -0
- package/lib/browser/priorityFee/velocityPriorityFeeMethod.d.ts +11 -0
- package/lib/browser/priorityFee/velocityPriorityFeeMethod.js +8 -0
- package/lib/browser/slot/SlotSubscriber.d.ts +18 -0
- package/lib/browser/slot/SlotSubscriber.js +16 -0
- package/lib/browser/slot/SlothashSubscriber.d.ts +26 -0
- package/lib/browser/slot/SlothashSubscriber.js +25 -1
- package/lib/browser/tx/baseTxSender.d.ts +163 -0
- package/lib/browser/tx/baseTxSender.js +174 -6
- package/lib/browser/tx/blockhashFetcher/baseBlockhashFetcher.d.ts +12 -0
- package/lib/browser/tx/blockhashFetcher/baseBlockhashFetcher.js +12 -0
- package/lib/browser/tx/blockhashFetcher/cachedBlockhashFetcher.d.ts +15 -0
- package/lib/browser/tx/blockhashFetcher/cachedBlockhashFetcher.js +15 -0
- package/lib/browser/tx/blockhashFetcher/types.d.ts +4 -0
- package/lib/browser/tx/fastSingleTxSender.d.ts +47 -0
- package/lib/browser/tx/fastSingleTxSender.js +48 -1
- package/lib/browser/tx/forwardOnlyTxSender.d.ts +48 -0
- package/lib/browser/tx/forwardOnlyTxSender.js +48 -0
- package/lib/browser/tx/reportTransactionError.d.ts +18 -6
- package/lib/browser/tx/reportTransactionError.js +18 -6
- package/lib/browser/tx/retryTxSender.d.ts +40 -0
- package/lib/browser/tx/retryTxSender.js +39 -0
- package/lib/browser/tx/txHandler.d.ts +146 -35
- package/lib/browser/tx/txHandler.js +132 -32
- package/lib/browser/tx/txParamProcessor.d.ts +47 -0
- package/lib/browser/tx/txParamProcessor.js +47 -0
- package/lib/browser/tx/types.d.ts +46 -0
- package/lib/browser/tx/types.js +5 -0
- package/lib/browser/tx/utils.d.ts +26 -0
- package/lib/browser/tx/utils.js +26 -0
- package/lib/browser/tx/whileValidTxSender.d.ts +82 -0
- package/lib/browser/tx/whileValidTxSender.js +81 -0
- package/lib/browser/types.d.ts +781 -13
- package/lib/browser/types.js +126 -9
- package/lib/browser/user.d.ts +645 -84
- package/lib/browser/user.js +779 -96
- package/lib/browser/userMap/PollingSubscription.d.ts +10 -0
- package/lib/browser/userMap/PollingSubscription.js +14 -2
- package/lib/browser/userMap/WebsocketSubscription.d.ts +9 -0
- package/lib/browser/userMap/WebsocketSubscription.js +9 -0
- package/lib/browser/userMap/grpcSubscription.d.ts +8 -0
- package/lib/browser/userMap/grpcSubscription.js +8 -0
- package/lib/browser/userMap/referrerMap.d.ts +72 -2
- package/lib/browser/userMap/referrerMap.js +84 -2
- package/lib/browser/userMap/revenueShareEscrowMap.d.ts +37 -10
- package/lib/browser/userMap/revenueShareEscrowMap.js +38 -11
- package/lib/browser/userMap/userMap.d.ts +81 -3
- package/lib/browser/userMap/userMap.js +81 -4
- package/lib/browser/userMap/userMapConfig.d.ts +23 -0
- package/lib/browser/userMap/userStatsMap.d.ts +22 -0
- package/lib/browser/userMap/userStatsMap.js +22 -0
- package/lib/browser/userName.d.ts +16 -0
- package/lib/browser/userName.js +16 -0
- package/lib/browser/userStats.d.ts +28 -1
- package/lib/browser/userStats.js +28 -1
- package/lib/browser/util/TransactionConfirmationManager.d.ts +33 -0
- package/lib/browser/util/TransactionConfirmationManager.js +33 -0
- package/lib/browser/util/chainClock.d.ts +24 -0
- package/lib/browser/util/chainClock.js +20 -0
- package/lib/browser/util/computeUnits.d.ts +32 -0
- package/lib/browser/util/computeUnits.js +32 -0
- package/lib/browser/util/digest.d.ts +17 -0
- package/lib/browser/util/digest.js +17 -0
- package/lib/browser/util/ed25519Utils.d.ts +12 -2
- package/lib/browser/util/ed25519Utils.js +12 -2
- package/lib/browser/util/promiseTimeout.d.ts +9 -0
- package/lib/browser/util/promiseTimeout.js +9 -0
- package/lib/browser/velocityClient.d.ts +3322 -215
- package/lib/browser/velocityClient.js +3412 -245
- package/lib/browser/wallet.d.ts +37 -0
- package/lib/browser/wallet.js +37 -0
- package/lib/node/accounts/basicUserAccountSubscriber.d.ts +18 -0
- package/lib/node/accounts/basicUserAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/basicUserAccountSubscriber.js +18 -0
- package/lib/node/accounts/basicUserStatsAccountSubscriber.d.ts +18 -0
- package/lib/node/accounts/basicUserStatsAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/basicUserStatsAccountSubscriber.js +18 -0
- package/lib/node/accounts/bulkAccountLoader.d.ts +52 -0
- package/lib/node/accounts/bulkAccountLoader.d.ts.map +1 -1
- package/lib/node/accounts/bulkAccountLoader.js +51 -0
- package/lib/node/accounts/bulkUserStatsSubscription.d.ts +9 -2
- package/lib/node/accounts/bulkUserStatsSubscription.d.ts.map +1 -1
- package/lib/node/accounts/bulkUserStatsSubscription.js +9 -2
- package/lib/node/accounts/bulkUserSubscription.d.ts +8 -2
- package/lib/node/accounts/bulkUserSubscription.d.ts.map +1 -1
- package/lib/node/accounts/bulkUserSubscription.js +8 -2
- package/lib/node/accounts/customizedCadenceBulkAccountLoader.d.ts +37 -0
- package/lib/node/accounts/customizedCadenceBulkAccountLoader.d.ts.map +1 -1
- package/lib/node/accounts/customizedCadenceBulkAccountLoader.js +37 -0
- package/lib/node/accounts/fetch.d.ts +59 -2
- package/lib/node/accounts/fetch.d.ts.map +1 -1
- package/lib/node/accounts/fetch.js +57 -2
- package/lib/node/accounts/grpcAccountSubscriber.d.ts +30 -0
- package/lib/node/accounts/grpcAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/grpcAccountSubscriber.js +30 -0
- package/lib/node/accounts/grpcInsuranceFundStakeAccountSubscriber.d.ts +16 -0
- package/lib/node/accounts/grpcInsuranceFundStakeAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/grpcInsuranceFundStakeAccountSubscriber.js +16 -0
- package/lib/node/accounts/grpcMultiAccountSubscriber.d.ts +60 -1
- package/lib/node/accounts/grpcMultiAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/grpcMultiAccountSubscriber.js +118 -37
- package/lib/node/accounts/grpcMultiUserAccountSubscriber.d.ts +32 -0
- package/lib/node/accounts/grpcMultiUserAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/grpcMultiUserAccountSubscriber.js +40 -12
- package/lib/node/accounts/grpcProgramAccountSubscriber.d.ts +33 -0
- package/lib/node/accounts/grpcProgramAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/grpcProgramAccountSubscriber.js +33 -0
- package/lib/node/accounts/grpcUserAccountSubscriber.d.ts +15 -0
- package/lib/node/accounts/grpcUserAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/grpcUserAccountSubscriber.js +15 -0
- package/lib/node/accounts/grpcUserStatsAccountSubscriber.d.ts +15 -0
- package/lib/node/accounts/grpcUserStatsAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/grpcUserStatsAccountSubscriber.js +15 -0
- package/lib/node/accounts/grpcVelocityClientAccountSubscriber.d.ts +41 -0
- package/lib/node/accounts/grpcVelocityClientAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/grpcVelocityClientAccountSubscriber.js +41 -0
- package/lib/node/accounts/grpcVelocityClientAccountSubscriberV2.d.ts +116 -0
- package/lib/node/accounts/grpcVelocityClientAccountSubscriberV2.d.ts.map +1 -1
- package/lib/node/accounts/grpcVelocityClientAccountSubscriberV2.js +152 -1
- package/lib/node/accounts/laserProgramAccountSubscriber.d.ts +34 -0
- package/lib/node/accounts/laserProgramAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/laserProgramAccountSubscriber.js +34 -0
- package/lib/node/accounts/oneShotUserAccountSubscriber.d.ts +19 -0
- package/lib/node/accounts/oneShotUserAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/oneShotUserAccountSubscriber.js +19 -0
- package/lib/node/accounts/oneShotUserStatsAccountSubscriber.d.ts +19 -0
- package/lib/node/accounts/oneShotUserStatsAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/oneShotUserStatsAccountSubscriber.js +19 -0
- package/lib/node/accounts/pollingInsuranceFundStakeAccountSubscriber.d.ts +31 -0
- package/lib/node/accounts/pollingInsuranceFundStakeAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/pollingInsuranceFundStakeAccountSubscriber.js +31 -0
- package/lib/node/accounts/pollingOracleAccountSubscriber.d.ts +19 -0
- package/lib/node/accounts/pollingOracleAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/pollingOracleAccountSubscriber.js +21 -2
- package/lib/node/accounts/pollingTokenAccountSubscriber.d.ts +22 -0
- package/lib/node/accounts/pollingTokenAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/pollingTokenAccountSubscriber.js +22 -0
- package/lib/node/accounts/pollingUserAccountSubscriber.d.ts +32 -0
- package/lib/node/accounts/pollingUserAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/pollingUserAccountSubscriber.js +32 -0
- package/lib/node/accounts/pollingUserStatsAccountSubscriber.d.ts +22 -0
- package/lib/node/accounts/pollingUserStatsAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/pollingUserStatsAccountSubscriber.js +22 -0
- package/lib/node/accounts/pollingVelocityClientAccountSubscriber.d.ts +83 -0
- package/lib/node/accounts/pollingVelocityClientAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/pollingVelocityClientAccountSubscriber.js +84 -1
- package/lib/node/accounts/testBulkAccountLoader.d.ts +8 -0
- package/lib/node/accounts/testBulkAccountLoader.d.ts.map +1 -1
- package/lib/node/accounts/testBulkAccountLoader.js +8 -0
- package/lib/node/accounts/types.d.ts +149 -0
- package/lib/node/accounts/types.d.ts.map +1 -1
- package/lib/node/accounts/types.js +13 -0
- package/lib/node/accounts/utils.d.ts +18 -0
- package/lib/node/accounts/utils.d.ts.map +1 -1
- package/lib/node/accounts/utils.js +32 -16
- package/lib/node/accounts/webSocketAccountSubscriber.d.ts +41 -0
- package/lib/node/accounts/webSocketAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/webSocketAccountSubscriber.js +41 -0
- package/lib/node/accounts/webSocketAccountSubscriberV2.d.ts +31 -0
- package/lib/node/accounts/webSocketAccountSubscriberV2.d.ts.map +1 -1
- package/lib/node/accounts/webSocketAccountSubscriberV2.js +31 -23
- package/lib/node/accounts/webSocketInsuranceFundStakeAccountSubscriber.d.ts +27 -0
- package/lib/node/accounts/webSocketInsuranceFundStakeAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/webSocketInsuranceFundStakeAccountSubscriber.js +27 -0
- package/lib/node/accounts/webSocketProgramAccountSubscriber.d.ts +36 -0
- package/lib/node/accounts/webSocketProgramAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/webSocketProgramAccountSubscriber.js +36 -0
- package/lib/node/accounts/webSocketProgramAccountSubscriberV2.d.ts +21 -0
- package/lib/node/accounts/webSocketProgramAccountSubscriberV2.d.ts.map +1 -1
- package/lib/node/accounts/webSocketProgramAccountSubscriberV2.js +25 -0
- package/lib/node/accounts/webSocketProgramAccountsSubscriberV2.d.ts +21 -0
- package/lib/node/accounts/webSocketProgramAccountsSubscriberV2.d.ts.map +1 -1
- package/lib/node/accounts/webSocketProgramAccountsSubscriberV2.js +21 -0
- package/lib/node/accounts/webSocketUserAccountSubscriber.d.ts +26 -0
- package/lib/node/accounts/webSocketUserAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/webSocketUserAccountSubscriber.js +26 -0
- package/lib/node/accounts/webSocketUserStatsAccountSubsriber.d.ts +20 -0
- package/lib/node/accounts/webSocketUserStatsAccountSubsriber.d.ts.map +1 -1
- package/lib/node/accounts/webSocketUserStatsAccountSubsriber.js +20 -0
- package/lib/node/accounts/webSocketVelocityClientAccountSubscriber.d.ts +121 -0
- package/lib/node/accounts/webSocketVelocityClientAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/webSocketVelocityClientAccountSubscriber.js +123 -2
- package/lib/node/accounts/webSocketVelocityClientAccountSubscriberV2.d.ts +96 -0
- package/lib/node/accounts/webSocketVelocityClientAccountSubscriberV2.d.ts.map +1 -1
- package/lib/node/accounts/webSocketVelocityClientAccountSubscriberV2.js +108 -0
- package/lib/node/accounts/websocketProgramUserAccountSubscriber.d.ts +28 -0
- package/lib/node/accounts/websocketProgramUserAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/websocketProgramUserAccountSubscriber.js +33 -0
- package/lib/node/addresses/marketAddresses.d.ts +10 -0
- package/lib/node/addresses/marketAddresses.d.ts.map +1 -1
- package/lib/node/addresses/marketAddresses.js +10 -0
- package/lib/node/addresses/pda.d.ts +214 -2
- package/lib/node/addresses/pda.d.ts.map +1 -1
- package/lib/node/addresses/pda.js +217 -5
- package/lib/node/adminClient.d.ts +2136 -4
- package/lib/node/adminClient.d.ts.map +1 -1
- package/lib/node/adminClient.js +2150 -4
- package/lib/node/auctionSubscriber/auctionSubscriber.d.ts +15 -0
- package/lib/node/auctionSubscriber/auctionSubscriber.d.ts.map +1 -1
- package/lib/node/auctionSubscriber/auctionSubscriber.js +15 -0
- package/lib/node/auctionSubscriber/auctionSubscriberGrpc.d.ts +19 -0
- package/lib/node/auctionSubscriber/auctionSubscriberGrpc.d.ts.map +1 -1
- package/lib/node/auctionSubscriber/auctionSubscriberGrpc.js +19 -0
- package/lib/node/auctionSubscriber/index.d.ts +6 -0
- package/lib/node/auctionSubscriber/index.d.ts.map +1 -1
- package/lib/node/auctionSubscriber/index.js +6 -0
- package/lib/node/auctionSubscriber/types.d.ts +7 -0
- package/lib/node/auctionSubscriber/types.d.ts.map +1 -1
- package/lib/node/blockhashSubscriber/BlockhashSubscriber.d.ts +33 -0
- package/lib/node/blockhashSubscriber/BlockhashSubscriber.d.ts.map +1 -1
- package/lib/node/blockhashSubscriber/BlockhashSubscriber.js +33 -0
- package/lib/node/blockhashSubscriber/index.d.ts +5 -0
- package/lib/node/blockhashSubscriber/index.d.ts.map +1 -1
- package/lib/node/blockhashSubscriber/index.js +5 -0
- package/lib/node/blockhashSubscriber/types.d.ts +5 -0
- package/lib/node/blockhashSubscriber/types.d.ts.map +1 -1
- package/lib/node/clock/clockSubscriber.d.ts +24 -0
- package/lib/node/clock/clockSubscriber.d.ts.map +1 -1
- package/lib/node/clock/clockSubscriber.js +22 -0
- package/lib/node/config.d.ts +58 -4
- package/lib/node/config.d.ts.map +1 -1
- package/lib/node/config.js +88 -21
- package/lib/node/constants/numericConstants.d.ts +67 -0
- package/lib/node/constants/numericConstants.d.ts.map +1 -1
- package/lib/node/constants/numericConstants.js +68 -1
- package/lib/node/constants/perpMarkets.d.ts +10 -0
- package/lib/node/constants/perpMarkets.d.ts.map +1 -1
- package/lib/node/constants/perpMarkets.js +40 -908
- package/lib/node/constants/spotMarkets.d.ts +13 -0
- package/lib/node/constants/spotMarkets.d.ts.map +1 -1
- package/lib/node/constants/spotMarkets.js +16 -742
- package/lib/node/constants/txConstants.d.ts +1 -0
- package/lib/node/constants/txConstants.d.ts.map +1 -1
- package/lib/node/constants/txConstants.js +1 -0
- package/lib/node/core/VelocityCore.d.ts +285 -8
- package/lib/node/core/VelocityCore.d.ts.map +1 -1
- package/lib/node/core/VelocityCore.js +281 -8
- package/lib/node/core/instructions/deposit.d.ts +22 -0
- package/lib/node/core/instructions/deposit.d.ts.map +1 -1
- package/lib/node/core/instructions/deposit.js +22 -0
- package/lib/node/core/instructions/fill.d.ts +17 -0
- package/lib/node/core/instructions/fill.d.ts.map +1 -1
- package/lib/node/core/instructions/fill.js +17 -0
- package/lib/node/core/instructions/funding.d.ts +12 -0
- package/lib/node/core/instructions/funding.d.ts.map +1 -1
- package/lib/node/core/instructions/funding.js +12 -0
- package/lib/node/core/instructions/liquidation.d.ts +18 -0
- package/lib/node/core/instructions/liquidation.d.ts.map +1 -1
- package/lib/node/core/instructions/liquidation.js +18 -0
- package/lib/node/core/instructions/orders.d.ts +28 -0
- package/lib/node/core/instructions/orders.d.ts.map +1 -1
- package/lib/node/core/instructions/orders.js +28 -0
- package/lib/node/core/instructions/perpOrders.d.ts +106 -0
- package/lib/node/core/instructions/perpOrders.d.ts.map +1 -1
- package/lib/node/core/instructions/perpOrders.js +106 -0
- package/lib/node/core/instructions/settlement.d.ts +14 -0
- package/lib/node/core/instructions/settlement.d.ts.map +1 -1
- package/lib/node/core/instructions/settlement.js +14 -0
- package/lib/node/core/instructions/trigger.d.ts +15 -0
- package/lib/node/core/instructions/trigger.d.ts.map +1 -1
- package/lib/node/core/instructions/trigger.js +15 -0
- package/lib/node/core/instructions/withdraw.d.ts +21 -0
- package/lib/node/core/instructions/withdraw.d.ts.map +1 -1
- package/lib/node/core/instructions/withdraw.js +21 -0
- package/lib/node/core/remainingAccounts.d.ts +47 -3
- package/lib/node/core/remainingAccounts.d.ts.map +1 -1
- package/lib/node/core/remainingAccounts.js +20 -0
- package/lib/node/core/signedMsg.d.ts +38 -0
- package/lib/node/core/signedMsg.d.ts.map +1 -1
- package/lib/node/core/signedMsg.js +33 -0
- package/lib/node/decode/customCoder.d.ts +39 -3
- package/lib/node/decode/customCoder.d.ts.map +1 -1
- package/lib/node/decode/customCoder.js +45 -3
- package/lib/node/decode/user.d.ts +22 -0
- package/lib/node/decode/user.d.ts.map +1 -1
- package/lib/node/decode/user.js +22 -0
- package/lib/node/dlob/DLOB.d.ts +502 -53
- package/lib/node/dlob/DLOB.d.ts.map +1 -1
- package/lib/node/dlob/DLOB.js +540 -98
- package/lib/node/dlob/DLOBNode.d.ts +86 -4
- package/lib/node/dlob/DLOBNode.d.ts.map +1 -1
- package/lib/node/dlob/DLOBNode.js +37 -4
- package/lib/node/dlob/DLOBSubscriber.d.ts +39 -12
- package/lib/node/dlob/DLOBSubscriber.d.ts.map +1 -1
- package/lib/node/dlob/DLOBSubscriber.js +42 -12
- package/lib/node/dlob/NodeList.d.ts +69 -0
- package/lib/node/dlob/NodeList.d.ts.map +1 -1
- package/lib/node/dlob/NodeList.js +66 -0
- package/lib/node/dlob/orderBookLevels.d.ts +106 -13
- package/lib/node/dlob/orderBookLevels.d.ts.map +1 -1
- package/lib/node/dlob/orderBookLevels.js +84 -14
- package/lib/node/dlob/types.d.ts +15 -0
- package/lib/node/dlob/types.d.ts.map +1 -1
- package/lib/node/events/eventList.d.ts +14 -0
- package/lib/node/events/eventList.d.ts.map +1 -1
- package/lib/node/events/eventList.js +14 -0
- package/lib/node/events/eventSubscriber.d.ts +87 -10
- package/lib/node/events/eventSubscriber.d.ts.map +1 -1
- package/lib/node/events/eventSubscriber.js +93 -8
- package/lib/node/events/eventsServerLogProvider.d.ts +22 -0
- package/lib/node/events/eventsServerLogProvider.d.ts.map +1 -1
- package/lib/node/events/eventsServerLogProvider.js +27 -0
- package/lib/node/events/fetchLogs.d.ts +31 -0
- package/lib/node/events/fetchLogs.d.ts.map +1 -1
- package/lib/node/events/fetchLogs.js +46 -1
- package/lib/node/events/parse.d.ts +23 -0
- package/lib/node/events/parse.d.ts.map +1 -1
- package/lib/node/events/parse.js +23 -0
- package/lib/node/events/pollingLogProvider.d.ts +24 -0
- package/lib/node/events/pollingLogProvider.d.ts.map +1 -1
- package/lib/node/events/pollingLogProvider.js +24 -0
- package/lib/node/events/sort.d.ts +11 -0
- package/lib/node/events/sort.d.ts.map +1 -1
- package/lib/node/events/sort.js +12 -0
- package/lib/node/events/txEventCache.d.ts +13 -3
- package/lib/node/events/txEventCache.d.ts.map +1 -1
- package/lib/node/events/txEventCache.js +19 -7
- package/lib/node/events/types.d.ts +118 -2
- package/lib/node/events/types.d.ts.map +1 -1
- package/lib/node/events/types.js +11 -0
- package/lib/node/events/webSocketLogProvider.d.ts +23 -0
- package/lib/node/events/webSocketLogProvider.d.ts.map +1 -1
- package/lib/node/events/webSocketLogProvider.js +28 -0
- package/lib/node/factory/oracleClient.js +2 -2
- package/lib/node/idl/velocity.d.ts +4 -4
- package/lib/node/idl/velocity.d.ts.map +1 -1
- package/lib/node/idl/velocity.json +4 -4
- package/lib/node/keypair.d.ts +8 -0
- package/lib/node/keypair.d.ts.map +1 -1
- package/lib/node/keypair.js +8 -0
- package/lib/node/marginCalculation.d.ts +134 -2
- package/lib/node/marginCalculation.d.ts.map +1 -1
- package/lib/node/marginCalculation.js +121 -0
- package/lib/node/math/amm.d.ts +348 -29
- package/lib/node/math/amm.d.ts.map +1 -1
- package/lib/node/math/amm.js +310 -32
- package/lib/node/math/auction.d.ts +95 -19
- package/lib/node/math/auction.d.ts.map +1 -1
- package/lib/node/math/auction.js +118 -28
- package/lib/node/math/bankruptcy.d.ts +46 -0
- package/lib/node/math/bankruptcy.d.ts.map +1 -1
- package/lib/node/math/bankruptcy.js +89 -1
- package/lib/node/math/builder.d.ts +64 -8
- package/lib/node/math/builder.d.ts.map +1 -1
- package/lib/node/math/builder.js +71 -9
- package/lib/node/math/conversion.d.ts +21 -0
- package/lib/node/math/conversion.d.ts.map +1 -1
- package/lib/node/math/conversion.js +21 -0
- package/lib/node/math/exchangeStatus.d.ts +91 -0
- package/lib/node/math/exchangeStatus.d.ts.map +1 -1
- package/lib/node/math/exchangeStatus.js +106 -3
- package/lib/node/math/funding.d.ts +57 -20
- package/lib/node/math/funding.d.ts.map +1 -1
- package/lib/node/math/funding.js +63 -23
- package/lib/node/math/insurance.d.ts +62 -0
- package/lib/node/math/insurance.d.ts.map +1 -1
- package/lib/node/math/insurance.js +62 -0
- package/lib/node/math/liquidation.d.ts +127 -11
- package/lib/node/math/liquidation.d.ts.map +1 -1
- package/lib/node/math/liquidation.js +182 -19
- package/lib/node/math/margin.d.ts +79 -13
- package/lib/node/math/margin.d.ts.map +1 -1
- package/lib/node/math/margin.js +80 -14
- package/lib/node/math/market.d.ts +135 -15
- package/lib/node/math/market.d.ts.map +1 -1
- package/lib/node/math/market.js +145 -17
- package/lib/node/math/oracles.d.ts +113 -0
- package/lib/node/math/oracles.d.ts.map +1 -1
- package/lib/node/math/oracles.js +118 -1
- package/lib/node/math/orders.d.ts +115 -10
- package/lib/node/math/orders.d.ts.map +1 -1
- package/lib/node/math/orders.js +130 -19
- package/lib/node/math/position.d.ts +80 -33
- package/lib/node/math/position.d.ts.map +1 -1
- package/lib/node/math/position.js +80 -33
- package/lib/node/math/repeg.d.ts +48 -10
- package/lib/node/math/repeg.d.ts.map +1 -1
- package/lib/node/math/repeg.js +48 -10
- package/lib/node/math/spotBalance.d.ts +200 -5
- package/lib/node/math/spotBalance.d.ts.map +1 -1
- package/lib/node/math/spotBalance.js +239 -10
- package/lib/node/math/spotMarket.d.ts +36 -3
- package/lib/node/math/spotMarket.d.ts.map +1 -1
- package/lib/node/math/spotMarket.js +36 -3
- package/lib/node/math/spotPosition.d.ts +72 -0
- package/lib/node/math/spotPosition.d.ts.map +1 -1
- package/lib/node/math/spotPosition.js +62 -0
- package/lib/node/math/state.d.ts +31 -0
- package/lib/node/math/state.d.ts.map +1 -1
- package/lib/node/math/state.js +31 -0
- package/lib/node/math/superStake.d.ts +126 -2
- package/lib/node/math/superStake.d.ts.map +1 -1
- package/lib/node/math/superStake.js +123 -3
- package/lib/node/math/tiers.d.ts +29 -0
- package/lib/node/math/tiers.d.ts.map +1 -1
- package/lib/node/math/tiers.js +29 -0
- package/lib/node/math/trade.d.ts +102 -51
- package/lib/node/math/trade.d.ts.map +1 -1
- package/lib/node/math/trade.js +101 -55
- package/lib/node/math/utils.d.ts +71 -9
- package/lib/node/math/utils.d.ts.map +1 -1
- package/lib/node/math/utils.js +71 -9
- package/lib/node/memcmp.d.ts +94 -0
- package/lib/node/memcmp.d.ts.map +1 -1
- package/lib/node/memcmp.js +103 -2
- package/lib/node/oracles/oracleClientCache.d.ts +16 -0
- package/lib/node/oracles/oracleClientCache.d.ts.map +1 -1
- package/lib/node/oracles/oracleClientCache.js +16 -0
- package/lib/node/oracles/oracleId.d.ts +31 -0
- package/lib/node/oracles/oracleId.d.ts.map +1 -1
- package/lib/node/oracles/oracleId.js +39 -8
- package/lib/node/oracles/prelaunchOracleClient.d.ts +20 -0
- package/lib/node/oracles/prelaunchOracleClient.d.ts.map +1 -1
- package/lib/node/oracles/prelaunchOracleClient.js +20 -0
- package/lib/node/oracles/pythClient.d.ts +31 -0
- package/lib/node/oracles/pythClient.d.ts.map +1 -1
- package/lib/node/oracles/pythClient.js +32 -1
- package/lib/node/oracles/pythLazerClient.d.ts +34 -0
- package/lib/node/oracles/pythLazerClient.d.ts.map +1 -1
- package/lib/node/oracles/pythLazerClient.js +35 -1
- package/lib/node/oracles/quoteAssetOracleClient.d.ts +18 -0
- package/lib/node/oracles/quoteAssetOracleClient.d.ts.map +1 -1
- package/lib/node/oracles/quoteAssetOracleClient.js +18 -0
- package/lib/node/oracles/strictOraclePrice.d.ts +21 -0
- package/lib/node/oracles/strictOraclePrice.d.ts.map +1 -1
- package/lib/node/oracles/strictOraclePrice.js +21 -0
- package/lib/node/oracles/types.d.ts +45 -0
- package/lib/node/oracles/types.d.ts.map +1 -1
- package/lib/node/oracles/utils.d.ts +20 -0
- package/lib/node/oracles/utils.d.ts.map +1 -1
- package/lib/node/oracles/utils.js +20 -0
- package/lib/node/orderParams.d.ts +42 -4
- package/lib/node/orderParams.d.ts.map +1 -1
- package/lib/node/orderParams.js +42 -4
- package/lib/node/orderSubscriber/OrderSubscriber.d.ts +56 -0
- package/lib/node/orderSubscriber/OrderSubscriber.d.ts.map +1 -1
- package/lib/node/orderSubscriber/OrderSubscriber.js +56 -0
- package/lib/node/orderSubscriber/PollingSubscription.d.ts +11 -0
- package/lib/node/orderSubscriber/PollingSubscription.d.ts.map +1 -1
- package/lib/node/orderSubscriber/PollingSubscription.js +11 -0
- package/lib/node/orderSubscriber/WebsocketSubscription.d.ts +18 -0
- package/lib/node/orderSubscriber/WebsocketSubscription.d.ts.map +1 -1
- package/lib/node/orderSubscriber/WebsocketSubscription.js +18 -0
- package/lib/node/orderSubscriber/grpcSubscription.d.ts +16 -0
- package/lib/node/orderSubscriber/grpcSubscription.d.ts.map +1 -1
- package/lib/node/orderSubscriber/grpcSubscription.js +16 -0
- package/lib/node/orderSubscriber/types.d.ts +9 -0
- package/lib/node/orderSubscriber/types.d.ts.map +1 -1
- package/lib/node/priorityFee/averageOverSlotsStrategy.d.ts +1 -0
- package/lib/node/priorityFee/averageOverSlotsStrategy.d.ts.map +1 -1
- package/lib/node/priorityFee/averageOverSlotsStrategy.js +1 -0
- package/lib/node/priorityFee/averageStrategy.d.ts +1 -0
- package/lib/node/priorityFee/averageStrategy.d.ts.map +1 -1
- package/lib/node/priorityFee/averageStrategy.js +1 -0
- package/lib/node/priorityFee/ewmaStrategy.d.ts +10 -0
- package/lib/node/priorityFee/ewmaStrategy.d.ts.map +1 -1
- package/lib/node/priorityFee/ewmaStrategy.js +10 -0
- package/lib/node/priorityFee/heliusPriorityFeeMethod.d.ts +13 -0
- package/lib/node/priorityFee/heliusPriorityFeeMethod.d.ts.map +1 -1
- package/lib/node/priorityFee/heliusPriorityFeeMethod.js +9 -2
- package/lib/node/priorityFee/maxOverSlotsStrategy.d.ts +1 -0
- package/lib/node/priorityFee/maxOverSlotsStrategy.d.ts.map +1 -1
- package/lib/node/priorityFee/maxOverSlotsStrategy.js +1 -0
- package/lib/node/priorityFee/maxStrategy.d.ts +1 -0
- package/lib/node/priorityFee/maxStrategy.d.ts.map +1 -1
- package/lib/node/priorityFee/maxStrategy.js +1 -0
- package/lib/node/priorityFee/priorityFeeSubscriber.d.ts +39 -0
- package/lib/node/priorityFee/priorityFeeSubscriber.d.ts.map +1 -1
- package/lib/node/priorityFee/priorityFeeSubscriber.js +39 -0
- package/lib/node/priorityFee/priorityFeeSubscriberMap.d.ts +20 -1
- package/lib/node/priorityFee/priorityFeeSubscriberMap.d.ts.map +1 -1
- package/lib/node/priorityFee/priorityFeeSubscriberMap.js +21 -2
- package/lib/node/priorityFee/solanaPriorityFeeMethod.d.ts +12 -0
- package/lib/node/priorityFee/solanaPriorityFeeMethod.d.ts.map +1 -1
- package/lib/node/priorityFee/solanaPriorityFeeMethod.js +10 -0
- package/lib/node/priorityFee/types.d.ts +32 -0
- package/lib/node/priorityFee/types.d.ts.map +1 -1
- package/lib/node/priorityFee/types.js +5 -0
- package/lib/node/priorityFee/velocityPriorityFeeMethod.d.ts +11 -0
- package/lib/node/priorityFee/velocityPriorityFeeMethod.d.ts.map +1 -1
- package/lib/node/priorityFee/velocityPriorityFeeMethod.js +8 -0
- package/lib/node/slot/SlotSubscriber.d.ts +18 -0
- package/lib/node/slot/SlotSubscriber.d.ts.map +1 -1
- package/lib/node/slot/SlotSubscriber.js +16 -0
- package/lib/node/slot/SlothashSubscriber.d.ts +26 -0
- package/lib/node/slot/SlothashSubscriber.d.ts.map +1 -1
- package/lib/node/slot/SlothashSubscriber.js +25 -1
- package/lib/node/tx/baseTxSender.d.ts +163 -0
- package/lib/node/tx/baseTxSender.d.ts.map +1 -1
- package/lib/node/tx/baseTxSender.js +174 -6
- package/lib/node/tx/blockhashFetcher/baseBlockhashFetcher.d.ts +12 -0
- package/lib/node/tx/blockhashFetcher/baseBlockhashFetcher.d.ts.map +1 -1
- package/lib/node/tx/blockhashFetcher/baseBlockhashFetcher.js +12 -0
- package/lib/node/tx/blockhashFetcher/cachedBlockhashFetcher.d.ts +15 -0
- package/lib/node/tx/blockhashFetcher/cachedBlockhashFetcher.d.ts.map +1 -1
- package/lib/node/tx/blockhashFetcher/cachedBlockhashFetcher.js +15 -0
- package/lib/node/tx/blockhashFetcher/types.d.ts +4 -0
- package/lib/node/tx/blockhashFetcher/types.d.ts.map +1 -1
- package/lib/node/tx/fastSingleTxSender.d.ts +47 -0
- package/lib/node/tx/fastSingleTxSender.d.ts.map +1 -1
- package/lib/node/tx/fastSingleTxSender.js +48 -1
- package/lib/node/tx/forwardOnlyTxSender.d.ts +48 -0
- package/lib/node/tx/forwardOnlyTxSender.d.ts.map +1 -1
- package/lib/node/tx/forwardOnlyTxSender.js +48 -0
- package/lib/node/tx/reportTransactionError.d.ts +18 -6
- package/lib/node/tx/reportTransactionError.d.ts.map +1 -1
- package/lib/node/tx/reportTransactionError.js +18 -6
- package/lib/node/tx/retryTxSender.d.ts +40 -0
- package/lib/node/tx/retryTxSender.d.ts.map +1 -1
- package/lib/node/tx/retryTxSender.js +39 -0
- package/lib/node/tx/txHandler.d.ts +146 -35
- package/lib/node/tx/txHandler.d.ts.map +1 -1
- package/lib/node/tx/txHandler.js +132 -32
- package/lib/node/tx/txParamProcessor.d.ts +47 -0
- package/lib/node/tx/txParamProcessor.d.ts.map +1 -1
- package/lib/node/tx/txParamProcessor.js +47 -0
- package/lib/node/tx/types.d.ts +46 -0
- package/lib/node/tx/types.d.ts.map +1 -1
- package/lib/node/tx/types.js +5 -0
- package/lib/node/tx/utils.d.ts +26 -0
- package/lib/node/tx/utils.d.ts.map +1 -1
- package/lib/node/tx/utils.js +26 -0
- package/lib/node/tx/whileValidTxSender.d.ts +82 -0
- package/lib/node/tx/whileValidTxSender.d.ts.map +1 -1
- package/lib/node/tx/whileValidTxSender.js +81 -0
- package/lib/node/types.d.ts +781 -13
- package/lib/node/types.d.ts.map +1 -1
- package/lib/node/types.js +126 -9
- package/lib/node/user.d.ts +645 -84
- package/lib/node/user.d.ts.map +1 -1
- package/lib/node/user.js +779 -96
- package/lib/node/userMap/PollingSubscription.d.ts +10 -0
- package/lib/node/userMap/PollingSubscription.d.ts.map +1 -1
- package/lib/node/userMap/PollingSubscription.js +14 -2
- package/lib/node/userMap/WebsocketSubscription.d.ts +9 -0
- package/lib/node/userMap/WebsocketSubscription.d.ts.map +1 -1
- package/lib/node/userMap/WebsocketSubscription.js +9 -0
- package/lib/node/userMap/grpcSubscription.d.ts +8 -0
- package/lib/node/userMap/grpcSubscription.d.ts.map +1 -1
- package/lib/node/userMap/grpcSubscription.js +8 -0
- package/lib/node/userMap/referrerMap.d.ts +72 -2
- package/lib/node/userMap/referrerMap.d.ts.map +1 -1
- package/lib/node/userMap/referrerMap.js +84 -2
- package/lib/node/userMap/revenueShareEscrowMap.d.ts +37 -10
- package/lib/node/userMap/revenueShareEscrowMap.d.ts.map +1 -1
- package/lib/node/userMap/revenueShareEscrowMap.js +38 -11
- package/lib/node/userMap/userMap.d.ts +81 -3
- package/lib/node/userMap/userMap.d.ts.map +1 -1
- package/lib/node/userMap/userMap.js +81 -4
- package/lib/node/userMap/userMapConfig.d.ts +23 -0
- package/lib/node/userMap/userMapConfig.d.ts.map +1 -1
- package/lib/node/userMap/userStatsMap.d.ts +22 -0
- package/lib/node/userMap/userStatsMap.d.ts.map +1 -1
- package/lib/node/userMap/userStatsMap.js +22 -0
- package/lib/node/userName.d.ts +16 -0
- package/lib/node/userName.d.ts.map +1 -1
- package/lib/node/userName.js +16 -0
- package/lib/node/userStats.d.ts +28 -1
- package/lib/node/userStats.d.ts.map +1 -1
- package/lib/node/userStats.js +28 -1
- package/lib/node/util/TransactionConfirmationManager.d.ts +33 -0
- package/lib/node/util/TransactionConfirmationManager.d.ts.map +1 -1
- package/lib/node/util/TransactionConfirmationManager.js +33 -0
- package/lib/node/util/chainClock.d.ts +24 -0
- package/lib/node/util/chainClock.d.ts.map +1 -1
- package/lib/node/util/chainClock.js +20 -0
- package/lib/node/util/computeUnits.d.ts +32 -0
- package/lib/node/util/computeUnits.d.ts.map +1 -1
- package/lib/node/util/computeUnits.js +32 -0
- package/lib/node/util/digest.d.ts +17 -0
- package/lib/node/util/digest.d.ts.map +1 -1
- package/lib/node/util/digest.js +17 -0
- package/lib/node/util/ed25519Utils.d.ts +12 -2
- package/lib/node/util/ed25519Utils.d.ts.map +1 -1
- package/lib/node/util/ed25519Utils.js +12 -2
- package/lib/node/util/promiseTimeout.d.ts +9 -0
- package/lib/node/util/promiseTimeout.d.ts.map +1 -1
- package/lib/node/util/promiseTimeout.js +9 -0
- package/lib/node/velocityClient.d.ts +3322 -215
- package/lib/node/velocityClient.d.ts.map +1 -1
- package/lib/node/velocityClient.js +3412 -245
- package/lib/node/wallet.d.ts +37 -0
- package/lib/node/wallet.d.ts.map +1 -1
- package/lib/node/wallet.js +37 -0
- package/package.json +2 -1
- package/src/accounts/basicUserAccountSubscriber.ts +18 -0
- package/src/accounts/basicUserStatsAccountSubscriber.ts +18 -0
- package/src/accounts/bulkAccountLoader.ts +52 -0
- package/src/accounts/bulkUserStatsSubscription.ts +9 -2
- package/src/accounts/bulkUserSubscription.ts +8 -2
- package/src/accounts/customizedCadenceBulkAccountLoader.ts +37 -0
- package/src/accounts/fetch.ts +59 -2
- package/src/accounts/grpcAccountSubscriber.ts +30 -0
- package/src/accounts/grpcInsuranceFundStakeAccountSubscriber.ts +16 -0
- package/src/accounts/grpcMultiAccountSubscriber.ts +121 -38
- package/src/accounts/grpcMultiUserAccountSubscriber.ts +49 -11
- package/src/accounts/grpcProgramAccountSubscriber.ts +33 -0
- package/src/accounts/grpcUserAccountSubscriber.ts +15 -0
- package/src/accounts/grpcUserStatsAccountSubscriber.ts +15 -0
- package/src/accounts/grpcVelocityClientAccountSubscriber.ts +41 -0
- package/src/accounts/grpcVelocityClientAccountSubscriberV2.ts +160 -1
- package/src/accounts/laserProgramAccountSubscriber.ts +34 -0
- package/src/accounts/oneShotUserAccountSubscriber.ts +19 -0
- package/src/accounts/oneShotUserStatsAccountSubscriber.ts +19 -0
- package/src/accounts/pollingInsuranceFundStakeAccountSubscriber.ts +31 -0
- package/src/accounts/pollingOracleAccountSubscriber.ts +21 -2
- package/src/accounts/pollingTokenAccountSubscriber.ts +22 -0
- package/src/accounts/pollingUserAccountSubscriber.ts +32 -0
- package/src/accounts/pollingUserStatsAccountSubscriber.ts +22 -0
- package/src/accounts/pollingVelocityClientAccountSubscriber.ts +84 -1
- package/src/accounts/testBulkAccountLoader.ts +8 -0
- package/src/accounts/types.ts +149 -0
- package/src/accounts/utils.ts +42 -24
- package/src/accounts/webSocketAccountSubscriber.ts +41 -0
- package/src/accounts/webSocketAccountSubscriberV2.ts +31 -23
- package/src/accounts/webSocketInsuranceFundStakeAccountSubscriber.ts +27 -0
- package/src/accounts/webSocketProgramAccountSubscriber.ts +36 -0
- package/src/accounts/webSocketProgramAccountSubscriberV2.ts +26 -0
- package/src/accounts/webSocketProgramAccountsSubscriberV2.ts +21 -0
- package/src/accounts/webSocketUserAccountSubscriber.ts +26 -0
- package/src/accounts/webSocketUserStatsAccountSubsriber.ts +20 -0
- package/src/accounts/webSocketVelocityClientAccountSubscriber.ts +127 -2
- package/src/accounts/webSocketVelocityClientAccountSubscriberV2.ts +110 -0
- package/src/accounts/websocketProgramUserAccountSubscriber.ts +33 -0
- package/src/addresses/marketAddresses.ts +10 -0
- package/src/addresses/pda.ts +228 -12
- package/src/adminClient.ts +2156 -4
- package/src/auctionSubscriber/auctionSubscriber.ts +15 -0
- package/src/auctionSubscriber/auctionSubscriberGrpc.ts +19 -0
- package/src/auctionSubscriber/index.ts +6 -0
- package/src/auctionSubscriber/types.ts +7 -0
- package/src/blockhashSubscriber/BlockhashSubscriber.ts +33 -0
- package/src/blockhashSubscriber/index.ts +5 -0
- package/src/blockhashSubscriber/types.ts +5 -4
- package/src/clock/clockSubscriber.ts +24 -0
- package/src/config.ts +109 -22
- package/src/constants/numericConstants.ts +70 -0
- package/src/constants/perpMarkets.ts +45 -960
- package/src/constants/spotMarkets.ts +23 -793
- package/src/constants/txConstants.ts +1 -0
- package/src/core/VelocityCore.ts +286 -8
- package/src/core/instructions/deposit.ts +22 -0
- package/src/core/instructions/fill.ts +17 -0
- package/src/core/instructions/funding.ts +12 -0
- package/src/core/instructions/liquidation.ts +18 -0
- package/src/core/instructions/orders.ts +28 -0
- package/src/core/instructions/perpOrders.ts +106 -0
- package/src/core/instructions/settlement.ts +14 -0
- package/src/core/instructions/trigger.ts +15 -0
- package/src/core/instructions/withdraw.ts +21 -0
- package/src/core/remainingAccounts.ts +47 -3
- package/src/core/signedMsg.ts +38 -0
- package/src/decode/customCoder.ts +46 -3
- package/src/decode/user.ts +22 -0
- package/src/dlob/DLOB.ts +668 -97
- package/src/dlob/DLOBNode.ts +98 -6
- package/src/dlob/DLOBSubscriber.ts +49 -12
- package/src/dlob/NodeList.ts +69 -0
- package/src/dlob/orderBookLevels.ts +108 -14
- package/src/dlob/types.ts +15 -0
- package/src/events/eventList.ts +14 -0
- package/src/events/eventSubscriber.ts +100 -19
- package/src/events/eventsServerLogProvider.ts +28 -0
- package/src/events/fetchLogs.ts +52 -2
- package/src/events/parse.ts +23 -0
- package/src/events/pollingLogProvider.ts +24 -0
- package/src/events/sort.ts +12 -0
- package/src/events/txEventCache.ts +19 -7
- package/src/events/types.ts +131 -11
- package/src/events/webSocketLogProvider.ts +29 -0
- package/src/factory/oracleClient.ts +2 -2
- package/src/idl/velocity.json +4 -4
- package/src/idl/velocity.ts +4 -4
- package/src/keypair.ts +8 -0
- package/src/marginCalculation.ts +153 -2
- package/src/math/amm.ts +371 -36
- package/src/math/auction.ts +139 -30
- package/src/math/bankruptcy.ts +104 -1
- package/src/math/builder.ts +74 -8
- package/src/math/conversion.ts +21 -0
- package/src/math/exchangeStatus.ts +117 -2
- package/src/math/funding.ts +63 -23
- package/src/math/insurance.ts +62 -0
- package/src/math/liquidation.ts +227 -17
- package/src/math/margin.ts +80 -14
- package/src/math/market.ts +148 -17
- package/src/math/oracles.ts +124 -0
- package/src/math/orders.ts +141 -19
- package/src/math/position.ts +80 -33
- package/src/math/repeg.ts +48 -10
- package/src/math/spotBalance.ts +252 -12
- package/src/math/spotMarket.ts +36 -3
- package/src/math/spotPosition.ts +72 -0
- package/src/math/state.ts +31 -0
- package/src/math/superStake.ts +126 -3
- package/src/math/tiers.ts +29 -0
- package/src/math/trade.ts +125 -55
- package/src/math/utils.ts +71 -9
- package/src/memcmp.ts +104 -2
- package/src/oracles/oracleClientCache.ts +16 -0
- package/src/oracles/oracleId.ts +39 -6
- package/src/oracles/prelaunchOracleClient.ts +20 -0
- package/src/oracles/pythClient.ts +32 -1
- package/src/oracles/pythLazerClient.ts +35 -1
- package/src/oracles/quoteAssetOracleClient.ts +18 -0
- package/src/oracles/strictOraclePrice.ts +21 -0
- package/src/oracles/types.ts +45 -0
- package/src/oracles/utils.ts +20 -0
- package/src/orderParams.ts +42 -4
- package/src/orderSubscriber/OrderSubscriber.ts +56 -0
- package/src/orderSubscriber/PollingSubscription.ts +11 -0
- package/src/orderSubscriber/WebsocketSubscription.ts +18 -0
- package/src/orderSubscriber/grpcSubscription.ts +16 -0
- package/src/orderSubscriber/types.ts +9 -0
- package/src/priorityFee/averageOverSlotsStrategy.ts +1 -0
- package/src/priorityFee/averageStrategy.ts +1 -0
- package/src/priorityFee/ewmaStrategy.ts +10 -0
- package/src/priorityFee/heliusPriorityFeeMethod.ts +13 -2
- package/src/priorityFee/maxOverSlotsStrategy.ts +1 -0
- package/src/priorityFee/maxStrategy.ts +1 -0
- package/src/priorityFee/priorityFeeSubscriber.ts +39 -0
- package/src/priorityFee/priorityFeeSubscriberMap.ts +21 -2
- package/src/priorityFee/solanaPriorityFeeMethod.ts +12 -0
- package/src/priorityFee/types.ts +33 -15
- package/src/priorityFee/velocityPriorityFeeMethod.ts +11 -0
- package/src/slot/SlotSubscriber.ts +18 -0
- package/src/slot/SlothashSubscriber.ts +27 -1
- package/src/tx/baseTxSender.ts +185 -5
- package/src/tx/blockhashFetcher/baseBlockhashFetcher.ts +12 -0
- package/src/tx/blockhashFetcher/cachedBlockhashFetcher.ts +15 -0
- package/src/tx/blockhashFetcher/types.ts +4 -0
- package/src/tx/fastSingleTxSender.ts +58 -4
- package/src/tx/forwardOnlyTxSender.ts +48 -0
- package/src/tx/reportTransactionError.ts +18 -6
- package/src/tx/retryTxSender.ts +40 -0
- package/src/tx/txHandler.ts +146 -35
- package/src/tx/txParamProcessor.ts +47 -0
- package/src/tx/types.ts +46 -0
- package/src/tx/utils.ts +26 -0
- package/src/tx/whileValidTxSender.ts +82 -0
- package/src/types.ts +777 -24
- package/src/user.ts +869 -110
- package/src/userMap/PollingSubscription.ts +16 -2
- package/src/userMap/WebsocketSubscription.ts +9 -0
- package/src/userMap/grpcSubscription.ts +8 -0
- package/src/userMap/referrerMap.ts +92 -3
- package/src/userMap/revenueShareEscrowMap.ts +38 -11
- package/src/userMap/userMap.ts +82 -4
- package/src/userMap/userMapConfig.ts +23 -10
- package/src/userMap/userStatsMap.ts +22 -0
- package/src/userName.ts +16 -0
- package/src/userStats.ts +28 -1
- package/src/util/TransactionConfirmationManager.ts +33 -0
- package/src/util/chainClock.ts +24 -0
- package/src/util/computeUnits.ts +32 -0
- package/src/util/digest.ts +17 -0
- package/src/util/ed25519Utils.ts +12 -2
- package/src/util/promiseTimeout.ts +9 -0
- package/src/velocityClient.ts +3439 -249
- package/src/wallet.ts +37 -0
- package/tests/VelocityCore/builder_escrow.test.ts +121 -0
- package/tests/amm/test.ts +102 -0
- package/tests/builder/builderFee.test.ts +42 -0
- package/tests/dlob/tickSizeStandardization.ts +545 -0
- package/tests/exchangeStatus/test.ts +45 -0
- package/tests/liquidation/test.ts +125 -0
- package/tests/oracles/mmOracleGate.test.ts +379 -0
- package/tests/oracles/pythPegSnap.test.ts +76 -0
- package/tests/sdkParity/enumParity.test.ts +84 -0
- package/tests/sdkParity/marginCategoryFill.test.ts +143 -0
- package/tests/sdkParity/memcmpOffsets.test.ts +139 -0
- package/tests/spot/test.ts +55 -0
- package/tests/user/bankruptcy.ts +165 -0
- package/tests/user/feeAndWithdrawLimits.ts +284 -0
- package/tests/user/getMarginCalculation.ts +226 -1
- package/tests/user/test.ts +8 -4
|
@@ -11081,13 +11081,13 @@
|
|
|
11081
11081
|
133
|
|
11082
11082
|
],
|
|
11083
11083
|
"accounts": [
|
|
11084
|
-
{
|
|
11085
|
-
"name": "admin",
|
|
11086
|
-
"signer": true
|
|
11087
|
-
},
|
|
11088
11084
|
{
|
|
11089
11085
|
"name": "state",
|
|
11090
11086
|
"writable": true
|
|
11087
|
+
},
|
|
11088
|
+
{
|
|
11089
|
+
"name": "admin",
|
|
11090
|
+
"signer": true
|
|
11091
11091
|
}
|
|
11092
11092
|
],
|
|
11093
11093
|
"args": [
|
package/lib/node/keypair.d.ts
CHANGED
|
@@ -1,3 +1,11 @@
|
|
|
1
1
|
import { Keypair } from '@solana/web3.js';
|
|
2
|
+
/**
|
|
3
|
+
* Loads a Solana `Keypair` from a private key given in any of the common CLI/env formats.
|
|
4
|
+
* @param privateKey - One of: a filesystem path to a JSON keypair file (checked first via
|
|
5
|
+
* `fs.existsSync`); a JSON array string (e.g. `"[1,2,3,...]"`); a comma-separated list of byte
|
|
6
|
+
* values (e.g. `"1,2,3,..."`); or a base58-encoded secret key string (whitespace is stripped).
|
|
7
|
+
* @returns The decoded `Keypair`.
|
|
8
|
+
* @throws Error (from `Keypair.fromSecretKey`) if the decoded bytes are not a valid 64-byte secret key.
|
|
9
|
+
*/
|
|
2
10
|
export declare function loadKeypair(privateKey: string): Keypair;
|
|
3
11
|
//# sourceMappingURL=keypair.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keypair.d.ts","sourceRoot":"","sources":["../../src/keypair.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE1C,wBAAgB,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAmBvD"}
|
|
1
|
+
{"version":3,"file":"keypair.d.ts","sourceRoot":"","sources":["../../src/keypair.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE1C;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAmBvD"}
|
package/lib/node/keypair.js
CHANGED
|
@@ -7,6 +7,14 @@ exports.loadKeypair = void 0;
|
|
|
7
7
|
const fs_1 = __importDefault(require("fs"));
|
|
8
8
|
const bs58_1 = __importDefault(require("bs58"));
|
|
9
9
|
const web3_js_1 = require("@solana/web3.js");
|
|
10
|
+
/**
|
|
11
|
+
* Loads a Solana `Keypair` from a private key given in any of the common CLI/env formats.
|
|
12
|
+
* @param privateKey - One of: a filesystem path to a JSON keypair file (checked first via
|
|
13
|
+
* `fs.existsSync`); a JSON array string (e.g. `"[1,2,3,...]"`); a comma-separated list of byte
|
|
14
|
+
* values (e.g. `"1,2,3,..."`); or a base58-encoded secret key string (whitespace is stripped).
|
|
15
|
+
* @returns The decoded `Keypair`.
|
|
16
|
+
* @throws Error (from `Keypair.fromSecretKey`) if the decoded bytes are not a valid 64-byte secret key.
|
|
17
|
+
*/
|
|
10
18
|
function loadKeypair(privateKey) {
|
|
11
19
|
// try to load privateKey as a filepath
|
|
12
20
|
let loadedKey;
|
|
@@ -1,19 +1,38 @@
|
|
|
1
1
|
import { BN } from './isomorphic/anchor';
|
|
2
|
-
import { MarketType } from './types';
|
|
3
|
-
|
|
2
|
+
import { MarginCategory, MarketType } from './types';
|
|
3
|
+
/**
|
|
4
|
+
* Which margin threshold a `MarginCalculation` is computing against: `Initial` (opening/increasing
|
|
5
|
+
* risk), `Maintenance` (liquidation eligibility), or `Fill` (order-fill-time check, the
|
|
6
|
+
* integer-averaged midpoint of Initial and Maintenance). Re-exported from `./types` so the SDK has
|
|
7
|
+
* a single `MarginCategory` definition.
|
|
8
|
+
*/
|
|
9
|
+
export type { MarginCategory };
|
|
10
|
+
/** Selects the margin-buffer behavior of a `MarginContext`: `Standard` for ordinary health checks (no buffer), or `Liquidation` to apply the cross/isolated margin buffers used to avoid liquidating a user who is only marginally underwater. */
|
|
4
11
|
export type MarginCalculationMode = {
|
|
5
12
|
type: 'Standard';
|
|
6
13
|
} | {
|
|
7
14
|
type: 'Liquidation';
|
|
8
15
|
};
|
|
16
|
+
/** Identifies a market by type (spot or perp) and index, used as a key into per-market margin state (e.g. isolated margin buffers). Construct via `MarketIdentifier.spot` / `MarketIdentifier.perp`. */
|
|
9
17
|
export declare class MarketIdentifier {
|
|
10
18
|
marketType: MarketType;
|
|
11
19
|
marketIndex: number;
|
|
12
20
|
private constructor();
|
|
21
|
+
/** Builds a `MarketIdentifier` for a spot market index. */
|
|
13
22
|
static spot(marketIndex: number): MarketIdentifier;
|
|
23
|
+
/** Builds a `MarketIdentifier` for a perp market index. */
|
|
14
24
|
static perp(marketIndex: number): MarketIdentifier;
|
|
25
|
+
/** True if `other` refers to the same market type and index. */
|
|
15
26
|
equals(other: MarketIdentifier | undefined): boolean;
|
|
16
27
|
}
|
|
28
|
+
/**
|
|
29
|
+
* Configuration driving a `MarginCalculation` pass: which margin category to compute,
|
|
30
|
+
* whether it's a plain health check or a liquidation-margin-freed calculation, and the
|
|
31
|
+
* per-market buffers (in `MARGIN_PRECISION`, 1e4, fractional-of-liability-value units)
|
|
32
|
+
* applied to cross-margin and isolated-margin requirements/collateral so a user isn't
|
|
33
|
+
* flagged liquidatable from a hair's-width shortfall. Mirrors `MarginContext` in
|
|
34
|
+
* `programs/velocity/src/state/margin_calculation.rs`.
|
|
35
|
+
*/
|
|
17
36
|
export declare class MarginContext {
|
|
18
37
|
marginType: MarginCategory;
|
|
19
38
|
mode: MarginCalculationMode;
|
|
@@ -22,46 +41,159 @@ export declare class MarginContext {
|
|
|
22
41
|
isolatedMarginBuffers: Map<number, BN>;
|
|
23
42
|
crossMarginBuffer: BN;
|
|
24
43
|
private constructor();
|
|
44
|
+
/** Builds a plain `Standard`-mode context (no liquidation buffers) for the given margin category — the usual choice for health/leverage/order-placement checks. */
|
|
25
45
|
static standard(marginType: MarginCategory): MarginContext;
|
|
46
|
+
/**
|
|
47
|
+
* Builds a `Maintenance`-category, `Liquidation`-mode context with the given buffers.
|
|
48
|
+
* Used by liquidation eligibility / margin-freed calculations so a position is only
|
|
49
|
+
* eligible once it's underwater by more than the buffer, avoiding flip-flopping right
|
|
50
|
+
* at the maintenance threshold.
|
|
51
|
+
* @param crossMarginBuffer Extra maintenance-margin cushion applied to the cross-margin
|
|
52
|
+
* book, `MARGIN_PRECISION` (1e4) fraction of liability value.
|
|
53
|
+
* @param isolatedMarginBuffers Same buffer, per isolated-position market index.
|
|
54
|
+
*/
|
|
26
55
|
static liquidation(crossMarginBuffer: BN, isolatedMarginBuffers: Map<number, BN>): MarginContext;
|
|
56
|
+
/** Sets whether strict oracle pricing (worse of last/twap price) is used for collateral/liability valuation. Returns `this` for chaining. */
|
|
27
57
|
strictMode(strict: boolean): this;
|
|
58
|
+
/** Sets whether spot deposits with an invalid oracle are ignored (valued at zero) rather than failing the calculation. Returns `this` for chaining. */
|
|
28
59
|
ignoreInvalidDeposits(ignore: boolean): this;
|
|
60
|
+
/** Sets the cross-margin maintenance buffer (`MARGIN_PRECISION`, 1e4, fraction of liability value). Returns `this` for chaining. */
|
|
29
61
|
setCrossMarginBuffer(crossMarginBuffer: BN): this;
|
|
62
|
+
/** Replaces the whole per-market isolated-margin buffer map. Returns `this` for chaining. */
|
|
30
63
|
setIsolatedMarginBuffers(isolatedMarginBuffers: Map<number, BN>): this;
|
|
64
|
+
/** Sets the isolated-margin buffer (`MARGIN_PRECISION`, 1e4, fraction of liability value) for a single perp market index. Returns `this` for chaining. */
|
|
31
65
|
setIsolatedMarginBuffer(marketIndex: number, isolatedMarginBuffer: BN): this;
|
|
32
66
|
}
|
|
67
|
+
/**
|
|
68
|
+
* Accumulated margin requirement and collateral for a single isolated perp position,
|
|
69
|
+
* built up during a `MarginCalculation` pass via `MarginCalculation.addIsolatedMarginCalculation`.
|
|
70
|
+
* All BN fields are QUOTE_PRECISION (1e6). Isolated positions have their own dedicated
|
|
71
|
+
* collateral pool, so their margin health is tracked independently of the user's
|
|
72
|
+
* cross-margin book.
|
|
73
|
+
*/
|
|
33
74
|
export declare class IsolatedMarginCalculation {
|
|
75
|
+
/** Margin required to maintain/open the isolated position, QUOTE_PRECISION (1e6). */
|
|
34
76
|
marginRequirement: BN;
|
|
77
|
+
/** Isolated collateral: position's deposit value plus unrealized/settled pnl, QUOTE_PRECISION (1e6). */
|
|
35
78
|
totalCollateral: BN;
|
|
79
|
+
/** Signed adjustment to `totalCollateral` from the context's isolated margin buffer (liquidation mode only), QUOTE_PRECISION (1e6). */
|
|
36
80
|
totalCollateralBuffer: BN;
|
|
81
|
+
/** `marginRequirement` plus the buffered liability-value addition (liquidation mode only), QUOTE_PRECISION (1e6). */
|
|
37
82
|
marginRequirementPlusBuffer: BN;
|
|
38
83
|
constructor();
|
|
84
|
+
/** `totalCollateral + totalCollateralBuffer`, QUOTE_PRECISION (1e6). */
|
|
39
85
|
getTotalCollateralPlusBuffer(): BN;
|
|
86
|
+
/** True if the isolated position's collateral covers its margin requirement (no buffer applied). */
|
|
40
87
|
meetsMarginRequirement(): boolean;
|
|
88
|
+
/** True if the buffered collateral covers the buffered margin requirement — the check used for liquidation eligibility. */
|
|
41
89
|
meetsMarginRequirementWithBuffer(): boolean;
|
|
90
|
+
/** Buffered margin shortfall (`marginRequirementPlusBuffer - totalCollateralPlusBuffer`, floored at zero), QUOTE_PRECISION (1e6). */
|
|
42
91
|
marginShortage(): BN;
|
|
43
92
|
}
|
|
93
|
+
/**
|
|
94
|
+
* Accumulator built up by walking a user's spot and perp positions, mirroring
|
|
95
|
+
* `MarginCalculation` in `programs/velocity/src/state/margin_calculation.rs`. Tracks the
|
|
96
|
+
* cross-margin book's total collateral/margin requirement plus a separate
|
|
97
|
+
* `IsolatedMarginCalculation` per isolated perp market, so cross and isolated health are
|
|
98
|
+
* evaluated independently — `meetsMarginRequirement`/`meetsMarginRequirementWithBuffer`
|
|
99
|
+
* require both the cross book and every isolated position to pass.
|
|
100
|
+
*
|
|
101
|
+
* `numSpotLiabilities`/`numPerpLiabilities`/`withPerpIsolatedLiability`/
|
|
102
|
+
* `withSpotIsolatedLiability` track the on-chain "isolated contract tier" risk-isolation
|
|
103
|
+
* rule (`validate_any_isolated_tier_requirements`): a user holding a liability in a market
|
|
104
|
+
* whose `ContractTier` is `Isolated` may not simultaneously hold other liabilities (perp or
|
|
105
|
+
* non-quote spot) unless in reduce-only mode. Note this `ContractTier::Isolated` market
|
|
106
|
+
* classification is unrelated to per-position isolated margin
|
|
107
|
+
* (`isolatedPositionScaledBalance`) — a market can be isolated-tier without any position on
|
|
108
|
+
* it using isolated margin.
|
|
109
|
+
*/
|
|
44
110
|
export declare class MarginCalculation {
|
|
45
111
|
context: MarginContext;
|
|
112
|
+
/** Cross-margin collateral (deposits + perp pnl), QUOTE_PRECISION (1e6). */
|
|
46
113
|
totalCollateral: BN;
|
|
114
|
+
/** Signed liquidation-buffer adjustment to `totalCollateral`, QUOTE_PRECISION (1e6). Zero outside `Liquidation` mode. */
|
|
47
115
|
totalCollateralBuffer: BN;
|
|
116
|
+
/** Cross-margin requirement accumulated so far, QUOTE_PRECISION (1e6). */
|
|
48
117
|
marginRequirement: BN;
|
|
118
|
+
/** `marginRequirement` plus the buffered liability-value addition (liquidation mode only), QUOTE_PRECISION (1e6). */
|
|
49
119
|
marginRequirementPlusBuffer: BN;
|
|
120
|
+
/** Per-isolated-perp-market margin state, keyed by perp market index. */
|
|
50
121
|
isolatedMarginCalculations: Map<number, IsolatedMarginCalculation>;
|
|
122
|
+
/** Sum of worst-case perp liability value across all (cross + isolated) perp positions seen so far, QUOTE_PRECISION (1e6). */
|
|
51
123
|
totalPerpLiabilityValue: BN;
|
|
124
|
+
/** Count of spot positions counted as liabilities (borrows) so far. */
|
|
125
|
+
numSpotLiabilities: number;
|
|
126
|
+
/** Count of perp positions counted as liabilities (non-flat base, negative quote, or open orders) so far. */
|
|
127
|
+
numPerpLiabilities: number;
|
|
128
|
+
/** True once any perp liability seen belongs to a `ContractTier::Isolated` market. */
|
|
129
|
+
withPerpIsolatedLiability: boolean;
|
|
130
|
+
/** True once any spot liability seen is a borrow (or has open orders) in an `AssetTier::Isolated` spot market (isolated-tier borrows are restricted to the quote asset). */
|
|
131
|
+
withSpotIsolatedLiability: boolean;
|
|
52
132
|
constructor(context: MarginContext);
|
|
133
|
+
/**
|
|
134
|
+
* Adds a signed collateral delta (deposit value or perp pnl, QUOTE_PRECISION 1e6) to
|
|
135
|
+
* the cross-margin book. When in `Liquidation` mode with a nonzero `crossMarginBuffer`
|
|
136
|
+
* and the delta is negative, also extends `totalCollateralBuffer` by
|
|
137
|
+
* `delta * crossMarginBuffer / MARGIN_PRECISION` so a negative-pnl position looks worse
|
|
138
|
+
* under the buffered (liquidation-eligibility) check than under the plain one.
|
|
139
|
+
* @param delta Signed collateral value to add, QUOTE_PRECISION (1e6).
|
|
140
|
+
*/
|
|
53
141
|
addCrossMarginTotalCollateral(delta: BN): void;
|
|
142
|
+
/**
|
|
143
|
+
* Adds a position's margin requirement to the cross-margin book. When a nonzero
|
|
144
|
+
* `crossMarginBuffer` is configured, also accrues `marginRequirementPlusBuffer` with an
|
|
145
|
+
* extra `liabilityValue * crossMarginBuffer / MARGIN_PRECISION` on top, inflating the
|
|
146
|
+
* buffered requirement used for liquidation eligibility.
|
|
147
|
+
* @param marginRequirement Margin required for this position, QUOTE_PRECISION (1e6).
|
|
148
|
+
* @param liabilityValue Position's (worst-case) liability value the buffer is scaled from, QUOTE_PRECISION (1e6).
|
|
149
|
+
*/
|
|
54
150
|
addCrossMarginRequirement(marginRequirement: BN, liabilityValue: BN): void;
|
|
151
|
+
/**
|
|
152
|
+
* Records (or overwrites) the margin state for one isolated perp position, applying that
|
|
153
|
+
* market's isolated margin buffer (from `context.isolatedMarginBuffers`) to the
|
|
154
|
+
* buffered requirement, and to the buffered collateral only when `pnl` is negative —
|
|
155
|
+
* mirroring `addCrossMarginRequirement`/`addCrossMarginTotalCollateral` but scoped to a
|
|
156
|
+
* single isolated market instead of the shared cross-margin book.
|
|
157
|
+
* @param marketIndex Perp market index of the isolated position.
|
|
158
|
+
* @param depositValue Isolated collateral deposited into the position, QUOTE_PRECISION (1e6).
|
|
159
|
+
* @param pnl Position's unrealized/settled pnl, QUOTE_PRECISION (1e6, signed).
|
|
160
|
+
* @param liabilityValue Position's (worst-case) liability value the buffer is scaled from, QUOTE_PRECISION (1e6).
|
|
161
|
+
* @param marginRequirement Margin required to maintain/open the isolated position, QUOTE_PRECISION (1e6).
|
|
162
|
+
*/
|
|
55
163
|
addIsolatedMarginCalculation(marketIndex: number, depositValue: BN, pnl: BN, liabilityValue: BN, marginRequirement: BN): void;
|
|
164
|
+
/** Adds to the running total of worst-case perp liability value across all perp positions seen. @param perpLiabilityValue QUOTE_PRECISION (1e6). */
|
|
56
165
|
addPerpLiabilityValue(perpLiabilityValue: BN): void;
|
|
166
|
+
/** Increments the count of spot positions counted as liabilities (borrows, or zero-balance positions with open orders). Call once per qualifying spot position. */
|
|
167
|
+
addSpotLiability(): void;
|
|
168
|
+
/** Increments the count of perp positions counted as liabilities (non-flat base, negative quote, or open orders). Call once per qualifying perp position. */
|
|
169
|
+
addPerpLiability(): void;
|
|
170
|
+
/** Latches `withSpotIsolatedLiability` to `true` if `isolated` is true (sticky OR — never reset to false once set). Pass whether the spot liability just added belongs to an `AssetTier::Isolated` market. */
|
|
171
|
+
updateWithSpotIsolatedLiability(isolated: boolean): void;
|
|
172
|
+
/** Latches `withPerpIsolatedLiability` to `true` if `isolated` is true (sticky OR — never reset to false once set). Pass whether the perp liability just added belongs to a `ContractTier::Isolated` market. */
|
|
173
|
+
updateWithPerpIsolatedLiability(isolated: boolean): void;
|
|
174
|
+
/** Total number of liability positions (spot borrows + perp liabilities) counted so far. */
|
|
175
|
+
getNumOfLiabilities(): number;
|
|
176
|
+
/** `totalCollateral + totalCollateralBuffer` for the cross-margin book, QUOTE_PRECISION (1e6). */
|
|
57
177
|
getCrossTotalCollateralPlusBuffer(): BN;
|
|
178
|
+
/** True if the cross-margin book's collateral covers its margin requirement (no buffer applied). */
|
|
58
179
|
meetsCrossMarginRequirement(): boolean;
|
|
180
|
+
/** True if the cross-margin book's buffered collateral covers its buffered margin requirement — the check used for cross-margin liquidation eligibility. */
|
|
59
181
|
meetsCrossMarginRequirementWithBuffer(): boolean;
|
|
182
|
+
/** True only if the cross-margin book AND every tracked isolated position independently meet their (unbuffered) margin requirement. */
|
|
60
183
|
meetsMarginRequirement(): boolean;
|
|
184
|
+
/** True only if the cross-margin book AND every tracked isolated position independently meet their buffered margin requirement — the overall liquidation-eligibility check. */
|
|
61
185
|
meetsMarginRequirementWithBuffer(): boolean;
|
|
186
|
+
/** Cross-margin collateral in excess of its margin requirement, floored at zero, QUOTE_PRECISION (1e6). */
|
|
62
187
|
getCrossFreeCollateral(): BN;
|
|
188
|
+
/**
|
|
189
|
+
* Free (unbuffered) collateral for one isolated perp position, floored at zero, QUOTE_PRECISION (1e6).
|
|
190
|
+
* @param marketIndex Perp market index of the isolated position.
|
|
191
|
+
* @throws if no isolated margin calculation was recorded for `marketIndex` (call `addIsolatedMarginCalculation` first).
|
|
192
|
+
*/
|
|
63
193
|
getIsolatedFreeCollateral(marketIndex: number): BN;
|
|
194
|
+
/** Returns the recorded `IsolatedMarginCalculation` for `marketIndex`, or `undefined` if none was recorded (the user has no isolated position in that market). */
|
|
64
195
|
getIsolatedMarginCalculation(marketIndex: number): IsolatedMarginCalculation | undefined;
|
|
196
|
+
/** True if an isolated margin calculation has been recorded for `marketIndex`. */
|
|
65
197
|
hasIsolatedMarginCalculation(marketIndex: number): boolean;
|
|
66
198
|
}
|
|
67
199
|
//# sourceMappingURL=marginCalculation.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"marginCalculation.d.ts","sourceRoot":"","sources":["../../src/marginCalculation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,qBAAqB,CAAC;AAEzC,OAAO,EAAyB,UAAU,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"marginCalculation.d.ts","sourceRoot":"","sources":["../../src/marginCalculation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,qBAAqB,CAAC;AAEzC,OAAO,EAAyB,cAAc,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAE5E;;;;;GAKG;AACH,YAAY,EAAE,cAAc,EAAE,CAAC;AAE/B,kPAAkP;AAClP,MAAM,MAAM,qBAAqB,GAC9B;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,GACpB;IAAE,IAAI,EAAE,aAAa,CAAA;CAAE,CAAC;AAE3B,wMAAwM;AACxM,qBAAa,gBAAgB;IAC5B,UAAU,EAAE,UAAU,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IAEpB,OAAO;IAKP,2DAA2D;IAC3D,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,GAAG,gBAAgB;IAIlD,2DAA2D;IAC3D,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,GAAG,gBAAgB;IAIlD,gEAAgE;IAChE,MAAM,CAAC,KAAK,EAAE,gBAAgB,GAAG,SAAS,GAAG,OAAO;CAOpD;AAED;;;;;;;GAOG;AACH,qBAAa,aAAa;IACzB,UAAU,EAAE,cAAc,CAAC;IAC3B,IAAI,EAAE,qBAAqB,CAAC;IAC5B,MAAM,EAAE,OAAO,CAAC;IAChB,2BAA2B,EAAE,OAAO,CAAC;IACrC,qBAAqB,EAAE,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACvC,iBAAiB,EAAE,EAAE,CAAC;IAEtB,OAAO;IASP,mKAAmK;IACnK,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,cAAc,GAAG,aAAa;IAI1D;;;;;;;;OAQG;IACH,MAAM,CAAC,WAAW,CACjB,iBAAiB,EAAE,EAAE,EACrB,qBAAqB,EAAE,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,GACpC,aAAa;IAQhB,6IAA6I;IAC7I,UAAU,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI;IAKjC,uJAAuJ;IACvJ,qBAAqB,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI;IAK5C,oIAAoI;IACpI,oBAAoB,CAAC,iBAAiB,EAAE,EAAE,GAAG,IAAI;IAIjD,6FAA6F;IAC7F,wBAAwB,CAAC,qBAAqB,EAAE,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,IAAI;IAItE,0JAA0J;IAC1J,uBAAuB,CAAC,WAAW,EAAE,MAAM,EAAE,oBAAoB,EAAE,EAAE,GAAG,IAAI;CAI5E;AAED;;;;;;GAMG;AACH,qBAAa,yBAAyB;IACrC,qFAAqF;IACrF,iBAAiB,EAAE,EAAE,CAAC;IACtB,wGAAwG;IACxG,eAAe,EAAE,EAAE,CAAC;IACpB,uIAAuI;IACvI,qBAAqB,EAAE,EAAE,CAAC;IAC1B,qHAAqH;IACrH,2BAA2B,EAAE,EAAE,CAAC;;IAShC,wEAAwE;IACxE,4BAA4B,IAAI,EAAE;IAIlC,oGAAoG;IACpG,sBAAsB,IAAI,OAAO;IAIjC,2HAA2H;IAC3H,gCAAgC,IAAI,OAAO;IAM3C,qIAAqI;IACrI,cAAc,IAAI,EAAE;CAMpB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,iBAAiB;IAC7B,OAAO,EAAE,aAAa,CAAC;IACvB,4EAA4E;IAC5E,eAAe,EAAE,EAAE,CAAC;IACpB,yHAAyH;IACzH,qBAAqB,EAAE,EAAE,CAAC;IAC1B,0EAA0E;IAC1E,iBAAiB,EAAE,EAAE,CAAC;IACtB,qHAAqH;IACrH,2BAA2B,EAAE,EAAE,CAAC;IAChC,yEAAyE;IACzE,0BAA0B,EAAE,GAAG,CAAC,MAAM,EAAE,yBAAyB,CAAC,CAAC;IACnE,8HAA8H;IAC9H,uBAAuB,EAAE,EAAE,CAAC;IAC5B,uEAAuE;IACvE,kBAAkB,EAAE,MAAM,CAAC;IAC3B,6GAA6G;IAC7G,kBAAkB,EAAE,MAAM,CAAC;IAC3B,sFAAsF;IACtF,yBAAyB,EAAE,OAAO,CAAC;IACnC,4KAA4K;IAC5K,yBAAyB,EAAE,OAAO,CAAC;gBAEvB,OAAO,EAAE,aAAa;IAclC;;;;;;;OAOG;IACH,6BAA6B,CAAC,KAAK,EAAE,EAAE,GAAG,IAAI;IAU9C;;;;;;;OAOG;IACH,yBAAyB,CAAC,iBAAiB,EAAE,EAAE,EAAE,cAAc,EAAE,EAAE,GAAG,IAAI;IAY1E;;;;;;;;;;;OAWG;IACH,4BAA4B,CAC3B,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,EAAE,EAChB,GAAG,EAAE,EAAE,EACP,cAAc,EAAE,EAAE,EAClB,iBAAiB,EAAE,EAAE,GACnB,IAAI;IAwBP,oJAAoJ;IACpJ,qBAAqB,CAAC,kBAAkB,EAAE,EAAE,GAAG,IAAI;IAKnD,mKAAmK;IACnK,gBAAgB,IAAI,IAAI;IAIxB,6JAA6J;IAC7J,gBAAgB,IAAI,IAAI;IAIxB,8MAA8M;IAC9M,+BAA+B,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI;IAIxD,gNAAgN;IAChN,+BAA+B,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI;IAIxD,4FAA4F;IAC5F,mBAAmB,IAAI,MAAM;IAI7B,kGAAkG;IAClG,iCAAiC,IAAI,EAAE;IAIvC,oGAAoG;IACpG,2BAA2B,IAAI,OAAO;IAItC,4JAA4J;IAC5J,qCAAqC,IAAI,OAAO;IAMhD,uIAAuI;IACvI,sBAAsB,IAAI,OAAO;IAQjC,+KAA+K;IAC/K,gCAAgC,IAAI,OAAO;IAQ3C,2GAA2G;IAC3G,sBAAsB,IAAI,EAAE;IAK5B;;;;OAIG;IACH,yBAAyB,CAAC,WAAW,EAAE,MAAM,GAAG,EAAE;IAQlD,kKAAkK;IAClK,4BAA4B,CAC3B,WAAW,EAAE,MAAM,GACjB,yBAAyB,GAAG,SAAS;IAIxC,kFAAkF;IAClF,4BAA4B,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO;CAG1D"}
|
|
@@ -3,17 +3,21 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.MarginCalculation = exports.IsolatedMarginCalculation = exports.MarginContext = exports.MarketIdentifier = void 0;
|
|
4
4
|
const numericConstants_1 = require("./constants/numericConstants");
|
|
5
5
|
const types_1 = require("./types");
|
|
6
|
+
/** Identifies a market by type (spot or perp) and index, used as a key into per-market margin state (e.g. isolated margin buffers). Construct via `MarketIdentifier.spot` / `MarketIdentifier.perp`. */
|
|
6
7
|
class MarketIdentifier {
|
|
7
8
|
constructor(marketType, marketIndex) {
|
|
8
9
|
this.marketType = marketType;
|
|
9
10
|
this.marketIndex = marketIndex;
|
|
10
11
|
}
|
|
12
|
+
/** Builds a `MarketIdentifier` for a spot market index. */
|
|
11
13
|
static spot(marketIndex) {
|
|
12
14
|
return new MarketIdentifier(types_1.MarketType.SPOT, marketIndex);
|
|
13
15
|
}
|
|
16
|
+
/** Builds a `MarketIdentifier` for a perp market index. */
|
|
14
17
|
static perp(marketIndex) {
|
|
15
18
|
return new MarketIdentifier(types_1.MarketType.PERP, marketIndex);
|
|
16
19
|
}
|
|
20
|
+
/** True if `other` refers to the same market type and index. */
|
|
17
21
|
equals(other) {
|
|
18
22
|
return (!!other &&
|
|
19
23
|
(0, types_1.isVariant)(this.marketType, (0, types_1.getVariant)(other.marketType)) &&
|
|
@@ -21,6 +25,14 @@ class MarketIdentifier {
|
|
|
21
25
|
}
|
|
22
26
|
}
|
|
23
27
|
exports.MarketIdentifier = MarketIdentifier;
|
|
28
|
+
/**
|
|
29
|
+
* Configuration driving a `MarginCalculation` pass: which margin category to compute,
|
|
30
|
+
* whether it's a plain health check or a liquidation-margin-freed calculation, and the
|
|
31
|
+
* per-market buffers (in `MARGIN_PRECISION`, 1e4, fractional-of-liability-value units)
|
|
32
|
+
* applied to cross-margin and isolated-margin requirements/collateral so a user isn't
|
|
33
|
+
* flagged liquidatable from a hair's-width shortfall. Mirrors `MarginContext` in
|
|
34
|
+
* `programs/velocity/src/state/margin_calculation.rs`.
|
|
35
|
+
*/
|
|
24
36
|
class MarginContext {
|
|
25
37
|
constructor(marginType) {
|
|
26
38
|
this.marginType = marginType;
|
|
@@ -30,9 +42,19 @@ class MarginContext {
|
|
|
30
42
|
this.isolatedMarginBuffers = new Map();
|
|
31
43
|
this.crossMarginBuffer = numericConstants_1.ZERO;
|
|
32
44
|
}
|
|
45
|
+
/** Builds a plain `Standard`-mode context (no liquidation buffers) for the given margin category — the usual choice for health/leverage/order-placement checks. */
|
|
33
46
|
static standard(marginType) {
|
|
34
47
|
return new MarginContext(marginType);
|
|
35
48
|
}
|
|
49
|
+
/**
|
|
50
|
+
* Builds a `Maintenance`-category, `Liquidation`-mode context with the given buffers.
|
|
51
|
+
* Used by liquidation eligibility / margin-freed calculations so a position is only
|
|
52
|
+
* eligible once it's underwater by more than the buffer, avoiding flip-flopping right
|
|
53
|
+
* at the maintenance threshold.
|
|
54
|
+
* @param crossMarginBuffer Extra maintenance-margin cushion applied to the cross-margin
|
|
55
|
+
* book, `MARGIN_PRECISION` (1e4) fraction of liability value.
|
|
56
|
+
* @param isolatedMarginBuffers Same buffer, per isolated-position market index.
|
|
57
|
+
*/
|
|
36
58
|
static liquidation(crossMarginBuffer, isolatedMarginBuffers) {
|
|
37
59
|
const ctx = new MarginContext('Maintenance');
|
|
38
60
|
ctx.mode = { type: 'Liquidation' };
|
|
@@ -40,28 +62,40 @@ class MarginContext {
|
|
|
40
62
|
ctx.isolatedMarginBuffers = isolatedMarginBuffers;
|
|
41
63
|
return ctx;
|
|
42
64
|
}
|
|
65
|
+
/** Sets whether strict oracle pricing (worse of last/twap price) is used for collateral/liability valuation. Returns `this` for chaining. */
|
|
43
66
|
strictMode(strict) {
|
|
44
67
|
this.strict = strict;
|
|
45
68
|
return this;
|
|
46
69
|
}
|
|
70
|
+
/** Sets whether spot deposits with an invalid oracle are ignored (valued at zero) rather than failing the calculation. Returns `this` for chaining. */
|
|
47
71
|
ignoreInvalidDeposits(ignore) {
|
|
48
72
|
this.ignoreInvalidDepositOracles = ignore;
|
|
49
73
|
return this;
|
|
50
74
|
}
|
|
75
|
+
/** Sets the cross-margin maintenance buffer (`MARGIN_PRECISION`, 1e4, fraction of liability value). Returns `this` for chaining. */
|
|
51
76
|
setCrossMarginBuffer(crossMarginBuffer) {
|
|
52
77
|
this.crossMarginBuffer = crossMarginBuffer;
|
|
53
78
|
return this;
|
|
54
79
|
}
|
|
80
|
+
/** Replaces the whole per-market isolated-margin buffer map. Returns `this` for chaining. */
|
|
55
81
|
setIsolatedMarginBuffers(isolatedMarginBuffers) {
|
|
56
82
|
this.isolatedMarginBuffers = isolatedMarginBuffers;
|
|
57
83
|
return this;
|
|
58
84
|
}
|
|
85
|
+
/** Sets the isolated-margin buffer (`MARGIN_PRECISION`, 1e4, fraction of liability value) for a single perp market index. Returns `this` for chaining. */
|
|
59
86
|
setIsolatedMarginBuffer(marketIndex, isolatedMarginBuffer) {
|
|
60
87
|
this.isolatedMarginBuffers.set(marketIndex, isolatedMarginBuffer);
|
|
61
88
|
return this;
|
|
62
89
|
}
|
|
63
90
|
}
|
|
64
91
|
exports.MarginContext = MarginContext;
|
|
92
|
+
/**
|
|
93
|
+
* Accumulated margin requirement and collateral for a single isolated perp position,
|
|
94
|
+
* built up during a `MarginCalculation` pass via `MarginCalculation.addIsolatedMarginCalculation`.
|
|
95
|
+
* All BN fields are QUOTE_PRECISION (1e6). Isolated positions have their own dedicated
|
|
96
|
+
* collateral pool, so their margin health is tracked independently of the user's
|
|
97
|
+
* cross-margin book.
|
|
98
|
+
*/
|
|
65
99
|
class IsolatedMarginCalculation {
|
|
66
100
|
constructor() {
|
|
67
101
|
this.marginRequirement = numericConstants_1.ZERO;
|
|
@@ -69,21 +103,42 @@ class IsolatedMarginCalculation {
|
|
|
69
103
|
this.totalCollateralBuffer = numericConstants_1.ZERO;
|
|
70
104
|
this.marginRequirementPlusBuffer = numericConstants_1.ZERO;
|
|
71
105
|
}
|
|
106
|
+
/** `totalCollateral + totalCollateralBuffer`, QUOTE_PRECISION (1e6). */
|
|
72
107
|
getTotalCollateralPlusBuffer() {
|
|
73
108
|
return this.totalCollateral.add(this.totalCollateralBuffer);
|
|
74
109
|
}
|
|
110
|
+
/** True if the isolated position's collateral covers its margin requirement (no buffer applied). */
|
|
75
111
|
meetsMarginRequirement() {
|
|
76
112
|
return this.totalCollateral.gte(this.marginRequirement);
|
|
77
113
|
}
|
|
114
|
+
/** True if the buffered collateral covers the buffered margin requirement — the check used for liquidation eligibility. */
|
|
78
115
|
meetsMarginRequirementWithBuffer() {
|
|
79
116
|
return this.getTotalCollateralPlusBuffer().gte(this.marginRequirementPlusBuffer);
|
|
80
117
|
}
|
|
118
|
+
/** Buffered margin shortfall (`marginRequirementPlusBuffer - totalCollateralPlusBuffer`, floored at zero), QUOTE_PRECISION (1e6). */
|
|
81
119
|
marginShortage() {
|
|
82
120
|
const shortage = this.marginRequirementPlusBuffer.sub(this.getTotalCollateralPlusBuffer());
|
|
83
121
|
return shortage.isNeg() ? numericConstants_1.ZERO : shortage;
|
|
84
122
|
}
|
|
85
123
|
}
|
|
86
124
|
exports.IsolatedMarginCalculation = IsolatedMarginCalculation;
|
|
125
|
+
/**
|
|
126
|
+
* Accumulator built up by walking a user's spot and perp positions, mirroring
|
|
127
|
+
* `MarginCalculation` in `programs/velocity/src/state/margin_calculation.rs`. Tracks the
|
|
128
|
+
* cross-margin book's total collateral/margin requirement plus a separate
|
|
129
|
+
* `IsolatedMarginCalculation` per isolated perp market, so cross and isolated health are
|
|
130
|
+
* evaluated independently — `meetsMarginRequirement`/`meetsMarginRequirementWithBuffer`
|
|
131
|
+
* require both the cross book and every isolated position to pass.
|
|
132
|
+
*
|
|
133
|
+
* `numSpotLiabilities`/`numPerpLiabilities`/`withPerpIsolatedLiability`/
|
|
134
|
+
* `withSpotIsolatedLiability` track the on-chain "isolated contract tier" risk-isolation
|
|
135
|
+
* rule (`validate_any_isolated_tier_requirements`): a user holding a liability in a market
|
|
136
|
+
* whose `ContractTier` is `Isolated` may not simultaneously hold other liabilities (perp or
|
|
137
|
+
* non-quote spot) unless in reduce-only mode. Note this `ContractTier::Isolated` market
|
|
138
|
+
* classification is unrelated to per-position isolated margin
|
|
139
|
+
* (`isolatedPositionScaledBalance`) — a market can be isolated-tier without any position on
|
|
140
|
+
* it using isolated margin.
|
|
141
|
+
*/
|
|
87
142
|
class MarginCalculation {
|
|
88
143
|
constructor(context) {
|
|
89
144
|
this.context = context;
|
|
@@ -93,7 +148,19 @@ class MarginCalculation {
|
|
|
93
148
|
this.marginRequirementPlusBuffer = numericConstants_1.ZERO;
|
|
94
149
|
this.isolatedMarginCalculations = new Map();
|
|
95
150
|
this.totalPerpLiabilityValue = numericConstants_1.ZERO;
|
|
151
|
+
this.numSpotLiabilities = 0;
|
|
152
|
+
this.numPerpLiabilities = 0;
|
|
153
|
+
this.withPerpIsolatedLiability = false;
|
|
154
|
+
this.withSpotIsolatedLiability = false;
|
|
96
155
|
}
|
|
156
|
+
/**
|
|
157
|
+
* Adds a signed collateral delta (deposit value or perp pnl, QUOTE_PRECISION 1e6) to
|
|
158
|
+
* the cross-margin book. When in `Liquidation` mode with a nonzero `crossMarginBuffer`
|
|
159
|
+
* and the delta is negative, also extends `totalCollateralBuffer` by
|
|
160
|
+
* `delta * crossMarginBuffer / MARGIN_PRECISION` so a negative-pnl position looks worse
|
|
161
|
+
* under the buffered (liquidation-eligibility) check than under the plain one.
|
|
162
|
+
* @param delta Signed collateral value to add, QUOTE_PRECISION (1e6).
|
|
163
|
+
*/
|
|
97
164
|
addCrossMarginTotalCollateral(delta) {
|
|
98
165
|
const crossMarginBuffer = this.context.crossMarginBuffer;
|
|
99
166
|
this.totalCollateral = this.totalCollateral.add(delta);
|
|
@@ -101,6 +168,14 @@ class MarginCalculation {
|
|
|
101
168
|
this.totalCollateralBuffer = this.totalCollateralBuffer.add(delta.mul(crossMarginBuffer).div(numericConstants_1.MARGIN_PRECISION));
|
|
102
169
|
}
|
|
103
170
|
}
|
|
171
|
+
/**
|
|
172
|
+
* Adds a position's margin requirement to the cross-margin book. When a nonzero
|
|
173
|
+
* `crossMarginBuffer` is configured, also accrues `marginRequirementPlusBuffer` with an
|
|
174
|
+
* extra `liabilityValue * crossMarginBuffer / MARGIN_PRECISION` on top, inflating the
|
|
175
|
+
* buffered requirement used for liquidation eligibility.
|
|
176
|
+
* @param marginRequirement Margin required for this position, QUOTE_PRECISION (1e6).
|
|
177
|
+
* @param liabilityValue Position's (worst-case) liability value the buffer is scaled from, QUOTE_PRECISION (1e6).
|
|
178
|
+
*/
|
|
104
179
|
addCrossMarginRequirement(marginRequirement, liabilityValue) {
|
|
105
180
|
const crossMarginBuffer = this.context.crossMarginBuffer;
|
|
106
181
|
this.marginRequirement = this.marginRequirement.add(marginRequirement);
|
|
@@ -108,6 +183,18 @@ class MarginCalculation {
|
|
|
108
183
|
this.marginRequirementPlusBuffer = this.marginRequirementPlusBuffer.add(marginRequirement.add(liabilityValue.mul(crossMarginBuffer).div(numericConstants_1.MARGIN_PRECISION)));
|
|
109
184
|
}
|
|
110
185
|
}
|
|
186
|
+
/**
|
|
187
|
+
* Records (or overwrites) the margin state for one isolated perp position, applying that
|
|
188
|
+
* market's isolated margin buffer (from `context.isolatedMarginBuffers`) to the
|
|
189
|
+
* buffered requirement, and to the buffered collateral only when `pnl` is negative —
|
|
190
|
+
* mirroring `addCrossMarginRequirement`/`addCrossMarginTotalCollateral` but scoped to a
|
|
191
|
+
* single isolated market instead of the shared cross-margin book.
|
|
192
|
+
* @param marketIndex Perp market index of the isolated position.
|
|
193
|
+
* @param depositValue Isolated collateral deposited into the position, QUOTE_PRECISION (1e6).
|
|
194
|
+
* @param pnl Position's unrealized/settled pnl, QUOTE_PRECISION (1e6, signed).
|
|
195
|
+
* @param liabilityValue Position's (worst-case) liability value the buffer is scaled from, QUOTE_PRECISION (1e6).
|
|
196
|
+
* @param marginRequirement Margin required to maintain/open the isolated position, QUOTE_PRECISION (1e6).
|
|
197
|
+
*/
|
|
111
198
|
addIsolatedMarginCalculation(marketIndex, depositValue, pnl, liabilityValue, marginRequirement) {
|
|
112
199
|
var _a;
|
|
113
200
|
const totalCollateral = depositValue.add(pnl);
|
|
@@ -125,19 +212,44 @@ class MarginCalculation {
|
|
|
125
212
|
iso.marginRequirementPlusBuffer = marginRequirementPlusBuffer;
|
|
126
213
|
this.isolatedMarginCalculations.set(marketIndex, iso);
|
|
127
214
|
}
|
|
215
|
+
/** Adds to the running total of worst-case perp liability value across all perp positions seen. @param perpLiabilityValue QUOTE_PRECISION (1e6). */
|
|
128
216
|
addPerpLiabilityValue(perpLiabilityValue) {
|
|
129
217
|
this.totalPerpLiabilityValue =
|
|
130
218
|
this.totalPerpLiabilityValue.add(perpLiabilityValue);
|
|
131
219
|
}
|
|
220
|
+
/** Increments the count of spot positions counted as liabilities (borrows, or zero-balance positions with open orders). Call once per qualifying spot position. */
|
|
221
|
+
addSpotLiability() {
|
|
222
|
+
this.numSpotLiabilities += 1;
|
|
223
|
+
}
|
|
224
|
+
/** Increments the count of perp positions counted as liabilities (non-flat base, negative quote, or open orders). Call once per qualifying perp position. */
|
|
225
|
+
addPerpLiability() {
|
|
226
|
+
this.numPerpLiabilities += 1;
|
|
227
|
+
}
|
|
228
|
+
/** Latches `withSpotIsolatedLiability` to `true` if `isolated` is true (sticky OR — never reset to false once set). Pass whether the spot liability just added belongs to an `AssetTier::Isolated` market. */
|
|
229
|
+
updateWithSpotIsolatedLiability(isolated) {
|
|
230
|
+
this.withSpotIsolatedLiability = this.withSpotIsolatedLiability || isolated;
|
|
231
|
+
}
|
|
232
|
+
/** Latches `withPerpIsolatedLiability` to `true` if `isolated` is true (sticky OR — never reset to false once set). Pass whether the perp liability just added belongs to a `ContractTier::Isolated` market. */
|
|
233
|
+
updateWithPerpIsolatedLiability(isolated) {
|
|
234
|
+
this.withPerpIsolatedLiability = this.withPerpIsolatedLiability || isolated;
|
|
235
|
+
}
|
|
236
|
+
/** Total number of liability positions (spot borrows + perp liabilities) counted so far. */
|
|
237
|
+
getNumOfLiabilities() {
|
|
238
|
+
return this.numSpotLiabilities + this.numPerpLiabilities;
|
|
239
|
+
}
|
|
240
|
+
/** `totalCollateral + totalCollateralBuffer` for the cross-margin book, QUOTE_PRECISION (1e6). */
|
|
132
241
|
getCrossTotalCollateralPlusBuffer() {
|
|
133
242
|
return this.totalCollateral.add(this.totalCollateralBuffer);
|
|
134
243
|
}
|
|
244
|
+
/** True if the cross-margin book's collateral covers its margin requirement (no buffer applied). */
|
|
135
245
|
meetsCrossMarginRequirement() {
|
|
136
246
|
return this.totalCollateral.gte(this.marginRequirement);
|
|
137
247
|
}
|
|
248
|
+
/** True if the cross-margin book's buffered collateral covers its buffered margin requirement — the check used for cross-margin liquidation eligibility. */
|
|
138
249
|
meetsCrossMarginRequirementWithBuffer() {
|
|
139
250
|
return this.getCrossTotalCollateralPlusBuffer().gte(this.marginRequirementPlusBuffer);
|
|
140
251
|
}
|
|
252
|
+
/** True only if the cross-margin book AND every tracked isolated position independently meet their (unbuffered) margin requirement. */
|
|
141
253
|
meetsMarginRequirement() {
|
|
142
254
|
if (!this.meetsCrossMarginRequirement())
|
|
143
255
|
return false;
|
|
@@ -147,6 +259,7 @@ class MarginCalculation {
|
|
|
147
259
|
}
|
|
148
260
|
return true;
|
|
149
261
|
}
|
|
262
|
+
/** True only if the cross-margin book AND every tracked isolated position independently meet their buffered margin requirement — the overall liquidation-eligibility check. */
|
|
150
263
|
meetsMarginRequirementWithBuffer() {
|
|
151
264
|
if (!this.meetsCrossMarginRequirementWithBuffer())
|
|
152
265
|
return false;
|
|
@@ -156,10 +269,16 @@ class MarginCalculation {
|
|
|
156
269
|
}
|
|
157
270
|
return true;
|
|
158
271
|
}
|
|
272
|
+
/** Cross-margin collateral in excess of its margin requirement, floored at zero, QUOTE_PRECISION (1e6). */
|
|
159
273
|
getCrossFreeCollateral() {
|
|
160
274
|
const free = this.totalCollateral.sub(this.marginRequirement);
|
|
161
275
|
return free.isNeg() ? numericConstants_1.ZERO : free;
|
|
162
276
|
}
|
|
277
|
+
/**
|
|
278
|
+
* Free (unbuffered) collateral for one isolated perp position, floored at zero, QUOTE_PRECISION (1e6).
|
|
279
|
+
* @param marketIndex Perp market index of the isolated position.
|
|
280
|
+
* @throws if no isolated margin calculation was recorded for `marketIndex` (call `addIsolatedMarginCalculation` first).
|
|
281
|
+
*/
|
|
163
282
|
getIsolatedFreeCollateral(marketIndex) {
|
|
164
283
|
const iso = this.isolatedMarginCalculations.get(marketIndex);
|
|
165
284
|
if (!iso)
|
|
@@ -167,9 +286,11 @@ class MarginCalculation {
|
|
|
167
286
|
const free = iso.totalCollateral.sub(iso.marginRequirement);
|
|
168
287
|
return free.isNeg() ? numericConstants_1.ZERO : free;
|
|
169
288
|
}
|
|
289
|
+
/** Returns the recorded `IsolatedMarginCalculation` for `marketIndex`, or `undefined` if none was recorded (the user has no isolated position in that market). */
|
|
170
290
|
getIsolatedMarginCalculation(marketIndex) {
|
|
171
291
|
return this.isolatedMarginCalculations.get(marketIndex);
|
|
172
292
|
}
|
|
293
|
+
/** True if an isolated margin calculation has been recorded for `marketIndex`. */
|
|
173
294
|
hasIsolatedMarginCalculation(marketIndex) {
|
|
174
295
|
return this.isolatedMarginCalculations.has(marketIndex);
|
|
175
296
|
}
|