@drift-labs/sdk-browser 2.162.0-beta.2 → 2.163.0-beta.9
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 -0
- package/.yarn/install-state.gz +0 -0
- package/README.md +2 -2
- package/VERSION +1 -1
- package/bun.lock +47 -79
- package/lib/browser/accounts/fetch.d.ts +6 -6
- package/lib/browser/accounts/fetch.js +4 -4
- package/lib/browser/accounts/grpcAccountSubscriber.d.ts +2 -2
- package/lib/browser/accounts/grpcDriftClientAccountSubscriber.d.ts +2 -2
- package/lib/browser/accounts/grpcDriftClientAccountSubscriberV2.d.ts +3 -3
- package/lib/browser/accounts/grpcDriftClientAccountSubscriberV2.js +2 -2
- package/lib/browser/accounts/grpcInsuranceFundStakeAccountSubscriber.d.ts +2 -2
- package/lib/browser/accounts/grpcMultiAccountSubscriber.d.ts +2 -2
- package/lib/browser/accounts/grpcMultiUserAccountSubscriber.d.ts +2 -2
- package/lib/browser/accounts/grpcProgramAccountSubscriber.d.ts +2 -2
- package/lib/browser/accounts/grpcUserAccountSubscriber.d.ts +2 -2
- package/lib/browser/accounts/grpcUserStatsAccountSubscriber.d.ts +2 -2
- package/lib/browser/accounts/laserProgramAccountSubscriber.d.ts +2 -2
- package/lib/browser/accounts/oneShotUserAccountSubscriber.d.ts +3 -3
- package/lib/browser/accounts/oneShotUserStatsAccountSubscriber.d.ts +3 -3
- package/lib/browser/accounts/pollingDriftClientAccountSubscriber.d.ts +3 -3
- package/lib/browser/accounts/pollingDriftClientAccountSubscriber.js +2 -2
- package/lib/browser/accounts/pollingInsuranceFundStakeAccountSubscriber.d.ts +3 -3
- package/lib/browser/accounts/pollingInsuranceFundStakeAccountSubscriber.js +1 -1
- package/lib/browser/accounts/pollingOracleAccountSubscriber.d.ts +2 -2
- package/lib/browser/accounts/pollingTokenAccountSubscriber.d.ts +2 -2
- package/lib/browser/accounts/pollingUserAccountSubscriber.js +2 -2
- package/lib/browser/accounts/pollingUserStatsAccountSubscriber.d.ts +3 -3
- package/lib/browser/accounts/pollingUserStatsAccountSubscriber.js +1 -1
- package/lib/browser/accounts/testBulkAccountLoader.js +3 -5
- package/lib/browser/accounts/types.d.ts +11 -14
- package/lib/browser/accounts/webSocketAccountSubscriber.d.ts +3 -3
- package/lib/browser/accounts/webSocketAccountSubscriber.js +1 -2
- package/lib/browser/accounts/webSocketAccountSubscriberV2.d.ts +3 -3
- package/lib/browser/accounts/webSocketDriftClientAccountSubscriber.d.ts +5 -5
- package/lib/browser/accounts/webSocketDriftClientAccountSubscriber.js +2 -2
- package/lib/browser/accounts/webSocketDriftClientAccountSubscriberV2.d.ts +3 -3
- package/lib/browser/accounts/webSocketDriftClientAccountSubscriberV2.js +2 -2
- package/lib/browser/accounts/webSocketInsuranceFundStakeAccountSubscriber.d.ts +3 -3
- package/lib/browser/accounts/webSocketProgramAccountSubscriber.d.ts +3 -3
- package/lib/browser/accounts/webSocketProgramAccountSubscriberV2.d.ts +3 -3
- package/lib/browser/accounts/webSocketProgramAccountsSubscriberV2.d.ts +3 -3
- package/lib/browser/accounts/webSocketUserAccountSubscriber.d.ts +3 -3
- package/lib/browser/accounts/webSocketUserStatsAccountSubsriber.d.ts +3 -3
- package/lib/browser/accounts/websocketProgramUserAccountSubscriber.d.ts +2 -2
- package/lib/browser/addresses/pda.d.ts +6 -2
- package/lib/browser/addresses/pda.js +7 -12
- package/lib/browser/adminClient.d.ts +11 -9
- package/lib/browser/adminClient.js +30 -72
- package/lib/browser/auctionSubscriber/auctionSubscriber.js +1 -1
- package/lib/browser/auctionSubscriber/auctionSubscriberGrpc.js +1 -1
- package/lib/browser/config.d.ts +7 -3
- package/lib/browser/config.js +9 -7
- package/lib/browser/constants/index.d.ts +5 -0
- package/lib/browser/constants/index.js +5 -0
- package/lib/browser/constants/numericConstants.d.ts +1 -1
- package/lib/browser/constants/numericConstants.js +3 -3
- package/lib/browser/constants/perpMarkets.js +3 -412
- package/lib/browser/constants/spotMarkets.js +7 -91
- package/lib/browser/constituentMap/constituentMap.js +2 -2
- package/lib/browser/constituentMap/pollingConstituentAccountSubscriber.d.ts +3 -3
- package/lib/browser/constituentMap/webSocketConstituentAccountSubscriber.d.ts +3 -3
- package/lib/browser/constituentMap/webSocketConstituentAccountSubscriber.js +1 -1
- package/lib/browser/decode/customCoder.d.ts +7 -9
- package/lib/browser/decode/customCoder.js +17 -28
- package/lib/browser/decode/user.js +7 -25
- package/lib/browser/dlob/DLOB.d.ts +12 -0
- package/lib/browser/dlob/DLOB.js +12 -0
- package/lib/browser/dlob/orderBookLevels.js +1 -1
- package/lib/browser/driftClient.d.ts +32 -59
- package/lib/browser/driftClient.js +85 -562
- package/lib/browser/driftClientConfig.d.ts +7 -0
- package/lib/browser/events/eventSubscriber.d.ts +8 -0
- package/lib/browser/events/eventSubscriber.js +5 -2
- package/lib/browser/events/parse.d.ts +1 -1
- package/lib/browser/factory/oracleClient.d.ts +2 -2
- package/lib/browser/factory/oracleClient.js +9 -21
- package/lib/browser/idl/drift.d.ts +25708 -0
- package/lib/browser/idl/drift.js +2 -0
- package/lib/browser/idl/drift.json +20850 -15287
- package/lib/browser/idl/pyth.d.ts +97 -0
- package/lib/browser/idl/pyth.js +2 -0
- package/lib/browser/idl/token_faucet.d.ts +197 -0
- package/lib/browser/idl/token_faucet.js +2 -0
- package/lib/browser/idl/token_faucet.json +148 -61
- package/lib/browser/index.d.ts +13 -6
- package/lib/browser/index.js +12 -5
- package/lib/browser/marinade/index.d.ts +1 -1
- package/lib/browser/marinade/index.js +2 -2
- package/lib/browser/math/amm.d.ts +4 -5
- package/lib/browser/math/amm.js +8 -35
- package/lib/browser/math/funding.js +6 -1
- package/lib/browser/math/margin.d.ts +3 -4
- package/lib/browser/math/margin.js +16 -47
- package/lib/browser/math/market.d.ts +2 -2
- package/lib/browser/math/market.js +10 -42
- package/lib/browser/math/oracles.js +14 -19
- package/lib/browser/math/position.js +1 -1
- package/lib/browser/math/trade.js +4 -4
- package/lib/browser/memcmp.js +8 -8
- package/lib/browser/openbook/openbookV2Subscriber.d.ts +1 -1
- package/lib/browser/openbook/openbookV2Subscriber.js +3 -3
- package/lib/browser/oracles/oracleClientCache.d.ts +2 -2
- package/lib/browser/oracles/prelaunchOracleClient.d.ts +2 -2
- package/lib/browser/oracles/prelaunchOracleClient.js +1 -1
- package/lib/browser/oracles/pythLazerClient.js +3 -5
- package/lib/browser/oracles/types.d.ts +6 -0
- package/lib/browser/orderParams.d.ts +0 -1
- package/lib/browser/orderParams.js +1 -5
- package/lib/browser/orderSubscriber/OrderSubscriber.js +3 -4
- package/lib/browser/orderSubscriber/WebsocketSubscription.js +1 -1
- package/lib/browser/orderSubscriber/grpcSubscription.js +2 -2
- package/lib/browser/orderSubscriber/index.d.ts +5 -0
- package/lib/browser/orderSubscriber/index.js +5 -0
- package/lib/browser/priorityFee/index.d.ts +5 -0
- package/lib/browser/priorityFee/index.js +5 -0
- package/lib/browser/pyth/index.d.ts +2 -2
- package/lib/browser/pyth/types.d.ts +1 -1
- package/lib/browser/swift/grpcSignedMsgUserAccountSubscriber.js +1 -1
- package/lib/browser/swift/index.d.ts +7 -0
- package/lib/browser/swift/index.js +7 -0
- package/lib/browser/swift/signedMsgUserAccountSubscriber.js +4 -3
- package/lib/browser/tokenFaucet.d.ts +2 -2
- package/lib/browser/tokenFaucet.js +4 -4
- package/lib/browser/tx/txHandler.d.ts +12 -0
- package/lib/browser/tx/txHandler.js +12 -0
- package/lib/browser/types.d.ts +19 -31
- package/lib/browser/types.js +6 -11
- package/lib/browser/user.d.ts +27 -18
- package/lib/browser/user.js +64 -100
- package/lib/browser/userMap/WebsocketSubscription.js +1 -1
- package/lib/browser/userMap/grpcSubscription.js +1 -1
- package/lib/browser/userMap/revenueShareEscrowMap.js +4 -4
- package/lib/browser/userMap/userMap.js +4 -5
- package/lib/browser/userMap/userStatsMap.js +2 -3
- package/lib/browser/userStats.d.ts +5 -0
- package/lib/node/accounts/fetch.d.ts +6 -6
- package/lib/node/accounts/fetch.d.ts.map +1 -1
- package/lib/node/accounts/fetch.js +4 -4
- package/lib/node/accounts/grpcAccountSubscriber.d.ts +2 -2
- package/lib/node/accounts/grpcAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/grpcDriftClientAccountSubscriber.d.ts +2 -2
- package/lib/node/accounts/grpcDriftClientAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/grpcDriftClientAccountSubscriberV2.d.ts +3 -3
- package/lib/node/accounts/grpcDriftClientAccountSubscriberV2.d.ts.map +1 -1
- package/lib/node/accounts/grpcDriftClientAccountSubscriberV2.js +2 -2
- package/lib/node/accounts/grpcInsuranceFundStakeAccountSubscriber.d.ts +2 -2
- package/lib/node/accounts/grpcInsuranceFundStakeAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/grpcMultiAccountSubscriber.d.ts +2 -2
- package/lib/node/accounts/grpcMultiAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/grpcMultiUserAccountSubscriber.d.ts +2 -2
- package/lib/node/accounts/grpcMultiUserAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/grpcProgramAccountSubscriber.d.ts +2 -2
- package/lib/node/accounts/grpcProgramAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/grpcUserAccountSubscriber.d.ts +2 -2
- package/lib/node/accounts/grpcUserAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/grpcUserStatsAccountSubscriber.d.ts +2 -2
- package/lib/node/accounts/grpcUserStatsAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/laserProgramAccountSubscriber.d.ts +2 -2
- package/lib/node/accounts/laserProgramAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/oneShotUserAccountSubscriber.d.ts +3 -3
- package/lib/node/accounts/oneShotUserAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/oneShotUserStatsAccountSubscriber.d.ts +3 -3
- package/lib/node/accounts/oneShotUserStatsAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/pollingDriftClientAccountSubscriber.d.ts +3 -3
- package/lib/node/accounts/pollingDriftClientAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/pollingDriftClientAccountSubscriber.js +2 -2
- package/lib/node/accounts/pollingInsuranceFundStakeAccountSubscriber.d.ts +3 -3
- package/lib/node/accounts/pollingInsuranceFundStakeAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/pollingInsuranceFundStakeAccountSubscriber.js +1 -1
- package/lib/node/accounts/pollingOracleAccountSubscriber.d.ts +2 -2
- package/lib/node/accounts/pollingOracleAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/pollingTokenAccountSubscriber.d.ts +2 -2
- package/lib/node/accounts/pollingTokenAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/pollingUserAccountSubscriber.js +2 -2
- package/lib/node/accounts/pollingUserStatsAccountSubscriber.d.ts +3 -3
- package/lib/node/accounts/pollingUserStatsAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/pollingUserStatsAccountSubscriber.js +1 -1
- package/lib/node/accounts/testBulkAccountLoader.d.ts.map +1 -1
- package/lib/node/accounts/testBulkAccountLoader.js +3 -5
- package/lib/node/accounts/types.d.ts +11 -14
- package/lib/node/accounts/types.d.ts.map +1 -1
- package/lib/node/accounts/webSocketAccountSubscriber.d.ts +3 -3
- package/lib/node/accounts/webSocketAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/webSocketAccountSubscriber.js +1 -2
- package/lib/node/accounts/webSocketAccountSubscriberV2.d.ts +3 -3
- package/lib/node/accounts/webSocketAccountSubscriberV2.d.ts.map +1 -1
- package/lib/node/accounts/webSocketDriftClientAccountSubscriber.d.ts +5 -5
- package/lib/node/accounts/webSocketDriftClientAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/webSocketDriftClientAccountSubscriber.js +2 -2
- package/lib/node/accounts/webSocketDriftClientAccountSubscriberV2.d.ts +3 -3
- package/lib/node/accounts/webSocketDriftClientAccountSubscriberV2.d.ts.map +1 -1
- package/lib/node/accounts/webSocketDriftClientAccountSubscriberV2.js +2 -2
- package/lib/node/accounts/webSocketInsuranceFundStakeAccountSubscriber.d.ts +3 -3
- package/lib/node/accounts/webSocketInsuranceFundStakeAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/webSocketProgramAccountSubscriber.d.ts +3 -3
- package/lib/node/accounts/webSocketProgramAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/webSocketProgramAccountSubscriberV2.d.ts +3 -3
- package/lib/node/accounts/webSocketProgramAccountSubscriberV2.d.ts.map +1 -1
- package/lib/node/accounts/webSocketProgramAccountsSubscriberV2.d.ts +3 -3
- package/lib/node/accounts/webSocketProgramAccountsSubscriberV2.d.ts.map +1 -1
- package/lib/node/accounts/webSocketUserAccountSubscriber.d.ts +3 -3
- package/lib/node/accounts/webSocketUserAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/webSocketUserStatsAccountSubsriber.d.ts +3 -3
- package/lib/node/accounts/webSocketUserStatsAccountSubsriber.d.ts.map +1 -1
- package/lib/node/accounts/websocketProgramUserAccountSubscriber.d.ts +2 -2
- package/lib/node/accounts/websocketProgramUserAccountSubscriber.d.ts.map +1 -1
- package/lib/node/addresses/pda.d.ts +6 -2
- package/lib/node/addresses/pda.d.ts.map +1 -1
- package/lib/node/addresses/pda.js +7 -12
- package/lib/node/adminClient.d.ts +11 -9
- package/lib/node/adminClient.d.ts.map +1 -1
- package/lib/node/adminClient.js +30 -72
- package/lib/node/auctionSubscriber/auctionSubscriber.d.ts.map +1 -1
- package/lib/node/auctionSubscriber/auctionSubscriber.js +1 -1
- package/lib/node/auctionSubscriber/auctionSubscriberGrpc.d.ts.map +1 -1
- package/lib/node/auctionSubscriber/auctionSubscriberGrpc.js +1 -1
- package/lib/node/config.d.ts +7 -3
- package/lib/node/config.d.ts.map +1 -1
- package/lib/node/config.js +9 -7
- package/lib/node/constants/index.d.ts +5 -0
- package/lib/node/constants/index.d.ts.map +1 -1
- package/lib/node/constants/index.js +5 -0
- package/lib/node/constants/numericConstants.d.ts +1 -1
- package/lib/node/constants/numericConstants.d.ts.map +1 -1
- package/lib/node/constants/numericConstants.js +3 -3
- package/lib/node/constants/perpMarkets.d.ts.map +1 -1
- package/lib/node/constants/perpMarkets.js +3 -412
- package/lib/node/constants/spotMarkets.d.ts.map +1 -1
- package/lib/node/constants/spotMarkets.js +7 -91
- package/lib/node/constituentMap/constituentMap.d.ts.map +1 -1
- package/lib/node/constituentMap/constituentMap.js +2 -2
- package/lib/node/constituentMap/pollingConstituentAccountSubscriber.d.ts +3 -3
- package/lib/node/constituentMap/pollingConstituentAccountSubscriber.d.ts.map +1 -1
- package/lib/node/constituentMap/webSocketConstituentAccountSubscriber.d.ts +3 -3
- package/lib/node/constituentMap/webSocketConstituentAccountSubscriber.d.ts.map +1 -1
- package/lib/node/constituentMap/webSocketConstituentAccountSubscriber.js +1 -1
- package/lib/node/decode/customCoder.d.ts +7 -9
- package/lib/node/decode/customCoder.d.ts.map +1 -1
- package/lib/node/decode/customCoder.js +17 -28
- package/lib/node/decode/user.d.ts.map +1 -1
- package/lib/node/decode/user.js +7 -25
- package/lib/node/dlob/DLOB.d.ts +12 -0
- package/lib/node/dlob/DLOB.d.ts.map +1 -1
- package/lib/node/dlob/DLOB.js +12 -0
- package/lib/node/dlob/orderBookLevels.d.ts.map +1 -1
- package/lib/node/dlob/orderBookLevels.js +1 -1
- package/lib/node/driftClient.d.ts +32 -59
- package/lib/node/driftClient.d.ts.map +1 -1
- package/lib/node/driftClient.js +85 -562
- package/lib/node/driftClientConfig.d.ts +7 -0
- package/lib/node/driftClientConfig.d.ts.map +1 -1
- package/lib/node/events/eventSubscriber.d.ts +8 -0
- package/lib/node/events/eventSubscriber.d.ts.map +1 -1
- package/lib/node/events/eventSubscriber.js +5 -2
- package/lib/node/events/parse.d.ts +1 -1
- package/lib/node/events/parse.d.ts.map +1 -1
- package/lib/node/factory/oracleClient.d.ts +2 -2
- package/lib/node/factory/oracleClient.d.ts.map +1 -1
- package/lib/node/factory/oracleClient.js +9 -21
- package/lib/node/idl/drift.d.ts +25709 -0
- package/lib/node/idl/drift.d.ts.map +1 -0
- package/lib/node/idl/drift.js +2 -0
- package/lib/node/idl/drift.json +20850 -15287
- package/lib/node/idl/pyth.d.ts +98 -0
- package/lib/node/idl/pyth.d.ts.map +1 -0
- package/lib/node/idl/pyth.js +2 -0
- package/lib/node/idl/token_faucet.d.ts +198 -0
- package/lib/node/idl/token_faucet.d.ts.map +1 -0
- package/lib/node/idl/token_faucet.js +2 -0
- package/lib/node/idl/token_faucet.json +148 -61
- package/lib/node/index.d.ts +13 -6
- package/lib/node/index.d.ts.map +1 -1
- package/lib/node/index.js +12 -5
- package/lib/node/marinade/index.d.ts +1 -1
- package/lib/node/marinade/index.d.ts.map +1 -1
- package/lib/node/marinade/index.js +2 -2
- package/lib/node/math/amm.d.ts +4 -5
- package/lib/node/math/amm.d.ts.map +1 -1
- package/lib/node/math/amm.js +8 -35
- package/lib/node/math/funding.d.ts.map +1 -1
- package/lib/node/math/funding.js +6 -1
- package/lib/node/math/margin.d.ts +3 -4
- package/lib/node/math/margin.d.ts.map +1 -1
- package/lib/node/math/margin.js +16 -47
- package/lib/node/math/market.d.ts +2 -2
- package/lib/node/math/market.d.ts.map +1 -1
- package/lib/node/math/market.js +10 -42
- package/lib/node/math/oracles.d.ts.map +1 -1
- package/lib/node/math/oracles.js +14 -19
- package/lib/node/math/position.d.ts.map +1 -1
- package/lib/node/math/position.js +1 -1
- package/lib/node/math/trade.d.ts.map +1 -1
- package/lib/node/math/trade.js +4 -4
- package/lib/node/memcmp.js +8 -8
- package/lib/node/openbook/openbookV2Subscriber.d.ts +1 -1
- package/lib/node/openbook/openbookV2Subscriber.d.ts.map +1 -1
- package/lib/node/openbook/openbookV2Subscriber.js +3 -3
- package/lib/node/oracles/oracleClientCache.d.ts +2 -2
- package/lib/node/oracles/oracleClientCache.d.ts.map +1 -1
- package/lib/node/oracles/prelaunchOracleClient.d.ts +2 -2
- package/lib/node/oracles/prelaunchOracleClient.d.ts.map +1 -1
- package/lib/node/oracles/prelaunchOracleClient.js +1 -1
- package/lib/node/oracles/pythLazerClient.d.ts.map +1 -1
- package/lib/node/oracles/pythLazerClient.js +3 -5
- package/lib/node/oracles/types.d.ts +6 -0
- package/lib/node/oracles/types.d.ts.map +1 -1
- package/lib/node/orderParams.d.ts +0 -1
- package/lib/node/orderParams.d.ts.map +1 -1
- package/lib/node/orderParams.js +1 -5
- package/lib/node/orderSubscriber/OrderSubscriber.d.ts.map +1 -1
- package/lib/node/orderSubscriber/OrderSubscriber.js +3 -4
- package/lib/node/orderSubscriber/WebsocketSubscription.js +1 -1
- package/lib/node/orderSubscriber/grpcSubscription.js +2 -2
- package/lib/node/orderSubscriber/index.d.ts +5 -0
- package/lib/node/orderSubscriber/index.d.ts.map +1 -1
- package/lib/node/orderSubscriber/index.js +5 -0
- package/lib/node/priorityFee/index.d.ts +5 -0
- package/lib/node/priorityFee/index.d.ts.map +1 -1
- package/lib/node/priorityFee/index.js +5 -0
- package/lib/node/pyth/index.d.ts +2 -2
- package/lib/node/pyth/index.d.ts.map +1 -1
- package/lib/node/pyth/types.d.ts +1 -1
- package/lib/node/pyth/types.d.ts.map +1 -1
- package/lib/node/swift/grpcSignedMsgUserAccountSubscriber.js +1 -1
- package/lib/node/swift/index.d.ts +7 -0
- package/lib/node/swift/index.d.ts.map +1 -1
- package/lib/node/swift/index.js +7 -0
- package/lib/node/swift/signedMsgUserAccountSubscriber.d.ts.map +1 -1
- package/lib/node/swift/signedMsgUserAccountSubscriber.js +4 -3
- package/lib/node/tokenFaucet.d.ts +2 -2
- package/lib/node/tokenFaucet.d.ts.map +1 -1
- package/lib/node/tokenFaucet.js +4 -4
- package/lib/node/tx/txHandler.d.ts +12 -0
- package/lib/node/tx/txHandler.d.ts.map +1 -1
- package/lib/node/tx/txHandler.js +12 -0
- package/lib/node/types.d.ts +19 -31
- package/lib/node/types.d.ts.map +1 -1
- package/lib/node/types.js +6 -11
- package/lib/node/user.d.ts +27 -18
- package/lib/node/user.d.ts.map +1 -1
- package/lib/node/user.js +64 -100
- package/lib/node/userMap/WebsocketSubscription.js +1 -1
- package/lib/node/userMap/grpcSubscription.js +1 -1
- 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.map +1 -1
- package/lib/node/userMap/userMap.js +4 -5
- package/lib/node/userMap/userStatsMap.d.ts.map +1 -1
- package/lib/node/userMap/userStatsMap.js +2 -3
- package/lib/node/userStats.d.ts +5 -0
- package/lib/node/userStats.d.ts.map +1 -1
- package/package.json +5 -7
- package/src/accounts/fetch.ts +18 -17
- package/src/accounts/grpcAccountSubscriber.ts +3 -3
- package/src/accounts/grpcDriftClientAccountSubscriber.ts +2 -3
- package/src/accounts/grpcDriftClientAccountSubscriberV2.ts +5 -6
- package/src/accounts/grpcInsuranceFundStakeAccountSubscriber.ts +2 -2
- package/src/accounts/grpcMultiAccountSubscriber.ts +4 -4
- package/src/accounts/grpcMultiUserAccountSubscriber.ts +4 -4
- package/src/accounts/grpcProgramAccountSubscriber.ts +3 -3
- package/src/accounts/grpcUserAccountSubscriber.ts +2 -2
- package/src/accounts/grpcUserStatsAccountSubscriber.ts +2 -2
- package/src/accounts/laserProgramAccountSubscriber.ts +3 -3
- package/src/accounts/oneShotUserAccountSubscriber.ts +6 -7
- package/src/accounts/oneShotUserStatsAccountSubscriber.ts +10 -9
- package/src/accounts/pollingDriftClientAccountSubscriber.ts +12 -11
- package/src/accounts/pollingInsuranceFundStakeAccountSubscriber.ts +11 -10
- package/src/accounts/pollingOracleAccountSubscriber.ts +2 -2
- package/src/accounts/pollingTokenAccountSubscriber.ts +2 -2
- package/src/accounts/pollingUserAccountSubscriber.ts +2 -2
- package/src/accounts/pollingUserStatsAccountSubscriber.ts +14 -14
- package/src/accounts/testBulkAccountLoader.ts +3 -5
- package/src/accounts/types.ts +10 -25
- package/src/accounts/webSocketAccountSubscriber.ts +5 -5
- package/src/accounts/webSocketAccountSubscriberV2.ts +4 -3
- package/src/accounts/webSocketDriftClientAccountSubscriber.ts +9 -10
- package/src/accounts/webSocketDriftClientAccountSubscriberV2.ts +13 -10
- package/src/accounts/webSocketInsuranceFundStakeAccountSubscriber.ts +3 -3
- package/src/accounts/webSocketProgramAccountSubscriber.ts +4 -3
- package/src/accounts/webSocketProgramAccountSubscriberV2.ts +4 -3
- package/src/accounts/webSocketProgramAccountsSubscriberV2.ts +4 -3
- package/src/accounts/webSocketUserAccountSubscriber.ts +3 -3
- package/src/accounts/webSocketUserStatsAccountSubsriber.ts +3 -3
- package/src/accounts/websocketProgramUserAccountSubscriber.ts +4 -4
- package/src/addresses/pda.ts +6 -22
- package/src/adminClient.ts +154 -239
- package/src/auctionSubscriber/auctionSubscriber.ts +5 -3
- package/src/auctionSubscriber/auctionSubscriberGrpc.ts +5 -3
- package/src/config.ts +24 -16
- package/src/constants/index.ts +5 -0
- package/src/constants/numericConstants.ts +2 -3
- package/src/constants/perpMarkets.ts +3 -445
- package/src/constants/spotMarkets.ts +7 -102
- package/src/constituentMap/constituentMap.ts +5 -6
- package/src/constituentMap/pollingConstituentAccountSubscriber.ts +3 -3
- package/src/constituentMap/webSocketConstituentAccountSubscriber.ts +6 -6
- package/src/decode/customCoder.ts +26 -35
- package/src/decode/user.ts +7 -25
- package/src/dlob/DLOB.ts +12 -0
- package/src/dlob/orderBookLevels.ts +0 -1
- package/src/driftClient.ts +245 -1091
- package/src/driftClientConfig.ts +7 -0
- package/src/events/eventSubscriber.ts +14 -2
- package/src/events/parse.ts +2 -2
- package/src/factory/oracleClient.ts +17 -28
- package/src/idl/drift.json +20850 -15287
- package/src/idl/drift.ts +25708 -0
- package/src/idl/pyth.ts +97 -0
- package/src/idl/token_faucet.json +148 -61
- package/src/idl/token_faucet.ts +197 -0
- package/src/index.ts +13 -12
- package/src/margin/README.md +0 -1
- package/src/marinade/index.ts +2 -2
- package/src/math/amm.ts +2 -48
- package/src/math/funding.ts +8 -3
- package/src/math/margin.ts +12 -67
- package/src/math/market.ts +15 -69
- package/src/math/oracles.ts +14 -30
- package/src/math/position.ts +0 -1
- package/src/math/trade.ts +0 -4
- package/src/memcmp.ts +1 -1
- package/src/openbook/openbookV2Subscriber.ts +1 -1
- package/src/oracles/oracleClientCache.ts +2 -2
- package/src/oracles/prelaunchOracleClient.ts +9 -8
- package/src/oracles/pythLazerClient.ts +10 -12
- package/src/oracles/types.ts +6 -0
- package/src/orderParams.ts +0 -5
- package/src/orderSubscriber/OrderSubscriber.ts +7 -6
- package/src/orderSubscriber/WebsocketSubscription.ts +1 -1
- package/src/orderSubscriber/grpcSubscription.ts +2 -2
- package/src/orderSubscriber/index.ts +5 -0
- package/src/priorityFee/index.ts +5 -0
- package/src/pyth/index.ts +4 -4
- package/src/pyth/types.ts +1 -1
- package/src/swift/grpcSignedMsgUserAccountSubscriber.ts +1 -1
- package/src/swift/index.ts +7 -0
- package/src/swift/signedMsgUserAccountSubscriber.ts +7 -4
- package/src/tokenFaucet.ts +8 -4
- package/src/tx/txHandler.ts +12 -0
- package/src/types.ts +16 -20
- package/src/user.ts +66 -144
- package/src/userMap/WebsocketSubscription.ts +1 -1
- package/src/userMap/grpcSubscription.ts +1 -1
- package/src/userMap/revenueShareEscrowMap.ts +24 -20
- package/src/userMap/userMap.ts +8 -7
- package/src/userMap/userStatsMap.ts +6 -5
- package/src/userStats.ts +5 -0
- package/tests/accounts/customizedCadenceBulkAccountLoader.test.ts +5 -4
- package/tests/amm/test.ts +45 -64
- package/tests/ci/verifyConstants.ts +23 -26
- package/tests/decode/test.ts +2 -4
- package/tests/dlob/helpers.ts +8 -15
- package/tests/user/helpers.ts +0 -2
- package/tests/user/marginCalculations.test.ts +2 -3
- package/tests/user/test.ts +18 -15
- package/lib/browser/accounts/pollingHighLeverageModeConfigAccountSubscriber.d.ts +0 -29
- package/lib/browser/accounts/pollingHighLeverageModeConfigAccountSubscriber.js +0 -111
- package/lib/browser/accounts/webSocketHighLeverageModeConfigAccountSubscriber.d.ts +0 -23
- package/lib/browser/accounts/webSocketHighLeverageModeConfigAccountSubscriber.js +0 -69
- package/lib/browser/idl/pyth_solana_receiver.json +0 -628
- package/lib/browser/idl/switchboard.json +0 -8354
- package/lib/browser/idl/switchboard_on_demand_30.json +0 -5849
- package/lib/browser/oracles/pythPullClient.d.ts +0 -19
- package/lib/browser/oracles/pythPullClient.js +0 -65
- package/lib/browser/oracles/switchboardClient.d.ts +0 -12
- package/lib/browser/oracles/switchboardClient.js +0 -40
- package/lib/browser/oracles/switchboardOnDemandClient.d.ts +0 -12
- package/lib/browser/oracles/switchboardOnDemandClient.js +0 -33
- package/lib/browser/util/pythOracleUtils.d.ts +0 -2
- package/lib/browser/util/pythOracleUtils.js +0 -15
- package/lib/node/accounts/pollingHighLeverageModeConfigAccountSubscriber.d.ts +0 -30
- package/lib/node/accounts/pollingHighLeverageModeConfigAccountSubscriber.d.ts.map +0 -1
- package/lib/node/accounts/pollingHighLeverageModeConfigAccountSubscriber.js +0 -111
- package/lib/node/accounts/webSocketHighLeverageModeConfigAccountSubscriber.d.ts +0 -24
- package/lib/node/accounts/webSocketHighLeverageModeConfigAccountSubscriber.d.ts.map +0 -1
- package/lib/node/accounts/webSocketHighLeverageModeConfigAccountSubscriber.js +0 -69
- package/lib/node/idl/pyth_solana_receiver.json +0 -628
- package/lib/node/idl/switchboard.json +0 -8354
- package/lib/node/idl/switchboard_on_demand_30.json +0 -5849
- package/lib/node/oracles/pythPullClient.d.ts +0 -20
- package/lib/node/oracles/pythPullClient.d.ts.map +0 -1
- package/lib/node/oracles/pythPullClient.js +0 -65
- package/lib/node/oracles/switchboardClient.d.ts +0 -13
- package/lib/node/oracles/switchboardClient.d.ts.map +0 -1
- package/lib/node/oracles/switchboardClient.js +0 -40
- package/lib/node/oracles/switchboardOnDemandClient.d.ts +0 -13
- package/lib/node/oracles/switchboardOnDemandClient.d.ts.map +0 -1
- package/lib/node/oracles/switchboardOnDemandClient.js +0 -33
- package/lib/node/util/pythOracleUtils.d.ts +0 -3
- package/lib/node/util/pythOracleUtils.d.ts.map +0 -1
- package/lib/node/util/pythOracleUtils.js +0 -15
- package/src/accounts/pollingHighLeverageModeConfigAccountSubscriber.ts +0 -189
- package/src/accounts/webSocketHighLeverageModeConfigAccountSubscriber.ts +0 -131
- package/src/idl/switchboard.json +0 -8354
- package/src/idl/switchboard_on_demand_30.json +0 -5849
- package/src/oracles/pythPullClient.ts +0 -112
- package/src/oracles/switchboardClient.ts +0 -77
- package/src/oracles/switchboardOnDemandClient.ts +0 -64
- package/src/util/pythOracleUtils.ts +0 -11
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { ResubOpts, GrpcConfigs } from './types';
|
|
2
|
-
import { Program } from '@coral-xyz/anchor';
|
|
3
2
|
import { PublicKey } from '@solana/web3.js';
|
|
4
3
|
import { UserAccount } from '../types';
|
|
5
4
|
import { WebSocketUserAccountSubscriber } from './webSocketUserAccountSubscriber';
|
|
5
|
+
import { DriftProgram } from '../config';
|
|
6
6
|
export declare class grpcUserAccountSubscriber extends WebSocketUserAccountSubscriber {
|
|
7
7
|
private grpcConfigs;
|
|
8
|
-
constructor(grpcConfigs: GrpcConfigs, program:
|
|
8
|
+
constructor(grpcConfigs: GrpcConfigs, program: DriftProgram, userAccountPublicKey: PublicKey, resubOpts?: ResubOpts);
|
|
9
9
|
subscribe(userAccount?: UserAccount): Promise<boolean>;
|
|
10
10
|
}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { ResubOpts, GrpcConfigs } from './types';
|
|
2
|
-
import { Program } from '@coral-xyz/anchor';
|
|
3
2
|
import { PublicKey } from '@solana/web3.js';
|
|
4
3
|
import { UserStatsAccount } from '../types';
|
|
5
4
|
import { WebSocketUserStatsAccountSubscriber } from './webSocketUserStatsAccountSubsriber';
|
|
5
|
+
import { DriftProgram } from '../config';
|
|
6
6
|
export declare class grpcUserStatsAccountSubscriber extends WebSocketUserStatsAccountSubscriber {
|
|
7
7
|
private grpcConfigs;
|
|
8
|
-
constructor(grpcConfigs: GrpcConfigs, program:
|
|
8
|
+
constructor(grpcConfigs: GrpcConfigs, program: DriftProgram, userStatsAccountPublicKey: PublicKey, resubOpts?: ResubOpts);
|
|
9
9
|
subscribe(userStatsAccount?: UserStatsAccount): Promise<boolean>;
|
|
10
10
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
import { LaserGrpcConfigs, ResubOpts } from './types';
|
|
3
|
-
import { Program } from '@coral-xyz/anchor';
|
|
4
3
|
import { Context, MemcmpFilter, PublicKey } from '@solana/web3.js';
|
|
4
|
+
import { DriftProgram } from '../config';
|
|
5
5
|
import { WebSocketProgramAccountSubscriber } from './webSocketProgramAccountSubscriber';
|
|
6
6
|
import { LaserCommitmentLevel } from '../isomorphic/grpc';
|
|
7
7
|
type LaserCommitment = (typeof LaserCommitmentLevel)[keyof typeof LaserCommitmentLevel];
|
|
@@ -12,7 +12,7 @@ export declare class LaserstreamProgramAccountSubscriber<T> extends WebSocketPro
|
|
|
12
12
|
private readonly laserConfig;
|
|
13
13
|
private readonly laserCommitmentLevel;
|
|
14
14
|
private constructor();
|
|
15
|
-
static create<U>(grpcConfigs: LaserGrpcConfigs, subscriptionName: string, accountDiscriminator: string, program:
|
|
15
|
+
static create<U>(grpcConfigs: LaserGrpcConfigs, subscriptionName: string, accountDiscriminator: string, program: DriftProgram, decodeBufferFn: (accountName: string, ix: Buffer) => U, options?: {
|
|
16
16
|
filters: MemcmpFilter[];
|
|
17
17
|
}, resubOpts?: ResubOpts): Promise<LaserstreamProgramAccountSubscriber<U>>;
|
|
18
18
|
subscribe(onChange: (accountId: PublicKey, data: T, context: Context, buffer: Buffer) => void): Promise<void>;
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
import { Commitment, PublicKey } from '@solana/web3.js';
|
|
2
2
|
import { UserAccount } from '../types';
|
|
3
3
|
import { BasicUserAccountSubscriber } from './basicUserAccountSubscriber';
|
|
4
|
-
import { Program } from '@coral-xyz/anchor';
|
|
5
4
|
import { UserAccountSubscriber } from './types';
|
|
5
|
+
import { DriftProgram } from '../config';
|
|
6
6
|
/**
|
|
7
7
|
* Simple implementation of UserAccountSubscriber. It will fetch the UserAccount
|
|
8
8
|
* date on subscribe (or call to fetch) if no account data is provided on init.
|
|
9
9
|
* Expect to use only 1 RPC call unless you call fetch repeatedly.
|
|
10
10
|
*/
|
|
11
11
|
export declare class OneShotUserAccountSubscriber extends BasicUserAccountSubscriber implements UserAccountSubscriber {
|
|
12
|
-
program:
|
|
12
|
+
program: DriftProgram;
|
|
13
13
|
commitment: Commitment;
|
|
14
|
-
constructor(program:
|
|
14
|
+
constructor(program: DriftProgram, userAccountPublicKey: PublicKey, data?: UserAccount, slot?: number, commitment?: Commitment);
|
|
15
15
|
subscribe(userAccount?: UserAccount): Promise<boolean>;
|
|
16
16
|
fetchIfUnloaded(): Promise<void>;
|
|
17
17
|
fetch(): Promise<void>;
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
import { Commitment, PublicKey } from '@solana/web3.js';
|
|
2
2
|
import { UserStatsAccount } from '../types';
|
|
3
3
|
import { BasicUserStatsAccountSubscriber } from './basicUserStatsAccountSubscriber';
|
|
4
|
-
import { Program } from '@coral-xyz/anchor';
|
|
5
4
|
import { UserStatsAccountSubscriber } from './types';
|
|
5
|
+
import { DriftProgram } from '../config';
|
|
6
6
|
/**
|
|
7
7
|
* Simple implementation of UserStatsAccountSubscriber. It will fetch the UserStatsAccount
|
|
8
8
|
* data on subscribe (or call to fetch) if no account data is provided on init.
|
|
9
9
|
* Expect to use only 1 RPC call unless you call fetch repeatedly.
|
|
10
10
|
*/
|
|
11
11
|
export declare class OneShotUserStatsAccountSubscriber extends BasicUserStatsAccountSubscriber implements UserStatsAccountSubscriber {
|
|
12
|
-
program:
|
|
12
|
+
program: DriftProgram;
|
|
13
13
|
commitment: Commitment;
|
|
14
|
-
constructor(program:
|
|
14
|
+
constructor(program: DriftProgram, userStatsAccountPublicKey: PublicKey, data?: UserStatsAccount, slot?: number, commitment?: Commitment);
|
|
15
15
|
subscribe(userStatsAccount?: UserStatsAccount): Promise<boolean>;
|
|
16
16
|
fetchIfUnloaded(): Promise<void>;
|
|
17
17
|
fetch(): Promise<void>;
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
import { AccountToPoll, DataAndSlot, DelistedMarketSetting, DriftClientAccountEvents, DriftClientAccountSubscriber, OraclesToPoll } from './types';
|
|
3
|
-
import { Program } from '@coral-xyz/anchor';
|
|
4
3
|
import StrictEventEmitter from 'strict-event-emitter-types';
|
|
5
4
|
import { EventEmitter } from 'events';
|
|
6
5
|
import { PerpMarketAccount, SpotMarketAccount, StateAccount, UserAccount } from '../types';
|
|
@@ -8,9 +7,10 @@ import { BulkAccountLoader } from './bulkAccountLoader';
|
|
|
8
7
|
import { PublicKey } from '@solana/web3.js';
|
|
9
8
|
import { OracleInfo, OraclePriceData } from '../oracles/types';
|
|
10
9
|
import { OracleClientCache } from '../oracles/oracleClientCache';
|
|
10
|
+
import { DriftProgram } from '../config';
|
|
11
11
|
export declare class PollingDriftClientAccountSubscriber implements DriftClientAccountSubscriber {
|
|
12
12
|
isSubscribed: boolean;
|
|
13
|
-
program:
|
|
13
|
+
program: DriftProgram;
|
|
14
14
|
perpMarketIndexes: number[];
|
|
15
15
|
spotMarketIndexes: number[];
|
|
16
16
|
oracleInfos: OracleInfo[];
|
|
@@ -34,7 +34,7 @@ export declare class PollingDriftClientAccountSubscriber implements DriftClientA
|
|
|
34
34
|
private isSubscribing;
|
|
35
35
|
private subscriptionPromise;
|
|
36
36
|
private subscriptionPromiseResolver;
|
|
37
|
-
constructor(program:
|
|
37
|
+
constructor(program: DriftProgram, accountLoader: BulkAccountLoader, perpMarketIndexes: number[], spotMarketIndexes: number[], oracleInfos: OracleInfo[], shouldFindAllMarketsAndOracles: boolean, delistedMarketSetting: DelistedMarketSetting);
|
|
38
38
|
subscribe(): Promise<boolean>;
|
|
39
39
|
updateAccountsToPoll(): Promise<void>;
|
|
40
40
|
updatePerpMarketAccountsToPoll(): Promise<boolean>;
|
|
@@ -152,7 +152,7 @@ class PollingDriftClientAccountSubscriber {
|
|
|
152
152
|
accountToPoll.callbackId = await this.accountLoader.addAccount(accountToPoll.publicKey, (buffer, slot) => {
|
|
153
153
|
if (!buffer)
|
|
154
154
|
return;
|
|
155
|
-
const account = this.program.
|
|
155
|
+
const account = this.program.coder.accounts.decodeUnchecked(accountToPoll.key, buffer);
|
|
156
156
|
const dataAndSlot = {
|
|
157
157
|
data: account,
|
|
158
158
|
slot,
|
|
@@ -196,7 +196,7 @@ class PollingDriftClientAccountSubscriber {
|
|
|
196
196
|
}
|
|
197
197
|
const { buffer, slot } = bufferAndSlot;
|
|
198
198
|
if (buffer) {
|
|
199
|
-
const account = this.program.
|
|
199
|
+
const account = this.program.coder.accounts.decodeUnchecked(accountToPoll.key, buffer);
|
|
200
200
|
if (accountToPoll.mapKey != undefined) {
|
|
201
201
|
this[accountToPoll.key].set(accountToPoll.mapKey, {
|
|
202
202
|
data: account,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
import { DataAndSlot, InsuranceFundStakeAccountEvents, InsuranceFundStakeAccountSubscriber } from './types';
|
|
3
|
-
import {
|
|
3
|
+
import { DriftProgram } from '../config';
|
|
4
4
|
import StrictEventEmitter from 'strict-event-emitter-types';
|
|
5
5
|
import { EventEmitter } from 'events';
|
|
6
6
|
import { PublicKey } from '@solana/web3.js';
|
|
@@ -8,14 +8,14 @@ import { BulkAccountLoader } from './bulkAccountLoader';
|
|
|
8
8
|
import { InsuranceFundStake } from '../types';
|
|
9
9
|
export declare class PollingInsuranceFundStakeAccountSubscriber implements InsuranceFundStakeAccountSubscriber {
|
|
10
10
|
isSubscribed: boolean;
|
|
11
|
-
program:
|
|
11
|
+
program: DriftProgram;
|
|
12
12
|
eventEmitter: StrictEventEmitter<EventEmitter, InsuranceFundStakeAccountEvents>;
|
|
13
13
|
insuranceFundStakeAccountPublicKey: PublicKey;
|
|
14
14
|
accountLoader: BulkAccountLoader;
|
|
15
15
|
callbackId?: string;
|
|
16
16
|
errorCallbackId?: string;
|
|
17
17
|
insuranceFundStakeAccountAndSlot?: DataAndSlot<InsuranceFundStake>;
|
|
18
|
-
constructor(program:
|
|
18
|
+
constructor(program: DriftProgram, publicKey: PublicKey, accountLoader: BulkAccountLoader);
|
|
19
19
|
subscribe(insuranceFundStake?: InsuranceFundStake): Promise<boolean>;
|
|
20
20
|
addToAccountLoader(): Promise<void>;
|
|
21
21
|
fetchIfUnloaded(): Promise<void>;
|
|
@@ -40,7 +40,7 @@ class PollingInsuranceFundStakeAccountSubscriber {
|
|
|
40
40
|
this.insuranceFundStakeAccountAndSlot.slot > slot) {
|
|
41
41
|
return;
|
|
42
42
|
}
|
|
43
|
-
const account = this.program.
|
|
43
|
+
const account = this.program.coder.accounts.decode('insuranceFundStake', buffer);
|
|
44
44
|
this.insuranceFundStakeAccountAndSlot = { data: account, slot };
|
|
45
45
|
this.eventEmitter.emit('insuranceFundStakeAccountUpdate', account);
|
|
46
46
|
this.eventEmitter.emit('update');
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
import { DataAndSlot, OracleEvents, OracleAccountSubscriber } from './types';
|
|
3
|
-
import { Program } from '@coral-xyz/anchor';
|
|
4
3
|
import StrictEventEmitter from 'strict-event-emitter-types';
|
|
5
4
|
import { EventEmitter } from 'events';
|
|
6
5
|
import { PublicKey } from '@solana/web3.js';
|
|
7
6
|
import { BulkAccountLoader } from './bulkAccountLoader';
|
|
8
7
|
import { OracleClient, OraclePriceData } from '../oracles/types';
|
|
8
|
+
import { DriftProgram } from '../config';
|
|
9
9
|
export declare class PollingOracleAccountSubscriber implements OracleAccountSubscriber {
|
|
10
10
|
isSubscribed: boolean;
|
|
11
|
-
program:
|
|
11
|
+
program: DriftProgram;
|
|
12
12
|
eventEmitter: StrictEventEmitter<EventEmitter, OracleEvents>;
|
|
13
13
|
publicKey: PublicKey;
|
|
14
14
|
accountLoader: BulkAccountLoader;
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
import { DataAndSlot, TokenAccountEvents, TokenAccountSubscriber } from './types';
|
|
3
|
-
import { Program } from '@coral-xyz/anchor';
|
|
4
3
|
import StrictEventEmitter from 'strict-event-emitter-types';
|
|
5
4
|
import { EventEmitter } from 'events';
|
|
6
5
|
import { PublicKey } from '@solana/web3.js';
|
|
7
6
|
import { BulkAccountLoader } from './bulkAccountLoader';
|
|
8
7
|
import { Account } from '@solana/spl-token';
|
|
8
|
+
import { DriftProgram } from '../config';
|
|
9
9
|
export declare class PollingTokenAccountSubscriber implements TokenAccountSubscriber {
|
|
10
10
|
isSubscribed: boolean;
|
|
11
|
-
program:
|
|
11
|
+
program: DriftProgram;
|
|
12
12
|
eventEmitter: StrictEventEmitter<EventEmitter, TokenAccountEvents>;
|
|
13
13
|
publicKey: PublicKey;
|
|
14
14
|
accountLoader: BulkAccountLoader;
|
|
@@ -38,7 +38,7 @@ class PollingUserAccountSubscriber {
|
|
|
38
38
|
if (this.user && this.user.slot > slot) {
|
|
39
39
|
return;
|
|
40
40
|
}
|
|
41
|
-
const account = this.decode('
|
|
41
|
+
const account = this.decode('user', buffer);
|
|
42
42
|
this.user = { data: account, slot };
|
|
43
43
|
this.eventEmitter.emit('userAccountUpdate', account);
|
|
44
44
|
this.eventEmitter.emit('update');
|
|
@@ -58,7 +58,7 @@ class PollingUserAccountSubscriber {
|
|
|
58
58
|
const dataAndContext = await this.connection.getAccountInfoAndContext(this.userAccountPublicKey, this.accountLoader.commitment);
|
|
59
59
|
if (dataAndContext.context.slot > ((_b = (_a = this.user) === null || _a === void 0 ? void 0 : _a.slot) !== null && _b !== void 0 ? _b : 0)) {
|
|
60
60
|
this.user = {
|
|
61
|
-
data: this.decode('
|
|
61
|
+
data: this.decode('user', dataAndContext.value.data),
|
|
62
62
|
slot: dataAndContext.context.slot,
|
|
63
63
|
};
|
|
64
64
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
import { DataAndSlot, UserStatsAccountSubscriber, UserStatsAccountEvents } from './types';
|
|
3
|
-
import {
|
|
3
|
+
import { DriftProgram } from '../config';
|
|
4
4
|
import StrictEventEmitter from 'strict-event-emitter-types';
|
|
5
5
|
import { EventEmitter } from 'events';
|
|
6
6
|
import { PublicKey } from '@solana/web3.js';
|
|
@@ -8,14 +8,14 @@ import { UserStatsAccount } from '../types';
|
|
|
8
8
|
import { BulkAccountLoader } from './bulkAccountLoader';
|
|
9
9
|
export declare class PollingUserStatsAccountSubscriber implements UserStatsAccountSubscriber {
|
|
10
10
|
isSubscribed: boolean;
|
|
11
|
-
program:
|
|
11
|
+
program: DriftProgram;
|
|
12
12
|
eventEmitter: StrictEventEmitter<EventEmitter, UserStatsAccountEvents>;
|
|
13
13
|
userStatsAccountPublicKey: PublicKey;
|
|
14
14
|
accountLoader: BulkAccountLoader;
|
|
15
15
|
callbackId?: string;
|
|
16
16
|
errorCallbackId?: string;
|
|
17
17
|
userStats?: DataAndSlot<UserStatsAccount>;
|
|
18
|
-
constructor(program:
|
|
18
|
+
constructor(program: DriftProgram, userStatsAccountPublicKey: PublicKey, accountLoader: BulkAccountLoader);
|
|
19
19
|
subscribe(userStatsAccount?: UserStatsAccount): Promise<boolean>;
|
|
20
20
|
addToAccountLoader(): Promise<void>;
|
|
21
21
|
fetchIfUnloaded(): Promise<void>;
|
|
@@ -37,7 +37,7 @@ class PollingUserStatsAccountSubscriber {
|
|
|
37
37
|
if (this.userStats && this.userStats.slot > slot) {
|
|
38
38
|
return;
|
|
39
39
|
}
|
|
40
|
-
const account = this.program.
|
|
40
|
+
const account = this.program.coder.accounts.decodeUnchecked('userStats', buffer);
|
|
41
41
|
this.userStats = { data: account, slot };
|
|
42
42
|
this.eventEmitter.emit('userStatsAccountUpdate', account);
|
|
43
43
|
this.eventEmitter.emit('update');
|
|
@@ -7,22 +7,20 @@ class TestBulkAccountLoader extends bulkAccountLoader_1.BulkAccountLoader {
|
|
|
7
7
|
if (accountsToLoadChunks.length === 0) {
|
|
8
8
|
return;
|
|
9
9
|
}
|
|
10
|
-
const accounts = [];
|
|
11
10
|
for (const accountsToLoadChunk of accountsToLoadChunks) {
|
|
12
11
|
for (const accountToLoad of accountsToLoadChunk) {
|
|
13
12
|
const account = await this.connection.getAccountInfoAndContext(accountToLoad.publicKey, this.commitment);
|
|
14
|
-
accounts.push(account);
|
|
15
13
|
const newSlot = account.context.slot;
|
|
16
14
|
if (newSlot > this.mostRecentSlot) {
|
|
17
15
|
this.mostRecentSlot = newSlot;
|
|
18
16
|
}
|
|
19
17
|
if (accountToLoad.callbacks.size === 0) {
|
|
20
|
-
|
|
18
|
+
continue;
|
|
21
19
|
}
|
|
22
20
|
const key = accountToLoad.publicKey.toBase58();
|
|
23
21
|
const prev = this.bufferAndSlotMap.get(key);
|
|
24
22
|
if (prev && newSlot < prev.slot) {
|
|
25
|
-
|
|
23
|
+
continue;
|
|
26
24
|
}
|
|
27
25
|
let newBuffer = undefined;
|
|
28
26
|
if (account.value) {
|
|
@@ -31,7 +29,7 @@ class TestBulkAccountLoader extends bulkAccountLoader_1.BulkAccountLoader {
|
|
|
31
29
|
if (!prev) {
|
|
32
30
|
this.bufferAndSlotMap.set(key, { slot: newSlot, buffer: newBuffer });
|
|
33
31
|
this.handleAccountCallbacks(accountToLoad, newBuffer, newSlot);
|
|
34
|
-
|
|
32
|
+
continue;
|
|
35
33
|
}
|
|
36
34
|
const oldBuffer = prev.buffer;
|
|
37
35
|
if (newBuffer && (!oldBuffer || !newBuffer.equals(oldBuffer))) {
|
|
@@ -1,7 +1,17 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
/// <reference types="node" />
|
|
3
3
|
/// <reference types="node" />
|
|
4
|
-
|
|
4
|
+
/**
|
|
5
|
+
* Account subscription interfaces and types.
|
|
6
|
+
*
|
|
7
|
+
* DriftClient uses a `DriftClientAccountSubscriber` (WebSocket or polling) to keep
|
|
8
|
+
* market, oracle, and state accounts cached in memory. `User` uses a `UserAccountSubscriber`
|
|
9
|
+
* for the individual User account. All subscribers implement the interfaces defined here.
|
|
10
|
+
*
|
|
11
|
+
* Implementations: `webSocketDriftClientAccountSubscriber.ts` (default),
|
|
12
|
+
* `pollingDriftClientAccountSubscriber.ts`, `bulkAccountLoader.ts` (batched RPC).
|
|
13
|
+
*/
|
|
14
|
+
import { SpotMarketAccount, PerpMarketAccount, OracleSource, StateAccount, UserAccount, UserStatsAccount, InsuranceFundStake, ConstituentAccount } from '../types';
|
|
5
15
|
import StrictEventEmitter from 'strict-event-emitter-types';
|
|
6
16
|
import { EventEmitter } from 'events';
|
|
7
17
|
import { Context, PublicKey } from '@solana/web3.js';
|
|
@@ -174,19 +184,6 @@ export type LaserGrpcConfigs = BaseGrpcConfigs & {
|
|
|
174
184
|
channelOptions?: LaserstreamConfig['channelOptions'];
|
|
175
185
|
};
|
|
176
186
|
export type GrpcConfigs = YellowstoneGrpcConfigs | LaserGrpcConfigs;
|
|
177
|
-
export interface HighLeverageModeConfigAccountSubscriber {
|
|
178
|
-
eventEmitter: StrictEventEmitter<EventEmitter, HighLeverageModeConfigAccountEvents>;
|
|
179
|
-
isSubscribed: boolean;
|
|
180
|
-
subscribe(highLeverageModeConfigAccount?: HighLeverageModeConfig): Promise<boolean>;
|
|
181
|
-
fetch(): Promise<void>;
|
|
182
|
-
unsubscribe(): Promise<void>;
|
|
183
|
-
getHighLeverageModeConfigAccountAndSlot(): DataAndSlot<HighLeverageModeConfig>;
|
|
184
|
-
}
|
|
185
|
-
export interface HighLeverageModeConfigAccountEvents {
|
|
186
|
-
highLeverageModeConfigAccountUpdate: (payload: HighLeverageModeConfig) => void;
|
|
187
|
-
update: void;
|
|
188
|
-
error: (e: Error) => void;
|
|
189
|
-
}
|
|
190
187
|
export interface ConstituentAccountSubscriber {
|
|
191
188
|
eventEmitter: StrictEventEmitter<EventEmitter, ConstituentAccountEvents>;
|
|
192
189
|
isSubscribed: boolean;
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
import { DataAndSlot, BufferAndSlot, AccountSubscriber, ResubOpts } from './types';
|
|
3
|
-
import { Program } from '@coral-xyz/anchor';
|
|
4
3
|
import { AccountInfo, Commitment, Context, PublicKey } from '@solana/web3.js';
|
|
4
|
+
import { DriftProgram } from '../config';
|
|
5
5
|
export declare class WebSocketAccountSubscriber<T> implements AccountSubscriber<T> {
|
|
6
6
|
dataAndSlot?: DataAndSlot<T>;
|
|
7
7
|
bufferAndSlot?: BufferAndSlot;
|
|
8
8
|
accountName: string;
|
|
9
9
|
logAccountName: string;
|
|
10
|
-
program:
|
|
10
|
+
program: DriftProgram;
|
|
11
11
|
accountPublicKey: PublicKey;
|
|
12
12
|
decodeBufferFn: (buffer: Buffer) => T;
|
|
13
13
|
onChange: (data: T) => void;
|
|
@@ -17,7 +17,7 @@ export declare class WebSocketAccountSubscriber<T> implements AccountSubscriber<
|
|
|
17
17
|
isUnsubscribing: boolean;
|
|
18
18
|
timeoutId?: ReturnType<typeof setTimeout>;
|
|
19
19
|
receivingData: boolean;
|
|
20
|
-
constructor(accountName: string, program:
|
|
20
|
+
constructor(accountName: string, program: DriftProgram, accountPublicKey: PublicKey, decodeBuffer?: (buffer: Buffer) => T, resubOpts?: ResubOpts, commitment?: Commitment);
|
|
21
21
|
subscribe(onChange: (data: T) => void): Promise<void>;
|
|
22
22
|
setData(data: T, slot?: number): void;
|
|
23
23
|
protected setTimeout(): void;
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.WebSocketAccountSubscriber = void 0;
|
|
4
|
-
const utils_1 = require("./utils");
|
|
5
4
|
class WebSocketAccountSubscriber {
|
|
6
5
|
constructor(accountName, program, accountPublicKey, decodeBuffer, resubOpts, commitment) {
|
|
7
6
|
var _a;
|
|
@@ -137,7 +136,7 @@ class WebSocketAccountSubscriber {
|
|
|
137
136
|
return this.decodeBufferFn(buffer);
|
|
138
137
|
}
|
|
139
138
|
else {
|
|
140
|
-
return this.program.account[this.accountName].coder.accounts.decode(
|
|
139
|
+
return this.program.account[this.accountName].coder.accounts.decode(this.accountName, buffer);
|
|
141
140
|
}
|
|
142
141
|
}
|
|
143
142
|
unsubscribe(onResub = false) {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
/// <reference types="node" />
|
|
3
3
|
import { DataAndSlot, AccountSubscriber, ResubOpts, BufferAndSlot } from './types';
|
|
4
|
-
import {
|
|
4
|
+
import { DriftProgram } from '../config';
|
|
5
5
|
import { AccountInfoBase, AccountInfoWithBase64EncodedData, AccountInfoWithBase58EncodedData, Rpc, RpcSubscriptions, SolanaRpcSubscriptionsApi, Commitment } from 'gill';
|
|
6
6
|
import { PublicKey } from '@solana/web3.js';
|
|
7
7
|
/**
|
|
@@ -57,7 +57,7 @@ export declare class WebSocketAccountSubscriberV2<T> implements AccountSubscribe
|
|
|
57
57
|
bufferAndSlot?: BufferAndSlot;
|
|
58
58
|
accountName: string;
|
|
59
59
|
logAccountName: string;
|
|
60
|
-
program:
|
|
60
|
+
program: DriftProgram;
|
|
61
61
|
accountPublicKey: PublicKey;
|
|
62
62
|
decodeBufferFn: (buffer: Buffer) => T;
|
|
63
63
|
onChange: (data: T) => void;
|
|
@@ -84,7 +84,7 @@ export declare class WebSocketAccountSubscriberV2<T> implements AccountSubscribe
|
|
|
84
84
|
* @param rpcSubscriptions Optional override/injection for testing.
|
|
85
85
|
* @param rpc Optional override/injection for testing.
|
|
86
86
|
*/
|
|
87
|
-
constructor(accountName: string, program:
|
|
87
|
+
constructor(accountName: string, program: DriftProgram, accountPublicKey: PublicKey, decodeBuffer?: (buffer: Buffer) => T, resubOpts?: ResubOpts, commitment?: Commitment, rpcSubscriptions?: RpcSubscriptions<SolanaRpcSubscriptionsApi> & string, rpc?: Rpc<any>);
|
|
88
88
|
private handleNotificationLoop;
|
|
89
89
|
subscribe(onChange: (data: T) => void): Promise<void>;
|
|
90
90
|
setData(data: T, slot?: number): void;
|
|
@@ -2,17 +2,17 @@
|
|
|
2
2
|
/// <reference types="node" />
|
|
3
3
|
import { AccountSubscriber, DataAndSlot, DelistedMarketSetting, DriftClientAccountEvents, DriftClientAccountSubscriber, ResubOpts } from './types';
|
|
4
4
|
import { PerpMarketAccount, SpotMarketAccount, StateAccount } from '../types';
|
|
5
|
-
import { Program } from '@coral-xyz/anchor';
|
|
6
5
|
import StrictEventEmitter from 'strict-event-emitter-types';
|
|
7
6
|
import { EventEmitter } from 'events';
|
|
8
7
|
import { WebSocketAccountSubscriber } from './webSocketAccountSubscriber';
|
|
9
8
|
import { Commitment, PublicKey } from '@solana/web3.js';
|
|
10
9
|
import { OracleInfo, OraclePriceData } from '../oracles/types';
|
|
11
10
|
import { OracleClientCache } from '../oracles/oracleClientCache';
|
|
11
|
+
import { DriftProgram } from '../config';
|
|
12
12
|
import { WebSocketAccountSubscriberV2 } from './webSocketAccountSubscriberV2';
|
|
13
13
|
export declare class WebSocketDriftClientAccountSubscriber implements DriftClientAccountSubscriber {
|
|
14
14
|
isSubscribed: boolean;
|
|
15
|
-
program:
|
|
15
|
+
program: DriftProgram;
|
|
16
16
|
commitment?: Commitment;
|
|
17
17
|
perpMarketIndexes: number[];
|
|
18
18
|
spotMarketIndexes: number[];
|
|
@@ -33,12 +33,12 @@ export declare class WebSocketDriftClientAccountSubscriber implements DriftClien
|
|
|
33
33
|
initialPerpMarketAccountData: Map<number, PerpMarketAccount>;
|
|
34
34
|
initialSpotMarketAccountData: Map<number, SpotMarketAccount>;
|
|
35
35
|
initialOraclePriceData: Map<string, OraclePriceData>;
|
|
36
|
-
customPerpMarketAccountSubscriber?: new (accountName: string, program:
|
|
37
|
-
customOracleAccountSubscriber?: new (accountName: string, program:
|
|
36
|
+
customPerpMarketAccountSubscriber?: new (accountName: string, program: DriftProgram, accountPublicKey: PublicKey, decodeBuffer?: (buffer: Buffer) => any, resubOpts?: ResubOpts, commitment?: Commitment) => AccountSubscriber<any>;
|
|
37
|
+
customOracleAccountSubscriber?: new (accountName: string, program: DriftProgram, accountPublicKey: PublicKey, decodeBuffer?: (buffer: Buffer) => any, resubOpts?: ResubOpts, commitment?: Commitment) => AccountSubscriber<any>;
|
|
38
38
|
protected isSubscribing: boolean;
|
|
39
39
|
protected subscriptionPromise: Promise<boolean>;
|
|
40
40
|
protected subscriptionPromiseResolver: (val: boolean) => void;
|
|
41
|
-
constructor(program:
|
|
41
|
+
constructor(program: DriftProgram, perpMarketIndexes: number[], spotMarketIndexes: number[], oracleInfos: OracleInfo[], shouldFindAllMarketsAndOracles: boolean, delistedMarketSetting: DelistedMarketSetting, resubOpts?: ResubOpts, commitment?: Commitment, customPerpMarketAccountSubscriber?: new (accountName: string, program: DriftProgram, accountPublicKey: PublicKey, decodeBuffer?: (buffer: Buffer) => any, resubOpts?: ResubOpts, commitment?: Commitment) => WebSocketAccountSubscriberV2<any> | WebSocketAccountSubscriber<any>, customOracleAccountSubscriber?: new (accountName: string, program: DriftProgram, accountPublicKey: PublicKey, decodeBuffer?: (buffer: Buffer) => any, resubOpts?: ResubOpts, commitment?: Commitment) => WebSocketAccountSubscriberV2<any> | WebSocketAccountSubscriber<any>);
|
|
42
42
|
subscribe(): Promise<boolean>;
|
|
43
43
|
chunks: <T>(array: readonly T[], size: number) => T[][];
|
|
44
44
|
setInitialData(): Promise<void>;
|
|
@@ -99,7 +99,7 @@ class WebSocketDriftClientAccountSubscriber {
|
|
|
99
99
|
this.initialPerpMarketAccountData = new Map(perpMarketAccountInfos
|
|
100
100
|
.filter((accountInfo) => !!accountInfo)
|
|
101
101
|
.map((accountInfo) => {
|
|
102
|
-
const perpMarket = this.program.coder.accounts.decode('
|
|
102
|
+
const perpMarket = this.program.coder.accounts.decode('perpMarket', accountInfo.data);
|
|
103
103
|
return [perpMarket.marketIndex, perpMarket];
|
|
104
104
|
}));
|
|
105
105
|
}
|
|
@@ -110,7 +110,7 @@ class WebSocketDriftClientAccountSubscriber {
|
|
|
110
110
|
this.initialSpotMarketAccountData = new Map(spotMarketAccountInfos
|
|
111
111
|
.filter((accountInfo) => !!accountInfo)
|
|
112
112
|
.map((accountInfo) => {
|
|
113
|
-
const spotMarket = this.program.coder.accounts.decode('
|
|
113
|
+
const spotMarket = this.program.coder.accounts.decode('spotMarket', accountInfo.data);
|
|
114
114
|
return [spotMarket.marketIndex, spotMarket];
|
|
115
115
|
}));
|
|
116
116
|
}
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
import { AccountSubscriber, DataAndSlot, DelistedMarketSetting, DriftClientAccountEvents, DriftClientAccountSubscriber, ResubOpts } from './types';
|
|
3
3
|
import { PerpMarketAccount, SpotMarketAccount, StateAccount } from '../types';
|
|
4
|
-
import { Program } from '@coral-xyz/anchor';
|
|
5
4
|
import StrictEventEmitter from 'strict-event-emitter-types';
|
|
6
5
|
import { EventEmitter } from 'events';
|
|
7
6
|
import { PublicKey } from '@solana/web3.js';
|
|
8
7
|
import { Commitment } from 'gill';
|
|
9
8
|
import { OracleInfo, OraclePriceData } from '../oracles/types';
|
|
10
9
|
import { OracleClientCache } from '../oracles/oracleClientCache';
|
|
10
|
+
import { DriftProgram } from '../config';
|
|
11
11
|
import { WebSocketProgramAccountsSubscriberV2 } from './webSocketProgramAccountsSubscriberV2';
|
|
12
12
|
import { WebSocketAccountSubscriberV2 } from './webSocketAccountSubscriberV2';
|
|
13
13
|
export declare class WebSocketDriftClientAccountSubscriberV2 implements DriftClientAccountSubscriber {
|
|
14
14
|
isSubscribed: boolean;
|
|
15
|
-
program:
|
|
15
|
+
program: DriftProgram;
|
|
16
16
|
commitment?: Commitment;
|
|
17
17
|
perpMarketIndexes: number[];
|
|
18
18
|
spotMarketIndexes: number[];
|
|
@@ -41,7 +41,7 @@ export declare class WebSocketDriftClientAccountSubscriberV2 implements DriftCli
|
|
|
41
41
|
protected subscriptionPromiseResolver: (val: boolean) => void;
|
|
42
42
|
private rpc;
|
|
43
43
|
private rpcSubscriptions;
|
|
44
|
-
constructor(program:
|
|
44
|
+
constructor(program: DriftProgram, perpMarketIndexes: number[], spotMarketIndexes: number[], oracleInfos: OracleInfo[], shouldFindAllMarketsAndOracles: boolean, delistedMarketSetting: DelistedMarketSetting, resubOpts?: ResubOpts, commitment?: Commitment, skipInitialData?: boolean);
|
|
45
45
|
subscribe(): Promise<boolean>;
|
|
46
46
|
chunks: <T>(array: readonly T[], size: number) => T[][];
|
|
47
47
|
fetch(): Promise<void>;
|
|
@@ -92,13 +92,13 @@ class WebSocketDriftClientAccountSubscriberV2 {
|
|
|
92
92
|
}
|
|
93
93
|
// Create subscribers
|
|
94
94
|
this.perpMarketAllAccountsSubscriber =
|
|
95
|
-
new webSocketProgramAccountsSubscriberV2_1.WebSocketProgramAccountsSubscriberV2('PerpMarketAccountsSubscriber', '
|
|
95
|
+
new webSocketProgramAccountsSubscriberV2_1.WebSocketProgramAccountsSubscriberV2('PerpMarketAccountsSubscriber', 'perpMarket', this.program, this.program.account.perpMarket.coder.accounts.decodeUnchecked.bind(this.program.account.perpMarket.coder.accounts), {
|
|
96
96
|
filters: [(0, memcmp_1.getPerpMarketAccountsFilter)()],
|
|
97
97
|
commitment: this.commitment,
|
|
98
98
|
}, this.resubOpts, perpMarketAccountPubkeys // because we pass these in, it will monitor these accounts and fetch them right away
|
|
99
99
|
);
|
|
100
100
|
this.spotMarketAllAccountsSubscriber =
|
|
101
|
-
new webSocketProgramAccountsSubscriberV2_1.WebSocketProgramAccountsSubscriberV2('SpotMarketAccountsSubscriber', '
|
|
101
|
+
new webSocketProgramAccountsSubscriberV2_1.WebSocketProgramAccountsSubscriberV2('SpotMarketAccountsSubscriber', 'spotMarket', this.program, this.program.account.spotMarket.coder.accounts.decodeUnchecked.bind(this.program.account.spotMarket.coder.accounts), {
|
|
102
102
|
filters: [(0, memcmp_1.getSpotMarketAccountsFilter)()],
|
|
103
103
|
commitment: this.commitment,
|
|
104
104
|
}, this.resubOpts, spotMarketAccountPubkeys // because we pass these in, it will monitor these accounts and fetch them right away
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
import { DataAndSlot, AccountSubscriber, InsuranceFundStakeAccountEvents, InsuranceFundStakeAccountSubscriber } from './types';
|
|
3
|
-
import { Program } from '@coral-xyz/anchor';
|
|
4
3
|
import StrictEventEmitter from 'strict-event-emitter-types';
|
|
5
4
|
import { EventEmitter } from 'events';
|
|
6
5
|
import { Commitment, PublicKey } from '@solana/web3.js';
|
|
7
6
|
import { InsuranceFundStake } from '../types';
|
|
7
|
+
import { DriftProgram } from '../config';
|
|
8
8
|
export declare class WebSocketInsuranceFundStakeAccountSubscriber implements InsuranceFundStakeAccountSubscriber {
|
|
9
9
|
isSubscribed: boolean;
|
|
10
10
|
resubTimeoutMs?: number;
|
|
11
11
|
commitment?: Commitment;
|
|
12
|
-
program:
|
|
12
|
+
program: DriftProgram;
|
|
13
13
|
eventEmitter: StrictEventEmitter<EventEmitter, InsuranceFundStakeAccountEvents>;
|
|
14
14
|
insuranceFundStakeAccountPublicKey: PublicKey;
|
|
15
15
|
insuranceFundStakeDataAccountSubscriber: AccountSubscriber<InsuranceFundStake>;
|
|
16
|
-
constructor(program:
|
|
16
|
+
constructor(program: DriftProgram, insuranceFundStakeAccountPublicKey: PublicKey, resubTimeoutMs?: number, commitment?: Commitment);
|
|
17
17
|
subscribe(insuranceFundStakeAccount?: InsuranceFundStake): Promise<boolean>;
|
|
18
18
|
fetch(): Promise<void>;
|
|
19
19
|
unsubscribe(): Promise<void>;
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
import { BufferAndSlot, ProgramAccountSubscriber, ResubOpts } from './types';
|
|
3
|
-
import { Program } from '@coral-xyz/anchor';
|
|
4
3
|
import { Commitment, Context, KeyedAccountInfo, MemcmpFilter, PublicKey } from '@solana/web3.js';
|
|
4
|
+
import { DriftProgram } from '../config';
|
|
5
5
|
export declare class WebSocketProgramAccountSubscriber<T> implements ProgramAccountSubscriber<T> {
|
|
6
6
|
subscriptionName: string;
|
|
7
7
|
accountDiscriminator: string;
|
|
8
8
|
bufferAndSlot?: BufferAndSlot;
|
|
9
9
|
bufferAndSlotMap: Map<string, BufferAndSlot>;
|
|
10
|
-
program:
|
|
10
|
+
program: DriftProgram;
|
|
11
11
|
decodeBuffer: (accountName: string, ix: Buffer) => T;
|
|
12
12
|
onChange: (accountId: PublicKey, data: T, context: Context, buffer: Buffer) => void;
|
|
13
13
|
listenerId?: number;
|
|
@@ -19,7 +19,7 @@ export declare class WebSocketProgramAccountSubscriber<T> implements ProgramAcco
|
|
|
19
19
|
commitment?: Commitment;
|
|
20
20
|
};
|
|
21
21
|
receivingData: boolean;
|
|
22
|
-
constructor(subscriptionName: string, accountDiscriminator: string, program:
|
|
22
|
+
constructor(subscriptionName: string, accountDiscriminator: string, program: DriftProgram, decodeBufferFn: (accountName: string, ix: Buffer) => T, options?: {
|
|
23
23
|
filters: MemcmpFilter[];
|
|
24
24
|
commitment?: Commitment;
|
|
25
25
|
}, resubOpts?: ResubOpts);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
/// <reference types="node" />
|
|
3
3
|
import { BufferAndSlot, ProgramAccountSubscriber, ResubOpts } from './types';
|
|
4
|
-
import {
|
|
4
|
+
import { DriftProgram } from '../config';
|
|
5
5
|
import { Commitment, Context, MemcmpFilter, PublicKey } from '@solana/web3.js';
|
|
6
6
|
import { AccountInfoBase, AccountInfoWithBase58EncodedData, AccountInfoWithBase64EncodedData, Address } from 'gill';
|
|
7
7
|
/**
|
|
@@ -67,7 +67,7 @@ export declare class WebSocketProgramAccountsSubscriberV2<T> implements ProgramA
|
|
|
67
67
|
subscriptionName: string;
|
|
68
68
|
accountDiscriminator: string;
|
|
69
69
|
bufferAndSlotMap: Map<string, BufferAndSlot>;
|
|
70
|
-
program:
|
|
70
|
+
program: DriftProgram;
|
|
71
71
|
decodeBuffer: (accountName: string, ix: Buffer) => T;
|
|
72
72
|
onChange: (accountId: PublicKey, data: T, context: Context, buffer: Buffer) => void;
|
|
73
73
|
listenerId?: number;
|
|
@@ -93,7 +93,7 @@ export declare class WebSocketProgramAccountsSubscriberV2<T> implements ProgramA
|
|
|
93
93
|
private missedChangeDetected;
|
|
94
94
|
private resubscriptionTimeout?;
|
|
95
95
|
private accountsWithMissedUpdates;
|
|
96
|
-
constructor(subscriptionName: string, accountDiscriminator: string, program:
|
|
96
|
+
constructor(subscriptionName: string, accountDiscriminator: string, program: DriftProgram, decodeBufferFn: (accountName: string, ix: Buffer) => T, options?: {
|
|
97
97
|
filters: MemcmpFilter[];
|
|
98
98
|
commitment?: Commitment;
|
|
99
99
|
}, resubOpts?: ResubOpts, accountsToMonitor?: PublicKey[]);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
/// <reference types="node" />
|
|
3
3
|
import { BufferAndSlot, ProgramAccountSubscriber, ResubOpts } from './types';
|
|
4
|
-
import {
|
|
4
|
+
import { DriftProgram } from '../config';
|
|
5
5
|
import { Commitment, Context, MemcmpFilter, PublicKey } from '@solana/web3.js';
|
|
6
6
|
import { AccountInfoBase, AccountInfoWithBase58EncodedData, AccountInfoWithBase64EncodedData, Address } from 'gill';
|
|
7
7
|
/**
|
|
@@ -67,7 +67,7 @@ export declare class WebSocketProgramAccountsSubscriberV2<T> implements ProgramA
|
|
|
67
67
|
subscriptionName: string;
|
|
68
68
|
accountDiscriminator: string;
|
|
69
69
|
bufferAndSlotMap: Map<string, BufferAndSlot>;
|
|
70
|
-
program:
|
|
70
|
+
program: DriftProgram;
|
|
71
71
|
decodeBuffer: (accountName: string, ix: Buffer) => T;
|
|
72
72
|
onChange: (accountId: PublicKey, data: T, context: Context, buffer: Buffer) => void;
|
|
73
73
|
listenerId?: number;
|
|
@@ -93,7 +93,7 @@ export declare class WebSocketProgramAccountsSubscriberV2<T> implements ProgramA
|
|
|
93
93
|
private missedChangeDetected;
|
|
94
94
|
private resubscriptionTimeout?;
|
|
95
95
|
private accountsWithMissedUpdates;
|
|
96
|
-
constructor(subscriptionName: string, accountDiscriminator: string, program:
|
|
96
|
+
constructor(subscriptionName: string, accountDiscriminator: string, program: DriftProgram, decodeBufferFn: (accountName: string, ix: Buffer) => T, options?: {
|
|
97
97
|
filters: MemcmpFilter[];
|
|
98
98
|
commitment?: Commitment;
|
|
99
99
|
}, resubOpts?: ResubOpts, accountsToMonitor?: PublicKey[]);
|