@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
|
@@ -64,9 +64,6 @@ export type VelocityClientConfig = {
|
|
|
64
64
|
coder?: Coder;
|
|
65
65
|
};
|
|
66
66
|
|
|
67
|
-
/** @deprecated Use `VelocityClientConfig` instead. `DriftClientConfig` will be removed in a future major. */
|
|
68
|
-
export type DriftClientConfig = VelocityClientConfig;
|
|
69
|
-
|
|
70
67
|
type GrpcVelocityClientAccountSubscriberCtor = new (
|
|
71
68
|
grpcConfigs: GrpcConfigs,
|
|
72
69
|
program: Program,
|
|
@@ -97,8 +94,6 @@ export type VelocityClientSubscriptionConfig =
|
|
|
97
94
|
resubTimeoutMs?: number;
|
|
98
95
|
logResubMessages?: boolean;
|
|
99
96
|
velocityClientAccountSubscriber?: GrpcVelocityClientAccountSubscriberCtor;
|
|
100
|
-
/** @deprecated Use `velocityClientAccountSubscriber` instead. `driftClientAccountSubscriber` will be removed in a future major. */
|
|
101
|
-
driftClientAccountSubscriber?: GrpcVelocityClientAccountSubscriberCtor;
|
|
102
97
|
grpcMultiUserAccountSubscriber?: grpcMultiUserAccountSubscriber;
|
|
103
98
|
}
|
|
104
99
|
| {
|
|
@@ -117,13 +112,8 @@ export type VelocityClientSubscriptionConfig =
|
|
|
117
112
|
) => WebSocketAccountSubscriberV2<any> | WebSocketAccountSubscriber<any>;
|
|
118
113
|
/** If you use V2 here, whatever you pass for perpMarketAccountSubscriber will be ignored and it will use v2 under the hood regardless */
|
|
119
114
|
velocityClientAccountSubscriber?: WsVelocityClientAccountSubscriberCtor;
|
|
120
|
-
/** @deprecated Use `velocityClientAccountSubscriber` instead. `driftClientAccountSubscriber` will be removed in a future major. */
|
|
121
|
-
driftClientAccountSubscriber?: WsVelocityClientAccountSubscriberCtor;
|
|
122
115
|
}
|
|
123
116
|
| {
|
|
124
117
|
type: 'polling';
|
|
125
118
|
accountLoader: BulkAccountLoader;
|
|
126
119
|
};
|
|
127
|
-
|
|
128
|
-
/** @deprecated Use `VelocityClientSubscriptionConfig` instead. `DriftClientSubscriptionConfig` will be removed in a future major. */
|
|
129
|
-
export type DriftClientSubscriptionConfig = VelocityClientSubscriptionConfig;
|
|
@@ -2,7 +2,7 @@ import { describe, expect, test } from 'bun:test';
|
|
|
2
2
|
import { VelocityCore } from '../../src/core/VelocityCore';
|
|
3
3
|
import { userAccountBufferStrings } from '../decode/userAccountBufferStrings';
|
|
4
4
|
|
|
5
|
-
describe('
|
|
5
|
+
describe('VelocityCore decoding', () => {
|
|
6
6
|
test('can decode User account from fixture buffer', () => {
|
|
7
7
|
const s = userAccountBufferStrings[0];
|
|
8
8
|
const buf = Buffer.from(s, 'base64');
|
|
@@ -2,7 +2,7 @@ import { describe, expect, test } from 'bun:test';
|
|
|
2
2
|
import { Keypair } from '@solana/web3.js';
|
|
3
3
|
import { VelocityCore } from '../../src/core/VelocityCore';
|
|
4
4
|
|
|
5
|
-
describe('
|
|
5
|
+
describe('VelocityCore fill/trigger builders', () => {
|
|
6
6
|
test('buildFillPerpOrderInstruction wires accounts + args', async () => {
|
|
7
7
|
const called: any[] = [];
|
|
8
8
|
const fakeIx = {
|
|
@@ -3,7 +3,7 @@ import { VelocityCore } from '../../src/core/VelocityCore';
|
|
|
3
3
|
import { Keypair } from '@solana/web3.js';
|
|
4
4
|
import { BN } from '../../src/isomorphic/anchor';
|
|
5
5
|
|
|
6
|
-
describe('
|
|
6
|
+
describe('VelocityCore instruction builders', () => {
|
|
7
7
|
test('buildDepositInstruction calls underlying program.deposit', async () => {
|
|
8
8
|
const called: any[] = [];
|
|
9
9
|
const fakeIx = {
|
|
@@ -2,13 +2,15 @@ import { describe, expect, test } from 'bun:test';
|
|
|
2
2
|
import { Keypair, PublicKey } from '@solana/web3.js';
|
|
3
3
|
import { VelocityCore } from '../../src/core/VelocityCore';
|
|
4
4
|
|
|
5
|
-
describe('
|
|
5
|
+
describe('VelocityCore.pdas', () => {
|
|
6
6
|
test('derives deterministic user/state PDAs', async () => {
|
|
7
7
|
const programId = Keypair.generate().publicKey;
|
|
8
8
|
const authority = Keypair.generate().publicKey;
|
|
9
9
|
|
|
10
10
|
const [state] =
|
|
11
|
-
await VelocityCore.pdas.
|
|
11
|
+
await VelocityCore.pdas.getVelocityStateAccountPublicKeyAndNonce(
|
|
12
|
+
programId
|
|
13
|
+
);
|
|
12
14
|
const user0 = await VelocityCore.pdas.getUserAccountPublicKey(
|
|
13
15
|
programId,
|
|
14
16
|
authority,
|
package/tests/amm/test.ts
CHANGED
|
@@ -7,6 +7,7 @@ import {
|
|
|
7
7
|
PERCENTAGE_PRECISION,
|
|
8
8
|
calculateSpread,
|
|
9
9
|
calculateSpreadBN,
|
|
10
|
+
calculateSpreadFundingBiasScale,
|
|
10
11
|
ZERO,
|
|
11
12
|
sigNum,
|
|
12
13
|
ONE,
|
|
@@ -57,6 +58,9 @@ class AMMSpreadTerms {
|
|
|
57
58
|
halfRevenueRetreatAmount: number;
|
|
58
59
|
longSpreadwRevRetreat: number;
|
|
59
60
|
shortSpreadwRevRetreat: number;
|
|
61
|
+
fundingBiasScale: number;
|
|
62
|
+
longSpreadwFundingBias: number;
|
|
63
|
+
shortSpreadwFundingBias: number;
|
|
60
64
|
totalSpread: number;
|
|
61
65
|
longSpread: number;
|
|
62
66
|
shortSpread: number;
|
|
@@ -229,6 +233,116 @@ describe('AMM Tests', () => {
|
|
|
229
233
|
assert((3500 * iscale) / 1e6 == 0.06566799749999999); //6.5%
|
|
230
234
|
});
|
|
231
235
|
|
|
236
|
+
it('Funding Bias Scale', () => {
|
|
237
|
+
// values pinned to the program's calculate_spread_funding_bias_scale tests
|
|
238
|
+
const twap = new BN(100).mul(PRICE_PRECISION); // $100
|
|
239
|
+
// hourly rate matching the funding offset floor f_ref (~10.95%/yr):
|
|
240
|
+
// fNorm = 1_250_000 * 1e6 / 1e8 * 24 = 300_000
|
|
241
|
+
const saturatingRate = new BN(1_250_000);
|
|
242
|
+
const qAmmLong = BASE_PRECISION.neg(); // users net short
|
|
243
|
+
const qAmmShort = BASE_PRECISION; // users net long
|
|
244
|
+
const one = BID_ASK_SPREAD_PRECISION.toNumber();
|
|
245
|
+
|
|
246
|
+
// s = 0 disables
|
|
247
|
+
assert(
|
|
248
|
+
calculateSpreadFundingBiasScale(qAmmLong, saturatingRate, twap, 0) == one
|
|
249
|
+
);
|
|
250
|
+
|
|
251
|
+
// f * q >= 0: vAMM receives (or zero rate/inventory), β = 1
|
|
252
|
+
assert(
|
|
253
|
+
calculateSpreadFundingBiasScale(qAmmShort, saturatingRate, twap, 50) ==
|
|
254
|
+
one
|
|
255
|
+
);
|
|
256
|
+
assert(
|
|
257
|
+
calculateSpreadFundingBiasScale(
|
|
258
|
+
qAmmLong,
|
|
259
|
+
saturatingRate.neg(),
|
|
260
|
+
twap,
|
|
261
|
+
50
|
|
262
|
+
) == one
|
|
263
|
+
);
|
|
264
|
+
assert(
|
|
265
|
+
calculateSpreadFundingBiasScale(ZERO, saturatingRate, twap, 50) == one
|
|
266
|
+
);
|
|
267
|
+
assert(calculateSpreadFundingBiasScale(qAmmLong, ZERO, twap, 50) == one);
|
|
268
|
+
|
|
269
|
+
// paying at f_ref: ρ ~= 1, β ~= 1 + s/100
|
|
270
|
+
assert(
|
|
271
|
+
calculateSpreadFundingBiasScale(qAmmLong, saturatingRate, twap, 50) ==
|
|
272
|
+
1_499_950
|
|
273
|
+
);
|
|
274
|
+
assert(
|
|
275
|
+
calculateSpreadFundingBiasScale(
|
|
276
|
+
qAmmShort,
|
|
277
|
+
saturatingRate.neg(),
|
|
278
|
+
twap,
|
|
279
|
+
50
|
|
280
|
+
) == 1_499_950
|
|
281
|
+
);
|
|
282
|
+
|
|
283
|
+
// half ramp: β = 1 + s/100 * 0.5
|
|
284
|
+
assert(
|
|
285
|
+
calculateSpreadFundingBiasScale(
|
|
286
|
+
qAmmLong,
|
|
287
|
+
saturatingRate.divn(2),
|
|
288
|
+
twap,
|
|
289
|
+
50
|
|
290
|
+
) == 1_249_975
|
|
291
|
+
);
|
|
292
|
+
|
|
293
|
+
// past f_ref the ramp clamps at 1: β = 1 + s/100 exactly
|
|
294
|
+
assert(
|
|
295
|
+
calculateSpreadFundingBiasScale(
|
|
296
|
+
qAmmLong,
|
|
297
|
+
saturatingRate.muln(10),
|
|
298
|
+
twap,
|
|
299
|
+
100
|
|
300
|
+
) ==
|
|
301
|
+
2 * one
|
|
302
|
+
);
|
|
303
|
+
|
|
304
|
+
// integration: paying side doubles at s = 100, other side untouched,
|
|
305
|
+
// mirrors the program's calculate_spread_funding_bias_tests
|
|
306
|
+
const calc = (rate: BN, s: number) =>
|
|
307
|
+
calculateSpreadBN(
|
|
308
|
+
1000, // baseSpread
|
|
309
|
+
ZERO,
|
|
310
|
+
ZERO,
|
|
311
|
+
2000, // maxSpread
|
|
312
|
+
AMM_RESERVE_PRECISION.muln(10),
|
|
313
|
+
AMM_RESERVE_PRECISION.muln(10),
|
|
314
|
+
new BN(34000000),
|
|
315
|
+
new BN(-1000), // tiny vAMM-long inventory so σ = λ = 1
|
|
316
|
+
new BN(34562304),
|
|
317
|
+
QUOTE_PRECISION.muln(10),
|
|
318
|
+
ZERO,
|
|
319
|
+
AMM_RESERVE_PRECISION.muln(10),
|
|
320
|
+
ZERO,
|
|
321
|
+
AMM_RESERVE_PRECISION.muln(100000),
|
|
322
|
+
ZERO,
|
|
323
|
+
ZERO,
|
|
324
|
+
ZERO,
|
|
325
|
+
ZERO,
|
|
326
|
+
ZERO,
|
|
327
|
+
0,
|
|
328
|
+
rate,
|
|
329
|
+
twap,
|
|
330
|
+
s
|
|
331
|
+
) as [number, number];
|
|
332
|
+
|
|
333
|
+
const [long0, short0] = calc(saturatingRate.muln(10), 0);
|
|
334
|
+
assert(long0 == 500);
|
|
335
|
+
assert(short0 == 500);
|
|
336
|
+
|
|
337
|
+
const [long1, short1] = calc(saturatingRate.muln(10), 100);
|
|
338
|
+
assert(long1 == long0);
|
|
339
|
+
assert(short1 == short0 * 2);
|
|
340
|
+
|
|
341
|
+
const [long2, short2] = calc(saturatingRate.muln(10).neg(), 100);
|
|
342
|
+
assert(long2 == long0);
|
|
343
|
+
assert(short2 == short0);
|
|
344
|
+
});
|
|
345
|
+
|
|
232
346
|
it('Various Spreads', () => {
|
|
233
347
|
const baseSpread: number = 0.025 * 1e6;
|
|
234
348
|
const lastOracleReservePriceSpreadPct: BN = ZERO;
|
|
@@ -308,6 +422,9 @@ describe('AMM Tests', () => {
|
|
|
308
422
|
shortIntensity,
|
|
309
423
|
volume24H,
|
|
310
424
|
0,
|
|
425
|
+
ZERO,
|
|
426
|
+
ZERO,
|
|
427
|
+
0,
|
|
311
428
|
true
|
|
312
429
|
);
|
|
313
430
|
// console.log(terms1);
|
|
@@ -341,6 +458,9 @@ describe('AMM Tests', () => {
|
|
|
341
458
|
new BN(72230366233),
|
|
342
459
|
new BN(432067603632),
|
|
343
460
|
0,
|
|
461
|
+
ZERO,
|
|
462
|
+
ZERO,
|
|
463
|
+
0,
|
|
344
464
|
true
|
|
345
465
|
);
|
|
346
466
|
|
|
@@ -373,6 +493,9 @@ describe('AMM Tests', () => {
|
|
|
373
493
|
new BN(72230366233),
|
|
374
494
|
new BN(432067603632),
|
|
375
495
|
0,
|
|
496
|
+
ZERO,
|
|
497
|
+
ZERO,
|
|
498
|
+
0,
|
|
376
499
|
true
|
|
377
500
|
);
|
|
378
501
|
|
|
@@ -407,6 +530,9 @@ describe('AMM Tests', () => {
|
|
|
407
530
|
new BN(72230366233),
|
|
408
531
|
new BN(432067603632),
|
|
409
532
|
0,
|
|
533
|
+
ZERO,
|
|
534
|
+
ZERO,
|
|
535
|
+
0,
|
|
410
536
|
true
|
|
411
537
|
);
|
|
412
538
|
|
|
@@ -441,6 +567,9 @@ describe('AMM Tests', () => {
|
|
|
441
567
|
new BN(243875031),
|
|
442
568
|
new BN(130017761029),
|
|
443
569
|
0,
|
|
570
|
+
ZERO,
|
|
571
|
+
ZERO,
|
|
572
|
+
0,
|
|
444
573
|
true
|
|
445
574
|
);
|
|
446
575
|
|
|
@@ -607,6 +736,9 @@ describe('AMM Tests', () => {
|
|
|
607
736
|
new BN(suiExample.amm.shortIntensityVolume),
|
|
608
737
|
new BN(suiExample.amm.volume24H),
|
|
609
738
|
0,
|
|
739
|
+
ZERO,
|
|
740
|
+
ZERO,
|
|
741
|
+
0,
|
|
610
742
|
true
|
|
611
743
|
);
|
|
612
744
|
|
|
@@ -647,6 +779,9 @@ describe('AMM Tests', () => {
|
|
|
647
779
|
new BN(suiExample.amm.shortIntensityVolume),
|
|
648
780
|
new BN(suiExample.amm.volume24H),
|
|
649
781
|
0,
|
|
782
|
+
ZERO,
|
|
783
|
+
ZERO,
|
|
784
|
+
0,
|
|
650
785
|
true
|
|
651
786
|
);
|
|
652
787
|
console.log(termsSuiExampleMod1);
|
|
@@ -676,6 +811,9 @@ describe('AMM Tests', () => {
|
|
|
676
811
|
new BN(suiExample.amm.shortIntensityVolume),
|
|
677
812
|
new BN(suiExample.amm.volume24H),
|
|
678
813
|
0,
|
|
814
|
+
ZERO,
|
|
815
|
+
ZERO,
|
|
816
|
+
0,
|
|
679
817
|
true
|
|
680
818
|
);
|
|
681
819
|
|
|
@@ -49,7 +49,7 @@ describe('Verify Constants', function () {
|
|
|
49
49
|
1
|
|
50
50
|
);
|
|
51
51
|
|
|
52
|
-
const
|
|
52
|
+
const devnetVelocityClient = new VelocityClient({
|
|
53
53
|
connection: devnetConnection,
|
|
54
54
|
wallet,
|
|
55
55
|
env: 'devnet',
|
|
@@ -59,7 +59,7 @@ describe('Verify Constants', function () {
|
|
|
59
59
|
},
|
|
60
60
|
});
|
|
61
61
|
|
|
62
|
-
const
|
|
62
|
+
const mainnetVelocityClient = new VelocityClient({
|
|
63
63
|
connection: mainnetConnection,
|
|
64
64
|
wallet,
|
|
65
65
|
env: 'mainnet-beta',
|
|
@@ -72,18 +72,19 @@ describe('Verify Constants', function () {
|
|
|
72
72
|
let lutAccounts: string[];
|
|
73
73
|
|
|
74
74
|
before(async () => {
|
|
75
|
-
await
|
|
76
|
-
await
|
|
75
|
+
await devnetVelocityClient.subscribe();
|
|
76
|
+
await mainnetVelocityClient.subscribe();
|
|
77
77
|
|
|
78
|
-
const lookupTables =
|
|
78
|
+
const lookupTables =
|
|
79
|
+
await mainnetVelocityClient.fetchAllLookupTableAccounts();
|
|
79
80
|
lutAccounts = lookupTables
|
|
80
81
|
.map((lut) => lut.state.addresses.map((x) => x.toBase58()))
|
|
81
82
|
.flat();
|
|
82
83
|
});
|
|
83
84
|
|
|
84
85
|
after(async () => {
|
|
85
|
-
await
|
|
86
|
-
await
|
|
86
|
+
await devnetVelocityClient.unsubscribe();
|
|
87
|
+
await mainnetVelocityClient.unsubscribe();
|
|
87
88
|
});
|
|
88
89
|
|
|
89
90
|
it('has all mainnet markets', async () => {
|
|
@@ -95,7 +96,7 @@ describe('Verify Constants', function () {
|
|
|
95
96
|
description: string;
|
|
96
97
|
}[] = [];
|
|
97
98
|
|
|
98
|
-
const spotMarkets =
|
|
99
|
+
const spotMarkets = mainnetVelocityClient.getSpotMarketAccounts();
|
|
99
100
|
spotMarkets.sort((a, b) => a.marketIndex - b.marketIndex);
|
|
100
101
|
|
|
101
102
|
for (const market of spotMarkets) {
|
|
@@ -170,11 +171,11 @@ describe('Verify Constants', function () {
|
|
|
170
171
|
}
|
|
171
172
|
}
|
|
172
173
|
|
|
173
|
-
const perpMarkets =
|
|
174
|
+
const perpMarkets = mainnetVelocityClient.getPerpMarketAccounts();
|
|
174
175
|
perpMarkets.sort((a, b) => a.marketIndex - b.marketIndex);
|
|
175
176
|
|
|
176
177
|
for (const market of perpMarkets) {
|
|
177
|
-
if (isPullOracleSource(market.
|
|
178
|
+
if (isPullOracleSource(market.oracleSource)) {
|
|
178
179
|
continue;
|
|
179
180
|
}
|
|
180
181
|
|
|
@@ -192,26 +193,25 @@ describe('Verify Constants', function () {
|
|
|
192
193
|
}
|
|
193
194
|
|
|
194
195
|
if (
|
|
195
|
-
correspondingConfigMarket.oracle.toBase58() !==
|
|
196
|
-
market.amm.oracle.toBase58()
|
|
196
|
+
correspondingConfigMarket.oracle.toBase58() !== market.oracle.toBase58()
|
|
197
197
|
) {
|
|
198
198
|
errors.push(
|
|
199
199
|
`Oracle mismatch for mainnet perp market ${
|
|
200
200
|
market.marketIndex
|
|
201
|
-
}, market: ${market.pubkey.toBase58()}, constants: ${correspondingConfigMarket.oracle.toBase58()}, chain: ${market.
|
|
201
|
+
}, market: ${market.pubkey.toBase58()}, constants: ${correspondingConfigMarket.oracle.toBase58()}, chain: ${market.oracle.toBase58()}`
|
|
202
202
|
);
|
|
203
203
|
}
|
|
204
204
|
|
|
205
205
|
if (
|
|
206
206
|
getVariant(correspondingConfigMarket.oracleSource) !==
|
|
207
|
-
getVariant(market.
|
|
207
|
+
getVariant(market.oracleSource)
|
|
208
208
|
) {
|
|
209
209
|
errors.push(
|
|
210
210
|
`Oracle source mismatch for mainnet perp market ${
|
|
211
211
|
market.marketIndex
|
|
212
212
|
}, market: ${market.pubkey.toBase58()}, constants: ${getVariant(
|
|
213
213
|
correspondingConfigMarket.oracleSource
|
|
214
|
-
)}, chain: ${getVariant(market.
|
|
214
|
+
)}, chain: ${getVariant(market.oracleSource)}`
|
|
215
215
|
);
|
|
216
216
|
}
|
|
217
217
|
|
|
@@ -225,14 +225,12 @@ describe('Verify Constants', function () {
|
|
|
225
225
|
});
|
|
226
226
|
}
|
|
227
227
|
|
|
228
|
-
const lutHasMarketOracle = lutAccounts.includes(
|
|
229
|
-
market.amm.oracle.toBase58()
|
|
230
|
-
);
|
|
228
|
+
const lutHasMarketOracle = lutAccounts.includes(market.oracle.toBase58());
|
|
231
229
|
if (!lutHasMarketOracle) {
|
|
232
230
|
missingLutAddresses.push({
|
|
233
231
|
type: 'perp',
|
|
234
232
|
marketIndex: market.marketIndex,
|
|
235
|
-
address: market.
|
|
233
|
+
address: market.oracle.toBase58(),
|
|
236
234
|
description: 'oracle',
|
|
237
235
|
});
|
|
238
236
|
}
|
|
@@ -275,7 +273,7 @@ describe('Verify Constants', function () {
|
|
|
275
273
|
it('has all devnet markets', async () => {
|
|
276
274
|
const errors: string[] = [];
|
|
277
275
|
|
|
278
|
-
const spotMarkets =
|
|
276
|
+
const spotMarkets = devnetVelocityClient.getSpotMarketAccounts();
|
|
279
277
|
spotMarkets.sort((a, b) => a.marketIndex - b.marketIndex);
|
|
280
278
|
|
|
281
279
|
for (const market of spotMarkets) {
|
|
@@ -330,11 +328,11 @@ describe('Verify Constants', function () {
|
|
|
330
328
|
}
|
|
331
329
|
}
|
|
332
330
|
|
|
333
|
-
const perpMarkets =
|
|
331
|
+
const perpMarkets = devnetVelocityClient.getPerpMarketAccounts();
|
|
334
332
|
perpMarkets.sort((a, b) => a.marketIndex - b.marketIndex);
|
|
335
333
|
|
|
336
334
|
for (const market of perpMarkets) {
|
|
337
|
-
if (isPullOracleSource(market.
|
|
335
|
+
if (isPullOracleSource(market.oracleSource)) {
|
|
338
336
|
continue;
|
|
339
337
|
}
|
|
340
338
|
|
|
@@ -352,26 +350,25 @@ describe('Verify Constants', function () {
|
|
|
352
350
|
}
|
|
353
351
|
|
|
354
352
|
if (
|
|
355
|
-
correspondingConfigMarket.oracle.toBase58() !==
|
|
356
|
-
market.amm.oracle.toBase58()
|
|
353
|
+
correspondingConfigMarket.oracle.toBase58() !== market.oracle.toBase58()
|
|
357
354
|
) {
|
|
358
355
|
errors.push(
|
|
359
356
|
`Oracle mismatch for devnet perp market ${
|
|
360
357
|
market.marketIndex
|
|
361
|
-
}, market: ${market.pubkey.toBase58()}, constants: ${correspondingConfigMarket.oracle.toBase58()}, chain: ${market.
|
|
358
|
+
}, market: ${market.pubkey.toBase58()}, constants: ${correspondingConfigMarket.oracle.toBase58()}, chain: ${market.oracle.toBase58()}`
|
|
362
359
|
);
|
|
363
360
|
}
|
|
364
361
|
|
|
365
362
|
if (
|
|
366
363
|
getVariant(correspondingConfigMarket.oracleSource) !==
|
|
367
|
-
getVariant(market.
|
|
364
|
+
getVariant(market.oracleSource)
|
|
368
365
|
) {
|
|
369
366
|
errors.push(
|
|
370
367
|
`Oracle source mismatch for devnet perp market ${
|
|
371
368
|
market.marketIndex
|
|
372
369
|
}, market: ${market.pubkey.toBase58()}, constants: ${getVariant(
|
|
373
370
|
correspondingConfigMarket.oracleSource
|
|
374
|
-
)}, chain: ${getVariant(market.
|
|
371
|
+
)}, chain: ${getVariant(market.oracleSource)}`
|
|
375
372
|
);
|
|
376
373
|
}
|
|
377
374
|
}
|
package/tests/decode/test.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { AnchorProvider, Idl, Program } from '@coral-xyz/anchor';
|
|
2
|
-
import
|
|
2
|
+
import velocityIDL from '../../src/idl/velocity.json';
|
|
3
3
|
import { Connection, Keypair } from '@solana/web3.js';
|
|
4
4
|
import {
|
|
5
5
|
decodeUser,
|
|
@@ -21,7 +21,7 @@ describe('Custom user decode', () => {
|
|
|
21
21
|
const wallet = new Wallet(new Keypair());
|
|
22
22
|
// @ts-ignore
|
|
23
23
|
const provider = new AnchorProvider(connection, wallet);
|
|
24
|
-
const program = new Program(
|
|
24
|
+
const program = new Program(velocityIDL as Idl, provider);
|
|
25
25
|
|
|
26
26
|
let totalAnchorSize = 0;
|
|
27
27
|
let totalCustomSize = 0;
|
package/tests/dlob/helpers.ts
CHANGED
|
@@ -172,7 +172,6 @@ export const mockPerpMarkets: Array<PerpMarketAccount> = [
|
|
|
172
172
|
liquidatorFee: 0,
|
|
173
173
|
imfFactor: 0,
|
|
174
174
|
nextFundingRateRecordId: new BN(0),
|
|
175
|
-
nextCurveRecordId: new BN(0),
|
|
176
175
|
unrealizedPnlImfFactor: 0,
|
|
177
176
|
unrealizedPnlMaxImbalance: ZERO,
|
|
178
177
|
unrealizedPnlInitialAssetWeight: 0,
|
|
@@ -199,7 +198,6 @@ export const mockPerpMarkets: Array<PerpMarketAccount> = [
|
|
|
199
198
|
lastFillPrice: new BN(0),
|
|
200
199
|
contractTier: ContractTier.A,
|
|
201
200
|
nextFundingRateRecordId: new BN(0),
|
|
202
|
-
nextCurveRecordId: new BN(0),
|
|
203
201
|
name: [],
|
|
204
202
|
contractType: ContractType.PERPETUAL,
|
|
205
203
|
expiryTs: new BN(0),
|
|
@@ -245,7 +243,6 @@ export const mockPerpMarkets: Array<PerpMarketAccount> = [
|
|
|
245
243
|
lastFillPrice: new BN(0),
|
|
246
244
|
contractTier: ContractTier.A,
|
|
247
245
|
nextFundingRateRecordId: new BN(0),
|
|
248
|
-
nextCurveRecordId: new BN(0),
|
|
249
246
|
name: [],
|
|
250
247
|
contractType: ContractType.PERPETUAL,
|
|
251
248
|
expiryTs: new BN(0),
|
|
@@ -375,6 +372,7 @@ export const mockSpotMarkets: Array<SpotMarketAccount> = [
|
|
|
375
372
|
minBorrowRate: 0,
|
|
376
373
|
tokenProgramFlag: 0,
|
|
377
374
|
poolId: 0,
|
|
375
|
+
feeAdjustment: 0,
|
|
378
376
|
},
|
|
379
377
|
{
|
|
380
378
|
status: MarketStatus.ACTIVE,
|
|
@@ -462,6 +460,7 @@ export const mockSpotMarkets: Array<SpotMarketAccount> = [
|
|
|
462
460
|
minBorrowRate: 0,
|
|
463
461
|
tokenProgramFlag: 0,
|
|
464
462
|
poolId: 0,
|
|
463
|
+
feeAdjustment: 0,
|
|
465
464
|
},
|
|
466
465
|
{
|
|
467
466
|
status: MarketStatus.ACTIVE,
|
|
@@ -470,7 +469,9 @@ export const mockSpotMarkets: Array<SpotMarketAccount> = [
|
|
|
470
469
|
maxTokenDeposits: new BN(100),
|
|
471
470
|
marketIndex: 2,
|
|
472
471
|
pubkey: PublicKey.default,
|
|
473
|
-
|
|
472
|
+
// DevnetSpotMarkets only has 2 entries; mock market 2 uses a
|
|
473
|
+
// placeholder mint like its other placeholder pubkeys
|
|
474
|
+
mint: PublicKey.default,
|
|
474
475
|
vault: PublicKey.default,
|
|
475
476
|
revenuePool: {
|
|
476
477
|
scaledBalance: new BN(0),
|
|
@@ -549,11 +550,11 @@ export const mockSpotMarkets: Array<SpotMarketAccount> = [
|
|
|
549
550
|
minBorrowRate: 0,
|
|
550
551
|
tokenProgramFlag: 0,
|
|
551
552
|
poolId: 0,
|
|
553
|
+
feeAdjustment: 0,
|
|
552
554
|
},
|
|
553
555
|
];
|
|
554
556
|
|
|
555
557
|
export const mockStateAccount: StateAccount = {
|
|
556
|
-
admin: PublicKey.default,
|
|
557
558
|
featureBitFlags: 0,
|
|
558
559
|
defaultMarketOrderTimeInForce: 0,
|
|
559
560
|
defaultSpotAuctionDuration: 0,
|
|
@@ -634,12 +635,12 @@ export class MockUserMap implements UserMapInterface {
|
|
|
634
635
|
eventEmitter: EventEmitter = new EventEmitter();
|
|
635
636
|
private userMap = new Map<string, User>();
|
|
636
637
|
private userAccountToAuthority = new Map<string, string>();
|
|
637
|
-
private
|
|
638
|
+
private velocityClient: VelocityClient;
|
|
638
639
|
|
|
639
640
|
constructor() {
|
|
640
641
|
this.userMap = new Map();
|
|
641
642
|
this.userAccountToAuthority = new Map();
|
|
642
|
-
this.
|
|
643
|
+
this.velocityClient = new VelocityClient({
|
|
643
644
|
connection: new Connection('http://localhost:8899'),
|
|
644
645
|
wallet: new Wallet(new Keypair()),
|
|
645
646
|
programID: PublicKey.default,
|
|
@@ -652,7 +653,7 @@ export class MockUserMap implements UserMapInterface {
|
|
|
652
653
|
|
|
653
654
|
public async addPubkey(userAccountPublicKey: PublicKey): Promise<void> {
|
|
654
655
|
const user = new User({
|
|
655
|
-
|
|
656
|
+
velocityClient: this.velocityClient,
|
|
656
657
|
userAccountPublicKey: userAccountPublicKey,
|
|
657
658
|
});
|
|
658
659
|
this.userMap.set(userAccountPublicKey.toBase58(), user);
|
|
@@ -686,7 +687,7 @@ export class MockUserMap implements UserMapInterface {
|
|
|
686
687
|
|
|
687
688
|
public async mustGet(_key: string): Promise<User> {
|
|
688
689
|
return new User({
|
|
689
|
-
|
|
690
|
+
velocityClient: this.velocityClient,
|
|
690
691
|
userAccountPublicKey: PublicKey.default,
|
|
691
692
|
});
|
|
692
693
|
}
|
|
@@ -694,7 +695,7 @@ export class MockUserMap implements UserMapInterface {
|
|
|
694
695
|
public async mustGetWithSlot(_key: string): Promise<DataAndSlot<User>> {
|
|
695
696
|
return {
|
|
696
697
|
data: new User({
|
|
697
|
-
|
|
698
|
+
velocityClient: this.velocityClient,
|
|
698
699
|
userAccountPublicKey: PublicKey.default,
|
|
699
700
|
}),
|
|
700
701
|
slot: 0,
|
|
@@ -11,13 +11,13 @@ describe('parseLogsForCuUsage Tests', () => {
|
|
|
11
11
|
'Program ComputeBudget111111111111111111111111111111 success',
|
|
12
12
|
'Program ComputeBudget111111111111111111111111111111 invoke [1]',
|
|
13
13
|
'Program ComputeBudget111111111111111111111111111111 success',
|
|
14
|
-
'Program
|
|
14
|
+
'Program vELoC1audYbSYVRXn1vPaV8Axoa9oU6BYmNGZZBDZ1P invoke [1]',
|
|
15
15
|
'Program log: Instruction: UpdateFundingRate',
|
|
16
16
|
'Program log: correcting mark twap update (oracle previously invalid for 1625 seconds)',
|
|
17
17
|
'Program data: Ze4o5EYuPXWjSrNoAAAAADkUAAAAAAAAZTIKAAAAAAAAAAAAAAAAAGwIAGYvdqgAAAAAAAAAAAAxpQahVMKdAAAAAAAAAAAAK0cfnMcFowAAAAAAAAAAAGUyCgAAAAAAAAAAAAAAAAAbXpy4n6WoAAAAAAAAAAAAGAAXbsHunQAAAAAAAAAAAObum9evM6MAAAAAAAAAAAAA9PA5+UYKAAAAAAAAAAAAAKhuDZ0RCgAAAAAAAAAAAABMgixcNQAAAAAAAAAAAAA9NqYKSgAAAAAAAAAAAAAA4nylcy0AAAAAAAAAAAAAAMvCAAAAAAAAAAAAAAAAAACOjAkAAAAAAET3AgAAAAAAAAAAAAAAAAAMAQAAHgA=',
|
|
18
18
|
'Program data: RAP/GoVbk/6jSrNoAAAAAA0rAAAAAAAAHgBxcgEAAAAAAHFyAQAAAAAAAAAAAAAAAABxcgEAAAAAAAAAAAAAAAAAZRuYAQAAAAAAAAAAAAAAAJMNmAEAAAAAAAAAAAAAAAC0eAkAAAAAAByBCQAAAAAAWUbv4v////8ATIIsXDUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==',
|
|
19
|
-
'Program
|
|
20
|
-
'Program
|
|
19
|
+
'Program vELoC1audYbSYVRXn1vPaV8Axoa9oU6BYmNGZZBDZ1P consumed 102636 of 143817 compute units',
|
|
20
|
+
'Program vELoC1audYbSYVRXn1vPaV8Axoa9oU6BYmNGZZBDZ1P success',
|
|
21
21
|
];
|
|
22
22
|
const cuUsage = parseLogsForCuUsage(logs);
|
|
23
23
|
expect(cuUsage).to.deep.equal([
|
|
@@ -37,21 +37,21 @@ describe('parseLogsForCuUsage Tests', () => {
|
|
|
37
37
|
'Program ComputeBudget111111111111111111111111111111 success',
|
|
38
38
|
'Program ComputeBudget111111111111111111111111111111 invoke [1]',
|
|
39
39
|
'Program ComputeBudget111111111111111111111111111111 success',
|
|
40
|
-
'Program
|
|
40
|
+
'Program vELoC1audYbSYVRXn1vPaV8Axoa9oU6BYmNGZZBDZ1P invoke [1]',
|
|
41
41
|
'Program log: Instruction: PostPythLazerOracleUpdate',
|
|
42
42
|
'Program log: Skipping new lazer update. current ts 1756622092550000 >= next ts 1756622092000000',
|
|
43
43
|
'Program log: Skipping new lazer update. current ts 1756622092550000 >= next ts 1756622092000000',
|
|
44
44
|
'Program log: Skipping new lazer update. current ts 1756622092550000 >= next ts 1756622092000000',
|
|
45
45
|
'Program log: Price updated to 433158894',
|
|
46
46
|
'Program log: Posting new lazer update. current ts 1756622079000000 < next ts 1756622092000000',
|
|
47
|
-
'Program
|
|
48
|
-
'Program
|
|
49
|
-
'Program
|
|
47
|
+
'Program vELoC1audYbSYVRXn1vPaV8Axoa9oU6BYmNGZZBDZ1P consumed 29242 of 199700 compute units',
|
|
48
|
+
'Program vELoC1audYbSYVRXn1vPaV8Axoa9oU6BYmNGZZBDZ1P success',
|
|
49
|
+
'Program vELoC1audYbSYVRXn1vPaV8Axoa9oU6BYmNGZZBDZ1P invoke [1]',
|
|
50
50
|
'Program log: Instruction: UpdatePerpBidAskTwap',
|
|
51
51
|
'Program log: estimated_bid = None estimated_ask = None',
|
|
52
52
|
'Program log: after amm bid twap = 204332308 -> 204328128 \n ask twap = 204350474 -> 204347149 \n ts = 1756622080 -> 1756622092',
|
|
53
|
-
'Program
|
|
54
|
-
'Program
|
|
53
|
+
'Program vELoC1audYbSYVRXn1vPaV8Axoa9oU6BYmNGZZBDZ1P consumed 71006 of 170458 compute units',
|
|
54
|
+
'Program vELoC1audYbSYVRXn1vPaV8Axoa9oU6BYmNGZZBDZ1P success',
|
|
55
55
|
];
|
|
56
56
|
const cuUsage = parseLogsForCuUsage(logs);
|
|
57
57
|
expect(cuUsage).to.deep.equal([
|
|
@@ -78,7 +78,7 @@ describe('parseLogsForCuUsage Tests', () => {
|
|
|
78
78
|
'Program ComputeBudget111111111111111111111111111111 success',
|
|
79
79
|
'Program ComputeBudget111111111111111111111111111111 invoke [1]',
|
|
80
80
|
'Program ComputeBudget111111111111111111111111111111 success',
|
|
81
|
-
'Program
|
|
81
|
+
'Program vELoC1audYbSYVRXn1vPaV8Axoa9oU6BYmNGZZBDZ1P invoke [1]',
|
|
82
82
|
'Program log: Instruction: BeginSwap',
|
|
83
83
|
'Program data: t7rLuuG7X4K7X+loAAAAAAAAoDz72UK0JwQAAAAAAAAAAMS7r8ACAAAAAAAAAAAAAAB36Aiv26cZAwAAAAAAAAAArDDOLAMAAAAAAAAAAAAAAAA1DAAUzQAAoLsNAA==',
|
|
84
84
|
'Program data: t7rLuuG7X4K7X+loAAAAAAEASQcRhBUVAQAAAAAAAAAAAG3WGn8CAAAAAAAAAAAAAADBBakRTIoAAAAAAAAAAAAAFfFDwgIAAAAAAAAAAAAAAAA1DACghgEAYOMWAA==',
|
|
@@ -86,8 +86,8 @@ describe('parseLogsForCuUsage Tests', () => {
|
|
|
86
86
|
'Program log: Instruction: Transfer',
|
|
87
87
|
'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 4645 of 1336324 compute units',
|
|
88
88
|
'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success',
|
|
89
|
-
'Program
|
|
90
|
-
'Program
|
|
89
|
+
'Program vELoC1audYbSYVRXn1vPaV8Axoa9oU6BYmNGZZBDZ1P consumed 79071 of 1399700 compute units',
|
|
90
|
+
'Program vELoC1audYbSYVRXn1vPaV8Axoa9oU6BYmNGZZBDZ1P success',
|
|
91
91
|
'Program JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4 invoke [1]',
|
|
92
92
|
'Program log: Instruction: Route',
|
|
93
93
|
'Program SV2EYYJyRz2YhfXwXnhNAevDEui5Q6yrfyo13WtupPF invoke [2]',
|
|
@@ -108,15 +108,15 @@ describe('parseLogsForCuUsage Tests', () => {
|
|
|
108
108
|
'Program JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4 consumed 81059 of 1320629 compute units',
|
|
109
109
|
'Program return: JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4 Z/tXxXEAAAA=',
|
|
110
110
|
'Program JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4 success',
|
|
111
|
-
'Program
|
|
111
|
+
'Program vELoC1audYbSYVRXn1vPaV8Axoa9oU6BYmNGZZBDZ1P invoke [1]',
|
|
112
112
|
'Program log: Instruction: EndSwap',
|
|
113
113
|
'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [2]',
|
|
114
114
|
'Program log: Instruction: Transfer',
|
|
115
115
|
'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 4736 of 1187840 compute units',
|
|
116
116
|
'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success',
|
|
117
117
|
'Program data: ort7woo4+vG7X+loAAAAAJ1Bg8Gp9WhWrw9VRm1UiC0KW6LRC2am2mjhfd3lzm6WZ/tXxXEAAAAA6HZIFwAAAAEAAAAJdDEMAAAAANFBDwAAAAAAAAAAAAAAAAA=',
|
|
118
|
-
'Program
|
|
119
|
-
'Program
|
|
118
|
+
'Program vELoC1audYbSYVRXn1vPaV8Axoa9oU6BYmNGZZBDZ1P consumed 156076 of 1239570 compute units',
|
|
119
|
+
'Program vELoC1audYbSYVRXn1vPaV8Axoa9oU6BYmNGZZBDZ1P success',
|
|
120
120
|
];
|
|
121
121
|
const cuUsage = parseLogsForCuUsage(logs);
|
|
122
122
|
expect(cuUsage).to.deep.equal([
|