@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/oracles.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
|
-
AMM,
|
|
3
2
|
HistoricalOracleData,
|
|
3
|
+
MarketStats,
|
|
4
4
|
OracleGuardRails,
|
|
5
5
|
OracleSource,
|
|
6
6
|
OracleValidity,
|
|
@@ -64,14 +64,14 @@ export function getOracleValidity(
|
|
|
64
64
|
const isNonPositive = oraclePriceData.price.lte(ZERO);
|
|
65
65
|
const isTooVolatile = BN.max(
|
|
66
66
|
oraclePriceData.price,
|
|
67
|
-
market.
|
|
67
|
+
market.marketStats.historicalOracleData.lastOraclePriceTwap
|
|
68
68
|
)
|
|
69
69
|
.div(
|
|
70
70
|
BN.max(
|
|
71
71
|
ONE,
|
|
72
72
|
BN.min(
|
|
73
73
|
oraclePriceData.price,
|
|
74
|
-
market.
|
|
74
|
+
market.marketStats.historicalOracleData.lastOraclePriceTwap
|
|
75
75
|
)
|
|
76
76
|
)
|
|
77
77
|
)
|
|
@@ -89,16 +89,16 @@ export function getOracleValidity(
|
|
|
89
89
|
const oracleDelay = slot.sub(oraclePriceData.slot).sub(oracleStalenessBuffer);
|
|
90
90
|
|
|
91
91
|
let isStaleForAmmImmediate = true;
|
|
92
|
-
if (market.
|
|
92
|
+
if (market.oracleSlotDelayOverride != 0) {
|
|
93
93
|
isStaleForAmmImmediate = oracleDelay.gt(
|
|
94
|
-
BN.max(new BN(market.
|
|
94
|
+
BN.max(new BN(market.oracleSlotDelayOverride), ZERO)
|
|
95
95
|
);
|
|
96
96
|
}
|
|
97
97
|
|
|
98
98
|
let isStaleForAmmLowRisk = false;
|
|
99
|
-
if (market.
|
|
99
|
+
if (market.oracleLowRiskSlotDelayOverride != 0) {
|
|
100
100
|
isStaleForAmmLowRisk = oracleDelay.gt(
|
|
101
|
-
BN.max(new BN(market.
|
|
101
|
+
BN.max(new BN(market.oracleLowRiskSlotDelayOverride), ZERO)
|
|
102
102
|
);
|
|
103
103
|
} else {
|
|
104
104
|
isStaleForAmmLowRisk = oracleDelay.gt(
|
|
@@ -109,7 +109,7 @@ export function getOracleValidity(
|
|
|
109
109
|
let isStaleForMargin = oracleDelay.gt(
|
|
110
110
|
new BN(oracleGuardRails.validity.slotsBeforeStaleForMargin)
|
|
111
111
|
);
|
|
112
|
-
if (isVariant(market.
|
|
112
|
+
if (isVariant(market.oracleSource, 'pythLazerStableCoin')) {
|
|
113
113
|
isStaleForMargin = oracleDelay.gt(
|
|
114
114
|
new BN(oracleGuardRails.validity.slotsBeforeStaleForMargin).muln(3)
|
|
115
115
|
);
|
|
@@ -142,13 +142,13 @@ export function isOracleValid(
|
|
|
142
142
|
): boolean {
|
|
143
143
|
// checks if oracle is valid for an AMM only fill
|
|
144
144
|
|
|
145
|
-
const
|
|
145
|
+
const stats = market.marketStats;
|
|
146
146
|
const isOraclePriceNonPositive = oraclePriceData.price.lte(ZERO);
|
|
147
147
|
const isOraclePriceTooVolatile =
|
|
148
148
|
oraclePriceData.price
|
|
149
|
-
.div(BN.max(ONE,
|
|
149
|
+
.div(BN.max(ONE, stats.historicalOracleData.lastOraclePriceTwap))
|
|
150
150
|
.gt(oracleGuardRails.validity.tooVolatileRatio) ||
|
|
151
|
-
|
|
151
|
+
stats.historicalOracleData.lastOraclePriceTwap
|
|
152
152
|
.div(BN.max(ONE, oraclePriceData.price))
|
|
153
153
|
.gt(oracleGuardRails.validity.tooVolatileRatio);
|
|
154
154
|
|
|
@@ -177,14 +177,14 @@ export function isOracleValid(
|
|
|
177
177
|
}
|
|
178
178
|
|
|
179
179
|
export function isOracleTooDivergent(
|
|
180
|
-
|
|
180
|
+
marketStats: MarketStats,
|
|
181
181
|
oraclePriceData: OraclePriceData,
|
|
182
182
|
oracleGuardRails: OracleGuardRails
|
|
183
183
|
): boolean {
|
|
184
184
|
const oracleSpreadPct = oraclePriceData.price
|
|
185
|
-
.sub(
|
|
185
|
+
.sub(marketStats.historicalOracleData.lastOraclePriceTwap5Min)
|
|
186
186
|
.mul(PERCENTAGE_PRECISION)
|
|
187
|
-
.div(
|
|
187
|
+
.div(marketStats.historicalOracleData.lastOraclePriceTwap5Min);
|
|
188
188
|
const maxDivergence = BN.max(
|
|
189
189
|
oracleGuardRails.priceDivergence.oracleTwap5MinPercentDivergence,
|
|
190
190
|
PERCENTAGE_PRECISION.div(new BN(2))
|
|
@@ -230,25 +230,28 @@ export function calculateLiveOracleTwap(
|
|
|
230
230
|
}
|
|
231
231
|
|
|
232
232
|
export function calculateLiveOracleStd(
|
|
233
|
-
|
|
233
|
+
marketStats: MarketStats,
|
|
234
234
|
oraclePriceData: OraclePriceData,
|
|
235
235
|
now: BN
|
|
236
236
|
): BN {
|
|
237
237
|
const sinceLastUpdate = BN.max(
|
|
238
238
|
ONE,
|
|
239
|
-
now.sub(
|
|
239
|
+
now.sub(marketStats.historicalOracleData.lastOraclePriceTwapTs)
|
|
240
|
+
);
|
|
241
|
+
const sinceStart = BN.max(
|
|
242
|
+
ZERO,
|
|
243
|
+
marketStats.fundingPeriod.sub(sinceLastUpdate)
|
|
240
244
|
);
|
|
241
|
-
const sinceStart = BN.max(ZERO, amm.fundingPeriod.sub(sinceLastUpdate));
|
|
242
245
|
|
|
243
246
|
const liveOracleTwap = calculateLiveOracleTwap(
|
|
244
|
-
|
|
247
|
+
marketStats.historicalOracleData,
|
|
245
248
|
oraclePriceData,
|
|
246
249
|
now,
|
|
247
|
-
|
|
250
|
+
marketStats.fundingPeriod
|
|
248
251
|
);
|
|
249
252
|
|
|
250
253
|
const liveOracleTwap5MIN = calculateLiveOracleTwap(
|
|
251
|
-
|
|
254
|
+
marketStats.historicalOracleData,
|
|
252
255
|
oraclePriceData,
|
|
253
256
|
now,
|
|
254
257
|
FIVE_MINUTE
|
|
@@ -260,14 +263,14 @@ export function calculateLiveOracleStd(
|
|
|
260
263
|
);
|
|
261
264
|
|
|
262
265
|
const oracleStd = priceDeltaVsTwap.add(
|
|
263
|
-
|
|
266
|
+
marketStats.oracleStd.mul(sinceStart).div(sinceStart.add(sinceLastUpdate))
|
|
264
267
|
);
|
|
265
268
|
|
|
266
269
|
return oracleStd;
|
|
267
270
|
}
|
|
268
271
|
|
|
269
272
|
export function getNewOracleConfPct(
|
|
270
|
-
|
|
273
|
+
marketStats: MarketStats,
|
|
271
274
|
oraclePriceData: OraclePriceData,
|
|
272
275
|
reservePrice: BN,
|
|
273
276
|
now: BN
|
|
@@ -276,16 +279,16 @@ export function getNewOracleConfPct(
|
|
|
276
279
|
|
|
277
280
|
const sinceLastUpdate = BN.max(
|
|
278
281
|
ZERO,
|
|
279
|
-
now.sub(
|
|
282
|
+
now.sub(marketStats.historicalOracleData.lastOraclePriceTwapTs)
|
|
280
283
|
);
|
|
281
|
-
let lowerBoundConfPct =
|
|
284
|
+
let lowerBoundConfPct = marketStats.lastOracleConfPct;
|
|
282
285
|
if (sinceLastUpdate.gt(ZERO)) {
|
|
283
286
|
const lowerBoundConfDivisor = BN.max(
|
|
284
287
|
new BN(21).sub(sinceLastUpdate),
|
|
285
288
|
new BN(5)
|
|
286
289
|
);
|
|
287
|
-
lowerBoundConfPct =
|
|
288
|
-
|
|
290
|
+
lowerBoundConfPct = marketStats.lastOracleConfPct.sub(
|
|
291
|
+
marketStats.lastOracleConfPct.div(lowerBoundConfDivisor)
|
|
289
292
|
);
|
|
290
293
|
}
|
|
291
294
|
const confIntervalPct = confInterval
|
|
@@ -297,23 +300,6 @@ export function getNewOracleConfPct(
|
|
|
297
300
|
return confIntervalPctResult;
|
|
298
301
|
}
|
|
299
302
|
|
|
300
|
-
export function trimVaaSignatures(vaa: Buffer, n = 3): Buffer {
|
|
301
|
-
const currentNumSignatures = vaa[5];
|
|
302
|
-
if (n > currentNumSignatures) {
|
|
303
|
-
throw new Error(
|
|
304
|
-
"Resulting VAA can't have more signatures than the original VAA"
|
|
305
|
-
);
|
|
306
|
-
}
|
|
307
|
-
|
|
308
|
-
const trimmedVaa = Buffer.concat([
|
|
309
|
-
vaa.subarray(0, 6 + n * 66),
|
|
310
|
-
vaa.subarray(6 + currentNumSignatures * 66),
|
|
311
|
-
]);
|
|
312
|
-
|
|
313
|
-
trimmedVaa[5] = n;
|
|
314
|
-
return trimmedVaa;
|
|
315
|
-
}
|
|
316
|
-
|
|
317
303
|
export function getMultipleBetweenOracleSources(
|
|
318
304
|
firstOracleSource: OracleSource,
|
|
319
305
|
secondOracleSource: OracleSource
|
package/src/math/orders.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { User } from '../user';
|
|
2
1
|
import {
|
|
3
2
|
isOneOfVariant,
|
|
4
3
|
isVariant,
|
|
5
4
|
PerpMarketAccount,
|
|
6
5
|
AMM,
|
|
6
|
+
MarketStats,
|
|
7
7
|
Order,
|
|
8
8
|
PositionDirection,
|
|
9
9
|
MarketTypeStr,
|
|
@@ -12,7 +12,6 @@ import {
|
|
|
12
12
|
} from '../types';
|
|
13
13
|
import {
|
|
14
14
|
ZERO,
|
|
15
|
-
TWO,
|
|
16
15
|
ONE,
|
|
17
16
|
SPOT_MARKET_IMF_PRECISION,
|
|
18
17
|
MARGIN_PRECISION,
|
|
@@ -31,105 +30,6 @@ import {
|
|
|
31
30
|
} from './amm';
|
|
32
31
|
import { calculateSizePremiumLiabilityWeight } from './margin';
|
|
33
32
|
|
|
34
|
-
export function isOrderRiskIncreasing(user: User, order: Order): boolean {
|
|
35
|
-
if (!isVariant(order.status, 'open')) {
|
|
36
|
-
return false;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
const position =
|
|
40
|
-
user.getPerpPosition(order.marketIndex) ||
|
|
41
|
-
user.getEmptyPosition(order.marketIndex);
|
|
42
|
-
|
|
43
|
-
// if no position exists, it's risk increasing
|
|
44
|
-
if (position.baseAssetAmount.eq(ZERO)) {
|
|
45
|
-
return true;
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
// if position is long and order is long
|
|
49
|
-
if (position.baseAssetAmount.gt(ZERO) && isVariant(order.direction, 'long')) {
|
|
50
|
-
return true;
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
// if position is short and order is short
|
|
54
|
-
if (
|
|
55
|
-
position.baseAssetAmount.lt(ZERO) &&
|
|
56
|
-
isVariant(order.direction, 'short')
|
|
57
|
-
) {
|
|
58
|
-
return true;
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
const baseAssetAmountToFill = order.baseAssetAmount.sub(
|
|
62
|
-
order.baseAssetAmountFilled
|
|
63
|
-
);
|
|
64
|
-
// if order will flip position
|
|
65
|
-
if (baseAssetAmountToFill.gt(position.baseAssetAmount.abs().mul(TWO))) {
|
|
66
|
-
return true;
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
return false;
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
export function isOrderRiskIncreasingInSameDirection(
|
|
73
|
-
user: User,
|
|
74
|
-
order: Order
|
|
75
|
-
): boolean {
|
|
76
|
-
if (!isVariant(order.status, 'open')) {
|
|
77
|
-
return false;
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
const position =
|
|
81
|
-
user.getPerpPosition(order.marketIndex) ||
|
|
82
|
-
user.getEmptyPosition(order.marketIndex);
|
|
83
|
-
|
|
84
|
-
// if no position exists, it's risk increasing
|
|
85
|
-
if (position.baseAssetAmount.eq(ZERO)) {
|
|
86
|
-
return true;
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
// if position is long and order is long
|
|
90
|
-
if (position.baseAssetAmount.gt(ZERO) && isVariant(order.direction, 'long')) {
|
|
91
|
-
return true;
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
// if position is short and order is short
|
|
95
|
-
if (
|
|
96
|
-
position.baseAssetAmount.lt(ZERO) &&
|
|
97
|
-
isVariant(order.direction, 'short')
|
|
98
|
-
) {
|
|
99
|
-
return true;
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
return false;
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
export function isOrderReduceOnly(user: User, order: Order): boolean {
|
|
106
|
-
if (!isVariant(order.status, 'open')) {
|
|
107
|
-
return false;
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
const position =
|
|
111
|
-
user.getPerpPosition(order.marketIndex) ||
|
|
112
|
-
user.getEmptyPosition(order.marketIndex);
|
|
113
|
-
|
|
114
|
-
// if position is long and order is long
|
|
115
|
-
if (
|
|
116
|
-
position.baseAssetAmount.gte(ZERO) &&
|
|
117
|
-
isVariant(order.direction, 'long')
|
|
118
|
-
) {
|
|
119
|
-
return false;
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
// if position is short and order is short
|
|
123
|
-
if (
|
|
124
|
-
position.baseAssetAmount.lte(ZERO) &&
|
|
125
|
-
isVariant(order.direction, 'short')
|
|
126
|
-
) {
|
|
127
|
-
return false;
|
|
128
|
-
}
|
|
129
|
-
|
|
130
|
-
return true;
|
|
131
|
-
}
|
|
132
|
-
|
|
133
33
|
export function standardizeBaseAssetAmount(
|
|
134
34
|
baseAssetAmount: BN,
|
|
135
35
|
stepSize: BN
|
|
@@ -256,6 +156,9 @@ export function calculateBaseAssetAmountForAmmToFulfill(
|
|
|
256
156
|
baseAssetAmount = calculateBaseAssetAmountToFillUpToLimitPrice(
|
|
257
157
|
order,
|
|
258
158
|
updatedAMM,
|
|
159
|
+
market.marketStats,
|
|
160
|
+
market.orderStepSize,
|
|
161
|
+
market.orderTickSize,
|
|
259
162
|
limitPrice,
|
|
260
163
|
mmOraclePriceData
|
|
261
164
|
);
|
|
@@ -265,6 +168,7 @@ export function calculateBaseAssetAmountForAmmToFulfill(
|
|
|
265
168
|
|
|
266
169
|
const maxBaseAssetAmount = calculateMaxBaseAssetAmountFillable(
|
|
267
170
|
updatedAMM,
|
|
171
|
+
market.orderStepSize,
|
|
268
172
|
order.direction
|
|
269
173
|
);
|
|
270
174
|
|
|
@@ -274,15 +178,19 @@ export function calculateBaseAssetAmountForAmmToFulfill(
|
|
|
274
178
|
export function calculateBaseAssetAmountToFillUpToLimitPrice(
|
|
275
179
|
order: Order,
|
|
276
180
|
amm: AMM,
|
|
181
|
+
marketStats: MarketStats,
|
|
182
|
+
orderStepSize: BN,
|
|
183
|
+
orderTickSize: BN,
|
|
277
184
|
limitPrice: BN,
|
|
278
185
|
mmOraclePriceData: MMOraclePriceData
|
|
279
186
|
): BN {
|
|
280
187
|
const adjustedLimitPrice = isVariant(order.direction, 'long')
|
|
281
|
-
? limitPrice.sub(
|
|
282
|
-
: limitPrice.add(
|
|
188
|
+
? limitPrice.sub(orderTickSize)
|
|
189
|
+
: limitPrice.add(orderTickSize);
|
|
283
190
|
|
|
284
191
|
const [maxAmountToTrade, direction] = calculateMaxBaseAssetAmountToTrade(
|
|
285
192
|
amm,
|
|
193
|
+
marketStats,
|
|
286
194
|
adjustedLimitPrice,
|
|
287
195
|
order.direction,
|
|
288
196
|
mmOraclePriceData
|
|
@@ -290,7 +198,7 @@ export function calculateBaseAssetAmountToFillUpToLimitPrice(
|
|
|
290
198
|
|
|
291
199
|
const baseAssetAmount = standardizeBaseAssetAmount(
|
|
292
200
|
maxAmountToTrade,
|
|
293
|
-
|
|
201
|
+
orderStepSize
|
|
294
202
|
);
|
|
295
203
|
|
|
296
204
|
// Check that directions are the same
|
|
@@ -368,10 +276,6 @@ export function isRestingLimitOrder(order: Order, slot: number): boolean {
|
|
|
368
276
|
return order.postOnly || isAuctionComplete(order, slot);
|
|
369
277
|
}
|
|
370
278
|
|
|
371
|
-
export function isTakingOrder(order: Order, slot: number): boolean {
|
|
372
|
-
return isMarketOrder(order) || !isRestingLimitOrder(order, slot);
|
|
373
|
-
}
|
|
374
|
-
|
|
375
279
|
const FLAG_IS_SIGNED_MSG = 0x01;
|
|
376
280
|
export function isSignedMsgOrder(order: Order): boolean {
|
|
377
281
|
return (order.bitFlags & FLAG_IS_SIGNED_MSG) !== 0;
|
|
@@ -461,7 +365,7 @@ export function maxSizeForTargetLiabilityWeightBN(
|
|
|
461
365
|
}
|
|
462
366
|
|
|
463
367
|
// cap at max OI
|
|
464
|
-
const maxOpenInterest = market.
|
|
368
|
+
const maxOpenInterest = market.maxOpenInterest;
|
|
465
369
|
if (lo.gt(maxOpenInterest)) {
|
|
466
370
|
return maxOpenInterest;
|
|
467
371
|
}
|
package/src/math/position.ts
CHANGED
|
@@ -53,6 +53,7 @@ export function calculateBaseAssetValue(
|
|
|
53
53
|
const { baseAssetReserve, quoteAssetReserve, sqrtK, newPeg } =
|
|
54
54
|
calculateUpdatedAMMSpreadReserves(
|
|
55
55
|
market.amm,
|
|
56
|
+
market.marketStats,
|
|
56
57
|
directionToClose,
|
|
57
58
|
mmOraclePriceData,
|
|
58
59
|
latestSlot
|
|
@@ -90,6 +91,9 @@ export function calculateBaseAssetValue(
|
|
|
90
91
|
.mul(prepegAmm.pegMultiplier)
|
|
91
92
|
.div(AMM_TIMES_PEG_TO_QUOTE_PRECISION_RATIO)
|
|
92
93
|
.add(ONE);
|
|
94
|
+
|
|
95
|
+
default:
|
|
96
|
+
throw new Error('Invalid position direction to close');
|
|
93
97
|
}
|
|
94
98
|
}
|
|
95
99
|
|
|
@@ -213,9 +217,9 @@ export function calculateUnsettledFundingPnl(
|
|
|
213
217
|
|
|
214
218
|
let ammCumulativeFundingRate: BN;
|
|
215
219
|
if (perpPosition.baseAssetAmount.gt(ZERO)) {
|
|
216
|
-
ammCumulativeFundingRate = market.
|
|
220
|
+
ammCumulativeFundingRate = market.cumulativeFundingRateLong;
|
|
217
221
|
} else {
|
|
218
|
-
ammCumulativeFundingRate = market.
|
|
222
|
+
ammCumulativeFundingRate = market.cumulativeFundingRateShort;
|
|
219
223
|
}
|
|
220
224
|
|
|
221
225
|
const perPositionFundingRate = ammCumulativeFundingRate
|
|
@@ -228,16 +232,6 @@ export function calculateUnsettledFundingPnl(
|
|
|
228
232
|
return perPositionFundingRate;
|
|
229
233
|
}
|
|
230
234
|
|
|
231
|
-
/**
|
|
232
|
-
* @deprecated use calculateUnsettledFundingPnl or calculateFeesAndFundingPnl instead
|
|
233
|
-
*/
|
|
234
|
-
export function calculatePositionFundingPNL(
|
|
235
|
-
market: PerpMarketAccount,
|
|
236
|
-
perpPosition: PerpPosition
|
|
237
|
-
): BN {
|
|
238
|
-
return calculateUnsettledFundingPnl(market, perpPosition);
|
|
239
|
-
}
|
|
240
|
-
|
|
241
235
|
export function positionIsAvailable(position: PerpPosition): boolean {
|
|
242
236
|
return (
|
|
243
237
|
position.baseAssetAmount.eq(ZERO) &&
|
package/src/math/repeg.ts
CHANGED
|
@@ -148,35 +148,6 @@ export function calculateBudgetedKBN(
|
|
|
148
148
|
return [numerator, denominator];
|
|
149
149
|
}
|
|
150
150
|
|
|
151
|
-
export function calculateBudgetedK(amm: AMM, cost: BN): [BN, BN] {
|
|
152
|
-
// wolframalpha.com
|
|
153
|
-
// (1/(x+d) - p/(x*p+d))*y*d*Q = C solve for p
|
|
154
|
-
// p = (d(y*d*Q - C(x+d))) / (C*x(x+d) + y*d*d*Q)
|
|
155
|
-
|
|
156
|
-
// numer
|
|
157
|
-
// = y*d*d*Q - Cxd - Cdd
|
|
158
|
-
// = y/x*Q*d*d - Cd - Cd/x
|
|
159
|
-
// = mark - C/d - C/(x)
|
|
160
|
-
// = mark/C - 1/d - 1/x
|
|
161
|
-
|
|
162
|
-
// denom
|
|
163
|
-
// = C*x*x + C*x*d + y*d*d*Q
|
|
164
|
-
// = x/d**2 + 1 / d + mark/C
|
|
165
|
-
|
|
166
|
-
// todo: assumes k = x * y
|
|
167
|
-
// otherwise use: (y(1-p) + (kp^2/(x*p+d)) - k/(x+d)) * Q = C solve for p
|
|
168
|
-
|
|
169
|
-
const x = amm.baseAssetReserve;
|
|
170
|
-
const y = amm.quoteAssetReserve;
|
|
171
|
-
|
|
172
|
-
const d = amm.baseAssetAmountWithAmm;
|
|
173
|
-
const Q = amm.pegMultiplier;
|
|
174
|
-
|
|
175
|
-
const [numerator, denominator] = calculateBudgetedKBN(x, y, cost, Q, d);
|
|
176
|
-
|
|
177
|
-
return [numerator, denominator];
|
|
178
|
-
}
|
|
179
|
-
|
|
180
151
|
export function calculateBudgetedPeg(
|
|
181
152
|
amm: AMM,
|
|
182
153
|
budget: BN,
|
package/src/math/spotBalance.ts
CHANGED
|
@@ -153,7 +153,7 @@ export function calculateAssetWeight(
|
|
|
153
153
|
balanceAmount: BN,
|
|
154
154
|
oraclePrice: BN,
|
|
155
155
|
spotMarket: SpotMarketAccount,
|
|
156
|
-
marginCategory: MarginCategory
|
|
156
|
+
marginCategory: MarginCategory | undefined
|
|
157
157
|
): BN {
|
|
158
158
|
const sizePrecision = TEN.pow(new BN(spotMarket.decimals));
|
|
159
159
|
let sizeInAmmReservePrecision;
|
|
@@ -221,7 +221,7 @@ export function calculateScaledInitialAssetWeight(
|
|
|
221
221
|
export function calculateLiabilityWeight(
|
|
222
222
|
size: BN,
|
|
223
223
|
spotMarket: SpotMarketAccount,
|
|
224
|
-
marginCategory: MarginCategory
|
|
224
|
+
marginCategory: MarginCategory | undefined
|
|
225
225
|
): BN {
|
|
226
226
|
const sizePrecision = TEN.pow(new BN(spotMarket.decimals));
|
|
227
227
|
let sizeInAmmReservePrecision;
|
|
@@ -380,10 +380,10 @@ export function calculateSpotMarketBorrowCapacity(
|
|
|
380
380
|
export function calculateInterestRate(
|
|
381
381
|
bank: SpotMarketAccount,
|
|
382
382
|
delta = ZERO,
|
|
383
|
-
currentUtilization
|
|
383
|
+
currentUtilization?: BN
|
|
384
384
|
): BN {
|
|
385
385
|
// todo: ensure both a delta and current util aren't pass?
|
|
386
|
-
const utilization = currentUtilization
|
|
386
|
+
const utilization = currentUtilization ?? calculateUtilization(bank, delta);
|
|
387
387
|
|
|
388
388
|
const optimalUtil = new BN(bank.optimalUtilization);
|
|
389
389
|
const optimalRate = new BN(bank.optimalBorrowRate);
|
|
@@ -442,15 +442,19 @@ export function calculateInterestRate(
|
|
|
442
442
|
export function calculateDepositRate(
|
|
443
443
|
bank: SpotMarketAccount,
|
|
444
444
|
delta = ZERO,
|
|
445
|
-
currentUtilization
|
|
445
|
+
currentUtilization?: BN
|
|
446
446
|
): BN {
|
|
447
447
|
// positive delta => adding to deposit
|
|
448
448
|
// negative delta => adding to borrow
|
|
449
449
|
|
|
450
|
-
const utilization = currentUtilization
|
|
450
|
+
const utilization = currentUtilization ?? calculateUtilization(bank, delta);
|
|
451
451
|
const borrowRate = calculateBorrowRate(bank, delta, utilization);
|
|
452
452
|
const depositRate = borrowRate
|
|
453
|
-
.mul(
|
|
453
|
+
.mul(
|
|
454
|
+
PERCENTAGE_PRECISION.sub(
|
|
455
|
+
new BN(bank.insuranceFund.ifFeeFactor + bank.protocolFeeFactor)
|
|
456
|
+
)
|
|
457
|
+
)
|
|
454
458
|
.mul(utilization)
|
|
455
459
|
.div(SPOT_MARKET_UTILIZATION_PRECISION)
|
|
456
460
|
.div(PERCENTAGE_PRECISION);
|
|
@@ -460,7 +464,7 @@ export function calculateDepositRate(
|
|
|
460
464
|
export function calculateBorrowRate(
|
|
461
465
|
bank: SpotMarketAccount,
|
|
462
466
|
delta = ZERO,
|
|
463
|
-
currentUtilization
|
|
467
|
+
currentUtilization?: BN
|
|
464
468
|
): BN {
|
|
465
469
|
return calculateInterestRate(bank, delta, currentUtilization);
|
|
466
470
|
}
|
|
@@ -549,8 +553,8 @@ export function calculateWithdrawLimit(
|
|
|
549
553
|
withdrawLimit: BN;
|
|
550
554
|
minDepositAmount: BN;
|
|
551
555
|
maxBorrowAmount: BN;
|
|
552
|
-
currentDepositAmount;
|
|
553
|
-
currentBorrowAmount;
|
|
556
|
+
currentDepositAmount: BN;
|
|
557
|
+
currentBorrowAmount: BN;
|
|
554
558
|
} {
|
|
555
559
|
const marketDepositTokenAmount = getTokenAmount(
|
|
556
560
|
spotMarket.depositBalance,
|
package/src/math/spotMarket.ts
CHANGED
|
@@ -5,12 +5,8 @@ import {
|
|
|
5
5
|
SpotBalanceType,
|
|
6
6
|
SpotMarketAccount,
|
|
7
7
|
} from '../types';
|
|
8
|
-
import {
|
|
9
|
-
|
|
10
|
-
calculateLiabilityWeight,
|
|
11
|
-
getTokenAmount,
|
|
12
|
-
} from './spotBalance';
|
|
13
|
-
import { MARGIN_PRECISION, ZERO } from '../constants/numericConstants';
|
|
8
|
+
import { calculateAssetWeight, calculateLiabilityWeight } from './spotBalance';
|
|
9
|
+
import { MARGIN_PRECISION } from '../constants/numericConstants';
|
|
14
10
|
import { numberToSafeBN } from './utils';
|
|
15
11
|
|
|
16
12
|
export function castNumberToSpotPrecision(
|
|
@@ -58,25 +54,3 @@ export function calculateSpotMarketMarginRatio(
|
|
|
58
54
|
|
|
59
55
|
return marginRatio;
|
|
60
56
|
}
|
|
61
|
-
|
|
62
|
-
/**
|
|
63
|
-
* Returns the maximum remaining deposit that can be made to the spot market. If the maxTokenDeposits on the market is zero then there is no limit and this function will also return zero. (so that needs to be checked)
|
|
64
|
-
* @param market
|
|
65
|
-
* @returns
|
|
66
|
-
*/
|
|
67
|
-
export function calculateMaxRemainingDeposit(market: SpotMarketAccount) {
|
|
68
|
-
const marketMaxTokenDeposits = market.maxTokenDeposits;
|
|
69
|
-
|
|
70
|
-
if (marketMaxTokenDeposits.eq(ZERO)) {
|
|
71
|
-
// If the maxTokenDeposits is set to zero then that means there is no limit. Return the largest number we can to represent infinite available deposit.
|
|
72
|
-
return ZERO;
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
const totalDepositsTokenAmount = getTokenAmount(
|
|
76
|
-
market.depositBalance,
|
|
77
|
-
market,
|
|
78
|
-
SpotBalanceType.DEPOSIT
|
|
79
|
-
);
|
|
80
|
-
|
|
81
|
-
return marketMaxTokenDeposits.sub(totalDepositsTokenAmount);
|
|
82
|
-
}
|
package/src/math/spotPosition.ts
CHANGED
|
@@ -25,14 +25,14 @@ export type OrderFillSimulation = {
|
|
|
25
25
|
tokenValue: BN;
|
|
26
26
|
weight: BN;
|
|
27
27
|
weightedTokenValue: BN;
|
|
28
|
-
freeCollateralContribution;
|
|
28
|
+
freeCollateralContribution: BN;
|
|
29
29
|
};
|
|
30
30
|
|
|
31
31
|
export function getWorstCaseTokenAmounts(
|
|
32
32
|
spotPosition: SpotPosition,
|
|
33
33
|
spotMarketAccount: SpotMarketAccount,
|
|
34
34
|
strictOraclePrice: StrictOraclePrice,
|
|
35
|
-
marginCategory: MarginCategory,
|
|
35
|
+
marginCategory: MarginCategory | undefined,
|
|
36
36
|
customMarginRatio?: number,
|
|
37
37
|
includeOpenOrders: boolean = true
|
|
38
38
|
): OrderFillSimulation {
|
|
@@ -108,7 +108,7 @@ export function calculateWeightedTokenValue(
|
|
|
108
108
|
tokenValue: BN,
|
|
109
109
|
oraclePrice: BN,
|
|
110
110
|
spotMarket: SpotMarketAccount,
|
|
111
|
-
marginCategory: MarginCategory,
|
|
111
|
+
marginCategory: MarginCategory | undefined,
|
|
112
112
|
customMarginRatio?: number
|
|
113
113
|
): { weight: BN; weightedTokenValue: BN } {
|
|
114
114
|
let weight: BN;
|
|
@@ -158,7 +158,7 @@ export function simulateOrderFill(
|
|
|
158
158
|
openOrders: BN,
|
|
159
159
|
strictOraclePrice: StrictOraclePrice,
|
|
160
160
|
spotMarket: SpotMarketAccount,
|
|
161
|
-
marginCategory: MarginCategory,
|
|
161
|
+
marginCategory: MarginCategory | undefined,
|
|
162
162
|
customMarginRatio?: number
|
|
163
163
|
): OrderFillSimulation {
|
|
164
164
|
const ordersValue = getTokenValue(openOrders.neg(), spotMarket.decimals, {
|
package/src/math/state.ts
CHANGED
|
@@ -38,11 +38,3 @@ export function useMedianTriggerPrice(stateAccount: StateAccount): boolean {
|
|
|
38
38
|
(stateAccount.featureBitFlags & FeatureBitFlags.MEDIAN_TRIGGER_PRICE) > 0
|
|
39
39
|
);
|
|
40
40
|
}
|
|
41
|
-
|
|
42
|
-
export function builderCodesEnabled(stateAccount: StateAccount): boolean {
|
|
43
|
-
return (stateAccount.featureBitFlags & FeatureBitFlags.BUILDER_CODES) > 0;
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
export function builderReferralEnabled(stateAccount: StateAccount): boolean {
|
|
47
|
-
return (stateAccount.featureBitFlags & FeatureBitFlags.BUILDER_REFERRAL) > 0;
|
|
48
|
-
}
|