From f01b4108733fd87ebcc3ec1ed0736577b61ffa5d Mon Sep 17 00:00:00 2001 From: Kollan House Date: Mon, 29 Jun 2026 07:10:07 -0700 Subject: [PATCH 1/3] added laso and some helpers to improve xp --- package.json | 2 + scripts/assets/LASO/LASO.json | 6 + scripts/assets/LASO/LASO.png | Bin 0 -> 16721 bytes scripts/utils/ledger.ts | 28 ++++ scripts/utils/squads.ts | 33 +++- scripts/v0.7/laso/complete.ts | 92 +++++++++++ scripts/v0.7/laso/constants.ts | 33 ++++ scripts/v0.7/laso/end.ts | 74 +++++++++ scripts/v0.7/laso/initialize.ts | 148 +++++++++++++++++ scripts/v0.7/laso/start.ts | 77 +++++++++ yarn.lock | 282 +++++++++++++++++++++++++++++++- 11 files changed, 766 insertions(+), 9 deletions(-) create mode 100644 scripts/assets/LASO/LASO.json create mode 100644 scripts/assets/LASO/LASO.png create mode 100644 scripts/utils/ledger.ts create mode 100644 scripts/v0.7/laso/complete.ts create mode 100644 scripts/v0.7/laso/constants.ts create mode 100644 scripts/v0.7/laso/end.ts create mode 100644 scripts/v0.7/laso/initialize.ts create mode 100644 scripts/v0.7/laso/start.ts diff --git a/package.json b/package.json index c78179d43..deba0f39a 100644 --- a/package.json +++ b/package.json @@ -26,6 +26,8 @@ "dependencies": { "@coral-xyz/anchor": "0.29.0", "@inquirer/prompts": "7.9.0", + "@ledgerhq/hw-app-solana": "7.10.2", + "@ledgerhq/hw-transport-node-hid": "6.33.2", "@metadaoproject/programs": "./sdk", "@metaplex-foundation/mpl-token-metadata": "3.4.0", "@metaplex-foundation/umi": "0.9.2", diff --git a/scripts/assets/LASO/LASO.json b/scripts/assets/LASO/LASO.json new file mode 100644 index 000000000..70eb06296 --- /dev/null +++ b/scripts/assets/LASO/LASO.json @@ -0,0 +1,6 @@ +{ + "name": "Laso Finance", + "symbol": "LASO", + "description": "Spend your crypto privately. No ID upload. Privacy for humans. Frictionless for agents.", + "image": "https://raw.githubusercontent.com/metaDAOproject/programs/refs/heads/develop/scripts/assets/LASO/LASO.png" +} \ No newline at end of file diff --git a/scripts/assets/LASO/LASO.png b/scripts/assets/LASO/LASO.png new file mode 100644 index 0000000000000000000000000000000000000000..48a87ebd5fdeaffdf3df37168daa2d0b35e4bec0 GIT binary patch literal 16721 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

*w7}33QXyC9AK}*y0CD^o zhTHr2@f^wj;BU3icSzm;efU=g|Ki|ZU!Y#_FAn~H=s?CA`7eEJ{*kNT6jl0?_x;{G JH$U`${tuXNnFs&? literal 0 HcmV?d00001 diff --git a/scripts/utils/ledger.ts b/scripts/utils/ledger.ts new file mode 100644 index 000000000..3cf3ec419 --- /dev/null +++ b/scripts/utils/ledger.ts @@ -0,0 +1,28 @@ +import * as TransportNodeHidModule from "@ledgerhq/hw-transport-node-hid"; +import * as SolanaAppModule from "@ledgerhq/hw-app-solana"; +import { PublicKey } from "@solana/web3.js"; + +const TransportNodeHid = + (TransportNodeHidModule as any).default?.default || + (TransportNodeHidModule as any).default; +const SolanaApp = + (SolanaAppModule as any).default?.default || (SolanaAppModule as any).default; + +export const LEDGER_DERIVATION_PATH = "44'/501'/0'"; + +export async function connectLedger(): Promise<{ + solana: any; + publicKey: PublicKey; +}> { + console.log(" Connecting to Ledger device..."); + console.log(" Please unlock your Ledger and open the Solana app."); + + const transport = await TransportNodeHid.open(""); + const solana = new SolanaApp(transport); + + const { address } = await solana.getAddress(LEDGER_DERIVATION_PATH); + const publicKey = new PublicKey(Buffer.from(address)); + + console.log(" Connected! Ledger address:", publicKey.toBase58()); + return { solana, publicKey }; +} diff --git a/scripts/utils/squads.ts b/scripts/utils/squads.ts index 22ad2c6cc..3b3cbb7d1 100644 --- a/scripts/utils/squads.ts +++ b/scripts/utils/squads.ts @@ -1,4 +1,5 @@ -import { PublicKey } from "@solana/web3.js"; +import { PERMISSIONLESS_ACCOUNT } from "@metadaoproject/programs"; +import { PublicKey, TransactionMessage } from "@solana/web3.js"; import * as multisig from "@sqds/multisig"; // Returns the multisig, spending limit and 0th vault pda for a given dao address @@ -31,3 +32,33 @@ export const getSquadsPdasFromDao = async ( vaultPda, }; }; + +export const createSquadsVaultTxAndProposal = async ( + squadsMultisig: PublicKey, + transactionIndex: bigint, + transactionMessage: TransactionMessage, + payer: PublicKey, +) => { + const vaultTxCreateIx = multisig.instructions.vaultTransactionCreate({ + multisigPda: squadsMultisig, + transactionIndex: transactionIndex, + creator: PERMISSIONLESS_ACCOUNT.publicKey, + rentPayer: payer, + vaultIndex: 0, + ephemeralSigners: 0, + transactionMessage, + }); + + const proposalCreateIx = multisig.instructions.proposalCreate({ + multisigPda: squadsMultisig, + transactionIndex: transactionIndex, + creator: PERMISSIONLESS_ACCOUNT.publicKey, + rentPayer: payer, + isDraft: false, + }); + + return { + vaultTxCreateIx, + proposalCreateIx, + }; +}; diff --git a/scripts/v0.7/laso/complete.ts b/scripts/v0.7/laso/complete.ts new file mode 100644 index 000000000..782ba574e --- /dev/null +++ b/scripts/v0.7/laso/complete.ts @@ -0,0 +1,92 @@ +import * as anchor from "@coral-xyz/anchor"; +import { + LaunchpadClient, + getLaunchAddr, +} from "@metadaoproject/programs/launchpad/v0.7"; +import { + PublicKey, + TransactionMessage, + VersionedTransaction, +} from "@solana/web3.js"; +import { createLookupTableForTransaction } from "../../utils/utils.js"; +import { token } from "@coral-xyz/anchor/dist/cjs/utils/index.js"; +import { TOKEN_SEED } from "./constants.js"; + +const provider = anchor.AnchorProvider.env(); +const payer = provider.wallet["payer"]; + +const launchpad: LaunchpadClient = LaunchpadClient.createClient({ provider }); + +export const completeLaunch = async () => { + // TODO: BEFORE RUNNING YOU NEED TO APPROVE THE FUNDING RECORDS + // SCRIPT MUST BE CREATED + const TOKEN = await PublicKey.createWithSeed( + payer.publicKey, + TOKEN_SEED, + token.TOKEN_PROGRAM_ID, + ); + console.log("Token address:", TOKEN.toBase58()); + + const [launch] = getLaunchAddr(undefined, TOKEN); + + if (launch === undefined) { + throw new Error( + "LAUNCH_TO_COMPLETE is not set. Please set it in the script.", + ); + } + + let launchAccount = await launchpad.fetchLaunch(launch); + + const tx = await launchpad + .completeLaunchIx({ + launch: launch, + baseMint: launchAccount.baseMint, + launchAuthority: payer.publicKey, + }) + .transaction(); + + const LUT = await createLookupTableForTransaction( + tx, + payer, + provider.connection, + ); + + const blockhash = (await provider.connection.getLatestBlockhash()).blockhash; + + const message = new TransactionMessage({ + payerKey: payer.publicKey, + recentBlockhash: blockhash, + instructions: tx.instructions, + }).compileToV0Message([LUT]); + + const vtx = new VersionedTransaction(message); + vtx.sign([payer]); + + const completeTxHash = await provider.connection.sendTransaction(vtx); + + console.log(`Complete launch transaction sent: ${completeTxHash}`); + + console.log("Launch completed successfully!"); + + console.log("Setting up performance package..."); + + // Refresh launch account to get the updated base mint + launchAccount = await launchpad.fetchLaunch(launch); + + // TODO: Review this as we will want to do this manually.. + const initializePerformancePackageTxHash = await launchpad + .initializePerformancePackageIx({ + launch: launch, + baseMint: launchAccount.baseMint, + payer: payer.publicKey, + }) + .rpc(); + + console.log( + `Initialize performance package transaction sent: ${initializePerformancePackageTxHash}`, + ); + + console.log("Performance package set up successfully!"); +}; + +completeLaunch().catch(console.error); diff --git a/scripts/v0.7/laso/constants.ts b/scripts/v0.7/laso/constants.ts new file mode 100644 index 000000000..9c3416368 --- /dev/null +++ b/scripts/v0.7/laso/constants.ts @@ -0,0 +1,33 @@ +import { PublicKey } from "@solana/web3.js"; + +// Token Details +export const TOKEN_SEED = "7VpRX8sqCTEmdAa9"; + +// Team Config Details +export const TEAM_ADDRESS = new PublicKey( + "82MdwSmh7JEK9cywZusE27m8zwbhmkR9Bs38jQoAwwCc", +); // Laso team address + +export const SPENDING_MEMBERS = [ + new PublicKey("3jRKUoyN8CDA4DngXV3Ym2ZfZKzCP87XVgXKtQJADMws"), +]; +// Even without a performance package, defaults need to be set +export const PERFORMANCE_PACKAGE_GRANTEE = new PublicKey( + "11111111111111111111111111111111", // Placeholder for no performance package +); + +// Amount Details +export const MIN_GOAL = 750_000; // 750K USDC +export const SPENDING_LIMIT = 50_000; // 50k USDC +export const PERFORMANCE_PACKAGE_TOKEN_AMOUNT = 1; // 1 LASO +export const PERFORMANCE_PACKAGE_UNLOCK_MONTHS = 24; // 24 months +export const ADDITIONAL_CARVEOUT = 27_100_000; // 27.1M LASO +export const ADDITIONAL_CARVEOUT_RECIPIENT = new PublicKey( + "91PL1BRM2jGbt6jxv56hhkAFbvsHMHLirMXDQCQcvY92", +); // Established Multisig For Laso Launch +// 2/3 Kollan Proph3t Pileks + +export const TOKEN_NAME = "Laso Finance"; +export const TOKEN_SYMBOL = "LASO"; +export const TOKEN_URI = + "https://raw.githubusercontent.com/metaDAOproject/programs/refs/heads/develop/scripts/assets/LASO/LASO.json"; diff --git a/scripts/v0.7/laso/end.ts b/scripts/v0.7/laso/end.ts new file mode 100644 index 000000000..f78bb9b67 --- /dev/null +++ b/scripts/v0.7/laso/end.ts @@ -0,0 +1,74 @@ +import * as anchor from "@coral-xyz/anchor"; +import { + LaunchpadClient, + getLaunchAddr, +} from "@metadaoproject/programs/launchpad/v0.7"; +import { ComputeBudgetProgram, PublicKey, Transaction } from "@solana/web3.js"; +import * as token from "@solana/spl-token"; +import { TOKEN_SEED } from "./constants.js"; + +const provider = anchor.AnchorProvider.env(); +const payer = provider.wallet["payer"]; + +const launchpad: LaunchpadClient = LaunchpadClient.createClient({ provider }); + +export const end = async () => { + const TOKEN = await PublicKey.createWithSeed( + payer.publicKey, + TOKEN_SEED, + token.TOKEN_PROGRAM_ID, + ); + console.log("Token address:", TOKEN.toBase58()); + + const [launch] = getLaunchAddr(undefined, TOKEN); + + const closeLaunchIx = await launchpad + .closeLaunchIx({ + launch, + }) + .instruction(); + + // Build transaction without compute budget first + const tx = new Transaction().add(closeLaunchIx); + + const { blockhash } = await provider.connection.getLatestBlockhash(); + tx.recentBlockhash = blockhash; + tx.feePayer = payer.publicKey; + + // Simulate transaction to get compute units used + tx.sign(payer); + const simulation = await provider.connection.simulateTransaction(tx); + + if (simulation.value.err) { + console.error("Transaction simulation failed:", simulation.value.err); + throw new Error( + `Simulation failed: ${JSON.stringify(simulation.value.err)}`, + ); + } + + const computeUnitsUsed = simulation.value.unitsConsumed || 200_000; + // Add 20% buffer to the compute units + const computeUnitsWithBuffer = Math.floor(computeUnitsUsed * 1.2); + + console.log(`Simulated compute units: ${computeUnitsUsed}`); + console.log(`Setting compute unit limit: ${computeUnitsWithBuffer}`); + + // Rebuild transaction with compute budget + const finalTx = new Transaction().add( + ComputeBudgetProgram.setComputeUnitLimit({ units: computeUnitsWithBuffer }), + closeLaunchIx, + ); + + finalTx.recentBlockhash = blockhash; + finalTx.feePayer = payer.publicKey; + finalTx.sign(payer); + + const txHash = await provider.connection.sendRawTransaction( + finalTx.serialize(), + ); + await provider.connection.confirmTransaction(txHash, "confirmed"); + + console.log("Launch closed", txHash); +}; + +end().catch(console.error); diff --git a/scripts/v0.7/laso/initialize.ts b/scripts/v0.7/laso/initialize.ts new file mode 100644 index 000000000..9cc2f8a3c --- /dev/null +++ b/scripts/v0.7/laso/initialize.ts @@ -0,0 +1,148 @@ +import * as anchor from "@coral-xyz/anchor"; +import { + LaunchpadClient, + getLaunchAddr, + getLaunchSignerAddr, +} from "@metadaoproject/programs/launchpad/v0.7"; +import { + ComputeBudgetProgram, + PublicKey, + SystemProgram, + Transaction, +} from "@solana/web3.js"; +import BN from "bn.js"; +import * as token from "@solana/spl-token"; +import { + TOKEN_SEED, + TOKEN_NAME, + TOKEN_SYMBOL, + TOKEN_URI, + MIN_GOAL, + SPENDING_LIMIT, + SPENDING_MEMBERS, + PERFORMANCE_PACKAGE_GRANTEE, + PERFORMANCE_PACKAGE_TOKEN_AMOUNT, + PERFORMANCE_PACKAGE_UNLOCK_MONTHS, + ADDITIONAL_CARVEOUT, + ADDITIONAL_CARVEOUT_RECIPIENT, + TEAM_ADDRESS, +} from "./constants.js"; + +const provider = anchor.AnchorProvider.env(); +const payer = provider.wallet["payer"]; + +const LAUNCH_AUTHORITY = payer.publicKey; + +const secondsPerDay = 86_400; +const numberOfDays = 4; +const launchDurationSeconds = secondsPerDay * numberOfDays; // 4 days + +const launchpad: LaunchpadClient = LaunchpadClient.createClient({ provider }); + +export const launch = async () => { + const lamports = await provider.connection.getMinimumBalanceForRentExemption( + token.MINT_SIZE, + ); + + const TOKEN = await PublicKey.createWithSeed( + payer.publicKey, + TOKEN_SEED, + token.TOKEN_PROGRAM_ID, + ); + console.log("Token address:", TOKEN.toBase58()); + + const [launch] = getLaunchAddr(undefined, TOKEN); + const [launchSigner] = getLaunchSignerAddr(undefined, launch); + + const createTokenAccountIx = SystemProgram.createAccountWithSeed({ + fromPubkey: payer.publicKey, + newAccountPubkey: TOKEN, + basePubkey: payer.publicKey, + seed: TOKEN_SEED, + lamports: lamports, + space: token.MINT_SIZE, + programId: token.TOKEN_PROGRAM_ID, + }); + + const initializeMintIx = token.createInitializeMint2Instruction( + TOKEN, + 6, + launchSigner, + null, + ); + + const launchIx = await launchpad + .initializeLaunchIx({ + tokenName: TOKEN_NAME, + tokenSymbol: TOKEN_SYMBOL, + tokenUri: TOKEN_URI, + minimumRaiseAmount: new BN(MIN_GOAL * 10 ** 6), + baseMint: TOKEN, + monthlySpendingLimitAmount: new BN(SPENDING_LIMIT * 10 ** 6), + monthlySpendingLimitMembers: SPENDING_MEMBERS, + performancePackageGrantee: PERFORMANCE_PACKAGE_GRANTEE, + performancePackageTokenAmount: new BN( + PERFORMANCE_PACKAGE_TOKEN_AMOUNT * 10 ** 6, + ), + monthsUntilInsidersCanUnlock: PERFORMANCE_PACKAGE_UNLOCK_MONTHS, + secondsForLaunch: launchDurationSeconds, + teamAddress: TEAM_ADDRESS, + additionalTokensAmount: ADDITIONAL_CARVEOUT + ? new BN(ADDITIONAL_CARVEOUT * 10 ** 6) + : undefined, + additionalTokensRecipient: ADDITIONAL_CARVEOUT_RECIPIENT, + launchAuthority: LAUNCH_AUTHORITY, + hasBidWall: false, + }) + .instruction(); + + // Build transaction without compute budget first + const tx = new Transaction().add( + createTokenAccountIx, + initializeMintIx, + launchIx, + ); + + const { blockhash } = await provider.connection.getLatestBlockhash(); + tx.recentBlockhash = blockhash; + tx.feePayer = payer.publicKey; + + // Simulate transaction to get compute units used + tx.sign(payer); + const simulation = await provider.connection.simulateTransaction(tx); + + if (simulation.value.err) { + console.error("Transaction simulation failed:", simulation.value.err); + throw new Error( + `Simulation failed: ${JSON.stringify(simulation.value.err)}`, + ); + } + + const computeUnitsUsed = simulation.value.unitsConsumed || 200_000; + // Add 20% buffer to the compute units + const computeUnitsWithBuffer = Math.floor(computeUnitsUsed * 1.2); + + console.log(`Simulated compute units: ${computeUnitsUsed}`); + console.log(`Setting compute unit limit: ${computeUnitsWithBuffer}`); + + // Rebuild transaction with compute budget + const finalTx = new Transaction().add( + ComputeBudgetProgram.setComputeUnitLimit({ units: computeUnitsWithBuffer }), + createTokenAccountIx, + initializeMintIx, + launchIx, + ); + + finalTx.recentBlockhash = blockhash; + finalTx.feePayer = payer.publicKey; + finalTx.sign(payer); + + const txHash = await provider.connection.sendRawTransaction( + finalTx.serialize(), + ); + await provider.connection.confirmTransaction(txHash, "confirmed"); + + console.log("Launch initialized", txHash); +}; + +launch().catch(console.error); diff --git a/scripts/v0.7/laso/start.ts b/scripts/v0.7/laso/start.ts new file mode 100644 index 000000000..9582ec04f --- /dev/null +++ b/scripts/v0.7/laso/start.ts @@ -0,0 +1,77 @@ +import * as anchor from "@coral-xyz/anchor"; +import { + LaunchpadClient, + getLaunchAddr, +} from "@metadaoproject/programs/launchpad/v0.7"; +import { ComputeBudgetProgram, PublicKey, Transaction } from "@solana/web3.js"; +import * as token from "@solana/spl-token"; +import { TOKEN_SEED } from "./constants.js"; + +const provider = anchor.AnchorProvider.env(); +const payer = provider.wallet["payer"]; + +const LAUNCH_AUTHORITY = payer.publicKey; + +const launchpad: LaunchpadClient = LaunchpadClient.createClient({ provider }); + +export const start = async () => { + const TOKEN = await PublicKey.createWithSeed( + payer.publicKey, + TOKEN_SEED, + token.TOKEN_PROGRAM_ID, + ); + console.log("Token address:", TOKEN.toBase58()); + + const [launch] = getLaunchAddr(undefined, TOKEN); + + const startLaunchIx = await launchpad + .startLaunchIx({ + launch, + launchAuthority: LAUNCH_AUTHORITY, + }) + .instruction(); + + // Build transaction without compute budget first + const tx = new Transaction().add(startLaunchIx); + + const { blockhash } = await provider.connection.getLatestBlockhash(); + tx.recentBlockhash = blockhash; + tx.feePayer = payer.publicKey; + + // Simulate transaction to get compute units used + tx.sign(payer); + const simulation = await provider.connection.simulateTransaction(tx); + + if (simulation.value.err) { + console.error("Transaction simulation failed:", simulation.value.err); + throw new Error( + `Simulation failed: ${JSON.stringify(simulation.value.err)}`, + ); + } + + const computeUnitsUsed = simulation.value.unitsConsumed || 200_000; + // Add 20% buffer to the compute units + const computeUnitsWithBuffer = Math.floor(computeUnitsUsed * 1.2); + + console.log(`Simulated compute units: ${computeUnitsUsed}`); + console.log(`Setting compute unit limit: ${computeUnitsWithBuffer}`); + + // Rebuild transaction with compute budget + const finalTx = new Transaction().add( + ComputeBudgetProgram.setComputeUnitLimit({ units: computeUnitsWithBuffer }), + startLaunchIx, + ); + + finalTx.recentBlockhash = blockhash; + finalTx.feePayer = payer.publicKey; + finalTx.sign(payer); + + const txHash = await provider.connection.sendRawTransaction( + finalTx.serialize(), + ); + await provider.connection.confirmTransaction(txHash, "confirmed"); + + console.log("Launch initialized", txHash); +}; + +start().catch(console.error); diff --git a/yarn.lock b/yarn.lock index 3f1043295..1a229d74d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -864,6 +864,70 @@ "@jridgewell/resolve-uri" "^3.0.3" "@jridgewell/sourcemap-codec" "^1.4.10" +"@ledgerhq/devices@8.14.2": + version "8.14.2" + resolved "https://registry.yarnpkg.com/@ledgerhq/devices/-/devices-8.14.2.tgz#b1385e9eabbb98bc2233367b667c166b0b3ee6e1" + integrity sha512-T3pnfrsQEC/eJU0XHIqWI6qww+CL1k3NumR2XGWlMz8lVpoZ9HhcuGoCkMevp+8SWmymgyNIIFue3jlNA5KiMw== + dependencies: + "@ledgerhq/errors" "^6.34.1" + "@ledgerhq/logs" "^6.17.0" + rxjs "7.8.2" + semver "7.7.3" + +"@ledgerhq/errors@^6.34.1": + version "6.35.0" + resolved "https://registry.yarnpkg.com/@ledgerhq/errors/-/errors-6.35.0.tgz#2f06d27bff063d9df967d23f366bfdb9c7f3df30" + integrity sha512-qk9PbqIvze7NXGogVxNCsz60rNo5FrGj8gKqs7pcyDk+em5L6s70G7cRxR+1HTXdam4WoPfntUq+WX9zQUynkg== + +"@ledgerhq/hw-app-solana@^7.10.2": + version "7.10.2" + resolved "https://registry.yarnpkg.com/@ledgerhq/hw-app-solana/-/hw-app-solana-7.10.2.tgz#5012c075fd68438d6b5b7b44719cfea959be330b" + integrity sha512-VSFKz81t+92D3OReLcY305dVJvQiKnSi3fiuCOKEXcp1aASgh4uTsUyQ/qgFqyJKIoWepOLshVzYd42/ukv1gQ== + dependencies: + "@ledgerhq/errors" "^6.34.1" + "@ledgerhq/hw-transport" "6.35.2" + bip32-path "^0.4.2" + +"@ledgerhq/hw-transport-node-hid-noevents@^6.35.2": + version "6.35.2" + resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport-node-hid-noevents/-/hw-transport-node-hid-noevents-6.35.2.tgz#4a202e8ec8aab3b0550b5c7398b52a0a5826da52" + integrity sha512-TzFSPHJ5Sa0pUuaoYtKWsvvZwfqpkmnEqEl6GXDbwS2Rrc0n6O+GQPRYOyUfed13T1UDAl7GPXIryAnHfttQog== + dependencies: + "@ledgerhq/devices" "8.14.2" + "@ledgerhq/errors" "^6.34.1" + "@ledgerhq/hw-transport" "6.35.2" + "@ledgerhq/logs" "^6.17.0" + node-hid "2.1.2" + +"@ledgerhq/hw-transport-node-hid@^6.33.2": + version "6.33.2" + resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport-node-hid/-/hw-transport-node-hid-6.33.2.tgz#1b669aae101c8dde2949404bad550fde60ac307d" + integrity sha512-Vm2SRDN8FjQiT6vxhzd4EH8JeIH+UDT8NgNWU+iUpLuTllhd1sWHYsQ1Cc4MpUo7wSymqWlXaV3UsJKtYfRzRg== + dependencies: + "@ledgerhq/devices" "8.14.2" + "@ledgerhq/errors" "^6.34.1" + "@ledgerhq/hw-transport" "6.35.2" + "@ledgerhq/hw-transport-node-hid-noevents" "^6.35.2" + "@ledgerhq/logs" "^6.17.0" + lodash "^4.17.21" + node-hid "2.1.2" + usb "2.9.0" + +"@ledgerhq/hw-transport@6.35.2": + version "6.35.2" + resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport/-/hw-transport-6.35.2.tgz#e762b056998e02dbc44faad93c9d8c0b3b8fd8d6" + integrity sha512-eSXFFqMDAB2Ra/5uqmlru0cUyc2XDQPEKf4ITWHeMms2fHhETw9lcgAEl61vszkiz0RLUVB4VQsLJjj7O8kCvg== + dependencies: + "@ledgerhq/devices" "8.14.2" + "@ledgerhq/errors" "^6.34.1" + "@ledgerhq/logs" "^6.17.0" + events "^3.3.0" + +"@ledgerhq/logs@^6.17.0": + version "6.17.0" + resolved "https://registry.yarnpkg.com/@ledgerhq/logs/-/logs-6.17.0.tgz#370840b915a0b44fc867fc4e6afc68d26a2055dd" + integrity sha512-yra33g5q/AU7+PwAws+GaVpQGUuxnDREjVBnviJjcaJLVKuLzI4pnj8Bd3nY3fypM5k1yZEYKEXfUuGFUjP2+w== + "@metadaoproject/programs@./sdk": version "0.1.0-alpha.7" dependencies: @@ -1481,6 +1545,11 @@ resolved "https://registry.yarnpkg.com/@types/uuid/-/uuid-8.3.4.tgz#bd86a43617df0594787d38b735f55c805becf1bc" integrity sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw== +"@types/w3c-web-usb@^1.0.6": + version "1.0.14" + resolved "https://registry.yarnpkg.com/@types/w3c-web-usb/-/w3c-web-usb-1.0.14.tgz#9b2c8e723045e7bf8018d47efe1b736815b23b38" + integrity sha512-Qu3Nn6JFuF4+sHKYl+IcX9vYiI40ogleXzFFSxoE1W94rG98o/kXs8uJ0QSfFzuwBCZWlGfUGpPkgwuuX4PchA== + "@types/ws@^7.4.4": version "7.4.7" resolved "https://registry.yarnpkg.com/@types/ws/-/ws-7.4.7.tgz#f7c390a36f7a0679aa69de2d501319f4f8d9b702" @@ -1920,13 +1989,18 @@ binary-extensions@^2.0.0: resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.3.0.tgz#f6e14a97858d327252200242d4ccfe522c445522" integrity sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw== -bindings@^1.3.0: +bindings@^1.3.0, bindings@^1.5.0: version "1.5.0" 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" +bip32-path@^0.4.2: + version "0.4.2" + resolved "https://registry.yarnpkg.com/bip32-path/-/bip32-path-0.4.2.tgz#5db0416ad6822712f077836e2557b8697c0c7c99" + integrity sha512-ZBMCELjJfcNMkz5bDuJ1WrYvjlhEF5k6mQ8vUr4N7MbVRsXei7ZOg8VhhwMfNiW68NWmLkgkc6WvTickrLGprQ== + bip39-light@^1.0.7: version "1.0.7" resolved "https://registry.yarnpkg.com/bip39-light/-/bip39-light-1.0.7.tgz#06a72f251b89389a136d3f177f29b03342adc5ba" @@ -1945,7 +2019,7 @@ bip39@3.0.2: pbkdf2 "^3.0.9" randombytes "^2.0.1" -bl@^4.1.0: +bl@^4.0.3, bl@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a" integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w== @@ -2172,6 +2246,11 @@ chokidar@3.5.3: optionalDependencies: fsevents "~2.3.2" +chownr@^1.1.1: + version "1.1.4" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" + integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== + cipher-base@^1.0.1, cipher-base@^1.0.3: version "1.0.7" resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.7.tgz#bd094bfef42634ccfd9e13b9fc73274997111e39" @@ -2384,6 +2463,13 @@ decimal.js@^10.4.2: resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.6.0.tgz#e649a43e3ab953a72192ff5983865e509f37ed9a" integrity sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg== +decompress-response@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-6.0.0.tgz#ca387612ddb7e104bd16d85aab00d5ecf09c66fc" + integrity sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ== + dependencies: + mimic-response "^3.1.0" + deep-eql@^4.1.3: version "4.1.4" resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-4.1.4.tgz#d0d3912865911bb8fac5afb4e3acfa6a28dc72b7" @@ -2391,6 +2477,11 @@ deep-eql@^4.1.3: dependencies: type-detect "^4.0.0" +deep-extend@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" + integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== + deep-is@^0.1.3: version "0.1.4" resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" @@ -2436,6 +2527,11 @@ depd@~1.1.2: resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" integrity sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ== +detect-libc@^2.0.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-2.1.2.tgz#689c5dcdc1900ef5583a4cb9f6d7b473742074ad" + integrity sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ== + diff@5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/diff/-/diff-5.0.0.tgz#7ed6ad76d859d030787ec35855f5b1daf31d852b" @@ -2496,6 +2592,13 @@ emoji-regex@^8.0.0: resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== +end-of-stream@^1.1.0, end-of-stream@^1.4.1: + version "1.4.5" + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.5.tgz#7344d711dea40e0b74abc2ed49778743ccedb08c" + integrity sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg== + dependencies: + once "^1.4.0" + environment@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/environment/-/environment-1.1.0.tgz#8e86c66b180f363c7ab311787e0259665f45a9f1" @@ -2728,6 +2831,16 @@ eventemitter3@^5.0.1: resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-5.0.1.tgz#53f5ffd0a492ac800721bb42c66b841de96423c4" integrity sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA== +events@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" + integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== + +expand-template@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/expand-template/-/expand-template-2.0.3.tgz#6e14b3fcee0f3a6340ecb57d2e8918692052a47c" + integrity sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg== + exponential-backoff@^3.1.0: version "3.1.3" resolved "https://registry.yarnpkg.com/exponential-backoff/-/exponential-backoff-3.1.3.tgz#51cf92c1c0493c766053f9d3abee4434c244d2f6" @@ -2845,6 +2958,11 @@ for-each@^0.3.5: dependencies: is-callable "^1.2.7" +fs-constants@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" + integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== + fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" @@ -2911,6 +3029,11 @@ get-tsconfig@^4.7.5: dependencies: resolve-pkg-maps "^1.0.0" +github-from-package@0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/github-from-package/-/github-from-package-0.0.0.tgz#97fb5d96bfde8973313f20e8288ef9a167fa64ce" + integrity sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw== + glob-parent@^5.1.2, glob-parent@~5.1.2: version "5.1.2" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" @@ -3101,6 +3224,11 @@ inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, i resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== +ini@~1.3.0: + version "1.3.8" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" + integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== + inquirer@^8.2.0: version "8.2.7" resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-8.2.7.tgz#62f6b931a9b7f8735dc42db927316d8fb6f71de8" @@ -3596,6 +3724,11 @@ mimic-function@^5.0.0: resolved "https://registry.yarnpkg.com/mimic-function/-/mimic-function-5.0.1.tgz#acbe2b3349f99b9deaca7fb70e48b83e94e67076" integrity sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA== +mimic-response@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-3.1.0.tgz#2d1d59af9c1b129815accc2c46a022a5ce1fa3c9" + integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ== + minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" @@ -3627,11 +3760,16 @@ minimatch@^9.0.4: dependencies: brace-expansion "^2.0.1" -minimist@^1.2.0, minimist@^1.2.6: +minimist@^1.2.0, minimist@^1.2.3, minimist@^1.2.6: version "1.2.8" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== +mkdirp-classic@^0.5.2, mkdirp-classic@^0.5.3: + version "0.5.3" + resolved "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz#fa10c9115cc6d8865be221ba47ee9bed78601113" + integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A== + mkdirp@^0.5.1: version "0.5.6" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6" @@ -3712,6 +3850,11 @@ nanoid@3.3.1: resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.1.tgz#6347a18cac88af88f58af0b3594b723d5e99bb35" integrity sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw== +napi-build-utils@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/napi-build-utils/-/napi-build-utils-2.0.0.tgz#13c22c0187fcfccce1461844136372a47ddc027e" + integrity sha512-GEbrYkbfF7MoNaoh2iGG84Mnf/WZfB0GdGEsM8wz7Expx/LlWf5U8t9nvJKXSp3qr5IsEbK04cBGhol/KwOsWA== + natural-compare@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" @@ -3761,16 +3904,33 @@ no-case@^3.0.4: lower-case "^2.0.2" tslib "^2.0.3" +node-abi@^3.3.0: + version "3.92.0" + resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-3.92.0.tgz#18e2214677499b8dda81ffcd095afc763d5a9802" + integrity sha512-KdHvFWZjEKDf0cakgFjebl371GPsISX2oZHcuyKqM7DtogIsHrqKeLTo8wBHxaXRAQlY2PsPlZmfo+9ZCxEREQ== + dependencies: + semver "^7.3.5" + node-addon-api@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-2.0.2.tgz#432cfa82962ce494b132e9d72a15b29f71ff5d32" integrity sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA== +node-addon-api@^3.0.2: + version "3.2.1" + resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-3.2.1.tgz#81325e0a2117789c0128dab65e7e38f07ceba161" + integrity sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A== + node-addon-api@^5.0.0: version "5.1.0" resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-5.1.0.tgz#49da1ca055e109a23d537e9de43c09cca21eb762" integrity sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA== +node-addon-api@^6.0.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-6.1.0.tgz#ac8470034e58e67d0c6f1204a18ae6995d9c0d76" + integrity sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA== + node-fetch@2.6.1: version "2.6.1" resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz#045bd323631f76ed2e2b55573394416b639a0052" @@ -3783,11 +3943,20 @@ node-fetch@^2.6.1, node-fetch@^2.6.7, node-fetch@^2.7.0: dependencies: whatwg-url "^5.0.0" -node-gyp-build@^4.2.0, node-gyp-build@^4.3.0: +node-gyp-build@^4.2.0, node-gyp-build@^4.3.0, node-gyp-build@^4.5.0: version "4.8.4" resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.8.4.tgz#8a70ee85464ae52327772a90d66c6077a900cfc8" integrity sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ== +node-hid@2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/node-hid/-/node-hid-2.1.2.tgz#3145fa86ed4336a402a71e9f372c54213b88797c" + integrity sha512-qhCyQqrPpP93F/6Wc/xUR7L8mAJW0Z6R7HMQV8jCHHksAxNDe/4z4Un/H9CpLOT+5K39OPyt9tIQlavxWES3lg== + dependencies: + bindings "^1.5.0" + node-addon-api "^3.0.2" + prebuild-install "^7.1.1" + normalize-path@^3.0.0, normalize-path@~3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" @@ -3825,7 +3994,7 @@ object.assign@^4.1.4: has-symbols "^1.1.0" object-keys "^1.1.1" -once@^1.3.0, once@^1.4.0: +once@^1.3.0, once@^1.3.1, once@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== @@ -3946,6 +4115,24 @@ possible-typed-array-names@^1.0.0: resolved "https://registry.yarnpkg.com/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz#93e3582bc0e5426586d9d07b79ee40fc841de4ae" integrity sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg== +prebuild-install@^7.1.1: + version "7.1.3" + resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-7.1.3.tgz#d630abad2b147443f20a212917beae68b8092eec" + integrity sha512-8Mf2cbV7x1cXPUILADGI3wuhfqWvtiLA1iclTDbFRZkgRQS0NqsPZphna9V+HyTEadheuPmjaJMsbzKQFOzLug== + dependencies: + detect-libc "^2.0.0" + expand-template "^2.0.3" + github-from-package "0.0.0" + minimist "^1.2.3" + mkdirp-classic "^0.5.3" + napi-build-utils "^2.0.0" + node-abi "^3.3.0" + pump "^3.0.0" + rc "^1.2.7" + simple-get "^4.0.0" + tar-fs "^2.0.0" + tunnel-agent "^0.6.0" + prelude-ls@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" @@ -3966,6 +4153,14 @@ process@^0.11.10: resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" integrity sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A== +pump@^3.0.0: + version "3.0.4" + resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.4.tgz#1f313430527fa8b905622ebd22fe1444e757ab3c" + integrity sha512-VS7sjc6KR7e1ukRFhQSY5LM2uBWAUPiOPa/A3mkKmiMwSmRFUITt0xuj+/lesgnCv+dPIEYlkzrcyXgquIHMcA== + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + punycode@^2.1.0: version "2.3.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5" @@ -3983,6 +4178,16 @@ randombytes@^2.0.1, randombytes@^2.1.0: dependencies: safe-buffer "^5.1.0" +rc@^1.2.7: + version "1.2.8" + resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" + integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== + dependencies: + deep-extend "^0.6.0" + ini "~1.3.0" + minimist "^1.2.0" + strip-json-comments "~2.0.1" + readable-stream@^2.3.8: version "2.3.8" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.8.tgz#91125e8042bba1b9887f49345f6277027ce8be9b" @@ -3996,7 +4201,7 @@ readable-stream@^2.3.8: string_decoder "~1.1.1" util-deprecate "~1.0.1" -readable-stream@^3.4.0, readable-stream@^3.6.0: +readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.6.0: version "3.6.2" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== @@ -4119,7 +4324,7 @@ run-parallel@^1.1.9: dependencies: queue-microtask "^1.2.2" -rxjs@^7.2.0, rxjs@^7.5.5: +rxjs@7.8.2, rxjs@^7.2.0, rxjs@^7.5.5: version "7.8.2" resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.8.2.tgz#955bc473ed8af11a002a2be52071bf475638607b" integrity sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA== @@ -4164,11 +4369,16 @@ secp256k1@^4.0.2: node-addon-api "^5.0.0" node-gyp-build "^4.2.0" -semver@^7.6.0: +semver@7.7.3, semver@^7.6.0: version "7.7.3" resolved "https://registry.yarnpkg.com/semver/-/semver-7.7.3.tgz#4b5f4143d007633a8dc671cd0a6ef9147b8bb946" integrity sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q== +semver@^7.3.5: + version "7.8.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.8.1.tgz#bf4970b5e70fda0686363cc18bfe8805d5ed957e" + integrity sha512-rkVq3IXh+4FDGch+KwzX3aV9W3kO54GyEgpvBzSyctDA6Xtd7RJQV1xmXbeQp5v7+VzLOfVqiutSE6GICgPFvg== + serialize-javascript@6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.0.tgz#efae5d88f45d7924141da8b5c3a7a7e663fefeb8" @@ -4224,6 +4434,20 @@ signal-exit@^4.1.0: resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== +simple-concat@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.1.tgz#f46976082ba35c2263f1c8ab5edfe26c41c9552f" + integrity sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q== + +simple-get@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-4.0.1.tgz#4a39db549287c979d352112fa03fd99fd6bc3543" + integrity sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA== + dependencies: + decompress-response "^6.0.0" + once "^1.3.1" + simple-concat "^1.0.0" + slice-ansi@^7.1.0: version "7.1.2" resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-7.1.2.tgz#adf7be70aa6d72162d907cd0e6d5c11f507b5403" @@ -4391,6 +4615,11 @@ strip-json-comments@3.1.1, strip-json-comments@^3.1.1: resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== +strip-json-comments@~2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" + integrity sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ== + superstruct@^0.14.2: version "0.14.2" resolved "https://registry.yarnpkg.com/superstruct/-/superstruct-0.14.2.tgz#0dbcdf3d83676588828f1cf5ed35cda02f59025b" @@ -4420,6 +4649,27 @@ supports-color@^7.1.0: dependencies: has-flag "^4.0.0" +tar-fs@^2.0.0: + version "2.1.4" + resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-2.1.4.tgz#800824dbf4ef06ded9afea4acafe71c67c76b930" + integrity sha512-mDAjwmZdh7LTT6pNleZ05Yt65HC3E+NiQzl672vQG38jIrehtJk/J3mNwIg+vShQPcLF/LV7CMnDW6vjj6sfYQ== + dependencies: + chownr "^1.1.1" + mkdirp-classic "^0.5.2" + pump "^3.0.0" + tar-stream "^2.1.4" + +tar-stream@^2.1.4: + version "2.2.0" + resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.2.0.tgz#acad84c284136b060dc3faa64474aa9aebd77287" + integrity sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ== + dependencies: + bl "^4.0.3" + end-of-stream "^1.4.1" + fs-constants "^1.0.0" + inherits "^2.0.3" + readable-stream "^3.1.1" + text-encoding-utf-8@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/text-encoding-utf-8/-/text-encoding-utf-8-1.0.2.tgz#585b62197b0ae437e3c7b5d0af27ac1021e10d13" @@ -4545,6 +4795,13 @@ tsx@4.20.6: optionalDependencies: fsevents "~2.3.3" +tunnel-agent@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" + integrity sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w== + dependencies: + safe-buffer "^5.0.1" + tweetnacl@1.0.3, tweetnacl@^1.0.1, tweetnacl@^1.0.2, tweetnacl@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-1.0.3.tgz#ac0af71680458d8a6378d0d0d050ab1407d35596" @@ -4613,6 +4870,15 @@ uri-js@^4.2.2: dependencies: punycode "^2.1.0" +usb@2.9.0: + version "2.9.0" + resolved "https://registry.yarnpkg.com/usb/-/usb-2.9.0.tgz#8ae3b175f93bee559400bff33491eee63406b6a2" + integrity sha512-G0I/fPgfHUzWH8xo2KkDxTTFruUWfppgSFJ+bQxz/kVY2x15EQ/XDB7dqD1G432G4gBG4jYQuF3U7j/orSs5nw== + dependencies: + "@types/w3c-web-usb" "^1.0.6" + node-addon-api "^6.0.0" + node-gyp-build "^4.5.0" + utf-8-validate@^5.0.2: version "5.0.10" resolved "https://registry.yarnpkg.com/utf-8-validate/-/utf-8-validate-5.0.10.tgz#d7d10ea39318171ca982718b6b96a8d2442571a2" From 10cc5aac27521f35b577af0692a8b35f2bb0d2b5 Mon Sep 17 00:00:00 2001 From: Kollan House Date: Mon, 29 Jun 2026 08:59:43 -0700 Subject: [PATCH 2/3] fix for warning errors with older ledger packages --- package.json | 4 +- yarn.lock | 116 ++++++++++++++++++++++++++++++++------------------- 2 files changed, 76 insertions(+), 44 deletions(-) diff --git a/package.json b/package.json index deba0f39a..6a7dd00b9 100644 --- a/package.json +++ b/package.json @@ -26,8 +26,8 @@ "dependencies": { "@coral-xyz/anchor": "0.29.0", "@inquirer/prompts": "7.9.0", - "@ledgerhq/hw-app-solana": "7.10.2", - "@ledgerhq/hw-transport-node-hid": "6.33.2", + "@ledgerhq/hw-app-solana": "7.10.4", + "@ledgerhq/hw-transport-node-hid": "6.33.4", "@metadaoproject/programs": "./sdk", "@metaplex-foundation/mpl-token-metadata": "3.4.0", "@metaplex-foundation/umi": "0.9.2", diff --git a/yarn.lock b/yarn.lock index 1a229d74d..41c7c8623 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,7 +2,12 @@ # yarn lockfile v1 -"@babel/runtime@^7.12.5", "@babel/runtime@^7.17.2", "@babel/runtime@^7.25.0": +"@babel/runtime@^7.12.5": + version "7.29.7" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.29.7.tgz#12022450c45a4da6d8d8287b18a4ff2ddb23f768" + integrity sha512-Nq8OhGWiZIZGV6hLHoyAKLLcJihP/xFeBMGJoUrxTX2psI8dCifzLhZISFb+VWS3wFMRDmCGw5R+dOySCqPLhw== + +"@babel/runtime@^7.17.2", "@babel/runtime@^7.25.0": version "7.28.4" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.28.4.tgz#a70226016fabe25c5783b2f22d3e1c9bc5ca3326" integrity sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ== @@ -864,62 +869,62 @@ "@jridgewell/resolve-uri" "^3.0.3" "@jridgewell/sourcemap-codec" "^1.4.10" -"@ledgerhq/devices@8.14.2": - version "8.14.2" - resolved "https://registry.yarnpkg.com/@ledgerhq/devices/-/devices-8.14.2.tgz#b1385e9eabbb98bc2233367b667c166b0b3ee6e1" - integrity sha512-T3pnfrsQEC/eJU0XHIqWI6qww+CL1k3NumR2XGWlMz8lVpoZ9HhcuGoCkMevp+8SWmymgyNIIFue3jlNA5KiMw== +"@ledgerhq/devices@8.15.1": + version "8.15.1" + resolved "https://registry.yarnpkg.com/@ledgerhq/devices/-/devices-8.15.1.tgz#1c2ce19d3a6521ebfd61f05e0c1f91cb0b76ee51" + integrity sha512-o4XEHiwPytnZxYUnOC5JoHX5TPDJpeMXPfXjwhsXVJ9LAbahxQWzC37Iuzk8ZY/oC2yDptzqjs/qNP2y9D9vCA== dependencies: - "@ledgerhq/errors" "^6.34.1" + "@ledgerhq/errors" "^6.36.0" "@ledgerhq/logs" "^6.17.0" rxjs "7.8.2" semver "7.7.3" -"@ledgerhq/errors@^6.34.1": - version "6.35.0" - resolved "https://registry.yarnpkg.com/@ledgerhq/errors/-/errors-6.35.0.tgz#2f06d27bff063d9df967d23f366bfdb9c7f3df30" - integrity sha512-qk9PbqIvze7NXGogVxNCsz60rNo5FrGj8gKqs7pcyDk+em5L6s70G7cRxR+1HTXdam4WoPfntUq+WX9zQUynkg== +"@ledgerhq/errors@^6.36.0": + version "6.36.0" + resolved "https://registry.yarnpkg.com/@ledgerhq/errors/-/errors-6.36.0.tgz#28c4a79c251d5d25c8f01c005fc96f497de4a4d3" + integrity sha512-o2Q5hNvf2TzAzlH8ORAozppRbzixRPYDfmSQrP7FOcM997OEH7qDleXgp/uMpvRdxR/t3CJCG+n0i+bU/oYMKA== -"@ledgerhq/hw-app-solana@^7.10.2": - version "7.10.2" - resolved "https://registry.yarnpkg.com/@ledgerhq/hw-app-solana/-/hw-app-solana-7.10.2.tgz#5012c075fd68438d6b5b7b44719cfea959be330b" - integrity sha512-VSFKz81t+92D3OReLcY305dVJvQiKnSi3fiuCOKEXcp1aASgh4uTsUyQ/qgFqyJKIoWepOLshVzYd42/ukv1gQ== +"@ledgerhq/hw-app-solana@7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@ledgerhq/hw-app-solana/-/hw-app-solana-7.10.4.tgz#0917be51ee00ed6115a62101ed48afdb178a2714" + integrity sha512-hMMRGPTNDjPzDNCQz9leC08jsFOaVvR84pzP+EvgpuasiT43tzyAVVG8oRyq0yLlcKjtla2MamEfYrr3bB+45g== dependencies: - "@ledgerhq/errors" "^6.34.1" - "@ledgerhq/hw-transport" "6.35.2" + "@ledgerhq/errors" "^6.36.0" + "@ledgerhq/hw-transport" "6.35.4" bip32-path "^0.4.2" -"@ledgerhq/hw-transport-node-hid-noevents@^6.35.2": - version "6.35.2" - resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport-node-hid-noevents/-/hw-transport-node-hid-noevents-6.35.2.tgz#4a202e8ec8aab3b0550b5c7398b52a0a5826da52" - integrity sha512-TzFSPHJ5Sa0pUuaoYtKWsvvZwfqpkmnEqEl6GXDbwS2Rrc0n6O+GQPRYOyUfed13T1UDAl7GPXIryAnHfttQog== +"@ledgerhq/hw-transport-node-hid-noevents@^6.35.4": + version "6.35.4" + resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport-node-hid-noevents/-/hw-transport-node-hid-noevents-6.35.4.tgz#33d94196ebc41a109148dd72e66088e253b46dd9" + integrity sha512-187670Uuuek9ECcT92NQm1PnDfFHT6gBmaJinatnueMLV9lk3q4IrpFZqTotr+LhPNub+YdGQFjYJImcXvYWtw== dependencies: - "@ledgerhq/devices" "8.14.2" - "@ledgerhq/errors" "^6.34.1" - "@ledgerhq/hw-transport" "6.35.2" + "@ledgerhq/devices" "8.15.1" + "@ledgerhq/errors" "^6.36.0" + "@ledgerhq/hw-transport" "6.35.4" "@ledgerhq/logs" "^6.17.0" node-hid "2.1.2" -"@ledgerhq/hw-transport-node-hid@^6.33.2": - version "6.33.2" - resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport-node-hid/-/hw-transport-node-hid-6.33.2.tgz#1b669aae101c8dde2949404bad550fde60ac307d" - integrity sha512-Vm2SRDN8FjQiT6vxhzd4EH8JeIH+UDT8NgNWU+iUpLuTllhd1sWHYsQ1Cc4MpUo7wSymqWlXaV3UsJKtYfRzRg== +"@ledgerhq/hw-transport-node-hid@6.33.4": + version "6.33.4" + resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport-node-hid/-/hw-transport-node-hid-6.33.4.tgz#fb536ab1f660600f54c5863b819f35f8fefc2a13" + integrity sha512-/k0rH+wTpTmUifdxWuOER/dM3vPxW7RQIF0tByGC6noszVC3SGOZVcskBqJZ6xwIs1TvAHvZlEFvZWbnUJMBiw== dependencies: - "@ledgerhq/devices" "8.14.2" - "@ledgerhq/errors" "^6.34.1" - "@ledgerhq/hw-transport" "6.35.2" - "@ledgerhq/hw-transport-node-hid-noevents" "^6.35.2" + "@ledgerhq/devices" "8.15.1" + "@ledgerhq/errors" "^6.36.0" + "@ledgerhq/hw-transport" "6.35.4" + "@ledgerhq/hw-transport-node-hid-noevents" "^6.35.4" "@ledgerhq/logs" "^6.17.0" lodash "^4.17.21" node-hid "2.1.2" usb "2.9.0" -"@ledgerhq/hw-transport@6.35.2": - version "6.35.2" - resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport/-/hw-transport-6.35.2.tgz#e762b056998e02dbc44faad93c9d8c0b3b8fd8d6" - integrity sha512-eSXFFqMDAB2Ra/5uqmlru0cUyc2XDQPEKf4ITWHeMms2fHhETw9lcgAEl61vszkiz0RLUVB4VQsLJjj7O8kCvg== +"@ledgerhq/hw-transport@6.35.4": + version "6.35.4" + resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport/-/hw-transport-6.35.4.tgz#ca9d7689b45a56a5d81c791daab64cbf2fbd7eba" + integrity sha512-FMVxiniQp0pgSIEBX9CjXYBuIAH9BTm3OcrN+/2LqkB8QBeFZdiwmO4BeN9nc2aWspe9z6kxN3SuUyouedNokA== dependencies: - "@ledgerhq/devices" "8.14.2" - "@ledgerhq/errors" "^6.34.1" + "@ledgerhq/devices" "8.15.1" + "@ledgerhq/errors" "^6.36.0" "@ledgerhq/logs" "^6.17.0" events "^3.3.0" @@ -2033,7 +2038,7 @@ bn.js@5.2.0: resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.0.tgz#358860674396c6997771a9d051fcc1b57d4ae002" integrity sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw== -bn.js@5.2.2, bn.js@^5.0.0, bn.js@^5.1.2, bn.js@^5.2.0, bn.js@^5.2.1: +bn.js@5.2.2, bn.js@^5.1.2, bn.js@^5.2.0, bn.js@^5.2.1: version "5.2.2" resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.2.tgz#82c09f9ebbb17107cd72cb7fd39bd1f9d0aaa566" integrity sha512-v2YAxEmKaBLahNwE1mjp4WON6huMNeuDvagFZW+ASCuA/ku0bXR9hSMw0XpiqMoA3+rmnyck/tPRSFQkoC9Cuw== @@ -2043,6 +2048,11 @@ bn.js@^4.0.0, bn.js@^4.11.9: resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.2.tgz#3d8fed6796c24e177737f7cc5172ee04ef39ec99" integrity sha512-n4DSx829VRTRByMRGdjQ9iqsN0Bh4OolPsFnaZBLcbi8iXcB+kJ9s7EnRt4wILZNV3kPLHkRVfOc/HvhC3ovDw== +bn.js@^5.0.0: + version "5.2.4" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.4.tgz#1208fc250bb193fc5f8f0b5fa59e642e706f7103" + integrity sha512-QL7sb18rJ1PbdsKsqPA0guxL563vIMwRHgzNrW/uzQuRGN1Cjqd/wonUBAVqHox9KwzHA6vCbM0lXx3k4iQMow== + borsh@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/borsh/-/borsh-0.6.0.tgz#a7c9eeca6a31ca9e0607cb49f329cb659eb791e1" @@ -3625,7 +3635,12 @@ lodash.merge@^4.6.2: resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== -lodash@^4.17.20, lodash@^4.17.21: +lodash@^4.17.20: + version "4.18.1" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.18.1.tgz#ff2b66c1f6326d59513de2407bf881439812771c" + integrity sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q== + +lodash@^4.17.21: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== @@ -3746,7 +3761,14 @@ minimatch@4.2.1: dependencies: brace-expansion "^1.1.7" -minimatch@^3.0.4, minimatch@^3.1.2: +minimatch@^3.0.4: + version "3.1.5" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.5.tgz#580c88f8d5445f2bd6aa8f3cadefa0de79fbd69e" + integrity sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w== + dependencies: + brace-expansion "^1.1.7" + +minimatch@^3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== @@ -4100,7 +4122,12 @@ pbkdf2@^3.0.9: sha.js "^2.4.12" to-buffer "^1.2.1" -picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1: +picomatch@^2.0.4, picomatch@^2.2.1: + version "2.3.2" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.2.tgz#5a942915e26b372dc0f0e6753149a16e6b1c5601" + integrity sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA== + +picomatch@^2.3.1: version "2.3.1" resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== @@ -5004,7 +5031,12 @@ ws@8.18.0: resolved "https://registry.yarnpkg.com/ws/-/ws-8.18.0.tgz#0d7505a6eafe2b0e712d232b42279f53bc289bbc" integrity sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw== -ws@^7.4.5, ws@^7.5.10: +ws@^7.4.5: + version "7.5.11" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.11.tgz#9460daf1812bb81a423c5b9eac746941a86310fa" + integrity sha512-zS54Oen9bITtp7kp2XM3AydrCIq1D+HwJOuH+c+e4LfpL/lotP5osijd+UoMnxwAam1GN8R4KtLAyIrIcBNpiA== + +ws@^7.5.10: version "7.5.10" resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.10.tgz#58b5c20dc281633f6c19113f39b349bd8bd558d9" integrity sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ== From a93568409d7308202ce4d65bfc22b9b75449f003 Mon Sep 17 00:00:00 2001 From: Kollan House Date: Mon, 29 Jun 2026 13:02:15 -0700 Subject: [PATCH 3/3] confirmation of laso addresses --- scripts/v0.7/laso/constants.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/v0.7/laso/constants.ts b/scripts/v0.7/laso/constants.ts index 9c3416368..433bc02c3 100644 --- a/scripts/v0.7/laso/constants.ts +++ b/scripts/v0.7/laso/constants.ts @@ -6,10 +6,10 @@ export const TOKEN_SEED = "7VpRX8sqCTEmdAa9"; // Team Config Details export const TEAM_ADDRESS = new PublicKey( "82MdwSmh7JEK9cywZusE27m8zwbhmkR9Bs38jQoAwwCc", -); // Laso team address +); // Laso team squads address export const SPENDING_MEMBERS = [ - new PublicKey("3jRKUoyN8CDA4DngXV3Ym2ZfZKzCP87XVgXKtQJADMws"), + new PublicKey("4XMTsBivE5V73ScmuChGVLS6oF8MFb2P3fvR3gt9So9J"), ]; // Even without a performance package, defaults need to be set export const PERFORMANCE_PACKAGE_GRANTEE = new PublicKey(