diff --git a/examples/01-simple-transfer/.mocharc.json b/examples/01-simple-transfer/.mocharc.json new file mode 100644 index 0000000..88e536a --- /dev/null +++ b/examples/01-simple-transfer/.mocharc.json @@ -0,0 +1,3 @@ +{ + "node-option": ["import=tsx/esm"] +} diff --git a/examples/02-simple-transfer-with-inputs/.mocharc.json b/examples/02-simple-transfer-with-inputs/.mocharc.json new file mode 100644 index 0000000..88e536a --- /dev/null +++ b/examples/02-simple-transfer-with-inputs/.mocharc.json @@ -0,0 +1,3 @@ +{ + "node-option": ["import=tsx/esm"] +} diff --git a/examples/02-simple-transfer-with-inputs/tests/task.spec.ts b/examples/02-simple-transfer-with-inputs/tests/task.spec.ts index 41bfd26..7385ecb 100644 --- a/examples/02-simple-transfer-with-inputs/tests/task.spec.ts +++ b/examples/02-simple-transfer-with-inputs/tests/task.spec.ts @@ -1,5 +1,5 @@ import { fp, OpType, randomEvmAddress } from '@mimicprotocol/sdk' -import { Context, ContractCallMock, runTask, Transfer } from '@mimicprotocol/test-ts' +import { Context, EvmCallQueryMock, runTask, Transfer } from '@mimicprotocol/test-ts' import { expect } from 'chai' import { Interface } from 'ethers' @@ -24,7 +24,7 @@ describe('Task', () => { maxFee: '0.1', // 0.1 tokens } - const calls: ContractCallMock[] = [ + const calls: EvmCallQueryMock[] = [ { request: { to: inputs.token, diff --git a/examples/03-transfer-balance-threshold/.mocharc.json b/examples/03-transfer-balance-threshold/.mocharc.json new file mode 100644 index 0000000..88e536a --- /dev/null +++ b/examples/03-transfer-balance-threshold/.mocharc.json @@ -0,0 +1,3 @@ +{ + "node-option": ["import=tsx/esm"] +} diff --git a/examples/03-transfer-balance-threshold/src/task.ts b/examples/03-transfer-balance-threshold/src/task.ts index 7c5e685..e6b9071 100644 --- a/examples/03-transfer-balance-threshold/src/task.ts +++ b/examples/03-transfer-balance-threshold/src/task.ts @@ -5,7 +5,9 @@ import { inputs } from './types' export default function main(): void { const tokenContract = new ERC20(inputs.token, inputs.chainId) - const balance = tokenContract.balanceOf(inputs.recipient) + const balanceResult = tokenContract.balanceOf(inputs.recipient) + if (balanceResult.isError) throw new Error(balanceResult.error) + const balance = balanceResult.value const token = ERC20Token.fromAddress(inputs.token, inputs.chainId) const threshold = BigInt.fromStringDecimal(inputs.threshold, token.decimals) diff --git a/examples/03-transfer-balance-threshold/tests/task.spec.ts b/examples/03-transfer-balance-threshold/tests/task.spec.ts index e92510d..891ebc1 100644 --- a/examples/03-transfer-balance-threshold/tests/task.spec.ts +++ b/examples/03-transfer-balance-threshold/tests/task.spec.ts @@ -1,5 +1,5 @@ import { fp, OpType, randomEvmAddress } from '@mimicprotocol/sdk' -import { Context, ContractCallMock, runTask, Transfer } from '@mimicprotocol/test-ts' +import { Context, EvmCallQueryMock, runTask, Transfer } from '@mimicprotocol/test-ts' import { expect } from 'chai' import { Interface } from 'ethers' @@ -25,7 +25,7 @@ describe('Task', () => { threshold: '10.2', // 10.2 tokens } - const buildCalls = (balance: string): ContractCallMock[] => [ + const buildCalls = (balance: string): EvmCallQueryMock[] => [ { request: { to: inputs.token, diff --git a/examples/04-transfer-balance-threshold-with-oracles/.mocharc.json b/examples/04-transfer-balance-threshold-with-oracles/.mocharc.json new file mode 100644 index 0000000..88e536a --- /dev/null +++ b/examples/04-transfer-balance-threshold-with-oracles/.mocharc.json @@ -0,0 +1,3 @@ +{ + "node-option": ["import=tsx/esm"] +} diff --git a/examples/04-transfer-balance-threshold-with-oracles/src/task.ts b/examples/04-transfer-balance-threshold-with-oracles/src/task.ts index b7f9770..803334c 100644 --- a/examples/04-transfer-balance-threshold-with-oracles/src/task.ts +++ b/examples/04-transfer-balance-threshold-with-oracles/src/task.ts @@ -5,10 +5,14 @@ import { inputs } from './types' export default function main(): void { const tokenContract = new ERC20(inputs.token, inputs.chainId) - const balance = tokenContract.balanceOf(inputs.recipient) + const balanceResult = tokenContract.balanceOf(inputs.recipient) + if (balanceResult.isError) throw new Error(balanceResult.error) + const balance = balanceResult.value const token = ERC20Token.fromAddress(inputs.token, inputs.chainId) - const balanceInUsd = TokenAmount.fromBigInt(token, balance).toUsd() + const balanceInUsdResult = TokenAmount.fromBigInt(token, balance).toUsd() + if (balanceInUsdResult.isError) throw new Error(balanceInUsdResult.error) + const balanceInUsd = balanceInUsdResult.value const thresholdUsd = USD.fromStringDecimal(inputs.thresholdUsd) log.info(`Balance in USD: ${balanceInUsd}`) diff --git a/examples/04-transfer-balance-threshold-with-oracles/tests/task.spec.ts b/examples/04-transfer-balance-threshold-with-oracles/tests/task.spec.ts index d83dcf8..8325b1a 100644 --- a/examples/04-transfer-balance-threshold-with-oracles/tests/task.spec.ts +++ b/examples/04-transfer-balance-threshold-with-oracles/tests/task.spec.ts @@ -1,5 +1,5 @@ import { fp, OpType, randomEvmAddress } from '@mimicprotocol/sdk' -import { Context, ContractCallMock, GetPriceMock, runTask, Transfer } from '@mimicprotocol/test-ts' +import { Context, EvmCallQueryMock, runTask, TokenPriceQueryMock, Transfer } from '@mimicprotocol/test-ts' import { expect } from 'chai' import { Interface } from 'ethers' @@ -25,14 +25,14 @@ describe('Task', () => { thresholdUsd: '10.5', // 10.5 USD } - const prices: GetPriceMock[] = [ + const prices: TokenPriceQueryMock[] = [ { request: { token: inputs.token, chainId: inputs.chainId }, response: ['1000000000000000000'], // 1 token = 1 USD }, ] - const buildCalls = (balance: string): ContractCallMock[] => [ + const buildCalls = (balance: string): EvmCallQueryMock[] => [ { request: { to: inputs.token, diff --git a/examples/05-invest-aave-idle-balance/.mocharc.json b/examples/05-invest-aave-idle-balance/.mocharc.json new file mode 100644 index 0000000..88e536a --- /dev/null +++ b/examples/05-invest-aave-idle-balance/.mocharc.json @@ -0,0 +1,3 @@ +{ + "node-option": ["import=tsx/esm"] +} diff --git a/examples/05-invest-aave-idle-balance/src/task.ts b/examples/05-invest-aave-idle-balance/src/task.ts index dd37297..78d780b 100644 --- a/examples/05-invest-aave-idle-balance/src/task.ts +++ b/examples/05-invest-aave-idle-balance/src/task.ts @@ -9,15 +9,25 @@ export default function main(): void { const aToken = ERC20Token.fromAddress(inputs.aToken, inputs.chainId) const aTokenContract = new AaveToken(aToken.address, aToken.chainId) - const underlyingTokenAddress = aTokenContract.UNDERLYING_ASSET_ADDRESS() + const underlyingTokenAddressResult = aTokenContract.UNDERLYING_ASSET_ADDRESS() + if (underlyingTokenAddressResult.isError) throw new Error(underlyingTokenAddressResult.error) + const underlyingTokenAddress = underlyingTokenAddressResult.value const underlyingToken = ERC20Token.fromAddress(underlyingTokenAddress, aToken.chainId) - const aavePool = new AavePool(aTokenContract.POOL(), inputs.chainId) + const aavePoolAddressResult = aTokenContract.POOL() + if (aavePoolAddressResult.isError) throw new Error(aavePoolAddressResult.error) + const aavePoolAddress = aavePoolAddressResult.value + const aavePool = new AavePool(aavePoolAddress, inputs.chainId) const underlyingTokenContract = new ERC20(underlyingToken.address, underlyingToken.chainId) - const underlyingTokenBalanceAmount = underlyingTokenContract.balanceOf(inputs.smartAccount) + const underlyingTokenBalanceAmountResult = underlyingTokenContract.balanceOf(inputs.smartAccount) + if (underlyingTokenBalanceAmountResult.isError) throw new Error(underlyingTokenBalanceAmountResult.error) + const underlyingTokenBalanceAmount = underlyingTokenBalanceAmountResult.value + const underlyingTokenBalance = TokenAmount.fromBigInt(underlyingToken, underlyingTokenBalanceAmount) - const underlyingTokenBalanceInUsd = underlyingTokenBalance.toUsd() + const underlyingTokenBalanceInUsdResult = underlyingTokenBalance.toUsd() + if (underlyingTokenBalanceInUsdResult.isError) throw new Error(underlyingTokenBalanceInUsdResult.error) + const underlyingTokenBalanceInUsd = underlyingTokenBalanceInUsdResult.value const thresholdUsd = USD.fromStringDecimal(inputs.thresholdUsd) log.info(`Underlying balance in USD: ${underlyingTokenBalanceInUsd}`) diff --git a/examples/05-invest-aave-idle-balance/tests/task.spec.ts b/examples/05-invest-aave-idle-balance/tests/task.spec.ts index c2b3b85..be2a574 100644 --- a/examples/05-invest-aave-idle-balance/tests/task.spec.ts +++ b/examples/05-invest-aave-idle-balance/tests/task.spec.ts @@ -1,5 +1,5 @@ import { EvmCallIntent, OpType, randomEvmAddress } from '@mimicprotocol/sdk' -import { Context, ContractCallMock, GetPriceMock, runTask } from '@mimicprotocol/test-ts' +import { Context, EvmCallQueryMock, runTask, TokenPriceQueryMock } from '@mimicprotocol/test-ts' import { expect } from 'chai' import { Interface } from 'ethers' @@ -31,7 +31,7 @@ describe('Task', () => { const underlyingToken = randomEvmAddress() // USDC const aavePool = randomEvmAddress() - const prices: GetPriceMock[] = [ + const prices: TokenPriceQueryMock[] = [ { request: { token: inputs.aToken, chainId: inputs.chainId }, response: ['1000000000000000000'], // 1 aOptUSDC = 1 USD @@ -42,7 +42,7 @@ describe('Task', () => { }, ] - const buildCalls = (balance: string): ContractCallMock[] => [ + const buildCalls = (balance: string): EvmCallQueryMock[] => [ // aOptUSDC { request: { diff --git a/examples/06-withdraw-from-aave-balance-threshold/.mocharc.json b/examples/06-withdraw-from-aave-balance-threshold/.mocharc.json new file mode 100644 index 0000000..88e536a --- /dev/null +++ b/examples/06-withdraw-from-aave-balance-threshold/.mocharc.json @@ -0,0 +1,3 @@ +{ + "node-option": ["import=tsx/esm"] +} diff --git a/examples/06-withdraw-from-aave-balance-threshold/src/task.ts b/examples/06-withdraw-from-aave-balance-threshold/src/task.ts index f373df7..d41714a 100644 --- a/examples/06-withdraw-from-aave-balance-threshold/src/task.ts +++ b/examples/06-withdraw-from-aave-balance-threshold/src/task.ts @@ -4,37 +4,45 @@ import { AaveToken } from './types/AaveToken' import { ERC20 } from './types/ERC20' import { inputs } from './types' -const BPS_DENOMINATOR = BigInt.fromI32(10_000) - export default function main(): void { - if (BigInt.fromI32(inputs.slippageBps as i32) > BPS_DENOMINATOR) throw new Error('Slippage must be between 0 and 100') - const aToken = ERC20Token.fromAddress(inputs.aToken, inputs.chainId) const aTokenContract = new AaveToken(aToken.address, aToken.chainId) - const underlyingTokenAddress = aTokenContract.UNDERLYING_ASSET_ADDRESS() + const underlyingTokenAddressResult = aTokenContract.UNDERLYING_ASSET_ADDRESS() + if (underlyingTokenAddressResult.isError) throw new Error(underlyingTokenAddressResult.error) + const underlyingTokenAddress = underlyingTokenAddressResult.value const underlyingToken = ERC20Token.fromAddress(underlyingTokenAddress, aToken.chainId) const underlyingTokenContract = new ERC20(underlyingToken.address, underlyingToken.chainId) - const underlyingTokenBalanceAmount = underlyingTokenContract.balanceOf(inputs.recipient) + const underlyingTokenBalanceAmountResult = underlyingTokenContract.balanceOf(inputs.recipient) + if (underlyingTokenBalanceAmountResult.isError) throw new Error(underlyingTokenBalanceAmountResult.error) + const underlyingTokenBalanceAmount = underlyingTokenBalanceAmountResult.value const underlyingTokenBalance = TokenAmount.fromBigInt(underlyingToken, underlyingTokenBalanceAmount) - const underlyingTokenBalanceInUsd = underlyingTokenBalance.toUsd() + + const underlyingTokenBalanceInUsdResult = underlyingTokenBalance.toUsd() + if (underlyingTokenBalanceInUsdResult.isError) throw new Error(underlyingTokenBalanceInUsdResult.error) + const underlyingTokenBalanceInUsd = underlyingTokenBalanceInUsdResult.value const thresholdUsd = USD.fromStringDecimal(inputs.thresholdUsd) log.info(`Recipient underlying balance in USD: ${underlyingTokenBalanceInUsd}`) if (underlyingTokenBalanceInUsd.gt(thresholdUsd)) log.info('Recipient threshold not met') else { const depositAmountUsd = thresholdUsd.times(BigInt.fromI32(2)).minus(underlyingTokenBalanceInUsd) - const aTokenDepositAmount = depositAmountUsd.toTokenAmount(aToken) + const aTokenDepositAmountResult = depositAmountUsd.toTokenAmount(aToken) + if (aTokenDepositAmountResult.isError) throw new Error(aTokenDepositAmountResult.error) + const aTokenDepositAmount = aTokenDepositAmountResult.value const me = environment.getContext().user - const aTokenBalanceAmount = aTokenContract.balanceOf(me) + const aTokenBalanceAmountResult = aTokenContract.balanceOf(me) + if (aTokenBalanceAmountResult.isError) throw new Error(aTokenBalanceAmountResult.error) + const aTokenBalanceAmount = aTokenBalanceAmountResult.value const aTokenBalance = TokenAmount.fromBigInt(aToken, aTokenBalanceAmount) if (aTokenBalance.lt(aTokenDepositAmount)) log.info('Sender balance not enough') else { - const slippageFactor = BPS_DENOMINATOR.minus(BigInt.fromI32(inputs.slippageBps as i32)) - const minAmountOut = aTokenDepositAmount.toTokenAmount(underlyingToken).times(slippageFactor).div(BPS_DENOMINATOR) + const expectedOutResult = aTokenDepositAmount.toTokenAmount(underlyingToken) + if (expectedOutResult.isError) throw new Error(expectedOutResult.error) + const minAmountOut = expectedOutResult.value.applySlippageBps(inputs.slippageBps as i32) log.info(`Min amount out: ${minAmountOut}`) SwapBuilder.forChain(inputs.chainId) diff --git a/examples/06-withdraw-from-aave-balance-threshold/tests/task.spec.ts b/examples/06-withdraw-from-aave-balance-threshold/tests/task.spec.ts index 1a1b9bb..6440107 100644 --- a/examples/06-withdraw-from-aave-balance-threshold/tests/task.spec.ts +++ b/examples/06-withdraw-from-aave-balance-threshold/tests/task.spec.ts @@ -1,5 +1,5 @@ import { OpType, randomEvmAddress } from '@mimicprotocol/sdk' -import { Context, ContractCallMock, GetPriceMock, runTask, Swap } from '@mimicprotocol/test-ts' +import { Context, EvmCallQueryMock, runTask, Swap, TokenPriceQueryMock } from '@mimicprotocol/test-ts' import { expect } from 'chai' import { Interface } from 'ethers' @@ -28,7 +28,7 @@ describe('Task', () => { const underlyingToken = randomEvmAddress() // USDC - const prices: GetPriceMock[] = [ + const prices: TokenPriceQueryMock[] = [ { request: { token: inputs.aToken, chainId: inputs.chainId }, response: ['1000000000000000000'], // 1 aOptUSDC = 1 USD @@ -39,7 +39,7 @@ describe('Task', () => { }, ] - const buildCalls = (recipientBalance: string, userBalance: string): ContractCallMock[] => [ + const buildCalls = (recipientBalance: string, userBalance: string): EvmCallQueryMock[] => [ // aOptUSDC { request: { diff --git a/examples/07-withdraw-from-aave-swap-and-transfer/.mocharc.json b/examples/07-withdraw-from-aave-swap-and-transfer/.mocharc.json new file mode 100644 index 0000000..88e536a --- /dev/null +++ b/examples/07-withdraw-from-aave-swap-and-transfer/.mocharc.json @@ -0,0 +1,3 @@ +{ + "node-option": ["import=tsx/esm"] +} diff --git a/examples/07-withdraw-from-aave-swap-and-transfer/src/task.ts b/examples/07-withdraw-from-aave-swap-and-transfer/src/task.ts index 87abca1..2ab93e4 100644 --- a/examples/07-withdraw-from-aave-swap-and-transfer/src/task.ts +++ b/examples/07-withdraw-from-aave-swap-and-transfer/src/task.ts @@ -28,21 +28,26 @@ export default function main(): void { const context = environment.getContext() - const userTokens = environment.getRelevantTokens( + const userTokensResult = environment.relevantTokensQuery( context.user, [chainId], USD.zero(), [USDC, aUSDC], ListType.AllowList ) + if (userTokensResult.isError) throw new Error(userTokensResult.error) + const userTokens = userTokensResult.value - const smartAccountTokens = environment.getRelevantTokens( + const smartAccountTokensResult = environment.relevantTokensQuery( inputs.smartAccount, [chainId], USD.zero(), [aUSDC], ListType.AllowList ) + if (smartAccountTokensResult.isError) throw new Error(smartAccountTokensResult.error) + const smartAccountTokens = smartAccountTokensResult.value + const aUsdcSmartAccount = findTokenAmount(smartAccountTokens, aUSDC) const usdcUser = findTokenAmount(userTokens, USDC) const aUsdcUser = findTokenAmount(userTokens, aUSDC) diff --git a/examples/07-withdraw-from-aave-swap-and-transfer/tests/task.spec.ts b/examples/07-withdraw-from-aave-swap-and-transfer/tests/task.spec.ts index 9aa2a69..55d2119 100644 --- a/examples/07-withdraw-from-aave-swap-and-transfer/tests/task.spec.ts +++ b/examples/07-withdraw-from-aave-swap-and-transfer/tests/task.spec.ts @@ -2,11 +2,11 @@ import { Chains, OpType, randomEvmAddress } from '@mimicprotocol/sdk' import { Call, Context, - ContractCallMock, - GetPriceMock, - GetRelevantTokensMock, + EvmCallQueryMock, + RelevantTokensQueryMock, runTask, Swap, + TokenPriceQueryMock, Transfer, } from '@mimicprotocol/test-ts' import { expect } from 'chai' @@ -41,14 +41,14 @@ describe('Task', () => { maxFeeUsdt: '1', // 1 USDT } - const calls: ContractCallMock[] = [ + const calls: EvmCallQueryMock[] = [ { request: { to: tokens.USDT, chainId, fnSelector: ERC20Interface.getFunction('decimals')!.selector }, response: { value: '6', abiType: 'uint8' }, }, ] - const prices: GetPriceMock[] = [ + const prices: TokenPriceQueryMock[] = [ { request: { token: tokens.aUSDC, chainId }, response: ['1000000'], @@ -71,7 +71,7 @@ describe('Task', () => { aUsdcSmartAccountBalance: string usdcUserBalance: string aUsdcUserBalance: string - }): GetRelevantTokensMock[] => [ + }): RelevantTokensQueryMock[] => [ { request: { owner: inputs.smartAccount, diff --git a/examples/08-relevant-tokens-query/.mocharc.json b/examples/08-relevant-tokens-query/.mocharc.json new file mode 100644 index 0000000..88e536a --- /dev/null +++ b/examples/08-relevant-tokens-query/.mocharc.json @@ -0,0 +1,3 @@ +{ + "node-option": ["import=tsx/esm"] +} diff --git a/examples/08-relevant-tokens-query/src/task.ts b/examples/08-relevant-tokens-query/src/task.ts index 9b55616..19c2f9c 100644 --- a/examples/08-relevant-tokens-query/src/task.ts +++ b/examples/08-relevant-tokens-query/src/task.ts @@ -4,7 +4,15 @@ import { inputs } from './types' export default function main(): void { const context = environment.getContext() - const tokens = environment.getRelevantTokens(context.user, [inputs.chainId], USD.zero(), [], ListType.DenyList) + const tokensResult = environment.relevantTokensQuery( + context.user, + [inputs.chainId], + USD.zero(), + [], + ListType.DenyList + ) + if (tokensResult.isError) throw new Error(tokensResult.error) + const tokens = tokensResult.value const builder = TransferBuilder.forChain(inputs.chainId) for (let i = 0; i < tokens.length; i++) { @@ -13,7 +21,7 @@ export default function main(): void { log.info(`Adding transfer for ${token} on chain ${inputs.chainId}`) } - if (builder.transfers.length == 0) { + if (builder.getTransfers().length === 0) { log.info(`No tokens found on chain ${inputs.chainId}`) return } diff --git a/examples/08-relevant-tokens-query/tests/task.spec.ts b/examples/08-relevant-tokens-query/tests/task.spec.ts index 4617c2d..ce18517 100644 --- a/examples/08-relevant-tokens-query/tests/task.spec.ts +++ b/examples/08-relevant-tokens-query/tests/task.spec.ts @@ -1,5 +1,5 @@ import { NATIVE_TOKEN_ADDRESS, OpType, randomEvmAddress } from '@mimicprotocol/sdk' -import { ContractCallMock, GetRelevantTokensMock, runTask, Transfer } from '@mimicprotocol/test-ts' +import { EvmCallQueryMock, RelevantTokensQueryMock, runTask, Transfer } from '@mimicprotocol/test-ts' import { expect } from 'chai' import { Interface } from 'ethers' @@ -25,7 +25,7 @@ describe('Task', () => { recipient: randomEvmAddress(), } - const calls: ContractCallMock[] = [ + const calls: EvmCallQueryMock[] = [ { request: { chainId, to: USDC, fnSelector: ERC20Interface.getFunction('decimals')!.selector }, response: { value: '6', abiType: 'uint8' }, @@ -37,7 +37,7 @@ describe('Task', () => { ] describe('when the user has some balance for the requested tokens', () => { - const relevantTokens: GetRelevantTokensMock[] = [ + const relevantTokens: RelevantTokensQueryMock[] = [ { request: { owner: context.user, @@ -87,7 +87,7 @@ describe('Task', () => { }) describe('when the user does not have balance for the requested tokens', () => { - const relevantTokens: GetRelevantTokensMock[] = [ + const relevantTokens: RelevantTokensQueryMock[] = [ { request: { owner: context.user, diff --git a/examples/09-subgraph-query/.mocharc.json b/examples/09-subgraph-query/.mocharc.json new file mode 100644 index 0000000..88e536a --- /dev/null +++ b/examples/09-subgraph-query/.mocharc.json @@ -0,0 +1,3 @@ +{ + "node-option": ["import=tsx/esm"] +} diff --git a/examples/09-subgraph-query/src/task.ts b/examples/09-subgraph-query/src/task.ts index d5ddd4b..f35597c 100644 --- a/examples/09-subgraph-query/src/task.ts +++ b/examples/09-subgraph-query/src/task.ts @@ -25,7 +25,9 @@ export default function main(): void { if (BigInt.fromI32(inputs.slippageBps as i32) > BPS_DENOMINATOR) throw new Error('Slippage must be between 0 and 100') const me = environment.getContext().user - const amountIn = new ERC20(inputs.tokenIn, inputs.chainId).balanceOf(me) + const amountInResult = new ERC20(inputs.tokenIn, inputs.chainId).balanceOf(me) + if (amountInResult.isError) throw new Error(amountInResult.error) + const amountIn = amountInResult.value if (amountIn.isZero()) throw new Error('No amount in to swap') const price = getTokenPrice(inputs.chainId, inputs.subgraphId, inputs.tokenIn, inputs.tokenOut) @@ -52,8 +54,9 @@ function getTokenPrice(chainId: i32, subgraphId: string, tokenIn: Address, token } const query = `{pools(where: { token0: "${token0}", token1: "${token1}" }) {token0Price token1Price}}` - const response = environment.subgraphQuery(chainId, subgraphId, query, null) - const data = JSON.parse(response.data) + const queryResult = environment.subgraphQuery(chainId, subgraphId, query, null) + if (queryResult.isError) throw new Error(queryResult.error) + const data = JSON.parse(queryResult.value.data) if (tokenIn == token0 && tokenOut === token1) { return BigInt.fromStringDecimal(data.pools[0].token1Price, PRICE_PRECISION) diff --git a/examples/09-subgraph-query/tests/task.spec.ts b/examples/09-subgraph-query/tests/task.spec.ts index c0ea6a7..f2541aa 100644 --- a/examples/09-subgraph-query/tests/task.spec.ts +++ b/examples/09-subgraph-query/tests/task.spec.ts @@ -1,5 +1,5 @@ import { OpType, randomEvmAddress } from '@mimicprotocol/sdk' -import { Context, ContractCallMock, runTask, SubgraphQueryMock, Swap } from '@mimicprotocol/test-ts' +import { Context, EvmCallQueryMock, runTask, SubgraphQueryMock, Swap } from '@mimicprotocol/test-ts' import { expect } from 'chai' import { Interface } from 'ethers' @@ -39,7 +39,7 @@ describe('Task', () => { }, ] - const buildCalls = (balance: string): ContractCallMock[] => [ + const buildCalls = (balance: string): EvmCallQueryMock[] => [ { request: { to: inputs.tokenIn, diff --git a/examples/10-rebalancing-tokens/.mocharc.json b/examples/10-rebalancing-tokens/.mocharc.json new file mode 100644 index 0000000..88e536a --- /dev/null +++ b/examples/10-rebalancing-tokens/.mocharc.json @@ -0,0 +1,3 @@ +{ + "node-option": ["import=tsx/esm"] +} diff --git a/examples/10-rebalancing-tokens/src/task.ts b/examples/10-rebalancing-tokens/src/task.ts index 8fc90c4..5f87692 100644 --- a/examples/10-rebalancing-tokens/src/task.ts +++ b/examples/10-rebalancing-tokens/src/task.ts @@ -17,7 +17,9 @@ function shareByBps(amountUSD: USD, bps: i32): USD { function getTokenAmount(chainId: u32, tokenAddress: Address): TokenAmount { const me = environment.getContext().user const contract = new ERC20(tokenAddress, chainId) - const balance = contract.balanceOf(me) + const balanceResult = contract.balanceOf(me) + if (balanceResult.isError) throw new Error(balanceResult.error) + const balance = balanceResult.value const token = ERC20Token.fromAddress(tokenAddress, chainId) return TokenAmount.fromBigInt(token, balance) } @@ -48,7 +50,11 @@ export default function main(): void { getTokenAmount(inputs.chainId, tokenAddresses[2]), ] - const currentBalancesUsd = [tokenAmounts[0].toUsd(), tokenAmounts[1].toUsd(), tokenAmounts[2].toUsd()] + const currentBalancesUsd = [ + tokenAmounts[0].toUsd().value, + tokenAmounts[1].toUsd().value, + tokenAmounts[2].toUsd().value, + ] const totalPortfolioUSD = currentBalancesUsd[0].plus(currentBalancesUsd[1]).plus(currentBalancesUsd[2]) if (totalPortfolioUSD.le(USD.zero())) { log.info('No rebalance needed (total USD is zero)') @@ -84,8 +90,12 @@ export default function main(): void { const surplusTokenIndex = surpluses[surplusIndex].index const deficitTokenIndex = deficits[deficitIndex].index - const tokenInAmount = movedUSD.toTokenAmount(tokensMetadata[surplusTokenIndex]) - const expectedTokenOutAmount = movedUSD.toTokenAmount(tokensMetadata[deficitTokenIndex]) + const tokenInAmountResult = movedUSD.toTokenAmount(tokensMetadata[surplusTokenIndex]) + if (tokenInAmountResult.isError) throw new Error(tokenInAmountResult.error) + const tokenInAmount = tokenInAmountResult.value + const expectedTokenOutAmounResult = movedUSD.toTokenAmount(tokensMetadata[deficitTokenIndex]) + if (expectedTokenOutAmounResult.isError) throw new Error(expectedTokenOutAmounResult.error) + const expectedTokenOutAmount = expectedTokenOutAmounResult.value const slippageFactor = BPS_DENOMINATOR.minus(BigInt.fromI32(inputs.slippageBps as i32)) const minAmountOut = expectedTokenOutAmount.amount.times(slippageFactor).div(BPS_DENOMINATOR) diff --git a/examples/10-rebalancing-tokens/tests/task.spec.ts b/examples/10-rebalancing-tokens/tests/task.spec.ts index 198ae61..d492d90 100644 --- a/examples/10-rebalancing-tokens/tests/task.spec.ts +++ b/examples/10-rebalancing-tokens/tests/task.spec.ts @@ -1,5 +1,5 @@ import { Chains, OpType, randomEvmAddress } from '@mimicprotocol/sdk' -import { ContractCallMock, runTask, Swap } from '@mimicprotocol/test-ts' +import { EvmCallQueryMock, runTask, Swap } from '@mimicprotocol/test-ts' import { expect } from 'chai' import { Interface } from 'ethers' @@ -33,7 +33,7 @@ describe('Task', () => { slippageBps: 50, // 0.50% } - const buildErc20Calls = (balanceWBTC: string, balanceWETH: string, balanceDAI: string): ContractCallMock[] => [ + const buildErc20Calls = (balanceWBTC: string, balanceWETH: string, balanceDAI: string): EvmCallQueryMock[] => [ // WBTC { request: { diff --git a/examples/11-automated-refunds/.mocharc.json b/examples/11-automated-refunds/.mocharc.json new file mode 100644 index 0000000..88e536a --- /dev/null +++ b/examples/11-automated-refunds/.mocharc.json @@ -0,0 +1,3 @@ +{ + "node-option": ["import=tsx/esm"] +} diff --git a/examples/11-automated-refunds/tests/task.spec.ts b/examples/11-automated-refunds/tests/task.spec.ts index 2c16d47..1ef8107 100644 --- a/examples/11-automated-refunds/tests/task.spec.ts +++ b/examples/11-automated-refunds/tests/task.spec.ts @@ -1,5 +1,5 @@ import { Chains, fp, OpType, randomEvmAddress } from '@mimicprotocol/sdk' -import { Context, ContractCallMock, runTask, Transfer } from '@mimicprotocol/test-ts' +import { Context, EvmCallQueryMock, runTask, Transfer } from '@mimicprotocol/test-ts' import { expect } from 'chai' import { Interface } from 'ethers' @@ -26,7 +26,7 @@ describe('Task', () => { recipient: randomEvmAddress(), } - const calls: ContractCallMock[] = [ + const calls: EvmCallQueryMock[] = [ { request: { to: inputs.token, chainId, fnSelector: ERC20Interface.getFunction('decimals')!.selector }, response: { value: '6', abiType: 'uint8' }, diff --git a/examples/12-dollar-cost-averaging/.mocharc.json b/examples/12-dollar-cost-averaging/.mocharc.json new file mode 100644 index 0000000..88e536a --- /dev/null +++ b/examples/12-dollar-cost-averaging/.mocharc.json @@ -0,0 +1,3 @@ +{ + "node-option": ["import=tsx/esm"] +} diff --git a/examples/12-dollar-cost-averaging/src/task.ts b/examples/12-dollar-cost-averaging/src/task.ts index 131803c..53a1bab 100644 --- a/examples/12-dollar-cost-averaging/src/task.ts +++ b/examples/12-dollar-cost-averaging/src/task.ts @@ -1,9 +1,7 @@ -import { BigInt, ERC20Token, log, SwapBuilder, TokenAmount } from '@mimicprotocol/lib-ts' +import { ERC20Token, log, SwapBuilder, TokenAmount } from '@mimicprotocol/lib-ts' import { inputs } from './types' -const BPS_DENOMINATOR = BigInt.fromI32(10_000) - export default function main(): void { // Log input parameters log.info( @@ -16,11 +14,12 @@ export default function main(): void { // Create amount from decimal string and estimate amount out const amountIn = TokenAmount.fromStringDecimal(tokenIn, inputs.amount) - const expectedOut = amountIn.toTokenAmount(tokenOut) + const expectedOutResult = amountIn.toTokenAmount(tokenOut) + if (expectedOutResult.isError) throw new Error(expectedOutResult.error) + const expectedOut = expectedOutResult.value // Apply slippage to calculate the expected minimum amount out - const slippageFactor = BPS_DENOMINATOR.minus(BigInt.fromI32(inputs.slippageBps as i32)) - const minAmountOut = expectedOut.times(slippageFactor).div(BPS_DENOMINATOR) + const minAmountOut = expectedOut.applySlippageBps(inputs.slippageBps as i32) log.info(`Calculated minOut: ${minAmountOut} (equivalent=${expectedOut}, slippageBps=${inputs.slippageBps})`) // Create and execute swap diff --git a/examples/12-dollar-cost-averaging/tests/task.spec.ts b/examples/12-dollar-cost-averaging/tests/task.spec.ts index 1d46c4b..edd4566 100644 --- a/examples/12-dollar-cost-averaging/tests/task.spec.ts +++ b/examples/12-dollar-cost-averaging/tests/task.spec.ts @@ -1,5 +1,5 @@ import { Chains, fp, OpType, randomEvmAddress } from '@mimicprotocol/sdk' -import { Context, ContractCallMock, GetPriceMock, runTask, Swap } from '@mimicprotocol/test-ts' +import { Context, EvmCallQueryMock, runTask, Swap, TokenPriceQueryMock } from '@mimicprotocol/test-ts' import { expect } from 'chai' import { Interface } from 'ethers' @@ -29,7 +29,7 @@ describe('Task', () => { recipient: context.user!, } - const prices: GetPriceMock[] = [ + const prices: TokenPriceQueryMock[] = [ { request: { token: USDC, chainId }, response: [fp(1).toString()], // 1 USDC = 1 USD @@ -40,7 +40,7 @@ describe('Task', () => { }, ] - const calls: ContractCallMock[] = [ + const calls: EvmCallQueryMock[] = [ // USDC { request: { to: USDC, chainId, fnSelector: ERC20Interface.getFunction('decimals')!.selector }, diff --git a/examples/13-bridge-and-invest-aave/.mocharc.json b/examples/13-bridge-and-invest-aave/.mocharc.json new file mode 100644 index 0000000..88e536a --- /dev/null +++ b/examples/13-bridge-and-invest-aave/.mocharc.json @@ -0,0 +1,3 @@ +{ + "node-option": ["import=tsx/esm"] +} diff --git a/examples/13-bridge-and-invest-aave/tests/bridge.spec.ts b/examples/13-bridge-and-invest-aave/tests/bridge.spec.ts index 2b2c4a4..2db4edb 100644 --- a/examples/13-bridge-and-invest-aave/tests/bridge.spec.ts +++ b/examples/13-bridge-and-invest-aave/tests/bridge.spec.ts @@ -1,5 +1,5 @@ import { Chains, fp, OpType, randomEvmAddress } from '@mimicprotocol/sdk' -import { Context, ContractCallMock, Inputs, runTask, Swap } from '@mimicprotocol/test-ts' +import { Context, EvmCallQueryMock, Inputs, runTask, Swap } from '@mimicprotocol/test-ts' import { expect } from 'chai' import { AbiCoder, Interface, keccak256, toUtf8Bytes } from 'ethers' @@ -36,7 +36,7 @@ describe('Bridge', () => { maxFee: '0.5', // 0.5 feeToken } - const calls: ContractCallMock[] = [ + const calls: EvmCallQueryMock[] = [ { request: { to: sourceUsdc, chainId: sourceChain, fnSelector: ERC20Interface.getFunction('decimals')!.selector }, response: { value: decimals.toString(), abiType: 'uint8' }, diff --git a/examples/13-bridge-and-invest-aave/tests/invest.spec.ts b/examples/13-bridge-and-invest-aave/tests/invest.spec.ts index 6a2f7d5..91c98cd 100644 --- a/examples/13-bridge-and-invest-aave/tests/invest.spec.ts +++ b/examples/13-bridge-and-invest-aave/tests/invest.spec.ts @@ -8,7 +8,7 @@ import { randomSig, TriggerType, } from '@mimicprotocol/sdk' -import { Call, Context, ContractCallMock, Inputs, runTask } from '@mimicprotocol/test-ts' +import { Call, Context, EvmCallQueryMock, Inputs, runTask } from '@mimicprotocol/test-ts' import { expect } from 'chai' import { AbiCoder, Interface } from 'ethers' @@ -37,6 +37,8 @@ describe('Invest', () => { const trigger = { type: TriggerType.Event, data: encodeEventExecution({ + address: settler, + chainId, blockHash: randomHex(32), index: 0, topics: encodedEvent.topics, @@ -58,7 +60,7 @@ describe('Invest', () => { maxFee: '0.5', // 0.5 feeToken } - const calls: ContractCallMock[] = [ + const calls: EvmCallQueryMock[] = [ { request: { to: USDC, chainId, fnSelector: ERC20Interface.getFunction('decimals')!.selector }, response: { value: decimals.toString(), abiType: 'uint8' }, diff --git a/examples/14-fee-collection/.mocharc.json b/examples/14-fee-collection/.mocharc.json new file mode 100644 index 0000000..88e536a --- /dev/null +++ b/examples/14-fee-collection/.mocharc.json @@ -0,0 +1,3 @@ +{ + "node-option": ["import=tsx/esm"] +} diff --git a/examples/14-fee-collection/src/task.ts b/examples/14-fee-collection/src/task.ts index 27b5119..a09b597 100644 --- a/examples/14-fee-collection/src/task.ts +++ b/examples/14-fee-collection/src/task.ts @@ -21,7 +21,9 @@ export default function main(): void { const context = environment.getContext() // Find tokens with user's balance > 0 - const amountsIn = environment.getRelevantTokens(context.user, [chainId], USD.zero(), [], ListType.DenyList) + const amountsInResult = environment.relevantTokensQuery(context.user, [chainId], USD.zero(), [], ListType.DenyList) + if (amountsInResult.isError) throw new Error(amountsInResult.error) + const amountsIn = amountsInResult.value if (amountsIn.length == 0) { log.info(`No tokens found on chain ${chainId}`) @@ -33,7 +35,9 @@ export default function main(): void { for (let i = 0; i < amountsIn.length; i++) { const amountIn = amountsIn[i] - const amountOut = amountIn.toTokenAmount(USDC) + const amountOutResult = amountIn.toTokenAmount(USDC) + if (amountOutResult.isError) throw new Error(amountOutResult.error) + const amountOut = amountOutResult.value const minAmountOut = amountOut.times(slippageFactor).div(BPS_DENOMINATOR) // Note that the recipient will receive the USDC diff --git a/examples/14-fee-collection/tests/task.spec.ts b/examples/14-fee-collection/tests/task.spec.ts index 9ef6e3a..920e114 100644 --- a/examples/14-fee-collection/tests/task.spec.ts +++ b/examples/14-fee-collection/tests/task.spec.ts @@ -1,5 +1,12 @@ import { Chains, fp, OpType, randomEvmAddress } from '@mimicprotocol/sdk' -import { Context, ContractCallMock, GetPriceMock, GetRelevantTokensMock, runTask, Swap } from '@mimicprotocol/test-ts' +import { + Context, + EvmCallQueryMock, + RelevantTokensQueryMock, + runTask, + Swap, + TokenPriceQueryMock, +} from '@mimicprotocol/test-ts' import { expect } from 'chai' import { Interface } from 'ethers' @@ -27,13 +34,13 @@ describe('Task', () => { recipient: randomEvmAddress(), } - const prices: GetPriceMock[] = [ + const prices: TokenPriceQueryMock[] = [ { request: { token: USDC, chainId }, response: [fp(1).toString()] }, // 1 USDC = 1 USD { request: { token: WETH, chainId }, response: [fp(50).toString()] }, // 1 WETH = 50 USD { request: { token: WBTC, chainId }, response: [fp(100).toString()] }, // 1 WBTC = 100 USD ] - const calls: ContractCallMock[] = [ + const calls: EvmCallQueryMock[] = [ // USDC { request: { chainId, to: USDC, fnSelector: ERC20Interface.getFunction('decimals')!.selector }, @@ -64,7 +71,7 @@ describe('Task', () => { ] describe('when the user has some balance for the requested tokens', () => { - const relevantTokens: GetRelevantTokensMock[] = [ + const relevantTokens: RelevantTokensQueryMock[] = [ { request: { owner: context.user!, @@ -132,7 +139,7 @@ describe('Task', () => { }) describe('when the user does not have balance for the requested tokens', () => { - const relevantTokens: GetRelevantTokensMock[] = [ + const relevantTokens: RelevantTokensQueryMock[] = [ { request: { owner: context.user!, diff --git a/package.json b/package.json index 9165884..3cad13c 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,9 @@ "scripts": { "lint": "yarn workspaces run lint", "build": "yarn workspaces run build", - "test": "yarn workspaces run test" + "test": "yarn workspaces run test", + "codegen": "yarn workspaces run codegen", + "compile": "yarn workspaces run compile" }, "workspaces": { "packages": [ diff --git a/yarn.lock b/yarn.lock index 83227a5..e56a5e4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -12,135 +12,135 @@ resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.28.4.tgz#a70226016fabe25c5783b2f22d3e1c9bc5ca3326" integrity sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ== -"@esbuild/aix-ppc64@0.25.12": - version "0.25.12" - resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.25.12.tgz#80fcbe36130e58b7670511e888b8e88a259ed76c" - integrity sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA== - -"@esbuild/android-arm64@0.25.12": - version "0.25.12" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.25.12.tgz#8aa4965f8d0a7982dc21734bf6601323a66da752" - integrity sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg== - -"@esbuild/android-arm@0.25.12": - version "0.25.12" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.25.12.tgz#300712101f7f50f1d2627a162e6e09b109b6767a" - integrity sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg== - -"@esbuild/android-x64@0.25.12": - version "0.25.12" - resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.25.12.tgz#87dfb27161202bdc958ef48bb61b09c758faee16" - integrity sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg== - -"@esbuild/darwin-arm64@0.25.12": - version "0.25.12" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.25.12.tgz#79197898ec1ff745d21c071e1c7cc3c802f0c1fd" - integrity sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg== - -"@esbuild/darwin-x64@0.25.12": - version "0.25.12" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.25.12.tgz#146400a8562133f45c4d2eadcf37ddd09718079e" - integrity sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA== - -"@esbuild/freebsd-arm64@0.25.12": - version "0.25.12" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.12.tgz#1c5f9ba7206e158fd2b24c59fa2d2c8bb47ca0fe" - integrity sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg== - -"@esbuild/freebsd-x64@0.25.12": - version "0.25.12" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.25.12.tgz#ea631f4a36beaac4b9279fa0fcc6ca29eaeeb2b3" - integrity sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ== - -"@esbuild/linux-arm64@0.25.12": - version "0.25.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.25.12.tgz#e1066bce58394f1b1141deec8557a5f0a22f5977" - integrity sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ== - -"@esbuild/linux-arm@0.25.12": - version "0.25.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.25.12.tgz#452cd66b20932d08bdc53a8b61c0e30baf4348b9" - integrity sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw== - -"@esbuild/linux-ia32@0.25.12": - version "0.25.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.25.12.tgz#b24f8acc45bcf54192c7f2f3be1b53e6551eafe0" - integrity sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA== - -"@esbuild/linux-loong64@0.25.12": - version "0.25.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.25.12.tgz#f9cfffa7fc8322571fbc4c8b3268caf15bd81ad0" - integrity sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng== - -"@esbuild/linux-mips64el@0.25.12": - version "0.25.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.25.12.tgz#575a14bd74644ffab891adc7d7e60d275296f2cd" - integrity sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw== - -"@esbuild/linux-ppc64@0.25.12": - version "0.25.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.25.12.tgz#75b99c70a95fbd5f7739d7692befe60601591869" - integrity sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA== - -"@esbuild/linux-riscv64@0.25.12": - version "0.25.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.25.12.tgz#2e3259440321a44e79ddf7535c325057da875cd6" - integrity sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w== - -"@esbuild/linux-s390x@0.25.12": - version "0.25.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.25.12.tgz#17676cabbfe5928da5b2a0d6df5d58cd08db2663" - integrity sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg== - -"@esbuild/linux-x64@0.25.12": - version "0.25.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.25.12.tgz#0583775685ca82066d04c3507f09524d3cd7a306" - integrity sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw== - -"@esbuild/netbsd-arm64@0.25.12": - version "0.25.12" - resolved "https://registry.yarnpkg.com/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.12.tgz#f04c4049cb2e252fe96b16fed90f70746b13f4a4" - integrity sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg== - -"@esbuild/netbsd-x64@0.25.12": - version "0.25.12" - resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.25.12.tgz#77da0d0a0d826d7c921eea3d40292548b258a076" - integrity sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ== - -"@esbuild/openbsd-arm64@0.25.12": - version "0.25.12" - resolved "https://registry.yarnpkg.com/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.12.tgz#6296f5867aedef28a81b22ab2009c786a952dccd" - integrity sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A== - -"@esbuild/openbsd-x64@0.25.12": - version "0.25.12" - resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.25.12.tgz#f8d23303360e27b16cf065b23bbff43c14142679" - integrity sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw== - -"@esbuild/openharmony-arm64@0.25.12": - version "0.25.12" - resolved "https://registry.yarnpkg.com/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.12.tgz#49e0b768744a3924be0d7fd97dd6ce9b2923d88d" - integrity sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg== - -"@esbuild/sunos-x64@0.25.12": - version "0.25.12" - resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.25.12.tgz#a6ed7d6778d67e528c81fb165b23f4911b9b13d6" - integrity sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w== - -"@esbuild/win32-arm64@0.25.12": - version "0.25.12" - resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.25.12.tgz#9ac14c378e1b653af17d08e7d3ce34caef587323" - integrity sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg== - -"@esbuild/win32-ia32@0.25.12": - version "0.25.12" - resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.25.12.tgz#918942dcbbb35cc14fca39afb91b5e6a3d127267" - integrity sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ== - -"@esbuild/win32-x64@0.25.12": - version "0.25.12" - resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.25.12.tgz#9bdad8176be7811ad148d1f8772359041f46c6c5" - integrity sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA== +"@esbuild/aix-ppc64@0.27.2": + version "0.27.2" + resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.27.2.tgz#521cbd968dcf362094034947f76fa1b18d2d403c" + integrity sha512-GZMB+a0mOMZs4MpDbj8RJp4cw+w1WV5NYD6xzgvzUJ5Ek2jerwfO2eADyI6ExDSUED+1X8aMbegahsJi+8mgpw== + +"@esbuild/android-arm64@0.27.2": + version "0.27.2" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.27.2.tgz#61ea550962d8aa12a9b33194394e007657a6df57" + integrity sha512-pvz8ZZ7ot/RBphf8fv60ljmaoydPU12VuXHImtAs0XhLLw+EXBi2BLe3OYSBslR4rryHvweW5gmkKFwTiFy6KA== + +"@esbuild/android-arm@0.27.2": + version "0.27.2" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.27.2.tgz#554887821e009dd6d853f972fde6c5143f1de142" + integrity sha512-DVNI8jlPa7Ujbr1yjU2PfUSRtAUZPG9I1RwW4F4xFB1Imiu2on0ADiI/c3td+KmDtVKNbi+nffGDQMfcIMkwIA== + +"@esbuild/android-x64@0.27.2": + version "0.27.2" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.27.2.tgz#a7ce9d0721825fc578f9292a76d9e53334480ba2" + integrity sha512-z8Ank4Byh4TJJOh4wpz8g2vDy75zFL0TlZlkUkEwYXuPSgX8yzep596n6mT7905kA9uHZsf/o2OJZubl2l3M7A== + +"@esbuild/darwin-arm64@0.27.2": + version "0.27.2" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.27.2.tgz#2cb7659bd5d109803c593cfc414450d5430c8256" + integrity sha512-davCD2Zc80nzDVRwXTcQP/28fiJbcOwvdolL0sOiOsbwBa72kegmVU0Wrh1MYrbuCL98Omp5dVhQFWRKR2ZAlg== + +"@esbuild/darwin-x64@0.27.2": + version "0.27.2" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.27.2.tgz#e741fa6b1abb0cd0364126ba34ca17fd5e7bf509" + integrity sha512-ZxtijOmlQCBWGwbVmwOF/UCzuGIbUkqB1faQRf5akQmxRJ1ujusWsb3CVfk/9iZKr2L5SMU5wPBi1UWbvL+VQA== + +"@esbuild/freebsd-arm64@0.27.2": + version "0.27.2" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.2.tgz#2b64e7116865ca172d4ce034114c21f3c93e397c" + integrity sha512-lS/9CN+rgqQ9czogxlMcBMGd+l8Q3Nj1MFQwBZJyoEKI50XGxwuzznYdwcav6lpOGv5BqaZXqvBSiB/kJ5op+g== + +"@esbuild/freebsd-x64@0.27.2": + version "0.27.2" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.27.2.tgz#e5252551e66f499e4934efb611812f3820e990bb" + integrity sha512-tAfqtNYb4YgPnJlEFu4c212HYjQWSO/w/h/lQaBK7RbwGIkBOuNKQI9tqWzx7Wtp7bTPaGC6MJvWI608P3wXYA== + +"@esbuild/linux-arm64@0.27.2": + version "0.27.2" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.27.2.tgz#dc4acf235531cd6984f5d6c3b13dbfb7ddb303cb" + integrity sha512-hYxN8pr66NsCCiRFkHUAsxylNOcAQaxSSkHMMjcpx0si13t1LHFphxJZUiGwojB1a/Hd5OiPIqDdXONia6bhTw== + +"@esbuild/linux-arm@0.27.2": + version "0.27.2" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.27.2.tgz#56a900e39240d7d5d1d273bc053daa295c92e322" + integrity sha512-vWfq4GaIMP9AIe4yj1ZUW18RDhx6EPQKjwe7n8BbIecFtCQG4CfHGaHuh7fdfq+y3LIA2vGS/o9ZBGVxIDi9hw== + +"@esbuild/linux-ia32@0.27.2": + version "0.27.2" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.27.2.tgz#d4a36d473360f6870efcd19d52bbfff59a2ed1cc" + integrity sha512-MJt5BRRSScPDwG2hLelYhAAKh9imjHK5+NE/tvnRLbIqUWa+0E9N4WNMjmp/kXXPHZGqPLxggwVhz7QP8CTR8w== + +"@esbuild/linux-loong64@0.27.2": + version "0.27.2" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.27.2.tgz#fcf0ab8c3eaaf45891d0195d4961cb18b579716a" + integrity sha512-lugyF1atnAT463aO6KPshVCJK5NgRnU4yb3FUumyVz+cGvZbontBgzeGFO1nF+dPueHD367a2ZXe1NtUkAjOtg== + +"@esbuild/linux-mips64el@0.27.2": + version "0.27.2" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.27.2.tgz#598b67d34048bb7ee1901cb12e2a0a434c381c10" + integrity sha512-nlP2I6ArEBewvJ2gjrrkESEZkB5mIoaTswuqNFRv/WYd+ATtUpe9Y09RnJvgvdag7he0OWgEZWhviS1OTOKixw== + +"@esbuild/linux-ppc64@0.27.2": + version "0.27.2" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.27.2.tgz#3846c5df6b2016dab9bc95dde26c40f11e43b4c0" + integrity sha512-C92gnpey7tUQONqg1n6dKVbx3vphKtTHJaNG2Ok9lGwbZil6DrfyecMsp9CrmXGQJmZ7iiVXvvZH6Ml5hL6XdQ== + +"@esbuild/linux-riscv64@0.27.2": + version "0.27.2" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.27.2.tgz#173d4475b37c8d2c3e1707e068c174bb3f53d07d" + integrity sha512-B5BOmojNtUyN8AXlK0QJyvjEZkWwy/FKvakkTDCziX95AowLZKR6aCDhG7LeF7uMCXEJqwa8Bejz5LTPYm8AvA== + +"@esbuild/linux-s390x@0.27.2": + version "0.27.2" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.27.2.tgz#f7a4790105edcab8a5a31df26fbfac1aa3dacfab" + integrity sha512-p4bm9+wsPwup5Z8f4EpfN63qNagQ47Ua2znaqGH6bqLlmJ4bx97Y9JdqxgGZ6Y8xVTixUnEkoKSHcpRlDnNr5w== + +"@esbuild/linux-x64@0.27.2": + version "0.27.2" + resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.27.2.tgz#2ecc1284b1904aeb41e54c9ddc7fcd349b18f650" + integrity sha512-uwp2Tip5aPmH+NRUwTcfLb+W32WXjpFejTIOWZFw/v7/KnpCDKG66u4DLcurQpiYTiYwQ9B7KOeMJvLCu/OvbA== + +"@esbuild/netbsd-arm64@0.27.2": + version "0.27.2" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.2.tgz#e2863c2cd1501845995cb11adf26f7fe4be527b0" + integrity sha512-Kj6DiBlwXrPsCRDeRvGAUb/LNrBASrfqAIok+xB0LxK8CHqxZ037viF13ugfsIpePH93mX7xfJp97cyDuTZ3cw== + +"@esbuild/netbsd-x64@0.27.2": + version "0.27.2" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.27.2.tgz#93f7609e2885d1c0b5a1417885fba8d1fcc41272" + integrity sha512-HwGDZ0VLVBY3Y+Nw0JexZy9o/nUAWq9MlV7cahpaXKW6TOzfVno3y3/M8Ga8u8Yr7GldLOov27xiCnqRZf0tCA== + +"@esbuild/openbsd-arm64@0.27.2": + version "0.27.2" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.2.tgz#a1985604a203cdc325fd47542e106fafd698f02e" + integrity sha512-DNIHH2BPQ5551A7oSHD0CKbwIA/Ox7+78/AWkbS5QoRzaqlev2uFayfSxq68EkonB+IKjiuxBFoV8ESJy8bOHA== + +"@esbuild/openbsd-x64@0.27.2": + version "0.27.2" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.27.2.tgz#8209e46c42f1ffbe6e4ef77a32e1f47d404ad42a" + integrity sha512-/it7w9Nb7+0KFIzjalNJVR5bOzA9Vay+yIPLVHfIQYG/j+j9VTH84aNB8ExGKPU4AzfaEvN9/V4HV+F+vo8OEg== + +"@esbuild/openharmony-arm64@0.27.2": + version "0.27.2" + resolved "https://registry.yarnpkg.com/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.2.tgz#8fade4441893d9cc44cbd7dcf3776f508ab6fb2f" + integrity sha512-LRBbCmiU51IXfeXk59csuX/aSaToeG7w48nMwA6049Y4J4+VbWALAuXcs+qcD04rHDuSCSRKdmY63sruDS5qag== + +"@esbuild/sunos-x64@0.27.2": + version "0.27.2" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.27.2.tgz#980d4b9703a16f0f07016632424fc6d9a789dfc2" + integrity sha512-kMtx1yqJHTmqaqHPAzKCAkDaKsffmXkPHThSfRwZGyuqyIeBvf08KSsYXl+abf5HDAPMJIPnbBfXvP2ZC2TfHg== + +"@esbuild/win32-arm64@0.27.2": + version "0.27.2" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.27.2.tgz#1c09a3633c949ead3d808ba37276883e71f6111a" + integrity sha512-Yaf78O/B3Kkh+nKABUF++bvJv5Ijoy9AN1ww904rOXZFLWVc5OLOfL56W+C8F9xn5JQZa3UX6m+IktJnIb1Jjg== + +"@esbuild/win32-ia32@0.27.2": + version "0.27.2" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.27.2.tgz#1b1e3a63ad4bef82200fef4e369e0fff7009eee5" + integrity sha512-Iuws0kxo4yusk7sw70Xa2E2imZU5HoixzxfGCdxwBdhiDgt9vX9VUCBhqcwY7/uh//78A1hMkkROMJq9l27oLQ== + +"@esbuild/win32-x64@0.27.2": + version "0.27.2" + resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.27.2.tgz#9e585ab6086bef994c6e8a5b3a0481219ada862b" + integrity sha512-sRdU18mcKf7F+YgheI/zGf5alZatMUTKj/jNS6l744f9u3WFu4v7twcUI9vu4mknF4Y9aDlblIie0IM+5xxaqQ== "@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.7.0", "@eslint-community/eslint-utils@^4.8.0": version "4.9.0" @@ -178,9 +178,9 @@ "@types/json-schema" "^7.0.15" "@eslint/eslintrc@^3.3.1": - version "3.3.1" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-3.3.1.tgz#e55f7f1dd400600dd066dbba349c4c0bac916964" - integrity sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ== + version "3.3.3" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-3.3.3.tgz#26393a0806501b5e2b6a43aa588a4d8df67880ac" + integrity sha512-Kr+LPIUVKz2qkx1HAMH8q1q6azbqBAsXJUxBl/ODDuVPX45Z9DfwB8tPjTi6nNZ8BuM3nbJxC5zCAg5elnBUTQ== dependencies: ajv "^6.12.4" debug "^4.3.2" @@ -188,14 +188,14 @@ globals "^14.0.0" ignore "^5.2.0" import-fresh "^3.2.1" - js-yaml "^4.1.0" + js-yaml "^4.1.1" minimatch "^3.1.2" strip-json-comments "^3.1.1" -"@eslint/js@9.39.1": - version "9.39.1" - resolved "https://registry.yarnpkg.com/@eslint/js/-/js-9.39.1.tgz#0dd59c3a9f40e3f1882975c321470969243e0164" - integrity sha512-S26Stp4zCy88tH94QbBv3XCuzRQiZ9yXofEILmglYTh/Ug/a9/umqvgFtYBAo3Lp0nsI/5/qH1CCrbdK3AP1Tw== +"@eslint/js@9.39.2": + version "9.39.2" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-9.39.2.tgz#2d4b8ec4c3ea13c1b3748e0c97ecd766bdd80599" + integrity sha512-q1mjIoW1VX4IvSocvM/vbTiveKC4k9eLrajNEuSsmjymSDEbpGddtpfOoN7YGAqBK3NG+uqo8ia4PDTt8buCYA== "@eslint/object-schema@^2.1.7": version "2.1.7" @@ -238,54 +238,54 @@ resolved "https://registry.yarnpkg.com/@inquirer/ansi/-/ansi-1.0.2.tgz#674a4c4d81ad460695cb2a1fc69d78cd187f337e" integrity sha512-S8qNSZiYzFd0wAcyG5AXCvUHC5Sr7xpZ9wZ2py9XR88jUz8wooStVx5M6dRzczbBWjic9NP7+rY0Xi7qqK/aMQ== -"@inquirer/checkbox@^4.3.1": - version "4.3.1" - resolved "https://registry.yarnpkg.com/@inquirer/checkbox/-/checkbox-4.3.1.tgz#92835525f0c69684a5b20c8e0c78ae3c91ed46f1" - integrity sha512-rOcLotrptYIy59SGQhKlU0xBg1vvcVl2FdPIEclUvKHh0wo12OfGkId/01PIMJ/V+EimJ77t085YabgnQHBa5A== +"@inquirer/checkbox@^4.3.2": + version "4.3.2" + resolved "https://registry.yarnpkg.com/@inquirer/checkbox/-/checkbox-4.3.2.tgz#e1483e6519d6ffef97281a54d2a5baa0d81b3f3b" + integrity sha512-VXukHf0RR1doGe6Sm4F0Em7SWYLTHSsbGfJdS9Ja2bX5/D5uwVOEjr07cncLROdBvmnvCATYEWlHqYmXv2IlQA== dependencies: "@inquirer/ansi" "^1.0.2" - "@inquirer/core" "^10.3.1" + "@inquirer/core" "^10.3.2" "@inquirer/figures" "^1.0.15" "@inquirer/type" "^3.0.10" yoctocolors-cjs "^2.1.3" -"@inquirer/confirm@^5.1.20": - version "5.1.20" - resolved "https://registry.yarnpkg.com/@inquirer/confirm/-/confirm-5.1.20.tgz#8e85662584f162b8b9f6a7c9edcb430fd79f56ad" - integrity sha512-HDGiWh2tyRZa0M1ZnEIUCQro25gW/mN8ODByicQrbR1yHx4hT+IOpozCMi5TgBtUdklLwRI2mv14eNpftDluEw== +"@inquirer/confirm@^5.1.21": + version "5.1.21" + resolved "https://registry.yarnpkg.com/@inquirer/confirm/-/confirm-5.1.21.tgz#610c4acd7797d94890a6e2dde2c98eb1e891dd12" + integrity sha512-KR8edRkIsUayMXV+o3Gv+q4jlhENF9nMYUZs9PA2HzrXeHI8M5uDag70U7RJn9yyiMZSbtF5/UexBtAVtZGSbQ== dependencies: - "@inquirer/core" "^10.3.1" + "@inquirer/core" "^10.3.2" "@inquirer/type" "^3.0.10" -"@inquirer/core@^10.3.1": - version "10.3.1" - resolved "https://registry.yarnpkg.com/@inquirer/core/-/core-10.3.1.tgz#09bba1c6e0c45cfd3975c0c85c784c61b916baa8" - integrity sha512-hzGKIkfomGFPgxKmnKEKeA+uCYBqC+TKtRx5LgyHRCrF6S2MliwRIjp3sUaWwVzMp7ZXVs8elB0Tfe682Rpg4w== +"@inquirer/core@^10.3.2": + version "10.3.2" + resolved "https://registry.yarnpkg.com/@inquirer/core/-/core-10.3.2.tgz#535979ff3ff4fe1e7cc4f83e2320504c743b7e20" + integrity sha512-43RTuEbfP8MbKzedNqBrlhhNKVwoK//vUFNW3Q3vZ88BLcrs4kYpGg+B2mm5p2K/HfygoCxuKwJJiv8PbGmE0A== dependencies: "@inquirer/ansi" "^1.0.2" "@inquirer/figures" "^1.0.15" "@inquirer/type" "^3.0.10" cli-width "^4.1.0" - mute-stream "^3.0.0" + mute-stream "^2.0.0" signal-exit "^4.1.0" wrap-ansi "^6.2.0" yoctocolors-cjs "^2.1.3" -"@inquirer/editor@^4.2.22": - version "4.2.22" - resolved "https://registry.yarnpkg.com/@inquirer/editor/-/editor-4.2.22.tgz#5e5e44121e353c903c54601c5fb9177d585a2de0" - integrity sha512-8yYZ9TCbBKoBkzHtVNMF6PV1RJEUvMlhvmS3GxH4UvXMEHlS45jFyqFy0DU+K42jBs5slOaA78xGqqqWAx3u6A== +"@inquirer/editor@^4.2.23": + version "4.2.23" + resolved "https://registry.yarnpkg.com/@inquirer/editor/-/editor-4.2.23.tgz#fe046a3bfdae931262de98c1052437d794322e0b" + integrity sha512-aLSROkEwirotxZ1pBaP8tugXRFCxW94gwrQLxXfrZsKkfjOYC1aRvAZuhpJOb5cu4IBTJdsCigUlf2iCOu4ZDQ== dependencies: - "@inquirer/core" "^10.3.1" + "@inquirer/core" "^10.3.2" "@inquirer/external-editor" "^1.0.3" "@inquirer/type" "^3.0.10" -"@inquirer/expand@^4.0.22": - version "4.0.22" - resolved "https://registry.yarnpkg.com/@inquirer/expand/-/expand-4.0.22.tgz#9780de797eac3592c7a1801d0296b1c577d62b70" - integrity sha512-9XOjCjvioLjwlq4S4yXzhvBmAXj5tG+jvva0uqedEsQ9VD8kZ+YT7ap23i0bIXOtow+di4+u3i6u26nDqEfY4Q== +"@inquirer/expand@^4.0.23": + version "4.0.23" + resolved "https://registry.yarnpkg.com/@inquirer/expand/-/expand-4.0.23.tgz#a38b5f32226d75717c370bdfed792313b92bdc05" + integrity sha512-nRzdOyFYnpeYTTR2qFwEVmIWypzdAx/sIkCMeTNTcflFOovfqUk+HcFhQQVBftAh9gmGrpFj6QcGEqrDMDOiew== dependencies: - "@inquirer/core" "^10.3.1" + "@inquirer/core" "^10.3.2" "@inquirer/type" "^3.0.10" yoctocolors-cjs "^2.1.3" @@ -302,73 +302,73 @@ resolved "https://registry.yarnpkg.com/@inquirer/figures/-/figures-1.0.15.tgz#dbb49ed80df11df74268023b496ac5d9acd22b3a" integrity sha512-t2IEY+unGHOzAaVM5Xx6DEWKeXlDDcNPeDyUpsRc6CUhBfU3VQOEl+Vssh7VNp1dR8MdUJBWhuObjXCsVpjN5g== -"@inquirer/input@^4.3.0": - version "4.3.0" - resolved "https://registry.yarnpkg.com/@inquirer/input/-/input-4.3.0.tgz#e31ad67f7f625063a3a6c562075b9feab1afeaa6" - integrity sha512-h4fgse5zeGsBSW3cRQqu9a99OXRdRsNCvHoBqVmz40cjYjYFzcfwD0KA96BHIPlT7rZw0IpiefQIqXrjbzjS4Q== +"@inquirer/input@^4.3.1": + version "4.3.1" + resolved "https://registry.yarnpkg.com/@inquirer/input/-/input-4.3.1.tgz#778683b4c4c4d95d05d4b05c4a854964b73565b4" + integrity sha512-kN0pAM4yPrLjJ1XJBjDxyfDduXOuQHrBB8aLDMueuwUGn+vNpF7Gq7TvyVxx8u4SHlFFj4trmj+a2cbpG4Jn1g== dependencies: - "@inquirer/core" "^10.3.1" + "@inquirer/core" "^10.3.2" "@inquirer/type" "^3.0.10" -"@inquirer/number@^3.0.22": - version "3.0.22" - resolved "https://registry.yarnpkg.com/@inquirer/number/-/number-3.0.22.tgz#1bd82227990fb24af71d87e3f2b3af35206193bd" - integrity sha512-oAdMJXz++fX58HsIEYmvuf5EdE8CfBHHXjoi9cTcQzgFoHGZE+8+Y3P38MlaRMeBvAVnkWtAxMUF6urL2zYsbg== +"@inquirer/number@^3.0.23": + version "3.0.23" + resolved "https://registry.yarnpkg.com/@inquirer/number/-/number-3.0.23.tgz#3fdec2540d642093fd7526818fd8d4bdc7335094" + integrity sha512-5Smv0OK7K0KUzUfYUXDXQc9jrf8OHo4ktlEayFlelCjwMXz0299Y8OrI+lj7i4gCBY15UObk76q0QtxjzFcFcg== dependencies: - "@inquirer/core" "^10.3.1" + "@inquirer/core" "^10.3.2" "@inquirer/type" "^3.0.10" -"@inquirer/password@^4.0.22": - version "4.0.22" - resolved "https://registry.yarnpkg.com/@inquirer/password/-/password-4.0.22.tgz#dcf01f7b60d21bc4c2c067fc6e736335223467a6" - integrity sha512-CbdqK1ioIr0Y3akx03k/+Twf+KSlHjn05hBL+rmubMll7PsDTGH0R4vfFkr+XrkB0FOHrjIwVP9crt49dgt+1g== +"@inquirer/password@^4.0.23": + version "4.0.23" + resolved "https://registry.yarnpkg.com/@inquirer/password/-/password-4.0.23.tgz#b9f5187c8c92fd7aa9eceb9d8f2ead0d7e7b000d" + integrity sha512-zREJHjhT5vJBMZX/IUbyI9zVtVfOLiTO66MrF/3GFZYZ7T4YILW5MSkEYHceSii/KtRk+4i3RE7E1CUXA2jHcA== dependencies: "@inquirer/ansi" "^1.0.2" - "@inquirer/core" "^10.3.1" + "@inquirer/core" "^10.3.2" "@inquirer/type" "^3.0.10" -"@inquirer/prompts@^7.2.4", "@inquirer/prompts@^7.9.0": - version "7.10.0" - resolved "https://registry.yarnpkg.com/@inquirer/prompts/-/prompts-7.10.0.tgz#5d9e00b562e335b732c2f682a066d2529ecb6902" - integrity sha512-X2HAjY9BClfFkJ2RP3iIiFxlct5JJVdaYYXhA7RKxsbc9KL+VbId79PSoUGH/OLS011NFbHHDMDcBKUj3T89+Q== - dependencies: - "@inquirer/checkbox" "^4.3.1" - "@inquirer/confirm" "^5.1.20" - "@inquirer/editor" "^4.2.22" - "@inquirer/expand" "^4.0.22" - "@inquirer/input" "^4.3.0" - "@inquirer/number" "^3.0.22" - "@inquirer/password" "^4.0.22" - "@inquirer/rawlist" "^4.1.10" - "@inquirer/search" "^3.2.1" - "@inquirer/select" "^4.4.1" - -"@inquirer/rawlist@^4.1.10": - version "4.1.10" - resolved "https://registry.yarnpkg.com/@inquirer/rawlist/-/rawlist-4.1.10.tgz#e0f00098297b0770d22f84b7826ba782b51de1e9" - integrity sha512-Du4uidsgTMkoH5izgpfyauTL/ItVHOLsVdcY+wGeoGaG56BV+/JfmyoQGniyhegrDzXpfn3D+LFHaxMDRygcAw== - dependencies: - "@inquirer/core" "^10.3.1" +"@inquirer/prompts@^7.10.1", "@inquirer/prompts@^7.2.4": + version "7.10.1" + resolved "https://registry.yarnpkg.com/@inquirer/prompts/-/prompts-7.10.1.tgz#e1436c0484cf04c22548c74e2cd239e989d5f847" + integrity sha512-Dx/y9bCQcXLI5ooQ5KyvA4FTgeo2jYj/7plWfV5Ak5wDPKQZgudKez2ixyfz7tKXzcJciTxqLeK7R9HItwiByg== + dependencies: + "@inquirer/checkbox" "^4.3.2" + "@inquirer/confirm" "^5.1.21" + "@inquirer/editor" "^4.2.23" + "@inquirer/expand" "^4.0.23" + "@inquirer/input" "^4.3.1" + "@inquirer/number" "^3.0.23" + "@inquirer/password" "^4.0.23" + "@inquirer/rawlist" "^4.1.11" + "@inquirer/search" "^3.2.2" + "@inquirer/select" "^4.4.2" + +"@inquirer/rawlist@^4.1.11": + version "4.1.11" + resolved "https://registry.yarnpkg.com/@inquirer/rawlist/-/rawlist-4.1.11.tgz#313c8c3ffccb7d41e990c606465726b4a898a033" + integrity sha512-+LLQB8XGr3I5LZN/GuAHo+GpDJegQwuPARLChlMICNdwW7OwV2izlCSCxN6cqpL0sMXmbKbFcItJgdQq5EBXTw== + dependencies: + "@inquirer/core" "^10.3.2" "@inquirer/type" "^3.0.10" yoctocolors-cjs "^2.1.3" -"@inquirer/search@^3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@inquirer/search/-/search-3.2.1.tgz#e3e8c4ef893f1de05ef7b1930432f5bd9a08b545" - integrity sha512-cKiuUvETublmTmaOneEermfG2tI9ABpb7fW/LqzZAnSv4ZaJnbEis05lOkiBuYX5hNdnX0Q9ryOQyrNidb55WA== +"@inquirer/search@^3.2.2": + version "3.2.2" + resolved "https://registry.yarnpkg.com/@inquirer/search/-/search-3.2.2.tgz#4cc6fd574dcd434e4399badc37c742c3fd534ac8" + integrity sha512-p2bvRfENXCZdWF/U2BXvnSI9h+tuA8iNqtUKb9UWbmLYCRQxd8WkvwWvYn+3NgYaNwdUkHytJMGG4MMLucI1kA== dependencies: - "@inquirer/core" "^10.3.1" + "@inquirer/core" "^10.3.2" "@inquirer/figures" "^1.0.15" "@inquirer/type" "^3.0.10" yoctocolors-cjs "^2.1.3" -"@inquirer/select@^4.4.1": - version "4.4.1" - resolved "https://registry.yarnpkg.com/@inquirer/select/-/select-4.4.1.tgz#0d047b764cfe91b68c6a208da1b96abc8017db6c" - integrity sha512-E9hbLU4XsNe2SAOSsFrtYtYQDVi1mfbqJrPDvXKnGlnRiApBdWMJz7r3J2Ff38AqULkPUD3XjQMD4492TymD7Q== +"@inquirer/select@^4.4.2": + version "4.4.2" + resolved "https://registry.yarnpkg.com/@inquirer/select/-/select-4.4.2.tgz#2ac8fca960913f18f1d1b35323ed8fcd27d89323" + integrity sha512-l4xMuJo55MAe+N7Qr4rX90vypFwCajSakx59qe/tMaC1aEHWLyw68wF4o0A4SLAY4E0nd+Vt+EyskeDIqu1M6w== dependencies: "@inquirer/ansi" "^1.0.2" - "@inquirer/core" "^10.3.1" + "@inquirer/core" "^10.3.2" "@inquirer/figures" "^1.0.15" "@inquirer/type" "^3.0.10" yoctocolors-cjs "^2.1.3" @@ -391,9 +391,9 @@ integrity sha512-GaHYm+c0O9MjZRu0ongGBRbinu8gVAMd2UZjji6jVmqKtZluZnptXGWhz1E8j8D2HJ3f/yMxKAUC0b+57wncIw== "@mimicprotocol/cli@latest": - version "0.0.1-rc.27" - resolved "https://registry.yarnpkg.com/@mimicprotocol/cli/-/cli-0.0.1-rc.27.tgz#9cfc225fa0e523b32ab67a3f8592cbe28ccf7706" - integrity sha512-19qaMxd7rfSJMKpOkIOCEg8+JkiKsQWYPufuj8mNh9Zi7c9Q7JP0E5NF6IVbiJ31SxJ7EW7AKThTZkYLWUtChA== + version "0.0.1-rc.29" + resolved "https://registry.yarnpkg.com/@mimicprotocol/cli/-/cli-0.0.1-rc.29.tgz#98d204fd9c3a9481a5fe0f7bf160003a70ce6c8c" + integrity sha512-AZTXZky8Xt5NMr0Calirz/126+ctW2TjJKHimzaLYzHbHunZHChhBhTW2XkN2FAidAIr0vKjIuil3L9c5vUkTw== dependencies: "@inquirer/prompts" "^7.2.4" "@oclif/core" "^4.2.2" @@ -408,67 +408,67 @@ zod "^3.24.1" "@mimicprotocol/lib-ts@latest": - version "0.0.1-rc.27" - resolved "https://registry.yarnpkg.com/@mimicprotocol/lib-ts/-/lib-ts-0.0.1-rc.27.tgz#6e129a5a693e8a453e9ed2cb11167280acef25c8" - integrity sha512-/82lfBXiKmxPsip8ACVDVySJn4h/ZznY6ymNHRtWu96AW4loyk1AL2w7JdtA8DGv74vbrXsqKESS2X32j1KXxQ== + version "0.0.1-rc.29" + resolved "https://registry.yarnpkg.com/@mimicprotocol/lib-ts/-/lib-ts-0.0.1-rc.29.tgz#ba4e02763000d0c492bd7ff25b4a4a95a3f19038" + integrity sha512-KJaWwEfBRWOpR8b2w0ytlTJzLkg8eZ3iEKBNSvuMgIpNUK0eXAIlqa6Eo6Sq5VcdFu6O4JiNMmJbBrdTtRP1Rg== dependencies: as-base58 "^0.1.1" eslint-config-mimic "^0.0.3" json-as "1.1.7" visitor-as "0.11.4" -"@mimicprotocol/runner-node-darwin-arm64@0.0.1-rc.7": - version "0.0.1-rc.7" - resolved "https://registry.yarnpkg.com/@mimicprotocol/runner-node-darwin-arm64/-/runner-node-darwin-arm64-0.0.1-rc.7.tgz#bc27f21690e2d773a893d6968db8ad959ca5868a" - integrity sha512-Jf9pgJlojWluqgZbdXXzaexYgd54SRkiAgn5ulTw/XbTTHdYhEDfWVONoOXpDjUWqjHKnJo7671VfczQiAaUgw== - -"@mimicprotocol/runner-node-darwin-x64@0.0.1-rc.7": - version "0.0.1-rc.7" - resolved "https://registry.yarnpkg.com/@mimicprotocol/runner-node-darwin-x64/-/runner-node-darwin-x64-0.0.1-rc.7.tgz#e628b954416b366c40cf6b42d8000d073b5c4ece" - integrity sha512-wq/6Z5hmtBdwhNKDYdXNPPxae5UaOwQaiwInpEWXBWvdV+aLjsKg8lWxamMdiExASAhIupr8S2k2y+8Pq+jUkQ== - -"@mimicprotocol/runner-node-linux-arm64-gnu@0.0.1-rc.7": - version "0.0.1-rc.7" - resolved "https://registry.yarnpkg.com/@mimicprotocol/runner-node-linux-arm64-gnu/-/runner-node-linux-arm64-gnu-0.0.1-rc.7.tgz#68013fb18140d3f39c27ef68a68d72eef4575c85" - integrity sha512-xbhB46BCvCETMwsBIWutBW70Hw5EU9h0rsioNshu9Uk2r0lkXa1Cwaxa2z+d6VzcY135jxiLsyvuLL1hBDPwFg== - -"@mimicprotocol/runner-node-linux-x64-gnu@0.0.1-rc.7": - version "0.0.1-rc.7" - resolved "https://registry.yarnpkg.com/@mimicprotocol/runner-node-linux-x64-gnu/-/runner-node-linux-x64-gnu-0.0.1-rc.7.tgz#002e327ddf629f1b8a67a2c361e58d70027b5b53" - integrity sha512-x8YWVBI6MXoBQge7MVZBoQBpqXXbOgJmvicwlNqAbl/CA1zo+kJjl6sUlX2jj2q+bTqXRK7TgO11jNdzhlHUzg== - -"@mimicprotocol/runner-node-linux-x64-musl@0.0.1-rc.7": - version "0.0.1-rc.7" - resolved "https://registry.yarnpkg.com/@mimicprotocol/runner-node-linux-x64-musl/-/runner-node-linux-x64-musl-0.0.1-rc.7.tgz#19be6629561663dd1bfae23cf0dc65a192fa917d" - integrity sha512-wjE4cHVxWv3yVF4u/RQ3MX/hYklWNT6EArZb9OJKtfjpLDLztM9kYcDdlmeIaiSyNMd1mfzMahHog31sTNY0OQ== - -"@mimicprotocol/runner-node-win32-arm64-msvc@0.0.1-rc.7": - version "0.0.1-rc.7" - resolved "https://registry.yarnpkg.com/@mimicprotocol/runner-node-win32-arm64-msvc/-/runner-node-win32-arm64-msvc-0.0.1-rc.7.tgz#9ea5b71d38f770587a4bf356819b142e078a5dce" - integrity sha512-aEX0b0qbD7Z6I3QbBWwcjXArVeWZovbJOf7YURbbgd8b8YRGGQ+FjkFM0NV8IT2q0GPy4P+RwX4SmysRPhjHNQ== - -"@mimicprotocol/runner-node-win32-x64-msvc@0.0.1-rc.7": - version "0.0.1-rc.7" - resolved "https://registry.yarnpkg.com/@mimicprotocol/runner-node-win32-x64-msvc/-/runner-node-win32-x64-msvc-0.0.1-rc.7.tgz#862f5c48dbe4e0fe7e527ee89cf244d86d7ab7e5" - integrity sha512-6hdRSwaxldmaPC2/SzKggkc3v4/18PNjBsnLW+gpw2aBQ8v4tXSXTbhhxfLUl3BAgzlq3BMkgdI+bH5o3ej3UQ== +"@mimicprotocol/runner-node-darwin-arm64@0.0.1-rc.8": + version "0.0.1-rc.8" + resolved "https://registry.yarnpkg.com/@mimicprotocol/runner-node-darwin-arm64/-/runner-node-darwin-arm64-0.0.1-rc.8.tgz#5a74fa1752b832bccead66663e29a37c13add6ff" + integrity sha512-1QbCXekUqC9j3L41r8kebO/oWfFAZMEzRCFmQ9hTSesLjrhz2hP/sbJt4Do4WBoZ/zpA8rDW+TtknxbUtFrnDA== + +"@mimicprotocol/runner-node-darwin-x64@0.0.1-rc.8": + version "0.0.1-rc.8" + resolved "https://registry.yarnpkg.com/@mimicprotocol/runner-node-darwin-x64/-/runner-node-darwin-x64-0.0.1-rc.8.tgz#c5f5d303c46c03fe96bc462f98fcce3298907b88" + integrity sha512-hEpJ/T8xBprQfruy5lNV57uAJT+zonTtVh4kIpLpVQatgtcpEYnD7dZlf77zgtNid3BVIHL6akhrFwf1GJkCKg== + +"@mimicprotocol/runner-node-linux-arm64-gnu@0.0.1-rc.8": + version "0.0.1-rc.8" + resolved "https://registry.yarnpkg.com/@mimicprotocol/runner-node-linux-arm64-gnu/-/runner-node-linux-arm64-gnu-0.0.1-rc.8.tgz#ef96c65dec77aece85edff902b05c3da46d37fab" + integrity sha512-aM5hzAgeiBXc7e6/BpCPucCdIr4OGiArNDKyKPCi36iYLQ/tGlXY5tHwQ8ByhsUvCP/O0kz+iEGbauOv/zDvtw== + +"@mimicprotocol/runner-node-linux-x64-gnu@0.0.1-rc.8": + version "0.0.1-rc.8" + resolved "https://registry.yarnpkg.com/@mimicprotocol/runner-node-linux-x64-gnu/-/runner-node-linux-x64-gnu-0.0.1-rc.8.tgz#407393449703c7e9251e43b984c95ccfa47db1cd" + integrity sha512-caxiD1IXl2qfhNUzu3H5I8KQMQy7yggeZsRrmZlVMVl2TWvRdClgNiXRWchai/B0Orkchoy/8uNw1RsHmiPQtA== + +"@mimicprotocol/runner-node-linux-x64-musl@0.0.1-rc.8": + version "0.0.1-rc.8" + resolved "https://registry.yarnpkg.com/@mimicprotocol/runner-node-linux-x64-musl/-/runner-node-linux-x64-musl-0.0.1-rc.8.tgz#f594ddd3330773394d7cedea31c0032382fc15e9" + integrity sha512-WLpFTOTD+0V7m5A6qCxwyfX4lXbYy2F0XjGpkfTPIfee+jRG7aQqCsvIp0NzBpI+neLLMu//SXgS5ADrpthXQQ== + +"@mimicprotocol/runner-node-win32-arm64-msvc@0.0.1-rc.8": + version "0.0.1-rc.8" + resolved "https://registry.yarnpkg.com/@mimicprotocol/runner-node-win32-arm64-msvc/-/runner-node-win32-arm64-msvc-0.0.1-rc.8.tgz#61e41cf9bfe5d7eda69d6934982440a0a26c8cfd" + integrity sha512-bwshHY0PgmXMtOIEtex8UYobR8Nq+tkROItyxFwNvqvqzgL2cvewyZ1QJl6+B5YcocI7kog4URnRMsdF+oLD4Q== + +"@mimicprotocol/runner-node-win32-x64-msvc@0.0.1-rc.8": + version "0.0.1-rc.8" + resolved "https://registry.yarnpkg.com/@mimicprotocol/runner-node-win32-x64-msvc/-/runner-node-win32-x64-msvc-0.0.1-rc.8.tgz#86ae0d6716aa1d4a31adf65d4a44e94fda324fb0" + integrity sha512-DkF2drc7uHq84L70B6FU/X8BkBuj4zDluvGRzFJ94IWNL4zBkaJqrpKqL88tHANt+v1dzyQvJ10s1y9DVDGFvA== "@mimicprotocol/runner-node@^0.0.1-rc.7": - version "0.0.1-rc.7" - resolved "https://registry.yarnpkg.com/@mimicprotocol/runner-node/-/runner-node-0.0.1-rc.7.tgz#22fbd555dbfa0eea90dde59eea4ae283550d455a" - integrity sha512-n1rX2R2gYieO1O8Pa/iO3lUQ52xXyDwQEEEeiZhG1mZV3FuamfZDvd+zxSjiZkn1EcjfBycsPpPePj05um5Txw== + version "0.0.1-rc.8" + resolved "https://registry.yarnpkg.com/@mimicprotocol/runner-node/-/runner-node-0.0.1-rc.8.tgz#47c0f132763de7a676c0908789cbe608dbea4b74" + integrity sha512-RcUCShbh1+JSXyAFbb27g4y/NE0r7+7nxHGjeFk/U0qyiTFAZpiN2c7HBBVituE1gmilC8jQ3lzEJ7lcF5srOw== optionalDependencies: - "@mimicprotocol/runner-node-darwin-arm64" "0.0.1-rc.7" - "@mimicprotocol/runner-node-darwin-x64" "0.0.1-rc.7" - "@mimicprotocol/runner-node-linux-arm64-gnu" "0.0.1-rc.7" - "@mimicprotocol/runner-node-linux-x64-gnu" "0.0.1-rc.7" - "@mimicprotocol/runner-node-linux-x64-musl" "0.0.1-rc.7" - "@mimicprotocol/runner-node-win32-arm64-msvc" "0.0.1-rc.7" - "@mimicprotocol/runner-node-win32-x64-msvc" "0.0.1-rc.7" + "@mimicprotocol/runner-node-darwin-arm64" "0.0.1-rc.8" + "@mimicprotocol/runner-node-darwin-x64" "0.0.1-rc.8" + "@mimicprotocol/runner-node-linux-arm64-gnu" "0.0.1-rc.8" + "@mimicprotocol/runner-node-linux-x64-gnu" "0.0.1-rc.8" + "@mimicprotocol/runner-node-linux-x64-musl" "0.0.1-rc.8" + "@mimicprotocol/runner-node-win32-arm64-msvc" "0.0.1-rc.8" + "@mimicprotocol/runner-node-win32-x64-msvc" "0.0.1-rc.8" "@mimicprotocol/sdk@^0.0.1-rc.16", "@mimicprotocol/sdk@latest": - version "0.0.1-rc.20" - resolved "https://registry.yarnpkg.com/@mimicprotocol/sdk/-/sdk-0.0.1-rc.20.tgz#a2a29c53b17901c38c25e39304ddcf46a72058f2" - integrity sha512-Hdw9jvyVI3ox6SbY/AI22yi55gDlf1Qx33UHdN1jCR+IL350rHBKO2b+L2zvSYIH4mcJWhXAofREM4zwKuqVBw== + version "0.0.1-rc.26" + resolved "https://registry.yarnpkg.com/@mimicprotocol/sdk/-/sdk-0.0.1-rc.26.tgz#71e2d0478fac6b45a4f5a5e9ba72322d08f5290f" + integrity sha512-/4FCZ12InZbQ3esAs6lwwTN+oxSgfBoEAYbp4xfamQdZAJDRpDsbxcTXsnRdoFmhs5khK99s8RdfSaKBK3IsOg== dependencies: "@solana/web3.js" "^1.98.4" borsh "^2.0.0" @@ -477,9 +477,9 @@ zod "^3.23.8" "@mimicprotocol/test-ts@latest": - version "0.0.1-rc.27" - resolved "https://registry.yarnpkg.com/@mimicprotocol/test-ts/-/test-ts-0.0.1-rc.27.tgz#cbc4e4b92589b2ae1e635cea62e552f1d784b2f1" - integrity sha512-ML/rJ51gM7UQt14qrsFRa0CuTgfhLtHB4uqihaZFUsc/xuOV8ggVfvNnXfSxJwAxivb5vvDNBsmrEihhWTClDQ== + version "0.0.1-rc.29" + resolved "https://registry.yarnpkg.com/@mimicprotocol/test-ts/-/test-ts-0.0.1-rc.29.tgz#c15d0856573d4d00544600d41fb736cde81ba67c" + integrity sha512-WfUI3znVUq5s0UuKoSvbCow2XGqPym+FtvpoXpkK7UUCLp11dEhqlnskuQv+S0iYBXO2NiBK20pkGY+5Ir6i9Q== dependencies: "@mimicprotocol/runner-node" "^0.0.1-rc.7" "@mimicprotocol/sdk" "^0.0.1-rc.16" @@ -556,11 +556,11 @@ wrap-ansi "^7.0.0" "@oclif/plugin-not-found@^3.2.38": - version "3.2.72" - resolved "https://registry.yarnpkg.com/@oclif/plugin-not-found/-/plugin-not-found-3.2.72.tgz#8cce8c2bba0a9de05dfe0837cd38bfe93f4efbb7" - integrity sha512-CRcqHGdcEL4l5cls5F9FvwKt04LkdG7WyFozOu2vP1/3w34S29zbw8Tx1gAzfBZDDme5ChSaqFXU5qbTLx5yYQ== + version "3.2.73" + resolved "https://registry.yarnpkg.com/@oclif/plugin-not-found/-/plugin-not-found-3.2.73.tgz#16182e44b3e058972e6c2e380c66a5c9432f15bf" + integrity sha512-2bQieTGI9XNFe9hKmXQjJmHV5rZw+yn7Rud1+C5uLEo8GaT89KZbiLTJgL35tGILahy/cB6+WAs812wjw7TK6w== dependencies: - "@inquirer/prompts" "^7.9.0" + "@inquirer/prompts" "^7.10.1" "@oclif/core" "^4.8.0" ansis "^3.17.0" fast-levenshtein "^3.0.0" @@ -674,9 +674,9 @@ integrity sha512-xPyYSz1cMPnJQhl0CLMH68j3gprKZaTjG3s5Vi+fDgx+uhG9NOXwbVt52eFS8ECyXhyKcjDLCBEqBExKuiZb7Q== "@types/node@*": - version "24.10.0" - resolved "https://registry.yarnpkg.com/@types/node/-/node-24.10.0.tgz#6b79086b0dfc54e775a34ba8114dcc4e0221f31f" - integrity sha512-qzQZRBqkFsYyaSWXuEHc2WR9c0a0CXwiE5FWUvn7ZM+vdy1uZLfCunD38UzhuB7YN/J11ndbDBcTmOdxJo9Q7A== + version "25.0.3" + resolved "https://registry.yarnpkg.com/@types/node/-/node-25.0.3.tgz#79b9ac8318f373fbfaaf6e2784893efa9701f269" + integrity sha512-W609buLVRVmeW693xKfzHeIV6nJGGz98uCPfeXI1ELMLXVeKYZ9m15fAMSaUPBHYLGFsVRcMmSCksQOrZV9BYA== dependencies: undici-types "~7.16.0" @@ -693,9 +693,9 @@ integrity sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ== "@types/node@^22.10.5": - version "22.19.0" - resolved "https://registry.yarnpkg.com/@types/node/-/node-22.19.0.tgz#849606ef3920850583a4e7ee0930987c35ad80be" - integrity sha512-xpr/lmLPQEj+TUnHmR+Ab91/glhJvsqcjB+yY0Ix9GO70H6Lb4FHH5GeqdOE5btAx7eIMwuHkp4H2MSkLcqWbA== + version "22.19.3" + resolved "https://registry.yarnpkg.com/@types/node/-/node-22.19.3.tgz#8dfde7630d7a8528dc9b34db23d34f764467c02c" + integrity sha512-1N9SBnWYOJTrNZCdh/yJE+t910Y128BoyY+zBLWhL3r0TYzlTmFdXrPwHL9DyFZmlEXNQQolTZh3KHV31QDhyA== dependencies: undici-types "~6.21.0" @@ -724,16 +724,15 @@ "@types/node" "*" "@typescript-eslint/eslint-plugin@^8.6.0": - version "8.46.4" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.46.4.tgz#005dc4eebcb27462f20de3afe888065f65cec100" - integrity sha512-R48VhmTJqplNyDxCyqqVkFSZIx1qX6PzwqgcXn1olLrzxcSBDlOsbtcnQuQhNtnNiJ4Xe5gREI1foajYaYU2Vg== + version "8.50.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.50.0.tgz#a6ce899690542e2affa9543306d2d3935740abb7" + integrity sha512-O7QnmOXYKVtPrfYzMolrCTfkezCJS9+ljLdKW/+DCvRsc3UAz+sbH6Xcsv7p30+0OwUbeWfUDAQE0vpabZ3QLg== dependencies: "@eslint-community/regexpp" "^4.10.0" - "@typescript-eslint/scope-manager" "8.46.4" - "@typescript-eslint/type-utils" "8.46.4" - "@typescript-eslint/utils" "8.46.4" - "@typescript-eslint/visitor-keys" "8.46.4" - graphemer "^1.4.0" + "@typescript-eslint/scope-manager" "8.50.0" + "@typescript-eslint/type-utils" "8.50.0" + "@typescript-eslint/utils" "8.50.0" + "@typescript-eslint/visitor-keys" "8.50.0" ignore "^7.0.0" natural-compare "^1.4.0" ts-api-utils "^2.1.0" @@ -746,23 +745,23 @@ "@typescript-eslint/utils" "5.62.0" "@typescript-eslint/parser@^8.6.0": - version "8.46.4" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-8.46.4.tgz#1a5bfd48be57bc07eec64e090ac46e89f47ade31" - integrity sha512-tK3GPFWbirvNgsNKto+UmB/cRtn6TZfyw0D6IKrW55n6Vbs7KJoZtI//kpTKzE/DUmmnAFD8/Ca46s7Obs92/w== - dependencies: - "@typescript-eslint/scope-manager" "8.46.4" - "@typescript-eslint/types" "8.46.4" - "@typescript-eslint/typescript-estree" "8.46.4" - "@typescript-eslint/visitor-keys" "8.46.4" + version "8.50.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-8.50.0.tgz#c35b28f686dbe08e81b9d6208ebc08912549f4ba" + integrity sha512-6/cmF2piao+f6wSxUsJLZjck7OQsYyRtcOZS02k7XINSNlz93v6emM8WutDQSXnroG2xwYlEVHJI+cPA7CPM3Q== + dependencies: + "@typescript-eslint/scope-manager" "8.50.0" + "@typescript-eslint/types" "8.50.0" + "@typescript-eslint/typescript-estree" "8.50.0" + "@typescript-eslint/visitor-keys" "8.50.0" debug "^4.3.4" -"@typescript-eslint/project-service@8.46.4": - version "8.46.4" - resolved "https://registry.yarnpkg.com/@typescript-eslint/project-service/-/project-service-8.46.4.tgz#fa9872673b51fb57e5d5da034edbe17424ddd185" - integrity sha512-nPiRSKuvtTN+no/2N1kt2tUh/HoFzeEgOm9fQ6XQk4/ApGqjx0zFIIaLJ6wooR1HIoozvj2j6vTi/1fgAz7UYQ== +"@typescript-eslint/project-service@8.50.0": + version "8.50.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/project-service/-/project-service-8.50.0.tgz#1422366b7cc11fef8c6d87770884e608093423a4" + integrity sha512-Cg/nQcL1BcoTijEWyx4mkVC56r8dj44bFDvBdygifuS20f3OZCHmFbjF34DPSi07kwlFvqfv/xOLnJ5DquxSGQ== dependencies: - "@typescript-eslint/tsconfig-utils" "^8.46.4" - "@typescript-eslint/types" "^8.46.4" + "@typescript-eslint/tsconfig-utils" "^8.50.0" + "@typescript-eslint/types" "^8.50.0" debug "^4.3.4" "@typescript-eslint/scope-manager@5.62.0": @@ -773,27 +772,27 @@ "@typescript-eslint/types" "5.62.0" "@typescript-eslint/visitor-keys" "5.62.0" -"@typescript-eslint/scope-manager@8.46.4": - version "8.46.4" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-8.46.4.tgz#78c9b4856c0094def64ffa53ea955b46bec13304" - integrity sha512-tMDbLGXb1wC+McN1M6QeDx7P7c0UWO5z9CXqp7J8E+xGcJuUuevWKxuG8j41FoweS3+L41SkyKKkia16jpX7CA== +"@typescript-eslint/scope-manager@8.50.0": + version "8.50.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-8.50.0.tgz#e0d6c838dc9044bc679724611b138cb34c81bddf" + integrity sha512-xCwfuCZjhIqy7+HKxBLrDVT5q/iq7XBVBXLn57RTIIpelLtEIZHXAF/Upa3+gaCpeV1NNS5Z9A+ID6jn50VD4A== dependencies: - "@typescript-eslint/types" "8.46.4" - "@typescript-eslint/visitor-keys" "8.46.4" + "@typescript-eslint/types" "8.50.0" + "@typescript-eslint/visitor-keys" "8.50.0" -"@typescript-eslint/tsconfig-utils@8.46.4", "@typescript-eslint/tsconfig-utils@^8.46.4": - version "8.46.4" - resolved "https://registry.yarnpkg.com/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.46.4.tgz#989a338093b6b91b0552f1f51331d89ec6980382" - integrity sha512-+/XqaZPIAk6Cjg7NWgSGe27X4zMGqrFqZ8atJsX3CWxH/jACqWnrWI68h7nHQld0y+k9eTTjb9r+KU4twLoo9A== +"@typescript-eslint/tsconfig-utils@8.50.0", "@typescript-eslint/tsconfig-utils@^8.50.0": + version "8.50.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.50.0.tgz#5c17537ad4c8a13bf6d7393035edaf91a1e13191" + integrity sha512-vxd3G/ybKTSlm31MOA96gqvrRGv9RJ7LGtZCn2Vrc5htA0zCDvcMqUkifcjrWNNKXHUU3WCkYOzzVSFBd0wa2w== -"@typescript-eslint/type-utils@8.46.4": - version "8.46.4" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-8.46.4.tgz#ae71b428a3c138b5084affe47893c129949171e0" - integrity sha512-V4QC8h3fdT5Wro6vANk6eojqfbv5bpwHuMsBcJUJkqs2z5XnYhJzyz9Y02eUmF9u3PgXEUiOt4w4KHR3P+z0PQ== +"@typescript-eslint/type-utils@8.50.0": + version "8.50.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-8.50.0.tgz#feb6f54f876980a258b14f1cb033f54fc545d37b" + integrity sha512-7OciHT2lKCewR0mFoBrvZJ4AXTMe/sYOe87289WAViOocEmDjjv8MvIOT2XESuKj9jp8u3SZYUSh89QA4S1kQw== dependencies: - "@typescript-eslint/types" "8.46.4" - "@typescript-eslint/typescript-estree" "8.46.4" - "@typescript-eslint/utils" "8.46.4" + "@typescript-eslint/types" "8.50.0" + "@typescript-eslint/typescript-estree" "8.50.0" + "@typescript-eslint/utils" "8.50.0" debug "^4.3.4" ts-api-utils "^2.1.0" @@ -802,10 +801,10 @@ resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.62.0.tgz#258607e60effa309f067608931c3df6fed41fd2f" integrity sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ== -"@typescript-eslint/types@8.46.4", "@typescript-eslint/types@^8.46.4": - version "8.46.4" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.46.4.tgz#38022bfda051be80e4120eeefcd2b6e3e630a69b" - integrity sha512-USjyxm3gQEePdUwJBFjjGNG18xY9A2grDVGuk7/9AkjIF1L+ZrVnwR5VAU5JXtUnBL/Nwt3H31KlRDaksnM7/w== +"@typescript-eslint/types@8.50.0", "@typescript-eslint/types@^8.50.0": + version "8.50.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.50.0.tgz#ad8f1ad88ae0096f548c9cdf60da9b92832db96e" + integrity sha512-iX1mgmGrXdANhhITbpp2QQM2fGehBse9LbTf0sidWK6yg/NE+uhV5dfU1g6EYPlcReYmkE9QLPq/2irKAmtS9w== "@typescript-eslint/typescript-estree@5.62.0": version "5.62.0" @@ -820,20 +819,19 @@ semver "^7.3.7" tsutils "^3.21.0" -"@typescript-eslint/typescript-estree@8.46.4": - version "8.46.4" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-8.46.4.tgz#6a9eeab0da45bf400f22c818e0f47102a980ceaa" - integrity sha512-7oV2qEOr1d4NWNmpXLR35LvCfOkTNymY9oyW+lUHkmCno7aOmIf/hMaydnJBUTBMRCOGZh8YjkFOc8dadEoNGA== +"@typescript-eslint/typescript-estree@8.50.0": + version "8.50.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-8.50.0.tgz#2871d36617f81a127db905fa91b16d1a0251411b" + integrity sha512-W7SVAGBR/IX7zm1t70Yujpbk+zdPq/u4soeFSknWFdXIFuWsBGBOUu/Tn/I6KHSKvSh91OiMuaSnYp3mtPt5IQ== dependencies: - "@typescript-eslint/project-service" "8.46.4" - "@typescript-eslint/tsconfig-utils" "8.46.4" - "@typescript-eslint/types" "8.46.4" - "@typescript-eslint/visitor-keys" "8.46.4" + "@typescript-eslint/project-service" "8.50.0" + "@typescript-eslint/tsconfig-utils" "8.50.0" + "@typescript-eslint/types" "8.50.0" + "@typescript-eslint/visitor-keys" "8.50.0" debug "^4.3.4" - fast-glob "^3.3.2" - is-glob "^4.0.3" minimatch "^9.0.4" semver "^7.6.0" + tinyglobby "^0.2.15" ts-api-utils "^2.1.0" "@typescript-eslint/utils@5.62.0": @@ -850,15 +848,15 @@ eslint-scope "^5.1.1" semver "^7.3.7" -"@typescript-eslint/utils@8.46.4": - version "8.46.4" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-8.46.4.tgz#ea7878ddd625948cad4424dc2752b1be236556f5" - integrity sha512-AbSv11fklGXV6T28dp2Me04Uw90R2iJ30g2bgLz529Koehrmkbs1r7paFqr1vPCZi7hHwYxYtxfyQMRC8QaVSg== +"@typescript-eslint/utils@8.50.0": + version "8.50.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-8.50.0.tgz#107f20a5747eab5db988c5f6ad462b59851cdd1f" + integrity sha512-87KgUXET09CRjGCi2Ejxy3PULXna63/bMYv72tCAlDJC3Yqwln0HiFJ3VJMst2+mEtNtZu5oFvX4qJGjKsnAgg== dependencies: "@eslint-community/eslint-utils" "^4.7.0" - "@typescript-eslint/scope-manager" "8.46.4" - "@typescript-eslint/types" "8.46.4" - "@typescript-eslint/typescript-estree" "8.46.4" + "@typescript-eslint/scope-manager" "8.50.0" + "@typescript-eslint/types" "8.50.0" + "@typescript-eslint/typescript-estree" "8.50.0" "@typescript-eslint/visitor-keys@5.62.0": version "5.62.0" @@ -868,12 +866,12 @@ "@typescript-eslint/types" "5.62.0" eslint-visitor-keys "^3.3.0" -"@typescript-eslint/visitor-keys@8.46.4": - version "8.46.4" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-8.46.4.tgz#07031bd8d3ca6474e121221dae1055daead888f1" - integrity sha512-/++5CYLQqsO9HFGLI7APrxBJYo+5OCMpViuhV8q5/Qa3o5mMrF//eQHks+PXcsAVaLdn817fMuS7zqoXNNZGaw== +"@typescript-eslint/visitor-keys@8.50.0": + version "8.50.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-8.50.0.tgz#79d1c95474e08f844dbe13370715cfb9b7e21363" + integrity sha512-Xzmnb58+Db78gT/CCj/PVCvK+zxbnsw6F+O1oheYszJbBSdEjVhQi3C/Xttzxgi/GLmpvOggRs1RFpiJ8+c34Q== dependencies: - "@typescript-eslint/types" "8.46.4" + "@typescript-eslint/types" "8.50.0" eslint-visitor-keys "^4.2.1" acorn-jsx@^5.3.2: @@ -1189,9 +1187,9 @@ buffer@6.0.3, buffer@^6.0.3, buffer@~6.0.3: ieee754 "^1.2.1" bufferutil@^4.0.1: - version "4.0.9" - resolved "https://registry.yarnpkg.com/bufferutil/-/bufferutil-4.0.9.tgz#6e81739ad48a95cad45a279588e13e95e24a800a" - integrity sha512-WDtdLmJvAuNNPzByAYpRo2rF1Mmradw6gvWsQKf63476DDXmomT9zUiGypLcG4ibIM67vhAj8jJRdbmEws2Aqw== + version "4.1.0" + resolved "https://registry.yarnpkg.com/bufferutil/-/bufferutil-4.1.0.tgz#a4623541dd23867626bb08a051ec0d2ec0b70294" + integrity sha512-ZMANVnAixE6AWWnPzlW2KpUrxhm9woycYvPOo67jWHyFowASTEd9s+QN1EIMsSDtwhIxN4sWE1jotpuDUIgyIw== dependencies: node-gyp-build "^4.3.0" @@ -1491,10 +1489,10 @@ emoji-regex@^8.0.0: resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== -es-abstract@^1.17.5, es-abstract@^1.23.2, es-abstract@^1.23.3, es-abstract@^1.23.5, es-abstract@^1.23.6, es-abstract@^1.23.9, es-abstract@^1.24.0: - version "1.24.0" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.24.0.tgz#c44732d2beb0acc1ed60df840869e3106e7af328" - integrity sha512-WSzPgsdLtTcQwm4CROfS5ju2Wa1QQcVeT37jFjYzdFz1r9ahadC8B8/a4qxJxM+09F18iumCdRmlr96ZYkQvEg== +es-abstract@^1.17.5, es-abstract@^1.23.2, es-abstract@^1.23.3, es-abstract@^1.23.5, es-abstract@^1.23.6, es-abstract@^1.23.9, es-abstract@^1.24.0, es-abstract@^1.24.1: + version "1.24.1" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.24.1.tgz#f0c131ed5ea1bb2411134a8dd94def09c46c7899" + integrity sha512-zHXBLhP+QehSSbsS9Pt23Gg964240DPd6QCf8WpkqEXxQ7fhdZzYsocOr5u7apWonsS5EjZDmTF+/slGMyasvw== dependencies: array-buffer-byte-length "^1.0.2" arraybuffer.prototype.slice "^1.0.4" @@ -1562,25 +1560,25 @@ es-errors@^1.3.0: integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== es-iterator-helpers@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/es-iterator-helpers/-/es-iterator-helpers-1.2.1.tgz#d1dd0f58129054c0ad922e6a9a1e65eef435fe75" - integrity sha512-uDn+FE1yrDzyC0pCo961B2IHbdM8y/ACZsKD4dG6WqrjV53BADjwa7D+1aom2rsNVfLyDgU/eigvlJGJ08OQ4w== + version "1.2.2" + resolved "https://registry.yarnpkg.com/es-iterator-helpers/-/es-iterator-helpers-1.2.2.tgz#d979a9f686e2b0b72f88dbead7229924544720bc" + integrity sha512-BrUQ0cPTB/IwXj23HtwHjS9n7O4h9FX94b4xc5zlTHxeLgTAdzYUDyy6KdExAl9lbN5rtfe44xpjpmj9grxs5w== dependencies: call-bind "^1.0.8" - call-bound "^1.0.3" + call-bound "^1.0.4" define-properties "^1.2.1" - es-abstract "^1.23.6" + es-abstract "^1.24.1" es-errors "^1.3.0" - es-set-tostringtag "^2.0.3" + es-set-tostringtag "^2.1.0" function-bind "^1.1.2" - get-intrinsic "^1.2.6" + get-intrinsic "^1.3.0" globalthis "^1.0.4" gopd "^1.2.0" has-property-descriptors "^1.0.2" has-proto "^1.2.0" has-symbols "^1.1.0" internal-slot "^1.1.0" - iterator.prototype "^1.1.4" + iterator.prototype "^1.1.5" safe-array-concat "^1.1.3" es-object-atoms@^1.0.0, es-object-atoms@^1.1.1: @@ -1590,7 +1588,7 @@ es-object-atoms@^1.0.0, es-object-atoms@^1.1.1: dependencies: es-errors "^1.3.0" -es-set-tostringtag@^2.0.3, es-set-tostringtag@^2.1.0: +es-set-tostringtag@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz#f31dbbe0c183b00a6d26eb6325c810c0fd18bd4d" integrity sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA== @@ -1628,37 +1626,37 @@ es6-promisify@^5.0.0: dependencies: es6-promise "^4.0.3" -esbuild@~0.25.0: - version "0.25.12" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.25.12.tgz#97a1d041f4ab00c2fce2f838d2b9969a2d2a97a5" - integrity sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg== +esbuild@~0.27.0: + version "0.27.2" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.27.2.tgz#d83ed2154d5813a5367376bb2292a9296fc83717" + integrity sha512-HyNQImnsOC7X9PMNaCIeAm4ISCQXs5a5YasTXVliKv4uuBo1dKrG0A+uQS8M5eXjVMnLg3WgXaKvprHlFJQffw== optionalDependencies: - "@esbuild/aix-ppc64" "0.25.12" - "@esbuild/android-arm" "0.25.12" - "@esbuild/android-arm64" "0.25.12" - "@esbuild/android-x64" "0.25.12" - "@esbuild/darwin-arm64" "0.25.12" - "@esbuild/darwin-x64" "0.25.12" - "@esbuild/freebsd-arm64" "0.25.12" - "@esbuild/freebsd-x64" "0.25.12" - "@esbuild/linux-arm" "0.25.12" - "@esbuild/linux-arm64" "0.25.12" - "@esbuild/linux-ia32" "0.25.12" - "@esbuild/linux-loong64" "0.25.12" - "@esbuild/linux-mips64el" "0.25.12" - "@esbuild/linux-ppc64" "0.25.12" - "@esbuild/linux-riscv64" "0.25.12" - "@esbuild/linux-s390x" "0.25.12" - "@esbuild/linux-x64" "0.25.12" - "@esbuild/netbsd-arm64" "0.25.12" - "@esbuild/netbsd-x64" "0.25.12" - "@esbuild/openbsd-arm64" "0.25.12" - "@esbuild/openbsd-x64" "0.25.12" - "@esbuild/openharmony-arm64" "0.25.12" - "@esbuild/sunos-x64" "0.25.12" - "@esbuild/win32-arm64" "0.25.12" - "@esbuild/win32-ia32" "0.25.12" - "@esbuild/win32-x64" "0.25.12" + "@esbuild/aix-ppc64" "0.27.2" + "@esbuild/android-arm" "0.27.2" + "@esbuild/android-arm64" "0.27.2" + "@esbuild/android-x64" "0.27.2" + "@esbuild/darwin-arm64" "0.27.2" + "@esbuild/darwin-x64" "0.27.2" + "@esbuild/freebsd-arm64" "0.27.2" + "@esbuild/freebsd-x64" "0.27.2" + "@esbuild/linux-arm" "0.27.2" + "@esbuild/linux-arm64" "0.27.2" + "@esbuild/linux-ia32" "0.27.2" + "@esbuild/linux-loong64" "0.27.2" + "@esbuild/linux-mips64el" "0.27.2" + "@esbuild/linux-ppc64" "0.27.2" + "@esbuild/linux-riscv64" "0.27.2" + "@esbuild/linux-s390x" "0.27.2" + "@esbuild/linux-x64" "0.27.2" + "@esbuild/netbsd-arm64" "0.27.2" + "@esbuild/netbsd-x64" "0.27.2" + "@esbuild/openbsd-arm64" "0.27.2" + "@esbuild/openbsd-x64" "0.27.2" + "@esbuild/openharmony-arm64" "0.27.2" + "@esbuild/sunos-x64" "0.27.2" + "@esbuild/win32-arm64" "0.27.2" + "@esbuild/win32-ia32" "0.27.2" + "@esbuild/win32-x64" "0.27.2" escalade@^3.1.1: version "3.2.0" @@ -1810,9 +1808,9 @@ eslint-visitor-keys@^4.2.1: integrity sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ== eslint@^9.10.0: - version "9.39.1" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-9.39.1.tgz#be8bf7c6de77dcc4252b5a8dcb31c2efff74a6e5" - integrity sha512-BhHmn2yNOFA9H9JmmIVKJmd288g9hrVRDkdoIgRCRuSySRUHH7r/DI6aAXW9T1WwUuY3DFgrcaqB+deURBLR5g== + version "9.39.2" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-9.39.2.tgz#cb60e6d16ab234c0f8369a3fe7cc87967faf4b6c" + integrity sha512-LEyamqS7W5HB3ujJyvi0HQK/dtVINZvd5mAAp9eT5S/ujByGjiZLCzPcHVzuXbpJDJF/cxwHlfceVUDZ2lnSTw== dependencies: "@eslint-community/eslint-utils" "^4.8.0" "@eslint-community/regexpp" "^4.12.1" @@ -1820,7 +1818,7 @@ eslint@^9.10.0: "@eslint/config-helpers" "^0.4.2" "@eslint/core" "^0.17.0" "@eslint/eslintrc" "^3.3.1" - "@eslint/js" "9.39.1" + "@eslint/js" "9.39.2" "@eslint/plugin-kit" "^0.4.1" "@humanfs/node" "^0.16.6" "@humanwhocodes/module-importer" "^1.0.1" @@ -1888,9 +1886,9 @@ esutils@^2.0.2: integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== ethers@^6.13.5, ethers@^6.15.0: - version "6.15.0" - resolved "https://registry.yarnpkg.com/ethers/-/ethers-6.15.0.tgz#2980f2a3baf0509749b7e21f8692fa8a8349c0e3" - integrity sha512-Kf/3ZW54L4UT0pZtsY/rf+EkBU7Qi5nnhonjUb8yTXcxH3cdcWrV2cRyk0Xk/4jK6OoHhxxZHriyhje20If2hQ== + version "6.16.0" + resolved "https://registry.yarnpkg.com/ethers/-/ethers-6.16.0.tgz#fff9b4f05d7a359c774ad6e91085a800f7fccf65" + integrity sha512-U1wulmetNymijEhpSEQ7Ct/P/Jw9/e7R1j5XIbPRydgV2DjLVMsULDlNksq3RQnFgKoLlZf88ijYtWEXcPa07A== dependencies: "@adraffy/ens-normalize" "1.10.1" "@noble/curves" "1.2.0" @@ -1920,7 +1918,7 @@ fast-diff@^1.1.2: resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.3.0.tgz#ece407fa550a64d638536cd727e129c61616e0f0" integrity sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw== -fast-glob@^3.2.9, fast-glob@^3.3.2: +fast-glob@^3.2.9: version "3.3.3" resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.3.tgz#d06d585ce8dba90a16b0505c543c3ccfb3aeb818" integrity sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg== @@ -2030,9 +2028,9 @@ for-each@^0.3.3, for-each@^0.3.5: is-callable "^1.2.7" form-data@^4.0.1, form-data@^4.0.4: - version "4.0.4" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.4.tgz#784cdcce0669a9d68e94d11ac4eea98088edd2c4" - integrity sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow== + version "4.0.5" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.5.tgz#b49e48858045ff4cbf6b03e1805cebcad3679053" + integrity sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w== dependencies: asynckit "^0.4.0" combined-stream "^1.0.8" @@ -2187,11 +2185,6 @@ gopd@^1.0.1, gopd@^1.2.0: resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.2.0.tgz#89f56b8217bdbc8802bd299df6d7f1081d7e51a1" integrity sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg== -graphemer@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6" - integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== - has-bigints@^1.0.2: version "1.1.0" resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.1.0.tgz#28607e965ac967e03cd2a2c70a2636a1edad49fe" @@ -2248,9 +2241,9 @@ humanize-ms@^1.2.1: ms "^2.0.0" iconv-lite@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.7.0.tgz#c50cd80e6746ca8115eb98743afa81aa0e147a3e" - integrity sha512-cf6L2Ds3h57VVmkZe+Pn+5APsT7FpqJtEhhieDCvrE2MK5Qk9MyffgQyuxQTm6BChfeZNtcOLHp9IcWRVcIcBQ== + version "0.7.1" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.7.1.tgz#d4af1d2092f2bb05aab6296e5e7cd286d2f15432" + integrity sha512-2Tth85cXwGFHfvRgZWszZSvdo+0Xsqmw8k8ZwxScfcBneNUraK+dxRxRm24nszx80Y0TVio8kKLt5sLE7ZCLlw== dependencies: safer-buffer ">= 2.1.2 < 3.0.0" @@ -2541,7 +2534,7 @@ isomorphic-ws@^4.0.1: resolved "https://registry.yarnpkg.com/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz#55fd4cd6c5e6491e76dc125938dd863f5cd4f2dc" integrity sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w== -iterator.prototype@^1.1.4: +iterator.prototype@^1.1.5: version "1.1.5" resolved "https://registry.yarnpkg.com/iterator.prototype/-/iterator.prototype-1.1.5.tgz#12c959a29de32de0aa3bbbb801f4d777066dae39" integrity sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g== @@ -2585,10 +2578,10 @@ jayson@^4.1.1: resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== -js-yaml@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" - integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== +js-yaml@^4.1.0, js-yaml@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.1.tgz#854c292467705b699476e1a2decc0c8a3458806b" + integrity sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA== dependencies: argparse "^2.0.1" @@ -2795,10 +2788,10 @@ ms@^2.0.0, ms@^2.1.1, ms@^2.1.3: resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== -mute-stream@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-3.0.0.tgz#cd8014dd2acb72e1e91bb67c74f0019e620ba2d1" - integrity sha512-dkEJPVvun4FryqBmZ5KhDo0K9iDXAwn08tMLDinNdRBNPcYEDiWYysLcc6k3mjTMlbP9KyylvRpd4wFtwrT9rw== +mute-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-2.0.0.tgz#a5446fc0c512b71c83c44d908d5c7b7b4c493b2b" + integrity sha512-WWdIxpyjEn+FhQJQQv9aQAYlHoNVdzIzUySNV1gHUPDSdZJ3yZn7pAAbQcV7B56Mvu881q9FZV+0Vx2xC44VWA== natural-compare@^1.4.0: version "1.4.0" @@ -2995,9 +2988,9 @@ prettier-linter-helpers@^1.0.0: fast-diff "^1.1.2" prettier@^3.3.3: - version "3.6.2" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.6.2.tgz#ccda02a1003ebbb2bfda6f83a074978f608b9393" - integrity sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ== + version "3.7.4" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.7.4.tgz#d2f8335d4b1cec47e1c8098645411b0c9dff9c0f" + integrity sha512-v6UNi1+3hSlVvv8fSaoUbggEM5VErKmmpGA7Pl3HF8V6uKY7rvClBOJlH6yNwQtfTueNkGVpOv/mtWL9L4bgRA== prop-types@^15.8.1: version "15.8.1" @@ -3112,9 +3105,9 @@ reusify@^1.0.4: integrity sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw== rpc-websockets@^9.0.2: - version "9.3.1" - resolved "https://registry.yarnpkg.com/rpc-websockets/-/rpc-websockets-9.3.1.tgz#d817a59d812f68bae1215740a3f78fcdd3813698" - integrity sha512-bY6a+i/lEtBJ/mUxwsCTgevoV1P0foXTVA7UoThzaIWbM+3NDqorf8NBWs5DmqKTFeA1IoNzgvkWjFCPgnzUiQ== + version "9.3.2" + resolved "https://registry.yarnpkg.com/rpc-websockets/-/rpc-websockets-9.3.2.tgz#26b4d7ebaf8e53422528619a3c314e83590d85bf" + integrity sha512-VuW2xJDnl1k8n8kjbdRSWawPRkwaVqUQNjE1TdeTawf0y0abGhtVJFTXCLfgpgGDBkO/Fj6kny8Dc/nvOW78MA== dependencies: "@swc/helpers" "^0.5.11" "@types/uuid" "^8.3.4" @@ -3432,7 +3425,7 @@ text-encoding-utf-8@^1.0.2: resolved "https://registry.yarnpkg.com/text-encoding-utf-8/-/text-encoding-utf-8-1.0.2.tgz#585b62197b0ae437e3c7b5d0af27ac1021e10d13" integrity sha512-8bw4MY9WjdsD2aMtO0OzOCY3pXGYNx2d2FfHRVUKkiCPDWjKuOlhLVASS+pD7VkLTVjW268LYJHwsnPFlBpbAg== -tinyglobby@^0.2.14: +tinyglobby@^0.2.14, tinyglobby@^0.2.15: version "0.2.15" resolved "https://registry.yarnpkg.com/tinyglobby/-/tinyglobby-0.2.15.tgz#e228dd1e638cea993d2fdb4fcd2d4602a79951c2" integrity sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ== @@ -3495,11 +3488,11 @@ tsutils@^3.21.0: tslib "^1.8.1" tsx@^4.20.3: - version "4.20.6" - resolved "https://registry.yarnpkg.com/tsx/-/tsx-4.20.6.tgz#8fb803fd9c1f70e8ccc93b5d7c5e03c3979ccb2e" - integrity sha512-ytQKuwgmrrkDTFP4LjR0ToE2nqgy886GpvRSpU0JAnrdBYppuY5rLkRUYPU1yCryb24SsKBTL/hlDQAEFVwtZg== + version "4.21.0" + resolved "https://registry.yarnpkg.com/tsx/-/tsx-4.21.0.tgz#32aa6cf17481e336f756195e6fe04dae3e6308b1" + integrity sha512-5C1sg4USs1lfG0GFb2RLXsdpXqBSEhAaA/0kPL01wxzpMqLILNxIxIOKiILz+cdg/pLnOUxFYOR5yhHU666wbw== dependencies: - esbuild "~0.25.0" + esbuild "~0.27.0" get-tsconfig "^4.7.5" optionalDependencies: fsevents "~2.3.3"