diff --git a/README.md b/README.md index 002ab7a..a79d827 100644 --- a/README.md +++ b/README.md @@ -71,11 +71,9 @@ Suppose you already done local running and set appropriated parameters and setti `get-shielded-balance` get calculated private balance (with optimistic balance) -`deposit-shielded [times]` deposit some tokens into zk-account (approving allowance scheme which require native coins presenting on the balance to cover token approve transaction fee). Specify `times` numeric value to repeat the operation several times +`deposit-shielded [times]` deposit some tokens into zk-account (depends on deposit scheme, you may need a few native coins). Specify `times` numeric value to repeat the operation several times -`deposit-shielded-permittable [times]` deposit some tokens into zk-account (permit scheme, no native coins needed). Specify `times` numeric value to repeat the operation several times - -`deposit-shielded-permittable-ephemeral ` deposit some tokens from the internal ephemeral address (permit scheme) +`deposit-shielded-ephemeral ` deposit some tokens from the internal ephemeral address (permit scheme) `direct-deposit [times]` send tokens to the pool directly to receive it on the specified zkAddress. Specify `times` numeric value to repeat the operation several times diff --git a/client-config.json b/client-config.json index a6abcb7..cfaa93d 100644 --- a/client-config.json +++ b/client-config.json @@ -9,7 +9,8 @@ "relayerUrls": ["https://relayer.thgkjlr.website/"], "delegatedProverUrls": ["https://prover-staging.thgkjlr.website/"], "coldStorageConfigPath": "./assets/zkbob-sepolia-coldstorage.cfg", - "feeDecimals": 2 + "feeDecimals": 2, + "depositScheme": "permit" }, "BOB-goerli": { "chainId": 5, @@ -18,7 +19,29 @@ "relayerUrls": ["https://dev-relayer.thgkjlr.website/"], "delegatedProverUrls": [], "coldStorageConfigPath": "", - "feeDecimals": 1 + "feeDecimals": 2, + "depositScheme": "permit" + }, + "WETH-goerli": { + "chainId": 5, + "poolAddress": "0xf9dbCF4005497e042838dE9082C817fCa790e945", + "tokenAddress": "0xB4FBF271143F4FBf7B91A5ded31805e42b2208d6", + "relayerUrls": ["https://goerli-weth-relayer.thgkjlr.website/"], + "delegatedProverUrls": [], + "coldStorageConfigPath": "", + "minTxAmount": 0, + "depositScheme": "permit2" + }, + "USDC-goerli": { + "chainId": 5, + "poolAddress": "0xCF6446Deb67b2b56604657C67DAF54f884412531", + "tokenAddress": "0x28B531401Ee3f17521B3772c13EAF3f86C2Fe780", + "relayerUrls": ["https://goerli-usdc-relayer.thgkjlr.website"], + "delegatedProverUrls": [], + "coldStorageConfigPath": "", + "feeDecimals": 2, + "minTxAmount": 50000, + "depositScheme": "usdc-polygon" }, "BOB-op-goerli": { "chainId":420, @@ -26,7 +49,9 @@ "tokenAddress":"0x0fA7E69b9344D6434Bd6b79c5950bb5234245a5F", "relayerUrls":["https://gop-relayer.thgkjlr.website"], "delegatedProverUrls": [], - "coldStorageConfigPath": "" + "coldStorageConfigPath": "", + "feeDecimals": 2, + "depositScheme": "permit" } }, diff --git a/package.json b/package.json index 470ee98..b25d2b8 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "zkbob-console", - "version": "3.3.0", + "version": "3.4.0", "license": "MIT", "author": "Dmitry Vdovin ", "homepage": "https://github.com/zkBob/zkbob-console", @@ -38,8 +38,8 @@ "tslib": "^2.3.1", "uuid": "^9.0.0", "web3": "^1.7.1", - "zeropool-support-js": "https://github.com/zkBob/zeropool-support-js#0.7.1", - "zkbob-client-js": "4.0.1" + "zeropool-support-js": "https://github.com/zkBob/zeropool-support-js#0.8.0", + "zkbob-client-js": "5.0.0" }, "devDependencies": { "@parcel/compressor-gzip": "^2.0.1", diff --git a/src/account.ts b/src/account.ts index 67d8e2e..e719c05 100644 --- a/src/account.ts +++ b/src/account.ts @@ -4,18 +4,17 @@ import { EthereumClient, Client as NetworkClient } from 'zeropool-support-js'; import { AccountConfig, ClientConfig, ProverMode, ZkBobClient, HistoryRecord, ComplianceHistoryRecord, TransferConfig, TransferRequest, FeeAmount, TxType, - PoolLimits, - TreeState, EphemeralAddress, SyncStat, TreeNode, - ServiceVersion, - accountId, - RelayerFee + PoolLimits, TreeState, EphemeralAddress, SyncStat, TreeNode, + ServiceVersion, accountId, DepositType, SignatureType, + deriveSpendingKeyZkBob, GiftCardProperties } from 'zkbob-client-js'; -import { deriveSpendingKeyZkBob } from 'zkbob-client-js/lib/utils' import bip39 from 'bip39-light'; import HDWalletProvider from '@truffle/hdwallet-provider'; import { v4 as uuidv4 } from 'uuid'; import { env } from './environment'; -import { GiftCardProperties } from 'zkbob-client-js/lib/client-provider'; +import Web3 from 'web3'; + +const PERMIT2_CONTRACT = '0x000000000022D473030F116dDEE9F6B43aC78BA3'; interface AccountStorage { @@ -227,6 +226,10 @@ export class Account { return `sh${this.tokenSymbol()}`; } + public depositScheme(): DepositType { + return this.config.pools[this.getCurrentPool()].depositScheme; + } + public async switchPool(poolAlias: string, password: string): Promise { if (!this.accountName) { throw new Error('Cannot switch pool: account isn\'t set'); @@ -351,7 +354,8 @@ export class Account { // ^tokens|wei -> wei public async humanToWei(amount: string): Promise { if (amount.startsWith("^")) { - return BigInt(this.getClient().toBaseUnit(amount.substr(1))); + const tokenAddress = this.config.pools[this.getCurrentPool()].tokenAddress; + return BigInt(await this.getClient().toBaseUnit(tokenAddress, amount.substring(1))); } return BigInt(amount); @@ -370,13 +374,27 @@ export class Account { // wei -> tokens public async weiToHuman(amountWei: bigint): Promise { - return this.getClient().fromBaseUnit(amountWei.toString()); + const tokenAddress = this.config.pools[this.getCurrentPool()].tokenAddress; + return await this.getClient().fromBaseUnit(tokenAddress, amountWei.toString()); + } + + public ethWeiToHuman(amountWei: bigint): string { + return Web3.utils.fromWei(amountWei.toString(10), 'ether'); + } + + public humanToEthWei(amount: string): bigint { + if (amount.startsWith("^")) { + return BigInt(Web3.utils.toWei(amount.substring(1), 'ether')); + } + + return BigInt(amount); } public async getBalance(): Promise<[string, string]> { + const tokenAddress = this.config.pools[this.getCurrentPool()].tokenAddress; const balance = await this.getClient().getBalance(); - const readable = this.getClient().fromBaseUnit(balance); + const readable = this.ethWeiToHuman(BigInt(balance)); return [balance, readable]; } @@ -534,90 +552,51 @@ export class Account { return addrUrl.replace('{{addr}}', addr); } - // Here is an old deposit method (via approve allowance, not permit signature) public async depositShielded(amount: bigint): Promise<{jobId: string, txHash: string}> { - let fromAddress = null; - + let myAddress = await this.getClient().getAddress(); + console.log('Waiting while state become ready...'); const ready = await this.getZpClient().waitReadyToTransact(); if (ready) { + const feeEst = await this.getZpClient().feeEstimate([amount], TxType.Deposit, false); const relayerFee = feeEst.relayerFee; console.info(`Using relayer fee: base = ${relayerFee.fee}, perByte = ${relayerFee.oneByteFee}`); - - let totalApproveAmount = await this.getZpClient().shieldedAmountToWei(amount + feeEst.total); - const currentAllowance = await this.getClient().allowance(this.getTokenAddr(), this.getPoolAddr()); - if (totalApproveAmount > currentAllowance) { - totalApproveAmount -= currentAllowance; - console.log(`Increasing allowance for the Pool (${this.getPoolAddr()}) to spend our tokens (+ ${await this.weiToHuman(totalApproveAmount)} ${this.tokenSymbol()})`); - await this.getClient().increaseAllowance(this.getTokenAddr(), this.getPoolAddr(), totalApproveAmount.toString()); - } else { - console.log(`Current allowance (${await this.weiToHuman(currentAllowance)} ${this.tokenSymbol()}) is greater or equal than needed (${await this.weiToHuman(totalApproveAmount)} ${this.tokenSymbol()}). Skipping approve`); + + const depositScheme = this.config.pools[this.getCurrentPool()].depositScheme; + let totalNeededAmount = await this.getZpClient().shieldedAmountToWei(amount + feeEst.total); + if (depositScheme == DepositType.Approve) { + // check a token approvement if needed (in case of approve deposit scheme) + const currentAllowance = await this.getClient().allowance(this.getTokenAddr(), this.getPoolAddr()); + if (totalNeededAmount > currentAllowance) { + totalNeededAmount -= currentAllowance; + console.log(`Increasing allowance for the Pool (${this.getPoolAddr()}) to spend our tokens (+ ${await this.weiToHuman(totalNeededAmount)} ${this.tokenSymbol()})`); + await this.getClient().increaseAllowance(this.getTokenAddr(), this.getPoolAddr(), totalNeededAmount.toString()); + } else { + console.log(`Current allowance (${await this.weiToHuman(currentAllowance)} ${this.tokenSymbol()}) is greater or equal than needed (${await this.weiToHuman(totalNeededAmount)} ${this.tokenSymbol()}). Skipping approve`); + } + } else if (depositScheme == DepositType.PermitV2) { + const currentAllowance = await this.getClient().allowance(this.getTokenAddr(), PERMIT2_CONTRACT); + if (totalNeededAmount > currentAllowance) { + const maxTokensAmount = 2n ** 256n - 1n; + console.log(`Approving Permit2 contract (${PERMIT2_CONTRACT}) to spend max amount of our tokens`); + await this.getClient().approve(this.getTokenAddr(), PERMIT2_CONTRACT, maxTokensAmount.toString()); + } else { + console.log(`Current allowance (${await this.weiToHuman(currentAllowance)} ${this.tokenSymbol()}) is greater or equal than needed (${await this.weiToHuman(totalNeededAmount)} ${this.tokenSymbol()}). Skipping approve`); + } } - console.log('Making deposit...'); - const jobId = await this.getZpClient().deposit(amount, (data) => this.getClient().sign(data), fromAddress, relayerFee); - console.log('Please wait relayer provide txHash for job %s...', jobId); - - return {jobId, txHash: (await this.getZpClient().waitJobTxHash(jobId)) }; - } else { - console.log('Sorry, I cannot wait anymore. Please ask for relayer 😂'); - - throw Error('State is not ready for transact'); - } - } - - - private async createPermittableDepositData(tokenAddress: string, version: string, owner: string, spender: string, value: bigint, deadline: bigint, salt: string) { - const tokenName = await this.getClient().getTokenName(tokenAddress); - const chainId = await this.getClient().getChainId(); - const nonce = await this.getClient().getTokenNonce(tokenAddress); - - const domain = { - name: tokenName, - version: version, - chainId: chainId, - verifyingContract: tokenAddress, - }; - - const types = { - EIP712Domain: [ - { name: 'name', type: 'string' }, - { name: 'version', type: 'string' }, - { name: 'chainId', type: 'uint256' }, - { name: 'verifyingContract', type: 'address' }, - ], - Permit: [ - { name: "owner", type: "address" }, - { name: "spender", type: "address" }, - { name: "value", type: "uint256" }, - { name: "nonce", type: "uint256" }, - { name: "deadline", type: "uint256" }, - { name: "salt", type: "bytes32" } - ], - }; - - const message = { owner, spender, value: value.toString(), nonce, deadline: deadline.toString(), salt }; - - const data = { types, primaryType: "Permit", domain, message }; - - return data; - } - - public async depositShieldedPermittable(amount: bigint): Promise<{jobId: string, txHash: string}> { - let myAddress = await this.getClient().getAddress(); - - console.log('Waiting while state become ready...'); - const ready = await this.getZpClient().waitReadyToTransact(); - if (ready) { - const relayerFee = await this.getZpClient().getRelayerFee(); - console.info(`Using relayer fee: base = ${relayerFee.fee}, perByte = ${relayerFee.oneByteFee}`); - console.log('Making deposit...'); let jobId; - jobId = await this.getZpClient().depositPermittable(amount, async (deadline, value, salt) => { - const dataToSign = await this.createPermittableDepositData(this.getTokenAddr(), '1', myAddress, this.getPoolAddr(), value, deadline, salt); - return this.getClient().signTypedData(dataToSign) + jobId = await this.getZpClient().deposit(amount, async (signingRequest) => { + switch (signingRequest.type) { + case SignatureType.TypedDataV4: + return this.getClient().signTypedData(signingRequest.data); + case SignatureType.PersonalSign: + return this.getClient().sign(signingRequest.data); + default: + throw new Error(`Signing request with unknown type`); + } }, myAddress, relayerFee); console.log('Please wait relayer provide txHash for job %s...', jobId); @@ -630,7 +609,7 @@ export class Account { } } - public async depositShieldedPermittableEphemeral(amount: bigint, index: number): Promise<{jobId: string, txHash: string}> { + public async depositShieldedEphemeral(amount: bigint, index: number): Promise<{jobId: string, txHash: string}> { console.log('Waiting while state become ready...'); const ready = await this.getZpClient().waitReadyToTransact(); if (ready) { @@ -639,7 +618,7 @@ export class Account { console.log('Making deposit...'); let jobId; - jobId = await this.getZpClient().depositPermittableEphemeral(amount, index, relayerFee); + jobId = await this.getZpClient().depositEphemeral(amount, index, relayerFee); console.log('Please wait relayer complete the job %s...', jobId); diff --git a/src/commands.ts b/src/commands.ts index bc6e70c..4ac1627 100644 --- a/src/commands.ts +++ b/src/commands.ts @@ -1,8 +1,9 @@ import bip39 from 'bip39-light'; import { EphemeralAddress, HistoryRecord, HistoryTransactionType, ComplianceHistoryRecord, PoolLimits, TxType, TransferConfig, TransferRequest, TreeState, ProverMode, HistoryRecordState, GiftCardProperties, FeeAmount, + deriveSpendingKeyZkBob } from 'zkbob-client-js'; -import { deriveSpendingKeyZkBob, bufToHex, nodeToHex, hexToBuf } from 'zkbob-client-js/lib/utils'; +import { bufToHex, nodeToHex, hexToBuf } from 'zkbob-client-js/lib/utils'; import qrcodegen from "@ribpay/qr-code-generator"; import { toSvgString } from "@ribpay/qr-code-generator/utils"; import JSZip from "jszip"; @@ -170,7 +171,7 @@ export async function mint(amount: string) { export async function transfer(to: string, amount: string) { this.pause(); this.echo(`Transfering ${this.account.nativeSymbol()}... `); - const txHash = await this.account.transfer(to, await this.account.humanToWei(amount)); + const txHash = await this.account.transfer(to, this.account.humanToEthWei(amount)); this.update(-1, `Transfering ${this.account.nativeSymbol()}... [[!;;;;${this.account.getTransactionUrl(txHash)}]${txHash}]`); this.resume(); } @@ -346,32 +347,19 @@ export async function depositShielded(amount: string, times: string) { for (let i = 0; i < txCnt; i++) { let cntStr = (txCnt > 1) ? ` (${i + 1}/${txCnt})` : ``; - this.echo(`Performing shielded deposit${cntStr}...`); - this.pause(); - const result = await this.account.depositShielded(await this.account.humanToShielded(amount)); - this.resume(); - this.echo(`Done [job #${result.jobId}]: [[!;;;;${this.account.getTransactionUrl(result.txHash)}]${result.txHash}]`); - } -} - -export async function depositShieldedPermittable(amount: string, times: string) { - let txCnt = times !== undefined ? Number(times) : 1; - - for (let i = 0; i < txCnt; i++) { - let cntStr = (txCnt > 1) ? ` (${i + 1}/${txCnt})` : ``; - this.echo(`Performing shielded deposit with permittable token${cntStr}...`); + this.echo(`Performing shielded deposit [${this.account.depositScheme()} scheme]${cntStr}...`); this.pause(); // Due to the fact that the console is a test tool, we doesn't check address balance here // we should get ability to test relayer's behaviour - const result = await this.account.depositShieldedPermittable(await this.account.humanToShielded(amount)); + const result = await this.account.depositShielded(await this.account.humanToShielded(amount)); this.resume(); this.echo(`Done [job #${result.jobId}]: [[!;;;;${this.account.getTransactionUrl(result.txHash)}]${result.txHash}]`); } } -export async function depositShieldedPermittableEphemeral(amount: string, index: string) { +export async function depositShieldedEphemeral(amount: string, index: string) { let ephemeralIndex = index !== undefined ? Number(index) : 0; this.echo(`Getting ephemeral account info...`); @@ -380,8 +368,8 @@ export async function depositShieldedPermittableEphemeral(amount: string, index: this.update(-1, `Ephemeral address [[!;;;;${this.account.getAddressUrl(ephemeralAddress.address)}]${ephemeralAddress.address}] has [[;white;]${await this.account.shieldedToHuman(ephemeralAddress.tokenBalance)}] ${this.account.tokenSymbol()}`); // Ephemeral account balance will be checked inside a library sinse its resposibility for ephemeral pool - this.echo(`Performing shielded deposit with permittable token from ephemeral address [[;white;]#${ephemeralIndex}]...`); - const result = await this.account.depositShieldedPermittableEphemeral(await this.account.humanToShielded(amount), ephemeralIndex); + this.echo(`Performing shielded deposit from ephemeral address [[;white;]#${ephemeralIndex}] [${this.account.depositScheme()} scheme]...`); + const result = await this.account.depositShieldedEphemeral(await this.account.humanToShielded(amount), ephemeralIndex); this.resume(); this.echo(`Done [job #${result.jobId}]: [[!;;;;${this.account.getTransactionUrl(result.txHash)}]${result.txHash}]`); } @@ -692,7 +680,7 @@ export async function getEphemeral(index: string) { this.echo(`Index: [[;white;]${addr.index}]`); this.echo(` Address: [[!;;;;${this.account.getAddressUrl(addr.address)}]${addr.address}]`); this.echo(` Token balance: [[;white;]${await this.account.shieldedToHuman(addr.tokenBalance)} ${this.account.tokenSymbol()}]`); - this.echo(` Native balance: [[;white;]${await this.account.shieldedToHuman(addr.nativeBalance)} ${this.account.nativeSymbol()}]`); + this.echo(` Native balance: [[;white;]${await this.account.ethWeiToHuman(addr.nativeBalance)} ${this.account.nativeSymbol()}]`); this.echo(` Transfers (in/out): [[;white;]${inTxCnt}]/[[;white;]${outTxCnt}]`); this.echo(` Nonce [native]: [[;white;]${addr.nativeNonce}]`); this.echo(` Nonce [permit]: [[;white;]${addr.permitNonce}]`); @@ -714,7 +702,7 @@ export async function getEphemeralUsed() { this.echo(`Index: [[;white;]${addr.index}]`); this.echo(` Address: [[!;;;;${this.account.getAddressUrl(addr.address)}]${addr.address}]`); this.echo(` Token balance: [[;white;]${await this.account.shieldedToHuman(addr.tokenBalance)} ${this.account.tokenSymbol()}]`); - this.echo(` Native balance: [[;white;]${await this.account.shieldedToHuman(addr.nativeBalance)} ${this.account.nativeSymbol()}]`); + this.echo(` Native balance: [[;white;]${await this.account.ethWeiToHuman(addr.nativeBalance)} ${this.account.nativeSymbol()}]`); this.echo(` Transfers (in/out): [[;white;]${inTxCnt}]/[[;white;]${outTxCnt}]`); this.echo(` Nonce [native]: [[;white;]${addr.nativeNonce}]`); this.echo(` Nonce [permit]: [[;white;]${addr.permitNonce}]`); diff --git a/src/index.ts b/src/index.ts index 7ec31de..5ded5a6 100644 --- a/src/index.ts +++ b/src/index.ts @@ -38,9 +38,8 @@ const COMMANDS: { [key: string]: [(...args) => void, string, string] } = { 'gen-shielded-address': [c.genShieldedAddress, '[number]', 'generate a new zkBob shielded address for the current pool (or several addressed)'], 'gen-shielded-address-generic': [c.genShieldedAddressUniversal, '[number]', 'generate a new zkBob universal shielded address (or several addressed)'], 'get-shielded-balance': [c.getShieldedBalance, '', 'get calculated private balance'], - 'deposit-shielded': [c.depositShielded, ' [times]', 'shield some tokens [via approving allowance]'], - 'deposit-shielded-permittable': [c.depositShieldedPermittable, ' [times]', 'shield some tokens [via permit]'], - 'deposit-shielded-permittable-ephemeral': [c.depositShieldedPermittableEphemeral, ' ', 'shield some tokens from the internal ephemeral address [via permit]'], + 'deposit-shielded': [c.depositShielded, ' [times]', 'shield some tokens [via permit]'], + 'deposit-shielded-ephemeral': [c.depositShieldedEphemeral, ' ', 'shield some tokens from the internal ephemeral address [via permit]'], 'direct-deposit': [c.directDeposit, ' [times]', 'send tokens to the pool directly to receive it on the specified zkAddress'], 'transfer-shielded': [c.transferShielded, ' [times | +]', 'move shielded tokens to the another zkBob address (inside a pool)'], 'transfer-shielded-multinote': [c.transferShieldedMultinote, ' [times]', 'send a set of (notes) to the single address'], diff --git a/yarn.lock b/yarn.lock index f812405..7e85e6a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3,11 +3,11 @@ "@babel/code-frame@^7.0.0": - version "7.21.4" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.21.4.tgz#d0fa9e4413aca81f2b23b9442797bda1826edb39" - integrity sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g== + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.22.5.tgz#234d98e1551960604f1246e6475891a570ad5658" + integrity sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ== dependencies: - "@babel/highlight" "^7.18.6" + "@babel/highlight" "^7.22.5" "@babel/compat-data@^7.17.7", "@babel/compat-data@^7.20.5": version "7.20.14" @@ -54,22 +54,27 @@ resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz#38d3acb654b4701a9b77fb0615a96f775c3a9e63" integrity sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw== -"@babel/helper-validator-identifier@^7.18.6", "@babel/helper-validator-identifier@^7.19.1": +"@babel/helper-validator-identifier@^7.19.1": version "7.19.1" resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz#7eea834cf32901ffdc1a7ee555e2f9c27e249ca2" integrity sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w== +"@babel/helper-validator-identifier@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz#9544ef6a33999343c8740fa51350f30eeaaaf193" + integrity sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ== + "@babel/helper-validator-option@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz#bf0d2b5a509b1f336099e4ff36e1a63aa5db4db8" integrity sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw== -"@babel/highlight@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.18.6.tgz#81158601e93e2563795adcbfbdf5d64be3f2ecdf" - integrity sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g== +"@babel/highlight@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.22.5.tgz#aa6c05c5407a67ebce408162b7ede789b4d22031" + integrity sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw== dependencies: - "@babel/helper-validator-identifier" "^7.18.6" + "@babel/helper-validator-identifier" "^7.22.5" chalk "^2.0.0" js-tokens "^4.0.0" @@ -86,9 +91,9 @@ semver "^6.3.0" "@babel/runtime@^7.17.8": - version "7.21.0" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.21.0.tgz#5b55c9d394e5fcf304909a8b00c07dc217b56673" - integrity sha512-xwII0//EObnq89Ji5AKYQaRYiW/nZ3llSv29d49IuxPhKbtJoLP+9QUUZ4nVragQVtaVGeZrpB+ZtG/Pdy/POw== + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.22.5.tgz#8564dd588182ce0047d55d7a75e93921107b57ec" + integrity sha512-ecjvYlnAaZ/KVneE/OdKYBYfgXV3Ptu6zQWmgEF7vwKhQnvVS6bjMD2XYgj+SNvQ1GfK/pjgokfPkC/2CO8CuA== dependencies: regenerator-runtime "^0.13.11" @@ -108,27 +113,6 @@ "@babel/helper-validator-identifier" "^7.19.1" to-fast-properties "^2.0.0" -"@chainsafe/as-sha256@^0.4.1": - version "0.4.1" - resolved "https://registry.yarnpkg.com/@chainsafe/as-sha256/-/as-sha256-0.4.1.tgz#cfc0737e25f8c206767bdb6703e7943e5d44513e" - integrity sha512-IqeeGwQihK6Y2EYLFofqs2eY2ep1I2MvQXHzOAI+5iQN51OZlUkrLgyAugu2x86xZewDk5xas7lNczkzFzF62w== - -"@chainsafe/persistent-merkle-tree@^0.6.1": - version "0.6.1" - resolved "https://registry.yarnpkg.com/@chainsafe/persistent-merkle-tree/-/persistent-merkle-tree-0.6.1.tgz#37bde25cf6cbe1660ad84311aa73157dc86ec7f2" - integrity sha512-gcENLemRR13+1MED2NeZBMA7FRS0xQPM7L2vhMqvKkjqtFT4YfjSVADq5U0iLuQLhFUJEMVuA8fbv5v+TN6O9A== - dependencies: - "@chainsafe/as-sha256" "^0.4.1" - "@noble/hashes" "^1.3.0" - -"@chainsafe/ssz@^0.11.1": - version "0.11.1" - resolved "https://registry.yarnpkg.com/@chainsafe/ssz/-/ssz-0.11.1.tgz#d4aec883af2ec5196ae67b96242c467da20b2476" - integrity sha512-cB8dBkgGN6ZoeOKuk+rIRHKN0L5i9JLGeC0Lui71QX0TuLcQKwgbfkUexpyJxnGFatWf8yeJxlOjozMn/OTP0g== - dependencies: - "@chainsafe/as-sha256" "^0.4.1" - "@chainsafe/persistent-merkle-tree" "^0.6.1" - "@discoveryjs/json-ext@^0.5.0": version "0.5.7" resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz#1d572bfbbe14b7704e0ba0f39b74815b84870d70" @@ -172,11 +156,10 @@ ethereumjs-util "^7.1.5" "@ethereumjs/util@^8.0.0", "@ethereumjs/util@^8.0.2": - version "8.0.6" - resolved "https://registry.yarnpkg.com/@ethereumjs/util/-/util-8.0.6.tgz#f9716ed34235ea05eff8353bc5d483e5a6455989" - integrity sha512-zFLG/gXtF3QUC7iKFn4PT6HCr+DEnlCbwUGKGtXoqjA+64T+e0FuqMjlo4bQIY2ngRzk3EtudKdGYC4g31ehhg== + version "8.1.0" + resolved "https://registry.yarnpkg.com/@ethereumjs/util/-/util-8.1.0.tgz#299df97fb6b034e0577ce9f94c7d9d1004409ed4" + integrity sha512-zQ0IqbdX8FZ9aw11vP+dZkKDkS+kgIvQPHnSAXzP9pLu+Rfu3D3XEeLbicvoXJTYnhZiPmsZUxgdzXwNKxRPbA== dependencies: - "@chainsafe/ssz" "^0.11.1" "@ethereumjs/rlp" "^4.0.1" ethereum-cryptography "^2.0.0" micro-ftch "^0.3.1" @@ -518,11 +501,16 @@ resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.2.0.tgz#a3150eeb09cc7ab207ebf6d7b9ad311a9bdbed12" integrity sha512-FZfhjEDbT5GRswV3C6uvLPHMiVD6lQBmpoX5+eSiPaMTXte/IKqI5dykDxzZB/WBeK/CDuQRBWarPdi3FNY2zQ== -"@noble/hashes@1.3.0", "@noble/hashes@^1.2.0", "@noble/hashes@^1.3.0", "@noble/hashes@~1.3.0": +"@noble/hashes@1.3.0": version "1.3.0" resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.3.0.tgz#085fd70f6d7d9d109671090ccae1d3bec62554a1" integrity sha512-ilHEACi9DwqJB0pw7kv+Apvh50jiiSyR/cQ3y4W7lOR5mhvn/50FLUfsnfJz0BDZtl/RR16kXvptiv6q1msYZg== +"@noble/hashes@^1.2.0", "@noble/hashes@~1.3.0": + version "1.3.1" + resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.3.1.tgz#8831ef002114670c603c458ab8b11328406953a9" + integrity sha512-EbqwksQwz9xDRGfDST86whPBgM65E0OH/pCgqW0GBVzO22bNE+NuIbeTb714+IfSjU3aRk47EUvXIb5bTsenKA== + "@noble/hashes@~1.1.1", "@noble/hashes@~1.1.3": version "1.1.5" resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.1.5.tgz#1a0377f3b9020efe2fae03290bd2a12140c95c11" @@ -1590,9 +1578,9 @@ websocket "^1.0.32" "@substrate/ss58-registry@^1.17.0": - version "1.39.0" - resolved "https://registry.yarnpkg.com/@substrate/ss58-registry/-/ss58-registry-1.39.0.tgz#eb916ff5fea7fa02e77745823fde21af979273d2" - integrity sha512-qZYpuE6n+mwew+X71dOur/CbMXj6rNW27o63JeJwdQH/GvcSKm3JLNhd+bGzwUKg0D/zD30Qc6p4JykArzM+tA== + version "1.40.0" + resolved "https://registry.yarnpkg.com/@substrate/ss58-registry/-/ss58-registry-1.40.0.tgz#2223409c496271df786c1ca8496898896595441e" + integrity sha512-QuU2nBql3J4KCnOWtWDw4n1K4JU0T79j54ZZvm/9nhsX6AIar13FyhsaBfs6QkJ2ixTQAnd7TocJIoJRWbqMZA== "@swc/helpers@^0.4.12": version "0.4.14" @@ -1742,22 +1730,17 @@ integrity sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA== "@types/node-fetch@^2.5.4", "@types/node-fetch@^2.6.1": - version "2.6.2" - resolved "https://registry.yarnpkg.com/@types/node-fetch/-/node-fetch-2.6.2.tgz#d1a9c5fd049d9415dce61571557104dec3ec81da" - integrity sha512-DHqhlq5jeESLy19TYhLakJ07kNumXWjcDdxXsLUMJZ6ue8VZJj4kLPQVE/2mdHh3xZziNF1xppu5lwmS53HR+A== + version "2.6.4" + resolved "https://registry.yarnpkg.com/@types/node-fetch/-/node-fetch-2.6.4.tgz#1bc3a26de814f6bf466b25aeb1473fa1afe6a660" + integrity sha512-1ZX9fcN4Rvkvgv4E6PAY5WXUFWFcRWxZa3EW83UjycOB9ljJCedb2CupIP4RZMEwF/M3eTcCihbBRgwtGbg5Rg== dependencies: "@types/node" "*" form-data "^3.0.0" -"@types/node@*": - version "20.2.3" - resolved "https://registry.yarnpkg.com/@types/node/-/node-20.2.3.tgz#b31eb300610c3835ac008d690de6f87e28f9b878" - integrity sha512-pg9d0yC4rVNWQzX8U7xb4olIOFuuVL9za3bzMT2pu2SU0SNEi66i2qrvhE2qt0HvkhuCaWJu7pLNOt/Pj8BIrw== - -"@types/node@>=13.7.0": - version "18.15.7" - resolved "https://registry.yarnpkg.com/@types/node/-/node-18.15.7.tgz#33514fca9bdf136f77027358850c0fb9cd93c669" - integrity sha512-LFmUbFunqmBn26wJZgZPYZPrDR1RwGOu2v79Mgcka1ndO6V0/cwjivPTc4yoK6n9kmw4/ls1r8cLrvh2iMibFA== +"@types/node@*", "@types/node@>=13.7.0": + version "20.3.1" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.3.1.tgz#e8a83f1aa8b649377bb1fb5d7bac5cb90e784dfe" + integrity sha512-EhcH/wvidPy1WeML3TtYFGR83UzjxeWRen9V402T8aUGYsCHOmfoisV3ZSg03gAFIbLq8TnWOJ0f4cALtnSEUg== "@types/node@^12.12.6": version "12.20.55" @@ -2862,9 +2845,9 @@ cacheable-lookup@^6.0.4: integrity sha512-KJ/Dmo1lDDhmW2XDPMo+9oiy/CeqosPguPCrgcVzKyZrL6pM1gU2GmPY/xo6OQPTUaA/c0kwHuywB4E6nmT9ww== cacheable-request@^7.0.2: - version "7.0.2" - resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-7.0.2.tgz#ea0d0b889364a25854757301ca12b2da77f91d27" - integrity sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew== + version "7.0.4" + resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-7.0.4.tgz#7a33ebf08613178b403635be7b899d3e69bbe817" + integrity sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg== dependencies: clone-response "^1.0.2" get-stream "^5.1.0" @@ -3634,9 +3617,9 @@ depd@~1.1.2: integrity sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ== des.js@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.1.tgz#5382142e1bdc53f85d86d53e5f4aa7deb91e0843" - integrity sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA== + version "1.1.0" + resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.1.0.tgz#1d37f5766f3bbff4ee9638e871a8768c173b81da" + integrity sha512-r17GxjhUCjSRy8aiJpr8/UadFIzMzJGexI3Nmz4ADi9LYSFx4gTBp80+NaX/YsXWWLhpZ7v/v/ubEc/bCNfKwg== dependencies: inherits "^2.0.1" minimalistic-assert "^1.0.0" @@ -6101,15 +6084,15 @@ levn@^0.3.0, levn@~0.3.0: prelude-ls "~1.1.2" type-check "~0.3.2" -libzkbob-rs-wasm-web-mt@1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/libzkbob-rs-wasm-web-mt/-/libzkbob-rs-wasm-web-mt-1.4.0.tgz#7720239b38c7cf99aaa03c9deefba028bbf46062" - integrity sha512-8h1kNd6dpprAKzcUliNYpncqYlvvzTl01/6Q52B3G63JuaDVmkCH3UMf5BZEFRqOu12BgztfatI0b1dGNSZg4g== +libzkbob-rs-wasm-web-mt@1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/libzkbob-rs-wasm-web-mt/-/libzkbob-rs-wasm-web-mt-1.4.1.tgz#6b2e42d78eca4b1f8a5ce592507092c7ac760e3c" + integrity sha512-zaNPMC+53YsAP765oDxPb3sljR7vIFuut/RLWpArXeZ8llQbRLbjJS1hquv6Mv5jqIUqOn99jnX/3hPMcCPCGA== -libzkbob-rs-wasm-web@1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/libzkbob-rs-wasm-web/-/libzkbob-rs-wasm-web-1.4.0.tgz#a545cfc67e03717396f5c6d852f53681e1648fde" - integrity sha512-Kl5ieK8gdjt5T0l2PC9H/IEhv79+FyWCbZqL/dTmqzDkTzPDZT/X6j0zMIDxsqhniQnh4iduFxc6iPSy2xtbmg== +libzkbob-rs-wasm-web@1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/libzkbob-rs-wasm-web/-/libzkbob-rs-wasm-web-1.4.1.tgz#5bbf5e3ccef279c71a49ff304ef11b107c27895d" + integrity sha512-JZZXZ33V9UrEVGDAehfhl3sI5I+8thtAN2xSRbS0Tsv/qWz42cZZNT/uSw+rJtwdMd1anoQC6QVFN6aTICO+VQ== lie@~3.3.0: version "3.3.0" @@ -6755,9 +6738,9 @@ no-case@^3.0.4: tslib "^2.0.3" nock@^13.2.4: - version "13.3.0" - resolved "https://registry.yarnpkg.com/nock/-/nock-13.3.0.tgz#b13069c1a03f1ad63120f994b04bfd2556925768" - integrity sha512-HHqYQ6mBeiMc+N038w8LkMpDCRquCHWeNmN3v6645P3NhN2+qXOBqvPqo7Rt1VyCMzKhJ733wZqw5B7cQVFNPg== + version "13.3.1" + resolved "https://registry.yarnpkg.com/nock/-/nock-13.3.1.tgz#f22d4d661f7a05ebd9368edae1b5dc0a62d758fc" + integrity sha512-vHnopocZuI93p2ccivFyGuUfzjq2fxNyNurp7816mlT5V5HF4SzXu8lvLrVzBbNqzs+ODooZ6OksuSUNM7Njkw== dependencies: debug "^4.1.0" json-stringify-safe "^5.0.1" @@ -6779,14 +6762,14 @@ node-addon-api@^4.3.0: resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-4.3.0.tgz#52a1a0b475193e0928e98e0426a0d1254782b77f" integrity sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ== -node-fetch@^2.6.0, node-fetch@^2.6.1, node-fetch@^2.6.7: +node-fetch@^2.6.0: version "2.6.9" resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.9.tgz#7c7f744b5cc6eb5fd404e0c7a9fec630a55657e6" integrity sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg== dependencies: whatwg-url "^5.0.0" -node-fetch@^2.6.11: +node-fetch@^2.6.1, node-fetch@^2.6.11, node-fetch@^2.6.7: version "2.6.11" resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.11.tgz#cde7fc71deef3131ef80a738919f999e6edfff25" integrity sha512-4I6pdBY1EthSqDmJkiNk3JIT8cswwR9nfeW/cPdUagJYEQG7R95WRH74wpz7ma8Gh/9dI9FP+OU+0E4FvtA55w== @@ -7920,9 +7903,9 @@ rxjs@^6.4.0: tslib "^1.9.0" rxjs@^7.5.5: - version "7.8.0" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.8.0.tgz#90a938862a82888ff4c7359811a595e14e1e09a4" - integrity sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg== + version "7.8.1" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.8.1.tgz#6f6f3d99ea8044291efd92e7c7fcf562c4057543" + integrity sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg== dependencies: tslib "^2.1.0" @@ -8804,11 +8787,16 @@ tslib@^1.9.0: resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== -tslib@^2.0.0, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.3.1, tslib@^2.4.0: +tslib@^2.0.0, tslib@^2.0.3, tslib@^2.3.1, tslib@^2.4.0: version "2.5.0" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.5.0.tgz#42bfed86f5787aeb41d031866c8f402429e0fddf" integrity sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg== +tslib@^2.1.0: + version "2.5.3" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.5.3.tgz#24944ba2d990940e6e982c4bea147aba80209913" + integrity sha512-mSxlJJwl3BMEQCUNnxXBU9jP4JBktcEGhURcPR6VQVlnP0FdDEsIaz0C35dXNGLyRfrATNofF0F5p2KPxQgB+w== + tunnel-agent@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" @@ -9118,15 +9106,6 @@ web3-bzz@1.8.2: got "12.1.0" swarm-js "^0.1.40" -web3-bzz@1.9.0: - version "1.9.0" - resolved "https://registry.yarnpkg.com/web3-bzz/-/web3-bzz-1.9.0.tgz#3334049f386e73e2b3dcfa96432e65391538d8ac" - integrity sha512-9Zli9dikX8GdHwBb5/WPzpSVuy3EWMKY3P4EokCQra31fD7DLizqAAaTUsFwnK7xYkw5ogpHgelw9uKHHzNajg== - dependencies: - "@types/node" "^12.12.6" - got "12.1.0" - swarm-js "^0.1.40" - web3-core-helpers@1.10.0: version "1.10.0" resolved "https://registry.yarnpkg.com/web3-core-helpers/-/web3-core-helpers-1.10.0.tgz#1016534c51a5df77ed4f94d1fcce31de4af37fad" @@ -9151,14 +9130,6 @@ web3-core-helpers@1.8.2: web3-eth-iban "1.8.2" web3-utils "1.8.2" -web3-core-helpers@1.9.0: - version "1.9.0" - resolved "https://registry.yarnpkg.com/web3-core-helpers/-/web3-core-helpers-1.9.0.tgz#a1ca4ac7b9cec822886643312d2e98b0e4d8f1bc" - integrity sha512-NeJzylAp9Yj9xAt2uTT+kyug3X0DLnfBdnAcGZuY6HhoNPDIfQRA9CkJjLngVRlGTLZGjNp9x9eR+RyZQgUlXg== - dependencies: - web3-eth-iban "1.9.0" - web3-utils "1.9.0" - web3-core-method@1.10.0: version "1.10.0" resolved "https://registry.yarnpkg.com/web3-core-method/-/web3-core-method-1.10.0.tgz#82668197fa086e8cc8066742e35a9d72535e3412" @@ -9192,17 +9163,6 @@ web3-core-method@1.8.2: web3-core-subscriptions "1.8.2" web3-utils "1.8.2" -web3-core-method@1.9.0: - version "1.9.0" - resolved "https://registry.yarnpkg.com/web3-core-method/-/web3-core-method-1.9.0.tgz#81da8aa21503b470537c9f075f30adfad194a2d8" - integrity sha512-sswbNsY2xRBBhGeaLt9c/eDc+0yDDhi6keUBAkgIRa9ueSx/VKzUY9HMqiV6bXDcGT2fJyejq74FfEB4lc/+/w== - dependencies: - "@ethersproject/transactions" "^5.6.2" - web3-core-helpers "1.9.0" - web3-core-promievent "1.9.0" - web3-core-subscriptions "1.9.0" - web3-utils "1.9.0" - web3-core-promievent@1.10.0: version "1.10.0" resolved "https://registry.yarnpkg.com/web3-core-promievent/-/web3-core-promievent-1.10.0.tgz#cbb5b3a76b888df45ed3a8d4d8d4f54ccb66a37b" @@ -9224,13 +9184,6 @@ web3-core-promievent@1.8.2: dependencies: eventemitter3 "4.0.4" -web3-core-promievent@1.9.0: - version "1.9.0" - resolved "https://registry.yarnpkg.com/web3-core-promievent/-/web3-core-promievent-1.9.0.tgz#2598a4d91b4edd3607366529f52bc96dee9f6d83" - integrity sha512-PHG1Mn23IGwMZhnPDN8dETKypqsFbHfiyRqP+XsVMPmTHkVfzDQTCBU/c2r6hUktBDoGKut5xZQpGfhFk71KbQ== - dependencies: - eventemitter3 "4.0.4" - web3-core-requestmanager@1.10.0: version "1.10.0" resolved "https://registry.yarnpkg.com/web3-core-requestmanager/-/web3-core-requestmanager-1.10.0.tgz#4b34f6e05837e67c70ff6f6993652afc0d54c340" @@ -9264,17 +9217,6 @@ web3-core-requestmanager@1.8.2: web3-providers-ipc "1.8.2" web3-providers-ws "1.8.2" -web3-core-requestmanager@1.9.0: - version "1.9.0" - resolved "https://registry.yarnpkg.com/web3-core-requestmanager/-/web3-core-requestmanager-1.9.0.tgz#9d7d0e7f890cf7a24e9c568b9772c64d57fc4fcd" - integrity sha512-hcJ5PCtTIJpj+8qWxoseqlCovDo94JJjTX7dZOLXgwp8ah7E3WRYozhGyZocerx+KebKyg1mCQIhkDpMwjfo9Q== - dependencies: - util "^0.12.5" - web3-core-helpers "1.9.0" - web3-providers-http "1.9.0" - web3-providers-ipc "1.9.0" - web3-providers-ws "1.9.0" - web3-core-subscriptions@1.10.0: version "1.10.0" resolved "https://registry.yarnpkg.com/web3-core-subscriptions/-/web3-core-subscriptions-1.10.0.tgz#b534592ee1611788fc0cb0b95963b9b9b6eacb7c" @@ -9299,15 +9241,7 @@ web3-core-subscriptions@1.8.2: eventemitter3 "4.0.4" web3-core-helpers "1.8.2" -web3-core-subscriptions@1.9.0: - version "1.9.0" - resolved "https://registry.yarnpkg.com/web3-core-subscriptions/-/web3-core-subscriptions-1.9.0.tgz#dc67b478875dab1875844df3307a986dd7d468dd" - integrity sha512-MaIo29yz7hTV8X8bioclPDbHFOVuHmnbMv+D3PDH12ceJFJAXGyW8GL5KU1DYyWIj4TD1HM4WknyVA/YWBiiLA== - dependencies: - eventemitter3 "4.0.4" - web3-core-helpers "1.9.0" - -web3-core@1.10.0: +web3-core@1.10.0, web3-core@^1.3.1: version "1.10.0" resolved "https://registry.yarnpkg.com/web3-core/-/web3-core-1.10.0.tgz#9aa07c5deb478cf356c5d3b5b35afafa5fa8e633" integrity sha512-fWySwqy2hn3TL89w5TM8wXF1Z2Q6frQTKHWmP0ppRQorEK8NcHJRfeMiv/mQlSKoTS1F6n/nv2uyZsixFycjYQ== @@ -9346,19 +9280,6 @@ web3-core@1.8.2: web3-core-requestmanager "1.8.2" web3-utils "1.8.2" -web3-core@1.9.0, web3-core@^1.3.1: - version "1.9.0" - resolved "https://registry.yarnpkg.com/web3-core/-/web3-core-1.9.0.tgz#9cfafb2f8c01931429108af75205610406a5a1ab" - integrity sha512-DZ+TPmq/ZLlx4LSVzFgrHCP/QFpKDbGWO4HoquZSdu24cjk5SZ+FEU1SZB2OaK3/bgBh+25mRbmv8y56ysUu1w== - dependencies: - "@types/bn.js" "^5.1.1" - "@types/node" "^12.12.6" - bignumber.js "^9.0.0" - web3-core-helpers "1.9.0" - web3-core-method "1.9.0" - web3-core-requestmanager "1.9.0" - web3-utils "1.9.0" - web3-eth-abi@1.10.0: version "1.10.0" resolved "https://registry.yarnpkg.com/web3-eth-abi/-/web3-eth-abi-1.10.0.tgz#53a7a2c95a571e205e27fd9e664df4919483cce1" @@ -9383,14 +9304,6 @@ web3-eth-abi@1.8.2: "@ethersproject/abi" "^5.6.3" web3-utils "1.8.2" -web3-eth-abi@1.9.0: - version "1.9.0" - resolved "https://registry.yarnpkg.com/web3-eth-abi/-/web3-eth-abi-1.9.0.tgz#18662ef68bd3d25eedd9a1a1484089c39529c652" - integrity sha512-0BLQ3FKMrzJkA930jOX3fMaybAyubk06HChclLpiR0NWmgWXm1tmBrJdkyRy2ZTZpmfuZc9xTFRfl0yZID1voA== - dependencies: - "@ethersproject/abi" "^5.6.3" - web3-utils "1.9.0" - web3-eth-accounts@1.10.0: version "1.10.0" resolved "https://registry.yarnpkg.com/web3-eth-accounts/-/web3-eth-accounts-1.10.0.tgz#2942beca0a4291455f32cf09de10457a19a48117" @@ -9440,23 +9353,7 @@ web3-eth-accounts@1.8.2: web3-core-method "1.8.2" web3-utils "1.8.2" -web3-eth-accounts@1.9.0: - version "1.9.0" - resolved "https://registry.yarnpkg.com/web3-eth-accounts/-/web3-eth-accounts-1.9.0.tgz#fab7d563c63bdff2aa5ad89a94faf128961d9504" - integrity sha512-VeIZVevmnSll0AC1k5F/y398ZE89d1SRuYk8IewLUhL/tVAsFEsjl2SGgm0+aDcHmgPrkW+qsCJ+C7rWg/N4ZA== - dependencies: - "@ethereumjs/common" "2.5.0" - "@ethereumjs/tx" "3.3.2" - eth-lib "0.2.8" - ethereumjs-util "^7.1.5" - scrypt-js "^3.0.1" - uuid "^9.0.0" - web3-core "1.9.0" - web3-core-helpers "1.9.0" - web3-core-method "1.9.0" - web3-utils "1.9.0" - -web3-eth-contract@1.10.0: +web3-eth-contract@1.10.0, web3-eth-contract@^1.3.1: version "1.10.0" resolved "https://registry.yarnpkg.com/web3-eth-contract/-/web3-eth-contract-1.10.0.tgz#8e68c7654576773ec3c91903f08e49d0242c503a" integrity sha512-MIC5FOzP/+2evDksQQ/dpcXhSqa/2hFNytdl/x61IeWxhh6vlFeSjq0YVTAyIzdjwnL7nEmZpjfI6y6/Ufhy7w== @@ -9498,20 +9395,6 @@ web3-eth-contract@1.8.2: web3-eth-abi "1.8.2" web3-utils "1.8.2" -web3-eth-contract@1.9.0, web3-eth-contract@^1.3.1: - version "1.9.0" - resolved "https://registry.yarnpkg.com/web3-eth-contract/-/web3-eth-contract-1.9.0.tgz#00b7ac8314d562d10d7dd0c7d0f52555c3862995" - integrity sha512-+j26hpSaEtAdUed0TN5rnc+YZOcjPxMjFX4ZBKatvFkImdbVv/tzTvcHlltubSpgb2ZLyZ89lSL6phKYwd2zNQ== - dependencies: - "@types/bn.js" "^5.1.1" - web3-core "1.9.0" - web3-core-helpers "1.9.0" - web3-core-method "1.9.0" - web3-core-promievent "1.9.0" - web3-core-subscriptions "1.9.0" - web3-eth-abi "1.9.0" - web3-utils "1.9.0" - web3-eth-ens@1.10.0: version "1.10.0" resolved "https://registry.yarnpkg.com/web3-eth-ens/-/web3-eth-ens-1.10.0.tgz#96a676524e0b580c87913f557a13ed810cf91cd9" @@ -9554,20 +9437,6 @@ web3-eth-ens@1.8.2: web3-eth-contract "1.8.2" web3-utils "1.8.2" -web3-eth-ens@1.9.0: - version "1.9.0" - resolved "https://registry.yarnpkg.com/web3-eth-ens/-/web3-eth-ens-1.9.0.tgz#2014b16e1116be5ab34404a8db29ad1d8632ced0" - integrity sha512-LOJZeN+AGe9arhuExnrPPFYQr4WSxXEkpvYIlst/joOEUNLDwfndHnJIK6PI5mXaYSROBtTx6erv+HupzGo7vA== - dependencies: - content-hash "^2.5.2" - eth-ens-namehash "2.0.8" - web3-core "1.9.0" - web3-core-helpers "1.9.0" - web3-core-promievent "1.9.0" - web3-eth-abi "1.9.0" - web3-eth-contract "1.9.0" - web3-utils "1.9.0" - web3-eth-iban@1.10.0: version "1.10.0" resolved "https://registry.yarnpkg.com/web3-eth-iban/-/web3-eth-iban-1.10.0.tgz#5a46646401965b0f09a4f58e7248c8a8cd22538a" @@ -9592,14 +9461,6 @@ web3-eth-iban@1.8.2: bn.js "^5.2.1" web3-utils "1.8.2" -web3-eth-iban@1.9.0: - version "1.9.0" - resolved "https://registry.yarnpkg.com/web3-eth-iban/-/web3-eth-iban-1.9.0.tgz#a8f838e42c20d49ff58aaa9f67ece47a968e40b1" - integrity sha512-jPAm77PuEs1kE/UrrBFJdPD2PN42pwfXA0gFuuw35bZezhskYML9W4QCxcqnUtceyEA4FUn7K2qTMuCk+23fog== - dependencies: - bn.js "^5.2.1" - web3-utils "1.9.0" - web3-eth-personal@1.10.0: version "1.10.0" resolved "https://registry.yarnpkg.com/web3-eth-personal/-/web3-eth-personal-1.10.0.tgz#94d525f7a29050a0c2a12032df150ac5ea633071" @@ -9636,18 +9497,6 @@ web3-eth-personal@1.8.2: web3-net "1.8.2" web3-utils "1.8.2" -web3-eth-personal@1.9.0: - version "1.9.0" - resolved "https://registry.yarnpkg.com/web3-eth-personal/-/web3-eth-personal-1.9.0.tgz#f5092bcb2688979dd7778d5a56ae6922c341ce52" - integrity sha512-r9Ldo/luBqJlv1vCUEQnUS+C3a3ZdbYxVHyfDkj6RWMyCqqo8JE41HWE+pfa0RmB1xnGL2g8TbYcHcqItck/qg== - dependencies: - "@types/node" "^12.12.6" - web3-core "1.9.0" - web3-core-helpers "1.9.0" - web3-core-method "1.9.0" - web3-net "1.9.0" - web3-utils "1.9.0" - web3-eth@1.10.0: version "1.10.0" resolved "https://registry.yarnpkg.com/web3-eth/-/web3-eth-1.10.0.tgz#38b905e2759697c9624ab080cfcf4e6c60b3a6cf" @@ -9702,24 +9551,6 @@ web3-eth@1.8.2: web3-net "1.8.2" web3-utils "1.8.2" -web3-eth@1.9.0: - version "1.9.0" - resolved "https://registry.yarnpkg.com/web3-eth/-/web3-eth-1.9.0.tgz#1fe82ba429a44b1aa0a3b95de3e79e6c5a9eb00c" - integrity sha512-c5gSWk9bLNr6VPATHmZ1n7LTIefIZQnJMzfnvkoBcIFGKJbGmsuRhv6lEXsKdAO/FlqYnSbaw3fOq1fVFiIOFQ== - dependencies: - web3-core "1.9.0" - web3-core-helpers "1.9.0" - web3-core-method "1.9.0" - web3-core-subscriptions "1.9.0" - web3-eth-abi "1.9.0" - web3-eth-accounts "1.9.0" - web3-eth-contract "1.9.0" - web3-eth-ens "1.9.0" - web3-eth-iban "1.9.0" - web3-eth-personal "1.9.0" - web3-net "1.9.0" - web3-utils "1.9.0" - web3-net@1.10.0: version "1.10.0" resolved "https://registry.yarnpkg.com/web3-net/-/web3-net-1.10.0.tgz#be53e7f5dafd55e7c9013d49c505448b92c9c97b" @@ -9747,15 +9578,6 @@ web3-net@1.8.2: web3-core-method "1.8.2" web3-utils "1.8.2" -web3-net@1.9.0: - version "1.9.0" - resolved "https://registry.yarnpkg.com/web3-net/-/web3-net-1.9.0.tgz#ee8799bf766039aa5b157d6db0be5ffdecd39d64" - integrity sha512-L+fDZFgrLM5Y15aonl2q6L+RvfaImAngmC0Jv45hV2FJ5IfRT0/2ob9etxZmvEBWvOpbqSvghfOhJIT3XZ37Pg== - dependencies: - web3-core "1.9.0" - web3-core-method "1.9.0" - web3-utils "1.9.0" - web3-provider-engine@16.0.3: version "16.0.3" resolved "https://registry.yarnpkg.com/web3-provider-engine/-/web3-provider-engine-16.0.3.tgz#8ff93edf3a8da2f70d7f85c5116028c06a0d9f07" @@ -9814,16 +9636,6 @@ web3-providers-http@1.8.2: es6-promise "^4.2.8" web3-core-helpers "1.8.2" -web3-providers-http@1.9.0: - version "1.9.0" - resolved "https://registry.yarnpkg.com/web3-providers-http/-/web3-providers-http-1.9.0.tgz#93cd3eb42fff974c9f7634ede1a9795d6435c3fe" - integrity sha512-5+dMNDAE0rRFz6SJpfnBqlVi2J5bB/Ivr2SanMt2YUrkxW5t8betZbzVwRkTbwtUvkqgj3xeUQzqpOttiv+IqQ== - dependencies: - abortcontroller-polyfill "^1.7.3" - cross-fetch "^3.1.4" - es6-promise "^4.2.8" - web3-core-helpers "1.9.0" - web3-providers-ipc@1.10.0: version "1.10.0" resolved "https://registry.yarnpkg.com/web3-providers-ipc/-/web3-providers-ipc-1.10.0.tgz#9747c7a6aee96a51488e32fa7c636c3460b39889" @@ -9848,14 +9660,6 @@ web3-providers-ipc@1.8.2: oboe "2.1.5" web3-core-helpers "1.8.2" -web3-providers-ipc@1.9.0: - version "1.9.0" - resolved "https://registry.yarnpkg.com/web3-providers-ipc/-/web3-providers-ipc-1.9.0.tgz#db486cb0dde9062ac6055478861e3d37535924d2" - integrity sha512-cPXU93Du40HCylvjaa5x62DbnGqH+86HpK/+kMcFIzF6sDUBhKpag2tSbYhGbj7GMpfkmDTUiiMLdWnFV6+uBA== - dependencies: - oboe "2.1.5" - web3-core-helpers "1.9.0" - web3-providers-ws@1.10.0: version "1.10.0" resolved "https://registry.yarnpkg.com/web3-providers-ws/-/web3-providers-ws-1.10.0.tgz#cb0b87b94c4df965cdf486af3a8cd26daf3975e5" @@ -9883,15 +9687,6 @@ web3-providers-ws@1.8.2: web3-core-helpers "1.8.2" websocket "^1.0.32" -web3-providers-ws@1.9.0: - version "1.9.0" - resolved "https://registry.yarnpkg.com/web3-providers-ws/-/web3-providers-ws-1.9.0.tgz#568330766e8abbb6eb43e1153a72fb24398fcb7e" - integrity sha512-JRVsnQZ7j2k1a2yzBNHe39xqk1ijOv01dfIBFw52VeEkSRzvrOcsPIM/ttSyBuJqt70ntMxXY0ekCrqfleKH/w== - dependencies: - eventemitter3 "4.0.4" - web3-core-helpers "1.9.0" - websocket "^1.0.32" - web3-shh@1.10.0: version "1.10.0" resolved "https://registry.yarnpkg.com/web3-shh/-/web3-shh-1.10.0.tgz#c2979b87e0f67a7fef2ce9ee853bd7bfbe9b79a8" @@ -9922,17 +9717,7 @@ web3-shh@1.8.2: web3-core-subscriptions "1.8.2" web3-net "1.8.2" -web3-shh@1.9.0: - version "1.9.0" - resolved "https://registry.yarnpkg.com/web3-shh/-/web3-shh-1.9.0.tgz#75a37cd9f78d485ee5f018e2e66853e1e1c6ce4f" - integrity sha512-bIBZlralgz4ICCrwkefB2nPPJWfx28NuHIpjB7d9ADKynElubQuqudYhKtSEkKXACuME/BJm0pIFJcJs/gDnMg== - dependencies: - web3-core "1.9.0" - web3-core-method "1.9.0" - web3-core-subscriptions "1.9.0" - web3-net "1.9.0" - -web3-utils@1.10.0: +web3-utils@1.10.0, web3-utils@^1.3.6: version "1.10.0" resolved "https://registry.yarnpkg.com/web3-utils/-/web3-utils-1.10.0.tgz#ca4c1b431a765c14ac7f773e92e0fd9377ccf578" integrity sha512-kSaCM0uMcZTNUSmn5vMEhlo02RObGNRRCkdX0V9UTAU0+lrvn0HSaudyCo6CQzuXUsnuY2ERJGCGPfeWmv19Rg== @@ -9971,19 +9756,6 @@ web3-utils@1.8.2: randombytes "^2.1.0" utf8 "3.0.0" -web3-utils@1.9.0, web3-utils@^1.3.6: - version "1.9.0" - resolved "https://registry.yarnpkg.com/web3-utils/-/web3-utils-1.9.0.tgz#7c5775a47586cefb4ad488831be8f6627be9283d" - integrity sha512-p++69rCNNfu2jM9n5+VD/g26l+qkEOQ1m6cfRQCbH8ZRrtquTmrirJMgTmyOoax5a5XRYOuws14aypCOs51pdQ== - dependencies: - bn.js "^5.2.1" - ethereum-bloom-filters "^1.0.6" - ethereumjs-util "^7.1.0" - ethjs-unit "0.1.6" - number-to-bn "1.7.0" - randombytes "^2.1.0" - utf8 "3.0.0" - web3@1.8.0: version "1.8.0" resolved "https://registry.yarnpkg.com/web3/-/web3-1.8.0.tgz#3ca5f0b32de6a1f626407740411219035b5fde64" @@ -9997,7 +9769,7 @@ web3@1.8.0: web3-shh "1.8.0" web3-utils "1.8.0" -web3@^1.0.0-beta.55: +web3@^1.0.0-beta.55, web3@^1.3.1: version "1.10.0" resolved "https://registry.yarnpkg.com/web3/-/web3-1.10.0.tgz#2fde0009f59aa756c93e07ea2a7f3ab971091274" integrity sha512-YfKY9wSkGcM8seO+daR89oVTcbu18NsVfvOngzqMYGUU0pPSQmE57qQDvQzUeoIOHAnXEBNzrhjQJmm8ER0rng== @@ -10010,19 +9782,6 @@ web3@^1.0.0-beta.55: web3-shh "1.10.0" web3-utils "1.10.0" -web3@^1.3.1: - version "1.9.0" - resolved "https://registry.yarnpkg.com/web3/-/web3-1.9.0.tgz#4fde5d134f8ee11355ed5bfa1bb41f8bc58e23f3" - integrity sha512-E9IvVy/d2ozfQQsCiV+zh/LmlZGv9fQxI0UedDVjm87yOKf4AYbBNEn1iWtHveiGzAk2CEMZMUzAZzaQNSSYog== - dependencies: - web3-bzz "1.9.0" - web3-core "1.9.0" - web3-eth "1.9.0" - web3-eth-personal "1.9.0" - web3-net "1.9.0" - web3-shh "1.9.0" - web3-utils "1.9.0" - web3@^1.7.1: version "1.8.2" resolved "https://registry.yarnpkg.com/web3/-/web3-1.8.2.tgz#95a4e5398fd0f01325264bf8e5e8cdc69a7afe86" @@ -10414,9 +10173,9 @@ yargs@^13.3.2: y18n "^4.0.0" yargs-parser "^13.1.2" -"zeropool-support-js@https://github.com/zkBob/zeropool-support-js#0.7.1": - version "0.7.1" - resolved "https://github.com/zkBob/zeropool-support-js#2d8a8e227bc25a93d3a83e77aa260f7917bafc2f" +"zeropool-support-js@https://github.com/zkBob/zeropool-support-js#0.8.0": + version "0.8.0" + resolved "https://github.com/zkBob/zeropool-support-js#a24aba9043112af68c77a286810972fdf5ffd189" dependencies: "@ethereumjs/tx" "^3.2.1" "@polkadot/api" "^7.11.1" @@ -10436,10 +10195,10 @@ yargs@^13.3.2: web3-eth-contract "^1.3.1" web3-utils "^1.3.6" -zkbob-client-js@4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/zkbob-client-js/-/zkbob-client-js-4.0.1.tgz#c5e2348178e2a9f3c9e2274bd0324a6e8a4e1364" - integrity sha512-akSVrAWgyHQ+HfD+AhSgm9Un4O7Y5JnXEiIxBVKlKgdI2PikSDf1RGp2QJgXY36rsiJOq2oLHTJW0naMHKcytA== +zkbob-client-js@5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/zkbob-client-js/-/zkbob-client-js-5.0.0.tgz#e8ffd21957a1fc2e4630aee06a17a48a36bde861" + integrity sha512-rw/9lYqkDMNqzdAsXMkQV+nwhHrsEJYAaHUAa7K9pyZVmS+jSTi3654i93HIvf+7asoDyEzGyUrdoUMVpSkNsg== dependencies: "@ethereumjs/util" "^8.0.2" "@metamask/eth-sig-util" "5.0.0" @@ -10450,8 +10209,8 @@ zkbob-client-js@4.0.1: fast-sha256 "^1.3.0" hdwallet-babyjub "^0.0.2" idb "^7.0.0" - libzkbob-rs-wasm-web "1.4.0" - libzkbob-rs-wasm-web-mt "1.4.0" + libzkbob-rs-wasm-web "1.4.1" + libzkbob-rs-wasm-web-mt "1.4.1" regenerator-runtime "^0.13.9" wasm-feature-detect "^1.2.11" web3 "1.8.0"