From 56ad8f5e24e8aff09fd25498490824e22f9ef05d Mon Sep 17 00:00:00 2001 From: Semar Augusto Date: Mon, 26 Dec 2022 02:38:17 -0300 Subject: [PATCH] Adds create2 deploy methods + refactoring typescript interfaces (#218) Co-authored-by: drewstone --- package.json | 5 +- packages/anchors/package.json | 2 +- packages/anchors/src/ChainalysisVAnchor.ts | 47 + packages/anchors/src/Common.ts | 270 ++ packages/anchors/src/Deployer.ts | 108 + packages/anchors/src/IdentityVAnchor.ts | 380 +-- packages/anchors/src/PoseidonHasher.ts | 38 + packages/anchors/src/VAnchor.ts | 471 +-- packages/anchors/src/VAnchorForest.ts | 365 +-- packages/anchors/src/index.ts | 1 + .../contracts/DeterministicDeployFactory.sol | 19 + packages/contracts/package.json | 7 +- packages/contracts/scripts/deployFactory.js | 14 + .../contracts/test/create2/create2.test.ts | 375 +++ .../identityVAnchor/identityVAnchor.test.ts | 73 +- .../test/vanchor/mocks/SetupTxVAnchorMock.ts | 10 +- .../contracts/test/vanchor/vanchor.test.ts | 14 - .../test/vbridge/signatureVBridge.test.ts | 64 +- packages/vbridge/src/Verifier.ts | 232 +- yarn.lock | 2738 +++++++++-------- 20 files changed, 2911 insertions(+), 2322 deletions(-) create mode 100644 packages/anchors/src/Common.ts create mode 100644 packages/anchors/src/Deployer.ts create mode 100644 packages/contracts/contracts/DeterministicDeployFactory.sol create mode 100644 packages/contracts/scripts/deployFactory.js create mode 100644 packages/contracts/test/create2/create2.test.ts diff --git a/package.json b/package.json index a52b7df50..5bb3c4533 100644 --- a/package.json +++ b/package.json @@ -12,6 +12,7 @@ "build": "yarn compile && yarn build:packages", "setup": "yarn compile && yarn build:circuits && yarn build:ptau", "test": "yarn workspace @webb-tools/contracts run test", + "fast": "yarn workspace @webb-tools/contracts run fast", "build:circuits": "./scripts/bash/build_circuits.sh", "build:packages": "lerna run build", "build:ptau": "./scripts/bash/generate_phase1_ptau.sh", @@ -68,10 +69,10 @@ "@types/chai": "^4.3.0", "@types/mocha": "^9.0.0", "@webb-tools/sdk-core": "0.1.4-113", - "@webb-tools/semaphore": "0.0.1-4", + "@webb-tools/semaphore": "0.0.1-5", "@webb-tools/semaphore-group": "0.0.1-4", "@webb-tools/semaphore-identity": "0.0.1-3", - "@webb-tools/semaphore-proof": "0.0.1-3", + "@webb-tools/semaphore-proof": "0.0.1-5", "@webb-tools/test-utils": "0.1.4-113", "babel-plugin-styled-components": "^2.0.7", "bn.js": "4.11.6", diff --git a/packages/anchors/package.json b/packages/anchors/package.json index 37ea5f7b1..bcb1ef8d4 100644 --- a/packages/anchors/package.json +++ b/packages/anchors/package.json @@ -12,7 +12,7 @@ "@webb-tools/contracts": "^0.5.1", "@webb-tools/interfaces": "^0.5.1", "@webb-tools/sdk-core": "0.1.4-113", - "@webb-tools/semaphore": "0.0.1-4", + "@webb-tools/semaphore": "0.0.1-5", "@webb-tools/utils": "^0.5.1", "ethers": "5.7.0" }, diff --git a/packages/anchors/src/ChainalysisVAnchor.ts b/packages/anchors/src/ChainalysisVAnchor.ts index a27a65483..41f6db8c9 100644 --- a/packages/anchors/src/ChainalysisVAnchor.ts +++ b/packages/anchors/src/ChainalysisVAnchor.ts @@ -2,8 +2,55 @@ import { ZkComponents } from '@webb-tools/utils'; import { BigNumberish, ethers, BigNumber } from 'ethers'; import { VAnchorEncodeInputs__factory, ChainalysisVAnchor__factory } from '@webb-tools/contracts'; import VAnchor from './VAnchor'; +import { Deployer } from './Deployer'; export class ChainalysisVAnchor extends VAnchor { + public static async create2VAnchor( + deployer: Deployer, + saltHex: string, + verifier: string, + levels: BigNumberish, + hasher: string, + handler: string, + token: string, + maxEdges: number, + smallCircuitZkComponents: ZkComponents, + largeCircuitZkComponents: ZkComponents, + signer: ethers.Signer + ) { + const { contract: libraryContract } = await deployer.deploy( + VAnchorEncodeInputs__factory, + saltHex, + signer + ); + + let libraryAddresses = { + ['contracts/libs/VAnchorEncodeInputs.sol:VAnchorEncodeInputs']: libraryContract.address, + }; + + const argTypes = ['address', 'uint32', 'address', 'address', 'address', 'uint8']; + const args = [verifier, levels, hasher, handler, token, maxEdges]; + const { contract: vanchor, receipt } = await deployer.deploy( + ChainalysisVAnchor__factory, + saltHex, + signer, + libraryAddresses, + argTypes, + args + ); + const createdVAnchor = new VAnchor( + vanchor, + signer, + BigNumber.from(levels).toNumber(), + maxEdges, + smallCircuitZkComponents, + largeCircuitZkComponents + ); + createdVAnchor.latestSyncedBlock = receipt.blockNumber!; + createdVAnchor.token = token; + return createdVAnchor; + } + public static async createVAnchor( verifier: string, levels: BigNumberish, diff --git a/packages/anchors/src/Common.ts b/packages/anchors/src/Common.ts new file mode 100644 index 000000000..ba44f82b9 --- /dev/null +++ b/packages/anchors/src/Common.ts @@ -0,0 +1,270 @@ +import { BigNumber, BigNumberish, ContractTransaction, ethers } from 'ethers'; +import { + VAnchor as VAnchorContract, + VAnchor__factory, + ChainalysisVAnchor as ChainalysisVAnchorContract, + DeterministicDeployFactory as DeterministicDeployFactoryContract, + IdentityVAnchor as IdentityVAnchorContract, + VAnchorForest as VAnchorForestContract, + VAnchorEncodeInputs__factory, + TokenWrapper__factory, +} from '@webb-tools/contracts'; +import { + toHex, + Keypair, + toFixedHex, + Utxo, + MerkleTree, + median, + mean, + max, + min, + randomBN, + CircomProvingManager, + ProvingManagerSetupInput, + MerkleProof, + UtxoGenInput, + CircomUtxo, + FIELD_SIZE, + LeafIdentifier, +} from '@webb-tools/sdk-core'; +import { hexToU8a, u8aToHex, getChainIdType, ZkComponents } from '@webb-tools/utils'; + +const zeroAddress = '0x0000000000000000000000000000000000000000'; +function checkNativeAddress(tokenAddress: string): boolean { + if (tokenAddress === zeroAddress || tokenAddress === '0') { + return true; + } + return false; +} +type WebbContracts = + | VAnchorContract + | ChainalysisVAnchorContract + | IdentityVAnchorContract + | VAnchorForestContract; + +export class WebbBridge { + signer: ethers.Signer; + contract: WebbContracts; + + constructor(contract: WebbContracts, signer: ethers.Signer) { + this.contract = contract; + this.signer = signer; + } + + public static async generateUTXO(input: UtxoGenInput): Promise { + return CircomUtxo.generateUtxo(input); + } + + public static createRootsBytes(rootArray: string[]) { + let rootsBytes = '0x'; + for (let i = 0; i < rootArray.length; i++) { + rootsBytes += toFixedHex(rootArray[i]).substr(2); + } + return rootsBytes; // root byte string (32 * array.length bytes) + } + + getAddress(): string { + return this.contract.address; + } + + // Convert a hex string to a byte array + public static hexStringToByte(str: string) { + if (!str) { + return new Uint8Array(); + } + + var a = []; + for (var i = 0, len = str.length; i < len; i += 2) { + a.push(parseInt(str.substr(i, 2), 16)); + } + + return new Uint8Array(a); + } + + public async setHandler(handlerAddress: string) { + const tx = await this.contract.setHandler( + handlerAddress, + BigNumber.from(await this.contract.getProposalNonce()).add(1) + ); + await tx.wait(); + } + + public async setSigner(newSigner: ethers.Signer) { + const currentChainId = await this.signer.getChainId(); + const newChainId = await newSigner.getChainId(); + + if (currentChainId === newChainId) { + this.signer = newSigner; + this.contract = this.contract.connect(newSigner); + return true; + } + return false; + } + public async createResourceId(): Promise { + return toHex( + this.contract.address + toHex(getChainIdType(await this.signer.getChainId()), 6).substr(2), + 32 + ); + } + public async getMinWithdrawalLimitProposalData( + _minimalWithdrawalAmount: string + ): Promise { + const resourceID = await this.createResourceId(); + const functionSig = ethers.utils + .keccak256(ethers.utils.toUtf8Bytes('configureMinimalWithdrawalLimit(uint256,uint32)')) + .slice(0, 10) + .padEnd(10, '0'); + const nonce = Number(await this.contract.getProposalNonce()) + 1; + return ( + '0x' + + toHex(resourceID, 32).substr(2) + + functionSig.slice(2) + + toHex(nonce, 4).substr(2) + + toFixedHex(_minimalWithdrawalAmount).substr(2) + ); + } + + public async getMaxDepositLimitProposalData(_maximumDepositAmount: string): Promise { + const resourceID = await this.createResourceId(); + const functionSig = ethers.utils + .keccak256(ethers.utils.toUtf8Bytes('configureMaximumDepositLimit(uint256,uint32)')) + .slice(0, 10) + .padEnd(10, '0'); + const nonce = Number(await this.contract.getProposalNonce()) + 1; + return ( + '0x' + + toHex(resourceID, 32).substr(2) + + functionSig.slice(2) + + toHex(nonce, 4).substr(2) + + toFixedHex(_maximumDepositAmount).substr(2) + ); + } + + // Proposal data is used to update linkedAnchors via bridge proposals + // on other chains with this anchor's state + public async genProposalData( + resourceID: string, + merkleRoot: string, + leafIndex: number + ): Promise { + // If no leaf index passed in, set it to the most recent one. + const chainID = getChainIdType(await this.signer.getChainId()); + const functionSig = ethers.utils + .keccak256(ethers.utils.toUtf8Bytes('updateEdge(uint256,uint32,bytes32)')) + .slice(0, 10) + .padEnd(10, '0'); + + const srcContract = this.contract.address; + const srcResourceId = + '0x' + + toHex(0, 6).substring(2) + + toHex(srcContract, 20).substr(2) + + toHex(chainID, 6).substr(2); + return ( + '0x' + + toHex(resourceID, 32).substr(2) + + functionSig.slice(2) + + toHex(leafIndex, 4).substr(2) + + toHex(merkleRoot, 32).substr(2) + + toHex(srcResourceId, 32).substr(2) + ); + } + + public getExtAmount(inputs: Utxo[], outputs: Utxo[], fee: BigNumberish) { + return BigNumber.from(fee) + .add(outputs.reduce((sum, x) => sum.add(x.amount), BigNumber.from(0))) + .sub(inputs.reduce((sum, x) => sum.add(x.amount), BigNumber.from(0))); + } + public async getWrapUnwrapOptions(extAmount, wrapUnwrapToken) { + let options = {}; + if (extAmount.gt(0) && checkNativeAddress(wrapUnwrapToken)) { + let tokenWrapper = TokenWrapper__factory.connect(await this.contract.token(), this.signer); + let valueToSend = await tokenWrapper.getAmountToWrap(extAmount); + + options = { + value: valueToSend.toHexString(), + }; + } else { + options = {}; + } + return options; + } + public async encodeSolidityProof(fullProof: any, calldata: any): Promise { + const proof = JSON.parse('[' + calldata + ']'); + const pi_a = proof[0]; + const pi_b = proof[1]; + const pi_c = proof[2]; + + const proofEncoded = [ + pi_a[0], + pi_a[1], + pi_b[0][0], + pi_b[0][1], + pi_b[1][0], + pi_b[1][1], + pi_c[0], + pi_c[1], + ] + .map((elt) => elt.substr(2)) + .join(''); + + return proofEncoded; + } + + public async padUtxos(utxos: Utxo[], maxLen: number): Promise { + const evmId = await this.signer.getChainId(); + const chainId = getChainIdType(evmId); + const randomKeypair = new Keypair(); + + while (utxos.length !== 2 && utxos.length < maxLen) { + utxos.push( + await CircomUtxo.generateUtxo({ + curve: 'Bn254', + backend: 'Circom', + chainId: chainId.toString(), + originChainId: chainId.toString(), + amount: '0', + blinding: hexToU8a(randomBN(31).toHexString()), + keypair: randomKeypair, + }) + ); + } + if (utxos.length !== 2 && utxos.length !== maxLen) { + throw new Error('Invalid utxo length'); + } + return utxos; + } + + // Proposal data is used to update linkedAnchors via bridge proposals + // on other chains with this anchor's state + + public async getHandler(): Promise { + return this.contract.handler(); + } + + public validateInputs(inputs: Utxo[]): void { + inputs.map((utxo) => { + if (utxo.originChainId === undefined) { + throw new Error('Input Utxo does not have a configured originChainId'); + } + }); + } + + public async getHandlerProposalData(newHandler: string): Promise { + const resourceID = await this.createResourceId(); + const functionSig = ethers.utils + .keccak256(ethers.utils.toUtf8Bytes('setHandler(address,uint32)')) + .slice(0, 10) + .padEnd(10, '0'); + const nonce = Number(await this.contract.getProposalNonce()) + 1; + + return ( + '0x' + + toHex(resourceID, 32).substr(2) + + functionSig.slice(2) + + toHex(nonce, 4).substr(2) + + toHex(newHandler, 20).substr(2) + ); + } +} diff --git a/packages/anchors/src/Deployer.ts b/packages/anchors/src/Deployer.ts new file mode 100644 index 000000000..7a936be20 --- /dev/null +++ b/packages/anchors/src/Deployer.ts @@ -0,0 +1,108 @@ +import { BigNumber, BigNumberish, Signer, ethers } from 'ethers'; +import { + VAnchor as VAnchorContract, + VAnchor__factory, + ChainalysisVAnchor as ChainalysisVAnchorContract, + DeterministicDeployFactory as DeterministicDeployFactoryContract, + IdentityVAnchor as IdentityVAnchorContract, + VAnchorForest as VAnchorForestContract, + VAnchorEncodeInputs__factory, + TokenWrapper__factory, +} from '@webb-tools/contracts'; +import { + toHex, + Keypair, + toFixedHex, + Utxo, + MerkleTree, + median, + mean, + max, + min, + randomBN, + CircomProvingManager, + ProvingManagerSetupInput, + MerkleProof, + UtxoGenInput, + CircomUtxo, + FIELD_SIZE, + LeafIdentifier, +} from '@webb-tools/sdk-core'; +import { hexToU8a, u8aToHex, getChainIdType, ZkComponents } from '@webb-tools/utils'; + +export class Deployer { + signer: ethers.Signer; + contract: DeterministicDeployFactoryContract; + + constructor(contract: DeterministicDeployFactoryContract) { + this.contract = contract; + } + get address(): string { + return this.contract.address; + } + + public static encode(types, values) { + const abiCoder = ethers.utils.defaultAbiCoder; + const encodedParams = abiCoder.encode(types, values); + return encodedParams.slice(2); + } + + public static create2Address(factoryAddress, saltHex, initCode) { + const create2Addr = ethers.utils.getCreate2Address( + factoryAddress, + saltHex, + ethers.utils.keccak256(initCode) + ); + return create2Addr; + } + public async deploy( + factory: any, + saltHex: string, + signer: Signer, + libraryAddresses?: any, + argTypes?: string[], + args?: any[] + ): Promise<{ contract; receipt }> { + let verifierFactory; + if (libraryAddresses === undefined) { + verifierFactory = new factory(signer); + } else { + verifierFactory = new factory(libraryAddresses, signer); + } + const verifierBytecode = verifierFactory['bytecode']; + let initCode: string; + if (argTypes && args) { + const encodedParams = Deployer.encode(argTypes, args); + initCode = verifierBytecode + encodedParams; + } else { + initCode = verifierBytecode + Deployer.encode([], []); + } + const verifierCreate2Addr = Deployer.create2Address(this.contract.address, saltHex, initCode); + const tx = await this.contract.deploy(initCode, saltHex); + const receipt = await tx.wait(); + const deployEventIdx = receipt.events.length - 1; + const deployEvent = receipt.events[deployEventIdx]; + if (deployEvent.args[0] !== verifierCreate2Addr) { + throw new Error('create2 address mismatch'); + } + const contract = await verifierFactory.attach(deployEvent.args[0]); + return { contract, receipt }; + } + public async deployInitCode( + saltHex: string, + signer: Signer, + initCode: any + ): Promise<{ address }> { + const verifierCreate2Addr = Deployer.create2Address(this.contract.address, saltHex, initCode); + const tx = await this.contract.deploy(initCode, saltHex); + const receipt = await tx.wait(); + const deployEventIdx = receipt.events.length - 1; + const deployEvent = receipt.events[deployEventIdx]; + if (deployEvent.args[0] !== verifierCreate2Addr) { + throw new Error('create2 address mismatch'); + } + let address = deployEvent.args[0]; + return { address }; + } +} +export default Deployer; diff --git a/packages/anchors/src/IdentityVAnchor.ts b/packages/anchors/src/IdentityVAnchor.ts index 7fa702792..2e5980ea7 100644 --- a/packages/anchors/src/IdentityVAnchor.ts +++ b/packages/anchors/src/IdentityVAnchor.ts @@ -40,6 +40,8 @@ import { } from '@webb-tools/utils'; import { Semaphore } from '@webb-tools/semaphore'; import { LinkedGroup } from '@webb-tools/semaphore-group'; +import { WebbBridge } from './Common'; +import { Deployer } from './Deployer'; const snarkjs = require('snarkjs'); @@ -82,7 +84,7 @@ export var proofTimeBenchmark = []; // It represents a deployed contract throughout its life (e.g. maintains merkle tree state) // Functionality relevant to anchors in general (proving, verifying) is implemented in static methods // Functionality relevant to a particular anchor deployment (deposit, withdraw) is implemented in instance methods -export class IdentityVAnchor implements IVAnchor { +export class IdentityVAnchor extends WebbBridge implements IVAnchor { signer: ethers.Signer; contract: IdentityVAnchorContract; semaphore: Semaphore; @@ -111,8 +113,9 @@ export class IdentityVAnchor implements IVAnchor { smallCircuitZkComponents: ZkComponents, largeCircuitZkComponents: ZkComponents ) { - this.signer = signer; + super(contract, signer); this.contract = contract; + this.signer = signer; this.tree = new MerkleTree(treeHeight); this.latestSyncedBlock = 0; this.maxEdges = maxEdges; @@ -122,15 +125,82 @@ export class IdentityVAnchor implements IVAnchor { this.smallCircuitZkComponents = smallCircuitZkComponents; this.largeCircuitZkComponents = largeCircuitZkComponents; } - getAddress(): string { return this.contract.address; } + public static async create2IdentityVAnchor( + deployer: Deployer, + saltHex: string, + semaphore: Semaphore, + verifier: string, + levels: number, + hasher: string, + handler: string, + token: string, + maxEdges: number, + groupId: BigNumber, + group: LinkedGroup, + smallCircuitZkComponents: ZkComponents, + largeCircuitZkComponents: ZkComponents, + signer: ethers.Signer + ) { + const { contract: encodeLibrary } = await deployer.deploy( + IdentityVAnchorEncodeInputs__factory, + saltHex, + signer + ); + let libraryAddresses = { + ['contracts/libs/IdentityVAnchorEncodeInputs.sol:IdentityVAnchorEncodeInputs']: + encodeLibrary.address, + }; + const argTypes = [ + 'address', + 'address', + 'address', + 'uint8', + 'address', + 'address', + 'uint8', + 'uint256', + ]; + const args = [ + semaphore.contract.address, + verifier, + hasher, + levels, + handler, + token, + maxEdges, + groupId, + ]; + + const { contract: vAnchor, receipt } = await deployer.deploy( + IdentityVAnchor__factory, + saltHex, + signer, + libraryAddresses, + argTypes, + args + ); + const createdIdentityVAnchor = new IdentityVAnchor( + vAnchor, + signer, + BigNumber.from(levels).toNumber(), + maxEdges, + groupId, + group, + smallCircuitZkComponents, + largeCircuitZkComponents + ); + createdIdentityVAnchor.latestSyncedBlock = receipt.blockNumber!; + createdIdentityVAnchor.token = token; + return createdIdentityVAnchor; + } public static async createIdentityVAnchor( semaphore: Semaphore, verifier: string, - levels: BigNumberish, + levels: number, hasher: string, handler: string, token: string, @@ -162,6 +232,7 @@ export class IdentityVAnchor implements IVAnchor { groupId ); await vAnchor.deployed(); + const createdIdentityVAnchor = new IdentityVAnchor( vAnchor, signer, @@ -209,9 +280,6 @@ export class IdentityVAnchor implements IVAnchor { return createdAnchor; } - public static async generateUTXO(input: UtxoGenInput): Promise { - return CircomUtxo.generateUtxo(input); - } public async generateProofCalldata(fullProof: any) { // const result = snarkjs.groth16.exportSolidityCallData(proof, publicSignals); const calldata = await snarkjs.groth16.exportSolidityCallData( @@ -239,28 +307,6 @@ export class IdentityVAnchor implements IVAnchor { return proofEncoded; } - public static createRootsBytes(rootArray: string[]) { - let rootsBytes = '0x'; - for (let i = 0; i < rootArray.length; i++) { - rootsBytes += toFixedHex(rootArray[i]).substr(2); - } - return rootsBytes; // root byte string (32 * array.length bytes) - } - - // Convert a hex string to a byte array - public static hexStringToByte(str: string) { - if (!str) { - return new Uint8Array(); - } - - var a = []; - for (var i = 0, len = str.length; i < len; i += 2) { - a.push(parseInt(str.substr(i, 2), 16)); - } - - return new Uint8Array(a); - } - public static convertToPublicInputsStruct(args: any[]): IIdentityVariableAnchorPublicInputs { return { proof: args[0], @@ -297,127 +343,6 @@ export class IdentityVAnchor implements IVAnchor { // this.latestSyncedBlock = currentBlockNumber; } - public async createResourceId(): Promise { - return toHex( - this.contract.address + toHex(getChainIdType(await this.signer.getChainId()), 6).substr(2), - 32 - ); - } - - public async setVerifier(verifierAddress: string) { - const tx = await this.contract.setVerifier( - verifierAddress, - BigNumber.from(await this.contract.getProposalNonce()).add(1) - ); - await tx.wait(); - } - - public async setHandler(handlerAddress: string) { - const tx = await this.contract.setHandler( - handlerAddress, - BigNumber.from(await this.contract.getProposalNonce()).add(1) - ); - await tx.wait(); - } - - public async setSigner(newSigner: ethers.Signer) { - const currentChainId = await this.signer.getChainId(); - const newChainId = await newSigner.getChainId(); - - if (currentChainId === newChainId) { - this.signer = newSigner; - this.contract = this.contract.connect(newSigner); - return true; - } - return false; - } - - // Proposal data is used to update linkedAnchors via bridge proposals - // on other chains with this anchor's state - public async getProposalData(resourceID: string, leafIndex?: number): Promise { - // If no leaf index passed in, set it to the most recent one. - if (!leafIndex) { - leafIndex = this.tree.number_of_elements() - 1; - } - - const chainID = getChainIdType(await this.signer.getChainId()); - const merkleRoot = this.depositHistory[leafIndex]; - const functionSig = ethers.utils - .keccak256(ethers.utils.toUtf8Bytes('updateEdge(bytes32,uint32,bytes32)')) - .slice(0, 10) - .padEnd(10, '0'); - - const srcContract = this.contract.address; - const srcResourceId = - '0x' + - toHex(0, 6).substring(2) + - toHex(srcContract, 20).substr(2) + - toHex(chainID, 6).substr(2); - return ( - '0x' + - toHex(resourceID, 32).substr(2) + - functionSig.slice(2) + - toHex(leafIndex, 4).substr(2) + - toHex(merkleRoot, 32).substr(2) + - toHex(srcResourceId, 32).substr(2) - ); - } - - public async getHandler(): Promise { - return this.contract.handler(); - } - - public async getHandlerProposalData(newHandler: string): Promise { - const resourceID = await this.createResourceId(); - const functionSig = ethers.utils - .keccak256(ethers.utils.toUtf8Bytes('setHandler(address,uint32)')) - .slice(0, 10) - .padEnd(10, '0'); - const nonce = Number(await this.contract.getProposalNonce()) + 1; - - return ( - '0x' + - toHex(resourceID, 32).substr(2) + - functionSig.slice(2) + - toHex(nonce, 4).substr(2) + - toHex(newHandler, 20).substr(2) - ); - } - - public async getMinWithdrawalLimitProposalData( - _minimalWithdrawalAmount: string - ): Promise { - const resourceID = await this.createResourceId(); - const functionSig = ethers.utils - .keccak256(ethers.utils.toUtf8Bytes('configureMinimalWithdrawalLimit(uint256,uint32)')) - .slice(0, 10) - .padEnd(10, '0'); - const nonce = Number(await this.contract.getProposalNonce()) + 1; - return ( - '0x' + - toHex(resourceID, 32).substr(2) + - functionSig.slice(2) + - toHex(nonce, 4).substr(2) + - toFixedHex(_minimalWithdrawalAmount).substr(2) - ); - } - - public async getMaxDepositLimitProposalData(_maximumDepositAmount: string): Promise { - const resourceID = await this.createResourceId(); - const functionSig = ethers.utils - .keccak256(ethers.utils.toUtf8Bytes('configureMaximumDepositLimit(uint256,uint32)')) - .slice(0, 10) - .padEnd(10, '0'); - const nonce = Number(await this.contract.getProposalNonce()) + 1; - return ( - '0x' + - toHex(resourceID, 32).substr(2) + - functionSig.slice(2) + - toHex(nonce, 4).substr(2) + - toFixedHex(_maximumDepositAmount).substr(2) - ); - } - public async populateVAnchorRootsForProof(): Promise { const neighborEdges = await this.contract.getLatestNeighborEdges(); const neighborRootInfos = neighborEdges.map((rootData) => { @@ -543,6 +468,16 @@ export class IdentityVAnchor implements IVAnchor { }; // return gasBenchmark; } + public async getProposalData(resourceID: string, leafIndex?: number): Promise { + // If no leaf index passed in, set it to the most recent one. + if (!leafIndex) { + leafIndex = this.tree.number_of_elements() - 1; + } + + const chainID = getChainIdType(await this.signer.getChainId()); + const merkleRoot = this.depositHistory[leafIndex]; + return this.genProposalData(resourceID, merkleRoot, leafIndex); + } public async getProofTimeBenchmark() { const meanTime = mean(proofTimeBenchmark); const medianTime = median(proofTimeBenchmark); @@ -616,18 +551,51 @@ export class IdentityVAnchor implements IVAnchor { public async setupTransaction( keypair: Keypair, - identityRootInputs: string[], - identityMerkleProof: MerkleProof, - outSemaphoreProofs: MerkleProof[], - vanchorInput: UTXOInputs, - extDataHash: string - ): Promise { + inputs: Utxo[], + outputs: Utxo[], + fee: BigNumberish, + refund: BigNumberish, + recipient: string, + relayer: string, + wrapUnwrapToken: string + ) { + if (wrapUnwrapToken.length === 0) { + wrapUnwrapToken = this.token; + } + + const chainId = getChainIdType(await this.signer.getChainId()); + const identityRootInputs = this.populateIdentityRootsForProof(); + const identityMerkleProof: MerkleProof = this.generateIdentityMerkleProof(keypair.getPubKey()); + const vanchorMerkleProof = inputs.map((x) => this.getMerkleProof(x)); + let extAmount = this.getExtAmount(inputs, outputs, fee); + + const { extData, extDataHash } = await this.generateExtData( + recipient, + extAmount, + relayer, + BigNumber.from(fee), + BigNumber.from(refund), + wrapUnwrapToken, + outputs[0].encrypt(), + outputs[1].encrypt() + ); + + const vanchorInput: UTXOInputs = await this.generateUTXOInputs( + inputs, + outputs, + chainId, + extAmount, + BigNumber.from(fee), + extDataHash + ); + + const outSemaphoreProofs = this.generateOutputSemaphoreProof(outputs); const fullProof = await this.generateProof( keypair, identityRootInputs, identityMerkleProof, outSemaphoreProofs, - extDataHash, + extDataHash.toString(), vanchorInput ); const proof = await this.generateProofCalldata(fullProof); @@ -649,7 +617,7 @@ export class IdentityVAnchor implements IVAnchor { ); assert.strictEqual(is_valid, true); - return publicInputs; + return { extAmount, extData, publicInputs }; } public generateIdentityMerkleProof(pubkey: string): MerkleProof { @@ -740,6 +708,13 @@ export class IdentityVAnchor implements IVAnchor { return vanchorInput; } + public updateTreeState(outputs: Utxo[]): void { + outputs.forEach((x) => { + this.tree.insert(u8aToHex(x.commitment)); + let numOfElements = this.tree.number_of_elements(); + this.depositHistory[numOfElements - 1] = toFixedHex(this.tree.root().toString()); + }); + } public async transact( keypair: Keypair, @@ -751,81 +726,20 @@ export class IdentityVAnchor implements IVAnchor { relayer: string, wrapUnwrapToken: string ): Promise { - const chainId = getChainIdType(await this.signer.getChainId()); - const randomKeypair = new Keypair(); + inputs = await this.padUtxos(inputs, 16); + outputs = await this.padUtxos(outputs, 2); - const identityRootInputs = this.populateIdentityRootsForProof(); - const identityMerkleProof: MerkleProof = this.generateIdentityMerkleProof(keypair.getPubKey()); - - while (inputs.length !== 2 && inputs.length < 16) { - inputs.push( - await CircomUtxo.generateUtxo({ - curve: 'Bn254', - backend: 'Circom', - chainId: chainId.toString(), - originChainId: chainId.toString(), - blinding: hexToU8a(randomBN(31).toHexString()), - amount: '0', - keypair: randomKeypair, - }) - ); - } - - const vanchorMerkleProof = inputs.map((x) => this.getMerkleProof(x)); - - if (outputs.length < 2) { - while (outputs.length < 2) { - outputs.push( - await CircomUtxo.generateUtxo({ - curve: 'Bn254', - backend: 'Circom', - chainId: chainId.toString(), - originChainId: chainId.toString(), - blinding: hexToU8a(randomBN(31).toHexString()), - amount: '0', - keypair: randomKeypair, - }) - ); - } - } - let extAmount = BigNumber.from(fee) - .add(outputs.reduce((sum, x) => sum.add(BigNumber.from(BigInt(x.amount))), BigNumber.from(0))) - .sub(inputs.reduce((sum, x) => sum.add(BigNumber.from(BigInt(x.amount))), BigNumber.from(0))); - - if (wrapUnwrapToken.length === 0) { - wrapUnwrapToken = this.token; - } - - const { extData, extDataHash } = await this.generateExtData( - recipient, - extAmount, - relayer, - BigNumber.from(fee), - BigNumber.from(refund), - wrapUnwrapToken, - outputs[0].encrypt(), - outputs[1].encrypt() - ); - - const vanchorInput: UTXOInputs = await this.generateUTXOInputs( + const { extAmount, extData, publicInputs } = await this.setupTransaction( + keypair, inputs, outputs, - chainId, - extAmount, - BigNumber.from(fee), - extDataHash - ); - - const outSemaphoreProofs = this.generateOutputSemaphoreProof(outputs); - - const publicInputs = await this.setupTransaction( - keypair, - identityRootInputs, - identityMerkleProof, - outSemaphoreProofs, - vanchorInput, - extDataHash.toString() + fee, + refund, + recipient, + relayer, + wrapUnwrapToken ); + let options = await this.getWrapUnwrapOptions(extAmount, wrapUnwrapToken); let tx = await this.contract.transact( publicInputs.proof, @@ -847,16 +761,12 @@ export class IdentityVAnchor implements IVAnchor { extDataHash: publicInputs.extDataHash, }, extData, - { gasLimit: '0x5B8D80' } + options ); const receipt = await tx.wait(); // Add the leaves to the tree - outputs.forEach((x) => { - this.tree.insert(u8aToHex(x.commitment)); - let numOfElements = this.tree.number_of_elements(); - this.depositHistory[numOfElements - 1] = toFixedHex(this.tree.root().toString()); - }); + this.updateTreeState(outputs); return tx; } diff --git a/packages/anchors/src/PoseidonHasher.ts b/packages/anchors/src/PoseidonHasher.ts index 45465c940..e25a0aae2 100644 --- a/packages/anchors/src/PoseidonHasher.ts +++ b/packages/anchors/src/PoseidonHasher.ts @@ -6,6 +6,7 @@ import { PoseidonT4__factory, PoseidonT6__factory, } from '@webb-tools/contracts'; +import { Deployer } from './Deployer'; export class PoseidonHasher { contract: PoseidonHasherContract; @@ -13,6 +14,43 @@ export class PoseidonHasher { constructor(contract: PoseidonHasherContract) { this.contract = contract; } + public static async create2PoseidonHasher( + deployer: Deployer, + salt: string, + signer: ethers.Signer + ) { + const saltHex = ethers.utils.id(salt); + const { contract: poseidonT3Library } = await deployer.deploy( + PoseidonT3__factory, + saltHex, + signer + ); + const { contract: poseidonT4Library } = await deployer.deploy( + PoseidonT4__factory, + saltHex, + signer + ); + const { contract: poseidonT6Library } = await deployer.deploy( + PoseidonT6__factory, + saltHex, + signer + ); + + const libraryAddresses = { + ['contracts/hashers/Poseidon.sol:PoseidonT3']: poseidonT3Library.address, + ['contracts/hashers/Poseidon.sol:PoseidonT4']: poseidonT4Library.address, + ['contracts/hashers/Poseidon.sol:PoseidonT6']: poseidonT6Library.address, + }; + const { contract } = await deployer.deploy( + PoseidonHasher__factory, + saltHex, + signer, + libraryAddresses + ); + + const hasher = new PoseidonHasher(contract); + return hasher; + } public static async createPoseidonHasher(signer: ethers.Signer) { const poseidonT3LibraryFactory = new PoseidonT3__factory(signer); diff --git a/packages/anchors/src/VAnchor.ts b/packages/anchors/src/VAnchor.ts index 9d4559320..05f9cc82f 100644 --- a/packages/anchors/src/VAnchor.ts +++ b/packages/anchors/src/VAnchor.ts @@ -29,23 +29,17 @@ import { IVariableAnchorExtData, IVariableAnchorPublicInputs, } from '@webb-tools/interfaces'; +import { WebbBridge } from './Common'; +import { Deployer } from './Deployer'; import { hexToU8a, u8aToHex, getChainIdType, ZkComponents, ZERO_BYTES32 } from '@webb-tools/utils'; const zeroAddress = '0x0000000000000000000000000000000000000000'; -function checkNativeAddress(tokenAddress: string): boolean { - if (tokenAddress === zeroAddress || tokenAddress === '0') { - return true; - } - return false; -} -export var gasBenchmark = []; -export var proofTimeBenchmark = []; // This convenience wrapper class is used in tests - // It represents a deployed contract throughout its life (e.g. maintains merkle tree state) // Functionality relevant to anchors in general (proving, verifying) is implemented in static methods // Functionality relevant to a particular anchor deployment (deposit, withdraw) is implemented in instance methods -export class VAnchor implements IVAnchor { +export class VAnchor extends WebbBridge implements IVAnchor { signer: ethers.Signer; contract: VAnchorTreeContract; tree: MerkleTree; @@ -69,6 +63,7 @@ export class VAnchor implements IVAnchor { smallCircuitZkComponents: ZkComponents, largeCircuitZkComponents: ZkComponents ) { + super(contract, signer); this.signer = signer; this.contract = contract; this.tree = new MerkleTree(treeHeight); @@ -79,8 +74,50 @@ export class VAnchor implements IVAnchor { this.largeCircuitZkComponents = largeCircuitZkComponents; } - getAddress(): string { - return this.contract.address; + public static async create2VAnchor( + deployer: Deployer, + saltHex: string, + verifier: string, + levels: BigNumberish, + hasher: string, + handler: string, + token: string, + maxEdges: number, + smallCircuitZkComponents: ZkComponents, + largeCircuitZkComponents: ZkComponents, + signer: ethers.Signer + ) { + const { contract: libraryContract } = await deployer.deploy( + VAnchorEncodeInputs__factory, + saltHex, + signer + ); + + let libraryAddresses = { + ['contracts/libs/VAnchorEncodeInputs.sol:VAnchorEncodeInputs']: libraryContract.address, + }; + + const argTypes = ['address', 'uint32', 'address', 'address', 'address', 'uint8']; + const args = [verifier, levels, hasher, handler, token, maxEdges]; + const { contract: vanchor, receipt } = await deployer.deploy( + VAnchorTree__factory, + saltHex, + signer, + libraryAddresses, + argTypes, + args + ); + const createdVAnchor = new VAnchor( + vanchor, + signer, + BigNumber.from(levels).toNumber(), + maxEdges, + smallCircuitZkComponents, + largeCircuitZkComponents + ); + createdVAnchor.latestSyncedBlock = receipt.blockNumber!; + createdVAnchor.token = token; + return createdVAnchor; } public static async createVAnchor( @@ -145,32 +182,6 @@ export class VAnchor implements IVAnchor { return createdAnchor; } - public static async generateUTXO(input: UtxoGenInput): Promise { - return CircomUtxo.generateUtxo(input); - } - - public static createRootsBytes(rootArray: string[]) { - let rootsBytes = '0x'; - for (let i = 0; i < rootArray.length; i++) { - rootsBytes += toFixedHex(rootArray[i]).substr(2); - } - return rootsBytes; // root byte string (32 * array.length bytes) - } - - // Convert a hex string to a byte array - public static hexStringToByte(str: string) { - if (!str) { - return new Uint8Array(); - } - - var a = []; - for (var i = 0, len = str.length; i < len; i += 2) { - a.push(parseInt(str.substr(i, 2), 16)); - } - - return new Uint8Array(a); - } - public static convertToPublicInputsStruct(args: any[]): IVariableAnchorPublicInputs { return { proof: args[0], @@ -183,19 +194,6 @@ export class VAnchor implements IVAnchor { }; } - public static convertToExtDataStruct(args: any[]): IVariableAnchorExtData { - return { - recipient: args[0], - extAmount: args[1], - relayer: args[2], - fee: args[3], - refund: args[4], - token: args[5], - encryptedOutput1: args[6], - encryptedOutput2: args[7], - }; - } - // Sync the local tree with the tree on chain. // Start syncing from the given block number, otherwise zero. public async update(blockNumber?: number) { @@ -207,41 +205,6 @@ export class VAnchor implements IVAnchor { // this.latestSyncedBlock = currentBlockNumber; } - public async createResourceId(): Promise { - return toHex( - this.contract.address + toHex(getChainIdType(await this.signer.getChainId()), 6).substr(2), - 32 - ); - } - - public async setVerifier(verifierAddress: string) { - const tx = await this.contract.setVerifier( - verifierAddress, - BigNumber.from(await this.contract.getProposalNonce()).add(1) - ); - await tx.wait(); - } - - public async setHandler(handlerAddress: string) { - const tx = await this.contract.setHandler( - handlerAddress, - BigNumber.from(await this.contract.getProposalNonce()).add(1) - ); - await tx.wait(); - } - - public async setSigner(newSigner: ethers.Signer) { - const currentChainId = await this.signer.getChainId(); - const newChainId = await newSigner.getChainId(); - - if (currentChainId === newChainId) { - this.signer = newSigner; - this.contract = this.contract.connect(newSigner); - return true; - } - return false; - } - // Proposal data is used to update linkedAnchors via bridge proposals // on other chains with this anchor's state public async getProposalData(resourceID: string, leafIndex?: number): Promise { @@ -250,82 +213,8 @@ export class VAnchor implements IVAnchor { leafIndex = this.tree.number_of_elements() - 1; } - const chainID = getChainIdType(await this.signer.getChainId()); const merkleRoot = this.depositHistory[leafIndex]; - const functionSig = ethers.utils - .keccak256(ethers.utils.toUtf8Bytes('updateEdge(uint256,uint32,bytes32)')) - .slice(0, 10) - .padEnd(10, '0'); - - const srcContract = this.contract.address; - const srcResourceId = - '0x' + - toHex(0, 6).substring(2) + - toHex(srcContract, 20).substr(2) + - toHex(chainID, 6).substr(2); - return ( - '0x' + - toHex(resourceID, 32).substr(2) + - functionSig.slice(2) + - toHex(leafIndex, 4).substr(2) + - toHex(merkleRoot, 32).substr(2) + - toHex(srcResourceId, 32).substr(2) - ); - } - - public async getHandler(): Promise { - return this.contract.handler(); - } - - public async getHandlerProposalData(newHandler: string): Promise { - const resourceID = await this.createResourceId(); - const functionSig = ethers.utils - .keccak256(ethers.utils.toUtf8Bytes('setHandler(address,uint32)')) - .slice(0, 10) - .padEnd(10, '0'); - const nonce = Number(await this.contract.getProposalNonce()) + 1; - - return ( - '0x' + - toHex(resourceID, 32).substr(2) + - functionSig.slice(2) + - toHex(nonce, 4).substr(2) + - toHex(newHandler, 20).substr(2) - ); - } - - public async getMinWithdrawalLimitProposalData( - _minimalWithdrawalAmount: string - ): Promise { - const resourceID = await this.createResourceId(); - const functionSig = ethers.utils - .keccak256(ethers.utils.toUtf8Bytes('configureMinimalWithdrawalLimit(uint256,uint32)')) - .slice(0, 10) - .padEnd(10, '0'); - const nonce = Number(await this.contract.getProposalNonce()) + 1; - return ( - '0x' + - toHex(resourceID, 32).substr(2) + - functionSig.slice(2) + - toHex(nonce, 4).substr(2) + - toFixedHex(_minimalWithdrawalAmount).substr(2) - ); - } - - public async getMaxDepositLimitProposalData(_maximumDepositAmount: string): Promise { - const resourceID = await this.createResourceId(); - const functionSig = ethers.utils - .keccak256(ethers.utils.toUtf8Bytes('configureMaximumDepositLimit(uint256,uint32)')) - .slice(0, 10) - .padEnd(10, '0'); - const nonce = Number(await this.contract.getProposalNonce()) + 1; - return ( - '0x' + - toHex(resourceID, 32).substr(2) + - functionSig.slice(2) + - toHex(nonce, 4).substr(2) + - toFixedHex(_maximumDepositAmount).substr(2) - ); + return this.genProposalData(resourceID, merkleRoot, leafIndex); } public async populateRootsForProof(): Promise { @@ -424,45 +313,34 @@ export class VAnchor implements IVAnchor { return false; } } - - public async getGasBenchmark() { - const gasValues = gasBenchmark.map(Number); - const meanGas = mean(gasValues); - const medianGas = median(gasValues); - const maxGas = max(gasValues); - const minGas = min(gasValues); - return { - gasValues, - meanGas, - medianGas, - maxGas, - minGas, - }; - // return gasBenchmark; - } - public async getProofTimeBenchmark() { - const meanTime = mean(proofTimeBenchmark); - const medianTime = median(proofTimeBenchmark); - const maxTime = max(proofTimeBenchmark); - const minTime = min(proofTimeBenchmark); + public static convertToExtDataStruct(args: any[]): IVariableAnchorExtData { return { - proofTimeBenchmark, - meanTime, - medianTime, - maxTime, - minTime, + recipient: args[0], + extAmount: args[1], + relayer: args[2], + fee: args[3], + refund: args[4], + token: args[5], + encryptedOutput1: args[6], + encryptedOutput2: args[7], }; } /** * - * @param input A UTXO object that is inside the tree - * @returns an object with two fields, publicInput + * @param inputs a list of UTXOs that are either inside the tree or are dummy inputs + * @param outputs a list of output UTXOs. Needs to have 2 elements. + * @param fee transaction fee. + * @param refund amount given as gas to withdraw address + * @param recipient address to the recipient + * @param relayer address to the relayer + * @param wrapUnwrapToken address to the token being transacted. can be the empty string to use native token + * @param leavesMap map from chainId to merkle leaves + * @returns an object with two fields, publicInputs, extData and extAmount */ public async setupTransaction( inputs: Utxo[], - outputs: [Utxo, Utxo], - extAmount: BigNumberish, + outputs: Utxo[], fee: BigNumberish, refund: BigNumberish, recipient: string, @@ -471,8 +349,16 @@ export class VAnchor implements IVAnchor { leavesMap: Record ) { // first, check if the merkle root is known on chain - if not, then update + if (wrapUnwrapToken.length === 0) { + wrapUnwrapToken = this.token; + } + + if (outputs.length !== 2) { + throw new Error('Only two outputs are supported'); + } const chainId = getChainIdType(await this.signer.getChainId()); const roots = await this.populateRootsForProof(); + let extAmount = this.getExtAmount(inputs, outputs, fee); // calculate the sum of input notes (for calculating the public amount) let sumInputUtxosAmount: BigNumberish = 0; @@ -499,7 +385,7 @@ export class VAnchor implements IVAnchor { leafIds, roots: roots.map((root) => hexToU8a(root.toHexString())), chainId: chainId.toString(), - output: outputs, + output: [outputs[0], outputs[1]], encryptedCommitments, publicAmount: BigNumber.from(extAmount).sub(fee).add(FIELD_SIZE).mod(FIELD_SIZE).toString(), provingKey: @@ -547,67 +433,101 @@ export class VAnchor implements IVAnchor { }; return { + extAmount, extData, publicInputs, }; } - public async transact( + public updateTreeState(outputs: Utxo[]): void { + outputs.forEach((x) => { + this.tree.insert(u8aToHex(x.commitment)); + let numOfElements = this.tree.number_of_elements(); + this.depositHistory[numOfElements - 1] = toFixedHex(this.tree.root().toString()); + }); + } + public async generateProof( + roots: string[], inputs: Utxo[], outputs: Utxo[], fee: BigNumberish, refund: BigNumberish, + tokenAddress: string, recipient: string, relayer: string, - wrapUnwrapToken: string, leavesMap: Record - ): Promise { - // Default UTXO chain ID will match with the configured signer's chain ID - const evmId = await this.signer.getChainId(); - const chainId = getChainIdType(evmId); - const randomKeypair = new Keypair(); - - while (inputs.length !== 2 && inputs.length < 16) { - inputs.push( - await CircomUtxo.generateUtxo({ - curve: 'Bn254', - backend: 'Circom', - chainId: chainId.toString(), - originChainId: chainId.toString(), - amount: '0', - blinding: hexToU8a(randomBN(31).toHexString()), - keypair: randomKeypair, - }) - ); - } + ) { + let extAmount = this.getExtAmount(inputs, outputs, fee); - if (outputs.length < 2) { - while (outputs.length < 2) { - outputs.push( - await CircomUtxo.generateUtxo({ - curve: 'Bn254', - backend: 'Circom', - chainId: chainId.toString(), - originChainId: chainId.toString(), - amount: '0', - keypair: randomKeypair, - }) - ); - } - } + const encryptedCommitments: [Uint8Array, Uint8Array] = [ + hexToU8a(outputs[0].encrypt()), + hexToU8a(outputs[1].encrypt()), + ]; + const chainId = getChainIdType(await this.signer.getChainId()); - let extAmount = BigNumber.from(fee) - .add(outputs.reduce((sum, x) => sum.add(x.amount), BigNumber.from(0))) - .sub(inputs.reduce((sum, x) => sum.add(x.amount), BigNumber.from(0))); + let sumInputUtxosAmount: BigNumberish = 0; + let leafIds: LeafIdentifier[] = []; - if (wrapUnwrapToken.length === 0) { - wrapUnwrapToken = this.token; + for (const inputUtxo of inputs) { + sumInputUtxosAmount = BigNumber.from(sumInputUtxosAmount).add(inputUtxo.amount); + leafIds.push({ + index: inputUtxo.index, + typedChainId: Number(inputUtxo.originChainId), + }); } - const { extData, publicInputs } = await this.setupTransaction( + const proofInput: ProvingManagerSetupInput<'vanchor'> = { + inputUtxos: inputs, + leavesMap, + leafIds, + roots: roots.map((root) => hexToU8a(root)), + chainId: chainId.toString(), + output: [outputs[0], outputs[1]], + encryptedCommitments, + publicAmount: BigNumber.from(extAmount).sub(fee).add(FIELD_SIZE).mod(FIELD_SIZE).toString(), + provingKey: + inputs.length > 2 ? this.largeCircuitZkComponents.zkey : this.smallCircuitZkComponents.zkey, + relayer: hexToU8a(relayer), + recipient: hexToU8a(recipient), + extAmount: toFixedHex(BigNumber.from(extAmount)), + fee: BigNumber.from(fee).toString(), + refund: BigNumber.from(refund).toString(), + token: hexToU8a(tokenAddress), + }; + + inputs.length > 2 + ? (this.provingManager = new CircomProvingManager( + this.largeCircuitZkComponents.wasm, + this.tree.levels, + null + )) + : (this.provingManager = new CircomProvingManager( + this.smallCircuitZkComponents.wasm, + this.tree.levels, + null + )); + + const proof = await this.provingManager.prove('vanchor', proofInput); + return { proof, extAmount, proofInput }; + } + + public async transact( + inputs: Utxo[], + outputs: Utxo[], + fee: BigNumberish, + refund: BigNumberish, + recipient: string, + relayer: string, + wrapUnwrapToken: string, + leavesMap: Record + ): Promise { + // Default UTXO chain ID will match with the configured signer's chain ID + inputs = await this.padUtxos(inputs, 16); + outputs = await this.padUtxos(outputs, 2); + + const { extData, extAmount, publicInputs } = await this.setupTransaction( inputs, - [outputs[0], outputs[1]], - extAmount, + outputs, fee, refund, recipient, @@ -616,17 +536,7 @@ export class VAnchor implements IVAnchor { leavesMap ); - let options = {}; - if (extAmount.gt(0) && checkNativeAddress(wrapUnwrapToken)) { - let tokenWrapper = TokenWrapper__factory.connect(await this.contract.token(), this.signer); - let valueToSend = await tokenWrapper.getAmountToWrap(extAmount); - - options = { - value: valueToSend.toHexString(), - }; - } else { - options = {}; - } + let options = await this.getWrapUnwrapOptions(extAmount, wrapUnwrapToken); const tx = await this.contract.transact( publicInputs.proof, @@ -656,12 +566,7 @@ export class VAnchor implements IVAnchor { const receipt = await tx.wait(); // Add the leaves to the tree - outputs.forEach((x) => { - // Maintain tree state after insertions - this.tree.insert(u8aToHex(x.commitment)); - let numOfElements = this.tree.number_of_elements(); - this.depositHistory[numOfElements - 1] = toFixedHex(this.tree.root().toString()); - }); + this.updateTreeState(outputs); return receipt; } @@ -678,51 +583,12 @@ export class VAnchor implements IVAnchor { wrapUnwrapToken: string, leavesMap: Record ): Promise { - const chainId = getChainIdType(await this.signer.getChainId()); - const randomKeypair = new Keypair(); - - while (inputs.length !== 2 && inputs.length < 16) { - inputs.push( - await CircomUtxo.generateUtxo({ - curve: 'Bn254', - backend: 'Circom', - chainId: chainId.toString(), - originChainId: chainId.toString(), - blinding: hexToU8a(randomBN(31).toHexString()), - amount: '0', - keypair: randomKeypair, - }) - ); - } + inputs = await this.padUtxos(inputs, 16); + outputs = await this.padUtxos(outputs, 2); - if (outputs.length < 2) { - while (outputs.length < 2) { - outputs.push( - await CircomUtxo.generateUtxo({ - curve: 'Bn254', - backend: 'Circom', - chainId: chainId.toString(), - originChainId: chainId.toString(), - blinding: hexToU8a(randomBN(31).toHexString()), - amount: '0', - keypair: randomKeypair, - }) - ); - } - } - - let extAmount = BigNumber.from(fee) - .add(outputs.reduce((sum, x) => sum.add(BigNumber.from(BigInt(x.amount))), BigNumber.from(0))) - .sub(inputs.reduce((sum, x) => sum.add(BigNumber.from(BigInt(x.amount))), BigNumber.from(0))); - - if (wrapUnwrapToken.length === 0) { - wrapUnwrapToken = this.token; - } - - const { extData, publicInputs } = await this.setupTransaction( + const { extAmount, extData, publicInputs } = await this.setupTransaction( inputs, [outputs[0], outputs[1]], - extAmount, fee, refund, recipient, @@ -731,18 +597,7 @@ export class VAnchor implements IVAnchor { leavesMap ); - let options = {}; - if (extAmount.gt(0) && checkNativeAddress(wrapUnwrapToken)) { - let tokenWrapper = TokenWrapper__factory.connect(await this.contract.token(), this.signer); - let valueToSend = await tokenWrapper.getAmountToWrap(extAmount); - - options = { - value: valueToSend.toHexString(), - }; - } else { - options = {}; - } - + let options = await this.getWrapUnwrapOptions(extAmount, wrapUnwrapToken); let tx = await this.contract.registerAndTransact( { owner, keyData: keyData }, publicInputs.proof, @@ -775,11 +630,7 @@ export class VAnchor implements IVAnchor { const receipt = await tx.wait(); // Add the leaves to the tree - outputs.forEach((x) => { - this.tree.insert(u8aToHex(x.commitment)); - let numOfElements = this.tree.number_of_elements(); - this.depositHistory[numOfElements - 1] = toFixedHex(this.tree.root().toString()); - }); + this.updateTreeState(outputs); return receipt; } diff --git a/packages/anchors/src/VAnchorForest.ts b/packages/anchors/src/VAnchorForest.ts index d7415ea0a..69fe45082 100644 --- a/packages/anchors/src/VAnchorForest.ts +++ b/packages/anchors/src/VAnchorForest.ts @@ -1,5 +1,6 @@ import { BigNumber, BigNumberish, ContractTransaction, ethers } from 'ethers'; import { + DeterministicDeployFactory as DeterministicDeployFactoryContract, VAnchorForest as VAnchorForestContract, VAnchorForest__factory, VAnchorEncodeInputs__factory, @@ -47,14 +48,9 @@ import { ZERO_BYTES32, } from '@webb-tools/utils'; import { solidityPack } from 'ethers/lib/utils'; +import { WebbBridge } from './Common'; +import { Deployer } from './Deployer'; -const zeroAddress = '0x0000000000000000000000000000000000000000'; -function checkNativeAddress(tokenAddress: string): boolean { - if (tokenAddress === zeroAddress || tokenAddress === '0') { - return true; - } - return false; -} export type ExtData = { recipient: string; extAmount: string; @@ -72,7 +68,7 @@ export var proofTimeBenchmark = []; // It represents a deployed contract throughout its life (e.g. maintains merkle tree state) // Functionality relevant to anchors in general (proving, verifying) is implemented in static methods // Functionality relevant to a particular anchor deployment (deposit, withdraw) is implemented in instance methods -export class VAnchorForest { +export class VAnchorForest extends WebbBridge { signer: ethers.Signer; contract: VAnchorForestContract; forest: MerkleTree; @@ -98,6 +94,7 @@ export class VAnchorForest { smallCircuitZkComponents: ZkComponents, largeCircuitZkComponents: ZkComponents ) { + super(contract, signer); this.signer = signer; this.contract = contract; this.forest = new MerkleTree(forestHeight); @@ -109,8 +106,75 @@ export class VAnchorForest { this.largeCircuitZkComponents = largeCircuitZkComponents; } - getAddress(): string { - return this.contract.address; + public static async create2VAnchor( + deployer: Deployer, + saltHex: string, + verifier: string, + forestLevels: BigNumberish, + subtreeLevels: BigNumberish, + hasher: string, + handler: string, + token: string, + maxEdges: number, + smallCircuitZkComponents: ZkComponents, + largeCircuitZkComponents: ZkComponents, + signer: ethers.Signer + ) { + // const saltHex = ethers.utils.id(salt) + const { contract: encodeLibrary } = await deployer.deploy( + VAnchorEncodeInputs__factory, + saltHex, + signer + ); + + const poseidonABI = poseidonContract.generateABI(2); + const poseidonBytecode = poseidonContract.createCode(2); + const poseidonInitCode = poseidonBytecode + Deployer.encode([], []); + + const { address: poseidonLibAddr } = await deployer.deployInitCode( + saltHex, + signer, + poseidonInitCode + ); + + const LinkableIncrementalBinaryTreeLibs = { + ['contracts/hashers/Poseidon.sol:PoseidonT3']: poseidonLibAddr, + }; + const { contract: linkableIncrementalBinaryTree } = await deployer.deploy( + LinkableIncrementalBinaryTree__factory, + saltHex, + signer, + LinkableIncrementalBinaryTreeLibs + ); + const libraryAddresses = { + ['contracts/libs/VAnchorEncodeInputs.sol:VAnchorEncodeInputs']: encodeLibrary.address, + ['contracts/hashers/Poseidon.sol:PoseidonT3']: poseidonLibAddr, + ['contracts/trees/LinkableIncrementalBinaryTree.sol:LinkableIncrementalBinaryTree']: + linkableIncrementalBinaryTree.address, + }; + const argTypes = ['address', 'uint32', 'uint32', 'address', 'address', 'address', 'uint8']; + const args = [verifier, forestLevels, subtreeLevels, hasher, handler, token, maxEdges]; + const { contract: vAnchor, receipt } = await deployer.deploy( + VAnchorForest__factory, + saltHex, + signer, + libraryAddresses, + argTypes, + args + ); + // await vAnchor.deployed(); + const createdVAnchor = new VAnchorForest( + vAnchor, + signer, + BigNumber.from(forestLevels).toNumber(), + BigNumber.from(subtreeLevels).toNumber(), + maxEdges, + smallCircuitZkComponents, + largeCircuitZkComponents + ); + createdVAnchor.latestSyncedBlock = receipt.blockNumber!; + createdVAnchor.token = token; + return createdVAnchor; } public static async createVAnchor( @@ -207,32 +271,6 @@ export class VAnchorForest { return createdAnchor; } - public static async generateUTXO(input: UtxoGenInput): Promise { - return CircomUtxo.generateUtxo(input); - } - - public static createRootsBytes(rootArray: string[]) { - let rootsBytes = '0x'; - for (let i = 0; i < rootArray.length; i++) { - rootsBytes += toFixedHex(rootArray[i]).substr(2); - } - return rootsBytes; // root byte string (32 * array.length bytes) - } - - // Convert a hex string to a byte array - public static hexStringToByte(str: string) { - if (!str) { - return new Uint8Array(); - } - - var a = []; - for (var i = 0, len = str.length; i < len; i += 2) { - a.push(parseInt(str.substr(i, 2), 16)); - } - - return new Uint8Array(a); - } - public static convertToPublicInputsStruct(args: any[]): IVariableAnchorPublicInputs { return { proof: args[0], @@ -269,41 +307,6 @@ export class VAnchorForest { // this.latestSyncedBlock = currentBlockNumber; } - public async createResourceId(): Promise { - return toHex( - this.contract.address + toHex(getChainIdType(await this.signer.getChainId()), 6).substr(2), - 32 - ); - } - - public async setVerifier(verifierAddress: string) { - const tx = await this.contract.setVerifier( - verifierAddress, - BigNumber.from(await this.contract.getProposalNonce()).add(1) - ); - await tx.wait(); - } - - public async setHandler(handlerAddress: string) { - const tx = await this.contract.setHandler( - handlerAddress, - BigNumber.from(await this.contract.getProposalNonce()).add(1) - ); - await tx.wait(); - } - - public async setSigner(newSigner: ethers.Signer) { - const currentChainId = await this.signer.getChainId(); - const newChainId = await newSigner.getChainId(); - - if (currentChainId === newChainId) { - this.signer = newSigner; - this.contract = this.contract.connect(newSigner); - return true; - } - return false; - } - // Proposal data is used to update linkedAnchors via bridge proposals // on other chains with this anchor's state public async getProposalData(resourceID: string, leafIndex?: number): Promise { @@ -314,80 +317,7 @@ export class VAnchorForest { const chainID = getChainIdType(await this.signer.getChainId()); const merkleRoot = this.depositHistory[leafIndex]; - const functionSig = ethers.utils - .keccak256(ethers.utils.toUtf8Bytes('updateEdge(bytes32,uint32,bytes32)')) - .slice(0, 10) - .padEnd(10, '0'); - - const srcContract = this.contract.address; - const srcResourceId = - '0x' + - toHex(0, 6).substring(2) + - toHex(srcContract, 20).substr(2) + - toHex(chainID, 6).substr(2); - return ( - '0x' + - toHex(resourceID, 32).substr(2) + - functionSig.slice(2) + - toHex(leafIndex, 4).substr(2) + - toHex(merkleRoot, 32).substr(2) + - toHex(srcResourceId, 32).substr(2) - ); - } - - public async getHandler(): Promise { - return this.contract.handler(); - } - - public async getHandlerProposalData(newHandler: string): Promise { - const resourceID = await this.createResourceId(); - const functionSig = ethers.utils - .keccak256(ethers.utils.toUtf8Bytes('setHandler(address,uint32)')) - .slice(0, 10) - .padEnd(10, '0'); - const nonce = Number(await this.contract.getProposalNonce()) + 1; - - return ( - '0x' + - toHex(resourceID, 32).substr(2) + - functionSig.slice(2) + - toHex(nonce, 4).substr(2) + - toHex(newHandler, 20).substr(2) - ); - } - - public async getMinWithdrawalLimitProposalData( - _minimalWithdrawalAmount: string - ): Promise { - const resourceID = await this.createResourceId(); - const functionSig = ethers.utils - .keccak256(ethers.utils.toUtf8Bytes('configureMinimalWithdrawalLimit(uint256,uint32)')) - .slice(0, 10) - .padEnd(10, '0'); - const nonce = Number(await this.contract.getProposalNonce()) + 1; - return ( - '0x' + - toHex(resourceID, 32).substr(2) + - functionSig.slice(2) + - toHex(nonce, 4).substr(2) + - toFixedHex(_minimalWithdrawalAmount).substr(2) - ); - } - - public async getMaxDepositLimitProposalData(_maximumDepositAmount: string): Promise { - const resourceID = await this.createResourceId(); - const functionSig = ethers.utils - .keccak256(ethers.utils.toUtf8Bytes('configureMaximumDepositLimit(uint256,uint32)')) - .slice(0, 10) - .padEnd(10, '0'); - const nonce = Number(await this.contract.getProposalNonce()) + 1; - return ( - '0x' + - toHex(resourceID, 32).substr(2) + - functionSig.slice(2) + - toHex(nonce, 4).substr(2) + - toFixedHex(_maximumDepositAmount).substr(2) - ); + return await this.genProposalData(resourceID, merkleRoot, leafIndex); } public async populateRootsForProof(): Promise { @@ -463,17 +393,10 @@ export class VAnchorForest { const args = { proof: `0x${proof}`, roots: `0x${roots.map((x) => toFixedHex(x).slice(2)).join('')}`, - // inputNullifiers: `0x${roots.map((x) => toFixedHex(x).slice(2)).join('')}`, inputNullifiers, outputCommitments, publicAmount, extDataHash, - // outputCommitments: [ - // toFixedHex(u8aToHex(outputs[0].commitment)), - // toFixedHex(u8aToHex(outputs[1].commitment)), - // ], - // publicAmount: toFixedHex(publicAmount), - // extDataHash: toFixedHex(extDataHash), }; return args; @@ -641,7 +564,6 @@ export class VAnchorForest { const lastSubtreeRoot = await this.contract.getLastSubtreeRoot(0); this.forest.update(curIdx, this.tree.root().toHexString()); } - /** * * @param input A UTXO object that is inside the tree @@ -649,8 +571,7 @@ export class VAnchorForest { */ public async setupTransaction( inputs: Utxo[], - outputs: [Utxo, Utxo], - extAmount: BigNumberish, + outputs: Utxo[], fee: BigNumberish, refund: BigNumberish, recipient: string, @@ -659,7 +580,11 @@ export class VAnchorForest { leavesMap: Record ) { // first, check if the merkle root is known on chain - if not, then update + if (wrapUnwrapToken.length === 0) { + wrapUnwrapToken = this.token; + } const chainId = getChainIdType(await this.signer.getChainId()); + let extAmount = await this.getExtAmount(inputs, outputs, fee); // calculate the sum of input notes (for calculating the public amount) let sumInputUtxosAmount: BigNumberish = 0; @@ -713,71 +638,17 @@ export class VAnchorForest { const publicInputs = await this.generatePublicInputs(proof, inputs.length); return { + extAmount, extData, publicInputs, }; } - public async encodeSolidityProof(fullProof: any, calldata: any): Promise { - const proof = JSON.parse('[' + calldata + ']'); - const pi_a = proof[0]; - const pi_b = proof[1]; - const pi_c = proof[2]; - - const proofEncoded = [ - pi_a[0], - pi_a[1], - pi_b[0][0], - pi_b[0][1], - pi_b[1][0], - pi_b[1][1], - pi_c[0], - pi_c[1], - ] - .map((elt) => elt.substr(2)) - .join(''); - - return proofEncoded; - } - - public async padUtxos(utxos: Utxo[], maxLength: number): Promise { - const evmId = await this.signer.getChainId(); - const chainId = getChainIdType(evmId); - const randomKeypair = new Keypair(); - while (utxos.length !== 2 && utxos.length < maxLength) { - utxos.push( - await CircomUtxo.generateUtxo({ - curve: 'Bn254', - backend: 'Circom', - chainId: chainId.toString(), - originChainId: chainId.toString(), - blinding: hexToU8a(randomBN(31).toHexString()), - amount: '0', - keypair: randomKeypair, - }) - ); - } - return utxos; - } - - public async padInputsAndOutputs( - inputs: Utxo[], - outputs: Utxo[] - ): Promise<{ inputs: Utxo[]; outputs: Utxo[] }> { - inputs = await this.padUtxos(inputs, 16); - outputs = await this.padUtxos(outputs, 2); - return { inputs, outputs }; - } - public async getExtAmount(inputs: Utxo[], outputs: Utxo[], fee: BigNumberish) { - return BigNumber.from(fee) - .add(outputs.reduce((sum, x) => sum.add(BigNumber.from(BigInt(x.amount))), BigNumber.from(0))) - .sub(inputs.reduce((sum, x) => sum.add(BigNumber.from(BigInt(x.amount))), BigNumber.from(0))); - } public async registerAndTransact( owner: string, keyData: string, - raw_inputs: Utxo[], - raw_outputs: Utxo[], + inputs: Utxo[], + outputs: Utxo[], fee: BigNumberish, refund: BigNumberish, recipient: string, @@ -785,17 +656,12 @@ export class VAnchorForest { wrapUnwrapToken: string, leavesMap: Record ): Promise { - let { inputs, outputs } = await this.padInputsAndOutputs(raw_inputs, raw_outputs); - let extAmount = await this.getExtAmount(inputs, outputs, fee); - - if (wrapUnwrapToken.length === 0) { - wrapUnwrapToken = this.token; - } + inputs = await this.padUtxos(inputs, 16); + outputs = await this.padUtxos(outputs, 2); - const { extData, publicInputs } = await this.setupTransaction( + const { extAmount, extData, publicInputs } = await this.setupTransaction( inputs, - [outputs[0], outputs[1]], - extAmount, + outputs, fee, refund, recipient, @@ -804,20 +670,8 @@ export class VAnchorForest { leavesMap ); - let options = {}; - if (extAmount.gt(0) && checkNativeAddress(wrapUnwrapToken)) { - let tokenWrapper = TokenWrapper__factory.connect(await this.contract.token(), this.signer); - let valueToSend = await tokenWrapper.getAmountToWrap(extAmount); - - options = { - value: valueToSend.toHexString(), - gasLimit: '0x5B8D80', - }; - } else { - options = { - gasLimit: '0x5B8D80', - }; - } + let options = await this.getWrapUnwrapOptions(extAmount, wrapUnwrapToken); + options["gasLimit"] = '0x5B8D80'; let tx = await this.contract.registerAndTransact( { owner, keyData: keyData }, @@ -856,8 +710,8 @@ export class VAnchorForest { } public async transact( - raw_inputs: Utxo[], - raw_outputs: Utxo[], + inputs: Utxo[], + outputs: Utxo[], fee: BigNumberish, refund: BigNumberish, recipient: string, @@ -866,25 +720,15 @@ export class VAnchorForest { leavesMap: Record ): Promise { // Validate input utxos have a valid originChainId - raw_inputs.map((utxo) => { - if (utxo.originChainId === undefined) { - throw new Error('Input Utxo does not have a configured originChainId'); - } - }); + this.validateInputs(inputs); // Default UTXO chain ID will match with the configured signer's chain ID - let { inputs, outputs } = await this.padInputsAndOutputs(raw_inputs, raw_outputs); - - let extAmount = await this.getExtAmount(inputs, outputs, fee); - - if (wrapUnwrapToken.length === 0) { - wrapUnwrapToken = this.token; - } + inputs = await this.padUtxos(inputs, 16); + outputs = await this.padUtxos(outputs, 2); - const { extData, publicInputs } = await this.setupTransaction( + const { extAmount, extData, publicInputs } = await this.setupTransaction( inputs, - [outputs[0], outputs[1]], - extAmount, + outputs, fee, refund, recipient, @@ -893,21 +737,8 @@ export class VAnchorForest { leavesMap ); - let options = {}; - if (extAmount.gt(0) && checkNativeAddress(wrapUnwrapToken)) { - let tokenWrapper = TokenWrapper__factory.connect(await this.contract.token(), this.signer); - let valueToSend = await tokenWrapper.getAmountToWrap(extAmount); - - options = { - value: valueToSend.toHexString(), - gasLimit: '0x5B8D80', - }; - } else { - options = { - gasLimit: '0x5B8D80', - }; - } - + let options = await this.getWrapUnwrapOptions(extAmount, wrapUnwrapToken); + options["gasLimit"] = '0x5B8D80'; const tx = await this.contract.transact( publicInputs.proof, ZERO_BYTES32, diff --git a/packages/anchors/src/index.ts b/packages/anchors/src/index.ts index e5665b930..8ca3e236c 100644 --- a/packages/anchors/src/index.ts +++ b/packages/anchors/src/index.ts @@ -5,3 +5,4 @@ export { ChainalysisVAnchor } from './ChainalysisVAnchor'; export { IdentityVAnchor } from './IdentityVAnchor'; export { OpenVAnchor } from './OpenVAnchor'; export { PoseidonHasher } from './PoseidonHasher'; +export { Deployer } from './Deployer'; diff --git a/packages/contracts/contracts/DeterministicDeployFactory.sol b/packages/contracts/contracts/DeterministicDeployFactory.sol new file mode 100644 index 000000000..4d1876c83 --- /dev/null +++ b/packages/contracts/contracts/DeterministicDeployFactory.sol @@ -0,0 +1,19 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +contract DeterministicDeployFactory { + event Deploy(address addr); + + function deploy(bytes memory bytecode, uint _salt) external { + address addr; + assembly { + addr := create2(0, add(bytecode, 0x20), mload(bytecode), _salt) + if iszero(extcodesize(addr)) { + revert(0, 0) + } + } + + emit Deploy(addr); + } +} + diff --git a/packages/contracts/package.json b/packages/contracts/package.json index d262d815e..cd0700ae0 100644 --- a/packages/contracts/package.json +++ b/packages/contracts/package.json @@ -10,6 +10,7 @@ "clean": "rimraf -rf ./lib && rimraf -rf ./typechain && rimraf -rf ./cache && rimraf -rf ./artifacts", "build:library": "tsc -p tsconfig.build.json", "test": "npx hardhat test", + "test:parallel": "npx hardhat test --parallel", "copy:declarations": "copyfiles -f ./typechain/*.d.ts ./lib", "build:contracts": "npx hardhat compile", "test:gas-reporter": "REPORT_GAS=true npx hardhat test --parallel" @@ -24,11 +25,11 @@ "@types/chai": "^4.3.0", "@types/mocha": "^9.0.0", "@webb-tools/sdk-core": "0.1.4-113", - "@webb-tools/semaphore": "0.0.1-4", + "@webb-tools/test-utils": "0.1.4-113", + "@webb-tools/semaphore": "0.0.1-5", "@webb-tools/semaphore-group": "0.0.1-4", "@webb-tools/semaphore-identity": "0.0.1-3", - "@webb-tools/semaphore-proof": "0.0.1-3", - "@webb-tools/test-utils": "0.1.4-113", + "@webb-tools/semaphore-proof": "0.0.1-5", "babel-plugin-styled-components": "^2.0.7", "bn.js": "4.11.6", "chai": "^4.3.5", diff --git a/packages/contracts/scripts/deployFactory.js b/packages/contracts/scripts/deployFactory.js new file mode 100644 index 000000000..f124f1e9e --- /dev/null +++ b/packages/contracts/scripts/deployFactory.js @@ -0,0 +1,14 @@ +const ethers = require("hardhat").ethers; +// import { ethers } from "hardhat"; + +const main = async () => { + const Factory = await ethers.getContractFactory("DeterministicDeployFactory"); + const factory = await Factory.deploy(); + await factory.deployed(); + console.log("Factory deployed to:", factory.address); +}; + +main().catch((error) => { + console.error(error); + process.exitCode = 1; +}); diff --git a/packages/contracts/test/create2/create2.test.ts b/packages/contracts/test/create2/create2.test.ts new file mode 100644 index 000000000..70d37164a --- /dev/null +++ b/packages/contracts/test/create2/create2.test.ts @@ -0,0 +1,375 @@ +const assert = require('assert'); +import { ethers } from 'hardhat'; +import { HARDHAT_ACCOUNTS } from '../../hardhatAccounts.js'; +const TruffleAssert = require('truffle-assertions'); + +// Typechain generated bindings for contracts +// These contracts are included in packages, so should be tested +import { + DeterministicDeployFactory__factory, + ERC20PresetMinterPauser, + ERC20PresetMinterPauser__factory, + VAnchorEncodeInputs__factory, +} from '@webb-tools/contracts'; + +import { getChainIdType } from '@webb-tools/utils'; +import { Semaphore } from '@webb-tools/semaphore'; +import { LinkedGroup } from '@webb-tools/semaphore-group'; +import { startGanacheServer } from '@webb-tools/test-utils'; +import { + PoseidonHasher, + VAnchor, + IdentityVAnchor, + VAnchorForest, + Deployer, +} from '@webb-tools/anchors'; +import { BigNumber } from 'ethers'; +import { SignerWithAddress } from '@nomiclabs/hardhat-ethers/signers'; + +import { Verifier, ForestVerifier, IdentityVerifier } from '@webb-tools/vbridge'; + +const path = require('path'); + +describe('Should deploy verifiers to the same address', () => { + let deployer1: Deployer; + let deployer2: Deployer; + let token1: ERC20PresetMinterPauser; + let token2: ERC20PresetMinterPauser; + let poseidonHasher1: PoseidonHasher; + let poseidonHasher2: PoseidonHasher; + let sender: SignerWithAddress; + const FIRST_CHAIN_ID = 31337; + const SECOND_CHAIN_ID = 10000; + let ganacheServer2: any; + let ganacheProvider2 = new ethers.providers.JsonRpcProvider( + `http://localhost:${SECOND_CHAIN_ID}` + ); + ganacheProvider2.pollingInterval = 1; + let ganacheWallet1 = new ethers.Wallet(HARDHAT_ACCOUNTS[1].privateKey, ganacheProvider2); + let ganacheWallet2 = new ethers.Wallet( + 'c0d375903fd6f6ad3edafc2c5428900c0757ce1da10e5dd864fe387b32b91d7e', + ganacheProvider2 + ); + const chainID1 = getChainIdType(FIRST_CHAIN_ID); + const chainID2 = getChainIdType(SECOND_CHAIN_ID); + + before('setup networks', async () => { + ganacheServer2 = await startGanacheServer(SECOND_CHAIN_ID, SECOND_CHAIN_ID, [ + { + balance: '0x1000000000000000000000', + secretKey: '0xc0d375903fd6f6ad3edafc2c5428900c0757ce1da10e5dd864fe387b32b91d7e', + }, + { + balance: '0x1000000000000000000000', + secretKey: '0x' + HARDHAT_ACCOUNTS[1].privateKey, + }, + ]); + const signers = await ethers.getSigners(); + const wallet = signers[1]; + let hardhatNonce = await wallet.provider.getTransactionCount(wallet.address, 'latest'); + let ganacheNonce = await ganacheWallet1.provider.getTransactionCount( + ganacheWallet1.address, + 'latest' + ); + assert(ganacheNonce <= hardhatNonce); + while (ganacheNonce < hardhatNonce) { + ganacheWallet1.sendTransaction({ + to: ganacheWallet2.address, + value: ethers.utils.parseEther('0.0'), + }); + hardhatNonce = await wallet.provider.getTransactionCount(wallet.address, 'latest'); + ganacheNonce = await ganacheWallet1.provider.getTransactionCount( + ganacheWallet1.address, + 'latest' + ); + } + assert.strictEqual(ganacheNonce, hardhatNonce); + let b1 = await wallet.provider.getBalance(wallet.address); + let b2 = await ganacheWallet1.provider.getBalance(ganacheWallet1.address); + let b3 = await ganacheWallet2.provider.getBalance(ganacheWallet2.address); + sender = wallet; + }); + + describe('#deploy common', () => { + it('should deploy to the same address', async () => { + let hardhatNonce = await sender.provider.getTransactionCount(sender.address, 'latest'); + let ganacheNonce = await ganacheWallet1.provider.getTransactionCount( + ganacheWallet1.address, + 'latest' + ); + while (ganacheNonce !== hardhatNonce) { + if (ganacheNonce < hardhatNonce) { + const Deployer2 = new DeterministicDeployFactory__factory(ganacheWallet1); + let deployer2 = await Deployer2.deploy(); + await deployer2.deployed(); + } else { + const Deployer1 = new DeterministicDeployFactory__factory(sender); + let deployer1 = await Deployer1.deploy(); + await deployer1.deployed(); + } + + hardhatNonce = await sender.provider.getTransactionCount(sender.address, 'latest'); + ganacheNonce = await ganacheWallet1.provider.getTransactionCount( + ganacheWallet1.address, + 'latest' + ); + if (ganacheNonce === hardhatNonce) { + break; + } + } + assert.strictEqual(ganacheNonce, hardhatNonce); + const Deployer1 = new DeterministicDeployFactory__factory(sender); + let deployer1Contract = await Deployer1.deploy(); + await deployer1Contract.deployed(); + deployer1 = new Deployer(deployer1Contract); + + const Deployer2 = new DeterministicDeployFactory__factory(ganacheWallet1); + let deployer2Contract = await Deployer2.deploy(); + await deployer2Contract.deployed(); + deployer2 = new Deployer(deployer2Contract); + assert.strictEqual(deployer1.address, deployer2.address); + }); + it('should deploy ERC20PresetMinterPauser to the same address using different wallets', async () => { + const salt = '666'; + const saltHex = ethers.utils.id(salt); + const argTypes = ['string', 'string']; + const args = ['test token', 'TEST']; + const { contract: contractToken1 } = await deployer1.deploy( + ERC20PresetMinterPauser__factory, + saltHex, + sender, + undefined, + argTypes, + args + ); + token1 = contractToken1; + const { contract: contractToken2 } = await deployer2.deploy( + ERC20PresetMinterPauser__factory, + saltHex, + ganacheWallet2, + undefined, + argTypes, + args + ); + token2 = contractToken2; + assert.strictEqual(token1.address, token2.address); + }); + it('should deploy VAnchorEncodeInput library to the same address using same handler', async () => { + const salt = '667'; + const saltHex = ethers.utils.id(salt); + const { contract: contract1 } = await deployer1.deploy( + VAnchorEncodeInputs__factory, + saltHex, + sender + ); + const { contract: contract2 } = await deployer2.deploy( + VAnchorEncodeInputs__factory, + saltHex, + ganacheWallet2 + ); + assert.strictEqual(contract1.address, contract2.address); + }); + it('should deploy poseidonHasher to the same address using different wallets', async () => { + const salt = '666'; + poseidonHasher1 = await PoseidonHasher.create2PoseidonHasher(deployer1, salt, sender); + poseidonHasher2 = await PoseidonHasher.create2PoseidonHasher(deployer2, salt, ganacheWallet2); + assert.strictEqual(poseidonHasher1.contract.address, poseidonHasher2.contract.address); + }); + }); + describe('#deploy VAnchor', () => { + let vanchorVerifier1: Verifier; + let vanchorVerifier2: Verifier; + + it('should deploy verifiers to the same address using different wallets', async () => { + assert.strictEqual(deployer1.address, deployer2.address); + const salt = '666'; + vanchorVerifier1 = await Verifier.create2Verifier(deployer1, salt, sender); + vanchorVerifier2 = await Verifier.create2Verifier(deployer2, salt, ganacheWallet2); + assert.strictEqual(vanchorVerifier1.contract.address, vanchorVerifier2.contract.address); + }); + it('should deploy VAnchor to the same address using different wallets (but same handler) ((note it needs previous test to have run))', async () => { + const salt = '666'; + const levels = 30; + const saltHex = ethers.utils.id(salt); + assert.strictEqual(vanchorVerifier1.contract.address, vanchorVerifier2.contract.address); + assert.strictEqual(poseidonHasher1.contract.address, poseidonHasher2.contract.address); + assert.strictEqual(token1.address, token2.address); + const vanchor1 = await VAnchor.create2VAnchor( + deployer1, + saltHex, + vanchorVerifier1.contract.address, + levels, + poseidonHasher1.contract.address, + sender.address, + token1.address, + 1, + undefined, + undefined, + sender + ); + const vanchor2 = await VAnchor.create2VAnchor( + deployer2, + saltHex, + vanchorVerifier2.contract.address, + levels, + poseidonHasher2.contract.address, + ganacheWallet1.address, + token2.address, + 1, + undefined, + undefined, + ganacheWallet2 + ); + assert.strictEqual(vanchor1.contract.address, vanchor2.contract.address); + }); + }); + describe('#deploy VAnchorForest', () => { + let forestVerifier1: ForestVerifier; + let forestVerifier2: ForestVerifier; + + it('should deploy verifiers to the same address using different wallets', async () => { + const salt = '666'; + forestVerifier1 = await ForestVerifier.create2Verifier(deployer1, salt, sender); + forestVerifier2 = await ForestVerifier.create2Verifier(deployer2, salt, ganacheWallet2); + assert.strictEqual(forestVerifier1.contract.address, forestVerifier2.contract.address); + }); + it('should deploy VAnchorForest to the same address using different wallets (but same handler) ((note it needs previous test to have run))', async () => { + const salt = '42'; + const subtreeLevels = 30; + const forestLevels = 5; + const saltHex = ethers.utils.id(salt); + assert.strictEqual(forestVerifier1.contract.address, forestVerifier2.contract.address); + assert.strictEqual(poseidonHasher1.contract.address, poseidonHasher2.contract.address); + assert.strictEqual(token1.address, token2.address); + const vanchor1 = await VAnchorForest.create2VAnchor( + deployer1, + saltHex, + forestVerifier1.contract.address, + forestLevels, + subtreeLevels, + poseidonHasher1.contract.address, + sender.address, + token1.address, + 1, + undefined, + undefined, + sender + ); + const vanchor2 = await VAnchorForest.create2VAnchor( + deployer2, + saltHex, + forestVerifier2.contract.address, + forestLevels, + subtreeLevels, + poseidonHasher2.contract.address, + ganacheWallet1.address, + token2.address, + 1, + undefined, + undefined, + ganacheWallet2 + ); + assert.strictEqual(vanchor1.contract.address, vanchor2.contract.address); + }); + }); + describe('#deploy IdentityVAnchor', () => { + let identityVerifier1: IdentityVerifier; + let identityVerifier2: IdentityVerifier; + let semaphore1: Semaphore; + let semaphore2: Semaphore; + + it('should deploy verifiers to the same address using different wallets', async () => { + const salt = '666'; + identityVerifier1 = await IdentityVerifier.create2Verifier(deployer1, salt, sender); + identityVerifier2 = await IdentityVerifier.create2Verifier(deployer2, salt, ganacheWallet2); + assert.strictEqual(identityVerifier1.contract.address, identityVerifier2.contract.address); + }); + it('should deploy Semaphore contract to the same address using different wallets', async () => { + const salt = '667'; + const saltHex = ethers.utils.id(salt); + const semaphoreLevels = 20; + + semaphore1 = await Semaphore.create2Semaphore( + deployer1, + saltHex, + semaphoreLevels, + undefined, + undefined, + sender + ); + semaphore2 = await Semaphore.create2Semaphore( + deployer2, + saltHex, + semaphoreLevels, + undefined, + undefined, + ganacheWallet2 + ); + assert.strictEqual(semaphore1.contract.address, semaphore2.contract.address); + }); + it('should deploy IdentityVAnchor to the same address using different wallets (but same handler) ((note it needs previous test to have run))', async () => { + const salt = '42'; + const semaphoreLevels = 20; + const maxEdges = 1; + const saltHex = ethers.utils.id(salt); + const groupId = BigNumber.from(99); // arbitrary + const defaultRoot = BigInt( + '21663839004416932945382355908790599225266501822907911457504978515578255421292' + ); + const group = new LinkedGroup(semaphoreLevels, maxEdges, BigInt(defaultRoot)); + const tx1 = await semaphore1.createGroup( + groupId.toNumber(), + semaphoreLevels, + sender.address, + maxEdges + ); + const tx2 = await semaphore2.createGroup( + groupId.toNumber(), + semaphoreLevels, + ganacheWallet2.address, + maxEdges + ); + assert.strictEqual(identityVerifier1.contract.address, identityVerifier2.contract.address); + assert.strictEqual(poseidonHasher1.contract.address, poseidonHasher2.contract.address); + assert.strictEqual(token1.address, token2.address); + // same as ganacheWallet1 + const handlerAddr = sender.address; + const vanchor1 = await IdentityVAnchor.create2IdentityVAnchor( + deployer1, + saltHex, + semaphore1, + identityVerifier1.contract.address, + semaphoreLevels, + poseidonHasher1.contract.address, + handlerAddr, + token1.address, + maxEdges, + groupId, + group, + undefined, + undefined, + sender + ); + const vanchor2 = await IdentityVAnchor.create2IdentityVAnchor( + deployer2, + saltHex, + semaphore2, + identityVerifier2.contract.address, + semaphoreLevels, + poseidonHasher2.contract.address, + handlerAddr, + token2.address, + maxEdges, + groupId, + group, + undefined, + undefined, + ganacheWallet2 + ); + assert.strictEqual(vanchor1.contract.address, vanchor2.contract.address); + }); + }); + after('terminate networks', async () => { + await ganacheServer2.close(); + }); +}); diff --git a/packages/contracts/test/identityVAnchor/identityVAnchor.test.ts b/packages/contracts/test/identityVAnchor/identityVAnchor.test.ts index 4fc857f5b..4d164221a 100644 --- a/packages/contracts/test/identityVAnchor/identityVAnchor.test.ts +++ b/packages/contracts/test/identityVAnchor/identityVAnchor.test.ts @@ -163,9 +163,9 @@ describe('IdentityVAnchor for 2 max edges', () => { await token.mint(bob.address, BigNumber.from(1e10).toString()); await token.mint(carl.address, BigNumber.from(1e10).toString()); // create Anchor - semaphore = await Semaphore.createSemaphore(levels, maxEdges, zkComponents2_2, sender); + semaphore = await Semaphore.createSemaphore(levels, zkComponents2_2, zkComponents2_2, sender); const groupId = BigNumber.from(99); // arbitrary - const tx = await semaphore.createGroup(groupId, levels, alice.address, maxEdges); + const tx = await semaphore.createGroup(groupId.toNumber(), levels, alice.address, maxEdges); let aliceLeaf = aliceKeypair.getPubKey(); group = new LinkedGroup(levels, maxEdges, BigInt(defaultRoot)); group.addMember(aliceLeaf); @@ -828,15 +828,34 @@ describe('IdentityVAnchor for 2 max edges', () => { } }); - const publicInputs = await idAnchor.setupTransaction( + const fullProof = await idAnchor.generateProof( aliceKeypair, identityRootInputs, identityMerkleProof, outSemaphoreProofs, - vanchorInput, - extDataHash.toString() + extDataHash.toString(), + vanchorInput + ); + const proof = await idAnchor.generateProofCalldata(fullProof); + const vKey = await snarkjs.zKey.exportVerificationKey(idAnchor.smallCircuitZkComponents.zkey); + const calldata = await snarkjs.groth16.exportSolidityCallData( + fullProof.proof, + fullProof.publicSignals + ); + + const publicInputs: IIdentityVariableAnchorPublicInputs = idAnchor.generatePublicInputs( + proof, + calldata ); + const is_valid: boolean = await snarkjs.groth16.verify( + vKey, + fullProof.publicSignals, + fullProof.proof + ); + expect(is_valid).equals(true); + // (is_valid, true); + const tx = idAnchor.contract.transact( publicInputs.proof, ZERO_BYTES32, @@ -942,15 +961,33 @@ describe('IdentityVAnchor for 2 max edges', () => { } }); - const publicInputs = await idAnchor.setupTransaction( + const fullProof = await idAnchor.generateProof( aliceKeypair, identityRootInputs, identityMerkleProof, outSemaphoreProofs, - vanchorInput, - extDataHash.toString() + extDataHash.toString(), + vanchorInput + ); + const proof = await idAnchor.generateProofCalldata(fullProof); + const vKey = await snarkjs.zKey.exportVerificationKey(idAnchor.smallCircuitZkComponents.zkey); + const calldata = await snarkjs.groth16.exportSolidityCallData( + fullProof.proof, + fullProof.publicSignals + ); + + const publicInputs: IIdentityVariableAnchorPublicInputs = idAnchor.generatePublicInputs( + proof, + calldata ); + const is_valid: boolean = await snarkjs.groth16.verify( + vKey, + fullProof.publicSignals, + fullProof.proof + ); + expect(is_valid).equals(true); + const tx = idAnchor.contract.transact( publicInputs.proof, ZERO_BYTES32, @@ -1066,14 +1103,28 @@ describe('IdentityVAnchor for 2 max edges', () => { } }); - publicInputs = await idAnchor.setupTransaction( + const fullProof = await idAnchor.generateProof( aliceKeypair, identityRootInputs, identityMerkleProof, outSemaphoreProofs, - vanchorInput, - aliceExtDataHash.toString() + aliceExtDataHash.toString(), + vanchorInput + ); + const proof = await idAnchor.generateProofCalldata(fullProof); + const vKey = await snarkjs.zKey.exportVerificationKey(idAnchor.smallCircuitZkComponents.zkey); + const calldata = await snarkjs.groth16.exportSolidityCallData( + fullProof.proof, + fullProof.publicSignals + ); + + publicInputs = idAnchor.generatePublicInputs(proof, calldata); + const is_valid: boolean = await snarkjs.groth16.verify( + vKey, + fullProof.publicSignals, + fullProof.proof ); + expect(is_valid).equals(true); }); it('should reject tampering with public amount', async () => { const invalidInputs = publicInputs; diff --git a/packages/contracts/test/vanchor/mocks/SetupTxVAnchorMock.ts b/packages/contracts/test/vanchor/mocks/SetupTxVAnchorMock.ts index 415b0016e..dc9d93a64 100644 --- a/packages/contracts/test/vanchor/mocks/SetupTxVAnchorMock.ts +++ b/packages/contracts/test/vanchor/mocks/SetupTxVAnchorMock.ts @@ -40,8 +40,7 @@ export class SetupTxVAnchorMock extends VAnchor { public async setupTransaction( inputs: Utxo[], - outputs: [Utxo, Utxo], - extAmount: BigNumberish, + outputs: Utxo[], fee: BigNumberish, refund: BigNumberish, recipient: string, @@ -50,6 +49,10 @@ export class SetupTxVAnchorMock extends VAnchor { leavesMap: Record ) { // first, check if the merkle root is known on chain - if not, then update + inputs = await this.padUtxos(inputs, 16); + outputs = await this.padUtxos(outputs, 2); + let extAmount = this.getExtAmount(inputs, outputs, fee); + const chainId = getChainIdType(await this.signer.getChainId()); // calculate the sum of input notes (for calculating the public amount) @@ -75,7 +78,7 @@ export class SetupTxVAnchorMock extends VAnchor { leafIds, roots: this.rootsForProof.map((root) => hexToU8a(root.toHexString())), chainId: chainId.toString(), - output: outputs, + output: [outputs[0], outputs[1]], encryptedCommitments, publicAmount: BigNumber.from(extAmount).sub(fee).add(FIELD_SIZE).mod(FIELD_SIZE).toString(), provingKey: @@ -122,6 +125,7 @@ export class SetupTxVAnchorMock extends VAnchor { }; return { + extAmount, extData, publicInputs, }; diff --git a/packages/contracts/test/vanchor/vanchor.test.ts b/packages/contracts/test/vanchor/vanchor.test.ts index 660f2148f..2b204ee1b 100644 --- a/packages/contracts/test/vanchor/vanchor.test.ts +++ b/packages/contracts/test/vanchor/vanchor.test.ts @@ -1155,14 +1155,9 @@ describe('VAnchor for 1 max edge', () => { }), ]; - let extAmount = BigNumber.from(0) - .add(outputs.reduce((sum, x) => sum.add(x.amount), BigNumber.from(0))) - .sub(inputs.reduce((sum, x) => sum.add(x.amount), BigNumber.from(0))); - const { publicInputs, extData } = await setupVAnchor.setupTransaction( inputs, outputs, - extAmount, 0, 0, recipient, @@ -1708,14 +1703,5 @@ describe('VAnchor for 1 max edge', () => { wrappedToken.setFee(wrapFee, (await wrappedToken.proposalNonce()).add(1)) ); }); - it.skip('should print/save benchmarks', async () => { - // Alice deposits into tornado pool - const gasBenchmark = await anchor.getGasBenchmark(); - const proofTimeBenchmark = await anchor.getProofTimeBenchmark(); - console.log('Gas benchmark:\n', gasBenchmark); - console.log('Proof time benchmark:\n', proofTimeBenchmark); - writeFileSync('./metrics/gas-metrics.json', JSON.stringify(gasBenchmark)); - writeFileSync('./metrics/proof-time-metrics.json', JSON.stringify(proofTimeBenchmark)); - }); }); }); diff --git a/packages/contracts/test/vbridge/signatureVBridge.test.ts b/packages/contracts/test/vbridge/signatureVBridge.test.ts index ab7074457..7eaa08056 100644 --- a/packages/contracts/test/vbridge/signatureVBridge.test.ts +++ b/packages/contracts/test/vbridge/signatureVBridge.test.ts @@ -21,7 +21,7 @@ const path = require('path'); export const sleep = (ms: number) => new Promise((r) => setTimeout(r, ms)); -describe('2-sided multichain tests for signature vbridge', () => { +describe.skip('2-sided multichain tests for signature vbridge', () => { const FIRST_CHAIN_ID = 31337; let hardhatWallet1 = new ethers.Wallet(HARDHAT_PK_1, ethers.provider); @@ -296,7 +296,6 @@ describe('2-sided multichain tests for signature vbridge', () => { describe('#bridging', () => { it('basic ganache deposit should withdraw on hardhat', async () => { // Fetch information about the anchor to be updated. - console.log('init') const signers = await ethers.getSigners(); const vAnchor1: VAnchor = vBridge.getVAnchor(chainID1)! as VAnchor; @@ -305,7 +304,6 @@ describe('2-sided multichain tests for signature vbridge', () => { const webbTokenAddress1 = vBridge.getWebbTokenAddress(chainID1); const webbToken1 = await MintableToken.tokenFromAddress(webbTokenAddress1!, signers[1]); const signers2BalanceBefore = await webbToken1.getBalance(await signers[2].getAddress()); - console.log('start generating utxos') //ganacheWallet2 makes a deposit with dest chain chainID1 const ganacheDepositUtxo = await CircomUtxo.generateUtxo({ @@ -333,7 +331,6 @@ describe('2-sided multichain tests for signature vbridge', () => { originChainId: chainID1.toString(), chainId: chainID1.toString(), }); - console.log("before transact") await vBridge.transact( [ganacheDepositUtxo], [hardhatWithdrawUtxo], @@ -777,16 +774,6 @@ describe('2-sided multichain tests for signature vbridge', () => { const signers = await ethers.getSigners(); const webbTokenAddress = vBridge.getWebbTokenAddress(chainID1); const webbToken = await MintableToken.tokenFromAddress(webbTokenAddress!, signers[1]); - console.log('after transact signer balance token: ', await webbToken.getBalance(await signers[1].getAddress())) - console.log('before transact signer balance eth: ', await ethers.provider.getBalance(await signers[1].getAddress())) - const vAnchor1: VAnchor = vBridge.getVAnchor(chainID1)! as VAnchor; - const vAnchor1Address = vAnchor1.contract.address; - console.log('after transact vanchor1 balance token: ', await webbToken.getBalance(vAnchor1Address)) - console.log('before transact vanchor1 balance eth: ', await ethers.provider.getBalance(vAnchor1Address)) - const vAnchor2: VAnchor = vBridge.getVAnchor(chainID2)! as VAnchor; - const vAnchor2Address = vAnchor2.contract.address; - console.log('after transact vanchor2 balance token: ', await webbToken.getBalance(vAnchor2Address)) - console.log('before transact vanchor2 balance eth: ', await ethers.provider.getBalance(vAnchor2Address)) //Deposit UTXO const hardhatDepositUtxo1 = await CircomUtxo.generateUtxo({ curve: 'Bn254', @@ -795,7 +782,6 @@ describe('2-sided multichain tests for signature vbridge', () => { originChainId: chainID1.toString(), chainId: chainID2.toString(), }); - const b4EthBalance = await ethers.provider.getBalance(await signers[1].getAddress()) await vBridge.transact( [], @@ -807,25 +793,12 @@ describe('2-sided multichain tests for signature vbridge', () => { '0x0000000000000000000000000000000000000000', signers[1] ); - // const afterEthBalance = await ethers.provider.getBalance(await signers[1].getAddress()) - // console.log('after transact signer balance token: ', await webbToken.getBalance(await signers[1].getAddress())) - // console.log('after transact signer balance eth: ', await ethers.provider.getBalance(await signers[1].getAddress())) - // console.log('after transact vanchor1 balance token: ', await webbToken.getBalance(vAnchor1Address)) - // console.log('after transact vanchor1 balance eth: ', await ethers.provider.getBalance(vAnchor1Address)) - // console.log('after transact vanchor2 balance token: ', await webbToken.getBalance(vAnchor2Address)) - // console.log('after transact vanchor2 balance eth: ', await ethers.provider.getBalance(vAnchor2Address)) - // console.log('delta eth: ', b4EthBalance.sub(afterEthBalance)) - // console.log('delta eth magnitude: ', b4EthBalance.sub(afterEthBalance).toString().length) - // console.log('deposit size: ', (2.5e7).toString()) - // console.log('delta eth - depositsize: ', b4EthBalance.sub(afterEthBalance).sub(2.5e7)) - // assert(false) }); it('wrap and deposit, withdraw and unwrap works join split via transact and wrap', async () => { const signers = await ethers.getSigners(); const vAnchor1: VAnchor = vBridge.getVAnchor(chainID1)! as VAnchor; - const vAnchor1Address = vAnchor1.contract.address; const vAnchor2: VAnchor = vBridge.getVAnchor(chainID2)! as VAnchor; const vAnchor2Address = vAnchor2.contract.address; const webbTokenAddress1 = vBridge.getWebbTokenAddress(chainID1); @@ -848,10 +821,6 @@ describe('2-sided multichain tests for signature vbridge', () => { }); const webbTokenAddress2 = vBridge.getWebbTokenAddress(chainID2); const webbToken2 = await MintableToken.tokenFromAddress(webbTokenAddress2!, ganacheWallet2); - console.log('before transact balance token1: ', await webbToken1.getBalance(vAnchor2Address)) - console.log('before transact balance token2: ', await webbToken2.getBalance(vAnchor2Address)) - const b4EthBalance = await ethers.provider.getBalance(vAnchor2Address) - console.log('before transact balance eth: ', b4EthBalance) await vBridge.transact( [], [ganacheDepositUtxo1, ganacheDepositUtxo2], @@ -860,29 +829,13 @@ describe('2-sided multichain tests for signature vbridge', () => { '0', '0', existingToken2.contract.address, - ganacheWallet2, + ganacheWallet2 ); - console.log('b4 first assert') - const afterEthBalance = await ethers.provider.getBalance(vAnchor2Address) - console.log('after transact signer balance token1: ', await webbToken1.getBalance(await signers[1].getAddress())) - console.log('after transact signer balance token2: ', await webbToken2.getBalance(await signers[1].getAddress())) - console.log('after transact signer balance eth: ', await ethers.provider.getBalance(await signers[1].getAddress())) - console.log('after transact vanchor1 balance token1: ', await webbToken1.getBalance(vAnchor1Address)) - console.log('after transact vanchor1 balance token2: ', await webbToken2.getBalance(vAnchor1Address)) - console.log('after transact vanchor1 balance eth: ', await ethers.provider.getBalance(vAnchor1Address)) - console.log('after transact vanchor2 balance token1: ', await webbToken1.getBalance(vAnchor2Address)) - console.log('after transact vanchor2 balance token2: ', await webbToken2.getBalance(vAnchor2Address)) - console.log('after transact vanchor2 balance eth: ', await ethers.provider.getBalance(vAnchor2Address)) - console.log('delta eth: ', b4EthBalance.sub(afterEthBalance)) - console.log('delta eth magnitude: ', b4EthBalance.sub(afterEthBalance).toString().length) - console.log('deposit size: ', (2.5e7).toString()) - console.log('delta eth - depositsize: ', b4EthBalance.sub(afterEthBalance).sub(2.5e7)) assert.strictEqual( (await webbToken2.getBalance(vAnchor2Address)).toString(), BigNumber.from(6e7).toString() ); - console.log('after first assert') // Withdraw UTXO const vAnchor1TokenAddr = await vAnchor1.contract.token(); @@ -890,7 +843,6 @@ describe('2-sided multichain tests for signature vbridge', () => { const balWrapper1UnwrappedBefore = await existingToken1.contract.balanceOf( vAnchor1TokenAddr ); - console.log('balWrapper1UnwrappedBefore: ', balWrapper1UnwrappedBefore.toString()) const hardhatWithdrawUtxo = await CircomUtxo.generateUtxo({ curve: 'Bn254', backend: 'Circom', @@ -913,19 +865,15 @@ describe('2-sided multichain tests for signature vbridge', () => { const balSigners2Unwrapped = await existingToken1.contract.balanceOf( await signers[2].getAddress() ); - console.log('b4 second assert') assert.strictEqual(balSigners2Unwrapped.toString(), BigNumber.from(4e7).toString()); - console.log('after second assert') //Unwrapped balance of vanchor1tokenaddr should be const balWrapper1UnwrappedAfter = await existingToken1.contract.balanceOf( vAnchor1TokenAddr ); - console.log('b4 third assert') assert.strictEqual( balWrapper1UnwrappedBefore.sub(BigNumber.from(4e7)).toString(), balWrapper1UnwrappedAfter.toString() ); - console.log('after forth assert') //wrapped balance of vanchor1 should be 1e7 const balVAnchor1Wrapped = await webbToken1.getBalance(vAnchor1.contract.address); assert.strictEqual(balVAnchor1Wrapped.toString(), BigNumber.from(1e7).toString()); @@ -972,7 +920,7 @@ describe('2-sided multichain tests for signature vbridge', () => { '0', '0', existingToken2.contract.address, - ganacheWallet2, + ganacheWallet2 ); await vBridge.transact( @@ -983,7 +931,7 @@ describe('2-sided multichain tests for signature vbridge', () => { '0', '0', existingToken2.contract.address, - ganacheWallet2, + ganacheWallet2 ); await vBridge.transact( @@ -994,7 +942,7 @@ describe('2-sided multichain tests for signature vbridge', () => { '0', '0', existingToken2.contract.address, - ganacheWallet2, + ganacheWallet2 ); const webbTokenAddress2 = vBridge.getWebbTokenAddress(chainID2); @@ -1243,7 +1191,6 @@ describe('8-sided multichain tests for signature vbridge', () => { describe('#bridging', () => { it('basic ganache deposit should withdraw on hardhat', async () => { // Fetch information about the anchor to be updated. - console.log('init') const signers = await ethers.getSigners(); const vAnchor1: VAnchor = vBridge.getVAnchor(chainID1)! as VAnchor; @@ -1252,7 +1199,6 @@ describe('8-sided multichain tests for signature vbridge', () => { const webbTokenAddress1 = vBridge.getWebbTokenAddress(chainID1); const webbToken1 = await MintableToken.tokenFromAddress(webbTokenAddress1!, signers[1]); const signers2BalanceBefore = await webbToken1.getBalance(await signers[2].getAddress()); - console.log('start generating utxos') //ganacheWallet2 makes a deposit with dest chain chainID1 const ganacheDepositUtxo = await CircomUtxo.generateUtxo({ diff --git a/packages/vbridge/src/Verifier.ts b/packages/vbridge/src/Verifier.ts index 81582d5b6..8c3e2d161 100644 --- a/packages/vbridge/src/Verifier.ts +++ b/packages/vbridge/src/Verifier.ts @@ -1,4 +1,4 @@ -import { ethers } from 'ethers'; +import { ethers, Signer, ContractFactory } from 'ethers'; import { VAnchorVerifier__factory, @@ -8,6 +8,7 @@ import { Verifier216__factory, Verifier816__factory, VAnchorVerifier as VerifierContract, + DeterministicDeployFactory as DeterministicDeployFactoryContract, VerifierID22__factory, VerifierID82__factory, VerifierID216__factory, @@ -17,112 +18,243 @@ import { VerifierF216__factory, VerifierF816__factory, } from '@webb-tools/contracts'; +import { Deployer } from '@webb-tools/anchors'; -// This convenience wrapper class is used in tests - -// It represents a deployed contract throughout its life (e.g. maintains all verifiers) -export class Verifier { +// type V22Factory = Verifier22__factory | VerifierID22__factory | VerifierF22__factory +// type V82Factory = Verifier82__factory | VerifierID82__factory | VerifierF82__factory +// type V216Factory = Verifier216__factory | VerifierID216__factory | VerifierF216__factory +// type V816Factory = Verifier816__factory | VerifierID816__factory | VerifierF816__factory + +export class VerifierBase { signer: ethers.Signer; contract: VerifierContract; - private constructor(contract: VerifierContract, signer: ethers.Signer) { + public constructor(contract: VerifierContract, signer: ethers.Signer) { this.signer = signer; this.contract = contract; } - - // Deploys a Verifier contract and all auxiliary verifiers used by this verifier - public static async createVerifier(signer: ethers.Signer) { - const v22Factory = new Verifier22__factory(signer); + public static async createFactories( + v22__factory: any, + v82__factory: any, + v216__factory: any, + v816__factory: any, + signer: Signer + ): Promise<{ v22; v82; v216; v816 }> { + const v22Factory = new v22__factory(signer); const v22 = await v22Factory.deploy(); await v22.deployed(); - const v82Factory = new Verifier82__factory(signer); + const v82Factory = new v82__factory(signer); const v82 = await v82Factory.deploy(); await v82.deployed(); - const v216Factory = new Verifier216__factory(signer); + const v216Factory = new v216__factory(signer); const v216 = await v216Factory.deploy(); await v216.deployed(); - const v816Factory = new Verifier816__factory(signer); + const v816Factory = new v816__factory(signer); const v816 = await v816Factory.deploy(); await v816.deployed(); + return { v22, v82, v216, v816 }; + } + + public static async create2Verifiers( + deployer: Deployer, + saltHex: string, + v22__factory: any, + v82__factory: any, + v216__factory: any, + v816__factory: any, + signer: Signer + ): Promise<{ v22; v82; v216; v816 }> { + const { contract: v22 } = await deployer.deploy(v22__factory, saltHex, signer); + const { contract: v82 } = await deployer.deploy(v82__factory, saltHex, signer); + const { contract: v216 } = await deployer.deploy(v216__factory, saltHex, signer); + const { contract: v816 } = await deployer.deploy(v816__factory, saltHex, signer); - const factory = new VAnchorVerifier__factory(signer); + return { v22, v82, v216, v816 }; + } + public static async create2VAnchorVerifier( + deployer: Deployer, + saltHex: string, + verifier__factory: any, + signer: Signer, + { v22, v82, v216, v816 } + ): Promise { + const argTypes = ['address', 'address', 'address', 'address']; + const args = [v22.address, v216.address, v82.address, v816.address]; + + const { contract: verifier } = await deployer.deploy( + verifier__factory, + saltHex, + signer, + undefined, + argTypes, + args + ); + return verifier; + } + public static async createVAnchorVerifier( + vanchorVerifier__factory: any, + signer: Signer, + { v22, v82, v216, v816 } + ) { + const factory = new vanchorVerifier__factory(signer); const verifier = await factory.deploy(v22.address, v216.address, v82.address, v816.address); await verifier.deployed(); - const createdVerifier = new Verifier(verifier, signer); - return createdVerifier; + return verifier; } } // This convenience wrapper class is used in tests - // It represents a deployed contract throughout its life (e.g. maintains all verifiers) -export class IdentityVerifier { +export class Verifier extends VerifierBase { signer: ethers.Signer; contract: VerifierContract; private constructor(contract: VerifierContract, signer: ethers.Signer) { + super(contract, signer); this.signer = signer; this.contract = contract; } + public static async create2Verifier(deployer: Deployer, salt: string, signer: ethers.Signer) { + const saltHex = ethers.utils.id(salt); + const verifiers = await this.create2Verifiers( + deployer, + saltHex, + Verifier22__factory, + Verifier82__factory, + Verifier216__factory, + Verifier816__factory, + signer + ); + + const verifier = await this.create2VAnchorVerifier( + deployer, + saltHex, + VAnchorVerifier__factory, + signer, + verifiers + ); + const createdVerifier = new Verifier(verifier, signer); + return createdVerifier; + } // Deploys a Verifier contract and all auxiliary verifiers used by this verifier public static async createVerifier(signer: ethers.Signer) { - const v22Factory = new VerifierID22__factory(signer); - const v22 = await v22Factory.deploy(); - await v22.deployed(); + const verifiers = await this.createFactories( + Verifier22__factory, + Verifier82__factory, + Verifier216__factory, + Verifier816__factory, + signer + ); - const v82Factory = new VerifierID82__factory(signer); - const v82 = await v82Factory.deploy(); - await v82.deployed(); + const verifier = await this.createVAnchorVerifier(VAnchorVerifier__factory, signer, verifiers); + const createdVerifier = new Verifier(verifier, signer); + return createdVerifier; + } +} - const v216Factory = new VerifierID216__factory(signer); - const v216 = await v216Factory.deploy(); - await v216.deployed(); +// This convenience wrapper class is used in tests - +// It represents a deployed contract throughout its life (e.g. maintains all verifiers) +export class IdentityVerifier extends VerifierBase { + signer: ethers.Signer; + contract: VerifierContract; - const v816Factory = new VerifierID816__factory(signer); - const v816 = await v816Factory.deploy(); - await v816.deployed(); + private constructor(contract: VerifierContract, signer: ethers.Signer) { + super(contract, signer); + this.signer = signer; + this.contract = contract; + } + public static async create2Verifier(deployer: Deployer, salt: string, signer: ethers.Signer) { + const saltHex = ethers.utils.id(salt); + const verifiers = await this.create2Verifiers( + deployer, + saltHex, + VerifierID22__factory, + VerifierID82__factory, + VerifierID216__factory, + VerifierID816__factory, + signer + ); - const factory = new IdentityVAnchorVerifier__factory(signer); - const verifier = await factory.deploy(v22.address, v216.address, v82.address, v816.address); - await verifier.deployed(); + const verifier = await this.create2VAnchorVerifier( + deployer, + saltHex, + IdentityVAnchorVerifier__factory, + signer, + verifiers + ); + const createdVerifier = new IdentityVerifier(verifier, signer); + return createdVerifier; + } + + // Deploys a Verifier contract and all auxiliary verifiers used by this verifier + public static async createVerifier(signer: ethers.Signer) { + const verifiers = await this.createFactories( + VerifierID22__factory, + VerifierID82__factory, + VerifierID216__factory, + VerifierID816__factory, + signer + ); + + const verifier = await this.createVAnchorVerifier( + IdentityVAnchorVerifier__factory, + signer, + verifiers + ); const createdVerifier = new IdentityVerifier(verifier, signer); return createdVerifier; } } // This convenience wrapper class is used in tests - // It represents a deployed contract throughout its life (e.g. maintains all verifiers) -export class ForestVerifier { +export class ForestVerifier extends VerifierBase { signer: ethers.Signer; contract: VerifierContract; private constructor(contract: VerifierContract, signer: ethers.Signer) { + super(contract, signer); this.signer = signer; this.contract = contract; } - // Deploys a Verifier contract and all auxiliary verifiers used by this verifier - public static async createVerifier(signer: ethers.Signer) { - const v22Factory = new VerifierF22__factory(signer); - const v22 = await v22Factory.deploy(); - await v22.deployed(); - - const v82Factory = new VerifierF82__factory(signer); - const v82 = await v82Factory.deploy(); - await v82.deployed(); + public static async create2Verifier(deployer: Deployer, salt: string, signer: ethers.Signer) { + const saltHex = ethers.utils.id(salt); + const verifiers = await this.create2Verifiers( + deployer, + saltHex, + VerifierF22__factory, + VerifierF82__factory, + VerifierF216__factory, + VerifierF816__factory, + signer + ); - const v216Factory = new VerifierF216__factory(signer); - const v216 = await v216Factory.deploy(); - await v216.deployed(); + const verifier = await this.create2VAnchorVerifier( + deployer, + saltHex, + IdentityVAnchorVerifier__factory, + signer, + verifiers + ); + const createdVerifier = new ForestVerifier(verifier, signer); + return createdVerifier; + } - const v816Factory = new VerifierF816__factory(signer); - const v816 = await v816Factory.deploy(); - await v816.deployed(); + // Deploys a Verifier contract and all auxiliary verifiers used by this verifier + public static async createVerifier(signer: ethers.Signer) { + const verifiers = await this.createFactories( + VerifierF22__factory, + VerifierF82__factory, + VerifierF216__factory, + VerifierF816__factory, + signer + ); - const factory = new VAnchorVerifier__factory(signer); - const verifier = await factory.deploy(v22.address, v216.address, v82.address, v816.address); - await verifier.deployed(); + const verifier = await this.createVAnchorVerifier(VAnchorVerifier__factory, signer, verifiers); const createdVerifier = new ForestVerifier(verifier, signer); return createdVerifier; } diff --git a/yarn.lock b/yarn.lock index fc57c5540..4e5bfa3d5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -34,37 +34,37 @@ "@babel/highlight" "^7.18.6" "@babel/compat-data@^7.17.7", "@babel/compat-data@^7.20.0", "@babel/compat-data@^7.20.1": - version "7.20.1" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.20.1.tgz#f2e6ef7790d8c8dbf03d379502dcc246dcce0b30" - integrity sha512-EWZ4mE2diW3QALKvDMiXnbZpRvlj+nayZ112nK93SnhqOtpdsbVD4W+2tEoT3YNBAG9RBR0ISY758ZkOgsn6pQ== + version "7.20.5" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.20.5.tgz#86f172690b093373a933223b4745deeb6049e733" + integrity sha512-KZXo2t10+/jxmkhNXc7pZTqRvSOIvVv/+lJwHS+B2rErwOyjuVRh60yVpb7liQ1U5t7lLJ1bz+t8tSypUZdm0g== -"@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.18.13", "@babel/core@^7.20.2": - version "7.20.2" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.20.2.tgz#8dc9b1620a673f92d3624bd926dc49a52cf25b92" - integrity sha512-w7DbG8DtMrJcFOi4VrLm+8QM4az8Mo+PuLBKLp2zrYRCow8W/f9xiXm5sN53C8HksCyDQwCKha9JiDoIyPjT2g== +"@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.18.13", "@babel/core@^7.20.5": + version "7.20.5" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.20.5.tgz#45e2114dc6cd4ab167f81daf7820e8fa1250d113" + integrity sha512-UdOWmk4pNWTm/4DlPUl/Pt4Gz4rcEMb7CY0Y3eJl5Yz1vI8ZJGmHWaVE55LoxRjdpx0z259GE9U5STA9atUinQ== dependencies: "@ampproject/remapping" "^2.1.0" "@babel/code-frame" "^7.18.6" - "@babel/generator" "^7.20.2" + "@babel/generator" "^7.20.5" "@babel/helper-compilation-targets" "^7.20.0" "@babel/helper-module-transforms" "^7.20.2" - "@babel/helpers" "^7.20.1" - "@babel/parser" "^7.20.2" + "@babel/helpers" "^7.20.5" + "@babel/parser" "^7.20.5" "@babel/template" "^7.18.10" - "@babel/traverse" "^7.20.1" - "@babel/types" "^7.20.2" + "@babel/traverse" "^7.20.5" + "@babel/types" "^7.20.5" convert-source-map "^1.7.0" debug "^4.1.0" gensync "^1.0.0-beta.2" json5 "^2.2.1" semver "^6.3.0" -"@babel/generator@^7.20.1", "@babel/generator@^7.20.2", "@babel/generator@^7.7.2": - version "7.20.2" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.20.2.tgz#c2e89e22613a039285c1e7b749e2cd0b30b9a481" - integrity sha512-SD75PMIK6i9H8G/tfGvB4KKl4Nw6Ssos9nGgYwxbgyTP0iX/Z55DveoH86rmUB/YHTQQ+ZC0F7xxaY8l2OF44Q== +"@babel/generator@^7.20.5", "@babel/generator@^7.7.2": + version "7.20.5" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.20.5.tgz#cb25abee3178adf58d6814b68517c62bdbfdda95" + integrity sha512-jl7JY2Ykn9S0yj4DQP82sYvPU+T3g0HFcWTqDLqiuA9tGRNIj9VfbtXGAYTTkyNEnQk1jkMGOdYka8aG/lulCA== dependencies: - "@babel/types" "^7.20.2" + "@babel/types" "^7.20.5" "@jridgewell/gen-mapping" "^0.3.2" jsesc "^2.5.1" @@ -93,10 +93,10 @@ browserslist "^4.21.3" semver "^6.3.0" -"@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.20.2": - version "7.20.2" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.20.2.tgz#3c08a5b5417c7f07b5cf3dfb6dc79cbec682e8c2" - integrity sha512-k22GoYRAHPYr9I+Gvy2ZQlAe5mGy8BqWst2wRt8cwIufWTxrsVshhIBvYNqC80N0GSFWTsqRVexOtfzlgOEDvA== +"@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.20.2", "@babel/helper-create-class-features-plugin@^7.20.5": + version "7.20.5" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.20.5.tgz#327154eedfb12e977baa4ecc72e5806720a85a06" + integrity sha512-3RCdA/EmEaikrhayahwToF0fpweU/8o2p8vhc1c/1kftHOdTKuC65kik/TLc+qfbS8JKw4qqJbne4ovICDhmww== dependencies: "@babel/helper-annotate-as-pure" "^7.18.6" "@babel/helper-environment-visitor" "^7.18.9" @@ -106,13 +106,13 @@ "@babel/helper-replace-supers" "^7.19.1" "@babel/helper-split-export-declaration" "^7.18.6" -"@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.19.0": - version "7.19.0" - resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.19.0.tgz#7976aca61c0984202baca73d84e2337a5424a41b" - integrity sha512-htnV+mHX32DF81amCDrwIDr8nrp1PTm+3wfBN9/v8QJOLEioOCOG7qNyq0nHeFiWbT3Eb7gsPwEmV64UCQ1jzw== +"@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.20.5": + version "7.20.5" + resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.20.5.tgz#5ea79b59962a09ec2acf20a963a01ab4d076ccca" + integrity sha512-m68B1lkg3XDGX5yCvGO0kPx3v9WIYLnzjKfPcQiwntEQa5ZeRkPmo2X/ISJc8qxWGfwUr+kvZAeEzAwLec2r2w== dependencies: "@babel/helper-annotate-as-pure" "^7.18.6" - regexpu-core "^5.1.0" + regexpu-core "^5.2.1" "@babel/helper-define-polyfill-provider@^0.3.3": version "0.3.3" @@ -251,23 +251,23 @@ integrity sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw== "@babel/helper-wrap-function@^7.18.9": - version "7.19.0" - resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.19.0.tgz#89f18335cff1152373222f76a4b37799636ae8b1" - integrity sha512-txX8aN8CZyYGTwcLhlk87KRqncAzhh5TpQamZUa0/u3an36NtDpUP6bQgBCBcLeBs09R/OwQu3OjK0k/HwfNDg== + version "7.20.5" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.20.5.tgz#75e2d84d499a0ab3b31c33bcfe59d6b8a45f62e3" + integrity sha512-bYMxIWK5mh+TgXGVqAtnu5Yn1un+v8DDZtqyzKRLUzrh70Eal2O3aZ7aPYiMADO4uKlkzOiRiZ6GX5q3qxvW9Q== dependencies: "@babel/helper-function-name" "^7.19.0" "@babel/template" "^7.18.10" - "@babel/traverse" "^7.19.0" - "@babel/types" "^7.19.0" + "@babel/traverse" "^7.20.5" + "@babel/types" "^7.20.5" -"@babel/helpers@^7.20.1": - version "7.20.1" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.20.1.tgz#2ab7a0fcb0a03b5bf76629196ed63c2d7311f4c9" - integrity sha512-J77mUVaDTUJFZ5BpP6mMn6OIl3rEWymk2ZxDBQJUG3P+PbmyMcF3bYWvz0ma69Af1oobDqT/iAsvzhB58xhQUg== +"@babel/helpers@^7.20.5": + version "7.20.6" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.20.6.tgz#e64778046b70e04779dfbdf924e7ebb45992c763" + integrity sha512-Pf/OjgfgFRW5bApskEz5pvidpim7tEDPlFtKcNRXWmfHGn9IEI2W2flqRQXTFb7gIPTyK++N6rVHuwKut4XK6w== dependencies: "@babel/template" "^7.18.10" - "@babel/traverse" "^7.20.1" - "@babel/types" "^7.20.0" + "@babel/traverse" "^7.20.5" + "@babel/types" "^7.20.5" "@babel/highlight@^7.18.6": version "7.18.6" @@ -278,10 +278,10 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.0.0", "@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.18.10", "@babel/parser@^7.20.1", "@babel/parser@^7.20.2": - version "7.20.2" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.20.2.tgz#9aeb9b92f64412b5f81064d46f6a1ac0881337f4" - integrity sha512-afk318kh2uKbo7BEj2QtEi8HVCGrwHUffrYDy7dgVcSa2j9lY3LDjPzcyGdpX7xgm35aWqvciZJ4WKmdF/SxYg== +"@babel/parser@^7.0.0", "@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.18.10", "@babel/parser@^7.20.5": + version "7.20.5" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.20.5.tgz#7f3c7335fe417665d929f34ae5dceae4c04015e8" + integrity sha512-r27t/cy/m9uKLXQNWWebeCUHgnAZq0CpG1OwKRxzJMP1vpSU4bSIK2hq+/cp0bQxetkXx38n09rNu8jVkcK/zA== "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.18.6": version "7.18.6" @@ -411,13 +411,13 @@ "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-proposal-private-property-in-object@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.18.6.tgz#a64137b232f0aca3733a67eb1a144c192389c503" - integrity sha512-9Rysx7FOctvT5ouj5JODjAFAkgGoudQuLPamZb0v1TGLpapdNaftzifU8NTWQm0IRjqoYypdrSmyWgkocDQ8Dw== + version "7.20.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.20.5.tgz#309c7668f2263f1c711aa399b5a9a6291eef6135" + integrity sha512-Vq7b9dUA12ByzB4EjQTPo25sFhY+08pQDBSZRtUAkj7lb7jahaHR5igera16QZ+3my1nYR4dKsNdYj5IjPHilQ== dependencies: "@babel/helper-annotate-as-pure" "^7.18.6" - "@babel/helper-create-class-features-plugin" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-create-class-features-plugin" "^7.20.5" + "@babel/helper-plugin-utils" "^7.20.2" "@babel/plugin-syntax-private-property-in-object" "^7.14.5" "@babel/plugin-proposal-unicode-property-regex@^7.18.6", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": @@ -585,9 +585,9 @@ "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-transform-block-scoping@^7.20.2": - version "7.20.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.20.2.tgz#f59b1767e6385c663fd0bce655db6ca9c8b236ed" - integrity sha512-y5V15+04ry69OV2wULmwhEA6jwSWXO1TwAtIwiPXcvHcoOQUqpyMVd2bDsQJMW8AurjulIyUV8kDqtjSwHy1uQ== + version "7.20.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.20.5.tgz#401215f9dc13dc5262940e2e527c9536b3d7f237" + integrity sha512-WvpEIW9Cbj9ApF3yJCjIEEf1EiNJLtXagOrL5LNWEZOo3jv8pmPoYTSNJQvqej8OavVlgOoOPw6/htGZro6IkA== dependencies: "@babel/helper-plugin-utils" "^7.20.2" @@ -709,12 +709,12 @@ "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-transform-named-capturing-groups-regex@^7.19.1": - version "7.19.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.19.1.tgz#ec7455bab6cd8fb05c525a94876f435a48128888" - integrity sha512-oWk9l9WItWBQYS4FgXD4Uyy5kq898lvkXpXQxoJEY1RnvPk4R/Dvu2ebXU9q8lP+rlMwUQTFf2Ok6d78ODa0kw== + version "7.20.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.20.5.tgz#626298dd62ea51d452c3be58b285d23195ba69a8" + integrity sha512-mOW4tTzi5iTLnw+78iEq3gr8Aoq4WNRGpmSlrogqaiCBoR1HFhpU4JkpQFOHfeYx3ReVIFWOQJS4aZBRvuZ6mA== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.19.0" - "@babel/helper-plugin-utils" "^7.19.0" + "@babel/helper-create-regexp-features-plugin" "^7.20.5" + "@babel/helper-plugin-utils" "^7.20.2" "@babel/plugin-transform-new-target@^7.18.6": version "7.18.6" @@ -732,11 +732,11 @@ "@babel/helper-replace-supers" "^7.18.6" "@babel/plugin-transform-parameters@^7.20.1": - version "7.20.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.20.1.tgz#9a5aa370fdcce36f110455e9369db7afca0f9eeb" - integrity sha512-nDvKLrAvl+kf6BOy1UJ3MGwzzfTMgppxwiD2Jb4LO3xjYyZq30oQzDNJbCQpMdG9+j2IXHoiMrw5Cm/L6ZoxXQ== + version "7.20.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.20.5.tgz#f8f9186c681d10c3de7620c916156d893c8a019e" + integrity sha512-h7plkOmcndIUWXZFLgpbrh2+fXAi47zcUX7IrOQuZdLD0I0KvjJ6cvo3BEcAOsDOcZhVKGJqv07mkSqK0y2isQ== dependencies: - "@babel/helper-plugin-utils" "^7.19.0" + "@babel/helper-plugin-utils" "^7.20.2" "@babel/plugin-transform-property-literals@^7.18.6": version "7.18.6" @@ -778,13 +778,13 @@ "@babel/helper-annotate-as-pure" "^7.18.6" "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-regenerator@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.18.6.tgz#585c66cb84d4b4bf72519a34cfce761b8676ca73" - integrity sha512-poqRI2+qiSdeldcz4wTSTXBRryoq3Gc70ye7m7UD5Ww0nE29IXqMl6r7Nd15WBgRd74vloEMlShtH6CKxVzfmQ== +"@babel/plugin-transform-regenerator@^7.18.6", "@babel/plugin-transform-regenerator@^7.20.5": + version "7.20.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.20.5.tgz#57cda588c7ffb7f4f8483cc83bdcea02a907f04d" + integrity sha512-kW/oO7HPBtntbsahzQ0qSE3tFvkFwnbozz3NWFhLGqH75vLEg+sCGngLlhVkePlCs3Jv0dBBHDzCHxNiFAQKCQ== dependencies: - "@babel/helper-plugin-utils" "^7.18.6" - regenerator-transform "^0.15.0" + "@babel/helper-plugin-utils" "^7.20.2" + regenerator-transform "^0.15.1" "@babel/plugin-transform-reserved-words@^7.18.6": version "7.18.6" @@ -989,12 +989,12 @@ pirates "^4.0.5" source-map-support "^0.5.16" -"@babel/runtime@^7.18.9", "@babel/runtime@^7.19.0", "@babel/runtime@^7.19.4", "@babel/runtime@^7.20.1", "@babel/runtime@^7.4.4", "@babel/runtime@^7.8.4": - version "7.20.1" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.20.1.tgz#1148bb33ab252b165a06698fde7576092a78b4a9" - integrity sha512-mrzLkl6U9YLF8qpqI7TB82PESyEGjm/0Ly91jG575eVxMMlb8fYfOXFZIJ8XfLrJZQbm7dlKry2bJmXBUEkdFg== +"@babel/runtime@^7.18.9", "@babel/runtime@^7.19.0", "@babel/runtime@^7.20.6", "@babel/runtime@^7.4.4", "@babel/runtime@^7.8.4": + version "7.20.6" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.20.6.tgz#facf4879bfed9b5326326273a64220f099b0fce3" + integrity sha512-Q+8MqP7TiHMWzSfwiJwXCjyf4GYA4Dgw3emg/7xmwsdLJOZUp+nMqcOwOzzYheuM1rhDu8FSj2l0aoMygEuXuA== dependencies: - regenerator-runtime "^0.13.10" + regenerator-runtime "^0.13.11" "@babel/template@^7.18.10", "@babel/template@^7.3.3": version "7.18.10" @@ -1005,26 +1005,26 @@ "@babel/parser" "^7.18.10" "@babel/types" "^7.18.10" -"@babel/traverse@^7.19.0", "@babel/traverse@^7.19.1", "@babel/traverse@^7.20.1", "@babel/traverse@^7.7.2": - version "7.20.1" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.20.1.tgz#9b15ccbf882f6d107eeeecf263fbcdd208777ec8" - integrity sha512-d3tN8fkVJwFLkHkBN479SOsw4DMZnz8cdbL/gvuDuzy3TS6Nfw80HuQqhw1pITbIruHyh7d1fMA47kWzmcUEGA== +"@babel/traverse@^7.19.1", "@babel/traverse@^7.20.1", "@babel/traverse@^7.20.5", "@babel/traverse@^7.7.2": + version "7.20.5" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.20.5.tgz#78eb244bea8270fdda1ef9af22a5d5e5b7e57133" + integrity sha512-WM5ZNN3JITQIq9tFZaw1ojLU3WgWdtkxnhM1AegMS+PvHjkM5IXjmYEGY7yukz5XS4sJyEf2VzWjI8uAavhxBQ== dependencies: "@babel/code-frame" "^7.18.6" - "@babel/generator" "^7.20.1" + "@babel/generator" "^7.20.5" "@babel/helper-environment-visitor" "^7.18.9" "@babel/helper-function-name" "^7.19.0" "@babel/helper-hoist-variables" "^7.18.6" "@babel/helper-split-export-declaration" "^7.18.6" - "@babel/parser" "^7.20.1" - "@babel/types" "^7.20.0" + "@babel/parser" "^7.20.5" + "@babel/types" "^7.20.5" debug "^4.1.0" globals "^11.1.0" -"@babel/types@^7.0.0", "@babel/types@^7.18.10", "@babel/types@^7.18.6", "@babel/types@^7.18.9", "@babel/types@^7.19.0", "@babel/types@^7.20.0", "@babel/types@^7.20.2", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4": - version "7.20.2" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.20.2.tgz#67ac09266606190f496322dbaff360fdaa5e7842" - integrity sha512-FnnvsNWgZCr232sqtXggapvlkk/tuwR/qhGzcmxI0GXLCjmPYQPzio2FbdlWuY6y1sHFfQKk+rRbUZ9VStQMog== +"@babel/types@^7.0.0", "@babel/types@^7.18.10", "@babel/types@^7.18.6", "@babel/types@^7.18.9", "@babel/types@^7.19.0", "@babel/types@^7.20.0", "@babel/types@^7.20.2", "@babel/types@^7.20.5", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4": + version "7.20.5" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.20.5.tgz#e206ae370b5393d94dfd1d04cd687cace53efa84" + integrity sha512-c9fst/h2/dcF7H+MJKZ2T0KjEQ8hY/BNnDk/H3XY8C4Aw/eWQXWn/lWntHF9ooUBnGmEvbfGrTgLWc+um0YDUg== dependencies: "@babel/helper-string-parser" "^7.19.4" "@babel/helper-validator-identifier" "^7.19.1" @@ -1090,15 +1090,15 @@ resolved "https://registry.yarnpkg.com/@ensdomains/resolver/-/resolver-0.2.4.tgz#c10fe28bf5efbf49bff4666d909aed0265efbc89" integrity sha512-bvaTH34PMCbv6anRa9I/0zjLJgY4EuznbEMgbV77JBCQ9KNC46rzi0avuxpOfu+xDjPEtSFGqVEOr5GlUSGudA== -"@eslint/eslintrc@^1.3.3": - version "1.3.3" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.3.3.tgz#2b044ab39fdfa75b4688184f9e573ce3c5b0ff95" - integrity sha512-uj3pT6Mg+3t39fvLrj8iuCIJ38zKO9FpGtJ4BBJebJhEwjoT+KLVNCcHT5QC9NGRIEi7fZ0ZR8YRb884auB4Lg== +"@eslint/eslintrc@^1.4.0": + version "1.4.0" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.4.0.tgz#8ec64e0df3e7a1971ee1ff5158da87389f167a63" + integrity sha512-7yfvXy6MWLgWSFsLhz5yH3iQ52St8cdUY6FoGieKkRDVxuxmrNuUetIuu6cmjNWwniUHiWXjxCr5tTXDrbYS5A== dependencies: ajv "^6.12.4" debug "^4.3.2" espree "^9.4.0" - globals "^13.15.0" + globals "^13.19.0" ignore "^5.2.0" import-fresh "^3.2.1" js-yaml "^4.1.0" @@ -1158,6 +1158,14 @@ patch-package "^6.2.2" postinstall-postinstall "^2.1.0" +"@ethereumjs/common@2.5.0": + version "2.5.0" + resolved "https://registry.yarnpkg.com/@ethereumjs/common/-/common-2.5.0.tgz#ec61551b31bef7a69d1dc634d8932468866a4268" + integrity sha512-DEHjW6e38o+JmB/NO3GZBpW4lpaiBpkFgXF6jLcJ6gETBYpEyaA5nTimsWBUJR3Vmtm/didUEbNjajskugZORg== + dependencies: + crc-32 "^1.2.0" + ethereumjs-util "^7.1.1" + "@ethereumjs/common@^2.5.0", "@ethereumjs/common@^2.6.4": version "2.6.5" resolved "https://registry.yarnpkg.com/@ethereumjs/common/-/common-2.6.5.tgz#0a75a22a046272579d91919cb12d84f2756e8d30" @@ -1166,6 +1174,14 @@ crc-32 "^1.2.0" ethereumjs-util "^7.1.5" +"@ethereumjs/tx@3.3.2": + version "3.3.2" + resolved "https://registry.yarnpkg.com/@ethereumjs/tx/-/tx-3.3.2.tgz#348d4624bf248aaab6c44fec2ae67265efe3db00" + integrity sha512-6AaJhwg4ucmwTvw/1qLaZUX5miWrwZ4nLOUsKyb/HtzS3BMw/CasKhdi1ims9mBKeK9sOJCH4qGKOBGyJCeeog== + dependencies: + "@ethereumjs/common" "^2.5.0" + ethereumjs-util "^7.1.2" + "@ethereumjs/tx@^3.3.2": version "3.5.2" resolved "https://registry.yarnpkg.com/@ethereumjs/tx/-/tx-3.5.2.tgz#197b9b6299582ad84f9527ca961466fce2296c1c" @@ -1580,10 +1596,10 @@ resolved "https://registry.yarnpkg.com/@gar/promisify/-/promisify-1.1.3.tgz#555193ab2e3bb3b6adc3d551c9c030d9e860daf6" integrity sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw== -"@humanwhocodes/config-array@^0.11.6": - version "0.11.7" - resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.7.tgz#38aec044c6c828f6ed51d5d7ae3d9b9faf6dbb0f" - integrity sha512-kBbPWzN8oVMLb0hOUYXhmxggL/1cJE6ydvjDIGi9EnAGUyA7cLVKQg+d/Dsm+KZwx2czGHrCmMVLiyg8s5JPKw== +"@humanwhocodes/config-array@^0.11.8": + version "0.11.8" + resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.8.tgz#03595ac2075a4dc0f191cc2131de14fbd7d410b9" + integrity sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g== dependencies: "@humanwhocodes/object-schema" "^1.2.1" debug "^4.1.1" @@ -1638,28 +1654,28 @@ resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== -"@jest/console@^29.2.1": - version "29.2.1" - resolved "https://registry.yarnpkg.com/@jest/console/-/console-29.2.1.tgz#5f2c62dcdd5ce66e94b6d6729e021758bceea090" - integrity sha512-MF8Adcw+WPLZGBiNxn76DOuczG3BhODTcMlDCA4+cFi41OkaY/lyI0XUUhi73F88Y+7IHoGmD80pN5CtxQUdSw== +"@jest/console@^29.3.1": + version "29.3.1" + resolved "https://registry.yarnpkg.com/@jest/console/-/console-29.3.1.tgz#3e3f876e4e47616ea3b1464b9fbda981872e9583" + integrity sha512-IRE6GD47KwcqA09RIWrabKdHPiKDGgtAL31xDxbi/RjQMsr+lY+ppxmHwY0dUEV3qvvxZzoe5Hl0RXZJOjQNUg== dependencies: - "@jest/types" "^29.2.1" + "@jest/types" "^29.3.1" "@types/node" "*" chalk "^4.0.0" - jest-message-util "^29.2.1" - jest-util "^29.2.1" + jest-message-util "^29.3.1" + jest-util "^29.3.1" slash "^3.0.0" -"@jest/core@^29.2.2": - version "29.2.2" - resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.2.2.tgz#207aa8973d9de8769f9518732bc5f781efc3ffa7" - integrity sha512-susVl8o2KYLcZhhkvSB+b7xX575CX3TmSvxfeDjpRko7KmT89rHkXj6XkDkNpSeFMBzIENw5qIchO9HC9Sem+A== +"@jest/core@^29.3.1": + version "29.3.1" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.3.1.tgz#bff00f413ff0128f4debec1099ba7dcd649774a1" + integrity sha512-0ohVjjRex985w5MmO5L3u5GR1O30DexhBSpuwx2P+9ftyqHdJXnk7IUWiP80oHMvt7ubHCJHxV0a0vlKVuZirw== dependencies: - "@jest/console" "^29.2.1" - "@jest/reporters" "^29.2.2" - "@jest/test-result" "^29.2.1" - "@jest/transform" "^29.2.2" - "@jest/types" "^29.2.1" + "@jest/console" "^29.3.1" + "@jest/reporters" "^29.3.1" + "@jest/test-result" "^29.3.1" + "@jest/transform" "^29.3.1" + "@jest/types" "^29.3.1" "@types/node" "*" ansi-escapes "^4.2.1" chalk "^4.0.0" @@ -1667,80 +1683,80 @@ exit "^0.1.2" graceful-fs "^4.2.9" jest-changed-files "^29.2.0" - jest-config "^29.2.2" - jest-haste-map "^29.2.1" - jest-message-util "^29.2.1" + jest-config "^29.3.1" + jest-haste-map "^29.3.1" + jest-message-util "^29.3.1" jest-regex-util "^29.2.0" - jest-resolve "^29.2.2" - jest-resolve-dependencies "^29.2.2" - jest-runner "^29.2.2" - jest-runtime "^29.2.2" - jest-snapshot "^29.2.2" - jest-util "^29.2.1" - jest-validate "^29.2.2" - jest-watcher "^29.2.2" + jest-resolve "^29.3.1" + jest-resolve-dependencies "^29.3.1" + jest-runner "^29.3.1" + jest-runtime "^29.3.1" + jest-snapshot "^29.3.1" + jest-util "^29.3.1" + jest-validate "^29.3.1" + jest-watcher "^29.3.1" micromatch "^4.0.4" - pretty-format "^29.2.1" + pretty-format "^29.3.1" slash "^3.0.0" strip-ansi "^6.0.0" -"@jest/environment@^29.2.2": - version "29.2.2" - resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.2.2.tgz#481e729048d42e87d04842c38aa4d09c507f53b0" - integrity sha512-OWn+Vhu0I1yxuGBJEFFekMYc8aGBGrY4rt47SOh/IFaI+D7ZHCk7pKRiSoZ2/Ml7b0Ony3ydmEHRx/tEOC7H1A== +"@jest/environment@^29.3.1": + version "29.3.1" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.3.1.tgz#eb039f726d5fcd14698acd072ac6576d41cfcaa6" + integrity sha512-pMmvfOPmoa1c1QpfFW0nXYtNLpofqo4BrCIk6f2kW4JFeNlHV2t3vd+3iDLf31e2ot2Mec0uqZfmI+U0K2CFag== dependencies: - "@jest/fake-timers" "^29.2.2" - "@jest/types" "^29.2.1" + "@jest/fake-timers" "^29.3.1" + "@jest/types" "^29.3.1" "@types/node" "*" - jest-mock "^29.2.2" + jest-mock "^29.3.1" -"@jest/expect-utils@^29.2.2": - version "29.2.2" - resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.2.2.tgz#460a5b5a3caf84d4feb2668677393dd66ff98665" - integrity sha512-vwnVmrVhTmGgQzyvcpze08br91OL61t9O0lJMDyb6Y/D8EKQ9V7rGUb/p7PDt0GPzK0zFYqXWFo4EO2legXmkg== +"@jest/expect-utils@^29.3.1": + version "29.3.1" + resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.3.1.tgz#531f737039e9b9e27c42449798acb5bba01935b6" + integrity sha512-wlrznINZI5sMjwvUoLVk617ll/UYfGIZNxmbU+Pa7wmkL4vYzhV9R2pwVqUh4NWWuLQWkI8+8mOkxs//prKQ3g== dependencies: jest-get-type "^29.2.0" -"@jest/expect@^29.2.2": - version "29.2.2" - resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-29.2.2.tgz#81edbd33afbde7795ca07ff6b4753d15205032e4" - integrity sha512-zwblIZnrIVt8z/SiEeJ7Q9wKKuB+/GS4yZe9zw7gMqfGf4C5hBLGrVyxu1SzDbVSqyMSlprKl3WL1r80cBNkgg== +"@jest/expect@^29.3.1": + version "29.3.1" + resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-29.3.1.tgz#456385b62894349c1d196f2d183e3716d4c6a6cd" + integrity sha512-QivM7GlSHSsIAWzgfyP8dgeExPRZ9BIe2LsdPyEhCGkZkoyA+kGsoIzbKAfZCvvRzfZioKwPtCZIt5SaoxYCvg== dependencies: - expect "^29.2.2" - jest-snapshot "^29.2.2" + expect "^29.3.1" + jest-snapshot "^29.3.1" -"@jest/fake-timers@^29.2.2": - version "29.2.2" - resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.2.2.tgz#d8332e6e3cfa99cde4bc87d04a17d6b699deb340" - integrity sha512-nqaW3y2aSyZDl7zQ7t1XogsxeavNpH6kkdq+EpXncIDvAkjvFD7hmhcIs1nWloengEWUoWqkqSA6MSbf9w6DgA== +"@jest/fake-timers@^29.3.1": + version "29.3.1" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.3.1.tgz#b140625095b60a44de820876d4c14da1aa963f67" + integrity sha512-iHTL/XpnDlFki9Tq0Q1GGuVeQ8BHZGIYsvCO5eN/O/oJaRzofG9Xndd9HuSDBI/0ZS79pg0iwn07OMTQ7ngF2A== dependencies: - "@jest/types" "^29.2.1" + "@jest/types" "^29.3.1" "@sinonjs/fake-timers" "^9.1.2" "@types/node" "*" - jest-message-util "^29.2.1" - jest-mock "^29.2.2" - jest-util "^29.2.1" + jest-message-util "^29.3.1" + jest-mock "^29.3.1" + jest-util "^29.3.1" -"@jest/globals@^29.2.2": - version "29.2.2" - resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.2.2.tgz#205ff1e795aa774301c2c0ba0be182558471b845" - integrity sha512-/nt+5YMh65kYcfBhj38B3Hm0Trk4IsuMXNDGKE/swp36yydBWfz3OXkLqkSvoAtPW8IJMSJDFCbTM2oj5SNprw== +"@jest/globals@^29.3.1": + version "29.3.1" + resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.3.1.tgz#92be078228e82d629df40c3656d45328f134a0c6" + integrity sha512-cTicd134vOcwO59OPaB6AmdHQMCtWOe+/DitpTZVxWgMJ+YvXL1HNAmPyiGbSHmF/mXVBkvlm8YYtQhyHPnV6Q== dependencies: - "@jest/environment" "^29.2.2" - "@jest/expect" "^29.2.2" - "@jest/types" "^29.2.1" - jest-mock "^29.2.2" + "@jest/environment" "^29.3.1" + "@jest/expect" "^29.3.1" + "@jest/types" "^29.3.1" + jest-mock "^29.3.1" -"@jest/reporters@^29.2.2": - version "29.2.2" - resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.2.2.tgz#69b395f79c3a97ce969ce05ccf1a482e5d6de290" - integrity sha512-AzjL2rl2zJC0njIzcooBvjA4sJjvdoq98sDuuNs4aNugtLPSQ+91nysGKRF0uY1to5k0MdGMdOBggUsPqvBcpA== +"@jest/reporters@^29.3.1": + version "29.3.1" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.3.1.tgz#9a6d78c109608e677c25ddb34f907b90e07b4310" + integrity sha512-GhBu3YFuDrcAYW/UESz1JphEAbvUjaY2vShRZRoRY1mxpCMB3yGSJ4j9n0GxVlEOdCf7qjvUfBCrTUUqhVfbRA== dependencies: "@bcoe/v8-coverage" "^0.2.3" - "@jest/console" "^29.2.1" - "@jest/test-result" "^29.2.1" - "@jest/transform" "^29.2.2" - "@jest/types" "^29.2.1" + "@jest/console" "^29.3.1" + "@jest/test-result" "^29.3.1" + "@jest/transform" "^29.3.1" + "@jest/types" "^29.3.1" "@jridgewell/trace-mapping" "^0.3.15" "@types/node" "*" chalk "^4.0.0" @@ -1753,9 +1769,9 @@ istanbul-lib-report "^3.0.0" istanbul-lib-source-maps "^4.0.0" istanbul-reports "^3.1.3" - jest-message-util "^29.2.1" - jest-util "^29.2.1" - jest-worker "^29.2.1" + jest-message-util "^29.3.1" + jest-util "^29.3.1" + jest-worker "^29.3.1" slash "^3.0.0" string-length "^4.0.1" strip-ansi "^6.0.0" @@ -1777,51 +1793,51 @@ callsites "^3.0.0" graceful-fs "^4.2.9" -"@jest/test-result@^29.2.1": - version "29.2.1" - resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-29.2.1.tgz#f42dbf7b9ae465d0a93eee6131473b8bb3bd2edb" - integrity sha512-lS4+H+VkhbX6z64tZP7PAUwPqhwj3kbuEHcaLuaBuB+riyaX7oa1txe0tXgrFj5hRWvZKvqO7LZDlNWeJ7VTPA== +"@jest/test-result@^29.3.1": + version "29.3.1" + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-29.3.1.tgz#92cd5099aa94be947560a24610aa76606de78f50" + integrity sha512-qeLa6qc0ddB0kuOZyZIhfN5q0e2htngokyTWsGriedsDhItisW7SDYZ7ceOe57Ii03sL988/03wAcBh3TChMGw== dependencies: - "@jest/console" "^29.2.1" - "@jest/types" "^29.2.1" + "@jest/console" "^29.3.1" + "@jest/types" "^29.3.1" "@types/istanbul-lib-coverage" "^2.0.0" collect-v8-coverage "^1.0.0" -"@jest/test-sequencer@^29.2.2": - version "29.2.2" - resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.2.2.tgz#4ac7487b237e517a1f55e7866fb5553f6e0168b9" - integrity sha512-Cuc1znc1pl4v9REgmmLf0jBd3Y65UXJpioGYtMr/JNpQEIGEzkmHhy6W6DLbSsXeUA13TDzymPv0ZGZ9jH3eIw== +"@jest/test-sequencer@^29.3.1": + version "29.3.1" + resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.3.1.tgz#fa24b3b050f7a59d48f7ef9e0b782ab65123090d" + integrity sha512-IqYvLbieTv20ArgKoAMyhLHNrVHJfzO6ARZAbQRlY4UGWfdDnLlZEF0BvKOMd77uIiIjSZRwq3Jb3Fa3I8+2UA== dependencies: - "@jest/test-result" "^29.2.1" + "@jest/test-result" "^29.3.1" graceful-fs "^4.2.9" - jest-haste-map "^29.2.1" + jest-haste-map "^29.3.1" slash "^3.0.0" -"@jest/transform@^29.2.2": - version "29.2.2" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.2.2.tgz#dfc03fc092b31ffea0c55917728e75bfcf8b5de6" - integrity sha512-aPe6rrletyuEIt2axxgdtxljmzH8O/nrov4byy6pDw9S8inIrTV+2PnjyP/oFHMSynzGxJ2s6OHowBNMXp/Jzg== +"@jest/transform@^29.3.1": + version "29.3.1" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.3.1.tgz#1e6bd3da4af50b5c82a539b7b1f3770568d6e36d" + integrity sha512-8wmCFBTVGYqFNLWfcOWoVuMuKYPUBTnTMDkdvFtAYELwDOl9RGwOsvQWGPFxDJ8AWY9xM/8xCXdqmPK3+Q5Lug== dependencies: "@babel/core" "^7.11.6" - "@jest/types" "^29.2.1" + "@jest/types" "^29.3.1" "@jridgewell/trace-mapping" "^0.3.15" babel-plugin-istanbul "^6.1.1" chalk "^4.0.0" - convert-source-map "^1.4.0" + convert-source-map "^2.0.0" fast-json-stable-stringify "^2.1.0" graceful-fs "^4.2.9" - jest-haste-map "^29.2.1" + jest-haste-map "^29.3.1" jest-regex-util "^29.2.0" - jest-util "^29.2.1" + jest-util "^29.3.1" micromatch "^4.0.4" pirates "^4.0.4" slash "^3.0.0" write-file-atomic "^4.0.1" -"@jest/types@^29.2.1": - version "29.2.1" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.2.1.tgz#ec9c683094d4eb754e41e2119d8bdaef01cf6da0" - integrity sha512-O/QNDQODLnINEPAI0cl9U6zUIDXEWXt6IC1o2N2QENuos7hlGUIthlKyV4p6ki3TvXFX071blj8HUhgLGquPjw== +"@jest/types@^29.3.1": + version "29.3.1" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.3.1.tgz#7c5a80777cb13e703aeec6788d044150341147e3" + integrity sha512-d0S0jmmTpjnhCmNpApgX3jrUZgZ22ivKJRvL2lli5hpCRoNnp1f85r2/wpKfXuYu8E7Jjh1hGfhPyup1NM5AmA== dependencies: "@jest/schemas" "^29.0.0" "@types/istanbul-lib-coverage" "^2.0.0" @@ -1865,7 +1881,7 @@ "@jridgewell/gen-mapping" "^0.3.0" "@jridgewell/trace-mapping" "^0.3.9" -"@jridgewell/sourcemap-codec@1.4.14", "@jridgewell/sourcemap-codec@^1.4.10": +"@jridgewell/sourcemap-codec@1.4.14", "@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.13": version "1.4.14" resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== @@ -2596,11 +2612,16 @@ resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.1.2.tgz#e9e035b9b166ca0af657a7848eb2718f0f22f183" integrity sha512-KYRCASVTv6aeUi1tsF8/vpyR7zpfs3FUzy2Jqm+MU+LmUKhQ0y2FpfwqkCcxSg2ua4GALJd8k2R76WxwZGbQpA== -"@noble/hashes@1.1.3", "@noble/hashes@~1.1.1": +"@noble/hashes@1.1.3": version "1.1.3" resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.1.3.tgz#360afc77610e0a61f3417e497dcf36862e4f8111" integrity sha512-CE0FCR57H2acVI5UOzIGSSIYxZ6v/HOhDR0Ro9VLyhnzLwx0o8W1mmgaqlEUx4049qJDlIBRztv5k+MM8vbO3A== +"@noble/hashes@~1.1.1": + version "1.1.5" + resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.1.5.tgz#1a0377f3b9020efe2fae03290bd2a12140c95c11" + integrity sha512-LTMZiiLc+V4v1Yi16TD6aX2gmtKszNye0pQgbaLqkvhIqP7nVsSaJsWloGQjJfJ8offaoP5GtX3yY5swbcJxxQ== + "@noble/secp256k1@1.6.3", "@noble/secp256k1@~1.6.0": version "1.6.3" resolved "https://registry.yarnpkg.com/@noble/secp256k1/-/secp256k1-1.6.3.tgz#7eed12d9f4404b416999d0c87686836c4c5c9b94" @@ -3018,17 +3039,17 @@ dependencies: nx "14.8.6" -"@nrwl/cli@15.0.10": - version "15.0.10" - resolved "https://registry.yarnpkg.com/@nrwl/cli/-/cli-15.0.10.tgz#3a968a9520e0b8cafdd9b07b92ca0f9de2b0f673" - integrity sha512-+HtEyrSMcaNq1SNhOanKXX3oFntC0mdd5UNIkw8qipSv/7cysBch+3RUwqvnqUFRZhJejCZgFRzUp7rAD7SZ2Q== +"@nrwl/cli@15.3.3": + version "15.3.3" + resolved "https://registry.yarnpkg.com/@nrwl/cli/-/cli-15.3.3.tgz#9d7f09e336c39ecc54155f21f394b0fc740054eb" + integrity sha512-ZWTmVP9H3ukppWWGaS/s3Nym2nOYgnt6eHtuUFNsroz8LesG5oFAJviOz9jDEM/b+pLIrvYfU5aAGZqrtM3Z2A== dependencies: - nx "15.0.10" + nx "15.3.3" "@nrwl/devkit@>=14.8.1 < 16": - version "15.0.10" - resolved "https://registry.yarnpkg.com/@nrwl/devkit/-/devkit-15.0.10.tgz#eff2a30af2076a58df15444b75e34fd6fe2faaa7" - integrity sha512-JPLB6kyC4L7e4D4LSWhZNrY0bCmlwyagn9ubuPPT/MWQ9LX7RWr/OL87IEHAp/kH93hYPNmwzkIXNpc30y4/GA== + version "15.3.3" + resolved "https://registry.yarnpkg.com/@nrwl/devkit/-/devkit-15.3.3.tgz#8a038334cf5b563befdad4b201e0b146dfd2969a" + integrity sha512-48R9HAp6r6umWNXTlVTMsH94YYjU/XUPLDTtXBgKESMVbdq8Fk+HDHuN0thXG5dL6DFkXgD0MICLm3jSQU6xMw== dependencies: "@phenomnomnominal/tsquery" "4.1.1" ejs "^3.1.7" @@ -3043,19 +3064,12 @@ dependencies: nx "14.8.6" -"@nrwl/tao@15.0.10": - version "15.0.10" - resolved "https://registry.yarnpkg.com/@nrwl/tao/-/tao-15.0.10.tgz#fda69d32bc2996c8d1ccc0d4e9fd4e8e8204df3c" - integrity sha512-8MTx+eNxJSH826IOC0LplvVR2fxFz0+VOOUORk2gq75+3jCxmW7uxcTM5WvzgtCw7lFJCvWVZASoGCVEIns6Fg== - dependencies: - nx "15.0.10" - -"@octokit/auth-token@^2.4.4": - version "2.5.0" - resolved "https://registry.yarnpkg.com/@octokit/auth-token/-/auth-token-2.5.0.tgz#27c37ea26c205f28443402477ffd261311f21e36" - integrity sha512-r5FVUJCOLl19AxiuZD2VRZ/ORjp/4IN98Of6YJoJOkY75CIBuYfmiNHGrDwXr+aLGG55igl9QrxX3hbiXlLb+g== +"@nrwl/tao@15.3.3": + version "15.3.3" + resolved "https://registry.yarnpkg.com/@nrwl/tao/-/tao-15.3.3.tgz#b54a4f28833d11f96f69796b6d2c1624123734e5" + integrity sha512-f9+VwhlJ/7TWpjHSgoUOAA067uP9DmzABMY9HC5OREEDaCx+rzYEvbLAPv6cXzWw+6IYM6cyKw0zWSQrdEVrWg== dependencies: - "@octokit/types" "^6.0.3" + nx "15.3.3" "@octokit/auth-token@^3.0.0": version "3.0.2" @@ -3064,19 +3078,6 @@ dependencies: "@octokit/types" "^8.0.0" -"@octokit/core@^3.5.1": - version "3.6.0" - resolved "https://registry.yarnpkg.com/@octokit/core/-/core-3.6.0.tgz#3376cb9f3008d9b3d110370d90e0a1fcd5fe6085" - integrity sha512-7RKRKuA4xTjMhY+eG3jthb3hlZCsOwg3rztWh75Xc+ShDWOfDDATWbeZpAHBNRpm4Tv9WgBMOy1zEJYXG6NJ7Q== - dependencies: - "@octokit/auth-token" "^2.4.4" - "@octokit/graphql" "^4.5.8" - "@octokit/request" "^5.6.3" - "@octokit/request-error" "^2.0.5" - "@octokit/types" "^6.0.3" - before-after-hook "^2.2.0" - universal-user-agent "^6.0.0" - "@octokit/core@^4.1.0": version "4.1.0" resolved "https://registry.yarnpkg.com/@octokit/core/-/core-4.1.0.tgz#b6b03a478f1716de92b3f4ec4fd64d05ba5a9251" @@ -3090,15 +3091,6 @@ before-after-hook "^2.2.0" universal-user-agent "^6.0.0" -"@octokit/endpoint@^6.0.1": - version "6.0.12" - resolved "https://registry.yarnpkg.com/@octokit/endpoint/-/endpoint-6.0.12.tgz#3b4d47a4b0e79b1027fb8d75d4221928b2d05658" - integrity sha512-lF3puPwkQWGfkMClXb4k/eUT/nZKQfxinRWJrdZaJO85Dqwo/G0yOC434Jr2ojwafWJMYqFGFa5ms4jJUgujdA== - dependencies: - "@octokit/types" "^6.0.3" - is-plain-object "^5.0.0" - universal-user-agent "^6.0.0" - "@octokit/endpoint@^7.0.0": version "7.0.3" resolved "https://registry.yarnpkg.com/@octokit/endpoint/-/endpoint-7.0.3.tgz#0b96035673a9e3bedf8bab8f7335de424a2147ed" @@ -3108,15 +3100,6 @@ is-plain-object "^5.0.0" universal-user-agent "^6.0.0" -"@octokit/graphql@^4.5.8": - version "4.8.0" - resolved "https://registry.yarnpkg.com/@octokit/graphql/-/graphql-4.8.0.tgz#664d9b11c0e12112cbf78e10f49a05959aa22cc3" - integrity sha512-0gv+qLSBLKF0z8TKaSKTsS39scVKF9dbMxJpj3U0vC7wjNWFuIpL/z76Qe2fiuCbDRcJSavkXsVtMS6/dtQQsg== - dependencies: - "@octokit/request" "^5.6.0" - "@octokit/types" "^6.0.3" - universal-user-agent "^6.0.0" - "@octokit/graphql@^5.0.0": version "5.0.4" resolved "https://registry.yarnpkg.com/@octokit/graphql/-/graphql-5.0.4.tgz#519dd5c05123868276f3ae4e50ad565ed7dff8c8" @@ -3126,11 +3109,6 @@ "@octokit/types" "^8.0.0" universal-user-agent "^6.0.0" -"@octokit/openapi-types@^12.11.0": - version "12.11.0" - resolved "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-12.11.0.tgz#da5638d64f2b919bca89ce6602d059f1b52d3ef0" - integrity sha512-VsXyi8peyRq9PqIz/tpqiL2w3w80OgVMwBHltTml3LmVvXiphgeqmY9mvBw9Wu7e0QWk/fqD37ux8yP5uVekyQ== - "@octokit/openapi-types@^14.0.0": version "14.0.0" resolved "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-14.0.0.tgz#949c5019028c93f189abbc2fb42f333290f7134a" @@ -3141,13 +3119,6 @@ resolved "https://registry.yarnpkg.com/@octokit/plugin-enterprise-rest/-/plugin-enterprise-rest-6.0.1.tgz#e07896739618dab8da7d4077c658003775f95437" integrity sha512-93uGjlhUD+iNg1iWhUENAtJata6w5nE+V4urXOAlIXdco6xNZtUSfYY8dzp3Udy74aqO/B5UZL80x/YMa5PKRw== -"@octokit/plugin-paginate-rest@^2.16.8": - version "2.21.3" - resolved "https://registry.yarnpkg.com/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.21.3.tgz#7f12532797775640dbb8224da577da7dc210c87e" - integrity sha512-aCZTEf0y2h3OLbrgKkrfFdjRL6eSOo8komneVQJnYecAxIej7Bafor2xhuDJOIFau4pk0i/P28/XgtbyPF0ZHw== - dependencies: - "@octokit/types" "^6.40.0" - "@octokit/plugin-paginate-rest@^5.0.0": version "5.0.1" resolved "https://registry.yarnpkg.com/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-5.0.1.tgz#93d7e74f1f69d68ba554fa6b888c2a9cf1f99a83" @@ -3160,14 +3131,6 @@ resolved "https://registry.yarnpkg.com/@octokit/plugin-request-log/-/plugin-request-log-1.0.4.tgz#5e50ed7083a613816b1e4a28aeec5fb7f1462e85" integrity sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA== -"@octokit/plugin-rest-endpoint-methods@^5.12.0": - version "5.16.2" - resolved "https://registry.yarnpkg.com/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-5.16.2.tgz#7ee8bf586df97dd6868cf68f641354e908c25342" - integrity sha512-8QFz29Fg5jDuTPXVtey05BLm7OB+M8fnvE64RNegzX7U+5NUXcOcnpTIK0YfSHBg8gYd0oxIq3IZTe9SfPZiRw== - dependencies: - "@octokit/types" "^6.39.0" - deprecation "^2.3.1" - "@octokit/plugin-rest-endpoint-methods@^6.7.0": version "6.7.0" resolved "https://registry.yarnpkg.com/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-6.7.0.tgz#2f6f17f25b6babbc8b41d2bb0a95a8839672ce7c" @@ -3176,15 +3139,6 @@ "@octokit/types" "^8.0.0" deprecation "^2.3.1" -"@octokit/request-error@^2.0.5", "@octokit/request-error@^2.1.0": - version "2.1.0" - resolved "https://registry.yarnpkg.com/@octokit/request-error/-/request-error-2.1.0.tgz#9e150357831bfc788d13a4fd4b1913d60c74d677" - integrity sha512-1VIvgXxs9WHSjicsRwq8PlR2LR2x6DwsJAaFgzdi0JfJoGSO8mYI/cHJQ+9FbN21aa+DrgNLnwObmyeSC8Rmpg== - dependencies: - "@octokit/types" "^6.0.3" - deprecation "^2.0.0" - once "^1.4.0" - "@octokit/request-error@^3.0.0": version "3.0.2" resolved "https://registry.yarnpkg.com/@octokit/request-error/-/request-error-3.0.2.tgz#f74c0f163d19463b87528efe877216c41d6deb0a" @@ -3194,18 +3148,6 @@ deprecation "^2.0.0" once "^1.4.0" -"@octokit/request@^5.6.0", "@octokit/request@^5.6.3": - version "5.6.3" - resolved "https://registry.yarnpkg.com/@octokit/request/-/request-5.6.3.tgz#19a022515a5bba965ac06c9d1334514eb50c48b0" - integrity sha512-bFJl0I1KVc9jYTe9tdGGpAMPy32dLBXXo1dS/YwSCTL/2nd9XeHsY616RE3HPXDVk+a+dBuzyz5YdlXwcDTr2A== - dependencies: - "@octokit/endpoint" "^6.0.1" - "@octokit/request-error" "^2.1.0" - "@octokit/types" "^6.16.1" - is-plain-object "^5.0.0" - node-fetch "^2.6.7" - universal-user-agent "^6.0.0" - "@octokit/request@^6.0.0": version "6.2.2" resolved "https://registry.yarnpkg.com/@octokit/request/-/request-6.2.2.tgz#a2ba5ac22bddd5dcb3f539b618faa05115c5a255" @@ -3218,17 +3160,7 @@ node-fetch "^2.6.7" universal-user-agent "^6.0.0" -"@octokit/rest@^18.0.9": - version "18.12.0" - resolved "https://registry.yarnpkg.com/@octokit/rest/-/rest-18.12.0.tgz#f06bc4952fc87130308d810ca9d00e79f6988881" - integrity sha512-gDPiOHlyGavxr72y0guQEhLsemgVjwRePayJ+FcKc2SJqKUbxbkvf5kAZEWA/MKvsfYlQAMVzNJE3ezQcxMJ2Q== - dependencies: - "@octokit/core" "^3.5.1" - "@octokit/plugin-paginate-rest" "^2.16.8" - "@octokit/plugin-request-log" "^1.0.4" - "@octokit/plugin-rest-endpoint-methods" "^5.12.0" - -"@octokit/rest@^19.0.3": +"@octokit/rest@^19.0.3", "@octokit/rest@^19.0.5": version "19.0.5" resolved "https://registry.yarnpkg.com/@octokit/rest/-/rest-19.0.5.tgz#4dbde8ae69b27dca04b5f1d8119d282575818f6c" integrity sha512-+4qdrUFq2lk7Va+Qff3ofREQWGBeoTKNqlJO+FGjFP35ZahP+nBenhZiGdu8USSgmq4Ky3IJ/i4u0xbLqHaeow== @@ -3238,13 +3170,6 @@ "@octokit/plugin-request-log" "^1.0.4" "@octokit/plugin-rest-endpoint-methods" "^6.7.0" -"@octokit/types@^6.0.3", "@octokit/types@^6.16.1", "@octokit/types@^6.39.0", "@octokit/types@^6.40.0": - version "6.41.0" - resolved "https://registry.yarnpkg.com/@octokit/types/-/types-6.41.0.tgz#e58ef78d78596d2fb7df9c6259802464b5f84a04" - integrity sha512-eJ2jbzjdijiL3B4PrSQaSjuF2sPEQPVCPzBvTHJD9Nz+9dw2SGH4K4xeQJ77YfTq5bRQ+bD8wT11JbeDPmxmGg== - dependencies: - "@octokit/openapi-types" "^12.11.0" - "@octokit/types@^8.0.0": version "8.0.0" resolved "https://registry.yarnpkg.com/@octokit/types/-/types-8.0.0.tgz#93f0b865786c4153f0f6924da067fe0bb7426a9f" @@ -3266,11 +3191,16 @@ dependencies: "@open-web3/orml-type-definitions" "1.1.4" -"@openzeppelin/contracts@4.7.3", "@openzeppelin/contracts@^4.7.3": +"@openzeppelin/contracts@4.7.3": version "4.7.3" resolved "https://registry.yarnpkg.com/@openzeppelin/contracts/-/contracts-4.7.3.tgz#939534757a81f8d69cc854c7692805684ff3111e" integrity sha512-dGRS0agJzu8ybo44pCIf3xBaPQN/65AIXNgK8+4gzKd5kbvlqyxryUYVLJv7fK98Seyd2hDZzVEHSWAh0Bt1Yw== +"@openzeppelin/contracts@^4.7.3": + version "4.8.0" + resolved "https://registry.yarnpkg.com/@openzeppelin/contracts/-/contracts-4.8.0.tgz#6854c37df205dd2c056bdfa1b853f5d732109109" + integrity sha512-AGuwhRRL+NaKx73WKRNzeCxOCOCxpaqF+kp8TJ89QzAipSwZy/NoflkWaL9bywXFRhIzXt8j38sfF7KBKCPWLw== + "@parcel/watcher@2.0.4": version "2.0.4" resolved "https://registry.yarnpkg.com/@parcel/watcher/-/watcher-2.0.4.tgz#f300fef4cc38008ff4b8c29d92588eced3ce014b" @@ -3350,12 +3280,12 @@ rxjs "^7.5.6" "@polkadot/dev@^0.67.86": - version "0.67.154" - resolved "https://registry.yarnpkg.com/@polkadot/dev/-/dev-0.67.154.tgz#74e4d035a93a91f4a5622025687d273fdd6f258c" - integrity sha512-Qfd851vjEMzXP28X943Y+upkRQeVN4i0iKh37elCI+eXR4BQ+S3U+wxxyUGHjsFxxvCx8y9FPYpInvDXymJRFQ== + version "0.67.173" + resolved "https://registry.yarnpkg.com/@polkadot/dev/-/dev-0.67.173.tgz#647b929eadb25e58ffcceccc87477795cf6a65c7" + integrity sha512-9cPWztjhC36N1qp/VHG7jNLfGw8R8+uVdfua/endr8HQIYBhE2lgcQh/DRSkxUI+MNi/DMV4m2Fuc2YIpgSASw== dependencies: "@babel/cli" "^7.19.3" - "@babel/core" "^7.20.2" + "@babel/core" "^7.20.5" "@babel/plugin-proposal-nullish-coalescing-operator" "^7.18.6" "@babel/plugin-proposal-numeric-separator" "^7.18.6" "@babel/plugin-proposal-optional-chaining" "^7.18.9" @@ -3364,62 +3294,63 @@ "@babel/plugin-syntax-import-assertions" "^7.20.0" "@babel/plugin-syntax-import-meta" "^7.10.4" "@babel/plugin-syntax-top-level-await" "^7.14.5" - "@babel/plugin-transform-regenerator" "^7.18.6" + "@babel/plugin-transform-regenerator" "^7.20.5" "@babel/plugin-transform-runtime" "^7.19.6" "@babel/preset-env" "^7.20.2" "@babel/preset-react" "^7.18.6" "@babel/preset-typescript" "^7.18.6" "@babel/register" "^7.18.9" - "@babel/runtime" "^7.20.1" + "@babel/runtime" "^7.20.6" "@rollup/plugin-alias" "^4.0.2" - "@rollup/plugin-commonjs" "^23.0.2" + "@rollup/plugin-commonjs" "^23.0.4" "@rollup/plugin-dynamic-import-vars" "^2.0.1" "@rollup/plugin-inject" "^5.0.2" - "@rollup/plugin-json" "^5.0.1" + "@rollup/plugin-json" "^5.0.2" "@rollup/plugin-node-resolve" "^15.0.1" "@rushstack/eslint-patch" "^1.2.0" - "@typescript-eslint/eslint-plugin" "^5.42.0" - "@typescript-eslint/parser" "^5.42.0" + "@typescript-eslint/eslint-plugin" "^5.46.1" + "@typescript-eslint/parser" "^5.46.1" "@vue/component-compiler-utils" "^3.3.0" - babel-jest "^29.2.2" + babel-jest "^29.3.1" babel-plugin-module-extension-resolver "^1.0.0-rc.2" babel-plugin-module-resolver "^4.1.0" babel-plugin-styled-components "^2.0.7" browserslist "^4.21.4" coveralls "^3.1.1" - eslint "^8.26.0" + eslint "^8.29.0" eslint-config-standard "^17.0.0" eslint-import-resolver-node "^0.3.6" + eslint-plugin-deprecation "^1.3.3" eslint-plugin-header "^3.1.1" eslint-plugin-import "^2.26.0" - eslint-plugin-import-newlines "^1.2.3" - eslint-plugin-n "^15.4.0" + eslint-plugin-import-newlines "^1.3.0" + eslint-plugin-n "^15.6.0" eslint-plugin-promise "^6.1.1" - eslint-plugin-react "^7.31.10" + eslint-plugin-react "^7.31.11" eslint-plugin-react-hooks "^4.6.0" eslint-plugin-simple-import-sort "^8.0.0" eslint-plugin-sort-destructure-keys "^1.4.0" - fs-extra "^10.1.0" + fs-extra "^11.1.0" gh-pages "^4.0.0" - gh-release "^6.0.4" + gh-release "^7.0.0" glob "^8.0.3" glob2base "^0.0.12" - jest "^29.2.2" - jest-cli "^29.2.2" - jest-config "^29.2.2" - jest-environment-jsdom "^29.2.2" - jest-haste-map "^29.2.1" - jest-resolve "^29.2.2" + jest "^29.3.1" + jest-cli "^29.3.1" + jest-config "^29.3.1" + jest-environment-jsdom "^29.3.1" + jest-haste-map "^29.3.1" + jest-resolve "^29.3.1" madge "^5.0.1" - minimatch "^5.1.0" + minimatch "^5.1.1" mkdirp "^1.0.4" - prettier "^2.7.1" + prettier "^2.8.1" rimraf "^3.0.2" - rollup "^3.2.5" + rollup "^3.7.4" rollup-plugin-cleanup "^3.2.1" - typescript "^4.8.4" - webpack "^5.74.0" - webpack-cli "^4.10.0" + typescript "^4.9.4" + webpack "^5.75.0" + webpack-cli "^5.0.1" webpack-dev-server "^4.11.1" webpack-merge "^5.8.0" webpack-subresource-integrity "^5.1.0" @@ -3435,22 +3366,13 @@ "@polkadot/util-crypto" "10.1.7" "@polkadot/keyring@^10.1.6": - version "10.1.11" - resolved "https://registry.yarnpkg.com/@polkadot/keyring/-/keyring-10.1.11.tgz#a3fed011b0c8826ea2097e04f7189e9be66fbf98" - integrity sha512-Nv8cZaOA/KbdslDMTklJ58+y+UPpic3+oMQoozuq48Ccjv7WeW2BX47XM/RNE8nYFg6EHa6Whfm4IFaFb8s7ag== - dependencies: - "@babel/runtime" "^7.19.4" - "@polkadot/util" "10.1.11" - "@polkadot/util-crypto" "10.1.11" - -"@polkadot/networks@10.1.11", "@polkadot/networks@^10.1.6": - version "10.1.11" - resolved "https://registry.yarnpkg.com/@polkadot/networks/-/networks-10.1.11.tgz#96a5d6c80228f4beada9154cca0f60a63198e7f4" - integrity sha512-4FfOVETXwh6PL6wd6fYJMkRSQKm+xUw3vR5rHqcAnB696FpMFPPErc6asgZ9lYMyzNJRY3yG86HQpFhtCv1nGA== + version "10.2.1" + resolved "https://registry.yarnpkg.com/@polkadot/keyring/-/keyring-10.2.1.tgz#692d4e24dcbbe294b6945640802fc924ea20348e" + integrity sha512-84/zzxDZANQ4AfsCT1vrjX3I23/mj9WUWl1F7q9ruK6UBFyGsl46Y3ABOopFHij9UXhppndhB65IeDnqoOKqxQ== dependencies: - "@babel/runtime" "^7.19.4" - "@polkadot/util" "10.1.11" - "@substrate/ss58-registry" "^1.33.0" + "@babel/runtime" "^7.20.6" + "@polkadot/util" "10.2.1" + "@polkadot/util-crypto" "10.2.1" "@polkadot/networks@10.1.7": version "10.1.7" @@ -3461,6 +3383,15 @@ "@polkadot/util" "10.1.7" "@substrate/ss58-registry" "^1.28.0" +"@polkadot/networks@10.2.1", "@polkadot/networks@^10.1.6": + version "10.2.1" + resolved "https://registry.yarnpkg.com/@polkadot/networks/-/networks-10.2.1.tgz#5095011795afa20291ef3e34a2ad38ed2c63fe09" + integrity sha512-cDZIY4jBo2tlDdSXNbECpuWer0NWlPcJNhHHveTiu2idje2QyIBNxBlAPViNGpz+ScAR0EknEzmQKuHOcSKxzg== + dependencies: + "@babel/runtime" "^7.20.6" + "@polkadot/util" "10.2.1" + "@substrate/ss58-registry" "^1.35.0" + "@polkadot/rpc-augment@9.2.4": version "9.2.4" resolved "https://registry.yarnpkg.com/@polkadot/rpc-augment/-/rpc-augment-9.2.4.tgz#372eec7f15aea8f0ba3cb80affb0f216e6971e26" @@ -3589,23 +3520,6 @@ "@polkadot/util-crypto" "^10.1.6" rxjs "^7.5.6" -"@polkadot/util-crypto@10.1.11", "@polkadot/util-crypto@^10.1.6": - version "10.1.11" - resolved "https://registry.yarnpkg.com/@polkadot/util-crypto/-/util-crypto-10.1.11.tgz#e59bdc8e1e2bd98a115e2e2ed45461e68a14a48c" - integrity sha512-wG63frIMAR5T/HXGM0SFNzZZdk7qDBsfLXfn6PIZiXCCCsdEYPzS5WltB7fkhicYpbePJ7VgdCAddj1l4IcGyg== - dependencies: - "@babel/runtime" "^7.19.4" - "@noble/hashes" "1.1.3" - "@noble/secp256k1" "1.7.0" - "@polkadot/networks" "10.1.11" - "@polkadot/util" "10.1.11" - "@polkadot/wasm-crypto" "^6.3.1" - "@polkadot/x-bigint" "10.1.11" - "@polkadot/x-randomvalues" "10.1.11" - "@scure/base" "1.1.1" - ed2curve "^0.3.0" - tweetnacl "^1.0.3" - "@polkadot/util-crypto@10.1.7": version "10.1.7" resolved "https://registry.yarnpkg.com/@polkadot/util-crypto/-/util-crypto-10.1.7.tgz#fe5ea006bf23ae19319f3ac9236905a984a65e2f" @@ -3623,18 +3537,22 @@ ed2curve "^0.3.0" tweetnacl "^1.0.3" -"@polkadot/util@10.1.11", "@polkadot/util@^10.1.6": - version "10.1.11" - resolved "https://registry.yarnpkg.com/@polkadot/util/-/util-10.1.11.tgz#22bcdabbd7a0d266417f6569cc655f516d371a82" - integrity sha512-6m51lw6g6ilqO/k4BQY7rD0lYM9NCnC4FiM7CEEUc7j8q86qxdcZ88zdNldkhNsTIQnfmCtkK3GRzZW6VYrbUw== +"@polkadot/util-crypto@10.2.1", "@polkadot/util-crypto@^10.1.6": + version "10.2.1" + resolved "https://registry.yarnpkg.com/@polkadot/util-crypto/-/util-crypto-10.2.1.tgz#f6ce1c81496336ca50c2ca84975bcde79aa16634" + integrity sha512-UH1J4oD92gkLXMfVTLee3Y2vYadNyp1lmS4P2nZwQ0SOzGZ4rN7khD2CrB1cXS9WPq196Zb5oZdGLnPYnXHtjw== dependencies: - "@babel/runtime" "^7.19.4" - "@polkadot/x-bigint" "10.1.11" - "@polkadot/x-global" "10.1.11" - "@polkadot/x-textdecoder" "10.1.11" - "@polkadot/x-textencoder" "10.1.11" - "@types/bn.js" "^5.1.1" - bn.js "^5.2.1" + "@babel/runtime" "^7.20.6" + "@noble/hashes" "1.1.3" + "@noble/secp256k1" "1.7.0" + "@polkadot/networks" "10.2.1" + "@polkadot/util" "10.2.1" + "@polkadot/wasm-crypto" "^6.4.1" + "@polkadot/x-bigint" "10.2.1" + "@polkadot/x-randomvalues" "10.2.1" + "@scure/base" "1.1.1" + ed2curve "^0.3.0" + tweetnacl "^1.0.3" "@polkadot/util@10.1.6": version "10.1.6" @@ -3662,64 +3580,69 @@ "@types/bn.js" "^5.1.1" bn.js "^5.2.1" -"@polkadot/wasm-bridge@6.3.1": - version "6.3.1" - resolved "https://registry.yarnpkg.com/@polkadot/wasm-bridge/-/wasm-bridge-6.3.1.tgz#439fa78e80947a7cb695443e1f64b25c30bb1487" - integrity sha512-1TYkHsb9AEFhU9uZj3biEnN2yKQNzdrwSjiTvfCYnt97pnEkKsZI6cku+YPZQv5w/x9CQa5Yua9e2DVVZSivGA== - dependencies: - "@babel/runtime" "^7.18.9" +"@polkadot/util@10.2.1", "@polkadot/util@^10.1.6": + version "10.2.1" + resolved "https://registry.yarnpkg.com/@polkadot/util/-/util-10.2.1.tgz#a8c3a4fe87091197448bec70f7ea079b60d5abf6" + integrity sha512-ewGKSOp+VXKEeCvpCCP2Qqi/FVkewBF9vb/N8pRwuNQ2XE9k1lnsOZZeQemVBDhKsZz+h3IeNcWejaF6K3vYHQ== + dependencies: + "@babel/runtime" "^7.20.6" + "@polkadot/x-bigint" "10.2.1" + "@polkadot/x-global" "10.2.1" + "@polkadot/x-textdecoder" "10.2.1" + "@polkadot/x-textencoder" "10.2.1" + "@types/bn.js" "^5.1.1" + bn.js "^5.2.1" -"@polkadot/wasm-crypto-asmjs@6.3.1": - version "6.3.1" - resolved "https://registry.yarnpkg.com/@polkadot/wasm-crypto-asmjs/-/wasm-crypto-asmjs-6.3.1.tgz#e8f469c9cf4a7709c8131a96f857291953f3e30a" - integrity sha512-zbombRfA5v/mUWQQhgg2YwaxhRmxRIrvskw65x+lruax3b6xPBFDs7yplopiJU3r8h2pTgQvX/DUksvqz2TCRQ== +"@polkadot/wasm-bridge@6.4.1": + version "6.4.1" + resolved "https://registry.yarnpkg.com/@polkadot/wasm-bridge/-/wasm-bridge-6.4.1.tgz#e97915dd67ba543ec3381299c2a5b9330686e27e" + integrity sha512-QZDvz6dsUlbYsaMV5biZgZWkYH9BC5AfhT0f0/knv8+LrbAoQdP3Asbvddw8vyU9sbpuCHXrd4bDLBwUCRfrBQ== dependencies: - "@babel/runtime" "^7.18.9" + "@babel/runtime" "^7.20.6" -"@polkadot/wasm-crypto-init@6.3.1": - version "6.3.1" - resolved "https://registry.yarnpkg.com/@polkadot/wasm-crypto-init/-/wasm-crypto-init-6.3.1.tgz#b590220c53c94b9a54d5dc236d0cbe943db76706" - integrity sha512-9yaUBcu+snwjJLmPPGl3cyGRQ1afyFGm16qzTM0sgG/ZCfUlK4uk8KWZe+sBUKgoxb2oXY7Y4WklKgQI1YBdfw== +"@polkadot/wasm-crypto-asmjs@6.4.1": + version "6.4.1" + resolved "https://registry.yarnpkg.com/@polkadot/wasm-crypto-asmjs/-/wasm-crypto-asmjs-6.4.1.tgz#3cc76bbda5ea4a7a860982c64f9565907b312253" + integrity sha512-UxZTwuBZlnODGIQdCsE2Sn/jU0O2xrNQ/TkhRFELfkZXEXTNu4lw6NpaKq7Iey4L+wKd8h4lT3VPVkMcPBLOvA== dependencies: - "@babel/runtime" "^7.18.9" - "@polkadot/wasm-bridge" "6.3.1" - "@polkadot/wasm-crypto-asmjs" "6.3.1" - "@polkadot/wasm-crypto-wasm" "6.3.1" + "@babel/runtime" "^7.20.6" -"@polkadot/wasm-crypto-wasm@6.3.1": - version "6.3.1" - resolved "https://registry.yarnpkg.com/@polkadot/wasm-crypto-wasm/-/wasm-crypto-wasm-6.3.1.tgz#67f720e7f9694fef096abe9d60abbac02e032383" - integrity sha512-idSlzKGVzCfeCMRHsacRvqwojSaTadFxL/Dbls4z1thvfa3U9Ku0d2qVtlwg7Hj+tYWDiuP8Kygs+6bQwfs0XA== +"@polkadot/wasm-crypto-init@6.4.1": + version "6.4.1" + resolved "https://registry.yarnpkg.com/@polkadot/wasm-crypto-init/-/wasm-crypto-init-6.4.1.tgz#4d9ab0030db52cf177bf707ef8e77aa4ca721668" + integrity sha512-1ALagSi/nfkyFaH6JDYfy/QbicVbSn99K8PV9rctDUfxc7P06R7CoqbjGQ4OMPX6w1WYVPU7B4jPHGLYBlVuMw== dependencies: - "@babel/runtime" "^7.18.9" - "@polkadot/wasm-util" "6.3.1" + "@babel/runtime" "^7.20.6" + "@polkadot/wasm-bridge" "6.4.1" + "@polkadot/wasm-crypto-asmjs" "6.4.1" + "@polkadot/wasm-crypto-wasm" "6.4.1" -"@polkadot/wasm-crypto@^6.3.1": - version "6.3.1" - resolved "https://registry.yarnpkg.com/@polkadot/wasm-crypto/-/wasm-crypto-6.3.1.tgz#63f5798aca2b2ff0696f190e6862d9781d8f280c" - integrity sha512-OO8h0qeVkqp4xYZaRVl4iuWOEtq282pNBHDKb6SOJuI2g59eWGcKh4EQU9Me2VP6qzojIqptrkrVt7KQXC68gA== +"@polkadot/wasm-crypto-wasm@6.4.1": + version "6.4.1" + resolved "https://registry.yarnpkg.com/@polkadot/wasm-crypto-wasm/-/wasm-crypto-wasm-6.4.1.tgz#97180f80583b18f6a13c1054fa5f7e8da40b1028" + integrity sha512-3VV9ZGzh0ZY3SmkkSw+0TRXxIpiO0nB8lFwlRgcwaCihwrvLfRnH9GI8WE12mKsHVjWTEVR3ogzILJxccAUjDA== dependencies: - "@babel/runtime" "^7.18.9" - "@polkadot/wasm-bridge" "6.3.1" - "@polkadot/wasm-crypto-asmjs" "6.3.1" - "@polkadot/wasm-crypto-init" "6.3.1" - "@polkadot/wasm-crypto-wasm" "6.3.1" - "@polkadot/wasm-util" "6.3.1" + "@babel/runtime" "^7.20.6" + "@polkadot/wasm-util" "6.4.1" -"@polkadot/wasm-util@6.3.1": - version "6.3.1" - resolved "https://registry.yarnpkg.com/@polkadot/wasm-util/-/wasm-util-6.3.1.tgz#439ebb68a436317af388ed6438b8f879df3afcda" - integrity sha512-12oAv5J7Yoc9m6jixrSaQCxpOkWOyzHx3DMC8qmLjRiwdBWxqLmImOVRVnFsbaxqSbhBIHRuJphVxWE+GZETDg== +"@polkadot/wasm-crypto@^6.3.1", "@polkadot/wasm-crypto@^6.4.1": + version "6.4.1" + resolved "https://registry.yarnpkg.com/@polkadot/wasm-crypto/-/wasm-crypto-6.4.1.tgz#79310e23ad1ca62362ba893db6a8567154c2536a" + integrity sha512-FH+dcDPdhSLJvwL0pMLtn/LIPd62QDPODZRCmDyw+pFjLOMaRBc7raomWUOqyRWJTnqVf/iscc2rLVLNMyt7ag== dependencies: - "@babel/runtime" "^7.18.9" + "@babel/runtime" "^7.20.6" + "@polkadot/wasm-bridge" "6.4.1" + "@polkadot/wasm-crypto-asmjs" "6.4.1" + "@polkadot/wasm-crypto-init" "6.4.1" + "@polkadot/wasm-crypto-wasm" "6.4.1" + "@polkadot/wasm-util" "6.4.1" -"@polkadot/x-bigint@10.1.11", "@polkadot/x-bigint@^10.1.6": - version "10.1.11" - resolved "https://registry.yarnpkg.com/@polkadot/x-bigint/-/x-bigint-10.1.11.tgz#7d62ce10cccd55b86a415342db95b9feeb099776" - integrity sha512-TC4KZ+ni/SJhcf/LIwD49C/kwvACu0nCchETNO+sAfJ7COXZwHDUJXVXmwN5PgkQxwsWsKKuJmzR/Fi1bgMWnQ== +"@polkadot/wasm-util@6.4.1": + version "6.4.1" + resolved "https://registry.yarnpkg.com/@polkadot/wasm-util/-/wasm-util-6.4.1.tgz#74aecc85bec427a9225d9874685944ea3dc3ab76" + integrity sha512-Uwo+WpEsDmFExWC5kTNvsVhvqXMZEKf4gUHXFn4c6Xz4lmieRT5g+1bO1KJ21pl4msuIgdV3Bksfs/oiqMFqlw== dependencies: - "@babel/runtime" "^7.19.4" - "@polkadot/x-global" "10.1.11" + "@babel/runtime" "^7.20.6" "@polkadot/x-bigint@10.1.6": version "10.1.6" @@ -3737,22 +3660,23 @@ "@babel/runtime" "^7.18.9" "@polkadot/x-global" "10.1.7" -"@polkadot/x-fetch@^10.1.6": - version "10.1.11" - resolved "https://registry.yarnpkg.com/@polkadot/x-fetch/-/x-fetch-10.1.11.tgz#8f579bb166096c977acff91a40b3848fb5581900" - integrity sha512-WtyUr9itVD9BLnxCUloJ1iwrXOY/lnlEShEYKHcSm6MIHtbJolePd3v1+o5mOX+bdDbHXhPZnH8anCCqDNDRqg== +"@polkadot/x-bigint@10.2.1", "@polkadot/x-bigint@^10.1.6": + version "10.2.1" + resolved "https://registry.yarnpkg.com/@polkadot/x-bigint/-/x-bigint-10.2.1.tgz#aa2d4384bb4ae6b5a3f333aa25bf6fd64d9006c5" + integrity sha512-asFroI2skC4gYv0oIqqb84DqCCxhNUTSCKobEg57WdXoT4TKrN9Uetg2AMSIHRiX/9lP3EPMhUjM1VVGobTQRQ== dependencies: - "@babel/runtime" "^7.19.4" - "@polkadot/x-global" "10.1.11" - "@types/node-fetch" "^2.6.2" - node-fetch "^3.2.10" + "@babel/runtime" "^7.20.6" + "@polkadot/x-global" "10.2.1" -"@polkadot/x-global@10.1.11", "@polkadot/x-global@^10.1.6": - version "10.1.11" - resolved "https://registry.yarnpkg.com/@polkadot/x-global/-/x-global-10.1.11.tgz#37dda3ef1cebfd14c68c69279ae6521957817866" - integrity sha512-bWz5gdcELy6+xfr27R1GE5MPX4nfVlchzHQH+DR6OBbSi9g/PeycQAvFB6IkTmP+YEbNNtIpxnSP37zoUaG3xw== +"@polkadot/x-fetch@^10.1.6": + version "10.2.1" + resolved "https://registry.yarnpkg.com/@polkadot/x-fetch/-/x-fetch-10.2.1.tgz#cb5b33da1d91787eb2e5207ef62806a75ef3c62f" + integrity sha512-6ASJUZIrbLaKW+AOW7E5CuktwJwa2LHhxxRyJe398HxZUjJRjO2VJPdqoSwwCYvfFa1TcIr3FDWS63ooDfvGMA== dependencies: - "@babel/runtime" "^7.19.4" + "@babel/runtime" "^7.20.6" + "@polkadot/x-global" "10.2.1" + "@types/node-fetch" "^2.6.2" + node-fetch "^3.3.0" "@polkadot/x-global@10.1.6": version "10.1.6" @@ -3768,13 +3692,12 @@ dependencies: "@babel/runtime" "^7.18.9" -"@polkadot/x-randomvalues@10.1.11": - version "10.1.11" - resolved "https://registry.yarnpkg.com/@polkadot/x-randomvalues/-/x-randomvalues-10.1.11.tgz#f9e088f8b400770d3e53ba9e0c0f0d464047f89e" - integrity sha512-V2V37f5hoM5B32eCpGw87Lwstin2+ArXhOZ8ENKncbQLXzbF9yTODueDoA5Vt0MJCs2CDP9cyiCYykcanqVkxg== +"@polkadot/x-global@10.2.1", "@polkadot/x-global@^10.1.6": + version "10.2.1" + resolved "https://registry.yarnpkg.com/@polkadot/x-global/-/x-global-10.2.1.tgz#6fbaab05653e680adc8c69c07947eee49afc1238" + integrity sha512-kWmPku2lCcoYKU16+lWGOb95+6Lu9zo1trvzTWmAt7z0DXw2GlD9+qmDTt5iYGtguJsGXoRZDGilDTo3MeFrkA== dependencies: - "@babel/runtime" "^7.19.4" - "@polkadot/x-global" "10.1.11" + "@babel/runtime" "^7.20.6" "@polkadot/x-randomvalues@10.1.7": version "10.1.7" @@ -3784,13 +3707,13 @@ "@babel/runtime" "^7.18.9" "@polkadot/x-global" "10.1.7" -"@polkadot/x-textdecoder@10.1.11": - version "10.1.11" - resolved "https://registry.yarnpkg.com/@polkadot/x-textdecoder/-/x-textdecoder-10.1.11.tgz#314c79e27545a41fe0494a26196bf2dff5cfcb5d" - integrity sha512-QZqie04SR6pAj260PaLBfZUGXWKI357t4ROVJhpaj06qc1zrk1V8Mwkr49+WzjAPFEOqo70HWnzXmPNCH4dQiw== +"@polkadot/x-randomvalues@10.2.1": + version "10.2.1" + resolved "https://registry.yarnpkg.com/@polkadot/x-randomvalues/-/x-randomvalues-10.2.1.tgz#1c463625c0b7cf775e94594f522eb21a5229b42e" + integrity sha512-bEwG6j/+HMZ5LIkyzRbTB0N1Wz2lHyxP25pPFgHFqGqon/KZoRN5kxOwEJ1DpPJIv+9PVn5tt7bc4R3qsaZ93g== dependencies: - "@babel/runtime" "^7.19.4" - "@polkadot/x-global" "10.1.11" + "@babel/runtime" "^7.20.6" + "@polkadot/x-global" "10.2.1" "@polkadot/x-textdecoder@10.1.6": version "10.1.6" @@ -3808,13 +3731,13 @@ "@babel/runtime" "^7.18.9" "@polkadot/x-global" "10.1.7" -"@polkadot/x-textencoder@10.1.11": - version "10.1.11" - resolved "https://registry.yarnpkg.com/@polkadot/x-textencoder/-/x-textencoder-10.1.11.tgz#23b18b3ffbc649572728aa37d7787432bb3a03b5" - integrity sha512-UX+uV9AbDID81waaG/NvTkkf7ZNVW7HSHaddgbWjQEVW2Ex4ByccBarY5jEi6cErEPKfzCamKhgXflu0aV9LWw== +"@polkadot/x-textdecoder@10.2.1": + version "10.2.1" + resolved "https://registry.yarnpkg.com/@polkadot/x-textdecoder/-/x-textdecoder-10.2.1.tgz#c1778ef35e2aa8db8f11bbe31a5bbf5e46017d7d" + integrity sha512-hpFmrdv/rrSM4UNaV8TJBgMtwXsYlNgBTSUmnKWwJIN3PhOUeYxl1qIbPchxGbJBc35WviJCZe7rlLja9JvFcw== dependencies: - "@babel/runtime" "^7.19.4" - "@polkadot/x-global" "10.1.11" + "@babel/runtime" "^7.20.6" + "@polkadot/x-global" "10.2.1" "@polkadot/x-textencoder@10.1.6": version "10.1.6" @@ -3832,13 +3755,21 @@ "@babel/runtime" "^7.18.9" "@polkadot/x-global" "10.1.7" +"@polkadot/x-textencoder@10.2.1": + version "10.2.1" + resolved "https://registry.yarnpkg.com/@polkadot/x-textencoder/-/x-textencoder-10.2.1.tgz#c09562c73a44659243075d43b007b5c1b39c57a8" + integrity sha512-4gMyY6DCH34KA++bawu/zlUJ0/8+aZJsurwjRBbkdfOS2uLo0K+vJ5GBevAhl0VSznM36ptfh/MpkIBKK/6R0g== + dependencies: + "@babel/runtime" "^7.20.6" + "@polkadot/x-global" "10.2.1" + "@polkadot/x-ws@^10.1.6": - version "10.1.11" - resolved "https://registry.yarnpkg.com/@polkadot/x-ws/-/x-ws-10.1.11.tgz#7431ad72064d56519d4293278f03ae97b9ea9271" - integrity sha512-EUbL/R1A/NxYf6Rnb1M7U9yeTuo5r4y2vcQllE5aBLaQ0cFnRykHzlmZlVX1E7O5uy3lYVdxWC7sNgxItIWkWA== + version "10.2.1" + resolved "https://registry.yarnpkg.com/@polkadot/x-ws/-/x-ws-10.2.1.tgz#ec119c22a8cb7b9cde00e9909e37b6ba2845efd1" + integrity sha512-oS/WEHc1JSJ+xMArzFXbg1yEeaRrp6GsJLBvObj4DgTyqoWTR5fYkq1G1nHbyqdR729yAnR6755PdaWecIg98g== dependencies: - "@babel/runtime" "^7.19.4" - "@polkadot/x-global" "10.1.11" + "@babel/runtime" "^7.20.6" + "@polkadot/x-global" "10.2.1" "@types/websocket" "^1.0.5" websocket "^1.0.34" @@ -3893,41 +3824,41 @@ dependencies: slash "^4.0.0" -"@rollup/plugin-commonjs@^23.0.2": - version "23.0.2" - resolved "https://registry.yarnpkg.com/@rollup/plugin-commonjs/-/plugin-commonjs-23.0.2.tgz#3a3a5b7b1b1cb29037eb4992edcaae997d7ebd92" - integrity sha512-e9ThuiRf93YlVxc4qNIurvv+Hp9dnD+4PjOqQs5vAYfcZ3+AXSrcdzXnVjWxcGQOa6KGJFcRZyUI3ktWLavFjg== +"@rollup/plugin-commonjs@^23.0.4": + version "23.0.7" + resolved "https://registry.yarnpkg.com/@rollup/plugin-commonjs/-/plugin-commonjs-23.0.7.tgz#7d26d879caa54283086de1974b66f512ef60abdc" + integrity sha512-hsSD5Qzyuat/swzrExGG5l7EuIlPhwTsT7KwKbSCQzIcJWjRxiimi/0tyMYY2bByitNb3i1p+6JWEDGa0NvT0Q== dependencies: "@rollup/pluginutils" "^5.0.1" commondir "^1.0.1" estree-walker "^2.0.2" glob "^8.0.3" is-reference "1.2.1" - magic-string "^0.26.4" + magic-string "^0.27.0" "@rollup/plugin-dynamic-import-vars@^2.0.1": - version "2.0.1" - resolved "https://registry.yarnpkg.com/@rollup/plugin-dynamic-import-vars/-/plugin-dynamic-import-vars-2.0.1.tgz#da2c4732aea8867e202006aaccd3b351f1d98cc3" - integrity sha512-//rFVnJhZqR1Bje7n9ZMlmX9M62AExcLVXmbTcq80CqFx97C6CXaghLYsPzcZ7w8JhbVdjBIRADyLNel0HHorg== + version "2.0.2" + resolved "https://registry.yarnpkg.com/@rollup/plugin-dynamic-import-vars/-/plugin-dynamic-import-vars-2.0.2.tgz#33a780a5f7ebd955357682583aef7e0346025069" + integrity sha512-aycot2FUPPVb3uDswXsmUdgu8Z8T82uQGBGXZm/uf9XNsp1QoFDBhPrLiwNDJB8BUIiaRjvmaVsAPAQrbVTBVA== dependencies: "@rollup/pluginutils" "^5.0.1" estree-walker "^2.0.2" fast-glob "^3.2.12" - magic-string "^0.26.4" + magic-string "^0.27.0" "@rollup/plugin-inject@^5.0.2": - version "5.0.2" - resolved "https://registry.yarnpkg.com/@rollup/plugin-inject/-/plugin-inject-5.0.2.tgz#b26c0e6e73f39c118ffc1cf07cfbfd93459b93a6" - integrity sha512-zRthPC/sZ2OaQwPh2LvFn0A+3SyMAZR1Vqsp89mWkIuGXKswT8ty1JWj1pf7xdZvft4gHZaCuhdopuiCwjclWg== + version "5.0.3" + resolved "https://registry.yarnpkg.com/@rollup/plugin-inject/-/plugin-inject-5.0.3.tgz#0783711efd93a9547d52971db73b2fb6140a67b1" + integrity sha512-411QlbL+z2yXpRWFXSmw/teQRMkXcAAC8aYTemc15gwJRpvEVDQwoe+N/HTFD8RFG8+88Bme9DK2V9CVm7hJdA== dependencies: "@rollup/pluginutils" "^5.0.1" estree-walker "^2.0.2" - magic-string "^0.26.4" + magic-string "^0.27.0" -"@rollup/plugin-json@^5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@rollup/plugin-json/-/plugin-json-5.0.1.tgz#d5cd67cc83ede42967447dfabbe1be45a091f5b7" - integrity sha512-QCwhZZLvM8nRcTHyR1vOgyTMiAnjiNj1ebD/BMRvbO1oc/z14lZH6PfxXeegee2B6mky/u9fia4fxRM4TqrUaw== +"@rollup/plugin-json@^5.0.2": + version "5.0.2" + resolved "https://registry.yarnpkg.com/@rollup/plugin-json/-/plugin-json-5.0.2.tgz#d7dbbac62ff74064876b3e5d0d863cb3ad1e7cdb" + integrity sha512-D1CoOT2wPvadWLhVcmpkDnesTzjhNIQRWLsc3fA49IFOP2Y84cFOOJ+nKGYedvXHKUsPeq07HR4hXpBBr+CHlA== dependencies: "@rollup/pluginutils" "^5.0.1" @@ -4071,9 +4002,9 @@ integrity sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw== "@sinonjs/commons@^1.7.0": - version "1.8.4" - resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.4.tgz#d1f2d80f1bd0f2520873f161588bd9b7f8567120" - integrity sha512-RpmQdHVo8hCEHDVpO39zToS9jOhR6nw+/lQAzRNq9ErrGV9IeHM71XCn68svVl/euFeVW6BWX4p35gkhbOcSIQ== + version "1.8.6" + resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.6.tgz#80c516a4dc264c2a69115e7578d62581ff455ed9" + integrity sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ== dependencies: type-detect "4.0.8" @@ -4113,10 +4044,10 @@ pako "^2.0.4" ws "^8.8.1" -"@substrate/ss58-registry@^1.28.0", "@substrate/ss58-registry@^1.33.0": - version "1.33.0" - resolved "https://registry.yarnpkg.com/@substrate/ss58-registry/-/ss58-registry-1.33.0.tgz#b93218fc86405769716b02f0ce5e61df221b37ae" - integrity sha512-DztMuMcEfu+tJrtIQIIp5gO8/XJZ8N8UwPObDCSNgrp7trtSkPJAUFB9qXaReXtN9UvTcVBMTWk6VPfFi04Wkg== +"@substrate/ss58-registry@^1.28.0", "@substrate/ss58-registry@^1.35.0": + version "1.36.0" + resolved "https://registry.yarnpkg.com/@substrate/ss58-registry/-/ss58-registry-1.36.0.tgz#22b59fa85cacc0bdf40aa5d8131a377c1b5a8dd8" + integrity sha512-YfQIpe2bIvGg/XWNByycznbOiAknMvpYaUpQJ2sLmNT/OwPx7XjEXk7dLShccuiQDoOQt3trTtF3Frz/Tjv6Fg== "@szmarczak/http-timer@^1.1.2": version "1.1.2" @@ -4144,27 +4075,27 @@ resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-2.0.0.tgz#f544a148d3ab35801c1f633a7441fd87c2e484bf" integrity sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A== -"@truffle/abi-utils@^0.3.4": - version "0.3.4" - resolved "https://registry.yarnpkg.com/@truffle/abi-utils/-/abi-utils-0.3.4.tgz#004ec7211cbc2117cf173522107ffaf162b0fa0a" - integrity sha512-cgFwIEugsRdh/NnLJ5ZKDeShkRx3dz1tl/XgFxChuvMjJ9ymlIB8ixSIRuIXP0jlvOs0O8rNJWEjEnUdW5G/VQ== +"@truffle/abi-utils@^0.3.5": + version "0.3.5" + resolved "https://registry.yarnpkg.com/@truffle/abi-utils/-/abi-utils-0.3.5.tgz#0b5afb2cbfd492bee156d253d264923f52ac119e" + integrity sha512-nGIMNDjl1NhTxI5lSecOWoLFH8A+aDRPrMejke6Cb2ok8FWyTPCaHmlC8S0Kdi/Egp9m3CNI1TYsy9w9Y3E3jA== dependencies: change-case "3.0.2" fast-check "3.1.1" web3-utils "1.7.4" -"@truffle/blockchain-utils@^0.1.3", "@truffle/blockchain-utils@^0.1.4": - version "0.1.4" - resolved "https://registry.yarnpkg.com/@truffle/blockchain-utils/-/blockchain-utils-0.1.4.tgz#1365b88c3d2922a066d947e93748f09b0fac2e93" - integrity sha512-HegAo5A8UX9vE8dtceBRgCY207gOb9wj54c8mNOOWHcFpkyJz7kZYGo44As6Imh10/0hD2j7vHQ56Jf+uszJ3A== +"@truffle/blockchain-utils@^0.1.3", "@truffle/blockchain-utils@^0.1.6": + version "0.1.6" + resolved "https://registry.yarnpkg.com/@truffle/blockchain-utils/-/blockchain-utils-0.1.6.tgz#7ea0a16b8135e5aeb688bf3bd014fa8f6ba45adb" + integrity sha512-SldoNRIFSm3+HMBnSc2jFsu5TWDkCN4X6vL3wrd0t6DIeF7nD6EoPPjxwbFSoqCnkkRxMuZeL6sUx7UMJS/wSA== -"@truffle/codec@^0.14.8": - version "0.14.8" - resolved "https://registry.yarnpkg.com/@truffle/codec/-/codec-0.14.8.tgz#c6ab4307215280571daecfe85f82c971ebabc3c1" - integrity sha512-UWBV4H7hN16oUAvcDib3fFt0HK3+AfUXibVSM9nCSbvzHUBlBLhsBt74ae7xbJIz8HHjTMgUt4CWKEGDNN+fTQ== +"@truffle/codec@^0.14.10": + version "0.14.10" + resolved "https://registry.yarnpkg.com/@truffle/codec/-/codec-0.14.10.tgz#6d793f32e1816086e9ce0ea00f6291cca7815597" + integrity sha512-+uPnImtjNUzRhWOp5GG9AeSEuG1o9iVRpCsodQ04podKqYagtjNOKSe7jqNLJCbZ1Vpbvztmb9KzbwOJTLZS9A== dependencies: - "@truffle/abi-utils" "^0.3.4" - "@truffle/compile-common" "^0.9.0" + "@truffle/abi-utils" "^0.3.5" + "@truffle/compile-common" "^0.9.1" big.js "^6.0.3" bn.js "^5.1.3" cbor "^5.2.0" @@ -4174,33 +4105,33 @@ utf8 "^3.0.0" web3-utils "1.7.4" -"@truffle/compile-common@^0.9.0": - version "0.9.0" - resolved "https://registry.yarnpkg.com/@truffle/compile-common/-/compile-common-0.9.0.tgz#92ed5f91820b56e15604818464fa3803c6da13e7" - integrity sha512-kpTTU/7ZlQedH6cemCgrqXL4sUjsWAPj7X4LaqQ+KSna3egNJZ6wrKt2kpSYPpCpLihq2IpcBwWar3dTPZ7a5Q== +"@truffle/compile-common@^0.9.1": + version "0.9.1" + resolved "https://registry.yarnpkg.com/@truffle/compile-common/-/compile-common-0.9.1.tgz#4b36ac57d3e7dfbde0697621c8e6dc613820ef1a" + integrity sha512-mhdkX6ExZImHSBO3jGm6aAn8NpVtMTdjq50jRXY/O59/ZNC0J9WpRapxrAKUVNc+XydMdBlfeEpXoqTJg7cbXw== dependencies: "@truffle/error" "^0.1.1" colors "1.4.0" -"@truffle/contract-schema@^3.0.14", "@truffle/contract-schema@^3.4.10", "@truffle/contract-schema@^3.4.7": - version "3.4.10" - resolved "https://registry.yarnpkg.com/@truffle/contract-schema/-/contract-schema-3.4.10.tgz#c11a814c13ad55a5e454fb35ddfa291ae0d24ace" - integrity sha512-BhRNRoRvlj2th6E5RNS0BnS0ZxQe01JJz8I7MjkGqdeXSvrn6qDCAnbmvhNgUv0l5h8w5+gBOQhAJhILf1shdQ== +"@truffle/contract-schema@^3.0.14", "@truffle/contract-schema@^3.4.11", "@truffle/contract-schema@^3.4.7": + version "3.4.11" + resolved "https://registry.yarnpkg.com/@truffle/contract-schema/-/contract-schema-3.4.11.tgz#ac5fc8be656b786c2bd5d3a2ca6faeb2949e7ff3" + integrity sha512-wReyVZUPyU9Zy5PSCugBLG1nnruBmRAJ/gmoirQiJ9N2n+s1iGBTY49tkDqFMz3XUUE0kplfdb9YKZJlLkTWzQ== dependencies: ajv "^6.10.0" debug "^4.3.1" "@truffle/contract@^4.3.24": - version "4.6.6" - resolved "https://registry.yarnpkg.com/@truffle/contract/-/contract-4.6.6.tgz#32391012ea515ef84cb4b6af0fc7e6c3c7ed53ef" - integrity sha512-8pOlT+V2F9edYx/3qjYHtHPfVqwMSL+Puw6/7fY8mdy9UtlYNWiSCHK4DyvqsS01zRxExNfA9fMJC73IIlTQBw== + version "4.6.9" + resolved "https://registry.yarnpkg.com/@truffle/contract/-/contract-4.6.9.tgz#79864deb1efac58210fcf317bd733e8aa5253ecb" + integrity sha512-clQPA+Or6MQtaw1DVEdN/dKb5KXF2iDzBaK4KqwYdGSt5CXFfltBXHKloWTNeY4fHSiCU1X3EIMxGsH++Zy+Sg== dependencies: "@ensdomains/ensjs" "^2.1.0" - "@truffle/blockchain-utils" "^0.1.4" - "@truffle/contract-schema" "^3.4.10" - "@truffle/debug-utils" "^6.0.39" + "@truffle/blockchain-utils" "^0.1.6" + "@truffle/contract-schema" "^3.4.11" + "@truffle/debug-utils" "^6.0.41" "@truffle/error" "^0.1.1" - "@truffle/interface-adapter" "^0.5.24" + "@truffle/interface-adapter" "^0.5.25" bignumber.js "^7.2.1" debug "^4.3.1" ethers "^4.0.32" @@ -4210,12 +4141,12 @@ web3-eth-abi "1.7.4" web3-utils "1.7.4" -"@truffle/debug-utils@^6.0.22", "@truffle/debug-utils@^6.0.39": - version "6.0.39" - resolved "https://registry.yarnpkg.com/@truffle/debug-utils/-/debug-utils-6.0.39.tgz#be0283b9cdecb444923552f39e63b7528bb079f2" - integrity sha512-g89ZAeywWldEEAS+yonjXcgiJUxEQzLQqRGIrVEMiVI9/B8U7A7KBgnLWqew7LtQfo1h1iifUM0aOt4mKrYicQ== +"@truffle/debug-utils@^6.0.22", "@truffle/debug-utils@^6.0.41": + version "6.0.41" + resolved "https://registry.yarnpkg.com/@truffle/debug-utils/-/debug-utils-6.0.41.tgz#c6d0a59d044d4c0862fc4b4c931a1db6d88fe40c" + integrity sha512-8sk0fmcN3s11cvAJyODoDPWK9W730c6UAreyeHNj03PWg04D+YUqHpRlV2evdqAx2om1p+Xp03eQag15mg//jQ== dependencies: - "@truffle/codec" "^0.14.8" + "@truffle/codec" "^0.14.10" "@trufflesuite/chromafi" "^3.0.0" bn.js "^5.1.3" chalk "^2.4.2" @@ -4227,10 +4158,10 @@ resolved "https://registry.yarnpkg.com/@truffle/error/-/error-0.1.1.tgz#e52026ac8ca7180d83443dca73c03e07ace2a301" integrity sha512-sE7c9IHIGdbK4YayH4BC8i8qMjoAOeg6nUXUDZZp8wlU21/EMpaG+CLx+KqcIPyR+GSWIW3Dm0PXkr2nlggFDA== -"@truffle/interface-adapter@^0.5.16", "@truffle/interface-adapter@^0.5.24": - version "0.5.24" - resolved "https://registry.yarnpkg.com/@truffle/interface-adapter/-/interface-adapter-0.5.24.tgz#c537cced3f2d991afd44046a047b3b62f3f995f5" - integrity sha512-c4nFMnzSuE//xUd16CDc7mjx1NVe5kEDoid/utsma5JPg+AxnOkD4j1QGl7xMqCwQVARLF53FfQzt4DFmZcznQ== +"@truffle/interface-adapter@^0.5.16", "@truffle/interface-adapter@^0.5.25": + version "0.5.25" + resolved "https://registry.yarnpkg.com/@truffle/interface-adapter/-/interface-adapter-0.5.25.tgz#8a62740a48de1a5fa6ecf354b5b7fc73179cce30" + integrity sha512-7EpA9Tyq9It2z7GaLPHljEdmCtVFAkYko6vxXbN+H5PdL6zjEOw66bzMbKisKkh3px5dUd1OlRwPljjs34dpAQ== dependencies: bn.js "^5.1.3" ethers "^4.0.32" @@ -4305,9 +4236,9 @@ integrity sha512-M2P4Ng26QbAeITiH7w1d7OxtldgfAe0wobpyJzVK/XOb0cUGKU2R4pfAhqcJBXAe2ife5ZOhSv4wk7p+ffURtg== "@types/babel__core@^7.1.14": - version "7.1.19" - resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.19.tgz#7b497495b7d1b4812bdb9d02804d0576f43ee460" - integrity sha512-WEOTgRsbYkvA/KCsDwVEGkd7WAr1e3g31VHQ8zy5gul/V1qKullU/BU5I68X5v7V3GnB9eotmom4v5a5gjxorw== + version "7.1.20" + resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.20.tgz#e168cdd612c92a2d335029ed62ac94c95b362359" + integrity sha512-PVb6Bg2QuscZ30FvOU7z4guG6c926D9YRvOxEaelzndpMsvP+YM74Q/dAFASpg2l6+XLalxSGxcq/lrgYWZtyQ== dependencies: "@babel/parser" "^7.1.0" "@babel/types" "^7.0.0" @@ -4331,9 +4262,9 @@ "@babel/types" "^7.0.0" "@types/babel__traverse@*", "@types/babel__traverse@^7.0.6": - version "7.18.2" - resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.18.2.tgz#235bf339d17185bdec25e024ca19cce257cc7309" - integrity sha512-FcFaxOr2V5KZCviw1TnutEMVUVsGt4D2hP1TAfXZAMKuHYW3xQhe3jTxNPWutgCJ3/X1c5yX8ZoGVEItxKbwBg== + version "7.18.3" + resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.18.3.tgz#dfc508a85781e5698d5b33443416b6268c4b3e8d" + integrity sha512-1kbcJ40lLB7MHsj39U4Sh1uTd2E7rLEa79kmDpI6cy+XiXsteB3POdQomoq4FxszMrO3ZYchkhYJw7A2862b3w== dependencies: "@babel/types" "^7.3.0" @@ -4374,19 +4305,19 @@ "@types/node" "*" "@types/cacheable-request@^6.0.1", "@types/cacheable-request@^6.0.2": - version "6.0.2" - resolved "https://registry.yarnpkg.com/@types/cacheable-request/-/cacheable-request-6.0.2.tgz#c324da0197de0a98a2312156536ae262429ff6b9" - integrity sha512-B3xVo+dlKM6nnKTcmm5ZtY/OL8bOAOd2Olee9M1zft65ox50OzjEHW91sDiU9j6cvW8Ejg1/Qkf4xd2kugApUA== + version "6.0.3" + resolved "https://registry.yarnpkg.com/@types/cacheable-request/-/cacheable-request-6.0.3.tgz#a430b3260466ca7b5ca5bfd735693b36e7a9d183" + integrity sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw== dependencies: "@types/http-cache-semantics" "*" - "@types/keyv" "*" + "@types/keyv" "^3.1.4" "@types/node" "*" - "@types/responselike" "*" + "@types/responselike" "^1.0.0" "@types/chai@*", "@types/chai@^4.2.0", "@types/chai@^4.3.0": - version "4.3.3" - resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.3.3.tgz#3c90752792660c4b562ad73b3fbd68bf3bc7ae07" - integrity sha512-hC7OMnszpxhZPduX+m+nrx+uFoLkWOMiR4oa/AZF3MuSETYTZmFfJAHqZEM8MVlvfG7BEUcgvtwoCTxBp6hm3g== + version "4.3.4" + resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.3.4.tgz#e913e8175db8307d78b4e8fa690408ba6b65dee4" + integrity sha512-KnRanxnpfpjUTqTCXslZSEdLfXExwgNxYPdiO2WGUj8+HDjFi8R3k5RVKPeSCzLjCcshCAtVO2QBbVuAV4kTnw== "@types/concat-stream@^1.6.0": version "1.6.1" @@ -4436,7 +4367,7 @@ resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.51.tgz#cfd70924a25a3fd32b218e5e420e6897e1ac4f40" integrity sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ== -"@types/express-serve-static-core@*", "@types/express-serve-static-core@^4.17.18": +"@types/express-serve-static-core@*", "@types/express-serve-static-core@^4.17.31": version "4.17.31" resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.31.tgz#a1139efeab4e7323834bb0226e62ac019f474b2f" integrity sha512-DxMhY+NAsTwMMFHBTtJFNp5qiHKJ7TeqOo23zVEM9alT1Ml27Q3xcTH0xwxn7Q0BbMcVEJOs/7aQtUWupUQN3Q== @@ -4446,12 +4377,12 @@ "@types/range-parser" "*" "@types/express@*", "@types/express@^4.17.13": - version "4.17.14" - resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.14.tgz#143ea0557249bc1b3b54f15db4c81c3d4eb3569c" - integrity sha512-TEbt+vaPFQ+xpxFLFssxUDXj5cWCxZJjIcB7Yg0k0GMHGtgtQgpvx/MUQUeAkNbA9AAGrwkAsoeItdTgS7FMyg== + version "4.17.15" + resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.15.tgz#9290e983ec8b054b65a5abccb610411953d417ff" + integrity sha512-Yv0k4bXGOH+8a+7bELd2PqHQsuiANB+A8a4gnQrkRWzrkKlb6KHaVvyXhqs04sVW/OWlbPyYxRgYlIXLfrufMQ== dependencies: "@types/body-parser" "*" - "@types/express-serve-static-core" "^4.17.18" + "@types/express-serve-static-core" "^4.17.31" "@types/qs" "*" "@types/serve-static" "*" @@ -4501,9 +4432,9 @@ "@types/istanbul-lib-report" "*" "@types/jsdom@^20.0.0": - version "20.0.0" - resolved "https://registry.yarnpkg.com/@types/jsdom/-/jsdom-20.0.0.tgz#4414fb629465167f8b7b3804b9e067bdd99f1791" - integrity sha512-YfAchFs0yM1QPDrLm2VHe+WHGtqms3NXnXAMolrgrVP6fgBHHXy1ozAbo/dFtPNtZC/m66bPiCTWYmqp1F14gA== + version "20.0.1" + resolved "https://registry.yarnpkg.com/@types/jsdom/-/jsdom-20.0.1.tgz#07c14bc19bd2f918c1929541cdaacae894744808" + integrity sha512-d0r18sZPmMQr1eG35u12FZfhIXNrnsPU/g5wvRKCUf/tOGilKKwYMYGqh33BNR6ba+2gkHw1EUiHoN3mn7E5IQ== dependencies: "@types/node" "*" "@types/tough-cookie" "*" @@ -4519,12 +4450,12 @@ resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== -"@types/keyv@*": - version "4.2.0" - resolved "https://registry.yarnpkg.com/@types/keyv/-/keyv-4.2.0.tgz#65b97868ab757906f2dbb653590d7167ad023fa0" - integrity sha512-xoBtGl5R9jeKUhc8ZqeYaRDx04qqJ10yhhXYGmJ4Jr8qKpvMsDQQrNUvF/wUJ4klOtmJeJM+p2Xo3zp9uaC3tw== +"@types/keyv@^3.1.4": + version "3.1.4" + resolved "https://registry.yarnpkg.com/@types/keyv/-/keyv-3.1.4.tgz#3ccdb1c6751b0c7e52300bcdacd5bcbf8faa75b6" + integrity sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg== dependencies: - keyv "*" + "@types/node" "*" "@types/lru-cache@5.1.1", "@types/lru-cache@^5.1.0": version "5.1.1" @@ -4567,9 +4498,9 @@ form-data "^3.0.0" "@types/node@*": - version "18.11.9" - resolved "https://registry.yarnpkg.com/@types/node/-/node-18.11.9.tgz#02d013de7058cea16d36168ef2fc653464cfbad4" - integrity sha512-CRpX21/kGdzjOpFsZSkcrXMGIBWMGNIHXXBVFSH+ggkftxg+XYP20TESbh+zFvFj3EQOl5byk0HTRn1IL6hbqg== + version "18.11.17" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.11.17.tgz#5c009e1d9c38f4a2a9d45c0b0c493fe6cdb4bcb5" + integrity sha512-HJSUJmni4BeDHhfzn6nF0sVmd1SMezP7/4F0Lq+aXzmp2xm9O7WXrUtHW/CHlYVtZUbByEvWidHqRtcJXGF2Ng== "@types/node@^10.0.3": version "10.17.60" @@ -4604,9 +4535,9 @@ "@types/node" "*" "@types/prettier@^2.1.1", "@types/prettier@^2.1.5": - version "2.7.1" - resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.7.1.tgz#dfd20e2dc35f027cdd6c1908e80a5ddc7499670e" - integrity sha512-ri0UmynRRvZiiUJdiz38MmIblKK+oH30MztdBVR95dv/Ubw6neWSb8u1XpRb72L4qsZOhz+L+z9JD40SJmfWow== + version "2.7.2" + resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.7.2.tgz#6c2324641cc4ba050a8c710b2b251b377581fbf0" + integrity sha512-KufADq8uQqo1pYKVIYzfKbJfBAc0sOeXqGbFaSpv8MRmC/zXgowNZmFcbngndGk922QDmOASEXUZCaY48gs4cg== "@types/qs@*", "@types/qs@^6.2.31": version "6.9.7" @@ -4630,7 +4561,7 @@ dependencies: "@types/node" "*" -"@types/responselike@*", "@types/responselike@^1.0.0": +"@types/responselike@^1.0.0": version "1.0.0" resolved "https://registry.yarnpkg.com/@types/responselike/-/responselike-1.0.0.tgz#251f4fe7d154d2bad125abe1b429b23afd262e29" integrity sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA== @@ -4675,9 +4606,9 @@ "@types/node" "*" "@types/sinon-chai@^3.2.3": - version "3.2.8" - resolved "https://registry.yarnpkg.com/@types/sinon-chai/-/sinon-chai-3.2.8.tgz#5871d09ab50d671d8e6dd72e9073f8e738ac61dc" - integrity sha512-d4ImIQbT/rKMG8+AXpmcan5T2/PNeSjrYhvkwet6z0p8kzYtfgA32xzOBlbU0yqJfq+/0Ml805iFoODO0LP5/g== + version "3.2.9" + resolved "https://registry.yarnpkg.com/@types/sinon-chai/-/sinon-chai-3.2.9.tgz#71feb938574bbadcb176c68e5ff1a6014c5e69d4" + integrity sha512-/19t63pFYU0ikrdbXKBWj9PCdnKyTd0Qkz0X91Ta081cYsq90OxYdcWwK/dwEoDa6dtXgj2HJfmzgq+QZTHdmQ== dependencies: "@types/chai" "*" "@types/sinon" "*" @@ -4744,20 +4675,20 @@ integrity sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA== "@types/yargs@^17.0.8": - version "17.0.13" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.13.tgz#34cced675ca1b1d51fcf4d34c3c6f0fa142a5c76" - integrity sha512-9sWaruZk2JGxIQU+IhI1fhPYRcQ0UuTNuKuCW9bR5fp7qi2Llf7WDzNa17Cy7TKnh3cdxDOiyTu6gaLS0eDatg== + version "17.0.17" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.17.tgz#5672e5621f8e0fca13f433a8017aae4b7a2a03e7" + integrity sha512-72bWxFKTK6uwWJAVT+3rF6Jo6RTojiJ27FQo8Rf60AL+VZbzoVPnMFhKsUnbjR8A3BTCYQ7Mv3hnl8T0A+CX9g== dependencies: "@types/yargs-parser" "*" -"@typescript-eslint/eslint-plugin@^5.42.0": - version "5.42.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.42.0.tgz#36a8c0c379870127059889a9cc7e05c260d2aaa5" - integrity sha512-5TJh2AgL6+wpL8H/GTSjNb4WrjKoR2rqvFxR/DDTqYNk6uXn8BJMEcncLSpMbf/XV1aS0jAjYwn98uvVCiAywQ== +"@typescript-eslint/eslint-plugin@^5.46.1": + version "5.47.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.47.0.tgz#dadb79df3b0499699b155839fd6792f16897d910" + integrity sha512-AHZtlXAMGkDmyLuLZsRpH3p4G/1iARIwc/T0vIem2YB+xW6pZaXYXzCBnZSF/5fdM97R9QqZWZ+h3iW10XgevQ== dependencies: - "@typescript-eslint/scope-manager" "5.42.0" - "@typescript-eslint/type-utils" "5.42.0" - "@typescript-eslint/utils" "5.42.0" + "@typescript-eslint/scope-manager" "5.47.0" + "@typescript-eslint/type-utils" "5.47.0" + "@typescript-eslint/utils" "5.47.0" debug "^4.3.4" ignore "^5.2.0" natural-compare-lite "^1.4.0" @@ -4765,31 +4696,38 @@ semver "^7.3.7" tsutils "^3.21.0" -"@typescript-eslint/parser@^5.42.0": - version "5.42.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.42.0.tgz#be0ffbe279e1320e3d15e2ef0ad19262f59e9240" - integrity sha512-Ixh9qrOTDRctFg3yIwrLkgf33AHyEIn6lhyf5cCfwwiGtkWhNpVKlEZApi3inGQR/barWnY7qY8FbGKBO7p3JA== +"@typescript-eslint/experimental-utils@^5.0.0": + version "5.47.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-5.47.0.tgz#60f26e62d948f9977488825730007ec350bc1e44" + integrity sha512-DAP8xOaTAJLxouU0QrATiw8o/OHxxbUBXtkf9v+bCCU6tbJUn24xwB1dHFw3b5wYq4XvC1z5lYEN0g/Rx1sjzA== + dependencies: + "@typescript-eslint/utils" "5.47.0" + +"@typescript-eslint/parser@^5.46.1": + version "5.47.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.47.0.tgz#62e83de93499bf4b500528f74bf2e0554e3a6c8d" + integrity sha512-udPU4ckK+R1JWCGdQC4Qa27NtBg7w020ffHqGyAK8pAgOVuNw7YaKXGChk+udh+iiGIJf6/E/0xhVXyPAbsczw== dependencies: - "@typescript-eslint/scope-manager" "5.42.0" - "@typescript-eslint/types" "5.42.0" - "@typescript-eslint/typescript-estree" "5.42.0" + "@typescript-eslint/scope-manager" "5.47.0" + "@typescript-eslint/types" "5.47.0" + "@typescript-eslint/typescript-estree" "5.47.0" debug "^4.3.4" -"@typescript-eslint/scope-manager@5.42.0": - version "5.42.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.42.0.tgz#e1f2bb26d3b2a508421ee2e3ceea5396b192f5ef" - integrity sha512-l5/3IBHLH0Bv04y+H+zlcLiEMEMjWGaCX6WyHE5Uk2YkSGAMlgdUPsT/ywTSKgu9D1dmmKMYgYZijObfA39Wow== +"@typescript-eslint/scope-manager@5.47.0": + version "5.47.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.47.0.tgz#f58144a6b0ff58b996f92172c488813aee9b09df" + integrity sha512-dvJab4bFf7JVvjPuh3sfBUWsiD73aiftKBpWSfi3sUkysDQ4W8x+ZcFpNp7Kgv0weldhpmMOZBjx1wKN8uWvAw== dependencies: - "@typescript-eslint/types" "5.42.0" - "@typescript-eslint/visitor-keys" "5.42.0" + "@typescript-eslint/types" "5.47.0" + "@typescript-eslint/visitor-keys" "5.47.0" -"@typescript-eslint/type-utils@5.42.0": - version "5.42.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.42.0.tgz#4206d7192d4fe903ddf99d09b41d4ac31b0b7dca" - integrity sha512-HW14TXC45dFVZxnVW8rnUGnvYyRC0E/vxXShFCthcC9VhVTmjqOmtqj6H5rm9Zxv+ORxKA/1aLGD7vmlLsdlOg== +"@typescript-eslint/type-utils@5.47.0": + version "5.47.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.47.0.tgz#2b440979c574e317d3473225ae781f292c99e55d" + integrity sha512-1J+DFFrYoDUXQE1b7QjrNGARZE6uVhBqIvdaXTe5IN+NmEyD68qXR1qX1g2u4voA+nCaelQyG8w30SAOihhEYg== dependencies: - "@typescript-eslint/typescript-estree" "5.42.0" - "@typescript-eslint/utils" "5.42.0" + "@typescript-eslint/typescript-estree" "5.47.0" + "@typescript-eslint/utils" "5.47.0" debug "^4.3.4" tsutils "^3.21.0" @@ -4798,18 +4736,18 @@ resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.33.0.tgz#a1e59036a3b53ae8430ceebf2a919dc7f9af6d72" integrity sha512-zKp7CjQzLQImXEpLt2BUw1tvOMPfNoTAfb8l51evhYbOEEzdWyQNmHWWGPR6hwKJDAi+1VXSBmnhL9kyVTTOuQ== -"@typescript-eslint/types@5.42.0": - version "5.42.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.42.0.tgz#5aeff9b5eced48f27d5b8139339bf1ef805bad7a" - integrity sha512-t4lzO9ZOAUcHY6bXQYRuu+3SSYdD9TS8ooApZft4WARt4/f2Cj/YpvbTe8A4GuhT4bNW72goDMOy7SW71mZwGw== +"@typescript-eslint/types@5.47.0": + version "5.47.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.47.0.tgz#67490def406eaa023dbbd8da42ee0d0c9b5229d3" + integrity sha512-eslFG0Qy8wpGzDdYKu58CEr3WLkjwC5Usa6XbuV89ce/yN5RITLe1O8e+WFEuxnfftHiJImkkOBADj58ahRxSg== -"@typescript-eslint/typescript-estree@5.42.0": - version "5.42.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.42.0.tgz#2592d24bb5f89bf54a63384ff3494870f95b3fd8" - integrity sha512-2O3vSq794x3kZGtV7i4SCWZWCwjEtkWfVqX4m5fbUBomOsEOyd6OAD1qU2lbvV5S8tgy/luJnOYluNyYVeOTTg== +"@typescript-eslint/typescript-estree@5.47.0": + version "5.47.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.47.0.tgz#ed971a11c5c928646d6ba7fc9dfdd6e997649aca" + integrity sha512-LxfKCG4bsRGq60Sqqu+34QT5qT2TEAHvSCCJ321uBWywgE2dS0LKcu5u+3sMGo+Vy9UmLOhdTw5JHzePV/1y4Q== dependencies: - "@typescript-eslint/types" "5.42.0" - "@typescript-eslint/visitor-keys" "5.42.0" + "@typescript-eslint/types" "5.47.0" + "@typescript-eslint/visitor-keys" "5.47.0" debug "^4.3.4" globby "^11.1.0" is-glob "^4.0.3" @@ -4829,16 +4767,16 @@ semver "^7.3.5" tsutils "^3.21.0" -"@typescript-eslint/utils@5.42.0": - version "5.42.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.42.0.tgz#f06bd43b9a9a06ed8f29600273240e84a53f2f15" - integrity sha512-JZ++3+h1vbeG1NUECXQZE3hg0kias9kOtcQr3+JVQ3whnjvKuMyktJAAIj6743OeNPnGBmjj7KEmiDL7qsdnCQ== +"@typescript-eslint/utils@5.47.0": + version "5.47.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.47.0.tgz#b5005f7d2696769a1fdc1e00897005a25b3a0ec7" + integrity sha512-U9xcc0N7xINrCdGVPwABjbAKqx4GK67xuMV87toI+HUqgXj26m6RBp9UshEXcTrgCkdGYFzgKLt8kxu49RilDw== dependencies: "@types/json-schema" "^7.0.9" "@types/semver" "^7.3.12" - "@typescript-eslint/scope-manager" "5.42.0" - "@typescript-eslint/types" "5.42.0" - "@typescript-eslint/typescript-estree" "5.42.0" + "@typescript-eslint/scope-manager" "5.47.0" + "@typescript-eslint/types" "5.47.0" + "@typescript-eslint/typescript-estree" "5.47.0" eslint-scope "^5.1.1" eslint-utils "^3.0.0" semver "^7.3.7" @@ -4851,12 +4789,12 @@ "@typescript-eslint/types" "4.33.0" eslint-visitor-keys "^2.0.0" -"@typescript-eslint/visitor-keys@5.42.0": - version "5.42.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.42.0.tgz#ee8d62d486f41cfe646632fab790fbf0c1db5bb0" - integrity sha512-QHbu5Hf/2lOEOwy+IUw0GoSCuAzByTAWWrOTKzTzsotiUnWFpuKnXcAhC9YztAf2EElQ0VvIK+pHJUPkM0q7jg== +"@typescript-eslint/visitor-keys@5.47.0": + version "5.47.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.47.0.tgz#4aca4efbdf6209c154df1f7599852d571b80bb45" + integrity sha512-ByPi5iMa6QqDXe/GmT/hR6MZtVPi0SqMQPDx15FczCBXJo/7M8T88xReOALAfpBLm+zxpPfmhuEvPb577JRAEg== dependencies: - "@typescript-eslint/types" "5.42.0" + "@typescript-eslint/types" "5.47.0" eslint-visitor-keys "^3.3.0" "@vue/component-compiler-utils@^3.3.0": @@ -5279,10 +5217,10 @@ snarkjs "^0.4.13" typescript "^4.7.4" -"@webb-tools/semaphore-proof@0.0.1-3": - version "0.0.1-3" - resolved "https://registry.yarnpkg.com/@webb-tools/semaphore-proof/-/semaphore-proof-0.0.1-3.tgz#f4afd0bac4cbeeb3e41f86c408c38b58fa79b246" - integrity sha512-olEOS5KoHoBqUJNBbqR6fTMH2mWn5Mh+y1vRRYCqcgcc/NMMrjhUcxT9UhKKut8g6qOPKig77+kFmG5ls3FKdA== +"@webb-tools/semaphore-proof@0.0.1-5": + version "0.0.1-5" + resolved "https://registry.yarnpkg.com/@webb-tools/semaphore-proof/-/semaphore-proof-0.0.1-5.tgz#415e426a3ad150a6f14ed592e20fdf9578da27f2" + integrity sha512-npHN8F1KWI4mAaV57n2O4RKr0U1LseXM5vOyzFA9NygM2f9VPIscXGO7uZbfk7jXGRzUyUes9bkWDPYlUguq3w== dependencies: "@ethersproject/bytes" "^5.5.0" "@ethersproject/solidity" "^5.5.0" @@ -5319,10 +5257,10 @@ snarkjs "^0.4.13" typescript "^4.5.5" -"@webb-tools/semaphore@0.0.1-4": - version "0.0.1-4" - resolved "https://registry.yarnpkg.com/@webb-tools/semaphore/-/semaphore-0.0.1-4.tgz#8d72a9b5746b34379b2c23c74deebb1a9a8832a8" - integrity sha512-I5dub7fN+Qkr09XtFjGsPIHKJ6TQTi9Rw9m/dq70uO3puFhJL0mOPzTzB0CB1LXjpy7BMCkDB2bUqfpbJg9U8w== +"@webb-tools/semaphore@0.0.1-5": + version "0.0.1-5" + resolved "https://registry.yarnpkg.com/@webb-tools/semaphore/-/semaphore-0.0.1-5.tgz#a440a1deca809eb747fd1b8fd520aa229b0e0186" + integrity sha512-u1P2Pw/BliIbVMtGWGoIp22CaqkC5SEvdxNnTijaMq3AikjWoONz69wC5SolcblafiwTWQ7PL3FdNUnppqM/rw== dependencies: "@ethersproject/bytes" "^5.5.0" "@ethersproject/solidity" "^5.5.0" @@ -5331,7 +5269,7 @@ "@webb-tools/sdk-core" "0.1.4-108" "@webb-tools/semaphore-group" "0.0.1-4" "@webb-tools/semaphore-identity" "0.0.1-3" - "@webb-tools/semaphore-proof" "0.0.1-3" + "@webb-tools/semaphore-proof" "0.0.1-5" "@webb-tools/utils" "^0.2.7" circomlibjs "0.0.8" ethers "^5.6.8" @@ -5512,22 +5450,20 @@ resolved "https://registry.yarnpkg.com/@webb-tools/wasm-utils/-/wasm-utils-0.1.4-113.tgz#742fb5d1bd22acbc80c4b5bf8a116f622ebd5b38" integrity sha512-8MLiGFyGxnDS+iV6wZdtdBHDKFnySmTUD81SlvqJcCGQ+6VoHDP9Y1iYTm5cEW0fvpuwPtyJnDm6du/wcn3GKw== -"@webpack-cli/configtest@^1.2.0": - version "1.2.0" - resolved "https://registry.yarnpkg.com/@webpack-cli/configtest/-/configtest-1.2.0.tgz#7b20ce1c12533912c3b217ea68262365fa29a6f5" - integrity sha512-4FB8Tj6xyVkyqjj1OaTqCjXYULB9FMkqQ8yGrZjRDrYh0nOE+7Lhs45WioWQQMV+ceFlE368Ukhe6xdvJM9Egg== +"@webpack-cli/configtest@^2.0.1": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@webpack-cli/configtest/-/configtest-2.0.1.tgz#a69720f6c9bad6aef54a8fa6ba9c3533e7ef4c7f" + integrity sha512-njsdJXJSiS2iNbQVS0eT8A/KPnmyH4pv1APj2K0d1wrZcBLw+yppxOy4CGqa0OxDJkzfL/XELDhD8rocnIwB5A== -"@webpack-cli/info@^1.5.0": - version "1.5.0" - resolved "https://registry.yarnpkg.com/@webpack-cli/info/-/info-1.5.0.tgz#6c78c13c5874852d6e2dd17f08a41f3fe4c261b1" - integrity sha512-e8tSXZpw2hPl2uMJY6fsMswaok5FdlGNRTktvFk2sD8RjH0hE2+XistawJx1vmKteh4NmGmNUrp+Tb2w+udPcQ== - dependencies: - envinfo "^7.7.3" +"@webpack-cli/info@^2.0.1": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@webpack-cli/info/-/info-2.0.1.tgz#eed745799c910d20081e06e5177c2b2569f166c0" + integrity sha512-fE1UEWTwsAxRhrJNikE7v4EotYflkEhBL7EbajfkPlf6E37/2QshOy/D48Mw8G5XMFlQtS6YV42vtbG9zBpIQA== -"@webpack-cli/serve@^1.7.0": - version "1.7.0" - resolved "https://registry.yarnpkg.com/@webpack-cli/serve/-/serve-1.7.0.tgz#e1993689ac42d2b16e9194376cfb6753f6254db1" - integrity sha512-oxnCNGj88fL+xzV+dacXs44HcDwf1ovs3AuEzvP7mqXw7fQntqIhQ1BRmynh4qEKQSSSRSWVyXRjmTbZIX9V2Q== +"@webpack-cli/serve@^2.0.1": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@webpack-cli/serve/-/serve-2.0.1.tgz#34bdc31727a1889198855913db2f270ace6d7bf8" + integrity sha512-0G7tNyS+yW8TdgHwZKlDWYXFA6OJQnoLCQvYKkQP0Q2X205PSQ6RNUj0M+1OB/9gRQaUZ/ccYfaxd0nhaWKfjw== "@xtuc/ieee754@^1.2.0": version "1.2.0" @@ -5554,9 +5490,9 @@ integrity sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ== "@yarnpkg/parsers@^3.0.0-rc.18": - version "3.0.0-rc.27" - resolved "https://registry.yarnpkg.com/@yarnpkg/parsers/-/parsers-3.0.0-rc.27.tgz#6bc512f37bb514303158069d4273757dcfdda984" - integrity sha512-qs2wZulOYVjaOS6tYOs3SsR7m/qeHwjPrB5i4JtBJELsgWrEkyL+rJH21RA+fVwttJobAYQqw5Xj5SYLaDK/bQ== + version "3.0.0-rc.34" + resolved "https://registry.yarnpkg.com/@yarnpkg/parsers/-/parsers-3.0.0-rc.34.tgz#db1d16e082e167db6dbc67f1c264639e0b4c5e1a" + integrity sha512-NhEA0BusInyk7EiJ7i7qF1Mkrb6gGjZcQQ/W1xxGazxapubEmGO7v5WSll6hWxFXE2ngtLj8lflq1Ff5VtqEww== dependencies: js-yaml "^3.10.0" tslib "^2.4.0" @@ -5687,7 +5623,7 @@ acorn-walk@^8.0.2, acorn-walk@^8.1.1: resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.2.0.tgz#741210f2e2426454508853a2f44d0ab83b7f69c1" integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA== -acorn@^8.1.0, acorn@^8.4.1, acorn@^8.5.0, acorn@^8.7.1, acorn@^8.8.0: +acorn@^8.1.0, acorn@^8.4.1, acorn@^8.5.0, acorn@^8.7.1, acorn@^8.8.0, acorn@^8.8.1: version "8.8.1" resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.1.tgz#0a3f9cbecc4ec3bea6f0a80b66ae8dd2da250b73" integrity sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA== @@ -5766,9 +5702,9 @@ ajv@^6.10.0, ajv@^6.12.3, ajv@^6.12.4, ajv@^6.12.5: uri-js "^4.2.2" ajv@^8.0.0, ajv@^8.8.0: - version "8.11.0" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.11.0.tgz#977e91dd96ca669f54a11e23e378e33b884a565f" - integrity sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg== + version "8.11.2" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.11.2.tgz#aecb20b50607acf2569b6382167b65a96008bb78" + integrity sha512-E4bfmKAhGiSTvMfL1Myyycaub+cUEU2/IvpylXkUu7CHBkBj1f/ikdzbD7YQ6FKUbixDxeYvB/xY4fvyroDlQg== dependencies: fast-deep-equal "^3.1.1" json-schema-traverse "^1.0.0" @@ -5859,9 +5795,9 @@ antlr4ts@^0.5.0-alpha.4: integrity sha512-WPQDt1B74OfPv/IMS2ekXAKkTZIHl88uMetg6q3OTqgFxZ/dxDXI0EWLyZid/1Pe6hTftyg5N7gel5wNAGxXyQ== anymatch@^3.0.3, anymatch@~3.1.1, anymatch@~3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" - integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== + version "3.1.3" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" + integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== dependencies: normalize-path "^3.0.0" picomatch "^2.0.4" @@ -5872,9 +5808,9 @@ app-module-path@^2.2.0: integrity sha512-gkco+qxENJV+8vFcDiiFhuoSvRXb2a/QPqpSoWhVz829VNJfOTnELbBmPmNKFxf3xdNnw4DWCkzkDaavcX/1YQ== application-config-path@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/application-config-path/-/application-config-path-0.1.0.tgz#193c5f0a86541a4c66fba1e2dc38583362ea5e8f" - integrity sha512-lljTpVvFteShrHuKRvweZfa9o/Nc34Y8r5/1Lqh/yyKaspRT2J3fkEiSSk1YLG8ZSVyU7yHysRy9zcDDS2aH1Q== + version "0.1.1" + resolved "https://registry.yarnpkg.com/application-config-path/-/application-config-path-0.1.1.tgz#8b5ac64ff6afdd9bd70ce69f6f64b6998f5f756e" + integrity sha512-zy9cHePtMP0YhwG+CfHm0bgwdnga2X3gZexpdCwEj//dpb+TKajtiC8REEUJUSq6Ab4f9cgNy2l8ObXzCXFkEw== application-config@^2.0.0: version "2.0.0" @@ -5964,15 +5900,15 @@ array-ify@^1.0.0: resolved "https://registry.yarnpkg.com/array-ify/-/array-ify-1.0.0.tgz#9e528762b4a9066ad163a6962a364418e9626ece" integrity sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng== -array-includes@^3.1.4, array-includes@^3.1.5: - version "3.1.5" - resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.5.tgz#2c320010db8d31031fd2a5f6b3bbd4b1aad31bdb" - integrity sha512-iSDYZMMyTPkiFasVqfuAQnWAYcvO/SeBSCGKePoEthjp4LEMTe4uLc7b025o4jAZpHhihh8xPo99TNWUWWkGDQ== +array-includes@^3.1.4, array-includes@^3.1.5, array-includes@^3.1.6: + version "3.1.6" + resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.6.tgz#9e9e720e194f198266ba9e18c29e6a9b0e4b225f" + integrity sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw== dependencies: call-bind "^1.0.2" define-properties "^1.1.4" - es-abstract "^1.19.5" - get-intrinsic "^1.1.1" + es-abstract "^1.20.4" + get-intrinsic "^1.1.3" is-string "^1.0.7" array-union@^1.0.1: @@ -6007,7 +5943,7 @@ array.prototype.flat@^1.2.5: es-abstract "^1.20.4" es-shim-unscopables "^1.0.0" -array.prototype.flatmap@^1.3.0: +array.prototype.flatmap@^1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz#1aae7903c2100433cb8261cd4ed310aab5c4a183" integrity sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ== @@ -6017,7 +5953,7 @@ array.prototype.flatmap@^1.3.0: es-abstract "^1.20.4" es-shim-unscopables "^1.0.0" -array.prototype.reduce@^1.0.4: +array.prototype.reduce@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/array.prototype.reduce/-/array.prototype.reduce-1.0.5.tgz#6b20b0daa9d9734dd6bc7ea66b5bbce395471eac" integrity sha512-kDdugMl7id9COE8R7MHF5jWk7Dqt/fs4Pv+JXoICnYwqpjjjbUurz6w5fT5IG6brLdJhv6/VoHB0H7oyIBXd+Q== @@ -6028,6 +5964,17 @@ array.prototype.reduce@^1.0.4: es-array-method-boxes-properly "^1.0.0" is-string "^1.0.7" +array.prototype.tosorted@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/array.prototype.tosorted/-/array.prototype.tosorted-1.1.1.tgz#ccf44738aa2b5ac56578ffda97c03fd3e23dd532" + integrity sha512-pZYPXPRl2PqWcsUs6LOMn+1f1532nEoPTYowBtqLwAW+W8vSVhkIGnmOX1t/UQjD6YGI0vcD2B1U7ZFGQH9jnQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + es-shim-unscopables "^1.0.0" + get-intrinsic "^1.1.3" + arrify@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" @@ -6152,9 +6099,9 @@ aws4@^1.8.0: integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA== axios@^1.0.0: - version "1.1.3" - resolved "https://registry.yarnpkg.com/axios/-/axios-1.1.3.tgz#8274250dada2edf53814ed7db644b9c2866c1e35" - integrity sha512-00tXVRwKx/FZr/IDVFt4C+f9FYairX517WoGCL6dpOntqLkZofjhu43F/Xl44UOpqa+9sLFDrG/XAnFsUYgkDA== + version "1.2.1" + resolved "https://registry.yarnpkg.com/axios/-/axios-1.2.1.tgz#44cf04a3c9f0c2252ebd85975361c026cb9f864a" + integrity sha512-I88cFiGu9ryt/tfVEi4kX2SITsvDddTajXTOFmt2uK1ZVA8LytjtdeyefdQWEf5PU8w+4SSJDoYnggflB5tW4A== dependencies: follow-redirects "^1.15.0" form-data "^4.0.0" @@ -6326,12 +6273,12 @@ babel-helpers@^6.24.1: babel-runtime "^6.22.0" babel-template "^6.24.1" -babel-jest@^29.2.2: - version "29.2.2" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.2.2.tgz#2c15abd8c2081293c9c3f4f80a4ed1d51542fee5" - integrity sha512-kkq2QSDIuvpgfoac3WZ1OOcHsQQDU5xYk2Ql7tLdJ8BVAYbefEXal+NfS45Y5LVZA7cxC8KYcQMObpCt1J025w== +babel-jest@^29.3.1: + version "29.3.1" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.3.1.tgz#05c83e0d128cd48c453eea851482a38782249f44" + integrity sha512-aard+xnMoxgjwV70t0L6wkW/3HQQtV+O0PEimxKgzNqCJnbYmroPojdP2tqKSOAt8QAKV/uSZU8851M7B5+fcA== dependencies: - "@jest/transform" "^29.2.2" + "@jest/transform" "^29.3.1" "@types/babel__core" "^7.1.14" babel-plugin-istanbul "^6.1.1" babel-preset-jest "^29.2.0" @@ -6885,9 +6832,9 @@ big.js@^6.0.3: integrity sha512-bCtHMwL9LeDIozFn+oNhhFoq+yQ3BNdnsLSASUxLciOb1vgvpHsIO1dsENiGMgbb4SkP5TrzWzRiLddn8ahVOQ== bigint-crypto-utils@^3.0.23: - version "3.1.7" - resolved "https://registry.yarnpkg.com/bigint-crypto-utils/-/bigint-crypto-utils-3.1.7.tgz#c4c1b537c7c1ab7aadfaecf3edfd45416bf2c651" - integrity sha512-zpCQpIE2Oy5WIQpjC9iYZf8Uh9QqoS51ZCooAcNvzv1AQ3VWdT52D0ksr1+/faeK8HVIej1bxXcP75YcqH3KPA== + version "3.1.8" + resolved "https://registry.yarnpkg.com/bigint-crypto-utils/-/bigint-crypto-utils-3.1.8.tgz#e2e0f40cf45488f9d7f0e32ff84152aa73819d5d" + integrity sha512-+VMV9Laq8pXLBKKKK49nOoq9bfR3j7NNQAtbA617a4nw9bVLo8rsqkKMBgM2AJWlNX9fEIyYaYX+d0laqYV4tw== dependencies: bigint-mod-arith "^3.1.0" @@ -6897,9 +6844,9 @@ bigint-mod-arith@^3.1.0: integrity sha512-nx8J8bBeiRR+NlsROFH9jHswW5HO8mgfOSqW0AmjicMMvaONDa8AO+5ViKDUUNytBPWiwfvZP4/Bj4Y3lUfvgQ== bignumber.js@*, bignumber.js@^9.0.0, bignumber.js@^9.0.1: - version "9.1.0" - resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.1.0.tgz#8d340146107fe3a6cb8d40699643c302e8773b62" - integrity sha512-4LwHK4nfDOraBCtst+wOWIHbu1vhvAPJK8g8nROd4iuc3PSEjWif/qwbkh8jwCJz6yDBvtU4KPynETgrfh7y3A== + version "9.1.1" + resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.1.1.tgz#c4df7dc496bd849d4c9464344c1aa74228b4dac6" + integrity sha512-pHm4LsMJ6lzgNGVfZHjMoO8sdoRhOzOH4MLmY65Jg70bpxCKu5iOHNJyfF6OyvYw7t8Fpf35RuzUyqnQsj8Vig== bignumber.js@^7.2.1: version "7.2.1" @@ -7433,9 +7380,9 @@ camelcase@^6.0.0, camelcase@^6.2.0: integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== caniuse-lite@^1.0.30000844, caniuse-lite@^1.0.30001400: - version "1.0.30001430" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001430.tgz#638a8ae00b5a8a97e66ff43733b2701f81b101fa" - integrity sha512-IB1BXTZKPDVPM7cnV4iaKaHxckvdr/3xtctB3f7Hmenx3qYBhGtTZ//7EllK66aKXW98Lx0+7Yr0kxBtIt3tzg== + version "1.0.30001439" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001439.tgz#ab7371faeb4adff4b74dad1718a6fd122e45d9cb" + integrity sha512-1MgUzEkoMO6gKfXflStpYgZDlFM7M/ck/bgfVCACO5vnAf0fXoNVHdWtqGU+MYca+4bL9Z5bpOVmR33cWW9G2A== caseless@^0.12.0, caseless@~0.12.0: version "0.12.0" @@ -7456,13 +7403,13 @@ cbor@^5.2.0: nofilter "^1.0.4" chai@^4.2.0, chai@^4.3.5: - version "4.3.6" - resolved "https://registry.yarnpkg.com/chai/-/chai-4.3.6.tgz#ffe4ba2d9fa9d6680cc0b370adae709ec9011e9c" - integrity sha512-bbcp3YfHCUzMOvKqsztczerVgBKSsEijCySNlHHbX3VG1nskvqjz5Rfso1gGwD6w6oOV3eI60pKuMOV5MV7p3Q== + version "4.3.7" + resolved "https://registry.yarnpkg.com/chai/-/chai-4.3.7.tgz#ec63f6df01829088e8bf55fca839bcd464a8ec51" + integrity sha512-HLnAzZ2iupm25PlN0xFreAlBA5zaBSv3og0DdeGA4Ar6h6rJ3A0rolRUKJhSF2V10GZKDgWF/VmAEsNWjCRB+A== dependencies: assertion-error "^1.1.0" check-error "^1.0.2" - deep-eql "^3.0.1" + deep-eql "^4.1.2" get-func-name "^2.0.0" loupe "^2.3.1" pathval "^1.1.1" @@ -7565,9 +7512,9 @@ check-error@^1.0.2: integrity sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA== check-types@^11.1.1: - version "11.1.2" - resolved "https://registry.yarnpkg.com/check-types/-/check-types-11.1.2.tgz#86a7c12bf5539f6324eb0e70ca8896c0e38f3e2f" - integrity sha512-tzWzvgePgLORb9/3a0YenggReLKAIb2owL03H2Xdoe5pKcUyWRSEQ8xfCar8t2SIAuEDwtmx2da1YB52YuHQMQ== + version "11.2.2" + resolved "https://registry.yarnpkg.com/check-types/-/check-types-11.2.2.tgz#7afc0b6a860d686885062f2dba888ba5710335b4" + integrity sha512-HBiYvXvn9Z70Z88XKjz3AEKd4HJhBXsa3j7xFnITAzoS8+q6eIGi8qDB8FKPBAjtuxjI/zFpwuiCb8oDtKOYrA== checkpoint-store@^1.1.0: version "1.1.0" @@ -7652,9 +7599,9 @@ ci-info@^2.0.0: integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== ci-info@^3.2.0: - version "3.5.0" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.5.0.tgz#bfac2a29263de4c829d806b1ab478e35091e171f" - integrity sha512-yH4RezKOGlOhxkmhbeNuC4eYZKAUsEaGtBuBzDDP1eFUKiccDWzBABxBfOx31IDwDIXMTxWuwAxUGModvkbuVw== + version "3.7.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.7.0.tgz#6d01b3696c59915b6ce057e4aa4adfc2fa25f5ef" + integrity sha512-2CpRNYmImPx+RXKLq6jko/L07phmS9I02TyqkcNU20GCF/GgaWvc58hPtjxDX8lPpkdwc9sNh72V9k00S7ezog== cids@^0.7.1: version "0.7.5" @@ -7958,11 +7905,16 @@ commander@^4.0.1: resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068" integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== -commander@^7.0.0, commander@^7.2.0: +commander@^7.2.0: version "7.2.0" resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== +commander@^9.4.1: + version "9.4.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-9.4.1.tgz#d1dd8f2ce6faf93147295c0df13c7c21141cfbdd" + integrity sha512-5EEkTNyHNGFPD2H+c/dXXfQZYa/scCKasxWcXJaWnNJ99pnQN9Vnmqow+p+PlFPE63Q6mThaZws1T+HxfpgtPw== + common-ancestor-path@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/common-ancestor-path/-/common-ancestor-path-1.0.1.tgz#4f7d2d1394d91b7abdf51871c62f71eadb0182a7" @@ -8179,11 +8131,16 @@ conventional-recommended-bump@^6.1.0: meow "^8.0.0" q "^1.5.1" -convert-source-map@^1.1.0, convert-source-map@^1.4.0, convert-source-map@^1.5.1, convert-source-map@^1.6.0, convert-source-map@^1.7.0: +convert-source-map@^1.1.0, convert-source-map@^1.5.1, convert-source-map@^1.6.0, convert-source-map@^1.7.0: version "1.9.0" resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.9.0.tgz#7faae62353fb4213366d0ca98358d22e8368b05f" integrity sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A== +convert-source-map@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a" + integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== + cookie-signature@1.0.6: version "1.0.6" resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" @@ -8223,16 +8180,16 @@ copyfiles@^2.4.1: yargs "^16.1.0" core-js-compat@^3.25.1: - version "3.26.0" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.26.0.tgz#94e2cf8ba3e63800c4956ea298a6473bc9d62b44" - integrity sha512-piOX9Go+Z4f9ZiBFLnZ5VrOpBl0h7IGCkiFUN11QTe6LjAvOT3ifL/5TdoizMh99hcGy5SoLyWbapIY/PIb/3A== + version "3.26.1" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.26.1.tgz#0e710b09ebf689d719545ac36e49041850f943df" + integrity sha512-622/KzTudvXCDLRw70iHW4KKs1aGpcRcowGWyYJr2DEBfRrd6hNJybxSWJFuZYD4ma86xhrwDDHxmDaIq4EA8A== dependencies: browserslist "^4.21.4" core-js-pure@^3.0.1: - version "3.26.0" - resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.26.0.tgz#7ad8a5dd7d910756f3124374b50026e23265ca9a" - integrity sha512-LiN6fylpVBVwT8twhhluD9TzXmZQQsr2I2eIKtWNbZI1XMfBT7CV18itaN6RA7EtQd/SDdRx/wzvAShX2HvhQA== + version "3.26.1" + resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.26.1.tgz#653f4d7130c427820dcecd3168b594e8bb095a33" + integrity sha512-VVXcDpp/xJ21KdULRq/lXdLzQAtX7+37LzpyfFM973il0tWSsDEoyzG38G14AjTpK9VTfiNM9jnFauq/CpaWGQ== core-js@^2.4.0, core-js@^2.5.0: version "2.6.12" @@ -8258,9 +8215,9 @@ cors@^2.8.1: vary "^1" cosmiconfig@^7.0.0: - version "7.0.1" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.0.1.tgz#714d756522cace867867ccb4474c5d01bbae5d6d" - integrity sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ== + version "7.1.0" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.1.0.tgz#1443b9afa596b670082ea46cbd8f6a62b84635f6" + integrity sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA== dependencies: "@types/parse-json" "^4.0.0" import-fresh "^3.2.1" @@ -8523,15 +8480,15 @@ decamelize@^4.0.0: resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-4.0.0.tgz#aa472d7bf660eb15f3494efd531cab7f2a709837" integrity sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ== -decimal.js@^10.4.1: - version "10.4.2" - resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.4.2.tgz#0341651d1d997d86065a2ce3a441fbd0d8e8b98e" - integrity sha512-ic1yEvwT6GuvaYwBLLY6/aFFgjZdySKTE8en/fkU3QICTmRtgtSlFn0u0BXN06InZwtfCelR7j8LRiDI/02iGA== +decimal.js@^10.4.2: + version "10.4.3" + resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.4.3.tgz#1044092884d245d1b7f65725fa4ad4c6f781cc23" + integrity sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA== decode-uri-component@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" - integrity sha512-hjf+xovcEn31w/EUYdTXQh/8smFL/dzYjohQGEIgjyNavaJfBY2p5F527Bo1VPATxv0VYTUC2bOcXvqFwk78Og== + version "0.2.2" + resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.2.tgz#e69dbe25d37941171dd540e024c444cd5188e1e9" + integrity sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ== decompress-response@^3.3.0: version "3.3.0" @@ -8552,10 +8509,10 @@ dedent@^0.7.0: resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c" integrity sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA== -deep-eql@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-3.0.1.tgz#dfc9404400ad1c8fe023e7da1df1c147c4b444df" - integrity sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw== +deep-eql@^4.1.2: + version "4.1.3" + resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-4.1.3.tgz#7c7775513092f7df98d8df9996dd085eb668cc6d" + integrity sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw== dependencies: type-detect "^4.0.0" @@ -8786,9 +8743,9 @@ detective-postcss@^4.0.0: postcss-values-parser "^2.0.1" detective-postcss@^5.0.0: - version "5.1.1" - resolved "https://registry.yarnpkg.com/detective-postcss/-/detective-postcss-5.1.1.tgz#ec23ac3818f8be95ac3a38a8b9f3b6d43103ef87" - integrity sha512-YJMsvA0Y6/ST9abMNcQytl9iFQ2bfu4I7B74IUiAvyThfaI9Y666yipL+SrqfReoIekeIEwmGH72oeqX63mwUw== + version "5.1.3" + resolved "https://registry.yarnpkg.com/detective-postcss/-/detective-postcss-5.1.3.tgz#773314cd017621b7d382be81331eb0c7abbe8cc3" + integrity sha512-Wo7PUpF6wqeT1aRgajdyIdDRjFFJVxlXPRAlT1aankH/RVOgrJuEZFZ4ABxYXdzaRPO5Lkg8rHxsxpLnxdJIYA== dependencies: is-url "^1.2.4" postcss "^8.4.6" @@ -8833,10 +8790,10 @@ dezalgo@^1.0.0: asap "^2.0.0" wrappy "1" -diff-sequences@^29.2.0: - version "29.2.0" - resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.2.0.tgz#4c55b5b40706c7b5d2c5c75999a50c56d214e8f6" - integrity sha512-413SY5JpYeSBZxmenGEmCVQ8mCgtFJF0w9PROdaS6z987XC2Pd2GOKqOITLtMftmyFZqgtCOb/QA7/Z3ZXfzIw== +diff-sequences@^29.3.1: + version "29.3.1" + resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.3.1.tgz#104b5b95fe725932421a9c6e5b4bef84c3f2249e" + integrity sha512-hlM3QR272NXCi4pq+N4Kok4kOp6EsgOM3ZSpJI7Da3UAs+Ttsi8MRmB6trM/lhyzUxGfOgnpkHtgqm5Q/CTcfQ== diff@3.5.0: version "3.5.0" @@ -9115,9 +9072,9 @@ end-of-stream@^1.1.0, end-of-stream@^1.4.1: once "^1.4.0" enhanced-resolve@^5.10.0, enhanced-resolve@^5.8.3: - version "5.10.0" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.10.0.tgz#0dc579c3bb2a1032e357ac45b8f3a6f3ad4fb1e6" - integrity sha512-T0yTFjdpldGY8PmuXXR0PyQ1ufZpEGiHVrp7zHKB7jdR4qlmZHhONVM5AQOAWXuF/w3dnHbEQVrNptJgt7F+cQ== + version "5.12.0" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.12.0.tgz#300e1c90228f5b570c4d35babf263f6da7155634" + integrity sha512-QHTXI/sZQmko1cbDoNAa3mJ5qhWUUNAq3vR0/YiD379fWQrcfuoX1+HW2S0MTt7XmoPLapdaDKUtelUSPic7hQ== dependencies: graceful-fs "^4.2.4" tapable "^2.2.0" @@ -9163,10 +9120,10 @@ error-ex@^1.2.0, error-ex@^1.3.1: dependencies: is-arrayish "^0.2.1" -es-abstract@^1.19.0, es-abstract@^1.19.1, es-abstract@^1.19.5, es-abstract@^1.20.1, es-abstract@^1.20.4: - version "1.20.4" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.20.4.tgz#1d103f9f8d78d4cf0713edcd6d0ed1a46eed5861" - integrity sha512-0UtvRN79eMe2L+UNEF1BwRe364sj/DXhQ/k5FmivgoSdpM90b8Jc0mDzKMGo7QS0BVbOP/bTwBKNnDc9rNzaPA== +es-abstract@^1.19.0, es-abstract@^1.20.4: + version "1.20.5" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.20.5.tgz#e6dc99177be37cacda5988e692c3fa8b218e95d2" + integrity sha512-7h8MM2EQhsCA7pU/Nv78qOXFpD8Rhqd12gYiSJVkrH9+e8VuA8JlPJK/hQjjlLv6pJvx/z1iRFKzYb0XT/RuAQ== dependencies: call-bind "^1.0.2" es-to-primitive "^1.2.1" @@ -9174,6 +9131,7 @@ es-abstract@^1.19.0, es-abstract@^1.19.1, es-abstract@^1.19.5, es-abstract@^1.20 function.prototype.name "^1.1.5" get-intrinsic "^1.1.3" get-symbol-description "^1.0.0" + gopd "^1.0.1" has "^1.0.3" has-property-descriptors "^1.0.0" has-symbols "^1.0.3" @@ -9189,8 +9147,8 @@ es-abstract@^1.19.0, es-abstract@^1.19.1, es-abstract@^1.19.5, es-abstract@^1.20 object.assign "^4.1.4" regexp.prototype.flags "^1.4.3" safe-regex-test "^1.0.0" - string.prototype.trimend "^1.0.5" - string.prototype.trimstart "^1.0.5" + string.prototype.trimend "^1.0.6" + string.prototype.trimstart "^1.0.6" unbox-primitive "^1.0.2" es-array-method-boxes-properly@^1.0.0: @@ -9312,6 +9270,15 @@ eslint-module-utils@^2.7.3: dependencies: debug "^3.2.7" +eslint-plugin-deprecation@^1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/eslint-plugin-deprecation/-/eslint-plugin-deprecation-1.3.3.tgz#065b5d36ff220afe139f2b19af57454a13464731" + integrity sha512-Bbkv6ZN2cCthVXz/oZKPwsSY5S/CbgTLRG4Q2s2gpPpgNsT0uJ0dB5oLNiWzFYY8AgKX4ULxXFG1l/rDav9QFA== + dependencies: + "@typescript-eslint/experimental-utils" "^5.0.0" + tslib "^2.3.1" + tsutils "^3.21.0" + eslint-plugin-es@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/eslint-plugin-es/-/eslint-plugin-es-4.1.0.tgz#f0822f0c18a535a97c3e714e89f88586a7641ec9" @@ -9325,10 +9292,10 @@ eslint-plugin-header@^3.1.1: resolved "https://registry.yarnpkg.com/eslint-plugin-header/-/eslint-plugin-header-3.1.1.tgz#6ce512432d57675265fac47292b50d1eff11acd6" integrity sha512-9vlKxuJ4qf793CmeeSrZUvVClw6amtpghq3CuWcB5cUNnWHQhgcqy5eF8oVKFk1G3Y/CbchGfEaw3wiIJaNmVg== -eslint-plugin-import-newlines@^1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/eslint-plugin-import-newlines/-/eslint-plugin-import-newlines-1.2.3.tgz#f678b242e64076365f48c31a271f1692b6437b7a" - integrity sha512-UQBhG7dcIoBjaPjbcudqqcKYQVhYXnu9NBB7d8pBnDFZP4GTNPdszpeUbvSxcp/JyBE4TsUZt5u/UtEVioxh9g== +eslint-plugin-import-newlines@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-import-newlines/-/eslint-plugin-import-newlines-1.3.0.tgz#70151703aa0c0e73f0d5b3b763d26ef228efa17d" + integrity sha512-8rokf6NvxC10ugA1VNmzEIO75CzId7IDF3Ai2GNXl0Xr4VORpb8u+bxsjRuE+2BS8MfDbrK/MHUQZI2G9qQyyA== eslint-plugin-import@^2.26.0: version "2.26.0" @@ -9349,19 +9316,19 @@ eslint-plugin-import@^2.26.0: resolve "^1.22.0" tsconfig-paths "^3.14.1" -eslint-plugin-n@^15.4.0: - version "15.4.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-n/-/eslint-plugin-n-15.4.0.tgz#1cfe9faff1b914ecc8f71433d228eaa5fc65b111" - integrity sha512-MkoKy9/lfd52TAXK4fkABgCp0aglk82Q3viy2UOWIEpTVE/Cem5P/UAxMBA4vSw7Gy+2egPqImE9euitLGp5aw== +eslint-plugin-n@^15.6.0: + version "15.6.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-n/-/eslint-plugin-n-15.6.0.tgz#cfb1d2e2e427d620eb9008f8b3b5a40de0c84120" + integrity sha512-Hd/F7wz4Mj44Jp0H6Jtty13NcE69GNTY0rVlgTIj1XBnGGVI6UTdDrpE6vqu3AHo07bygq/N+7OH/lgz1emUJw== dependencies: builtins "^5.0.1" eslint-plugin-es "^4.1.0" eslint-utils "^3.0.0" ignore "^5.1.1" - is-core-module "^2.10.0" + is-core-module "^2.11.0" minimatch "^3.1.2" resolve "^1.22.1" - semver "^7.3.7" + semver "^7.3.8" eslint-plugin-promise@^6.1.1: version "6.1.1" @@ -9373,25 +9340,26 @@ eslint-plugin-react-hooks@^4.6.0: resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz#4c3e697ad95b77e93f8646aaa1630c1ba607edd3" integrity sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g== -eslint-plugin-react@^7.31.10: - version "7.31.10" - resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.31.10.tgz#6782c2c7fe91c09e715d536067644bbb9491419a" - integrity sha512-e4N/nc6AAlg4UKW/mXeYWd3R++qUano5/o+t+wnWxIf+bLsOaH3a4q74kX3nDjYym3VBN4HyO9nEn1GcAqgQOA== +eslint-plugin-react@^7.31.11: + version "7.31.11" + resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.31.11.tgz#011521d2b16dcf95795df688a4770b4eaab364c8" + integrity sha512-TTvq5JsT5v56wPa9OYHzsrOlHzKZKjV+aLgS+55NJP/cuzdiQPC7PfYoUjMoxlffKtvijpk7vA/jmuqRb9nohw== dependencies: - array-includes "^3.1.5" - array.prototype.flatmap "^1.3.0" + array-includes "^3.1.6" + array.prototype.flatmap "^1.3.1" + array.prototype.tosorted "^1.1.1" doctrine "^2.1.0" estraverse "^5.3.0" jsx-ast-utils "^2.4.1 || ^3.0.0" minimatch "^3.1.2" - object.entries "^1.1.5" - object.fromentries "^2.0.5" - object.hasown "^1.1.1" - object.values "^1.1.5" + object.entries "^1.1.6" + object.fromentries "^2.0.6" + object.hasown "^1.1.2" + object.values "^1.1.6" prop-types "^15.8.1" resolve "^2.0.0-next.3" semver "^6.3.0" - string.prototype.matchall "^4.0.7" + string.prototype.matchall "^4.0.8" eslint-plugin-simple-import-sort@^8.0.0: version "8.0.0" @@ -9450,13 +9418,13 @@ eslint-visitor-keys@^3.3.0: resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz#f6480fa6b1f30efe2d1968aa8ac745b862469826" integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA== -eslint@^8.26.0: - version "8.26.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.26.0.tgz#2bcc8836e6c424c4ac26a5674a70d44d84f2181d" - integrity sha512-kzJkpaw1Bfwheq4VXUezFriD1GxszX6dUekM7Z3aC2o4hju+tsR/XyTC3RcoSD7jmy9VkPU3+N6YjVU2e96Oyg== +eslint@^8.29.0: + version "8.30.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.30.0.tgz#83a506125d089eef7c5b5910eeea824273a33f50" + integrity sha512-MGADB39QqYuzEGov+F/qb18r4i7DohCDOfatHaxI2iGlPuC65bwG2gxgO+7DkyL38dRFaRH7RaRAgU6JKL9rMQ== dependencies: - "@eslint/eslintrc" "^1.3.3" - "@humanwhocodes/config-array" "^0.11.6" + "@eslint/eslintrc" "^1.4.0" + "@humanwhocodes/config-array" "^0.11.8" "@humanwhocodes/module-importer" "^1.0.1" "@nodelib/fs.walk" "^1.2.8" ajv "^6.10.0" @@ -9475,7 +9443,7 @@ eslint@^8.26.0: file-entry-cache "^6.0.1" find-up "^5.0.0" glob-parent "^6.0.2" - globals "^13.15.0" + globals "^13.19.0" grapheme-splitter "^1.0.4" ignore "^5.2.0" import-fresh "^3.0.0" @@ -9496,9 +9464,9 @@ eslint@^8.26.0: text-table "^0.2.0" espree@^9.4.0: - version "9.4.0" - resolved "https://registry.yarnpkg.com/espree/-/espree-9.4.0.tgz#cd4bc3d6e9336c433265fc0aa016fc1aaf182f8a" - integrity sha512-DQmnRpLj7f6TgN/NYb0MTzJXL+vJF9h3pHy4JhCIs3zwcgez8xmGg3sXHcEO97BrmO2OSvCwMdfdlyl+E9KjOw== + version "9.4.1" + resolved "https://registry.yarnpkg.com/espree/-/espree-9.4.1.tgz#51d6092615567a2c2cff7833445e37c28c0065bd" + integrity sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg== dependencies: acorn "^8.8.0" acorn-jsx "^5.3.2" @@ -9951,7 +9919,7 @@ ethereumjs-util@^5.0.0, ethereumjs-util@^5.0.1, ethereumjs-util@^5.1.1, ethereum rlp "^2.0.0" safe-buffer "^5.1.1" -ethereumjs-util@^7.0.10, ethereumjs-util@^7.0.2, ethereumjs-util@^7.1.0, ethereumjs-util@^7.1.4, ethereumjs-util@^7.1.5: +ethereumjs-util@^7.0.10, ethereumjs-util@^7.0.2, ethereumjs-util@^7.1.0, ethereumjs-util@^7.1.1, ethereumjs-util@^7.1.2, ethereumjs-util@^7.1.4, ethereumjs-util@^7.1.5: version "7.1.5" resolved "https://registry.yarnpkg.com/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz#9ecf04861e4fbbeed7465ece5f23317ad1129181" integrity sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg== @@ -10179,16 +10147,16 @@ expand-brackets@^2.1.4: snapdragon "^0.8.1" to-regex "^3.0.1" -expect@^29.2.2: - version "29.2.2" - resolved "https://registry.yarnpkg.com/expect/-/expect-29.2.2.tgz#ba2dd0d7e818727710324a6e7f13dd0e6d086106" - integrity sha512-hE09QerxZ5wXiOhqkXy5d2G9ar+EqOyifnCXCpMNu+vZ6DG9TJ6CO2c2kPDSLqERTTWrO7OZj8EkYHQqSd78Yw== +expect@^29.3.1: + version "29.3.1" + resolved "https://registry.yarnpkg.com/expect/-/expect-29.3.1.tgz#92877aad3f7deefc2e3f6430dd195b92295554a6" + integrity sha512-gGb1yTgU30Q0O/tQq+z30KBWv24ApkMgFUpvKBkyLUBL68Wv8dHdJxTBZFl/iT8K/bqDHvUYRH6IIN3rToopPA== dependencies: - "@jest/expect-utils" "^29.2.2" + "@jest/expect-utils" "^29.3.1" jest-get-type "^29.2.0" - jest-matcher-utils "^29.2.2" - jest-message-util "^29.2.1" - jest-util "^29.2.1" + jest-matcher-utils "^29.3.1" + jest-message-util "^29.3.1" + jest-util "^29.3.1" express@^4.14.0, express@^4.17.3: version "4.18.2" @@ -10349,9 +10317,9 @@ fastfile@0.0.20: integrity sha512-r5ZDbgImvVWCP0lA/cGNgQcZqR+aYdFx3u+CtJqUE510pBUVGMn4ulL/iRTI4tACTYsNJ736uzFxEBXesPAktA== fastq@^1.6.0: - version "1.13.0" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.13.0.tgz#616760f88a7526bdfc596b7cab8c18938c36b98c" - integrity sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw== + version "1.14.0" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.14.0.tgz#107f69d7295b11e0fccc264e1fc6389f623731ce" + integrity sha512-eR2D+V9/ExcbF9ls441yIuN6TI2ED1Y2ZcA5BmMtJsOkWOFRJQ0Jt0g1UwqXJJVAb+V+umH5Dfr8oh4EVP7VVg== dependencies: reusify "^1.0.4" @@ -10745,6 +10713,15 @@ fs-extra@^10.0.0, fs-extra@^10.1.0: jsonfile "^6.0.1" universalify "^2.0.0" +fs-extra@^11.1.0: + version "11.1.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-11.1.0.tgz#5784b102104433bb0e090f48bfc4a30742c357ed" + integrity sha512-0rcTq621PD5jM/e0a3EJoGC/1TC5ZBCERW82LQuwfGnCa1V8w7dpYH1yNu+SLb6E5dkeCBzKEyLGlFrnr+dUyw== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^2.0.0" + fs-extra@^4.0.2, fs-extra@^4.0.3: version "4.0.3" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-4.0.3.tgz#0d852122e5bc5beb453fb028e9c0c9bf36340c94" @@ -10900,7 +10877,7 @@ ganache@7.4.1: bufferutil "4.0.5" utf-8-validate "5.0.7" -gauge@^4.0.3, gauge@^v4.0.4: +gauge@^4.0.3: version "4.0.4" resolved "https://registry.yarnpkg.com/gauge/-/gauge-4.0.4.tgz#52ff0652f2bbf607a989793d53b751bef2328dce" integrity sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg== @@ -10914,6 +10891,20 @@ gauge@^4.0.3, gauge@^v4.0.4: strip-ansi "^6.0.1" wide-align "^1.1.5" +gauge@^v5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/gauge/-/gauge-5.0.0.tgz#e270ca9d97dae84abf64e5277ef1ebddc7dd1e2f" + integrity sha512-0s5T5eciEG7Q3ugkxAkFtaDhrrhXsCRivA5y8C9WMHWuI8UlMOJg7+Iwf7Mccii+Dfs3H5jHepU0joPVyQU0Lw== + dependencies: + aproba "^1.0.3 || ^2.0.0" + color-support "^1.1.3" + console-control-strings "^1.1.0" + has-unicode "^2.0.1" + signal-exit "^3.0.7" + string-width "^4.2.3" + strip-ansi "^6.0.1" + wide-align "^1.1.5" + gensync@^1.0.0-beta.2: version "1.0.0-beta.2" resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" @@ -10942,7 +10933,7 @@ get-func-name@^2.0.0: resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.0.tgz#ead774abee72e20409433a066366023dd6887a41" integrity sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig== -get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3: +get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.3.tgz#063c84329ad93e83893c7f4f243ef63ffa351385" integrity sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A== @@ -11050,15 +11041,15 @@ gh-release-assets@^2.0.0: simple-get "^4.0.0" util-extend "^1.0.1" -gh-release@^6.0.4: - version "6.0.4" - resolved "https://registry.yarnpkg.com/gh-release/-/gh-release-6.0.4.tgz#367e0bd09d2bc020b2372e16fb026e17dc83b09b" - integrity sha512-6djoVxTUpbw9GZ/mveNjp5j/IDPY3KACscSlmNwwfkR+EQCNTSgGRywb0TRaQdA36RnwtcNOWEaLwB5ez7jSRg== +gh-release@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/gh-release/-/gh-release-7.0.0.tgz#6779ed6edf1cddd1f6689a8ea6ec02c7925eb5d4" + integrity sha512-Ugl1kHbyTe/KCPl8dmN9UGDNUw2K6Fh5owOvyllMsYGMyw4nklNBkgCad0a19xu3xR+/9iIV/5+wRIbo0S20Gg== dependencies: - "@octokit/rest" "^18.0.9" + "@octokit/rest" "^19.0.5" changelog-parser "^2.0.0" deep-extend "^0.6.0" - gauge "^v4.0.4" + gauge "^v5.0.0" gh-release-assets "^2.0.0" ghauth "^5.0.0" github-url-to-object "^4.0.4" @@ -11219,9 +11210,9 @@ glob@^8.0.1, glob@^8.0.3: once "^1.3.0" global-dirs@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-3.0.0.tgz#70a76fe84ea315ab37b1f5576cbde7d48ef72686" - integrity sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA== + version "3.0.1" + resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-3.0.1.tgz#0c488971f066baceda21447aecb1a8b911d22485" + integrity sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA== dependencies: ini "2.0.0" @@ -11238,10 +11229,10 @@ globals@^11.1.0: resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== -globals@^13.15.0: - version "13.17.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-13.17.0.tgz#902eb1e680a41da93945adbdcb5a9f361ba69bd4" - integrity sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw== +globals@^13.19.0: + version "13.19.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-13.19.0.tgz#7a42de8e6ad4f7242fbcca27ea5b23aca367b5c8" + integrity sha512-dkQ957uSRWHw7CFXLUtUHQI3g3aWApYhfNR2O6jn/907riyTYKVBmxYVROkBcY614FSSeSJh7Xm7SrUWCxvJMQ== dependencies: type-fest "^0.20.2" @@ -11324,9 +11315,9 @@ got@9.6.0, got@^9.6.0: url-parse-lax "^3.0.0" got@^11.8.5: - version "11.8.5" - resolved "https://registry.yarnpkg.com/got/-/got-11.8.5.tgz#ce77d045136de56e8f024bebb82ea349bc730046" - integrity sha512-o0Je4NvQObAuZPHLFoRSkdG2lTgtcynqymzg2Vupdx6PorhaT5MCbIyXG6d4D94kk8ZG57QeosgdiqfJWhEhlQ== + version "11.8.6" + resolved "https://registry.yarnpkg.com/got/-/got-11.8.6.tgz#276e827ead8772eddbcfc97170590b841823233a" + integrity sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g== dependencies: "@sindresorhus/is" "^4.0.0" "@szmarczak/http-timer" "^4.0.5" @@ -11412,9 +11403,9 @@ hardhat-gas-reporter@^1.0.8: sha1 "^1.1.1" hardhat@^2.6.8: - version "2.12.2" - resolved "https://registry.yarnpkg.com/hardhat/-/hardhat-2.12.2.tgz#6ae985007b20c1f381c6573799d66c1438c4c802" - integrity sha512-f3ZhzXy1uyQv0UXnAQ8GCBOWjzv++WJNb7bnm10SsyC3dB7vlPpsMWBNhq7aoRxKrNhX9tCev81KFV3i5BTeMQ== + version "2.12.4" + resolved "https://registry.yarnpkg.com/hardhat/-/hardhat-2.12.4.tgz#e539ba58bee9ba1a1ced823bfdcec0b3c5a3e70f" + integrity sha512-rc9S2U/4M+77LxW1Kg7oqMMmjl81tzn5rNFARhbXKUA1am/nhfMJEujOjuKvt+ZGMiZ11PYSe8gyIpB/aRNDgw== dependencies: "@ethersproject/abi" "^5.1.2" "@metamask/eth-sig-util" "^4.0.0" @@ -11804,9 +11795,9 @@ http2-wrapper@^1.0.0-beta.5.2: resolve-alpn "^1.0.0" http2-wrapper@^2.1.10: - version "2.1.11" - resolved "https://registry.yarnpkg.com/http2-wrapper/-/http2-wrapper-2.1.11.tgz#d7c980c7ffb85be3859b6a96c800b2951ae257ef" - integrity sha512-aNAk5JzLturWEUiuhAN73Jcbq96R7rTitAoXV54FYMatvihnpD2+6PUgU4ce3D/m5VDbw+F5CsyKSF176ptitQ== + version "2.2.0" + resolved "https://registry.yarnpkg.com/http2-wrapper/-/http2-wrapper-2.2.0.tgz#b80ad199d216b7d3680195077bd7b9060fa9d7f3" + integrity sha512-kZB0wxMo0sh1PehyjJUWRFEd99KC5TLjZ2cULC4f9iqJBAmKQQXEICjxl5iPJRwP40dpeHFqqhm7tYCvODpqpQ== dependencies: quick-lru "^5.1.1" resolve-alpn "^1.2.0" @@ -11865,9 +11856,9 @@ ignore-walk@^5.0.1: minimatch "^5.0.1" ignore@^5.0.4, ignore@^5.1.1, ignore@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.0.tgz#6d3bac8fa7fe0d45d9f9be7bac2fc279577e345a" - integrity sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ== + version "5.2.4" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.4.tgz#a291c0c6178ff1b960befe47fcdec301674a6324" + integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ== immediate@^3.2.3: version "3.3.0" @@ -11988,11 +11979,11 @@ inquirer@^8.0.0, inquirer@^8.2.4: wrap-ansi "^7.0.0" internal-slot@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.3.tgz#7347e307deeea2faac2ac6205d4bc7d34967f59c" - integrity sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA== + version "1.0.4" + resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.4.tgz#8551e7baf74a7a6ba5f749cfb16aa60722f0d6f3" + integrity sha512-tA8URYccNzMo94s5MQZgH8NB/XTa6HsOo0MLfXTKKEnHVVdegzaQoFZ7Jp44bdvLvY2waT5dc+j5ICEswhi7UQ== dependencies: - get-intrinsic "^1.1.0" + get-intrinsic "^1.1.3" has "^1.0.3" side-channel "^1.0.4" @@ -12001,10 +11992,10 @@ interpret@^1.0.0: resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e" integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA== -interpret@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/interpret/-/interpret-2.2.0.tgz#1a78a0b5965c40a5416d007ad6f50ad27c417df9" - integrity sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw== +interpret@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/interpret/-/interpret-3.1.1.tgz#5be0ceed67ca79c6c4bc5cf0d7ee843dcea110c4" + integrity sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ== invariant@^2.2.2: version "2.2.4" @@ -12125,7 +12116,7 @@ is-ci@^3.0.1: dependencies: ci-info "^3.2.0" -is-core-module@^2.10.0, is-core-module@^2.5.0, is-core-module@^2.8.1, is-core-module@^2.9.0: +is-core-module@^2.11.0, is-core-module@^2.5.0, is-core-module@^2.8.1, is-core-module@^2.9.0: version "2.11.0" resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.11.0.tgz#ad4cb3e3863e814523c96f3f58d26cc570ff0144" integrity sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw== @@ -12599,86 +12590,86 @@ jest-changed-files@^29.2.0: execa "^5.0.0" p-limit "^3.1.0" -jest-circus@^29.2.2: - version "29.2.2" - resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.2.2.tgz#1dc4d35fd49bf5e64d3cc505fb2db396237a6dfa" - integrity sha512-upSdWxx+Mh4DV7oueuZndJ1NVdgtTsqM4YgywHEx05UMH5nxxA2Qu9T9T9XVuR021XxqSoaKvSmmpAbjwwwxMw== +jest-circus@^29.3.1: + version "29.3.1" + resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.3.1.tgz#177d07c5c0beae8ef2937a67de68f1e17bbf1b4a" + integrity sha512-wpr26sEvwb3qQQbdlmei+gzp6yoSSoSL6GsLPxnuayZSMrSd5Ka7IjAvatpIernBvT2+Ic6RLTg+jSebScmasg== dependencies: - "@jest/environment" "^29.2.2" - "@jest/expect" "^29.2.2" - "@jest/test-result" "^29.2.1" - "@jest/types" "^29.2.1" + "@jest/environment" "^29.3.1" + "@jest/expect" "^29.3.1" + "@jest/test-result" "^29.3.1" + "@jest/types" "^29.3.1" "@types/node" "*" chalk "^4.0.0" co "^4.6.0" dedent "^0.7.0" is-generator-fn "^2.0.0" - jest-each "^29.2.1" - jest-matcher-utils "^29.2.2" - jest-message-util "^29.2.1" - jest-runtime "^29.2.2" - jest-snapshot "^29.2.2" - jest-util "^29.2.1" + jest-each "^29.3.1" + jest-matcher-utils "^29.3.1" + jest-message-util "^29.3.1" + jest-runtime "^29.3.1" + jest-snapshot "^29.3.1" + jest-util "^29.3.1" p-limit "^3.1.0" - pretty-format "^29.2.1" + pretty-format "^29.3.1" slash "^3.0.0" stack-utils "^2.0.3" -jest-cli@^29.2.2: - version "29.2.2" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.2.2.tgz#feaf0aa57d327e80d4f2f18d5f8cd2e77cac5371" - integrity sha512-R45ygnnb2CQOfd8rTPFR+/fls0d+1zXS6JPYTBBrnLPrhr58SSuPTiA5Tplv8/PXpz4zXR/AYNxmwIj6J6nrvg== +jest-cli@^29.3.1: + version "29.3.1" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.3.1.tgz#e89dff427db3b1df50cea9a393ebd8640790416d" + integrity sha512-TO/ewvwyvPOiBBuWZ0gm04z3WWP8TIK8acgPzE4IxgsLKQgb377NYGrQLc3Wl/7ndWzIH2CDNNsUjGxwLL43VQ== dependencies: - "@jest/core" "^29.2.2" - "@jest/test-result" "^29.2.1" - "@jest/types" "^29.2.1" + "@jest/core" "^29.3.1" + "@jest/test-result" "^29.3.1" + "@jest/types" "^29.3.1" chalk "^4.0.0" exit "^0.1.2" graceful-fs "^4.2.9" import-local "^3.0.2" - jest-config "^29.2.2" - jest-util "^29.2.1" - jest-validate "^29.2.2" + jest-config "^29.3.1" + jest-util "^29.3.1" + jest-validate "^29.3.1" prompts "^2.0.1" yargs "^17.3.1" -jest-config@^29.2.2: - version "29.2.2" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-29.2.2.tgz#bf98623a46454d644630c1f0de8bba3f495c2d59" - integrity sha512-Q0JX54a5g1lP63keRfKR8EuC7n7wwny2HoTRDb8cx78IwQOiaYUVZAdjViY3WcTxpR02rPUpvNVmZ1fkIlZPcw== +jest-config@^29.3.1: + version "29.3.1" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-29.3.1.tgz#0bc3dcb0959ff8662957f1259947aedaefb7f3c6" + integrity sha512-y0tFHdj2WnTEhxmGUK1T7fgLen7YK4RtfvpLFBXfQkh2eMJAQq24Vx9472lvn5wg0MAO6B+iPfJfzdR9hJYalg== dependencies: "@babel/core" "^7.11.6" - "@jest/test-sequencer" "^29.2.2" - "@jest/types" "^29.2.1" - babel-jest "^29.2.2" + "@jest/test-sequencer" "^29.3.1" + "@jest/types" "^29.3.1" + babel-jest "^29.3.1" chalk "^4.0.0" ci-info "^3.2.0" deepmerge "^4.2.2" glob "^7.1.3" graceful-fs "^4.2.9" - jest-circus "^29.2.2" - jest-environment-node "^29.2.2" + jest-circus "^29.3.1" + jest-environment-node "^29.3.1" jest-get-type "^29.2.0" jest-regex-util "^29.2.0" - jest-resolve "^29.2.2" - jest-runner "^29.2.2" - jest-util "^29.2.1" - jest-validate "^29.2.2" + jest-resolve "^29.3.1" + jest-runner "^29.3.1" + jest-util "^29.3.1" + jest-validate "^29.3.1" micromatch "^4.0.4" parse-json "^5.2.0" - pretty-format "^29.2.1" + pretty-format "^29.3.1" slash "^3.0.0" strip-json-comments "^3.1.1" -jest-diff@^29.2.1: - version "29.2.1" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.2.1.tgz#027e42f5a18b693fb2e88f81b0ccab533c08faee" - integrity sha512-gfh/SMNlQmP3MOUgdzxPOd4XETDJifADpT937fN1iUGz+9DgOu2eUPHH25JDkLVcLwwqxv3GzVyK4VBUr9fjfA== +jest-diff@^29.3.1: + version "29.3.1" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.3.1.tgz#d8215b72fed8f1e647aed2cae6c752a89e757527" + integrity sha512-vU8vyiO7568tmin2lA3r2DP8oRvzhvRcD4DjpXc6uGveQodyk7CKLhQlCSiwgx3g0pFaE88/KLZ0yaTWMc4Uiw== dependencies: chalk "^4.0.0" - diff-sequences "^29.2.0" + diff-sequences "^29.3.1" jest-get-type "^29.2.0" - pretty-format "^29.2.1" + pretty-format "^29.3.1" jest-docblock@^29.2.0: version "29.2.0" @@ -12687,201 +12678,201 @@ jest-docblock@^29.2.0: dependencies: detect-newline "^3.0.0" -jest-each@^29.2.1: - version "29.2.1" - resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-29.2.1.tgz#6b0a88ee85c2ba27b571a6010c2e0c674f5c9b29" - integrity sha512-sGP86H/CpWHMyK3qGIGFCgP6mt+o5tu9qG4+tobl0LNdgny0aitLXs9/EBacLy3Bwqy+v4uXClqJgASJWcruYw== +jest-each@^29.3.1: + version "29.3.1" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-29.3.1.tgz#bc375c8734f1bb96625d83d1ca03ef508379e132" + integrity sha512-qrZH7PmFB9rEzCSl00BWjZYuS1BSOH8lLuC0azQE9lQrAx3PWGKHTDudQiOSwIy5dGAJh7KA0ScYlCP7JxvFYA== dependencies: - "@jest/types" "^29.2.1" + "@jest/types" "^29.3.1" chalk "^4.0.0" jest-get-type "^29.2.0" - jest-util "^29.2.1" - pretty-format "^29.2.1" + jest-util "^29.3.1" + pretty-format "^29.3.1" -jest-environment-jsdom@^29.2.2: - version "29.2.2" - resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-29.2.2.tgz#1e2d9f1f017fbaa7362a83e670b569158b4b8527" - integrity sha512-5mNtTcky1+RYv9kxkwMwt7fkzyX4EJUarV7iI+NQLigpV4Hz4sgfOdP4kOpCHXbkRWErV7tgXoXLm2CKtucr+A== +jest-environment-jsdom@^29.3.1: + version "29.3.1" + resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-29.3.1.tgz#14ca63c3e0ef5c63c5bcb46033e50bc649e3b639" + integrity sha512-G46nKgiez2Gy4zvYNhayfMEAFlVHhWfncqvqS6yCd0i+a4NsSUD2WtrKSaYQrYiLQaupHXxCRi8xxVL2M9PbhA== dependencies: - "@jest/environment" "^29.2.2" - "@jest/fake-timers" "^29.2.2" - "@jest/types" "^29.2.1" + "@jest/environment" "^29.3.1" + "@jest/fake-timers" "^29.3.1" + "@jest/types" "^29.3.1" "@types/jsdom" "^20.0.0" "@types/node" "*" - jest-mock "^29.2.2" - jest-util "^29.2.1" + jest-mock "^29.3.1" + jest-util "^29.3.1" jsdom "^20.0.0" -jest-environment-node@^29.2.2: - version "29.2.2" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.2.2.tgz#a64b272773870c3a947cd338c25fd34938390bc2" - integrity sha512-B7qDxQjkIakQf+YyrqV5dICNs7tlCO55WJ4OMSXsqz1lpI/0PmeuXdx2F7eU8rnPbRkUR/fItSSUh0jvE2y/tw== +jest-environment-node@^29.3.1: + version "29.3.1" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.3.1.tgz#5023b32472b3fba91db5c799a0d5624ad4803e74" + integrity sha512-xm2THL18Xf5sIHoU7OThBPtuH6Lerd+Y1NLYiZJlkE3hbE+7N7r8uvHIl/FkZ5ymKXJe/11SQuf3fv4v6rUMag== dependencies: - "@jest/environment" "^29.2.2" - "@jest/fake-timers" "^29.2.2" - "@jest/types" "^29.2.1" + "@jest/environment" "^29.3.1" + "@jest/fake-timers" "^29.3.1" + "@jest/types" "^29.3.1" "@types/node" "*" - jest-mock "^29.2.2" - jest-util "^29.2.1" + jest-mock "^29.3.1" + jest-util "^29.3.1" jest-get-type@^29.2.0: version "29.2.0" resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-29.2.0.tgz#726646f927ef61d583a3b3adb1ab13f3a5036408" integrity sha512-uXNJlg8hKFEnDgFsrCjznB+sTxdkuqiCL6zMgA75qEbAJjJYTs9XPrvDctrEig2GDow22T/LvHgO57iJhXB/UA== -jest-haste-map@^29.2.1: - version "29.2.1" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.2.1.tgz#f803fec57f8075e6c55fb5cd551f99a72471c699" - integrity sha512-wF460rAFmYc6ARcCFNw4MbGYQjYkvjovb9GBT+W10Um8q5nHq98jD6fHZMDMO3tA56S8XnmNkM8GcA8diSZfnA== +jest-haste-map@^29.3.1: + version "29.3.1" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.3.1.tgz#af83b4347f1dae5ee8c2fb57368dc0bb3e5af843" + integrity sha512-/FFtvoG1xjbbPXQLFef+WSU4yrc0fc0Dds6aRPBojUid7qlPqZvxdUBA03HW0fnVHXVCnCdkuoghYItKNzc/0A== dependencies: - "@jest/types" "^29.2.1" + "@jest/types" "^29.3.1" "@types/graceful-fs" "^4.1.3" "@types/node" "*" anymatch "^3.0.3" fb-watchman "^2.0.0" graceful-fs "^4.2.9" jest-regex-util "^29.2.0" - jest-util "^29.2.1" - jest-worker "^29.2.1" + jest-util "^29.3.1" + jest-worker "^29.3.1" micromatch "^4.0.4" walker "^1.0.8" optionalDependencies: fsevents "^2.3.2" -jest-leak-detector@^29.2.1: - version "29.2.1" - resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-29.2.1.tgz#ec551686b7d512ec875616c2c3534298b1ffe2fc" - integrity sha512-1YvSqYoiurxKOJtySc+CGVmw/e1v4yNY27BjWTVzp0aTduQeA7pdieLiW05wTYG/twlKOp2xS/pWuikQEmklug== +jest-leak-detector@^29.3.1: + version "29.3.1" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-29.3.1.tgz#95336d020170671db0ee166b75cd8ef647265518" + integrity sha512-3DA/VVXj4zFOPagGkuqHnSQf1GZBmmlagpguxEERO6Pla2g84Q1MaVIB3YMxgUaFIaYag8ZnTyQgiZ35YEqAQA== dependencies: jest-get-type "^29.2.0" - pretty-format "^29.2.1" + pretty-format "^29.3.1" -jest-matcher-utils@^29.2.2: - version "29.2.2" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.2.2.tgz#9202f8e8d3a54733266784ce7763e9a08688269c" - integrity sha512-4DkJ1sDPT+UX2MR7Y3od6KtvRi9Im1ZGLGgdLFLm4lPexbTaCgJW5NN3IOXlQHF7NSHY/VHhflQ+WoKtD/vyCw== +jest-matcher-utils@^29.3.1: + version "29.3.1" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.3.1.tgz#6e7f53512f80e817dfa148672bd2d5d04914a572" + integrity sha512-fkRMZUAScup3txIKfMe3AIZZmPEjWEdsPJFK3AIy5qRohWqQFg1qrmKfYXR9qEkNc7OdAu2N4KPHibEmy4HPeQ== dependencies: chalk "^4.0.0" - jest-diff "^29.2.1" + jest-diff "^29.3.1" jest-get-type "^29.2.0" - pretty-format "^29.2.1" + pretty-format "^29.3.1" -jest-message-util@^29.2.1: - version "29.2.1" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.2.1.tgz#3a51357fbbe0cc34236f17a90d772746cf8d9193" - integrity sha512-Dx5nEjw9V8C1/Yj10S/8ivA8F439VS8vTq1L7hEgwHFn9ovSKNpYW/kwNh7UglaEgXO42XxzKJB+2x0nSglFVw== +jest-message-util@^29.3.1: + version "29.3.1" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.3.1.tgz#37bc5c468dfe5120712053dd03faf0f053bd6adb" + integrity sha512-lMJTbgNcDm5z+6KDxWtqOFWlGQxD6XaYwBqHR8kmpkP+WWWG90I35kdtQHY67Ay5CSuydkTBbJG+tH9JShFCyA== dependencies: "@babel/code-frame" "^7.12.13" - "@jest/types" "^29.2.1" + "@jest/types" "^29.3.1" "@types/stack-utils" "^2.0.0" chalk "^4.0.0" graceful-fs "^4.2.9" micromatch "^4.0.4" - pretty-format "^29.2.1" + pretty-format "^29.3.1" slash "^3.0.0" stack-utils "^2.0.3" -jest-mock@^29.2.2: - version "29.2.2" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.2.2.tgz#9045618b3f9d27074bbcf2d55bdca6a5e2e8bca7" - integrity sha512-1leySQxNAnivvbcx0sCB37itu8f4OX2S/+gxLAV4Z62shT4r4dTG9tACDywUAEZoLSr36aYUTsVp3WKwWt4PMQ== +jest-mock@^29.3.1: + version "29.3.1" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.3.1.tgz#60287d92e5010979d01f218c6b215b688e0f313e" + integrity sha512-H8/qFDtDVMFvFP4X8NuOT3XRDzOUTz+FeACjufHzsOIBAxivLqkB1PoLCaJx9iPPQ8dZThHPp/G3WRWyMgA3JA== dependencies: - "@jest/types" "^29.2.1" + "@jest/types" "^29.3.1" "@types/node" "*" - jest-util "^29.2.1" + jest-util "^29.3.1" jest-pnp-resolver@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz#b704ac0ae028a89108a4d040b3f919dfddc8e33c" - integrity sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w== + version "1.2.3" + resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz#930b1546164d4ad5937d5540e711d4d38d4cad2e" + integrity sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w== jest-regex-util@^29.2.0: version "29.2.0" resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-29.2.0.tgz#82ef3b587e8c303357728d0322d48bbfd2971f7b" integrity sha512-6yXn0kg2JXzH30cr2NlThF+70iuO/3irbaB4mh5WyqNIvLLP+B6sFdluO1/1RJmslyh/f9osnefECflHvTbwVA== -jest-resolve-dependencies@^29.2.2: - version "29.2.2" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.2.2.tgz#1f444766f37a25f1490b5137408b6ff746a05d64" - integrity sha512-wWOmgbkbIC2NmFsq8Lb+3EkHuW5oZfctffTGvwsA4JcJ1IRk8b2tg+hz44f0lngvRTeHvp3Kyix9ACgudHH9aQ== +jest-resolve-dependencies@^29.3.1: + version "29.3.1" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.3.1.tgz#a6a329708a128e68d67c49f38678a4a4a914c3bf" + integrity sha512-Vk0cYq0byRw2WluNmNWGqPeRnZ3p3hHmjJMp2dyyZeYIfiBskwq4rpiuGFR6QGAdbj58WC7HN4hQHjf2mpvrLA== dependencies: jest-regex-util "^29.2.0" - jest-snapshot "^29.2.2" + jest-snapshot "^29.3.1" -jest-resolve@^29.2.2: - version "29.2.2" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.2.2.tgz#ad6436053b0638b41e12bbddde2b66e1397b35b5" - integrity sha512-3gaLpiC3kr14rJR3w7vWh0CBX2QAhfpfiQTwrFPvVrcHe5VUBtIXaR004aWE/X9B2CFrITOQAp5gxLONGrk6GA== +jest-resolve@^29.3.1: + version "29.3.1" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.3.1.tgz#9a4b6b65387a3141e4a40815535c7f196f1a68a7" + integrity sha512-amXJgH/Ng712w3Uz5gqzFBBjxV8WFLSmNjoreBGMqxgCz5cH7swmBZzgBaCIOsvb0NbpJ0vgaSFdJqMdT+rADw== dependencies: chalk "^4.0.0" graceful-fs "^4.2.9" - jest-haste-map "^29.2.1" + jest-haste-map "^29.3.1" jest-pnp-resolver "^1.2.2" - jest-util "^29.2.1" - jest-validate "^29.2.2" + jest-util "^29.3.1" + jest-validate "^29.3.1" resolve "^1.20.0" resolve.exports "^1.1.0" slash "^3.0.0" -jest-runner@^29.2.2: - version "29.2.2" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.2.2.tgz#6b5302ed15eba8bf05e6b14d40f1e8d469564da3" - integrity sha512-1CpUxXDrbsfy9Hr9/1zCUUhT813kGGK//58HeIw/t8fa/DmkecEwZSWlb1N/xDKXg3uCFHQp1GCvlSClfImMxg== +jest-runner@^29.3.1: + version "29.3.1" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.3.1.tgz#a92a879a47dd096fea46bb1517b0a99418ee9e2d" + integrity sha512-oFvcwRNrKMtE6u9+AQPMATxFcTySyKfLhvso7Sdk/rNpbhg4g2GAGCopiInk1OP4q6gz3n6MajW4+fnHWlU3bA== dependencies: - "@jest/console" "^29.2.1" - "@jest/environment" "^29.2.2" - "@jest/test-result" "^29.2.1" - "@jest/transform" "^29.2.2" - "@jest/types" "^29.2.1" + "@jest/console" "^29.3.1" + "@jest/environment" "^29.3.1" + "@jest/test-result" "^29.3.1" + "@jest/transform" "^29.3.1" + "@jest/types" "^29.3.1" "@types/node" "*" chalk "^4.0.0" emittery "^0.13.1" graceful-fs "^4.2.9" jest-docblock "^29.2.0" - jest-environment-node "^29.2.2" - jest-haste-map "^29.2.1" - jest-leak-detector "^29.2.1" - jest-message-util "^29.2.1" - jest-resolve "^29.2.2" - jest-runtime "^29.2.2" - jest-util "^29.2.1" - jest-watcher "^29.2.2" - jest-worker "^29.2.1" + jest-environment-node "^29.3.1" + jest-haste-map "^29.3.1" + jest-leak-detector "^29.3.1" + jest-message-util "^29.3.1" + jest-resolve "^29.3.1" + jest-runtime "^29.3.1" + jest-util "^29.3.1" + jest-watcher "^29.3.1" + jest-worker "^29.3.1" p-limit "^3.1.0" source-map-support "0.5.13" -jest-runtime@^29.2.2: - version "29.2.2" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-29.2.2.tgz#4068ee82423769a481460efd21d45a8efaa5c179" - integrity sha512-TpR1V6zRdLynckKDIQaY41od4o0xWL+KOPUCZvJK2bu5P1UXhjobt5nJ2ICNeIxgyj9NGkO0aWgDqYPVhDNKjA== +jest-runtime@^29.3.1: + version "29.3.1" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-29.3.1.tgz#21efccb1a66911d6d8591276a6182f520b86737a" + integrity sha512-jLzkIxIqXwBEOZx7wx9OO9sxoZmgT2NhmQKzHQm1xwR1kNW/dn0OjxR424VwHHf1SPN6Qwlb5pp1oGCeFTQ62A== dependencies: - "@jest/environment" "^29.2.2" - "@jest/fake-timers" "^29.2.2" - "@jest/globals" "^29.2.2" + "@jest/environment" "^29.3.1" + "@jest/fake-timers" "^29.3.1" + "@jest/globals" "^29.3.1" "@jest/source-map" "^29.2.0" - "@jest/test-result" "^29.2.1" - "@jest/transform" "^29.2.2" - "@jest/types" "^29.2.1" + "@jest/test-result" "^29.3.1" + "@jest/transform" "^29.3.1" + "@jest/types" "^29.3.1" "@types/node" "*" chalk "^4.0.0" cjs-module-lexer "^1.0.0" collect-v8-coverage "^1.0.0" glob "^7.1.3" graceful-fs "^4.2.9" - jest-haste-map "^29.2.1" - jest-message-util "^29.2.1" - jest-mock "^29.2.2" + jest-haste-map "^29.3.1" + jest-message-util "^29.3.1" + jest-mock "^29.3.1" jest-regex-util "^29.2.0" - jest-resolve "^29.2.2" - jest-snapshot "^29.2.2" - jest-util "^29.2.1" + jest-resolve "^29.3.1" + jest-snapshot "^29.3.1" + jest-util "^29.3.1" slash "^3.0.0" strip-bom "^4.0.0" -jest-snapshot@^29.2.2: - version "29.2.2" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.2.2.tgz#1016ce60297b77382386bad561107174604690c2" - integrity sha512-GfKJrpZ5SMqhli3NJ+mOspDqtZfJBryGA8RIBxF+G+WbDoC7HCqKaeAss4Z/Sab6bAW11ffasx8/vGsj83jyjA== +jest-snapshot@^29.3.1: + version "29.3.1" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.3.1.tgz#17bcef71a453adc059a18a32ccbd594b8cc4e45e" + integrity sha512-+3JOc+s28upYLI2OJM4PWRGK9AgpsMs/ekNryUV0yMBClT9B1DF2u2qay8YxcQd338PPYSFNb0lsar1B49sLDA== dependencies: "@babel/core" "^7.11.6" "@babel/generator" "^7.7.2" @@ -12889,61 +12880,61 @@ jest-snapshot@^29.2.2: "@babel/plugin-syntax-typescript" "^7.7.2" "@babel/traverse" "^7.7.2" "@babel/types" "^7.3.3" - "@jest/expect-utils" "^29.2.2" - "@jest/transform" "^29.2.2" - "@jest/types" "^29.2.1" + "@jest/expect-utils" "^29.3.1" + "@jest/transform" "^29.3.1" + "@jest/types" "^29.3.1" "@types/babel__traverse" "^7.0.6" "@types/prettier" "^2.1.5" babel-preset-current-node-syntax "^1.0.0" chalk "^4.0.0" - expect "^29.2.2" + expect "^29.3.1" graceful-fs "^4.2.9" - jest-diff "^29.2.1" + jest-diff "^29.3.1" jest-get-type "^29.2.0" - jest-haste-map "^29.2.1" - jest-matcher-utils "^29.2.2" - jest-message-util "^29.2.1" - jest-util "^29.2.1" + jest-haste-map "^29.3.1" + jest-matcher-utils "^29.3.1" + jest-message-util "^29.3.1" + jest-util "^29.3.1" natural-compare "^1.4.0" - pretty-format "^29.2.1" + pretty-format "^29.3.1" semver "^7.3.5" -jest-util@^29.2.1: - version "29.2.1" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.2.1.tgz#f26872ba0dc8cbefaba32c34f98935f6cf5fc747" - integrity sha512-P5VWDj25r7kj7kl4pN2rG/RN2c1TLfYYYZYULnS/35nFDjBai+hBeo3MDrYZS7p6IoY3YHZnt2vq4L6mKnLk0g== +jest-util@^29.3.1: + version "29.3.1" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.3.1.tgz#1dda51e378bbcb7e3bc9d8ab651445591ed373e1" + integrity sha512-7YOVZaiX7RJLv76ZfHt4nbNEzzTRiMW/IiOG7ZOKmTXmoGBxUDefgMAxQubu6WPVqP5zSzAdZG0FfLcC7HOIFQ== dependencies: - "@jest/types" "^29.2.1" + "@jest/types" "^29.3.1" "@types/node" "*" chalk "^4.0.0" ci-info "^3.2.0" graceful-fs "^4.2.9" picomatch "^2.2.3" -jest-validate@^29.2.2: - version "29.2.2" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-29.2.2.tgz#e43ce1931292dfc052562a11bc681af3805eadce" - integrity sha512-eJXATaKaSnOuxNfs8CLHgdABFgUrd0TtWS8QckiJ4L/QVDF4KVbZFBBOwCBZHOS0Rc5fOxqngXeGXE3nGQkpQA== +jest-validate@^29.3.1: + version "29.3.1" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-29.3.1.tgz#d56fefaa2e7d1fde3ecdc973c7f7f8f25eea704a" + integrity sha512-N9Lr3oYR2Mpzuelp1F8negJR3YE+L1ebk1rYA5qYo9TTY3f9OWdptLoNSPP9itOCBIRBqjt/S5XHlzYglLN67g== dependencies: - "@jest/types" "^29.2.1" + "@jest/types" "^29.3.1" camelcase "^6.2.0" chalk "^4.0.0" jest-get-type "^29.2.0" leven "^3.1.0" - pretty-format "^29.2.1" + pretty-format "^29.3.1" -jest-watcher@^29.2.2: - version "29.2.2" - resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-29.2.2.tgz#7093d4ea8177e0a0da87681a9e7b09a258b9daf7" - integrity sha512-j2otfqh7mOvMgN2WlJ0n7gIx9XCMWntheYGlBK7+5g3b1Su13/UAK7pdKGyd4kDlrLwtH2QPvRv5oNIxWvsJ1w== +jest-watcher@^29.3.1: + version "29.3.1" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-29.3.1.tgz#3341547e14fe3c0f79f9c3a4c62dbc3fc977fd4a" + integrity sha512-RspXG2BQFDsZSRKGCT/NiNa8RkQ1iKAjrO0//soTMWx/QUt+OcxMqMSBxz23PYGqUuWm2+m2mNNsmj0eIoOaFg== dependencies: - "@jest/test-result" "^29.2.1" - "@jest/types" "^29.2.1" + "@jest/test-result" "^29.3.1" + "@jest/types" "^29.3.1" "@types/node" "*" ansi-escapes "^4.2.1" chalk "^4.0.0" emittery "^0.13.1" - jest-util "^29.2.1" + jest-util "^29.3.1" string-length "^4.0.1" jest-worker@^27.4.5: @@ -12955,25 +12946,25 @@ jest-worker@^27.4.5: merge-stream "^2.0.0" supports-color "^8.0.0" -jest-worker@^29.2.1: - version "29.2.1" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.2.1.tgz#8ba68255438252e1674f990f0180c54dfa26a3b1" - integrity sha512-ROHTZ+oj7sBrgtv46zZ84uWky71AoYi0vEV9CdEtc1FQunsoAGe5HbQmW76nI5QWdvECVPrSi1MCVUmizSavMg== +jest-worker@^29.3.1: + version "29.3.1" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.3.1.tgz#e9462161017a9bb176380d721cab022661da3d6b" + integrity sha512-lY4AnnmsEWeiXirAIA0c9SDPbuCBq8IYuDVL8PMm0MZ2PEs2yPvRA/J64QBXuZp7CYKrDM/rmNrc9/i3KJQncw== dependencies: "@types/node" "*" - jest-util "^29.2.1" + jest-util "^29.3.1" merge-stream "^2.0.0" supports-color "^8.0.0" -jest@^29.2.2: - version "29.2.2" - resolved "https://registry.yarnpkg.com/jest/-/jest-29.2.2.tgz#24da83cbbce514718acd698926b7679109630476" - integrity sha512-r+0zCN9kUqoON6IjDdjbrsWobXM/09Nd45kIPRD8kloaRh1z5ZCMdVsgLXGxmlL7UpAJsvCYOQNO+NjvG/gqiQ== +jest@^29.3.1: + version "29.3.1" + resolved "https://registry.yarnpkg.com/jest/-/jest-29.3.1.tgz#c130c0d551ae6b5459b8963747fed392ddbde122" + integrity sha512-6iWfL5DTT0Np6UYs/y5Niu7WIfNv/wRTtN5RSXt2DIEft3dx3zPuw/3WJQBCJfmEzvDiEKwoqMbGD9n49+qLSA== dependencies: - "@jest/core" "^29.2.2" - "@jest/types" "^29.2.1" + "@jest/core" "^29.3.1" + "@jest/types" "^29.3.1" import-local "^3.0.2" - jest-cli "^29.2.2" + jest-cli "^29.3.1" js-cleanup@^1.2.0: version "1.2.0" @@ -12985,9 +12976,9 @@ js-cleanup@^1.2.0: skip-regex "^1.0.2" js-sdsl@^4.1.4: - version "4.1.5" - resolved "https://registry.yarnpkg.com/js-sdsl/-/js-sdsl-4.1.5.tgz#1ff1645e6b4d1b028cd3f862db88c9d887f26e2a" - integrity sha512-08bOAKweV2NUC1wqTtf3qZlnpOX/R2DU9ikpjOHs0H+ibQv3zpncVQg6um4uYtRtrwIX8M4Nh3ytK4HGlYAq7Q== + version "4.2.0" + resolved "https://registry.yarnpkg.com/js-sdsl/-/js-sdsl-4.2.0.tgz#278e98b7bea589b8baaf048c20aeb19eb7ad09d0" + integrity sha512-dyBIzQBDkCqCu+0upx25Y2jGdbTGxE9fshMsCdK0ViOongpV+n5tXRcZY9v7CaVQ79AGS9KA1KHtojxiM7aXSQ== js-sha3@0.5.7, js-sha3@^0.5.7: version "0.5.7" @@ -13038,17 +13029,17 @@ jsbn@~0.1.0: integrity sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg== jsdom@^20.0.0: - version "20.0.2" - resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-20.0.2.tgz#65ccbed81d5e877c433f353c58bb91ff374127db" - integrity sha512-AHWa+QO/cgRg4N+DsmHg1Y7xnz+8KU3EflM0LVDTdmrYOc1WWTSkOjtpUveQH+1Bqd5rtcVnb/DuxV/UjDO4rA== + version "20.0.3" + resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-20.0.3.tgz#886a41ba1d4726f67a8858028c99489fed6ad4db" + integrity sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ== dependencies: abab "^2.0.6" - acorn "^8.8.0" + acorn "^8.8.1" acorn-globals "^7.0.0" cssom "^0.5.0" cssstyle "^2.3.0" data-urls "^3.0.2" - decimal.js "^10.4.1" + decimal.js "^10.4.2" domexception "^4.0.0" escodegen "^2.0.0" form-data "^4.0.0" @@ -13061,12 +13052,12 @@ jsdom@^20.0.0: saxes "^6.0.0" symbol-tree "^3.2.4" tough-cookie "^4.1.2" - w3c-xmlserializer "^3.0.0" + w3c-xmlserializer "^4.0.0" webidl-conversions "^7.0.0" whatwg-encoding "^2.0.0" whatwg-mimetype "^3.0.0" whatwg-url "^11.0.0" - ws "^8.9.0" + ws "^8.11.0" xml-name-validator "^4.0.0" jsesc@^1.3.0: @@ -13149,11 +13140,11 @@ json-stable-stringify-without-jsonify@^1.0.1: integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== json-stable-stringify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af" - integrity sha512-i/J297TW6xyj7sDFa7AmBPkQvLIxWr2kKPWI26tXydnZrzVAocNqn5DMNT1Mzk0vit1V5UkRM7C1KdVNp7Lmcg== + version "1.0.2" + resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.2.tgz#e06f23128e0bbe342dc996ed5a19e28b57b580e0" + integrity sha512-eunSSaEnxV12z+Z73y/j5N37/In40GK4GmsSy+tEHJMxknvqnA7/djeYtAgW0GsWHUfg+847WJjKaEylk2y09g== dependencies: - jsonify "~0.0.0" + jsonify "^0.0.1" json-stringify-nice@^1.1.4: version "1.1.4" @@ -13178,9 +13169,9 @@ json5@^1.0.1: minimist "^1.2.0" json5@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.1.tgz#655d50ed1e6f95ad1a3caababd2b0efda10b395c" - integrity sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA== + version "2.2.2" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.2.tgz#64471c5bdcc564c18f7c1d4df2e2297f2457c5ab" + integrity sha512-46Tk9JiOL2z7ytNQWFLpj99RZkVgeHf87yGQKsIkaPz1qSH9UczKH1rO7K3wgRselo0tYMUNfecYpm/p1vC7tQ== jsonc-parser@3.2.0, jsonc-parser@^3.0.0: version "3.2.0" @@ -13210,7 +13201,7 @@ jsonfile@^6.0.1: optionalDependencies: graceful-fs "^4.1.6" -jsonify@~0.0.0: +jsonify@^0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.1.tgz#2aa3111dae3d34a0f151c63f3a45d995d9420978" integrity sha512-2/Ki0GcmuqSrgFyelQq9M05y7PS0mEwuIzrf3f1fPqkVDVRvZrPZtVSMHxdgo8Aq0sxAOb/cr2aqqA3LeWHVPg== @@ -13239,14 +13230,14 @@ jsprim@^1.2.2: object.assign "^4.1.3" just-diff-apply@^5.2.0: - version "5.4.1" - resolved "https://registry.yarnpkg.com/just-diff-apply/-/just-diff-apply-5.4.1.tgz#1debed059ad009863b4db0e8d8f333d743cdd83b" - integrity sha512-AAV5Jw7tsniWwih8Ly3fXxEZ06y+6p5TwQMsw0dzZ/wPKilzyDgdAnL0Ug4NNIquPUOh1vfFWEHbmXUqM5+o8g== + version "5.5.0" + resolved "https://registry.yarnpkg.com/just-diff-apply/-/just-diff-apply-5.5.0.tgz#771c2ca9fa69f3d2b54e7c3f5c1dfcbcc47f9f0f" + integrity sha512-OYTthRfSh55WOItVqwpefPtNt2VdKsq5AnAK6apdtR6yCH8pr0CmSr710J0Mf+WdQy7K/OzMy7K2MgAfdQURDw== just-diff@^5.0.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/just-diff/-/just-diff-5.1.1.tgz#8da6414342a5ed6d02ccd64f5586cbbed3146202" - integrity sha512-u8HXJ3HlNrTzY7zrYYKjNEfBlyjqhdBkoyTVdjtn7p02RJD5NvR8rIClzeGA7t+UYP1/7eAkWNLU0+P3QrEqKQ== + version "5.2.0" + resolved "https://registry.yarnpkg.com/just-diff/-/just-diff-5.2.0.tgz#60dca55891cf24cd4a094e33504660692348a241" + integrity sha512-6ufhP9SHjb7jibNFrNxyFZ6od3g+An6Ai9mhGRvcYe8UJlH0prseN64M+6ZBBUoKYHZsitDP42gAJ8+eVWr3lw== keccak@3.0.1: version "3.0.1" @@ -13265,13 +13256,6 @@ keccak@^3.0.0, keccak@^3.0.2: node-gyp-build "^4.2.0" readable-stream "^3.6.0" -keyv@*, keyv@^4.0.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.0.tgz#dbce9ade79610b6e641a9a65f2f6499ba06b9bc6" - integrity sha512-2YvuMsA+jnFGtBareKqgANOEKe1mk3HKiXu2fRmAfyxG0MJAywNhi5ttWA3PMjl4NmpyjZNbFifR2vNjW1znfA== - dependencies: - json-buffer "3.0.1" - keyv@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/keyv/-/keyv-3.1.0.tgz#ecc228486f69991e49e9476485a5be1e8fc5c4d9" @@ -13279,6 +13263,13 @@ keyv@^3.0.0: dependencies: json-buffer "3.0.0" +keyv@^4.0.0: + version "4.5.2" + resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.2.tgz#0e310ce73bf7851ec702f2eaf46ec4e3805cce56" + integrity sha512-5MHbFaKn8cNSmVW7BYnijeAVlE4cYA/SVkifVgrh7yotnfhKmjuXpDKjrABLnT0SfHWV21P8ow07OGfRrNDg8g== + dependencies: + json-buffer "3.0.1" + kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: version "3.2.2" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" @@ -13748,9 +13739,9 @@ loose-envify@^1.0.0, loose-envify@^1.4.0: js-tokens "^3.0.0 || ^4.0.0" loupe@^2.3.1: - version "2.3.4" - resolved "https://registry.yarnpkg.com/loupe/-/loupe-2.3.4.tgz#7e0b9bffc76f148f9be769cb1321d3dcf3cb25f3" - integrity sha512-OvKfgCC2Ndby6aSTREl5aCCPTNIzlDfQZvZxNUrBrihDhL3xcrYegTblhmEiCrg2kKQz4XsFIaemE5BF4ybSaQ== + version "2.3.6" + resolved "https://registry.yarnpkg.com/loupe/-/loupe-2.3.6.tgz#76e4af498103c532d1ecc9be102036a21f787b53" + integrity sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA== dependencies: get-func-name "^2.0.0" @@ -13870,12 +13861,12 @@ magic-string@^0.25.7: dependencies: sourcemap-codec "^1.4.8" -magic-string@^0.26.4: - version "0.26.7" - resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.26.7.tgz#caf7daf61b34e9982f8228c4527474dac8981d6f" - integrity sha512-hX9XH3ziStPoPhJxLq1syWuZMxbDvGNbVchfrdCtanC7D13888bMFow61x8axrx+GfHLtVeAx2kxL7tTGRl+Ow== +magic-string@^0.27.0: + version "0.27.0" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.27.0.tgz#e4a3413b4bab6d98d2becffd48b4a257effdbbf3" + integrity sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA== dependencies: - sourcemap-codec "^1.4.8" + "@jridgewell/sourcemap-codec" "^1.4.13" make-dir@^2.0.0, make-dir@^2.1.0: version "2.1.0" @@ -13953,10 +13944,10 @@ markdown-table@^1.1.3: resolved "https://registry.yarnpkg.com/markdown-table/-/markdown-table-1.1.3.tgz#9fcb69bcfdb8717bfd0398c6ec2d93036ef8de60" integrity sha512-1RUZVgQlpJSPWYbFSpmudq5nHY1doEIv89gBtF0s4gW1GF2XorxcA/70M5vq7rLv0a6mhOUccRsqkwhwLCIQ2Q== -marked@^4.0.19: - version "4.2.2" - resolved "https://registry.yarnpkg.com/marked/-/marked-4.2.2.tgz#1d2075ad6cdfe42e651ac221c32d949a26c0672a" - integrity sha512-JjBTFTAvuTgANXx82a5vzK9JLSMoV6V3LBVn4Uhdso6t7vXrGx7g1Cd2r6NYSsxrYbQGFCMqBDhFHyK5q2UvcQ== +marked@^4.2.4: + version "4.2.4" + resolved "https://registry.yarnpkg.com/marked/-/marked-4.2.4.tgz#5a4ce6c7a1ae0c952601fce46376ee4cf1797e1c" + integrity sha512-Wcc9ikX7Q5E4BYDPvh1C6QNSxrjC9tBgz+A/vAhp59KXUgachw++uMvMKiSW8oA85nopmPZcEvBoex/YLMsiyA== mcl-wasm@^0.7.1: version "0.7.9" @@ -14002,9 +13993,9 @@ memdown@~3.0.0: safe-buffer "~5.1.1" memfs@^3.4.3: - version "3.4.10" - resolved "https://registry.yarnpkg.com/memfs/-/memfs-3.4.10.tgz#4cdff7cfd21351a85e11b08aa276ebf100210a4d" - integrity sha512-0bCUP+L79P4am30yP1msPzApwuMQG23TjwlwdHeEV5MxioDR1a0AgB0T9FfggU52eJuDCq8WVwb5ekznFyWiTQ== + version "3.4.12" + resolved "https://registry.yarnpkg.com/memfs/-/memfs-3.4.12.tgz#d00f8ad8dab132dc277c659dc85bfd14b07d03bd" + integrity sha512-BcjuQn6vfqP+k100e0E9m61Hyqa//Brp+I3f0OBmN0ATHlFA8vx3Lt8z57R3u2bPqe3WGDBC+nF72fTH7isyEw== dependencies: fs-monkey "^1.0.3" @@ -14227,10 +14218,10 @@ minimatch@^3.0.3, minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatc dependencies: brace-expansion "^1.1.7" -minimatch@^5.0.1, minimatch@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.0.tgz#1717b464f4971b144f6aabe8f2d0b8e4511e09c7" - integrity sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg== +minimatch@^5.0.1, minimatch@^5.1.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.2.tgz#0939d7d6f0898acbd1508abe534d1929368a8fff" + integrity sha512-bNH9mmM9qsJ2X4r2Nat1B//1dJVcn3+iBLa3IgqJ7EbGaDNepL9QSHOxN4ng33s52VMMhhIfgCYDk3C4ZmlDAg== dependencies: brace-expansion "^2.0.1" @@ -14304,9 +14295,16 @@ minipass@^2.6.0, minipass@^2.9.0: yallist "^3.0.0" minipass@^3.0.0, minipass@^3.1.1, minipass@^3.1.6: - version "3.3.4" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.3.4.tgz#ca99f95dd77c43c7a76bf51e6d200025eee0ffae" - integrity sha512-I9WPbWHCGu8W+6k1ZiGpPu0GkoKBeorkfKNuAFBNS1HNFJvke82sxvI5bzcCNpWPorkOO5QQ+zomzzwRxejXiw== + version "3.3.6" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.3.6.tgz#7bba384db3a1520d18c9c0e5251c3444e95dd94a" + integrity sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw== + dependencies: + yallist "^4.0.0" + +minipass@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-4.0.0.tgz#7cebb0f9fa7d56f0c5b17853cbe28838a8dbbd3b" + integrity sha512-g2Uuh2jEKoht+zvO6vJqXmYpflPqzRBT+Th2h01DKh5z7wbY/AZ2gCQ78cP70YoHPyFdY30YBV5WxgLOEwOykw== dependencies: yallist "^4.0.0" @@ -14386,9 +14384,9 @@ mocha-parallel-tests@^2.3.0: yargs "^13.3.0" mocha@^10.0.0: - version "10.1.0" - resolved "https://registry.yarnpkg.com/mocha/-/mocha-10.1.0.tgz#dbf1114b7c3f9d0ca5de3133906aea3dfc89ef7a" - integrity sha512-vUF7IYxEoN7XhQpFLxQAEMtE4W91acW4B6En9l97MwE9stL1A9gusXfoHZCLVHDUJ/7V5+lbCM6yMqzo5vNymg== + version "10.2.0" + resolved "https://registry.yarnpkg.com/mocha/-/mocha-10.2.0.tgz#1fd4a7c32ba5ac372e03a17eef435bd00e5c68b8" + integrity sha512-IDY7fl/BecMwFHzoqF2sg/SHHANeBoMMXFlS9r0OXKDssYE1M5O43wUY/9BVPeIvfH2zmEbBfseqN9gBQZzXkg== dependencies: ansi-colors "4.1.1" browser-stdout "1.3.1" @@ -14697,10 +14695,10 @@ node-fetch@^1.0.1, node-fetch@~1.7.1: encoding "^0.1.11" is-stream "^1.0.1" -node-fetch@^3.2.10: - version "3.2.10" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-3.2.10.tgz#e8347f94b54ae18b57c9c049ef641cef398a85c8" - integrity sha512-MhuzNwdURnZ1Cp4XTazr69K0BTizsBroX7Zx3UgDSVcZYKF/6p0CBe4EUb/hLqmzVhl0UpYfgRljQ4yxE+iCxA== +node-fetch@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-3.3.0.tgz#37e71db4ecc257057af828d523a7243d651d91e4" + integrity sha512-BKwRP/O0UvoMKp7GNdwPlObhYGB5DQqwhEDQlNKuoqwVYSxkSZCSbHjnFFmUEtwSKRPU4kNK8PbDYYitwaE3QA== dependencies: data-uri-to-buffer "^4.0.0" fetch-blob "^3.1.4" @@ -14722,9 +14720,9 @@ node-gyp-build@^4.2.0, node-gyp-build@^4.2.2, node-gyp-build@^4.3.0: integrity sha512-2iGbaQBV+ITgCz76ZEjmhUKAKVf7xfY1sRl4UiKQspfZMH2h06SyhNsnSVy50cwkFQDGLyif6m/6uFXHkOZ6rg== node-gyp@^9.0.0: - version "9.3.0" - resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-9.3.0.tgz#f8eefe77f0ad8edb3b3b898409b53e697642b319" - integrity sha512-A6rJWfXFz7TQNjpldJ915WFb1LnhO4lIve3ANPbWreuEoLoKlFT3sxIepPBkLhM27crW8YmN+pjlgbasH6cH/Q== + version "9.3.1" + resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-9.3.1.tgz#1e19f5f290afcc9c46973d68700cbd21a96192e4" + integrity sha512-4Q16ZCqq3g8awk6UplT7AuxQ35XN4R/yf/+wSAwcBUAjg7l58RTactWaP8fIDTi0FzI7YcVLujwExakZlfWkXg== dependencies: env-paths "^2.2.0" glob "^7.1.4" @@ -14743,9 +14741,9 @@ node-int64@^0.4.0: integrity sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw== node-releases@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.6.tgz#8a7088c63a55e493845683ebf3c828d8c51c5503" - integrity sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg== + version "2.0.8" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.8.tgz#0f349cdc8fcfa39a92ac0be9bc48b7706292b9ae" + integrity sha512-dFSmB8fFHEH/s81Xi+Y/15DQY6VHW81nXRj86EMSL3lmuTmK1e+aT4wrFCkTbm+gSwkw4KpX+rT/pMM2c1mF+A== node-source-walk@^4.0.0, node-source-walk@^4.2.0, node-source-walk@^4.2.2: version "4.3.0" @@ -14992,13 +14990,13 @@ nx@14.8.6, nx@^14.5.10: yargs "^17.4.0" yargs-parser "21.0.1" -nx@15.0.10, "nx@>=14.8.1 < 16": - version "15.0.10" - resolved "https://registry.yarnpkg.com/nx/-/nx-15.0.10.tgz#9660d8e6294bc6bdfcceba036fd5313856390a6d" - integrity sha512-Uy6C/lj+gFjdNAKg2RNYEqMO7t2jxz5fYAEm6FnViDZ2Qz28l1L6V70MEvq6wgyDzSSRL0I+OPLb71tiaD9BiA== +nx@15.3.3, "nx@>=14.8.1 < 16": + version "15.3.3" + resolved "https://registry.yarnpkg.com/nx/-/nx-15.3.3.tgz#4ad357310112bad1c4fbfded965bbbe00a2a906f" + integrity sha512-yR102AlVW5Sb7X1e9cyR+0h44RD6c3eLJbAZ0yVFKPCKw+zQTdGvAqITtB6ZeFnPkg6Qq6f1oWu6G0n6f2cTpw== dependencies: - "@nrwl/cli" "15.0.10" - "@nrwl/tao" "15.0.10" + "@nrwl/cli" "15.3.3" + "@nrwl/tao" "15.3.3" "@parcel/watcher" "2.0.4" "@yarnpkg/lockfile" "^1.1.0" "@yarnpkg/parsers" "^3.0.0-rc.18" @@ -15102,41 +15100,41 @@ object.assign@^4.1.3, object.assign@^4.1.4: has-symbols "^1.0.3" object-keys "^1.1.1" -object.entries@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.5.tgz#e1acdd17c4de2cd96d5a08487cfb9db84d881861" - integrity sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g== +object.entries@^1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.6.tgz#9737d0e5b8291edd340a3e3264bb8a3b00d5fa23" + integrity sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w== dependencies: call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.1" + define-properties "^1.1.4" + es-abstract "^1.20.4" -object.fromentries@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.5.tgz#7b37b205109c21e741e605727fe8b0ad5fa08251" - integrity sha512-CAyG5mWQRRiBU57Re4FKoTBjXfDoNwdFVH2Y1tS9PqCsfUTymAohOkEMSG3aRNKmv4lV3O7p1et7c187q6bynw== +object.fromentries@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.6.tgz#cdb04da08c539cffa912dcd368b886e0904bfa73" + integrity sha512-VciD13dswC4j1Xt5394WR4MzmAQmlgN72phd/riNp9vtD7tp4QQWJ0R4wvclXcafgcYK8veHRed2W6XeGBvcfg== dependencies: call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.1" + define-properties "^1.1.4" + es-abstract "^1.20.4" object.getownpropertydescriptors@^2.0.3, object.getownpropertydescriptors@^2.1.1: - version "2.1.4" - resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.4.tgz#7965e6437a57278b587383831a9b829455a4bc37" - integrity sha512-sccv3L/pMModT6dJAYF3fzGMVcb38ysQ0tEE6ixv2yXJDtEIPph268OlAdJj5/qZMZDq2g/jqvwppt36uS/uQQ== + version "2.1.5" + resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.5.tgz#db5a9002489b64eef903df81d6623c07e5b4b4d3" + integrity sha512-yDNzckpM6ntyQiGTik1fKV1DcVDRS+w8bvpWNCBanvH5LfRX9O8WTHqQzG4RZwRAM4I0oU7TV11Lj5v0g20ibw== dependencies: - array.prototype.reduce "^1.0.4" + array.prototype.reduce "^1.0.5" call-bind "^1.0.2" define-properties "^1.1.4" - es-abstract "^1.20.1" + es-abstract "^1.20.4" -object.hasown@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/object.hasown/-/object.hasown-1.1.1.tgz#ad1eecc60d03f49460600430d97f23882cf592a3" - integrity sha512-LYLe4tivNQzq4JdaWW6WO3HMZZJWzkkH8fnI6EebWl0VZth2wL2Lovm74ep2/gZzlaTdV62JZHEqHQ2yVn8Q/A== +object.hasown@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/object.hasown/-/object.hasown-1.1.2.tgz#f919e21fad4eb38a57bc6345b3afd496515c3f92" + integrity sha512-B5UIT3J1W+WuWIU55h0mjlwaqxiE5vYENJXIXZ4VFe05pNYrkKuK0U/6aFcb0pKywYJh7IhfoqUfKVmrJJHZHw== dependencies: define-properties "^1.1.4" - es-abstract "^1.19.5" + es-abstract "^1.20.4" object.pick@^1.3.0: version "1.3.0" @@ -15145,14 +15143,14 @@ object.pick@^1.3.0: dependencies: isobject "^3.0.1" -object.values@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.5.tgz#959f63e3ce9ef108720333082131e4a459b716ac" - integrity sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg== +object.values@^1.1.5, object.values@^1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.6.tgz#4abbaa71eba47d63589d402856f908243eea9b1d" + integrity sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw== dependencies: call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.1" + define-properties "^1.1.4" + es-abstract "^1.20.4" obliterator@^2.0.0: version "2.0.4" @@ -15465,9 +15463,9 @@ pako@^1.0.4: integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== pako@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/pako/-/pako-2.0.4.tgz#6cebc4bbb0b6c73b0d5b8d7e8476e2b2fbea576d" - integrity sha512-v8tweI900AUkZN6heMU/4Uy4cXRc2AYNRggVmTR+dEncawDJgCdLMximOVA2p4qO57WMynangsfGRb5WD6L1Bg== + version "2.1.0" + resolved "https://registry.yarnpkg.com/pako/-/pako-2.1.0.tgz#266cc37f98c7d883545d11335c00fbd4062c9a86" + integrity sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug== param-case@^2.1.0: version "2.1.1" @@ -15566,9 +15564,9 @@ parse5-htmlparser2-tree-adapter@^7.0.0: parse5 "^7.0.0" parse5@^7.0.0, parse5@^7.1.1: - version "7.1.1" - resolved "https://registry.yarnpkg.com/parse5/-/parse5-7.1.1.tgz#4649f940ccfb95d8754f37f73078ea20afe0c746" - integrity sha512-kwpuwzB+px5WUg9pyK0IcK/shltJN5/OVhQagxhCQNtT9Y9QRZqNY2e1cmbu/paRh5LMnz/oVTVLBpjFmMZhSg== + version "7.1.2" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-7.1.2.tgz#0736bebbfd77793823240a23b7fc5e010b7f8e32" + integrity sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw== dependencies: entities "^4.4.0" @@ -15834,9 +15832,9 @@ posix-character-classes@^0.1.0: integrity sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg== postcss-selector-parser@^6.0.2: - version "6.0.10" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz#79b61e2c0d1bfc2602d549e11d0876256f8df88d" - integrity sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w== + version "6.0.11" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.11.tgz#2e41dc39b7ad74046e1615185185cd0b17d0c8dc" + integrity sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g== dependencies: cssesc "^3.0.0" util-deprecate "^1.0.2" @@ -15868,9 +15866,9 @@ postcss@^7.0.36: source-map "^0.6.1" postcss@^8.1.7, postcss@^8.4.6: - version "8.4.18" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.18.tgz#6d50046ea7d3d66a85e0e782074e7203bc7fbca2" - integrity sha512-Wi8mWhncLJm11GATDaQKobXSNEYGUHeQLiQqDFG1qQ5UTDPTEvKw0Xt5NsTpktGTwLps3ByrWsBrG0rB8YQ9oA== + version "8.4.20" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.20.tgz#64c52f509644cecad8567e949f4081d98349dc56" + integrity sha512-6Q04AXR1212bXr5fh03u8aAwbLxAQNGQ/Q1LNa0VfOI06ZAlhPHtQvE4OIdpj4kLThXilalPnmDSOD65DcHt+g== dependencies: nanoid "^3.3.4" picocolors "^1.0.0" @@ -15921,9 +15919,9 @@ prepend-http@^2.0.0: integrity sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA== prettier-plugin-solidity@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/prettier-plugin-solidity/-/prettier-plugin-solidity-1.0.0.tgz#5b23f48cc9c28a1246c6dd89af117234b813f48b" - integrity sha512-gRJCeZ7imbWtNYN2SudjJoPmka5r6jcd2cSTV6FC3pVCtY6LFZbeQQjpKufUEp88hXBAAnkOTOh7TA5xwj9M3A== + version "1.1.0" + resolved "https://registry.yarnpkg.com/prettier-plugin-solidity/-/prettier-plugin-solidity-1.1.0.tgz#a417d104b48a43af3adbfb96b65dbce34fd21429" + integrity sha512-5gq0T49ifvXH/6x1STuKyWjTUgi6ICoV65yNtKlg/vZEvocFtSpByJOJICBfqPwNsnv4vhhWIqkLGSUJmWum2w== dependencies: "@solidity-parser/parser" "^0.14.5" emoji-regex "^10.2.1" @@ -15932,15 +15930,15 @@ prettier-plugin-solidity@^1.0.0: solidity-comments-extractor "^0.0.7" string-width "^4.2.3" -"prettier@^1.18.2 || ^2.0.0", prettier@^2.1.2, prettier@^2.2.1, prettier@^2.3.2, prettier@^2.7.1: - version "2.7.1" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.7.1.tgz#e235806850d057f97bb08368a4f7d899f7760c64" - integrity sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g== +"prettier@^1.18.2 || ^2.0.0", prettier@^2.1.2, prettier@^2.2.1, prettier@^2.3.2, prettier@^2.8.1: + version "2.8.1" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.1.tgz#4e1fd11c34e2421bc1da9aea9bd8127cd0a35efc" + integrity sha512-lqGoSJBQNJidqCHE80vqZJHWHRFoNYsSpP9AjFhlhi9ODCJA541svILes/+/1GM3VaL/abZi7cpFzOpdR9UPKg== -pretty-format@^29.2.1: - version "29.2.1" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.2.1.tgz#86e7748fe8bbc96a6a4e04fa99172630907a9611" - integrity sha512-Y41Sa4aLCtKAXvwuIpTvcFBkyeYp2gdFWzXGA+ZNES3VwURIB165XO/z7CjETwzCCS53MjW/rLMyyqEnTtaOfA== +pretty-format@^29.3.1: + version "29.3.1" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.3.1.tgz#1841cac822b02b4da8971dacb03e8a871b4722da" + integrity sha512-FyLnmb1cYJV8biEIiRyzRFvs2lry7PPIvOqKVe1GCUEYg4YGmlx1qG9EJNMxArYm7piII4qb8UV1Pncq5dxmcg== dependencies: "@jest/schemas" "^29.0.0" ansi-styles "^5.0.0" @@ -16140,9 +16138,9 @@ pull-pushable@^2.0.0: integrity sha512-M7dp95enQ2kaHvfCt2+DJfyzgCSpWVR2h2kWYnVsW6ZpxQBx5wOu0QWOvQPVoPnBLUZYitYP2y7HyHkLQNeGXg== pull-stream@^3.2.3, pull-stream@^3.4.0, pull-stream@^3.6.8: - version "3.6.14" - resolved "https://registry.yarnpkg.com/pull-stream/-/pull-stream-3.6.14.tgz#529dbd5b86131f4a5ed636fdf7f6af00781357ee" - integrity sha512-KIqdvpqHHaTUA2mCYcLG1ibEbu/LCKoJZsBWyv9lSYtPkJPBq8m3Hxa103xHi6D2thj5YXa0TqK3L3GUkwgnew== + version "3.7.0" + resolved "https://registry.yarnpkg.com/pull-stream/-/pull-stream-3.7.0.tgz#85de0e44ff38a4d2ad08cc43fc458e1922f9bf0b" + integrity sha512-Eco+/R004UaCK2qEDE8vGklcTG2OeZSVm1kTUQNrykEjDwcFXDZhygFDsW49DbXyJMEhHeRL3z5cRVqPAhXlIw== pull-window@^2.1.4: version "2.1.4" @@ -16191,9 +16189,9 @@ pupa@^2.1.1: escape-goat "^2.0.0" pure-rand@^5.0.1: - version "5.0.3" - resolved "https://registry.yarnpkg.com/pure-rand/-/pure-rand-5.0.3.tgz#a2f15dfbc3be8433d1d8ed67ee411aa83fb90406" - integrity sha512-9N8x1h8dptBQpHyC7aZMS+iNOAm97WMGY0AFrguU1cpfW3I5jINkWe5BIY5md0ofy+1TCIELsVcm/GJXZSaPbw== + version "5.0.5" + resolved "https://registry.yarnpkg.com/pure-rand/-/pure-rand-5.0.5.tgz#bda2a7f6a1fc0f284d78d78ca5902f26f2ad35cf" + integrity sha512-BwQpbqxSCBJVpamI6ydzcKqyFmnd5msMWUGvzXLm1aXvusbbgkbOto/EUPM00hjveJEaJtdbhUjKSzWRhQVkaw== q@^1.5.1: version "1.5.1" @@ -16482,12 +16480,12 @@ rechoir@^0.6.2: dependencies: resolve "^1.1.6" -rechoir@^0.7.0: - version "0.7.1" - resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.7.1.tgz#9478a96a1ca135b5e88fc027f03ee92d6c645686" - integrity sha512-/njmZ8s1wVeR6pjTZ+0nCnv8SpZNRMT2D1RLOJQESlYFDBvwpTA4KWJpZ+sBJ4+vhjILRcK7JIFdGCdxEAAitg== +rechoir@^0.8.0: + version "0.8.0" + resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.8.0.tgz#49f866e0d32146142da3ad8f0eff352b3215ff22" + integrity sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ== dependencies: - resolve "^1.9.0" + resolve "^1.20.0" redent@^3.0.0: version "3.0.0" @@ -16514,10 +16512,10 @@ regenerator-runtime@^0.11.0: resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg== -regenerator-runtime@^0.13.10: - version "0.13.10" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.10.tgz#ed07b19616bcbec5da6274ebc75ae95634bfc2ee" - integrity sha512-KepLsg4dU12hryUO7bp/axHAKvwGOCV0sGloQtpagJ12ai+ojVDqkeGSiRX1zlq+kjIMZ1t7gpze+26QqtdGqw== +regenerator-runtime@^0.13.11: + version "0.13.11" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz#f6dca3e7ceec20590d07ada785636a90cdca17f9" + integrity sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg== regenerator-transform@^0.10.0: version "0.10.1" @@ -16528,10 +16526,10 @@ regenerator-transform@^0.10.0: babel-types "^6.19.0" private "^0.1.6" -regenerator-transform@^0.15.0: - version "0.15.0" - resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.15.0.tgz#cbd9ead5d77fae1a48d957cf889ad0586adb6537" - integrity sha512-LsrGtPmbYg19bcPHwdtmXwbW+TqNvtY4riE3P83foeHRroMbH6/2ddFBfab3t7kbzc7v7p4wbkIecHImqt0QNg== +regenerator-transform@^0.15.1: + version "0.15.1" + resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.15.1.tgz#f6c4e99fc1b4591f780db2586328e4d9a9d8dc56" + integrity sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg== dependencies: "@babel/runtime" "^7.8.4" @@ -16543,7 +16541,7 @@ regex-not@^1.0.0, regex-not@^1.0.2: extend-shallow "^3.0.2" safe-regex "^1.1.0" -regexp.prototype.flags@^1.2.0, regexp.prototype.flags@^1.4.1, regexp.prototype.flags@^1.4.3: +regexp.prototype.flags@^1.2.0, regexp.prototype.flags@^1.4.3: version "1.4.3" resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz#87cab30f80f66660181a3bb7bf5981a872b367ac" integrity sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA== @@ -16566,17 +16564,17 @@ regexpu-core@^2.0.0: regjsgen "^0.2.0" regjsparser "^0.1.4" -regexpu-core@^5.1.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-5.2.1.tgz#a69c26f324c1e962e9ffd0b88b055caba8089139" - integrity sha512-HrnlNtpvqP1Xkb28tMhBUO2EbyUHdQlsnlAhzWcwHy8WJR53UWr7/MAvqrsQKMbV4qdpv03oTMG8iIhfsPFktQ== +regexpu-core@^5.2.1: + version "5.2.2" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-5.2.2.tgz#3e4e5d12103b64748711c3aad69934d7718e75fc" + integrity sha512-T0+1Zp2wjF/juXMrMxHxidqGYn8U4R+zleSJhX9tQ1PUsS8a9UtYfbsF9LdiVgNX3kiX8RNaKM42nfSgvFJjmw== dependencies: regenerate "^1.4.2" regenerate-unicode-properties "^10.1.0" regjsgen "^0.7.1" regjsparser "^0.9.1" unicode-match-property-ecmascript "^2.0.0" - unicode-match-property-value-ecmascript "^2.0.0" + unicode-match-property-value-ecmascript "^2.1.0" registry-auth-token@^4.0.0: version "4.2.2" @@ -16791,7 +16789,7 @@ resolve@1.17.0: dependencies: path-parse "^1.0.6" -resolve@^1.1.6, resolve@^1.10.0, resolve@^1.13.1, resolve@^1.14.2, resolve@^1.20.0, resolve@^1.21.0, resolve@^1.22.0, resolve@^1.22.1, resolve@^1.8.1, resolve@^1.9.0, resolve@~1.22.1: +resolve@^1.1.6, resolve@^1.10.0, resolve@^1.13.1, resolve@^1.14.2, resolve@^1.20.0, resolve@^1.21.0, resolve@^1.22.0, resolve@^1.22.1, resolve@^1.8.1, resolve@~1.22.1: version "1.22.1" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177" integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw== @@ -16926,10 +16924,10 @@ rollup@^2.77.2: optionalDependencies: fsevents "~2.3.2" -rollup@^3.2.5: - version "3.2.5" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-3.2.5.tgz#9452168ac083218c8212bf53d2448bdc6b8b0de7" - integrity sha512-/Ha7HhVVofduy+RKWOQJrxe4Qb3xyZo+chcpYiD8SoQa4AG7llhupUtyfKSSrdBM2mWJjhM8wZwmbY23NmlIYw== +rollup@^3.7.4: + version "3.7.5" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-3.7.5.tgz#db580f8eda50237b0721ddea301fb981cd992933" + integrity sha512-z0ZbqHBtS/et2EEUKMrAl2CoSdwN7ZPzL17UMiKN9RjjqHShTlv7F9J6ZJZJNREYjBh3TvBrdfjkFDIXFNeuiQ== optionalDependencies: fsevents "~2.3.2" @@ -16958,9 +16956,9 @@ rustbn.js@~0.2.0: integrity sha512-4VlvkRUuCJvr2J6Y0ImW7NvTCriMi7ErOAqWk1y69vAdoNIzCF3yPmgeNzx+RQTLEDFq5sHfscn1MwHxP9hNfA== rxjs@^7.5.5, rxjs@^7.5.6: - version "7.5.7" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.5.7.tgz#2ec0d57fdc89ece220d2e702730ae8f1e49def39" - integrity sha512-z9MzKh/UcOqB3i20H6rtrlaE/CgjLOvheWK/9ILrbhROGTweAi1BaFsTT9FbwZi5Trr1qNRs+MXkhmR06awzQA== + version "7.8.0" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.8.0.tgz#90a938862a82888ff4c7359811a595e14e1e09a4" + integrity sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg== dependencies: tslib "^2.1.0" @@ -17716,9 +17714,9 @@ ssri@^9.0.0, ssri@^9.0.1: minipass "^3.1.1" stack-utils@^2.0.3: - version "2.0.5" - resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.5.tgz#d25265fca995154659dbbfba3b49254778d2fdd5" - integrity sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA== + version "2.0.6" + resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.6.tgz#aaf0748169c02fc33c8232abccf933f54a1cc34f" + integrity sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ== dependencies: escape-string-regexp "^2.0.0" @@ -17818,46 +17816,46 @@ string-width@^3.0.0, string-width@^3.1.0: is-fullwidth-code-point "^2.0.0" strip-ansi "^5.1.0" -string.prototype.matchall@^4.0.7: - version "4.0.7" - resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.7.tgz#8e6ecb0d8a1fb1fda470d81acecb2dba057a481d" - integrity sha512-f48okCX7JiwVi1NXCVWcFnZgADDC/n2vePlQ/KUCNqCikLLilQvwjMO8+BHVKvgzH0JB0J9LEPgxOGT02RoETg== +string.prototype.matchall@^4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.8.tgz#3bf85722021816dcd1bf38bb714915887ca79fd3" + integrity sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg== dependencies: call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.19.1" - get-intrinsic "^1.1.1" + define-properties "^1.1.4" + es-abstract "^1.20.4" + get-intrinsic "^1.1.3" has-symbols "^1.0.3" internal-slot "^1.0.3" - regexp.prototype.flags "^1.4.1" + regexp.prototype.flags "^1.4.3" side-channel "^1.0.4" string.prototype.trim@~1.2.6: - version "1.2.6" - resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.6.tgz#824960787db37a9e24711802ed0c1d1c0254f83e" - integrity sha512-8lMR2m+U0VJTPp6JjvJTtGyc4FIGq9CdRt7O9p6T0e6K4vjU+OP+SQJpbe/SBmRcCUIvNUnjsbmY6lnMp8MhsQ== + version "1.2.7" + resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.7.tgz#a68352740859f6893f14ce3ef1bb3037f7a90533" + integrity sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg== dependencies: call-bind "^1.0.2" define-properties "^1.1.4" - es-abstract "^1.19.5" + es-abstract "^1.20.4" -string.prototype.trimend@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz#914a65baaab25fbdd4ee291ca7dde57e869cb8d0" - integrity sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog== +string.prototype.trimend@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz#c4a27fa026d979d79c04f17397f250a462944533" + integrity sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ== dependencies: call-bind "^1.0.2" define-properties "^1.1.4" - es-abstract "^1.19.5" + es-abstract "^1.20.4" -string.prototype.trimstart@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz#5466d93ba58cfa2134839f81d7f42437e8c01fef" - integrity sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg== +string.prototype.trimstart@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz#e90ab66aa8e4007d92ef591bbf3cd422c56bdcf4" + integrity sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA== dependencies: call-bind "^1.0.2" define-properties "^1.1.4" - es-abstract "^1.19.5" + es-abstract "^1.20.4" string_decoder@^1.1.1: version "1.3.0" @@ -18125,13 +18123,13 @@ tar@^4.0.2: yallist "^3.1.1" tar@^6.1.0, tar@^6.1.11, tar@^6.1.2: - version "6.1.12" - resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.12.tgz#3b742fb05669b55671fb769ab67a7791ea1a62e6" - integrity sha512-jU4TdemS31uABHd+Lt5WEYJuzn+TJTCBLljvIAHZOz6M9Os5pJ4dD+vRFLxPa/n3T0iEFzpi+0x1UfuDZYbRMw== + version "6.1.13" + resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.13.tgz#46e22529000f612180601a6fe0680e7da508847b" + integrity sha512-jdIBIN6LTIe2jqzay/2vtYLlBHa3JF42ot3h1dW8Q0PaAG4v8rm0cvpVePtau5C6OKXGGcgO9q2AMNSWxiLqKw== dependencies: chownr "^2.0.0" fs-minipass "^2.0.0" - minipass "^3.0.0" + minipass "^4.0.0" minizlib "^2.1.1" mkdirp "^1.0.3" yallist "^4.0.0" @@ -18158,9 +18156,9 @@ terser-webpack-plugin@^5.1.3: terser "^5.14.1" terser@^5.14.1: - version "5.15.1" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.15.1.tgz#8561af6e0fd6d839669c73b92bdd5777d870ed6c" - integrity sha512-K1faMUvpm/FBxjBXud0LWVAGxmvoPbZbfTCYbSgaaYQaIXI3/TdI7a7ZGA73Zrou6Q8Zmz3oeUTsp/dj+ag2Xw== + version "5.16.1" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.16.1.tgz#5af3bc3d0f24241c7fb2024199d5c461a1075880" + integrity sha512-xvQfyfA1ayT0qdK47zskQgRZeWLoOQ8JQ6mIgRGVNwZKdQMU+5FkCBjmv4QjcrTzyZquRw2FVtlJSRUmMKQslw== dependencies: "@jridgewell/source-map" "^0.3.2" acorn "^8.5.0" @@ -18635,13 +18633,13 @@ typedarray@^0.0.6: integrity sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA== typedoc@^0.23.15: - version "0.23.20" - resolved "https://registry.yarnpkg.com/typedoc/-/typedoc-0.23.20.tgz#c6fa221762322837161932990b79416afcdc895c" - integrity sha512-nfb4Mx05ZZZXux3zPcLuc7+3TVePDW3jTdEBqXdQzJUyEILxoprgPIiTChbvci9crkqNJG9YESmfCptuh9Gn3g== + version "0.23.23" + resolved "https://registry.yarnpkg.com/typedoc/-/typedoc-0.23.23.tgz#9cf95b03d2d40031d8978b55e88b0b968d69f512" + integrity sha512-cg1YQWj+/BU6wq74iott513U16fbrPCbyYs04PHZgvoKJIc6EY4xNobyDZh4KMfRGW8Yjv6wwIzQyoqopKOUGw== dependencies: lunr "^2.3.9" - marked "^4.0.19" - minimatch "^5.1.0" + marked "^4.2.4" + minimatch "^5.1.1" shiki "^0.11.1" typeforce@^1.18.0: @@ -18654,10 +18652,10 @@ typescript@4.7.2: resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.7.2.tgz#1f9aa2ceb9af87cca227813b4310fff0b51593c4" integrity sha512-Mamb1iX2FDUpcTRzltPxgWMKy3fhg0TN378ylbktPGPK/99KbDtMQ4W1hwgsbPAsG3a0xKa1vmw4VKZQbkvz5A== -"typescript@^3 || ^4", typescript@^4.5.5, typescript@^4.7.4, typescript@^4.8.4: - version "4.8.4" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.8.4.tgz#c464abca159669597be5f96b8943500b238e60e6" - integrity sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ== +"typescript@^3 || ^4", typescript@^4.5.5, typescript@^4.7.4, typescript@^4.9.4: + version "4.9.4" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.4.tgz#a2a3d2756c079abda241d75f149df9d561091e78" + integrity sha512-Uz+dTXYzxXXbsFpM86Wh3dKCxrQqUcVMxwU54orwlJjOpO3ao8L7j5lH+dWfTwgCwIuM9GQ2kvVotzYJMXTBZg== typescript@^3.9.10, typescript@^3.9.5, typescript@^3.9.7: version "3.9.10" @@ -18722,9 +18720,9 @@ underscore@^1.8.3: integrity sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A== undici@^5.4.0: - version "5.12.0" - resolved "https://registry.yarnpkg.com/undici/-/undici-5.12.0.tgz#c758ffa704fbcd40d506e4948860ccaf4099f531" - integrity sha512-zMLamCG62PGjd9HHMpo05bSLvvwWOZgGeiWlN/vlqu3+lRo3elxktVGEyLMX+IO7c2eflLjcW74AlkhEZm15mg== + version "5.14.0" + resolved "https://registry.yarnpkg.com/undici/-/undici-5.14.0.tgz#1169d0cdee06a4ffdd30810f6228d57998884d00" + integrity sha512-yJlHYw6yXPPsuOH0x2Ib1Km61vu4hLiRRQoafs+WUgX1vO64vgnxiCEN9dpIrhZyHFsai3F0AEj4P9zy19enEQ== dependencies: busboy "^1.6.0" @@ -18741,10 +18739,10 @@ unicode-match-property-ecmascript@^2.0.0: unicode-canonical-property-names-ecmascript "^2.0.0" unicode-property-aliases-ecmascript "^2.0.0" -unicode-match-property-value-ecmascript@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz#1a01aa57247c14c568b89775a54938788189a714" - integrity sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw== +unicode-match-property-value-ecmascript@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz#cb5fffdcd16a05124f5a4b0bf7c3770208acbbe0" + integrity sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA== unicode-property-aliases-ecmascript@^2.0.0: version "2.1.0" @@ -19006,6 +19004,11 @@ uuid@^8.3.2: resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== +uuid@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-9.0.0.tgz#592f550650024a38ceb0c562f2f6aa435761efb5" + integrity sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg== + v8-compile-cache-lib@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf" @@ -19067,9 +19070,9 @@ verror@1.10.0: extsprintf "^1.2.0" vscode-oniguruma@^1.6.1: - version "1.6.2" - resolved "https://registry.yarnpkg.com/vscode-oniguruma/-/vscode-oniguruma-1.6.2.tgz#aeb9771a2f1dbfc9083c8a7fdd9cccaa3f386607" - integrity sha512-KH8+KKov5eS/9WhofZR8M8dMHWN2gTxjMsG4jd04YhpbPR91fUj7rYQ2/XjeHCJWbg7X++ApRIU9NUwM2vTvLA== + version "1.7.0" + resolved "https://registry.yarnpkg.com/vscode-oniguruma/-/vscode-oniguruma-1.7.0.tgz#439bfad8fe71abd7798338d1cd3dc53a8beea94b" + integrity sha512-L9WMGRfrjOhgHSdOYgCt/yRMsXzLDJSL7BPrOZt73gU0iWO4mpqzqQzOz5srxqTvMBaR0XZTSrVWo4j55Rc6cA== vscode-textmate@^6.0.0: version "6.0.0" @@ -19081,10 +19084,10 @@ vue-template-es2015-compiler@^1.9.0: resolved "https://registry.yarnpkg.com/vue-template-es2015-compiler/-/vue-template-es2015-compiler-1.9.1.tgz#1ee3bc9a16ecbf5118be334bb15f9c46f82f5825" integrity sha512-4gDntzrifFnCEvyoO8PqyJDmguXgVPxKiIxrBKjIowvL9l+N66196+72XVYR8BBf1Uv1Fgt3bGevJ+sEmxfZzw== -w3c-xmlserializer@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/w3c-xmlserializer/-/w3c-xmlserializer-3.0.0.tgz#06cdc3eefb7e4d0b20a560a5a3aeb0d2d9a65923" - integrity sha512-3WFqGEgSXIyGhOmAFtlicJNMjEps8b1MG31NCA0/vOF9+nKMUW1ckhi9cnNHmf88Rzw5V+dwIwsm2C7X8k9aQg== +w3c-xmlserializer@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/w3c-xmlserializer/-/w3c-xmlserializer-4.0.0.tgz#aebdc84920d806222936e3cdce408e32488a3073" + integrity sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw== dependencies: xml-name-validator "^4.0.0" @@ -19183,10 +19186,10 @@ web3-bzz@1.7.4: got "9.6.0" swarm-js "^0.1.40" -web3-bzz@1.8.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/web3-bzz/-/web3-bzz-1.8.0.tgz#2023676d7c17ea36512bf76eb310755a02a3d464" - integrity sha512-caDtdKeLi7+2Vb+y+cq2yyhkNjnxkFzVW0j1DtemarBg3dycG1iEl75CVQMLNO6Wkg+HH9tZtRnUyFIe5LIUeQ== +web3-bzz@1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/web3-bzz/-/web3-bzz-1.8.1.tgz#81397be5ce262d03d82b92e9d8acc11f8a609ea1" + integrity sha512-dJJHS84nvpoxv6ijTMkdUSlRr5beCXNtx4UZcrFLHBva8dT63QEtKdLyDt2AyMJJdVzTCk78uir/6XtVWrdS6w== dependencies: "@types/node" "^12.12.6" got "12.1.0" @@ -19209,13 +19212,13 @@ web3-core-helpers@1.7.4: web3-eth-iban "1.7.4" web3-utils "1.7.4" -web3-core-helpers@1.8.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/web3-core-helpers/-/web3-core-helpers-1.8.0.tgz#5dcfdda1a4ea277041d912003198f1334ca29d7c" - integrity sha512-nMAVwZB3rEp/khHI2BvFy0e/xCryf501p5NGjswmJtEM+Zrd3Biaw52JrB1qAZZIzCA8cmLKaOgdfamoDOpWdw== +web3-core-helpers@1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/web3-core-helpers/-/web3-core-helpers-1.8.1.tgz#7904747b23fd0afa4f2c86ed98ea9418ccad7672" + integrity sha512-ClzNO6T1S1gifC+BThw0+GTfcsjLEY8T1qUp6Ly2+w4PntAdNtKahxWKApWJ0l9idqot/fFIDXwO3Euu7I0Xqw== dependencies: - web3-eth-iban "1.8.0" - web3-utils "1.8.0" + web3-eth-iban "1.8.1" + web3-utils "1.8.1" web3-core-method@1.2.11: version "1.2.11" @@ -19240,16 +19243,16 @@ web3-core-method@1.7.4: web3-core-subscriptions "1.7.4" web3-utils "1.7.4" -web3-core-method@1.8.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/web3-core-method/-/web3-core-method-1.8.0.tgz#9c2da8896808917d1679c319f19e2174ba17086c" - integrity sha512-c94RAzo3gpXwf2rf8rL8C77jOzNWF4mXUoUfZYYsiY35cJFd46jQDPI00CB5+ZbICTiA5mlVzMj4e7jAsTqiLA== +web3-core-method@1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/web3-core-method/-/web3-core-method-1.8.1.tgz#0fc5a433a9fc784c447522f141c0a8e0163c7790" + integrity sha512-oYGRodktfs86NrnFwaWTbv2S38JnpPslFwSSARwFv4W9cjbGUW3LDeA5MKD/dRY+ssZ5OaekeMsUCLoGhX68yA== dependencies: "@ethersproject/transactions" "^5.6.2" - web3-core-helpers "1.8.0" - web3-core-promievent "1.8.0" - web3-core-subscriptions "1.8.0" - web3-utils "1.8.0" + web3-core-helpers "1.8.1" + web3-core-promievent "1.8.1" + web3-core-subscriptions "1.8.1" + web3-utils "1.8.1" web3-core-promievent@1.2.11: version "1.2.11" @@ -19265,10 +19268,10 @@ web3-core-promievent@1.7.4: dependencies: eventemitter3 "4.0.4" -web3-core-promievent@1.8.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/web3-core-promievent/-/web3-core-promievent-1.8.0.tgz#979765fd4d37ab0f158f0ee54037b279b737bd53" - integrity sha512-FGLyjAuOaAQ+ZhV6iuw9tg/9WvIkSZXKHQ4mdTyQ8MxVraOtFivOCbuLLsGgapfHYX+RPxsc1j1YzQjKoupagQ== +web3-core-promievent@1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/web3-core-promievent/-/web3-core-promievent-1.8.1.tgz#f334c8b2ceac6c2228f06d2a515f6d103157f036" + integrity sha512-9mxqHlgB0MrZI4oUIRFkuoJMNj3E7btjrMv3sMer/Z9rYR1PfoSc1aAokw4rxKIcAh+ylVtd/acaB2HKB7aRPg== dependencies: eventemitter3 "4.0.4" @@ -19294,16 +19297,16 @@ web3-core-requestmanager@1.7.4: web3-providers-ipc "1.7.4" web3-providers-ws "1.7.4" -web3-core-requestmanager@1.8.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/web3-core-requestmanager/-/web3-core-requestmanager-1.8.0.tgz#06189df80cf52d24a195a7ef655031afe8192df3" - integrity sha512-2AoYCs3Owl5foWcf4uKPONyqFygSl9T54L8b581U16nsUirjhoTUGK/PBhMDVcLCmW4QQmcY5A8oPFpkQc1TTg== +web3-core-requestmanager@1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/web3-core-requestmanager/-/web3-core-requestmanager-1.8.1.tgz#272ffa55b7b568ecbc8e4a257ca080355c31c60e" + integrity sha512-x+VC2YPPwZ1khvqA6TA69LvfFCOZXsoUVOxmTx/vIN22PrY9KzKhxcE7pBSiGhmab1jtmRYXUbcQSVpAXqL8cw== dependencies: util "^0.12.0" - web3-core-helpers "1.8.0" - web3-providers-http "1.8.0" - web3-providers-ipc "1.8.0" - web3-providers-ws "1.8.0" + web3-core-helpers "1.8.1" + web3-providers-http "1.8.1" + web3-providers-ipc "1.8.1" + web3-providers-ws "1.8.1" web3-core-subscriptions@1.2.11: version "1.2.11" @@ -19322,13 +19325,13 @@ web3-core-subscriptions@1.7.4: eventemitter3 "4.0.4" web3-core-helpers "1.7.4" -web3-core-subscriptions@1.8.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/web3-core-subscriptions/-/web3-core-subscriptions-1.8.0.tgz#ff66ae4467c8cb4716367248bcefb1845c0f8b83" - integrity sha512-7lHVRzDdg0+Gcog55lG6Q3D8JV+jN+4Ly6F8cSn9xFUAwOkdbgdWsjknQG7t7CDWy21DQkvdiY2BJF8S68AqOA== +web3-core-subscriptions@1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/web3-core-subscriptions/-/web3-core-subscriptions-1.8.1.tgz#f5ae1380e92746eadfab6475b8a70ef5a1be6bbf" + integrity sha512-bmCMq5OeA3E2vZUh8Js1HcJbhwtsE+yeMqGC4oIZB3XsL5SLqyKLB/pU+qUYqQ9o4GdcrFTDPhPg1bgvf7p1Pw== dependencies: eventemitter3 "4.0.4" - web3-core-helpers "1.8.0" + web3-core-helpers "1.8.1" web3-core@1.2.11: version "1.2.11" @@ -19356,18 +19359,18 @@ web3-core@1.7.4: web3-core-requestmanager "1.7.4" web3-utils "1.7.4" -web3-core@1.8.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/web3-core/-/web3-core-1.8.0.tgz#90afce527ac1b1dff8cbed2acbc0336530b8aacf" - integrity sha512-9sCA+Z02ci6zoY2bAquFiDjujRwmSKHiSGi4B8IstML8okSytnzXk1izHYSynE7ahIkguhjWAuXFvX76F5rAbA== +web3-core@1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/web3-core/-/web3-core-1.8.1.tgz#050b1c408d1f9b7ae539e90f7f7d1b7a7d10578b" + integrity sha512-LbRZlJH2N6nS3n3Eo9Y++25IvzMY7WvYnp4NM/Ajhh97dAdglYs6rToQ2DbL2RLvTYmTew4O/y9WmOk4nq9COw== dependencies: "@types/bn.js" "^5.1.0" "@types/node" "^12.12.6" bignumber.js "^9.0.0" - web3-core-helpers "1.8.0" - web3-core-method "1.8.0" - web3-core-requestmanager "1.8.0" - web3-utils "1.8.0" + web3-core-helpers "1.8.1" + web3-core-method "1.8.1" + web3-core-requestmanager "1.8.1" + web3-utils "1.8.1" web3-eth-abi@1.2.11: version "1.2.11" @@ -19386,13 +19389,13 @@ web3-eth-abi@1.7.4: "@ethersproject/abi" "^5.6.3" web3-utils "1.7.4" -web3-eth-abi@1.8.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/web3-eth-abi/-/web3-eth-abi-1.8.0.tgz#47fdff00bfdfa72064c9c612ff6369986598196d" - integrity sha512-xPeMb2hS9YLQK/Q5YZpkcmzoRGM+/R8bogSrYHhNC3hjZSSU0YRH+1ZKK0f9YF4qDZaPMI8tKWIMSCDIpjG6fg== +web3-eth-abi@1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/web3-eth-abi/-/web3-eth-abi-1.8.1.tgz#47455d6513217c4b0866fea6f97b1c4afa0b6535" + integrity sha512-0mZvCRTIG0UhDhJwNQJgJxu4b4DyIpuMA0GTfqxqeuqzX4Q/ZvmoNurw0ExTfXaGPP82UUmmdkRi6FdZOx+C6w== dependencies: "@ethersproject/abi" "^5.6.3" - web3-utils "1.8.0" + web3-utils "1.8.1" web3-eth-accounts@1.2.11: version "1.2.11" @@ -19428,22 +19431,22 @@ web3-eth-accounts@1.7.4: web3-core-method "1.7.4" web3-utils "1.7.4" -web3-eth-accounts@1.8.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/web3-eth-accounts/-/web3-eth-accounts-1.8.0.tgz#960d947ee87a49d6c706dc6312334fbfbd6ff812" - integrity sha512-HQ/MDSv4bexwJLvnqsM6xpGE7c2NVOqyhzOZFyMUKXbIwIq85T3TaLnM9pCN7XqMpDcfxqiZ3q43JqQVkzHdmw== +web3-eth-accounts@1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/web3-eth-accounts/-/web3-eth-accounts-1.8.1.tgz#1ce7387721f118aeb0376291e4d8bbe2ac323406" + integrity sha512-mgzxSYgN54/NsOFBO1Fq1KkXp1S5KlBvI/DlgvajU72rupoFMq6Cu6Yp9GUaZ/w2ij9PzEJuFJk174XwtfMCmg== dependencies: - "@ethereumjs/common" "^2.5.0" - "@ethereumjs/tx" "^3.3.2" + "@ethereumjs/common" "2.5.0" + "@ethereumjs/tx" "3.3.2" crypto-browserify "3.12.0" eth-lib "0.2.8" ethereumjs-util "^7.0.10" scrypt-js "^3.0.1" - uuid "3.3.2" - web3-core "1.8.0" - web3-core-helpers "1.8.0" - web3-core-method "1.8.0" - web3-utils "1.8.0" + uuid "^9.0.0" + web3-core "1.8.1" + web3-core-helpers "1.8.1" + web3-core-method "1.8.1" + web3-utils "1.8.1" web3-eth-contract@1.2.11: version "1.2.11" @@ -19474,19 +19477,19 @@ web3-eth-contract@1.7.4: web3-eth-abi "1.7.4" web3-utils "1.7.4" -web3-eth-contract@1.8.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/web3-eth-contract/-/web3-eth-contract-1.8.0.tgz#58f4ce0bde74e5ce87663502e409a92abad7b2c5" - integrity sha512-6xeXhW2YoCrz2Ayf2Vm4srWiMOB6LawkvxWJDnUWJ8SMATg4Pgu42C/j8rz/enXbYWt2IKuj0kk8+QszxQbK+Q== +web3-eth-contract@1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/web3-eth-contract/-/web3-eth-contract-1.8.1.tgz#bdf3e33bbcb79a1b6144dffd6a0deefd2e459272" + integrity sha512-1wphnl+/xwCE2io44JKnN+ti3oa47BKRiVzvWd42icwRbcpFfRxH9QH+aQX3u8VZIISNH7dAkTWpGIIJgGFTmg== dependencies: "@types/bn.js" "^5.1.0" - web3-core "1.8.0" - web3-core-helpers "1.8.0" - web3-core-method "1.8.0" - web3-core-promievent "1.8.0" - web3-core-subscriptions "1.8.0" - web3-eth-abi "1.8.0" - web3-utils "1.8.0" + web3-core "1.8.1" + web3-core-helpers "1.8.1" + web3-core-method "1.8.1" + web3-core-promievent "1.8.1" + web3-core-subscriptions "1.8.1" + web3-eth-abi "1.8.1" + web3-utils "1.8.1" web3-eth-ens@1.2.11: version "1.2.11" @@ -19517,19 +19520,19 @@ web3-eth-ens@1.7.4: web3-eth-contract "1.7.4" web3-utils "1.7.4" -web3-eth-ens@1.8.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/web3-eth-ens/-/web3-eth-ens-1.8.0.tgz#f1937371eac54b087ebe2e871780c2710d39998d" - integrity sha512-/eFbQEwvsMOEiOhw9/iuRXCsPkqAmHHWuFOrThQkozRgcnSTRnvxkkRC/b6koiT5/HaKeUs4yQDg+/ixsIxZxA== +web3-eth-ens@1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/web3-eth-ens/-/web3-eth-ens-1.8.1.tgz#e78a9651fea8282abe8565b001819e2d645e5929" + integrity sha512-FT8xTI9uN8RxeBQa/W8pLa2aoFh4+EE34w7W2271LICKzla1dtLyb6XSdn48vsUcPmhWsTVk9mO9RTU0l4LGQQ== dependencies: content-hash "^2.5.2" eth-ens-namehash "2.0.8" - web3-core "1.8.0" - web3-core-helpers "1.8.0" - web3-core-promievent "1.8.0" - web3-eth-abi "1.8.0" - web3-eth-contract "1.8.0" - web3-utils "1.8.0" + web3-core "1.8.1" + web3-core-helpers "1.8.1" + web3-core-promievent "1.8.1" + web3-eth-abi "1.8.1" + web3-eth-contract "1.8.1" + web3-utils "1.8.1" web3-eth-iban@1.2.11: version "1.2.11" @@ -19547,13 +19550,13 @@ web3-eth-iban@1.7.4: bn.js "^5.2.1" web3-utils "1.7.4" -web3-eth-iban@1.8.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/web3-eth-iban/-/web3-eth-iban-1.8.0.tgz#3af8a0c95b5f7b0b81ab0bcd2075c1e5dda31520" - integrity sha512-4RbvUxcMpo/e5811sE3a6inJ2H4+FFqUVmlRYs0RaXaxiHweahSRBNcpO0UWgmlePTolj0rXqPT2oEr0DuC8kg== +web3-eth-iban@1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/web3-eth-iban/-/web3-eth-iban-1.8.1.tgz#c6484e5d68ca644aa78431301e7acd5df24598d1" + integrity sha512-DomoQBfvIdtM08RyMGkMVBOH0vpOIxSSQ+jukWk/EkMLGMWJtXw/K2c2uHAeq3L/VPWNB7zXV2DUEGV/lNE2Dg== dependencies: bn.js "^5.2.1" - web3-utils "1.8.0" + web3-utils "1.8.1" web3-eth-personal@1.2.11: version "1.2.11" @@ -19579,17 +19582,17 @@ web3-eth-personal@1.7.4: web3-net "1.7.4" web3-utils "1.7.4" -web3-eth-personal@1.8.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/web3-eth-personal/-/web3-eth-personal-1.8.0.tgz#433c35e2e042844402a12d543c4126ea1494b478" - integrity sha512-L7FT4nR3HmsfZyIAhFpEctKkYGOjRC2h6iFKs9gnFCHZga8yLcYcGaYOBIoYtaKom99MuGBoosayWt/Twh7F5A== +web3-eth-personal@1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/web3-eth-personal/-/web3-eth-personal-1.8.1.tgz#00b5ff1898b62044d25ed5fddd8486168d4827cf" + integrity sha512-myIYMvj7SDIoV9vE5BkVdon3pya1WinaXItugoii2VoTcQNPOtBxmYVH+XS5ErzCJlnxzphpQrkywyY64bbbCA== dependencies: "@types/node" "^12.12.6" - web3-core "1.8.0" - web3-core-helpers "1.8.0" - web3-core-method "1.8.0" - web3-net "1.8.0" - web3-utils "1.8.0" + web3-core "1.8.1" + web3-core-helpers "1.8.1" + web3-core-method "1.8.1" + web3-net "1.8.1" + web3-utils "1.8.1" web3-eth@1.2.11: version "1.2.11" @@ -19628,23 +19631,23 @@ web3-eth@1.7.4: web3-net "1.7.4" web3-utils "1.7.4" -web3-eth@1.8.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/web3-eth/-/web3-eth-1.8.0.tgz#006974a5d5e30644d05814111f9e162a72e4a09c" - integrity sha512-hist52os3OT4TQFB/GxPSMxTh3995sz6LPvQpPvj7ktSbpg9RNSFaSsPlCT63wUAHA3PZb1FemkAIeQM5t72Lw== - dependencies: - web3-core "1.8.0" - web3-core-helpers "1.8.0" - web3-core-method "1.8.0" - web3-core-subscriptions "1.8.0" - web3-eth-abi "1.8.0" - web3-eth-accounts "1.8.0" - web3-eth-contract "1.8.0" - web3-eth-ens "1.8.0" - web3-eth-iban "1.8.0" - web3-eth-personal "1.8.0" - web3-net "1.8.0" - web3-utils "1.8.0" +web3-eth@1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/web3-eth/-/web3-eth-1.8.1.tgz#395f6cd56edaac5dbb23e8cec9886c3fd32c430e" + integrity sha512-LgyzbhFqiFRd8M8sBXoFN4ztzOnkeckl3H/9lH5ek7AdoRMhBg7tYpYRP3E5qkhd/q+yiZmcUgy1AF6NHrC1wg== + dependencies: + web3-core "1.8.1" + web3-core-helpers "1.8.1" + web3-core-method "1.8.1" + web3-core-subscriptions "1.8.1" + web3-eth-abi "1.8.1" + web3-eth-accounts "1.8.1" + web3-eth-contract "1.8.1" + web3-eth-ens "1.8.1" + web3-eth-iban "1.8.1" + web3-eth-personal "1.8.1" + web3-net "1.8.1" + web3-utils "1.8.1" web3-net@1.2.11: version "1.2.11" @@ -19664,14 +19667,14 @@ web3-net@1.7.4: web3-core-method "1.7.4" web3-utils "1.7.4" -web3-net@1.8.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/web3-net/-/web3-net-1.8.0.tgz#9acff92d7c647d801bc68df0ff4416f104dbe789" - integrity sha512-kX6EAacK7QrOe7DOh0t5yHS5q2kxZmTCxPVwSz9io9xBeE4n4UhmzGJ/VfhP2eM3OPKYeypcR3LEO6zZ8xn2vw== +web3-net@1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/web3-net/-/web3-net-1.8.1.tgz#2bed4d4b93166724129ec33d0e5dea98880285f4" + integrity sha512-LyEJAwogdFo0UAXZqoSJGFjopdt+kLw0P00FSZn2yszbgcoI7EwC+nXiOsEe12xz4LqpYLOtbR7+gxgiTVjjHQ== dependencies: - web3-core "1.8.0" - web3-core-method "1.8.0" - web3-utils "1.8.0" + web3-core "1.8.1" + web3-core-method "1.8.1" + web3-utils "1.8.1" web3-provider-engine@14.2.1: version "14.2.1" @@ -19715,15 +19718,15 @@ web3-providers-http@1.7.4: web3-core-helpers "1.7.4" xhr2-cookies "1.1.0" -web3-providers-http@1.8.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/web3-providers-http/-/web3-providers-http-1.8.0.tgz#3fd1e569ead2095343fac17d53160a3bae674c23" - integrity sha512-/MqxwRzExohBWW97mqlCSW/+NHydGRyoEDUS1bAIF2YjfKFwyRtHgrEzOojzkC9JvB+8LofMvbXk9CcltpZapw== +web3-providers-http@1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/web3-providers-http/-/web3-providers-http-1.8.1.tgz#8aa89c11a9272f11ddb74b871273c92225faa28d" + integrity sha512-1Zyts4O9W/UNEPkp+jyL19Jc3D15S4yp8xuLTjVhcUEAlHo24NDWEKxtZGUuHk4HrKL2gp8OlsDbJ7MM+ESDgg== dependencies: abortcontroller-polyfill "^1.7.3" cross-fetch "^3.1.4" es6-promise "^4.2.8" - web3-core-helpers "1.8.0" + web3-core-helpers "1.8.1" web3-providers-ipc@1.2.11: version "1.2.11" @@ -19742,13 +19745,13 @@ web3-providers-ipc@1.7.4: oboe "2.1.5" web3-core-helpers "1.7.4" -web3-providers-ipc@1.8.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/web3-providers-ipc/-/web3-providers-ipc-1.8.0.tgz#d339a24c4d764e459e425d3ac868a551ac33e3ea" - integrity sha512-tAXHtVXNUOgehaBU8pzAlB3qhjn/PRpjdzEjzHNFqtRRTwzSEKOJxFeEhaUA4FzHnTlbnrs8ujHWUitcp1elfg== +web3-providers-ipc@1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/web3-providers-ipc/-/web3-providers-ipc-1.8.1.tgz#6128a3a3a824d06bf0efcfe86325401f8691a5ca" + integrity sha512-nw/W5nclvi+P2z2dYkLWReKLnocStflWqFl+qjtv0xn3MrUTyXMzSF0+61i77+16xFsTgzo4wS/NWIOVkR0EFA== dependencies: oboe "2.1.5" - web3-core-helpers "1.8.0" + web3-core-helpers "1.8.1" web3-providers-ws@1.2.11: version "1.2.11" @@ -19769,13 +19772,13 @@ web3-providers-ws@1.7.4: web3-core-helpers "1.7.4" websocket "^1.0.32" -web3-providers-ws@1.8.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/web3-providers-ws/-/web3-providers-ws-1.8.0.tgz#a0a73e0606981ea32bed40d215000a64753899de" - integrity sha512-bcZtSifsqyJxwkfQYamfdIRp4nhj9eJd7cxHg1uUkfLJK125WP96wyJL1xbPt7qt0MpfnTFn8/UuIqIB6nFENg== +web3-providers-ws@1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/web3-providers-ws/-/web3-providers-ws-1.8.1.tgz#5e5370e07eb8c615ed298ebc8602b283c7b7d649" + integrity sha512-TNefIDAMpdx57+YdWpYZ/xdofS0P+FfKaDYXhn24ie/tH9G+AB+UBSOKnjN0KSadcRSCMBwGPRiEmNHPavZdsA== dependencies: eventemitter3 "4.0.4" - web3-core-helpers "1.8.0" + web3-core-helpers "1.8.1" websocket "^1.0.32" web3-shh@1.2.11: @@ -19798,15 +19801,15 @@ web3-shh@1.7.4: web3-core-subscriptions "1.7.4" web3-net "1.7.4" -web3-shh@1.8.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/web3-shh/-/web3-shh-1.8.0.tgz#b4abbf4f59d097ce2f74360e61e2e5c0bd6507c7" - integrity sha512-DNRgSa9Jf9xYFUGKSMylrf+zt3MPjhI2qF+UWX07o0y3+uf8zalDGiJOWvIS4upAsdPiKKVJ7co+Neof47OMmg== +web3-shh@1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/web3-shh/-/web3-shh-1.8.1.tgz#028a95cf9d3a36020380938b9a127610efbb9be7" + integrity sha512-sqHgarnfcY2Qt3PYS4R6YveHrDy7hmL09yeLLHHCI+RKirmjLVqV0rc5LJWUtlbYI+kDoa5gbgde489M9ZAC0g== dependencies: - web3-core "1.8.0" - web3-core-method "1.8.0" - web3-core-subscriptions "1.8.0" - web3-net "1.8.0" + web3-core "1.8.1" + web3-core-method "1.8.1" + web3-core-subscriptions "1.8.1" + web3-net "1.8.1" web3-utils@1.2.11: version "1.2.11" @@ -19835,10 +19838,10 @@ web3-utils@1.7.4: randombytes "^2.1.0" utf8 "3.0.0" -web3-utils@1.8.0, web3-utils@^1.0.0-beta.31, web3-utils@^1.2.11, web3-utils@^1.6.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/web3-utils/-/web3-utils-1.8.0.tgz#0a506f8c6af9a2ad6ba79689892662769534fc03" - integrity sha512-7nUIl7UWpLVka2f09CMbKOSEvorvHnaugIabU4mj7zfMvm0tSByLcEu3eyV9qgS11qxxLuOkzBIwCstTflhmpQ== +web3-utils@1.8.1, web3-utils@^1.0.0-beta.31, web3-utils@^1.2.11, web3-utils@^1.6.0: + version "1.8.1" + resolved "https://registry.yarnpkg.com/web3-utils/-/web3-utils-1.8.1.tgz#f2f7ca7eb65e6feb9f3d61056d0de6bbd57125ff" + integrity sha512-LgnM9p6V7rHHUGfpMZod+NST8cRfGzJ1BTXAyNo7A9cJX9LczBfSRxJp+U/GInYe9mby40t3v22AJdlELibnsQ== dependencies: bn.js "^5.2.1" ethereum-bloom-filters "^1.0.6" @@ -19875,17 +19878,17 @@ web3@1.7.4: web3-utils "1.7.4" web3@^1.0.0-beta.34, web3@^1.3.6, web3@^1.6.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/web3/-/web3-1.8.0.tgz#3ca5f0b32de6a1f626407740411219035b5fde64" - integrity sha512-sldr9stK/SALSJTgI/8qpnDuBJNMGjVR84hJ+AcdQ+MLBGLMGsCDNubCoyO6qgk1/Y9SQ7ignegOI/7BPLoiDA== + version "1.8.1" + resolved "https://registry.yarnpkg.com/web3/-/web3-1.8.1.tgz#8ea67215ef5f3a6f6d3381800b527242ea22885a" + integrity sha512-tAqFsQhGv340C9OgRJIuoScN7f7wa1tUvsnnDUMt9YE6J4gcm7TV2Uwv+KERnzvV+xgdeuULYpsioRRNKrUvoQ== dependencies: - web3-bzz "1.8.0" - web3-core "1.8.0" - web3-eth "1.8.0" - web3-eth-personal "1.8.0" - web3-net "1.8.0" - web3-shh "1.8.0" - web3-utils "1.8.0" + web3-bzz "1.8.1" + web3-core "1.8.1" + web3-eth "1.8.1" + web3-eth-personal "1.8.1" + web3-net "1.8.1" + web3-shh "1.8.1" + web3-utils "1.8.1" webidl-conversions@^3.0.0: version "3.0.1" @@ -19897,22 +19900,23 @@ webidl-conversions@^7.0.0: resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-7.0.0.tgz#256b4e1882be7debbf01d05f0aa2039778ea080a" integrity sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g== -webpack-cli@^4.10.0: - version "4.10.0" - resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-4.10.0.tgz#37c1d69c8d85214c5a65e589378f53aec64dab31" - integrity sha512-NLhDfH/h4O6UOy+0LSso42xvYypClINuMNBVVzX4vX98TmTaTUxwRbXdhucbFMd2qLaCTcLq/PdYrvi8onw90w== +webpack-cli@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-5.0.1.tgz#95fc0495ac4065e9423a722dec9175560b6f2d9a" + integrity sha512-S3KVAyfwUqr0Mo/ur3NzIp6jnerNpo7GUO6so51mxLi1spqsA17YcMXy0WOIJtBSnj748lthxC6XLbNKh/ZC+A== dependencies: "@discoveryjs/json-ext" "^0.5.0" - "@webpack-cli/configtest" "^1.2.0" - "@webpack-cli/info" "^1.5.0" - "@webpack-cli/serve" "^1.7.0" + "@webpack-cli/configtest" "^2.0.1" + "@webpack-cli/info" "^2.0.1" + "@webpack-cli/serve" "^2.0.1" colorette "^2.0.14" - commander "^7.0.0" + commander "^9.4.1" cross-spawn "^7.0.3" + envinfo "^7.7.3" fastest-levenshtein "^1.0.12" import-local "^3.0.2" - interpret "^2.2.0" - rechoir "^0.7.0" + interpret "^3.1.1" + rechoir "^0.8.0" webpack-merge "^5.7.3" webpack-dev-middleware@^5.3.1: @@ -19981,10 +19985,10 @@ webpack-subresource-integrity@^5.1.0: dependencies: typed-assert "^1.0.8" -webpack@^5.74.0: - version "5.74.0" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.74.0.tgz#02a5dac19a17e0bb47093f2be67c695102a55980" - integrity sha512-A2InDwnhhGN4LYctJj6M1JEaGL7Luj6LOmyBHjcI8529cm5p6VXiTIW2sn6ffvEAKmveLzvu4jrihwXtPojlAA== +webpack@^5.75.0: + version "5.75.0" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.75.0.tgz#1e440468647b2505860e94c9ff3e44d5b582c152" + integrity sha512-piaIaoVJlqMsPtX/+3KTTO6jfvrSYgauFVdt8cr9LTHKmcq/AMd4mhzsiP7ZF/PGRNPGA8336jldh9l2Kt2ogQ== dependencies: "@types/eslint-scope" "^3.7.3" "@types/estree" "^0.0.51" @@ -20304,10 +20308,10 @@ ws@^7.4.6: resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.9.tgz#54fa7db29f4c7cec68b1ddd3a89de099942bb591" integrity sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q== -ws@^8.4.2, ws@^8.8.1, ws@^8.9.0: - version "8.10.0" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.10.0.tgz#00a28c09dfb76eae4eb45c3b565f771d6951aa51" - integrity sha512-+s49uSmZpvtAsd2h37vIPy1RBusaLawVe8of+GyEPsaJTCMpj/2v8NpeK1SHXjBlQ95lQTmQofOJnFiLoaN3yw== +ws@^8.11.0, ws@^8.4.2, ws@^8.8.1: + version "8.11.0" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.11.0.tgz#6a0d36b8edfd9f96d8b25683db2f8d7de6e8e143" + integrity sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg== xdg-basedir@^4.0.0: version "4.0.0"