@velocity-exchange/sdk 0.0.5 → 0.1.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 +20 -0
- package/README.md +30 -30
- package/bun.lock +1 -1
- package/lib/browser/accounts/grpcProgramAccountSubscriber.js +1 -1
- package/lib/browser/accounts/grpcVelocityClientAccountSubscriber.d.ts +0 -4
- package/lib/browser/accounts/grpcVelocityClientAccountSubscriber.js +1 -3
- package/lib/browser/accounts/grpcVelocityClientAccountSubscriberV2.d.ts +0 -4
- package/lib/browser/accounts/grpcVelocityClientAccountSubscriberV2.js +5 -7
- package/lib/browser/accounts/laserProgramAccountSubscriber.js +1 -1
- package/lib/browser/accounts/pollingVelocityClientAccountSubscriber.d.ts +0 -4
- package/lib/browser/accounts/pollingVelocityClientAccountSubscriber.js +5 -7
- package/lib/browser/accounts/types.d.ts +2 -8
- package/lib/browser/accounts/utils.js +2 -2
- package/lib/browser/accounts/webSocketVelocityClientAccountSubscriber.d.ts +0 -4
- package/lib/browser/accounts/webSocketVelocityClientAccountSubscriber.js +5 -7
- package/lib/browser/accounts/webSocketVelocityClientAccountSubscriberV2.d.ts +0 -4
- package/lib/browser/accounts/webSocketVelocityClientAccountSubscriberV2.js +5 -7
- package/lib/browser/addresses/pda.d.ts +1 -7
- package/lib/browser/addresses/pda.js +4 -10
- package/lib/browser/adminClient.d.ts +1 -1
- package/lib/browser/adminClient.js +21 -21
- package/lib/browser/auctionSubscriber/auctionSubscriber.d.ts +1 -3
- package/lib/browser/auctionSubscriber/auctionSubscriber.js +2 -6
- package/lib/browser/auctionSubscriber/auctionSubscriberGrpc.d.ts +1 -3
- package/lib/browser/auctionSubscriber/auctionSubscriberGrpc.js +2 -6
- package/lib/browser/auctionSubscriber/types.d.ts +3 -2
- package/lib/browser/config.d.ts +10 -19
- package/lib/browser/config.js +6 -33
- package/lib/browser/constants/insuranceFund.d.ts +1 -1
- package/lib/browser/constants/insuranceFund.js +1 -1
- package/lib/browser/constituentMap/constituentMap.d.ts +0 -2
- package/lib/browser/constituentMap/constituentMap.js +5 -5
- package/lib/browser/core/VelocityCore.d.ts +9 -15
- package/lib/browser/core/VelocityCore.js +5 -7
- package/lib/browser/core/instructions/withdraw.d.ts +1 -1
- package/lib/browser/core/instructions/withdraw.js +1 -1
- package/lib/browser/core/remainingAccounts.js +3 -3
- package/lib/browser/dlob/DLOB.d.ts +1 -1
- package/lib/browser/dlob/DLOB.js +6 -6
- package/lib/browser/dlob/DLOBSubscriber.d.ts +0 -2
- package/lib/browser/dlob/DLOBSubscriber.js +2 -7
- package/lib/browser/dlob/orderBookLevels.js +7 -7
- package/lib/browser/dlob/types.d.ts +0 -2
- package/lib/browser/events/eventSubscriber.d.ts +1 -1
- package/lib/browser/events/eventsServerLogProvider.js +2 -2
- package/lib/browser/events/parse.js +14 -14
- package/lib/browser/events/types.d.ts +3 -5
- package/lib/browser/events/types.js +1 -1
- package/lib/browser/idl/{drift.d.ts → velocity.d.ts} +1042 -767
- package/lib/browser/idl/{drift.json → velocity.json} +1033 -758
- package/lib/browser/index.d.ts +1 -1
- package/lib/browser/index.js +1 -2
- package/lib/browser/math/amm.d.ts +10 -10
- package/lib/browser/math/amm.js +29 -28
- package/lib/browser/math/auction.js +16 -12
- package/lib/browser/math/builder.d.ts +18 -1
- package/lib/browser/math/builder.js +32 -1
- package/lib/browser/math/funding.js +26 -26
- package/lib/browser/math/margin.d.ts +4 -4
- package/lib/browser/math/margin.js +15 -15
- package/lib/browser/math/market.js +13 -13
- package/lib/browser/math/oracles.d.ts +4 -4
- package/lib/browser/math/oracles.js +23 -23
- package/lib/browser/math/orders.d.ts +2 -2
- package/lib/browser/math/orders.js +9 -9
- package/lib/browser/math/position.js +4 -4
- package/lib/browser/math/superStake.d.ts +8 -10
- package/lib/browser/math/superStake.js +18 -20
- package/lib/browser/math/trade.js +5 -5
- package/lib/browser/math/utils.d.ts +1 -1
- package/lib/browser/math/utils.js +1 -1
- package/lib/browser/oracles/pythLazerClient.js +2 -2
- package/lib/browser/orderSubscriber/OrderSubscriber.d.ts +0 -2
- package/lib/browser/orderSubscriber/OrderSubscriber.js +8 -12
- 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/priorityFeeSubscriber.d.ts +1 -5
- package/lib/browser/priorityFee/priorityFeeSubscriber.js +7 -15
- package/lib/browser/priorityFee/priorityFeeSubscriberMap.d.ts +0 -4
- package/lib/browser/priorityFee/priorityFeeSubscriberMap.js +3 -11
- 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/swap/UnifiedSwapClient.js +1 -1
- package/lib/browser/swift/signedMsgUserAccountSubscriber.d.ts +4 -5
- package/lib/browser/swift/signedMsgUserAccountSubscriber.js +2 -6
- package/lib/browser/swift/swiftOrderSubscriber.d.ts +6 -5
- package/lib/browser/swift/swiftOrderSubscriber.js +5 -11
- package/lib/browser/types.d.ts +79 -91
- package/lib/browser/types.js +4 -0
- package/lib/browser/user.d.ts +1 -3
- package/lib/browser/user.js +19 -23
- package/lib/browser/userConfig.d.ts +3 -2
- package/lib/browser/userMap/WebsocketSubscription.js +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 +0 -4
- package/lib/browser/userMap/revenueShareEscrowMap.d.ts +0 -2
- package/lib/browser/userMap/revenueShareEscrowMap.js +0 -4
- package/lib/browser/userMap/userMap.d.ts +2 -4
- package/lib/browser/userMap/userMap.js +10 -14
- package/lib/browser/userMap/userMapConfig.d.ts +3 -2
- package/lib/browser/userMap/userStatsMap.d.ts +0 -2
- package/lib/browser/userMap/userStatsMap.js +0 -4
- package/lib/browser/userStats.d.ts +0 -2
- package/lib/browser/userStats.js +10 -14
- package/lib/browser/userStatsConfig.d.ts +3 -2
- package/lib/browser/util/ed25519Utils.d.ts +1 -1
- package/lib/browser/util/ed25519Utils.js +1 -1
- package/lib/browser/velocityClient.d.ts +53 -38
- package/lib/browser/velocityClient.js +258 -196
- package/lib/browser/velocityClientConfig.d.ts +0 -8
- package/lib/node/accounts/grpcProgramAccountSubscriber.js +1 -1
- 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 +1 -3
- package/lib/node/accounts/grpcVelocityClientAccountSubscriberV2.d.ts +0 -4
- package/lib/node/accounts/grpcVelocityClientAccountSubscriberV2.d.ts.map +1 -1
- package/lib/node/accounts/grpcVelocityClientAccountSubscriberV2.js +5 -7
- package/lib/node/accounts/laserProgramAccountSubscriber.js +1 -1
- package/lib/node/accounts/pollingVelocityClientAccountSubscriber.d.ts +0 -4
- package/lib/node/accounts/pollingVelocityClientAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/pollingVelocityClientAccountSubscriber.js +5 -7
- package/lib/node/accounts/types.d.ts +2 -8
- package/lib/node/accounts/types.d.ts.map +1 -1
- package/lib/node/accounts/utils.js +2 -2
- package/lib/node/accounts/webSocketVelocityClientAccountSubscriber.d.ts +0 -4
- package/lib/node/accounts/webSocketVelocityClientAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/webSocketVelocityClientAccountSubscriber.js +5 -7
- package/lib/node/accounts/webSocketVelocityClientAccountSubscriberV2.d.ts +0 -4
- package/lib/node/accounts/webSocketVelocityClientAccountSubscriberV2.d.ts.map +1 -1
- package/lib/node/accounts/webSocketVelocityClientAccountSubscriberV2.js +5 -7
- package/lib/node/addresses/pda.d.ts +1 -7
- package/lib/node/addresses/pda.d.ts.map +1 -1
- package/lib/node/addresses/pda.js +4 -10
- package/lib/node/adminClient.d.ts +1 -1
- package/lib/node/adminClient.js +21 -21
- package/lib/node/auctionSubscriber/auctionSubscriber.d.ts +1 -3
- package/lib/node/auctionSubscriber/auctionSubscriber.d.ts.map +1 -1
- package/lib/node/auctionSubscriber/auctionSubscriber.js +2 -6
- package/lib/node/auctionSubscriber/auctionSubscriberGrpc.d.ts +1 -3
- package/lib/node/auctionSubscriber/auctionSubscriberGrpc.d.ts.map +1 -1
- package/lib/node/auctionSubscriber/auctionSubscriberGrpc.js +2 -6
- package/lib/node/auctionSubscriber/types.d.ts +3 -2
- package/lib/node/auctionSubscriber/types.d.ts.map +1 -1
- package/lib/node/config.d.ts +10 -19
- package/lib/node/config.d.ts.map +1 -1
- package/lib/node/config.js +6 -33
- package/lib/node/constants/insuranceFund.d.ts +1 -1
- package/lib/node/constants/insuranceFund.js +1 -1
- 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 +5 -5
- 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/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.js +3 -3
- package/lib/node/dlob/DLOB.d.ts +1 -1
- package/lib/node/dlob/DLOB.d.ts.map +1 -1
- package/lib/node/dlob/DLOB.js +6 -6
- 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 +2 -7
- package/lib/node/dlob/orderBookLevels.d.ts.map +1 -1
- package/lib/node/dlob/orderBookLevels.js +7 -7
- package/lib/node/dlob/types.d.ts +0 -2
- package/lib/node/dlob/types.d.ts.map +1 -1
- package/lib/node/events/eventSubscriber.d.ts +1 -1
- package/lib/node/events/eventsServerLogProvider.js +2 -2
- package/lib/node/events/parse.d.ts.map +1 -1
- package/lib/node/events/parse.js +14 -14
- package/lib/node/events/types.d.ts +3 -5
- package/lib/node/events/types.d.ts.map +1 -1
- package/lib/node/events/types.js +1 -1
- package/lib/node/idl/{drift.d.ts → velocity.d.ts} +1043 -768
- package/lib/node/idl/velocity.d.ts.map +1 -0
- package/lib/node/idl/{drift.json → velocity.json} +1033 -758
- package/lib/node/index.d.ts +1 -1
- package/lib/node/index.d.ts.map +1 -1
- package/lib/node/index.js +1 -2
- package/lib/node/math/amm.d.ts +10 -10
- package/lib/node/math/amm.d.ts.map +1 -1
- package/lib/node/math/amm.js +29 -28
- package/lib/node/math/auction.d.ts.map +1 -1
- package/lib/node/math/auction.js +16 -12
- 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 +26 -26
- package/lib/node/math/margin.d.ts +4 -4
- package/lib/node/math/margin.d.ts.map +1 -1
- package/lib/node/math/margin.js +15 -15
- package/lib/node/math/market.d.ts.map +1 -1
- package/lib/node/math/market.js +13 -13
- package/lib/node/math/oracles.d.ts +4 -4
- package/lib/node/math/oracles.d.ts.map +1 -1
- package/lib/node/math/oracles.js +23 -23
- package/lib/node/math/orders.d.ts +2 -2
- package/lib/node/math/orders.d.ts.map +1 -1
- package/lib/node/math/orders.js +9 -9
- package/lib/node/math/position.d.ts.map +1 -1
- package/lib/node/math/position.js +4 -4
- package/lib/node/math/superStake.d.ts +8 -10
- package/lib/node/math/superStake.d.ts.map +1 -1
- package/lib/node/math/superStake.js +18 -20
- package/lib/node/math/trade.d.ts.map +1 -1
- package/lib/node/math/trade.js +5 -5
- package/lib/node/math/utils.d.ts +1 -1
- package/lib/node/math/utils.js +1 -1
- package/lib/node/oracles/pythLazerClient.js +2 -2
- package/lib/node/orderSubscriber/OrderSubscriber.d.ts +0 -2
- package/lib/node/orderSubscriber/OrderSubscriber.d.ts.map +1 -1
- package/lib/node/orderSubscriber/OrderSubscriber.js +8 -12
- 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/priorityFeeSubscriber.d.ts +1 -5
- package/lib/node/priorityFee/priorityFeeSubscriber.d.ts.map +1 -1
- package/lib/node/priorityFee/priorityFeeSubscriber.js +7 -15
- 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/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/swap/UnifiedSwapClient.js +1 -1
- package/lib/node/swift/signedMsgUserAccountSubscriber.d.ts +4 -5
- package/lib/node/swift/signedMsgUserAccountSubscriber.d.ts.map +1 -1
- package/lib/node/swift/signedMsgUserAccountSubscriber.js +2 -6
- package/lib/node/swift/swiftOrderSubscriber.d.ts +6 -5
- package/lib/node/swift/swiftOrderSubscriber.d.ts.map +1 -1
- package/lib/node/swift/swiftOrderSubscriber.js +5 -11
- package/lib/node/types.d.ts +79 -91
- package/lib/node/types.d.ts.map +1 -1
- package/lib/node/types.js +4 -0
- package/lib/node/user.d.ts +1 -3
- package/lib/node/user.d.ts.map +1 -1
- package/lib/node/user.js +19 -23
- package/lib/node/userConfig.d.ts +3 -2
- package/lib/node/userConfig.d.ts.map +1 -1
- package/lib/node/userMap/WebsocketSubscription.js +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 +0 -4
- 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 +0 -4
- package/lib/node/userMap/userMap.d.ts +2 -4
- package/lib/node/userMap/userMap.d.ts.map +1 -1
- package/lib/node/userMap/userMap.js +10 -14
- 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 +0 -2
- package/lib/node/userMap/userStatsMap.d.ts.map +1 -1
- package/lib/node/userMap/userStatsMap.js +0 -4
- package/lib/node/userStats.d.ts +0 -2
- package/lib/node/userStats.d.ts.map +1 -1
- package/lib/node/userStats.js +10 -14
- package/lib/node/userStatsConfig.d.ts +3 -2
- package/lib/node/userStatsConfig.d.ts.map +1 -1
- package/lib/node/util/ed25519Utils.d.ts +1 -1
- package/lib/node/util/ed25519Utils.js +1 -1
- package/lib/node/velocityClient.d.ts +53 -38
- package/lib/node/velocityClient.d.ts.map +1 -1
- package/lib/node/velocityClient.js +258 -196
- package/lib/node/velocityClientConfig.d.ts +0 -8
- package/lib/node/velocityClientConfig.d.ts.map +1 -1
- package/package.json +6 -7
- 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/grpcProgramAccountSubscriber.ts +1 -1
- package/src/accounts/grpcVelocityClientAccountSubscriber.ts +0 -7
- package/src/accounts/grpcVelocityClientAccountSubscriberV2.ts +4 -11
- package/src/accounts/laserProgramAccountSubscriber.ts +1 -1
- package/src/accounts/pollingVelocityClientAccountSubscriber.ts +4 -11
- package/src/accounts/types.ts +2 -9
- package/src/accounts/utils.ts +2 -2
- package/src/accounts/webSocketVelocityClientAccountSubscriber.ts +4 -11
- package/src/accounts/webSocketVelocityClientAccountSubscriberV2.ts +4 -11
- package/src/addresses/pda.ts +3 -13
- package/src/adminClient.ts +21 -21
- package/src/auctionSubscriber/auctionSubscriber.ts +1 -6
- package/src/auctionSubscriber/auctionSubscriberGrpc.ts +1 -6
- package/src/auctionSubscriber/types.ts +3 -3
- package/src/config.ts +8 -67
- package/src/constants/insuranceFund.ts +1 -1
- package/src/constituentMap/constituentMap.ts +2 -6
- package/src/core/VelocityCore.ts +11 -20
- package/src/core/instructions/withdraw.ts +2 -2
- package/src/core/remainingAccounts.ts +3 -3
- package/src/dlob/DLOB.ts +6 -6
- package/src/dlob/DLOBSubscriber.ts +2 -8
- package/src/dlob/orderBookLevels.ts +12 -6
- package/src/dlob/types.ts +0 -2
- package/src/events/eventSubscriber.ts +1 -1
- package/src/events/eventsServerLogProvider.ts +2 -2
- package/src/events/parse.ts +14 -14
- package/src/events/types.ts +4 -7
- package/src/idl/{drift.json → velocity.json} +1033 -758
- package/src/idl/{drift.ts → velocity.ts} +1035 -760
- package/src/index.ts +1 -4
- package/src/margin/README.md +2 -2
- package/src/math/amm.ts +43 -21
- package/src/math/auction.ts +16 -12
- package/src/math/builder.ts +45 -1
- package/src/math/funding.ts +46 -43
- package/src/math/margin.ts +15 -15
- package/src/math/market.ts +21 -13
- package/src/math/oracles.ts +29 -26
- package/src/math/orders.ts +18 -5
- package/src/math/position.ts +9 -3
- package/src/math/superStake.ts +21 -24
- package/src/math/trade.ts +9 -1
- package/src/math/utils.ts +1 -1
- package/src/oracles/pythLazerClient.ts +3 -3
- package/src/orderSubscriber/OrderSubscriber.ts +2 -8
- package/src/orderSubscriber/WebsocketSubscription.ts +1 -1
- package/src/orderSubscriber/grpcSubscription.ts +2 -2
- package/src/orderSubscriber/types.ts +0 -2
- package/src/priorityFee/priorityFeeSubscriber.ts +5 -12
- package/src/priorityFee/priorityFeeSubscriberMap.ts +2 -10
- package/src/priorityFee/types.ts +3 -13
- package/src/priorityFee/velocityPriorityFeeMethod.ts +0 -12
- package/src/pyth/pythLazerSubscriber.ts +1 -1
- package/src/swap/UnifiedSwapClient.ts +1 -1
- package/src/swift/signedMsgUserAccountSubscriber.ts +2 -8
- package/src/swift/swiftOrderSubscriber.ts +7 -12
- package/src/types.ts +84 -102
- package/src/user.ts +9 -14
- package/src/userConfig.ts +1 -3
- package/src/userMap/WebsocketSubscription.ts +1 -1
- package/src/userMap/grpcSubscription.ts +1 -1
- package/src/userMap/referrerMap.ts +0 -4
- package/src/userMap/revenueShareEscrowMap.ts +0 -4
- package/src/userMap/userMap.ts +3 -7
- package/src/userMap/userMapConfig.ts +3 -3
- package/src/userMap/userStatsMap.ts +0 -4
- package/src/userStats.ts +1 -5
- package/src/userStatsConfig.ts +3 -3
- package/src/util/ed25519Utils.ts +1 -1
- package/src/velocityClient.ts +339 -225
- 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/ci/verifyConstants.ts +24 -27
- package/tests/decode/test.ts +2 -2
- package/tests/dlob/helpers.ts +5 -9
- package/tests/events/parseLogsForCuUsage.ts +15 -15
- package/tests/user/helpers.ts +9 -9
- package/tests/user/test.ts +13 -10
- package/lib/browser/util/deprecatedAlias.d.ts +0 -26
- package/lib/browser/util/deprecatedAlias.js +0 -10
- package/lib/node/idl/drift.d.ts.map +0 -1
- 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/src/util/deprecatedAlias.ts +0 -21
- /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/lib/browser/types.d.ts
CHANGED
|
@@ -2,14 +2,14 @@
|
|
|
2
2
|
/// <reference types="node" />
|
|
3
3
|
/// <reference types="node" />
|
|
4
4
|
/**
|
|
5
|
-
* Shared TypeScript types for the
|
|
5
|
+
* Shared TypeScript types for the Velocity SDK.
|
|
6
6
|
*
|
|
7
7
|
* Contains TypeScript mirrors of all on-chain account structs (UserAccount, PerpMarketAccount,
|
|
8
8
|
* SpotMarketAccount, StateAccount, OracleData, etc.), instruction parameter types (OrderParams,
|
|
9
9
|
* ModifyOrderParams), enums (MarketType, OrderType, PositionDirection, OracleSource), and
|
|
10
10
|
* precision constants used throughout the SDK.
|
|
11
11
|
*
|
|
12
|
-
* The authoritative layout source is `sdk/src/idl/
|
|
12
|
+
* The authoritative layout source is `sdk/src/idl/velocity.json` (generated from the program).
|
|
13
13
|
* Do not edit struct shapes here without a corresponding on-chain change.
|
|
14
14
|
*/
|
|
15
15
|
import { Keypair, PublicKey, Transaction, TransactionVersion, VersionedTransaction } from '@solana/web3.js';
|
|
@@ -477,9 +477,8 @@ export type SpotInterestRecord = {
|
|
|
477
477
|
optimalBorrowRate: number;
|
|
478
478
|
maxBorrowRate: number;
|
|
479
479
|
};
|
|
480
|
-
export type
|
|
480
|
+
export type AmmCurveChanged = {
|
|
481
481
|
ts: BN;
|
|
482
|
-
recordId: BN;
|
|
483
482
|
marketIndex: number;
|
|
484
483
|
pegMultiplierBefore: BN;
|
|
485
484
|
baseAssetReserveBefore: BN;
|
|
@@ -489,15 +488,9 @@ export type CurveRecord = {
|
|
|
489
488
|
baseAssetReserveAfter: BN;
|
|
490
489
|
quoteAssetReserveAfter: BN;
|
|
491
490
|
sqrtKAfter: BN;
|
|
492
|
-
baseAssetAmountLong: BN;
|
|
493
|
-
baseAssetAmountShort: BN;
|
|
494
|
-
baseAssetAmountWithAmm: BN;
|
|
495
|
-
totalFee: BN;
|
|
496
|
-
totalFeeMinusDistributions: BN;
|
|
497
491
|
adjustmentCost: BN;
|
|
498
|
-
|
|
492
|
+
totalFeeMinusDistributionsAfter: BN;
|
|
499
493
|
oraclePrice: BN;
|
|
500
|
-
fillRecord: BN;
|
|
501
494
|
};
|
|
502
495
|
export declare type InsuranceFundRecord = {
|
|
503
496
|
ts: BN;
|
|
@@ -536,7 +529,6 @@ export type FundingRateRecord = {
|
|
|
536
529
|
cumulativeFundingRateShort: BN;
|
|
537
530
|
oraclePriceTwap: BN;
|
|
538
531
|
markPriceTwap: BN;
|
|
539
|
-
periodRevenue: BN;
|
|
540
532
|
baseAssetAmountWithAmm: BN;
|
|
541
533
|
};
|
|
542
534
|
export type FundingPaymentRecord = {
|
|
@@ -882,13 +874,13 @@ export type PerpMarketAccount = {
|
|
|
882
874
|
pubkey: PublicKey;
|
|
883
875
|
name: number[];
|
|
884
876
|
amm: AMM;
|
|
877
|
+
marketStats: MarketStats;
|
|
885
878
|
numberOfUsersWithBase: number;
|
|
886
879
|
numberOfUsers: number;
|
|
887
880
|
marginRatioInitial: number;
|
|
888
881
|
marginRatioMaintenance: number;
|
|
889
882
|
nextFillRecordId: BN;
|
|
890
883
|
nextFundingRateRecordId: BN;
|
|
891
|
-
nextCurveRecordId: BN;
|
|
892
884
|
pnlPool: PoolBalance;
|
|
893
885
|
liquidatorFee: number;
|
|
894
886
|
ifLiquidationFee: number;
|
|
@@ -908,12 +900,39 @@ export type PerpMarketAccount = {
|
|
|
908
900
|
feeAdjustment: number;
|
|
909
901
|
pausedOperations: number;
|
|
910
902
|
lastFillPrice: BN;
|
|
911
|
-
|
|
912
|
-
|
|
913
|
-
|
|
914
|
-
|
|
915
|
-
|
|
903
|
+
hedgeConfig: {
|
|
904
|
+
poolId: number;
|
|
905
|
+
status: number;
|
|
906
|
+
pausedOperations: number;
|
|
907
|
+
exchangeFeeExclusionScalar: number;
|
|
908
|
+
feeTransferScalar: number;
|
|
909
|
+
};
|
|
916
910
|
marketConfig: number;
|
|
911
|
+
oracle: PublicKey;
|
|
912
|
+
oracleSource: OracleSource;
|
|
913
|
+
oracleSlotDelayOverride: number;
|
|
914
|
+
oracleLowRiskSlotDelayOverride: number;
|
|
915
|
+
baseAssetAmountLong: BN;
|
|
916
|
+
baseAssetAmountShort: BN;
|
|
917
|
+
quoteAssetAmount: BN;
|
|
918
|
+
quoteEntryAmountLong: BN;
|
|
919
|
+
quoteEntryAmountShort: BN;
|
|
920
|
+
quoteBreakEvenAmountLong: BN;
|
|
921
|
+
quoteBreakEvenAmountShort: BN;
|
|
922
|
+
totalSocialLoss: BN;
|
|
923
|
+
maxOpenInterest: BN;
|
|
924
|
+
totalExchangeFee: BN;
|
|
925
|
+
totalLiquidationFee: BN;
|
|
926
|
+
cumulativeFundingRateLong: BN;
|
|
927
|
+
cumulativeFundingRateShort: BN;
|
|
928
|
+
lastFundingRate: BN;
|
|
929
|
+
lastFundingRateLong: BN;
|
|
930
|
+
lastFundingRateShort: BN;
|
|
931
|
+
lastFundingRateTs: BN;
|
|
932
|
+
netUnsettledFundingPnl: BN;
|
|
933
|
+
lastFundingOracleTwap: BN;
|
|
934
|
+
orderStepSize: BN;
|
|
935
|
+
orderTickSize: BN;
|
|
917
936
|
};
|
|
918
937
|
export type HistoricalOracleData = {
|
|
919
938
|
lastOraclePrice: BN;
|
|
@@ -1003,86 +1022,57 @@ export type PoolBalance = {
|
|
|
1003
1022
|
marketIndex: number;
|
|
1004
1023
|
};
|
|
1005
1024
|
export type AMM = {
|
|
1025
|
+
feePool: PoolBalance;
|
|
1006
1026
|
baseAssetReserve: BN;
|
|
1007
|
-
sqrtK: BN;
|
|
1008
|
-
cumulativeFundingRate: BN;
|
|
1009
|
-
lastFundingRate: BN;
|
|
1010
|
-
lastFundingRateTs: BN;
|
|
1011
|
-
lastMarkPriceTwap: BN;
|
|
1012
|
-
lastMarkPriceTwap5Min: BN;
|
|
1013
|
-
lastMarkPriceTwapTs: BN;
|
|
1014
|
-
lastTradeTs: BN;
|
|
1015
|
-
oracle: PublicKey;
|
|
1016
|
-
oracleSource: OracleSource;
|
|
1017
|
-
historicalOracleData: HistoricalOracleData;
|
|
1018
|
-
lastOracleReservePriceSpreadPct: BN;
|
|
1019
|
-
lastOracleConfPct: BN;
|
|
1020
|
-
fundingPeriod: BN;
|
|
1021
1027
|
quoteAssetReserve: BN;
|
|
1028
|
+
concentrationCoef: BN;
|
|
1029
|
+
minBaseAssetReserve: BN;
|
|
1030
|
+
maxBaseAssetReserve: BN;
|
|
1031
|
+
sqrtK: BN;
|
|
1022
1032
|
pegMultiplier: BN;
|
|
1023
|
-
|
|
1024
|
-
|
|
1025
|
-
|
|
1026
|
-
|
|
1027
|
-
lastFundingRateLong: BN;
|
|
1028
|
-
totalLiquidationFee: BN;
|
|
1033
|
+
terminalQuoteAssetReserve: BN;
|
|
1034
|
+
baseAssetAmountWithAmm: BN;
|
|
1035
|
+
totalFee: BN;
|
|
1036
|
+
totalMmFee: BN;
|
|
1029
1037
|
totalFeeMinusDistributions: BN;
|
|
1030
1038
|
totalFeeWithdrawn: BN;
|
|
1031
|
-
|
|
1032
|
-
|
|
1033
|
-
|
|
1034
|
-
|
|
1039
|
+
lastUpdateSlot: BN;
|
|
1040
|
+
netRevenueSinceLastFunding: BN;
|
|
1041
|
+
lastCumulativeFundingRateLong: BN;
|
|
1042
|
+
lastCumulativeFundingRateShort: BN;
|
|
1043
|
+
baseSpread: number;
|
|
1044
|
+
maxSpread: number;
|
|
1035
1045
|
maxFillReserveFraction: number;
|
|
1036
1046
|
maxSlippageRatio: number;
|
|
1037
|
-
baseSpread: number;
|
|
1038
1047
|
curveUpdateIntensity: number;
|
|
1039
|
-
|
|
1040
|
-
|
|
1041
|
-
|
|
1042
|
-
|
|
1043
|
-
|
|
1044
|
-
|
|
1045
|
-
|
|
1046
|
-
|
|
1047
|
-
|
|
1048
|
-
netRevenueSinceLastFunding: BN;
|
|
1049
|
-
lastUpdateSlot: BN;
|
|
1050
|
-
lastOracleNormalisedPrice: BN;
|
|
1051
|
-
lastOracleValid: boolean;
|
|
1048
|
+
ammJitIntensity: number;
|
|
1049
|
+
ammSpreadAdjustment: number;
|
|
1050
|
+
ammInventorySpreadAdjustment: number;
|
|
1051
|
+
referencePriceOffsetDeadbandPct: number;
|
|
1052
|
+
};
|
|
1053
|
+
export type MarketStats = {
|
|
1054
|
+
lastMarkPriceTwap: BN;
|
|
1055
|
+
lastMarkPriceTwap5Min: BN;
|
|
1056
|
+
lastMarkPriceTwapTs: BN;
|
|
1052
1057
|
lastBidPriceTwap: BN;
|
|
1053
1058
|
lastAskPriceTwap: BN;
|
|
1054
|
-
longSpread: number;
|
|
1055
|
-
shortSpread: number;
|
|
1056
|
-
maxSpread: number;
|
|
1057
|
-
ammJitIntensity: number;
|
|
1058
|
-
maxOpenInterest: BN;
|
|
1059
|
-
maxBaseAssetReserve: BN;
|
|
1060
|
-
minBaseAssetReserve: BN;
|
|
1061
|
-
totalSocialLoss: BN;
|
|
1062
|
-
quoteBreakEvenAmountLong: BN;
|
|
1063
|
-
quoteBreakEvenAmountShort: BN;
|
|
1064
|
-
quoteEntryAmountLong: BN;
|
|
1065
|
-
quoteEntryAmountShort: BN;
|
|
1066
1059
|
markStd: BN;
|
|
1067
1060
|
oracleStd: BN;
|
|
1061
|
+
lastOracleConfPct: BN;
|
|
1062
|
+
volume24H: BN;
|
|
1068
1063
|
longIntensityVolume: BN;
|
|
1069
1064
|
shortIntensityVolume: BN;
|
|
1070
|
-
|
|
1065
|
+
lastTradeTs: BN;
|
|
1066
|
+
last24HAvgFundingRate: BN;
|
|
1067
|
+
fundingPeriod: BN;
|
|
1071
1068
|
minOrderSize: BN;
|
|
1072
1069
|
mmOraclePrice: BN;
|
|
1073
1070
|
mmOracleSlot: BN;
|
|
1074
|
-
|
|
1075
|
-
|
|
1076
|
-
|
|
1077
|
-
|
|
1078
|
-
|
|
1079
|
-
referencePriceOffset: number;
|
|
1080
|
-
oracleLowRiskSlotDelayOverride: number;
|
|
1081
|
-
oracleSlotDelayOverride: number;
|
|
1082
|
-
ammSpreadAdjustment: number;
|
|
1083
|
-
ammInventorySpreadAdjustment: number;
|
|
1084
|
-
lastFundingOracleTwap: BN;
|
|
1085
|
-
referencePriceOffsetDeadbandPct: number;
|
|
1071
|
+
mmOracleSequenceId: BN;
|
|
1072
|
+
lastOracleNormalisedPrice: BN;
|
|
1073
|
+
lastReferencePriceOffset: number;
|
|
1074
|
+
lastOracleValid: boolean;
|
|
1075
|
+
historicalOracleData: HistoricalOracleData;
|
|
1086
1076
|
};
|
|
1087
1077
|
export type PerpPosition = {
|
|
1088
1078
|
baseAssetAmount: BN;
|
|
@@ -1115,14 +1105,13 @@ export type UserStatsAccount = {
|
|
|
1115
1105
|
totalFeeRebate: BN;
|
|
1116
1106
|
totalTokenDiscount: BN;
|
|
1117
1107
|
totalRefereeDiscount: BN;
|
|
1118
|
-
totalReferrerReward: BN;
|
|
1119
|
-
current_epoch_referrer_reward: BN;
|
|
1120
1108
|
};
|
|
1121
1109
|
referrer: PublicKey;
|
|
1122
1110
|
referrerStatus: number;
|
|
1123
1111
|
authority: PublicKey;
|
|
1124
1112
|
ifStakedQuoteAssetAmount: BN;
|
|
1125
1113
|
ifStakedGovTokenAmount: BN;
|
|
1114
|
+
delegatePermissions: number;
|
|
1126
1115
|
};
|
|
1127
1116
|
export type UserAccount = {
|
|
1128
1117
|
authority: PublicKey;
|
|
@@ -1208,6 +1197,10 @@ export type OrderParams = {
|
|
|
1208
1197
|
maxTs: BN | null;
|
|
1209
1198
|
auctionStartPrice: BN | null;
|
|
1210
1199
|
auctionEndPrice: BN | null;
|
|
1200
|
+
/** index into the placing user's RevenueShareEscrow.approved_builders list (non-swift builder codes) */
|
|
1201
|
+
builderIdx?: number | null;
|
|
1202
|
+
/** builder fee on this order, in tenths of a bps, e.g. 100 = 0.01% */
|
|
1203
|
+
builderFeeTenthBps?: number | null;
|
|
1211
1204
|
};
|
|
1212
1205
|
export declare class PostOnlyParams {
|
|
1213
1206
|
static readonly NONE: {
|
|
@@ -1336,7 +1329,9 @@ export type ReferrerInfo = {
|
|
|
1336
1329
|
};
|
|
1337
1330
|
export declare enum ReferrerStatus {
|
|
1338
1331
|
IsReferrer = 1,
|
|
1339
|
-
IsReferred = 2
|
|
1332
|
+
IsReferred = 2,
|
|
1333
|
+
/** set when the user's RevenueShareEscrow was initialized with a referrer */
|
|
1334
|
+
BuilderReferral = 4
|
|
1340
1335
|
}
|
|
1341
1336
|
export declare enum PlaceAndTakeOrderSuccessCondition {
|
|
1342
1337
|
PartialFill = 1,
|
|
@@ -1485,9 +1480,6 @@ export interface VelocityClientMetricsEvents {
|
|
|
1485
1480
|
txSigned: SignedTxData[];
|
|
1486
1481
|
preTxSigned: void;
|
|
1487
1482
|
}
|
|
1488
|
-
/** @deprecated Use `VelocityClientMetricsEvents` instead. `DriftClientMetricsEvents` will be removed in a future major. */
|
|
1489
|
-
export interface DriftClientMetricsEvents extends VelocityClientMetricsEvents {
|
|
1490
|
-
}
|
|
1491
1483
|
export type SignedTxData = {
|
|
1492
1484
|
txSig: string;
|
|
1493
1485
|
signedTx: Transaction | VersionedTransaction;
|
|
@@ -1548,10 +1540,6 @@ export type RevenueShareAccount = {
|
|
|
1548
1540
|
export type RevenueShareEscrowAccount = {
|
|
1549
1541
|
authority: PublicKey;
|
|
1550
1542
|
referrer: PublicKey;
|
|
1551
|
-
referrerBoostExpireTs: number;
|
|
1552
|
-
referrerRewardOffset: number;
|
|
1553
|
-
refereeFeeNumeratorOffset: number;
|
|
1554
|
-
referrerBoostNumerator: number;
|
|
1555
1543
|
reservedFixed: number[];
|
|
1556
1544
|
orders: RevenueShareOrder[];
|
|
1557
1545
|
approvedBuilders: BuilderInfo[];
|
package/lib/browser/types.js
CHANGED
|
@@ -381,11 +381,15 @@ exports.DefaultOrderParams = {
|
|
|
381
381
|
maxTs: null,
|
|
382
382
|
auctionStartPrice: null,
|
|
383
383
|
auctionEndPrice: null,
|
|
384
|
+
builderIdx: null,
|
|
385
|
+
builderFeeTenthBps: null,
|
|
384
386
|
};
|
|
385
387
|
var ReferrerStatus;
|
|
386
388
|
(function (ReferrerStatus) {
|
|
387
389
|
ReferrerStatus[ReferrerStatus["IsReferrer"] = 1] = "IsReferrer";
|
|
388
390
|
ReferrerStatus[ReferrerStatus["IsReferred"] = 2] = "IsReferred";
|
|
391
|
+
/** set when the user's RevenueShareEscrow was initialized with a referrer */
|
|
392
|
+
ReferrerStatus[ReferrerStatus["BuilderReferral"] = 4] = "BuilderReferral";
|
|
389
393
|
})(ReferrerStatus || (exports.ReferrerStatus = ReferrerStatus = {}));
|
|
390
394
|
var PlaceAndTakeOrderSuccessCondition;
|
|
391
395
|
(function (PlaceAndTakeOrderSuccessCondition) {
|
package/lib/browser/user.d.ts
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* User — read-oriented abstraction over the on-chain `User` account.
|
|
5
5
|
*
|
|
6
6
|
* Responsibilities:
|
|
7
|
-
* - Margin and free-collateral calculations (mirrors `programs/
|
|
7
|
+
* - Margin and free-collateral calculations (mirrors `programs/velocity/src/math/margin.rs`).
|
|
8
8
|
* - Position accessors: perp positions, spot positions, unrealized PnL, leverage.
|
|
9
9
|
* - Open order queries and filtering.
|
|
10
10
|
* - Health factor and liquidation threshold checks.
|
|
@@ -28,8 +28,6 @@ import { IsolatedMarginCalculation, MarginCalculation } from './marginCalculatio
|
|
|
28
28
|
export type MarginType = 'Cross' | 'Isolated';
|
|
29
29
|
export declare class User {
|
|
30
30
|
velocityClient: VelocityClient;
|
|
31
|
-
/** @deprecated Use `velocityClient` instead. `driftClient` will be removed in a future major. */
|
|
32
|
-
get driftClient(): VelocityClient;
|
|
33
31
|
userAccountPublicKey: PublicKey;
|
|
34
32
|
accountSubscriber: UserAccountSubscriber;
|
|
35
33
|
_isSubscribed: boolean;
|
package/lib/browser/user.js
CHANGED
|
@@ -27,10 +27,6 @@ const strictOraclePrice_1 = require("./oracles/strictOraclePrice");
|
|
|
27
27
|
const grpcUserAccountSubscriber_1 = require("./accounts/grpcUserAccountSubscriber");
|
|
28
28
|
const marginCalculation_1 = require("./marginCalculation");
|
|
29
29
|
class User {
|
|
30
|
-
/** @deprecated Use `velocityClient` instead. `driftClient` will be removed in a future major. */
|
|
31
|
-
get driftClient() {
|
|
32
|
-
return this.velocityClient;
|
|
33
|
-
}
|
|
34
30
|
get isSubscribed() {
|
|
35
31
|
return this._isSubscribed && this.accountSubscriber.isSubscribed;
|
|
36
32
|
}
|
|
@@ -38,40 +34,40 @@ class User {
|
|
|
38
34
|
this._isSubscribed = val;
|
|
39
35
|
}
|
|
40
36
|
constructor(config) {
|
|
41
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k
|
|
37
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
|
|
42
38
|
this._isSubscribed = false;
|
|
43
39
|
// Type-system guarantees at least one of the two is supplied.
|
|
44
|
-
const velocityClient =
|
|
40
|
+
const velocityClient = config.velocityClient;
|
|
45
41
|
this.velocityClient = velocityClient;
|
|
46
42
|
this.userAccountPublicKey = config.userAccountPublicKey;
|
|
47
|
-
if (((
|
|
43
|
+
if (((_a = config.accountSubscription) === null || _a === void 0 ? void 0 : _a.type) === 'polling') {
|
|
48
44
|
this.accountSubscriber = new pollingUserAccountSubscriber_1.PollingUserAccountSubscriber(velocityClient.connection, config.userAccountPublicKey, config.accountSubscription.accountLoader, this.velocityClient.program.account.user.coder.accounts.decodeUnchecked.bind(this.velocityClient.program.account.user.coder.accounts));
|
|
49
45
|
}
|
|
50
|
-
else if (((
|
|
46
|
+
else if (((_b = config.accountSubscription) === null || _b === void 0 ? void 0 : _b.type) === 'custom') {
|
|
51
47
|
this.accountSubscriber = config.accountSubscription.userAccountSubscriber;
|
|
52
48
|
}
|
|
53
|
-
else if (((
|
|
49
|
+
else if (((_c = config.accountSubscription) === null || _c === void 0 ? void 0 : _c.type) === 'grpc') {
|
|
54
50
|
if (config.accountSubscription.grpcMultiUserAccountSubscriber) {
|
|
55
51
|
this.accountSubscriber =
|
|
56
52
|
config.accountSubscription.grpcMultiUserAccountSubscriber.forUser(config.userAccountPublicKey);
|
|
57
53
|
}
|
|
58
54
|
else {
|
|
59
55
|
this.accountSubscriber = new grpcUserAccountSubscriber_1.grpcUserAccountSubscriber(config.accountSubscription.grpcConfigs, velocityClient.program, config.userAccountPublicKey, {
|
|
60
|
-
resubTimeoutMs: (
|
|
61
|
-
logResubMessages: (
|
|
56
|
+
resubTimeoutMs: (_d = config.accountSubscription) === null || _d === void 0 ? void 0 : _d.resubTimeoutMs,
|
|
57
|
+
logResubMessages: (_e = config.accountSubscription) === null || _e === void 0 ? void 0 : _e.logResubMessages,
|
|
62
58
|
});
|
|
63
59
|
}
|
|
64
60
|
}
|
|
65
61
|
else {
|
|
66
|
-
if (((
|
|
67
|
-
((
|
|
62
|
+
if (((_f = config.accountSubscription) === null || _f === void 0 ? void 0 : _f.type) === 'websocket' &&
|
|
63
|
+
((_g = config.accountSubscription) === null || _g === void 0 ? void 0 : _g.programUserAccountSubscriber)) {
|
|
68
64
|
this.accountSubscriber = new websocketProgramUserAccountSubscriber_1.WebSocketProgramUserAccountSubscriber(velocityClient.program, config.userAccountPublicKey, config.accountSubscription.programUserAccountSubscriber);
|
|
69
65
|
}
|
|
70
66
|
else {
|
|
71
67
|
this.accountSubscriber = new webSocketUserAccountSubscriber_1.WebSocketUserAccountSubscriber(velocityClient.program, config.userAccountPublicKey, {
|
|
72
|
-
resubTimeoutMs: (
|
|
73
|
-
logResubMessages: (
|
|
74
|
-
}, (
|
|
68
|
+
resubTimeoutMs: (_h = config.accountSubscription) === null || _h === void 0 ? void 0 : _h.resubTimeoutMs,
|
|
69
|
+
logResubMessages: (_j = config.accountSubscription) === null || _j === void 0 ? void 0 : _j.logResubMessages,
|
|
70
|
+
}, (_k = config.accountSubscription) === null || _k === void 0 ? void 0 : _k.commitment);
|
|
75
71
|
}
|
|
76
72
|
}
|
|
77
73
|
this.eventEmitter = this.accountSubscriber.eventEmitter;
|
|
@@ -1102,8 +1098,8 @@ class User {
|
|
|
1102
1098
|
continue;
|
|
1103
1099
|
}
|
|
1104
1100
|
const market = this.velocityClient.getPerpMarketAccount(userPosition.marketIndex);
|
|
1105
|
-
if (market.
|
|
1106
|
-
market.
|
|
1101
|
+
if (market.cumulativeFundingRateLong.eq(userPosition.lastCumulativeFundingRate) ||
|
|
1102
|
+
market.cumulativeFundingRateShort.eq(userPosition.lastCumulativeFundingRate)) {
|
|
1107
1103
|
continue;
|
|
1108
1104
|
}
|
|
1109
1105
|
return true;
|
|
@@ -1133,14 +1129,14 @@ class User {
|
|
|
1133
1129
|
const oracle = market.oracle;
|
|
1134
1130
|
const perpMarketWithSameOracle = this.velocityClient
|
|
1135
1131
|
.getPerpMarketAccounts()
|
|
1136
|
-
.find((market) => market.
|
|
1132
|
+
.find((market) => market.oracle.equals(oracle));
|
|
1137
1133
|
const oraclePrice = this.velocityClient.getOracleDataForSpotMarket(marketIndex).price;
|
|
1138
1134
|
if (perpMarketWithSameOracle) {
|
|
1139
1135
|
const perpPosition = this.getPerpPositionOrEmpty(perpMarketWithSameOracle.marketIndex);
|
|
1140
1136
|
if (perpPosition) {
|
|
1141
1137
|
let freeCollateralDeltaForPerp = this.calculateFreeCollateralDeltaForPerp(perpMarketWithSameOracle, perpPosition, numericConstants_1.ZERO, oraclePrice);
|
|
1142
1138
|
if (freeCollateralDeltaForPerp) {
|
|
1143
|
-
const { numerator, denominator } = (0, oracles_1.getMultipleBetweenOracleSources)(market.oracleSource, perpMarketWithSameOracle.
|
|
1139
|
+
const { numerator, denominator } = (0, oracles_1.getMultipleBetweenOracleSources)(market.oracleSource, perpMarketWithSameOracle.oracleSource);
|
|
1144
1140
|
freeCollateralDeltaForPerp = freeCollateralDeltaForPerp
|
|
1145
1141
|
.mul(numerator)
|
|
1146
1142
|
.div(denominator);
|
|
@@ -1172,7 +1168,7 @@ class User {
|
|
|
1172
1168
|
*/
|
|
1173
1169
|
liquidationPrice(marketIndex, positionBaseSizeChange = numericConstants_1.ZERO, estimatedEntryPrice = numericConstants_1.ZERO, marginCategory = 'Maintenance', includeOpenOrders = false, offsetCollateral = numericConstants_1.ZERO, marginType) {
|
|
1174
1170
|
const market = this.velocityClient.getPerpMarketAccount(marketIndex);
|
|
1175
|
-
const oracle = this.velocityClient.getPerpMarketAccount(marketIndex).
|
|
1171
|
+
const oracle = this.velocityClient.getPerpMarketAccount(marketIndex).oracle;
|
|
1176
1172
|
const oraclePrice = this.velocityClient.getOracleDataForPerpMarket(marketIndex).price;
|
|
1177
1173
|
const currentPerpPosition = this.getPerpPositionOrEmpty(marketIndex);
|
|
1178
1174
|
if (marginType === 'Isolated') {
|
|
@@ -1201,7 +1197,7 @@ class User {
|
|
|
1201
1197
|
const totalCollateral = this.getTotalCollateral(marginCategory, false, includeOpenOrders);
|
|
1202
1198
|
const marginRequirement = this.getMarginRequirement(marginCategory, undefined, false, includeOpenOrders);
|
|
1203
1199
|
let freeCollateral = anchor_1.BN.max(numericConstants_1.ZERO, totalCollateral.sub(marginRequirement)).add(offsetCollateral);
|
|
1204
|
-
positionBaseSizeChange = (0, orders_1.standardizeBaseAssetAmount)(positionBaseSizeChange, market.
|
|
1200
|
+
positionBaseSizeChange = (0, orders_1.standardizeBaseAssetAmount)(positionBaseSizeChange, market.orderStepSize);
|
|
1205
1201
|
const freeCollateralChangeFromNewPosition = this.calculateEntriesEffectOnFreeCollateral(market, oraclePrice, currentPerpPosition, positionBaseSizeChange, estimatedEntryPrice, includeOpenOrders);
|
|
1206
1202
|
freeCollateral = freeCollateral.add(freeCollateralChangeFromNewPosition);
|
|
1207
1203
|
let freeCollateralDelta = this.calculateFreeCollateralDeltaForPerp(market, currentPerpPosition, positionBaseSizeChange, oraclePrice, marginCategory, includeOpenOrders);
|
|
@@ -1217,7 +1213,7 @@ class User {
|
|
|
1217
1213
|
const signedTokenAmount = (0, spotBalance_1.getSignedTokenAmount)((0, spotBalance_2.getTokenAmount)(spotPosition.scaledBalance, spotMarketWithSameOracle, spotPosition.balanceType), spotPosition.balanceType);
|
|
1218
1214
|
let spotFreeCollateralDelta = this.calculateFreeCollateralDeltaForSpot(spotMarketWithSameOracle, signedTokenAmount, marginCategory);
|
|
1219
1215
|
if (spotFreeCollateralDelta) {
|
|
1220
|
-
const { numerator, denominator } = (0, oracles_1.getMultipleBetweenOracleSources)(market.
|
|
1216
|
+
const { numerator, denominator } = (0, oracles_1.getMultipleBetweenOracleSources)(market.oracleSource, spotMarketWithSameOracle.oracleSource);
|
|
1221
1217
|
spotFreeCollateralDelta = spotFreeCollateralDelta
|
|
1222
1218
|
.mul(numerator)
|
|
1223
1219
|
.div(denominator);
|
|
@@ -5,12 +5,13 @@ import { GrpcConfigs, UserAccountSubscriber } from './accounts/types';
|
|
|
5
5
|
import { WebSocketProgramAccountSubscriber } from './accounts/webSocketProgramAccountSubscriber';
|
|
6
6
|
import { UserAccount } from './types';
|
|
7
7
|
import { grpcMultiUserAccountSubscriber } from './accounts/grpcMultiUserAccountSubscriber';
|
|
8
|
-
import { AtLeastOne } from './util/deprecatedAlias';
|
|
9
8
|
type UserConfigBase = {
|
|
10
9
|
accountSubscription?: UserSubscriptionConfig;
|
|
11
10
|
userAccountPublicKey: PublicKey;
|
|
12
11
|
};
|
|
13
|
-
export type UserConfig = UserConfigBase &
|
|
12
|
+
export type UserConfig = UserConfigBase & {
|
|
13
|
+
velocityClient: VelocityClient;
|
|
14
|
+
};
|
|
14
15
|
export type UserSubscriptionConfig = {
|
|
15
16
|
type: 'grpc';
|
|
16
17
|
resubTimeoutMs?: number;
|
|
@@ -22,7 +22,7 @@ class WebsocketSubscription {
|
|
|
22
22
|
if (this.additionalFilters) {
|
|
23
23
|
filters.push(...this.additionalFilters);
|
|
24
24
|
}
|
|
25
|
-
this.subscriber = new webSocketProgramAccountSubscriber_1.WebSocketProgramAccountSubscriber('UserMap', 'user', this.userMap.
|
|
25
|
+
this.subscriber = new webSocketProgramAccountSubscriber_1.WebSocketProgramAccountSubscriber('UserMap', 'user', this.userMap.velocityClient.program, this.decodeFn, {
|
|
26
26
|
filters,
|
|
27
27
|
commitment: this.commitment,
|
|
28
28
|
}, this.resubOpts);
|
|
@@ -22,7 +22,7 @@ class grpcSubscription {
|
|
|
22
22
|
if (this.additionalFilters) {
|
|
23
23
|
filters.push(...this.additionalFilters);
|
|
24
24
|
}
|
|
25
|
-
this.subscriber = await grpcProgramAccountSubscriber_1.grpcProgramAccountSubscriber.create(this.grpcConfigs, 'UserMap', 'user', this.userMap.
|
|
25
|
+
this.subscriber = await grpcProgramAccountSubscriber_1.grpcProgramAccountSubscriber.create(this.grpcConfigs, 'UserMap', 'user', this.userMap.velocityClient.program, this.decodeFn, {
|
|
26
26
|
filters,
|
|
27
27
|
}, this.resubOpts);
|
|
28
28
|
}
|
|
@@ -12,8 +12,6 @@ export declare class ReferrerMap {
|
|
|
12
12
|
*/
|
|
13
13
|
private referrerReferrerInfoMap;
|
|
14
14
|
private velocityClient;
|
|
15
|
-
/** @deprecated Use `velocityClient` instead. `driftClient` will be removed in a future major. */
|
|
16
|
-
private get driftClient();
|
|
17
15
|
private parallelSync;
|
|
18
16
|
private fetchPromise?;
|
|
19
17
|
private fetchPromiseResolver;
|
|
@@ -10,10 +10,6 @@ const memcmp_1 = require("../memcmp");
|
|
|
10
10
|
const bs58_1 = __importDefault(require("bs58"));
|
|
11
11
|
const DEFAULT_PUBLIC_KEY = web3_js_1.PublicKey.default.toBase58();
|
|
12
12
|
class ReferrerMap {
|
|
13
|
-
/** @deprecated Use `velocityClient` instead. `driftClient` will be removed in a future major. */
|
|
14
|
-
get driftClient() {
|
|
15
|
-
return this.velocityClient;
|
|
16
|
-
}
|
|
17
13
|
/**
|
|
18
14
|
* Creates a new UserStatsMap instance.
|
|
19
15
|
*
|
|
@@ -6,8 +6,6 @@ export declare class RevenueShareEscrowMap {
|
|
|
6
6
|
*/
|
|
7
7
|
private authorityEscrowMap;
|
|
8
8
|
private velocityClient;
|
|
9
|
-
/** @deprecated Use `velocityClient` instead. `driftClient` will be removed in a future major. */
|
|
10
|
-
private get driftClient();
|
|
11
9
|
private parallelSync;
|
|
12
10
|
private fetchPromise?;
|
|
13
11
|
private fetchPromiseResolver;
|
|
@@ -5,10 +5,6 @@ const web3_js_1 = require("@solana/web3.js");
|
|
|
5
5
|
const pda_1 = require("../addresses/pda");
|
|
6
6
|
const memcmp_1 = require("../memcmp");
|
|
7
7
|
class RevenueShareEscrowMap {
|
|
8
|
-
/** @deprecated Use `velocityClient` instead. `driftClient` will be removed in a future major. */
|
|
9
|
-
get driftClient() {
|
|
10
|
-
return this.velocityClient;
|
|
11
|
-
}
|
|
12
8
|
/**
|
|
13
9
|
* Creates a new RevenueShareEscrowMap instance.
|
|
14
10
|
*
|
|
@@ -30,8 +30,6 @@ export interface UserMapInterface {
|
|
|
30
30
|
export declare class UserMap implements UserMapInterface {
|
|
31
31
|
private userMap;
|
|
32
32
|
velocityClient: VelocityClient;
|
|
33
|
-
/** @deprecated Use `velocityClient` instead. `driftClient` will be removed in a future major. */
|
|
34
|
-
get driftClient(): VelocityClient;
|
|
35
33
|
eventEmitter: StrictEventEmitter<EventEmitter, UserEvents>;
|
|
36
34
|
private connection;
|
|
37
35
|
private commitment;
|
|
@@ -99,13 +97,13 @@ export declare class UserMap implements UserMapInterface {
|
|
|
99
97
|
private getFilters;
|
|
100
98
|
/**
|
|
101
99
|
* Syncs the UserMap using the default sync method (single getProgramAccounts call with filters).
|
|
102
|
-
* This method may fail when
|
|
100
|
+
* This method may fail when velocity has too many users. (nodejs response size limits)
|
|
103
101
|
* @returns
|
|
104
102
|
*/
|
|
105
103
|
private defaultSync;
|
|
106
104
|
/**
|
|
107
105
|
* Syncs the UserMap using the paginated sync method (multiple getMultipleAccounts calls with filters).
|
|
108
|
-
* This method is more reliable when
|
|
106
|
+
* This method is more reliable when velocity has many users.
|
|
109
107
|
* @returns
|
|
110
108
|
*/
|
|
111
109
|
private paginatedSync;
|
|
@@ -15,15 +15,11 @@ const grpcSubscription_1 = require("./grpcSubscription");
|
|
|
15
15
|
const events_1 = require("events");
|
|
16
16
|
const MAX_USER_ACCOUNT_SIZE_BYTES = 4376;
|
|
17
17
|
class UserMap {
|
|
18
|
-
/** @deprecated Use `velocityClient` instead. `driftClient` will be removed in a future major. */
|
|
19
|
-
get driftClient() {
|
|
20
|
-
return this.velocityClient;
|
|
21
|
-
}
|
|
22
18
|
/**
|
|
23
19
|
* Constructs a new UserMap instance.
|
|
24
20
|
*/
|
|
25
21
|
constructor(config) {
|
|
26
|
-
var _a, _b, _c, _d, _e, _f
|
|
22
|
+
var _a, _b, _c, _d, _e, _f;
|
|
27
23
|
this.userMap = new Map();
|
|
28
24
|
this.stateAccountUpdateCallback = async (state) => {
|
|
29
25
|
if (!state.numberOfSubAccounts.eq(this.lastNumberOfSubAccounts)) {
|
|
@@ -33,7 +29,7 @@ class UserMap {
|
|
|
33
29
|
};
|
|
34
30
|
this.mostRecentSlot = 0;
|
|
35
31
|
// Type-system guarantees at least one of the two is supplied.
|
|
36
|
-
this.velocityClient =
|
|
32
|
+
this.velocityClient = config.velocityClient;
|
|
37
33
|
if (config.connection) {
|
|
38
34
|
this.connection = config.connection;
|
|
39
35
|
}
|
|
@@ -43,15 +39,15 @@ class UserMap {
|
|
|
43
39
|
this.commitment =
|
|
44
40
|
config.subscriptionConfig.type === 'websocket' ||
|
|
45
41
|
config.subscriptionConfig.type === 'polling'
|
|
46
|
-
? (
|
|
42
|
+
? (_a = config.subscriptionConfig.commitment) !== null && _a !== void 0 ? _a : this.velocityClient.opts.commitment
|
|
47
43
|
: this.velocityClient.opts.commitment;
|
|
48
|
-
this.includeIdle = (
|
|
44
|
+
this.includeIdle = (_b = config.includeIdle) !== null && _b !== void 0 ? _b : false;
|
|
49
45
|
this.filterByPoolId = config.filterByPoolId;
|
|
50
46
|
this.additionalFilters = config.additionalFilters;
|
|
51
47
|
this.disableSyncOnTotalAccountsChange =
|
|
52
|
-
(
|
|
48
|
+
(_c = config.disableSyncOnTotalAccountsChange) !== null && _c !== void 0 ? _c : false;
|
|
53
49
|
let decodeFn;
|
|
54
|
-
if ((
|
|
50
|
+
if ((_d = config.fastDecode) !== null && _d !== void 0 ? _d : true) {
|
|
55
51
|
decodeFn = (name, buffer) => (0, user_2.decodeUser)(buffer);
|
|
56
52
|
}
|
|
57
53
|
else {
|
|
@@ -89,11 +85,11 @@ class UserMap {
|
|
|
89
85
|
decodeFn,
|
|
90
86
|
});
|
|
91
87
|
}
|
|
92
|
-
this.syncConfig = (
|
|
88
|
+
this.syncConfig = (_e = config.syncConfig) !== null && _e !== void 0 ? _e : {
|
|
93
89
|
type: 'default',
|
|
94
90
|
};
|
|
95
91
|
// Whether to throw an error if the userMap fails to sync. Defaults to false.
|
|
96
|
-
this.throwOnFailedSync = (
|
|
92
|
+
this.throwOnFailedSync = (_f = config.throwOnFailedSync) !== null && _f !== void 0 ? _f : false;
|
|
97
93
|
this.eventEmitter = new events_1.EventEmitter();
|
|
98
94
|
}
|
|
99
95
|
async subscribe() {
|
|
@@ -284,7 +280,7 @@ class UserMap {
|
|
|
284
280
|
}
|
|
285
281
|
/**
|
|
286
282
|
* Syncs the UserMap using the default sync method (single getProgramAccounts call with filters).
|
|
287
|
-
* This method may fail when
|
|
283
|
+
* This method may fail when velocity has too many users. (nodejs response size limits)
|
|
288
284
|
* @returns
|
|
289
285
|
*/
|
|
290
286
|
async defaultSync() {
|
|
@@ -357,7 +353,7 @@ class UserMap {
|
|
|
357
353
|
}
|
|
358
354
|
/**
|
|
359
355
|
* Syncs the UserMap using the paginated sync method (multiple getMultipleAccounts calls with filters).
|
|
360
|
-
* This method is more reliable when
|
|
356
|
+
* This method is more reliable when velocity has many users.
|
|
361
357
|
* @returns
|
|
362
358
|
*/
|
|
363
359
|
async paginatedSync() {
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { Commitment, Connection, MemcmpFilter } from '@solana/web3.js';
|
|
2
2
|
import { VelocityClient } from '../velocityClient';
|
|
3
3
|
import { GrpcConfigs } from '../accounts/types';
|
|
4
|
-
import { AtLeastOne } from '../util/deprecatedAlias';
|
|
5
4
|
export type UserAccountFilterCriteria = {
|
|
6
5
|
hasOpenOrders: boolean;
|
|
7
6
|
};
|
|
@@ -38,5 +37,7 @@ type UserMapConfigBase = {
|
|
|
38
37
|
filterByPoolId?: number;
|
|
39
38
|
additionalFilters?: MemcmpFilter[];
|
|
40
39
|
};
|
|
41
|
-
export type UserMapConfig = UserMapConfigBase &
|
|
40
|
+
export type UserMapConfig = UserMapConfigBase & {
|
|
41
|
+
velocityClient: VelocityClient;
|
|
42
|
+
};
|
|
42
43
|
export {};
|
|
@@ -12,8 +12,6 @@ export declare class UserStatsMap {
|
|
|
12
12
|
*/
|
|
13
13
|
private userStatsMap;
|
|
14
14
|
private velocityClient;
|
|
15
|
-
/** @deprecated Use `velocityClient` instead. `driftClient` will be removed in a future major. */
|
|
16
|
-
private get driftClient();
|
|
17
15
|
private bulkAccountLoader;
|
|
18
16
|
private decode;
|
|
19
17
|
private syncConfig;
|