ts: ALTs integration
Signed-off-by: microwavedcola1 <microwavedcola@gmail.com>
This commit is contained in:
parent
9cbc352197
commit
dd83aeb156
|
@ -64,10 +64,14 @@
|
|||
"@project-serum/serum": "^0.13.65",
|
||||
"@pythnetwork/client": "^2.7.0",
|
||||
"@solana/spl-token": "^0.1.8",
|
||||
"@solana/web3.js": "^1.63.1",
|
||||
"@switchboard-xyz/switchboard-v2": "^0.0.129",
|
||||
"big.js": "^6.1.1",
|
||||
"bs58": "^5.0.0"
|
||||
},
|
||||
"resolutions": {
|
||||
"@project-serum/anchor/@solana/web3.js": "1.63.1"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@solana/spl-token-swap": "^0.2.0"
|
||||
},
|
||||
|
|
|
@ -7,7 +7,11 @@ import {
|
|||
Orderbook,
|
||||
} from '@project-serum/serum';
|
||||
import { parsePriceData, PriceData } from '@pythnetwork/client';
|
||||
import { AccountInfo, PublicKey } from '@solana/web3.js';
|
||||
import {
|
||||
AccountInfo,
|
||||
AddressLookupTableAccount,
|
||||
PublicKey,
|
||||
} from '@solana/web3.js';
|
||||
import BN from 'bn.js';
|
||||
import { MangoClient } from '../client';
|
||||
import { SERUM3_PROGRAM_ID } from '../constants';
|
||||
|
@ -35,6 +39,7 @@ export class Group {
|
|||
insuranceVault: PublicKey;
|
||||
testing: number;
|
||||
version: number;
|
||||
addressLookupTables: PublicKey[];
|
||||
},
|
||||
): Group {
|
||||
return new Group(
|
||||
|
@ -47,6 +52,8 @@ export class Group {
|
|||
obj.insuranceVault,
|
||||
obj.testing,
|
||||
obj.version,
|
||||
obj.addressLookupTables,
|
||||
[], // addressLookupTablesList
|
||||
new Map(), // banksMapByName
|
||||
new Map(), // banksMapByMint
|
||||
new Map(), // banksMapByTokenIndex
|
||||
|
@ -70,6 +77,8 @@ export class Group {
|
|||
public insuranceVault: PublicKey,
|
||||
public testing: number,
|
||||
public version: number,
|
||||
public addressLookupTables: PublicKey[],
|
||||
public addressLookupTablesList: AddressLookupTableAccount[],
|
||||
public banksMapByName: Map<string, Bank[]>,
|
||||
public banksMapByMint: Map<string, Bank[]>,
|
||||
public banksMapByTokenIndex: Map<number, Bank[]>,
|
||||
|
@ -96,6 +105,7 @@ export class Group {
|
|||
|
||||
// console.time('group.reload');
|
||||
await Promise.all([
|
||||
this.reloadAlts(client),
|
||||
this.reloadBanks(client, ids).then(() =>
|
||||
Promise.all([
|
||||
this.reloadBankOraclePrices(client),
|
||||
|
@ -113,6 +123,22 @@ export class Group {
|
|||
// console.timeEnd('group.reload');
|
||||
}
|
||||
|
||||
public async reloadAlts(client: MangoClient) {
|
||||
const alts = await Promise.all(
|
||||
this.addressLookupTables
|
||||
.filter((alt) => !alt.equals(PublicKey.default))
|
||||
.map((alt) =>
|
||||
client.program.provider.connection.getAddressLookupTable(alt),
|
||||
),
|
||||
);
|
||||
this.addressLookupTablesList = alts.map((res, i) => {
|
||||
if (!res || !res.value) {
|
||||
throw new Error(`Error in getting ALT ${this.addressLookupTables[i]}`);
|
||||
}
|
||||
return res.value;
|
||||
});
|
||||
}
|
||||
|
||||
public async reloadBanks(client: MangoClient, ids?: Id) {
|
||||
let banks: Bank[];
|
||||
|
||||
|
|
|
@ -35,12 +35,12 @@ import {
|
|||
} from './accounts/mangoAccount';
|
||||
import { StubOracle } from './accounts/oracle';
|
||||
import {
|
||||
PerpEventQueue,
|
||||
PerpMarket,
|
||||
PerpOrderType,
|
||||
PerpOrderSide,
|
||||
FillEvent,
|
||||
OutEvent,
|
||||
PerpEventQueue,
|
||||
PerpMarket,
|
||||
PerpOrderSide,
|
||||
PerpOrderType,
|
||||
} from './accounts/perp';
|
||||
import {
|
||||
generateSerum3MarketExternalVaultSignerAddress,
|
||||
|
@ -553,7 +553,7 @@ export class MangoClient {
|
|||
perpCount?: number,
|
||||
perpOoCount?: number,
|
||||
): Promise<TransactionSignature> {
|
||||
const transaction = await this.program.methods
|
||||
const ix = await this.program.methods
|
||||
.accountCreate(
|
||||
accountNumber ?? 0,
|
||||
tokenCount ?? 8,
|
||||
|
@ -567,11 +567,12 @@ export class MangoClient {
|
|||
owner: (this.program.provider as AnchorProvider).wallet.publicKey,
|
||||
payer: (this.program.provider as AnchorProvider).wallet.publicKey,
|
||||
})
|
||||
.transaction();
|
||||
.instruction();
|
||||
|
||||
return await sendTransaction(
|
||||
this.program.provider as AnchorProvider,
|
||||
transaction,
|
||||
[ix],
|
||||
[],
|
||||
{
|
||||
postSendTxCallback: this.postSendTxCallback,
|
||||
},
|
||||
|
@ -629,18 +630,19 @@ export class MangoClient {
|
|||
name?: string,
|
||||
delegate?: PublicKey,
|
||||
): Promise<TransactionSignature> {
|
||||
const transaction = await this.program.methods
|
||||
const ix = await this.program.methods
|
||||
.accountEdit(name ?? null, delegate ?? null)
|
||||
.accounts({
|
||||
group: group.publicKey,
|
||||
account: mangoAccount.publicKey,
|
||||
owner: (this.program.provider as AnchorProvider).wallet.publicKey,
|
||||
})
|
||||
.transaction();
|
||||
.instruction();
|
||||
|
||||
return await sendTransaction(
|
||||
this.program.provider as AnchorProvider,
|
||||
transaction,
|
||||
[ix],
|
||||
[],
|
||||
{
|
||||
postSendTxCallback: this.postSendTxCallback,
|
||||
},
|
||||
|
@ -731,7 +733,7 @@ export class MangoClient {
|
|||
group: Group,
|
||||
mangoAccount: MangoAccount,
|
||||
): Promise<TransactionSignature> {
|
||||
const transaction = await this.program.methods
|
||||
const ix = await this.program.methods
|
||||
.accountClose()
|
||||
.accounts({
|
||||
group: group.publicKey,
|
||||
|
@ -739,11 +741,12 @@ export class MangoClient {
|
|||
owner: (this.program.provider as AnchorProvider).wallet.publicKey,
|
||||
solDestination: mangoAccount.owner,
|
||||
})
|
||||
.transaction();
|
||||
.instruction();
|
||||
|
||||
return await sendTransaction(
|
||||
this.program.provider as AnchorProvider,
|
||||
transaction,
|
||||
[ix],
|
||||
[],
|
||||
{
|
||||
postSendTxCallback: this.postSendTxCallback,
|
||||
},
|
||||
|
@ -866,7 +869,7 @@ export class MangoClient {
|
|||
[],
|
||||
);
|
||||
|
||||
const transaction = await this.program.methods
|
||||
const ix = await this.program.methods
|
||||
.tokenDeposit(new BN(nativeAmount))
|
||||
.accounts({
|
||||
group: group.publicKey,
|
||||
|
@ -883,14 +886,12 @@ export class MangoClient {
|
|||
({ pubkey: pk, isWritable: false, isSigner: false } as AccountMeta),
|
||||
),
|
||||
)
|
||||
.preInstructions(preInstructions)
|
||||
.postInstructions(postInstructions)
|
||||
.signers(additionalSigners)
|
||||
.transaction();
|
||||
.instruction();
|
||||
|
||||
return await sendTransaction(
|
||||
this.program.provider as AnchorProvider,
|
||||
transaction,
|
||||
[...preInstructions, ix, ...postInstructions],
|
||||
group.addressLookupTablesList,
|
||||
{
|
||||
additionalSigners,
|
||||
postSendTxCallback: this.postSendTxCallback,
|
||||
|
@ -961,7 +962,7 @@ export class MangoClient {
|
|||
[],
|
||||
);
|
||||
|
||||
const tx = await this.program.methods
|
||||
const ix = await this.program.methods
|
||||
.tokenWithdraw(new BN(nativeAmount), allowBorrow)
|
||||
.accounts({
|
||||
group: group.publicKey,
|
||||
|
@ -978,13 +979,16 @@ export class MangoClient {
|
|||
({ pubkey: pk, isWritable: false, isSigner: false } as AccountMeta),
|
||||
),
|
||||
)
|
||||
.preInstructions(preInstructions)
|
||||
.postInstructions(postInstructions)
|
||||
.transaction();
|
||||
.instruction();
|
||||
|
||||
return await sendTransaction(this.program.provider as AnchorProvider, tx, {
|
||||
postSendTxCallback: this.postSendTxCallback,
|
||||
});
|
||||
return await sendTransaction(
|
||||
this.program.provider as AnchorProvider,
|
||||
[...preInstructions, ix, ...postInstructions],
|
||||
group.addressLookupTablesList,
|
||||
{
|
||||
postSendTxCallback: this.postSendTxCallback,
|
||||
},
|
||||
);
|
||||
}
|
||||
|
||||
// Serum
|
||||
|
@ -1192,7 +1196,7 @@ export class MangoClient {
|
|||
}
|
||||
})();
|
||||
|
||||
const tx = await this.program.methods
|
||||
const ix = await this.program.methods
|
||||
.serum3PlaceOrder(
|
||||
side,
|
||||
limitPrice,
|
||||
|
@ -1228,11 +1232,16 @@ export class MangoClient {
|
|||
({ pubkey: pk, isWritable: false, isSigner: false } as AccountMeta),
|
||||
),
|
||||
)
|
||||
.transaction();
|
||||
.instruction();
|
||||
|
||||
return await sendTransaction(this.program.provider as AnchorProvider, tx, {
|
||||
postSendTxCallback: this.postSendTxCallback,
|
||||
});
|
||||
return await sendTransaction(
|
||||
this.program.provider as AnchorProvider,
|
||||
[ix],
|
||||
group.addressLookupTablesList,
|
||||
{
|
||||
postSendTxCallback: this.postSendTxCallback,
|
||||
},
|
||||
);
|
||||
}
|
||||
|
||||
async serum3CancelAllorders(
|
||||
|
@ -1249,7 +1258,7 @@ export class MangoClient {
|
|||
externalMarketPk.toBase58(),
|
||||
)!;
|
||||
|
||||
const tx = await this.program.methods
|
||||
const ix = await this.program.methods
|
||||
.serum3CancelAllOrders(limit)
|
||||
.accounts({
|
||||
group: group.publicKey,
|
||||
|
@ -1264,11 +1273,16 @@ export class MangoClient {
|
|||
marketAsks: serum3MarketExternal.asksAddress,
|
||||
marketEventQueue: serum3MarketExternal.decoded.eventQueue,
|
||||
})
|
||||
.transaction();
|
||||
.instruction();
|
||||
|
||||
return await sendTransaction(this.program.provider as AnchorProvider, tx, {
|
||||
postSendTxCallback: this.postSendTxCallback,
|
||||
});
|
||||
return await sendTransaction(
|
||||
this.program.provider as AnchorProvider,
|
||||
[ix],
|
||||
group.addressLookupTablesList,
|
||||
{
|
||||
postSendTxCallback: this.postSendTxCallback,
|
||||
},
|
||||
);
|
||||
}
|
||||
|
||||
async serum3SettleFunds(
|
||||
|
@ -1289,7 +1303,7 @@ export class MangoClient {
|
|||
serum3MarketExternal,
|
||||
);
|
||||
|
||||
const tx = await this.program.methods
|
||||
const ix = await this.program.methods
|
||||
.serum3SettleFunds()
|
||||
.accounts({
|
||||
group: group.publicKey,
|
||||
|
@ -1312,11 +1326,16 @@ export class MangoClient {
|
|||
baseVault: group.getFirstBankByTokenIndex(serum3Market.baseTokenIndex)
|
||||
.vault,
|
||||
})
|
||||
.transaction();
|
||||
.instruction();
|
||||
|
||||
return await sendTransaction(this.program.provider as AnchorProvider, tx, {
|
||||
postSendTxCallback: this.postSendTxCallback,
|
||||
});
|
||||
return await sendTransaction(
|
||||
this.program.provider as AnchorProvider,
|
||||
[ix],
|
||||
group.addressLookupTablesList,
|
||||
{
|
||||
postSendTxCallback: this.postSendTxCallback,
|
||||
},
|
||||
);
|
||||
}
|
||||
|
||||
async serum3CancelOrder(
|
||||
|
@ -1334,7 +1353,7 @@ export class MangoClient {
|
|||
externalMarketPk.toBase58(),
|
||||
)!;
|
||||
|
||||
const tx = await this.program.methods
|
||||
const ix = await this.program.methods
|
||||
.serum3CancelOrder(side, orderId)
|
||||
.accounts({
|
||||
group: group.publicKey,
|
||||
|
@ -1348,11 +1367,16 @@ export class MangoClient {
|
|||
marketAsks: serum3MarketExternal.asksAddress,
|
||||
marketEventQueue: serum3MarketExternal.decoded.eventQueue,
|
||||
})
|
||||
.transaction();
|
||||
.instruction();
|
||||
|
||||
return await sendTransaction(this.program.provider as AnchorProvider, tx, {
|
||||
postSendTxCallback: this.postSendTxCallback,
|
||||
});
|
||||
return await sendTransaction(
|
||||
this.program.provider as AnchorProvider,
|
||||
[ix],
|
||||
group.addressLookupTablesList,
|
||||
{
|
||||
postSendTxCallback: this.postSendTxCallback,
|
||||
},
|
||||
);
|
||||
}
|
||||
|
||||
/// perps
|
||||
|
@ -1409,7 +1433,7 @@ export class MangoClient {
|
|||
new BN(impactQuantity),
|
||||
groupInsuranceFund,
|
||||
trustedMarket,
|
||||
feePenalty
|
||||
feePenalty,
|
||||
)
|
||||
.accounts({
|
||||
group: group.publicKey,
|
||||
|
@ -1506,7 +1530,7 @@ export class MangoClient {
|
|||
new BN(impactQuantity),
|
||||
groupInsuranceFund,
|
||||
trustedMarket,
|
||||
feePenalty
|
||||
feePenalty,
|
||||
)
|
||||
.accounts({
|
||||
group: group.publicKey,
|
||||
|
@ -1609,7 +1633,7 @@ export class MangoClient {
|
|||
[group.getFirstBankByTokenIndex(0)],
|
||||
[perpMarket],
|
||||
);
|
||||
return await this.program.methods
|
||||
const ix = await this.program.methods
|
||||
.perpPlaceOrder(
|
||||
side,
|
||||
perpMarket.uiPriceToLots(price),
|
||||
|
@ -1638,7 +1662,16 @@ export class MangoClient {
|
|||
({ pubkey: pk, isWritable: false, isSigner: false } as AccountMeta),
|
||||
),
|
||||
)
|
||||
.rpc();
|
||||
.instruction();
|
||||
|
||||
return await sendTransaction(
|
||||
this.program.provider as AnchorProvider,
|
||||
[ix],
|
||||
group.addressLookupTablesList,
|
||||
{
|
||||
postSendTxCallback: this.postSendTxCallback,
|
||||
},
|
||||
);
|
||||
}
|
||||
|
||||
async perpCancelAllOrders(
|
||||
|
@ -1648,7 +1681,7 @@ export class MangoClient {
|
|||
limit: number,
|
||||
): Promise<TransactionSignature> {
|
||||
const perpMarket = group.perpMarketsMap.get(perpMarketName)!;
|
||||
return await this.program.methods
|
||||
const ix = await this.program.methods
|
||||
.perpCancelAllOrders(limit)
|
||||
.accounts({
|
||||
group: group.publicKey,
|
||||
|
@ -1658,7 +1691,16 @@ export class MangoClient {
|
|||
bids: perpMarket.bids,
|
||||
owner: (this.program.provider as AnchorProvider).wallet.publicKey,
|
||||
})
|
||||
.rpc();
|
||||
.instruction();
|
||||
|
||||
return await sendTransaction(
|
||||
this.program.provider as AnchorProvider,
|
||||
[ix],
|
||||
group.addressLookupTablesList,
|
||||
{
|
||||
postSendTxCallback: this.postSendTxCallback,
|
||||
},
|
||||
);
|
||||
}
|
||||
|
||||
async perpConsumeEvents(
|
||||
|
@ -1691,18 +1733,20 @@ export class MangoClient {
|
|||
const limit = 8;
|
||||
const perpMarket = group.perpMarketsMap.get(perpMarketName)!;
|
||||
const eventQueue = await perpMarket.loadEventQueue(this);
|
||||
let unconsumedEvents = eventQueue.getUnconsumedEvents();
|
||||
const unconsumedEvents = eventQueue.getUnconsumedEvents();
|
||||
while (unconsumedEvents.length > 0) {
|
||||
const events = unconsumedEvents.splice(0, limit);
|
||||
const accounts = events
|
||||
.map((ev) => {
|
||||
switch (ev.eventType) {
|
||||
case PerpEventQueue.FILL_EVENT_TYPE:
|
||||
case PerpEventQueue.FILL_EVENT_TYPE: {
|
||||
const fill = <FillEvent>ev;
|
||||
return [fill.maker, fill.taker];
|
||||
case PerpEventQueue.OUT_EVENT_TYPE:
|
||||
}
|
||||
case PerpEventQueue.OUT_EVENT_TYPE: {
|
||||
const out = <OutEvent>ev;
|
||||
return [out.owner];
|
||||
}
|
||||
case PerpEventQueue.LIQUIDATE_EVENT_TYPE:
|
||||
return [];
|
||||
default:
|
||||
|
@ -1873,21 +1917,19 @@ export class MangoClient {
|
|||
])
|
||||
.instruction();
|
||||
|
||||
const tx = new Transaction();
|
||||
for (const ix of preInstructions) {
|
||||
tx.add(ix);
|
||||
}
|
||||
tx.add(flashLoanBeginIx);
|
||||
for (const ix of userDefinedInstructions.filter(
|
||||
(ix) => ix.keys.length > 2,
|
||||
)) {
|
||||
tx.add(ix);
|
||||
}
|
||||
tx.add(flashLoanEndIx);
|
||||
|
||||
return await sendTransaction(this.program.provider as AnchorProvider, tx, {
|
||||
postSendTxCallback: this.postSendTxCallback,
|
||||
});
|
||||
return await sendTransaction(
|
||||
this.program.provider as AnchorProvider,
|
||||
[
|
||||
...preInstructions,
|
||||
flashLoanBeginIx,
|
||||
...userDefinedInstructions.filter((ix) => ix.keys.length > 2),
|
||||
flashLoanEndIx,
|
||||
],
|
||||
group.addressLookupTablesList,
|
||||
{
|
||||
postSendTxCallback: this.postSendTxCallback,
|
||||
},
|
||||
);
|
||||
}
|
||||
|
||||
async updateIndexAndRate(group: Group, mintPk: PublicKey) {
|
||||
|
@ -1947,7 +1989,7 @@ export class MangoClient {
|
|||
} as AccountMeta),
|
||||
);
|
||||
|
||||
await this.program.methods
|
||||
const ix = await this.program.methods
|
||||
.liqTokenWithToken(assetBank.tokenIndex, liabBank.tokenIndex, {
|
||||
val: I80F48.fromNumber(maxLiabTransfer).getData(),
|
||||
})
|
||||
|
@ -1958,6 +2000,52 @@ export class MangoClient {
|
|||
liqorOwner: liqor.owner,
|
||||
})
|
||||
.remainingAccounts(parsedHealthAccounts)
|
||||
.instruction();
|
||||
|
||||
return await sendTransaction(
|
||||
this.program.provider as AnchorProvider,
|
||||
[ix],
|
||||
group.addressLookupTablesList,
|
||||
{
|
||||
postSendTxCallback: this.postSendTxCallback,
|
||||
},
|
||||
);
|
||||
}
|
||||
|
||||
async altSet(group: Group, addressLookupTable: PublicKey, index: number) {
|
||||
const ix = await this.program.methods
|
||||
.altSet(index)
|
||||
.accounts({
|
||||
group: group.publicKey,
|
||||
admin: (this.program.provider as AnchorProvider).wallet.publicKey,
|
||||
addressLookupTable,
|
||||
})
|
||||
.instruction();
|
||||
|
||||
return await sendTransaction(
|
||||
this.program.provider as AnchorProvider,
|
||||
[ix],
|
||||
group.addressLookupTablesList,
|
||||
{
|
||||
postSendTxCallback: this.postSendTxCallback,
|
||||
},
|
||||
);
|
||||
}
|
||||
|
||||
async altExtend(
|
||||
group: Group,
|
||||
addressLookupTable: PublicKey,
|
||||
index: number,
|
||||
pks: PublicKey[],
|
||||
) {
|
||||
return await this.program.methods
|
||||
.altExtend(index, pks)
|
||||
.accounts({
|
||||
group: group.publicKey,
|
||||
admin: (this.program.provider as AnchorProvider).wallet.publicKey,
|
||||
payer: (this.program.provider as AnchorProvider).wallet.publicKey,
|
||||
addressLookupTable,
|
||||
})
|
||||
.rpc();
|
||||
}
|
||||
|
||||
|
@ -2141,7 +2229,7 @@ export class MangoClient {
|
|||
...mintInfos.map((mintInfo) => mintInfo.oracle),
|
||||
);
|
||||
|
||||
let perpIndices: number[] = [];
|
||||
const perpIndices: number[] = [];
|
||||
for (const mangoAccount of mangoAccounts) {
|
||||
perpIndices.push(
|
||||
...mangoAccount.perps
|
||||
|
|
|
@ -1,8 +1,14 @@
|
|||
import { AnchorProvider, Wallet } from '@project-serum/anchor';
|
||||
import { Connection, Keypair, PublicKey } from '@solana/web3.js';
|
||||
import {
|
||||
AddressLookupTableProgram,
|
||||
Connection,
|
||||
Keypair,
|
||||
PublicKey,
|
||||
} from '@solana/web3.js';
|
||||
import fs from 'fs';
|
||||
import { MangoClient } from '../client';
|
||||
import { MANGO_V4_ID } from '../constants';
|
||||
import { buildVersionedTx } from '../utils';
|
||||
|
||||
//
|
||||
// An example for admins based on high level api i.e. the client
|
||||
|
@ -508,6 +514,78 @@ async function main() {
|
|||
}
|
||||
}
|
||||
|
||||
if (
|
||||
// true
|
||||
group.addressLookupTables[0].equals(PublicKey.default)
|
||||
) {
|
||||
try {
|
||||
console.log(`ALT: Creating`);
|
||||
const createIx = AddressLookupTableProgram.createLookupTable({
|
||||
authority: admin.publicKey,
|
||||
payer: admin.publicKey,
|
||||
recentSlot: await connection.getSlot('finalized'),
|
||||
});
|
||||
const createTx = await buildVersionedTx(
|
||||
client.program.provider as AnchorProvider,
|
||||
[createIx[0]],
|
||||
);
|
||||
let sig = await connection.sendTransaction(createTx);
|
||||
console.log(
|
||||
`...created ALT ${createIx[1]} https://explorer.solana.com/tx/${sig}?cluster=devnet`,
|
||||
);
|
||||
|
||||
console.log(`ALT: set at index 0 for group...`);
|
||||
sig = await client.altSet(
|
||||
group,
|
||||
new PublicKey('EmN5RjHUFsoag7tZ2AyBL2N8JrhV7nLMKgNbpCfzC81D'),
|
||||
0,
|
||||
);
|
||||
console.log(`...https://explorer.solana.com/tx/${sig}?cluster=devnet`);
|
||||
|
||||
// Extend using a mango v4 program ix
|
||||
// Throws > Instruction references an unknown account 11111111111111111111111111111111 atm
|
||||
//
|
||||
console.log(
|
||||
`ALT: extending using mango v4 program with bank publick keys and oracles`,
|
||||
);
|
||||
// let sig = await client.altExtend(
|
||||
// group,
|
||||
// new PublicKey('EmN5RjHUFsoag7tZ2AyBL2N8JrhV7nLMKgNbpCfzC81D'),
|
||||
// 0,
|
||||
// Array.from(group.banksMapByMint.values())
|
||||
// .flat()
|
||||
// .map((bank) => [bank.publicKey, bank.oracle])
|
||||
// .flat(),
|
||||
// );
|
||||
// console.log(`https://explorer.solana.com/tx/${sig}?cluster=devnet`);
|
||||
|
||||
// TODO decide on what keys should go in
|
||||
console.log(`ALT: extending manually with bank publick keys and oracles`);
|
||||
const extendIx = AddressLookupTableProgram.extendLookupTable({
|
||||
lookupTable: createIx[1],
|
||||
payer: admin.publicKey,
|
||||
authority: admin.publicKey,
|
||||
addresses: Array.from(group.banksMapByMint.values())
|
||||
.flat()
|
||||
.map((bank) => [bank.publicKey, bank.oracle])
|
||||
.flat(),
|
||||
});
|
||||
const extendTx = await buildVersionedTx(
|
||||
client.program.provider as AnchorProvider,
|
||||
[extendIx],
|
||||
);
|
||||
sig = await client.program.provider.connection.sendTransaction(extendTx);
|
||||
console.log(`https://explorer.solana.com/tx/${sig}?cluster=devnet`);
|
||||
} catch (error) {
|
||||
console.log(error);
|
||||
}
|
||||
}
|
||||
|
||||
try {
|
||||
} catch (error) {
|
||||
console.log(error);
|
||||
}
|
||||
|
||||
process.exit();
|
||||
}
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@ import { AnchorProvider, Wallet } from '@project-serum/anchor';
|
|||
import { Connection, Keypair, PublicKey } from '@solana/web3.js';
|
||||
import fs from 'fs';
|
||||
import { HealthType } from '../accounts/mangoAccount';
|
||||
import { BookSide, PerpOrderType, Side } from '../accounts/perp';
|
||||
import { BookSide, PerpOrderSide, PerpOrderType } from '../accounts/perp';
|
||||
import {
|
||||
Serum3OrderType,
|
||||
Serum3SelfTradeBehavior,
|
||||
|
@ -117,7 +117,7 @@ async function main() {
|
|||
}
|
||||
|
||||
// deposit and withdraw
|
||||
if (false) {
|
||||
if (true) {
|
||||
try {
|
||||
console.log(`...depositing 50 USDC, 1 SOL, 1 MNGO`);
|
||||
await client.tokenDeposit(
|
||||
|
@ -169,7 +169,7 @@ async function main() {
|
|||
}
|
||||
}
|
||||
|
||||
if (false) {
|
||||
if (true) {
|
||||
// serum3
|
||||
const serum3Market = group.serum3MarketsMapByExternal.get(
|
||||
DEVNET_SERUM3_MARKETS.get('BTC/USDC')?.toBase58()!,
|
||||
|
@ -282,7 +282,7 @@ async function main() {
|
|||
);
|
||||
}
|
||||
|
||||
if (false) {
|
||||
if (true) {
|
||||
// serum3 market
|
||||
const serum3Market = group.serum3MarketsMapByExternal.get(
|
||||
DEVNET_SERUM3_MARKETS.get('BTC/USDC')!.toBase58(),
|
||||
|
@ -290,7 +290,7 @@ async function main() {
|
|||
console.log(await serum3Market?.logOb(client, group));
|
||||
}
|
||||
|
||||
if (false) {
|
||||
if (true) {
|
||||
await mangoAccount.reload(client, group);
|
||||
console.log(
|
||||
'...mangoAccount.getEquity() ' +
|
||||
|
@ -333,7 +333,7 @@ async function main() {
|
|||
);
|
||||
}
|
||||
|
||||
if (false) {
|
||||
if (true) {
|
||||
const asks = await group.loadSerum3AsksForMarket(
|
||||
client,
|
||||
DEVNET_SERUM3_MARKETS.get('BTC/USDC')!,
|
||||
|
@ -434,7 +434,7 @@ async function main() {
|
|||
group,
|
||||
mangoAccount,
|
||||
'BTC-PERP',
|
||||
Side.bid,
|
||||
PerpOrderSide.bid,
|
||||
price,
|
||||
baseQty,
|
||||
quoteQty,
|
||||
|
@ -467,7 +467,7 @@ async function main() {
|
|||
group,
|
||||
mangoAccount,
|
||||
'BTC-PERP',
|
||||
Side.bid,
|
||||
PerpOrderSide.bid,
|
||||
price,
|
||||
baseQty,
|
||||
quoteQty,
|
||||
|
@ -496,7 +496,7 @@ async function main() {
|
|||
group,
|
||||
mangoAccount,
|
||||
'BTC-PERP',
|
||||
Side.ask,
|
||||
PerpOrderSide.ask,
|
||||
price,
|
||||
baseQty,
|
||||
quoteQty,
|
||||
|
@ -526,7 +526,7 @@ async function main() {
|
|||
group,
|
||||
mangoAccount,
|
||||
'BTC-PERP',
|
||||
Side.ask,
|
||||
PerpOrderSide.ask,
|
||||
price,
|
||||
baseQty,
|
||||
quoteQty,
|
||||
|
@ -554,7 +554,7 @@ async function main() {
|
|||
// group,
|
||||
// mangoAccount,
|
||||
// 'BTC-PERP',
|
||||
// Side.bid,
|
||||
// PerpOrderSide.bid,
|
||||
// price,
|
||||
// 0.01,
|
||||
// price * 0.01,
|
||||
|
@ -575,7 +575,7 @@ async function main() {
|
|||
// group,
|
||||
// mangoAccount,
|
||||
// 'BTC-PERP',
|
||||
// Side.ask,
|
||||
// PerpOrderSide.ask,
|
||||
// price,
|
||||
// 0.01,
|
||||
// price * 0.011,
|
||||
|
@ -593,7 +593,7 @@ async function main() {
|
|||
// // sig = await client.perpCancelAllOrders(group, mangoAccount, 'BTC-PERP', 10);
|
||||
// // console.log(`sig https://explorer.solana.com/tx/${sig}?cluster=devnet`);
|
||||
|
||||
const perpMarket = group.perpMarketsMap.get('BTC-PERP');
|
||||
const perpMarket = group.perpMarketsMap.get('BTC-PERP')!;
|
||||
|
||||
const bids: BookSide = await perpMarket?.loadBids(client)!;
|
||||
console.log(`bids - ${Array.from(bids.items())}`);
|
||||
|
@ -601,7 +601,7 @@ async function main() {
|
|||
console.log(`asks - ${Array.from(asks.items())}`);
|
||||
|
||||
await perpMarket?.loadEventQueue(client)!;
|
||||
const fr = await perpMarket?.getCurrentFundingRate(
|
||||
const fr = perpMarket?.getCurrentFundingRate(
|
||||
await perpMarket.loadBids(client),
|
||||
await perpMarket.loadAsks(client),
|
||||
);
|
||||
|
|
|
@ -1,12 +1,17 @@
|
|||
import { AnchorProvider } from '@project-serum/anchor';
|
||||
import {
|
||||
ASSOCIATED_TOKEN_PROGRAM_ID,
|
||||
TOKEN_PROGRAM_ID,
|
||||
} from '@solana/spl-token';
|
||||
import {
|
||||
AccountMeta,
|
||||
AddressLookupTableAccount,
|
||||
MessageV0,
|
||||
PublicKey,
|
||||
Signer,
|
||||
SystemProgram,
|
||||
TransactionInstruction,
|
||||
VersionedTransaction,
|
||||
} from '@solana/web3.js';
|
||||
import BN from 'bn.js';
|
||||
import { Bank, QUOTE_DECIMALS } from './accounts/bank';
|
||||
|
@ -188,3 +193,24 @@ export function toU64(amount: number, decimals: number): BN {
|
|||
export function nativeI80F48ToUi(amount: I80F48, decimals: number): I80F48 {
|
||||
return amount.div(I80F48.fromNumber(Math.pow(10, decimals)));
|
||||
}
|
||||
|
||||
export async function buildVersionedTx(
|
||||
provider: AnchorProvider,
|
||||
ix: TransactionInstruction[],
|
||||
additionalSigners: Signer[] = [],
|
||||
alts: AddressLookupTableAccount[] = [],
|
||||
): Promise<VersionedTransaction> {
|
||||
const message = MessageV0.compile({
|
||||
payerKey: (provider as AnchorProvider).wallet.publicKey,
|
||||
instructions: ix,
|
||||
recentBlockhash: (await provider.connection.getLatestBlockhash()).blockhash,
|
||||
addressLookupTableAccounts: alts,
|
||||
});
|
||||
const vTx = new VersionedTransaction(message);
|
||||
// TODO: remove use of any when possible in future
|
||||
vTx.sign([
|
||||
((provider as AnchorProvider).wallet as any).payer as Signer,
|
||||
...additionalSigners,
|
||||
]);
|
||||
return vTx;
|
||||
}
|
||||
|
|
|
@ -1,27 +1,28 @@
|
|||
import { AnchorProvider } from '@project-serum/anchor';
|
||||
import { Transaction } from '@solana/web3.js';
|
||||
import {
|
||||
AddressLookupTableAccount,
|
||||
TransactionInstruction,
|
||||
} from '@solana/web3.js';
|
||||
import { buildVersionedTx } from '../utils';
|
||||
|
||||
export async function sendTransaction(
|
||||
provider: AnchorProvider,
|
||||
transaction: Transaction,
|
||||
ixs: TransactionInstruction[],
|
||||
alts: AddressLookupTableAccount[],
|
||||
opts: any = {},
|
||||
) {
|
||||
const connection = provider.connection;
|
||||
const payer = provider.wallet;
|
||||
const latestBlockhash = await connection.getLatestBlockhash(
|
||||
opts.preflightCommitment,
|
||||
);
|
||||
transaction.recentBlockhash = latestBlockhash.blockhash;
|
||||
transaction.lastValidBlockHeight = latestBlockhash.lastValidBlockHeight;
|
||||
transaction.feePayer = payer.publicKey;
|
||||
if (opts.additionalSigners?.length > 0) {
|
||||
transaction.partialSign(...opts.additionalSigners);
|
||||
}
|
||||
const tx = await buildVersionedTx(
|
||||
provider,
|
||||
ixs,
|
||||
opts.additionalSigners,
|
||||
alts,
|
||||
);
|
||||
|
||||
await payer.signTransaction(transaction);
|
||||
const rawTransaction = transaction.serialize();
|
||||
|
||||
const signature = await connection.sendRawTransaction(rawTransaction, {
|
||||
const signature = await connection.sendRawTransaction(tx.serialize(), {
|
||||
skipPreflight: true,
|
||||
});
|
||||
|
||||
|
@ -35,16 +36,16 @@ export async function sendTransaction(
|
|||
|
||||
let status: any;
|
||||
if (
|
||||
transaction.recentBlockhash != null &&
|
||||
transaction.lastValidBlockHeight != null
|
||||
latestBlockhash.blockhash != null &&
|
||||
latestBlockhash.lastValidBlockHeight != null
|
||||
) {
|
||||
console.log('confirming via blockhash');
|
||||
status = (
|
||||
await connection.confirmTransaction(
|
||||
{
|
||||
signature: signature,
|
||||
blockhash: transaction.recentBlockhash,
|
||||
lastValidBlockHeight: transaction.lastValidBlockHeight,
|
||||
blockhash: latestBlockhash.blockhash,
|
||||
lastValidBlockHeight: latestBlockhash.lastValidBlockHeight,
|
||||
},
|
||||
'processed',
|
||||
)
|
||||
|
|
163
yarn.lock
163
yarn.lock
|
@ -23,13 +23,20 @@
|
|||
chalk "^2.0.0"
|
||||
js-tokens "^4.0.0"
|
||||
|
||||
"@babel/runtime@^7.10.5", "@babel/runtime@^7.12.5", "@babel/runtime@^7.17.2":
|
||||
"@babel/runtime@^7.10.5":
|
||||
version "7.18.9"
|
||||
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.18.9.tgz#b4fcfce55db3d2e5e080d2490f608a3b9f407f4a"
|
||||
integrity sha512-lkqXDcvlFT5rvEjiu6+QYO+1GXrEHRo2LOtS7E4GtX5ESIZOgepqsZBVIj6Pv+a6zqsya9VCgiK1KAK4BvJDAw==
|
||||
dependencies:
|
||||
regenerator-runtime "^0.13.4"
|
||||
|
||||
"@babel/runtime@^7.12.5", "@babel/runtime@^7.17.2":
|
||||
version "7.19.0"
|
||||
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.19.0.tgz#22b11c037b094d27a8a2504ea4dcff00f50e2259"
|
||||
integrity sha512-eR8Lo9hnDS7tqkO7NsV+mKvCmv5boaXFSZ70DnfhcgiEne8hv9oCEd36Klw74EtizEqLsy4YnW8UWwpBVolHZA==
|
||||
dependencies:
|
||||
regenerator-runtime "^0.13.4"
|
||||
|
||||
"@cykura/sdk-core@npm:@jup-ag/cykura-sdk-core@0.1.8", "@jup-ag/cykura-sdk-core@0.1.8":
|
||||
version "0.1.8"
|
||||
resolved "https://registry.npmjs.org/@jup-ag/cykura-sdk-core/-/cykura-sdk-core-0.1.8.tgz"
|
||||
|
@ -192,6 +199,21 @@
|
|||
resolved "https://registry.npmjs.org/@mercurial-finance/optimist/-/optimist-0.1.4.tgz"
|
||||
integrity sha512-m8QuyPx9j7fGd2grw0mD5WcYtBb8l7+OQI5aHdeIlxPg3QoPrbSdCHyFOuipYbvB0EY5YDbOmyeFwiTcBkBBSw==
|
||||
|
||||
"@noble/ed25519@^1.7.0":
|
||||
version "1.7.1"
|
||||
resolved "https://registry.yarnpkg.com/@noble/ed25519/-/ed25519-1.7.1.tgz#6899660f6fbb97798a6fbd227227c4589a454724"
|
||||
integrity sha512-Rk4SkJFaXZiznFyC/t77Q0NKS4FL7TLJJsVG2V2oiEq3kJVeTdxysEe/yRWSpnWMe808XRDJ+VFh5pt/FN5plw==
|
||||
|
||||
"@noble/hashes@^1.1.2":
|
||||
version "1.1.2"
|
||||
resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.1.2.tgz#e9e035b9b166ca0af657a7848eb2718f0f22f183"
|
||||
integrity sha512-KYRCASVTv6aeUi1tsF8/vpyR7zpfs3FUzy2Jqm+MU+LmUKhQ0y2FpfwqkCcxSg2ua4GALJd8k2R76WxwZGbQpA==
|
||||
|
||||
"@noble/secp256k1@^1.6.3":
|
||||
version "1.7.0"
|
||||
resolved "https://registry.yarnpkg.com/@noble/secp256k1/-/secp256k1-1.7.0.tgz#d15357f7c227e751d90aa06b05a0e5cf993ba8c1"
|
||||
integrity sha512-kbacwGSsH/CTout0ZnZWxnW1B+jH/7r/WAAKLBtrRJ/+CUH7lgmQzl3GTrQua3SGKWNSDsS6lmjnDpIJ5Dxyaw==
|
||||
|
||||
"@nodelib/fs.scandir@2.1.5":
|
||||
version "2.1.5"
|
||||
resolved "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz"
|
||||
|
@ -514,7 +536,7 @@
|
|||
|
||||
"@solana/buffer-layout@^4.0.0":
|
||||
version "4.0.0"
|
||||
resolved "https://registry.npmjs.org/@solana/buffer-layout/-/buffer-layout-4.0.0.tgz"
|
||||
resolved "https://registry.yarnpkg.com/@solana/buffer-layout/-/buffer-layout-4.0.0.tgz#75b1b11adc487234821c81dfae3119b73a5fd734"
|
||||
integrity sha512-lR0EMP2HC3+Mxwd4YcnZb0smnaDw7Bl2IQWZiTevRH5ZZBZn6VRWn3/92E3qdU4SSImJkA6IDHawOHAnx/qUvQ==
|
||||
dependencies:
|
||||
buffer "~6.0.3"
|
||||
|
@ -583,7 +605,28 @@
|
|||
superstruct "^0.14.2"
|
||||
tweetnacl "^1.0.0"
|
||||
|
||||
"@solana/web3.js@^1.17.0", "@solana/web3.js@^1.21.0", "@solana/web3.js@^1.36.0":
|
||||
"@solana/web3.js@1.63.1", "@solana/web3.js@^1.36.0", "@solana/web3.js@^1.63.1":
|
||||
version "1.63.1"
|
||||
resolved "https://registry.yarnpkg.com/@solana/web3.js/-/web3.js-1.63.1.tgz#88a19a17f5f4aada73ad70a94044c1067cab2b4d"
|
||||
integrity sha512-wgEdGVK5FTS2zENxbcGSvKpGZ0jDS6BUdGu8Gn6ns0CzgJkK83u4ip3THSnBPEQ5i/jrqukg998BwV1H67+qiQ==
|
||||
dependencies:
|
||||
"@babel/runtime" "^7.12.5"
|
||||
"@noble/ed25519" "^1.7.0"
|
||||
"@noble/hashes" "^1.1.2"
|
||||
"@noble/secp256k1" "^1.6.3"
|
||||
"@solana/buffer-layout" "^4.0.0"
|
||||
bigint-buffer "^1.1.5"
|
||||
bn.js "^5.0.0"
|
||||
borsh "^0.7.0"
|
||||
bs58 "^4.0.1"
|
||||
buffer "6.0.1"
|
||||
fast-stable-stringify "^1.0.0"
|
||||
jayson "^3.4.4"
|
||||
node-fetch "2"
|
||||
rpc-websockets "^7.5.0"
|
||||
superstruct "^0.14.2"
|
||||
|
||||
"@solana/web3.js@^1.17.0", "@solana/web3.js@^1.21.0":
|
||||
version "1.51.0"
|
||||
resolved "https://registry.yarnpkg.com/@solana/web3.js/-/web3.js-1.51.0.tgz#51b28b5332f1f03ea25bea6c229869e33aebc507"
|
||||
integrity sha512-kf2xHKYETKiIY4DCt8Os7VDPoY5oyOMJ3UWRcLeOVEFXwiv2ClNmSg0EG3BqV3I4TwOojGtmVqk0ubCkUnpmfg==
|
||||
|
@ -702,20 +745,11 @@
|
|||
|
||||
"@types/connect@^3.4.33":
|
||||
version "3.4.35"
|
||||
resolved "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz"
|
||||
resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.35.tgz#5fcf6ae445e4021d1fc2219a4873cc73a3bb2ad1"
|
||||
integrity sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==
|
||||
dependencies:
|
||||
"@types/node" "*"
|
||||
|
||||
"@types/express-serve-static-core@^4.17.9":
|
||||
version "4.17.30"
|
||||
resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.30.tgz#0f2f99617fa8f9696170c46152ccf7500b34ac04"
|
||||
integrity sha512-gstzbTWro2/nFed1WXtf+TtrpwxH7Ggs4RLYTLbeVgIkUQOI3WG/JKjgeOU1zXDvezllupjrf8OPIdvTbIaVOQ==
|
||||
dependencies:
|
||||
"@types/node" "*"
|
||||
"@types/qs" "*"
|
||||
"@types/range-parser" "*"
|
||||
|
||||
"@types/json-schema@^7.0.9":
|
||||
version "7.0.11"
|
||||
resolved "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz"
|
||||
|
@ -726,11 +760,6 @@
|
|||
resolved "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz"
|
||||
integrity sha1-7ihweulOEdK4J7y+UnC86n8+ce4=
|
||||
|
||||
"@types/lodash@^4.14.159":
|
||||
version "4.14.182"
|
||||
resolved "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.182.tgz"
|
||||
integrity sha512-/THyiqyQAP9AfARo4pF+aCGcyiQ94tX/Is2I7HofNRqoYLgN1PBoOWu2/zTA5zMxzP5EFutMtWtGAFRKUe961Q==
|
||||
|
||||
"@types/long@^4.0.1":
|
||||
version "4.0.2"
|
||||
resolved "https://registry.yarnpkg.com/@types/long/-/long-4.0.2.tgz#b74129719fc8d11c01868010082d483b7545591a"
|
||||
|
@ -742,9 +771,9 @@
|
|||
integrity sha512-QCWHkbMv4Y5U9oW10Uxbr45qMMSzl4OzijsozynUAgx3kEHUdXB00udx2dWDQ7f2TU2a2uuiFaRZjCe3unPpeg==
|
||||
|
||||
"@types/node@*":
|
||||
version "18.7.1"
|
||||
resolved "https://registry.yarnpkg.com/@types/node/-/node-18.7.1.tgz#352bee64f93117d867d05f7406642a52685cbca6"
|
||||
integrity sha512-GKX1Qnqxo4S+Z/+Z8KKPLpH282LD7jLHWJcVryOflnsnH+BtSDfieR6ObwBMwpnNws0bUK8GI7z0unQf9bARNQ==
|
||||
version "18.7.22"
|
||||
resolved "https://registry.yarnpkg.com/@types/node/-/node-18.7.22.tgz#76f7401362ad63d9d7eefa7dcdfa5fcd9baddff3"
|
||||
integrity sha512-TsmoXYd4zrkkKjJB0URF/mTIKPl+kVcbqClB2F/ykU7vil1BfWZVndOnpEIozPv4fURD28gyPFeIkW2G+KXOvw==
|
||||
|
||||
"@types/node@>=13.7.0":
|
||||
version "18.7.6"
|
||||
|
@ -768,16 +797,6 @@
|
|||
dependencies:
|
||||
"@types/retry" "*"
|
||||
|
||||
"@types/qs@*":
|
||||
version "6.9.7"
|
||||
resolved "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz"
|
||||
integrity sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==
|
||||
|
||||
"@types/range-parser@*":
|
||||
version "1.2.4"
|
||||
resolved "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz"
|
||||
integrity sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==
|
||||
|
||||
"@types/retry@*", "@types/retry@^0.12.2":
|
||||
version "0.12.2"
|
||||
resolved "https://registry.npmjs.org/@types/retry/-/retry-0.12.2.tgz"
|
||||
|
@ -785,7 +804,7 @@
|
|||
|
||||
"@types/ws@^7.4.4":
|
||||
version "7.4.7"
|
||||
resolved "https://registry.npmjs.org/@types/ws/-/ws-7.4.7.tgz"
|
||||
resolved "https://registry.yarnpkg.com/@types/ws/-/ws-7.4.7.tgz#f7c390a36f7a0679aa69de2d501319f4f8d9b702"
|
||||
integrity sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==
|
||||
dependencies:
|
||||
"@types/node" "*"
|
||||
|
@ -888,7 +907,7 @@
|
|||
|
||||
JSONStream@^1.3.5:
|
||||
version "1.3.5"
|
||||
resolved "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz"
|
||||
resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.5.tgz#3208c1f08d3a4d99261ab64f92302bc15e111ca0"
|
||||
integrity sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==
|
||||
dependencies:
|
||||
jsonparse "^1.2.0"
|
||||
|
@ -1041,7 +1060,7 @@ base-x@^4.0.0:
|
|||
|
||||
base64-js@^1.3.1, base64-js@^1.5.1:
|
||||
version "1.5.1"
|
||||
resolved "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz"
|
||||
resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a"
|
||||
integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==
|
||||
|
||||
big.js@^5.2.2:
|
||||
|
@ -1061,7 +1080,7 @@ big.js@^6.2.0:
|
|||
|
||||
bigint-buffer@^1.1.5:
|
||||
version "1.1.5"
|
||||
resolved "https://registry.npmjs.org/bigint-buffer/-/bigint-buffer-1.1.5.tgz"
|
||||
resolved "https://registry.yarnpkg.com/bigint-buffer/-/bigint-buffer-1.1.5.tgz#d038f31c8e4534c1f8d0015209bf34b4fa6dd442"
|
||||
integrity sha512-trfYco6AoZ+rKhKnxA0hgX0HAbVP/s808/EuDSe2JDzUnCp/xAsli35Orvk67UrTEcwuxZqYZDmfA2RXJgxVvA==
|
||||
dependencies:
|
||||
bindings "^1.3.0"
|
||||
|
@ -1078,7 +1097,7 @@ binary-extensions@^2.0.0:
|
|||
|
||||
bindings@^1.3.0:
|
||||
version "1.5.0"
|
||||
resolved "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz"
|
||||
resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df"
|
||||
integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==
|
||||
dependencies:
|
||||
file-uri-to-path "1.0.0"
|
||||
|
@ -1120,7 +1139,7 @@ borsh@^0.4.0:
|
|||
|
||||
borsh@^0.7.0:
|
||||
version "0.7.0"
|
||||
resolved "https://registry.npmjs.org/borsh/-/borsh-0.7.0.tgz"
|
||||
resolved "https://registry.yarnpkg.com/borsh/-/borsh-0.7.0.tgz#6e9560d719d86d90dc589bca60ffc8a6c51fec2a"
|
||||
integrity sha512-CLCsZGIBCFnPtkNnieW/a8wmreDmfUtjU2m9yHrzPXIlNbqVs0AQrSatSG6vdNYUqdc83tkQi2eHfF98ubzQLA==
|
||||
dependencies:
|
||||
bn.js "^5.2.0"
|
||||
|
@ -1161,7 +1180,7 @@ browser-stdout@1.3.1:
|
|||
|
||||
bs58@^4.0.0, bs58@^4.0.1:
|
||||
version "4.0.1"
|
||||
resolved "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz"
|
||||
resolved "https://registry.yarnpkg.com/bs58/-/bs58-4.0.1.tgz#be161e76c354f6f788ae4071f63f34e8c4f0a42a"
|
||||
integrity sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==
|
||||
dependencies:
|
||||
base-x "^3.0.2"
|
||||
|
@ -1185,7 +1204,7 @@ buffer-layout@^1.2.0, buffer-layout@^1.2.2:
|
|||
|
||||
buffer@6.0.1:
|
||||
version "6.0.1"
|
||||
resolved "https://registry.npmjs.org/buffer/-/buffer-6.0.1.tgz"
|
||||
resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.1.tgz#3cbea8c1463e5a0779e30b66d4c88c6ffa182ac2"
|
||||
integrity sha512-rVAXBwEcEoYtxnHSO5iWyhzV/O1WMtkUYWlfdLS7FjU4PnSJJHEfHXi/uHPI5EwltmOA794gN3bm3/pzuctWjQ==
|
||||
dependencies:
|
||||
base64-js "^1.3.1"
|
||||
|
@ -1193,7 +1212,7 @@ buffer@6.0.1:
|
|||
|
||||
buffer@6.0.3, buffer@^6.0.1, buffer@~6.0.3:
|
||||
version "6.0.3"
|
||||
resolved "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz"
|
||||
resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6"
|
||||
integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==
|
||||
dependencies:
|
||||
base64-js "^1.3.1"
|
||||
|
@ -1209,7 +1228,7 @@ buffer@^5.4.3:
|
|||
|
||||
bufferutil@^4.0.1:
|
||||
version "4.0.6"
|
||||
resolved "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.6.tgz"
|
||||
resolved "https://registry.yarnpkg.com/bufferutil/-/bufferutil-4.0.6.tgz#ebd6c67c7922a0e902f053e5d8be5ec850e48433"
|
||||
integrity sha512-jduaYOYtnio4aIAyc6UbvPCVcgq7nYpVnucyxr6eCYg/Woad9Hf/oxxBRDnGGjPfjUm6j5O/uBWhIu4iLebFaw==
|
||||
dependencies:
|
||||
node-gyp-build "^4.3.0"
|
||||
|
@ -1332,7 +1351,7 @@ color-name@~1.1.4:
|
|||
|
||||
commander@^2.20.3:
|
||||
version "2.20.3"
|
||||
resolved "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz"
|
||||
resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33"
|
||||
integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==
|
||||
|
||||
concat-map@0.0.1:
|
||||
|
@ -1434,7 +1453,7 @@ define-properties@^1.1.3, define-properties@^1.1.4:
|
|||
|
||||
delay@^5.0.0:
|
||||
version "5.0.0"
|
||||
resolved "https://registry.npmjs.org/delay/-/delay-5.0.0.tgz"
|
||||
resolved "https://registry.yarnpkg.com/delay/-/delay-5.0.0.tgz#137045ef1b96e5071060dd5be60bf9334436bd1d"
|
||||
integrity sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw==
|
||||
|
||||
diff@5.0.0:
|
||||
|
@ -1559,12 +1578,12 @@ es6-object-assign@^1.1.0:
|
|||
|
||||
es6-promise@^4.0.3:
|
||||
version "4.2.8"
|
||||
resolved "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz"
|
||||
resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.8.tgz#4eb21594c972bc40553d276e510539143db53e0a"
|
||||
integrity sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==
|
||||
|
||||
es6-promisify@^5.0.0:
|
||||
version "5.0.0"
|
||||
resolved "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz"
|
||||
resolved "https://registry.yarnpkg.com/es6-promisify/-/es6-promisify-5.0.0.tgz#5109d62f3e56ea967c4b63505aef08291c8a5203"
|
||||
integrity sha512-C+d6UdsYDk0lMebHNR4S2NybQMMngAOnOwYBQjTOiv0MkoJMP0Myw2mgpDLBcpfCmRLxyFqYhS/CfOENq4SJhQ==
|
||||
dependencies:
|
||||
es6-promise "^4.0.3"
|
||||
|
@ -1730,7 +1749,7 @@ event-stream@=3.3.4:
|
|||
|
||||
eventemitter3@^4.0.7:
|
||||
version "4.0.7"
|
||||
resolved "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz"
|
||||
resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f"
|
||||
integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==
|
||||
|
||||
execa@5.1.1:
|
||||
|
@ -1750,7 +1769,7 @@ execa@5.1.1:
|
|||
|
||||
eyes@^0.1.8:
|
||||
version "0.1.8"
|
||||
resolved "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz"
|
||||
resolved "https://registry.yarnpkg.com/eyes/-/eyes-0.1.8.tgz#62cf120234c683785d902348a800ef3e0cc20bc0"
|
||||
integrity sha512-GipyPsXO1anza0AOZdy69Im7hGFCNB7Y/NGjDlZGJ3GJJLtwNSb2vrzYrTYJRrRloVx7pl+bhUaTB8yiccPvFQ==
|
||||
|
||||
fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3:
|
||||
|
@ -1781,7 +1800,7 @@ fast-levenshtein@^2.0.6:
|
|||
|
||||
fast-stable-stringify@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.npmjs.org/fast-stable-stringify/-/fast-stable-stringify-1.0.0.tgz"
|
||||
resolved "https://registry.yarnpkg.com/fast-stable-stringify/-/fast-stable-stringify-1.0.0.tgz#5c5543462b22aeeefd36d05b34e51c78cb86d313"
|
||||
integrity sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag==
|
||||
|
||||
fastq@^1.6.0:
|
||||
|
@ -1808,7 +1827,7 @@ file-entry-cache@^6.0.1:
|
|||
|
||||
file-uri-to-path@1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz"
|
||||
resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd"
|
||||
integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==
|
||||
|
||||
fill-range@^7.0.1:
|
||||
|
@ -2066,7 +2085,7 @@ human-signals@^2.1.0:
|
|||
|
||||
ieee754@^1.1.13, ieee754@^1.2.1:
|
||||
version "1.2.1"
|
||||
resolved "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz"
|
||||
resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352"
|
||||
integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==
|
||||
|
||||
ignore@^4.0.6:
|
||||
|
@ -2274,17 +2293,15 @@ isexe@^2.0.0:
|
|||
|
||||
isomorphic-ws@^4.0.1:
|
||||
version "4.0.1"
|
||||
resolved "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz"
|
||||
resolved "https://registry.yarnpkg.com/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz#55fd4cd6c5e6491e76dc125938dd863f5cd4f2dc"
|
||||
integrity sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w==
|
||||
|
||||
jayson@^3.4.4:
|
||||
version "3.6.6"
|
||||
resolved "https://registry.npmjs.org/jayson/-/jayson-3.6.6.tgz"
|
||||
integrity sha512-f71uvrAWTtrwoww6MKcl9phQTC+56AopLyEenWvKVAIMz+q0oVGj6tenLZ7Z6UiPBkJtKLj4kt0tACllFQruGQ==
|
||||
version "3.7.0"
|
||||
resolved "https://registry.yarnpkg.com/jayson/-/jayson-3.7.0.tgz#b735b12d06d348639ae8230d7a1e2916cb078f25"
|
||||
integrity sha512-tfy39KJMrrXJ+mFcMpxwBvFDetS8LAID93+rycFglIQM4kl3uNR3W4lBLE/FFhsoUCEox5Dt2adVpDm/XtebbQ==
|
||||
dependencies:
|
||||
"@types/connect" "^3.4.33"
|
||||
"@types/express-serve-static-core" "^4.17.9"
|
||||
"@types/lodash" "^4.14.159"
|
||||
"@types/node" "^12.12.54"
|
||||
"@types/ws" "^7.4.4"
|
||||
JSONStream "^1.3.5"
|
||||
|
@ -2361,7 +2378,7 @@ json-stable-stringify-without-jsonify@^1.0.1:
|
|||
|
||||
json-stringify-safe@^5.0.1:
|
||||
version "5.0.1"
|
||||
resolved "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz"
|
||||
resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb"
|
||||
integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==
|
||||
|
||||
json5@^1.0.1:
|
||||
|
@ -2378,7 +2395,7 @@ jsonc-parser@^3.0.0:
|
|||
|
||||
jsonparse@^1.2.0:
|
||||
version "1.3.1"
|
||||
resolved "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz"
|
||||
resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280"
|
||||
integrity sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==
|
||||
|
||||
lazy-ass@1.6.0:
|
||||
|
@ -2418,7 +2435,7 @@ lodash.truncate@^4.4.2:
|
|||
|
||||
lodash@^4.17.20, lodash@^4.17.21:
|
||||
version "4.17.21"
|
||||
resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz"
|
||||
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
|
||||
integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
|
||||
|
||||
log-symbols@4.1.0:
|
||||
|
@ -2616,7 +2633,7 @@ node-domexception@^1.0.0:
|
|||
|
||||
node-fetch@2, node-fetch@2.6.7:
|
||||
version "2.6.7"
|
||||
resolved "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz"
|
||||
resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad"
|
||||
integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==
|
||||
dependencies:
|
||||
whatwg-url "^5.0.0"
|
||||
|
@ -2846,7 +2863,7 @@ readdirp@~3.6.0:
|
|||
|
||||
regenerator-runtime@^0.13.4:
|
||||
version "0.13.9"
|
||||
resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz"
|
||||
resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz#8925742a98ffd90814988d7566ad30ca3b263b52"
|
||||
integrity sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==
|
||||
|
||||
regexp.prototype.flags@^1.4.3:
|
||||
|
@ -2902,7 +2919,7 @@ rimraf@^3.0.2:
|
|||
|
||||
rpc-websockets@^7.4.2, rpc-websockets@^7.5.0:
|
||||
version "7.5.0"
|
||||
resolved "https://registry.npmjs.org/rpc-websockets/-/rpc-websockets-7.5.0.tgz"
|
||||
resolved "https://registry.yarnpkg.com/rpc-websockets/-/rpc-websockets-7.5.0.tgz#bbeb87572e66703ff151e50af1658f98098e2748"
|
||||
integrity sha512-9tIRi1uZGy7YmDjErf1Ax3wtqdSSLIlnmL5OtOzgd5eqPKbsPpwDP5whUDO2LQay3Xp0CcHlcNSGzacNRluBaQ==
|
||||
dependencies:
|
||||
"@babel/runtime" "^7.17.2"
|
||||
|
@ -3108,7 +3125,7 @@ strip-json-comments@3.1.1, strip-json-comments@^3.1.0, strip-json-comments@^3.1.
|
|||
|
||||
superstruct@^0.14.2:
|
||||
version "0.14.2"
|
||||
resolved "https://registry.npmjs.org/superstruct/-/superstruct-0.14.2.tgz"
|
||||
resolved "https://registry.yarnpkg.com/superstruct/-/superstruct-0.14.2.tgz#0dbcdf3d83676588828f1cf5ed35cda02f59025b"
|
||||
integrity sha512-nPewA6m9mR3d6k7WkZ8N8zpTWfenFH3q9pA2PkuiZxINr9DKB2+40wEQf0ixn8VaGuJ78AB6iWOtStI+/4FKZQ==
|
||||
|
||||
superstruct@^0.15.2, superstruct@^0.15.4:
|
||||
|
@ -3150,7 +3167,7 @@ table@^6.0.9:
|
|||
|
||||
text-encoding-utf-8@^1.0.2:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.npmjs.org/text-encoding-utf-8/-/text-encoding-utf-8-1.0.2.tgz"
|
||||
resolved "https://registry.yarnpkg.com/text-encoding-utf-8/-/text-encoding-utf-8-1.0.2.tgz#585b62197b0ae437e3c7b5d0af27ac1021e10d13"
|
||||
integrity sha512-8bw4MY9WjdsD2aMtO0OzOCY3pXGYNx2d2FfHRVUKkiCPDWjKuOlhLVASS+pD7VkLTVjW268LYJHwsnPFlBpbAg==
|
||||
|
||||
text-table@^0.2.0:
|
||||
|
@ -3160,7 +3177,7 @@ text-table@^0.2.0:
|
|||
|
||||
through@2, "through@>=2.2.7 <3", through@~2.3, through@~2.3.1:
|
||||
version "2.3.8"
|
||||
resolved "https://registry.npmjs.org/through/-/through-2.3.8.tgz"
|
||||
resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
|
||||
integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==
|
||||
|
||||
tiny-invariant@^1.1.0, tiny-invariant@^1.2.0, tiny-invariant@~1.2.0:
|
||||
|
@ -3187,7 +3204,7 @@ toml@^3.0.0:
|
|||
|
||||
tr46@~0.0.3:
|
||||
version "0.0.3"
|
||||
resolved "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz"
|
||||
resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a"
|
||||
integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==
|
||||
|
||||
traverse-chain@~0.1.0:
|
||||
|
@ -3314,7 +3331,7 @@ uri-js@^4.2.2:
|
|||
|
||||
utf-8-validate@^5.0.2:
|
||||
version "5.0.9"
|
||||
resolved "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.9.tgz"
|
||||
resolved "https://registry.yarnpkg.com/utf-8-validate/-/utf-8-validate-5.0.9.tgz#ba16a822fbeedff1a58918f2a6a6b36387493ea3"
|
||||
integrity sha512-Yek7dAy0v3Kl0orwMlvi7TPtiCNrdfHNd7Gcc/pLq4BLXqfAmd0J7OWMizUQnTTJsyjKn02mU7anqwfmUP4J8Q==
|
||||
dependencies:
|
||||
node-gyp-build "^4.3.0"
|
||||
|
@ -3333,7 +3350,7 @@ util@^0.12.0:
|
|||
|
||||
uuid@^8.3.2:
|
||||
version "8.3.2"
|
||||
resolved "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz"
|
||||
resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2"
|
||||
integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==
|
||||
|
||||
v8-compile-cache@^2.0.3:
|
||||
|
@ -3369,7 +3386,7 @@ web-streams-polyfill@^3.0.3:
|
|||
|
||||
webidl-conversions@^3.0.0:
|
||||
version "3.0.1"
|
||||
resolved "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz"
|
||||
resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871"
|
||||
integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==
|
||||
|
||||
webidl-conversions@^5.0.0:
|
||||
|
@ -3388,7 +3405,7 @@ whatwg-url-without-unicode@8.0.0-3:
|
|||
|
||||
whatwg-url@^5.0.0:
|
||||
version "5.0.0"
|
||||
resolved "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz"
|
||||
resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d"
|
||||
integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==
|
||||
dependencies:
|
||||
tr46 "~0.0.3"
|
||||
|
@ -3454,9 +3471,9 @@ ws@^7.4.5:
|
|||
integrity sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==
|
||||
|
||||
ws@^8.5.0:
|
||||
version "8.8.1"
|
||||
resolved "https://registry.yarnpkg.com/ws/-/ws-8.8.1.tgz#5dbad0feb7ade8ecc99b830c1d77c913d4955ff0"
|
||||
integrity sha512-bGy2JzvzkPowEJV++hF07hAD6niYSr0JzBNo/J29WsB57A2r7Wlc1UFcTR9IzrPvuNVO4B8LGqF8qcpsVOhJCA==
|
||||
version "8.9.0"
|
||||
resolved "https://registry.yarnpkg.com/ws/-/ws-8.9.0.tgz#2a994bb67144be1b53fe2d23c53c028adeb7f45e"
|
||||
integrity sha512-Ja7nszREasGaYUYCI2k4lCKIRTt+y7XuqVoHR44YpI49TtryyqbqvDMn5eqfW7e6HzTukDRIsXqzVHScqRcafg==
|
||||
|
||||
y18n@^5.0.5:
|
||||
version "5.0.8"
|
||||
|
|
Loading…
Reference in New Issue