@velocity-exchange/sdk 0.0.5 → 0.2.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/.prettierignore +1 -1
- package/CHANGELOG.md +35 -0
- package/README.md +30 -30
- package/bun.lock +24 -2
- package/lib/browser/accounts/basicUserAccountSubscriber.d.ts +5 -3
- package/lib/browser/accounts/basicUserAccountSubscriber.js +4 -3
- package/lib/browser/accounts/basicUserStatsAccountSubscriber.d.ts +5 -3
- package/lib/browser/accounts/basicUserStatsAccountSubscriber.js +4 -3
- package/lib/browser/accounts/bulkAccountLoader.d.ts +5 -5
- package/lib/browser/accounts/bulkAccountLoader.js +12 -1
- package/lib/browser/accounts/grpcAccountSubscriber.d.ts +2 -1
- package/lib/browser/accounts/grpcAccountSubscriber.js +8 -2
- package/lib/browser/accounts/grpcMultiAccountSubscriber.d.ts +3 -2
- package/lib/browser/accounts/grpcMultiAccountSubscriber.js +13 -5
- package/lib/browser/accounts/grpcMultiUserAccountSubscriber.d.ts +2 -1
- package/lib/browser/accounts/grpcMultiUserAccountSubscriber.js +12 -8
- package/lib/browser/accounts/grpcProgramAccountSubscriber.d.ts +2 -1
- package/lib/browser/accounts/grpcProgramAccountSubscriber.js +9 -3
- package/lib/browser/accounts/grpcVelocityClientAccountSubscriber.d.ts +0 -4
- package/lib/browser/accounts/grpcVelocityClientAccountSubscriber.js +19 -6
- package/lib/browser/accounts/grpcVelocityClientAccountSubscriberV2.d.ts +1 -5
- package/lib/browser/accounts/grpcVelocityClientAccountSubscriberV2.js +44 -23
- package/lib/browser/accounts/laserProgramAccountSubscriber.js +4 -1
- package/lib/browser/accounts/oneShotUserAccountSubscriber.js +4 -3
- package/lib/browser/accounts/oneShotUserStatsAccountSubscriber.js +7 -3
- package/lib/browser/accounts/pollingInsuranceFundStakeAccountSubscriber.d.ts +4 -2
- package/lib/browser/accounts/pollingInsuranceFundStakeAccountSubscriber.js +3 -3
- package/lib/browser/accounts/pollingOracleAccountSubscriber.d.ts +0 -2
- package/lib/browser/accounts/pollingOracleAccountSubscriber.js +16 -5
- package/lib/browser/accounts/pollingTokenAccountSubscriber.d.ts +0 -2
- package/lib/browser/accounts/pollingTokenAccountSubscriber.js +16 -5
- package/lib/browser/accounts/pollingUserAccountSubscriber.d.ts +8 -4
- package/lib/browser/accounts/pollingUserAccountSubscriber.js +17 -11
- package/lib/browser/accounts/pollingUserStatsAccountSubscriber.d.ts +4 -2
- package/lib/browser/accounts/pollingUserStatsAccountSubscriber.js +6 -6
- package/lib/browser/accounts/pollingVelocityClientAccountSubscriber.d.ts +7 -5
- package/lib/browser/accounts/pollingVelocityClientAccountSubscriber.js +69 -35
- package/lib/browser/accounts/types.d.ts +6 -12
- package/lib/browser/accounts/utils.d.ts +1 -0
- package/lib/browser/accounts/utils.js +10 -3
- package/lib/browser/accounts/webSocketAccountSubscriber.d.ts +4 -2
- package/lib/browser/accounts/webSocketAccountSubscriber.js +17 -5
- package/lib/browser/accounts/webSocketAccountSubscriberV2.d.ts +4 -2
- package/lib/browser/accounts/webSocketAccountSubscriberV2.js +17 -6
- package/lib/browser/accounts/webSocketInsuranceFundStakeAccountSubscriber.d.ts +4 -2
- package/lib/browser/accounts/webSocketInsuranceFundStakeAccountSubscriber.js +9 -0
- package/lib/browser/accounts/webSocketProgramAccountSubscriber.d.ts +3 -1
- package/lib/browser/accounts/webSocketProgramAccountSubscriber.js +14 -3
- package/lib/browser/accounts/webSocketProgramAccountSubscriberV2.d.ts +3 -1
- package/lib/browser/accounts/webSocketProgramAccountSubscriberV2.js +15 -3
- package/lib/browser/accounts/webSocketProgramAccountsSubscriberV2.d.ts +3 -1
- package/lib/browser/accounts/webSocketProgramAccountsSubscriberV2.js +14 -4
- package/lib/browser/accounts/webSocketUserAccountSubscriber.d.ts +4 -2
- package/lib/browser/accounts/webSocketUserAccountSubscriber.js +9 -0
- package/lib/browser/accounts/webSocketUserStatsAccountSubsriber.d.ts +4 -2
- package/lib/browser/accounts/webSocketUserStatsAccountSubsriber.js +9 -0
- package/lib/browser/accounts/webSocketVelocityClientAccountSubscriber.d.ts +4 -8
- package/lib/browser/accounts/webSocketVelocityClientAccountSubscriber.js +52 -26
- package/lib/browser/accounts/webSocketVelocityClientAccountSubscriberV2.d.ts +7 -7
- package/lib/browser/accounts/webSocketVelocityClientAccountSubscriberV2.js +49 -20
- package/lib/browser/accounts/websocketProgramUserAccountSubscriber.d.ts +1 -1
- package/lib/browser/accounts/websocketProgramUserAccountSubscriber.js +0 -3
- package/lib/browser/addresses/marketAddresses.js +3 -2
- package/lib/browser/addresses/pda.d.ts +1 -9
- package/lib/browser/addresses/pda.js +4 -23
- package/lib/browser/adminClient.d.ts +25 -29
- package/lib/browser/adminClient.js +168 -169
- package/lib/browser/auctionSubscriber/auctionSubscriber.d.ts +2 -4
- package/lib/browser/auctionSubscriber/auctionSubscriber.js +8 -10
- package/lib/browser/auctionSubscriber/auctionSubscriberGrpc.d.ts +2 -4
- package/lib/browser/auctionSubscriber/auctionSubscriberGrpc.js +11 -10
- package/lib/browser/auctionSubscriber/types.d.ts +3 -2
- package/lib/browser/bankrun/bankrunConnection.d.ts +6 -4
- package/lib/browser/bankrun/bankrunConnection.js +69 -31
- package/lib/browser/blockhashSubscriber/BlockhashSubscriber.d.ts +1 -1
- package/lib/browser/blockhashSubscriber/BlockhashSubscriber.js +3 -2
- package/lib/browser/clock/clockSubscriber.d.ts +6 -6
- package/lib/browser/clock/clockSubscriber.js +4 -3
- package/lib/browser/config.d.ts +11 -20
- package/lib/browser/config.js +13 -36
- package/lib/browser/constants/index.d.ts +1 -2
- package/lib/browser/constants/index.js +1 -2
- package/lib/browser/constants/numericConstants.d.ts +1 -3
- package/lib/browser/constants/numericConstants.js +3 -5
- package/lib/browser/constituentMap/constituentMap.d.ts +0 -2
- package/lib/browser/constituentMap/constituentMap.js +10 -6
- package/lib/browser/constituentMap/pollingConstituentAccountSubscriber.js +3 -2
- package/lib/browser/constituentMap/webSocketConstituentAccountSubscriber.d.ts +2 -3
- package/lib/browser/constituentMap/webSocketConstituentAccountSubscriber.js +10 -3
- package/lib/browser/core/VelocityCore.d.ts +9 -15
- package/lib/browser/core/VelocityCore.js +5 -7
- package/lib/browser/core/instructions/perpOrders.d.ts +14 -0
- package/lib/browser/core/instructions/perpOrders.js +14 -0
- package/lib/browser/core/instructions/withdraw.d.ts +1 -1
- package/lib/browser/core/instructions/withdraw.js +1 -1
- package/lib/browser/core/remainingAccounts.d.ts +2 -2
- package/lib/browser/core/remainingAccounts.js +5 -5
- package/lib/browser/decode/user.js +9 -1
- package/lib/browser/dlob/DLOB.d.ts +7 -2
- package/lib/browser/dlob/DLOB.js +205 -142
- package/lib/browser/dlob/DLOBNode.d.ts +5 -2
- package/lib/browser/dlob/DLOBNode.js +7 -0
- package/lib/browser/dlob/DLOBSubscriber.d.ts +0 -2
- package/lib/browser/dlob/DLOBSubscriber.js +39 -39
- package/lib/browser/dlob/NodeList.js +8 -7
- package/lib/browser/dlob/orderBookLevels.js +24 -17
- package/lib/browser/dlob/types.d.ts +0 -2
- package/lib/browser/events/eventList.js +4 -1
- package/lib/browser/events/eventSubscriber.d.ts +6 -3
- package/lib/browser/events/eventSubscriber.js +75 -26
- package/lib/browser/events/eventsServerLogProvider.d.ts +1 -1
- package/lib/browser/events/eventsServerLogProvider.js +17 -10
- package/lib/browser/events/fetchLogs.d.ts +1 -1
- package/lib/browser/events/fetchLogs.js +4 -2
- package/lib/browser/events/parse.js +14 -14
- package/lib/browser/events/pollingLogProvider.d.ts +1 -1
- package/lib/browser/events/pollingLogProvider.js +1 -0
- package/lib/browser/events/txEventCache.js +6 -2
- package/lib/browser/events/types.d.ts +3 -7
- package/lib/browser/events/types.js +1 -3
- package/lib/browser/events/webSocketLogProvider.d.ts +1 -1
- package/lib/browser/events/webSocketLogProvider.js +5 -2
- package/lib/browser/factory/bigNum.js +1 -1
- package/lib/{node/idl/drift.d.ts → browser/idl/velocity.d.ts} +2412 -2481
- package/lib/browser/idl/{drift.json → velocity.json} +2265 -2333
- package/lib/browser/index.d.ts +1 -3
- package/lib/browser/index.js +1 -4
- package/lib/browser/jupiter/jupiterClient.d.ts +1 -1
- package/lib/browser/jupiter/jupiterClient.js +18 -8
- package/lib/browser/marginCalculation.js +1 -0
- package/lib/browser/math/amm.d.ts +31 -13
- package/lib/browser/math/amm.js +87 -31
- package/lib/browser/math/auction.js +16 -12
- package/lib/browser/math/bankruptcy.js +1 -1
- package/lib/browser/math/builder.d.ts +18 -1
- package/lib/browser/math/builder.js +32 -1
- package/lib/browser/math/funding.js +30 -30
- package/lib/browser/math/insurance.d.ts +1 -1
- package/lib/browser/math/insurance.js +4 -5
- package/lib/browser/math/margin.d.ts +3 -11
- package/lib/browser/math/margin.js +10 -69
- package/lib/browser/math/market.d.ts +4 -12
- package/lib/browser/math/market.js +12 -46
- package/lib/browser/math/oracles.d.ts +4 -7
- package/lib/browser/math/oracles.js +24 -37
- package/lib/browser/math/orders.d.ts +2 -7
- package/lib/browser/math/orders.js +9 -81
- package/lib/browser/math/position.d.ts +0 -4
- package/lib/browser/math/position.js +6 -11
- package/lib/browser/math/repeg.d.ts +0 -1
- package/lib/browser/math/repeg.js +1 -23
- package/lib/browser/math/spotBalance.d.ts +4 -4
- package/lib/browser/math/spotBalance.js +6 -6
- package/lib/browser/math/spotMarket.d.ts +0 -6
- package/lib/browser/math/spotMarket.js +1 -16
- package/lib/browser/math/spotPosition.d.ts +4 -4
- package/lib/browser/math/state.d.ts +0 -2
- package/lib/browser/math/state.js +1 -9
- package/lib/browser/math/superStake.d.ts +11 -63
- package/lib/browser/math/superStake.js +29 -28
- package/lib/browser/math/trade.js +7 -7
- package/lib/browser/math/utils.d.ts +1 -1
- package/lib/browser/math/utils.js +1 -1
- package/lib/browser/memcmp.d.ts +0 -1
- package/lib/browser/memcmp.js +1 -10
- package/lib/browser/oracles/prelaunchOracleClient.js +3 -2
- package/lib/browser/oracles/pythClient.js +9 -3
- package/lib/browser/oracles/pythLazerClient.js +5 -4
- package/lib/browser/oracles/utils.d.ts +4 -0
- package/lib/browser/oracles/utils.js +9 -1
- package/lib/browser/orderSubscriber/OrderSubscriber.d.ts +1 -3
- package/lib/browser/orderSubscriber/OrderSubscriber.js +16 -14
- package/lib/browser/orderSubscriber/WebsocketSubscription.js +1 -1
- package/lib/browser/orderSubscriber/grpcSubscription.js +2 -2
- package/lib/browser/orderSubscriber/types.d.ts +0 -2
- package/lib/browser/priorityFee/heliusPriorityFeeMethod.d.ts +1 -1
- package/lib/browser/priorityFee/priorityFeeSubscriber.d.ts +2 -6
- package/lib/browser/priorityFee/priorityFeeSubscriber.js +34 -18
- package/lib/browser/priorityFee/priorityFeeSubscriberMap.d.ts +0 -4
- package/lib/browser/priorityFee/priorityFeeSubscriberMap.js +3 -11
- package/lib/browser/priorityFee/solanaPriorityFeeMethod.d.ts +1 -1
- package/lib/browser/priorityFee/types.d.ts +3 -8
- package/lib/browser/priorityFee/velocityPriorityFeeMethod.d.ts +0 -8
- package/lib/browser/priorityFee/velocityPriorityFeeMethod.js +1 -3
- package/lib/browser/pyth/pythLazerSubscriber.d.ts +1 -1
- package/lib/browser/pyth/pythLazerSubscriber.js +1 -1
- package/lib/browser/pyth/types.d.ts +0 -1
- package/lib/browser/slot/SlotSubscriber.d.ts +1 -1
- package/lib/browser/slot/SlotSubscriber.js +2 -1
- package/lib/browser/slot/SlothashSubscriber.d.ts +3 -2
- package/lib/browser/slot/SlothashSubscriber.js +11 -4
- package/lib/browser/swap/UnifiedSwapClient.js +1 -1
- package/lib/browser/swift/grpcSignedMsgUserAccountSubscriber.d.ts +0 -3
- package/lib/browser/swift/grpcSignedMsgUserAccountSubscriber.js +5 -5
- package/lib/browser/swift/signedMsgUserAccountSubscriber.d.ts +7 -7
- package/lib/browser/swift/signedMsgUserAccountSubscriber.js +14 -10
- package/lib/browser/swift/swiftOrderSubscriber.d.ts +7 -6
- package/lib/browser/swift/swiftOrderSubscriber.js +15 -16
- package/lib/browser/testClient.js +3 -2
- package/lib/browser/tokenFaucet.js +16 -2
- package/lib/browser/tx/baseTxSender.d.ts +4 -4
- package/lib/browser/tx/baseTxSender.js +5 -4
- package/lib/browser/tx/fastSingleTxSender.d.ts +3 -3
- package/lib/browser/tx/fastSingleTxSender.js +9 -5
- package/lib/browser/tx/reportTransactionError.d.ts +2 -2
- package/lib/browser/tx/reportTransactionError.js +5 -1
- package/lib/browser/tx/retryTxSender.d.ts +1 -1
- package/lib/browser/tx/retryTxSender.js +4 -2
- package/lib/browser/tx/txHandler.d.ts +7 -1
- package/lib/browser/tx/txHandler.js +54 -40
- package/lib/browser/tx/txParamProcessor.d.ts +4 -1
- package/lib/browser/tx/txParamProcessor.js +6 -0
- package/lib/browser/tx/types.d.ts +1 -1
- package/lib/browser/tx/whileValidTxSender.d.ts +1 -6
- package/lib/browser/tx/whileValidTxSender.js +35 -13
- package/lib/browser/types.d.ts +102 -157
- package/lib/browser/types.js +6 -2
- package/lib/browser/user.d.ts +22 -10
- package/lib/browser/user.js +174 -154
- package/lib/browser/userConfig.d.ts +3 -2
- package/lib/browser/userMap/WebsocketSubscription.d.ts +1 -1
- package/lib/browser/userMap/WebsocketSubscription.js +1 -1
- package/lib/browser/userMap/grpcSubscription.d.ts +1 -1
- package/lib/browser/userMap/grpcSubscription.js +1 -1
- package/lib/browser/userMap/referrerMap.d.ts +0 -2
- package/lib/browser/userMap/referrerMap.js +10 -7
- package/lib/browser/userMap/revenueShareEscrowMap.d.ts +0 -2
- package/lib/browser/userMap/revenueShareEscrowMap.js +4 -4
- package/lib/browser/userMap/userMap.d.ts +3 -5
- package/lib/browser/userMap/userMap.js +39 -30
- package/lib/browser/userMap/userMapConfig.d.ts +3 -2
- package/lib/browser/userMap/userStatsMap.d.ts +1 -3
- package/lib/browser/userMap/userStatsMap.js +18 -17
- package/lib/browser/userStats.d.ts +7 -4
- package/lib/browser/userStats.js +28 -18
- package/lib/browser/userStatsConfig.d.ts +3 -2
- package/lib/browser/util/TransactionConfirmationManager.js +4 -2
- package/lib/browser/util/chainClock.d.ts +1 -1
- package/lib/browser/util/computeUnits.d.ts +1 -1
- package/lib/browser/util/computeUnits.js +6 -1
- package/lib/browser/util/ed25519Utils.d.ts +1 -1
- package/lib/browser/util/ed25519Utils.js +1 -1
- package/lib/browser/velocityClient.d.ts +144 -71
- package/lib/browser/velocityClient.js +653 -457
- package/lib/browser/velocityClientConfig.d.ts +0 -8
- package/lib/node/accounts/basicUserAccountSubscriber.d.ts +5 -3
- package/lib/node/accounts/basicUserAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/basicUserAccountSubscriber.js +4 -3
- package/lib/node/accounts/basicUserStatsAccountSubscriber.d.ts +5 -3
- package/lib/node/accounts/basicUserStatsAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/basicUserStatsAccountSubscriber.js +4 -3
- package/lib/node/accounts/bulkAccountLoader.d.ts +5 -5
- package/lib/node/accounts/bulkAccountLoader.d.ts.map +1 -1
- package/lib/node/accounts/bulkAccountLoader.js +12 -1
- package/lib/node/accounts/grpcAccountSubscriber.d.ts +2 -1
- package/lib/node/accounts/grpcAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/grpcAccountSubscriber.js +8 -2
- package/lib/node/accounts/grpcMultiAccountSubscriber.d.ts +3 -2
- package/lib/node/accounts/grpcMultiAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/grpcMultiAccountSubscriber.js +13 -5
- package/lib/node/accounts/grpcMultiUserAccountSubscriber.d.ts +2 -1
- package/lib/node/accounts/grpcMultiUserAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/grpcMultiUserAccountSubscriber.js +12 -8
- package/lib/node/accounts/grpcProgramAccountSubscriber.d.ts +2 -1
- package/lib/node/accounts/grpcProgramAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/grpcProgramAccountSubscriber.js +9 -3
- package/lib/node/accounts/grpcVelocityClientAccountSubscriber.d.ts +0 -4
- package/lib/node/accounts/grpcVelocityClientAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/grpcVelocityClientAccountSubscriber.js +19 -6
- package/lib/node/accounts/grpcVelocityClientAccountSubscriberV2.d.ts +1 -5
- package/lib/node/accounts/grpcVelocityClientAccountSubscriberV2.d.ts.map +1 -1
- package/lib/node/accounts/grpcVelocityClientAccountSubscriberV2.js +44 -23
- package/lib/node/accounts/laserProgramAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/laserProgramAccountSubscriber.js +4 -1
- package/lib/node/accounts/oneShotUserAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/oneShotUserAccountSubscriber.js +4 -3
- package/lib/node/accounts/oneShotUserStatsAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/oneShotUserStatsAccountSubscriber.js +7 -3
- package/lib/node/accounts/pollingInsuranceFundStakeAccountSubscriber.d.ts +4 -2
- package/lib/node/accounts/pollingInsuranceFundStakeAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/pollingInsuranceFundStakeAccountSubscriber.js +3 -3
- package/lib/node/accounts/pollingOracleAccountSubscriber.d.ts +0 -2
- package/lib/node/accounts/pollingOracleAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/pollingOracleAccountSubscriber.js +16 -5
- package/lib/node/accounts/pollingTokenAccountSubscriber.d.ts +0 -2
- package/lib/node/accounts/pollingTokenAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/pollingTokenAccountSubscriber.js +16 -5
- package/lib/node/accounts/pollingUserAccountSubscriber.d.ts +8 -4
- package/lib/node/accounts/pollingUserAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/pollingUserAccountSubscriber.js +17 -11
- package/lib/node/accounts/pollingUserStatsAccountSubscriber.d.ts +4 -2
- package/lib/node/accounts/pollingUserStatsAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/pollingUserStatsAccountSubscriber.js +6 -6
- package/lib/node/accounts/pollingVelocityClientAccountSubscriber.d.ts +7 -5
- package/lib/node/accounts/pollingVelocityClientAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/pollingVelocityClientAccountSubscriber.js +69 -35
- package/lib/node/accounts/types.d.ts +6 -12
- package/lib/node/accounts/types.d.ts.map +1 -1
- package/lib/node/accounts/utils.d.ts +1 -0
- package/lib/node/accounts/utils.d.ts.map +1 -1
- package/lib/node/accounts/utils.js +10 -3
- package/lib/node/accounts/webSocketAccountSubscriber.d.ts +4 -2
- package/lib/node/accounts/webSocketAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/webSocketAccountSubscriber.js +17 -5
- package/lib/node/accounts/webSocketAccountSubscriberV2.d.ts +4 -2
- package/lib/node/accounts/webSocketAccountSubscriberV2.d.ts.map +1 -1
- package/lib/node/accounts/webSocketAccountSubscriberV2.js +17 -6
- package/lib/node/accounts/webSocketInsuranceFundStakeAccountSubscriber.d.ts +4 -2
- package/lib/node/accounts/webSocketInsuranceFundStakeAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/webSocketInsuranceFundStakeAccountSubscriber.js +9 -0
- package/lib/node/accounts/webSocketProgramAccountSubscriber.d.ts +3 -1
- package/lib/node/accounts/webSocketProgramAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/webSocketProgramAccountSubscriber.js +14 -3
- package/lib/node/accounts/webSocketProgramAccountSubscriberV2.d.ts +3 -1
- package/lib/node/accounts/webSocketProgramAccountSubscriberV2.d.ts.map +1 -1
- package/lib/node/accounts/webSocketProgramAccountSubscriberV2.js +15 -3
- package/lib/node/accounts/webSocketProgramAccountsSubscriberV2.d.ts +3 -1
- package/lib/node/accounts/webSocketProgramAccountsSubscriberV2.d.ts.map +1 -1
- package/lib/node/accounts/webSocketProgramAccountsSubscriberV2.js +14 -4
- package/lib/node/accounts/webSocketUserAccountSubscriber.d.ts +4 -2
- package/lib/node/accounts/webSocketUserAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/webSocketUserAccountSubscriber.js +9 -0
- package/lib/node/accounts/webSocketUserStatsAccountSubsriber.d.ts +4 -2
- package/lib/node/accounts/webSocketUserStatsAccountSubsriber.d.ts.map +1 -1
- package/lib/node/accounts/webSocketUserStatsAccountSubsriber.js +9 -0
- package/lib/node/accounts/webSocketVelocityClientAccountSubscriber.d.ts +4 -8
- package/lib/node/accounts/webSocketVelocityClientAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/webSocketVelocityClientAccountSubscriber.js +52 -26
- package/lib/node/accounts/webSocketVelocityClientAccountSubscriberV2.d.ts +7 -7
- package/lib/node/accounts/webSocketVelocityClientAccountSubscriberV2.d.ts.map +1 -1
- package/lib/node/accounts/webSocketVelocityClientAccountSubscriberV2.js +49 -20
- package/lib/node/accounts/websocketProgramUserAccountSubscriber.d.ts +1 -1
- package/lib/node/accounts/websocketProgramUserAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/websocketProgramUserAccountSubscriber.js +0 -3
- package/lib/node/addresses/marketAddresses.d.ts.map +1 -1
- package/lib/node/addresses/marketAddresses.js +3 -2
- package/lib/node/addresses/pda.d.ts +1 -9
- package/lib/node/addresses/pda.d.ts.map +1 -1
- package/lib/node/addresses/pda.js +4 -23
- package/lib/node/adminClient.d.ts +25 -29
- package/lib/node/adminClient.d.ts.map +1 -1
- package/lib/node/adminClient.js +168 -169
- package/lib/node/auctionSubscriber/auctionSubscriber.d.ts +2 -4
- package/lib/node/auctionSubscriber/auctionSubscriber.d.ts.map +1 -1
- package/lib/node/auctionSubscriber/auctionSubscriber.js +8 -10
- package/lib/node/auctionSubscriber/auctionSubscriberGrpc.d.ts +2 -4
- package/lib/node/auctionSubscriber/auctionSubscriberGrpc.d.ts.map +1 -1
- package/lib/node/auctionSubscriber/auctionSubscriberGrpc.js +11 -10
- package/lib/node/auctionSubscriber/types.d.ts +3 -2
- package/lib/node/auctionSubscriber/types.d.ts.map +1 -1
- package/lib/node/bankrun/bankrunConnection.d.ts +6 -4
- package/lib/node/bankrun/bankrunConnection.d.ts.map +1 -1
- package/lib/node/bankrun/bankrunConnection.js +69 -31
- package/lib/node/blockhashSubscriber/BlockhashSubscriber.d.ts +1 -1
- package/lib/node/blockhashSubscriber/BlockhashSubscriber.d.ts.map +1 -1
- package/lib/node/blockhashSubscriber/BlockhashSubscriber.js +3 -2
- package/lib/node/clock/clockSubscriber.d.ts +6 -6
- package/lib/node/clock/clockSubscriber.d.ts.map +1 -1
- package/lib/node/clock/clockSubscriber.js +4 -3
- package/lib/node/config.d.ts +11 -20
- package/lib/node/config.d.ts.map +1 -1
- package/lib/node/config.js +13 -36
- package/lib/node/constants/index.d.ts +1 -2
- package/lib/node/constants/index.d.ts.map +1 -1
- package/lib/node/constants/index.js +1 -2
- package/lib/node/constants/numericConstants.d.ts +1 -3
- package/lib/node/constants/numericConstants.d.ts.map +1 -1
- package/lib/node/constants/numericConstants.js +3 -5
- package/lib/node/constituentMap/constituentMap.d.ts +0 -2
- package/lib/node/constituentMap/constituentMap.d.ts.map +1 -1
- package/lib/node/constituentMap/constituentMap.js +10 -6
- package/lib/node/constituentMap/pollingConstituentAccountSubscriber.d.ts.map +1 -1
- package/lib/node/constituentMap/pollingConstituentAccountSubscriber.js +3 -2
- package/lib/node/constituentMap/webSocketConstituentAccountSubscriber.d.ts +2 -3
- package/lib/node/constituentMap/webSocketConstituentAccountSubscriber.d.ts.map +1 -1
- package/lib/node/constituentMap/webSocketConstituentAccountSubscriber.js +10 -3
- package/lib/node/core/VelocityCore.d.ts +9 -15
- package/lib/node/core/VelocityCore.d.ts.map +1 -1
- package/lib/node/core/VelocityCore.js +5 -7
- package/lib/node/core/instructions/perpOrders.d.ts +14 -0
- package/lib/node/core/instructions/perpOrders.d.ts.map +1 -1
- package/lib/node/core/instructions/perpOrders.js +14 -0
- package/lib/node/core/instructions/withdraw.d.ts +1 -1
- package/lib/node/core/instructions/withdraw.d.ts.map +1 -1
- package/lib/node/core/instructions/withdraw.js +1 -1
- package/lib/node/core/remainingAccounts.d.ts +2 -2
- package/lib/node/core/remainingAccounts.d.ts.map +1 -1
- package/lib/node/core/remainingAccounts.js +5 -5
- package/lib/node/decode/user.d.ts.map +1 -1
- package/lib/node/decode/user.js +9 -1
- package/lib/node/dlob/DLOB.d.ts +7 -2
- package/lib/node/dlob/DLOB.d.ts.map +1 -1
- package/lib/node/dlob/DLOB.js +205 -142
- package/lib/node/dlob/DLOBNode.d.ts +5 -2
- package/lib/node/dlob/DLOBNode.d.ts.map +1 -1
- package/lib/node/dlob/DLOBNode.js +7 -0
- package/lib/node/dlob/DLOBSubscriber.d.ts +0 -2
- package/lib/node/dlob/DLOBSubscriber.d.ts.map +1 -1
- package/lib/node/dlob/DLOBSubscriber.js +39 -39
- package/lib/node/dlob/NodeList.d.ts.map +1 -1
- package/lib/node/dlob/NodeList.js +8 -7
- package/lib/node/dlob/orderBookLevels.d.ts.map +1 -1
- package/lib/node/dlob/orderBookLevels.js +24 -17
- package/lib/node/dlob/types.d.ts +0 -2
- package/lib/node/dlob/types.d.ts.map +1 -1
- package/lib/node/events/eventList.d.ts +3 -3
- package/lib/node/events/eventList.d.ts.map +1 -1
- package/lib/node/events/eventList.js +4 -1
- package/lib/node/events/eventSubscriber.d.ts +6 -3
- package/lib/node/events/eventSubscriber.d.ts.map +1 -1
- package/lib/node/events/eventSubscriber.js +75 -26
- package/lib/node/events/eventsServerLogProvider.d.ts +2 -2
- package/lib/node/events/eventsServerLogProvider.d.ts.map +1 -1
- package/lib/node/events/eventsServerLogProvider.js +17 -10
- package/lib/node/events/fetchLogs.d.ts +1 -1
- package/lib/node/events/fetchLogs.d.ts.map +1 -1
- package/lib/node/events/fetchLogs.js +4 -2
- package/lib/node/events/parse.d.ts.map +1 -1
- package/lib/node/events/parse.js +14 -14
- package/lib/node/events/pollingLogProvider.d.ts +2 -2
- package/lib/node/events/pollingLogProvider.d.ts.map +1 -1
- package/lib/node/events/pollingLogProvider.js +1 -0
- package/lib/node/events/txEventCache.d.ts +3 -3
- package/lib/node/events/txEventCache.d.ts.map +1 -1
- package/lib/node/events/txEventCache.js +6 -2
- package/lib/node/events/types.d.ts +3 -7
- package/lib/node/events/types.d.ts.map +1 -1
- package/lib/node/events/types.js +1 -3
- package/lib/node/events/webSocketLogProvider.d.ts +2 -2
- package/lib/node/events/webSocketLogProvider.d.ts.map +1 -1
- package/lib/node/events/webSocketLogProvider.js +5 -2
- package/lib/node/factory/bigNum.js +1 -1
- package/lib/{browser/idl/drift.d.ts → node/idl/velocity.d.ts} +2413 -2480
- package/lib/node/idl/velocity.d.ts.map +1 -0
- package/lib/node/idl/{drift.json → velocity.json} +2265 -2333
- package/lib/node/index.d.ts +1 -3
- package/lib/node/index.d.ts.map +1 -1
- package/lib/node/index.js +1 -4
- package/lib/node/jupiter/jupiterClient.d.ts +1 -1
- package/lib/node/jupiter/jupiterClient.d.ts.map +1 -1
- package/lib/node/jupiter/jupiterClient.js +18 -8
- package/lib/node/marginCalculation.d.ts.map +1 -1
- package/lib/node/marginCalculation.js +1 -0
- package/lib/node/math/amm.d.ts +31 -13
- package/lib/node/math/amm.d.ts.map +1 -1
- package/lib/node/math/amm.js +87 -31
- package/lib/node/math/auction.d.ts.map +1 -1
- package/lib/node/math/auction.js +16 -12
- package/lib/node/math/bankruptcy.js +1 -1
- package/lib/node/math/builder.d.ts +18 -1
- package/lib/node/math/builder.d.ts.map +1 -1
- package/lib/node/math/builder.js +32 -1
- package/lib/node/math/funding.d.ts.map +1 -1
- package/lib/node/math/funding.js +30 -30
- package/lib/node/math/insurance.d.ts +1 -1
- package/lib/node/math/insurance.d.ts.map +1 -1
- package/lib/node/math/insurance.js +4 -5
- package/lib/node/math/margin.d.ts +3 -11
- package/lib/node/math/margin.d.ts.map +1 -1
- package/lib/node/math/margin.js +10 -69
- package/lib/node/math/market.d.ts +4 -12
- package/lib/node/math/market.d.ts.map +1 -1
- package/lib/node/math/market.js +12 -46
- package/lib/node/math/oracles.d.ts +4 -7
- package/lib/node/math/oracles.d.ts.map +1 -1
- package/lib/node/math/oracles.js +24 -37
- package/lib/node/math/orders.d.ts +2 -7
- package/lib/node/math/orders.d.ts.map +1 -1
- package/lib/node/math/orders.js +9 -81
- package/lib/node/math/position.d.ts +1 -5
- package/lib/node/math/position.d.ts.map +1 -1
- package/lib/node/math/position.js +6 -11
- package/lib/node/math/repeg.d.ts +0 -1
- package/lib/node/math/repeg.d.ts.map +1 -1
- package/lib/node/math/repeg.js +1 -23
- package/lib/node/math/spotBalance.d.ts +4 -4
- package/lib/node/math/spotBalance.d.ts.map +1 -1
- package/lib/node/math/spotBalance.js +6 -6
- package/lib/node/math/spotMarket.d.ts +0 -6
- package/lib/node/math/spotMarket.d.ts.map +1 -1
- package/lib/node/math/spotMarket.js +1 -16
- package/lib/node/math/spotPosition.d.ts +4 -4
- package/lib/node/math/spotPosition.d.ts.map +1 -1
- package/lib/node/math/state.d.ts +0 -2
- package/lib/node/math/state.d.ts.map +1 -1
- package/lib/node/math/state.js +1 -9
- package/lib/node/math/superStake.d.ts +11 -63
- package/lib/node/math/superStake.d.ts.map +1 -1
- package/lib/node/math/superStake.js +29 -28
- package/lib/node/math/trade.d.ts +2 -2
- package/lib/node/math/trade.d.ts.map +1 -1
- package/lib/node/math/trade.js +7 -7
- package/lib/node/math/utils.d.ts +1 -1
- package/lib/node/math/utils.js +1 -1
- package/lib/node/memcmp.d.ts +0 -1
- package/lib/node/memcmp.d.ts.map +1 -1
- package/lib/node/memcmp.js +1 -10
- package/lib/node/oracles/oracleClientCache.d.ts +1 -1
- package/lib/node/oracles/prelaunchOracleClient.d.ts.map +1 -1
- package/lib/node/oracles/prelaunchOracleClient.js +3 -2
- package/lib/node/oracles/pythClient.d.ts.map +1 -1
- package/lib/node/oracles/pythClient.js +9 -3
- package/lib/node/oracles/pythLazerClient.d.ts.map +1 -1
- package/lib/node/oracles/pythLazerClient.js +5 -4
- package/lib/node/oracles/utils.d.ts +4 -0
- package/lib/node/oracles/utils.d.ts.map +1 -1
- package/lib/node/oracles/utils.js +9 -1
- package/lib/node/orderSubscriber/OrderSubscriber.d.ts +1 -3
- package/lib/node/orderSubscriber/OrderSubscriber.d.ts.map +1 -1
- package/lib/node/orderSubscriber/OrderSubscriber.js +16 -14
- package/lib/node/orderSubscriber/WebsocketSubscription.js +1 -1
- package/lib/node/orderSubscriber/grpcSubscription.js +2 -2
- package/lib/node/orderSubscriber/types.d.ts +0 -2
- package/lib/node/orderSubscriber/types.d.ts.map +1 -1
- package/lib/node/priorityFee/heliusPriorityFeeMethod.d.ts +1 -1
- package/lib/node/priorityFee/heliusPriorityFeeMethod.d.ts.map +1 -1
- package/lib/node/priorityFee/priorityFeeSubscriber.d.ts +2 -6
- package/lib/node/priorityFee/priorityFeeSubscriber.d.ts.map +1 -1
- package/lib/node/priorityFee/priorityFeeSubscriber.js +34 -18
- package/lib/node/priorityFee/priorityFeeSubscriberMap.d.ts +0 -4
- package/lib/node/priorityFee/priorityFeeSubscriberMap.d.ts.map +1 -1
- package/lib/node/priorityFee/priorityFeeSubscriberMap.js +3 -11
- package/lib/node/priorityFee/solanaPriorityFeeMethod.d.ts +1 -1
- package/lib/node/priorityFee/solanaPriorityFeeMethod.d.ts.map +1 -1
- package/lib/node/priorityFee/types.d.ts +3 -8
- package/lib/node/priorityFee/types.d.ts.map +1 -1
- package/lib/node/priorityFee/velocityPriorityFeeMethod.d.ts +0 -8
- package/lib/node/priorityFee/velocityPriorityFeeMethod.d.ts.map +1 -1
- package/lib/node/priorityFee/velocityPriorityFeeMethod.js +1 -3
- package/lib/node/pyth/pythLazerSubscriber.d.ts +1 -1
- package/lib/node/pyth/pythLazerSubscriber.js +1 -1
- package/lib/node/pyth/types.d.ts +0 -1
- package/lib/node/pyth/types.d.ts.map +1 -1
- package/lib/node/slot/SlotSubscriber.d.ts +1 -1
- package/lib/node/slot/SlotSubscriber.d.ts.map +1 -1
- package/lib/node/slot/SlotSubscriber.js +2 -1
- package/lib/node/slot/SlothashSubscriber.d.ts +3 -2
- package/lib/node/slot/SlothashSubscriber.d.ts.map +1 -1
- package/lib/node/slot/SlothashSubscriber.js +11 -4
- package/lib/node/swap/UnifiedSwapClient.js +1 -1
- package/lib/node/swift/grpcSignedMsgUserAccountSubscriber.d.ts +0 -3
- package/lib/node/swift/grpcSignedMsgUserAccountSubscriber.d.ts.map +1 -1
- package/lib/node/swift/grpcSignedMsgUserAccountSubscriber.js +5 -5
- package/lib/node/swift/signedMsgUserAccountSubscriber.d.ts +7 -7
- package/lib/node/swift/signedMsgUserAccountSubscriber.d.ts.map +1 -1
- package/lib/node/swift/signedMsgUserAccountSubscriber.js +14 -10
- package/lib/node/swift/swiftOrderSubscriber.d.ts +7 -6
- package/lib/node/swift/swiftOrderSubscriber.d.ts.map +1 -1
- package/lib/node/swift/swiftOrderSubscriber.js +15 -16
- package/lib/node/testClient.js +3 -2
- package/lib/node/tokenFaucet.d.ts.map +1 -1
- package/lib/node/tokenFaucet.js +16 -2
- package/lib/node/tx/baseTxSender.d.ts +4 -4
- package/lib/node/tx/baseTxSender.d.ts.map +1 -1
- package/lib/node/tx/baseTxSender.js +5 -4
- package/lib/node/tx/fastSingleTxSender.d.ts +3 -3
- package/lib/node/tx/fastSingleTxSender.d.ts.map +1 -1
- package/lib/node/tx/fastSingleTxSender.js +9 -5
- package/lib/node/tx/reportTransactionError.d.ts +2 -2
- package/lib/node/tx/reportTransactionError.d.ts.map +1 -1
- package/lib/node/tx/reportTransactionError.js +5 -1
- package/lib/node/tx/retryTxSender.d.ts +1 -1
- package/lib/node/tx/retryTxSender.d.ts.map +1 -1
- package/lib/node/tx/retryTxSender.js +4 -2
- package/lib/node/tx/txHandler.d.ts +9 -3
- package/lib/node/tx/txHandler.d.ts.map +1 -1
- package/lib/node/tx/txHandler.js +54 -40
- package/lib/node/tx/txParamProcessor.d.ts +4 -1
- package/lib/node/tx/txParamProcessor.d.ts.map +1 -1
- package/lib/node/tx/txParamProcessor.js +6 -0
- package/lib/node/tx/types.d.ts +1 -1
- package/lib/node/tx/types.d.ts.map +1 -1
- package/lib/node/tx/whileValidTxSender.d.ts +1 -6
- package/lib/node/tx/whileValidTxSender.d.ts.map +1 -1
- package/lib/node/tx/whileValidTxSender.js +35 -13
- package/lib/node/types.d.ts +100 -155
- package/lib/node/types.d.ts.map +1 -1
- package/lib/node/types.js +6 -2
- package/lib/node/user.d.ts +22 -10
- package/lib/node/user.d.ts.map +1 -1
- package/lib/node/user.js +174 -154
- package/lib/node/userConfig.d.ts +3 -2
- package/lib/node/userConfig.d.ts.map +1 -1
- package/lib/node/userMap/WebsocketSubscription.d.ts +1 -1
- package/lib/node/userMap/WebsocketSubscription.d.ts.map +1 -1
- package/lib/node/userMap/WebsocketSubscription.js +1 -1
- package/lib/node/userMap/grpcSubscription.d.ts +1 -1
- package/lib/node/userMap/grpcSubscription.d.ts.map +1 -1
- package/lib/node/userMap/grpcSubscription.js +1 -1
- package/lib/node/userMap/referrerMap.d.ts +0 -2
- package/lib/node/userMap/referrerMap.d.ts.map +1 -1
- package/lib/node/userMap/referrerMap.js +10 -7
- package/lib/node/userMap/revenueShareEscrowMap.d.ts +0 -2
- package/lib/node/userMap/revenueShareEscrowMap.d.ts.map +1 -1
- package/lib/node/userMap/revenueShareEscrowMap.js +4 -4
- package/lib/node/userMap/userMap.d.ts +3 -5
- package/lib/node/userMap/userMap.d.ts.map +1 -1
- package/lib/node/userMap/userMap.js +39 -30
- package/lib/node/userMap/userMapConfig.d.ts +3 -2
- package/lib/node/userMap/userMapConfig.d.ts.map +1 -1
- package/lib/node/userMap/userStatsMap.d.ts +1 -3
- package/lib/node/userMap/userStatsMap.d.ts.map +1 -1
- package/lib/node/userMap/userStatsMap.js +18 -17
- package/lib/node/userStats.d.ts +7 -4
- package/lib/node/userStats.d.ts.map +1 -1
- package/lib/node/userStats.js +28 -18
- package/lib/node/userStatsConfig.d.ts +3 -2
- package/lib/node/userStatsConfig.d.ts.map +1 -1
- package/lib/node/util/TransactionConfirmationManager.d.ts.map +1 -1
- package/lib/node/util/TransactionConfirmationManager.js +4 -2
- package/lib/node/util/chainClock.d.ts +1 -1
- package/lib/node/util/chainClock.d.ts.map +1 -1
- package/lib/node/util/computeUnits.d.ts +1 -1
- package/lib/node/util/computeUnits.d.ts.map +1 -1
- package/lib/node/util/computeUnits.js +6 -1
- package/lib/node/util/ed25519Utils.d.ts +1 -1
- package/lib/node/util/ed25519Utils.js +1 -1
- package/lib/node/velocityClient.d.ts +145 -72
- package/lib/node/velocityClient.d.ts.map +1 -1
- package/lib/node/velocityClient.js +653 -457
- package/lib/node/velocityClientConfig.d.ts +0 -8
- package/lib/node/velocityClientConfig.d.ts.map +1 -1
- package/package.json +10 -9
- package/scripts/deposit-isolated-positions.ts +2 -2
- package/scripts/find-flagged-users.ts +1 -1
- package/scripts/grpc-client-test-comparison.ts +4 -4
- package/scripts/grpc-multiuser-client-test-comparison.ts +2 -2
- package/scripts/single-grpc-client-test.ts +3 -3
- package/scripts/updateVersion.js +4 -4
- package/scripts/withdraw-isolated-positions.ts +2 -2
- package/src/accounts/basicUserAccountSubscriber.ts +7 -5
- package/src/accounts/basicUserStatsAccountSubscriber.ts +9 -5
- package/src/accounts/bulkAccountLoader.ts +20 -7
- package/src/accounts/grpcAccountSubscriber.ts +11 -3
- package/src/accounts/grpcMultiAccountSubscriber.ts +24 -9
- package/src/accounts/grpcMultiUserAccountSubscriber.ts +16 -12
- package/src/accounts/grpcProgramAccountSubscriber.ts +12 -4
- package/src/accounts/grpcVelocityClientAccountSubscriber.ts +17 -14
- package/src/accounts/grpcVelocityClientAccountSubscriberV2.ts +69 -49
- package/src/accounts/laserProgramAccountSubscriber.ts +4 -1
- package/src/accounts/oneShotUserAccountSubscriber.ts +5 -3
- package/src/accounts/oneShotUserStatsAccountSubscriber.ts +8 -3
- package/src/accounts/pollingInsuranceFundStakeAccountSubscriber.ts +11 -5
- package/src/accounts/pollingOracleAccountSubscriber.ts +17 -10
- package/src/accounts/pollingTokenAccountSubscriber.ts +17 -10
- package/src/accounts/pollingUserAccountSubscriber.ts +26 -20
- package/src/accounts/pollingUserStatsAccountSubscriber.ts +12 -10
- package/src/accounts/pollingVelocityClientAccountSubscriber.ts +80 -41
- package/src/accounts/types.ts +8 -13
- package/src/accounts/utils.ts +12 -2
- package/src/accounts/webSocketAccountSubscriber.ts +23 -10
- package/src/accounts/webSocketAccountSubscriberV2.ts +23 -8
- package/src/accounts/webSocketInsuranceFundStakeAccountSubscriber.ts +17 -2
- package/src/accounts/webSocketProgramAccountSubscriber.ts +29 -4
- package/src/accounts/webSocketProgramAccountSubscriberV2.ts +30 -4
- package/src/accounts/webSocketProgramAccountsSubscriberV2.ts +29 -4
- package/src/accounts/webSocketUserAccountSubscriber.ts +11 -2
- package/src/accounts/webSocketUserStatsAccountSubsriber.ts +15 -2
- package/src/accounts/webSocketVelocityClientAccountSubscriber.ts +79 -58
- package/src/accounts/webSocketVelocityClientAccountSubscriberV2.ts +77 -45
- package/src/accounts/websocketProgramUserAccountSubscriber.ts +1 -6
- package/src/addresses/marketAddresses.ts +3 -2
- package/src/addresses/pda.ts +3 -38
- package/src/adminClient.ts +285 -315
- package/src/auctionSubscriber/auctionSubscriber.ts +8 -11
- package/src/auctionSubscriber/auctionSubscriberGrpc.ts +13 -11
- package/src/auctionSubscriber/types.ts +3 -3
- package/src/bankrun/bankrunConnection.ts +83 -39
- package/src/blockhashSubscriber/BlockhashSubscriber.ts +5 -4
- package/src/clock/clockSubscriber.ts +10 -9
- package/src/config.ts +16 -70
- package/src/constants/index.ts +1 -2
- package/src/constants/numericConstants.ts +3 -3
- package/src/constituentMap/constituentMap.ts +10 -7
- package/src/constituentMap/pollingConstituentAccountSubscriber.ts +4 -2
- package/src/constituentMap/webSocketConstituentAccountSubscriber.ts +13 -4
- package/src/core/VelocityCore.ts +11 -20
- package/src/core/instructions/perpOrders.ts +14 -0
- package/src/core/instructions/withdraw.ts +2 -2
- package/src/core/remainingAccounts.ts +7 -7
- package/src/decode/user.ts +8 -1
- package/src/dlob/DLOB.ts +300 -176
- package/src/dlob/DLOBNode.ts +23 -3
- package/src/dlob/DLOBSubscriber.ts +53 -42
- package/src/dlob/NodeList.ts +8 -7
- package/src/dlob/orderBookLevels.ts +51 -25
- package/src/dlob/types.ts +0 -2
- package/src/events/eventList.ts +4 -1
- package/src/events/eventSubscriber.ts +108 -50
- package/src/events/eventsServerLogProvider.ts +24 -15
- package/src/events/fetchLogs.ts +3 -3
- package/src/events/parse.ts +14 -14
- package/src/events/pollingLogProvider.ts +2 -2
- package/src/events/txEventCache.ts +8 -2
- package/src/events/types.ts +4 -15
- package/src/events/webSocketLogProvider.ts +5 -3
- package/src/factory/bigNum.ts +2 -2
- package/src/idl/{drift.json → velocity.json} +2265 -2333
- package/src/idl/{drift.ts → velocity.ts} +2267 -2335
- package/src/index.ts +1 -6
- package/src/jupiter/jupiterClient.ts +30 -10
- package/src/margin/README.md +2 -2
- package/src/marginCalculation.ts +1 -0
- package/src/math/amm.ts +217 -40
- package/src/math/auction.ts +16 -12
- package/src/math/bankruptcy.ts +1 -1
- package/src/math/builder.ts +45 -1
- package/src/math/funding.ts +51 -47
- package/src/math/insurance.ts +6 -8
- package/src/math/margin.ts +12 -119
- package/src/math/market.ts +16 -98
- package/src/math/oracles.ts +29 -43
- package/src/math/orders.ts +13 -109
- package/src/math/position.ts +6 -12
- package/src/math/repeg.ts +0 -29
- package/src/math/spotBalance.ts +14 -10
- package/src/math/spotMarket.ts +2 -28
- package/src/math/spotPosition.ts +4 -4
- package/src/math/state.ts +0 -8
- package/src/math/superStake.ts +36 -85
- package/src/math/trade.ts +7 -3
- package/src/math/utils.ts +1 -1
- package/src/memcmp.ts +0 -9
- package/src/oracles/prelaunchOracleClient.ts +7 -2
- package/src/oracles/pythClient.ts +12 -3
- package/src/oracles/pythLazerClient.ts +10 -5
- package/src/oracles/utils.ts +15 -0
- package/src/orderSubscriber/OrderSubscriber.ts +12 -12
- package/src/orderSubscriber/WebsocketSubscription.ts +1 -1
- package/src/orderSubscriber/grpcSubscription.ts +2 -2
- package/src/orderSubscriber/types.ts +0 -2
- package/src/priorityFee/heliusPriorityFeeMethod.ts +1 -1
- package/src/priorityFee/priorityFeeSubscriber.ts +50 -21
- package/src/priorityFee/priorityFeeSubscriberMap.ts +2 -10
- package/src/priorityFee/solanaPriorityFeeMethod.ts +1 -1
- package/src/priorityFee/types.ts +3 -13
- package/src/priorityFee/velocityPriorityFeeMethod.ts +0 -12
- package/src/pyth/pythLazerSubscriber.ts +1 -1
- package/src/pyth/types.ts +0 -2
- package/src/slot/SlotSubscriber.ts +3 -3
- package/src/slot/SlothashSubscriber.ts +17 -6
- package/src/swap/UnifiedSwapClient.ts +1 -1
- package/src/swift/grpcSignedMsgUserAccountSubscriber.ts +5 -6
- package/src/swift/signedMsgUserAccountSubscriber.ts +18 -16
- package/src/swift/swiftOrderSubscriber.ts +17 -21
- package/src/testClient.ts +2 -2
- package/src/tokenFaucet.ts +22 -3
- package/src/tx/baseTxSender.ts +10 -10
- package/src/tx/fastSingleTxSender.ts +12 -8
- package/src/tx/reportTransactionError.ts +12 -7
- package/src/tx/retryTxSender.ts +6 -4
- package/src/tx/txHandler.ts +88 -43
- package/src/tx/txParamProcessor.ts +18 -3
- package/src/tx/types.ts +1 -1
- package/src/tx/whileValidTxSender.ts +51 -22
- package/src/types.ts +119 -173
- package/src/user.ts +208 -165
- package/src/userConfig.ts +1 -3
- package/src/userMap/WebsocketSubscription.ts +2 -2
- package/src/userMap/grpcSubscription.ts +2 -2
- package/src/userMap/referrerMap.ts +13 -13
- package/src/userMap/revenueShareEscrowMap.ts +6 -5
- package/src/userMap/userMap.ts +46 -32
- package/src/userMap/userMapConfig.ts +3 -3
- package/src/userMap/userStatsMap.ts +32 -23
- package/src/userStats.ts +22 -13
- package/src/userStatsConfig.ts +3 -3
- package/src/util/TransactionConfirmationManager.ts +10 -2
- package/src/util/chainClock.ts +1 -1
- package/src/util/computeUnits.ts +7 -3
- package/src/util/ed25519Utils.ts +1 -1
- package/src/velocityClient.ts +867 -600
- package/src/velocityClientConfig.ts +0 -10
- package/tests/{DriftCore → VelocityCore}/decode.test.ts +1 -1
- package/tests/{DriftCore → VelocityCore}/fill_trigger.test.ts +1 -1
- package/tests/{DriftCore → VelocityCore}/instructions.test.ts +1 -1
- package/tests/{DriftCore → VelocityCore}/pdas.test.ts +4 -2
- package/tests/amm/test.ts +138 -0
- package/tests/ci/verifyConstants.ts +24 -27
- package/tests/decode/test.ts +2 -2
- package/tests/dlob/helpers.ts +11 -10
- package/tests/events/parseLogsForCuUsage.ts +15 -15
- package/tests/user/helpers.ts +9 -9
- package/tests/user/test.ts +13 -10
- package/tsconfig.json +1 -0
- package/lib/browser/constants/insuranceFund.d.ts +0 -5
- package/lib/browser/constants/insuranceFund.js +0 -9
- package/lib/browser/tx/forwardOnlyTxSender.d.ts +0 -37
- package/lib/browser/tx/forwardOnlyTxSender.js +0 -92
- package/lib/browser/util/deprecatedAlias.d.ts +0 -26
- package/lib/browser/util/deprecatedAlias.js +0 -10
- package/lib/browser/util/tps.d.ts +0 -2
- package/lib/browser/util/tps.js +0 -16
- package/lib/node/constants/insuranceFund.d.ts +0 -6
- package/lib/node/constants/insuranceFund.d.ts.map +0 -1
- package/lib/node/constants/insuranceFund.js +0 -9
- package/lib/node/idl/drift.d.ts.map +0 -1
- package/lib/node/tx/forwardOnlyTxSender.d.ts +0 -38
- package/lib/node/tx/forwardOnlyTxSender.d.ts.map +0 -1
- package/lib/node/tx/forwardOnlyTxSender.js +0 -92
- package/lib/node/util/deprecatedAlias.d.ts +0 -27
- package/lib/node/util/deprecatedAlias.d.ts.map +0 -1
- package/lib/node/util/deprecatedAlias.js +0 -10
- package/lib/node/util/tps.d.ts +0 -3
- package/lib/node/util/tps.d.ts.map +0 -1
- package/lib/node/util/tps.js +0 -16
- package/src/constants/insuranceFund.ts +0 -8
- package/src/tx/forwardOnlyTxSender.ts +0 -145
- package/src/util/deprecatedAlias.ts +0 -21
- package/src/util/tps.ts +0 -27
- /package/lib/browser/idl/{drift.js → velocity.js} +0 -0
- /package/lib/node/idl/{drift.js → velocity.js} +0 -0
- /package/tests/{DriftCore → VelocityCore}/perp_orders.test.ts +0 -0
- /package/tests/{DriftCore → VelocityCore}/remainingAccounts.test.ts +0 -0
- /package/tests/{DriftCore → VelocityCore}/settlement_liquidation.test.ts +0 -0
package/src/math/superStake.ts
CHANGED
|
@@ -43,17 +43,14 @@ export async function fetchBSolMetrics() {
|
|
|
43
43
|
}
|
|
44
44
|
|
|
45
45
|
export async function fetchBSolVelocityEmissions() {
|
|
46
|
-
return await fetch('https://stake.solblaze.org/api/v1/
|
|
46
|
+
return await fetch('https://stake.solblaze.org/api/v1/velocity_emissions');
|
|
47
47
|
}
|
|
48
48
|
|
|
49
|
-
/** @deprecated Use `fetchBSolVelocityEmissions` instead. `fetchBSolDriftEmissions` will be removed in a future major. */
|
|
50
|
-
export const fetchBSolDriftEmissions = fetchBSolVelocityEmissions;
|
|
51
|
-
|
|
52
49
|
export async function findBestSuperStakeIxs({
|
|
53
50
|
marketIndex,
|
|
54
51
|
amount,
|
|
55
52
|
jupiterClient,
|
|
56
|
-
|
|
53
|
+
velocityClient,
|
|
57
54
|
userAccountPublicKey,
|
|
58
55
|
price,
|
|
59
56
|
forceMarinade,
|
|
@@ -63,7 +60,7 @@ export async function findBestSuperStakeIxs({
|
|
|
63
60
|
marketIndex: number;
|
|
64
61
|
amount: BN;
|
|
65
62
|
jupiterClient: JupiterClient;
|
|
66
|
-
|
|
63
|
+
velocityClient: VelocityClient;
|
|
67
64
|
price?: number;
|
|
68
65
|
userAccountPublicKey?: PublicKey;
|
|
69
66
|
forceMarinade?: boolean;
|
|
@@ -79,7 +76,7 @@ export async function findBestSuperStakeIxs({
|
|
|
79
76
|
return findBestMSolSuperStakeIxs({
|
|
80
77
|
amount,
|
|
81
78
|
jupiterClient,
|
|
82
|
-
|
|
79
|
+
velocityClient,
|
|
83
80
|
userAccountPublicKey,
|
|
84
81
|
price,
|
|
85
82
|
forceMarinade,
|
|
@@ -90,7 +87,7 @@ export async function findBestSuperStakeIxs({
|
|
|
90
87
|
return findBestJitoSolSuperStakeIxs({
|
|
91
88
|
amount,
|
|
92
89
|
jupiterClient,
|
|
93
|
-
|
|
90
|
+
velocityClient,
|
|
94
91
|
userAccountPublicKey,
|
|
95
92
|
onlyDirectRoutes,
|
|
96
93
|
jupiterQuote,
|
|
@@ -98,10 +95,10 @@ export async function findBestSuperStakeIxs({
|
|
|
98
95
|
} else if (marketIndex === 8) {
|
|
99
96
|
return findBestLstSuperStakeIxs({
|
|
100
97
|
amount,
|
|
101
|
-
lstMint:
|
|
98
|
+
lstMint: velocityClient.getSpotMarketAccountOrThrow(8).mint,
|
|
102
99
|
lstMarketIndex: 8,
|
|
103
100
|
jupiterClient,
|
|
104
|
-
|
|
101
|
+
velocityClient,
|
|
105
102
|
userAccountPublicKey,
|
|
106
103
|
onlyDirectRoutes,
|
|
107
104
|
jupiterQuote,
|
|
@@ -114,7 +111,7 @@ export async function findBestSuperStakeIxs({
|
|
|
114
111
|
export async function findBestMSolSuperStakeIxs({
|
|
115
112
|
amount,
|
|
116
113
|
jupiterClient,
|
|
117
|
-
|
|
114
|
+
velocityClient,
|
|
118
115
|
userAccountPublicKey,
|
|
119
116
|
price,
|
|
120
117
|
forceMarinade,
|
|
@@ -123,7 +120,7 @@ export async function findBestMSolSuperStakeIxs({
|
|
|
123
120
|
}: {
|
|
124
121
|
amount: BN;
|
|
125
122
|
jupiterClient: JupiterClient;
|
|
126
|
-
|
|
123
|
+
velocityClient: VelocityClient;
|
|
127
124
|
price?: number;
|
|
128
125
|
userAccountPublicKey?: PublicKey;
|
|
129
126
|
forceMarinade?: boolean;
|
|
@@ -136,14 +133,14 @@ export async function findBestMSolSuperStakeIxs({
|
|
|
136
133
|
price: number;
|
|
137
134
|
}> {
|
|
138
135
|
if (!price) {
|
|
139
|
-
const marinadeProgram = getMarinadeFinanceProgram(
|
|
136
|
+
const marinadeProgram = getMarinadeFinanceProgram(velocityClient.provider);
|
|
140
137
|
price = await getMarinadeMSolPrice(marinadeProgram);
|
|
141
138
|
}
|
|
142
139
|
|
|
143
|
-
const solSpotMarketAccount =
|
|
144
|
-
const mSolSpotMarketAccount =
|
|
140
|
+
const solSpotMarketAccount = velocityClient.getSpotMarketAccountOrThrow(1);
|
|
141
|
+
const mSolSpotMarketAccount = velocityClient.getSpotMarketAccountOrThrow(2);
|
|
145
142
|
|
|
146
|
-
let jupiterPrice: number;
|
|
143
|
+
let jupiterPrice: number | undefined;
|
|
147
144
|
let quote = jupiterQuote;
|
|
148
145
|
if (!jupiterQuote) {
|
|
149
146
|
try {
|
|
@@ -155,7 +152,7 @@ export async function findBestMSolSuperStakeIxs({
|
|
|
155
152
|
onlyDirectRoutes,
|
|
156
153
|
});
|
|
157
154
|
|
|
158
|
-
jupiterPrice = +
|
|
155
|
+
jupiterPrice = +fetchedQuote.outAmount / +fetchedQuote.inAmount;
|
|
159
156
|
|
|
160
157
|
quote = fetchedQuote;
|
|
161
158
|
} catch (e) {
|
|
@@ -164,7 +161,7 @@ export async function findBestMSolSuperStakeIxs({
|
|
|
164
161
|
}
|
|
165
162
|
|
|
166
163
|
if (!jupiterPrice || price <= jupiterPrice || forceMarinade) {
|
|
167
|
-
const ixs = await
|
|
164
|
+
const ixs = await velocityClient.getStakeForMSOLIx({
|
|
168
165
|
amount,
|
|
169
166
|
userAccountPublicKey,
|
|
170
167
|
});
|
|
@@ -175,7 +172,7 @@ export async function findBestMSolSuperStakeIxs({
|
|
|
175
172
|
price: price,
|
|
176
173
|
};
|
|
177
174
|
} else {
|
|
178
|
-
const { ixs, lookupTables } = await
|
|
175
|
+
const { ixs, lookupTables } = await velocityClient.getJupiterSwapIxV6({
|
|
179
176
|
inMarketIndex: 1,
|
|
180
177
|
outMarketIndex: 2,
|
|
181
178
|
jupiterClient,
|
|
@@ -196,14 +193,14 @@ export async function findBestMSolSuperStakeIxs({
|
|
|
196
193
|
export async function findBestJitoSolSuperStakeIxs({
|
|
197
194
|
amount,
|
|
198
195
|
jupiterClient,
|
|
199
|
-
|
|
196
|
+
velocityClient,
|
|
200
197
|
userAccountPublicKey,
|
|
201
198
|
onlyDirectRoutes,
|
|
202
199
|
jupiterQuote,
|
|
203
200
|
}: {
|
|
204
201
|
amount: BN;
|
|
205
202
|
jupiterClient: JupiterClient;
|
|
206
|
-
|
|
203
|
+
velocityClient: VelocityClient;
|
|
207
204
|
userAccountPublicKey?: PublicKey;
|
|
208
205
|
onlyDirectRoutes?: boolean;
|
|
209
206
|
jupiterQuote?: QuoteResponse;
|
|
@@ -216,10 +213,10 @@ export async function findBestJitoSolSuperStakeIxs({
|
|
|
216
213
|
return await findBestLstSuperStakeIxs({
|
|
217
214
|
amount,
|
|
218
215
|
jupiterClient,
|
|
219
|
-
|
|
216
|
+
velocityClient,
|
|
220
217
|
userAccountPublicKey,
|
|
221
218
|
onlyDirectRoutes,
|
|
222
|
-
lstMint:
|
|
219
|
+
lstMint: velocityClient.getSpotMarketAccountOrThrow(6).mint,
|
|
223
220
|
lstMarketIndex: 6,
|
|
224
221
|
jupiterQuote,
|
|
225
222
|
});
|
|
@@ -233,7 +230,7 @@ export async function findBestJitoSolSuperStakeIxs({
|
|
|
233
230
|
export async function findBestLstSuperStakeIxs({
|
|
234
231
|
amount,
|
|
235
232
|
jupiterClient,
|
|
236
|
-
|
|
233
|
+
velocityClient,
|
|
237
234
|
userAccountPublicKey,
|
|
238
235
|
onlyDirectRoutes,
|
|
239
236
|
lstMarketIndex,
|
|
@@ -243,7 +240,7 @@ export async function findBestLstSuperStakeIxs({
|
|
|
243
240
|
lstMint: PublicKey;
|
|
244
241
|
lstMarketIndex: number;
|
|
245
242
|
jupiterClient: JupiterClient;
|
|
246
|
-
|
|
243
|
+
velocityClient: VelocityClient;
|
|
247
244
|
userAccountPublicKey?: PublicKey;
|
|
248
245
|
onlyDirectRoutes?: boolean;
|
|
249
246
|
jupiterQuote?: QuoteResponse;
|
|
@@ -252,7 +249,7 @@ export async function findBestLstSuperStakeIxs({
|
|
|
252
249
|
lookupTables: AddressLookupTableAccount[];
|
|
253
250
|
method: 'jupiter' | 'marinade';
|
|
254
251
|
}> {
|
|
255
|
-
const { ixs, lookupTables } = await
|
|
252
|
+
const { ixs, lookupTables } = await velocityClient.getJupiterSwapIxV6({
|
|
256
253
|
inMarketIndex: 1,
|
|
257
254
|
outMarketIndex: lstMarketIndex,
|
|
258
255
|
jupiterClient,
|
|
@@ -329,63 +326,6 @@ export async function fetchJitoSolMetrics() {
|
|
|
329
326
|
return data;
|
|
330
327
|
}
|
|
331
328
|
|
|
332
|
-
export type MSOL_METRICS_ENDPOINT_RESPONSE = {
|
|
333
|
-
total_active_balance: number;
|
|
334
|
-
available_reserve_balance: number;
|
|
335
|
-
emergency_cooling_down: number;
|
|
336
|
-
tvl_sol: number;
|
|
337
|
-
msol_directed_stake_sol: number;
|
|
338
|
-
msol_directed_stake_msol: number;
|
|
339
|
-
mnde_total_supply: number;
|
|
340
|
-
mnde_circulating_supply: number;
|
|
341
|
-
validators_count: number;
|
|
342
|
-
stake_accounts: number;
|
|
343
|
-
staking_sol_cap: number;
|
|
344
|
-
m_sol_price: number;
|
|
345
|
-
avg_staking_apy: number;
|
|
346
|
-
msol_price_apy_14d: number;
|
|
347
|
-
msol_price_apy_30d: number;
|
|
348
|
-
msol_price_apy_90d: number;
|
|
349
|
-
msol_price_apy_365d: number;
|
|
350
|
-
reserve_pda: number;
|
|
351
|
-
treasury_m_sol_amount: number;
|
|
352
|
-
m_sol_mint_supply: number;
|
|
353
|
-
m_sol_supply_state: number;
|
|
354
|
-
liq_pool_sol: number;
|
|
355
|
-
liq_pool_m_sol: number;
|
|
356
|
-
liq_pool_value: number;
|
|
357
|
-
liq_pool_token_supply: number;
|
|
358
|
-
liq_pool_token_price: number;
|
|
359
|
-
liq_pool_target: number;
|
|
360
|
-
liq_pool_min_fee: number;
|
|
361
|
-
liq_pool_max_fee: number;
|
|
362
|
-
liq_pool_current_fee: number;
|
|
363
|
-
liq_pool_treasury_cut: number;
|
|
364
|
-
liq_pool_cap: number;
|
|
365
|
-
total_cooling_down: number;
|
|
366
|
-
last_stake_delta_epoch: number;
|
|
367
|
-
circulating_ticket_count: number;
|
|
368
|
-
circulating_ticket_balance: number;
|
|
369
|
-
reward_fee_bp: number;
|
|
370
|
-
lido_staking: number;
|
|
371
|
-
lido_st_sol_price: number;
|
|
372
|
-
lido_stsol_price_apy_14d: number;
|
|
373
|
-
lido_stsol_price_apy_30d: number;
|
|
374
|
-
lido_stsol_price_apy_90d: number;
|
|
375
|
-
lido_stsol_price_apy_365d: number;
|
|
376
|
-
stake_delta: number;
|
|
377
|
-
bot_balance: number;
|
|
378
|
-
treasury_farm_claim_mnde_balance: number;
|
|
379
|
-
last_3_epochs_avg_duration_hs: number;
|
|
380
|
-
mnde_votes_validators: number;
|
|
381
|
-
};
|
|
382
|
-
|
|
383
|
-
export const fetchMSolMetrics = async () => {
|
|
384
|
-
const res = await fetch('https://api2.marinade.finance/metrics_json');
|
|
385
|
-
const data: MSOL_METRICS_ENDPOINT_RESPONSE = await res.json();
|
|
386
|
-
return data;
|
|
387
|
-
};
|
|
388
|
-
|
|
389
329
|
const getJitoSolHistoricalPriceMap = async (timestamps: number[]) => {
|
|
390
330
|
try {
|
|
391
331
|
const data = await fetchJitoSolMetrics();
|
|
@@ -439,7 +379,7 @@ export async function calculateSolEarned({
|
|
|
439
379
|
|
|
440
380
|
let lstRatios = new Map<number, number>();
|
|
441
381
|
|
|
442
|
-
const getMsolPrice = async (timestamp) => {
|
|
382
|
+
const getMsolPrice = async (timestamp: number) => {
|
|
443
383
|
const date = new Date(timestamp * 1000); // Convert Unix timestamp to milliseconds
|
|
444
384
|
const swaggerApiDateTime = date.toISOString(); // Format date as swagger API date-time
|
|
445
385
|
const url = `https://api.marinade.finance/msol/price_sol?time=${swaggerApiDateTime}`;
|
|
@@ -468,7 +408,10 @@ export async function calculateSolEarned({
|
|
|
468
408
|
if (marketIndex === 2) {
|
|
469
409
|
await Promise.all(timestamps.map(getMsolPrice));
|
|
470
410
|
} else if (marketIndex === 6) {
|
|
471
|
-
|
|
411
|
+
const jitoSolRatios = await getJitoSolHistoricalPriceMap(timestamps);
|
|
412
|
+
if (jitoSolRatios) {
|
|
413
|
+
lstRatios = jitoSolRatios;
|
|
414
|
+
}
|
|
472
415
|
} else if (marketIndex === 8) {
|
|
473
416
|
await getBSolPrice(timestamps);
|
|
474
417
|
}
|
|
@@ -487,6 +430,11 @@ export async function calculateSolEarned({
|
|
|
487
430
|
record.marketIndex === 8
|
|
488
431
|
) {
|
|
489
432
|
const lstRatio = lstRatios.get(record.ts.toNumber());
|
|
433
|
+
if (lstRatio === undefined) {
|
|
434
|
+
throw new Error(
|
|
435
|
+
`Missing LST/SOL ratio for deposit record at timestamp ${record.ts.toNumber()}`
|
|
436
|
+
);
|
|
437
|
+
}
|
|
490
438
|
const lstRatioBN = new BN(lstRatio * LAMPORTS_PER_SOL);
|
|
491
439
|
|
|
492
440
|
const solAmount = record.amount.mul(lstRatioBN).div(LAMPORTS_PRECISION);
|
|
@@ -500,6 +448,9 @@ export async function calculateSolEarned({
|
|
|
500
448
|
|
|
501
449
|
const currentLstTokenAmount = await user.getTokenAmount(marketIndex);
|
|
502
450
|
const currentLstRatio = lstRatios.get(now);
|
|
451
|
+
if (currentLstRatio === undefined) {
|
|
452
|
+
throw new Error(`Missing current LST/SOL ratio for timestamp ${now}`);
|
|
453
|
+
}
|
|
503
454
|
const currentLstRatioBN = new BN(currentLstRatio * LAMPORTS_PER_SOL);
|
|
504
455
|
|
|
505
456
|
solEarned = solEarned.add(
|
package/src/math/trade.ts
CHANGED
|
@@ -113,6 +113,7 @@ export function calculateTradeSlippage(
|
|
|
113
113
|
const { baseAssetReserve, quoteAssetReserve, sqrtK, newPeg } =
|
|
114
114
|
calculateUpdatedAMMSpreadReserves(
|
|
115
115
|
market.amm,
|
|
116
|
+
market.marketStats,
|
|
116
117
|
direction,
|
|
117
118
|
mmOraclePriceData,
|
|
118
119
|
latestSlot
|
|
@@ -184,6 +185,7 @@ export function calculateTradeAcquiredAmounts(
|
|
|
184
185
|
const { baseAssetReserve, quoteAssetReserve, sqrtK, newPeg } =
|
|
185
186
|
calculateUpdatedAMMSpreadReserves(
|
|
186
187
|
market.amm,
|
|
188
|
+
market.marketStats,
|
|
187
189
|
direction,
|
|
188
190
|
mmOraclePriceData,
|
|
189
191
|
latestSlot
|
|
@@ -274,6 +276,7 @@ export function calculateTargetPriceTrade(
|
|
|
274
276
|
const { baseAssetReserve, quoteAssetReserve, newPeg } =
|
|
275
277
|
calculateUpdatedAMMSpreadReserves(
|
|
276
278
|
market.amm,
|
|
279
|
+
market.marketStats,
|
|
277
280
|
direction,
|
|
278
281
|
mmOraclePriceData,
|
|
279
282
|
latestSlot
|
|
@@ -370,7 +373,7 @@ export function calculateTargetPriceTrade(
|
|
|
370
373
|
|
|
371
374
|
assert(tp1.sub(tp2).lte(originalDiff), 'Target Price Calculation incorrect');
|
|
372
375
|
assert(
|
|
373
|
-
tp2.lte(tp1) || tp2.sub(tp1).abs()
|
|
376
|
+
tp2.lte(tp1) || tp2.sub(tp1).abs().ltn(100000),
|
|
374
377
|
'Target Price Calculation incorrect' +
|
|
375
378
|
tp2.toString() +
|
|
376
379
|
'>=' +
|
|
@@ -436,6 +439,7 @@ export function calculateEstimatedPerpEntryPrice(
|
|
|
436
439
|
const { baseAssetReserve, quoteAssetReserve, sqrtK, newPeg } =
|
|
437
440
|
calculateUpdatedAMMSpreadReserves(
|
|
438
441
|
market.amm,
|
|
442
|
+
market.marketStats,
|
|
439
443
|
direction,
|
|
440
444
|
mmOraclePriceData,
|
|
441
445
|
new BN(slot)
|
|
@@ -451,7 +455,7 @@ export function calculateEstimatedPerpEntryPrice(
|
|
|
451
455
|
market.amm.baseAssetReserve,
|
|
452
456
|
market.amm.minBaseAssetReserve,
|
|
453
457
|
market.amm.maxBaseAssetReserve,
|
|
454
|
-
market.
|
|
458
|
+
market.orderStepSize
|
|
455
459
|
);
|
|
456
460
|
|
|
457
461
|
let ammLiquidity: BN;
|
|
@@ -485,7 +489,7 @@ export function calculateEstimatedPerpEntryPrice(
|
|
|
485
489
|
|
|
486
490
|
let limitOrder = limitOrders.next().value;
|
|
487
491
|
if (limitOrder) {
|
|
488
|
-
const limitOrderPrice = limitOrder.
|
|
492
|
+
const limitOrderPrice = limitOrder.getPriceOrThrow(mmOraclePriceData, slot);
|
|
489
493
|
bestPrice = takerIsLong
|
|
490
494
|
? BN.min(limitOrderPrice, bestPrice)
|
|
491
495
|
: BN.max(limitOrderPrice, bestPrice);
|
package/src/math/utils.ts
CHANGED
|
@@ -104,7 +104,7 @@ export function isBNSafe(number: number): boolean {
|
|
|
104
104
|
/**
|
|
105
105
|
* Converts a number to BN makes sure the number is safe to convert to BN (that it does not overflow number after multiplying by precision)
|
|
106
106
|
* @param number the number to convert to BN
|
|
107
|
-
* @param precision the BN precision to use (i.e. QUOTE_PRECISION and BASE_PRECISION from
|
|
107
|
+
* @param precision the BN precision to use (i.e. QUOTE_PRECISION and BASE_PRECISION from velocity sdk)
|
|
108
108
|
*/
|
|
109
109
|
export function numberToSafeBN(number: number, precision: BN): BN {
|
|
110
110
|
// check if number has decimals
|
package/src/memcmp.ts
CHANGED
|
@@ -48,15 +48,6 @@ export function getUserWithAuctionFilter(): MemcmpFilter {
|
|
|
48
48
|
};
|
|
49
49
|
}
|
|
50
50
|
|
|
51
|
-
export function getUserThatHasBeenLP(): MemcmpFilter {
|
|
52
|
-
return {
|
|
53
|
-
memcmp: {
|
|
54
|
-
offset: 4267,
|
|
55
|
-
bytes: bs58.encode(Uint8Array.from([99])),
|
|
56
|
-
},
|
|
57
|
-
};
|
|
58
|
-
}
|
|
59
|
-
|
|
60
51
|
export function getUserWithName(name: string): MemcmpFilter {
|
|
61
52
|
return {
|
|
62
53
|
memcmp: {
|
|
@@ -2,6 +2,7 @@ import { Connection, PublicKey } from '@solana/web3.js';
|
|
|
2
2
|
import { OracleClient, OraclePriceData } from './types';
|
|
3
3
|
import { VelocityProgram } from '../config';
|
|
4
4
|
import { PrelaunchOracle } from '../types';
|
|
5
|
+
import { getOracleAccountDataOrThrow } from './utils';
|
|
5
6
|
|
|
6
7
|
export class PrelaunchOracleClient implements OracleClient {
|
|
7
8
|
private connection: Connection;
|
|
@@ -15,8 +16,12 @@ export class PrelaunchOracleClient implements OracleClient {
|
|
|
15
16
|
public async getOraclePriceData(
|
|
16
17
|
pricePublicKey: PublicKey
|
|
17
18
|
): Promise<OraclePriceData> {
|
|
18
|
-
const
|
|
19
|
-
|
|
19
|
+
const data = await getOracleAccountDataOrThrow(
|
|
20
|
+
this.connection,
|
|
21
|
+
pricePublicKey,
|
|
22
|
+
'Prelaunch oracle'
|
|
23
|
+
);
|
|
24
|
+
return this.getOraclePriceDataFromBuffer(data);
|
|
20
25
|
}
|
|
21
26
|
|
|
22
27
|
public getOraclePriceDataFromBuffer(buffer: Buffer): OraclePriceData {
|
|
@@ -8,6 +8,7 @@ import {
|
|
|
8
8
|
QUOTE_PRECISION,
|
|
9
9
|
TEN,
|
|
10
10
|
} from '../constants/numericConstants';
|
|
11
|
+
import { getOracleAccountDataOrThrow } from './utils';
|
|
11
12
|
|
|
12
13
|
export class PythClient implements OracleClient {
|
|
13
14
|
private connection: Connection;
|
|
@@ -27,14 +28,22 @@ export class PythClient implements OracleClient {
|
|
|
27
28
|
public async getOraclePriceData(
|
|
28
29
|
pricePublicKey: PublicKey
|
|
29
30
|
): Promise<OraclePriceData> {
|
|
30
|
-
const
|
|
31
|
-
|
|
31
|
+
const data = await getOracleAccountDataOrThrow(
|
|
32
|
+
this.connection,
|
|
33
|
+
pricePublicKey,
|
|
34
|
+
'Pyth oracle'
|
|
35
|
+
);
|
|
36
|
+
return this.getOraclePriceDataFromBuffer(data);
|
|
32
37
|
}
|
|
33
38
|
|
|
34
39
|
public getOraclePriceDataFromBuffer(buffer: Buffer): OraclePriceData {
|
|
35
40
|
const priceData = parsePriceData(buffer);
|
|
41
|
+
// `confidence` is absent on uninitialized/invalid price accounts. Base passed it
|
|
42
|
+
// straight into convertPythPrice, where `undefined * 10**exponent` is `NaN` and
|
|
43
|
+
// `new BN(NaN)` coerces to 0 — so base already yielded a zero-confidence price.
|
|
44
|
+
// `?? 0` makes that explicit and type-checks, preserving the same result.
|
|
36
45
|
const confidence = convertPythPrice(
|
|
37
|
-
priceData.confidence,
|
|
46
|
+
priceData.confidence ?? 0,
|
|
38
47
|
priceData.exponent,
|
|
39
48
|
this.multiple
|
|
40
49
|
);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Connection, Keypair, PublicKey } from '@solana/web3.js';
|
|
2
2
|
import { OracleClient, OraclePriceData } from './types';
|
|
3
3
|
import { AnchorProvider, BN, Program } from '../isomorphic/anchor';
|
|
4
|
-
import {
|
|
4
|
+
import { Velocity } from '../idl/velocity';
|
|
5
5
|
import { VelocityProgram } from '../config';
|
|
6
6
|
import {
|
|
7
7
|
ONE,
|
|
@@ -10,7 +10,8 @@ import {
|
|
|
10
10
|
TEN,
|
|
11
11
|
} from '../constants/numericConstants';
|
|
12
12
|
import { Wallet } from '../wallet';
|
|
13
|
-
import
|
|
13
|
+
import velocityIDL from '../idl/velocity.json';
|
|
14
|
+
import { getOracleAccountDataOrThrow } from './utils';
|
|
14
15
|
|
|
15
16
|
export class PythLazerClient implements OracleClient {
|
|
16
17
|
private connection: Connection;
|
|
@@ -35,7 +36,7 @@ export class PythLazerClient implements OracleClient {
|
|
|
35
36
|
commitment: connection.commitment,
|
|
36
37
|
}
|
|
37
38
|
);
|
|
38
|
-
this.program = new Program<
|
|
39
|
+
this.program = new Program<Velocity>(velocityIDL as Velocity, provider);
|
|
39
40
|
this.decodeFunc = (
|
|
40
41
|
this.program.account as any
|
|
41
42
|
).pythLazerOracle.coder.accounts.decodeUnchecked.bind(
|
|
@@ -46,8 +47,12 @@ export class PythLazerClient implements OracleClient {
|
|
|
46
47
|
public async getOraclePriceData(
|
|
47
48
|
pricePublicKey: PublicKey
|
|
48
49
|
): Promise<OraclePriceData> {
|
|
49
|
-
const
|
|
50
|
-
|
|
50
|
+
const data = await getOracleAccountDataOrThrow(
|
|
51
|
+
this.connection,
|
|
52
|
+
pricePublicKey,
|
|
53
|
+
'Pyth lazer oracle'
|
|
54
|
+
);
|
|
55
|
+
return this.getOraclePriceDataFromBuffer(data);
|
|
51
56
|
}
|
|
52
57
|
|
|
53
58
|
public getOraclePriceDataFromBuffer(buffer: Buffer): OraclePriceData {
|
package/src/oracles/utils.ts
CHANGED
|
@@ -1,6 +1,21 @@
|
|
|
1
|
+
import { Connection, PublicKey } from '@solana/web3.js';
|
|
1
2
|
import { BN } from '../isomorphic/anchor';
|
|
2
3
|
import { OraclePriceData } from './types';
|
|
3
4
|
|
|
5
|
+
export async function getOracleAccountDataOrThrow(
|
|
6
|
+
connection: Connection,
|
|
7
|
+
pricePublicKey: PublicKey,
|
|
8
|
+
oracleName: string
|
|
9
|
+
): Promise<Buffer> {
|
|
10
|
+
const accountInfo = await connection.getAccountInfo(pricePublicKey);
|
|
11
|
+
if (!accountInfo) {
|
|
12
|
+
throw new Error(
|
|
13
|
+
`${oracleName} account not found: ${pricePublicKey.toBase58()}`
|
|
14
|
+
);
|
|
15
|
+
}
|
|
16
|
+
return accountInfo.data;
|
|
17
|
+
}
|
|
18
|
+
|
|
4
19
|
export function getOracleConfidenceFromMMOracleData(
|
|
5
20
|
mmOraclePrice: BN,
|
|
6
21
|
oraclePriceData: OraclePriceData
|
|
@@ -21,30 +21,24 @@ import { ZERO } from '../constants/numericConstants';
|
|
|
21
21
|
|
|
22
22
|
export class OrderSubscriber {
|
|
23
23
|
velocityClient: VelocityClient;
|
|
24
|
-
/** @deprecated Use `velocityClient` instead. `driftClient` will be removed in a future major. */
|
|
25
|
-
public get driftClient(): VelocityClient {
|
|
26
|
-
return this.velocityClient;
|
|
27
|
-
}
|
|
28
24
|
usersAccounts = new Map<string, { slot: number; userAccount: UserAccount }>();
|
|
29
25
|
subscription: PollingSubscription | WebsocketSubscription | grpcSubscription;
|
|
30
26
|
commitment: Commitment;
|
|
31
27
|
eventEmitter: StrictEventEmitter<EventEmitter, OrderSubscriberEvents>;
|
|
32
28
|
|
|
33
29
|
fetchPromise?: Promise<void>;
|
|
34
|
-
fetchPromiseResolver: () => void;
|
|
30
|
+
private fetchPromiseResolver: () => void = () => {};
|
|
35
31
|
|
|
36
|
-
mostRecentSlot
|
|
32
|
+
mostRecentSlot = 0;
|
|
37
33
|
decodeFn: (name: string, data: Buffer) => UserAccount;
|
|
38
34
|
decodeData?: boolean;
|
|
39
35
|
|
|
40
36
|
fetchAllNonIdleUsers?: boolean;
|
|
41
37
|
|
|
42
38
|
constructor(config: OrderSubscriberConfig) {
|
|
43
|
-
const velocityClient = config.velocityClient
|
|
39
|
+
const velocityClient = config.velocityClient;
|
|
44
40
|
if (!velocityClient) {
|
|
45
|
-
throw new Error(
|
|
46
|
-
'OrderSubscriber: velocityClient (or deprecated driftClient) must be provided'
|
|
47
|
-
);
|
|
41
|
+
throw new Error('OrderSubscriber: velocityClient must be provided');
|
|
48
42
|
}
|
|
49
43
|
this.velocityClient = velocityClient;
|
|
50
44
|
this.commitment = config.subscriptionConfig.commitment || 'processed';
|
|
@@ -282,7 +276,7 @@ export class OrderSubscriber {
|
|
|
282
276
|
userAccountPublicKey,
|
|
283
277
|
this.commitment
|
|
284
278
|
);
|
|
285
|
-
if (accountInfo) {
|
|
279
|
+
if (accountInfo.value) {
|
|
286
280
|
this.tryUpdateUserAccount(
|
|
287
281
|
userAccountPublicKey.toString(),
|
|
288
282
|
'buffer',
|
|
@@ -296,7 +290,13 @@ export class OrderSubscriber {
|
|
|
296
290
|
if (!this.usersAccounts.has(key)) {
|
|
297
291
|
await this.addPubkey(new PublicKey(key));
|
|
298
292
|
}
|
|
299
|
-
|
|
293
|
+
const slotAndUserAccount = this.usersAccounts.get(key);
|
|
294
|
+
if (!slotAndUserAccount) {
|
|
295
|
+
throw new Error(
|
|
296
|
+
`OrderSubscriber: user account ${key} not found after addPubkey`
|
|
297
|
+
);
|
|
298
|
+
}
|
|
299
|
+
return slotAndUserAccount.userAccount;
|
|
300
300
|
}
|
|
301
301
|
|
|
302
302
|
public async unsubscribe(): Promise<void> {
|
|
@@ -48,7 +48,7 @@ export class WebsocketSubscription {
|
|
|
48
48
|
this.subscriber = new WebSocketProgramAccountSubscriber<UserAccount>(
|
|
49
49
|
'OrderSubscriber',
|
|
50
50
|
'user',
|
|
51
|
-
this.orderSubscriber.
|
|
51
|
+
this.orderSubscriber.velocityClient.program,
|
|
52
52
|
this.orderSubscriber.decodeFn,
|
|
53
53
|
{
|
|
54
54
|
filters: [getUserFilter(), getNonIdleUserFilter()],
|
|
@@ -56,7 +56,7 @@ export class grpcSubscription {
|
|
|
56
56
|
this.grpcConfigs,
|
|
57
57
|
'OrderSubscriber',
|
|
58
58
|
'user',
|
|
59
|
-
this.orderSubscriber.
|
|
59
|
+
this.orderSubscriber.velocityClient.program,
|
|
60
60
|
this.orderSubscriber.decodeFn,
|
|
61
61
|
{
|
|
62
62
|
filters: [getUserFilter(), getNonIdleUserFilter()],
|
|
@@ -68,7 +68,7 @@ export class grpcSubscription {
|
|
|
68
68
|
this.grpcConfigs,
|
|
69
69
|
'OrderSubscriber',
|
|
70
70
|
'user',
|
|
71
|
-
this.orderSubscriber.
|
|
71
|
+
this.orderSubscriber.velocityClient.program,
|
|
72
72
|
this.orderSubscriber.decodeFn,
|
|
73
73
|
{
|
|
74
74
|
filters: [getUserFilter(), getNonIdleUserFilter()],
|
|
@@ -5,8 +5,6 @@ import { GrpcConfigs } from '../accounts/types';
|
|
|
5
5
|
|
|
6
6
|
export type OrderSubscriberConfig = {
|
|
7
7
|
velocityClient?: VelocityClient;
|
|
8
|
-
/** @deprecated Use `velocityClient` instead. `driftClient` will be removed in a future major. */
|
|
9
|
-
driftClient?: VelocityClient;
|
|
10
8
|
subscriptionConfig:
|
|
11
9
|
| {
|
|
12
10
|
type: 'polling';
|
|
@@ -28,7 +28,7 @@ export async function fetchHeliusPriorityFee(
|
|
|
28
28
|
heliusRpcUrl: string,
|
|
29
29
|
lookbackDistance: number,
|
|
30
30
|
addresses: string[]
|
|
31
|
-
): Promise<HeliusPriorityFeeResponse> {
|
|
31
|
+
): Promise<HeliusPriorityFeeResponse | undefined> {
|
|
32
32
|
try {
|
|
33
33
|
const response = await fetch(heliusRpcUrl, {
|
|
34
34
|
method: 'POST',
|