pmm dlob server

This commit is contained in:
wphan
2025-01-30 14:43:12 -08:00
parent a5d8d81ec6
commit 3c7a934214
6 changed files with 109 additions and 78 deletions

View File

@@ -80,7 +80,7 @@ bash redisCluster.sh create
In second terminal, run: In second terminal, run:
``` ```
yarn run dlob-publisher yarn run dlob-publish
``` ```
In a third terminal, run: In a third terminal, run:

15
build_all.sh Normal file
View File

@@ -0,0 +1,15 @@
git submodule init
git submodule update --recursive
echo "building sdk..."
cd drift-common/protocol/sdk
yarn clean && yarn && yarn build
cd ../../..
echo "building drift-common..."
cd drift-common/common-ts
yarn clean && yarn && yarn build
cd ../..
echo "building dlob server..."
yarn clean && yarn && yarn build

View File

@@ -263,11 +263,15 @@ export class DLOBSubscriberIO extends DLOBSubscriber {
}); });
this.redisClient.publish( this.redisClient.publish(
`${clientPrefix}orderbook_${marketType}_${marketArgs.marketIndex}`, `${clientPrefix}orderbook_${marketType}_${marketArgs.marketIndex}${
this.protectedMakerView ? '_pmm' : ''
}`,
l2Formatted l2Formatted
); );
this.redisClient.set( this.redisClient.set(
`last_update_orderbook_${marketType}_${marketArgs.marketIndex}`, `last_update_orderbook_${marketType}_${marketArgs.marketIndex}${
this.protectedMakerView ? '_pmm' : ''
}`,
l2Formatted_depth100 l2Formatted_depth100
); );
const oraclePriceData = const oraclePriceData =
@@ -350,7 +354,9 @@ export class DLOBSubscriberIO extends DLOBSubscriber {
); );
this.redisClient.set( this.redisClient.set(
`last_update_orderbook_l3_${marketType}_${marketArgs.marketIndex}`, `last_update_orderbook_l3_${marketType}_${marketArgs.marketIndex}${
this.protectedMakerView ? '_pmm' : ''
}`,
l3 l3
); );
} }

View File

@@ -520,7 +520,8 @@ const main = async (): Promise<void> => {
app.get('/l2', async (req, res, next) => { app.get('/l2', async (req, res, next) => {
try { try {
const { marketName, marketIndex, marketType, depth } = req.query; const { marketName, marketIndex, marketType, depth, includePmm } =
req.query;
const { normedMarketType, normedMarketIndex, error } = validateDlobQuery( const { normedMarketType, normedMarketIndex, error } = validateDlobQuery(
driftClient, driftClient,
@@ -535,14 +536,14 @@ const main = async (): Promise<void> => {
} }
const isSpot = isVariant(normedMarketType, 'spot'); const isSpot = isVariant(normedMarketType, 'spot');
const includePmmStr = (includePmm as string)?.toLowerCase() === 'true';
const adjustedDepth = depth ?? '100'; const adjustedDepth = depth ?? '100';
let l2Formatted: any; let l2Formatted: any;
const redisL2 = await fetchFromRedis( const redisL2 = await fetchFromRedis(
`last_update_orderbook_${ `last_update_orderbook_${
isSpot ? 'spot' : 'perp' isSpot ? 'spot' : 'perp'
}_${normedMarketIndex}`, }_${normedMarketIndex}${includePmmStr ? '_pmm' : ''}`,
selectMostRecentBySlot selectMostRecentBySlot
); );
const depthToUse = Math.min(parseInt(adjustedDepth as string) ?? 1, 100); const depthToUse = Math.min(parseInt(adjustedDepth as string) ?? 1, 100);
@@ -604,6 +605,7 @@ const main = async (): Promise<void> => {
includePhoenix, includePhoenix,
includeOpenbook, includeOpenbook,
includeOracle, includeOracle,
includePmm,
} = req.query; } = req.query;
const normedParams = normalizeBatchQueryParams({ const normedParams = normalizeBatchQueryParams({
@@ -615,6 +617,7 @@ const main = async (): Promise<void> => {
includePhoenix: includePhoenix as string | undefined, includePhoenix: includePhoenix as string | undefined,
includeOpenbook: includeOpenbook as string | undefined, includeOpenbook: includeOpenbook as string | undefined,
includeOracle: includeOracle as string | undefined, includeOracle: includeOracle as string | undefined,
includePmm: includePmm as string | undefined,
}); });
if (normedParams === undefined) { if (normedParams === undefined) {
@@ -645,13 +648,14 @@ const main = async (): Promise<void> => {
} }
const isSpot = isVariant(normedMarketType, 'spot'); const isSpot = isVariant(normedMarketType, 'spot');
const normedIncludePmm = normedParam['includePmm'] == 'true';
const adjustedDepth = normedParam['depth'] ?? '100'; const adjustedDepth = normedParam['depth'] ?? '100';
let l2Formatted: any; let l2Formatted: any;
const redisL2 = await fetchFromRedis( const redisL2 = await fetchFromRedis(
`last_update_orderbook_${ `last_update_orderbook_${
isSpot ? 'spot' : 'perp' isSpot ? 'spot' : 'perp'
}_${normedMarketIndex}`, }_${normedMarketIndex}${normedIncludePmm ? '_pmm' : ''}`,
selectMostRecentBySlot selectMostRecentBySlot
); );
const depth = Math.min(parseInt(adjustedDepth as string) ?? 1, 100); const depth = Math.min(parseInt(adjustedDepth as string) ?? 1, 100);
@@ -721,7 +725,7 @@ const main = async (): Promise<void> => {
app.get('/l3', async (req, res, next) => { app.get('/l3', async (req, res, next) => {
try { try {
const { marketName, marketIndex, marketType } = req.query; const { marketName, marketIndex, marketType, includePmm } = req.query;
const { normedMarketType, normedMarketIndex, error } = validateDlobQuery( const { normedMarketType, normedMarketIndex, error } = validateDlobQuery(
driftClient, driftClient,
@@ -736,9 +740,12 @@ const main = async (): Promise<void> => {
} }
const marketTypeStr = getVariant(normedMarketType); const marketTypeStr = getVariant(normedMarketType);
const normedIncludePmm = (includePmm as string)?.toLowerCase() === 'true';
const redisL3 = await fetchFromRedis( const redisL3 = await fetchFromRedis(
`last_update_orderbook_l3_${marketTypeStr}_${normedMarketIndex}`, `last_update_orderbook_l3_${marketTypeStr}_${normedMarketIndex}${
normedIncludePmm ? '_pmm' : ''
}`,
selectMostRecentBySlot selectMostRecentBySlot
); );
if (redisL3) { if (redisL3) {

View File

@@ -497,8 +497,25 @@ const main = async () => {
perpMarketInfos, perpMarketInfos,
spotMarketInfos, spotMarketInfos,
killSwitchSlotDiffThreshold: KILLSWITCH_SLOT_DIFF_THRESHOLD, killSwitchSlotDiffThreshold: KILLSWITCH_SLOT_DIFF_THRESHOLD,
protectedMakerView: false,
}); });
await dlobSubscriber.subscribe(); await dlobSubscriber.subscribe();
const dlobSubscriberPmm = new DLOBSubscriberIO({
driftClient,
env: driftEnv,
dlobSource: dlobProvider,
slotSource,
updateFrequency: ORDERBOOK_UPDATE_INTERVAL,
redisClient,
spotMarketSubscribers: MARKET_SUBSCRIBERS,
perpMarketInfos,
spotMarketInfos,
killSwitchSlotDiffThreshold: KILLSWITCH_SLOT_DIFF_THRESHOLD,
protectedMakerView: true,
});
await dlobSubscriberPmm.subscribe();
if (useWebsocket && !FEATURE_FLAGS.DISABLE_GPA_REFRESH) { if (useWebsocket && !FEATURE_FLAGS.DISABLE_GPA_REFRESH) {
const recursiveFetch = (delay = WS_FALLBACK_FETCH_INTERVAL) => { const recursiveFetch = (delay = WS_FALLBACK_FETCH_INTERVAL) => {
setTimeout(() => { setTimeout(() => {

122
yarn.lock
View File

@@ -371,28 +371,7 @@
resolved "https://registry.yarnpkg.com/@coral-xyz/anchor-errors/-/anchor-errors-0.30.1.tgz#bdfd3a353131345244546876eb4afc0e125bec30" resolved "https://registry.yarnpkg.com/@coral-xyz/anchor-errors/-/anchor-errors-0.30.1.tgz#bdfd3a353131345244546876eb4afc0e125bec30"
integrity sha512-9Mkradf5yS5xiLWrl9WrpjqOrAV+/W2RQHDlbnAZBivoGpOs1ECjoDCkVk4aRG8ZdiFiB8zQEVlxf+8fKkmSfQ== integrity sha512-9Mkradf5yS5xiLWrl9WrpjqOrAV+/W2RQHDlbnAZBivoGpOs1ECjoDCkVk4aRG8ZdiFiB8zQEVlxf+8fKkmSfQ==
"@coral-xyz/anchor@0.28.0": "@coral-xyz/anchor@0.29.0", "@coral-xyz/anchor@^0.29.0":
version "0.28.0"
resolved "https://registry.yarnpkg.com/@coral-xyz/anchor/-/anchor-0.28.0.tgz#8345c3c9186a91f095f704d7b90cd256f7e8b2dc"
integrity sha512-kQ02Hv2ZqxtWP30WN1d4xxT4QqlOXYDxmEd3k/bbneqhV3X5QMO4LAtoUFs7otxyivOgoqam5Il5qx81FuI4vw==
dependencies:
"@coral-xyz/borsh" "^0.28.0"
"@solana/web3.js" "^1.68.0"
base64-js "^1.5.1"
bn.js "^5.1.2"
bs58 "^4.0.1"
buffer-layout "^1.2.2"
camelcase "^6.3.0"
cross-fetch "^3.1.5"
crypto-hash "^1.3.0"
eventemitter3 "^4.0.7"
js-sha256 "^0.9.0"
pako "^2.0.3"
snake-case "^3.0.4"
superstruct "^0.15.4"
toml "^3.0.0"
"@coral-xyz/anchor@^0.29.0":
version "0.29.0" version "0.29.0"
resolved "https://registry.yarnpkg.com/@coral-xyz/anchor/-/anchor-0.29.0.tgz#bd0be95bedfb30a381c3e676e5926124c310ff12" resolved "https://registry.yarnpkg.com/@coral-xyz/anchor/-/anchor-0.29.0.tgz#bd0be95bedfb30a381c3e676e5926124c310ff12"
integrity sha512-eny6QNG0WOwqV0zQ7cs/b1tIuzZGmP7U7EcH+ogt4Gdbl8HDmIYVMh/9aTmYZPaFWjtUaI8qSn73uYEXWfATdA== integrity sha512-eny6QNG0WOwqV0zQ7cs/b1tIuzZGmP7U7EcH+ogt4Gdbl8HDmIYVMh/9aTmYZPaFWjtUaI8qSn73uYEXWfATdA==
@@ -412,14 +391,6 @@
superstruct "^0.15.4" superstruct "^0.15.4"
toml "^3.0.0" toml "^3.0.0"
"@coral-xyz/borsh@^0.28.0":
version "0.28.0"
resolved "https://registry.yarnpkg.com/@coral-xyz/borsh/-/borsh-0.28.0.tgz#fa368a2f2475bbf6f828f4657f40a52102e02b6d"
integrity sha512-/u1VTzw7XooK7rqeD7JLUSwOyRSesPUk0U37BV9zK0axJc1q0nRbKFGFLYCQ16OtdOJTTwGfGp11Lx9B45bRCQ==
dependencies:
bn.js "^5.1.2"
buffer-layout "^1.2.0"
"@coral-xyz/borsh@^0.29.0": "@coral-xyz/borsh@^0.29.0":
version "0.29.0" version "0.29.0"
resolved "https://registry.yarnpkg.com/@coral-xyz/borsh/-/borsh-0.29.0.tgz#79f7045df2ef66da8006d47f5399c7190363e71f" resolved "https://registry.yarnpkg.com/@coral-xyz/borsh/-/borsh-0.29.0.tgz#79f7045df2ef66da8006d47f5399c7190363e71f"
@@ -453,37 +424,40 @@
kuler "^2.0.0" kuler "^2.0.0"
"@drift-labs/sdk@file:./drift-common/protocol/sdk", "@drift-labs/sdk@file:drift-common/protocol/sdk": "@drift-labs/sdk@file:./drift-common/protocol/sdk", "@drift-labs/sdk@file:drift-common/protocol/sdk":
version "2.104.0-beta.0" version "2.108.0-beta.17"
dependencies: dependencies:
"@coral-xyz/anchor" "0.28.0" "@coral-xyz/anchor" "0.29.0"
"@coral-xyz/anchor-30" "npm:@coral-xyz/anchor@0.30.1" "@coral-xyz/anchor-30" "npm:@coral-xyz/anchor@0.30.1"
"@ellipsis-labs/phoenix-sdk" "^1.4.2" "@ellipsis-labs/phoenix-sdk" "1.4.5"
"@grpc/grpc-js" "^1.8.0" "@grpc/grpc-js" "^1.8.0"
"@openbook-dex/openbook-v2" "0.2.10" "@openbook-dex/openbook-v2" "0.2.10"
"@project-serum/serum" "^0.13.38" "@project-serum/serum" "0.13.65"
"@pythnetwork/client" "2.5.3" "@pythnetwork/client" "2.5.3"
"@pythnetwork/price-service-sdk" "^1.7.1" "@pythnetwork/price-service-sdk" "1.7.1"
"@pythnetwork/pyth-solana-receiver" "^0.7.0" "@pythnetwork/pyth-solana-receiver" "0.7.0"
"@solana/spl-token" "0.3.7" "@solana/spl-token" "0.3.7"
"@solana/web3.js" "1.92.3" "@solana/web3.js" "1.92.3"
"@switchboard-xyz/on-demand" "1.2.42" "@switchboard-xyz/on-demand" "1.2.42"
"@triton-one/yellowstone-grpc" "0.6.0" "@triton-one/yellowstone-grpc" "1.3.0"
anchor-bankrun "^0.3.0" anchor-bankrun "0.3.0"
node-cache "^5.1.2" nanoid "3.3.4"
node-cache "5.1.2"
rpc-websockets "7.5.1" rpc-websockets "7.5.1"
solana-bankrun "^0.3.0" solana-bankrun "0.3.1"
strict-event-emitter-types "^2.0.0" strict-event-emitter-types "2.0.0"
tweetnacl "1.0.3" tweetnacl "1.0.3"
uuid "^8.3.2" tweetnacl-util "0.15.1"
zstddec "^0.1.0" uuid "8.3.2"
yargs "17.7.2"
zstddec "0.1.0"
"@drift/common@file:./drift-common/common-ts": "@drift/common@file:./drift-common/common-ts":
version "1.0.0" version "1.0.0"
dependencies: dependencies:
"@drift-labs/sdk" "file:../Library/Caches/Yarn/v6/npm-@drift-common-1.0.0-4e3c4626-2ccf-4799-8c43-1efe010514e5-1736307402016/node_modules/@drift/protocol/sdk" "@drift-labs/sdk" "file:../../Library/Caches/Yarn/v6/npm-@drift-common-1.0.0-eab5722e-8e53-43d2-a6cc-a4aaa209fe54-1738273494293/node_modules/@drift/protocol/sdk"
"@jest/globals" "^29.3.1" "@jest/globals" "^29.3.1"
"@slack/web-api" "^6.4.0" "@slack/web-api" "^6.4.0"
"@solana/spl-token" "^0.3.8" "@solana/spl-token" "0.3.8"
"@solana/web3.js" "1.66.2" "@solana/web3.js" "1.66.2"
bcryptjs-react "^2.4.6" bcryptjs-react "^2.4.6"
cerializr "^3.1.4" cerializr "^3.1.4"
@@ -498,7 +472,7 @@
winston "^3.13.0" winston "^3.13.0"
winston-slack-webhook-transport "^2.3.5" winston-slack-webhook-transport "^2.3.5"
"@ellipsis-labs/phoenix-sdk@^1.4.2": "@ellipsis-labs/phoenix-sdk@1.4.5":
version "1.4.5" version "1.4.5"
resolved "https://registry.yarnpkg.com/@ellipsis-labs/phoenix-sdk/-/phoenix-sdk-1.4.5.tgz#42cf8de8463b32c910ab8844eae71ca082a6773a" resolved "https://registry.yarnpkg.com/@ellipsis-labs/phoenix-sdk/-/phoenix-sdk-1.4.5.tgz#42cf8de8463b32c910ab8844eae71ca082a6773a"
integrity sha512-vEYgMXuV5/mpnpEi+VK4HO8f6SheHtVLdHHlULBiDN1eECYmL67gq+/cRV7Ar6jAQ7rJZL7xBxhbUW5kugMl6A== integrity sha512-vEYgMXuV5/mpnpEi+VK4HO8f6SheHtVLdHHlULBiDN1eECYmL67gq+/cRV7Ar6jAQ7rJZL7xBxhbUW5kugMl6A==
@@ -1608,7 +1582,7 @@
bn.js "^5.1.2" bn.js "^5.1.2"
buffer-layout "^1.2.0" buffer-layout "^1.2.0"
"@project-serum/serum@^0.13.38", "@project-serum/serum@^0.13.65": "@project-serum/serum@0.13.65", "@project-serum/serum@^0.13.65":
version "0.13.65" version "0.13.65"
resolved "https://registry.yarnpkg.com/@project-serum/serum/-/serum-0.13.65.tgz#6d3cf07912f13985765237f053cca716fe84b0b0" resolved "https://registry.yarnpkg.com/@project-serum/serum/-/serum-0.13.65.tgz#6d3cf07912f13985765237f053cca716fe84b0b0"
integrity sha512-BHRqsTqPSfFB5p+MgI2pjvMBAQtO8ibTK2fYY96boIFkCI3TTwXDt2gUmspeChKO2pqHr5aKevmexzAcXxrSRA== integrity sha512-BHRqsTqPSfFB5p+MgI2pjvMBAQtO8ibTK2fYY96boIFkCI3TTwXDt2gUmspeChKO2pqHr5aKevmexzAcXxrSRA==
@@ -1681,21 +1655,14 @@
assert "^2.0.0" assert "^2.0.0"
buffer "^6.0.1" buffer "^6.0.1"
"@pythnetwork/price-service-sdk@>=1.6.0": "@pythnetwork/price-service-sdk@1.7.1", "@pythnetwork/price-service-sdk@>=1.6.0":
version "1.7.1" version "1.7.1"
resolved "https://registry.yarnpkg.com/@pythnetwork/price-service-sdk/-/price-service-sdk-1.7.1.tgz#dbfc8a8c2189f526346c1f79ec3995e89b690700" resolved "https://registry.yarnpkg.com/@pythnetwork/price-service-sdk/-/price-service-sdk-1.7.1.tgz#dbfc8a8c2189f526346c1f79ec3995e89b690700"
integrity sha512-xr2boVXTyv1KUt/c6llUTfbv2jpud99pWlMJbFaHGUBoygQsByuy7WbjIJKZ+0Blg1itLZl0Lp/pJGGg8SdJoQ== integrity sha512-xr2boVXTyv1KUt/c6llUTfbv2jpud99pWlMJbFaHGUBoygQsByuy7WbjIJKZ+0Blg1itLZl0Lp/pJGGg8SdJoQ==
dependencies: dependencies:
bn.js "^5.2.1" bn.js "^5.2.1"
"@pythnetwork/price-service-sdk@^1.7.1": "@pythnetwork/pyth-solana-receiver@0.7.0":
version "1.8.0"
resolved "https://registry.yarnpkg.com/@pythnetwork/price-service-sdk/-/price-service-sdk-1.8.0.tgz#f5f01f654963eb9a0cf12127b4f1a89b60ef008a"
integrity sha512-tFZ1thj3Zja06DzPIX2dEWSi7kIfIyqreoywvw5NQ3Z1pl5OJHQGMEhxt6Li3UCGSp2ooYZS9wl8/8XfrfrNSA==
dependencies:
bn.js "^5.2.1"
"@pythnetwork/pyth-solana-receiver@^0.7.0":
version "0.7.0" version "0.7.0"
resolved "https://registry.yarnpkg.com/@pythnetwork/pyth-solana-receiver/-/pyth-solana-receiver-0.7.0.tgz#253a0d15a135d625ceca7ba1b47940dd03b9cab6" resolved "https://registry.yarnpkg.com/@pythnetwork/pyth-solana-receiver/-/pyth-solana-receiver-0.7.0.tgz#253a0d15a135d625ceca7ba1b47940dd03b9cab6"
integrity sha512-OoEAHh92RPRdKkfjkcKGrjC+t0F3SEL754iKFmixN9zyS8pIfZSVfFntmkHa9pWmqEMxdx/i925a8B5ny8Tuvg== integrity sha512-OoEAHh92RPRdKkfjkcKGrjC+t0F3SEL754iKFmixN9zyS8pIfZSVfFntmkHa9pWmqEMxdx/i925a8B5ny8Tuvg==
@@ -1987,6 +1954,15 @@
"@solana/buffer-layout-utils" "^0.2.0" "@solana/buffer-layout-utils" "^0.2.0"
buffer "^6.0.3" buffer "^6.0.3"
"@solana/spl-token@0.3.8":
version "0.3.8"
resolved "https://registry.yarnpkg.com/@solana/spl-token/-/spl-token-0.3.8.tgz#8e9515ea876e40a4cc1040af865f61fc51d27edf"
integrity sha512-ogwGDcunP9Lkj+9CODOWMiVJEdRtqHAtX2rWF62KxnnSWtMZtV9rDhTrZFshiyJmxDnRL/1nKE1yJHg4jjs3gg==
dependencies:
"@solana/buffer-layout" "^4.0.0"
"@solana/buffer-layout-utils" "^0.2.0"
buffer "^6.0.3"
"@solana/spl-token@^0.1.6": "@solana/spl-token@^0.1.6":
version "0.1.8" version "0.1.8"
resolved "https://registry.yarnpkg.com/@solana/spl-token/-/spl-token-0.1.8.tgz#f06e746341ef8d04165e21fc7f555492a2a0faa6" resolved "https://registry.yarnpkg.com/@solana/spl-token/-/spl-token-0.1.8.tgz#f06e746341ef8d04165e21fc7f555492a2a0faa6"
@@ -1999,7 +1975,7 @@
buffer-layout "^1.2.0" buffer-layout "^1.2.0"
dotenv "10.0.0" dotenv "10.0.0"
"@solana/spl-token@^0.3.4", "@solana/spl-token@^0.3.8": "@solana/spl-token@^0.3.4":
version "0.3.11" version "0.3.11"
resolved "https://registry.yarnpkg.com/@solana/spl-token/-/spl-token-0.3.11.tgz#cdc10f9472b29b39c8983c92592cadd06627fb9a" resolved "https://registry.yarnpkg.com/@solana/spl-token/-/spl-token-0.3.11.tgz#cdc10f9472b29b39c8983c92592cadd06627fb9a"
integrity sha512-bvohO3rIMSVL24Pb+I4EYTJ6cL82eFpInEXD/I8K8upOGjpqHsKUoAempR/RnUlI1qSFNyFlWJfu6MNUgfbCQQ== integrity sha512-bvohO3rIMSVL24Pb+I4EYTJ6cL82eFpInEXD/I8K8upOGjpqHsKUoAempR/RnUlI1qSFNyFlWJfu6MNUgfbCQQ==
@@ -2235,10 +2211,10 @@
js-yaml "^4.1.0" js-yaml "^4.1.0"
protobufjs "^7.2.6" protobufjs "^7.2.6"
"@triton-one/yellowstone-grpc@0.6.0": "@triton-one/yellowstone-grpc@1.3.0":
version "0.6.0" version "1.3.0"
resolved "https://registry.yarnpkg.com/@triton-one/yellowstone-grpc/-/yellowstone-grpc-0.6.0.tgz#9e6376cec8a42284c23dc195df2c3423c87c4f27" resolved "https://registry.yarnpkg.com/@triton-one/yellowstone-grpc/-/yellowstone-grpc-1.3.0.tgz#7caa7006b525149b4780d1295c7d4c34bc6a6ff6"
integrity sha512-rgdZM2N3U9/d/QKOI5PP+9rSHUl2oSI5Uwzvuss8y/mtTaHFjbOMpXpQXviIeDkusOa+mef4wLYrbjEZCwTXiw== integrity sha512-tuwHtoYzvqnahsMrecfNNkQceCYwgiY0qKS8RwqtaxvDEgjm0E+0bXwKz2eUD3ZFYifomJmRKDmSBx9yQzAeMQ==
dependencies: dependencies:
"@grpc/grpc-js" "^1.8.0" "@grpc/grpc-js" "^1.8.0"
@@ -2869,7 +2845,7 @@ ajv@^8.0.1, ajv@^8.1.0:
require-from-string "^2.0.2" require-from-string "^2.0.2"
uri-js "^4.2.2" uri-js "^4.2.2"
anchor-bankrun@^0.3.0: anchor-bankrun@0.3.0:
version "0.3.0" version "0.3.0"
resolved "https://registry.yarnpkg.com/anchor-bankrun/-/anchor-bankrun-0.3.0.tgz#3789fcecbc201a2334cff228b99cc0da8ef0167e" resolved "https://registry.yarnpkg.com/anchor-bankrun/-/anchor-bankrun-0.3.0.tgz#3789fcecbc201a2334cff228b99cc0da8ef0167e"
integrity sha512-PYBW5fWX+iGicIS5MIM/omhk1tQPUc0ELAnI/IkLKQJ6d75De/CQRh8MF2bU/TgGyFi6zEel80wUe3uRol9RrQ== integrity sha512-PYBW5fWX+iGicIS5MIM/omhk1tQPUc0ELAnI/IkLKQJ6d75De/CQRh8MF2bU/TgGyFi6zEel80wUe3uRol9RrQ==
@@ -5206,6 +5182,11 @@ ms@2.1.3, ms@^2.0.0, ms@^2.1.1:
resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2"
integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
nanoid@3.3.4:
version "3.3.4"
resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.4.tgz#730b67e3cd09e2deacf03c027c81c9d9dbc5e8ab"
integrity sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==
natural-compare@^1.4.0: natural-compare@^1.4.0:
version "1.4.0" version "1.4.0"
resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
@@ -5224,7 +5205,7 @@ no-case@^3.0.4:
lower-case "^2.0.2" lower-case "^2.0.2"
tslib "^2.0.3" tslib "^2.0.3"
node-cache@^5.1.2: node-cache@5.1.2:
version "5.1.2" version "5.1.2"
resolved "https://registry.yarnpkg.com/node-cache/-/node-cache-5.1.2.tgz#f264dc2ccad0a780e76253a694e9fd0ed19c398d" resolved "https://registry.yarnpkg.com/node-cache/-/node-cache-5.1.2.tgz#f264dc2ccad0a780e76253a694e9fd0ed19c398d"
integrity sha512-t1QzWwnk4sjLWaQAS8CHgOJ+RAfmHpxFWmc36IWTiWHQfs0w5JDMBS1b1ZxQteo0vVVuWJvIUKHDkkeK7vIGCg== integrity sha512-t1QzWwnk4sjLWaQAS8CHgOJ+RAfmHpxFWmc36IWTiWHQfs0w5JDMBS1b1ZxQteo0vVVuWJvIUKHDkkeK7vIGCg==
@@ -6144,7 +6125,7 @@ solana-bankrun-linux-x64-musl@0.3.1:
resolved "https://registry.yarnpkg.com/solana-bankrun-linux-x64-musl/-/solana-bankrun-linux-x64-musl-0.3.1.tgz#1a044a132138a0084e82406ec7bf4939f06bed68" resolved "https://registry.yarnpkg.com/solana-bankrun-linux-x64-musl/-/solana-bankrun-linux-x64-musl-0.3.1.tgz#1a044a132138a0084e82406ec7bf4939f06bed68"
integrity sha512-6r8i0NuXg3CGURql8ISMIUqhE7Hx/O7MlIworK4oN08jYrP0CXdLeB/hywNn7Z8d1NXrox/NpYUgvRm2yIzAsQ== integrity sha512-6r8i0NuXg3CGURql8ISMIUqhE7Hx/O7MlIworK4oN08jYrP0CXdLeB/hywNn7Z8d1NXrox/NpYUgvRm2yIzAsQ==
solana-bankrun@^0.3.0: solana-bankrun@0.3.1:
version "0.3.1" version "0.3.1"
resolved "https://registry.yarnpkg.com/solana-bankrun/-/solana-bankrun-0.3.1.tgz#13665ab7c1c15ec2b3354aae56980d0ded514998" resolved "https://registry.yarnpkg.com/solana-bankrun/-/solana-bankrun-0.3.1.tgz#13665ab7c1c15ec2b3354aae56980d0ded514998"
integrity sha512-inRwON7fBU5lPC36HdEqPeDg15FXJYcf77+o0iz9amvkUMJepcwnRwEfTNyMVpVYdgjTOBW5vg+596/3fi1kGA== integrity sha512-inRwON7fBU5lPC36HdEqPeDg15FXJYcf77+o0iz9amvkUMJepcwnRwEfTNyMVpVYdgjTOBW5vg+596/3fi1kGA==
@@ -6218,7 +6199,7 @@ stream-shift@^1.0.0:
resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.1.tgz#d7088281559ab2778424279b0877da3c392d5a3d" resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.1.tgz#d7088281559ab2778424279b0877da3c392d5a3d"
integrity sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ== integrity sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==
strict-event-emitter-types@^2.0.0: strict-event-emitter-types@2.0.0:
version "2.0.0" version "2.0.0"
resolved "https://registry.yarnpkg.com/strict-event-emitter-types/-/strict-event-emitter-types-2.0.0.tgz#05e15549cb4da1694478a53543e4e2f4abcf277f" resolved "https://registry.yarnpkg.com/strict-event-emitter-types/-/strict-event-emitter-types-2.0.0.tgz#05e15549cb4da1694478a53543e4e2f4abcf277f"
integrity sha512-Nk/brWYpD85WlOgzw5h173aci0Teyv8YdIAEtV+N88nDB0dLlazZyJMIsN6eo1/AR61l+p6CJTG1JIyFaoNEEA== integrity sha512-Nk/brWYpD85WlOgzw5h173aci0Teyv8YdIAEtV+N88nDB0dLlazZyJMIsN6eo1/AR61l+p6CJTG1JIyFaoNEEA==
@@ -6457,6 +6438,11 @@ tsutils@^3.21.0:
dependencies: dependencies:
tslib "^1.8.1" tslib "^1.8.1"
tweetnacl-util@0.15.1:
version "0.15.1"
resolved "https://registry.yarnpkg.com/tweetnacl-util/-/tweetnacl-util-0.15.1.tgz#b80fcdb5c97bcc508be18c44a4be50f022eea00b"
integrity sha512-RKJBIj8lySrShN4w6i/BonWp2Z/uxwC3h4y7xsRrpP59ZboCd0GpEVsOnMDYLMmKBpYhb5TgHzZXy7wTfYFBRw==
tweetnacl@1.0.3, tweetnacl@^1.0.3: tweetnacl@1.0.3, tweetnacl@^1.0.3:
version "1.0.3" version "1.0.3"
resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-1.0.3.tgz#ac0af71680458d8a6378d0d0d050ab1407d35596" resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-1.0.3.tgz#ac0af71680458d8a6378d0d0d050ab1407d35596"
@@ -6565,7 +6551,7 @@ utils-merge@1.0.1:
resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713"
integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==
uuid@^8.3.2: uuid@8.3.2, uuid@^8.3.2:
version "8.3.2" version "8.3.2"
resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2"
integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==
@@ -6799,7 +6785,7 @@ yargs@16.2.0:
y18n "^5.0.5" y18n "^5.0.5"
yargs-parser "^20.2.2" yargs-parser "^20.2.2"
yargs@^17.7.2: yargs@17.7.2, yargs@^17.7.2:
version "17.7.2" version "17.7.2"
resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269" resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269"
integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w== integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==
@@ -6822,7 +6808,7 @@ yocto-queue@^0.1.0:
resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b"
integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==
zstddec@^0.1.0: zstddec@0.1.0:
version "0.1.0" version "0.1.0"
resolved "https://registry.yarnpkg.com/zstddec/-/zstddec-0.1.0.tgz#7050f3f0e0c3978562d0c566b3e5a427d2bad7ec" resolved "https://registry.yarnpkg.com/zstddec/-/zstddec-0.1.0.tgz#7050f3f0e0c3978562d0c566b3e5a427d2bad7ec"
integrity sha512-w2NTI8+3l3eeltKAdK8QpiLo/flRAr2p8AGeakfMZOXBxOg9HIu4LVDxBi81sYgVhFhdJjv1OrB5ssI8uFPoLg== integrity sha512-w2NTI8+3l3eeltKAdK8QpiLo/flRAr2p8AGeakfMZOXBxOg9HIu4LVDxBi81sYgVhFhdJjv1OrB5ssI8uFPoLg==