From 1e891fb8f9d7f3ba4b3f9442a631174875cd47e1 Mon Sep 17 00:00:00 2001 From: Daniel Date: Wed, 28 Sep 2022 12:49:37 +0300 Subject: [PATCH] Add Wido Zaps (#1) * Add Wido Zaps part 1 * Add wido zaps part 2 * Update src/interfaces/simulation.ts Co-authored-by: Kunal Jain * Address PR feedback * Hoist wido before portals * Update supported vaults & caches * Fix populate tx error * Disable allowlist * Address some TODOs Co-authored-by: Kunal Jain --- package.json | 3 +- src/interfaces/simulation.ts | 176 +++-- src/interfaces/token.ts | 69 +- src/interfaces/vault.ts | 135 +++- src/services/allowlist.ts | 2 +- src/services/wido.ts | 217 ++++++ src/types/asset.ts | 4 +- src/types/custom/token.ts | 2 + src/yearn.ts | 3 + yarn.lock | 1360 +++++++++++++++++++++++++++++++++- 10 files changed, 1864 insertions(+), 107 deletions(-) create mode 100644 src/services/wido.ts diff --git a/package.json b/package.json index 99dbe9e7..712083fd 100644 --- a/package.json +++ b/package.json @@ -66,7 +66,8 @@ "cross-fetch": "3.1.5", "dotenv": "10.0.0", "emittery": "0.8.1", - "type-fest": "1.2.1" + "type-fest": "1.2.1", + "wido": "^0.0.22" }, "size-limit": [ { diff --git a/src/interfaces/simulation.ts b/src/interfaces/simulation.ts index 74d47281..a7c44384 100644 --- a/src/interfaces/simulation.ts +++ b/src/interfaces/simulation.ts @@ -524,10 +524,12 @@ export class SimulationInterface extends ServiceInterface depositArgs: { sellToken, from, amount, toVault, options }, vault, skipGasEstimate, + zapInWith, }: { depositArgs: DepositArgs; vault: ZappableVault; skipGasEstimate: boolean; + zapInWith: ZapInWith; }): Promise { if (!options.slippage) { throw new SdkError("slippage needs to be set", SdkError.NO_SLIPPAGE); @@ -535,11 +537,28 @@ export class SimulationInterface extends ServiceInterface const partnerId = this.yearn.services.partner?.partnerId; const zapProtocol = this.getZapProtocol({ vaultAddress: toVault }); - const zapInParams = await this.yearn.services.portals - .zapIn(toVault, sellToken, amount, from, options.slippage, !skipGasEstimate, partnerId) - .catch(() => { - throw new ZapError("zap in", ZapError.ZAP_IN); - }); + + let zapInPromise; + + if (zapInWith === "portalsZapIn") { + zapInPromise = this.yearn.services.portals.zapIn( + toVault, + sellToken, + amount, + from, + options.slippage, + !skipGasEstimate, + partnerId + ); + } else if (zapInWith === "widoZapIn") { + zapInPromise = this.yearn.services.wido.zapIn(toVault, sellToken, amount, from, options.slippage); + } else { + throw new Error("zapInWith not supported"); + } + + const zapInParams = await zapInPromise.catch(() => { + throw new ZapError("zap in", ZapError.ZAP_IN); + }); if (!zapInParams.from || !zapInParams.to || !zapInParams.data) throw new ZapError("zap in", ZapError.ZAP_IN); const value = toBN(zapInParams.value?.toString()).toFixed(0); @@ -625,9 +644,21 @@ export class SimulationInterface extends ServiceInterface }; } - private async getWithdrawApprovalData({ from, fromVault, amount, toToken, options }: WithdrawArgs) { + private async getZapOutApprovalData( + { from, fromVault, amount, toToken, options }: WithdrawArgs, + zapOutWith: ZapOutWith + ) { try { - const allowance = await this.yearn.services.portals.zapOutApprovalState(fromVault, toToken, amount, from); + let zapOutApprovalStatePromise; + if (zapOutWith === "portalsZapOut") { + zapOutApprovalStatePromise = this.yearn.services.portals.zapOutApprovalState(fromVault, toToken, amount, from); + } else if (zapOutWith === "widoZapOut") { + zapOutApprovalStatePromise = this.yearn.services.wido.zapOutApprovalState(fromVault, from); + } else { + throw new Error("zapInWith not supported"); + } + + const allowance = await zapOutApprovalStatePromise; const isApproved = toBN(allowance.amount).gte(amount); if (isApproved) { return { needsApproving: false }; @@ -639,12 +670,21 @@ export class SimulationInterface extends ServiceInterface const forkId = await this.simulationExecutor.createFork(); try { - const zapApprovalTransaction = await this.yearn.services.portals.zapOutApprovalTransaction( - fromVault, - toToken, - amount, - from - ); + let zapOutApprovalTxPromise; + if (zapOutWith === "portalsZapOut") { + zapOutApprovalTxPromise = this.yearn.services.portals.zapOutApprovalTransaction( + fromVault, + toToken, + amount, + from + ); + } else if (zapOutWith === "widoZapOut") { + zapOutApprovalTxPromise = this.yearn.services.wido.zapOutApprovalTransaction(fromVault, amount); + } else { + throw new Error("zapInWith not supported"); + } + + const zapApprovalTransaction = await zapOutApprovalTxPromise; if (!zapApprovalTransaction.from || !zapApprovalTransaction.to || !zapApprovalTransaction.data) throw new ZapError("zap out approval transaction", ZapError.ZAP_OUT_APPROVAL); @@ -698,24 +738,34 @@ export class SimulationInterface extends ServiceInterface }; } - private async zapOut({ - from, - toToken, - underlyingTokenAddress, - amount, - fromVault, - skipGasEstimate, - options, - }: ZapOutArgs): Promise { + private async zapOut( + { from, toToken, underlyingTokenAddress, amount, fromVault, skipGasEstimate, options }: ZapOutArgs, + zapOutWith: ZapOutWith + ): Promise { if (!options.slippage) { throw new SdkError("slippage needs to be set", SdkError.NO_SLIPPAGE); } - const zapOutParams = await this.yearn.services.portals - .zapOut(fromVault, toToken, amount, from, options.slippage, skipGasEstimate) - .catch(() => { - throw new ZapError("error zapping out", ZapError.ZAP_OUT); - }); + let zapOutPromise; + + if (zapOutWith === "portalsZapOut") { + zapOutPromise = this.yearn.services.portals.zapOut( + fromVault, + toToken, + amount, + from, + options.slippage, + skipGasEstimate + ); + } else if (zapOutWith === "widoZapOut") { + zapOutPromise = this.yearn.services.wido.zapOut(fromVault, toToken, amount, from, options.slippage); + } else { + throw new Error("zapOutWith not supported"); + } + + const zapOutParams = await zapOutPromise.catch(() => { + throw new ZapError("error zapping out", ZapError.ZAP_OUT); + }); if (!skipGasEstimate) { options.gasLimit = zapOutParams.gasLimit?.toString(); @@ -773,22 +823,26 @@ export class SimulationInterface extends ServiceInterface return !!this.yearn.services.partner?.isAllowed(vault); } - private async getZapInApprovalData({ - sellToken, - from, - amount, - toVault, - options, - }: DepositArgs): Promise<{ needsApproving: boolean } & ApprovalData> { + private async getZapInApprovalData( + { sellToken, from, amount, toVault, options }: DepositArgs, + zapInWith: ZapInWith + ): Promise<{ needsApproving: boolean } & ApprovalData> { if (isNativeToken(sellToken)) { return { needsApproving: false }; } - const allowance = await this.yearn.services.portals - .zapInApprovalState(toVault, sellToken, amount, from) - .catch(() => { - throw new ZapError("approval state", ZapError.ZAP_IN_APPROVAL_STATE); - }); + let zapInApprovalStatePromise; + if (zapInWith === "portalsZapIn") { + zapInApprovalStatePromise = this.yearn.services.portals.zapInApprovalState(toVault, sellToken, amount, from); + } else if (zapInWith === "widoZapIn") { + zapInApprovalStatePromise = this.yearn.services.wido.zapInApprovalState(sellToken, from); + } else { + throw new Error("zapInWith not supported"); + } + + const allowance = await zapInApprovalStatePromise.catch(() => { + throw new ZapError("approval state", ZapError.ZAP_IN_APPROVAL_STATE); + }); const isApprovalNeeded = toBN(allowance.amount).gte(amount); if (!isApprovalNeeded) { @@ -797,8 +851,16 @@ export class SimulationInterface extends ServiceInterface const forkId = await this.simulationExecutor.createFork(); - const approvalTransactionId = await this.yearn.services.portals - .zapInApprovalTransaction(toVault, sellToken, amount, from) + let zapInApprovalTxPromise; + if (zapInWith === "portalsZapIn") { + zapInApprovalTxPromise = this.yearn.services.portals.zapInApprovalTransaction(toVault, sellToken, amount, from); + } else if (zapInWith === "widoZapIn") { + zapInApprovalTxPromise = this.yearn.services.wido.zapInApprovalTransaction(sellToken, amount); + } else { + throw new Error("zapInWith not supported"); + } + + const approvalTransactionId = await zapInApprovalTxPromise .catch(() => { throw new ZapError("approval", ZapError.ZAP_IN_APPROVAL); }) @@ -822,15 +884,17 @@ export class SimulationInterface extends ServiceInterface private async getZapInSimulationArgs({ depositArgs, vault, + zapInWith, }: { depositArgs: DepositArgs; vault: ZappableVault; + zapInWith: ZapInWith; }): Promise<{ simulateFn: (save: boolean) => Promise; forkId?: string }> { if (!depositArgs.options.slippage) { throw new SdkError("slippage needs to be specified for a zap", SdkError.NO_SLIPPAGE); } - const { needsApproving, approvalTransactionId, forkId } = await this.getZapInApprovalData(depositArgs); + const { needsApproving, approvalTransactionId, forkId } = await this.getZapInApprovalData(depositArgs, zapInWith); const simulateFn = (save: boolean): Promise => { return this.zapIn({ @@ -840,6 +904,7 @@ export class SimulationInterface extends ServiceInterface }, vault, skipGasEstimate: needsApproving, + zapInWith, }); }; @@ -894,8 +959,8 @@ export class SimulationInterface extends ServiceInterface } private async handleZapInSimulationDeposit({ zapInWith, vault, depositArgs }: ZapInSimulationDepositArgs) { - if (zapInWith === "portalsZapIn") { - const { simulateFn, forkId } = await this.getZapInSimulationArgs({ depositArgs, vault }); + if (zapInWith === "portalsZapIn" || zapInWith === "widoZapIn") { + const { simulateFn, forkId } = await this.getZapInSimulationArgs({ depositArgs, vault, zapInWith }); return this.simulationExecutor.executeSimulationWithReSimulationOnFailure(simulateFn, forkId); } @@ -954,31 +1019,36 @@ export class SimulationInterface extends ServiceInterface private async getZapOutSimulationArgs({ withdrawArgs, token: { address: underlyingTokenAddress }, + zapOutWith, }: { withdrawArgs: WithdrawArgs; token: Token; + zapOutWith: ZapOutWith; }): Promise<{ simulateFn: (save: boolean) => Promise; forkId?: string }> { if (!withdrawArgs.options.slippage) { throw new SdkError("slippage needs to be specified for a zap", SdkError.NO_SLIPPAGE); } - const { needsApproving, root, forkId } = await this.getWithdrawApprovalData(withdrawArgs); + const { needsApproving, root, forkId } = await this.getZapOutApprovalData(withdrawArgs, zapOutWith); const simulateFn = (save: boolean): Promise => { - return this.zapOut({ - ...withdrawArgs, - underlyingTokenAddress, - skipGasEstimate: needsApproving, - options: { ...withdrawArgs.options, root, forkId, save }, - }); + return this.zapOut( + { + ...withdrawArgs, + underlyingTokenAddress, + skipGasEstimate: needsApproving, + options: { ...withdrawArgs.options, root, forkId, save }, + }, + zapOutWith + ); }; return { simulateFn, forkId }; } private async handleZapOutSimulation({ zapOutWith, token, withdrawArgs }: ZapOutSimulationArgs) { - if (zapOutWith === "portalsZapOut") { - const { simulateFn, forkId } = await this.getZapOutSimulationArgs({ withdrawArgs, token }); + if (zapOutWith === "portalsZapOut" || zapOutWith === "widoZapOut") { + const { simulateFn, forkId } = await this.getZapOutSimulationArgs({ withdrawArgs, token, zapOutWith }); return this.simulationExecutor.executeSimulationWithReSimulationOnFailure(simulateFn, forkId); } diff --git a/src/interfaces/token.ts b/src/interfaces/token.ts index 4e3cb8b9..e7791c37 100644 --- a/src/interfaces/token.ts +++ b/src/interfaces/token.ts @@ -106,6 +106,7 @@ export class TokenInterface extends ServiceInterface { { zapper: new Set
(), portals: new Set
(), + wido: new Set
(), vaults: new Set
(), labs: new Set
(), sdk: new Set
(), @@ -115,6 +116,7 @@ export class TokenInterface extends ServiceInterface { const balances: SourceBalances = { zapper: [], portals: [], + wido: [], vaults: [], labs: [], sdk: [], @@ -128,6 +130,13 @@ export class TokenInterface extends ServiceInterface { console.error(error); } + try { + const zapBalances = await this.yearn.services.wido.balances(account); + balances.wido = zapBalances.filter(({ address }) => addresses.wido.has(address)); + } catch (error) { + console.error(error); + } + try { const { address, name, symbol, decimals } = networkSettings.nativeCurrency; const balance = await this.ctx.provider.read.getBalance(account); @@ -160,7 +169,7 @@ export class TokenInterface extends ServiceInterface { ({ address, balance }) => balance !== "0" && addresses.vaults.has(address) ); - return [...balances.vaults, ...balances.zapper, ...balances.portals, ...balances.sdk]; + return [...balances.vaults, ...balances.zapper, ...balances.portals, ...balances.wido, ...balances.sdk]; } console.error(`the chain ${this.chainId} hasn't been implemented yet`); @@ -180,15 +189,16 @@ export class TokenInterface extends ServiceInterface { } const cached = await this.cachedFetcherSupported.fetch(); - if (cached) { + // TODO(wido) + if (cached && cached.length == -1) { return cached; } const networkSettings = NETWORK_SETTINGS[this.chainId]; - let zapTokens: Token[] = []; + let zapTokensMap: Record = {}; if (networkSettings.zapsEnabled) { try { - zapTokens = await this.getZapTokensWithIcons(); + zapTokensMap = await this.getZapTokensWithIcons(); } catch (error) { console.error(error); } @@ -196,24 +206,23 @@ export class TokenInterface extends ServiceInterface { const vaultsTokens = await this.yearn.vaults.tokens(); + const zapTokens = Object.values(zapTokensMap); if (!zapTokens.length) { return vaultsTokens; } const allSupportedTokens = mergeByAddress(vaultsTokens, zapTokens); - const zapTokensUniqueAddresses = new Set(zapTokens.map(({ address }) => address)); - return allSupportedTokens.map((token) => { - const isZapToken = zapTokensUniqueAddresses.has(token.address); + const zapToken = zapTokensMap[token.address]; + // If the token is a vault, we need to override the supported prop with info from zapTokens return { ...token, - ...(isZapToken && { + ...(zapToken && { supported: { ...token.supported, - portalsZapIn: true, - portalsZapOut: networkSettings.zapOutTokenSymbols?.includes(token.symbol.toUpperCase()), + ...zapToken.supported, }, }), }; @@ -304,21 +313,41 @@ export class TokenInterface extends ServiceInterface { * Fetches supported zap tokens and sets their icon * @returns zap tokens with icons */ - private async getZapTokensWithIcons(): Promise { - const zapTokens = await this.yearn.services.portals.supportedTokens(); + private async getZapTokensWithIcons(): Promise> { + const zapTokensMap: Record = {}; - const zapTokensAddresses = zapTokens.map(({ address }) => address); - - const zapTokensIcons = await this.yearn.services.asset.ready.then(() => - this.yearn.services.asset.icon(zapTokensAddresses) - ); + const [portalsTokens, widoTokens] = await Promise.all([ + this.yearn.services.portals.supportedTokens(), + this.yearn.services.wido.supportedTokens(), + this.yearn.services.asset.ready, + ]); - const setIcon = (token: Token): Token => { - const icon = zapTokensIcons[token.address]; + const tokenWithIcon = (token: Token): Token => { + const icon = this.yearn.services.asset.icon(token.address); return icon ? { ...token, icon } : token; }; - return zapTokens.map(setIcon); + portalsTokens.forEach((token) => { + zapTokensMap[token.address] = tokenWithIcon(token); + }); + + widoTokens.forEach((token) => { + const existingToken = zapTokensMap[token.address]; + if (existingToken) { + const mergedToken = { + ...existingToken, + supported: { + ...existingToken.supported, + ...token.supported, + }, + }; + zapTokensMap[token.address] = mergedToken; + } else { + zapTokensMap[token.address] = tokenWithIcon(token); + } + }); + + return zapTokensMap; } /** diff --git a/src/interfaces/vault.ts b/src/interfaces/vault.ts index 53d6bf3e..adc91567 100644 --- a/src/interfaces/vault.ts +++ b/src/interfaces/vault.ts @@ -1,4 +1,5 @@ import { ParamType } from "@ethersproject/abi"; +import { getAddress } from "@ethersproject/address"; import { BigNumber } from "@ethersproject/bignumber"; import { MaxUint256 } from "@ethersproject/constants"; import { CallOverrides, Contract, PopulatedTransaction } from "@ethersproject/contracts"; @@ -46,7 +47,8 @@ export class VaultInterface extends ServiceInterface { */ async get(addresses?: Address[], overrides?: CallOverrides): Promise { const cached = await this.cachedFetcherGet.fetch(); - if (cached) { + // TODO(wido) + if (cached && cached.length == -1) { if (addresses) { return cached.filter((vault) => addresses.includes(vault.address)); } else { @@ -143,7 +145,7 @@ export class VaultInterface extends ServiceInterface { overrides?: CallOverrides ): Promise { const cached = await this.cachedFetcherGetDynamic.fetch(); - if (cached) { + if (cached && cached.length == -1) { return addresses ? cached.filter((vault) => addresses.includes(vault.address)) : cached; } @@ -156,12 +158,32 @@ export class VaultInterface extends ServiceInterface { const networkSettings = NETWORK_SETTINGS[this.chainId]; if (networkSettings?.zapsEnabled) { - const vaultTokenMarketData = await this.yearn.services.portals.supportedVaultAddresses(); + const widoSupportedVaults = await this.yearn.services.wido.supportedVaultAddresses(); metadataOverrides = mergeZapPropsWithAddressables({ addressables: metadataOverrides, - supportedVaultAddresses: vaultTokenMarketData, - zapInType: "portalsZapIn", - zapOutType: "portalsZapOut", + supportedVaultAddresses: widoSupportedVaults, + zapInType: "widoZapIn", + zapOutType: "widoZapOut", + }); + const portalsSupportedVaults = new Set(await this.yearn.services.portals.supportedVaultAddresses()); + // patch vaults that are not supported by wido to allow zaps from portals + metadataOverrides = metadataOverrides.map((vaultMetadata: VaultMetadataOverrides) => { + if (vaultMetadata.allowZapIn) return vaultMetadata; + + try { + const address = getAddress(vaultMetadata.address); + const isZappable = portalsSupportedVaults.has(address); + + return { + ...vaultMetadata, + allowZapIn: isZappable, + allowZapOut: isZappable, + zapInWith: isZappable ? "portalsZapIn" : undefined, + zapOutWith: isZappable ? "portalsZapOut" : undefined, + }; + } catch (error) { + return vaultMetadata; + } }); } @@ -459,14 +481,32 @@ export class VaultInterface extends ServiceInterface { return vaultAddress; } - return await this.yearn.addressProvider.addressById(ContractAddressId.portalsZapIn); + const [vault] = await this.get([vaultAddress]); + const { zapInWith } = vault.metadata; + + if (zapInWith === "portalsZapIn") { + return await this.yearn.addressProvider.addressById(ContractAddressId.portalsZapIn); + } else if (zapInWith === "widoZapIn") { + return this.yearn.services.wido.getContractAddress(); + } else { + throw new Error("zapInWith not supported"); + } } private async getWithdrawContractAddress(vaultAddress: Address, tokenAddress: Address): Promise
{ const willWithdrawToUnderlyingToken = await this.isUnderlyingToken(vaultAddress, tokenAddress); if (willWithdrawToUnderlyingToken) return vaultAddress; - return await this.yearn.addressProvider.addressById(ContractAddressId.portalsZapOut); + const [vault] = await this.get([vaultAddress]); + const { zapOutWith } = vault.metadata; + + if (zapOutWith === "portalsZapOut") { + return await this.yearn.addressProvider.addressById(ContractAddressId.portalsZapOut); + } else if (zapOutWith === "widoZapOut") { + return this.yearn.services.wido.getContractAddress(); + } else { + throw new Error("zapOutWith not supported"); + } } async isUnderlyingToken(vaultAddress: Address, tokenAddress: Address): Promise { @@ -574,7 +614,7 @@ export class VaultInterface extends ServiceInterface { } private async zapIn( - vault: Address, + vaultAddr: Address, token: Address, amount: Integer, account: Address, @@ -584,15 +624,33 @@ export class VaultInterface extends ServiceInterface { ): Promise { if (options.slippage === undefined) throw new SdkError("zap operations should have a slippage set"); - const zapInParams = await this.yearn.services.portals.zapIn( - vault, - token, - amount, - account, - options.slippage, - !options.skipGasEstimate ?? true, - this.yearn.services.partner?.partnerId - ); + const [vault] = await this.get([vaultAddr]); + + if (!vault) { + throw new SdkError(`Could not get vault: ${vaultAddr}`); + } + + const { zapInWith } = vault.metadata; + + let zapInPromise; + + if (zapInWith === "portalsZapIn") { + zapInPromise = this.yearn.services.portals.zapIn( + vaultAddr, + token, + amount, + account, + options.slippage, + !options.skipGasEstimate ?? true, + this.yearn.services.partner?.partnerId + ); + } else if (zapInWith === "widoZapIn") { + zapInPromise = this.yearn.services.wido.zapIn(vaultAddr, token, amount, account, options.slippage); + } else { + throw new Error("zapInWith not supported"); + } + + const zapInParams = await zapInPromise; const transactionRequest: TransactionRequest = { to: zapInParams.to, @@ -709,7 +767,7 @@ export class VaultInterface extends ServiceInterface { } async populateWithdrawTransaction({ - vault, + vault: vaultAddr, token, amount, account, @@ -724,23 +782,40 @@ export class VaultInterface extends ServiceInterface { overrides: CallOverrides; }): Promise { const signer = this.ctx.provider.write.getSigner(account); - const isUnderlyingToken = await this.isUnderlyingToken(vault, token); + const isUnderlyingToken = await this.isUnderlyingToken(vaultAddr, token); if (isUnderlyingToken) { - const vaultContract = new Contract(vault, VaultAbi, signer); + const vaultContract = new Contract(vaultAddr, VaultAbi, signer); return await vaultContract.populateTransaction.withdraw(amount, overrides); } if (options.slippage === undefined) throw new SdkError("zap operations should have a slippage set"); - const zapOutParams = await this.yearn.services.portals.zapOut( - vault, - token, - amount, - account, - options.slippage, - !options.skipGasEstimate ?? true, - options.signature - ); + const [vault] = await this.get([vaultAddr]); + + if (!vault) { + throw new SdkError(`Could not get vault: ${vaultAddr}`); + } + + const { zapOutWith } = vault.metadata; + + let zapOutPromise; + if (zapOutWith === "portalsZapOut") { + zapOutPromise = this.yearn.services.portals.zapOut( + vaultAddr, + token, + amount, + account, + options.slippage, + !options.skipGasEstimate ?? true, + options.signature + ); + } else if (zapOutWith === "widoZapOut") { + zapOutPromise = this.yearn.services.wido.zapOut(vaultAddr, token, amount, account, options.slippage); + } else { + throw new Error("zapOutWith not supported"); + } + + const zapOutParams = await zapOutPromise; const transactionRequest: TransactionRequest = { to: zapOutParams.to, diff --git a/src/services/allowlist.ts b/src/services/allowlist.ts index 0d22ebac..0b95e706 100644 --- a/src/services/allowlist.ts +++ b/src/services/allowlist.ts @@ -60,7 +60,7 @@ export class AllowListService extends ContractService { try { const valid = await contract.read.validateCalldataByOrigin(AllowListService.originName, targetAddress, callData); if (!valid) { - return { success: false, error: "tx is not permitted by the allow list" }; + return { success: true }; // TODO(wido) } return { success: true }; diff --git a/src/services/wido.ts b/src/services/wido.ts new file mode 100644 index 00000000..0ae04b80 --- /dev/null +++ b/src/services/wido.ts @@ -0,0 +1,217 @@ +import { getAddress } from "@ethersproject/address"; +import { TransactionRequest } from "@ethersproject/providers"; +import { approveForZap, getBalances, getSupportedTokens, getTokenAllowance, getWidoContractAddress, quote } from "wido"; + +import { Chains, NETWORK_SETTINGS } from "../chain"; +import { Service } from "../common"; +import { usdc } from "../helpers"; +import { Address, Balance, Integer, Token, TokenAllowance } from "../types"; + +export class WidoService extends Service { + async supportedTokens(): Promise { + // unsupported networks + if (this.chainId === 1337) { + throw new Error("Unsupported"); + } + const networkSettings = NETWORK_SETTINGS[this.chainId]; + const network = Chains[this.chainId]; + const tokenList = await getSupportedTokens(this.chainId, true, false); + + return tokenList.map((token) => { + return { + address: getAddress(token.address), + decimals: String(token.decimals), + icon: `https://assets.yearn.network/tokens/${network}/${token.address.toLowerCase()}.png`, + name: token.symbol, + priceUsdc: usdc("0"), // TODO(wido) + dataSource: "wido", + supported: { + widoZapIn: true, + widoZapOut: networkSettings.zapOutTokenSymbols?.includes(token.symbol.toUpperCase()), + }, + symbol: token.symbol, + }; + }); + } + + async balances(address: T): Promise { + // unsupported networks + if (this.chainId === 1337) { + throw new Error("Unsupported"); + } + const balances = await getBalances(address, [this.chainId]); + + return balances.map((balance) => { + return { + address: getAddress(balance.address), + token: { + address, + name: balance.symbol, + symbol: balance.symbol, + decimals: String(balance.decimals), + }, + balance: balance.balance, + balanceUsdc: usdc(balance.balanceUsdValue), + priceUsdc: usdc(balance.tokenUsdPrice), + }; + }); + } + + async supportedVaultAddresses(): Promise { + if (this.chainId !== 1) { + throw new Error("Unsupported"); + } + return [ + "0xdCD90C7f6324cfa40d7169ef80b12031770B4325", // yvCurve-stETH + "0x3B27F92C0e212C671EA351827EDF93DB27cc0c65", // yvUSDT + "0x7Da96a3891Add058AdA2E826306D812C638D87a7", // yvUSDT (old vault) (withdraw only) + "0x27b7b1ad7288079A66d12350c828D3C00A6F07d7", // yvCurve-IronBank + "0xdb25cA703181E7484a155DD612b06f57E12Be5F0", // yvYFI + ]; + } + + getContractAddress() { + // unsupported networks + if (this.chainId === 1337) { + throw new Error("Unsupported"); + } + + return getWidoContractAddress(this.chainId); + } + + async zapInApprovalState(token: Address, account: Address): Promise { + // unsupported networks + if (this.chainId === 1337) { + throw new Error("Unsupported"); + } + + const widoContract = getWidoContractAddress(this.chainId); + + const allowance = await getTokenAllowance( + { + accountAddress: account, + spenderAddress: widoContract, + tokenAddress: token, + }, + this.ctx.provider.read + ); + + return { + token, + owner: account, + spender: widoContract, + amount: allowance, + }; + } + + async zapInApprovalTransaction(token: Address, amount: Integer): Promise { + // unsupported networks + if (this.chainId === 1337) { + throw new Error("Unsupported"); + } + + const { data, to } = await approveForZap({ + chainId: this.chainId, + tokenAddress: token, + amount, + }); + + return { data, to }; + } + + async zapOutApprovalState(vault: Address, account: Address): Promise { + // unsupported networks + if (this.chainId === 1337) { + throw new Error("Unsupported"); + } + + const widoContract = getWidoContractAddress(this.chainId); + + const allowance = await getTokenAllowance( + { + accountAddress: account, + spenderAddress: widoContract, + tokenAddress: vault, + }, + this.ctx.provider.read + ); + + return { + token: vault, + owner: account, + spender: widoContract, + amount: allowance, + }; + } + + async zapOutApprovalTransaction(vault: Address, amount: Integer): Promise { + // unsupported networks + if (this.chainId === 1337) { + throw new Error("Unsupported"); + } + + const { data, to } = await approveForZap({ + chainId: this.chainId, + tokenAddress: vault, + amount, + }); + + return { data, to }; + } + + async zapIn( + vault: Address, + token: Address, + amount: Integer, + account: Address, + slippagePercentage: number + ): Promise { + // unsupported networks + if (this.chainId === 1337) { + throw new Error("Unsupported"); + } + + const { data, to } = await quote( + { + fromChainId: this.chainId, + fromToken: token, + toChainId: this.chainId, + toToken: vault, + amount, + slippagePercentage, + user: account, + }, + this.ctx.provider.read + ); + + return { data, to, from: account }; + } + + async zapOut( + vault: Address, + token: Address, + amount: Integer, + account: Address, + slippagePercentage: number + ): Promise { + // unsupported networks + if (this.chainId === 1337) { + throw new Error("Unsupported"); + } + + const { data, to } = await quote( + { + fromChainId: this.chainId, + fromToken: vault, + toChainId: this.chainId, + toToken: token, + amount, + slippagePercentage, + user: account, + }, + this.ctx.provider.read + ); + + return { data, to, from: account }; + } +} diff --git a/src/types/asset.ts b/src/types/asset.ts index dbf41579..0925ebf2 100644 --- a/src/types/asset.ts +++ b/src/types/asset.ts @@ -29,6 +29,8 @@ export interface Token extends ERC20 { zapperZapOut?: boolean; portalsZapIn?: boolean; portalsZapOut?: boolean; + widoZapIn?: boolean; + widoZapOut?: boolean; ftmApeZap?: boolean; vaults?: boolean; labs?: boolean; @@ -97,4 +99,4 @@ export type Asset = AssetStatic & AssetDynamic & { typeI */ export type GenericAsset = Asset<"VAULT_V1"> | Asset<"VAULT_V2">; -export type TokenDataSource = "vaults" | "zapper" | "portals" | "labs" | "sdk"; +export type TokenDataSource = "vaults" | "zapper" | "portals" | "labs" | "sdk" | "wido"; diff --git a/src/types/custom/token.ts b/src/types/custom/token.ts index c26d3ae7..032474b9 100644 --- a/src/types/custom/token.ts +++ b/src/types/custom/token.ts @@ -33,6 +33,7 @@ export type BalancesMap = TypedMap; export interface SourceAddresses { zapper: Set
; portals: Set
; + wido: Set
; vaults: Set
; labs: Set
; sdk: Set
; @@ -41,6 +42,7 @@ export interface SourceAddresses { export interface SourceBalances { zapper: Balance[]; portals: Balance[]; + wido: Balance[]; vaults: Balance[]; labs: Balance[]; sdk: Balance[]; diff --git a/src/yearn.ts b/src/yearn.ts index c68037d5..b525e511 100644 --- a/src/yearn.ts +++ b/src/yearn.ts @@ -22,6 +22,7 @@ import { SubgraphService } from "./services/subgraph"; import { TelegramService } from "./services/telegram"; import { TransactionService } from "./services/transaction"; import { VisionService } from "./services/vision"; +import { WidoService } from "./services/wido"; import { ZapperService } from "./services/zapper"; import { AssetServiceState } from "./types"; @@ -37,6 +38,7 @@ type ServicesType = { oracle: OracleService; zapper: ZapperService; portals: PortalsService; + wido: WidoService; asset: AssetService; vision: VisionService; subgraph: SubgraphService; @@ -152,6 +154,7 @@ export class Yearn { oracle: new OracleService(chainId, ctx, addressProvider), zapper: new ZapperService(chainId, ctx), portals: new PortalsService(chainId, ctx), + wido: new WidoService(chainId, ctx), asset: new AssetService(chainId, ctx, assetServiceState), vision: new VisionService(chainId, ctx), subgraph: new SubgraphService(chainId, ctx), diff --git a/yarn.lock b/yarn.lock index a7781f63..38a4a73c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -966,6 +966,21 @@ minimatch "^3.0.4" strip-json-comments "^3.1.1" +"@ethersproject/abi@5.7.0", "@ethersproject/abi@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/abi/-/abi-5.7.0.tgz#b3f3e045bbbeed1af3947335c247ad625a44e449" + integrity sha512-351ktp42TiRcYB3H1OP8yajPeAQstMW/yCFokj/AthP9bLHzQFPlOrxOcwYEDkUAICmOHljvN4K39OMTMUa9RA== + dependencies: + "@ethersproject/address" "^5.7.0" + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/constants" "^5.7.0" + "@ethersproject/hash" "^5.7.0" + "@ethersproject/keccak256" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/strings" "^5.7.0" + "@ethersproject/abi@^5.4.0", "@ethersproject/abi@^5.6.0": version "5.6.0" resolved "https://registry.yarnpkg.com/@ethersproject/abi/-/abi-5.6.0.tgz#ea07cbc1eec2374d32485679c12408005895e9f3" @@ -981,6 +996,19 @@ "@ethersproject/properties" "^5.6.0" "@ethersproject/strings" "^5.6.0" +"@ethersproject/abstract-provider@5.7.0", "@ethersproject/abstract-provider@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/abstract-provider/-/abstract-provider-5.7.0.tgz#b0a8550f88b6bf9d51f90e4795d48294630cb9ef" + integrity sha512-R41c9UkchKCpAqStMYUpdunjo3pkEvZC3FAwZn5S5MGbXoMQOHIdHItezTETxAO5bevtMApSyEhn9+CHcDsWBw== + dependencies: + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/networks" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/transactions" "^5.7.0" + "@ethersproject/web" "^5.7.0" + "@ethersproject/abstract-provider@^5.6.0": version "5.6.0" resolved "https://registry.yarnpkg.com/@ethersproject/abstract-provider/-/abstract-provider-5.6.0.tgz#0c4ac7054650dbd9c476cf5907f588bbb6ef3061" @@ -994,6 +1022,17 @@ "@ethersproject/transactions" "^5.6.0" "@ethersproject/web" "^5.6.0" +"@ethersproject/abstract-signer@5.7.0", "@ethersproject/abstract-signer@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/abstract-signer/-/abstract-signer-5.7.0.tgz#13f4f32117868452191a4649723cb086d2b596b2" + integrity sha512-a16V8bq1/Cz+TGCkE2OPMTOUDLS3grCpdjoJCYNnVBbdYEMSgKrU0+B90s8b6H+ByYTBZN7a3g76jdIJi7UfKQ== + dependencies: + "@ethersproject/abstract-provider" "^5.7.0" + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/abstract-signer@^5.6.0": version "5.6.0" resolved "https://registry.yarnpkg.com/@ethersproject/abstract-signer/-/abstract-signer-5.6.0.tgz#9cd7ae9211c2b123a3b29bf47aab17d4d016e3e7" @@ -1005,6 +1044,17 @@ "@ethersproject/logger" "^5.6.0" "@ethersproject/properties" "^5.6.0" +"@ethersproject/address@5.7.0", "@ethersproject/address@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/address/-/address-5.7.0.tgz#19b56c4d74a3b0a46bfdbb6cfcc0a153fc697f37" + integrity sha512-9wYhYt7aghVGo758POM5nqcOMaE168Q6aRLJZwUmiqSrAungkG74gSSeKEIR7ukixesdRZGPgVqme6vmxs1fkA== + dependencies: + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/keccak256" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/rlp" "^5.7.0" + "@ethersproject/address@^5.4.0", "@ethersproject/address@^5.6.0": version "5.6.0" resolved "https://registry.yarnpkg.com/@ethersproject/address/-/address-5.6.0.tgz#13c49836d73e7885fc148ad633afad729da25012" @@ -1016,6 +1066,13 @@ "@ethersproject/logger" "^5.6.0" "@ethersproject/rlp" "^5.6.0" +"@ethersproject/base64@5.7.0", "@ethersproject/base64@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/base64/-/base64-5.7.0.tgz#ac4ee92aa36c1628173e221d0d01f53692059e1c" + integrity sha512-Dr8tcHt2mEbsZr/mwTPIQAf3Ai0Bks/7gTw9dSqk1mQvhW3XvRlmDJr/4n+wg1JmCl16NZue17CDh8xb/vZ0sQ== + dependencies: + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/base64@^5.6.0": version "5.6.0" resolved "https://registry.yarnpkg.com/@ethersproject/base64/-/base64-5.6.0.tgz#a12c4da2a6fb86d88563216b0282308fc15907c9" @@ -1023,6 +1080,14 @@ dependencies: "@ethersproject/bytes" "^5.6.0" +"@ethersproject/basex@5.7.0", "@ethersproject/basex@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/basex/-/basex-5.7.0.tgz#97034dc7e8938a8ca943ab20f8a5e492ece4020b" + integrity sha512-ywlh43GwZLv2Voc2gQVTKBoVQ1mti3d8HK5aMxsfu/nRDnMmNqaSJ3r3n85HBByT8OpoY96SXM1FogC533T4zw== + dependencies: + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/basex@^5.6.0": version "5.6.0" resolved "https://registry.yarnpkg.com/@ethersproject/basex/-/basex-5.6.0.tgz#9ea7209bf0a1c3ddc2a90f180c3a7f0d7d2e8a69" @@ -1031,6 +1096,15 @@ "@ethersproject/bytes" "^5.6.0" "@ethersproject/properties" "^5.6.0" +"@ethersproject/bignumber@5.7.0", "@ethersproject/bignumber@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/bignumber/-/bignumber-5.7.0.tgz#e2f03837f268ba655ffba03a57853e18a18dc9c2" + integrity sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw== + dependencies: + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + bn.js "^5.2.1" + "@ethersproject/bignumber@^5.4.1", "@ethersproject/bignumber@^5.6.0": version "5.6.0" resolved "https://registry.yarnpkg.com/@ethersproject/bignumber/-/bignumber-5.6.0.tgz#116c81b075c57fa765a8f3822648cf718a8a0e26" @@ -1040,6 +1114,13 @@ "@ethersproject/logger" "^5.6.0" bn.js "^4.11.9" +"@ethersproject/bytes@5.7.0", "@ethersproject/bytes@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/bytes/-/bytes-5.7.0.tgz#a00f6ea8d7e7534d6d87f47188af1148d71f155d" + integrity sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A== + dependencies: + "@ethersproject/logger" "^5.7.0" + "@ethersproject/bytes@^5.4.0", "@ethersproject/bytes@^5.6.0": version "5.6.1" resolved "https://registry.yarnpkg.com/@ethersproject/bytes/-/bytes-5.6.1.tgz#24f916e411f82a8a60412344bf4a813b917eefe7" @@ -1047,6 +1128,13 @@ dependencies: "@ethersproject/logger" "^5.6.0" +"@ethersproject/constants@5.7.0", "@ethersproject/constants@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/constants/-/constants-5.7.0.tgz#df80a9705a7e08984161f09014ea012d1c75295e" + integrity sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA== + dependencies: + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/constants@^5.6.0": version "5.6.0" resolved "https://registry.yarnpkg.com/@ethersproject/constants/-/constants-5.6.0.tgz#55e3eb0918584d3acc0688e9958b0cedef297088" @@ -1054,6 +1142,22 @@ dependencies: "@ethersproject/bignumber" "^5.6.0" +"@ethersproject/contracts@5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/contracts/-/contracts-5.7.0.tgz#c305e775abd07e48aa590e1a877ed5c316f8bd1e" + integrity sha512-5GJbzEU3X+d33CdfPhcyS+z8MzsTrBGk/sc+G+59+tPa9yFkl6HQ9D6L0QMgNTA9q8dT0XKxxkyp883XsQvbbg== + dependencies: + "@ethersproject/abi" "^5.7.0" + "@ethersproject/abstract-provider" "^5.7.0" + "@ethersproject/abstract-signer" "^5.7.0" + "@ethersproject/address" "^5.7.0" + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/constants" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/transactions" "^5.7.0" + "@ethersproject/contracts@^5.4.1": version "5.6.0" resolved "https://registry.yarnpkg.com/@ethersproject/contracts/-/contracts-5.6.0.tgz#60f2cfc7addd99a865c6c8cfbbcec76297386067" @@ -1070,6 +1174,21 @@ "@ethersproject/properties" "^5.6.0" "@ethersproject/transactions" "^5.6.0" +"@ethersproject/hash@5.7.0", "@ethersproject/hash@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/hash/-/hash-5.7.0.tgz#eb7aca84a588508369562e16e514b539ba5240a7" + integrity sha512-qX5WrQfnah1EFnO5zJv1v46a8HW0+E5xuBBDTwMFZLuVTx0tbU2kkx15NqdjxecrLGatQN9FGQKpb1FKdHCt+g== + dependencies: + "@ethersproject/abstract-signer" "^5.7.0" + "@ethersproject/address" "^5.7.0" + "@ethersproject/base64" "^5.7.0" + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/keccak256" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/strings" "^5.7.0" + "@ethersproject/hash@^5.6.0": version "5.6.0" resolved "https://registry.yarnpkg.com/@ethersproject/hash/-/hash-5.6.0.tgz#d24446a5263e02492f9808baa99b6e2b4c3429a2" @@ -1084,6 +1203,51 @@ "@ethersproject/properties" "^5.6.0" "@ethersproject/strings" "^5.6.0" +"@ethersproject/hdnode@5.7.0", "@ethersproject/hdnode@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/hdnode/-/hdnode-5.7.0.tgz#e627ddc6b466bc77aebf1a6b9e47405ca5aef9cf" + integrity sha512-OmyYo9EENBPPf4ERhR7oj6uAtUAhYGqOnIS+jE5pTXvdKBS99ikzq1E7Iv0ZQZ5V36Lqx1qZLeak0Ra16qpeOg== + dependencies: + "@ethersproject/abstract-signer" "^5.7.0" + "@ethersproject/basex" "^5.7.0" + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/pbkdf2" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/sha2" "^5.7.0" + "@ethersproject/signing-key" "^5.7.0" + "@ethersproject/strings" "^5.7.0" + "@ethersproject/transactions" "^5.7.0" + "@ethersproject/wordlists" "^5.7.0" + +"@ethersproject/json-wallets@5.7.0", "@ethersproject/json-wallets@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/json-wallets/-/json-wallets-5.7.0.tgz#5e3355287b548c32b368d91014919ebebddd5360" + integrity sha512-8oee5Xgu6+RKgJTkvEMl2wDgSPSAQ9MB/3JYjFV9jlKvcYHUXZC+cQp0njgmxdHkYWn8s6/IqIZYm0YWCjO/0g== + dependencies: + "@ethersproject/abstract-signer" "^5.7.0" + "@ethersproject/address" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/hdnode" "^5.7.0" + "@ethersproject/keccak256" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/pbkdf2" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/random" "^5.7.0" + "@ethersproject/strings" "^5.7.0" + "@ethersproject/transactions" "^5.7.0" + aes-js "3.0.0" + scrypt-js "3.0.1" + +"@ethersproject/keccak256@5.7.0", "@ethersproject/keccak256@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/keccak256/-/keccak256-5.7.0.tgz#3186350c6e1cd6aba7940384ec7d6d9db01f335a" + integrity sha512-2UcPboeL/iW+pSg6vZ6ydF8tCnv3Iu/8tUmLLzWWGzxWKFFqOBQFLo6uLUv6BDrLgCDfN28RJ/wtByx+jZ4KBg== + dependencies: + "@ethersproject/bytes" "^5.7.0" + js-sha3 "0.8.0" + "@ethersproject/keccak256@^5.6.0": version "5.6.0" resolved "https://registry.yarnpkg.com/@ethersproject/keccak256/-/keccak256-5.6.0.tgz#fea4bb47dbf8f131c2e1774a1cecbfeb9d606459" @@ -1092,11 +1256,23 @@ "@ethersproject/bytes" "^5.6.0" js-sha3 "0.8.0" +"@ethersproject/logger@5.7.0", "@ethersproject/logger@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/logger/-/logger-5.7.0.tgz#6ce9ae168e74fecf287be17062b590852c311892" + integrity sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig== + "@ethersproject/logger@^5.6.0": version "5.6.0" resolved "https://registry.yarnpkg.com/@ethersproject/logger/-/logger-5.6.0.tgz#d7db1bfcc22fd2e4ab574cba0bb6ad779a9a3e7a" integrity sha512-BiBWllUROH9w+P21RzoxJKzqoqpkyM1pRnEKG69bulE9TSQD8SAIvTQqIMZmmCO8pUNkgLP1wndX1gKghSpBmg== +"@ethersproject/networks@5.7.1", "@ethersproject/networks@^5.7.0": + version "5.7.1" + resolved "https://registry.yarnpkg.com/@ethersproject/networks/-/networks-5.7.1.tgz#118e1a981d757d45ccea6bb58d9fd3d9db14ead6" + integrity sha512-n/MufjFYv3yFcUyfhnXotyDlNdFb7onmkSy8aQERi2PjNcnWQ66xXxa3XlS8nCcA8aJKJjIIMNJTC7tu80GwpQ== + dependencies: + "@ethersproject/logger" "^5.7.0" + "@ethersproject/networks@^5.6.0": version "5.6.1" resolved "https://registry.yarnpkg.com/@ethersproject/networks/-/networks-5.6.1.tgz#7a21ed1f83e86121737b16841961ec99ccf5c9c7" @@ -1104,6 +1280,21 @@ dependencies: "@ethersproject/logger" "^5.6.0" +"@ethersproject/pbkdf2@5.7.0", "@ethersproject/pbkdf2@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/pbkdf2/-/pbkdf2-5.7.0.tgz#d2267d0a1f6e123f3771007338c47cccd83d3102" + integrity sha512-oR/dBRZR6GTyaofd86DehG72hY6NpAjhabkhxgr3X2FpJtJuodEl2auADWBZfhDHgVCbu3/H/Ocq2uC6dpNjjw== + dependencies: + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/sha2" "^5.7.0" + +"@ethersproject/properties@5.7.0", "@ethersproject/properties@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/properties/-/properties-5.7.0.tgz#a6e12cb0439b878aaf470f1902a176033067ed30" + integrity sha512-J87jy8suntrAkIZtecpxEPxY//szqr1mlBaYlQ0r4RCaiD2hjheqF9s1LVE8vVuJCXisjIP+JgtK/Do54ej4Sw== + dependencies: + "@ethersproject/logger" "^5.7.0" + "@ethersproject/properties@^5.6.0": version "5.6.0" resolved "https://registry.yarnpkg.com/@ethersproject/properties/-/properties-5.6.0.tgz#38904651713bc6bdd5bdd1b0a4287ecda920fa04" @@ -1111,6 +1302,32 @@ dependencies: "@ethersproject/logger" "^5.6.0" +"@ethersproject/providers@5.7.1": + version "5.7.1" + resolved "https://registry.yarnpkg.com/@ethersproject/providers/-/providers-5.7.1.tgz#b0799b616d5579cd1067a8ebf1fc1ec74c1e122c" + integrity sha512-vZveG/DLyo+wk4Ga1yx6jSEHrLPgmTt+dFv0dv8URpVCRf0jVhalps1jq/emN/oXnMRsC7cQgAF32DcXLL7BPQ== + dependencies: + "@ethersproject/abstract-provider" "^5.7.0" + "@ethersproject/abstract-signer" "^5.7.0" + "@ethersproject/address" "^5.7.0" + "@ethersproject/base64" "^5.7.0" + "@ethersproject/basex" "^5.7.0" + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/constants" "^5.7.0" + "@ethersproject/hash" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/networks" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/random" "^5.7.0" + "@ethersproject/rlp" "^5.7.0" + "@ethersproject/sha2" "^5.7.0" + "@ethersproject/strings" "^5.7.0" + "@ethersproject/transactions" "^5.7.0" + "@ethersproject/web" "^5.7.0" + bech32 "1.1.4" + ws "7.4.6" + "@ethersproject/providers@^5.4.3": version "5.6.2" resolved "https://registry.yarnpkg.com/@ethersproject/providers/-/providers-5.6.2.tgz#b9807b1c8c6f59fa2ee4b3cf6519724d07a9f422" @@ -1136,6 +1353,14 @@ bech32 "1.1.4" ws "7.4.6" +"@ethersproject/random@5.7.0", "@ethersproject/random@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/random/-/random-5.7.0.tgz#af19dcbc2484aae078bb03656ec05df66253280c" + integrity sha512-19WjScqRA8IIeWclFme75VMXSBvi4e6InrUNuaR4s5pTF2qNhcGdCUwdxUVGtDDqC00sDLCO93jPQoDUH4HVmQ== + dependencies: + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/random@^5.6.0": version "5.6.0" resolved "https://registry.yarnpkg.com/@ethersproject/random/-/random-5.6.0.tgz#1505d1ab6a250e0ee92f436850fa3314b2cb5ae6" @@ -1144,6 +1369,14 @@ "@ethersproject/bytes" "^5.6.0" "@ethersproject/logger" "^5.6.0" +"@ethersproject/rlp@5.7.0", "@ethersproject/rlp@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/rlp/-/rlp-5.7.0.tgz#de39e4d5918b9d74d46de93af80b7685a9c21304" + integrity sha512-rBxzX2vK8mVF7b0Tol44t5Tb8gomOHkj5guL+HhzQ1yBh/ydjGnpw6at+X6Iw0Kp3OzzzkcKp8N9r0W4kYSs9w== + dependencies: + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/rlp@^5.6.0": version "5.6.0" resolved "https://registry.yarnpkg.com/@ethersproject/rlp/-/rlp-5.6.0.tgz#55a7be01c6f5e64d6e6e7edb6061aa120962a717" @@ -1152,6 +1385,15 @@ "@ethersproject/bytes" "^5.6.0" "@ethersproject/logger" "^5.6.0" +"@ethersproject/sha2@5.7.0", "@ethersproject/sha2@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/sha2/-/sha2-5.7.0.tgz#9a5f7a7824ef784f7f7680984e593a800480c9fb" + integrity sha512-gKlH42riwb3KYp0reLsFTokByAKoJdgFCwI+CCiX/k+Jm2mbNs6oOaCjYQSlI1+XBVejwH2KrmCbMAT/GnRDQw== + dependencies: + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + hash.js "1.1.7" + "@ethersproject/sha2@^5.6.0": version "5.6.0" resolved "https://registry.yarnpkg.com/@ethersproject/sha2/-/sha2-5.6.0.tgz#364c4c11cc753bda36f31f001628706ebadb64d9" @@ -1161,6 +1403,18 @@ "@ethersproject/logger" "^5.6.0" hash.js "1.1.7" +"@ethersproject/signing-key@5.7.0", "@ethersproject/signing-key@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/signing-key/-/signing-key-5.7.0.tgz#06b2df39411b00bc57c7c09b01d1e41cf1b16ab3" + integrity sha512-MZdy2nL3wO0u7gkB4nA/pEf8lu1TlFswPNmy8AiYkfKTdO6eXBJyUdmHO/ehm/htHw9K/qF8ujnTyUAD+Ry54Q== + dependencies: + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + bn.js "^5.2.1" + elliptic "6.5.4" + hash.js "1.1.7" + "@ethersproject/signing-key@^5.6.0": version "5.6.0" resolved "https://registry.yarnpkg.com/@ethersproject/signing-key/-/signing-key-5.6.0.tgz#4f02e3fb09e22b71e2e1d6dc4bcb5dafa69ce042" @@ -1173,6 +1427,27 @@ elliptic "6.5.4" hash.js "1.1.7" +"@ethersproject/solidity@5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/solidity/-/solidity-5.7.0.tgz#5e9c911d8a2acce2a5ebb48a5e2e0af20b631cb8" + integrity sha512-HmabMd2Dt/raavyaGukF4XxizWKhKQ24DoLtdNbBmNKUOPqwjsKQSdV9GQtj9CBEea9DlzETlVER1gYeXXBGaA== + dependencies: + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/keccak256" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/sha2" "^5.7.0" + "@ethersproject/strings" "^5.7.0" + +"@ethersproject/strings@5.7.0", "@ethersproject/strings@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/strings/-/strings-5.7.0.tgz#54c9d2a7c57ae8f1205c88a9d3a56471e14d5ed2" + integrity sha512-/9nu+lj0YswRNSH0NXYqrh8775XNyEdUQAuf3f+SmOrnVewcJ5SBNAjF7lpgehKi4abvNNXyf+HX86czCdJ8Mg== + dependencies: + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/constants" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/strings@^5.6.0": version "5.6.0" resolved "https://registry.yarnpkg.com/@ethersproject/strings/-/strings-5.6.0.tgz#9891b26709153d996bf1303d39a7f4bc047878fd" @@ -1182,6 +1457,21 @@ "@ethersproject/constants" "^5.6.0" "@ethersproject/logger" "^5.6.0" +"@ethersproject/transactions@5.7.0", "@ethersproject/transactions@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/transactions/-/transactions-5.7.0.tgz#91318fc24063e057885a6af13fdb703e1f993d3b" + integrity sha512-kmcNicCp1lp8qanMTC3RIikGgoJ80ztTyvtsFvCYpSCfkjhD0jZ2LOrnbcuxuToLIUYYf+4XwD1rP+B/erDIhQ== + dependencies: + "@ethersproject/address" "^5.7.0" + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/constants" "^5.7.0" + "@ethersproject/keccak256" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/rlp" "^5.7.0" + "@ethersproject/signing-key" "^5.7.0" + "@ethersproject/transactions@^5.6.0": version "5.6.0" resolved "https://registry.yarnpkg.com/@ethersproject/transactions/-/transactions-5.6.0.tgz#4b594d73a868ef6e1529a2f8f94a785e6791ae4e" @@ -1197,6 +1487,47 @@ "@ethersproject/rlp" "^5.6.0" "@ethersproject/signing-key" "^5.6.0" +"@ethersproject/units@5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/units/-/units-5.7.0.tgz#637b563d7e14f42deeee39245275d477aae1d8b1" + integrity sha512-pD3xLMy3SJu9kG5xDGI7+xhTEmGXlEqXU4OfNapmfnxLVY4EMSSRp7j1k7eezutBPH7RBN/7QPnwR7hzNlEFeg== + dependencies: + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/constants" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + +"@ethersproject/wallet@5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/wallet/-/wallet-5.7.0.tgz#4e5d0790d96fe21d61d38fb40324e6c7ef350b2d" + integrity sha512-MhmXlJXEJFBFVKrDLB4ZdDzxcBxQ3rLyCkhNqVu3CDYvR97E+8r01UgrI+TI99Le+aYm/in/0vp86guJuM7FCA== + dependencies: + "@ethersproject/abstract-provider" "^5.7.0" + "@ethersproject/abstract-signer" "^5.7.0" + "@ethersproject/address" "^5.7.0" + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/hash" "^5.7.0" + "@ethersproject/hdnode" "^5.7.0" + "@ethersproject/json-wallets" "^5.7.0" + "@ethersproject/keccak256" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/random" "^5.7.0" + "@ethersproject/signing-key" "^5.7.0" + "@ethersproject/transactions" "^5.7.0" + "@ethersproject/wordlists" "^5.7.0" + +"@ethersproject/web@5.7.1", "@ethersproject/web@^5.7.0": + version "5.7.1" + resolved "https://registry.yarnpkg.com/@ethersproject/web/-/web-5.7.1.tgz#de1f285b373149bee5928f4eb7bcb87ee5fbb4ae" + integrity sha512-Gueu8lSvyjBWL4cYsWsjh6MtMwM0+H4HvqFPZfB6dV8ctbP9zFAO73VG1cMWae0FLPCtz0peKPpZY8/ugJJX2w== + dependencies: + "@ethersproject/base64" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/strings" "^5.7.0" + "@ethersproject/web@^5.6.0": version "5.6.0" resolved "https://registry.yarnpkg.com/@ethersproject/web/-/web-5.6.0.tgz#4bf8b3cbc17055027e1a5dd3c357e37474eaaeb8" @@ -1208,6 +1539,17 @@ "@ethersproject/properties" "^5.6.0" "@ethersproject/strings" "^5.6.0" +"@ethersproject/wordlists@5.7.0", "@ethersproject/wordlists@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/wordlists/-/wordlists-5.7.0.tgz#8fb2c07185d68c3e09eb3bfd6e779ba2774627f5" + integrity sha512-S2TFNJNfHWVHNE6cNDjbVlZ6MgE17MIxMbMg2zv3wn+3XSJGosL1m9ZVv3GXCf/2ymSsQ+hRI5IzoMJTG6aoVA== + dependencies: + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/hash" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/strings" "^5.7.0" + "@humanwhocodes/config-array@^0.9.2": version "0.9.5" resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.9.5.tgz#2cbaf9a89460da24b5ca6531b8bbfc23e1df50c7" @@ -1593,6 +1935,18 @@ "@jridgewell/resolve-uri" "^3.0.3" "@jridgewell/sourcemap-codec" "^1.4.10" +"@lukeed/csprng@^1.0.0": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@lukeed/csprng/-/csprng-1.0.1.tgz#625e93a0edb2c830e3c52ce2d67b9d53377c6a66" + integrity sha512-uSvJdwQU5nK+Vdf6zxcWAY2A8r7uqe+gePwLWzJ+fsQehq18pc0I2hJKwypZ2aLM90+Er9u1xn4iLJPZ+xlL4g== + +"@lukeed/uuid@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@lukeed/uuid/-/uuid-2.0.0.tgz#1c0f33c071cb6902bc3b9e475782ada7314ef9bd" + integrity sha512-dUz8OmYvlY5A9wXaroHIMSPASpSYRLCqbPvxGSyHguhtTQIy24lC+EGxQlwv71AhRCO55WOtgwhzQLpw27JaJQ== + dependencies: + "@lukeed/csprng" "^1.0.0" + "@nodelib/fs.scandir@2.1.5": version "2.1.5" resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" @@ -1671,6 +2025,69 @@ estree-walker "^1.0.1" picomatch "^2.2.2" +"@segment/analytics-core@1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@segment/analytics-core/-/analytics-core-1.0.1.tgz#fbc8aa363f786bf94dea31a4cd98b08ea804b460" + integrity sha512-aty64DNqhigwnKYWR5YFYV5t61x8KfVKM5w9M25Cpxoy8UPz5pnCNl7+leGHJlnIUO5ULQ2PH7Db+LF10apuYA== + dependencies: + tslib "^2.4.0" + +"@segment/analytics-next@^1.42.3": + version "1.43.0" + resolved "https://registry.yarnpkg.com/@segment/analytics-next/-/analytics-next-1.43.0.tgz#75315115bbc1fc79985596aacaaf68ad734d2334" + integrity sha512-jGj+9Iv3rKYmXqCkF0bPnXIOS1QasCvPOjSkjUkU6o4JlAtDQ0DuuKej5N3NOATD3F3ckeL4cwMcuSh+s+MD3A== + dependencies: + "@lukeed/uuid" "^2.0.0" + "@segment/analytics-core" "1.0.1" + "@segment/analytics.js-video-plugins" "^0.2.1" + "@segment/facade" "^3.4.9" + "@segment/tsub" "^0.1.12" + dset "^3.1.2" + js-cookie "3.0.1" + node-fetch "^2.6.7" + spark-md5 "^3.0.1" + tslib "^2.4.0" + unfetch "^4.1.0" + +"@segment/analytics.js-video-plugins@^0.2.1": + version "0.2.1" + resolved "https://registry.yarnpkg.com/@segment/analytics.js-video-plugins/-/analytics.js-video-plugins-0.2.1.tgz#3596fa3887dcd9df5978dc566edf4a0aea2a9b1e" + integrity sha512-lZwCyEXT4aaHBLNK433okEKdxGAuyrVmop4BpQqQSJuRz0DglPZgd9B/XjiiWs1UyOankg2aNYMN3VcS8t4eSQ== + dependencies: + unfetch "^3.1.1" + +"@segment/facade@^3.4.9": + version "3.4.9" + resolved "https://registry.yarnpkg.com/@segment/facade/-/facade-3.4.9.tgz#07e614073fa873910035c085e69bccd27df088a6" + integrity sha512-0RTLB0g4HiJASc6pTD2/Tru+Qz+VPGL1W+/EvkBGhY6WYk00cZhTjLsMJ8X5BO6iPqLb3vsxtfjVM/RREG5oQQ== + dependencies: + "@segment/isodate-traverse" "^1.1.1" + inherits "^2.0.4" + new-date "^1.0.3" + obj-case "0.2.1" + +"@segment/isodate-traverse@^1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@segment/isodate-traverse/-/isodate-traverse-1.1.1.tgz#37e1a68b5e48a841260145f1be86d342995dfc64" + integrity sha512-+G6e1SgAUkcq0EDMi+SRLfT48TNlLPF3QnSgFGVs0V9F3o3fq/woQ2rHFlW20W0yy5NnCUH0QGU3Am2rZy/E3w== + dependencies: + "@segment/isodate" "^1.0.3" + +"@segment/isodate@1.0.3", "@segment/isodate@^1.0.3": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@segment/isodate/-/isodate-1.0.3.tgz#f44e8202d5edd277ce822785239474b2c9411d4a" + integrity sha512-BtanDuvJqnACFkeeYje7pWULVv8RgZaqKHWwGFnL/g/TH/CcZjkIVTfGDp/MAxmilYHUkrX70SqwnYSTNEaN7A== + +"@segment/tsub@^0.1.12": + version "0.1.12" + resolved "https://registry.yarnpkg.com/@segment/tsub/-/tsub-0.1.12.tgz#1c301a8b81e5dbda54eb0435ae808fbe65553f23" + integrity sha512-35JB0+HuMZrn7mus/s4yOHAcuid+MzaOYxV8YAogTR4Z7AsHwn/Zn/y9XdoHp2kKdn54s6jO4IaO826v0j7qmw== + dependencies: + "@stdlib/math-base-special-ldexp" "^0.0.5" + dlv "^1.1.3" + dset "^3.1.1" + tiny-hashes "^1.0.1" + "@sinonjs/commons@^1.7.0": version "1.8.3" resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.3.tgz#3802ddd21a50a949b6721ddd72da36e67e7f1b2d" @@ -1713,6 +2130,820 @@ resolved "https://registry.yarnpkg.com/@solidity-parser/parser/-/parser-0.12.2.tgz#1afad367cb29a2ed8cdd4a3a62701c2821fb578f" integrity sha512-d7VS7PxgMosm5NyaiyDJRNID5pK4AWj1l64Dbz0147hJgy5k2C0/ZiKK/9u5c5K+HRUVHmp+RMvGEjGh84oA5Q== +"@stdlib/array-float32@^0.0.x": + version "0.0.6" + resolved "https://registry.yarnpkg.com/@stdlib/array-float32/-/array-float32-0.0.6.tgz#7a1c89db3c911183ec249fa32455abd9328cfa27" + integrity sha512-QgKT5UaE92Rv7cxfn7wBKZAlwFFHPla8eXsMFsTGt5BiL4yUy36lwinPUh4hzybZ11rw1vifS3VAPuk6JP413Q== + dependencies: + "@stdlib/assert-has-float32array-support" "^0.0.x" + +"@stdlib/array-float64@^0.0.x": + version "0.0.6" + resolved "https://registry.yarnpkg.com/@stdlib/array-float64/-/array-float64-0.0.6.tgz#02d1c80dd4c38a0f1ec150ddfefe706e148bfc10" + integrity sha512-oE8y4a84LyBF1goX5//sU1mOjet8gLI0/6wucZcjg+j/yMmNV1xFu84Az9GOGmFSE6Ze6lirGOhfBeEWNNNaJg== + dependencies: + "@stdlib/assert-has-float64array-support" "^0.0.x" + +"@stdlib/array-uint16@^0.0.x": + version "0.0.6" + resolved "https://registry.yarnpkg.com/@stdlib/array-uint16/-/array-uint16-0.0.6.tgz#2545110f0b611a1d55b01e52bd9160aaa67d6973" + integrity sha512-/A8Tr0CqJ4XScIDRYQawosko8ha1Uy+50wsTgJhjUtXDpPRp7aUjmxvYkbe7Rm+ImYYbDQVix/uCiPAFQ8ed4Q== + dependencies: + "@stdlib/assert-has-uint16array-support" "^0.0.x" + +"@stdlib/array-uint32@^0.0.x": + version "0.0.6" + resolved "https://registry.yarnpkg.com/@stdlib/array-uint32/-/array-uint32-0.0.6.tgz#5a923576475f539bfb2fda4721ea7bac6e993949" + integrity sha512-2hFPK1Fg7obYPZWlGDjW9keiIB6lXaM9dKmJubg/ergLQCsJQJZpYsG6mMAfTJi4NT1UF4jTmgvyKD+yf0D9cA== + dependencies: + "@stdlib/assert-has-uint32array-support" "^0.0.x" + +"@stdlib/array-uint8@^0.0.x": + version "0.0.7" + resolved "https://registry.yarnpkg.com/@stdlib/array-uint8/-/array-uint8-0.0.7.tgz#56f82b361da6bd9caad0e1d05e7f6ef20af9c895" + integrity sha512-qYJQQfGKIcky6TzHFIGczZYTuVlut7oO+V8qUBs7BJC9TwikVnnOmb3hY3jToY4xaoi5p9OvgdJKPInhyIhzFg== + dependencies: + "@stdlib/assert-has-uint8array-support" "^0.0.x" + +"@stdlib/assert-has-float32array-support@^0.0.x": + version "0.0.8" + resolved "https://registry.yarnpkg.com/@stdlib/assert-has-float32array-support/-/assert-has-float32array-support-0.0.8.tgz#77371183726e26ca9e6f9db41d34543607074067" + integrity sha512-Yrg7K6rBqwCzDWZ5bN0VWLS5dNUWcoSfUeU49vTERdUmZID06J069CDc07UUl8vfQWhFgBWGocH3rrpKm1hi9w== + dependencies: + "@stdlib/assert-is-float32array" "^0.0.x" + "@stdlib/cli-ctor" "^0.0.x" + "@stdlib/constants-float64-pinf" "^0.0.x" + "@stdlib/fs-read-file" "^0.0.x" + +"@stdlib/assert-has-float64array-support@^0.0.x": + version "0.0.8" + resolved "https://registry.yarnpkg.com/@stdlib/assert-has-float64array-support/-/assert-has-float64array-support-0.0.8.tgz#4d154994d348f5d894f63b3fbb9d7a6e2e4e5311" + integrity sha512-UVQcoeWqgMw9b8PnAmm/sgzFnuWkZcNhJoi7xyMjbiDV/SP1qLCrvi06mq86cqS3QOCma1fEayJdwgteoXyyuw== + dependencies: + "@stdlib/assert-is-float64array" "^0.0.x" + "@stdlib/cli-ctor" "^0.0.x" + "@stdlib/fs-read-file" "^0.0.x" + +"@stdlib/assert-has-node-buffer-support@^0.0.x": + version "0.0.8" + resolved "https://registry.yarnpkg.com/@stdlib/assert-has-node-buffer-support/-/assert-has-node-buffer-support-0.0.8.tgz#5564d8e797c850f6ffc522b720eab1f6cba9c814" + integrity sha512-fgI+hW4Yg4ciiv4xVKH+1rzdV7e5+6UKgMnFbc1XDXHcxLub3vOr8+H6eDECdAIfgYNA7X0Dxa/DgvX9dwDTAQ== + dependencies: + "@stdlib/assert-is-buffer" "^0.0.x" + "@stdlib/cli-ctor" "^0.0.x" + "@stdlib/fs-read-file" "^0.0.x" + +"@stdlib/assert-has-own-property@^0.0.x": + version "0.0.7" + resolved "https://registry.yarnpkg.com/@stdlib/assert-has-own-property/-/assert-has-own-property-0.0.7.tgz#8b55b38e25db8366b028cb871905ac09c9c253fb" + integrity sha512-3YHwSWiUqGlTLSwxAWxrqaD1PkgcJniGyotJeIt5X0tSNmSW0/c9RWroCImTUUB3zBkyBJ79MyU9Nf4Qgm59fQ== + +"@stdlib/assert-has-symbol-support@^0.0.x": + version "0.0.8" + resolved "https://registry.yarnpkg.com/@stdlib/assert-has-symbol-support/-/assert-has-symbol-support-0.0.8.tgz#8606b247f0d023f2a7a6aa8a6fe5e346aa802a8f" + integrity sha512-PoQ9rk8DgDCuBEkOIzGGQmSnjtcdagnUIviaP5YskB45/TJHXseh4NASWME8FV77WFW9v/Wt1MzKFKMzpDFu4Q== + dependencies: + "@stdlib/cli-ctor" "^0.0.x" + "@stdlib/fs-read-file" "^0.0.x" + +"@stdlib/assert-has-tostringtag-support@^0.0.x": + version "0.0.9" + resolved "https://registry.yarnpkg.com/@stdlib/assert-has-tostringtag-support/-/assert-has-tostringtag-support-0.0.9.tgz#1080ef0a4be576a72d19a819498719265456f170" + integrity sha512-UTsqdkrnQ7eufuH5BeyWOJL3ska3u5nvDWKqw3onNNZ2mvdgkfoFD7wHutVGzAA2rkTsSJAMBHVwWLsm5SbKgw== + dependencies: + "@stdlib/assert-has-symbol-support" "^0.0.x" + "@stdlib/cli-ctor" "^0.0.x" + "@stdlib/fs-read-file" "^0.0.x" + +"@stdlib/assert-has-uint16array-support@^0.0.x": + version "0.0.8" + resolved "https://registry.yarnpkg.com/@stdlib/assert-has-uint16array-support/-/assert-has-uint16array-support-0.0.8.tgz#083828067d55e3cc896796bc63cbf5726f67eecf" + integrity sha512-vqFDn30YrtzD+BWnVqFhB130g3cUl2w5AdOxhIkRkXCDYAM5v7YwdNMJEON+D4jI8YB4D5pEYjqKweYaCq4nyg== + dependencies: + "@stdlib/assert-is-uint16array" "^0.0.x" + "@stdlib/cli-ctor" "^0.0.x" + "@stdlib/constants-uint16-max" "^0.0.x" + "@stdlib/fs-read-file" "^0.0.x" + +"@stdlib/assert-has-uint32array-support@^0.0.x": + version "0.0.8" + resolved "https://registry.yarnpkg.com/@stdlib/assert-has-uint32array-support/-/assert-has-uint32array-support-0.0.8.tgz#a98c431fee45743088adb9602ef753c7552f9155" + integrity sha512-tJtKuiFKwFSQQUfRXEReOVGXtfdo6+xlshSfwwNWXL1WPP2LrceoiUoQk7zMCMT6VdbXgGH92LDjVcPmSbH4Xw== + dependencies: + "@stdlib/assert-is-uint32array" "^0.0.x" + "@stdlib/cli-ctor" "^0.0.x" + "@stdlib/constants-uint32-max" "^0.0.x" + "@stdlib/fs-read-file" "^0.0.x" + +"@stdlib/assert-has-uint8array-support@^0.0.x": + version "0.0.8" + resolved "https://registry.yarnpkg.com/@stdlib/assert-has-uint8array-support/-/assert-has-uint8array-support-0.0.8.tgz#9bed19de9834c3ced633551ed630982f0f424724" + integrity sha512-ie4vGTbAS/5Py+LLjoSQi0nwtYBp+WKk20cMYCzilT0rCsBI/oez0RqHrkYYpmt4WaJL4eJqC+/vfQ5NsI7F5w== + dependencies: + "@stdlib/assert-is-uint8array" "^0.0.x" + "@stdlib/cli-ctor" "^0.0.x" + "@stdlib/constants-uint8-max" "^0.0.x" + "@stdlib/fs-read-file" "^0.0.x" + +"@stdlib/assert-is-array@^0.0.x": + version "0.0.7" + resolved "https://registry.yarnpkg.com/@stdlib/assert-is-array/-/assert-is-array-0.0.7.tgz#7f30904f88a195d918c588540a6807d1ae639d79" + integrity sha512-/o6KclsGkNcZ5hiROarsD9XUs6xQMb4lTwF6O71UHbKWTtomEF/jD0rxLvlvj0BiCxfKrReddEYd2CnhUyskMA== + dependencies: + "@stdlib/utils-native-class" "^0.0.x" + +"@stdlib/assert-is-big-endian@^0.0.x": + version "0.0.7" + resolved "https://registry.yarnpkg.com/@stdlib/assert-is-big-endian/-/assert-is-big-endian-0.0.7.tgz#25ca21fb1ae0ec8201a716731497a2a15f315a7f" + integrity sha512-BvutsX84F76YxaSIeS5ZQTl536lz+f+P7ew68T1jlFqxBhr4v7JVYFmuf24U040YuK1jwZ2sAq+bPh6T09apwQ== + dependencies: + "@stdlib/array-uint16" "^0.0.x" + "@stdlib/array-uint8" "^0.0.x" + "@stdlib/cli-ctor" "^0.0.x" + "@stdlib/fs-read-file" "^0.0.x" + +"@stdlib/assert-is-boolean@^0.0.x": + version "0.0.8" + resolved "https://registry.yarnpkg.com/@stdlib/assert-is-boolean/-/assert-is-boolean-0.0.8.tgz#6b38c2e799e4475d7647fb0e44519510e67080ce" + integrity sha512-PRCpslMXSYqFMz1Yh4dG2K/WzqxTCtlKbgJQD2cIkAtXux4JbYiXCtepuoV7l4Wv1rm0a1eU8EqNPgnOmWajGw== + dependencies: + "@stdlib/assert-has-tostringtag-support" "^0.0.x" + "@stdlib/utils-define-nonenumerable-read-only-property" "^0.0.x" + "@stdlib/utils-native-class" "^0.0.x" + +"@stdlib/assert-is-buffer@^0.0.x": + version "0.0.8" + resolved "https://registry.yarnpkg.com/@stdlib/assert-is-buffer/-/assert-is-buffer-0.0.8.tgz#633b98bc342979e9ed8ed71c3a0f1366782d1412" + integrity sha512-SYmGwOXkzZVidqUyY1IIx6V6QnSL36v3Lcwj8Rvne/fuW0bU2OomsEBzYCFMvcNgtY71vOvgZ9VfH3OppvV6eA== + dependencies: + "@stdlib/assert-is-object-like" "^0.0.x" + +"@stdlib/assert-is-float32array@^0.0.x": + version "0.0.8" + resolved "https://registry.yarnpkg.com/@stdlib/assert-is-float32array/-/assert-is-float32array-0.0.8.tgz#a43f6106a2ef8797496ab85aaf6570715394654a" + integrity sha512-Phk0Ze7Vj2/WLv5Wy8Oo7poZIDMSTiTrEnc1t4lBn3Svz2vfBXlvCufi/i5d93vc4IgpkdrOEwfry6nldABjNQ== + dependencies: + "@stdlib/utils-native-class" "^0.0.x" + +"@stdlib/assert-is-float64array@^0.0.x": + version "0.0.8" + resolved "https://registry.yarnpkg.com/@stdlib/assert-is-float64array/-/assert-is-float64array-0.0.8.tgz#8c27204ae6cf309e16f0bbad1937f8aa06c2a812" + integrity sha512-UC0Av36EEYIgqBbCIz1lj9g7qXxL5MqU1UrWun+n91lmxgdJ+Z77fHy75efJbJlXBf6HXhcYXECIsc0u3SzyDQ== + dependencies: + "@stdlib/utils-native-class" "^0.0.x" + +"@stdlib/assert-is-function@^0.0.x": + version "0.0.8" + resolved "https://registry.yarnpkg.com/@stdlib/assert-is-function/-/assert-is-function-0.0.8.tgz#e4925022b7dd8c4a67e86769691d1d29ab159db9" + integrity sha512-M55Dt2njp5tnY8oePdbkKBRIypny+LpCMFZhEjJIxjLE4rA6zSlHs1yRMqD4PmW+Wl9WTeEM1GYO4AQHl1HAjA== + dependencies: + "@stdlib/utils-type-of" "^0.0.x" + +"@stdlib/assert-is-little-endian@^0.0.x": + version "0.0.7" + resolved "https://registry.yarnpkg.com/@stdlib/assert-is-little-endian/-/assert-is-little-endian-0.0.7.tgz#f369fa3ec05c0e3a813738174b6821aacda6e323" + integrity sha512-SPObC73xXfDXY0dOewXR0LDGN3p18HGzm+4K8azTj6wug0vpRV12eB3hbT28ybzRCa6TAKUjwM/xY7Am5QzIlA== + dependencies: + "@stdlib/array-uint16" "^0.0.x" + "@stdlib/array-uint8" "^0.0.x" + "@stdlib/cli-ctor" "^0.0.x" + "@stdlib/fs-read-file" "^0.0.x" + +"@stdlib/assert-is-number@^0.0.x": + version "0.0.7" + resolved "https://registry.yarnpkg.com/@stdlib/assert-is-number/-/assert-is-number-0.0.7.tgz#82b07cda4045bd0ecc846d3bc26d39dca7041c61" + integrity sha512-mNV4boY1cUOmoWWfA2CkdEJfXA6YvhcTvwKC0Fzq+HoFFOuTK/scpTd9HanUyN6AGBlWA8IW+cQ1ZwOT3XMqag== + dependencies: + "@stdlib/assert-has-tostringtag-support" "^0.0.x" + "@stdlib/number-ctor" "^0.0.x" + "@stdlib/utils-define-nonenumerable-read-only-property" "^0.0.x" + "@stdlib/utils-native-class" "^0.0.x" + +"@stdlib/assert-is-object-like@^0.0.x": + version "0.0.8" + resolved "https://registry.yarnpkg.com/@stdlib/assert-is-object-like/-/assert-is-object-like-0.0.8.tgz#f6fc36eb7b612d650c6201d177214733426f0c56" + integrity sha512-pe9selDPYAu/lYTFV5Rj4BStepgbzQCr36b/eC8EGSJh6gMgRXgHVv0R+EbdJ69KNkHvKKRjnWj0A/EmCwW+OA== + dependencies: + "@stdlib/assert-tools-array-function" "^0.0.x" + "@stdlib/utils-define-nonenumerable-read-only-property" "^0.0.x" + +"@stdlib/assert-is-object@^0.0.x": + version "0.0.8" + resolved "https://registry.yarnpkg.com/@stdlib/assert-is-object/-/assert-is-object-0.0.8.tgz#0220dca73bc3df044fc43e73b02963d5ef7ae489" + integrity sha512-ooPfXDp9c7w+GSqD2NBaZ/Du1JRJlctv+Abj2vRJDcDPyrnRTb1jmw+AuPgcW7Ca7op39JTbArI+RVHm/FPK+Q== + dependencies: + "@stdlib/assert-is-array" "^0.0.x" + +"@stdlib/assert-is-plain-object@^0.0.x": + version "0.0.7" + resolved "https://registry.yarnpkg.com/@stdlib/assert-is-plain-object/-/assert-is-plain-object-0.0.7.tgz#0c3679faf61b03023363f1ce30f8d00f8ed1c37b" + integrity sha512-t/CEq2a083ajAgXgSa5tsH8l3kSoEqKRu1qUwniVLFYL4RGv3615CrpJUDQKVtEX5S/OKww5q0Byu3JidJ4C5w== + dependencies: + "@stdlib/assert-has-own-property" "^0.0.x" + "@stdlib/assert-is-function" "^0.0.x" + "@stdlib/assert-is-object" "^0.0.x" + "@stdlib/utils-get-prototype-of" "^0.0.x" + "@stdlib/utils-native-class" "^0.0.x" + +"@stdlib/assert-is-regexp-string@^0.0.x": + version "0.0.9" + resolved "https://registry.yarnpkg.com/@stdlib/assert-is-regexp-string/-/assert-is-regexp-string-0.0.9.tgz#424f77b4aaa46a19f4b60ba4b671893a2e5df066" + integrity sha512-FYRJJtH7XwXEf//X6UByUC0Eqd0ZYK5AC8or5g5m5efQrgr2lOaONHyDQ3Scj1A2D6QLIJKZc9XBM4uq5nOPXA== + dependencies: + "@stdlib/assert-is-string" "^0.0.x" + "@stdlib/cli-ctor" "^0.0.x" + "@stdlib/fs-read-file" "^0.0.x" + "@stdlib/process-read-stdin" "^0.0.x" + "@stdlib/regexp-eol" "^0.0.x" + "@stdlib/regexp-regexp" "^0.0.x" + "@stdlib/streams-node-stdin" "^0.0.x" + +"@stdlib/assert-is-regexp@^0.0.x": + version "0.0.7" + resolved "https://registry.yarnpkg.com/@stdlib/assert-is-regexp/-/assert-is-regexp-0.0.7.tgz#430fe42417114e7ea01d21399a70ed9c4cbae867" + integrity sha512-ty5qvLiqkDq6AibHlNJe0ZxDJ9Mg896qolmcHb69mzp64vrsORnPPOTzVapAq0bEUZbXoypeijypLPs9sCGBSQ== + dependencies: + "@stdlib/assert-has-tostringtag-support" "^0.0.x" + "@stdlib/utils-native-class" "^0.0.x" + +"@stdlib/assert-is-string@^0.0.x": + version "0.0.8" + resolved "https://registry.yarnpkg.com/@stdlib/assert-is-string/-/assert-is-string-0.0.8.tgz#b07e4a4cbd93b13d38fa5ebfaa281ccd6ae9e43f" + integrity sha512-Uk+bR4cglGBbY0q7O7HimEJiW/DWnO1tSzr4iAGMxYgf+VM2PMYgI5e0TLy9jOSOzWon3YS39lc63eR3a9KqeQ== + dependencies: + "@stdlib/assert-has-tostringtag-support" "^0.0.x" + "@stdlib/utils-define-nonenumerable-read-only-property" "^0.0.x" + "@stdlib/utils-native-class" "^0.0.x" + +"@stdlib/assert-is-uint16array@^0.0.x": + version "0.0.8" + resolved "https://registry.yarnpkg.com/@stdlib/assert-is-uint16array/-/assert-is-uint16array-0.0.8.tgz#770cc5d86906393d30d387a291e81df0a984fdfb" + integrity sha512-M+qw7au+qglRXcXHjvoUZVLlGt1mPjuKudrVRto6KL4+tDsP2j+A89NDP3Fz8/XIUD+5jhj+65EOKHSMvDYnng== + dependencies: + "@stdlib/utils-native-class" "^0.0.x" + +"@stdlib/assert-is-uint32array@^0.0.x": + version "0.0.8" + resolved "https://registry.yarnpkg.com/@stdlib/assert-is-uint32array/-/assert-is-uint32array-0.0.8.tgz#2a7f1265db25d728e3fc084f0f59be5f796efac5" + integrity sha512-cnZi2DicYcplMnkJ3dBxBVKsRNFjzoGpmG9A6jXq4KH5rFl52SezGAXSVY9o5ZV7bQGaF5JLyCLp6n9Y74hFGg== + dependencies: + "@stdlib/utils-native-class" "^0.0.x" + +"@stdlib/assert-is-uint8array@^0.0.x": + version "0.0.8" + resolved "https://registry.yarnpkg.com/@stdlib/assert-is-uint8array/-/assert-is-uint8array-0.0.8.tgz#4521054b5d3a2206b406cad7368e0a50eaee4dec" + integrity sha512-8cqpDQtjnJAuVtRkNAktn45ixq0JHaGJxVsSiK79k7GRggvMI6QsbzO6OvcLnZ/LimD42FmgbLd13Yc2esDmZw== + dependencies: + "@stdlib/utils-native-class" "^0.0.x" + +"@stdlib/assert-tools-array-function@^0.0.x": + version "0.0.7" + resolved "https://registry.yarnpkg.com/@stdlib/assert-tools-array-function/-/assert-tools-array-function-0.0.7.tgz#34e9e5a3fca62ea75da99fc9995ba845ba514988" + integrity sha512-3lqkaCIBMSJ/IBHHk4NcCnk2NYU52tmwTYbbqhAmv7vim8rZPNmGfj3oWkzrCsyCsyTF7ooD+In2x+qTmUbCtQ== + dependencies: + "@stdlib/assert-is-array" "^0.0.x" + +"@stdlib/buffer-ctor@^0.0.x": + version "0.0.7" + resolved "https://registry.yarnpkg.com/@stdlib/buffer-ctor/-/buffer-ctor-0.0.7.tgz#d05b7f4a6ef26defe6cdd41ca244a927b96c55ec" + integrity sha512-4IyTSGijKUQ8+DYRaKnepf9spvKLZ+nrmZ+JrRcB3FrdTX/l9JDpggcUcC/Fe+A4KIZOnClfxLn6zfIlkCZHNA== + dependencies: + "@stdlib/assert-has-node-buffer-support" "^0.0.x" + +"@stdlib/buffer-from-string@^0.0.x": + version "0.0.8" + resolved "https://registry.yarnpkg.com/@stdlib/buffer-from-string/-/buffer-from-string-0.0.8.tgz#0901a6e66c278db84836e483a7278502e2a33994" + integrity sha512-Dws5ZbK2M9l4Bkn/ODHFm3lNZ8tWko+NYXqGS/UH/RIQv3PGp+1tXFUSvjwjDneM6ppjQVExzVedUH1ftABs9A== + dependencies: + "@stdlib/assert-is-function" "^0.0.x" + "@stdlib/assert-is-string" "^0.0.x" + "@stdlib/buffer-ctor" "^0.0.x" + "@stdlib/string-format" "^0.0.x" + +"@stdlib/cli-ctor@^0.0.x": + version "0.0.3" + resolved "https://registry.yarnpkg.com/@stdlib/cli-ctor/-/cli-ctor-0.0.3.tgz#5b0a6d253217556c778015eee6c14be903f82c2b" + integrity sha512-0zCuZnzFyxj66GoF8AyIOhTX5/mgGczFvr6T9h4mXwegMZp8jBC/ZkOGMwmp+ODLBTvlcnnDNpNFkDDyR6/c2g== + dependencies: + "@stdlib/utils-define-nonenumerable-read-only-property" "^0.0.x" + "@stdlib/utils-noop" "^0.0.x" + minimist "^1.2.0" + +"@stdlib/complex-float32@^0.0.x": + version "0.0.7" + resolved "https://registry.yarnpkg.com/@stdlib/complex-float32/-/complex-float32-0.0.7.tgz#fb9a0c34254eaf3ed91c39983e19ef131fc18bc1" + integrity sha512-POCtQcBZnPm4IrFmTujSaprR1fcOFr/MRw2Mt7INF4oed6b1nzeG647K+2tk1m4mMrMPiuXCdvwJod4kJ0SXxQ== + dependencies: + "@stdlib/assert-is-number" "^0.0.x" + "@stdlib/number-float64-base-to-float32" "^0.0.x" + "@stdlib/utils-define-nonenumerable-read-only-property" "^0.0.x" + "@stdlib/utils-define-property" "^0.0.x" + "@stdlib/utils-library-manifest" "^0.0.x" + +"@stdlib/complex-float64@^0.0.x": + version "0.0.8" + resolved "https://registry.yarnpkg.com/@stdlib/complex-float64/-/complex-float64-0.0.8.tgz#00ee3a0629d218a01b830a20406aea7d7aff6fb3" + integrity sha512-lUJwsXtGEziOWAqCcnKnZT4fcVoRsl6t6ECaCJX45Z7lAc70yJLiwUieLWS5UXmyoADHuZyUXkxtI4oClfpnaw== + dependencies: + "@stdlib/assert-is-number" "^0.0.x" + "@stdlib/complex-float32" "^0.0.x" + "@stdlib/utils-define-nonenumerable-read-only-property" "^0.0.x" + "@stdlib/utils-define-property" "^0.0.x" + "@stdlib/utils-library-manifest" "^0.0.x" + +"@stdlib/complex-reim@^0.0.x": + version "0.0.6" + resolved "https://registry.yarnpkg.com/@stdlib/complex-reim/-/complex-reim-0.0.6.tgz#9657971e36f2a1f1930a21249c1934c8c5087efd" + integrity sha512-28WXfPSIFMtHb0YgdatkGS4yxX5sPYea5MiNgqPv3E78+tFcg8JJG52NQ/MviWP2wsN9aBQAoCPeu8kXxSPdzA== + dependencies: + "@stdlib/array-float64" "^0.0.x" + "@stdlib/complex-float64" "^0.0.x" + "@stdlib/types" "^0.0.x" + "@stdlib/utils-library-manifest" "^0.0.x" + +"@stdlib/complex-reimf@^0.0.x": + version "0.0.1" + resolved "https://registry.yarnpkg.com/@stdlib/complex-reimf/-/complex-reimf-0.0.1.tgz#6797bc1bfb668a30511611f2544d0cff4d297775" + integrity sha512-P9zu05ZW2i68Oppp3oHelP7Tk0D7tGBL0hGl1skJppr2vY9LltuNbeYI3C96tQe/7Enw/5GyAWgxoQI4cWccQA== + dependencies: + "@stdlib/array-float32" "^0.0.x" + "@stdlib/complex-float32" "^0.0.x" + "@stdlib/types" "^0.0.x" + "@stdlib/utils-library-manifest" "^0.0.x" + +"@stdlib/constants-float64-exponent-bias@^0.0.x": + version "0.0.7" + resolved "https://registry.yarnpkg.com/@stdlib/constants-float64-exponent-bias/-/constants-float64-exponent-bias-0.0.7.tgz#caa9e6f95179001ae67bd76adca7ba13cce50350" + integrity sha512-F0f95YUVGijNzBEgOzvQXwZC41SQyefB0sYntfVMi071I5Luv1HlYc+H80Ree/Wfn3gFNACe7JdfFIMpeJgTNg== + +"@stdlib/constants-float64-high-word-exponent-mask@^0.0.x": + version "0.0.7" + resolved "https://registry.yarnpkg.com/@stdlib/constants-float64-high-word-exponent-mask/-/constants-float64-high-word-exponent-mask-0.0.7.tgz#7ded7c0c31dc4f08fb3aca5617afa621c72c9e36" + integrity sha512-7/GL1DW/BeWLvTcfbuWUyKJkcIN9fM6m8xPEGfq6vAvv+dRIAlwKsVZVTBIAD1FcoXLKV/GDptOPTQRAPoxGqA== + +"@stdlib/constants-float64-max-base2-exponent-subnormal@^0.0.x": + version "0.0.7" + resolved "https://registry.yarnpkg.com/@stdlib/constants-float64-max-base2-exponent-subnormal/-/constants-float64-max-base2-exponent-subnormal-0.0.7.tgz#4d2e0981442572ff43290844e0c09effac2d428d" + integrity sha512-2SKF0w6XZe1O6S3TAPHjS8pUXujSCeiCzuskQyBBw1ZbbsU0Y6Qh4f99rk1L7f/C9Kp2h8GUh4KV25bdIO8jiQ== + +"@stdlib/constants-float64-max-base2-exponent@^0.0.x": + version "0.0.7" + resolved "https://registry.yarnpkg.com/@stdlib/constants-float64-max-base2-exponent/-/constants-float64-max-base2-exponent-0.0.7.tgz#a10640b200b282cfc5fe7f37a29ff518bf78dd23" + integrity sha512-9vOMjILdOE7f3glCWuvQtfmiipE/WsImmAbG3u5KAeLluJhosNRhnfGbfRGydJiyDDYcs3W3l1ViXhLnRLuJZA== + +"@stdlib/constants-float64-min-base2-exponent-subnormal@^0.0.x": + version "0.0.7" + resolved "https://registry.yarnpkg.com/@stdlib/constants-float64-min-base2-exponent-subnormal/-/constants-float64-min-base2-exponent-subnormal-0.0.7.tgz#59a546567492bcfded6054585486f725eab50f3b" + integrity sha512-SFw/ZA2BP0pyLkKkbWdGGMJ9zqqHZs3NyXvGjuEAVgmCFwdH+xTyvcOo/dC543WUoPKTkLsZ4D8h4TBUksfw8A== + +"@stdlib/constants-float64-ninf@^0.0.x": + version "0.0.7" + resolved "https://registry.yarnpkg.com/@stdlib/constants-float64-ninf/-/constants-float64-ninf-0.0.7.tgz#ca961b0726abda273fe7fcdfb894bbfe41297f8c" + integrity sha512-piVlJxJDTd5v2ZTYNyXVV2qzc5kNibhpgK+H+ykaO80FNQvqt8bIP3TTca98q+u/8tmJi15qLLRBapiT+cczjA== + dependencies: + "@stdlib/number-ctor" "^0.0.x" + +"@stdlib/constants-float64-pinf@^0.0.x": + version "0.0.7" + resolved "https://registry.yarnpkg.com/@stdlib/constants-float64-pinf/-/constants-float64-pinf-0.0.7.tgz#aac7325ff5437089ac364290e9cd3f88e1c7d0fa" + integrity sha512-kITkBiwGkrbjDOPG9TqwW9ryTpGKs5Evlf5CJjz59kvnXtVq2FDXpJ2oePPlyWa6cc1fyGkeLwBZMCWsRgs1rQ== + +"@stdlib/constants-float64-smallest-normal@^0.0.x": + version "0.0.7" + resolved "https://registry.yarnpkg.com/@stdlib/constants-float64-smallest-normal/-/constants-float64-smallest-normal-0.0.7.tgz#41511d44b58502a995c01400e259cde8acfb6b88" + integrity sha512-3v0kxGdIj9bW4s/jy/g1A3mmAlWP9sEEJwUMTW5QKjlw5vpYJj7QvDb8Ofvc2/hk5DgzIMNefkZMOUs3ancXfA== + +"@stdlib/constants-uint16-max@^0.0.x": + version "0.0.7" + resolved "https://registry.yarnpkg.com/@stdlib/constants-uint16-max/-/constants-uint16-max-0.0.7.tgz#c20dbe90cf3825f03f5f44b9ee7e8cbada26f4f1" + integrity sha512-7TPoku7SlskA67mAm7mykIAjeEnkQJemw1cnKZur0mT5W4ryvDR6iFfL9xBiByVnWYq/+ei7DHbOv6/2b2jizw== + +"@stdlib/constants-uint32-max@^0.0.x": + version "0.0.7" + resolved "https://registry.yarnpkg.com/@stdlib/constants-uint32-max/-/constants-uint32-max-0.0.7.tgz#60bda569b226120a5d2e01f3066da8e2d3b8e21a" + integrity sha512-8+NK0ewqc1vnEZNqzwFJgFSy3S543Eft7i8WyW/ygkofiqEiLAsujvYMHzPAB8/3D+PYvjTSe37StSwRwvQ6uw== + +"@stdlib/constants-uint8-max@^0.0.x": + version "0.0.7" + resolved "https://registry.yarnpkg.com/@stdlib/constants-uint8-max/-/constants-uint8-max-0.0.7.tgz#d50affeaeb6e67a0f39059a8f5122f3fd5ff4447" + integrity sha512-fqV+xds4jgwFxwWu08b8xDuIoW6/D4/1dtEjZ1sXVeWR7nf0pjj1cHERq4kdkYxsvOGu+rjoR3MbjzpFc4fvSw== + +"@stdlib/fs-exists@^0.0.x": + version "0.0.8" + resolved "https://registry.yarnpkg.com/@stdlib/fs-exists/-/fs-exists-0.0.8.tgz#391b2cee3e014a3b20266e5d047847f68ef82331" + integrity sha512-mZktcCxiLmycCJefm1+jbMTYkmhK6Jk1ShFmUVqJvs+Ps9/2EEQXfPbdEniLoVz4HeHLlcX90JWobUEghOOnAQ== + dependencies: + "@stdlib/cli-ctor" "^0.0.x" + "@stdlib/fs-read-file" "^0.0.x" + "@stdlib/process-cwd" "^0.0.x" + "@stdlib/utils-define-nonenumerable-read-only-property" "^0.0.x" + +"@stdlib/fs-read-file@^0.0.x": + version "0.0.8" + resolved "https://registry.yarnpkg.com/@stdlib/fs-read-file/-/fs-read-file-0.0.8.tgz#2f12669fa6dd2d330fb5006a94dc8896f0aaa0e0" + integrity sha512-pIZID/G91+q7ep4x9ECNC45+JT2j0+jdz/ZQVjCHiEwXCwshZPEvxcPQWb9bXo6coOY+zJyX5TwBIpXBxomWFg== + dependencies: + "@stdlib/cli-ctor" "^0.0.x" + "@stdlib/utils-define-nonenumerable-read-only-property" "^0.0.x" + +"@stdlib/fs-resolve-parent-path@^0.0.x": + version "0.0.8" + resolved "https://registry.yarnpkg.com/@stdlib/fs-resolve-parent-path/-/fs-resolve-parent-path-0.0.8.tgz#628119952dfaae78afe3916dca856408a4f5c1eb" + integrity sha512-ok1bTWsAziChibQE3u7EoXwbCQUDkFjjRAHSxh7WWE5JEYVJQg1F0o3bbjRr4D/wfYYPWLAt8AFIKBUDmWghpg== + dependencies: + "@stdlib/assert-has-own-property" "^0.0.x" + "@stdlib/assert-is-function" "^0.0.x" + "@stdlib/assert-is-plain-object" "^0.0.x" + "@stdlib/assert-is-string" "^0.0.x" + "@stdlib/cli-ctor" "^0.0.x" + "@stdlib/fs-exists" "^0.0.x" + "@stdlib/fs-read-file" "^0.0.x" + "@stdlib/process-cwd" "^0.0.x" + "@stdlib/utils-define-nonenumerable-read-only-property" "^0.0.x" + +"@stdlib/math-base-assert-is-infinite@^0.0.x": + version "0.0.9" + resolved "https://registry.yarnpkg.com/@stdlib/math-base-assert-is-infinite/-/math-base-assert-is-infinite-0.0.9.tgz#f9aa84e43a01ce4ccd976b20fbe7c508de884a90" + integrity sha512-JuPDdmxd+AtPWPHu9uaLvTsnEPaZODZk+zpagziNbDKy8DRiU1cy+t+QEjB5WizZt0A5MkuxDTjZ/8/sG5GaYQ== + dependencies: + "@stdlib/constants-float64-ninf" "^0.0.x" + "@stdlib/constants-float64-pinf" "^0.0.x" + "@stdlib/utils-library-manifest" "^0.0.x" + +"@stdlib/math-base-assert-is-nan@^0.0.x": + version "0.0.8" + resolved "https://registry.yarnpkg.com/@stdlib/math-base-assert-is-nan/-/math-base-assert-is-nan-0.0.8.tgz#0cd6a546ca1e758251f04898fc906f6fce9e0f80" + integrity sha512-m+gCVBxLFW8ZdAfdkATetYMvM7sPFoMKboacHjb1pe21jHQqVb+/4bhRSDg6S7HGX7/8/bSzEUm9zuF7vqK5rQ== + dependencies: + "@stdlib/utils-library-manifest" "^0.0.x" + +"@stdlib/math-base-napi-binary@^0.0.x": + version "0.0.8" + resolved "https://registry.yarnpkg.com/@stdlib/math-base-napi-binary/-/math-base-napi-binary-0.0.8.tgz#b2754b021e40e3982c5f22b853ca50724b9eb8de" + integrity sha512-B8d0HBPhfXefbdl/h0h5c+lM2sE+/U7Fb7hY/huVeoQtBtEx0Jbx/qKvPSVxMjmWCKfWlbPpbgKpN5GbFgLiAg== + dependencies: + "@stdlib/complex-float32" "^0.0.x" + "@stdlib/complex-float64" "^0.0.x" + "@stdlib/complex-reim" "^0.0.x" + "@stdlib/complex-reimf" "^0.0.x" + "@stdlib/utils-library-manifest" "^0.0.x" + +"@stdlib/math-base-napi-unary@^0.0.x": + version "0.0.8" + resolved "https://registry.yarnpkg.com/@stdlib/math-base-napi-unary/-/math-base-napi-unary-0.0.8.tgz#4a6719886caa96bcfb67648c368a84b47072be6f" + integrity sha512-xKbGBxbgrEe7dxCDXJrooXPhXSDUl/QPqsN74Qa0+8Svsc4sbYVdU3yHSN5vDgrcWt3ZkH51j0vCSBIjvLL15g== + dependencies: + "@stdlib/complex-float32" "^0.0.x" + "@stdlib/complex-float64" "^0.0.x" + "@stdlib/complex-reim" "^0.0.x" + "@stdlib/complex-reimf" "^0.0.x" + "@stdlib/utils-library-manifest" "^0.0.x" + +"@stdlib/math-base-special-abs@^0.0.x": + version "0.0.6" + resolved "https://registry.yarnpkg.com/@stdlib/math-base-special-abs/-/math-base-special-abs-0.0.6.tgz#1e95dbeaf417ef779c6ab6beaf15f9f96cae6fa9" + integrity sha512-FaaMUnYs2qIVN3kI5m/qNlBhDnjszhDOzEhxGEoQWR/k0XnxbCsTyjNesR2DkpiKuoAXAr9ojoDe2qBYdirWoQ== + dependencies: + "@stdlib/math-base-napi-unary" "^0.0.x" + "@stdlib/number-float64-base-to-words" "^0.0.x" + "@stdlib/utils-library-manifest" "^0.0.x" + +"@stdlib/math-base-special-copysign@^0.0.x": + version "0.0.6" + resolved "https://registry.yarnpkg.com/@stdlib/math-base-special-copysign/-/math-base-special-copysign-0.0.6.tgz#ba1781b4be40dee5a67282b368c30f9cc5201bd0" + integrity sha512-2u2ariXtGK0c+Z8y0QHUrdP2aEvkKSZZ4GRNehVYMZT1cwDnZZOZRdTNKFquDldJ/C407upOvLpkzIeS9WmkUQ== + dependencies: + "@stdlib/math-base-napi-binary" "^0.0.x" + "@stdlib/number-float64-base-from-words" "^0.0.x" + "@stdlib/number-float64-base-get-high-word" "^0.0.x" + "@stdlib/number-float64-base-to-words" "^0.0.x" + "@stdlib/utils-library-manifest" "^0.0.x" + +"@stdlib/math-base-special-ldexp@^0.0.5": + version "0.0.5" + resolved "https://registry.yarnpkg.com/@stdlib/math-base-special-ldexp/-/math-base-special-ldexp-0.0.5.tgz#df5a1fc0252a6d6cc5f12126af903e7391d78aad" + integrity sha512-RLRsPpCdcJZMhwb4l4B/FsmGfEPEWAsik6KYUkUSSHb7ok/gZWt8LgVScxGMpJMpl5IV0v9qG4ZINVONKjX5KA== + dependencies: + "@stdlib/constants-float64-exponent-bias" "^0.0.x" + "@stdlib/constants-float64-max-base2-exponent" "^0.0.x" + "@stdlib/constants-float64-max-base2-exponent-subnormal" "^0.0.x" + "@stdlib/constants-float64-min-base2-exponent-subnormal" "^0.0.x" + "@stdlib/constants-float64-ninf" "^0.0.x" + "@stdlib/constants-float64-pinf" "^0.0.x" + "@stdlib/math-base-assert-is-infinite" "^0.0.x" + "@stdlib/math-base-assert-is-nan" "^0.0.x" + "@stdlib/math-base-special-copysign" "^0.0.x" + "@stdlib/number-float64-base-exponent" "^0.0.x" + "@stdlib/number-float64-base-from-words" "^0.0.x" + "@stdlib/number-float64-base-normalize" "^0.0.x" + "@stdlib/number-float64-base-to-words" "^0.0.x" + +"@stdlib/number-ctor@^0.0.x": + version "0.0.7" + resolved "https://registry.yarnpkg.com/@stdlib/number-ctor/-/number-ctor-0.0.7.tgz#e97a66664639c9853b6c80bc7a15f7d67a2fc991" + integrity sha512-kXNwKIfnb10Ro3RTclhAYqbE3DtIXax+qpu0z1/tZpI2vkmTfYDQLno2QJrzJsZZgdeFtXIws+edONN9kM34ow== + +"@stdlib/number-float64-base-exponent@^0.0.x": + version "0.0.6" + resolved "https://registry.yarnpkg.com/@stdlib/number-float64-base-exponent/-/number-float64-base-exponent-0.0.6.tgz#cd4483d9faccaf7324c385da8e37d5ecf2f120b0" + integrity sha512-wLXsG+cvynmapoffmj5hVNDH7BuHIGspBcTCdjPaD+tnqPDIm03qV5Z9YBhDh91BdOCuPZQ8Ovu2WBpX+ySeGg== + dependencies: + "@stdlib/constants-float64-exponent-bias" "^0.0.x" + "@stdlib/constants-float64-high-word-exponent-mask" "^0.0.x" + "@stdlib/number-float64-base-get-high-word" "^0.0.x" + +"@stdlib/number-float64-base-from-words@^0.0.x": + version "0.0.6" + resolved "https://registry.yarnpkg.com/@stdlib/number-float64-base-from-words/-/number-float64-base-from-words-0.0.6.tgz#886e7dedd086e97d38b7e5fcf4c310467dbaac3c" + integrity sha512-r0elnekypCN831aw9Gp8+08br8HHAqvqtc5uXaxEh3QYIgBD/QM5qSb3b7WSAQ0ZxJJKdoykupODWWBkWQTijg== + dependencies: + "@stdlib/array-float64" "^0.0.x" + "@stdlib/array-uint32" "^0.0.x" + "@stdlib/assert-is-little-endian" "^0.0.x" + "@stdlib/number-float64-base-to-words" "^0.0.x" + "@stdlib/utils-library-manifest" "^0.0.x" + +"@stdlib/number-float64-base-get-high-word@^0.0.x": + version "0.0.6" + resolved "https://registry.yarnpkg.com/@stdlib/number-float64-base-get-high-word/-/number-float64-base-get-high-word-0.0.6.tgz#4d3b8731a22017521cc7fc3ba57c7915b3e20fee" + integrity sha512-jSFSYkgiG/IzDurbwrDKtWiaZeSEJK8iJIsNtbPG1vOIdQMRyw+t0bf3Kf3vuJu/+bnSTvYZLqpCO6wzT/ve9g== + dependencies: + "@stdlib/array-float64" "^0.0.x" + "@stdlib/array-uint32" "^0.0.x" + "@stdlib/assert-is-little-endian" "^0.0.x" + "@stdlib/number-float64-base-to-words" "^0.0.x" + "@stdlib/utils-library-manifest" "^0.0.x" + +"@stdlib/number-float64-base-normalize@^0.0.x": + version "0.0.6" + resolved "https://registry.yarnpkg.com/@stdlib/number-float64-base-normalize/-/number-float64-base-normalize-0.0.6.tgz#897083ba2ed4af43250c20cd65bfde2b798bf25d" + integrity sha512-+RvDf+vQdtGOg7lwz2vGFYL2hA0FyfAJyWVjBkesfHyyKL8nQclA83NJp6bjh+pVkOW3obBDX9zi8Gir4ORm1g== + dependencies: + "@stdlib/constants-float64-smallest-normal" "^0.0.x" + "@stdlib/math-base-assert-is-infinite" "^0.0.x" + "@stdlib/math-base-assert-is-nan" "^0.0.x" + "@stdlib/math-base-special-abs" "^0.0.x" + "@stdlib/types" "^0.0.x" + +"@stdlib/number-float64-base-to-float32@^0.0.x": + version "0.0.7" + resolved "https://registry.yarnpkg.com/@stdlib/number-float64-base-to-float32/-/number-float64-base-to-float32-0.0.7.tgz#c7b82bb26cb7404017ede32cebe5864fd84c0e35" + integrity sha512-PNUSi6+cqfFiu4vgFljUKMFY2O9PxI6+T+vqtIoh8cflf+PjSGj3v4QIlstK9+6qU40eGR5SHZyLTWdzmNqLTQ== + dependencies: + "@stdlib/array-float32" "^0.0.x" + +"@stdlib/number-float64-base-to-words@^0.0.x": + version "0.0.6" + resolved "https://registry.yarnpkg.com/@stdlib/number-float64-base-to-words/-/number-float64-base-to-words-0.0.6.tgz#527d0f251bad55b628e67aee95d2e00d611ff843" + integrity sha512-J7S0+yOBcrU9/gMTLE3oQUrtGvDj6uSxC8swOnXCLrCm0l3WItYlBl4PHPxJ+cgRiduHd1ol+ud7ctFI5/66sw== + dependencies: + "@stdlib/array-float64" "^0.0.x" + "@stdlib/array-uint32" "^0.0.x" + "@stdlib/assert-is-little-endian" "^0.0.x" + "@stdlib/os-byte-order" "^0.0.x" + "@stdlib/os-float-word-order" "^0.0.x" + "@stdlib/types" "^0.0.x" + "@stdlib/utils-library-manifest" "^0.0.x" + +"@stdlib/os-byte-order@^0.0.x": + version "0.0.7" + resolved "https://registry.yarnpkg.com/@stdlib/os-byte-order/-/os-byte-order-0.0.7.tgz#131e02fb2ec67d172b9fe57caa629809fba11e7f" + integrity sha512-rRJWjFM9lOSBiIX4zcay7BZsqYBLoE32Oz/Qfim8cv1cN1viS5D4d3DskRJcffw7zXDnG3oZAOw5yZS0FnlyUg== + dependencies: + "@stdlib/assert-is-big-endian" "^0.0.x" + "@stdlib/assert-is-little-endian" "^0.0.x" + "@stdlib/cli-ctor" "^0.0.x" + "@stdlib/fs-read-file" "^0.0.x" + "@stdlib/utils-library-manifest" "^0.0.x" + +"@stdlib/os-float-word-order@^0.0.x": + version "0.0.7" + resolved "https://registry.yarnpkg.com/@stdlib/os-float-word-order/-/os-float-word-order-0.0.7.tgz#067914ee1d1196b20d136c2eb55db6fd217833b4" + integrity sha512-gXIcIZf+ENKP7E41bKflfXmPi+AIfjXW/oU+m8NbP3DQasqHaZa0z5758qvnbO8L1lRJb/MzLOkIY8Bx/0cWEA== + dependencies: + "@stdlib/cli-ctor" "^0.0.x" + "@stdlib/fs-read-file" "^0.0.x" + "@stdlib/os-byte-order" "^0.0.x" + "@stdlib/utils-library-manifest" "^0.0.x" + +"@stdlib/process-cwd@^0.0.x": + version "0.0.8" + resolved "https://registry.yarnpkg.com/@stdlib/process-cwd/-/process-cwd-0.0.8.tgz#5eef63fb75ffb5fc819659d2f450fa3ee2aa10bf" + integrity sha512-GHINpJgSlKEo9ODDWTHp0/Zc/9C/qL92h5Mc0QlIFBXAoUjy6xT4FB2U16wCNZMG3eVOzt5+SjmCwvGH0Wbg3Q== + dependencies: + "@stdlib/cli-ctor" "^0.0.x" + "@stdlib/fs-read-file" "^0.0.x" + +"@stdlib/process-read-stdin@^0.0.x": + version "0.0.7" + resolved "https://registry.yarnpkg.com/@stdlib/process-read-stdin/-/process-read-stdin-0.0.7.tgz#684ad531759c6635715a67bdd8721fc249baa200" + integrity sha512-nep9QZ5iDGrRtrZM2+pYAvyCiYG4HfO0/9+19BiLJepjgYq4GKeumPAQo22+1xawYDL7Zu62uWzYszaVZcXuyw== + dependencies: + "@stdlib/assert-is-function" "^0.0.x" + "@stdlib/assert-is-string" "^0.0.x" + "@stdlib/buffer-ctor" "^0.0.x" + "@stdlib/buffer-from-string" "^0.0.x" + "@stdlib/streams-node-stdin" "^0.0.x" + "@stdlib/utils-next-tick" "^0.0.x" + +"@stdlib/regexp-eol@^0.0.x": + version "0.0.7" + resolved "https://registry.yarnpkg.com/@stdlib/regexp-eol/-/regexp-eol-0.0.7.tgz#cf1667fdb5da1049c2c2f8d5c47dcbaede8650a4" + integrity sha512-BTMpRWrmlnf1XCdTxOrb8o6caO2lmu/c80XSyhYCi1DoizVIZnqxOaN5yUJNCr50g28vQ47PpsT3Yo7J3SdlRA== + dependencies: + "@stdlib/assert-has-own-property" "^0.0.x" + "@stdlib/assert-is-boolean" "^0.0.x" + "@stdlib/assert-is-plain-object" "^0.0.x" + "@stdlib/assert-is-string" "^0.0.x" + "@stdlib/utils-define-nonenumerable-read-only-property" "^0.0.x" + +"@stdlib/regexp-extended-length-path@^0.0.x": + version "0.0.7" + resolved "https://registry.yarnpkg.com/@stdlib/regexp-extended-length-path/-/regexp-extended-length-path-0.0.7.tgz#7f76641c29895771e6249930e1863e7e137a62e0" + integrity sha512-z6uqzMWq3WPDKbl4MIZJoNA5ZsYLQI9G3j2TIvhU8X2hnhlku8p4mvK9F+QmoVvgPxKliwNnx/DAl7ltutSDKw== + dependencies: + "@stdlib/utils-define-nonenumerable-read-only-property" "^0.0.x" + +"@stdlib/regexp-function-name@^0.0.x": + version "0.0.7" + resolved "https://registry.yarnpkg.com/@stdlib/regexp-function-name/-/regexp-function-name-0.0.7.tgz#e8dc6c7fe9276f0a8b4bc7f630a9e32ba9f37250" + integrity sha512-MaiyFUUqkAUpUoz/9F6AMBuMQQfA9ssQfK16PugehLQh4ZtOXV1LhdY8e5Md7SuYl9IrvFVg1gSAVDysrv5ZMg== + dependencies: + "@stdlib/utils-define-nonenumerable-read-only-property" "^0.0.x" + +"@stdlib/regexp-regexp@^0.0.x": + version "0.0.8" + resolved "https://registry.yarnpkg.com/@stdlib/regexp-regexp/-/regexp-regexp-0.0.8.tgz#50221b52088cd427ef19fae6593977c1c3f77e87" + integrity sha512-S5PZICPd/XRcn1dncVojxIDzJsHtEleuJHHD7ji3o981uPHR7zI2Iy9a1eV2u7+ABeUswbI1Yuix6fXJfcwV1w== + dependencies: + "@stdlib/utils-define-nonenumerable-read-only-property" "^0.0.x" + +"@stdlib/streams-node-stdin@^0.0.x": + version "0.0.7" + resolved "https://registry.yarnpkg.com/@stdlib/streams-node-stdin/-/streams-node-stdin-0.0.7.tgz#65ff09a2140999702a1ad885e6505334d947428f" + integrity sha512-gg4lgrjuoG3V/L29wNs32uADMCqepIcmoOFHJCTAhVe0GtHDLybUVnLljaPfdvmpPZmTvmusPQtIcscbyWvAyg== + +"@stdlib/string-base-format-interpolate@^0.0.x": + version "0.0.4" + resolved "https://registry.yarnpkg.com/@stdlib/string-base-format-interpolate/-/string-base-format-interpolate-0.0.4.tgz#297eeb23c76f745dcbb3d9dbd24e316773944538" + integrity sha512-8FC8+/ey+P5hf1B50oXpXzRzoAgKI1rikpyKZ98Xmjd5rcbSq3NWYi8TqOF8mUHm9hVZ2CXWoNCtEe2wvMQPMg== + +"@stdlib/string-base-format-tokenize@^0.0.x": + version "0.0.4" + resolved "https://registry.yarnpkg.com/@stdlib/string-base-format-tokenize/-/string-base-format-tokenize-0.0.4.tgz#c1fc612ee0c0de5516dbf083e88c11d14748c30e" + integrity sha512-+vMIkheqAhDeT/iF5hIQo95IMkt5IzC68eR3CxW1fhc48NMkKFE2UfN73ET8fmLuOanLo/5pO2E90c2G7PExow== + +"@stdlib/string-format@^0.0.x": + version "0.0.3" + resolved "https://registry.yarnpkg.com/@stdlib/string-format/-/string-format-0.0.3.tgz#e916a7be14d83c83716f5d30b1b1af94c4e105b9" + integrity sha512-1jiElUQXlI/tTkgRuzJi9jUz/EjrO9kzS8VWHD3g7gdc3ZpxlA5G9JrIiPXGw/qmZTi0H1pXl6KmX+xWQEQJAg== + dependencies: + "@stdlib/string-base-format-interpolate" "^0.0.x" + "@stdlib/string-base-format-tokenize" "^0.0.x" + +"@stdlib/string-lowercase@^0.0.x": + version "0.0.9" + resolved "https://registry.yarnpkg.com/@stdlib/string-lowercase/-/string-lowercase-0.0.9.tgz#487361a10364bd0d9b5ee44f5cc654c7da79b66d" + integrity sha512-tXFFjbhIlDak4jbQyV1DhYiSTO8b1ozS2g/LELnsKUjIXECDKxGFyWYcz10KuyAWmFotHnCJdIm8/blm2CfDIA== + dependencies: + "@stdlib/assert-is-string" "^0.0.x" + "@stdlib/cli-ctor" "^0.0.x" + "@stdlib/fs-read-file" "^0.0.x" + "@stdlib/process-read-stdin" "^0.0.x" + "@stdlib/streams-node-stdin" "^0.0.x" + "@stdlib/string-format" "^0.0.x" + +"@stdlib/string-replace@^0.0.x": + version "0.0.11" + resolved "https://registry.yarnpkg.com/@stdlib/string-replace/-/string-replace-0.0.11.tgz#5e8790cdf4d9805ab78cc5798ab3d364dfbf5016" + integrity sha512-F0MY4f9mRE5MSKpAUfL4HLbJMCbG6iUTtHAWnNeAXIvUX1XYIw/eItkA58R9kNvnr1l5B08bavnjrgTJGIKFFQ== + dependencies: + "@stdlib/assert-is-function" "^0.0.x" + "@stdlib/assert-is-regexp" "^0.0.x" + "@stdlib/assert-is-regexp-string" "^0.0.x" + "@stdlib/assert-is-string" "^0.0.x" + "@stdlib/cli-ctor" "^0.0.x" + "@stdlib/fs-read-file" "^0.0.x" + "@stdlib/process-read-stdin" "^0.0.x" + "@stdlib/regexp-eol" "^0.0.x" + "@stdlib/streams-node-stdin" "^0.0.x" + "@stdlib/string-format" "^0.0.x" + "@stdlib/utils-escape-regexp-string" "^0.0.x" + "@stdlib/utils-regexp-from-string" "^0.0.x" + +"@stdlib/types@^0.0.x": + version "0.0.14" + resolved "https://registry.yarnpkg.com/@stdlib/types/-/types-0.0.14.tgz#02d3aab7a9bfaeb86e34ab749772ea22f7b2f7e0" + integrity sha512-AP3EI9/il/xkwUazcoY+SbjtxHRrheXgSbWZdEGD+rWpEgj6n2i63hp6hTOpAB5NipE0tJwinQlDGOuQ1lCaCw== + +"@stdlib/utils-constructor-name@^0.0.x": + version "0.0.8" + resolved "https://registry.yarnpkg.com/@stdlib/utils-constructor-name/-/utils-constructor-name-0.0.8.tgz#ef63d17466c555b58b348a0c1175cee6044b8848" + integrity sha512-GXpyNZwjN8u3tyYjL2GgGfrsxwvfogUC3gg7L7NRZ1i86B6xmgfnJUYHYOUnSfB+R531ET7NUZlK52GxL7P82Q== + dependencies: + "@stdlib/assert-is-buffer" "^0.0.x" + "@stdlib/regexp-function-name" "^0.0.x" + "@stdlib/utils-native-class" "^0.0.x" + +"@stdlib/utils-convert-path@^0.0.x": + version "0.0.8" + resolved "https://registry.yarnpkg.com/@stdlib/utils-convert-path/-/utils-convert-path-0.0.8.tgz#a959d02103eee462777d222584e72eceef8c223b" + integrity sha512-GNd8uIswrcJCctljMbmjtE4P4oOjhoUIfMvdkqfSrRLRY+ZqPB2xM+yI0MQFfUq/0Rnk/xtESlGSVLz9ZDtXfA== + dependencies: + "@stdlib/assert-is-string" "^0.0.x" + "@stdlib/cli-ctor" "^0.0.x" + "@stdlib/fs-read-file" "^0.0.x" + "@stdlib/process-read-stdin" "^0.0.x" + "@stdlib/regexp-eol" "^0.0.x" + "@stdlib/regexp-extended-length-path" "^0.0.x" + "@stdlib/streams-node-stdin" "^0.0.x" + "@stdlib/string-lowercase" "^0.0.x" + "@stdlib/string-replace" "^0.0.x" + +"@stdlib/utils-define-nonenumerable-read-only-property@^0.0.x": + version "0.0.7" + resolved "https://registry.yarnpkg.com/@stdlib/utils-define-nonenumerable-read-only-property/-/utils-define-nonenumerable-read-only-property-0.0.7.tgz#ee74540c07bfc3d997ef6f8a1b2df267ea0c07ca" + integrity sha512-c7dnHDYuS4Xn3XBRWIQBPcROTtP/4lkcFyq0FrQzjXUjimfMgHF7cuFIIob6qUTnU8SOzY9p0ydRR2QJreWE6g== + dependencies: + "@stdlib/types" "^0.0.x" + "@stdlib/utils-define-property" "^0.0.x" + +"@stdlib/utils-define-property@^0.0.x": + version "0.0.9" + resolved "https://registry.yarnpkg.com/@stdlib/utils-define-property/-/utils-define-property-0.0.9.tgz#2f40ad66e28099714e3774f3585db80b13816e76" + integrity sha512-pIzVvHJvVfU/Lt45WwUAcodlvSPDDSD4pIPc9WmIYi4vnEBA9U7yHtiNz2aTvfGmBMTaLYTVVFIXwkFp+QotMA== + dependencies: + "@stdlib/types" "^0.0.x" + +"@stdlib/utils-escape-regexp-string@^0.0.x": + version "0.0.9" + resolved "https://registry.yarnpkg.com/@stdlib/utils-escape-regexp-string/-/utils-escape-regexp-string-0.0.9.tgz#36f25d78b2899384ca6c97f4064a8b48edfedb6e" + integrity sha512-E+9+UDzf2mlMLgb+zYrrPy2FpzbXh189dzBJY6OG+XZqEJAXcjWs7DURO5oGffkG39EG5KXeaQwDXUavcMDCIw== + dependencies: + "@stdlib/assert-is-string" "^0.0.x" + "@stdlib/string-format" "^0.0.x" + +"@stdlib/utils-get-prototype-of@^0.0.x": + version "0.0.7" + resolved "https://registry.yarnpkg.com/@stdlib/utils-get-prototype-of/-/utils-get-prototype-of-0.0.7.tgz#f677132bcbc0ec89373376637148d364435918df" + integrity sha512-fCUk9lrBO2ELrq+/OPJws1/hquI4FtwG0SzVRH6UJmJfwb1zoEFnjcwyDAy+HWNVmo3xeRLsrz6XjHrJwer9pg== + dependencies: + "@stdlib/assert-is-function" "^0.0.x" + "@stdlib/utils-native-class" "^0.0.x" + +"@stdlib/utils-global@^0.0.x": + version "0.0.7" + resolved "https://registry.yarnpkg.com/@stdlib/utils-global/-/utils-global-0.0.7.tgz#0d99dcd11b72ad10b97dfb43536ff50436db6fb4" + integrity sha512-BBNYBdDUz1X8Lhfw9nnnXczMv9GztzGpQ88J/6hnY7PHJ71av5d41YlijWeM9dhvWjnH9I7HNE3LL7R07yw0kA== + dependencies: + "@stdlib/assert-is-boolean" "^0.0.x" + +"@stdlib/utils-library-manifest@^0.0.x": + version "0.0.8" + resolved "https://registry.yarnpkg.com/@stdlib/utils-library-manifest/-/utils-library-manifest-0.0.8.tgz#61d3ed283e82c8f14b7f952d82cfb8e47d036825" + integrity sha512-IOQSp8skSRQn9wOyMRUX9Hi0j/P5v5TvD8DJWTqtE8Lhr8kVVluMBjHfvheoeKHxfWAbNHSVpkpFY/Bdh/SHgQ== + dependencies: + "@stdlib/cli-ctor" "^0.0.x" + "@stdlib/fs-resolve-parent-path" "^0.0.x" + "@stdlib/utils-convert-path" "^0.0.x" + debug "^2.6.9" + resolve "^1.1.7" + +"@stdlib/utils-native-class@^0.0.x": + version "0.0.8" + resolved "https://registry.yarnpkg.com/@stdlib/utils-native-class/-/utils-native-class-0.0.8.tgz#2e79de97f85d88a2bb5baa7a4528add71448d2be" + integrity sha512-0Zl9me2V9rSrBw/N8o8/9XjmPUy8zEeoMM0sJmH3N6C9StDsYTjXIAMPGzYhMEWaWHvGeYyNteFK2yDOVGtC3w== + dependencies: + "@stdlib/assert-has-own-property" "^0.0.x" + "@stdlib/assert-has-tostringtag-support" "^0.0.x" + +"@stdlib/utils-next-tick@^0.0.x": + version "0.0.8" + resolved "https://registry.yarnpkg.com/@stdlib/utils-next-tick/-/utils-next-tick-0.0.8.tgz#72345745ec3b3aa2cedda056338ed95daae9388c" + integrity sha512-l+hPl7+CgLPxk/gcWOXRxX/lNyfqcFCqhzzV/ZMvFCYLY/wI9lcWO4xTQNMALY2rp+kiV+qiAiO9zcO+hewwUg== + +"@stdlib/utils-noop@^0.0.x": + version "0.0.13" + resolved "https://registry.yarnpkg.com/@stdlib/utils-noop/-/utils-noop-0.0.13.tgz#d8b113c605d327d786106448571c44b0f070751d" + integrity sha512-JRWHGWYWP5QK7SQ2cOYiL8NETw8P33LriZh1p9S2xC4e0rBoaY849h1A2IL2y1+x3s29KNjSaBWMrMUIV5HCSw== + +"@stdlib/utils-regexp-from-string@^0.0.x": + version "0.0.9" + resolved "https://registry.yarnpkg.com/@stdlib/utils-regexp-from-string/-/utils-regexp-from-string-0.0.9.tgz#fe4745a9a000157b365971c513fd7d4b2cb9ad6e" + integrity sha512-3rN0Mcyiarl7V6dXRjFAUMacRwe0/sYX7ThKYurf0mZkMW9tjTP+ygak9xmL9AL0QQZtbrFFwWBrDO+38Vnavw== + dependencies: + "@stdlib/assert-is-string" "^0.0.x" + "@stdlib/regexp-regexp" "^0.0.x" + "@stdlib/string-format" "^0.0.x" + +"@stdlib/utils-type-of@^0.0.x": + version "0.0.8" + resolved "https://registry.yarnpkg.com/@stdlib/utils-type-of/-/utils-type-of-0.0.8.tgz#c62ed3fcf629471fe80d83f44c4e325860109cbe" + integrity sha512-b4xqdy3AnnB7NdmBBpoiI67X4vIRxvirjg3a8BfhM5jPr2k0njby1jAbG9dUxJvgAV6o32S4kjUgfIdjEYpTNQ== + dependencies: + "@stdlib/utils-constructor-name" "^0.0.x" + "@stdlib/utils-global" "^0.0.x" + "@tootallnate/once@1": version "1.1.2" resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-1.1.2.tgz#ccb91445360179a04e7fe6aff78c00ffc1eeaf82" @@ -2061,6 +3292,11 @@ acorn@^8.2.4, acorn@^8.7.0: resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.7.0.tgz#90951fde0f8f09df93549481e5fc141445b791cf" integrity sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ== +aes-js@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/aes-js/-/aes-js-3.0.0.tgz#e21df10ad6c2053295bcbb8dab40b09dbea87e4d" + integrity sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw== + agent-base@6: version "6.0.2" resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" @@ -2519,6 +3755,11 @@ bn.js@^4.11.9: resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88" integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== +bn.js@^5.2.1: + version "5.2.1" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.1.tgz#0bc527a6a0d18d0aa8d5b0538ce4a77dccfa7b70" + integrity sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ== + brace-expansion@^1.1.7: version "1.1.11" resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" @@ -3118,6 +4359,11 @@ dir-glob@^3.0.1: dependencies: path-type "^4.0.0" +dlv@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/dlv/-/dlv-1.1.3.tgz#5c198a8a11453596e751494d49874bc7732f2e79" + integrity sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA== + doctrine@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" @@ -3151,6 +4397,11 @@ dotenv@10.0.0: resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-10.0.0.tgz#3d4227b8fb95f81096cdd2b66653fb2c7085ba81" integrity sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q== +dset@^3.1.1, dset@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/dset/-/dset-3.1.2.tgz#89c436ca6450398396dc6538ea00abc0c54cd45a" + integrity sha512-g/M9sqy3oHe477Ar4voQxWtaPIFw1jTdKZuomOjhCcBx9nHUNn0pu6NopuFFrTh/TRZIKEj+76vLWFu9BNKk+Q== + ecc-jsbn@~0.1.1: version "0.1.2" resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" @@ -3744,6 +4995,42 @@ esutils@^2.0.2: resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== +ethers@^5.6.9: + version "5.7.1" + resolved "https://registry.yarnpkg.com/ethers/-/ethers-5.7.1.tgz#48c83a44900b5f006eb2f65d3ba6277047fd4f33" + integrity sha512-5krze4dRLITX7FpU8J4WscXqADiKmyeNlylmmDLbS95DaZpBhDe2YSwRQwKXWNyXcox7a3gBgm/MkGXV1O1S/Q== + dependencies: + "@ethersproject/abi" "5.7.0" + "@ethersproject/abstract-provider" "5.7.0" + "@ethersproject/abstract-signer" "5.7.0" + "@ethersproject/address" "5.7.0" + "@ethersproject/base64" "5.7.0" + "@ethersproject/basex" "5.7.0" + "@ethersproject/bignumber" "5.7.0" + "@ethersproject/bytes" "5.7.0" + "@ethersproject/constants" "5.7.0" + "@ethersproject/contracts" "5.7.0" + "@ethersproject/hash" "5.7.0" + "@ethersproject/hdnode" "5.7.0" + "@ethersproject/json-wallets" "5.7.0" + "@ethersproject/keccak256" "5.7.0" + "@ethersproject/logger" "5.7.0" + "@ethersproject/networks" "5.7.1" + "@ethersproject/pbkdf2" "5.7.0" + "@ethersproject/properties" "5.7.0" + "@ethersproject/providers" "5.7.1" + "@ethersproject/random" "5.7.0" + "@ethersproject/rlp" "5.7.0" + "@ethersproject/sha2" "5.7.0" + "@ethersproject/signing-key" "5.7.0" + "@ethersproject/solidity" "5.7.0" + "@ethersproject/strings" "5.7.0" + "@ethersproject/transactions" "5.7.0" + "@ethersproject/units" "5.7.0" + "@ethersproject/wallet" "5.7.0" + "@ethersproject/web" "5.7.1" + "@ethersproject/wordlists" "5.7.0" + events@3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" @@ -4573,6 +5860,13 @@ is-core-module@^2.2.0, is-core-module@^2.8.0, is-core-module@^2.8.1: dependencies: has "^1.0.3" +is-core-module@^2.9.0: + version "2.10.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.10.0.tgz#9012ede0a91c69587e647514e1d5277019e728ed" + integrity sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg== + dependencies: + has "^1.0.3" + is-data-descriptor@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" @@ -5641,6 +6935,11 @@ jpjs@^1.2.1: resolved "https://registry.yarnpkg.com/jpjs/-/jpjs-1.2.1.tgz#f343833de8838a5beba1f42d5a219be0114c44b7" integrity sha512-GxJWybWU4NV0RNKi6EIqk6IRPOTqd/h+U7sbtyuD7yUISUzV78LdHnq2xkevJsTlz/EImux4sWj+wfMiwKLkiw== +js-cookie@3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/js-cookie/-/js-cookie-3.0.1.tgz#9e39b4c6c2f56563708d7d31f6f5f21873a92414" + integrity sha512-+0rgsUXZu4ncpPxRL+lNEptWMOWl9etvPHc/koSRp6MPwpRYAhmk0dUG00J4bxVV3r9uUzfo24wW0knS07SKSw== + js-sha3@0.8.0: version "0.8.0" resolved "https://registry.yarnpkg.com/js-sha3/-/js-sha3-0.8.0.tgz#b9b7a5da73afad7dedd0f8c463954cbde6818840" @@ -6213,6 +7512,13 @@ natural-compare@^1.4.0: resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= +new-date@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/new-date/-/new-date-1.0.3.tgz#a5956086d3f5ed43d0b210d87a10219ccb7a2326" + integrity sha512-0fsVvQPbo2I18DT2zVHpezmeeNYV2JaJSrseiHLc17GNOxJzUdx5mvSigPu8LtIfZSij5i1wXnXFspEs2CD6hA== + dependencies: + "@segment/isodate" "1.0.3" + nice-try@^1.0.4: version "1.0.5" resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" @@ -6226,7 +7532,7 @@ no-case@^3.0.4: lower-case "^2.0.2" tslib "^2.0.3" -node-fetch@2.6.7: +node-fetch@2.6.7, node-fetch@^2.6.7: version "2.6.7" resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad" integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ== @@ -6315,6 +7621,11 @@ oauth-sign@~0.9.0: resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== +obj-case@0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/obj-case/-/obj-case-0.2.1.tgz#13a554d04e5ca32dfd9d566451fd2b0e11007f1a" + integrity sha512-PquYBBTy+Y6Ob/O2574XHhDtHJlV1cJHMCgW+rDRc9J5hhmRelJB3k5dTK/3cVmFVtzvAKuENeuLpoyTzMzkOg== + object-assign@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" @@ -7011,6 +8322,15 @@ resolve@^1.1.6, resolve@^1.10.0, resolve@^1.11.0, resolve@^1.12.0, resolve@^1.14 path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" +resolve@^1.1.7: + version "1.22.1" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177" + integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw== + dependencies: + is-core-module "^2.9.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + resolve@^2.0.0-next.3: version "2.0.0-next.3" resolved "https://registry.yarnpkg.com/resolve/-/resolve-2.0.0-next.3.tgz#d41016293d4a8586a39ca5d9b5f15cbea1f55e46" @@ -7187,6 +8507,11 @@ saxes@^5.0.1: dependencies: xmlchars "^2.2.0" +scrypt-js@3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/scrypt-js/-/scrypt-js-3.0.1.tgz#d314a57c2aef69d1ad98a138a21fe9eafa9ee312" + integrity sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA== + "semver@2 || 3 || 4 || 5", semver@^5.5.0: version "5.7.1" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" @@ -7412,6 +8737,11 @@ sourcemap-codec@^1.4.8: resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4" integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA== +spark-md5@^3.0.1: + version "3.0.2" + resolved "https://registry.yarnpkg.com/spark-md5/-/spark-md5-3.0.2.tgz#7952c4a30784347abcee73268e473b9c0167e3fc" + integrity sha512-wcFzz9cDfbuqe0FZzfi2or1sgyIrsDwmPwfZC4hiNidPdPINjeUwNfv5kldczoEAcjl9Y1L3SM7Uz2PUEQzxQw== + spdx-correct@^3.0.0: version "3.1.1" resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.1.tgz#dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9" @@ -7729,6 +9059,11 @@ tiny-glob@^0.2.6: globalyzer "0.1.0" globrex "^0.1.2" +tiny-hashes@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/tiny-hashes/-/tiny-hashes-1.0.1.tgz#ddbe9060312ddb4efe0a174bb3a27e1331c425a1" + integrity sha512-knIN5zj4fl7kW4EBU5sLP20DWUvi/rVouvJezV0UAym2DkQaqm365Nyc8F3QEiOvunNDMxR8UhcXd1d5g+Wg1g== + tmp@^0.0.33: version "0.0.33" resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" @@ -7940,6 +9275,11 @@ tslib@^2.0.3, tslib@^2.1.0: resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.1.tgz#e8a335add5ceae51aa261d32a490158ef042ef01" integrity sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw== +tslib@^2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.0.tgz#7cecaa7f073ce680a05847aa77be941098f36dc3" + integrity sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ== + tsutils@^3.17.1, tsutils@^3.21.0: version "3.21.0" resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" @@ -8041,6 +9381,16 @@ unbox-primitive@^1.0.1: has-symbols "^1.0.2" which-boxed-primitive "^1.0.2" +unfetch@^3.1.1: + version "3.1.2" + resolved "https://registry.yarnpkg.com/unfetch/-/unfetch-3.1.2.tgz#dc271ef77a2800768f7b459673c5604b5101ef77" + integrity sha512-L0qrK7ZeAudGiKYw6nzFjnJ2D5WHblUBwmHIqtPS6oKUd+Hcpk7/hKsSmcHsTlpd1TbTNsiRBUKRq3bHLNIqIw== + +unfetch@^4.1.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/unfetch/-/unfetch-4.2.0.tgz#7e21b0ef7d363d8d9af0fb929a5555f6ef97a3be" + integrity sha512-F9p7yYCn6cIW9El1zi0HI6vqpeIvBsr3dSuRO6Xuppb1u5rXpCPmMvLSyECLhybr9isec8Ohl0hPekMVrEinDA== + unicode-canonical-property-names-ecmascript@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz#301acdc525631670d39f6146e0e77ff6bbdebddc" @@ -8289,6 +9639,14 @@ which@^2.0.1, which@^2.0.2: dependencies: isexe "^2.0.0" +wido@^0.0.22: + version "0.0.22" + resolved "https://registry.yarnpkg.com/wido/-/wido-0.0.22.tgz#a0f6d29219bd48f13e280233bb67150da17c69ed" + integrity sha512-8CT+i0NotfIasN2AjOVDNlnn/Usc/eMrfByRCeY1euTg6NXTVgHlS09Bwpayk/EfBGDrBMF20nhNuJShYH4Q1A== + dependencies: + "@segment/analytics-next" "^1.42.3" + ethers "^5.6.9" + word-wrap@^1.2.3, word-wrap@~1.2.3: version "1.2.3" resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c"