From 927bfb70b433cf17028e5d968507f2de7cd625d3 Mon Sep 17 00:00:00 2001 From: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Date: Fri, 3 Oct 2025 23:24:15 +0000 Subject: [PATCH 1/2] feat(contract_manager): migrate from web3.js to viem - Replace web3.js with viem for better TypeScript support and modern API - Update EvmChain class methods to use viem's createPublicClient and createWalletClient - Refactor all EVM contract classes to use viem's getContract and typed read/write methods - Update all scripts to use viem APIs for transactions and contract interactions - Remove web3, web3-eth-contract, and @types/web3 dependencies - Bump version from 1.0.1 to 1.1.0 - Add proper type handling with eslint-disable comments where needed - Format JSON store files with prettier Following patterns established in the price_pusher application. Co-Authored-By: Jayant --- contract_manager/package.json | 7 +- .../scripts/batchDeployReceivers.ts | 27 +- contract_manager/scripts/check_proposal.ts | 38 +- contract_manager/scripts/common.ts | 83 ++- .../scripts/deploy_evm_entropy_contracts.ts | 27 +- .../scripts/deploy_evm_executor_contracts.ts | 5 +- .../scripts/deploy_evm_pricefeed_contracts.ts | 5 +- .../scripts/deploy_evm_pulse_contracts.ts | 5 +- .../scripts/fetch_accrued_entropy_dao_fees.ts | 4 +- .../scripts/latency_entropy_with_callback.ts | 49 +- .../scripts/list_entropy_contracts.ts | 16 +- contract_manager/scripts/load_test_entropy.ts | 31 +- .../transfer_balance_entropy_chains.ts | 59 +- contract_manager/src/core/chains.ts | 169 +++-- contract_manager/src/core/contracts/evm.ts | 697 +++++++++++------- .../contracts/AptosPriceFeedContracts.json | 2 +- .../contracts/AptosWormholeContracts.json | 2 +- .../contracts/CosmWasmPriceFeedContracts.json | 2 +- .../contracts/CosmWasmWormholeContracts.json | 2 +- .../store/contracts/EvmEntropyContracts.json | 2 +- .../store/contracts/EvmExecutorContracts.json | 2 +- .../contracts/EvmPriceFeedContracts.json | 2 +- .../store/contracts/EvmWormholeContracts.json | 2 +- .../contracts/FuelWormholeContracts.json | 2 +- .../contracts/IotaPriceFeedContracts.json | 2 +- .../contracts/IotaWormholeContracts.json | 2 +- .../contracts/NearPriceFeedContracts.json | 2 +- .../contracts/NearWormholeContracts.json | 2 +- .../contracts/StarknetPriceFeedContracts.json | 2 +- .../contracts/StarknetWormholeContracts.json | 2 +- .../contracts/SuiPriceFeedContracts.json | 2 +- .../store/contracts/SuiWormholeContracts.json | 2 +- .../contracts/TonPriceFeedContracts.json | 2 +- .../store/contracts/TonWormholeContracts.json | 2 +- 34 files changed, 776 insertions(+), 484 deletions(-) diff --git a/contract_manager/package.json b/contract_manager/package.json index 5f5e5e6cc8..34ab9f8d2b 100644 --- a/contract_manager/package.json +++ b/contract_manager/package.json @@ -1,6 +1,6 @@ { "name": "@pythnetwork/contract-manager", - "version": "1.0.1", + "version": "1.1.0", "description": "Set of tools to manage pyth contracts", "private": true, "exports": { @@ -86,12 +86,9 @@ "starknet": "^6.9.0", "ts-node": "catalog:", "typescript": "catalog:", - "viem": "^2.23.5", - "web3": "^1.8.2", - "web3-eth-contract": "^1.8.2" + "viem": "^2.23.5" }, "devDependencies": { - "@types/web3": "^1.2.2", "@types/node": "catalog:", "eslint": "^8.0.0", "prettier": "catalog:", diff --git a/contract_manager/scripts/batchDeployReceivers.ts b/contract_manager/scripts/batchDeployReceivers.ts index 73f65cfd4e..8ce4101672 100644 --- a/contract_manager/scripts/batchDeployReceivers.ts +++ b/contract_manager/scripts/batchDeployReceivers.ts @@ -5,15 +5,14 @@ import yargs from "yargs"; import { hideBin } from "yargs/helpers"; -import { - DefaultStore, - EvmChain, - loadHotWallet, - EvmWormholeContract, -} from "@pythnetwork/contract-manager"; -import Web3 from "web3"; +import { DefaultStore } from "../src/node/utils/store"; +import { EvmChain } from "../src/core/chains"; +import { loadHotWallet } from "../src/node/utils/governance"; +import { EvmWormholeContract } from "../src/core/contracts"; +import { encodeFunctionData, type Abi } from "viem"; import { CHAINS } from "@pythnetwork/xc-admin-common"; import * as fs from "fs"; +import { toPrivateKey } from "../src/core/base"; import { getDefaultConfig } from "../../target_chains/ethereum/contracts/scripts/contractManagerConfig"; @@ -62,7 +61,7 @@ async function memoize( async function main() { const argv = await parser.argv; - const privateKey = argv["private-key"]; + const privateKey = toPrivateKey(argv["private-key"]); const network = argv["network"]; const setupInfo = await import(argv["contract"] + "/ReceiverSetup.json"); @@ -101,17 +100,17 @@ async function main() { [], ); console.log("implementationAddress", implementationAddress); - const web3 = new Web3(); - const setup = new web3.eth.Contract(setupInfo.abi, setupAddress); - const initData = setup.methods - .setup( + const initData = encodeFunctionData({ + abi: setupInfo.abi as Abi, + functionName: "setup", + args: [ implementationAddress, wormholeInitialSigners, CHAINS[chain.wormholeChainName], wormholeGovernanceChainId, wormholeGovernanceContract, - ) - .encodeABI(); + ], + }); // deploy proxy const receiverAddress = await chain.deploy( diff --git a/contract_manager/scripts/check_proposal.ts b/contract_manager/scripts/check_proposal.ts index aff2db980d..6360ced96c 100644 --- a/contract_manager/scripts/check_proposal.ts +++ b/contract_manager/scripts/check_proposal.ts @@ -25,7 +25,12 @@ import { getCodeDigestWithoutAddress, EvmWormholeContract, } from "../src/core/contracts/evm"; -import Web3 from "web3"; +import { + keccak256, + toHex, + toFunctionSignature, + decodeAbiParameters, +} from "viem"; const parser = yargs(hideBin(process.argv)) .usage("Usage: $0 --cluster --proposal ") @@ -85,11 +90,12 @@ async function main() { chain, receiverImplementation, ).getCode(); - const proxyDigest = Web3.utils.keccak256(proxyCode); - const implementationDigest = - Web3.utils.keccak256(implementationCode); - const guardianSetDigest = Web3.utils.keccak256( - JSON.stringify(guardianSet), + const proxyDigest = keccak256(proxyCode as `0x${string}`); + const implementationDigest = keccak256( + implementationCode as `0x${string}`, + ); + const guardianSetDigest = keccak256( + toHex(JSON.stringify(guardianSet)), ); console.log( `${chain.getId()} Address:\t\t${address}\nproxy digest:\t\t${proxyDigest}\nimplementation digest:\t${implementationDigest} \nguardian set index:\t${currentIndex} \nguardian set:\t\t${guardianSetDigest}`, @@ -174,17 +180,19 @@ async function main() { // In the future, this logic may need to be generalized to support calling other functions. const invokedMethod = "upgradeTo(address)"; const calldataHex = calldata.toString("hex"); - const web3 = new Web3(); - const methodSignature = web3.eth.abi - .encodeFunctionSignature(invokedMethod) - .replace("0x", ""); + const methodSignature = toFunctionSignature(invokedMethod).replace( + "0x", + "", + ); let newImplementationAddress: string | undefined = undefined; if (calldataHex.startsWith(methodSignature)) { - newImplementationAddress = web3.eth.abi.decodeParameter( - "address", - calldataHex.replace(methodSignature, ""), - ) as unknown as string; + const decoded = decodeAbiParameters( + [{ name: "implementation", type: "address" }], + ("0x" + + calldataHex.replace(methodSignature, "")) as `0x${string}`, + ); + newImplementationAddress = decoded[0] as string; } if (newImplementationAddress === undefined) { @@ -195,7 +203,7 @@ async function main() { } const newImplementationCode = await getCodeDigestWithoutAddress( - chain.getWeb3(), + chain.getPublicClient(), newImplementationAddress, ); // this should be the same keccak256 of the deployedCode property generated by truffle diff --git a/contract_manager/scripts/common.ts b/contract_manager/scripts/common.ts index f66e003e66..d8f9158028 100644 --- a/contract_manager/scripts/common.ts +++ b/contract_manager/scripts/common.ts @@ -1,8 +1,8 @@ import { DefaultStore } from "../src/node/utils/store"; import { existsSync, readFileSync, writeFileSync } from "fs"; import { join } from "path"; -import Web3 from "web3"; -import { Contract } from "web3-eth-contract"; +import { getContract, encodeFunctionData, formatEther, parseEther } from "viem"; +import type { Abi } from "viem"; import { InferredOptionType } from "yargs"; import { PrivateKey, getDefaultDeploymentConfig } from "../src/core/base"; import { EvmChain } from "../src/core/chains"; @@ -75,19 +75,24 @@ export async function deployIfNotCached( }); } -export function getWeb3Contract( +export function getViemContract( + chain: EvmChain, jsonOutputDir: string, artifactName: string, address: string, -): Contract { +) { const artifact = JSON.parse( readFileSync( join(jsonOutputDir, `${artifactName}.sol`, `${artifactName}.json`), "utf8", ), ); - const web3 = new Web3(); - return new web3.eth.Contract(artifact["abi"], address); + const client = chain.getPublicClient(); + return getContract({ + address: address as `0x${string}`, + abi: artifact["abi"] as Abi, + client, + }); } export const COMMON_DEPLOY_OPTIONS = { @@ -306,23 +311,28 @@ export async function deployWormholeContract( ); // Craft the init data for the proxy contract - const setupContract = getWeb3Contract( - config.jsonOutputDir, - "ReceiverSetup", - receiverSetupAddr, + const artifact = JSON.parse( + readFileSync( + join(config.jsonOutputDir, "ReceiverSetup.sol", "ReceiverSetup.json"), + "utf8", + ), ); const { wormholeConfig } = getDefaultDeploymentConfig(config.type); - const initData = setupContract.methods - .setup( + const initData = encodeFunctionData({ + abi: artifact["abi"] as Abi, + functionName: "setup", + args: [ receiverImplAddr, - wormholeConfig.initialGuardianSet.map((addr: string) => "0x" + addr), + wormholeConfig.initialGuardianSet.map( + (addr: string) => ("0x" + addr) as `0x${string}`, + ), chain.getWormholeChainId(), wormholeConfig.governanceChainId, - "0x" + wormholeConfig.governanceContract, - ) - .encodeABI(); + ("0x" + wormholeConfig.governanceContract) as `0x${string}`, + ], + }); const wormholeReceiverAddr = await deployIfNotCached( cacheFile, @@ -384,36 +394,31 @@ export async function topupAccountsIfNecessary( const accountAddress = chain.isMainnet() ? defaultAddresses.mainnet : defaultAddresses.testnet; - const web3 = chain.getWeb3(); - const balance = Number( - web3.utils.fromWei(await web3.eth.getBalance(accountAddress), "ether"), - ); - console.log(`${accountName} balance: ${balance} ETH`); - if (balance < minBalance) { + const publicClient = chain.getPublicClient(); + const walletClient = chain.getWalletClient(deploymentConfig.privateKey); + const balance = await publicClient.getBalance({ + address: accountAddress as `0x${string}`, + }); + const balanceEth = Number(formatEther(balance)); + console.log(`${accountName} balance: ${balanceEth} ETH`); + if (balanceEth < minBalance) { console.log( `Balance is less than ${minBalance}. Topping up the ${accountName} address...`, ); - const signer = web3.eth.accounts.privateKeyToAccount( - deploymentConfig.privateKey, - ); - web3.eth.accounts.wallet.add(signer); - const estimatedGas = await web3.eth.estimateGas({ - from: signer.address, - to: accountAddress, - value: web3.utils.toWei(`${minBalance}`, "ether"), + const topupValue = parseEther(minBalance.toString()); + const estimatedGas = await publicClient.estimateGas({ + account: walletClient.account!, + to: accountAddress as `0x${string}`, + value: topupValue, }); - const tx = await web3.eth.sendTransaction({ - from: signer.address, - to: accountAddress, - gas: estimatedGas * deploymentConfig.gasMultiplier, - value: web3.utils.toWei(`${minBalance}`, "ether"), + const hash = await walletClient.sendTransaction({ + to: accountAddress as `0x${string}`, + gas: estimatedGas * BigInt(deploymentConfig.gasMultiplier), + value: topupValue, }); - console.log( - `Topped up the ${accountName} address. Tx: `, - tx.transactionHash, - ); + console.log(`Topped up the ${accountName} address. Tx: `, hash); } } } diff --git a/contract_manager/scripts/deploy_evm_entropy_contracts.ts b/contract_manager/scripts/deploy_evm_entropy_contracts.ts index 3d30eaf26a..13aa6bb524 100644 --- a/contract_manager/scripts/deploy_evm_entropy_contracts.ts +++ b/contract_manager/scripts/deploy_evm_entropy_contracts.ts @@ -15,12 +15,14 @@ import { import { COMMON_DEPLOY_OPTIONS, deployIfNotCached, - getWeb3Contract, getOrDeployWormholeContract, BaseDeployConfig, topupAccountsIfNecessary, DefaultAddresses, } from "./common"; +import { encodeFunctionData } from "viem"; +import * as fs from "fs"; +import { join } from "path"; import { getOrDeployExecutorContract } from "./deploy_evm_executor_contracts"; interface DeploymentConfig extends BaseDeployConfig { @@ -57,14 +59,21 @@ async function deployEntropyContracts( [], ); - const entropyImplContract = getWeb3Contract( - config.jsonOutputDir, - "EntropyUpgradable", - entropyImplAddr, + const artifact = JSON.parse( + fs.readFileSync( + join( + config.jsonOutputDir, + "EntropyUpgradable.sol", + "EntropyUpgradable.json", + ), + "utf8", + ), ); - const entropyInitData = entropyImplContract.methods - .initialize( + const entropyInitData = encodeFunctionData({ + abi: artifact["abi"], + functionName: "initialize", + args: [ executorAddr, // owner executorAddr, // admin 1, // pythFeeInWei @@ -72,8 +81,8 @@ async function deployEntropyContracts( ? ENTROPY_DEFAULT_PROVIDER.mainnet : ENTROPY_DEFAULT_PROVIDER.testnet, true, // prefillRequestStorage - ) - .encodeABI(); + ], + }); return await deployIfNotCached( CACHE_FILE, diff --git a/contract_manager/scripts/deploy_evm_executor_contracts.ts b/contract_manager/scripts/deploy_evm_executor_contracts.ts index 44ebfff9c3..2e5072328f 100644 --- a/contract_manager/scripts/deploy_evm_executor_contracts.ts +++ b/contract_manager/scripts/deploy_evm_executor_contracts.ts @@ -7,7 +7,7 @@ import { deployIfNotCached, findExecutorContract, getOrDeployWormholeContract, - getWeb3Contract, + getViemContract, } from "./common"; import { DeploymentType, @@ -73,7 +73,8 @@ export async function deployExecutorContracts( // Craft the init data for the proxy contract const { governanceDataSource } = getDefaultDeploymentConfig(config.type); - const executorImplContract = getWeb3Contract( + const executorImplContract = getViemContract( + chain, config.jsonOutputDir, "ExecutorUpgradable", executorImplAddr, diff --git a/contract_manager/scripts/deploy_evm_pricefeed_contracts.ts b/contract_manager/scripts/deploy_evm_pricefeed_contracts.ts index 4aadf81c7d..32dc4f817a 100644 --- a/contract_manager/scripts/deploy_evm_pricefeed_contracts.ts +++ b/contract_manager/scripts/deploy_evm_pricefeed_contracts.ts @@ -3,7 +3,7 @@ import { hideBin } from "yargs/helpers"; import { COMMON_DEPLOY_OPTIONS, deployIfNotCached, - getWeb3Contract, + getViemContract, getOrDeployWormholeContract, BaseDeployConfig, } from "./common"; @@ -81,7 +81,8 @@ async function deployPriceFeedContracts( config.type, ); - const pythImplContract = getWeb3Contract( + const pythImplContract = getViemContract( + chain, config.jsonOutputDir, "PythUpgradable", pythImplAddr, diff --git a/contract_manager/scripts/deploy_evm_pulse_contracts.ts b/contract_manager/scripts/deploy_evm_pulse_contracts.ts index 392790c168..1a5a4efd39 100644 --- a/contract_manager/scripts/deploy_evm_pulse_contracts.ts +++ b/contract_manager/scripts/deploy_evm_pulse_contracts.ts @@ -3,7 +3,7 @@ import { hideBin } from "yargs/helpers"; import { COMMON_DEPLOY_OPTIONS, deployIfNotCached, - getWeb3Contract, + getViemContract, getOrDeployWormholeContract, BaseDeployConfig, topupAccountsIfNecessary, @@ -71,7 +71,8 @@ async function deployPulseContracts( console.log("PulseUpgradeable implementation deployed at:", pulseImplAddr); - const pulseImplContract = getWeb3Contract( + const pulseImplContract = getViemContract( + chain, config.jsonOutputDir, "PulseUpgradeable", pulseImplAddr, diff --git a/contract_manager/scripts/fetch_accrued_entropy_dao_fees.ts b/contract_manager/scripts/fetch_accrued_entropy_dao_fees.ts index 6d89875d2b..9f0407d670 100644 --- a/contract_manager/scripts/fetch_accrued_entropy_dao_fees.ts +++ b/contract_manager/scripts/fetch_accrued_entropy_dao_fees.ts @@ -4,6 +4,7 @@ import { DefaultStore } from "../src/node/utils/store"; import { EvmChain } from "../src/core/chains"; import { EvmEntropyContract } from "../src/core/contracts"; import { findEntropyContract } from "./common"; +import { formatEther } from "viem"; const parser = yargs(hideBin(process.argv)) .usage( @@ -57,8 +58,7 @@ async function fetchAccruedFees( let accruedFeesEth: string | undefined; if (showEth) { - const web3 = contract.getChain().getWeb3(); - accruedFeesEth = web3.utils.fromWei(accruedFeesWei, "ether"); + accruedFeesEth = formatEther(BigInt(accruedFeesWei)); } return { diff --git a/contract_manager/scripts/latency_entropy_with_callback.ts b/contract_manager/scripts/latency_entropy_with_callback.ts index 2410542a10..d522253ef9 100644 --- a/contract_manager/scripts/latency_entropy_with_callback.ts +++ b/contract_manager/scripts/latency_entropy_with_callback.ts @@ -46,43 +46,64 @@ async function testLatency( true, // with callback ); console.log(`Request tx hash : ${requestResponse.transactionHash}`); - // Read the sequence number for the request from the transaction events. - const sequenceNumber = - requestResponse.events.RequestedWithCallback.returnValues.sequenceNumber; + + // Read the sequence number for the request from the transaction events + const publicClient = contract.chain.getPublicClient(); + const entropyContract = contract.getContract(); + const receipt = await publicClient.getTransactionReceipt({ + hash: requestResponse.transactionHash as `0x${string}`, + }); + + const requestLogs = await publicClient.getContractEvents({ + address: contract.address as `0x${string}`, + abi: entropyContract.abi, + eventName: "RequestedWithCallback", + fromBlock: receipt.blockNumber, + toBlock: receipt.blockNumber, + }); + + if (requestLogs.length === 0) { + throw new Error("No RequestedWithCallback event found in transaction"); + } + + // eslint-disable-next-line @typescript-eslint/no-explicit-any + const sequenceNumber = (requestLogs[0] as any).args.sequenceNumber; console.log(`sequence : ${sequenceNumber}`); const startTime = Date.now(); - - const fromBlock = requestResponse.blockNumber; - const web3 = contract.chain.getWeb3(); - const entropyContract = contract.getContract(); + const fromBlock = receipt.blockNumber; // eslint-disable-next-line no-constant-condition while (true) { await new Promise((resolve) => setTimeout(resolve, 1000)); - const currentBlock = await web3.eth.getBlockNumber(); + const currentBlock = await publicClient.getBlockNumber(); if (fromBlock > currentBlock) { continue; } - const events = await entropyContract.getPastEvents("RevealedWithCallback", { + const events = await publicClient.getContractEvents({ + address: contract.address as `0x${string}`, + abi: entropyContract.abi, + eventName: "RevealedWithCallback", fromBlock: fromBlock, toBlock: currentBlock, }); const event = events.find( - (event) => event.returnValues.request[1] == sequenceNumber, + // eslint-disable-next-line @typescript-eslint/no-explicit-any + (event) => (event as any).args.request[1] == sequenceNumber, ); if (event !== undefined) { - console.log(`Random number : ${event.returnValues.randomNumber}`); + // eslint-disable-next-line @typescript-eslint/no-explicit-any + console.log(`Random number : ${(event as any).args.randomNumber}`); const endTime = Date.now(); console.log(`Fortuna Latency : ${endTime - startTime}ms`); console.log( - `Revealed after : ${ - currentBlock - requestResponse.blockNumber - } blocks`, + `Revealed after : ${Number( + currentBlock - receipt.blockNumber, + )} blocks`, ); break; } diff --git a/contract_manager/scripts/list_entropy_contracts.ts b/contract_manager/scripts/list_entropy_contracts.ts index 9e81642447..762b235601 100644 --- a/contract_manager/scripts/list_entropy_contracts.ts +++ b/contract_manager/scripts/list_entropy_contracts.ts @@ -2,7 +2,7 @@ import yargs from "yargs"; import { hideBin } from "yargs/helpers"; import { DefaultStore } from "../src/node/utils/store"; import { ENTROPY_DEFAULT_KEEPER } from "../src/core/contracts"; -import Web3 from "web3"; +import { formatEther } from "viem"; const parser = yargs(hideBin(process.argv)) .usage("Usage: $0") @@ -34,9 +34,13 @@ async function main() { if (contract.getChain().isMainnet() === argv.testnet) continue; try { const provider = await contract.getDefaultProvider(); - const w3 = contract.getChain().getWeb3(); - const balance = await w3.eth.getBalance(provider); - const keeperBalance = await w3.eth.getBalance(keeperAddress); + const client = contract.getChain().getPublicClient(); + const balance = await client.getBalance({ + address: provider as `0x${string}`, + }); + const keeperBalance = await client.getBalance({ + address: keeperAddress as `0x${string}`, + }); let version = "unknown"; try { version = await contract.getVersion(); @@ -52,8 +56,8 @@ async function main() { owner, provider, feeManager: providerInfo.feeManager, - balance: Web3.utils.fromWei(balance), - keeperBalance: Web3.utils.fromWei(keeperBalance), + balance: formatEther(balance), + keeperBalance: formatEther(keeperBalance), seq: providerInfo.sequenceNumber, version, }); diff --git a/contract_manager/scripts/load_test_entropy.ts b/contract_manager/scripts/load_test_entropy.ts index cdb0c9b2e0..694ab9d09b 100644 --- a/contract_manager/scripts/load_test_entropy.ts +++ b/contract_manager/scripts/load_test_entropy.ts @@ -72,21 +72,28 @@ async function main() { const contract = findEntropyContract(chain); const provider = argv.provider || (await contract.getDefaultProvider()); const fee = await contract.getFee(provider); - const web3 = contract.chain.getWeb3(); - const testerContract = new web3.eth.Contract(ABI, argv.testerAddress); - const { address } = web3.eth.accounts.wallet.add(privateKey); - const transactionObject = testerContract.methods.batchRequests( - provider, - argv.successCount, - argv.revertCount, - ); + const walletClient = chain.getWalletClient(privateKey); + const publicClient = chain.getPublicClient(); + + const { getContract } = await import("viem"); + const testerContract = getContract({ + address: argv.testerAddress as `0x${string}`, + abi: ABI, + client: { public: publicClient, wallet: walletClient }, + }); + const totalCount = argv.successCount + argv.revertCount; - const result = await contract.chain.estiamteAndSendTransaction( - transactionObject, + const value = BigInt(fee) * BigInt(totalCount); + + const result = await chain.estiamteAndSendTransaction( + testerContract, + "batchRequests", + [provider, argv.successCount, argv.revertCount], { - from: address, - value: (fee * totalCount).toString(), + from: walletClient.account!.address, + value: value.toString(), }, + privateKey, ); console.log("Submitted transaction ", result.transactionHash); } diff --git a/contract_manager/scripts/transfer_balance_entropy_chains.ts b/contract_manager/scripts/transfer_balance_entropy_chains.ts index 806f888509..f91b431129 100644 --- a/contract_manager/scripts/transfer_balance_entropy_chains.ts +++ b/contract_manager/scripts/transfer_balance_entropy_chains.ts @@ -3,7 +3,7 @@ import { hideBin } from "yargs/helpers"; import { DefaultStore } from "../src/node/utils/store"; import { PrivateKey, toPrivateKey } from "../src/core/base"; import { EvmChain } from "../src/core/chains"; -import Web3 from "web3"; +import { isAddress, formatEther, parseEther } from "viem"; interface TransferResult { chain: string; @@ -109,14 +109,16 @@ async function transferOnChain( transferAmount?: number, transferRatio?: number, ): Promise { - const web3 = chain.getWeb3(); - const signer = web3.eth.accounts.privateKeyToAccount(sourcePrivateKey); - const sourceAddress = signer.address; + const publicClient = chain.getPublicClient(); + const walletClient = chain.getWalletClient(sourcePrivateKey); + const sourceAddress = walletClient.account!.address; try { // Get balance - const balanceWei = await web3.eth.getBalance(sourceAddress); - const balanceEth = Number(web3.utils.fromWei(balanceWei, "ether")); + const balanceWei = await publicClient.getBalance({ + address: sourceAddress, + }); + const balanceEth = Number(formatEther(balanceWei)); console.log(`\n${chain.getId()}: Checking balance for ${sourceAddress}`); console.log(` Balance: ${balanceEth.toFixed(6)} ETH`); @@ -138,18 +140,15 @@ async function transferOnChain( } // Calculate gas costs - const gasPrice = await web3.eth.getGasPrice(); - const estimatedGas = await web3.eth.estimateGas({ - from: sourceAddress, - to: destinationAddress, - value: "1", // Minimal value for estimation + const gasPrice = await publicClient.getGasPrice(); + const estimatedGas = await publicClient.estimateGas({ + account: sourceAddress, + to: destinationAddress as `0x${string}`, + value: 1n, // Minimal value for estimation }); - const gasCostWei = - BigInt(estimatedGas) * BigInt(gasPrice) * BigInt(gasMultiplier); - const gasCostEth = Number( - web3.utils.fromWei(gasCostWei.toString(), "ether"), - ); + const gasCostWei = estimatedGas * gasPrice * BigInt(gasMultiplier); + const gasCostEth = Number(formatEther(gasCostWei)); // Calculate transfer amount let transferAmountEth: number; @@ -199,10 +198,7 @@ async function transferOnChain( }; } - const transferAmountWei = web3.utils.toWei( - transferAmountEth.toString(), - "ether", - ); + const transferAmountWei = parseEther(transferAmountEth.toString()); console.log(` Transfer amount: ${transferAmountEth.toFixed(6)} ETH`); console.log(` Estimated gas cost: ${gasCostEth.toFixed(6)} ETH`); @@ -224,23 +220,24 @@ async function transferOnChain( } // Perform the transfer - web3.eth.accounts.wallet.add(signer); - console.log(` Executing transfer...`); - const tx = await web3.eth.sendTransaction({ - from: sourceAddress, - to: destinationAddress, + const hash = await walletClient.sendTransaction({ + to: destinationAddress as `0x${string}`, value: transferAmountWei, - gas: Number(estimatedGas) * gasMultiplier, + gas: estimatedGas * BigInt(gasMultiplier), gasPrice: gasPrice, }); + await publicClient.waitForTransactionReceipt({ hash }); + // Get updated balance - const newBalanceWei = await web3.eth.getBalance(sourceAddress); - const newBalanceEth = Number(web3.utils.fromWei(newBalanceWei, "ether")); + const newBalanceWei = await publicClient.getBalance({ + address: sourceAddress, + }); + const newBalanceEth = Number(formatEther(newBalanceWei)); console.log(` Transfer successful!`); - console.log(` Transaction hash: ${tx.transactionHash}`); + console.log(` Transaction hash: ${hash}`); console.log(` New balance: ${newBalanceEth.toFixed(6)} ETH`); return { @@ -251,7 +248,7 @@ async function transferOnChain( originalBalance: balanceEth.toFixed(6), transferAmount: transferAmountEth.toFixed(6), remainingBalance: newBalanceEth.toFixed(6), - transactionHash: tx.transactionHash, + transactionHash: hash, }; } catch (error) { console.log(` Transfer failed: ${error}`); @@ -339,7 +336,7 @@ async function main() { const argv = await parser.argv; // Validate inputs - if (!Web3.utils.isAddress(argv.destinationAddress)) { + if (!isAddress(argv.destinationAddress)) { throw new Error("Invalid destination address format"); } diff --git a/contract_manager/src/core/chains.ts b/contract_manager/src/core/chains.ts index 870c8f0c9f..b570a12352 100644 --- a/contract_manager/src/core/chains.ts +++ b/contract_manager/src/core/chains.ts @@ -13,7 +13,15 @@ import { EvmExecute, } from "@pythnetwork/xc-admin-common"; import { AptosClient, AptosAccount, CoinClient, TxnBuilderTypes } from "aptos"; -import Web3 from "web3"; +import { + createPublicClient, + createWalletClient, + http, + type PublicClient, + type WalletClient, + type Chain as ViemChain, +} from "viem"; +import { privateKeyToAccount } from "viem/accounts"; import { CosmwasmExecutor, CosmwasmQuerier, @@ -455,19 +463,48 @@ export class EvmChain extends Chain { } /** - * Returns a web3 provider for this chain + * Returns a viem public client for this chain */ - getWeb3(): Web3 { - return new Web3(parseRpcUrl(this.rpcUrl)); + getPublicClient(): PublicClient { + return createPublicClient({ + transport: http(parseRpcUrl(this.rpcUrl)), + }); } - getViemDefaultWeb3(): Web3 { - for (const chain of Object.values(chains)) { - if (chain.id === this.networkId) { - return new Web3(chain.rpcUrls.default.http[0]); - } + /** + * Returns a viem wallet client for this chain with the given private key + */ + getWalletClient(privateKey: PrivateKey): WalletClient { + const account = privateKeyToAccount(privateKey as `0x${string}`); + return createWalletClient({ + account, + chain: this.getViemChain(), + transport: http(parseRpcUrl(this.rpcUrl)), + }); + } + + /** + * Returns the viem chain config for this chain + */ + private getViemChain(): ViemChain { + const viemChain = Object.values(chains).find( + (chain) => chain.id === this.networkId, + ); + if (!viemChain) { + return { + id: this.networkId, + name: this.id, + nativeCurrency: { + name: this.nativeToken, + symbol: this.nativeToken, + decimals: 18, + }, + rpcUrls: { + default: { http: [parseRpcUrl(this.rpcUrl)] }, + }, + } as ViemChain; } - throw new Error(`Chain with id ${this.networkId} not found in Viem`); + return viemChain; } /** @@ -518,28 +555,40 @@ export class EvmChain extends Chain { } async getGasPrice() { - const web3 = this.getWeb3(); - let gasPrice = await web3.eth.getGasPrice(); + const client = this.getPublicClient(); + let gasPrice = await client.getGasPrice(); // some testnets have inaccuarte gas prices that leads to transactions not being mined, we double it since it's free! if (!this.isMainnet()) { - gasPrice = (BigInt(gasPrice) * 2n).toString(); + gasPrice = gasPrice * 2n; } - return gasPrice; + return gasPrice.toString(); } async estiamteAndSendTransaction( - transactionObject: any, // eslint-disable-line @typescript-eslint/no-explicit-any - txParams: { from?: string; value?: string }, + contract: any, // eslint-disable-line @typescript-eslint/no-explicit-any + functionName: string, + args: any[], // eslint-disable-line @typescript-eslint/no-explicit-any + txParams: { from: string; value?: string }, + privateKey: PrivateKey, ) { const GAS_ESTIMATE_MULTIPLIER = 2; - const gasEstimate = await transactionObject.estimateGas(txParams); - // Some networks like Filecoin do not support the normal transaction type and need a type 2 transaction. - // To send a type 2 transaction, remove the ``gasPrice`` field. - return transactionObject.send({ - gas: gasEstimate * GAS_ESTIMATE_MULTIPLIER, - gasPrice: Number(await this.getGasPrice()), - ...txParams, + const walletClient = this.getWalletClient(privateKey); + const publicClient = this.getPublicClient(); + + const { request } = await contract.simulate[functionName](args, { + account: walletClient.account, + value: txParams.value ? BigInt(txParams.value) : undefined, + }); + + const gasEstimate = request.gas || 0n; + const hash = await walletClient.writeContract({ + ...request, + gas: gasEstimate * BigInt(GAS_ESTIMATE_MULTIPLIER), + gasPrice: BigInt(await this.getGasPrice()), }); + + const receipt = await publicClient.waitForTransactionReceipt({ hash }); + return receipt; } /** @@ -558,23 +607,38 @@ export class EvmChain extends Chain { gasMultiplier = 1, gasPriceMultiplier = 1, ): Promise { - const web3 = this.getWeb3(); - const signer = web3.eth.accounts.privateKeyToAccount(privateKey); - web3.eth.accounts.wallet.add(signer); - const contract = new web3.eth.Contract(abi); - const deployTx = contract.deploy({ data: bytecode, arguments: deployArgs }); - const gas = Math.trunc( - (await deployTx.estimateGas({ from: signer.address })) * gasMultiplier, + const walletClient = this.getWalletClient(privateKey); + const publicClient = this.getPublicClient(); + + if (!walletClient.account) { + throw new Error("Wallet client account is not defined"); + } + + const deployerBalance = await publicClient.getBalance({ + address: walletClient.account.address, + }); + + const gasPrice = BigInt( + Math.trunc(Number(await this.getGasPrice()) * gasPriceMultiplier), ); - const gasPrice = Math.trunc( - Number(await this.getGasPrice()) * gasPriceMultiplier, + + const gas = BigInt( + Math.trunc( + Number( + await publicClient.estimateGas({ + account: walletClient.account, + data: bytecode as `0x${string}`, + to: null, + }), + ) * gasMultiplier, + ), ); - const deployerBalance = await web3.eth.getBalance(signer.address); - const gasDiff = BigInt(gas) * BigInt(gasPrice) - BigInt(deployerBalance); + const gasDiff = gas * gasPrice - deployerBalance; + if (gasDiff > 0n) { throw new Error( `Insufficient funds to deploy contract. Need ${gas} (gas) * ${gasPrice} (gasPrice)= ${ - BigInt(gas) * BigInt(gasPrice) + gas * gasPrice } wei, but only have ${deployerBalance} wei. We need ${ Number(gasDiff) / 10 ** 18 } ETH more.`, @@ -582,31 +646,40 @@ export class EvmChain extends Chain { } try { - const deployedContract = await deployTx.send({ - from: signer.address, + const hash = await walletClient.deployContract({ + abi, + bytecode: bytecode as `0x${string}`, + args: deployArgs, + account: walletClient.account!, + chain: this.getViemChain(), gas, - gasPrice: gasPrice.toString(), + gasPrice, }); - return deployedContract.options.address; + + const receipt = await publicClient.waitForTransactionReceipt({ hash }); + if (!receipt.contractAddress) { + throw new Error( + "Contract deployment failed: no contract address returned", + ); + } + return receipt.contractAddress; } catch (e) { - // RPC errors often have useful information in the non-primary message field. Log the whole error - // to simplify identifying the problem. console.log(`Error deploying contract: ${JSON.stringify(e)}`); throw e; } } async getAccountAddress(privateKey: PrivateKey): Promise { - const web3 = this.getWeb3(); - const signer = web3.eth.accounts.privateKeyToAccount(privateKey); - return signer.address; + const account = privateKeyToAccount(privateKey as `0x${string}`); + return account.address; } async getAccountBalance(privateKey: PrivateKey): Promise { - const web3 = this.getWeb3(); - const balance = await web3.eth.getBalance( - await this.getAccountAddress(privateKey), - ); + const client = this.getPublicClient(); + const address = await this.getAccountAddress(privateKey); + const balance = await client.getBalance({ + address: address as `0x${string}`, + }); return Number(balance) / 10 ** 18; } } diff --git a/contract_manager/src/core/contracts/evm.ts b/contract_manager/src/core/contracts/evm.ts index c12751b6d1..68efd88519 100644 --- a/contract_manager/src/core/contracts/evm.ts +++ b/contract_manager/src/core/contracts/evm.ts @@ -1,5 +1,11 @@ -import Web3 from "web3"; -import type { Contract } from "web3-eth-contract"; +import { + getContract, + type PublicClient, + keccak256, + toHex, + hexToString, + encodeFunctionData, +} from "viem"; import { PriceFeedContract, PrivateKey, Storable } from "../base"; import { Chain, EvmChain } from "../chains"; import { DataSource } from "@pythnetwork/xc-admin-common"; @@ -24,15 +30,15 @@ import { * with the deployedCode property generated by truffle builds */ export async function getCodeDigestWithoutAddress( - web3: Web3, + client: PublicClient, address: string, ): Promise { - const code = await web3.eth.getCode(address); - const strippedCode = code.replaceAll( + const code = await client.getCode({ address: address as `0x${string}` }); + const strippedCode = code!.replaceAll( address.toLowerCase().replace("0x", ""), "0000000000000000000000000000000000000000", ); - return Web3.utils.keccak256(strippedCode); + return keccak256(strippedCode as `0x${string}`); } export class EvmWormholeContract extends WormholeContract { @@ -52,7 +58,7 @@ export class EvmWormholeContract extends WormholeContract { async getVersion(): Promise { const contract = this.getContract(); - return contract.methods.version().call(); + return contract.read.version([]) as Promise; } static fromJson( @@ -72,21 +78,23 @@ export class EvmWormholeContract extends WormholeContract { ) { super(); } - getContract(): Contract { - const web3 = this.chain.getWeb3(); - return new web3.eth.Contract(WORMHOLE_ABI, this.address); + getContract() { + const client = this.chain.getPublicClient(); + return getContract({ + address: this.address as `0x${string}`, + abi: WORMHOLE_ABI, + client, + }); } async getCurrentGuardianSetIndex(): Promise { const wormholeContract = this.getContract(); - return Number( - await wormholeContract.methods.getCurrentGuardianSetIndex().call(), - ); + return Number(await wormholeContract.read.getCurrentGuardianSetIndex([])); } async getChainId(): Promise { const wormholeContract = this.getContract(); - return Number(await wormholeContract.methods.chainId().call()); + return Number(await wormholeContract.read.chainId([])); } /** @@ -95,24 +103,31 @@ export class EvmWormholeContract extends WormholeContract { async getGuardianSet(): Promise { const wormholeContract = this.getContract(); const currentIndex = await this.getCurrentGuardianSetIndex(); - const [currentSet] = await wormholeContract.methods - .getGuardianSet(currentIndex) - .call(); - return currentSet; + const result = (await wormholeContract.read.getGuardianSet([ + currentIndex, + // eslint-disable-next-line @typescript-eslint/no-explicit-any + ])) as any[]; + return result[0]; } async upgradeGuardianSets(senderPrivateKey: PrivateKey, vaa: Buffer) { - const web3 = this.chain.getWeb3(); - const { address } = web3.eth.accounts.wallet.add(senderPrivateKey); - const wormholeContract = new web3.eth.Contract(WORMHOLE_ABI, this.address); - const transactionObject = wormholeContract.methods.submitNewGuardianSet( - "0x" + vaa.toString("hex"), - ); - const result = await this.chain.estiamteAndSendTransaction( - transactionObject, - { from: address }, + const walletClient = this.chain.getWalletClient(senderPrivateKey); + const publicClient = this.chain.getPublicClient(); + const contract = getContract({ + address: this.address as `0x${string}`, + abi: WORMHOLE_ABI, + client: { public: publicClient, wallet: walletClient }, + }); + + const hash = await contract.write.submitNewGuardianSet( + [("0x" + vaa.toString("hex")) as `0x${string}`], + // eslint-disable-next-line @typescript-eslint/no-explicit-any + {} as any, ); - return { id: result.transactionHash, info: result }; + + const receipt = await publicClient.waitForTransactionReceipt({ hash }); + + return { id: hash, info: receipt }; } toJson() { @@ -182,7 +197,7 @@ export class EvmEntropyContract extends Storable { async getVersion(): Promise { const contract = this.getContract(); - return contract.methods.version().call(); + return contract.read.version([]) as Promise; } static fromJson( @@ -198,23 +213,32 @@ export class EvmEntropyContract extends Storable { // Generates a payload for the newAdmin to call acceptAdmin on the entropy contracts generateAcceptAdminPayload(newAdmin: string): Buffer { - const contract = this.getContract(); - const data = contract.methods.acceptAdmin().encodeABI(); + const data = encodeFunctionData({ + abi: EXTENDED_ENTROPY_ABI, + functionName: "acceptAdmin", + args: [], + }); return this.chain.generateExecutorPayload(newAdmin, this.address, data); } // Generates a payload for newOwner to call acceptOwnership on the entropy contracts generateAcceptOwnershipPayload(newOwner: string): Buffer { - const contract = this.getContract(); - const data = contract.methods.acceptOwnership().encodeABI(); + const data = encodeFunctionData({ + abi: EXTENDED_ENTROPY_ABI, + functionName: "acceptOwnership", + args: [], + }); return this.chain.generateExecutorPayload(newOwner, this.address, data); } async generateUpgradeEntropyContractPayload( newImplementation: string, ): Promise { - const contract = this.getContract(); - const data = contract.methods.upgradeTo(newImplementation).encodeABI(); + const data = encodeFunctionData({ + abi: EXTENDED_ENTROPY_ABI, + functionName: "upgradeTo", + args: [newImplementation], + }); return this.chain.generateExecutorPayload( await this.getOwner(), this.address, @@ -226,17 +250,18 @@ export class EvmEntropyContract extends Storable { async generateUpgradeExecutorContractsPayload( newImplementation: string, ): Promise { - // Executor contract is the owner of entropy contract const executorAddr = await this.getOwner(); - const web3 = this.chain.getWeb3(); - const executor = new web3.eth.Contract(EXECUTOR_ABI, executorAddr); - const data = executor.methods.upgradeTo(newImplementation).encodeABI(); + const data = encodeFunctionData({ + abi: EXECUTOR_ABI, + functionName: "upgradeTo", + args: [newImplementation], + }); return this.chain.generateExecutorPayload(executorAddr, executorAddr, data); } async getOwner(): Promise { const contract = this.getContract(); - return contract.methods.owner().call(); + return contract.read.owner([]) as Promise; } async getExecutorContract(): Promise { @@ -246,7 +271,7 @@ export class EvmEntropyContract extends Storable { async getPendingOwner(): Promise { const contract = this.getContract(); - return contract.methods.pendingOwner().call(); + return contract.read.pendingOwner([]) as Promise; } toJson() { @@ -258,23 +283,27 @@ export class EvmEntropyContract extends Storable { } getContract() { - const web3 = this.chain.getWeb3(); - return new web3.eth.Contract(EXTENDED_ENTROPY_ABI, this.address); + const client = this.chain.getPublicClient(); + return getContract({ + address: this.address as `0x${string}`, + abi: EXTENDED_ENTROPY_ABI, + client, + }); } async getDefaultProvider(): Promise { const contract = this.getContract(); - return await contract.methods.getDefaultProvider().call(); + return (await contract.read.getDefaultProvider([])) as Promise; } async getProviderInfo(address: string): Promise { const contract = this.getContract(); - const info: EntropyProviderInfo = await contract.methods - .getProviderInfo(address) - .call(); + const info = (await contract.read.getProviderInfo([ + address, + ])) as EntropyProviderInfo; return { ...info, - uri: Web3.utils.toAscii(info.uri), + uri: hexToString(info.uri as `0x${string}`), }; } @@ -289,7 +318,10 @@ export class EvmEntropyContract extends Storable { sequenceNumber: number, ): Promise { const contract = this.getContract(); - return contract.methods.getRequest(provider, sequenceNumber).call(); + return contract.read.getRequest([ + provider, + sequenceNumber, + ]) as Promise; } /** @@ -306,16 +338,23 @@ export class EvmEntropyContract extends Storable { sequenceNumber: number, block: number, ): Promise { - const contract = this.getContract(); - const result = await contract.getPastEvents("RequestedWithCallback", { - fromBlock: block, - toBlock: block, - filter: { - provider, - sequenceNumber: sequenceNumber, + const publicClient = this.chain.getPublicClient(); + const logs = await publicClient.getContractEvents({ + address: this.address as `0x${string}`, + abi: EXTENDED_ENTROPY_ABI, + eventName: "RequestedWithCallback", + fromBlock: BigInt(block), + toBlock: BigInt(block), + args: { + provider: provider as `0x${string}`, + sequenceNumber: BigInt(sequenceNumber), }, }); - return result[0].returnValues.userRandomNumber; + if (logs.length === 0) { + throw new Error("No RequestedWithCallback event found"); + } + // eslint-disable-next-line @typescript-eslint/no-explicit-any + return (logs[0] as any).args.userRandomNumber; } /** @@ -333,29 +372,38 @@ export class EvmEntropyContract extends Storable { sequenceNumber: number, senderPrivateKey: PrivateKey, ) { - const web3 = this.chain.getWeb3(); - // can not use `this.getContract()` because it uses another web3 instance without the wallet - const contract = new web3.eth.Contract(EXTENDED_ENTROPY_ABI, this.address); - const { address } = web3.eth.accounts.wallet.add(senderPrivateKey); - const transactionObject = contract.methods.revealWithCallback( - provider, - sequenceNumber, - userRandomNumber, - providerRevelation, - ); - return this.chain.estiamteAndSendTransaction(transactionObject, { - from: address, + const walletClient = this.chain.getWalletClient(senderPrivateKey); + const contract = getContract({ + address: this.address as `0x${string}`, + abi: EXTENDED_ENTROPY_ABI, + client: { public: this.chain.getPublicClient(), wallet: walletClient }, }); + + const hash = await contract.write.revealWithCallback( + [ + provider as `0x${string}`, + BigInt(sequenceNumber), + userRandomNumber as `0x${string}`, + providerRevelation as `0x${string}`, + ], + // eslint-disable-next-line @typescript-eslint/no-explicit-any + {} as any, + ); + + const publicClient = this.chain.getPublicClient(); + const receipt = await publicClient.waitForTransactionReceipt({ hash }); + return receipt; } generateUserRandomNumber() { - const web3 = this.chain.getWeb3(); - return web3.utils.randomHex(32); + const randomBytes = new Uint8Array(32); + crypto.getRandomValues(randomBytes); + return toHex(randomBytes); } async getFee(provider: string): Promise { const contract = this.getContract(); - return await contract.methods.getFee(provider).call(); + return Number(await contract.read.getFee([provider])); } async requestRandomness( @@ -364,31 +412,43 @@ export class EvmEntropyContract extends Storable { senderPrivateKey: PrivateKey, withCallback?: boolean, ) { - const web3 = this.chain.getWeb3(); - const userCommitment = web3.utils.keccak256(userRandomNumber); - const contract = new web3.eth.Contract(EXTENDED_ENTROPY_ABI, this.address); - const fee = await contract.methods.getFee(provider).call(); - const { address } = web3.eth.accounts.wallet.add(senderPrivateKey); + const userCommitment = keccak256(userRandomNumber as `0x${string}`); + const walletClient = this.chain.getWalletClient(senderPrivateKey); + const publicClient = this.chain.getPublicClient(); + + const readContract = getContract({ + address: this.address as `0x${string}`, + abi: EXTENDED_ENTROPY_ABI, + client: publicClient, + }); - let transactionObject; + // eslint-disable-next-line @typescript-eslint/no-explicit-any + const fee = (await readContract.read.getFee([provider])) as any as bigint; + + const contract = getContract({ + address: this.address as `0x${string}`, + abi: EXTENDED_ENTROPY_ABI, + client: { public: publicClient, wallet: walletClient }, + }); + + let hash; if (withCallback) { - transactionObject = contract.methods.requestWithCallback( - provider, - userCommitment, + hash = await contract.write.requestWithCallback( + [provider as `0x${string}`, userCommitment], + // eslint-disable-next-line @typescript-eslint/no-explicit-any + { value: fee } as any, ); } else { const useBlockHash = false; - transactionObject = contract.methods.request( - provider, - userCommitment, - useBlockHash, + hash = await contract.write.request( + [provider as `0x${string}`, userCommitment, useBlockHash], + // eslint-disable-next-line @typescript-eslint/no-explicit-any + { value: fee } as any, ); } - return this.chain.estiamteAndSendTransaction(transactionObject, { - from: address, - value: fee, - }); + const receipt = await publicClient.waitForTransactionReceipt({ hash }); + return receipt; } async revealRandomness( @@ -398,23 +458,32 @@ export class EvmEntropyContract extends Storable { sequenceNumber: string, senderPrivateKey: PrivateKey, ) { - const web3 = this.chain.getWeb3(); - const contract = new web3.eth.Contract(EXTENDED_ENTROPY_ABI, this.address); - const { address } = web3.eth.accounts.wallet.add(senderPrivateKey); - const transactionObject = contract.methods.reveal( - provider, - sequenceNumber, - userRevelation, - providerRevelation, - ); - return this.chain.estiamteAndSendTransaction(transactionObject, { - from: address, + const walletClient = this.chain.getWalletClient(senderPrivateKey); + const contract = getContract({ + address: this.address as `0x${string}`, + abi: EXTENDED_ENTROPY_ABI, + client: { public: this.chain.getPublicClient(), wallet: walletClient }, }); + + const hash = await contract.write.reveal( + [ + provider as `0x${string}`, + BigInt(sequenceNumber), + userRevelation as `0x${string}`, + providerRevelation as `0x${string}`, + ], + // eslint-disable-next-line @typescript-eslint/no-explicit-any + {} as any, + ); + + const publicClient = this.chain.getPublicClient(); + const receipt = await publicClient.waitForTransactionReceipt({ hash }); + return receipt; } async getAccruedPythFees(): Promise { const contract = this.getContract(); - return await contract.methods.getAccruedPythFees().call(); + return (await contract.read.getAccruedPythFees([])) as Promise; } } @@ -445,11 +514,12 @@ export class EvmExecutorContract extends Storable { } async getWormholeContract(): Promise { - const web3 = this.chain.getWeb3(); - //Unfortunately, there is no public method to get the wormhole address - //Found 251 by using `forge build --extra-output storageLayout` and finding the slot for the wormhole variable. - let address = await web3.eth.getStorageAt(this.address, 251); - address = "0x" + address.slice(26); + const client = this.chain.getPublicClient(); + let address = await client.getStorageAt({ + address: this.address as `0x${string}`, + slot: toHex(251), + }); + address = "0x" + address!.slice(26); return new EvmWormholeContract(this.chain, address); } @@ -465,22 +535,26 @@ export class EvmExecutorContract extends Storable { } getContract() { - const web3 = this.chain.getWeb3(); - return new web3.eth.Contract(EXECUTOR_ABI, this.address); + const client = this.chain.getPublicClient(); + return getContract({ + address: this.address as `0x${string}`, + abi: EXECUTOR_ABI, + client, + }); } async getLastExecutedGovernanceSequence() { - return await this.getContract().methods.getLastExecutedSequence().call(); + return Number(await this.getContract().read.lastExecutedSequence([])); } async getGovernanceDataSource(): Promise { const executorContract = this.getContract(); - const ownerEmitterAddress = await executorContract.methods - .getOwnerEmitterAddress() - .call(); - const ownerEmitterChainid = await executorContract.methods - .getOwnerChainId() - .call(); + const ownerEmitterAddress = + (await executorContract.read.governanceDataSourceEmitterAddress( + [], + )) as `0x${string}`; + const ownerEmitterChainid = + await executorContract.read.governanceDataSourceChainId([]); return { emitterChain: Number(ownerEmitterChainid), emitterAddress: ownerEmitterAddress.replace("0x", ""), @@ -492,24 +566,30 @@ export class EvmExecutorContract extends Storable { */ async getOwner(): Promise { const contract = this.getContract(); - return contract.methods.owner().call(); + return contract.read.owner([]) as Promise; } async executeGovernanceInstruction( senderPrivateKey: PrivateKey, vaa: Buffer, ) { - const web3 = this.chain.getWeb3(); - const { address } = web3.eth.accounts.wallet.add(senderPrivateKey); - const executorContract = new web3.eth.Contract(EXECUTOR_ABI, this.address); - const transactionObject = executorContract.methods.execute( - "0x" + vaa.toString("hex"), - ); - const result = await this.chain.estiamteAndSendTransaction( - transactionObject, - { from: address }, + const walletClient = this.chain.getWalletClient(senderPrivateKey); + const contract = getContract({ + address: this.address as `0x${string}`, + abi: EXECUTOR_ABI, + client: { public: this.chain.getPublicClient(), wallet: walletClient }, + }); + + const hash = await contract.write.execute( + [("0x" + vaa.toString("hex")) as `0x${string}`], + // eslint-disable-next-line @typescript-eslint/no-explicit-any + {} as any, ); - return { id: result.transactionHash, info: result }; + + const publicClient = this.chain.getPublicClient(); + const receipt = await publicClient.waitForTransactionReceipt({ hash }); + + return { id: hash, info: receipt }; } } @@ -544,32 +624,38 @@ export class EvmPriceFeedContract extends PriceFeedContract { async getVersion(): Promise { const pythContract = this.getContract(); - const result = await pythContract.methods.version().call(); - return result; + return pythContract.read.version([]) as Promise; } getContract() { - const web3 = this.chain.getWeb3(); - const pythContract = new web3.eth.Contract(EXTENDED_PYTH_ABI, this.address); - return pythContract; + const client = this.chain.getPublicClient(); + return getContract({ + address: this.address as `0x${string}`, + abi: EXTENDED_PYTH_ABI, + client, + }); } /** * Returns the bytecode of the contract in hex format */ async getCode(): Promise { - // TODO: handle proxy contracts - const web3 = this.chain.getWeb3(); - return web3.eth.getCode(this.address); + const client = this.chain.getPublicClient(); + const code = await client.getCode({ + address: this.address as `0x${string}`, + }); + return code || "0x"; } async getImplementationAddress(): Promise { - const web3 = this.chain.getWeb3(); - // bytes32(uint256(keccak256('eip1967.proxy.implementation')) - 1) according to EIP-1967 + const client = this.chain.getPublicClient(); const storagePosition = "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"; - let address = await web3.eth.getStorageAt(this.address, storagePosition); - address = "0x" + address.slice(26); + let address = await client.getStorageAt({ + address: this.address as `0x${string}`, + slot: storagePosition as `0x${string}`, + }); + address = "0x" + address!.slice(26); return address; } @@ -577,22 +663,17 @@ export class EvmPriceFeedContract extends PriceFeedContract { * Returns the keccak256 digest of the contract bytecode */ async getCodeDigestWithoutAddress(): Promise { - return getCodeDigestWithoutAddress(this.chain.getWeb3(), this.address); + return getCodeDigestWithoutAddress( + this.chain.getPublicClient(), + this.address, + ); } async getTotalFee(): Promise { - let web3: Web3; - let amount = BigInt(0); - try { - web3 = this.chain.getWeb3(); - amount = BigInt(await web3.eth.getBalance(this.address)); - } catch (error) { - console.error( - "Error getting balance with given RPC, moving to viem default RPC", - ); - web3 = this.chain.getViemDefaultWeb3(); - amount = BigInt(await web3.eth.getBalance(this.address)); - } + const client = this.chain.getPublicClient(); + const amount = await client.getBalance({ + address: this.address as `0x${string}`, + }); return { amount, denom: this.chain.getNativeToken(), @@ -600,25 +681,34 @@ export class EvmPriceFeedContract extends PriceFeedContract { } async getLastExecutedGovernanceSequence() { - const pythContract = await this.getContract(); - return Number( - await pythContract.methods.lastExecutedGovernanceSequence().call(), - ); + const pythContract = this.getContract(); + return Number(await pythContract.read.lastExecutedGovernanceSequence([])); } async getPriceFeed(feedId: string) { const pythContract = this.getContract(); - const feed = "0x" + feedId; - const exists = await pythContract.methods.priceFeedExists(feed).call(); + const feed = ("0x" + feedId) as `0x${string}`; + const exists = await pythContract.read.priceFeedExists([feed]); if (!exists) { return undefined; } - const [price, conf, expo, publishTime] = await pythContract.methods - .getPriceUnsafe(feed) - .call(); - - const [emaPrice, emaConf, emaExpo, emaPublishTime] = - await pythContract.methods.getEmaPriceUnsafe(feed).call(); + // eslint-disable-next-line @typescript-eslint/no-explicit-any + const priceData = (await pythContract.read.getPriceUnsafe([feed])) as any; + const [price, conf, expo, publishTime] = [ + priceData[0], + priceData[1], + priceData[2], + priceData[3], + ]; + + // eslint-disable-next-line @typescript-eslint/no-explicit-any + const emaData = (await pythContract.read.getEmaPriceUnsafe([feed])) as any; + const [emaPrice, emaConf, emaExpo, emaPublishTime] = [ + emaData[0], + emaData[1], + emaData[2], + emaData[3], + ]; return { price: { price, conf, expo, publishTime }, emaPrice: { @@ -632,7 +722,7 @@ export class EvmPriceFeedContract extends PriceFeedContract { async getValidTimePeriod() { const pythContract = this.getContract(); - const result = await pythContract.methods.getValidTimePeriod().call(); + const result = await pythContract.read.getValidTimePeriod([]); return Number(result); } @@ -641,19 +731,24 @@ export class EvmPriceFeedContract extends PriceFeedContract { */ async getWormholeContract(): Promise { const pythContract = this.getContract(); - const address = await pythContract.methods.wormhole().call(); + // eslint-disable-next-line @typescript-eslint/no-explicit-any + const address = (await pythContract.read.wormhole([])) as any as string; return new EvmWormholeContract(this.chain, address); } - async getBaseUpdateFee() { + async getBaseUpdateFee(): Promise<{ amount: string }> { const pythContract = this.getContract(); - const result = await pythContract.methods.singleUpdateFeeInWei().call(); - return { amount: result }; + const result = (await pythContract.read.singleUpdateFeeInWei( + [], + // eslint-disable-next-line @typescript-eslint/no-explicit-any + )) as any as bigint; + return { amount: result.toString() }; } async getDataSources(): Promise { const pythContract = this.getContract(); - const result = await pythContract.methods.validDataSources().call(); + // eslint-disable-next-line @typescript-eslint/no-explicit-any + const result = (await pythContract.read.validDataSources([])) as any[]; return result.map( ({ chainId, @@ -672,9 +767,9 @@ export class EvmPriceFeedContract extends PriceFeedContract { async getGovernanceDataSource(): Promise { const pythContract = this.getContract(); - const [chainId, emitterAddress] = await pythContract.methods - .governanceDataSource() - .call(); + // eslint-disable-next-line @typescript-eslint/no-explicit-any + const result = (await pythContract.read.governanceDataSource([])) as any[]; + const [chainId, emitterAddress] = result; return { emitterChain: Number(chainId), emitterAddress: emitterAddress.replace("0x", ""), @@ -682,37 +777,61 @@ export class EvmPriceFeedContract extends PriceFeedContract { } async executeUpdatePriceFeed(senderPrivateKey: PrivateKey, vaas: Buffer[]) { - const web3 = this.chain.getWeb3(); - const { address } = web3.eth.accounts.wallet.add(senderPrivateKey); - const pythContract = new web3.eth.Contract(EXTENDED_PYTH_ABI, this.address); - const priceFeedUpdateData = vaas.map((vaa) => "0x" + vaa.toString("hex")); - const updateFee = await pythContract.methods - .getUpdateFee(priceFeedUpdateData) - .call(); - const transactionObject = - pythContract.methods.updatePriceFeeds(priceFeedUpdateData); - const result = await this.chain.estiamteAndSendTransaction( - transactionObject, - { from: address, value: updateFee }, + const walletClient = this.chain.getWalletClient(senderPrivateKey); + const publicClient = this.chain.getPublicClient(); + + const priceFeedUpdateData = vaas.map( + (vaa) => ("0x" + vaa.toString("hex")) as `0x${string}`, + ); + + const readContract = getContract({ + address: this.address as `0x${string}`, + abi: EXTENDED_PYTH_ABI, + client: publicClient, + }); + + const updateFee = (await readContract.read.getUpdateFee([ + priceFeedUpdateData, + // eslint-disable-next-line @typescript-eslint/no-explicit-any + ])) as any as bigint; + + const contract = getContract({ + address: this.address as `0x${string}`, + abi: EXTENDED_PYTH_ABI, + client: { public: publicClient, wallet: walletClient }, + }); + + const hash = await contract.write.updatePriceFeeds( + [priceFeedUpdateData], + // eslint-disable-next-line @typescript-eslint/no-explicit-any + { value: updateFee } as any, ); - return { id: result.transactionHash, info: result }; + + const receipt = await publicClient.waitForTransactionReceipt({ hash }); + return { id: hash, info: receipt }; } async executeGovernanceInstruction( senderPrivateKey: PrivateKey, vaa: Buffer, ) { - const web3 = this.chain.getWeb3(); - const { address } = web3.eth.accounts.wallet.add(senderPrivateKey); - const pythContract = new web3.eth.Contract(EXTENDED_PYTH_ABI, this.address); - const transactionObject = pythContract.methods.executeGovernanceInstruction( - "0x" + vaa.toString("hex"), - ); - const result = await this.chain.estiamteAndSendTransaction( - transactionObject, - { from: address }, + const walletClient = this.chain.getWalletClient(senderPrivateKey); + const publicClient = this.chain.getPublicClient(); + const contract = getContract({ + address: this.address as `0x${string}`, + abi: EXTENDED_PYTH_ABI, + client: { public: publicClient, wallet: walletClient }, + }); + + const hash = await contract.write.executeGovernanceInstruction( + [("0x" + vaa.toString("hex")) as `0x${string}`], + // eslint-disable-next-line @typescript-eslint/no-explicit-any + {} as any, ); - return { id: result.transactionHash, info: result }; + + const receipt = await publicClient.waitForTransactionReceipt({ hash }); + + return { id: hash, info: receipt }; } getChain(): EvmChain { @@ -760,8 +879,12 @@ export class EvmPulseContract extends Storable { } getContract() { - const web3 = this.chain.getWeb3(); - return new web3.eth.Contract(PULSE_UPGRADEABLE_ABI, this.address); + const client = this.chain.getPublicClient(); + return getContract({ + address: this.address as `0x${string}`, + abi: PULSE_UPGRADEABLE_ABI, + client, + }); } static fromJson( @@ -784,7 +907,7 @@ export class EvmPulseContract extends Storable { async getOwner(): Promise { const contract = this.getContract(); - return contract.methods.owner().call(); + return contract.read.owner([]) as Promise; } async getExecutorContract(): Promise { @@ -794,17 +917,21 @@ export class EvmPulseContract extends Storable { async getPythFeeInWei(): Promise { const contract = this.getContract(); - return contract.methods.getPythFeeInWei().call(); + return contract.read.getPythFeeInWei([]) as Promise; } async getFee(callbackGasLimit: number): Promise { const contract = this.getContract(); - return contract.methods.getFee(callbackGasLimit).call(); + const result = (await contract.read.getFee([ + callbackGasLimit, + // eslint-disable-next-line @typescript-eslint/no-explicit-any + ])) as any as bigint; + return result.toString(); } async getAccruedFees(): Promise { const contract = this.getContract(); - return contract.methods.getAccruedFees().call(); + return contract.read.getAccruedFees([]) as Promise; } async getRequest(sequenceNumber: number): Promise<{ @@ -815,12 +942,13 @@ export class EvmPulseContract extends Storable { requester: string; }> { const contract = this.getContract(); - return contract.methods.getRequest(sequenceNumber).call(); + // eslint-disable-next-line @typescript-eslint/no-explicit-any + return contract.read.getRequest([sequenceNumber]) as any; } async getDefaultProvider(): Promise { const contract = this.getContract(); - return contract.methods.getDefaultProvider().call(); + return contract.read.getDefaultProvider([]) as Promise; } async getProviderInfo(provider: string): Promise<{ @@ -828,12 +956,13 @@ export class EvmPulseContract extends Storable { accruedFeesInWei: string; }> { const contract = this.getContract(); - return contract.methods.getProviderInfo(provider).call(); + // eslint-disable-next-line @typescript-eslint/no-explicit-any + return contract.read.getProviderInfo([provider as `0x${string}`]) as any; } async getExclusivityPeriod(): Promise { const contract = this.getContract(); - return contract.methods.getExclusivityPeriod().call(); + return contract.read.getExclusivityPeriod([]) as Promise; } async getFirstActiveRequests(count: number): Promise<{ @@ -847,7 +976,8 @@ export class EvmPulseContract extends Storable { actualCount: number; }> { const contract = this.getContract(); - return contract.methods.getFirstActiveRequests(count).call(); + // eslint-disable-next-line @typescript-eslint/no-explicit-any + return contract.read.getFirstActiveRequests([count]) as any; } async requestPriceUpdatesWithCallback( @@ -856,22 +986,29 @@ export class EvmPulseContract extends Storable { priceIds: string[], callbackGasLimit: number, ) { - const web3 = this.chain.getWeb3(); - const { address } = web3.eth.accounts.wallet.add(senderPrivateKey); - const contract = new web3.eth.Contract(PULSE_UPGRADEABLE_ABI, this.address); + const walletClient = this.chain.getWalletClient(senderPrivateKey); + const publicClient = this.chain.getPublicClient(); + const contract = getContract({ + address: this.address as `0x${string}`, + abi: PULSE_UPGRADEABLE_ABI, + client: { public: publicClient, wallet: walletClient }, + }); const fee = await this.getFee(callbackGasLimit); - const transactionObject = contract.methods.requestPriceUpdatesWithCallback( - publishTime, - priceIds, - callbackGasLimit, - ); - const result = await this.chain.estiamteAndSendTransaction( - transactionObject, - { from: address, value: fee }, + const hash = await contract.write.requestPriceUpdatesWithCallback( + [ + publishTime, + priceIds.map((id) => id as `0x${string}`), + callbackGasLimit, + ], + // eslint-disable-next-line @typescript-eslint/no-explicit-any + { value: BigInt(fee) } as any, ); - return { id: result.transactionHash, info: result }; + + const receipt = await publicClient.waitForTransactionReceipt({ hash }); + + return { id: hash, info: receipt }; } async executeCallback( @@ -880,27 +1017,36 @@ export class EvmPulseContract extends Storable { updateData: string[], priceIds: string[], ) { - const web3 = this.chain.getWeb3(); - const { address } = web3.eth.accounts.wallet.add(senderPrivateKey); - const contract = new web3.eth.Contract(PULSE_UPGRADEABLE_ABI, this.address); + const walletClient = this.chain.getWalletClient(senderPrivateKey); + const publicClient = this.chain.getPublicClient(); + const contract = getContract({ + address: this.address as `0x${string}`, + abi: PULSE_UPGRADEABLE_ABI, + client: { public: publicClient, wallet: walletClient }, + }); - const transactionObject = contract.methods.executeCallback( - sequenceNumber, - updateData, - priceIds, + const hash = await contract.write.executeCallback( + [ + sequenceNumber, + updateData.map((d) => d as `0x${string}`), + priceIds.map((id) => id as `0x${string}`), + ], + // eslint-disable-next-line @typescript-eslint/no-explicit-any + {} as any, ); - const result = await this.chain.estiamteAndSendTransaction( - transactionObject, - { from: address }, - ); - return { id: result.transactionHash, info: result }; + const receipt = await publicClient.waitForTransactionReceipt({ hash }); + + return { id: hash, info: receipt }; } // Admin functions async generateSetFeeManagerPayload(manager: string): Promise { - const contract = this.getContract(); - const data = contract.methods.setFeeManager(manager).encodeABI(); + const data = encodeFunctionData({ + abi: PULSE_UPGRADEABLE_ABI, + functionName: "setFeeManager", + args: [manager], + }); return this.chain.generateExecutorPayload( await this.getOwner(), this.address, @@ -909,8 +1055,11 @@ export class EvmPulseContract extends Storable { } async generateSetDefaultProviderPayload(provider: string): Promise { - const contract = this.getContract(); - const data = contract.methods.setDefaultProvider(provider).encodeABI(); + const data = encodeFunctionData({ + abi: PULSE_UPGRADEABLE_ABI, + functionName: "setDefaultProvider", + args: [provider], + }); return this.chain.generateExecutorPayload( await this.getOwner(), this.address, @@ -921,10 +1070,11 @@ export class EvmPulseContract extends Storable { async generateSetExclusivityPeriodPayload( periodSeconds: number, ): Promise { - const contract = this.getContract(); - const data = contract.methods - .setExclusivityPeriod(periodSeconds) - .encodeABI(); + const data = encodeFunctionData({ + abi: PULSE_UPGRADEABLE_ABI, + functionName: "setExclusivityPeriod", + args: [periodSeconds], + }); return this.chain.generateExecutorPayload( await this.getOwner(), this.address, @@ -970,34 +1120,43 @@ export class EvmLazerContract extends Storable { } getContract() { - const web3 = this.chain.getWeb3(); - return new web3.eth.Contract(LAZER_ABI, this.address); + const client = this.chain.getPublicClient(); + return getContract({ + address: this.address as `0x${string}`, + abi: LAZER_ABI, + client, + }); } async getVersion(): Promise { const contract = this.getContract(); - return await contract.methods.version().call(); + return (await contract.read.version([])) as Promise; } async getOwner(): Promise { const contract = this.getContract(); - return contract.methods.owner().call(); + return contract.read.owner([]) as Promise; + } + + async getTrustedSigner(): Promise<{ + signer: string; + expiresAt: string; + }> { + const contract = this.getContract(); + // eslint-disable-next-line @typescript-eslint/no-explicit-any + return contract.read.trustedSigner([]) as any; } async generateUpdateTrustedSignerPayload( trustedSigner: string, expiresAt: number, ): Promise { - // Executor contract is the owner of the PythLazer contract const executorAddress = await this.getOwner(); - const web3 = this.chain.getWeb3(); - const executorContract = new web3.eth.Contract( - EXECUTOR_ABI, - executorAddress, - ); - const data = executorContract.methods - .updateTrustedSigner(trustedSigner, expiresAt) - .encodeABI(); + const data = encodeFunctionData({ + abi: EXECUTOR_ABI, + functionName: "updateTrustedSigner", + args: [trustedSigner, expiresAt], + }); return this.chain.generateExecutorPayload( executorAddress, this.address, @@ -1017,24 +1176,34 @@ export class EvmLazerContract extends Storable { expiresAt: number, privateKey: PrivateKey, ): Promise { - const web3 = this.chain.getWeb3(); - const contract = this.getContract(); + const walletClient = this.chain.getWalletClient(privateKey); + const publicClient = this.chain.getPublicClient(); + + const contract = getContract({ + address: this.address as `0x${string}`, + abi: LAZER_ABI, + client: { public: publicClient, wallet: walletClient }, + }); - const account = web3.eth.accounts.privateKeyToAccount(privateKey); - const gasEstimate = await contract.methods - .updateTrustedSigner(trustedSigner, expiresAt) - .estimateGas({ from: account.address }); + const gasEstimate = await publicClient.estimateContractGas({ + address: this.address as `0x${string}`, + abi: LAZER_ABI, + functionName: "updateTrustedSigner", + args: [trustedSigner as `0x${string}`, expiresAt], + account: walletClient.account, + }); + + const hash = await contract.write.updateTrustedSigner( + [trustedSigner as `0x${string}`, expiresAt], + // eslint-disable-next-line @typescript-eslint/no-explicit-any + { gas: BigInt(Math.floor(Number(gasEstimate) * 1.2)) } as any, + ); - const tx = await contract.methods - .updateTrustedSigner(trustedSigner, expiresAt) - .send({ - from: account.address, - gas: Math.floor(gasEstimate * 1.2), // 20% buffer - }); + const receipt = await publicClient.waitForTransactionReceipt({ hash }); console.log( `✅ Updated trusted signer ${trustedSigner} with expiration ${expiresAt}`, ); - console.log(`Transaction hash: ${tx.transactionHash}`); + console.log(`Transaction hash: ${receipt.transactionHash}`); } } diff --git a/contract_manager/store/contracts/AptosPriceFeedContracts.json b/contract_manager/store/contracts/AptosPriceFeedContracts.json index c9bfd56cec..6bfad9972d 100644 --- a/contract_manager/store/contracts/AptosPriceFeedContracts.json +++ b/contract_manager/store/contracts/AptosPriceFeedContracts.json @@ -41,4 +41,4 @@ "wormholeStateId": "0x9236893d6444b208b7e0b3e8d4be4ace90b6d17817ab7d1584e46a33ef5c50c9", "type": "AptosPriceFeedContract" } -] \ No newline at end of file +] diff --git a/contract_manager/store/contracts/AptosWormholeContracts.json b/contract_manager/store/contracts/AptosWormholeContracts.json index 21a5956716..37ea870cf4 100644 --- a/contract_manager/store/contracts/AptosWormholeContracts.json +++ b/contract_manager/store/contracts/AptosWormholeContracts.json @@ -34,4 +34,4 @@ "address": "0x9236893d6444b208b7e0b3e8d4be4ace90b6d17817ab7d1584e46a33ef5c50c9", "type": "AptosWormholeContract" } -] \ No newline at end of file +] diff --git a/contract_manager/store/contracts/CosmWasmPriceFeedContracts.json b/contract_manager/store/contracts/CosmWasmPriceFeedContracts.json index 24b9dfc989..9f0a263a77 100644 --- a/contract_manager/store/contracts/CosmWasmPriceFeedContracts.json +++ b/contract_manager/store/contracts/CosmWasmPriceFeedContracts.json @@ -84,4 +84,4 @@ "address": "xion18nsqwhfwnqzs4vkxdr02x40awm0gz9pl0wn4ecsl8qqra2vxqppq57qx5a", "type": "CosmWasmPriceFeedContract" } -] \ No newline at end of file +] diff --git a/contract_manager/store/contracts/CosmWasmWormholeContracts.json b/contract_manager/store/contracts/CosmWasmWormholeContracts.json index bad10ec503..af11c12009 100644 --- a/contract_manager/store/contracts/CosmWasmWormholeContracts.json +++ b/contract_manager/store/contracts/CosmWasmWormholeContracts.json @@ -84,4 +84,4 @@ "address": "xion1zfdqgkd9lcqwc4ywkeg2pr2v2p5xxa7n2s9layq2623pvhp4xv0sr4659c", "type": "CosmWasmWormholeContract" } -] \ No newline at end of file +] diff --git a/contract_manager/store/contracts/EvmEntropyContracts.json b/contract_manager/store/contracts/EvmEntropyContracts.json index ff3e378f76..d119e5d851 100644 --- a/contract_manager/store/contracts/EvmEntropyContracts.json +++ b/contract_manager/store/contracts/EvmEntropyContracts.json @@ -204,4 +204,4 @@ "address": "0x8D254a21b3C86D32F7179855531CE99164721933", "type": "EvmEntropyContract" } -] \ No newline at end of file +] diff --git a/contract_manager/store/contracts/EvmExecutorContracts.json b/contract_manager/store/contracts/EvmExecutorContracts.json index 38f0156e33..95e2b33fec 100644 --- a/contract_manager/store/contracts/EvmExecutorContracts.json +++ b/contract_manager/store/contracts/EvmExecutorContracts.json @@ -239,4 +239,4 @@ "address": "0x36825bf3Fbdf5a29E2d5148bfe7Dcf7B5639e320", "type": "EvmExecutorContract" } -] \ No newline at end of file +] diff --git a/contract_manager/store/contracts/EvmPriceFeedContracts.json b/contract_manager/store/contracts/EvmPriceFeedContracts.json index 86c7ae072e..2346d3fcd4 100644 --- a/contract_manager/store/contracts/EvmPriceFeedContracts.json +++ b/contract_manager/store/contracts/EvmPriceFeedContracts.json @@ -889,4 +889,4 @@ "address": "0x36825bf3Fbdf5a29E2d5148bfe7Dcf7B5639e320", "type": "EvmPriceFeedContract" } -] \ No newline at end of file +] diff --git a/contract_manager/store/contracts/EvmWormholeContracts.json b/contract_manager/store/contracts/EvmWormholeContracts.json index b7ef9df184..5bd4645a53 100644 --- a/contract_manager/store/contracts/EvmWormholeContracts.json +++ b/contract_manager/store/contracts/EvmWormholeContracts.json @@ -899,4 +899,4 @@ "address": "0x2880aB155794e7179c9eE2e38200202908C17B43", "type": "EvmWormholeContract" } -] \ No newline at end of file +] diff --git a/contract_manager/store/contracts/FuelWormholeContracts.json b/contract_manager/store/contracts/FuelWormholeContracts.json index 5343669f8c..325b5cead6 100644 --- a/contract_manager/store/contracts/FuelWormholeContracts.json +++ b/contract_manager/store/contracts/FuelWormholeContracts.json @@ -9,4 +9,4 @@ "address": "0x1c86fdd9e0e7bc0d2ae1bf6817ef4834ffa7247655701ee1b031b52a24c523da", "type": "FuelWormholeContract" } -] \ No newline at end of file +] diff --git a/contract_manager/store/contracts/IotaPriceFeedContracts.json b/contract_manager/store/contracts/IotaPriceFeedContracts.json index 88c652f2e6..e0a9a7fe2c 100644 --- a/contract_manager/store/contracts/IotaPriceFeedContracts.json +++ b/contract_manager/store/contracts/IotaPriceFeedContracts.json @@ -11,4 +11,4 @@ "wormholeStateId": "0xd43b448afc9dd01deb18273ec39d8f27ddd4dd46b0922383874331771b70df73", "type": "IotaPriceFeedContract" } -] \ No newline at end of file +] diff --git a/contract_manager/store/contracts/IotaWormholeContracts.json b/contract_manager/store/contracts/IotaWormholeContracts.json index 451f319f0d..c87ae77471 100644 --- a/contract_manager/store/contracts/IotaWormholeContracts.json +++ b/contract_manager/store/contracts/IotaWormholeContracts.json @@ -9,4 +9,4 @@ "stateId": "0xd43b448afc9dd01deb18273ec39d8f27ddd4dd46b0922383874331771b70df73", "type": "IotaWormholeContract" } -] \ No newline at end of file +] diff --git a/contract_manager/store/contracts/NearPriceFeedContracts.json b/contract_manager/store/contracts/NearPriceFeedContracts.json index 8322715a61..c2008c3fae 100644 --- a/contract_manager/store/contracts/NearPriceFeedContracts.json +++ b/contract_manager/store/contracts/NearPriceFeedContracts.json @@ -15,4 +15,4 @@ "lastExecutedGovernanceSequence": 100, "type": "NearPriceFeedContract" } -] \ No newline at end of file +] diff --git a/contract_manager/store/contracts/NearWormholeContracts.json b/contract_manager/store/contracts/NearWormholeContracts.json index 86aed1e88f..bcb4b846dc 100644 --- a/contract_manager/store/contracts/NearWormholeContracts.json +++ b/contract_manager/store/contracts/NearWormholeContracts.json @@ -9,4 +9,4 @@ "address": "wormhole.wormhole.testnet", "type": "NearWormholeContract" } -] \ No newline at end of file +] diff --git a/contract_manager/store/contracts/StarknetPriceFeedContracts.json b/contract_manager/store/contracts/StarknetPriceFeedContracts.json index bf64213c09..8854ad5c1e 100644 --- a/contract_manager/store/contracts/StarknetPriceFeedContracts.json +++ b/contract_manager/store/contracts/StarknetPriceFeedContracts.json @@ -9,4 +9,4 @@ "address": "0x062ab68d8e23a7aa0d5bf4d25380c2d54f2dd8f83012e047851c3706b53d64d1", "type": "StarknetPriceFeedContract" } -] \ No newline at end of file +] diff --git a/contract_manager/store/contracts/StarknetWormholeContracts.json b/contract_manager/store/contracts/StarknetWormholeContracts.json index 8ff62ffbbf..991ed74044 100644 --- a/contract_manager/store/contracts/StarknetWormholeContracts.json +++ b/contract_manager/store/contracts/StarknetWormholeContracts.json @@ -9,4 +9,4 @@ "address": "0x06fb1af6d323188105e6f10212316139dbe71650e1703af35331ceaad7aaf3bd", "type": "StarknetWormholeContract" } -] \ No newline at end of file +] diff --git a/contract_manager/store/contracts/SuiPriceFeedContracts.json b/contract_manager/store/contracts/SuiPriceFeedContracts.json index 451d3dce6c..5259383b6b 100644 --- a/contract_manager/store/contracts/SuiPriceFeedContracts.json +++ b/contract_manager/store/contracts/SuiPriceFeedContracts.json @@ -17,4 +17,4 @@ "wormholeStateId": "0xcf185fbc1af3a437a600587e0b39e5fede163336ffbb7ff24dca9b6eb19d2656", "type": "SuiPriceFeedContract" } -] \ No newline at end of file +] diff --git a/contract_manager/store/contracts/SuiWormholeContracts.json b/contract_manager/store/contracts/SuiWormholeContracts.json index 9132d7aadb..3908e9c47c 100644 --- a/contract_manager/store/contracts/SuiWormholeContracts.json +++ b/contract_manager/store/contracts/SuiWormholeContracts.json @@ -14,4 +14,4 @@ "stateId": "0xcf185fbc1af3a437a600587e0b39e5fede163336ffbb7ff24dca9b6eb19d2656", "type": "SuiWormholeContract" } -] \ No newline at end of file +] diff --git a/contract_manager/store/contracts/TonPriceFeedContracts.json b/contract_manager/store/contracts/TonPriceFeedContracts.json index 00078df867..05b36f64a1 100644 --- a/contract_manager/store/contracts/TonPriceFeedContracts.json +++ b/contract_manager/store/contracts/TonPriceFeedContracts.json @@ -9,4 +9,4 @@ "address": "EQBU6k8HH6yX4Jf3d18swWbnYr31D3PJI7PgjXT-flsKHqql", "type": "TonPriceFeedContract" } -] \ No newline at end of file +] diff --git a/contract_manager/store/contracts/TonWormholeContracts.json b/contract_manager/store/contracts/TonWormholeContracts.json index a99bec5116..fa83bf329d 100644 --- a/contract_manager/store/contracts/TonWormholeContracts.json +++ b/contract_manager/store/contracts/TonWormholeContracts.json @@ -9,4 +9,4 @@ "address": "EQBU6k8HH6yX4Jf3d18swWbnYr31D3PJI7PgjXT-flsKHqql", "type": "TonWormholeContract" } -] \ No newline at end of file +] From 5cbe403a37d8564080a1c28bddbc191232b87481 Mon Sep 17 00:00:00 2001 From: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Date: Fri, 3 Oct 2025 23:32:43 +0000 Subject: [PATCH 2/2] chore: update pnpm-lock.yaml after removing web3 dependencies Co-Authored-By: Jayant --- pnpm-lock.yaml | 342 ++++++++++++++++++++++++++++++++++--------------- 1 file changed, 237 insertions(+), 105 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 6e89786681..018c2f2918 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1304,7 +1304,7 @@ importers: version: 0.9.36(@solana/web3.js@1.98.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))(bs58@5.0.0)(react-dom@19.1.0(react@19.1.0))(react-native@0.78.2(@babel/core@7.27.1)(@babel/preset-env@7.26.9(@babel/core@7.27.1))(@types/react@19.1.0)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10))(react@19.1.0) '@solana/wallet-adapter-wallets': specifier: 'catalog:' - version: 0.19.33(@babel/runtime@7.27.0)(@react-native-async-storage/async-storage@1.24.0(react-native@0.78.2(@babel/core@7.27.1)(@babel/preset-env@7.26.9(@babel/core@7.27.1))(@types/react@19.1.0)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10)))(@solana/sysvars@2.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2))(@solana/web3.js@1.98.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))(bs58@5.0.0)(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(react-dom@19.1.0(react@19.1.0))(react-native@0.78.2(@babel/core@7.27.1)(@babel/preset-env@7.26.9(@babel/core@7.27.1))(@types/react@19.1.0)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10))(react@19.1.0)(tslib@2.8.1)(typescript@5.8.2)(utf-8-validate@5.0.10)(ws@8.18.3(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.4) + version: 0.19.33(@babel/runtime@7.27.0)(@react-native-async-storage/async-storage@1.24.0(react-native@0.78.2(@babel/core@7.27.1)(@babel/preset-env@7.26.9(@babel/core@7.27.1))(@types/react@19.1.0)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10)))(@solana/sysvars@2.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2))(@solana/web3.js@1.98.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))(bs58@5.0.0)(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(ioredis@5.7.0)(react-dom@19.1.0(react@19.1.0))(react-native@0.78.2(@babel/core@7.27.1)(@babel/preset-env@7.26.9(@babel/core@7.27.1))(@types/react@19.1.0)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10))(react@19.1.0)(tslib@2.8.1)(typescript@5.8.2)(utf-8-validate@5.0.10)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.4) '@solana/web3.js': specifier: 'catalog:' version: 1.98.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) @@ -1540,19 +1540,10 @@ importers: viem: specifier: ^2.23.5 version: 2.24.3(bufferutil@4.0.9)(typescript@5.8.2)(utf-8-validate@5.0.10)(zod@3.24.4) - web3: - specifier: ^1.8.2 - version: 1.10.4(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) - web3-eth-contract: - specifier: ^1.8.2 - version: 1.10.4(encoding@0.1.13) devDependencies: '@types/node': specifier: 'catalog:' version: 22.14.0 - '@types/web3': - specifier: ^1.2.2 - version: 1.2.2(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) eslint: specifier: ^8.0.0 version: 8.56.0 @@ -1884,7 +1875,7 @@ importers: version: 0.9.36(@solana/web3.js@1.98.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))(react-dom@19.1.0(react@19.1.0))(react-native@0.78.2(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@19.1.0)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10))(react@19.1.0) '@solana/wallet-adapter-wallets': specifier: 'catalog:' - version: 0.19.33(@babel/runtime@7.27.0)(@react-native-async-storage/async-storage@1.24.0(react-native@0.78.2(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@19.1.0)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10)))(@solana/sysvars@2.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2))(@solana/web3.js@1.98.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(react-dom@19.1.0(react@19.1.0))(react-native@0.78.2(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@19.1.0)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10))(react@19.1.0)(tslib@2.8.1)(typescript@5.8.2)(utf-8-validate@5.0.10)(ws@8.18.3(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.2) + version: 0.19.33(@babel/runtime@7.27.0)(@react-native-async-storage/async-storage@1.24.0(react-native@0.78.2(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@19.1.0)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10)))(@solana/sysvars@2.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2))(@solana/web3.js@1.98.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(ioredis@5.7.0)(react-dom@19.1.0(react@19.1.0))(react-native@0.78.2(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@19.1.0)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10))(react@19.1.0)(tslib@2.8.1)(typescript@5.8.2)(utf-8-validate@5.0.10)(ws@8.18.3(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.2) '@solana/web3.js': specifier: ^1.73.0 version: 1.98.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) @@ -11130,10 +11121,6 @@ packages: '@types/web3@1.0.20': resolution: {integrity: sha512-KTDlFuYjzCUlBDGt35Ir5QRtyV9klF84MMKUsEJK10sTWga/71V+8VYLT7yysjuBjaOx2uFYtIWNGoz3yrNDlg==} - '@types/web3@1.2.2': - resolution: {integrity: sha512-eFiYJKggNrOl0nsD+9cMh2MLk4zVBfXfGnVeRFbpiZzBE20eet4KLA3fXcjSuHaBn0RnQzwLAGdgzgzdet4C0A==} - deprecated: This is a stub types definition. web3 provides its own type definitions, so you do not need this installed. - '@types/web@0.0.197': resolution: {integrity: sha512-V4sOroWDADFx9dLodWpKm298NOJ1VJ6zoDVgaP+WBb/utWxqQ6gnMzd9lvVDAr/F3ibiKaxH9i45eS0gQPSTaQ==} @@ -26728,6 +26715,17 @@ snapshots: '@ethersproject/properties': 5.8.0 '@ethersproject/strings': 5.8.0 + '@everstake/wallet-sdk-solana@2.0.9(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))': + dependencies: + '@solana-program/compute-budget': 0.6.1(@solana/web3.js@2.0.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))) + '@solana-program/stake': 0.1.0(@solana/web3.js@2.0.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))) + '@solana-program/system': 0.6.2(@solana/web3.js@2.0.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))) + '@solana/web3.js': 2.0.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)) + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + - typescript + - ws + '@everstake/wallet-sdk-solana@2.0.9(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2)(ws@8.18.3(bufferutil@4.0.9)(utf-8-validate@5.0.10))': dependencies: '@solana-program/compute-budget': 0.6.1(@solana/web3.js@2.0.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2)(ws@8.18.3(bufferutil@4.0.9)(utf-8-validate@5.0.10))) @@ -28241,12 +28239,12 @@ snapshots: '@types/yargs': 17.0.33 chalk: 4.1.2 - '@jnwng/walletconnect-solana@0.2.0(@react-native-async-storage/async-storage@1.24.0(react-native@0.78.2(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@19.1.0)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10)))(@solana/web3.js@1.98.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(typescript@5.8.2)(utf-8-validate@5.0.10)(zod@3.24.2)': + '@jnwng/walletconnect-solana@0.2.0(@react-native-async-storage/async-storage@1.24.0(react-native@0.78.2(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@19.1.0)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10)))(@solana/web3.js@1.98.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(ioredis@5.7.0)(typescript@5.8.2)(utf-8-validate@5.0.10)(zod@3.24.2)': dependencies: '@solana/web3.js': 1.98.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) '@walletconnect/qrcode-modal': 1.8.0 - '@walletconnect/sign-client': 2.19.2(@react-native-async-storage/async-storage@1.24.0(react-native@0.78.2(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@19.1.0)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10)))(bufferutil@4.0.9)(typescript@5.8.2)(utf-8-validate@5.0.10)(zod@3.24.2) - '@walletconnect/utils': 2.19.2(@react-native-async-storage/async-storage@1.24.0(react-native@0.78.2(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@19.1.0)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10)))(bufferutil@4.0.9)(typescript@5.8.2)(utf-8-validate@5.0.10)(zod@3.24.2) + '@walletconnect/sign-client': 2.19.2(@react-native-async-storage/async-storage@1.24.0(react-native@0.78.2(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@19.1.0)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10)))(bufferutil@4.0.9)(ioredis@5.7.0)(typescript@5.8.2)(utf-8-validate@5.0.10)(zod@3.24.2) + '@walletconnect/utils': 2.19.2(@react-native-async-storage/async-storage@1.24.0(react-native@0.78.2(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@19.1.0)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10)))(bufferutil@4.0.9)(ioredis@5.7.0)(typescript@5.8.2)(utf-8-validate@5.0.10)(zod@3.24.2) bs58: 5.0.0 transitivePeerDependencies: - '@azure/app-configuration' @@ -28272,11 +28270,11 @@ snapshots: - utf-8-validate - zod - '@jnwng/walletconnect-solana@0.2.0(@react-native-async-storage/async-storage@1.24.0(react-native@0.78.2(@babel/core@7.27.1)(@babel/preset-env@7.26.9(@babel/core@7.27.1))(@types/react@19.1.0)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10)))(@solana/web3.js@1.98.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(typescript@5.8.2)(utf-8-validate@5.0.10)(zod@3.24.4)': + '@jnwng/walletconnect-solana@0.2.0(@react-native-async-storage/async-storage@1.24.0(react-native@0.78.2(@babel/core@7.27.1)(@babel/preset-env@7.26.9(@babel/core@7.27.1))(@types/react@19.1.0)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10)))(@solana/web3.js@1.98.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(ioredis@5.7.0)(typescript@5.8.2)(utf-8-validate@5.0.10)(zod@3.24.4)': dependencies: '@solana/web3.js': 1.98.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) '@walletconnect/qrcode-modal': 1.8.0 - '@walletconnect/sign-client': 2.19.2(@react-native-async-storage/async-storage@1.24.0(react-native@0.78.2(@babel/core@7.27.1)(@babel/preset-env@7.26.9(@babel/core@7.27.1))(@types/react@19.1.0)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10)))(bufferutil@4.0.9)(typescript@5.8.2)(utf-8-validate@5.0.10)(zod@3.24.4) + '@walletconnect/sign-client': 2.19.2(@react-native-async-storage/async-storage@1.24.0(react-native@0.78.2(@babel/core@7.27.1)(@babel/preset-env@7.26.9(@babel/core@7.27.1))(@types/react@19.1.0)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10)))(bufferutil@4.0.9)(ioredis@5.7.0)(typescript@5.8.2)(utf-8-validate@5.0.10)(zod@3.24.4) '@walletconnect/utils': 2.19.2(@react-native-async-storage/async-storage@1.24.0(react-native@0.78.2(@babel/core@7.27.1)(@babel/preset-env@7.26.9(@babel/core@7.27.1))(@types/react@19.1.0)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10)))(bufferutil@4.0.9)(ioredis@5.7.0)(typescript@5.8.2)(utf-8-validate@5.0.10)(zod@3.24.4) bs58: 5.0.0 transitivePeerDependencies: @@ -32943,31 +32941,60 @@ snapshots: - react - react-native + '@solana-program/compute-budget@0.6.1(@solana/web3.js@2.0.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)))': + dependencies: + '@solana/web3.js': 2.0.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)) + '@solana-program/compute-budget@0.6.1(@solana/web3.js@2.0.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2)(ws@8.18.3(bufferutil@4.0.9)(utf-8-validate@5.0.10)))': dependencies: '@solana/web3.js': 2.0.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2)(ws@8.18.3(bufferutil@4.0.9)(utf-8-validate@5.0.10)) + '@solana-program/compute-budget@0.7.0(@solana/kit@2.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)))': + dependencies: + '@solana/kit': 2.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)) + '@solana-program/compute-budget@0.7.0(@solana/kit@2.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2)(ws@8.18.3(bufferutil@4.0.9)(utf-8-validate@5.0.10)))': dependencies: '@solana/kit': 2.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2)(ws@8.18.3(bufferutil@4.0.9)(utf-8-validate@5.0.10)) + '@solana-program/stake@0.1.0(@solana/web3.js@2.0.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)))': + dependencies: + '@solana/web3.js': 2.0.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)) + '@solana-program/stake@0.1.0(@solana/web3.js@2.0.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2)(ws@8.18.3(bufferutil@4.0.9)(utf-8-validate@5.0.10)))': dependencies: '@solana/web3.js': 2.0.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2)(ws@8.18.3(bufferutil@4.0.9)(utf-8-validate@5.0.10)) + '@solana-program/system@0.6.2(@solana/web3.js@2.0.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)))': + dependencies: + '@solana/web3.js': 2.0.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)) + '@solana-program/system@0.6.2(@solana/web3.js@2.0.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2)(ws@8.18.3(bufferutil@4.0.9)(utf-8-validate@5.0.10)))': dependencies: '@solana/web3.js': 2.0.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2)(ws@8.18.3(bufferutil@4.0.9)(utf-8-validate@5.0.10)) + '@solana-program/system@0.7.0(@solana/kit@2.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)))': + dependencies: + '@solana/kit': 2.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)) + '@solana-program/system@0.7.0(@solana/kit@2.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2)(ws@8.18.3(bufferutil@4.0.9)(utf-8-validate@5.0.10)))': dependencies: '@solana/kit': 2.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2)(ws@8.18.3(bufferutil@4.0.9)(utf-8-validate@5.0.10)) + '@solana-program/token-2022@0.4.0(@solana/kit@2.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)))(@solana/sysvars@2.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2))': + dependencies: + '@solana/kit': 2.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)) + '@solana/sysvars': 2.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2) + '@solana-program/token-2022@0.4.0(@solana/kit@2.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2)(ws@8.18.3(bufferutil@4.0.9)(utf-8-validate@5.0.10)))(@solana/sysvars@2.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2))': dependencies: '@solana/kit': 2.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2)(ws@8.18.3(bufferutil@4.0.9)(utf-8-validate@5.0.10)) '@solana/sysvars': 2.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2) + '@solana-program/token@0.5.1(@solana/kit@2.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)))': + dependencies: + '@solana/kit': 2.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)) + '@solana-program/token@0.5.1(@solana/kit@2.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2)(ws@8.18.3(bufferutil@4.0.9)(utf-8-validate@5.0.10)))': dependencies: '@solana/kit': 2.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2)(ws@8.18.3(bufferutil@4.0.9)(utf-8-validate@5.0.10)) @@ -33307,6 +33334,31 @@ snapshots: transitivePeerDependencies: - fastestsmallesttextencoderdecoder + '@solana/kit@2.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))': + dependencies: + '@solana/accounts': 2.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2) + '@solana/addresses': 2.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2) + '@solana/codecs': 2.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2) + '@solana/errors': 2.1.0(typescript@5.8.2) + '@solana/functional': 2.1.0(typescript@5.8.2) + '@solana/instructions': 2.1.0(typescript@5.8.2) + '@solana/keys': 2.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2) + '@solana/programs': 2.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2) + '@solana/rpc': 2.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2) + '@solana/rpc-parsed-types': 2.1.0(typescript@5.8.2) + '@solana/rpc-spec-types': 2.1.0(typescript@5.8.2) + '@solana/rpc-subscriptions': 2.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)) + '@solana/rpc-types': 2.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2) + '@solana/signers': 2.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2) + '@solana/sysvars': 2.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2) + '@solana/transaction-confirmation': 2.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)) + '@solana/transaction-messages': 2.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2) + '@solana/transactions': 2.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2) + typescript: 5.8.2 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + - ws + '@solana/kit@2.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2)(ws@8.18.3(bufferutil@4.0.9)(utf-8-validate@5.0.10))': dependencies: '@solana/accounts': 2.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2) @@ -33493,6 +33545,15 @@ snapshots: transitivePeerDependencies: - fastestsmallesttextencoderdecoder + '@solana/rpc-subscriptions-channel-websocket@2.0.0(typescript@5.8.2)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))': + dependencies: + '@solana/errors': 2.0.0(typescript@5.8.2) + '@solana/functional': 2.0.0(typescript@5.8.2) + '@solana/rpc-subscriptions-spec': 2.0.0(typescript@5.8.2) + '@solana/subscribable': 2.0.0(typescript@5.8.2) + typescript: 5.8.2 + ws: 8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) + '@solana/rpc-subscriptions-channel-websocket@2.0.0(typescript@5.8.2)(ws@8.18.3(bufferutil@4.0.9)(utf-8-validate@5.0.10))': dependencies: '@solana/errors': 2.0.0(typescript@5.8.2) @@ -33502,6 +33563,15 @@ snapshots: typescript: 5.8.2 ws: 8.18.3(bufferutil@4.0.9)(utf-8-validate@5.0.10) + '@solana/rpc-subscriptions-channel-websocket@2.1.0(typescript@5.8.2)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))': + dependencies: + '@solana/errors': 2.1.0(typescript@5.8.2) + '@solana/functional': 2.1.0(typescript@5.8.2) + '@solana/rpc-subscriptions-spec': 2.1.0(typescript@5.8.2) + '@solana/subscribable': 2.1.0(typescript@5.8.2) + typescript: 5.8.2 + ws: 8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10) + '@solana/rpc-subscriptions-channel-websocket@2.1.0(typescript@5.8.2)(ws@8.18.3(bufferutil@4.0.9)(utf-8-validate@5.0.10))': dependencies: '@solana/errors': 2.1.0(typescript@5.8.2) @@ -33527,6 +33597,24 @@ snapshots: '@solana/subscribable': 2.1.0(typescript@5.8.2) typescript: 5.8.2 + '@solana/rpc-subscriptions@2.0.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))': + dependencies: + '@solana/errors': 2.0.0(typescript@5.8.2) + '@solana/fast-stable-stringify': 2.0.0(typescript@5.8.2) + '@solana/functional': 2.0.0(typescript@5.8.2) + '@solana/promises': 2.0.0(typescript@5.8.2) + '@solana/rpc-spec-types': 2.0.0(typescript@5.8.2) + '@solana/rpc-subscriptions-api': 2.0.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2) + '@solana/rpc-subscriptions-channel-websocket': 2.0.0(typescript@5.8.2)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)) + '@solana/rpc-subscriptions-spec': 2.0.0(typescript@5.8.2) + '@solana/rpc-transformers': 2.0.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2) + '@solana/rpc-types': 2.0.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2) + '@solana/subscribable': 2.0.0(typescript@5.8.2) + typescript: 5.8.2 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + - ws + '@solana/rpc-subscriptions@2.0.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2)(ws@8.18.3(bufferutil@4.0.9)(utf-8-validate@5.0.10))': dependencies: '@solana/errors': 2.0.0(typescript@5.8.2) @@ -33545,6 +33633,24 @@ snapshots: - fastestsmallesttextencoderdecoder - ws + '@solana/rpc-subscriptions@2.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))': + dependencies: + '@solana/errors': 2.1.0(typescript@5.8.2) + '@solana/fast-stable-stringify': 2.1.0(typescript@5.8.2) + '@solana/functional': 2.1.0(typescript@5.8.2) + '@solana/promises': 2.1.0(typescript@5.8.2) + '@solana/rpc-spec-types': 2.1.0(typescript@5.8.2) + '@solana/rpc-subscriptions-api': 2.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2) + '@solana/rpc-subscriptions-channel-websocket': 2.1.0(typescript@5.8.2)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)) + '@solana/rpc-subscriptions-spec': 2.1.0(typescript@5.8.2) + '@solana/rpc-transformers': 2.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2) + '@solana/rpc-types': 2.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2) + '@solana/subscribable': 2.1.0(typescript@5.8.2) + typescript: 5.8.2 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + - ws + '@solana/rpc-subscriptions@2.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2)(ws@8.18.3(bufferutil@4.0.9)(utf-8-validate@5.0.10))': dependencies: '@solana/errors': 2.1.0(typescript@5.8.2) @@ -33815,6 +33921,23 @@ snapshots: transitivePeerDependencies: - fastestsmallesttextencoderdecoder + '@solana/transaction-confirmation@2.0.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))': + dependencies: + '@solana/addresses': 2.0.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2) + '@solana/codecs-strings': 2.0.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2) + '@solana/errors': 2.0.0(typescript@5.8.2) + '@solana/keys': 2.0.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2) + '@solana/promises': 2.0.0(typescript@5.8.2) + '@solana/rpc': 2.0.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2) + '@solana/rpc-subscriptions': 2.0.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)) + '@solana/rpc-types': 2.0.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2) + '@solana/transaction-messages': 2.0.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2) + '@solana/transactions': 2.0.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2) + typescript: 5.8.2 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + - ws + '@solana/transaction-confirmation@2.0.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2)(ws@8.18.3(bufferutil@4.0.9)(utf-8-validate@5.0.10))': dependencies: '@solana/addresses': 2.0.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2) @@ -33832,6 +33955,23 @@ snapshots: - fastestsmallesttextencoderdecoder - ws + '@solana/transaction-confirmation@2.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))': + dependencies: + '@solana/addresses': 2.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2) + '@solana/codecs-strings': 2.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2) + '@solana/errors': 2.1.0(typescript@5.8.2) + '@solana/keys': 2.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2) + '@solana/promises': 2.1.0(typescript@5.8.2) + '@solana/rpc': 2.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2) + '@solana/rpc-subscriptions': 2.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)) + '@solana/rpc-types': 2.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2) + '@solana/transaction-messages': 2.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2) + '@solana/transactions': 2.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2) + typescript: 5.8.2 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + - ws + '@solana/transaction-confirmation@2.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2)(ws@8.18.3(bufferutil@4.0.9)(utf-8-validate@5.0.10))': dependencies: '@solana/addresses': 2.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2) @@ -34205,11 +34345,11 @@ snapshots: - utf-8-validate - ws - '@solana/wallet-adapter-trezor@0.1.3(@solana/sysvars@2.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2))(@solana/web3.js@1.98.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(react-native@0.78.2(@babel/core@7.27.1)(@babel/preset-env@7.26.9(@babel/core@7.27.1))(@types/react@19.1.0)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10))(tslib@2.8.1)(typescript@5.8.2)(utf-8-validate@5.0.10)(ws@8.18.3(bufferutil@4.0.9)(utf-8-validate@5.0.10))': + '@solana/wallet-adapter-trezor@0.1.3(@solana/sysvars@2.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2))(@solana/web3.js@1.98.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(react-native@0.78.2(@babel/core@7.27.1)(@babel/preset-env@7.26.9(@babel/core@7.27.1))(@types/react@19.1.0)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10))(tslib@2.8.1)(typescript@5.8.2)(utf-8-validate@5.0.10)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))': dependencies: '@solana/wallet-adapter-base': 0.9.24(@solana/web3.js@1.98.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10)) '@solana/web3.js': 1.98.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) - '@trezor/connect-web': 9.5.3(@solana/sysvars@2.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2))(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(react-native@0.78.2(@babel/core@7.27.1)(@babel/preset-env@7.26.9(@babel/core@7.27.1))(@types/react@19.1.0)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10))(tslib@2.8.1)(typescript@5.8.2)(utf-8-validate@5.0.10)(ws@8.18.3(bufferutil@4.0.9)(utf-8-validate@5.0.10)) + '@trezor/connect-web': 9.5.3(@solana/sysvars@2.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2))(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(react-native@0.78.2(@babel/core@7.27.1)(@babel/preset-env@7.26.9(@babel/core@7.27.1))(@types/react@19.1.0)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10))(tslib@2.8.1)(typescript@5.8.2)(utf-8-validate@5.0.10)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)) buffer: 6.0.3 transitivePeerDependencies: - '@solana/sysvars' @@ -34238,9 +34378,9 @@ snapshots: '@solana/wallet-standard-util': 1.1.2 '@solana/web3.js': 1.98.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) - '@solana/wallet-adapter-walletconnect@0.1.17(@react-native-async-storage/async-storage@1.24.0(react-native@0.78.2(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@19.1.0)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10)))(@solana/web3.js@1.98.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(typescript@5.8.2)(utf-8-validate@5.0.10)(zod@3.24.2)': + '@solana/wallet-adapter-walletconnect@0.1.17(@react-native-async-storage/async-storage@1.24.0(react-native@0.78.2(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@19.1.0)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10)))(@solana/web3.js@1.98.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(ioredis@5.7.0)(typescript@5.8.2)(utf-8-validate@5.0.10)(zod@3.24.2)': dependencies: - '@jnwng/walletconnect-solana': 0.2.0(@react-native-async-storage/async-storage@1.24.0(react-native@0.78.2(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@19.1.0)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10)))(@solana/web3.js@1.98.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(typescript@5.8.2)(utf-8-validate@5.0.10)(zod@3.24.2) + '@jnwng/walletconnect-solana': 0.2.0(@react-native-async-storage/async-storage@1.24.0(react-native@0.78.2(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@19.1.0)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10)))(@solana/web3.js@1.98.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(ioredis@5.7.0)(typescript@5.8.2)(utf-8-validate@5.0.10)(zod@3.24.2) '@solana/wallet-adapter-base': 0.9.24(@solana/web3.js@1.98.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10)) '@solana/web3.js': 1.98.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) transitivePeerDependencies: @@ -34267,9 +34407,9 @@ snapshots: - utf-8-validate - zod - '@solana/wallet-adapter-walletconnect@0.1.17(@react-native-async-storage/async-storage@1.24.0(react-native@0.78.2(@babel/core@7.27.1)(@babel/preset-env@7.26.9(@babel/core@7.27.1))(@types/react@19.1.0)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10)))(@solana/web3.js@1.98.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(typescript@5.8.2)(utf-8-validate@5.0.10)(zod@3.24.4)': + '@solana/wallet-adapter-walletconnect@0.1.17(@react-native-async-storage/async-storage@1.24.0(react-native@0.78.2(@babel/core@7.27.1)(@babel/preset-env@7.26.9(@babel/core@7.27.1))(@types/react@19.1.0)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10)))(@solana/web3.js@1.98.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(ioredis@5.7.0)(typescript@5.8.2)(utf-8-validate@5.0.10)(zod@3.24.4)': dependencies: - '@jnwng/walletconnect-solana': 0.2.0(@react-native-async-storage/async-storage@1.24.0(react-native@0.78.2(@babel/core@7.27.1)(@babel/preset-env@7.26.9(@babel/core@7.27.1))(@types/react@19.1.0)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10)))(@solana/web3.js@1.98.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(typescript@5.8.2)(utf-8-validate@5.0.10)(zod@3.24.4) + '@jnwng/walletconnect-solana': 0.2.0(@react-native-async-storage/async-storage@1.24.0(react-native@0.78.2(@babel/core@7.27.1)(@babel/preset-env@7.26.9(@babel/core@7.27.1))(@types/react@19.1.0)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10)))(@solana/web3.js@1.98.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(ioredis@5.7.0)(typescript@5.8.2)(utf-8-validate@5.0.10)(zod@3.24.4) '@solana/wallet-adapter-base': 0.9.24(@solana/web3.js@1.98.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10)) '@solana/web3.js': 1.98.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) transitivePeerDependencies: @@ -34296,7 +34436,7 @@ snapshots: - utf-8-validate - zod - '@solana/wallet-adapter-wallets@0.19.33(@babel/runtime@7.27.0)(@react-native-async-storage/async-storage@1.24.0(react-native@0.78.2(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@19.1.0)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10)))(@solana/sysvars@2.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2))(@solana/web3.js@1.98.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(react-dom@19.1.0(react@19.1.0))(react-native@0.78.2(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@19.1.0)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10))(react@19.1.0)(tslib@2.8.1)(typescript@5.8.2)(utf-8-validate@5.0.10)(ws@8.18.3(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.2)': + '@solana/wallet-adapter-wallets@0.19.33(@babel/runtime@7.27.0)(@react-native-async-storage/async-storage@1.24.0(react-native@0.78.2(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@19.1.0)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10)))(@solana/sysvars@2.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2))(@solana/web3.js@1.98.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(ioredis@5.7.0)(react-dom@19.1.0(react@19.1.0))(react-native@0.78.2(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@19.1.0)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10))(react@19.1.0)(tslib@2.8.1)(typescript@5.8.2)(utf-8-validate@5.0.10)(ws@8.18.3(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.2)': dependencies: '@solana/wallet-adapter-alpha': 0.1.11(@solana/web3.js@1.98.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10)) '@solana/wallet-adapter-avana': 0.1.14(@solana/web3.js@1.98.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10)) @@ -34332,7 +34472,7 @@ snapshots: '@solana/wallet-adapter-trezor': 0.1.3(@solana/sysvars@2.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2))(@solana/web3.js@1.98.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(react-native@0.78.2(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@19.1.0)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10))(tslib@2.8.1)(typescript@5.8.2)(utf-8-validate@5.0.10)(ws@8.18.3(bufferutil@4.0.9)(utf-8-validate@5.0.10)) '@solana/wallet-adapter-trust': 0.1.14(@solana/web3.js@1.98.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10)) '@solana/wallet-adapter-unsafe-burner': 0.1.8(@solana/web3.js@1.98.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10)) - '@solana/wallet-adapter-walletconnect': 0.1.17(@react-native-async-storage/async-storage@1.24.0(react-native@0.78.2(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@19.1.0)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10)))(@solana/web3.js@1.98.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(typescript@5.8.2)(utf-8-validate@5.0.10)(zod@3.24.2) + '@solana/wallet-adapter-walletconnect': 0.1.17(@react-native-async-storage/async-storage@1.24.0(react-native@0.78.2(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@19.1.0)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10)))(@solana/web3.js@1.98.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(ioredis@5.7.0)(typescript@5.8.2)(utf-8-validate@5.0.10)(zod@3.24.2) '@solana/wallet-adapter-xdefi': 0.1.8(@solana/web3.js@1.98.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10)) '@solana/web3.js': 1.98.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) transitivePeerDependencies: @@ -34373,7 +34513,7 @@ snapshots: - ws - zod - '@solana/wallet-adapter-wallets@0.19.33(@babel/runtime@7.27.0)(@react-native-async-storage/async-storage@1.24.0(react-native@0.78.2(@babel/core@7.27.1)(@babel/preset-env@7.26.9(@babel/core@7.27.1))(@types/react@19.1.0)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10)))(@solana/sysvars@2.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2))(@solana/web3.js@1.98.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))(bs58@5.0.0)(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(react-dom@19.1.0(react@19.1.0))(react-native@0.78.2(@babel/core@7.27.1)(@babel/preset-env@7.26.9(@babel/core@7.27.1))(@types/react@19.1.0)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10))(react@19.1.0)(tslib@2.8.1)(typescript@5.8.2)(utf-8-validate@5.0.10)(ws@8.18.3(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.4)': + '@solana/wallet-adapter-wallets@0.19.33(@babel/runtime@7.27.0)(@react-native-async-storage/async-storage@1.24.0(react-native@0.78.2(@babel/core@7.27.1)(@babel/preset-env@7.26.9(@babel/core@7.27.1))(@types/react@19.1.0)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10)))(@solana/sysvars@2.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2))(@solana/web3.js@1.98.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))(bs58@5.0.0)(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(ioredis@5.7.0)(react-dom@19.1.0(react@19.1.0))(react-native@0.78.2(@babel/core@7.27.1)(@babel/preset-env@7.26.9(@babel/core@7.27.1))(@types/react@19.1.0)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10))(react@19.1.0)(tslib@2.8.1)(typescript@5.8.2)(utf-8-validate@5.0.10)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))(zod@3.24.4)': dependencies: '@solana/wallet-adapter-alpha': 0.1.11(@solana/web3.js@1.98.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10)) '@solana/wallet-adapter-avana': 0.1.14(@solana/web3.js@1.98.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10)) @@ -34406,10 +34546,10 @@ snapshots: '@solana/wallet-adapter-tokenary': 0.1.13(@solana/web3.js@1.98.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10)) '@solana/wallet-adapter-tokenpocket': 0.4.20(@solana/web3.js@1.98.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10)) '@solana/wallet-adapter-torus': 0.11.29(@babel/runtime@7.27.0)(@solana/web3.js@1.98.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) - '@solana/wallet-adapter-trezor': 0.1.3(@solana/sysvars@2.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2))(@solana/web3.js@1.98.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(react-native@0.78.2(@babel/core@7.27.1)(@babel/preset-env@7.26.9(@babel/core@7.27.1))(@types/react@19.1.0)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10))(tslib@2.8.1)(typescript@5.8.2)(utf-8-validate@5.0.10)(ws@8.18.3(bufferutil@4.0.9)(utf-8-validate@5.0.10)) + '@solana/wallet-adapter-trezor': 0.1.3(@solana/sysvars@2.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2))(@solana/web3.js@1.98.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(react-native@0.78.2(@babel/core@7.27.1)(@babel/preset-env@7.26.9(@babel/core@7.27.1))(@types/react@19.1.0)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10))(tslib@2.8.1)(typescript@5.8.2)(utf-8-validate@5.0.10)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)) '@solana/wallet-adapter-trust': 0.1.14(@solana/web3.js@1.98.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10)) '@solana/wallet-adapter-unsafe-burner': 0.1.8(@solana/web3.js@1.98.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10)) - '@solana/wallet-adapter-walletconnect': 0.1.17(@react-native-async-storage/async-storage@1.24.0(react-native@0.78.2(@babel/core@7.27.1)(@babel/preset-env@7.26.9(@babel/core@7.27.1))(@types/react@19.1.0)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10)))(@solana/web3.js@1.98.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(typescript@5.8.2)(utf-8-validate@5.0.10)(zod@3.24.4) + '@solana/wallet-adapter-walletconnect': 0.1.17(@react-native-async-storage/async-storage@1.24.0(react-native@0.78.2(@babel/core@7.27.1)(@babel/preset-env@7.26.9(@babel/core@7.27.1))(@types/react@19.1.0)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10)))(@solana/web3.js@1.98.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10))(bufferutil@4.0.9)(ioredis@5.7.0)(typescript@5.8.2)(utf-8-validate@5.0.10)(zod@3.24.4) '@solana/wallet-adapter-xdefi': 0.1.8(@solana/web3.js@1.98.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10)) '@solana/web3.js': 1.98.0(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) transitivePeerDependencies: @@ -34632,6 +34772,31 @@ snapshots: - encoding - utf-8-validate + '@solana/web3.js@2.0.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))': + dependencies: + '@solana/accounts': 2.0.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2) + '@solana/addresses': 2.0.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2) + '@solana/codecs': 2.0.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2) + '@solana/errors': 2.0.0(typescript@5.8.2) + '@solana/functional': 2.0.0(typescript@5.8.2) + '@solana/instructions': 2.0.0(typescript@5.8.2) + '@solana/keys': 2.0.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2) + '@solana/programs': 2.0.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2) + '@solana/rpc': 2.0.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2) + '@solana/rpc-parsed-types': 2.0.0(typescript@5.8.2) + '@solana/rpc-spec-types': 2.0.0(typescript@5.8.2) + '@solana/rpc-subscriptions': 2.0.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)) + '@solana/rpc-types': 2.0.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2) + '@solana/signers': 2.0.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2) + '@solana/sysvars': 2.0.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2) + '@solana/transaction-confirmation': 2.0.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)) + '@solana/transaction-messages': 2.0.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2) + '@solana/transactions': 2.0.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2) + typescript: 5.8.2 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + - ws + '@solana/web3.js@2.0.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2)(ws@8.18.3(bufferutil@4.0.9)(utf-8-validate@5.0.10))': dependencies: '@solana/accounts': 2.0.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2) @@ -35581,6 +35746,17 @@ snapshots: - expo-localization - react-native + '@trezor/blockchain-link-types@1.3.3(fastestsmallesttextencoderdecoder@1.0.22)(tslib@2.8.1)(typescript@5.8.2)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))': + dependencies: + '@solana/kit': 2.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)) + '@trezor/type-utils': 1.1.5 + '@trezor/utxo-lib': 2.3.3(tslib@2.8.1) + tslib: 2.8.1 + transitivePeerDependencies: + - fastestsmallesttextencoderdecoder + - typescript + - ws + '@trezor/blockchain-link-types@1.3.3(fastestsmallesttextencoderdecoder@1.0.22)(tslib@2.8.1)(typescript@5.8.2)(ws@8.18.3(bufferutil@4.0.9)(utf-8-validate@5.0.10))': dependencies: '@solana/kit': 2.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2)(ws@8.18.3(bufferutil@4.0.9)(utf-8-validate@5.0.10)) @@ -35643,13 +35819,13 @@ snapshots: - utf-8-validate - ws - '@trezor/blockchain-link@2.4.3(@solana/sysvars@2.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2))(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(react-native@0.78.2(@babel/core@7.27.1)(@babel/preset-env@7.26.9(@babel/core@7.27.1))(@types/react@19.1.0)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10))(tslib@2.8.1)(typescript@5.8.2)(utf-8-validate@5.0.10)(ws@8.18.3(bufferutil@4.0.9)(utf-8-validate@5.0.10))': + '@trezor/blockchain-link@2.4.3(@solana/sysvars@2.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2))(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(react-native@0.78.2(@babel/core@7.27.1)(@babel/preset-env@7.26.9(@babel/core@7.27.1))(@types/react@19.1.0)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10))(tslib@2.8.1)(typescript@5.8.2)(utf-8-validate@5.0.10)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))': dependencies: - '@everstake/wallet-sdk-solana': 2.0.9(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2)(ws@8.18.3(bufferutil@4.0.9)(utf-8-validate@5.0.10)) - '@solana-program/token': 0.5.1(@solana/kit@2.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2)(ws@8.18.3(bufferutil@4.0.9)(utf-8-validate@5.0.10))) - '@solana-program/token-2022': 0.4.0(@solana/kit@2.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2)(ws@8.18.3(bufferutil@4.0.9)(utf-8-validate@5.0.10)))(@solana/sysvars@2.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2)) - '@solana/kit': 2.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2)(ws@8.18.3(bufferutil@4.0.9)(utf-8-validate@5.0.10)) - '@trezor/blockchain-link-types': 1.3.3(fastestsmallesttextencoderdecoder@1.0.22)(tslib@2.8.1)(typescript@5.8.2)(ws@8.18.3(bufferutil@4.0.9)(utf-8-validate@5.0.10)) + '@everstake/wallet-sdk-solana': 2.0.9(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)) + '@solana-program/token': 0.5.1(@solana/kit@2.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))) + '@solana-program/token-2022': 0.4.0(@solana/kit@2.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)))(@solana/sysvars@2.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2)) + '@solana/kit': 2.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)) + '@trezor/blockchain-link-types': 1.3.3(fastestsmallesttextencoderdecoder@1.0.22)(tslib@2.8.1)(typescript@5.8.2)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)) '@trezor/blockchain-link-utils': 1.3.3(react-native@0.78.2(@babel/core@7.27.1)(@babel/preset-env@7.26.9(@babel/core@7.27.1))(@types/react@19.1.0)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10))(tslib@2.8.1) '@trezor/env-utils': 1.3.2(react-native@0.78.2(@babel/core@7.27.1)(@babel/preset-env@7.26.9(@babel/core@7.27.1))(@types/react@19.1.0)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10))(tslib@2.8.1) '@trezor/utils': 9.3.3(tslib@2.8.1) @@ -35729,9 +35905,9 @@ snapshots: - utf-8-validate - ws - '@trezor/connect-web@9.5.3(@solana/sysvars@2.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2))(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(react-native@0.78.2(@babel/core@7.27.1)(@babel/preset-env@7.26.9(@babel/core@7.27.1))(@types/react@19.1.0)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10))(tslib@2.8.1)(typescript@5.8.2)(utf-8-validate@5.0.10)(ws@8.18.3(bufferutil@4.0.9)(utf-8-validate@5.0.10))': + '@trezor/connect-web@9.5.3(@solana/sysvars@2.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2))(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(react-native@0.78.2(@babel/core@7.27.1)(@babel/preset-env@7.26.9(@babel/core@7.27.1))(@types/react@19.1.0)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10))(tslib@2.8.1)(typescript@5.8.2)(utf-8-validate@5.0.10)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))': dependencies: - '@trezor/connect': 9.5.3(@solana/sysvars@2.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2))(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(react-native@0.78.2(@babel/core@7.27.1)(@babel/preset-env@7.26.9(@babel/core@7.27.1))(@types/react@19.1.0)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10))(tslib@2.8.1)(typescript@5.8.2)(utf-8-validate@5.0.10)(ws@8.18.3(bufferutil@4.0.9)(utf-8-validate@5.0.10)) + '@trezor/connect': 9.5.3(@solana/sysvars@2.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2))(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(react-native@0.78.2(@babel/core@7.27.1)(@babel/preset-env@7.26.9(@babel/core@7.27.1))(@types/react@19.1.0)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10))(tslib@2.8.1)(typescript@5.8.2)(utf-8-validate@5.0.10)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)) '@trezor/connect-common': 0.3.3(react-native@0.78.2(@babel/core@7.27.1)(@babel/preset-env@7.26.9(@babel/core@7.27.1))(@types/react@19.1.0)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10))(tslib@2.8.1) '@trezor/utils': 9.3.3(tslib@2.8.1) tslib: 2.8.1 @@ -35792,7 +35968,7 @@ snapshots: - utf-8-validate - ws - '@trezor/connect@9.5.3(@solana/sysvars@2.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2))(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(react-native@0.78.2(@babel/core@7.27.1)(@babel/preset-env@7.26.9(@babel/core@7.27.1))(@types/react@19.1.0)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10))(tslib@2.8.1)(typescript@5.8.2)(utf-8-validate@5.0.10)(ws@8.18.3(bufferutil@4.0.9)(utf-8-validate@5.0.10))': + '@trezor/connect@9.5.3(@solana/sysvars@2.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2))(bufferutil@4.0.9)(encoding@0.1.13)(fastestsmallesttextencoderdecoder@1.0.22)(react-native@0.78.2(@babel/core@7.27.1)(@babel/preset-env@7.26.9(@babel/core@7.27.1))(@types/react@19.1.0)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10))(tslib@2.8.1)(typescript@5.8.2)(utf-8-validate@5.0.10)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))': dependencies: '@ethereumjs/common': 4.4.0 '@ethereumjs/tx': 5.4.0 @@ -35800,13 +35976,13 @@ snapshots: '@mobily/ts-belt': 3.13.1 '@noble/hashes': 1.8.0 '@scure/bip39': 1.6.0 - '@solana-program/compute-budget': 0.7.0(@solana/kit@2.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2)(ws@8.18.3(bufferutil@4.0.9)(utf-8-validate@5.0.10))) - '@solana-program/system': 0.7.0(@solana/kit@2.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2)(ws@8.18.3(bufferutil@4.0.9)(utf-8-validate@5.0.10))) - '@solana-program/token': 0.5.1(@solana/kit@2.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2)(ws@8.18.3(bufferutil@4.0.9)(utf-8-validate@5.0.10))) - '@solana-program/token-2022': 0.4.0(@solana/kit@2.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2)(ws@8.18.3(bufferutil@4.0.9)(utf-8-validate@5.0.10)))(@solana/sysvars@2.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2)) - '@solana/kit': 2.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2)(ws@8.18.3(bufferutil@4.0.9)(utf-8-validate@5.0.10)) - '@trezor/blockchain-link': 2.4.3(@solana/sysvars@2.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2))(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(react-native@0.78.2(@babel/core@7.27.1)(@babel/preset-env@7.26.9(@babel/core@7.27.1))(@types/react@19.1.0)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10))(tslib@2.8.1)(typescript@5.8.2)(utf-8-validate@5.0.10)(ws@8.18.3(bufferutil@4.0.9)(utf-8-validate@5.0.10)) - '@trezor/blockchain-link-types': 1.3.3(fastestsmallesttextencoderdecoder@1.0.22)(tslib@2.8.1)(typescript@5.8.2)(ws@8.18.3(bufferutil@4.0.9)(utf-8-validate@5.0.10)) + '@solana-program/compute-budget': 0.7.0(@solana/kit@2.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))) + '@solana-program/system': 0.7.0(@solana/kit@2.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))) + '@solana-program/token': 0.5.1(@solana/kit@2.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10))) + '@solana-program/token-2022': 0.4.0(@solana/kit@2.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)))(@solana/sysvars@2.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2)) + '@solana/kit': 2.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)) + '@trezor/blockchain-link': 2.4.3(@solana/sysvars@2.1.0(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.8.2))(bufferutil@4.0.9)(fastestsmallesttextencoderdecoder@1.0.22)(react-native@0.78.2(@babel/core@7.27.1)(@babel/preset-env@7.26.9(@babel/core@7.27.1))(@types/react@19.1.0)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10))(tslib@2.8.1)(typescript@5.8.2)(utf-8-validate@5.0.10)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)) + '@trezor/blockchain-link-types': 1.3.3(fastestsmallesttextencoderdecoder@1.0.22)(tslib@2.8.1)(typescript@5.8.2)(ws@8.18.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)) '@trezor/blockchain-link-utils': 1.3.3(react-native@0.78.2(@babel/core@7.27.1)(@babel/preset-env@7.26.9(@babel/core@7.27.1))(@types/react@19.1.0)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10))(tslib@2.8.1) '@trezor/connect-analytics': 1.3.2(react-native@0.78.2(@babel/core@7.27.1)(@babel/preset-env@7.26.9(@babel/core@7.27.1))(@types/react@19.1.0)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10))(tslib@2.8.1) '@trezor/connect-common': 0.3.3(react-native@0.78.2(@babel/core@7.27.1)(@babel/preset-env@7.26.9(@babel/core@7.27.1))(@types/react@19.1.0)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10))(tslib@2.8.1) @@ -36330,15 +36506,6 @@ snapshots: '@types/bn.js': 5.1.6 '@types/underscore': 1.13.0 - '@types/web3@1.2.2(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10)': - dependencies: - web3: 1.10.4(bufferutil@4.0.9)(encoding@0.1.13)(utf-8-validate@5.0.10) - transitivePeerDependencies: - - bufferutil - - encoding - - supports-color - - utf-8-validate - '@types/web@0.0.197': {} '@types/ws@7.4.7': @@ -37345,21 +37512,21 @@ snapshots: '@walletconnect/window-metadata': 1.0.0 detect-browser: 5.2.0 - '@walletconnect/core@2.19.2(@react-native-async-storage/async-storage@1.24.0(react-native@0.78.2(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@19.1.0)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10)))(bufferutil@4.0.9)(typescript@5.8.2)(utf-8-validate@5.0.10)(zod@3.24.2)': + '@walletconnect/core@2.19.2(@react-native-async-storage/async-storage@1.24.0(react-native@0.78.2(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@19.1.0)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10)))(bufferutil@4.0.9)(ioredis@5.7.0)(typescript@5.8.2)(utf-8-validate@5.0.10)(zod@3.24.2)': dependencies: '@walletconnect/heartbeat': 1.2.2 '@walletconnect/jsonrpc-provider': 1.0.14 '@walletconnect/jsonrpc-types': 1.0.4 '@walletconnect/jsonrpc-utils': 1.0.8 '@walletconnect/jsonrpc-ws-connection': 1.0.16(bufferutil@4.0.9)(utf-8-validate@5.0.10) - '@walletconnect/keyvaluestorage': 1.1.1(@react-native-async-storage/async-storage@1.24.0(react-native@0.78.2(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@19.1.0)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10))) + '@walletconnect/keyvaluestorage': 1.1.1(@react-native-async-storage/async-storage@1.24.0(react-native@0.78.2(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@19.1.0)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10)))(ioredis@5.7.0) '@walletconnect/logger': 2.1.2 '@walletconnect/relay-api': 1.0.11 '@walletconnect/relay-auth': 1.1.0 '@walletconnect/safe-json': 1.0.2 '@walletconnect/time': 1.0.2 - '@walletconnect/types': 2.19.2(@react-native-async-storage/async-storage@1.24.0(react-native@0.78.2(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@19.1.0)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10))) - '@walletconnect/utils': 2.19.2(@react-native-async-storage/async-storage@1.24.0(react-native@0.78.2(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@19.1.0)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10)))(bufferutil@4.0.9)(typescript@5.8.2)(utf-8-validate@5.0.10)(zod@3.24.2) + '@walletconnect/types': 2.19.2(@react-native-async-storage/async-storage@1.24.0(react-native@0.78.2(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@19.1.0)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10)))(ioredis@5.7.0) + '@walletconnect/utils': 2.19.2(@react-native-async-storage/async-storage@1.24.0(react-native@0.78.2(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@19.1.0)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10)))(bufferutil@4.0.9)(ioredis@5.7.0)(typescript@5.8.2)(utf-8-validate@5.0.10)(zod@3.24.2) '@walletconnect/window-getters': 1.0.1 es-toolkit: 1.33.0 events: 3.3.0 @@ -37522,7 +37689,7 @@ snapshots: - bufferutil - utf-8-validate - '@walletconnect/keyvaluestorage@1.1.1(@react-native-async-storage/async-storage@1.24.0(react-native@0.78.2(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@19.1.0)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10)))': + '@walletconnect/keyvaluestorage@1.1.1(@react-native-async-storage/async-storage@1.24.0(react-native@0.78.2(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@19.1.0)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10)))(ioredis@5.7.0)': dependencies: '@walletconnect/safe-json': 1.0.2 idb-keyval: 6.2.1 @@ -37633,16 +37800,16 @@ snapshots: dependencies: tslib: 1.14.1 - '@walletconnect/sign-client@2.19.2(@react-native-async-storage/async-storage@1.24.0(react-native@0.78.2(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@19.1.0)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10)))(bufferutil@4.0.9)(typescript@5.8.2)(utf-8-validate@5.0.10)(zod@3.24.2)': + '@walletconnect/sign-client@2.19.2(@react-native-async-storage/async-storage@1.24.0(react-native@0.78.2(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@19.1.0)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10)))(bufferutil@4.0.9)(ioredis@5.7.0)(typescript@5.8.2)(utf-8-validate@5.0.10)(zod@3.24.2)': dependencies: - '@walletconnect/core': 2.19.2(@react-native-async-storage/async-storage@1.24.0(react-native@0.78.2(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@19.1.0)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10)))(bufferutil@4.0.9)(typescript@5.8.2)(utf-8-validate@5.0.10)(zod@3.24.2) + '@walletconnect/core': 2.19.2(@react-native-async-storage/async-storage@1.24.0(react-native@0.78.2(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@19.1.0)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10)))(bufferutil@4.0.9)(ioredis@5.7.0)(typescript@5.8.2)(utf-8-validate@5.0.10)(zod@3.24.2) '@walletconnect/events': 1.0.1 '@walletconnect/heartbeat': 1.2.2 '@walletconnect/jsonrpc-utils': 1.0.8 '@walletconnect/logger': 2.1.2 '@walletconnect/time': 1.0.2 - '@walletconnect/types': 2.19.2(@react-native-async-storage/async-storage@1.24.0(react-native@0.78.2(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@19.1.0)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10))) - '@walletconnect/utils': 2.19.2(@react-native-async-storage/async-storage@1.24.0(react-native@0.78.2(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@19.1.0)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10)))(bufferutil@4.0.9)(typescript@5.8.2)(utf-8-validate@5.0.10)(zod@3.24.2) + '@walletconnect/types': 2.19.2(@react-native-async-storage/async-storage@1.24.0(react-native@0.78.2(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@19.1.0)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10)))(ioredis@5.7.0) + '@walletconnect/utils': 2.19.2(@react-native-async-storage/async-storage@1.24.0(react-native@0.78.2(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@19.1.0)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10)))(bufferutil@4.0.9)(ioredis@5.7.0)(typescript@5.8.2)(utf-8-validate@5.0.10)(zod@3.24.2) events: 3.3.0 transitivePeerDependencies: - '@azure/app-configuration' @@ -37703,53 +37870,18 @@ snapshots: - utf-8-validate - zod - '@walletconnect/sign-client@2.19.2(@react-native-async-storage/async-storage@1.24.0(react-native@0.78.2(@babel/core@7.27.1)(@babel/preset-env@7.26.9(@babel/core@7.27.1))(@types/react@19.1.0)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10)))(bufferutil@4.0.9)(typescript@5.8.2)(utf-8-validate@5.0.10)(zod@3.24.4)': - dependencies: - '@walletconnect/core': 2.19.2(@react-native-async-storage/async-storage@1.24.0(react-native@0.78.2(@babel/core@7.27.1)(@babel/preset-env@7.26.9(@babel/core@7.27.1))(@types/react@19.1.0)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10)))(bufferutil@4.0.9)(ioredis@5.7.0)(typescript@5.8.2)(utf-8-validate@5.0.10)(zod@3.24.4) - '@walletconnect/events': 1.0.1 - '@walletconnect/heartbeat': 1.2.2 - '@walletconnect/jsonrpc-utils': 1.0.8 - '@walletconnect/logger': 2.1.2 - '@walletconnect/time': 1.0.2 - '@walletconnect/types': 2.19.2(@react-native-async-storage/async-storage@1.24.0(react-native@0.78.2(@babel/core@7.27.1)(@babel/preset-env@7.26.9(@babel/core@7.27.1))(@types/react@19.1.0)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10)))(ioredis@5.7.0) - '@walletconnect/utils': 2.19.2(@react-native-async-storage/async-storage@1.24.0(react-native@0.78.2(@babel/core@7.27.1)(@babel/preset-env@7.26.9(@babel/core@7.27.1))(@types/react@19.1.0)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10)))(bufferutil@4.0.9)(ioredis@5.7.0)(typescript@5.8.2)(utf-8-validate@5.0.10)(zod@3.24.4) - events: 3.3.0 - transitivePeerDependencies: - - '@azure/app-configuration' - - '@azure/cosmos' - - '@azure/data-tables' - - '@azure/identity' - - '@azure/keyvault-secrets' - - '@azure/storage-blob' - - '@capacitor/preferences' - - '@deno/kv' - - '@netlify/blobs' - - '@planetscale/database' - - '@react-native-async-storage/async-storage' - - '@upstash/redis' - - '@vercel/blob' - - '@vercel/kv' - - aws4fetch - - bufferutil - - db0 - - ioredis - - typescript - - uploadthing - - utf-8-validate - - zod - '@walletconnect/time@1.0.2': dependencies: tslib: 1.14.1 '@walletconnect/types@1.8.0': {} - '@walletconnect/types@2.19.2(@react-native-async-storage/async-storage@1.24.0(react-native@0.78.2(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@19.1.0)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10)))': + '@walletconnect/types@2.19.2(@react-native-async-storage/async-storage@1.24.0(react-native@0.78.2(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@19.1.0)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10)))(ioredis@5.7.0)': dependencies: '@walletconnect/events': 1.0.1 '@walletconnect/heartbeat': 1.2.2 '@walletconnect/jsonrpc-types': 1.0.4 - '@walletconnect/keyvaluestorage': 1.1.1(@react-native-async-storage/async-storage@1.24.0(react-native@0.78.2(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@19.1.0)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10))) + '@walletconnect/keyvaluestorage': 1.1.1(@react-native-async-storage/async-storage@1.24.0(react-native@0.78.2(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@19.1.0)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10)))(ioredis@5.7.0) '@walletconnect/logger': 2.1.2 events: 3.3.0 transitivePeerDependencies: @@ -37839,18 +37971,18 @@ snapshots: - utf-8-validate - zod - '@walletconnect/utils@2.19.2(@react-native-async-storage/async-storage@1.24.0(react-native@0.78.2(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@19.1.0)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10)))(bufferutil@4.0.9)(typescript@5.8.2)(utf-8-validate@5.0.10)(zod@3.24.2)': + '@walletconnect/utils@2.19.2(@react-native-async-storage/async-storage@1.24.0(react-native@0.78.2(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@19.1.0)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10)))(bufferutil@4.0.9)(ioredis@5.7.0)(typescript@5.8.2)(utf-8-validate@5.0.10)(zod@3.24.2)': dependencies: '@noble/ciphers': 1.2.1 '@noble/curves': 1.8.1 '@noble/hashes': 1.7.1 '@walletconnect/jsonrpc-utils': 1.0.8 - '@walletconnect/keyvaluestorage': 1.1.1(@react-native-async-storage/async-storage@1.24.0(react-native@0.78.2(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@19.1.0)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10))) + '@walletconnect/keyvaluestorage': 1.1.1(@react-native-async-storage/async-storage@1.24.0(react-native@0.78.2(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@19.1.0)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10)))(ioredis@5.7.0) '@walletconnect/relay-api': 1.0.11 '@walletconnect/relay-auth': 1.1.0 '@walletconnect/safe-json': 1.0.2 '@walletconnect/time': 1.0.2 - '@walletconnect/types': 2.19.2(@react-native-async-storage/async-storage@1.24.0(react-native@0.78.2(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@19.1.0)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10))) + '@walletconnect/types': 2.19.2(@react-native-async-storage/async-storage@1.24.0(react-native@0.78.2(@babel/core@7.26.10)(@babel/preset-env@7.26.9(@babel/core@7.26.10))(@types/react@19.1.0)(bufferutil@4.0.9)(react@19.1.0)(utf-8-validate@5.0.10)))(ioredis@5.7.0) '@walletconnect/window-getters': 1.0.1 '@walletconnect/window-metadata': 1.0.1 bs58: 6.0.0