From b033e84d234918bc8b11f6d02139b7e3205a4b2a Mon Sep 17 00:00:00 2001 From: Tomasz Slabon Date: Tue, 7 Nov 2023 11:52:06 +0100 Subject: [PATCH 01/22] Updated deposit-redemption test --- system-tests/package.json | 2 +- system-tests/test/deposit-redemption.test.ts | 371 ++++++++++--------- system-tests/test/utils/bitcoin.ts | 17 +- system-tests/test/utils/deposit.ts | 48 +-- system-tests/yarn.lock | 68 ++-- 5 files changed, 254 insertions(+), 252 deletions(-) diff --git a/system-tests/package.json b/system-tests/package.json index cef56ce98..e5ba6c709 100644 --- a/system-tests/package.json +++ b/system-tests/package.json @@ -18,7 +18,7 @@ "test/**/*" ], "dependencies": { - "@keep-network/tbtc-v2.ts": "2.0.0-dev.0", + "@keep-network/tbtc-v2.ts": "2.1.0-dev.0", "elliptic": "^6.5.4", "wif": "^2.0.6" }, diff --git a/system-tests/test/deposit-redemption.test.ts b/system-tests/test/deposit-redemption.test.ts index c5052fef7..f89994552 100644 --- a/system-tests/test/deposit-redemption.test.ts +++ b/system-tests/test/deposit-redemption.test.ts @@ -1,29 +1,36 @@ import { - TBTC, - SpvMaintainer, + extractBitcoinRawTxVectors, + Hex, + BitcoinTxHash, + BitcoinNetwork, ElectrumClient, EthereumBridge, - BitcoinTransactionHash, - BitcoinNetwork, -} from "@keep-network/tbtc-v2.ts/dist/src" -import { computeHash160, createAddressFromPublicKey } from "@keep-network/tbtc-v2.ts/dist/src/bitcoin" -import { Hex } from "@keep-network/tbtc-v2.ts/dist/src/hex" + EthereumTBTCToken, + EthereumTBTCVault, + DepositFunding, + DepositScript, + BitcoinAddressConverter, + WalletTx, + EthereumWalletRegistry, + MaintenanceService, + BitcoinHashUtils, + EthereumAddress, +} from "@keep-network/tbtc-v2.ts" import { BigNumber, constants, Contract } from "ethers" import chai, { expect } from "chai" -import { submitDepositTransaction } from "@keep-network/tbtc-v2.ts/dist/src/deposit" -import { submitDepositSweepTransaction } from "@keep-network/tbtc-v2.ts/dist/src/deposit-sweep" -import { submitRedemptionTransaction } from "@keep-network/tbtc-v2.ts/dist/src/redemption" import chaiAsPromised from "chai-as-promised" import { setupSystemTestsContext } from "./utils/context" -import { generateDeposit } from "./utils/deposit" +import { createDepositReceipt } from "./utils/deposit" import { fakeRelayDifficulty, waitTransactionConfirmed } from "./utils/bitcoin" -import type { UnspentTransactionOutput } from "@keep-network/tbtc-v2.ts/dist/src/bitcoin" +import type { + RedemptionRequest, + BitcoinUtxo, + DepositReceipt, + TBTCContracts, +} from "@keep-network/tbtc-v2.ts" import type { SystemTestsContext } from "./utils/context" -import type { RedemptionRequest } from "@keep-network/tbtc-v2.ts/dist/src/redemption" -import type { Deposit } from "@keep-network/tbtc-v2.ts/dist/src/deposit" -import { TBTCToken } from "@keep-network/tbtc-v2.ts/dist/src/ethereum" chai.use(chaiAsPromised) @@ -52,9 +59,17 @@ describe("System Test - Deposit and redemption", () => { let tbtcTokenAddress: string let bridgeAddress: string let vaultAddress: string - let tbtcTokenHandle: TBTCToken + let walletRegistryAddress: string + let tbtcTokenHandle: EthereumTBTCToken + let vaultHandle: EthereumTBTCVault let maintainerBridgeHandle: EthereumBridge let depositorBridgeHandle: EthereumBridge + let walletRegistryHandle: EthereumWalletRegistry + let tbtcContracts: TBTCContracts + + let walletTx: WalletTx + let maintenanceService: MaintenanceService + let bank: Contract let relay: Contract let tbtc: Contract @@ -70,10 +85,10 @@ describe("System Test - Deposit and redemption", () => { // Multiplier to convert satoshi to TBTC token units. const SATOSHI_MULTIPLIER = BigNumber.from(10000000000) - let deposit: Deposit - let depositUtxo: UnspentTransactionOutput - let sweepUtxo: UnspentTransactionOutput - let redemptionUtxo: UnspentTransactionOutput | undefined + let depositReceipt: DepositReceipt + let depositUtxo: BitcoinUtxo + let sweepUtxo: BitcoinUtxo + let redemptionUtxo: BitcoinUtxo | undefined before(async () => { systemTestsContext = await setupSystemTestsContext() @@ -90,12 +105,18 @@ describe("System Test - Deposit and redemption", () => { tbtcTokenAddress = deployedContracts.TBTC.address bridgeAddress = deployedContracts.Bridge.address vaultAddress = deployedContracts.TBTCVault.address + walletRegistryAddress = deployedContracts.WalletRegistry.address - tbtcTokenHandle = new TBTCToken({ + tbtcTokenHandle = new EthereumTBTCToken({ address: tbtcTokenAddress, signerOrProvider: depositor, }) + vaultHandle = new EthereumTBTCVault({ + address: vaultAddress, + signerOrProvider: depositor, + }) + maintainerBridgeHandle = new EthereumBridge({ address: bridgeAddress, signerOrProvider: maintainer, @@ -106,6 +127,22 @@ describe("System Test - Deposit and redemption", () => { signerOrProvider: depositor, }) + walletRegistryHandle = new EthereumWalletRegistry({ + address: walletRegistryAddress, + signerOrProvider: depositor, + }) + + tbtcContracts = { + bridge: maintainerBridgeHandle, + tbtcToken: tbtcTokenHandle, + tbtcVault: vaultHandle, + walletRegistry: walletRegistryHandle, + } + + walletTx = new WalletTx(tbtcContracts, electrumClient) + + maintenanceService = new MaintenanceService(tbtcContracts, electrumClient) + const bankDeploymentInfo = deployedContracts.Bank bank = new Contract( bankDeploymentInfo.address, @@ -130,32 +167,39 @@ describe("System Test - Deposit and redemption", () => { context("when deposit is made and revealed without a vault", () => { before("make and reveal deposit", async () => { - deposit = generateDeposit( + depositReceipt = createDepositReceipt( systemTestsContext.depositor.address, - depositAmount, systemTestsContext.walletBitcoinKeyPair.publicKey.compressed ) console.log(` Generated deposit data: - ${JSON.stringify(deposit)} + ${JSON.stringify(depositReceipt)} `) - const depositorBitcoinAddress = createAddressFromPublicKey( - Hex.from(systemTestsContext.depositorBitcoinKeyPair.publicKey.compressed), - BitcoinNetwork.Testnet, - ) - const depositorUtxos = await electrumClient.findAllUnspentTransactionOutputs( - depositorBitcoinAddress + const depositorBitcoinAddress = + BitcoinAddressConverter.publicKeyToAddress( + Hex.from( + systemTestsContext.depositorBitcoinKeyPair.publicKey.compressed + ), + BitcoinNetwork.Testnet + ) + + const depositorUtxos = + await electrumClient.findAllUnspentTransactionOutputs( + depositorBitcoinAddress + ) + + const depositFunding = DepositFunding.fromScript( + DepositScript.fromReceipt(depositReceipt, true) ) - ;({ depositUtxo } = await submitDepositTransaction( - deposit, - systemTestsContext.depositorBitcoinKeyPair.wif, - electrumClient, - true, + ;({ depositUtxo } = await depositFunding.submitTransaction( + depositAmount, depositorUtxos, - depositTxFee + depositTxFee, + systemTestsContext.depositorBitcoinKeyPair.wif, + electrumClient )) console.log(` @@ -167,11 +211,16 @@ describe("System Test - Deposit and redemption", () => { // Since the reveal deposit logic does not perform SPV proof, we // can reveal the deposit transaction immediately without waiting // for confirmations. - await TBTC.revealDeposit( - depositUtxo, - deposit, - electrumClient, - depositorBridgeHandle + const rawDepositTransaction = await electrumClient.getRawTransaction( + depositUtxo.transactionHash + ) + const depositRawTxVectors = extractBitcoinRawTxVectors( + rawDepositTransaction + ) + depositorBridgeHandle.revealDeposit( + depositRawTxVectors, + depositUtxo.outputIndex, + depositReceipt ) console.log(` @@ -187,23 +236,22 @@ describe("System Test - Deposit and redemption", () => { }) it("should reveal the deposit to the bridge", async () => { - const { revealedAt } = await TBTC.getRevealedDeposit( - depositUtxo, - maintainerBridgeHandle + const { revealedAt } = await maintainerBridgeHandle.deposits( + depositUtxo.transactionHash, + depositUtxo.outputIndex ) expect(revealedAt).to.be.greaterThan(0) }) context("when deposit is swept and sweep proof submitted", () => { before("sweep the deposit and submit sweep proof", async () => { - ;({ newMainUtxo: sweepUtxo } = await submitDepositSweepTransaction( - electrumClient, - depositSweepTxFee, - systemTestsContext.walletBitcoinKeyPair.wif, - true, - [depositUtxo], - [deposit] - )) + ;({ newMainUtxo: sweepUtxo } = + await walletTx.depositSweep.submitTransaction( + depositSweepTxFee, + systemTestsContext.walletBitcoinKeyPair.wif, + [depositUtxo], + [depositReceipt] + )) console.log(` Deposit swept on Bitcoin chain: @@ -227,17 +275,14 @@ describe("System Test - Deposit and redemption", () => { // TODO: Consider fetching the current wallet main UTXO and passing it // here. This will allow running this test scenario multiple // times for the same wallet. - await SpvMaintainer.submitDepositSweepProof( + await maintenanceService.spv.submitDepositSweepProof( sweepUtxo.transactionHash, - // This is the first sweep of the given wallet so there is no main UTXO. { // The function expects an unprefixed hash. - transactionHash: BitcoinTransactionHash.from(constants.HashZero), + transactionHash: BitcoinTxHash.from(constants.HashZero), outputIndex: 0, value: BigNumber.from(0), - }, - maintainerBridgeHandle, - electrumClient + } ) console.log(` @@ -253,17 +298,17 @@ describe("System Test - Deposit and redemption", () => { }) it("should sweep the deposit on the bridge", async () => { - const { sweptAt } = await TBTC.getRevealedDeposit( - depositUtxo, - maintainerBridgeHandle + const { sweptAt } = await maintainerBridgeHandle.deposits( + depositUtxo.transactionHash, + depositUtxo.outputIndex ) expect(sweptAt).to.be.greaterThan(0) }) it("should increase depositor's balance in the bank", async () => { - const { treasuryFee } = await TBTC.getRevealedDeposit( - depositUtxo, - maintainerBridgeHandle + const { treasuryFee } = await maintainerBridgeHandle.deposits( + depositUtxo.transactionHash, + depositUtxo.outputIndex ) const expectedBalance = depositAmount @@ -294,7 +339,7 @@ describe("System Test - Deposit and redemption", () => { .approveBalance(bridgeAddress, requestedAmount) // Request redemption to depositor's address. - redeemerOutputScript = `0014${computeHash160( + redeemerOutputScript = `0014${BitcoinHashUtils.computeHash160( systemTestsContext.depositorBitcoinKeyPair.publicKey.compressed )}` @@ -302,18 +347,16 @@ describe("System Test - Deposit and redemption", () => { systemTestsContext.walletBitcoinKeyPair.publicKey.compressed, sweepUtxo, redeemerOutputScript, - requestedAmount, + requestedAmount ) console.log( `Requested redemption of amount ${requestedAmount} to script ${redeemerOutputScript} on the bridge` ) - redemptionRequest = await TBTC.getRedemptionRequest( + redemptionRequest = await maintainerBridgeHandle.pendingRedemptions( systemTestsContext.walletBitcoinKeyPair.publicKey.compressed, - redeemerOutputScript, - "pending", - maintainerBridgeHandle + redeemerOutputScript ) }) @@ -338,20 +381,19 @@ describe("System Test - Deposit and redemption", () => { context( "when redemption is made and redemption proof submitted", () => { - let redemptionTxHash: BitcoinTransactionHash + let redemptionTxHash: BitcoinTxHash before( "make the redemption and submit redemption proof", async () => { - ;({ transactionHash: redemptionTxHash, newMainUtxo: redemptionUtxo } = - await submitRedemptionTransaction( - electrumClient, - maintainerBridgeHandle, - systemTestsContext.walletBitcoinKeyPair.wif, - sweepUtxo, - [redemptionRequest.redeemerOutputScript], - true - )) + ;({ + transactionHash: redemptionTxHash, + newMainUtxo: redemptionUtxo, + } = await walletTx.redemption.submitTransaction( + systemTestsContext.walletBitcoinKeyPair.wif, + sweepUtxo, + [redemptionRequest.redeemerOutputScript] + )) console.log( "Redemption made on Bitcoin chain:\n" + @@ -366,12 +408,10 @@ describe("System Test - Deposit and redemption", () => { redemptionTxHash ) - await SpvMaintainer.submitRedemptionProof( + await maintenanceService.spv.submitRedemptionProof( redemptionTxHash, sweepUtxo, - systemTestsContext.walletBitcoinKeyPair.publicKey.compressed, - maintainerBridgeHandle, - electrumClient + systemTestsContext.walletBitcoinKeyPair.publicKey.compressed ) console.log("Redemption proved on the bridge") @@ -387,11 +427,9 @@ describe("System Test - Deposit and redemption", () => { it("should close the redemption request on the bridge", async () => { await expect( - TBTC.getRedemptionRequest( + maintainerBridgeHandle.pendingRedemptions( systemTestsContext.walletBitcoinKeyPair.publicKey.compressed, - redemptionRequest.redeemerOutputScript, - "pending", - maintainerBridgeHandle + redemptionRequest.redeemerOutputScript ) ).to.be.rejectedWith( "Provided redeemer output script and wallet public key do not identify a redemption request" @@ -411,33 +449,38 @@ describe("System Test - Deposit and redemption", () => { context("when deposit is made and revealed with a vault", () => { before("make and reveal deposit", async () => { - deposit = generateDeposit( + depositReceipt = createDepositReceipt( systemTestsContext.depositor.address, - depositAmount, - systemTestsContext.walletBitcoinKeyPair.publicKey.compressed, - vaultAddress, + systemTestsContext.walletBitcoinKeyPair.publicKey.compressed ) console.log(` Generated deposit data: - ${JSON.stringify(deposit)} + ${JSON.stringify(depositReceipt)} `) - const depositorBitcoinAddress = createAddressFromPublicKey( - Hex.from(systemTestsContext.depositorBitcoinKeyPair.publicKey.compressed), - BitcoinNetwork.Testnet, - ) - const depositorUtxos = await electrumClient.findAllUnspentTransactionOutputs( - depositorBitcoinAddress + const depositorBitcoinAddress = + BitcoinAddressConverter.publicKeyToAddress( + Hex.from( + systemTestsContext.depositorBitcoinKeyPair.publicKey.compressed + ), + BitcoinNetwork.Testnet + ) + const depositorUtxos = + await electrumClient.findAllUnspentTransactionOutputs( + depositorBitcoinAddress + ) + + const depositFunding = DepositFunding.fromScript( + DepositScript.fromReceipt(depositReceipt, true) ) - ;({ depositUtxo } = await submitDepositTransaction( - deposit, - systemTestsContext.depositorBitcoinKeyPair.wif, - electrumClient, - true, + ;({ depositUtxo } = await depositFunding.submitTransaction( + depositAmount, depositorUtxos, - depositTxFee + depositTxFee, + systemTestsContext.depositorBitcoinKeyPair.wif, + electrumClient )) console.log(` @@ -449,12 +492,17 @@ describe("System Test - Deposit and redemption", () => { // Since the reveal deposit logic does not perform SPV proof, we // can reveal the deposit transaction immediately without waiting // for confirmations. - await TBTC.revealDeposit( - depositUtxo, - deposit, - electrumClient, - depositorBridgeHandle, - deposit.vault, + const rawDepositTransaction = await electrumClient.getRawTransaction( + depositUtxo.transactionHash + ) + const depositRawTxVectors = extractBitcoinRawTxVectors( + rawDepositTransaction + ) + depositorBridgeHandle.revealDeposit( + depositRawTxVectors, + depositUtxo.outputIndex, + depositReceipt, + EthereumAddress.from(vaultAddress) ) console.log(` @@ -470,24 +518,23 @@ describe("System Test - Deposit and redemption", () => { }) it("should reveal the deposit to the bridge", async () => { - const { revealedAt } = await TBTC.getRevealedDeposit( - depositUtxo, - maintainerBridgeHandle + const { revealedAt } = await maintainerBridgeHandle.deposits( + depositUtxo.transactionHash, + depositUtxo.outputIndex ) expect(revealedAt).to.be.greaterThan(0) }) context("when deposit is swept and sweep proof submitted", () => { before("sweep the deposit and submit sweep proof", async () => { - ;({ newMainUtxo: sweepUtxo } = await submitDepositSweepTransaction( - electrumClient, - depositSweepTxFee, - systemTestsContext.walletBitcoinKeyPair.wif, - true, - [depositUtxo], - [deposit], - redemptionUtxo // The UTXO from the previous test became the new main UTXO. - )) + ;({ newMainUtxo: sweepUtxo } = + await walletTx.depositSweep.submitTransaction( + depositSweepTxFee, + systemTestsContext.walletBitcoinKeyPair.wif, + [depositUtxo], + [depositReceipt], + redemptionUtxo // The UTXO from the previous test became the new main UTXO. + )) console.log(` Deposit swept on Bitcoin chain: @@ -510,17 +557,15 @@ describe("System Test - Deposit and redemption", () => { // If the redemption transaction from the previous test created a new // main UTXO, use it. Otherwise call it with a zero-filled main UTXO. - const mainUtxo = redemptionUtxo ? redemptionUtxo : { - transactionHash: BitcoinTransactionHash.from(constants.HashZero), + const mainUtxo = redemptionUtxo || { + transactionHash: BitcoinTxHash.from(constants.HashZero), outputIndex: 0, value: BigNumber.from(0), - }; - await SpvMaintainer.submitDepositSweepProof( + } + await maintenanceService.spv.submitDepositSweepProof( sweepUtxo.transactionHash, mainUtxo, - maintainerBridgeHandle, - electrumClient, - deposit.vault, + EthereumAddress.from(vaultAddress) ) console.log(` @@ -536,34 +581,32 @@ describe("System Test - Deposit and redemption", () => { }) it("should sweep the deposit on the bridge", async () => { - const { sweptAt } = await TBTC.getRevealedDeposit( - depositUtxo, - maintainerBridgeHandle + const { sweptAt } = await maintainerBridgeHandle.deposits( + depositUtxo.transactionHash, + depositUtxo.outputIndex ) expect(sweptAt).to.be.greaterThan(0) }) it("should increase vault's balance in the bank", async () => { - const { treasuryFee } = await TBTC.getRevealedDeposit( - depositUtxo, - maintainerBridgeHandle + const { treasuryFee } = await maintainerBridgeHandle.deposits( + depositUtxo.transactionHash, + depositUtxo.outputIndex ) const expectedBalance = depositAmount .sub(treasuryFee) .sub(depositSweepTxFee) - const actualBalance = await bank.balanceOf( - vaultAddress - ) + const actualBalance = await bank.balanceOf(vaultAddress) expect(actualBalance).to.be.equal(expectedBalance) }) it("should mint TBTC tokens for the depositor", async () => { - const { treasuryFee } = await TBTC.getRevealedDeposit( - depositUtxo, - maintainerBridgeHandle + const { treasuryFee } = await maintainerBridgeHandle.deposits( + depositUtxo.transactionHash, + depositUtxo.outputIndex ) const balanceInSatoshis = depositAmount @@ -594,27 +637,24 @@ describe("System Test - Deposit and redemption", () => { requestedAmount = tbtcBalanceOfDepositor.div(SATOSHI_MULTIPLIER) // Request redemption to depositor's address. - redeemerOutputScript = `0014${computeHash160( + redeemerOutputScript = `0014${BitcoinHashUtils.computeHash160( systemTestsContext.depositorBitcoinKeyPair.publicKey.compressed )}` - await TBTC.requestRedemption( + await depositorBridgeHandle.requestRedemption( systemTestsContext.walletBitcoinKeyPair.publicKey.compressed, sweepUtxo, redeemerOutputScript, - tbtcBalanceOfDepositor, - tbtcTokenHandle, + tbtcBalanceOfDepositor ) console.log( `Requested redemption of ${tbtcBalanceOfDepositor} TBTC tokens to script ${redeemerOutputScript} on the bridge` ) - redemptionRequest = await TBTC.getRedemptionRequest( + redemptionRequest = await maintainerBridgeHandle.pendingRedemptions( systemTestsContext.walletBitcoinKeyPair.publicKey.compressed, - redeemerOutputScript, - "pending", - maintainerBridgeHandle + redeemerOutputScript ) }) @@ -645,20 +685,19 @@ describe("System Test - Deposit and redemption", () => { context( "when redemption is made and redemption proof submitted", () => { - let redemptionTxHash: BitcoinTransactionHash + let redemptionTxHash: BitcoinTxHash before( "make the redemption and submit redemption proof", async () => { - ;({ transactionHash: redemptionTxHash } = - await submitRedemptionTransaction( - electrumClient, - maintainerBridgeHandle, - systemTestsContext.walletBitcoinKeyPair.wif, - sweepUtxo, - [redemptionRequest.redeemerOutputScript], - true - )) + ;({ + transactionHash: redemptionTxHash, + newMainUtxo: redemptionUtxo, + } = await walletTx.redemption.submitTransaction( + systemTestsContext.walletBitcoinKeyPair.wif, + sweepUtxo, + [redemptionRequest.redeemerOutputScript] + )) console.log( "Redemption made on Bitcoin chain:\n" + @@ -673,12 +712,10 @@ describe("System Test - Deposit and redemption", () => { redemptionTxHash ) - await SpvMaintainer.submitRedemptionProof( + await maintenanceService.spv.submitRedemptionProof( redemptionTxHash, sweepUtxo, - systemTestsContext.walletBitcoinKeyPair.publicKey.compressed, - maintainerBridgeHandle, - electrumClient + systemTestsContext.walletBitcoinKeyPair.publicKey.compressed ) console.log("Redemption proved on the bridge") @@ -694,11 +731,9 @@ describe("System Test - Deposit and redemption", () => { it("should close the redemption request on the bridge", async () => { await expect( - TBTC.getRedemptionRequest( + maintainerBridgeHandle.pendingRedemptions( systemTestsContext.walletBitcoinKeyPair.publicKey.compressed, - redemptionRequest.redeemerOutputScript, - "pending", - maintainerBridgeHandle + redemptionRequest.redeemerOutputScript ) ).to.be.rejectedWith( "Provided redeemer output script and wallet public key do not identify a redemption request" diff --git a/system-tests/test/utils/bitcoin.ts b/system-tests/test/utils/bitcoin.ts index 5df7ded63..a81126fa9 100644 --- a/system-tests/test/utils/bitcoin.ts +++ b/system-tests/test/utils/bitcoin.ts @@ -2,11 +2,10 @@ // @ts-ignore import wifLib from "wif" import { ec as EllipticCurve } from "elliptic" -import { assembleTransactionProof } from "@keep-network/tbtc-v2.ts/dist/src/proof" +import { assembleBitcoinSpvProof } from "@keep-network/tbtc-v2.ts" +import type { BitcoinTxHash, ElectrumClient } from "@keep-network/tbtc-v2.ts" import type { Contract } from "ethers" -import type { Client as BitcoinClient } from "@keep-network/tbtc-v2.ts/dist/src/bitcoin" -import type { BitcoinTransactionHash } from "@keep-network/tbtc-v2.ts/dist/src" /** * Elliptic curve used by Bitcoin. @@ -74,8 +73,8 @@ export function keyPairFromWif(wif: string): KeyPair { * @returns Empty promise. */ export async function waitTransactionConfirmed( - bitcoinClient: BitcoinClient, - transactionHash: BitcoinTransactionHash, + bitcoinClient: ElectrumClient, + transactionHash: BitcoinTxHash, requiredConfirmations: number = defaultTxProofDifficultyFactor, sleep = 30000 ): Promise { @@ -94,7 +93,7 @@ export async function waitTransactionConfirmed( if (confirmations >= requiredConfirmations) { console.log(` - Transaction ${transactionHash} has enough confirmations. + Transaction ${transactionHash} has enough confirmations. `) return } @@ -125,11 +124,11 @@ export async function waitTransactionConfirmed( */ export async function fakeRelayDifficulty( relay: Contract, - bitcoinClient: BitcoinClient, - transactionHash: BitcoinTransactionHash, + bitcoinClient: ElectrumClient, + transactionHash: BitcoinTxHash, headerChainLength: number = defaultTxProofDifficultyFactor ): Promise { - const proof = await assembleTransactionProof( + const proof = await assembleBitcoinSpvProof( transactionHash, headerChainLength, bitcoinClient diff --git a/system-tests/test/utils/deposit.ts b/system-tests/test/utils/deposit.ts index 054fba9cc..5510e9524 100644 --- a/system-tests/test/utils/deposit.ts +++ b/system-tests/test/utils/deposit.ts @@ -1,12 +1,12 @@ import crypto from "crypto" -import { calculateDepositRefundLocktime } from "@keep-network/tbtc-v2.ts/dist/src/deposit" -import { EthereumAddress } from "@keep-network/tbtc-v2.ts/dist/src" -import { constants } from "ethers" -import { computeHash160 } from "@keep-network/tbtc-v2.ts/dist/src/bitcoin" +import { + BitcoinLocktimeUtils, + BitcoinHashUtils, + EthereumAddress, +} from "@keep-network/tbtc-v2.ts" -import type { BigNumber } from "ethers" -import type { Deposit } from "@keep-network/tbtc-v2.ts/dist/src/deposit" +import type { DepositReceipt } from "@keep-network/tbtc-v2.ts" /** * Default refund public key used for deposits. Their corresponding private key: @@ -16,47 +16,37 @@ export const DEFAULT_REFUND_PUBLIC_KEY = "03989d253b17a6a0f41838b84ff0d20e8898f9d7b1a98f2564da4cc29dcf8581d9" /** - * Generates a deposit object based on the given parameters. + * Creates a deposit receipt based on the given parameters. * @param depositorAddress Ethereum address of the depositor. - * @param amount Amount of the deposit in satoshi. * @param walletPublicKey Compressed ECDSA public key of the target wallet. - * @param vaultAddress Ethereum address of the Bank vault to which the deposit - * is routed to. Optional parameter, if not set the zero address is used. * @param refundPublicKey Compressed ECDSA public key that can be used for * refund. Optional parameter, default value is used if not set * @see {DEFAULT_REFUND_PUBLIC_KEY}. - * @returns Deposit object. + * @returns Deposit receipt. */ -export function generateDeposit( +export function createDepositReceipt( depositorAddress: string, - amount: BigNumber, walletPublicKey: string, - vaultAddress?: string, refundPublicKey?: string -): Deposit { - const blindingFactor = crypto.randomBytes(8).toString("hex") - - const walletPublicKeyHash = computeHash160(walletPublicKey) +): DepositReceipt { + const walletPublicKeyHash = BitcoinHashUtils.computeHash160(walletPublicKey) const resolvedRefundPublicKey = refundPublicKey || DEFAULT_REFUND_PUBLIC_KEY - const refundPublicKeyHash = computeHash160(resolvedRefundPublicKey) + const refundPublicKeyHash = BitcoinHashUtils.computeHash160( + resolvedRefundPublicKey + ) + + const blindingFactor = crypto.randomBytes(8).toString("hex") - const refundLocktime = calculateDepositRefundLocktime( + const refundLocktime = BitcoinLocktimeUtils.calculateLocktime( Math.floor(Date.now() / 1000), 2592000 // 30 days ) - - const resolvedVaultAddress = new EthereumAddress( - vaultAddress || constants.AddressZero - ) - return { - depositor: new EthereumAddress(depositorAddress), - amount, - blindingFactor, + depositor: EthereumAddress.from(depositorAddress), walletPublicKeyHash, refundPublicKeyHash, + blindingFactor, refundLocktime, - vault: resolvedVaultAddress, } } diff --git a/system-tests/yarn.lock b/system-tests/yarn.lock index 2b4efbd6b..070844d6e 100644 --- a/system-tests/yarn.lock +++ b/system-tests/yarn.lock @@ -1515,18 +1515,7 @@ resolved "https://registry.yarnpkg.com/@keep-network/bitcoin-spv-sol/-/bitcoin-spv-sol-3.4.0-solc-0.8.tgz#8b44c246ffab8ea993efe196f6bf385b1a3b84dc" integrity sha512-KlpY9BbasyLvYXSS7dsJktgRChu/yjdFLOX8ldGA/pltLicCm/l0F4oqxL8wSws9XD12vq9x0B5qzPygVLB2TQ== -"@keep-network/ecdsa@2.1.0-dev.15": - version "2.1.0-dev.15" - resolved "https://registry.yarnpkg.com/@keep-network/ecdsa/-/ecdsa-2.1.0-dev.15.tgz#ee631a42e165f30c75aae8c54aace765b77e272a" - integrity sha512-iUE3SwDSNc/k1oui7Z+fDGhhGyOzpe4/f/oKvDUMHqXx0BQG3QCrOz9KqWuPFXTXMav4LxLbt12WyDITAl/hjw== - dependencies: - "@keep-network/random-beacon" "2.1.0-dev.15" - "@keep-network/sortition-pools" "^2.0.0-pre.16" - "@openzeppelin/contracts" "^4.6.0" - "@openzeppelin/contracts-upgradeable" "^4.6.0" - "@threshold-network/solidity-contracts" "1.3.0-dev.6" - -"@keep-network/ecdsa@2.1.0-dev.16": +"@keep-network/ecdsa@2.1.0-dev.16", "@keep-network/ecdsa@development": version "2.1.0-dev.16" resolved "https://registry.yarnpkg.com/@keep-network/ecdsa/-/ecdsa-2.1.0-dev.16.tgz#bd9d084b4f2b7bdda0a85a8f69200832d7c24fde" integrity sha512-8k8XiPXneRtBN/4jVX+0qxqya8232cglRM/GrfYMv/niQkgvdolK2prXyd3LO7d4ot4WcyfLYU7uJfjjmc5rEw== @@ -1572,16 +1561,6 @@ version "0.0.1" resolved "https://codeload.github.com/keep-network/prettier-config-keep/tar.gz/a1a333e7ac49928a0f6ed39421906dd1e46ab0f3" -"@keep-network/random-beacon@2.1.0-dev.15": - version "2.1.0-dev.15" - resolved "https://registry.yarnpkg.com/@keep-network/random-beacon/-/random-beacon-2.1.0-dev.15.tgz#541620c469e3bc75a5d1f7649889540b0e032e9e" - integrity sha512-vxBICRtmqSmJtFU5hZMpwB0alhgKchyMbxk4DtLZ7T2zBjd5tjt3CqeKEk+ON09g7yL1mIxY07InP4okviUK4A== - dependencies: - "@keep-network/sortition-pools" "^2.0.0-pre.16" - "@openzeppelin/contracts" "4.7.3" - "@thesis/solidity-contracts" "github:thesis/solidity-contracts#4985bcf" - "@threshold-network/solidity-contracts" "1.3.0-dev.5" - "@keep-network/random-beacon@2.1.0-dev.16": version "2.1.0-dev.16" resolved "https://registry.yarnpkg.com/@keep-network/random-beacon/-/random-beacon-2.1.0-dev.16.tgz#9f2b5c19aa79f6ff1a5498ba7b55eb170463161d" @@ -1592,6 +1571,16 @@ "@thesis/solidity-contracts" "github:thesis/solidity-contracts#4985bcf" "@threshold-network/solidity-contracts" "1.3.0-dev.6" +"@keep-network/random-beacon@2.1.0-dev.17": + version "2.1.0-dev.17" + resolved "https://registry.yarnpkg.com/@keep-network/random-beacon/-/random-beacon-2.1.0-dev.17.tgz#5fb2621948aa2fe07ceb134ba76f737b7e6d85cd" + integrity sha512-alfd2sHdMrX15qKzM4zwkZ3l/CXboLoeos4l3WvChW978VJIwUPm2ZIXd8tNTaHlykQ57eSSX7esaLfIjeO3Kg== + dependencies: + "@keep-network/sortition-pools" "^2.0.0-pre.16" + "@openzeppelin/contracts" "4.7.3" + "@thesis/solidity-contracts" "github:thesis/solidity-contracts#4985bcf" + "@threshold-network/solidity-contracts" "1.3.0-dev.8" + "@keep-network/sortition-pools@1.2.0-dev.1": version "1.2.0-dev.1" resolved "https://registry.yarnpkg.com/@keep-network/sortition-pools/-/sortition-pools-1.2.0-dev.1.tgz#2ee371f1dd1ff71f6d05c9ddc2a83a4a93ff56b3" @@ -1607,13 +1596,13 @@ "@openzeppelin/contracts" "^4.3.2" "@thesis/solidity-contracts" "github:thesis/solidity-contracts#4985bcf" -"@keep-network/tbtc-v2.ts@2.0.0-dev.0": - version "2.0.0-dev.0" - resolved "https://registry.yarnpkg.com/@keep-network/tbtc-v2.ts/-/tbtc-v2.ts-2.0.0-dev.0.tgz#1e51d8b605a8c96c3bea9522595d3b3db4eb8214" - integrity sha512-kJJCiWTu0EoZW1Q2zQZ5fOM52PpXDPd7EHd/oTbETxKYIW7h/Qg/Fnqx9KNynIInMrQIdXwsIDTEjoxGmD1AiQ== +"@keep-network/tbtc-v2.ts@2.1.0-dev.0": + version "2.1.0-dev.0" + resolved "https://registry.yarnpkg.com/@keep-network/tbtc-v2.ts/-/tbtc-v2.ts-2.1.0-dev.0.tgz#6eadb36784fdb9b79e0fd360519af0bf18cf487c" + integrity sha512-VZmBX1SZaDD9KRfkIL3O9pGDqa7k89SM3fGdz3o7AkV/1rBWXOp3CJ4yfe57xV9XwHKac7BJWob9/ApTgD26HA== dependencies: - "@keep-network/ecdsa" "2.1.0-dev.16" - "@keep-network/tbtc-v2" "1.6.0-dev.0" + "@keep-network/ecdsa" development + "@keep-network/tbtc-v2" development bitcoinjs-lib "^6.1.5" bufio "^1.0.6" ecpair "^2.1.0" @@ -1623,14 +1612,14 @@ tiny-secp256k1 "^2.2.3" wif "2.0.6" -"@keep-network/tbtc-v2@1.6.0-dev.0": - version "1.6.0-dev.0" - resolved "https://registry.yarnpkg.com/@keep-network/tbtc-v2/-/tbtc-v2-1.6.0-dev.0.tgz#ba95805cef3f04bde7379d3c3b14e882a9cfa080" - integrity sha512-5N2dMdFSdS+Ljvqnqoscft5xnbIK/U/z8Dc2hNXWULkPhIy0Mx/E7i7I4CpBTV4LazIo1Hq6W4EJtj+lmrekgg== +"@keep-network/tbtc-v2@development": + version "1.6.0-dev.4" + resolved "https://registry.yarnpkg.com/@keep-network/tbtc-v2/-/tbtc-v2-1.6.0-dev.4.tgz#16861d4bccb9da3693170b4de3f747814179eb7f" + integrity sha512-fxbiK6PAsh1TlH/OYwbNdFMIyvjOXpSksOldrgBY3/xnppuoeMFi/nTNrCtRD9kGsnImc5D2TCRj8+vbCHg3gA== dependencies: "@keep-network/bitcoin-spv-sol" "3.4.0-solc-0.8" - "@keep-network/ecdsa" "2.1.0-dev.15" - "@keep-network/random-beacon" "2.1.0-dev.16" + "@keep-network/ecdsa" "2.1.0-dev.16" + "@keep-network/random-beacon" "2.1.0-dev.17" "@keep-network/tbtc" "1.1.2-dev.1" "@openzeppelin/contracts" "^4.8.1" "@openzeppelin/contracts-upgradeable" "^4.8.1" @@ -2289,7 +2278,6 @@ eslint-config-prettier "^8.3.0" eslint-plugin-import "^2.23.4" eslint-plugin-jsx-a11y "^6.4.1" - eslint-plugin-no-only-tests "^2.6.0" eslint-plugin-prettier "^4.0.0" eslint-plugin-react "^7.25.2" eslint-plugin-react-hooks "^4.2.0" @@ -2304,16 +2292,6 @@ dependencies: "@openzeppelin/contracts" "^4.1.0" -"@threshold-network/solidity-contracts@1.3.0-dev.5": - version "1.3.0-dev.5" - resolved "https://registry.yarnpkg.com/@threshold-network/solidity-contracts/-/solidity-contracts-1.3.0-dev.5.tgz#f7a2727d627a10218f0667bc0d33e19ed8f87fdc" - integrity sha512-AInTKQkJ0PKa32q2m8GnZFPYEArsnvOwhIFdBFaHdq9r4EGyqHMf4YY1WjffkheBZ7AQ0DNA8Lst30kBoQd0SA== - dependencies: - "@keep-network/keep-core" ">1.8.1-dev <1.8.1-goerli" - "@openzeppelin/contracts" "~4.5.0" - "@openzeppelin/contracts-upgradeable" "~4.5.2" - "@thesis/solidity-contracts" "github:thesis/solidity-contracts#4985bcf" - "@threshold-network/solidity-contracts@1.3.0-dev.6": version "1.3.0-dev.6" resolved "https://registry.yarnpkg.com/@threshold-network/solidity-contracts/-/solidity-contracts-1.3.0-dev.6.tgz#41e34a84f409f63635e59f9a6ce170df1472b8a1" From 8bb637451bf267c0587f6478b13270d1f638f993 Mon Sep 17 00:00:00 2001 From: Tomasz Slabon Date: Tue, 7 Nov 2023 11:59:53 +0100 Subject: [PATCH 02/22] Updated tbtc-v2.ts version to 2.2.0 --- system-tests/package.json | 2 +- system-tests/yarn.lock | 24 ++++++++++++------------ 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/system-tests/package.json b/system-tests/package.json index e5ba6c709..aba56a539 100644 --- a/system-tests/package.json +++ b/system-tests/package.json @@ -18,7 +18,7 @@ "test/**/*" ], "dependencies": { - "@keep-network/tbtc-v2.ts": "2.1.0-dev.0", + "@keep-network/tbtc-v2.ts": "2.2.0-dev.0", "elliptic": "^6.5.4", "wif": "^2.0.6" }, diff --git a/system-tests/yarn.lock b/system-tests/yarn.lock index 070844d6e..663317219 100644 --- a/system-tests/yarn.lock +++ b/system-tests/yarn.lock @@ -1515,7 +1515,7 @@ resolved "https://registry.yarnpkg.com/@keep-network/bitcoin-spv-sol/-/bitcoin-spv-sol-3.4.0-solc-0.8.tgz#8b44c246ffab8ea993efe196f6bf385b1a3b84dc" integrity sha512-KlpY9BbasyLvYXSS7dsJktgRChu/yjdFLOX8ldGA/pltLicCm/l0F4oqxL8wSws9XD12vq9x0B5qzPygVLB2TQ== -"@keep-network/ecdsa@2.1.0-dev.16", "@keep-network/ecdsa@development": +"@keep-network/ecdsa@2.1.0-dev.16": version "2.1.0-dev.16" resolved "https://registry.yarnpkg.com/@keep-network/ecdsa/-/ecdsa-2.1.0-dev.16.tgz#bd9d084b4f2b7bdda0a85a8f69200832d7c24fde" integrity sha512-8k8XiPXneRtBN/4jVX+0qxqya8232cglRM/GrfYMv/niQkgvdolK2prXyd3LO7d4ot4WcyfLYU7uJfjjmc5rEw== @@ -1596,13 +1596,13 @@ "@openzeppelin/contracts" "^4.3.2" "@thesis/solidity-contracts" "github:thesis/solidity-contracts#4985bcf" -"@keep-network/tbtc-v2.ts@2.1.0-dev.0": - version "2.1.0-dev.0" - resolved "https://registry.yarnpkg.com/@keep-network/tbtc-v2.ts/-/tbtc-v2.ts-2.1.0-dev.0.tgz#6eadb36784fdb9b79e0fd360519af0bf18cf487c" - integrity sha512-VZmBX1SZaDD9KRfkIL3O9pGDqa7k89SM3fGdz3o7AkV/1rBWXOp3CJ4yfe57xV9XwHKac7BJWob9/ApTgD26HA== +"@keep-network/tbtc-v2.ts@2.2.0-dev.0": + version "2.2.0-dev.0" + resolved "https://registry.yarnpkg.com/@keep-network/tbtc-v2.ts/-/tbtc-v2.ts-2.2.0-dev.0.tgz#e7d857ad80e6f0d88fd0043ce7d2e270a3d13b12" + integrity sha512-UsAeS5aBz3t7N8TfN37o6Mr15f88xZknpowMizygqtFJ7lt9KUVnaWJfc6+ExvRTg1cFHWy8FBm8uWzcMfA8Qg== dependencies: - "@keep-network/ecdsa" development - "@keep-network/tbtc-v2" development + "@keep-network/ecdsa" "2.1.0-dev.16" + "@keep-network/tbtc-v2" "1.6.0-dev.3" bitcoinjs-lib "^6.1.5" bufio "^1.0.6" ecpair "^2.1.0" @@ -1612,10 +1612,10 @@ tiny-secp256k1 "^2.2.3" wif "2.0.6" -"@keep-network/tbtc-v2@development": - version "1.6.0-dev.4" - resolved "https://registry.yarnpkg.com/@keep-network/tbtc-v2/-/tbtc-v2-1.6.0-dev.4.tgz#16861d4bccb9da3693170b4de3f747814179eb7f" - integrity sha512-fxbiK6PAsh1TlH/OYwbNdFMIyvjOXpSksOldrgBY3/xnppuoeMFi/nTNrCtRD9kGsnImc5D2TCRj8+vbCHg3gA== +"@keep-network/tbtc-v2@1.6.0-dev.3": + version "1.6.0-dev.3" + resolved "https://registry.yarnpkg.com/@keep-network/tbtc-v2/-/tbtc-v2-1.6.0-dev.3.tgz#d0ffdc52368c7f8440202836e78a8cc452f2c16c" + integrity sha512-6AQ7OfN+bxBImZfk+KewBckXZMaKyRv8u1bRsufmDrSfW6+PW0CopwAYTbNGkf9zkCNB5WvNLROXK2YXdLVnPQ== dependencies: "@keep-network/bitcoin-spv-sol" "3.4.0-solc-0.8" "@keep-network/ecdsa" "2.1.0-dev.16" @@ -4774,7 +4774,7 @@ eslint-plugin-jsx-a11y@^6.4.1: language-tags "^1.0.5" minimatch "^3.0.4" -eslint-plugin-no-only-tests@^2.3.1, eslint-plugin-no-only-tests@^2.6.0: +eslint-plugin-no-only-tests@^2.3.1: version "2.6.0" resolved "https://registry.yarnpkg.com/eslint-plugin-no-only-tests/-/eslint-plugin-no-only-tests-2.6.0.tgz#19f6c9620bda02b9b9221b436c5f070e42628d76" integrity sha512-T9SmE/g6UV1uZo1oHAqOvL86XWl7Pl2EpRpnLI8g/bkJu+h7XBCB+1LnubRZ2CUQXj805vh4/CYZdnqtVaEo2Q== From 14355ab2c87f84dd67398b7f93052e21d78c0dc3 Mon Sep 17 00:00:00 2001 From: Tomasz Slabon Date: Tue, 7 Nov 2023 15:33:51 +0100 Subject: [PATCH 03/22] Updated minting-unminting test --- system-tests/test/minting-unminting.test.ts | 240 ++++++++++++-------- 1 file changed, 145 insertions(+), 95 deletions(-) diff --git a/system-tests/test/minting-unminting.test.ts b/system-tests/test/minting-unminting.test.ts index 865290db0..7bc00d51a 100644 --- a/system-tests/test/minting-unminting.test.ts +++ b/system-tests/test/minting-unminting.test.ts @@ -1,29 +1,36 @@ import { - TBTC, - SpvMaintainer, + extractBitcoinRawTxVectors, + Hex, + BitcoinTxHash, + BitcoinNetwork, ElectrumClient, - EthereumAddress, EthereumBridge, - BitcoinTransactionHash, - BitcoinNetwork, -} from "@keep-network/tbtc-v2.ts/dist/src" -import { computeHash160, createAddressFromPublicKey } from "@keep-network/tbtc-v2.ts/dist/src/bitcoin" -import { Hex } from "@keep-network/tbtc-v2.ts/dist/src/hex" + EthereumTBTCToken, + EthereumTBTCVault, + DepositFunding, + DepositScript, + BitcoinAddressConverter, + WalletTx, + EthereumWalletRegistry, + MaintenanceService, + BitcoinHashUtils, + EthereumAddress, +} from "@keep-network/tbtc-v2.ts" import { BigNumber, constants, Contract, utils as ethersUtils } from "ethers" import chai, { expect } from "chai" -import { submitDepositTransaction } from "@keep-network/tbtc-v2.ts/dist/src/deposit" -import { submitDepositSweepTransaction } from "@keep-network/tbtc-v2.ts/dist/src/deposit-sweep" -import { submitRedemptionTransaction } from "@keep-network/tbtc-v2.ts/dist/src/redemption" import chaiAsPromised from "chai-as-promised" import { setupSystemTestsContext } from "./utils/context" -import { generateDeposit } from "./utils/deposit" import { fakeRelayDifficulty, waitTransactionConfirmed } from "./utils/bitcoin" +import { createDepositReceipt } from "./utils/deposit" -import type { UnspentTransactionOutput } from "@keep-network/tbtc-v2.ts/dist/src/bitcoin" import type { SystemTestsContext } from "./utils/context" -import type { RedemptionRequest } from "@keep-network/tbtc-v2.ts/dist/src/redemption" -import type { Deposit } from "@keep-network/tbtc-v2.ts/dist/src/deposit" +import type { + RedemptionRequest, + BitcoinUtxo, + DepositReceipt, + TBTCContracts, +} from "@keep-network/tbtc-v2.ts" chai.use(chaiAsPromised) @@ -54,14 +61,23 @@ const satoshiMultiplier = 1e10 describe("System Test - Minting and unminting", () => { let systemTestsContext: SystemTestsContext let electrumClient: ElectrumClient + let tbtcTokenAddress: string let bridgeAddress: string + let vaultAddress: string + let walletRegistryAddress: string let maintainerBridgeHandle: EthereumBridge let depositorBridgeHandle: EthereumBridge + let walletRegistryHandle: EthereumWalletRegistry + let tbtcTokenHandle: EthereumTBTCToken + let vaultHandle: EthereumTBTCVault let bank: Contract let relay: Contract let tbtcVault: Contract let tbtcToken: Contract + let walletTx: WalletTx + let maintenanceService: MaintenanceService + const depositAmount = BigNumber.from(2000000) const depositSweepTxFee = BigNumber.from(10000) const depositTxFee = BigNumber.from(1500) @@ -71,9 +87,9 @@ describe("System Test - Minting and unminting", () => { // subsequent Electrum retry attempts. const ELECTRUM_RETRY_BACKOFF_STEP_MS = 10000 // 10sec - let deposit: Deposit - let depositUtxo: UnspentTransactionOutput - let sweepUtxo: UnspentTransactionOutput + let depositReceipt: DepositReceipt + let depositUtxo: BitcoinUtxo + let sweepUtxo: BitcoinUtxo before(async () => { systemTestsContext = await setupSystemTestsContext() @@ -87,7 +103,20 @@ describe("System Test - Minting and unminting", () => { ELECTRUM_RETRY_BACKOFF_STEP_MS ) + tbtcTokenAddress = deployedContracts.TBTC.address bridgeAddress = deployedContracts.Bridge.address + vaultAddress = deployedContracts.TBTCVault.address + walletRegistryAddress = deployedContracts.WalletRegistry.address + + tbtcTokenHandle = new EthereumTBTCToken({ + address: tbtcTokenAddress, + signerOrProvider: depositor, + }) + + vaultHandle = new EthereumTBTCVault({ + address: vaultAddress, + signerOrProvider: depositor, + }) maintainerBridgeHandle = new EthereumBridge({ address: bridgeAddress, @@ -99,6 +128,11 @@ describe("System Test - Minting and unminting", () => { signerOrProvider: depositor, }) + walletRegistryHandle = new EthereumWalletRegistry({ + address: walletRegistryAddress, + signerOrProvider: depositor, + }) + const bankDeploymentInfo = deployedContracts.Bank bank = new Contract( bankDeploymentInfo.address, @@ -126,39 +160,54 @@ describe("System Test - Minting and unminting", () => { tbtcTokenDeploymentInfo.abi, maintainer ) + + const tbtcContracts: TBTCContracts = { + bridge: maintainerBridgeHandle, + tbtcToken: tbtcTokenHandle, + tbtcVault: vaultHandle, + walletRegistry: walletRegistryHandle, + } + + walletTx = new WalletTx(tbtcContracts, electrumClient) + maintenanceService = new MaintenanceService(tbtcContracts, electrumClient) }) context( "when minting is initiated by making and revealing a deposit to the TBTCVault", () => { before("make and reveal deposit", async () => { - deposit = generateDeposit( + depositReceipt = createDepositReceipt( systemTestsContext.depositor.address, - depositAmount, - systemTestsContext.walletBitcoinKeyPair.publicKey.compressed, - tbtcVault.address // Set TBTCVault as target vault + systemTestsContext.walletBitcoinKeyPair.publicKey.compressed ) console.log(` Generated deposit data: - ${JSON.stringify(deposit)} + ${JSON.stringify(depositReceipt)} `) - const depositorBitcoinAddress = createAddressFromPublicKey( - Hex.from(systemTestsContext.depositorBitcoinKeyPair.publicKey.compressed), - BitcoinNetwork.Testnet, - ) - const depositorUtxos = await electrumClient.findAllUnspentTransactionOutputs( - depositorBitcoinAddress + const depositorBitcoinAddress = + BitcoinAddressConverter.publicKeyToAddress( + Hex.from( + systemTestsContext.depositorBitcoinKeyPair.publicKey.compressed + ), + BitcoinNetwork.Testnet + ) + const depositorUtxos = + await electrumClient.findAllUnspentTransactionOutputs( + depositorBitcoinAddress + ) + + const depositFunding = DepositFunding.fromScript( + DepositScript.fromReceipt(depositReceipt, true) ) - ;({ depositUtxo } = await submitDepositTransaction( - deposit, - systemTestsContext.depositorBitcoinKeyPair.wif, - electrumClient, - true, + ;({ depositUtxo } = await depositFunding.submitTransaction( + depositAmount, depositorUtxos, - depositTxFee + depositTxFee, + systemTestsContext.depositorBitcoinKeyPair.wif, + electrumClient )) console.log(` @@ -176,12 +225,17 @@ describe("System Test - Minting and unminting", () => { // Since the reveal deposit logic does not perform SPV proof, we // can reveal the deposit transaction immediately without waiting // for confirmations. - await TBTC.revealDeposit( - depositUtxo, - deposit, - electrumClient, - depositorBridgeHandle, - deposit.vault + const rawDepositTransaction = await electrumClient.getRawTransaction( + depositUtxo.transactionHash + ) + const depositRawTxVectors = extractBitcoinRawTxVectors( + rawDepositTransaction + ) + depositorBridgeHandle.revealDeposit( + depositRawTxVectors, + depositUtxo.outputIndex, + depositReceipt, + EthereumAddress.from(tbtcVault.address) // Use TBTCVault as target vault. ) console.log(` @@ -197,17 +251,17 @@ describe("System Test - Minting and unminting", () => { }) it("should reveal the deposit to the bridge", async () => { - const { revealedAt } = await TBTC.getRevealedDeposit( - depositUtxo, - maintainerBridgeHandle + const { revealedAt } = await maintainerBridgeHandle.deposits( + depositUtxo.transactionHash, + depositUtxo.outputIndex ) expect(revealedAt).to.be.greaterThan(0) }) it("should set TBTCVault as target vault of the revealed deposit", async () => { - const { vault } = await TBTC.getRevealedDeposit( - depositUtxo, - maintainerBridgeHandle + const { vault } = await maintainerBridgeHandle.deposits( + depositUtxo.transactionHash, + depositUtxo.outputIndex ) expect( EthereumAddress.from(tbtcVault.address).identifierHex @@ -216,14 +270,13 @@ describe("System Test - Minting and unminting", () => { context("when deposit is swept and sweep proof submitted", () => { before("sweep the deposit and submit sweep proof", async () => { - ;({ newMainUtxo: sweepUtxo } = await submitDepositSweepTransaction( - electrumClient, - depositSweepTxFee, - systemTestsContext.walletBitcoinKeyPair.wif, - true, - [depositUtxo], - [deposit] - )) + ;({ newMainUtxo: sweepUtxo } = + await walletTx.depositSweep.submitTransaction( + depositSweepTxFee, + systemTestsContext.walletBitcoinKeyPair.wif, + [depositUtxo], + [depositReceipt] + )) console.log(` Deposit swept on Bitcoin chain: @@ -247,18 +300,17 @@ describe("System Test - Minting and unminting", () => { // TODO: Consider fetching the current wallet main UTXO and passing it // here. This will allow running this test scenario multiple // times for the same wallet. - await SpvMaintainer.submitDepositSweepProof( + await maintenanceService.spv.submitDepositSweepProof( sweepUtxo.transactionHash, // This is the first sweep of the given wallet so there is no main UTXO. { // The function expects an unprefixed hash. - transactionHash: BitcoinTransactionHash.from(constants.HashZero), + transactionHash: BitcoinTxHash.from(constants.HashZero), outputIndex: 0, value: BigNumber.from(0), }, - maintainerBridgeHandle, - electrumClient, - EthereumAddress.from(tbtcVault.address) // Pass the TBTCVault address for the SPV proof + // Pass the TBTCVault address for the SPV proof. + EthereumAddress.from(tbtcVault.address) ) console.log(` @@ -274,19 +326,18 @@ describe("System Test - Minting and unminting", () => { }) it("should sweep the deposit on the bridge", async () => { - const { sweptAt } = await TBTC.getRevealedDeposit( - depositUtxo, - maintainerBridgeHandle + const { sweptAt } = await maintainerBridgeHandle.deposits( + depositUtxo.transactionHash, + depositUtxo.outputIndex ) expect(sweptAt).to.be.greaterThan(0) }) it("should increase TBTCVault's balance in the bank", async () => { - const { treasuryFee } = await TBTC.getRevealedDeposit( - depositUtxo, - maintainerBridgeHandle + const { treasuryFee } = await maintainerBridgeHandle.deposits( + depositUtxo.transactionHash, + depositUtxo.outputIndex ) - const expectedBalance = depositAmount .sub(treasuryFee) .sub(depositSweepTxFee) @@ -297,9 +348,9 @@ describe("System Test - Minting and unminting", () => { }) it("should mint TBTC to the depositor", async () => { - const { treasuryFee } = await TBTC.getRevealedDeposit( - depositUtxo, - maintainerBridgeHandle + const { treasuryFee } = await maintainerBridgeHandle.deposits( + depositUtxo.transactionHash, + depositUtxo.outputIndex ) const expectedMintedAmount = depositAmount @@ -326,8 +377,10 @@ describe("System Test - Minting and unminting", () => { ) // Request redemption to depositor's address. - redeemerOutputScript = `0014${computeHash160( - systemTestsContext.depositorBitcoinKeyPair.publicKey.compressed + redeemerOutputScript = `0014${BitcoinHashUtils.computeHash160( + Hex.from( + systemTestsContext.depositorBitcoinKeyPair.publicKey.compressed + ) )}` // Convert the redeemer output script to a byte buffer. @@ -340,7 +393,7 @@ describe("System Test - Minting and unminting", () => { ["address", "bytes20", "bytes32", "uint32", "uint64", "bytes"], [ systemTestsContext.depositor.address, - `0x${deposit.walletPublicKeyHash}`, + depositReceipt.walletPublicKeyHash.toPrefixedString(), sweepUtxo.transactionHash.reverse().toPrefixedString(), sweepUtxo.outputIndex, sweepUtxo.value.toNumber(), @@ -361,11 +414,11 @@ describe("System Test - Minting and unminting", () => { `Unminted ${unmintedAmount} TBTC and requested redemption to script ${redeemerOutputScript} on the bridge` ) - redemptionRequest = await TBTC.getRedemptionRequest( - systemTestsContext.walletBitcoinKeyPair.publicKey.compressed, - redeemerOutputScript, - "pending", - maintainerBridgeHandle + redemptionRequest = await maintainerBridgeHandle.pendingRedemptions( + Hex.from( + systemTestsContext.walletBitcoinKeyPair.publicKey.compressed + ), + Hex.from(redeemerOutputScript) ) }) @@ -395,19 +448,16 @@ describe("System Test - Minting and unminting", () => { context( "when redemption is made and redemption proof submitted", () => { - let redemptionTxHash: BitcoinTransactionHash + let redemptionTxHash: BitcoinTxHash before( "make the redemption and submit redemption proof", async () => { ;({ transactionHash: redemptionTxHash } = - await submitRedemptionTransaction( - electrumClient, - maintainerBridgeHandle, + await walletTx.redemption.submitTransaction( systemTestsContext.walletBitcoinKeyPair.wif, sweepUtxo, - [redemptionRequest.redeemerOutputScript], - true + [redemptionRequest.redeemerOutputScript] )) console.log( @@ -426,13 +476,13 @@ describe("System Test - Minting and unminting", () => { redemptionTxHash ) - await SpvMaintainer.submitRedemptionProof( + await maintenanceService.spv.submitRedemptionProof( redemptionTxHash, sweepUtxo, - systemTestsContext.walletBitcoinKeyPair.publicKey - .compressed, - maintainerBridgeHandle, - electrumClient + Hex.from( + systemTestsContext.walletBitcoinKeyPair.publicKey + .compressed + ) ) console.log("Redemption proved on the bridge") @@ -448,12 +498,12 @@ describe("System Test - Minting and unminting", () => { it("should close the redemption request on the bridge", async () => { await expect( - TBTC.getRedemptionRequest( - systemTestsContext.walletBitcoinKeyPair.publicKey - .compressed, - redemptionRequest.redeemerOutputScript, - "pending", - maintainerBridgeHandle + maintainerBridgeHandle.pendingRedemptions( + Hex.from( + systemTestsContext.walletBitcoinKeyPair.publicKey + .compressed + ), + redemptionRequest.redeemerOutputScript ) ).to.be.rejectedWith( "Provided redeemer output script and wallet public key do not identify a redemption request" From a759c41313bb03eb9524a4d1a6373b825b5550b7 Mon Sep 17 00:00:00 2001 From: Tomasz Slabon Date: Tue, 7 Nov 2023 15:39:42 +0100 Subject: [PATCH 04/22] Used Hex for system test setup --- system-tests/test/deposit-redemption.test.ts | 54 ++++++++++++++------ system-tests/test/utils/bitcoin.ts | 22 ++++---- 2 files changed, 49 insertions(+), 27 deletions(-) diff --git a/system-tests/test/deposit-redemption.test.ts b/system-tests/test/deposit-redemption.test.ts index f89994552..2ebdddf75 100644 --- a/system-tests/test/deposit-redemption.test.ts +++ b/system-tests/test/deposit-redemption.test.ts @@ -65,7 +65,6 @@ describe("System Test - Deposit and redemption", () => { let maintainerBridgeHandle: EthereumBridge let depositorBridgeHandle: EthereumBridge let walletRegistryHandle: EthereumWalletRegistry - let tbtcContracts: TBTCContracts let walletTx: WalletTx let maintenanceService: MaintenanceService @@ -132,7 +131,7 @@ describe("System Test - Deposit and redemption", () => { signerOrProvider: depositor, }) - tbtcContracts = { + const tbtcContracts: TBTCContracts = { bridge: maintainerBridgeHandle, tbtcToken: tbtcTokenHandle, tbtcVault: vaultHandle, @@ -140,7 +139,6 @@ describe("System Test - Deposit and redemption", () => { } walletTx = new WalletTx(tbtcContracts, electrumClient) - maintenanceService = new MaintenanceService(tbtcContracts, electrumClient) const bankDeploymentInfo = deployedContracts.Bank @@ -277,6 +275,7 @@ describe("System Test - Deposit and redemption", () => { // times for the same wallet. await maintenanceService.spv.submitDepositSweepProof( sweepUtxo.transactionHash, + // This is the first sweep of the given wallet so there is no main UTXO. { // The function expects an unprefixed hash. transactionHash: BitcoinTxHash.from(constants.HashZero), @@ -340,13 +339,17 @@ describe("System Test - Deposit and redemption", () => { // Request redemption to depositor's address. redeemerOutputScript = `0014${BitcoinHashUtils.computeHash160( - systemTestsContext.depositorBitcoinKeyPair.publicKey.compressed + Hex.from( + systemTestsContext.depositorBitcoinKeyPair.publicKey.compressed + ) )}` await depositorBridgeHandle.requestRedemption( - systemTestsContext.walletBitcoinKeyPair.publicKey.compressed, + Hex.from( + systemTestsContext.walletBitcoinKeyPair.publicKey.compressed + ), sweepUtxo, - redeemerOutputScript, + Hex.from(redeemerOutputScript), requestedAmount ) @@ -355,8 +358,10 @@ describe("System Test - Deposit and redemption", () => { ) redemptionRequest = await maintainerBridgeHandle.pendingRedemptions( - systemTestsContext.walletBitcoinKeyPair.publicKey.compressed, - redeemerOutputScript + Hex.from( + systemTestsContext.walletBitcoinKeyPair.publicKey.compressed + ), + Hex.from(redeemerOutputScript) ) }) @@ -411,7 +416,9 @@ describe("System Test - Deposit and redemption", () => { await maintenanceService.spv.submitRedemptionProof( redemptionTxHash, sweepUtxo, - systemTestsContext.walletBitcoinKeyPair.publicKey.compressed + Hex.from( + systemTestsContext.walletBitcoinKeyPair.publicKey.compressed + ) ) console.log("Redemption proved on the bridge") @@ -428,7 +435,9 @@ describe("System Test - Deposit and redemption", () => { it("should close the redemption request on the bridge", async () => { await expect( maintainerBridgeHandle.pendingRedemptions( - systemTestsContext.walletBitcoinKeyPair.publicKey.compressed, + Hex.from( + systemTestsContext.walletBitcoinKeyPair.publicKey.compressed + ), redemptionRequest.redeemerOutputScript ) ).to.be.rejectedWith( @@ -466,6 +475,7 @@ describe("System Test - Deposit and redemption", () => { ), BitcoinNetwork.Testnet ) + const depositorUtxos = await electrumClient.findAllUnspentTransactionOutputs( depositorBitcoinAddress @@ -638,13 +648,17 @@ describe("System Test - Deposit and redemption", () => { // Request redemption to depositor's address. redeemerOutputScript = `0014${BitcoinHashUtils.computeHash160( - systemTestsContext.depositorBitcoinKeyPair.publicKey.compressed + Hex.from( + systemTestsContext.depositorBitcoinKeyPair.publicKey.compressed + ) )}` await depositorBridgeHandle.requestRedemption( - systemTestsContext.walletBitcoinKeyPair.publicKey.compressed, + Hex.from( + systemTestsContext.walletBitcoinKeyPair.publicKey.compressed + ), sweepUtxo, - redeemerOutputScript, + Hex.from(redeemerOutputScript), tbtcBalanceOfDepositor ) @@ -653,8 +667,10 @@ describe("System Test - Deposit and redemption", () => { ) redemptionRequest = await maintainerBridgeHandle.pendingRedemptions( - systemTestsContext.walletBitcoinKeyPair.publicKey.compressed, - redeemerOutputScript + Hex.from( + systemTestsContext.walletBitcoinKeyPair.publicKey.compressed + ), + Hex.from(redeemerOutputScript) ) }) @@ -715,7 +731,9 @@ describe("System Test - Deposit and redemption", () => { await maintenanceService.spv.submitRedemptionProof( redemptionTxHash, sweepUtxo, - systemTestsContext.walletBitcoinKeyPair.publicKey.compressed + Hex.from( + systemTestsContext.walletBitcoinKeyPair.publicKey.compressed + ) ) console.log("Redemption proved on the bridge") @@ -732,7 +750,9 @@ describe("System Test - Deposit and redemption", () => { it("should close the redemption request on the bridge", async () => { await expect( maintainerBridgeHandle.pendingRedemptions( - systemTestsContext.walletBitcoinKeyPair.publicKey.compressed, + Hex.from( + systemTestsContext.walletBitcoinKeyPair.publicKey.compressed + ), redemptionRequest.redeemerOutputScript ) ).to.be.rejectedWith( diff --git a/system-tests/test/utils/bitcoin.ts b/system-tests/test/utils/bitcoin.ts index a81126fa9..984922176 100644 --- a/system-tests/test/utils/bitcoin.ts +++ b/system-tests/test/utils/bitcoin.ts @@ -2,7 +2,7 @@ // @ts-ignore import wifLib from "wif" import { ec as EllipticCurve } from "elliptic" -import { assembleBitcoinSpvProof } from "@keep-network/tbtc-v2.ts" +import { assembleBitcoinSpvProof, Hex } from "@keep-network/tbtc-v2.ts" import type { BitcoinTxHash, ElectrumClient } from "@keep-network/tbtc-v2.ts" import type { Contract } from "ethers" @@ -26,21 +26,21 @@ export interface KeyPair { */ wif: string /** - * Private key as an unprefixed hex string. + * Private key. */ - privateKey: string + privateKey: Hex /** * Public key. */ publicKey: { /** - * Compressed public key as a 33-byte hex string prefixed with 02 or 03. + * Compressed 33-byte-long public key prefixed with 02 or 03. */ - compressed: string + compressed: Hex /** - * Uncompressed public key as an unprefixed hex string. + * Uncompressed public key. */ - uncompressed: string + uncompressed: Hex } } @@ -54,11 +54,13 @@ export function keyPairFromWif(wif: string): KeyPair { const keyPair = secp256k1.keyFromPrivate(privateKey) return { wif, - privateKey: keyPair.getPrivate("hex"), + privateKey: Hex.from(keyPair.getPrivate("hex")), publicKey: { - compressed: keyPair.getPublic().encodeCompressed("hex"), + compressed: Hex.from(keyPair.getPublic().encodeCompressed("hex")), // Trim the `04` prefix from the uncompressed key. - uncompressed: keyPair.getPublic().encode("hex", false).substring(2), + uncompressed: Hex.from( + keyPair.getPublic().encode("hex", false).substring(2) + ), }, } } From a9be14bc29e359b0d7e6e652932b68da2d06a8b1 Mon Sep 17 00:00:00 2001 From: Tomasz Slabon Date: Tue, 7 Nov 2023 15:49:55 +0100 Subject: [PATCH 05/22] Updated version of tbtc-v2.ts --- system-tests/package.json | 2 +- system-tests/yarn.lock | 921 +++++--------------------------------- 2 files changed, 101 insertions(+), 822 deletions(-) diff --git a/system-tests/package.json b/system-tests/package.json index aba56a539..dffe78713 100644 --- a/system-tests/package.json +++ b/system-tests/package.json @@ -18,7 +18,7 @@ "test/**/*" ], "dependencies": { - "@keep-network/tbtc-v2.ts": "2.2.0-dev.0", + "@keep-network/tbtc-v2.ts": "^2.2.0", "elliptic": "^6.5.4", "wif": "^2.0.6" }, diff --git a/system-tests/yarn.lock b/system-tests/yarn.lock index 663317219..2b36e9485 100644 --- a/system-tests/yarn.lock +++ b/system-tests/yarn.lock @@ -38,22 +38,13 @@ dependencies: regenerator-runtime "^0.13.4" -"@celo/base@1.5.2": - version "1.5.2" - resolved "https://registry.yarnpkg.com/@celo/base/-/base-1.5.2.tgz#168ab5e4e30b374079d8d139fafc52ca6bfd4100" - integrity sha512-KGf6Dl9E6D01vAfkgkjL2sG+zqAjspAogILIpWstljWdG5ifyA75jihrnDEHaMCoQS0KxHvTdP1XYS/GS6BEyQ== - -"@celo/connect@1.5.2": - version "1.5.2" - resolved "https://registry.yarnpkg.com/@celo/connect/-/connect-1.5.2.tgz#09f0b03bda6f8a6d523fd010492f204cbe82aabd" - integrity sha512-IHsvYp1HizIPfPPeIHyvsmJytIf7HNtNWo9CqCbsqfNfmw53q6dFJu2p5X0qz/fUnR5840cUga8cEyuYZTfp+w== +"@bitcoinerlab/secp256k1@^1.0.5": + version "1.0.5" + resolved "https://registry.yarnpkg.com/@bitcoinerlab/secp256k1/-/secp256k1-1.0.5.tgz#4643ba73619c24c7c455cc63c6338c69c2cf187c" + integrity sha512-8gT+ukTCFN2rTxn4hD9Jq3k+UJwcprgYjfK/SQUSLgznXoIgsBnlPuARMkyyuEjycQK9VvnPiejKdszVTflh+w== dependencies: - "@celo/utils" "1.5.2" - "@types/debug" "^4.1.5" - "@types/utf8" "^2.1.6" - bignumber.js "^9.0.0" - debug "^4.1.1" - utf8 "3.0.0" + "@noble/hashes" "^1.1.5" + "@noble/secp256k1" "^1.7.1" "@celo/contractkit@^0.3.3": version "0.3.8" @@ -78,24 +69,6 @@ web3-eth-contract "1.2.4" web3-utils "1.2.4" -"@celo/contractkit@^1.0.2": - version "1.5.2" - resolved "https://registry.yarnpkg.com/@celo/contractkit/-/contractkit-1.5.2.tgz#be15d570f3044a190dabb6bbe53d5081c78ea605" - integrity sha512-b0r5TlfYDEscxze1Ai2jyJayiVElA9jvEehMD6aOSNtVhfP8oirjFIIffRe0Wzw1MSDGkw+q1c4m0Yw5sEOlvA== - dependencies: - "@celo/base" "1.5.2" - "@celo/connect" "1.5.2" - "@celo/utils" "1.5.2" - "@celo/wallet-local" "1.5.2" - "@types/debug" "^4.1.5" - bignumber.js "^9.0.0" - cross-fetch "^3.0.6" - debug "^4.1.1" - fp-ts "2.1.1" - io-ts "2.0.1" - semver "^7.3.5" - web3 "1.3.6" - "@celo/utils@0.1.11": version "0.1.11" resolved "https://registry.yarnpkg.com/@celo/utils/-/utils-0.1.11.tgz#c35e3b385091fc6f0c0c355b73270f4a8559ad38" @@ -120,66 +93,6 @@ numeral "^2.0.6" web3-utils "1.2.4" -"@celo/utils@1.5.2": - version "1.5.2" - resolved "https://registry.yarnpkg.com/@celo/utils/-/utils-1.5.2.tgz#ddb7f3b50c801225ab41d2355fbe010976329099" - integrity sha512-JyKjuVMbdkyFOb1TpQw6zqamPQWYg7I9hOnva3MeIcQ3ZrJIaNHx0/I+JXFjuu3YYBc1mG8nXp2uPJJTGrwzCQ== - dependencies: - "@celo/base" "1.5.2" - "@types/country-data" "^0.0.0" - "@types/elliptic" "^6.4.9" - "@types/ethereumjs-util" "^5.2.0" - "@types/google-libphonenumber" "^7.4.17" - "@types/lodash" "^4.14.170" - "@types/node" "^10.12.18" - "@types/randombytes" "^2.0.0" - bigi "^1.1.0" - bignumber.js "^9.0.0" - bip32 "2.0.5" - bip39 "https://github.com/bitcoinjs/bip39#d8ea080a18b40f301d4e2219a2991cd2417e83c2" - bls12377js "https://github.com/celo-org/bls12377js#cb38a4cfb643c778619d79b20ca3e5283a2122a6" - bn.js "4.11.8" - buffer-reverse "^1.0.1" - country-data "^0.0.31" - crypto-js "^3.1.9-1" - elliptic "^6.5.4" - ethereumjs-util "^5.2.0" - fp-ts "2.1.1" - google-libphonenumber "^3.2.15" - io-ts "2.0.1" - keccak256 "^1.0.0" - lodash "^4.17.21" - numeral "^2.0.6" - web3-eth-abi "1.3.6" - web3-utils "1.3.6" - -"@celo/wallet-base@1.5.2": - version "1.5.2" - resolved "https://registry.yarnpkg.com/@celo/wallet-base/-/wallet-base-1.5.2.tgz#ae8df425bf3c702277bb1b63a761a2ec8429e7aa" - integrity sha512-NYJu7OtSRFpGcvSMl2Wc8zN32S6oTkAzKqhH7rXisQ0I2q4yNwCzoquzPVYB0G2UVUFKuuxgsA5V+Zda/LQCyw== - dependencies: - "@celo/base" "1.5.2" - "@celo/connect" "1.5.2" - "@celo/utils" "1.5.2" - "@types/debug" "^4.1.5" - "@types/ethereumjs-util" "^5.2.0" - bignumber.js "^9.0.0" - debug "^4.1.1" - eth-lib "^0.2.8" - ethereumjs-util "^5.2.0" - -"@celo/wallet-local@1.5.2": - version "1.5.2" - resolved "https://registry.yarnpkg.com/@celo/wallet-local/-/wallet-local-1.5.2.tgz#66ea5fb763e19724309e3d56f312f1a342e12b91" - integrity sha512-Aas4SwqQc8ap0OFAOZc+jBR4cXr20V9AReHNEI8Y93R3g1+RlSEJ1Zmsu4vN+Rriz58YqgMnr+pihorw8QydFQ== - dependencies: - "@celo/connect" "1.5.2" - "@celo/utils" "1.5.2" - "@celo/wallet-base" "1.5.2" - "@types/ethereumjs-util" "^5.2.0" - eth-lib "^0.2.8" - ethereumjs-util "^5.2.0" - "@chainsafe/as-sha256@^0.3.1": version "0.3.1" resolved "https://registry.yarnpkg.com/@chainsafe/as-sha256/-/as-sha256-0.3.1.tgz#3639df0e1435cab03f4d9870cc3ac079e57a6fc9" @@ -392,21 +305,6 @@ merkle-patricia-tree "^4.2.2" rustbn.js "~0.2.0" -"@ethersproject/abi@5.0.7": - version "5.0.7" - resolved "https://registry.yarnpkg.com/@ethersproject/abi/-/abi-5.0.7.tgz#79e52452bd3ca2956d0e1c964207a58ad1a0ee7b" - integrity sha512-Cqktk+hSIckwP/W8O47Eef60VwmoSC/L3lY0+dIBhQPCNn9E4V7rwmm2aFrNRRDJfFlGuZ1khkQUOc3oBX+niw== - dependencies: - "@ethersproject/address" "^5.0.4" - "@ethersproject/bignumber" "^5.0.7" - "@ethersproject/bytes" "^5.0.4" - "@ethersproject/constants" "^5.0.4" - "@ethersproject/hash" "^5.0.4" - "@ethersproject/keccak256" "^5.0.3" - "@ethersproject/logger" "^5.0.5" - "@ethersproject/properties" "^5.0.3" - "@ethersproject/strings" "^5.0.4" - "@ethersproject/abi@5.6.0": version "5.6.0" resolved "https://registry.yarnpkg.com/@ethersproject/abi/-/abi-5.6.0.tgz#ea07cbc1eec2374d32485679c12408005895e9f3" @@ -546,7 +444,7 @@ "@ethersproject/logger" "^5.6.0" "@ethersproject/rlp" "^5.6.1" -"@ethersproject/address@5.7.0", "@ethersproject/address@^5.0.4", "@ethersproject/address@^5.6.1", "@ethersproject/address@^5.7.0": +"@ethersproject/address@5.7.0", "@ethersproject/address@^5.6.1", "@ethersproject/address@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/address/-/address-5.7.0.tgz#19b56c4d74a3b0a46bfdbb6cfcc0a153fc697f37" integrity sha512-9wYhYt7aghVGo758POM5nqcOMaE168Q6aRLJZwUmiqSrAungkG74gSSeKEIR7ukixesdRZGPgVqme6vmxs1fkA== @@ -620,7 +518,7 @@ "@ethersproject/logger" "^5.6.0" bn.js "^5.2.1" -"@ethersproject/bignumber@5.7.0", "@ethersproject/bignumber@^5.0.7", "@ethersproject/bignumber@^5.6.2", "@ethersproject/bignumber@^5.7.0": +"@ethersproject/bignumber@5.7.0", "@ethersproject/bignumber@^5.6.2", "@ethersproject/bignumber@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/bignumber/-/bignumber-5.7.0.tgz#e2f03837f268ba655ffba03a57853e18a18dc9c2" integrity sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw== @@ -636,7 +534,7 @@ dependencies: "@ethersproject/logger" "^5.6.0" -"@ethersproject/bytes@5.7.0", "@ethersproject/bytes@^5.0.4", "@ethersproject/bytes@^5.6.1", "@ethersproject/bytes@^5.7.0": +"@ethersproject/bytes@5.7.0", "@ethersproject/bytes@^5.6.1", "@ethersproject/bytes@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/bytes/-/bytes-5.7.0.tgz#a00f6ea8d7e7534d6d87f47188af1148d71f155d" integrity sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A== @@ -657,7 +555,7 @@ dependencies: "@ethersproject/bignumber" "^5.6.2" -"@ethersproject/constants@5.7.0", "@ethersproject/constants@^5.0.4", "@ethersproject/constants@^5.6.1", "@ethersproject/constants@^5.7.0": +"@ethersproject/constants@5.7.0", "@ethersproject/constants@^5.6.1", "@ethersproject/constants@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/constants/-/constants-5.7.0.tgz#df80a9705a7e08984161f09014ea012d1c75295e" integrity sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA== @@ -740,7 +638,7 @@ "@ethersproject/properties" "^5.6.0" "@ethersproject/strings" "^5.6.1" -"@ethersproject/hash@5.7.0", "@ethersproject/hash@^5.0.4", "@ethersproject/hash@^5.6.1", "@ethersproject/hash@^5.7.0": +"@ethersproject/hash@5.7.0", "@ethersproject/hash@^5.6.1", "@ethersproject/hash@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/hash/-/hash-5.7.0.tgz#eb7aca84a588508369562e16e514b539ba5240a7" integrity sha512-qX5WrQfnah1EFnO5zJv1v46a8HW0+E5xuBBDTwMFZLuVTx0tbU2kkx15NqdjxecrLGatQN9FGQKpb1FKdHCt+g== @@ -882,7 +780,7 @@ "@ethersproject/bytes" "^5.6.1" js-sha3 "0.8.0" -"@ethersproject/keccak256@5.7.0", "@ethersproject/keccak256@^5.0.3", "@ethersproject/keccak256@^5.6.1", "@ethersproject/keccak256@^5.7.0": +"@ethersproject/keccak256@5.7.0", "@ethersproject/keccak256@^5.6.1", "@ethersproject/keccak256@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/keccak256/-/keccak256-5.7.0.tgz#3186350c6e1cd6aba7940384ec7d6d9db01f335a" integrity sha512-2UcPboeL/iW+pSg6vZ6ydF8tCnv3Iu/8tUmLLzWWGzxWKFFqOBQFLo6uLUv6BDrLgCDfN28RJ/wtByx+jZ4KBg== @@ -895,7 +793,7 @@ resolved "https://registry.yarnpkg.com/@ethersproject/logger/-/logger-5.6.0.tgz#d7db1bfcc22fd2e4ab574cba0bb6ad779a9a3e7a" integrity sha512-BiBWllUROH9w+P21RzoxJKzqoqpkyM1pRnEKG69bulE9TSQD8SAIvTQqIMZmmCO8pUNkgLP1wndX1gKghSpBmg== -"@ethersproject/logger@5.7.0", "@ethersproject/logger@^5.0.5", "@ethersproject/logger@^5.6.0", "@ethersproject/logger@^5.7.0": +"@ethersproject/logger@5.7.0", "@ethersproject/logger@^5.6.0", "@ethersproject/logger@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/logger/-/logger-5.7.0.tgz#6ce9ae168e74fecf287be17062b590852c311892" integrity sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig== @@ -952,7 +850,7 @@ dependencies: "@ethersproject/logger" "^5.6.0" -"@ethersproject/properties@5.7.0", "@ethersproject/properties@^5.0.3", "@ethersproject/properties@^5.6.0", "@ethersproject/properties@^5.7.0": +"@ethersproject/properties@5.7.0", "@ethersproject/properties@^5.6.0", "@ethersproject/properties@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/properties/-/properties-5.7.0.tgz#a6e12cb0439b878aaf470f1902a176033067ed30" integrity sha512-J87jy8suntrAkIZtecpxEPxY//szqr1mlBaYlQ0r4RCaiD2hjheqF9s1LVE8vVuJCXisjIP+JgtK/Do54ej4Sw== @@ -1201,7 +1099,7 @@ "@ethersproject/constants" "^5.6.1" "@ethersproject/logger" "^5.6.0" -"@ethersproject/strings@5.7.0", "@ethersproject/strings@^5.0.4", "@ethersproject/strings@^5.6.1", "@ethersproject/strings@^5.7.0": +"@ethersproject/strings@5.7.0", "@ethersproject/strings@^5.6.1", "@ethersproject/strings@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/strings/-/strings-5.7.0.tgz#54c9d2a7c57ae8f1205c88a9d3a56471e14d5ed2" integrity sha512-/9nu+lj0YswRNSH0NXYqrh8775XNyEdUQAuf3f+SmOrnVewcJ5SBNAjF7lpgehKi4abvNNXyf+HX86czCdJ8Mg== @@ -1240,7 +1138,7 @@ "@ethersproject/rlp" "^5.6.1" "@ethersproject/signing-key" "^5.6.2" -"@ethersproject/transactions@5.7.0", "@ethersproject/transactions@^5.0.0-beta.135", "@ethersproject/transactions@^5.6.2", "@ethersproject/transactions@^5.7.0": +"@ethersproject/transactions@5.7.0", "@ethersproject/transactions@^5.6.2", "@ethersproject/transactions@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/transactions/-/transactions-5.7.0.tgz#91318fc24063e057885a6af13fdb703e1f993d3b" integrity sha512-kmcNicCp1lp8qanMTC3RIikGgoJ80ztTyvtsFvCYpSCfkjhD0jZ2LOrnbcuxuToLIUYYf+4XwD1rP+B/erDIhQ== @@ -1515,45 +1413,46 @@ resolved "https://registry.yarnpkg.com/@keep-network/bitcoin-spv-sol/-/bitcoin-spv-sol-3.4.0-solc-0.8.tgz#8b44c246ffab8ea993efe196f6bf385b1a3b84dc" integrity sha512-KlpY9BbasyLvYXSS7dsJktgRChu/yjdFLOX8ldGA/pltLicCm/l0F4oqxL8wSws9XD12vq9x0B5qzPygVLB2TQ== -"@keep-network/ecdsa@2.1.0-dev.16": - version "2.1.0-dev.16" - resolved "https://registry.yarnpkg.com/@keep-network/ecdsa/-/ecdsa-2.1.0-dev.16.tgz#bd9d084b4f2b7bdda0a85a8f69200832d7c24fde" - integrity sha512-8k8XiPXneRtBN/4jVX+0qxqya8232cglRM/GrfYMv/niQkgvdolK2prXyd3LO7d4ot4WcyfLYU7uJfjjmc5rEw== +"@keep-network/ecdsa@2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@keep-network/ecdsa/-/ecdsa-2.0.0.tgz#96d301cd272e61334bec173b5c4945758fc80853" + integrity sha512-KXSUOkZIKHR3I4H99CpgkPtuneI9AxgGo8+DmqGR56QB28kJCEXm7GC/yTInWS1lb7LzDwkjIm9VYAIGdLrsZw== dependencies: - "@keep-network/random-beacon" "2.1.0-dev.16" - "@keep-network/sortition-pools" "^2.0.0-pre.16" + "@keep-network/random-beacon" "2.0.0" + "@keep-network/sortition-pools" "2.0.0" "@openzeppelin/contracts" "^4.6.0" "@openzeppelin/contracts-upgradeable" "^4.6.0" - "@threshold-network/solidity-contracts" "1.3.0-dev.8" + "@threshold-network/solidity-contracts" "1.2.1" "@keep-network/hardhat-helpers@^0.6.0-pre.7": version "0.6.0-pre.7" resolved "https://registry.yarnpkg.com/@keep-network/hardhat-helpers/-/hardhat-helpers-0.6.0-pre.7.tgz#0b8fbc7c8ee7248f0babbfe4f2f957f5ef3f8507" integrity sha512-6inPdST2lAwxYLGl619udVLJDoW41maQzxc2MD1YmvUDlkrHsI4GmSmqkj+mJPtLVVEbxqCjwQNjyDkSmIICvQ== -"@keep-network/keep-core@1.8.1-goerli.0": - version "1.8.1-goerli.0" - resolved "https://registry.yarnpkg.com/@keep-network/keep-core/-/keep-core-1.8.1-goerli.0.tgz#238485aab51902021d42357bf59695225002f0ab" - integrity sha512-h3La/RqbyEZjBBPg8V+pcRFo3UpWZUF4CxWfXHZnUR4PnkZKnIDrTNFQPhpV2uYFZwrbJxTR9mzOq/DOAiXPwA== +"@keep-network/keep-core@1.3.0": + version "1.3.0" + resolved "https://registry.yarnpkg.com/@keep-network/keep-core/-/keep-core-1.3.0.tgz#09c1fd4d8d021b2afdff4801c7743d4c65b7bce3" + integrity sha512-c8efKWPx5da6OSdcm9/uvdDqrfwDcYAExNqPvomhLFC0dATEEFHsr/QOAqiBm4wCZZtWMKt0dYTm5QpGtx5TXQ== dependencies: + "@openzeppelin/contracts-ethereum-package" "^2.4.0" "@openzeppelin/upgrades" "^2.7.2" openzeppelin-solidity "2.4.0" -"@keep-network/keep-core@>1.8.1-dev <1.8.1-goerli": - version "1.8.1-dev.0" - resolved "https://registry.yarnpkg.com/@keep-network/keep-core/-/keep-core-1.8.1-dev.0.tgz#d95864b25800214de43d8840376a68336cb12055" - integrity sha512-gFXkgN4PYOYCZ14AskL7fZHEFW5mu3BDd+TJKBuKZc1q9CgRMOK+dxpJnSctxmSH1tV+Ln9v9yqlSkfPCoiBHw== +"@keep-network/keep-core@1.7.0": + version "1.7.0" + resolved "https://registry.yarnpkg.com/@keep-network/keep-core/-/keep-core-1.7.0.tgz#0923d539fc431810bd9b239f91e09a92a2b255a0" + integrity sha512-jU0ol4L5a7vFUXCTlYGsjZYhl87cUpiAYz9LgDgvM3sGmwNIVZ9dY3gziINXIbSSFZjoqh3eGDxDPcQmA+Rjrg== dependencies: "@openzeppelin/upgrades" "^2.7.2" openzeppelin-solidity "2.4.0" -"@keep-network/keep-ecdsa@>1.9.0-dev <1.9.0-ropsten": - version "1.9.0-goerli.0" - resolved "https://registry.yarnpkg.com/@keep-network/keep-ecdsa/-/keep-ecdsa-1.9.0-goerli.0.tgz#ce58b6639062bb4f73a257557aebb16447889e08" - integrity sha512-EA/oTcxmia5nznQ35ub9/5xBqBK4T+78oWYxASCc+THdPLalzriSAtQ517R4QnvkHi82NFhJjZH8WBoRXniddA== +"@keep-network/keep-ecdsa@1.2.1": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@keep-network/keep-ecdsa/-/keep-ecdsa-1.2.1.tgz#5dcbc2c3808cce55a6e0d9e524868a0e9a0f1562" + integrity sha512-Oz0thgLoemt/nK6dl+MONU7TEoNR3lfbnMY/Aa0oWGcwR5PlNMiBVzYY7OT4oLZIK/MxEHDOWRQAijZEQffI7g== dependencies: - "@keep-network/keep-core" "1.8.1-goerli.0" - "@keep-network/sortition-pools" "1.2.0-dev.1" + "@keep-network/keep-core" "1.3.0" + "@keep-network/sortition-pools" "1.1.2" "@openzeppelin/upgrades" "^2.7.2" openzeppelin-solidity "2.3.0" @@ -1561,34 +1460,24 @@ version "0.0.1" resolved "https://codeload.github.com/keep-network/prettier-config-keep/tar.gz/a1a333e7ac49928a0f6ed39421906dd1e46ab0f3" -"@keep-network/random-beacon@2.1.0-dev.16": - version "2.1.0-dev.16" - resolved "https://registry.yarnpkg.com/@keep-network/random-beacon/-/random-beacon-2.1.0-dev.16.tgz#9f2b5c19aa79f6ff1a5498ba7b55eb170463161d" - integrity sha512-o+cG/VDkhUc91W+4bMplYCgOu0twSFICqarpv5k2ES8GcaafaeV8stXGhCxjvHYJjU/sfG8mhlQZhWdZixq+JQ== - dependencies: - "@keep-network/sortition-pools" "^2.0.0-pre.16" - "@openzeppelin/contracts" "4.7.3" - "@thesis/solidity-contracts" "github:thesis/solidity-contracts#4985bcf" - "@threshold-network/solidity-contracts" "1.3.0-dev.6" - -"@keep-network/random-beacon@2.1.0-dev.17": - version "2.1.0-dev.17" - resolved "https://registry.yarnpkg.com/@keep-network/random-beacon/-/random-beacon-2.1.0-dev.17.tgz#5fb2621948aa2fe07ceb134ba76f737b7e6d85cd" - integrity sha512-alfd2sHdMrX15qKzM4zwkZ3l/CXboLoeos4l3WvChW978VJIwUPm2ZIXd8tNTaHlykQ57eSSX7esaLfIjeO3Kg== +"@keep-network/random-beacon@2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@keep-network/random-beacon/-/random-beacon-2.0.0.tgz#ac52dd03da49ec5b0d39ba85c51de6c4c8f1b1dc" + integrity sha512-c5AodlBkMRTEID7bDE7BA9lqDZcH3AFqOPz5b9f5syy62DnuiMkHTHIEIvdWWCL26m21A4PPyPjw7XirauE/OA== dependencies: - "@keep-network/sortition-pools" "^2.0.0-pre.16" - "@openzeppelin/contracts" "4.7.3" + "@keep-network/sortition-pools" "2.0.0" + "@openzeppelin/contracts" "^4.6.0" "@thesis/solidity-contracts" "github:thesis/solidity-contracts#4985bcf" - "@threshold-network/solidity-contracts" "1.3.0-dev.8" + "@threshold-network/solidity-contracts" "1.2.1" -"@keep-network/sortition-pools@1.2.0-dev.1": - version "1.2.0-dev.1" - resolved "https://registry.yarnpkg.com/@keep-network/sortition-pools/-/sortition-pools-1.2.0-dev.1.tgz#2ee371f1dd1ff71f6d05c9ddc2a83a4a93ff56b3" - integrity sha512-CaOsvxNWHgXRFwPThDn3C/LiCwq9pL8ICLXXkysRSLw1Hx69wLnToaXYuwyXeIEy5pGqe5+288DBIqvJ3T4+jA== +"@keep-network/sortition-pools@1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@keep-network/sortition-pools/-/sortition-pools-1.1.2.tgz#cfeb31d574b02d1ae32649df01b87af07229010a" + integrity sha512-bBaKyxkXDc8kJHq3qeESMrJ02m+Wbh6Uz9qUpWn8Zq3aTZaKXRZfGWT+J71OiBlAdyB4WoHZymrddWHkjImHdQ== dependencies: "@openzeppelin/contracts" "^2.4.0" -"@keep-network/sortition-pools@^2.0.0-pre.16": +"@keep-network/sortition-pools@2.0.0": version "2.0.0" resolved "https://registry.yarnpkg.com/@keep-network/sortition-pools/-/sortition-pools-2.0.0.tgz#04e29ec756d74e00d13505a3e2a7763b06d7a08d" integrity sha512-82pDOKcDBvHBFblCt0ALVr6qC6mxk339ZqnCfYx1zIPaPhzkw1RKOv28AqPoqzhzcdqLIoPh8g9RS/M2Lplh1A== @@ -1596,42 +1485,41 @@ "@openzeppelin/contracts" "^4.3.2" "@thesis/solidity-contracts" "github:thesis/solidity-contracts#4985bcf" -"@keep-network/tbtc-v2.ts@2.2.0-dev.0": - version "2.2.0-dev.0" - resolved "https://registry.yarnpkg.com/@keep-network/tbtc-v2.ts/-/tbtc-v2.ts-2.2.0-dev.0.tgz#e7d857ad80e6f0d88fd0043ce7d2e270a3d13b12" - integrity sha512-UsAeS5aBz3t7N8TfN37o6Mr15f88xZknpowMizygqtFJ7lt9KUVnaWJfc6+ExvRTg1cFHWy8FBm8uWzcMfA8Qg== +"@keep-network/tbtc-v2.ts@^2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@keep-network/tbtc-v2.ts/-/tbtc-v2.ts-2.2.0.tgz#21a44c85f215606e198fa81c85f7913724e1942a" + integrity sha512-h1bnBjeRxUKVsoe3RVhUxzFDBGfL9xvzJ9MLt68x1S7gRaSJGnldlxT0e3jyUdo2mCa51IrJl0dRkDgBZBHs6w== dependencies: - "@keep-network/ecdsa" "2.1.0-dev.16" - "@keep-network/tbtc-v2" "1.6.0-dev.3" + "@bitcoinerlab/secp256k1" "^1.0.5" + "@keep-network/ecdsa" "2.0.0" + "@keep-network/tbtc-v2" "1.5.1" bitcoinjs-lib "^6.1.5" bufio "^1.0.6" ecpair "^2.1.0" electrum-client-js "git+https://github.com/keep-network/electrum-client-js.git#v0.1.1" ethers "^5.5.2" p-timeout "^4.1.0" - tiny-secp256k1 "^2.2.3" wif "2.0.6" -"@keep-network/tbtc-v2@1.6.0-dev.3": - version "1.6.0-dev.3" - resolved "https://registry.yarnpkg.com/@keep-network/tbtc-v2/-/tbtc-v2-1.6.0-dev.3.tgz#d0ffdc52368c7f8440202836e78a8cc452f2c16c" - integrity sha512-6AQ7OfN+bxBImZfk+KewBckXZMaKyRv8u1bRsufmDrSfW6+PW0CopwAYTbNGkf9zkCNB5WvNLROXK2YXdLVnPQ== +"@keep-network/tbtc-v2@1.5.1": + version "1.5.1" + resolved "https://registry.yarnpkg.com/@keep-network/tbtc-v2/-/tbtc-v2-1.5.1.tgz#f1855b30f0c777cd7c612bf25b6c0e4d43356255" + integrity sha512-kSzdF2r2O4AZ4rmxSmMCxfZW9UmhE4s2UmKiAnp9aDTrTgIXppOY/5n9vOF9u6jhXQvHesp9VYtG7QDJaZtZ1Q== dependencies: "@keep-network/bitcoin-spv-sol" "3.4.0-solc-0.8" - "@keep-network/ecdsa" "2.1.0-dev.16" - "@keep-network/random-beacon" "2.1.0-dev.17" - "@keep-network/tbtc" "1.1.2-dev.1" + "@keep-network/ecdsa" "2.0.0" + "@keep-network/random-beacon" "2.0.0" + "@keep-network/tbtc" "1.1.0" "@openzeppelin/contracts" "^4.8.1" "@openzeppelin/contracts-upgradeable" "^4.8.1" "@thesis/solidity-contracts" "github:thesis/solidity-contracts#4985bcf" -"@keep-network/tbtc@1.1.2-dev.1": - version "1.1.2-dev.1" - resolved "https://registry.yarnpkg.com/@keep-network/tbtc/-/tbtc-1.1.2-dev.1.tgz#dd1e734c0fed50474c74d7170c8749127231d1f9" - integrity sha512-IRa0j1D7JBG8UpduaFxkaq2Ii6F61HhNMUBmxr7kAIZwj/yx8sYXWi921mn0L2Z+hAYNcwEUVhCM91VKQH29pQ== +"@keep-network/tbtc@1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@keep-network/tbtc/-/tbtc-1.1.0.tgz#9574ff355af04e77fb73a7bbe3e74cfd8764cf3c" + integrity sha512-V4sGR/t61PgkEF11GDZL5QNijVSdDhL7A7larcOSSCmKJOugxd5s+d+NdhYcHZhX9IS58ebtepvZan8TydHUHw== dependencies: - "@celo/contractkit" "^1.0.2" - "@keep-network/keep-ecdsa" ">1.9.0-dev <1.9.0-ropsten" + "@keep-network/keep-ecdsa" "1.2.1" "@summa-tx/bitcoin-spv-sol" "^3.1.0" "@summa-tx/relay-sol" "^2.0.2" openzeppelin-solidity "2.3.0" @@ -1700,12 +1588,12 @@ resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.2.0.tgz#a3150eeb09cc7ab207ebf6d7b9ad311a9bdbed12" integrity sha512-FZfhjEDbT5GRswV3C6uvLPHMiVD6lQBmpoX5+eSiPaMTXte/IKqI5dykDxzZB/WBeK/CDuQRBWarPdi3FNY2zQ== -"@noble/hashes@^1.2.0": +"@noble/hashes@^1.1.5", "@noble/hashes@^1.2.0": version "1.3.2" resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.3.2.tgz#6f26dbc8fbc7205873ce3cee2f690eba0d421b39" integrity sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ== -"@noble/secp256k1@1.7.1", "@noble/secp256k1@~1.7.0": +"@noble/secp256k1@1.7.1", "@noble/secp256k1@^1.7.1", "@noble/secp256k1@~1.7.0": version "1.7.1" resolved "https://registry.yarnpkg.com/@noble/secp256k1/-/secp256k1-1.7.1.tgz#b251c70f824ce3ca7f8dc3df08d58f005cc0507c" integrity sha512-hOUk6AyBFmqVrv7k5WAw/LpszxVbj9gGN4JRkIX52fdFAj1UA61KXmZDvqVEm+pOyec3+fIeZB02LYa/pWOArw== @@ -1944,6 +1832,11 @@ "@types/sinon-chai" "^3.2.3" "@types/web3" "1.0.19" +"@openzeppelin/contracts-ethereum-package@^2.4.0": + version "2.5.0" + resolved "https://registry.yarnpkg.com/@openzeppelin/contracts-ethereum-package/-/contracts-ethereum-package-2.5.0.tgz#cfb4b91f8132edde7e04bcd032575d4c6b544f4a" + integrity sha512-14CijdTyy4Y/3D3UUeFC2oW12nt1Yq1M8gFOtkuODEvSYPe3YSAKnKyhUeGf0UDNCZzwfGr15KdiFK6AoJjoSQ== + "@openzeppelin/contracts-upgradeable@^4.6.0", "@openzeppelin/contracts-upgradeable@^4.8.1": version "4.9.2" resolved "https://registry.yarnpkg.com/@openzeppelin/contracts-upgradeable/-/contracts-upgradeable-4.9.2.tgz#a817c75688f8daede420052fbcb34e52482e769e" @@ -1954,11 +1847,6 @@ resolved "https://registry.yarnpkg.com/@openzeppelin/contracts-upgradeable/-/contracts-upgradeable-4.5.2.tgz#90d9e47bacfd8693bfad0ac8a394645575528d05" integrity sha512-xgWZYaPlrEOQo3cBj97Ufiuv79SPd8Brh4GcFYhPgb6WvAq4ppz8dWKL6h+jLAK01rUqMRp/TS9AdXgAeNvCLA== -"@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@^2.4.0": version "2.5.1" resolved "https://registry.yarnpkg.com/@openzeppelin/contracts/-/contracts-2.5.1.tgz#c76e3fc57aa224da3718ec351812a4251289db31" @@ -2184,11 +2072,6 @@ resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.14.0.tgz#9fb3a3cf3132328151f353de4632e01e52102bea" integrity sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ== -"@sindresorhus/is@^4.0.0": - version "4.6.0" - resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-4.6.0.tgz#3c7c9c46e678feefe7a2e5bb609d3dbd665ffb3f" - integrity sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw== - "@solidity-parser/parser@^0.14.1": version "0.14.5" resolved "https://registry.yarnpkg.com/@solidity-parser/parser/-/parser-0.14.5.tgz#87bc3cc7b068e08195c219c91cd8ddff5ef1a804" @@ -2258,13 +2141,6 @@ dependencies: defer-to-connect "^1.0.1" -"@szmarczak/http-timer@^4.0.5": - version "4.0.6" - resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-4.0.6.tgz#b4a914bb62e7c272d4e5989fe4440f812ab1d807" - integrity sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w== - dependencies: - defer-to-connect "^2.0.0" - "@thesis-co/eslint-config@github:thesis/eslint-config": version "0.1.0" resolved "https://codeload.github.com/thesis/eslint-config/tar.gz/382331b5ba1ab79839eaf5d70407d059715cc285" @@ -2292,22 +2168,12 @@ dependencies: "@openzeppelin/contracts" "^4.1.0" -"@threshold-network/solidity-contracts@1.3.0-dev.6": - version "1.3.0-dev.6" - resolved "https://registry.yarnpkg.com/@threshold-network/solidity-contracts/-/solidity-contracts-1.3.0-dev.6.tgz#41e34a84f409f63635e59f9a6ce170df1472b8a1" - integrity sha512-U7nMp+86M5qkjW7YUvT3qWgRiEEUIxqE96vkEiARTOkWX5JdLP2CXehkHCkEzjdgOCczmCp3fFtcgKFnQhhZ8A== - dependencies: - "@keep-network/keep-core" ">1.8.1-dev <1.8.1-goerli" - "@openzeppelin/contracts" "~4.5.0" - "@openzeppelin/contracts-upgradeable" "~4.5.2" - "@thesis/solidity-contracts" "github:thesis/solidity-contracts#4985bcf" - -"@threshold-network/solidity-contracts@1.3.0-dev.8": - version "1.3.0-dev.8" - resolved "https://registry.yarnpkg.com/@threshold-network/solidity-contracts/-/solidity-contracts-1.3.0-dev.8.tgz#6de25dc6ce374cfbdf3b67c72097044631222f3a" - integrity sha512-s6SFZyf1xXgOdMK1zYnjsURnVz7Xxzf0z/34vH+hDg8n/G8L0jPR6Iz4laWSSL2y1P3ffFAFTUMvwfJMJitfVw== +"@threshold-network/solidity-contracts@1.2.1": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@threshold-network/solidity-contracts/-/solidity-contracts-1.2.1.tgz#8f9d8fe52f24b51acc52fdff765fdef3b8546587" + integrity sha512-v19gnQzdU52DLB6ZpkCW4YHTvApmwA1EG/YRxh+FRrzeDOC6rv+EqUhLgKpMtSpgBZT1ryqqLXm1QmjkW6CIGw== dependencies: - "@keep-network/keep-core" ">1.8.1-dev <1.8.1-goerli" + "@keep-network/keep-core" "1.7.0" "@openzeppelin/contracts" "~4.5.0" "@openzeppelin/contracts-upgradeable" "~4.5.2" "@thesis/solidity-contracts" "github:thesis/solidity-contracts#4985bcf" @@ -2366,7 +2232,7 @@ dependencies: "@types/node" "*" -"@types/bn.js@^4.11.3", "@types/bn.js@^4.11.4", "@types/bn.js@^4.11.5": +"@types/bn.js@^4.11.3", "@types/bn.js@^4.11.4": version "4.11.6" resolved "https://registry.yarnpkg.com/@types/bn.js/-/bn.js-4.11.6.tgz#c306c70d9358aaea33cd4eda092a742b9505967c" integrity sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg== @@ -2380,16 +2246,6 @@ dependencies: "@types/node" "*" -"@types/cacheable-request@^6.0.1": - 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" "^3.1.4" - "@types/node" "*" - "@types/responselike" "^1.0.0" - "@types/cbor@^2.0.0": version "2.0.0" resolved "https://registry.yarnpkg.com/@types/cbor/-/cbor-2.0.0.tgz#c627afc2ee22f23f2337fecb34628a4f97c6afbb" @@ -2409,11 +2265,6 @@ resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.3.1.tgz#e2c6e73e0bdeb2521d00756d099218e9f5d90a04" integrity sha512-/zPMqDkzSZ8t3VtxOa4KPq7uzzW978M9Tvh+j7GHKuo6k6GTLxPJ4J5gE5cjfJ26pnXst0N5Hax8Sr0T2Mi9zQ== -"@types/country-data@^0.0.0": - version "0.0.0" - resolved "https://registry.yarnpkg.com/@types/country-data/-/country-data-0.0.0.tgz#6f5563cae3d148780c5b6539803a29bd93f8f1a1" - integrity sha512-lIxCk6G7AwmUagQ4gIQGxUBnvAq664prFD9nSAz6dgd1XmBXBtZABV/op+QsJsIyaP1GZsf/iXhYKHX3azSRCw== - "@types/debug@^4.1.5": version "4.1.8" resolved "https://registry.yarnpkg.com/@types/debug/-/debug-4.1.8.tgz#cef723a5d0a90990313faec2d1e22aee5eecb317" @@ -2421,31 +2272,6 @@ dependencies: "@types/ms" "*" -"@types/elliptic@^6.4.9": - version "6.4.14" - resolved "https://registry.yarnpkg.com/@types/elliptic/-/elliptic-6.4.14.tgz#7bbaad60567a588c1f08b10893453e6b9b4de48e" - integrity sha512-z4OBcDAU0GVwDTuwJzQCiL6188QvZMkvoERgcVjq0/mPM8jCfdwZ3x5zQEVoL9WCAru3aG5wl3Z5Ww5wBWn7ZQ== - dependencies: - "@types/bn.js" "*" - -"@types/ethereumjs-util@^5.2.0": - version "5.2.0" - resolved "https://registry.yarnpkg.com/@types/ethereumjs-util/-/ethereumjs-util-5.2.0.tgz#f49fe8114789ec0871721392c09318c3eb56671b" - integrity sha512-qwQgQqXXTRv2h2AlJef+tMEszLFkCB9dWnrJYIdAwqjubERXEc/geB+S3apRw0yQyTVnsBf8r6BhlrE8vx+3WQ== - dependencies: - "@types/bn.js" "*" - "@types/node" "*" - -"@types/google-libphonenumber@^7.4.17": - version "7.4.23" - resolved "https://registry.yarnpkg.com/@types/google-libphonenumber/-/google-libphonenumber-7.4.23.tgz#c44c9125d45f042943694d605fd8d8d796cafc3b" - integrity sha512-C3ydakLTQa8HxtYf9ge4q6uT9krDX8smSIxmmW3oACFi5g5vv6T068PRExF7UyWbWpuYiDG8Nm24q2X5XhcZWw== - -"@types/http-cache-semantics@*": - version "4.0.1" - resolved "https://registry.yarnpkg.com/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz#0ea7b61496902b95890dc4c3a116b60cb8dae812" - integrity sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ== - "@types/json-schema@^7.0.7": version "7.0.11" resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.11.tgz#d421b6c527a3037f7c84433fd2c4229e016863d3" @@ -2456,13 +2282,6 @@ resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== -"@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: - "@types/node" "*" - "@types/level-errors@*": version "3.0.0" resolved "https://registry.yarnpkg.com/@types/level-errors/-/level-errors-3.0.0.tgz#15c1f4915a5ef763b51651b15e90f6dc081b96a8" @@ -2477,11 +2296,6 @@ "@types/level-errors" "*" "@types/node" "*" -"@types/lodash@^4.14.170": - version "4.14.195" - resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.195.tgz#bafc975b252eb6cea78882ce8a7b6bf22a6de632" - integrity sha512-Hwx9EUgdwf2GLarOjQp5ZH8ZmblzcbTBC2wtQWNKARBSxM9ezRIAUpeDTgoQRAFB0+8CNWXVA9+MaSOzOF3nPg== - "@types/lru-cache@^5.1.0": version "5.1.1" resolved "https://registry.yarnpkg.com/@types/lru-cache/-/lru-cache-5.1.1.tgz#c48c2e27b65d2a153b19bfc1a317e30872e01eef" @@ -2532,7 +2346,7 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-10.17.60.tgz#35f3d6213daed95da7f0f73e75bcc6980e90597b" integrity sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw== -"@types/node@^12.11.7", "@types/node@^12.12.6", "@types/node@^12.6.1": +"@types/node@^12.11.7", "@types/node@^12.6.1": version "12.20.55" resolved "https://registry.yarnpkg.com/@types/node/-/node-12.20.55.tgz#c329cbd434c42164f846b909bd6f85b5537f6240" integrity sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ== @@ -2559,13 +2373,6 @@ resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.7.tgz#63bb7d067db107cc1e457c303bc25d511febf6cb" integrity sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw== -"@types/randombytes@^2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@types/randombytes/-/randombytes-2.0.0.tgz#0087ff5e60ae68023b9bc4398b406fea7ad18304" - integrity sha512-bz8PhAVlwN72vqefzxa14DKNT8jK/mV66CSjwdVQM/k3Th3EPKfUtdMniwZgMedQTFuywAsfjnZsg+pEnltaMA== - dependencies: - "@types/node" "*" - "@types/readable-stream@^2.3.13": version "2.3.15" resolved "https://registry.yarnpkg.com/@types/readable-stream/-/readable-stream-2.3.15.tgz#3d79c9ceb1b6a57d5f6e6976f489b9b5384321ae" @@ -2574,13 +2381,6 @@ "@types/node" "*" safe-buffer "~5.1.1" -"@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== - dependencies: - "@types/node" "*" - "@types/secp256k1@^4.0.1": version "4.0.3" resolved "https://registry.yarnpkg.com/@types/secp256k1/-/secp256k1-4.0.3.tgz#1b8e55d8e00f08ee7220b4d59a6abe89c37a901c" @@ -2613,11 +2413,6 @@ resolved "https://registry.yarnpkg.com/@types/underscore/-/underscore-1.11.4.tgz#62e393f8bc4bd8a06154d110c7d042a93751def3" integrity sha512-uO4CD2ELOjw8tasUrAhvnn2W4A0ZECOvMjCivJr4gA9pGgjv+qxKWY9GLTMVEK8ej85BxQOocUyE7hImmSQYcg== -"@types/utf8@^2.1.6": - version "2.1.6" - resolved "https://registry.yarnpkg.com/@types/utf8/-/utf8-2.1.6.tgz#430cabb71a42d0a3613cce5621324fe4f5a25753" - integrity sha512-pRs2gYF5yoKYrgSaira0DJqVg2tFuF+Qjp838xS7K+mJyY2jJzjsrl6y17GbIa4uMRogMbxs+ghNCvKg6XyNrA== - "@types/web3@1.0.19": version "1.0.19" resolved "https://registry.yarnpkg.com/@types/web3/-/web3-1.0.19.tgz#46b85d91d398ded9ab7c85a5dd57cb33ac558924" @@ -3119,7 +2914,7 @@ balanced-match@^1.0.0: resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== -base-x@^3.0.2, base-x@^3.0.8: +base-x@^3.0.2: version "3.0.9" resolved "https://registry.yarnpkg.com/base-x/-/base-x-3.0.9.tgz#6349aaabb58526332de9f60995e548a53fe21320" integrity sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ== @@ -3228,15 +3023,6 @@ bip39@3.0.4: pbkdf2 "^3.0.9" randombytes "^2.0.1" -"bip39@https://github.com/bitcoinjs/bip39#d8ea080a18b40f301d4e2219a2991cd2417e83c2": - version "3.0.3" - resolved "https://github.com/bitcoinjs/bip39#d8ea080a18b40f301d4e2219a2991cd2417e83c2" - dependencies: - "@types/node" "11.11.6" - create-hash "^1.1.0" - pbkdf2 "^3.0.9" - randombytes "^2.0.1" - bitcoinjs-lib@^6.1.5: version "6.1.5" resolved "https://registry.yarnpkg.com/bitcoinjs-lib/-/bitcoinjs-lib-6.1.5.tgz#3b03509ae7ddd80a440f10fc38c4a97f0a028d8c" @@ -3274,18 +3060,6 @@ blakejs@^1.1.0: ts-node "^8.4.1" typescript "^3.6.4" -"bls12377js@https://github.com/celo-org/bls12377js#cb38a4cfb643c778619d79b20ca3e5283a2122a6": - version "0.1.0" - resolved "https://github.com/celo-org/bls12377js#cb38a4cfb643c778619d79b20ca3e5283a2122a6" - dependencies: - "@stablelib/blake2xs" "0.10.4" - "@types/node" "^12.11.7" - big-integer "^1.6.44" - chai "^4.2.0" - mocha "^6.2.2" - ts-node "^8.4.1" - typescript "^3.6.4" - bluebird@^3.5.0, bluebird@^3.5.2: version "3.7.2" resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" @@ -3564,11 +3338,6 @@ bytes@3.1.2: resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== -cacheable-lookup@^5.0.3: - version "5.0.4" - resolved "https://registry.yarnpkg.com/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz#5a6b865b2c44357be3d5ebc2a467b032719a7005" - integrity sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA== - cacheable-request@^6.0.0: version "6.1.0" resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-6.1.0.tgz#20ffb8bd162ba4be11e9567d823db651052ca912" @@ -3582,19 +3351,6 @@ cacheable-request@^6.0.0: normalize-url "^4.1.0" responselike "^1.0.2" -cacheable-request@^7.0.2: - 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" - http-cache-semantics "^4.0.0" - keyv "^4.0.0" - lowercase-keys "^2.0.0" - normalize-url "^6.0.1" - responselike "^2.0.0" - call-bind@^1.0.0, call-bind@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" @@ -3735,17 +3491,6 @@ ci-info@^2.0.0: resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== -cids@^0.7.1: - version "0.7.5" - resolved "https://registry.yarnpkg.com/cids/-/cids-0.7.5.tgz#60a08138a99bfb69b6be4ceb63bfef7a396b28b2" - integrity sha512-zT7mPeghoWAu+ppn8+BS1tQ5qGmbMfB4AregnQjA/qHY3GC1m1ptI9GkWNlgeu38r7CuRdXB47uY2XgAYt6QVA== - dependencies: - buffer "^5.5.0" - class-is "^1.1.0" - multibase "~0.6.0" - multicodec "^1.0.0" - multihashes "~0.4.15" - cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: version "1.0.4" resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" @@ -3754,11 +3499,6 @@ cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: inherits "^2.0.1" safe-buffer "^5.0.1" -class-is@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/class-is/-/class-is-1.1.0.tgz#9d3c0fba0440d211d843cec3dedfa48055005825" - integrity sha512-rhjH9AG1fvabIDoGRVH587413LPjTZgmDF9fOFCbFJQV4yuocX1mHxxvXI4g3cGwbVY9wAYIoKlg1N79frJKQw== - classic-level@^1.2.0: version "1.3.0" resolved "https://registry.yarnpkg.com/classic-level/-/classic-level-1.3.0.tgz#5e36680e01dc6b271775c093f2150844c5edd5c8" @@ -3909,15 +3649,6 @@ content-disposition@0.5.4: dependencies: safe-buffer "5.2.1" -content-hash@^2.5.2: - version "2.5.2" - resolved "https://registry.yarnpkg.com/content-hash/-/content-hash-2.5.2.tgz#bbc2655e7c21f14fd3bfc7b7d4bfe6e454c9e211" - integrity sha512-FvIQKy0S1JaWV10sMsA7TRx8bpU+pqPkhbsfvOJAdjRXvYxEckAwQWGwtRjiaJfh+E0DvcWUGqcdjwMGFjsSdw== - dependencies: - cids "^0.7.1" - multicodec "^0.5.5" - multihashes "^0.4.15" - content-type@~1.0.4, content-type@~1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.5.tgz#8b773162656d1d1086784c8f23a54ce6d73d7918" @@ -4028,13 +3759,6 @@ cross-fetch@3.0.4: node-fetch "2.6.0" whatwg-fetch "3.0.0" -cross-fetch@^3.0.6: - version "3.1.8" - resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.1.8.tgz#0327eba65fd68a7d119f8fb2bf9334a1a7956f82" - integrity sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg== - dependencies: - node-fetch "^2.6.12" - cross-spawn@^7.0.2: version "7.0.3" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" @@ -4155,13 +3879,6 @@ decompress-response@^3.2.0, decompress-response@^3.3.0: dependencies: mimic-response "^1.0.0" -decompress-response@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-6.0.0.tgz#ca387612ddb7e104bd16d85aab00d5ecf09c66fc" - integrity sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ== - dependencies: - mimic-response "^3.1.0" - decompress-tar@^4.0.0, decompress-tar@^4.1.0, decompress-tar@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/decompress-tar/-/decompress-tar-4.1.1.tgz#718cbd3fcb16209716e70a26b84e7ba4592e5af1" @@ -4244,11 +3961,6 @@ defer-to-connect@^1.0.1: resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-1.1.3.tgz#331ae050c08dcf789f8c83a7b81f0ed94f4ac591" integrity sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ== -defer-to-connect@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-2.0.1.tgz#8016bdb4143e4632b77a3449c6236277de520587" - integrity sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg== - deferred-leveldown@~5.3.0: version "5.3.0" resolved "https://registry.yarnpkg.com/deferred-leveldown/-/deferred-leveldown-5.3.0.tgz#27a997ad95408b61161aa69bd489b86c71b78058" @@ -4961,15 +4673,6 @@ eth-lib@0.2.7: elliptic "^6.4.0" xhr-request-promise "^0.1.2" -eth-lib@0.2.8, eth-lib@^0.2.8: - version "0.2.8" - resolved "https://registry.yarnpkg.com/eth-lib/-/eth-lib-0.2.8.tgz#b194058bef4b220ad12ea497431d6cb6aa0623c8" - integrity sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw== - dependencies: - bn.js "^4.11.6" - elliptic "^6.4.0" - xhr-request-promise "^0.1.2" - eth-lib@^0.1.26: version "0.1.29" resolved "https://registry.yarnpkg.com/eth-lib/-/eth-lib-0.1.29.tgz#0c11f5060d42da9f931eab6199084734f4dbd1d9" @@ -4982,6 +4685,15 @@ eth-lib@^0.1.26: ws "^3.0.0" xhr-request-promise "^0.1.2" +eth-lib@^0.2.8: + version "0.2.8" + resolved "https://registry.yarnpkg.com/eth-lib/-/eth-lib-0.2.8.tgz#b194058bef4b220ad12ea497431d6cb6aa0623c8" + integrity sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw== + dependencies: + bn.js "^4.11.6" + elliptic "^6.4.0" + xhr-request-promise "^0.1.2" + ethereum-bloom-filters@^1.0.6: version "1.0.10" resolved "https://registry.yarnpkg.com/ethereum-bloom-filters/-/ethereum-bloom-filters-1.0.10.tgz#3ca07f4aed698e75bd134584850260246a5fed8a" @@ -5262,11 +4974,6 @@ eventemitter3@3.1.2: resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-3.1.2.tgz#2d3d48f9c346698fce83a85d7d664e98535df6e7" integrity sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q== -eventemitter3@4.0.4: - version "4.0.4" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.4.tgz#b5463ace635a083d018bdc7c917b4c5f10a85384" - integrity sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ== - events@^3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" @@ -5855,7 +5562,7 @@ globby@^11.0.3: merge2 "^1.4.1" slash "^3.0.0" -google-libphonenumber@^3.2.15, google-libphonenumber@^3.2.4: +google-libphonenumber@^3.2.4: version "3.2.32" resolved "https://registry.yarnpkg.com/google-libphonenumber/-/google-libphonenumber-3.2.32.tgz#63c48a9c247b64a3bc2eec21bdf3fcfbf2e148c0" integrity sha512-mcNgakausov/B/eTgVeX8qc8IwWjRrupk9UzZZ/QDEvdh5fAjE7Aa211bkZpZj42zKkeS6MTT8avHUwjcLxuGQ== @@ -5884,23 +5591,6 @@ got@9.6.0: to-readable-stream "^1.0.0" url-parse-lax "^3.0.0" -got@^11.8.5: - 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" - "@types/cacheable-request" "^6.0.1" - "@types/responselike" "^1.0.0" - cacheable-lookup "^5.0.3" - cacheable-request "^7.0.2" - decompress-response "^6.0.0" - http2-wrapper "^1.0.0-beta.5.2" - lowercase-keys "^2.0.0" - p-cancelable "^2.0.0" - responselike "^2.0.0" - got@^7.1.0: version "7.1.0" resolved "https://registry.yarnpkg.com/got/-/got-7.1.0.tgz#05450fd84094e6bbea56f451a43a9c289166385a" @@ -6154,14 +5844,6 @@ http-signature@~1.2.0: jsprim "^1.2.2" sshpk "^1.7.0" -http2-wrapper@^1.0.0-beta.5.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/http2-wrapper/-/http2-wrapper-1.0.3.tgz#b8f55e0c1f25d4ebd08b3b0c2c079f9590800b3d" - integrity sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg== - dependencies: - quick-lru "^5.1.1" - resolve-alpn "^1.0.0" - https-proxy-agent@^5.0.0: version "5.0.1" resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz#c59ef224a04fe8b754f3db0063a25ea30d0005d6" @@ -6297,14 +5979,6 @@ ipaddr.js@1.9.1: resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== -is-arguments@^1.0.4: - version "1.1.1" - resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b" - integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA== - dependencies: - call-bind "^1.0.2" - has-tostringtag "^1.0.0" - is-array-buffer@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.1.tgz#deb1db4fcae48308d54ef2442706c0393997052a" @@ -6401,13 +6075,6 @@ is-function@^1.0.1: resolved "https://registry.yarnpkg.com/is-function/-/is-function-1.0.2.tgz#4f097f30abf6efadac9833b17ca5dc03f8144e08" integrity sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ== -is-generator-function@^1.0.7: - version "1.0.10" - resolved "https://registry.yarnpkg.com/is-generator-function/-/is-generator-function-1.0.10.tgz#f1558baf1ac17e0deea7c0415c438351ff2b3c72" - integrity sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A== - dependencies: - has-tostringtag "^1.0.0" - is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: version "4.0.3" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" @@ -6496,7 +6163,7 @@ is-symbol@^1.0.2, is-symbol@^1.0.3: dependencies: has-symbols "^1.0.2" -is-typed-array@^1.1.10, is-typed-array@^1.1.3, is-typed-array@^1.1.9: +is-typed-array@^1.1.10, is-typed-array@^1.1.9: version "1.1.10" resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.10.tgz#36a5b5cb4189b575d1a3e4b08536bfb485801e3f" integrity sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A== @@ -6615,11 +6282,6 @@ json-buffer@3.0.0: resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898" integrity sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ== -json-buffer@3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" - integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== - json-schema-traverse@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" @@ -6733,13 +6395,6 @@ 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" - klaw@^1.0.0: version "1.3.1" resolved "https://registry.yarnpkg.com/klaw/-/klaw-1.3.1.tgz#4088433b46b3b1ba259d78785d8e96f73ba02439" @@ -6941,7 +6596,7 @@ lodash.truncate@^4.4.2: resolved "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193" integrity sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM= -lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.21: +lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.15: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== @@ -7141,11 +6796,6 @@ mimic-response@^1.0.0, mimic-response@^1.0.1: resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== -mimic-response@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-3.1.0.tgz#2d1d59af9c1b129815accc2c46a022a5ce1fa3c9" - integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ== - min-document@^2.19.0: version "2.19.0" resolved "https://registry.yarnpkg.com/min-document/-/min-document-2.19.0.tgz#7bd282e3f5842ed295bb748cdd9f1ffa2c824685" @@ -7375,46 +7025,6 @@ ms@2.1.3, ms@^2.1.1: resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== -multibase@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/multibase/-/multibase-0.7.0.tgz#1adfc1c50abe05eefeb5091ac0c2728d6b84581b" - integrity sha512-TW8q03O0f6PNFTQDvh3xxH03c8CjGaaYrjkl9UQPG6rz53TQzzxJVCIWVjzcbN/Q5Y53Zd0IBQBMVktVgNx4Fg== - dependencies: - base-x "^3.0.8" - buffer "^5.5.0" - -multibase@~0.6.0: - version "0.6.1" - resolved "https://registry.yarnpkg.com/multibase/-/multibase-0.6.1.tgz#b76df6298536cc17b9f6a6db53ec88f85f8cc12b" - integrity sha512-pFfAwyTjbbQgNc3G7D48JkJxWtoJoBMaR4xQUOuB8RnCgRqaYmWNFeJTTvrJ2w51bjLq2zTby6Rqj9TQ9elSUw== - dependencies: - base-x "^3.0.8" - buffer "^5.5.0" - -multicodec@^0.5.5: - version "0.5.7" - resolved "https://registry.yarnpkg.com/multicodec/-/multicodec-0.5.7.tgz#1fb3f9dd866a10a55d226e194abba2dcc1ee9ffd" - integrity sha512-PscoRxm3f+88fAtELwUnZxGDkduE2HD9Q6GHUOywQLjOGT/HAdhjLDYNZ1e7VR0s0TP0EwZ16LNUTFpoBGivOA== - dependencies: - varint "^5.0.0" - -multicodec@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/multicodec/-/multicodec-1.0.4.tgz#46ac064657c40380c28367c90304d8ed175a714f" - integrity sha512-NDd7FeS3QamVtbgfvu5h7fd1IlbaC4EQ0/pgU4zqE2vdHCmBGsUa0TiM8/TdSeG6BMPC92OOCf8F1ocE/Wkrrg== - dependencies: - buffer "^5.6.0" - varint "^5.0.0" - -multihashes@^0.4.15, multihashes@~0.4.15: - version "0.4.21" - resolved "https://registry.yarnpkg.com/multihashes/-/multihashes-0.4.21.tgz#dc02d525579f334a7909ade8a122dabb58ccfcb5" - integrity sha512-uVSvmeCWf36pU2nB4/1kzYZjsXD9vofZKpgudqkceYY5g2aZZXJ5r9lxuzoRLl1OAp28XljXsEJ/X/85ZsKmKw== - dependencies: - buffer "^5.5.0" - multibase "^0.7.0" - varint "^5.0.0" - murmur-128@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/murmur-128/-/murmur-128-0.2.1.tgz#a9f6568781d2350ecb1bf80c14968cadbeaa4b4d" @@ -7487,13 +7097,6 @@ node-fetch@2.6.0: resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.0.tgz#e633456386d4aa55863f676a7ab0daa8fdecb0fd" integrity sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA== -node-fetch@^2.6.12: - version "2.6.12" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.12.tgz#02eb8e22074018e3d5a83016649d04df0e348fba" - integrity sha512-C/fGU2E8ToujUivIO0H+tpQ6HWo4eEmchoPIoXtxCrVghxdKq+QOHqEZW7tuP3KlV3bC8FRMO5nMCC7Zm1VP6g== - dependencies: - whatwg-url "^5.0.0" - node-fetch@^2.6.7: version "2.6.7" resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad" @@ -7541,11 +7144,6 @@ normalize-url@^4.1.0: resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.1.tgz#0dd90cf1288ee1d1313b87081c9a5932ee48518a" integrity sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA== -normalize-url@^6.0.1: - version "6.1.0" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-6.1.0.tgz#40d0885b535deffe3f3147bec877d05fe4c5668a" - integrity sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A== - number-is-nan@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" @@ -7662,13 +7260,6 @@ oboe@2.1.4: dependencies: http-https "^1.0.0" -oboe@2.1.5: - version "2.1.5" - resolved "https://registry.yarnpkg.com/oboe/-/oboe-2.1.5.tgz#5554284c543a2266d7a38f17e073821fbde393cd" - integrity sha512-zRFWiF+FoicxEs3jNI/WYUrVEgA7DeET/InK0XQuudGHRg8iIob3cNPrJTKaz4004uaA9Pbe+Dwa8iluhjLZWA== - dependencies: - http-https "^1.0.0" - on-finished@2.4.1: version "2.4.1" resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f" @@ -7734,11 +7325,6 @@ p-cancelable@^1.0.0: resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-1.1.0.tgz#d078d15a3af409220c886f1d9a0ca2e441ab26cc" integrity sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw== -p-cancelable@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-2.1.1.tgz#aab7fbd416582fa32a3db49859c122487c5ed2cf" - integrity sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg== - p-finally@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" @@ -8110,11 +7696,6 @@ queue-microtask@^1.2.2, queue-microtask@^1.2.3: resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== -quick-lru@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932" - integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA== - randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" @@ -8281,11 +7862,6 @@ require-main-filename@^2.0.0: resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== -resolve-alpn@^1.0.0: - version "1.2.1" - resolved "https://registry.yarnpkg.com/resolve-alpn/-/resolve-alpn-1.2.1.tgz#b7adbdac3546aaaec20b45e7d8265927072726f9" - integrity sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g== - resolve-from@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" @@ -8322,13 +7898,6 @@ responselike@^1.0.2: dependencies: lowercase-keys "^1.0.0" -responselike@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/responselike/-/responselike-2.0.1.tgz#9a0bc8fdc252f3fb1cca68b016591059ba1422bc" - integrity sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw== - dependencies: - lowercase-keys "^2.0.0" - restore-cursor@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" @@ -8453,7 +8022,7 @@ scrypt-js@2.0.4: resolved "https://registry.yarnpkg.com/scrypt-js/-/scrypt-js-2.0.4.tgz#32f8c5149f0797672e551c07e230f834b6af5f16" integrity sha512-4KsaGcPnuhtCZQCxFxN3GVYIhKFPTdLd8PLC552XwbMndtD0cjRFAhDuuydXQ0h08ZfPgzqe6EKHozpuH74iDw== -scrypt-js@3.0.1, scrypt-js@^3.0.0, scrypt-js@^3.0.1: +scrypt-js@3.0.1, scrypt-js@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/scrypt-js/-/scrypt-js-3.0.1.tgz#d314a57c2aef69d1ad98a138a21fe9eafa9ee312" integrity sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA== @@ -8998,23 +8567,6 @@ swarm-js@0.1.39: tar "^4.0.2" xhr-request-promise "^0.1.2" -swarm-js@^0.1.40: - version "0.1.42" - resolved "https://registry.yarnpkg.com/swarm-js/-/swarm-js-0.1.42.tgz#497995c62df6696f6e22372f457120e43e727979" - integrity sha512-BV7c/dVlA3R6ya1lMlSSNPLYrntt0LUq4YMgy3iwpCIc6rZnS5W2wUoctarZ5pXlpKtxDDf9hNziEkcfrxdhqQ== - dependencies: - bluebird "^3.5.0" - buffer "^5.0.5" - eth-lib "^0.1.26" - fs-extra "^4.0.2" - got "^11.8.5" - mime-types "^2.1.16" - mkdirp-promise "^5.0.1" - mock-fs "^4.1.0" - setimmediate "^1.0.5" - tar "^4.0.2" - xhr-request "^1.0.1" - table-layout@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/table-layout/-/table-layout-1.0.2.tgz#c4038a1853b0136d63365a734b6931cf4fad4a04" @@ -9093,13 +8645,6 @@ tiny-secp256k1@^1.1.3: elliptic "^6.4.0" nan "^2.13.2" -tiny-secp256k1@^2.2.3: - version "2.2.3" - resolved "https://registry.yarnpkg.com/tiny-secp256k1/-/tiny-secp256k1-2.2.3.tgz#fe1dde11a64fcee2091157d4b78bcb300feb9b65" - integrity sha512-SGcL07SxcPN2nGKHTCvRMkQLYPSoeFcvArUSCYtjVARiFAWU44cCIqYS0mYAU6nY7XfvwURuTIGo2Omt3ZQr0Q== - dependencies: - uint8array-tools "0.0.7" - tmp@0.0.33: version "0.0.33" resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" @@ -9349,11 +8894,6 @@ typical@^5.2.0: resolved "https://registry.yarnpkg.com/typical/-/typical-5.2.0.tgz#4daaac4f2b5315460804f0acf6cb69c52bb93066" integrity sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg== -uint8array-tools@0.0.7: - version "0.0.7" - resolved "https://registry.yarnpkg.com/uint8array-tools/-/uint8array-tools-0.0.7.tgz#a7a2bb5d8836eae2fade68c771454e6a438b390d" - integrity sha512-vrrNZJiusLWoFWBqz5Y5KMCgP9W9hnjZHzZiZRT8oNAkq3d5Z5Oe76jAvVVSRh4U8GGR90N2X1dWtrhvx6L8UQ== - ultron@~1.1.0: version "1.1.1" resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.1.1.tgz#9fe1536a10a664a65266a1e3ccf85fd36302bc9c" @@ -9377,11 +8917,6 @@ unbzip2-stream@^1.0.9: buffer "^5.2.1" through "^2.3.8" -underscore@1.12.1: - version "1.12.1" - resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.12.1.tgz#7bb8cc9b3d397e201cf8553336d262544ead829e" - integrity sha512-hEQt0+ZLDVUMhebKxL4x1BTtDY7bavVofhZ9KZ4aI26X9SRaE+Y3m83XUL1UP2jn8ynjndwCCpEHdUG+9pP1Tw== - underscore@1.9.1: version "1.9.1" resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.9.1.tgz#06dce34a0e68a7babc29b365b8e74b8925203961" @@ -9477,17 +9012,6 @@ util-deprecate@^1.0.1, util-deprecate@~1.0.1: resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== -util@^0.12.0: - version "0.12.5" - resolved "https://registry.yarnpkg.com/util/-/util-0.12.5.tgz#5f17a6059b73db61a875668781a1c2b136bd6fbc" - integrity sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA== - dependencies: - inherits "^2.0.3" - is-arguments "^1.0.4" - is-generator-function "^1.0.7" - is-typed-array "^1.1.3" - which-typed-array "^1.1.2" - utils-merge@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" @@ -9531,11 +9055,6 @@ validate-npm-package-license@^3.0.1: spdx-correct "^3.0.0" spdx-expression-parse "^3.0.0" -varint@^5.0.0: - version "5.0.2" - resolved "https://registry.yarnpkg.com/varint/-/varint-5.0.2.tgz#5b47f8a947eb668b848e034dcfa87d0ff8a7f7a4" - integrity sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow== - varuint-bitcoin@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/varuint-bitcoin/-/varuint-bitcoin-1.1.2.tgz#e76c138249d06138b480d4c5b40ef53693e24e92" @@ -9577,16 +9096,6 @@ web3-bzz@1.2.4: swarm-js "0.1.39" underscore "1.9.1" -web3-bzz@1.3.6: - version "1.3.6" - resolved "https://registry.yarnpkg.com/web3-bzz/-/web3-bzz-1.3.6.tgz#95f370aecc3ff6ad07f057e6c0c916ef09b04dde" - integrity sha512-ibHdx1wkseujFejrtY7ZyC0QxQ4ATXjzcNUpaLrvM6AEae8prUiyT/OloG9FWDgFD2CPLwzKwfSQezYQlANNlw== - dependencies: - "@types/node" "^12.12.6" - got "9.6.0" - swarm-js "^0.1.40" - underscore "1.12.1" - web3-core-helpers@1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/web3-core-helpers/-/web3-core-helpers-1.2.2.tgz#484974f4bd4a487217b85b0d7cfe841af0907619" @@ -9605,15 +9114,6 @@ web3-core-helpers@1.2.4: web3-eth-iban "1.2.4" web3-utils "1.2.4" -web3-core-helpers@1.3.6: - version "1.3.6" - resolved "https://registry.yarnpkg.com/web3-core-helpers/-/web3-core-helpers-1.3.6.tgz#c478246a9abe4e5456acf42657dac2f7c330be74" - integrity sha512-nhtjA2ZbkppjlxTSwG0Ttu6FcPkVu1rCN5IFAOVpF/L0SEt+jy+O5l90+cjDq0jAYvlBwUwnbh2mR9hwDEJCNA== - dependencies: - underscore "1.12.1" - web3-eth-iban "1.3.6" - web3-utils "1.3.6" - web3-core-method@1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/web3-core-method/-/web3-core-method-1.2.2.tgz#d4fe2bb1945b7152e5f08e4ea568b171132a1e56" @@ -9636,18 +9136,6 @@ web3-core-method@1.2.4: web3-core-subscriptions "1.2.4" web3-utils "1.2.4" -web3-core-method@1.3.6: - version "1.3.6" - resolved "https://registry.yarnpkg.com/web3-core-method/-/web3-core-method-1.3.6.tgz#4b0334edd94b03dfec729d113c69a4eb6ebc68ae" - integrity sha512-RyegqVGxn0cyYW5yzAwkPlsSEynkdPiegd7RxgB4ak1eKk2Cv1q2x4C7D2sZjeeCEF+q6fOkVmo2OZNqS2iQxg== - dependencies: - "@ethersproject/transactions" "^5.0.0-beta.135" - underscore "1.12.1" - web3-core-helpers "1.3.6" - web3-core-promievent "1.3.6" - web3-core-subscriptions "1.3.6" - web3-utils "1.3.6" - web3-core-promievent@1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/web3-core-promievent/-/web3-core-promievent-1.2.2.tgz#3b60e3f2a0c96db8a891c927899d29d39e66ab1c" @@ -9664,13 +9152,6 @@ web3-core-promievent@1.2.4: any-promise "1.3.0" eventemitter3 "3.1.2" -web3-core-promievent@1.3.6: - version "1.3.6" - resolved "https://registry.yarnpkg.com/web3-core-promievent/-/web3-core-promievent-1.3.6.tgz#6c27dc79de8f71b74f5d17acaf9aaf593d3cb0c9" - integrity sha512-Z+QzfyYDTXD5wJmZO5wwnRO8bAAHEItT1XNSPVb4J1CToV/I/SbF7CuF8Uzh2jns0Cm1109o666H7StFFvzVKw== - dependencies: - eventemitter3 "4.0.4" - web3-core-requestmanager@1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/web3-core-requestmanager/-/web3-core-requestmanager-1.2.2.tgz#667ba9ac724c9c76fa8965ae8a3c61f66e68d8d6" @@ -9693,18 +9174,6 @@ web3-core-requestmanager@1.2.4: web3-providers-ipc "1.2.4" web3-providers-ws "1.2.4" -web3-core-requestmanager@1.3.6: - version "1.3.6" - resolved "https://registry.yarnpkg.com/web3-core-requestmanager/-/web3-core-requestmanager-1.3.6.tgz#4fea269fe913fd4fca464b4f7c65cb94857b5b2a" - integrity sha512-2rIaeuqeo7QN1Eex7aXP0ZqeteJEPWXYFS/M3r3LXMiV8R4STQBKE+//dnHJXoo2ctzEB5cgd+7NaJM8S3gPyA== - dependencies: - underscore "1.12.1" - util "^0.12.0" - web3-core-helpers "1.3.6" - web3-providers-http "1.3.6" - web3-providers-ipc "1.3.6" - web3-providers-ws "1.3.6" - web3-core-subscriptions@1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/web3-core-subscriptions/-/web3-core-subscriptions-1.2.2.tgz#bf4ba23a653a003bdc3551649958cc0b080b068e" @@ -9723,15 +9192,6 @@ web3-core-subscriptions@1.2.4: underscore "1.9.1" web3-core-helpers "1.2.4" -web3-core-subscriptions@1.3.6: - version "1.3.6" - resolved "https://registry.yarnpkg.com/web3-core-subscriptions/-/web3-core-subscriptions-1.3.6.tgz#ee24e7974d1d72ff6c992c599deba4ef9b308415" - integrity sha512-wi9Z9X5X75OKvxAg42GGIf81ttbNR2TxzkAsp1g+nnp5K8mBwgZvXrIsDuj7Z7gx72Y45mWJADCWjk/2vqNu8g== - dependencies: - eventemitter3 "4.0.4" - underscore "1.12.1" - web3-core-helpers "1.3.6" - web3-core@1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/web3-core/-/web3-core-1.2.2.tgz#334b99c8222ef9cfd0339e27352f0b58ea789a2f" @@ -9757,19 +9217,6 @@ web3-core@1.2.4: web3-core-requestmanager "1.2.4" web3-utils "1.2.4" -web3-core@1.3.6: - version "1.3.6" - resolved "https://registry.yarnpkg.com/web3-core/-/web3-core-1.3.6.tgz#a6a761d1ff2f3ee462b8dab679229d2f8e267504" - integrity sha512-gkLDM4T1Sc0T+HZIwxrNrwPg0IfWI0oABSglP2X5ZbBAYVUeEATA0o92LWV8BeF+okvKXLK1Fek/p6axwM/h3Q== - dependencies: - "@types/bn.js" "^4.11.5" - "@types/node" "^12.12.6" - bignumber.js "^9.0.0" - web3-core-helpers "1.3.6" - web3-core-method "1.3.6" - web3-core-requestmanager "1.3.6" - web3-utils "1.3.6" - web3-eth-abi@1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/web3-eth-abi/-/web3-eth-abi-1.2.2.tgz#d5616d88a90020f894763423a9769f2da11fe37a" @@ -9788,15 +9235,6 @@ web3-eth-abi@1.2.4: underscore "1.9.1" web3-utils "1.2.4" -web3-eth-abi@1.3.6: - version "1.3.6" - resolved "https://registry.yarnpkg.com/web3-eth-abi/-/web3-eth-abi-1.3.6.tgz#4272ca48d817aa651bbf97b269f5ff10abc2b8a9" - integrity sha512-Or5cRnZu6WzgScpmbkvC6bfNxR26hqiKK4i8sMPFeTUABQcb/FU3pBj7huBLYbp9dH+P5W79D2MqwbWwjj9DoQ== - dependencies: - "@ethersproject/abi" "5.0.7" - underscore "1.12.1" - web3-utils "1.3.6" - web3-eth-accounts@1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/web3-eth-accounts/-/web3-eth-accounts-1.2.2.tgz#c187e14bff6baa698ac352220290222dbfd332e5" @@ -9833,23 +9271,6 @@ web3-eth-accounts@1.2.4: web3-core-method "1.2.4" web3-utils "1.2.4" -web3-eth-accounts@1.3.6: - version "1.3.6" - resolved "https://registry.yarnpkg.com/web3-eth-accounts/-/web3-eth-accounts-1.3.6.tgz#f9fcb50b28ee58090ab292a10d996155caa2b474" - integrity sha512-Ilr0hG6ONbCdSlVKffasCmNwftD5HsNpwyQASevocIQwHdTlvlwO0tb3oGYuajbKOaDzNTwXfz25bttAEoFCGA== - dependencies: - crypto-browserify "3.12.0" - eth-lib "0.2.8" - ethereumjs-common "^1.3.2" - ethereumjs-tx "^2.1.1" - scrypt-js "^3.0.1" - underscore "1.12.1" - uuid "3.3.2" - web3-core "1.3.6" - web3-core-helpers "1.3.6" - web3-core-method "1.3.6" - web3-utils "1.3.6" - web3-eth-contract@1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/web3-eth-contract/-/web3-eth-contract-1.2.2.tgz#84e92714918a29e1028ee7718f0712536e14e9a1" @@ -9880,21 +9301,6 @@ web3-eth-contract@1.2.4: web3-eth-abi "1.2.4" web3-utils "1.2.4" -web3-eth-contract@1.3.6: - version "1.3.6" - resolved "https://registry.yarnpkg.com/web3-eth-contract/-/web3-eth-contract-1.3.6.tgz#cccf4d32dc56917fb6923e778498a9ba2a5ba866" - integrity sha512-8gDaRrLF2HCg+YEZN1ov0zN35vmtPnGf3h1DxmJQK5Wm2lRMLomz9rsWsuvig3UJMHqZAQKD7tOl3ocJocQsmA== - dependencies: - "@types/bn.js" "^4.11.5" - underscore "1.12.1" - web3-core "1.3.6" - web3-core-helpers "1.3.6" - web3-core-method "1.3.6" - web3-core-promievent "1.3.6" - web3-core-subscriptions "1.3.6" - web3-eth-abi "1.3.6" - web3-utils "1.3.6" - web3-eth-ens@1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/web3-eth-ens/-/web3-eth-ens-1.2.2.tgz#0a4abed1d4cbdacbf5e1ab06e502d806d1192bc6" @@ -9923,21 +9329,6 @@ web3-eth-ens@1.2.4: web3-eth-contract "1.2.4" web3-utils "1.2.4" -web3-eth-ens@1.3.6: - version "1.3.6" - resolved "https://registry.yarnpkg.com/web3-eth-ens/-/web3-eth-ens-1.3.6.tgz#0d28c5d4ea7b4462ef6c077545a77956a6cdf175" - integrity sha512-n27HNj7lpSkRxTgSx+Zo7cmKAgyg2ElFilaFlUu/X2CNH23lXfcPm2bWssivH9z0ndhg0OyR4AYFZqPaqDHkJA== - dependencies: - content-hash "^2.5.2" - eth-ens-namehash "2.0.8" - underscore "1.12.1" - web3-core "1.3.6" - web3-core-helpers "1.3.6" - web3-core-promievent "1.3.6" - web3-eth-abi "1.3.6" - web3-eth-contract "1.3.6" - web3-utils "1.3.6" - web3-eth-iban@1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/web3-eth-iban/-/web3-eth-iban-1.2.2.tgz#76bec73bad214df7c4192388979a59fc98b96c5a" @@ -9954,14 +9345,6 @@ web3-eth-iban@1.2.4: bn.js "4.11.8" web3-utils "1.2.4" -web3-eth-iban@1.3.6: - version "1.3.6" - resolved "https://registry.yarnpkg.com/web3-eth-iban/-/web3-eth-iban-1.3.6.tgz#0d6ba21fe78f190af8919e9cd5453882457209e0" - integrity sha512-nfMQaaLA/zsg5W4Oy/EJQbs8rSs1vBAX6b/35xzjYoutXlpHMQadujDx2RerTKhSHqFXSJeQAfE+2f6mdhYkRQ== - dependencies: - bn.js "^4.11.9" - web3-utils "1.3.6" - web3-eth-personal@1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/web3-eth-personal/-/web3-eth-personal-1.2.2.tgz#eee1c86a8132fa16b5e34c6d421ca92e684f0be6" @@ -9986,18 +9369,6 @@ web3-eth-personal@1.2.4: web3-net "1.2.4" web3-utils "1.2.4" -web3-eth-personal@1.3.6: - version "1.3.6" - resolved "https://registry.yarnpkg.com/web3-eth-personal/-/web3-eth-personal-1.3.6.tgz#226137916754c498f0284f22c55924c87a2efcf0" - integrity sha512-pOHU0+/h1RFRYoh1ehYBehRbcKWP4OSzd4F7mDljhHngv6W8ewMHrAN8O1ol9uysN2MuCdRE19qkRg5eNgvzFQ== - dependencies: - "@types/node" "^12.12.6" - web3-core "1.3.6" - web3-core-helpers "1.3.6" - web3-core-method "1.3.6" - web3-net "1.3.6" - web3-utils "1.3.6" - web3-eth@1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/web3-eth/-/web3-eth-1.2.2.tgz#65a1564634a23b990efd1655bf94ad513904286c" @@ -10036,25 +9407,6 @@ web3-eth@1.2.4: web3-net "1.2.4" web3-utils "1.2.4" -web3-eth@1.3.6: - version "1.3.6" - resolved "https://registry.yarnpkg.com/web3-eth/-/web3-eth-1.3.6.tgz#2c650893d540a7a0eb1365dd5b2dca24ac919b7c" - integrity sha512-9+rnywRRpyX3C4hfsAQXPQh6vHh9XzQkgLxo3gyeXfbhbShUoq2gFVuy42vsRs//6JlsKdyZS7Z3hHPHz2wreA== - dependencies: - underscore "1.12.1" - web3-core "1.3.6" - web3-core-helpers "1.3.6" - web3-core-method "1.3.6" - web3-core-subscriptions "1.3.6" - web3-eth-abi "1.3.6" - web3-eth-accounts "1.3.6" - web3-eth-contract "1.3.6" - web3-eth-ens "1.3.6" - web3-eth-iban "1.3.6" - web3-eth-personal "1.3.6" - web3-net "1.3.6" - web3-utils "1.3.6" - web3-net@1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/web3-net/-/web3-net-1.2.2.tgz#5c3226ca72df7c591422440ce6f1203fd42ddad9" @@ -10073,15 +9425,6 @@ web3-net@1.2.4: web3-core-method "1.2.4" web3-utils "1.2.4" -web3-net@1.3.6: - version "1.3.6" - resolved "https://registry.yarnpkg.com/web3-net/-/web3-net-1.3.6.tgz#a56492e2227475e38db29394f8bac305a2446e41" - integrity sha512-KhzU3wMQY/YYjyMiQzbaLPt2kut88Ncx2iqjy3nw28vRux3gVX0WOCk9EL/KVJBiAA/fK7VklTXvgy9dZnnipw== - dependencies: - web3-core "1.3.6" - web3-core-method "1.3.6" - web3-utils "1.3.6" - web3-providers-http@1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/web3-providers-http/-/web3-providers-http-1.2.2.tgz#155e55c1d69f4c5cc0b411ede40dea3d06720956" @@ -10098,14 +9441,6 @@ web3-providers-http@1.2.4: web3-core-helpers "1.2.4" xhr2-cookies "1.1.0" -web3-providers-http@1.3.6: - version "1.3.6" - resolved "https://registry.yarnpkg.com/web3-providers-http/-/web3-providers-http-1.3.6.tgz#36e8724a7424d52827819d53fd75dbf31f5422c2" - integrity sha512-OQkT32O1A06dISIdazpGLveZcOXhEo5cEX6QyiSQkiPk/cjzDrXMw4SKZOGQbbS1+0Vjizm1Hrp7O8Vp2D1M5Q== - dependencies: - web3-core-helpers "1.3.6" - xhr2-cookies "1.1.0" - web3-providers-ipc@1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/web3-providers-ipc/-/web3-providers-ipc-1.2.2.tgz#c6d165a12bc68674b4cdd543ea18aec79cafc2e8" @@ -10124,15 +9459,6 @@ web3-providers-ipc@1.2.4: underscore "1.9.1" web3-core-helpers "1.2.4" -web3-providers-ipc@1.3.6: - version "1.3.6" - resolved "https://registry.yarnpkg.com/web3-providers-ipc/-/web3-providers-ipc-1.3.6.tgz#cef8d12c1ebb47adce5ebf597f553c623362cb4a" - integrity sha512-+TVsSd2sSVvVgHG4s6FXwwYPPT91boKKcRuEFXqEfAbUC5t52XOgmyc2LNiD9LzPhed65FbV4LqICpeYGUvSwA== - dependencies: - oboe "2.1.5" - underscore "1.12.1" - web3-core-helpers "1.3.6" - web3-providers-ws@1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/web3-providers-ws/-/web3-providers-ws-1.2.2.tgz#d2c05c68598cea5ad3fa6ef076c3bcb3ca300d29" @@ -10151,16 +9477,6 @@ web3-providers-ws@1.2.4: underscore "1.9.1" web3-core-helpers "1.2.4" -web3-providers-ws@1.3.6: - version "1.3.6" - resolved "https://registry.yarnpkg.com/web3-providers-ws/-/web3-providers-ws-1.3.6.tgz#e1df617bc89d66165abdf2191da0014c505bfaac" - integrity sha512-bk7MnJf5or0Re2zKyhR3L3CjGululLCHXx4vlbc/drnaTARUVvi559OI5uLytc/1k5HKUUyENAxLvetz2G1dnQ== - dependencies: - eventemitter3 "4.0.4" - underscore "1.12.1" - web3-core-helpers "1.3.6" - websocket "^1.0.32" - web3-shh@1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/web3-shh/-/web3-shh-1.2.2.tgz#44ed998f2a6ba0ec5cb9d455184a0f647826a49c" @@ -10181,16 +9497,6 @@ web3-shh@1.2.4: web3-core-subscriptions "1.2.4" web3-net "1.2.4" -web3-shh@1.3.6: - version "1.3.6" - resolved "https://registry.yarnpkg.com/web3-shh/-/web3-shh-1.3.6.tgz#4e3486c7eca5cbdb87f88910948223a5b7ea6c20" - integrity sha512-9zRo415O0iBslxBnmu9OzYjNErzLnzOsy+IOvSpIreLYbbAw0XkDWxv3SfcpKnTIWIACBR4AYMIxmmyi5iB3jw== - dependencies: - web3-core "1.3.6" - web3-core-method "1.3.6" - web3-core-subscriptions "1.3.6" - web3-net "1.3.6" - web3-utils@1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/web3-utils/-/web3-utils-1.2.2.tgz#b53a08c40d2c3f31d3c4a28e7d749405df99c8c0" @@ -10219,20 +9525,6 @@ web3-utils@1.2.4: underscore "1.9.1" utf8 "3.0.0" -web3-utils@1.3.6: - version "1.3.6" - resolved "https://registry.yarnpkg.com/web3-utils/-/web3-utils-1.3.6.tgz#390bc9fa3a7179746963cfaca55bb80ac4d8dc10" - integrity sha512-hHatFaQpkQgjGVER17gNx8u1qMyaXFZtM0y0XLGH1bzsjMPlkMPLRcYOrZ00rOPfTEuYFOdrpGOqZXVmGrMZRg== - dependencies: - bn.js "^4.11.9" - eth-lib "0.2.8" - ethereum-bloom-filters "^1.0.6" - ethjs-unit "0.1.6" - number-to-bn "1.7.0" - randombytes "^2.1.0" - underscore "1.12.1" - utf8 "3.0.0" - web3-utils@^1.0.0-beta.31: version "1.7.3" resolved "https://registry.yarnpkg.com/web3-utils/-/web3-utils-1.7.3.tgz#b214d05f124530d8694ad364509ac454d05f207c" @@ -10274,25 +9566,12 @@ web3@1.2.4: web3-shh "1.2.4" web3-utils "1.2.4" -web3@1.3.6: - version "1.3.6" - resolved "https://registry.yarnpkg.com/web3/-/web3-1.3.6.tgz#599425461c3f9a8cbbefa70616438995f4a064cc" - integrity sha512-jEpPhnL6GDteifdVh7ulzlPrtVQeA30V9vnki9liYlUvLV82ZM7BNOQJiuzlDePuE+jZETZSP/0G/JlUVt6pOA== - dependencies: - web3-bzz "1.3.6" - web3-core "1.3.6" - web3-eth "1.3.6" - web3-eth-personal "1.3.6" - web3-net "1.3.6" - web3-shh "1.3.6" - web3-utils "1.3.6" - webidl-conversions@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== -websocket@^1.0.29, websocket@^1.0.32: +websocket@^1.0.29: version "1.0.34" resolved "https://registry.yarnpkg.com/websocket/-/websocket-1.0.34.tgz#2bdc2602c08bf2c82253b730655c0ef7dcab3111" integrity sha512-PRDso2sGwF6kM75QykIesBijKSVceR6jL2G8NGYyq2XrItNC2P5/qL5XeR056GhA+Ly7JMFvJb9I312mJfmqnQ== @@ -10348,7 +9627,7 @@ which-module@^2.0.0: resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.1.tgz#776b1fe35d90aebe99e8ac15eb24093389a4a409" integrity sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ== -which-typed-array@^1.1.2, which-typed-array@^1.1.9: +which-typed-array@^1.1.9: version "1.1.9" resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.9.tgz#307cf898025848cf995e795e8423c7f337efbde6" integrity sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA== @@ -10473,7 +9752,7 @@ xhr-request-promise@^0.1.2: dependencies: xhr-request "^1.1.0" -xhr-request@^1.0.1, xhr-request@^1.1.0: +xhr-request@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/xhr-request/-/xhr-request-1.1.0.tgz#f4a7c1868b9f198723444d82dcae317643f2e2ed" integrity sha512-Y7qzEaR3FDtL3fP30k9wO/e+FBnBByZeybKOhASsGP30NIkRAAkKD/sCnLvgEfAIEC1rcmK7YG8f4oEnIrrWzA== From 7fb6402bc2b3d344183ad96649456ec2104e4f61 Mon Sep 17 00:00:00 2001 From: Tomasz Slabon Date: Tue, 7 Nov 2023 16:19:36 +0100 Subject: [PATCH 06/22] Replaced string with Hex for hexstring test data --- system-tests/test/deposit-redemption.test.ts | 48 +++++--------------- system-tests/test/minting-unminting.test.ts | 23 +++------- system-tests/test/utils/deposit.ts | 10 ++-- 3 files changed, 24 insertions(+), 57 deletions(-) diff --git a/system-tests/test/deposit-redemption.test.ts b/system-tests/test/deposit-redemption.test.ts index 2ebdddf75..01f134670 100644 --- a/system-tests/test/deposit-redemption.test.ts +++ b/system-tests/test/deposit-redemption.test.ts @@ -177,9 +177,7 @@ describe("System Test - Deposit and redemption", () => { const depositorBitcoinAddress = BitcoinAddressConverter.publicKeyToAddress( - Hex.from( - systemTestsContext.depositorBitcoinKeyPair.publicKey.compressed - ), + systemTestsContext.depositorBitcoinKeyPair.publicKey.compressed, BitcoinNetwork.Testnet ) @@ -339,15 +337,11 @@ describe("System Test - Deposit and redemption", () => { // Request redemption to depositor's address. redeemerOutputScript = `0014${BitcoinHashUtils.computeHash160( - Hex.from( - systemTestsContext.depositorBitcoinKeyPair.publicKey.compressed - ) + systemTestsContext.depositorBitcoinKeyPair.publicKey.compressed )}` await depositorBridgeHandle.requestRedemption( - Hex.from( - systemTestsContext.walletBitcoinKeyPair.publicKey.compressed - ), + systemTestsContext.walletBitcoinKeyPair.publicKey.compressed, sweepUtxo, Hex.from(redeemerOutputScript), requestedAmount @@ -358,9 +352,7 @@ describe("System Test - Deposit and redemption", () => { ) redemptionRequest = await maintainerBridgeHandle.pendingRedemptions( - Hex.from( - systemTestsContext.walletBitcoinKeyPair.publicKey.compressed - ), + systemTestsContext.walletBitcoinKeyPair.publicKey.compressed, Hex.from(redeemerOutputScript) ) }) @@ -416,9 +408,7 @@ describe("System Test - Deposit and redemption", () => { await maintenanceService.spv.submitRedemptionProof( redemptionTxHash, sweepUtxo, - Hex.from( - systemTestsContext.walletBitcoinKeyPair.publicKey.compressed - ) + systemTestsContext.walletBitcoinKeyPair.publicKey.compressed ) console.log("Redemption proved on the bridge") @@ -435,9 +425,7 @@ describe("System Test - Deposit and redemption", () => { it("should close the redemption request on the bridge", async () => { await expect( maintainerBridgeHandle.pendingRedemptions( - Hex.from( - systemTestsContext.walletBitcoinKeyPair.publicKey.compressed - ), + systemTestsContext.walletBitcoinKeyPair.publicKey.compressed, redemptionRequest.redeemerOutputScript ) ).to.be.rejectedWith( @@ -470,9 +458,7 @@ describe("System Test - Deposit and redemption", () => { const depositorBitcoinAddress = BitcoinAddressConverter.publicKeyToAddress( - Hex.from( - systemTestsContext.depositorBitcoinKeyPair.publicKey.compressed - ), + systemTestsContext.depositorBitcoinKeyPair.publicKey.compressed, BitcoinNetwork.Testnet ) @@ -648,15 +634,11 @@ describe("System Test - Deposit and redemption", () => { // Request redemption to depositor's address. redeemerOutputScript = `0014${BitcoinHashUtils.computeHash160( - Hex.from( - systemTestsContext.depositorBitcoinKeyPair.publicKey.compressed - ) + systemTestsContext.depositorBitcoinKeyPair.publicKey.compressed )}` await depositorBridgeHandle.requestRedemption( - Hex.from( - systemTestsContext.walletBitcoinKeyPair.publicKey.compressed - ), + systemTestsContext.walletBitcoinKeyPair.publicKey.compressed, sweepUtxo, Hex.from(redeemerOutputScript), tbtcBalanceOfDepositor @@ -667,9 +649,7 @@ describe("System Test - Deposit and redemption", () => { ) redemptionRequest = await maintainerBridgeHandle.pendingRedemptions( - Hex.from( - systemTestsContext.walletBitcoinKeyPair.publicKey.compressed - ), + systemTestsContext.walletBitcoinKeyPair.publicKey.compressed, Hex.from(redeemerOutputScript) ) }) @@ -731,9 +711,7 @@ describe("System Test - Deposit and redemption", () => { await maintenanceService.spv.submitRedemptionProof( redemptionTxHash, sweepUtxo, - Hex.from( - systemTestsContext.walletBitcoinKeyPair.publicKey.compressed - ) + systemTestsContext.walletBitcoinKeyPair.publicKey.compressed ) console.log("Redemption proved on the bridge") @@ -750,9 +728,7 @@ describe("System Test - Deposit and redemption", () => { it("should close the redemption request on the bridge", async () => { await expect( maintainerBridgeHandle.pendingRedemptions( - Hex.from( - systemTestsContext.walletBitcoinKeyPair.publicKey.compressed - ), + systemTestsContext.walletBitcoinKeyPair.publicKey.compressed, redemptionRequest.redeemerOutputScript ) ).to.be.rejectedWith( diff --git a/system-tests/test/minting-unminting.test.ts b/system-tests/test/minting-unminting.test.ts index 7bc00d51a..00434be8d 100644 --- a/system-tests/test/minting-unminting.test.ts +++ b/system-tests/test/minting-unminting.test.ts @@ -188,9 +188,7 @@ describe("System Test - Minting and unminting", () => { const depositorBitcoinAddress = BitcoinAddressConverter.publicKeyToAddress( - Hex.from( - systemTestsContext.depositorBitcoinKeyPair.publicKey.compressed - ), + systemTestsContext.depositorBitcoinKeyPair.publicKey.compressed, BitcoinNetwork.Testnet ) const depositorUtxos = @@ -378,9 +376,7 @@ describe("System Test - Minting and unminting", () => { // Request redemption to depositor's address. redeemerOutputScript = `0014${BitcoinHashUtils.computeHash160( - Hex.from( - systemTestsContext.depositorBitcoinKeyPair.publicKey.compressed - ) + systemTestsContext.depositorBitcoinKeyPair.publicKey.compressed )}` // Convert the redeemer output script to a byte buffer. @@ -415,9 +411,7 @@ describe("System Test - Minting and unminting", () => { ) redemptionRequest = await maintainerBridgeHandle.pendingRedemptions( - Hex.from( - systemTestsContext.walletBitcoinKeyPair.publicKey.compressed - ), + systemTestsContext.walletBitcoinKeyPair.publicKey.compressed, Hex.from(redeemerOutputScript) ) }) @@ -479,10 +473,7 @@ describe("System Test - Minting and unminting", () => { await maintenanceService.spv.submitRedemptionProof( redemptionTxHash, sweepUtxo, - Hex.from( - systemTestsContext.walletBitcoinKeyPair.publicKey - .compressed - ) + systemTestsContext.walletBitcoinKeyPair.publicKey.compressed ) console.log("Redemption proved on the bridge") @@ -499,10 +490,8 @@ describe("System Test - Minting and unminting", () => { it("should close the redemption request on the bridge", async () => { await expect( maintainerBridgeHandle.pendingRedemptions( - Hex.from( - systemTestsContext.walletBitcoinKeyPair.publicKey - .compressed - ), + systemTestsContext.walletBitcoinKeyPair.publicKey + .compressed, redemptionRequest.redeemerOutputScript ) ).to.be.rejectedWith( diff --git a/system-tests/test/utils/deposit.ts b/system-tests/test/utils/deposit.ts index 5510e9524..0d2f78a88 100644 --- a/system-tests/test/utils/deposit.ts +++ b/system-tests/test/utils/deposit.ts @@ -4,6 +4,7 @@ import { BitcoinLocktimeUtils, BitcoinHashUtils, EthereumAddress, + Hex, } from "@keep-network/tbtc-v2.ts" import type { DepositReceipt } from "@keep-network/tbtc-v2.ts" @@ -12,8 +13,9 @@ import type { DepositReceipt } from "@keep-network/tbtc-v2.ts" * Default refund public key used for deposits. Their corresponding private key: * 7c246a5d2fcf476fd6f805cb8174b1cf441b13ea414e5560ca2bdc963aeb7d0c */ -export const DEFAULT_REFUND_PUBLIC_KEY = +export const DEFAULT_REFUND_PUBLIC_KEY = Hex.from( "03989d253b17a6a0f41838b84ff0d20e8898f9d7b1a98f2564da4cc29dcf8581d9" +) /** * Creates a deposit receipt based on the given parameters. @@ -26,8 +28,8 @@ export const DEFAULT_REFUND_PUBLIC_KEY = */ export function createDepositReceipt( depositorAddress: string, - walletPublicKey: string, - refundPublicKey?: string + walletPublicKey: Hex, + refundPublicKey?: Hex ): DepositReceipt { const walletPublicKeyHash = BitcoinHashUtils.computeHash160(walletPublicKey) @@ -36,7 +38,7 @@ export function createDepositReceipt( resolvedRefundPublicKey ) - const blindingFactor = crypto.randomBytes(8).toString("hex") + const blindingFactor = Hex.from(crypto.randomBytes(8).toString("hex")) const refundLocktime = BitcoinLocktimeUtils.calculateLocktime( Math.floor(Date.now() / 1000), From ace3cfd7d2cc5f5d87799e917b93f60d7f063664 Mon Sep 17 00:00:00 2001 From: Tomasz Slabon Date: Wed, 8 Nov 2023 10:50:36 +0100 Subject: [PATCH 07/22] Used Hex to represent redeemer output script --- system-tests/test/deposit-redemption.test.ts | 32 +++++++++++--------- system-tests/test/minting-unminting.test.ts | 19 ++++++------ 2 files changed, 27 insertions(+), 24 deletions(-) diff --git a/system-tests/test/deposit-redemption.test.ts b/system-tests/test/deposit-redemption.test.ts index 01f134670..9f5c9efef 100644 --- a/system-tests/test/deposit-redemption.test.ts +++ b/system-tests/test/deposit-redemption.test.ts @@ -321,7 +321,7 @@ describe("System Test - Deposit and redemption", () => { context("when redemption is requested", () => { let requestedAmount: BigNumber - let redeemerOutputScript: string + let redeemerOutputScript: Hex let redemptionRequest: RedemptionRequest before("request the redemption", async () => { @@ -336,14 +336,16 @@ describe("System Test - Deposit and redemption", () => { .approveBalance(bridgeAddress, requestedAmount) // Request redemption to depositor's address. - redeemerOutputScript = `0014${BitcoinHashUtils.computeHash160( - systemTestsContext.depositorBitcoinKeyPair.publicKey.compressed - )}` + redeemerOutputScript = Hex.from( + `0014${BitcoinHashUtils.computeHash160( + systemTestsContext.depositorBitcoinKeyPair.publicKey.compressed + )}` + ) await depositorBridgeHandle.requestRedemption( systemTestsContext.walletBitcoinKeyPair.publicKey.compressed, sweepUtxo, - Hex.from(redeemerOutputScript), + redeemerOutputScript, requestedAmount ) @@ -353,7 +355,7 @@ describe("System Test - Deposit and redemption", () => { redemptionRequest = await maintainerBridgeHandle.pendingRedemptions( systemTestsContext.walletBitcoinKeyPair.publicKey.compressed, - Hex.from(redeemerOutputScript) + redeemerOutputScript ) }) @@ -370,7 +372,7 @@ describe("System Test - Deposit and redemption", () => { it("should register the redemption request on the bridge", async () => { expect(redemptionRequest.requestedAt).to.be.greaterThan(0) expect(redemptionRequest.requestedAmount).to.be.equal(requestedAmount) - expect(redemptionRequest.redeemerOutputScript).to.be.equal( + expect(redemptionRequest.redeemerOutputScript).to.be.deep.equal( redeemerOutputScript ) }) @@ -620,7 +622,7 @@ describe("System Test - Deposit and redemption", () => { context("when redemption is requested", () => { let requestedAmount: BigNumber - let redeemerOutputScript: string + let redeemerOutputScript: Hex let redemptionRequest: RedemptionRequest before("request the redemption", async () => { @@ -633,14 +635,16 @@ describe("System Test - Deposit and redemption", () => { requestedAmount = tbtcBalanceOfDepositor.div(SATOSHI_MULTIPLIER) // Request redemption to depositor's address. - redeemerOutputScript = `0014${BitcoinHashUtils.computeHash160( - systemTestsContext.depositorBitcoinKeyPair.publicKey.compressed - )}` + redeemerOutputScript = Hex.from( + `0014${BitcoinHashUtils.computeHash160( + systemTestsContext.depositorBitcoinKeyPair.publicKey.compressed + )}` + ) await depositorBridgeHandle.requestRedemption( systemTestsContext.walletBitcoinKeyPair.publicKey.compressed, sweepUtxo, - Hex.from(redeemerOutputScript), + redeemerOutputScript, tbtcBalanceOfDepositor ) @@ -650,7 +654,7 @@ describe("System Test - Deposit and redemption", () => { redemptionRequest = await maintainerBridgeHandle.pendingRedemptions( systemTestsContext.walletBitcoinKeyPair.publicKey.compressed, - Hex.from(redeemerOutputScript) + redeemerOutputScript ) }) @@ -673,7 +677,7 @@ describe("System Test - Deposit and redemption", () => { it("should register the redemption request on the bridge", async () => { expect(redemptionRequest.requestedAt).to.be.greaterThan(0) expect(redemptionRequest.requestedAmount).to.be.equal(requestedAmount) - expect(redemptionRequest.redeemerOutputScript).to.be.equal( + expect(redemptionRequest.redeemerOutputScript).to.be.deep.equal( redeemerOutputScript ) }) diff --git a/system-tests/test/minting-unminting.test.ts b/system-tests/test/minting-unminting.test.ts index 00434be8d..8d45ee147 100644 --- a/system-tests/test/minting-unminting.test.ts +++ b/system-tests/test/minting-unminting.test.ts @@ -365,7 +365,7 @@ describe("System Test - Minting and unminting", () => { context("when unminting is done", () => { let unmintedAmount: BigNumber - let redeemerOutputScript: string + let redeemerOutputScript: Hex let redemptionRequest: RedemptionRequest before("do unminting through TBTC approve-and-call", async () => { @@ -375,15 +375,14 @@ describe("System Test - Minting and unminting", () => { ) // Request redemption to depositor's address. - redeemerOutputScript = `0014${BitcoinHashUtils.computeHash160( - systemTestsContext.depositorBitcoinKeyPair.publicKey.compressed - )}` + redeemerOutputScript = Hex.from( + `0014${BitcoinHashUtils.computeHash160( + systemTestsContext.depositorBitcoinKeyPair.publicKey.compressed + )}` + ) // Convert the redeemer output script to a byte buffer. - const rawRedeemerOutputScript = Buffer.from( - redeemerOutputScript, - "hex" - ) + const rawRedeemerOutputScript = redeemerOutputScript.toBuffer() const redemptionData = ethersUtils.defaultAbiCoder.encode( ["address", "bytes20", "bytes32", "uint32", "uint64", "bytes"], @@ -412,7 +411,7 @@ describe("System Test - Minting and unminting", () => { redemptionRequest = await maintainerBridgeHandle.pendingRedemptions( systemTestsContext.walletBitcoinKeyPair.publicKey.compressed, - Hex.from(redeemerOutputScript) + redeemerOutputScript ) }) @@ -434,7 +433,7 @@ describe("System Test - Minting and unminting", () => { expect(redemptionRequest.requestedAmount).to.be.equal( unmintedAmount.div(satoshiMultiplier) ) - expect(redemptionRequest.redeemerOutputScript).to.be.equal( + expect(redemptionRequest.redeemerOutputScript).to.be.deep.equal( redeemerOutputScript ) }) From 198cbed0f5be7ad261289e7d2a82b498566e6824 Mon Sep 17 00:00:00 2001 From: Tomasz Slabon Date: Wed, 8 Nov 2023 11:08:14 +0100 Subject: [PATCH 08/22] Improved printing deposit receipt --- system-tests/test/deposit-redemption.test.ts | 12 +++--------- system-tests/test/minting-unminting.test.ts | 7 ++----- system-tests/test/utils/deposit.ts | 16 ++++++++++++++++ 3 files changed, 21 insertions(+), 14 deletions(-) diff --git a/system-tests/test/deposit-redemption.test.ts b/system-tests/test/deposit-redemption.test.ts index 9f5c9efef..3c5fff97a 100644 --- a/system-tests/test/deposit-redemption.test.ts +++ b/system-tests/test/deposit-redemption.test.ts @@ -21,7 +21,7 @@ import chai, { expect } from "chai" import chaiAsPromised from "chai-as-promised" import { setupSystemTestsContext } from "./utils/context" -import { createDepositReceipt } from "./utils/deposit" +import { createDepositReceipt, printDepositReceipt } from "./utils/deposit" import { fakeRelayDifficulty, waitTransactionConfirmed } from "./utils/bitcoin" import type { @@ -170,10 +170,7 @@ describe("System Test - Deposit and redemption", () => { systemTestsContext.walletBitcoinKeyPair.publicKey.compressed ) - console.log(` - Generated deposit data: - ${JSON.stringify(depositReceipt)} - `) + printDepositReceipt(depositReceipt) const depositorBitcoinAddress = BitcoinAddressConverter.publicKeyToAddress( @@ -453,10 +450,7 @@ describe("System Test - Deposit and redemption", () => { systemTestsContext.walletBitcoinKeyPair.publicKey.compressed ) - console.log(` - Generated deposit data: - ${JSON.stringify(depositReceipt)} - `) + printDepositReceipt(depositReceipt) const depositorBitcoinAddress = BitcoinAddressConverter.publicKeyToAddress( diff --git a/system-tests/test/minting-unminting.test.ts b/system-tests/test/minting-unminting.test.ts index 8d45ee147..b62b767d6 100644 --- a/system-tests/test/minting-unminting.test.ts +++ b/system-tests/test/minting-unminting.test.ts @@ -22,7 +22,7 @@ import chaiAsPromised from "chai-as-promised" import { setupSystemTestsContext } from "./utils/context" import { fakeRelayDifficulty, waitTransactionConfirmed } from "./utils/bitcoin" -import { createDepositReceipt } from "./utils/deposit" +import { createDepositReceipt, printDepositReceipt } from "./utils/deposit" import type { SystemTestsContext } from "./utils/context" import type { @@ -181,10 +181,7 @@ describe("System Test - Minting and unminting", () => { systemTestsContext.walletBitcoinKeyPair.publicKey.compressed ) - console.log(` - Generated deposit data: - ${JSON.stringify(depositReceipt)} - `) + printDepositReceipt(depositReceipt) const depositorBitcoinAddress = BitcoinAddressConverter.publicKeyToAddress( diff --git a/system-tests/test/utils/deposit.ts b/system-tests/test/utils/deposit.ts index 0d2f78a88..10a8fac15 100644 --- a/system-tests/test/utils/deposit.ts +++ b/system-tests/test/utils/deposit.ts @@ -52,3 +52,19 @@ export function createDepositReceipt( refundLocktime, } } + +/** + * Prints a formatted deposit receipt to the console. + * @param receipt Deposit receipt object containing information to be printed. + * @returns {void} This function does not return any value. + */ +export function printDepositReceipt(receipt: DepositReceipt): void { + console.log(` + Deposit receipt: + - depositor: ${receipt.depositor.identifierHex} + - walletPublicKeyHash: ${receipt.walletPublicKeyHash} + - refundPublicKeyHash: ${receipt.refundPublicKeyHash} + - blindingFactor: ${receipt.blindingFactor} + - refundLocktime: ${receipt.refundLocktime} + `) +} From c0e9c6a6d847226dd4998962b2f25a112ba08113 Mon Sep 17 00:00:00 2001 From: Tomasz Slabon Date: Wed, 8 Nov 2023 15:44:04 +0100 Subject: [PATCH 09/22] Modified checks for deleted redemption requests --- system-tests/test/deposit-redemption.test.ts | 22 +++++++------------- system-tests/test/minting-unminting.test.ts | 12 ++++------- 2 files changed, 12 insertions(+), 22 deletions(-) diff --git a/system-tests/test/deposit-redemption.test.ts b/system-tests/test/deposit-redemption.test.ts index 3c5fff97a..3ed7db092 100644 --- a/system-tests/test/deposit-redemption.test.ts +++ b/system-tests/test/deposit-redemption.test.ts @@ -422,14 +422,11 @@ describe("System Test - Deposit and redemption", () => { }) it("should close the redemption request on the bridge", async () => { - await expect( - maintainerBridgeHandle.pendingRedemptions( - systemTestsContext.walletBitcoinKeyPair.publicKey.compressed, - redemptionRequest.redeemerOutputScript - ) - ).to.be.rejectedWith( - "Provided redeemer output script and wallet public key do not identify a redemption request" + const request = await maintainerBridgeHandle.pendingRedemptions( + systemTestsContext.walletBitcoinKeyPair.publicKey.compressed, + redemptionRequest.redeemerOutputScript ) + expect(request.requestedAt).to.be.equal(0) }) it("should decrease Bridge's balance in the bank", async () => { @@ -724,14 +721,11 @@ describe("System Test - Deposit and redemption", () => { }) it("should close the redemption request on the bridge", async () => { - await expect( - maintainerBridgeHandle.pendingRedemptions( - systemTestsContext.walletBitcoinKeyPair.publicKey.compressed, - redemptionRequest.redeemerOutputScript - ) - ).to.be.rejectedWith( - "Provided redeemer output script and wallet public key do not identify a redemption request" + const request = await maintainerBridgeHandle.pendingRedemptions( + systemTestsContext.walletBitcoinKeyPair.publicKey.compressed, + redemptionRequest.redeemerOutputScript ) + expect(request.requestedAt).to.be.equal(0) }) it("should decrease Bridge's balance in the bank", async () => { diff --git a/system-tests/test/minting-unminting.test.ts b/system-tests/test/minting-unminting.test.ts index b62b767d6..10dea17f8 100644 --- a/system-tests/test/minting-unminting.test.ts +++ b/system-tests/test/minting-unminting.test.ts @@ -484,15 +484,11 @@ describe("System Test - Minting and unminting", () => { }) it("should close the redemption request on the bridge", async () => { - await expect( - maintainerBridgeHandle.pendingRedemptions( - systemTestsContext.walletBitcoinKeyPair.publicKey - .compressed, - redemptionRequest.redeemerOutputScript - ) - ).to.be.rejectedWith( - "Provided redeemer output script and wallet public key do not identify a redemption request" + const request = await maintainerBridgeHandle.pendingRedemptions( + systemTestsContext.walletBitcoinKeyPair.publicKey.compressed, + redemptionRequest.redeemerOutputScript ) + expect(request.requestedAt).to.be.equal(0) }) it("should decrease Bridge's balance in the bank", async () => { From 9fc585ba5620c38794ec347126ea2b05c2b5cbdf Mon Sep 17 00:00:00 2001 From: Tomasz Slabon Date: Thu, 9 Nov 2023 11:18:23 +0100 Subject: [PATCH 10/22] Function call fixes --- system-tests/test/deposit-redemption.test.ts | 8 ++++---- system-tests/test/minting-unminting.test.ts | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/system-tests/test/deposit-redemption.test.ts b/system-tests/test/deposit-redemption.test.ts index 3ed7db092..fafeebd1e 100644 --- a/system-tests/test/deposit-redemption.test.ts +++ b/system-tests/test/deposit-redemption.test.ts @@ -210,7 +210,7 @@ describe("System Test - Deposit and redemption", () => { const depositRawTxVectors = extractBitcoinRawTxVectors( rawDepositTransaction ) - depositorBridgeHandle.revealDeposit( + await depositorBridgeHandle.revealDeposit( depositRawTxVectors, depositUtxo.outputIndex, depositReceipt @@ -487,7 +487,7 @@ describe("System Test - Deposit and redemption", () => { const depositRawTxVectors = extractBitcoinRawTxVectors( rawDepositTransaction ) - depositorBridgeHandle.revealDeposit( + await depositorBridgeHandle.revealDeposit( depositRawTxVectors, depositUtxo.outputIndex, depositReceipt, @@ -632,11 +632,11 @@ describe("System Test - Deposit and redemption", () => { )}` ) - await depositorBridgeHandle.requestRedemption( + await tbtcTokenHandle.requestRedemption( systemTestsContext.walletBitcoinKeyPair.publicKey.compressed, sweepUtxo, redeemerOutputScript, - tbtcBalanceOfDepositor + tbtcBalanceOfDepositor, ) console.log( diff --git a/system-tests/test/minting-unminting.test.ts b/system-tests/test/minting-unminting.test.ts index 10dea17f8..543384b9b 100644 --- a/system-tests/test/minting-unminting.test.ts +++ b/system-tests/test/minting-unminting.test.ts @@ -226,7 +226,7 @@ describe("System Test - Minting and unminting", () => { const depositRawTxVectors = extractBitcoinRawTxVectors( rawDepositTransaction ) - depositorBridgeHandle.revealDeposit( + await depositorBridgeHandle.revealDeposit( depositRawTxVectors, depositUtxo.outputIndex, depositReceipt, From 45a6f5a20991db2e63e202215f86c9492a0a7869 Mon Sep 17 00:00:00 2001 From: Tomasz Slabon Date: Thu, 9 Nov 2023 14:45:50 +0100 Subject: [PATCH 11/22] Updated scenario descriptions --- system-tests/test/deposit-redemption.test.ts | 59 +++++++++++++------- 1 file changed, 39 insertions(+), 20 deletions(-) diff --git a/system-tests/test/deposit-redemption.test.ts b/system-tests/test/deposit-redemption.test.ts index fafeebd1e..a50903c8c 100644 --- a/system-tests/test/deposit-redemption.test.ts +++ b/system-tests/test/deposit-redemption.test.ts @@ -34,25 +34,6 @@ import type { SystemTestsContext } from "./utils/context" chai.use(chaiAsPromised) -/** - * This system test scenario performs a single deposit and redemption. - * - * The scenario consists of the following steps: - * 1. The depositor broadcasts the deposit transaction on BTC chain and reveals - * it to the bridge. - * 2. The wallet broadcasts the sweep transaction of the given deposit on BTC - * chain and submits the sweep proof to the bridge. - * 3. The depositor (redeemer) requests the redemption of its entire bank - * balance. - * 4. The wallet broadcasts the redemption transaction handling the given - * request and submits the redemption proof to the bridge. - * - * Following prerequisites must be fulfilled to make a successful pass: - * - The depositor's BTC balance must allow to perform the deposit - * - tBTC v2 contracts must be deployed on used Ethereum network - * - A fresh live wallet (with no main UTXO yet) must be registered in - * the bridge - */ describe("System Test - Deposit and redemption", () => { let systemTestsContext: SystemTestsContext let electrumClient: ElectrumClient @@ -164,6 +145,25 @@ describe("System Test - Deposit and redemption", () => { }) context("when deposit is made and revealed without a vault", () => { + /** + * This system test scenario performs a single deposit and redemption. + * + * The scenario consists of the following steps: + * 1. The depositor broadcasts the deposit transaction on BTC chain and + * reveals it to the bridge without providing a vault address. + * 2. The wallet broadcasts the sweep transaction of the given deposit on BTC + * chain and submits the sweep proof to the bridge. + * 3. The depositor (redeemer) requests the redemption of its entire bank + * balance. + * 4. The wallet broadcasts the redemption transaction handling the given + * request and submits the redemption proof to the bridge. + * + * Following prerequisites must be fulfilled to make a successful pass: + * - The depositor's BTC balance must allow to perform the deposit + * - tBTC v2 contracts must be deployed on used Ethereum network + * - A fresh live wallet (with no main UTXO yet) must be registered in + * the bridge + */ before("make and reveal deposit", async () => { depositReceipt = createDepositReceipt( systemTestsContext.depositor.address, @@ -441,6 +441,25 @@ describe("System Test - Deposit and redemption", () => { }) context("when deposit is made and revealed with a vault", () => { + /** + * This system test scenario performs a single deposit and redemption. + * + * The scenario consists of the following steps: + * 1. The depositor broadcasts the deposit transaction on BTC chain and + * reveals it to the bridge with the vault address provided. + * 2. The wallet broadcasts the sweep transaction of the given deposit on BTC + * chain and submits the sweep proof to the bridge. + * 3. The depositor (redeemer) requests the redemption of its entire TBTC + * balance. + * 4. The wallet broadcasts the redemption transaction handling the given + * request and submits the redemption proof to the bridge. + * + * Following prerequisites must be fulfilled to make a successful pass: + * - The depositor's BTC balance must allow to perform the deposit + * - tBTC v2 contracts must be deployed on used Ethereum network + * - A live wallet (with the main UTXO from the previous system test) must + * be registered in the bridge + */ before("make and reveal deposit", async () => { depositReceipt = createDepositReceipt( systemTestsContext.depositor.address, @@ -636,7 +655,7 @@ describe("System Test - Deposit and redemption", () => { systemTestsContext.walletBitcoinKeyPair.publicKey.compressed, sweepUtxo, redeemerOutputScript, - tbtcBalanceOfDepositor, + tbtcBalanceOfDepositor ) console.log( From 5691a18c4dff48f0fcfc198c32e245ed28903472 Mon Sep 17 00:00:00 2001 From: Tomasz Slabon Date: Fri, 10 Nov 2023 15:10:02 +0100 Subject: [PATCH 12/22] Correct library usage --- system-tests/test/deposit-redemption.test.ts | 306 ++++++++++--------- system-tests/test/minting-unminting.test.ts | 282 +++++++++-------- system-tests/test/utils/deposit.ts | 70 ----- 3 files changed, 300 insertions(+), 358 deletions(-) delete mode 100644 system-tests/test/utils/deposit.ts diff --git a/system-tests/test/deposit-redemption.test.ts b/system-tests/test/deposit-redemption.test.ts index a50903c8c..b09a77523 100644 --- a/system-tests/test/deposit-redemption.test.ts +++ b/system-tests/test/deposit-redemption.test.ts @@ -12,23 +12,22 @@ import { BitcoinAddressConverter, WalletTx, EthereumWalletRegistry, - MaintenanceService, BitcoinHashUtils, EthereumAddress, + TBTC, } from "@keep-network/tbtc-v2.ts" import { BigNumber, constants, Contract } from "ethers" import chai, { expect } from "chai" import chaiAsPromised from "chai-as-promised" import { setupSystemTestsContext } from "./utils/context" -import { createDepositReceipt, printDepositReceipt } from "./utils/deposit" import { fakeRelayDifficulty, waitTransactionConfirmed } from "./utils/bitcoin" import type { RedemptionRequest, BitcoinUtxo, - DepositReceipt, TBTCContracts, + DepositReceipt, } from "@keep-network/tbtc-v2.ts" import type { SystemTestsContext } from "./utils/context" @@ -36,24 +35,21 @@ chai.use(chaiAsPromised) describe("System Test - Deposit and redemption", () => { let systemTestsContext: SystemTestsContext - let electrumClient: ElectrumClient + let tbtcTokenAddress: string let bridgeAddress: string let vaultAddress: string let walletRegistryAddress: string - let tbtcTokenHandle: EthereumTBTCToken - let vaultHandle: EthereumTBTCVault - let maintainerBridgeHandle: EthereumBridge - let depositorBridgeHandle: EthereumBridge - let walletRegistryHandle: EthereumWalletRegistry - - let walletTx: WalletTx - let maintenanceService: MaintenanceService let bank: Contract let relay: Contract let tbtc: Contract + let electrumClient: ElectrumClient + let depositorTbtc: TBTC + let maintainerTbtc: TBTC + let walletTx: WalletTx + const depositAmount = BigNumber.from(2000000) const depositSweepTxFee = BigNumber.from(10000) const depositTxFee = BigNumber.from(1500) @@ -70,11 +66,34 @@ describe("System Test - Deposit and redemption", () => { let sweepUtxo: BitcoinUtxo let redemptionUtxo: BitcoinUtxo | undefined + let depositorBitcoinAddress: string + before(async () => { systemTestsContext = await setupSystemTestsContext() const { electrumUrl, maintainer, depositor, deployedContracts } = systemTestsContext + const relayDeploymentInfo = deployedContracts.LightRelay + relay = new Contract( + relayDeploymentInfo.address, + relayDeploymentInfo.abi, + maintainer + ) + + const bankDeploymentInfo = deployedContracts.Bank + bank = new Contract( + bankDeploymentInfo.address, + bankDeploymentInfo.abi, + maintainer + ) + + const tbtcDeploymentInfo = deployedContracts.TBTC + tbtc = new Contract( + tbtcDeploymentInfo.address, + tbtcDeploymentInfo.abi, + maintainer + ) + electrumClient = ElectrumClient.fromUrl( electrumUrl, undefined, @@ -87,60 +106,63 @@ describe("System Test - Deposit and redemption", () => { vaultAddress = deployedContracts.TBTCVault.address walletRegistryAddress = deployedContracts.WalletRegistry.address - tbtcTokenHandle = new EthereumTBTCToken({ - address: tbtcTokenAddress, - signerOrProvider: depositor, - }) - - vaultHandle = new EthereumTBTCVault({ - address: vaultAddress, - signerOrProvider: depositor, - }) - - maintainerBridgeHandle = new EthereumBridge({ - address: bridgeAddress, - signerOrProvider: maintainer, - }) - - depositorBridgeHandle = new EthereumBridge({ - address: bridgeAddress, - signerOrProvider: depositor, - }) + const depositorTbtcContracts: TBTCContracts = { + bridge: new EthereumBridge({ + address: bridgeAddress, + signerOrProvider: depositor, + }), + tbtcToken: new EthereumTBTCToken({ + address: tbtcTokenAddress, + signerOrProvider: depositor, + }), + tbtcVault: new EthereumTBTCVault({ + address: vaultAddress, + signerOrProvider: depositor, + }), + walletRegistry: new EthereumWalletRegistry({ + address: walletRegistryAddress, + signerOrProvider: depositor, + }), + } - walletRegistryHandle = new EthereumWalletRegistry({ - address: walletRegistryAddress, - signerOrProvider: depositor, - }) + depositorTbtc = await TBTC.initializeCustom( + depositorTbtcContracts, + electrumClient + ) - const tbtcContracts: TBTCContracts = { - bridge: maintainerBridgeHandle, - tbtcToken: tbtcTokenHandle, - tbtcVault: vaultHandle, - walletRegistry: walletRegistryHandle, + const maintainerTbtcContracts: TBTCContracts = { + bridge: new EthereumBridge({ + address: bridgeAddress, + signerOrProvider: maintainer, + }), + tbtcToken: new EthereumTBTCToken({ + address: tbtcTokenAddress, + signerOrProvider: maintainer, + }), + tbtcVault: new EthereumTBTCVault({ + address: vaultAddress, + signerOrProvider: maintainer, + }), + walletRegistry: new EthereumWalletRegistry({ + address: walletRegistryAddress, + signerOrProvider: maintainer, + }), } - walletTx = new WalletTx(tbtcContracts, electrumClient) - maintenanceService = new MaintenanceService(tbtcContracts, electrumClient) - - const bankDeploymentInfo = deployedContracts.Bank - bank = new Contract( - bankDeploymentInfo.address, - bankDeploymentInfo.abi, - maintainer + maintainerTbtc = await TBTC.initializeCustom( + maintainerTbtcContracts, + electrumClient ) - const relayDeploymentInfo = deployedContracts.LightRelay - relay = new Contract( - relayDeploymentInfo.address, - relayDeploymentInfo.abi, - maintainer + walletTx = new WalletTx(maintainerTbtcContracts, electrumClient) + + depositorBitcoinAddress = BitcoinAddressConverter.publicKeyToAddress( + systemTestsContext.depositorBitcoinKeyPair.publicKey.compressed, + BitcoinNetwork.Testnet ) - const tbtcDeploymentInfo = deployedContracts.TBTC - tbtc = new Contract( - tbtcDeploymentInfo.address, - tbtcDeploymentInfo.abi, - maintainer + depositorTbtc.deposits.setDefaultDepositor( + EthereumAddress.from(await depositor.getAddress()) ) }) @@ -165,28 +187,28 @@ describe("System Test - Deposit and redemption", () => { * the bridge */ before("make and reveal deposit", async () => { - depositReceipt = createDepositReceipt( - systemTestsContext.depositor.address, - systemTestsContext.walletBitcoinKeyPair.publicKey.compressed + const deposit = await depositorTbtc.deposits.initiateDeposit( + // Use the depositor's address as the recovery address. + depositorBitcoinAddress ) + depositReceipt = deposit.getReceipt() + const depositScript = DepositScript.fromReceipt(depositReceipt) + const depositFunding = DepositFunding.fromScript(depositScript) - printDepositReceipt(depositReceipt) - - const depositorBitcoinAddress = - BitcoinAddressConverter.publicKeyToAddress( - systemTestsContext.depositorBitcoinKeyPair.publicKey.compressed, - BitcoinNetwork.Testnet - ) + console.log(` + Deposit receipt generated: + - depositor: ${depositReceipt.depositor.identifierHex} + - walletPublicKeyHash: ${depositReceipt.walletPublicKeyHash} + - refundPublicKeyHash: ${depositReceipt.refundPublicKeyHash} + - blindingFactor: ${depositReceipt.blindingFactor} + - refundLocktime: ${depositReceipt.refundLocktime} + `) const depositorUtxos = await electrumClient.findAllUnspentTransactionOutputs( depositorBitcoinAddress ) - const depositFunding = DepositFunding.fromScript( - DepositScript.fromReceipt(depositReceipt, true) - ) - ;({ depositUtxo } = await depositFunding.submitTransaction( depositAmount, depositorUtxos, @@ -210,7 +232,9 @@ describe("System Test - Deposit and redemption", () => { const depositRawTxVectors = extractBitcoinRawTxVectors( rawDepositTransaction ) - await depositorBridgeHandle.revealDeposit( + + // Reveal without providing the vault address. + await depositorTbtc.tbtcContracts.bridge.revealDeposit( depositRawTxVectors, depositUtxo.outputIndex, depositReceipt @@ -229,7 +253,7 @@ describe("System Test - Deposit and redemption", () => { }) it("should reveal the deposit to the bridge", async () => { - const { revealedAt } = await maintainerBridgeHandle.deposits( + const { revealedAt } = await maintainerTbtc.tbtcContracts.bridge.deposits( depositUtxo.transactionHash, depositUtxo.outputIndex ) @@ -268,7 +292,7 @@ describe("System Test - Deposit and redemption", () => { // TODO: Consider fetching the current wallet main UTXO and passing it // here. This will allow running this test scenario multiple // times for the same wallet. - await maintenanceService.spv.submitDepositSweepProof( + await maintainerTbtc.maintenance.spv.submitDepositSweepProof( sweepUtxo.transactionHash, // This is the first sweep of the given wallet so there is no main UTXO. { @@ -292,7 +316,7 @@ describe("System Test - Deposit and redemption", () => { }) it("should sweep the deposit on the bridge", async () => { - const { sweptAt } = await maintainerBridgeHandle.deposits( + const { sweptAt } = await maintainerTbtc.tbtcContracts.bridge.deposits( depositUtxo.transactionHash, depositUtxo.outputIndex ) @@ -300,10 +324,11 @@ describe("System Test - Deposit and redemption", () => { }) it("should increase depositor's balance in the bank", async () => { - const { treasuryFee } = await maintainerBridgeHandle.deposits( - depositUtxo.transactionHash, - depositUtxo.outputIndex - ) + const { treasuryFee } = + await maintainerTbtc.tbtcContracts.bridge.deposits( + depositUtxo.transactionHash, + depositUtxo.outputIndex + ) const expectedBalance = depositAmount .sub(treasuryFee) @@ -339,10 +364,9 @@ describe("System Test - Deposit and redemption", () => { )}` ) - await depositorBridgeHandle.requestRedemption( - systemTestsContext.walletBitcoinKeyPair.publicKey.compressed, - sweepUtxo, - redeemerOutputScript, + await depositorTbtc.redemptions.requestRedemption( + // Use the depositor's address as the redeemer's address. + depositorBitcoinAddress, requestedAmount ) @@ -350,10 +374,12 @@ describe("System Test - Deposit and redemption", () => { `Requested redemption of amount ${requestedAmount} to script ${redeemerOutputScript} on the bridge` ) - redemptionRequest = await maintainerBridgeHandle.pendingRedemptions( - systemTestsContext.walletBitcoinKeyPair.publicKey.compressed, - redeemerOutputScript - ) + redemptionRequest = + await maintainerTbtc.redemptions.getRedemptionRequests( + depositorBitcoinAddress, + systemTestsContext.walletBitcoinKeyPair.publicKey.compressed, + "pending" + ) }) it("should transfer depositor's bank balance to the Bridge", async () => { @@ -404,7 +430,7 @@ describe("System Test - Deposit and redemption", () => { redemptionTxHash ) - await maintenanceService.spv.submitRedemptionProof( + await maintainerTbtc.maintenance.spv.submitRedemptionProof( redemptionTxHash, sweepUtxo, systemTestsContext.walletBitcoinKeyPair.publicKey.compressed @@ -422,10 +448,12 @@ describe("System Test - Deposit and redemption", () => { }) it("should close the redemption request on the bridge", async () => { - const request = await maintainerBridgeHandle.pendingRedemptions( - systemTestsContext.walletBitcoinKeyPair.publicKey.compressed, - redemptionRequest.redeemerOutputScript - ) + const request = + await maintainerTbtc.redemptions.getRedemptionRequests( + depositorBitcoinAddress, + systemTestsContext.walletBitcoinKeyPair.publicKey.compressed, + "pending" + ) expect(request.requestedAt).to.be.equal(0) }) @@ -461,28 +489,28 @@ describe("System Test - Deposit and redemption", () => { * be registered in the bridge */ before("make and reveal deposit", async () => { - depositReceipt = createDepositReceipt( - systemTestsContext.depositor.address, - systemTestsContext.walletBitcoinKeyPair.publicKey.compressed + const deposit = await depositorTbtc.deposits.initiateDeposit( + // Use the depositor's address as the recovery address. + depositorBitcoinAddress ) + depositReceipt = deposit.getReceipt() + const depositScript = DepositScript.fromReceipt(depositReceipt) + const depositFunding = DepositFunding.fromScript(depositScript) - printDepositReceipt(depositReceipt) - - const depositorBitcoinAddress = - BitcoinAddressConverter.publicKeyToAddress( - systemTestsContext.depositorBitcoinKeyPair.publicKey.compressed, - BitcoinNetwork.Testnet - ) + console.log(` + Deposit receipt generated: + - depositor: ${depositReceipt.depositor.identifierHex} + - walletPublicKeyHash: ${depositReceipt.walletPublicKeyHash} + - refundPublicKeyHash: ${depositReceipt.refundPublicKeyHash} + - blindingFactor: ${depositReceipt.blindingFactor} + - refundLocktime: ${depositReceipt.refundLocktime} + `) const depositorUtxos = await electrumClient.findAllUnspentTransactionOutputs( depositorBitcoinAddress ) - const depositFunding = DepositFunding.fromScript( - DepositScript.fromReceipt(depositReceipt, true) - ) - ;({ depositUtxo } = await depositFunding.submitTransaction( depositAmount, depositorUtxos, @@ -497,21 +525,7 @@ describe("System Test - Deposit and redemption", () => { - Output index: ${depositUtxo.outputIndex} `) - // Since the reveal deposit logic does not perform SPV proof, we - // can reveal the deposit transaction immediately without waiting - // for confirmations. - const rawDepositTransaction = await electrumClient.getRawTransaction( - depositUtxo.transactionHash - ) - const depositRawTxVectors = extractBitcoinRawTxVectors( - rawDepositTransaction - ) - await depositorBridgeHandle.revealDeposit( - depositRawTxVectors, - depositUtxo.outputIndex, - depositReceipt, - EthereumAddress.from(vaultAddress) - ) + await deposit.initiateMinting() console.log(` Deposit revealed on Ethereum chain @@ -526,7 +540,7 @@ describe("System Test - Deposit and redemption", () => { }) it("should reveal the deposit to the bridge", async () => { - const { revealedAt } = await maintainerBridgeHandle.deposits( + const { revealedAt } = await maintainerTbtc.tbtcContracts.bridge.deposits( depositUtxo.transactionHash, depositUtxo.outputIndex ) @@ -570,7 +584,7 @@ describe("System Test - Deposit and redemption", () => { outputIndex: 0, value: BigNumber.from(0), } - await maintenanceService.spv.submitDepositSweepProof( + await maintainerTbtc.maintenance.spv.submitDepositSweepProof( sweepUtxo.transactionHash, mainUtxo, EthereumAddress.from(vaultAddress) @@ -589,7 +603,7 @@ describe("System Test - Deposit and redemption", () => { }) it("should sweep the deposit on the bridge", async () => { - const { sweptAt } = await maintainerBridgeHandle.deposits( + const { sweptAt } = await maintainerTbtc.tbtcContracts.bridge.deposits( depositUtxo.transactionHash, depositUtxo.outputIndex ) @@ -597,10 +611,11 @@ describe("System Test - Deposit and redemption", () => { }) it("should increase vault's balance in the bank", async () => { - const { treasuryFee } = await maintainerBridgeHandle.deposits( - depositUtxo.transactionHash, - depositUtxo.outputIndex - ) + const { treasuryFee } = + await maintainerTbtc.tbtcContracts.bridge.deposits( + depositUtxo.transactionHash, + depositUtxo.outputIndex + ) const expectedBalance = depositAmount .sub(treasuryFee) @@ -612,10 +627,11 @@ describe("System Test - Deposit and redemption", () => { }) it("should mint TBTC tokens for the depositor", async () => { - const { treasuryFee } = await maintainerBridgeHandle.deposits( - depositUtxo.transactionHash, - depositUtxo.outputIndex - ) + const { treasuryFee } = + await maintainerTbtc.tbtcContracts.bridge.deposits( + depositUtxo.transactionHash, + depositUtxo.outputIndex + ) const balanceInSatoshis = depositAmount .sub(treasuryFee) @@ -651,7 +667,7 @@ describe("System Test - Deposit and redemption", () => { )}` ) - await tbtcTokenHandle.requestRedemption( + depositorTbtc.tbtcContracts.tbtcToken.requestRedemption( systemTestsContext.walletBitcoinKeyPair.publicKey.compressed, sweepUtxo, redeemerOutputScript, @@ -662,10 +678,12 @@ describe("System Test - Deposit and redemption", () => { `Requested redemption of ${tbtcBalanceOfDepositor} TBTC tokens to script ${redeemerOutputScript} on the bridge` ) - redemptionRequest = await maintainerBridgeHandle.pendingRedemptions( - systemTestsContext.walletBitcoinKeyPair.publicKey.compressed, - redeemerOutputScript - ) + redemptionRequest = + await maintainerTbtc.redemptions.getRedemptionRequests( + depositorBitcoinAddress, + systemTestsContext.walletBitcoinKeyPair.publicKey.compressed, + "pending" + ) }) it("should unmint depositor's TBTC tokens", async () => { @@ -722,7 +740,7 @@ describe("System Test - Deposit and redemption", () => { redemptionTxHash ) - await maintenanceService.spv.submitRedemptionProof( + await maintainerTbtc.maintenance.spv.submitRedemptionProof( redemptionTxHash, sweepUtxo, systemTestsContext.walletBitcoinKeyPair.publicKey.compressed @@ -740,10 +758,12 @@ describe("System Test - Deposit and redemption", () => { }) it("should close the redemption request on the bridge", async () => { - const request = await maintainerBridgeHandle.pendingRedemptions( - systemTestsContext.walletBitcoinKeyPair.publicKey.compressed, - redemptionRequest.redeemerOutputScript - ) + const request = + await maintainerTbtc.redemptions.getRedemptionRequests( + depositorBitcoinAddress, + systemTestsContext.walletBitcoinKeyPair.publicKey.compressed, + "pending" + ) expect(request.requestedAt).to.be.equal(0) }) diff --git a/system-tests/test/minting-unminting.test.ts b/system-tests/test/minting-unminting.test.ts index 543384b9b..d94807c78 100644 --- a/system-tests/test/minting-unminting.test.ts +++ b/system-tests/test/minting-unminting.test.ts @@ -1,5 +1,4 @@ import { - extractBitcoinRawTxVectors, Hex, BitcoinTxHash, BitcoinNetwork, @@ -12,17 +11,16 @@ import { BitcoinAddressConverter, WalletTx, EthereumWalletRegistry, - MaintenanceService, BitcoinHashUtils, EthereumAddress, + TBTC, } from "@keep-network/tbtc-v2.ts" -import { BigNumber, constants, Contract, utils as ethersUtils } from "ethers" +import { BigNumber, constants, Contract } from "ethers" import chai, { expect } from "chai" import chaiAsPromised from "chai-as-promised" import { setupSystemTestsContext } from "./utils/context" import { fakeRelayDifficulty, waitTransactionConfirmed } from "./utils/bitcoin" -import { createDepositReceipt, printDepositReceipt } from "./utils/deposit" import type { SystemTestsContext } from "./utils/context" import type { @@ -60,23 +58,20 @@ const satoshiMultiplier = 1e10 */ describe("System Test - Minting and unminting", () => { let systemTestsContext: SystemTestsContext - let electrumClient: ElectrumClient + let tbtcTokenAddress: string let bridgeAddress: string let vaultAddress: string let walletRegistryAddress: string - let maintainerBridgeHandle: EthereumBridge - let depositorBridgeHandle: EthereumBridge - let walletRegistryHandle: EthereumWalletRegistry - let tbtcTokenHandle: EthereumTBTCToken - let vaultHandle: EthereumTBTCVault + let bank: Contract let relay: Contract - let tbtcVault: Contract - let tbtcToken: Contract + let tbtc: Contract + let electrumClient: ElectrumClient + let depositorTbtc: TBTC + let maintainerTbtc: TBTC let walletTx: WalletTx - let maintenanceService: MaintenanceService const depositAmount = BigNumber.from(2000000) const depositSweepTxFee = BigNumber.from(10000) @@ -91,6 +86,8 @@ describe("System Test - Minting and unminting", () => { let depositUtxo: BitcoinUtxo let sweepUtxo: BitcoinUtxo + let depositorBitcoinAddress: string + before(async () => { systemTestsContext = await setupSystemTestsContext() const { electrumUrl, maintainer, depositor, deployedContracts } = @@ -108,31 +105,6 @@ describe("System Test - Minting and unminting", () => { vaultAddress = deployedContracts.TBTCVault.address walletRegistryAddress = deployedContracts.WalletRegistry.address - tbtcTokenHandle = new EthereumTBTCToken({ - address: tbtcTokenAddress, - signerOrProvider: depositor, - }) - - vaultHandle = new EthereumTBTCVault({ - address: vaultAddress, - signerOrProvider: depositor, - }) - - maintainerBridgeHandle = new EthereumBridge({ - address: bridgeAddress, - signerOrProvider: maintainer, - }) - - depositorBridgeHandle = new EthereumBridge({ - address: bridgeAddress, - signerOrProvider: depositor, - }) - - walletRegistryHandle = new EthereumWalletRegistry({ - address: walletRegistryAddress, - signerOrProvider: depositor, - }) - const bankDeploymentInfo = deployedContracts.Bank bank = new Contract( bankDeploymentInfo.address, @@ -147,56 +119,99 @@ describe("System Test - Minting and unminting", () => { maintainer ) - const tbtcVaultDeploymentInfo = deployedContracts.TBTCVault - tbtcVault = new Contract( - tbtcVaultDeploymentInfo.address, - tbtcVaultDeploymentInfo.abi, + const tbtcDeploymentInfo = deployedContracts.TBTC + tbtc = new Contract( + tbtcDeploymentInfo.address, + tbtcDeploymentInfo.abi, maintainer ) - const tbtcTokenDeploymentInfo = deployedContracts.TBTC - tbtcToken = new Contract( - tbtcTokenDeploymentInfo.address, - tbtcTokenDeploymentInfo.abi, - maintainer + const depositorTbtcContracts: TBTCContracts = { + bridge: new EthereumBridge({ + address: bridgeAddress, + signerOrProvider: depositor, + }), + tbtcToken: new EthereumTBTCToken({ + address: tbtcTokenAddress, + signerOrProvider: depositor, + }), + tbtcVault: new EthereumTBTCVault({ + address: vaultAddress, + signerOrProvider: depositor, + }), + walletRegistry: new EthereumWalletRegistry({ + address: walletRegistryAddress, + signerOrProvider: depositor, + }), + } + + depositorTbtc = await TBTC.initializeCustom( + depositorTbtcContracts, + electrumClient ) - const tbtcContracts: TBTCContracts = { - bridge: maintainerBridgeHandle, - tbtcToken: tbtcTokenHandle, - tbtcVault: vaultHandle, - walletRegistry: walletRegistryHandle, + const maintainerTbtcContracts: TBTCContracts = { + bridge: new EthereumBridge({ + address: bridgeAddress, + signerOrProvider: maintainer, + }), + tbtcToken: new EthereumTBTCToken({ + address: tbtcTokenAddress, + signerOrProvider: maintainer, + }), + tbtcVault: new EthereumTBTCVault({ + address: vaultAddress, + signerOrProvider: maintainer, + }), + walletRegistry: new EthereumWalletRegistry({ + address: walletRegistryAddress, + signerOrProvider: maintainer, + }), } - walletTx = new WalletTx(tbtcContracts, electrumClient) - maintenanceService = new MaintenanceService(tbtcContracts, electrumClient) + maintainerTbtc = await TBTC.initializeCustom( + maintainerTbtcContracts, + electrumClient + ) + + walletTx = new WalletTx(maintainerTbtcContracts, electrumClient) + + depositorBitcoinAddress = BitcoinAddressConverter.publicKeyToAddress( + systemTestsContext.depositorBitcoinKeyPair.publicKey.compressed, + BitcoinNetwork.Testnet + ) + + depositorTbtc.deposits.setDefaultDepositor( + EthereumAddress.from(await depositor.getAddress()) + ) }) context( "when minting is initiated by making and revealing a deposit to the TBTCVault", () => { before("make and reveal deposit", async () => { - depositReceipt = createDepositReceipt( - systemTestsContext.depositor.address, - systemTestsContext.walletBitcoinKeyPair.publicKey.compressed + const deposit = await depositorTbtc.deposits.initiateDeposit( + // Use the depositor's address as the recovery address. + depositorBitcoinAddress ) + depositReceipt = deposit.getReceipt() + const depositScript = DepositScript.fromReceipt(depositReceipt) + const depositFunding = DepositFunding.fromScript(depositScript) - printDepositReceipt(depositReceipt) + console.log(` + Deposit receipt generated: + - depositor: ${depositReceipt.depositor.identifierHex} + - walletPublicKeyHash: ${depositReceipt.walletPublicKeyHash} + - refundPublicKeyHash: ${depositReceipt.refundPublicKeyHash} + - blindingFactor: ${depositReceipt.blindingFactor} + - refundLocktime: ${depositReceipt.refundLocktime} + `) - const depositorBitcoinAddress = - BitcoinAddressConverter.publicKeyToAddress( - systemTestsContext.depositorBitcoinKeyPair.publicKey.compressed, - BitcoinNetwork.Testnet - ) const depositorUtxos = await electrumClient.findAllUnspentTransactionOutputs( depositorBitcoinAddress ) - const depositFunding = DepositFunding.fromScript( - DepositScript.fromReceipt(depositReceipt, true) - ) - ;({ depositUtxo } = await depositFunding.submitTransaction( depositAmount, depositorUtxos, @@ -206,10 +221,10 @@ describe("System Test - Minting and unminting", () => { )) console.log(` - Deposit made on BTC chain: - - Transaction hash: ${depositUtxo.transactionHash} - - Output index: ${depositUtxo.outputIndex} - `) + Deposit made on BTC chain: + - Transaction hash: ${depositUtxo.transactionHash} + - Output index: ${depositUtxo.outputIndex} + `) // It happens from time to time that a deposit reveal process starts when // a deposit is not captured by the Bitcoin chain yet and a deposit is @@ -217,21 +232,7 @@ describe("System Test - Minting and unminting", () => { // the Bitcoin chain is in sync and then start the revealing process. await new Promise((r) => setTimeout(r, 3000)) - // Since the reveal deposit logic does not perform SPV proof, we - // can reveal the deposit transaction immediately without waiting - // for confirmations. - const rawDepositTransaction = await electrumClient.getRawTransaction( - depositUtxo.transactionHash - ) - const depositRawTxVectors = extractBitcoinRawTxVectors( - rawDepositTransaction - ) - await depositorBridgeHandle.revealDeposit( - depositRawTxVectors, - depositUtxo.outputIndex, - depositReceipt, - EthereumAddress.from(tbtcVault.address) // Use TBTCVault as target vault. - ) + await deposit.initiateMinting() console.log(` Deposit revealed on Ethereum chain @@ -246,21 +247,22 @@ describe("System Test - Minting and unminting", () => { }) it("should reveal the deposit to the bridge", async () => { - const { revealedAt } = await maintainerBridgeHandle.deposits( - depositUtxo.transactionHash, - depositUtxo.outputIndex - ) + const { revealedAt } = + await maintainerTbtc.tbtcContracts.bridge.deposits( + depositUtxo.transactionHash, + depositUtxo.outputIndex + ) expect(revealedAt).to.be.greaterThan(0) }) it("should set TBTCVault as target vault of the revealed deposit", async () => { - const { vault } = await maintainerBridgeHandle.deposits( + const { vault } = await maintainerTbtc.tbtcContracts.bridge.deposits( depositUtxo.transactionHash, depositUtxo.outputIndex ) - expect( - EthereumAddress.from(tbtcVault.address).identifierHex - ).to.be.equal(vault?.identifierHex) + expect(EthereumAddress.from(vaultAddress).identifierHex).to.be.equal( + vault?.identifierHex + ) }) context("when deposit is swept and sweep proof submitted", () => { @@ -295,7 +297,7 @@ describe("System Test - Minting and unminting", () => { // TODO: Consider fetching the current wallet main UTXO and passing it // here. This will allow running this test scenario multiple // times for the same wallet. - await maintenanceService.spv.submitDepositSweepProof( + await maintainerTbtc.maintenance.spv.submitDepositSweepProof( sweepUtxo.transactionHash, // This is the first sweep of the given wallet so there is no main UTXO. { @@ -304,8 +306,7 @@ describe("System Test - Minting and unminting", () => { outputIndex: 0, value: BigNumber.from(0), }, - // Pass the TBTCVault address for the SPV proof. - EthereumAddress.from(tbtcVault.address) + EthereumAddress.from(vaultAddress) ) console.log(` @@ -321,39 +322,42 @@ describe("System Test - Minting and unminting", () => { }) it("should sweep the deposit on the bridge", async () => { - const { sweptAt } = await maintainerBridgeHandle.deposits( - depositUtxo.transactionHash, - depositUtxo.outputIndex - ) + const { sweptAt } = + await maintainerTbtc.tbtcContracts.bridge.deposits( + depositUtxo.transactionHash, + depositUtxo.outputIndex + ) expect(sweptAt).to.be.greaterThan(0) }) it("should increase TBTCVault's balance in the bank", async () => { - const { treasuryFee } = await maintainerBridgeHandle.deposits( - depositUtxo.transactionHash, - depositUtxo.outputIndex - ) + const { treasuryFee } = + await maintainerTbtc.tbtcContracts.bridge.deposits( + depositUtxo.transactionHash, + depositUtxo.outputIndex + ) const expectedBalance = depositAmount .sub(treasuryFee) .sub(depositSweepTxFee) - const actualBalance = await bank.balanceOf(tbtcVault.address) + const actualBalance = await bank.balanceOf(vaultAddress) expect(actualBalance).to.be.equal(expectedBalance) }) it("should mint TBTC to the depositor", async () => { - const { treasuryFee } = await maintainerBridgeHandle.deposits( - depositUtxo.transactionHash, - depositUtxo.outputIndex - ) + const { treasuryFee } = + await maintainerTbtc.tbtcContracts.bridge.deposits( + depositUtxo.transactionHash, + depositUtxo.outputIndex + ) const expectedMintedAmount = depositAmount .sub(treasuryFee) .sub(depositSweepTxFee) .mul(satoshiMultiplier) // The minted balance is expected to be 1e18 - const actualMintedAmount = await tbtcToken.balanceOf( + const actualMintedAmount = await tbtc.balanceOf( systemTestsContext.depositor.address ) @@ -367,7 +371,7 @@ describe("System Test - Minting and unminting", () => { before("do unminting through TBTC approve-and-call", async () => { // Unmint all depositor's TBTC tokens. - unmintedAmount = await tbtcToken.balanceOf( + unmintedAmount = await tbtc.balanceOf( systemTestsContext.depositor.address ) @@ -378,48 +382,33 @@ describe("System Test - Minting and unminting", () => { )}` ) - // Convert the redeemer output script to a byte buffer. - const rawRedeemerOutputScript = redeemerOutputScript.toBuffer() - - const redemptionData = ethersUtils.defaultAbiCoder.encode( - ["address", "bytes20", "bytes32", "uint32", "uint64", "bytes"], - [ - systemTestsContext.depositor.address, - depositReceipt.walletPublicKeyHash.toPrefixedString(), - sweepUtxo.transactionHash.reverse().toPrefixedString(), - sweepUtxo.outputIndex, - sweepUtxo.value.toNumber(), - `0x${Buffer.concat([ - Buffer.from([rawRedeemerOutputScript.length]), - rawRedeemerOutputScript, - ]).toString("hex")}`, - ] + depositorTbtc.tbtcContracts.tbtcToken.requestRedemption( + systemTestsContext.depositorBitcoinKeyPair.publicKey.compressed, + sweepUtxo, + redeemerOutputScript, + unmintedAmount ) - // TODO: Consider moving the heavy lifting related to this call - // to the `tbtc-v2.ts` library. - await tbtcToken - .connect(systemTestsContext.depositor) - .approveAndCall(tbtcVault.address, unmintedAmount, redemptionData) - console.log( `Unminted ${unmintedAmount} TBTC and requested redemption to script ${redeemerOutputScript} on the bridge` ) - redemptionRequest = await maintainerBridgeHandle.pendingRedemptions( - systemTestsContext.walletBitcoinKeyPair.publicKey.compressed, - redeemerOutputScript - ) + redemptionRequest = + await maintainerTbtc.redemptions.getRedemptionRequests( + depositorBitcoinAddress, + systemTestsContext.walletBitcoinKeyPair.publicKey.compressed, + "pending" + ) }) it("should burn depositor's TBTC tokens", async () => { expect( - await tbtcToken.balanceOf(systemTestsContext.depositor.address) + await tbtc.balanceOf(systemTestsContext.depositor.address) ).to.be.equal(0) }) it("should transfer TBTCVault's bank balance to the Bridge", async () => { - expect(await bank.balanceOf(tbtcVault.address)).to.be.equal(0) + expect(await bank.balanceOf(vaultAddress)).to.be.equal(0) expect(await bank.balanceOf(bridgeAddress)).to.be.equal( unmintedAmount.div(satoshiMultiplier) ) @@ -466,7 +455,7 @@ describe("System Test - Minting and unminting", () => { redemptionTxHash ) - await maintenanceService.spv.submitRedemptionProof( + await maintainerTbtc.maintenance.spv.submitRedemptionProof( redemptionTxHash, sweepUtxo, systemTestsContext.walletBitcoinKeyPair.publicKey.compressed @@ -484,10 +473,13 @@ describe("System Test - Minting and unminting", () => { }) it("should close the redemption request on the bridge", async () => { - const request = await maintainerBridgeHandle.pendingRedemptions( - systemTestsContext.walletBitcoinKeyPair.publicKey.compressed, - redemptionRequest.redeemerOutputScript - ) + const request = + await maintainerTbtc.redemptions.getRedemptionRequests( + depositorBitcoinAddress, + systemTestsContext.walletBitcoinKeyPair.publicKey + .compressed, + "pending" + ) expect(request.requestedAt).to.be.equal(0) }) diff --git a/system-tests/test/utils/deposit.ts b/system-tests/test/utils/deposit.ts deleted file mode 100644 index 10a8fac15..000000000 --- a/system-tests/test/utils/deposit.ts +++ /dev/null @@ -1,70 +0,0 @@ -import crypto from "crypto" - -import { - BitcoinLocktimeUtils, - BitcoinHashUtils, - EthereumAddress, - Hex, -} from "@keep-network/tbtc-v2.ts" - -import type { DepositReceipt } from "@keep-network/tbtc-v2.ts" - -/** - * Default refund public key used for deposits. Their corresponding private key: - * 7c246a5d2fcf476fd6f805cb8174b1cf441b13ea414e5560ca2bdc963aeb7d0c - */ -export const DEFAULT_REFUND_PUBLIC_KEY = Hex.from( - "03989d253b17a6a0f41838b84ff0d20e8898f9d7b1a98f2564da4cc29dcf8581d9" -) - -/** - * Creates a deposit receipt based on the given parameters. - * @param depositorAddress Ethereum address of the depositor. - * @param walletPublicKey Compressed ECDSA public key of the target wallet. - * @param refundPublicKey Compressed ECDSA public key that can be used for - * refund. Optional parameter, default value is used if not set - * @see {DEFAULT_REFUND_PUBLIC_KEY}. - * @returns Deposit receipt. - */ -export function createDepositReceipt( - depositorAddress: string, - walletPublicKey: Hex, - refundPublicKey?: Hex -): DepositReceipt { - const walletPublicKeyHash = BitcoinHashUtils.computeHash160(walletPublicKey) - - const resolvedRefundPublicKey = refundPublicKey || DEFAULT_REFUND_PUBLIC_KEY - const refundPublicKeyHash = BitcoinHashUtils.computeHash160( - resolvedRefundPublicKey - ) - - const blindingFactor = Hex.from(crypto.randomBytes(8).toString("hex")) - - const refundLocktime = BitcoinLocktimeUtils.calculateLocktime( - Math.floor(Date.now() / 1000), - 2592000 // 30 days - ) - return { - depositor: EthereumAddress.from(depositorAddress), - walletPublicKeyHash, - refundPublicKeyHash, - blindingFactor, - refundLocktime, - } -} - -/** - * Prints a formatted deposit receipt to the console. - * @param receipt Deposit receipt object containing information to be printed. - * @returns {void} This function does not return any value. - */ -export function printDepositReceipt(receipt: DepositReceipt): void { - console.log(` - Deposit receipt: - - depositor: ${receipt.depositor.identifierHex} - - walletPublicKeyHash: ${receipt.walletPublicKeyHash} - - refundPublicKeyHash: ${receipt.refundPublicKeyHash} - - blindingFactor: ${receipt.blindingFactor} - - refundLocktime: ${receipt.refundLocktime} - `) -} From 9b51d1490baa22fd21e8b9123109a006d68b7d2e Mon Sep 17 00:00:00 2001 From: Tomasz Slabon Date: Fri, 10 Nov 2023 17:45:20 +0100 Subject: [PATCH 13/22] Updated tbtc-v2.ts version to development --- system-tests/package.json | 2 +- system-tests/yarn.lock | 966 ++++++++++++++++++++++++++++++++++---- 2 files changed, 879 insertions(+), 89 deletions(-) diff --git a/system-tests/package.json b/system-tests/package.json index dffe78713..8eb301899 100644 --- a/system-tests/package.json +++ b/system-tests/package.json @@ -18,7 +18,7 @@ "test/**/*" ], "dependencies": { - "@keep-network/tbtc-v2.ts": "^2.2.0", + "@keep-network/tbtc-v2.ts": "development", "elliptic": "^6.5.4", "wif": "^2.0.6" }, diff --git a/system-tests/yarn.lock b/system-tests/yarn.lock index 2b36e9485..7edcbdc6d 100644 --- a/system-tests/yarn.lock +++ b/system-tests/yarn.lock @@ -46,6 +46,23 @@ "@noble/hashes" "^1.1.5" "@noble/secp256k1" "^1.7.1" +"@celo/base@1.5.2": + version "1.5.2" + resolved "https://registry.yarnpkg.com/@celo/base/-/base-1.5.2.tgz#168ab5e4e30b374079d8d139fafc52ca6bfd4100" + integrity sha512-KGf6Dl9E6D01vAfkgkjL2sG+zqAjspAogILIpWstljWdG5ifyA75jihrnDEHaMCoQS0KxHvTdP1XYS/GS6BEyQ== + +"@celo/connect@1.5.2": + version "1.5.2" + resolved "https://registry.yarnpkg.com/@celo/connect/-/connect-1.5.2.tgz#09f0b03bda6f8a6d523fd010492f204cbe82aabd" + integrity sha512-IHsvYp1HizIPfPPeIHyvsmJytIf7HNtNWo9CqCbsqfNfmw53q6dFJu2p5X0qz/fUnR5840cUga8cEyuYZTfp+w== + dependencies: + "@celo/utils" "1.5.2" + "@types/debug" "^4.1.5" + "@types/utf8" "^2.1.6" + bignumber.js "^9.0.0" + debug "^4.1.1" + utf8 "3.0.0" + "@celo/contractkit@^0.3.3": version "0.3.8" resolved "https://registry.yarnpkg.com/@celo/contractkit/-/contractkit-0.3.8.tgz#aea543761a4921dddd1b1f906d23f8730cce15c7" @@ -69,6 +86,24 @@ web3-eth-contract "1.2.4" web3-utils "1.2.4" +"@celo/contractkit@^1.0.2": + version "1.5.2" + resolved "https://registry.yarnpkg.com/@celo/contractkit/-/contractkit-1.5.2.tgz#be15d570f3044a190dabb6bbe53d5081c78ea605" + integrity sha512-b0r5TlfYDEscxze1Ai2jyJayiVElA9jvEehMD6aOSNtVhfP8oirjFIIffRe0Wzw1MSDGkw+q1c4m0Yw5sEOlvA== + dependencies: + "@celo/base" "1.5.2" + "@celo/connect" "1.5.2" + "@celo/utils" "1.5.2" + "@celo/wallet-local" "1.5.2" + "@types/debug" "^4.1.5" + bignumber.js "^9.0.0" + cross-fetch "^3.0.6" + debug "^4.1.1" + fp-ts "2.1.1" + io-ts "2.0.1" + semver "^7.3.5" + web3 "1.3.6" + "@celo/utils@0.1.11": version "0.1.11" resolved "https://registry.yarnpkg.com/@celo/utils/-/utils-0.1.11.tgz#c35e3b385091fc6f0c0c355b73270f4a8559ad38" @@ -93,6 +128,66 @@ numeral "^2.0.6" web3-utils "1.2.4" +"@celo/utils@1.5.2": + version "1.5.2" + resolved "https://registry.yarnpkg.com/@celo/utils/-/utils-1.5.2.tgz#ddb7f3b50c801225ab41d2355fbe010976329099" + integrity sha512-JyKjuVMbdkyFOb1TpQw6zqamPQWYg7I9hOnva3MeIcQ3ZrJIaNHx0/I+JXFjuu3YYBc1mG8nXp2uPJJTGrwzCQ== + dependencies: + "@celo/base" "1.5.2" + "@types/country-data" "^0.0.0" + "@types/elliptic" "^6.4.9" + "@types/ethereumjs-util" "^5.2.0" + "@types/google-libphonenumber" "^7.4.17" + "@types/lodash" "^4.14.170" + "@types/node" "^10.12.18" + "@types/randombytes" "^2.0.0" + bigi "^1.1.0" + bignumber.js "^9.0.0" + bip32 "2.0.5" + bip39 "https://github.com/bitcoinjs/bip39#d8ea080a18b40f301d4e2219a2991cd2417e83c2" + bls12377js "https://github.com/celo-org/bls12377js#cb38a4cfb643c778619d79b20ca3e5283a2122a6" + bn.js "4.11.8" + buffer-reverse "^1.0.1" + country-data "^0.0.31" + crypto-js "^3.1.9-1" + elliptic "^6.5.4" + ethereumjs-util "^5.2.0" + fp-ts "2.1.1" + google-libphonenumber "^3.2.15" + io-ts "2.0.1" + keccak256 "^1.0.0" + lodash "^4.17.21" + numeral "^2.0.6" + web3-eth-abi "1.3.6" + web3-utils "1.3.6" + +"@celo/wallet-base@1.5.2": + version "1.5.2" + resolved "https://registry.yarnpkg.com/@celo/wallet-base/-/wallet-base-1.5.2.tgz#ae8df425bf3c702277bb1b63a761a2ec8429e7aa" + integrity sha512-NYJu7OtSRFpGcvSMl2Wc8zN32S6oTkAzKqhH7rXisQ0I2q4yNwCzoquzPVYB0G2UVUFKuuxgsA5V+Zda/LQCyw== + dependencies: + "@celo/base" "1.5.2" + "@celo/connect" "1.5.2" + "@celo/utils" "1.5.2" + "@types/debug" "^4.1.5" + "@types/ethereumjs-util" "^5.2.0" + bignumber.js "^9.0.0" + debug "^4.1.1" + eth-lib "^0.2.8" + ethereumjs-util "^5.2.0" + +"@celo/wallet-local@1.5.2": + version "1.5.2" + resolved "https://registry.yarnpkg.com/@celo/wallet-local/-/wallet-local-1.5.2.tgz#66ea5fb763e19724309e3d56f312f1a342e12b91" + integrity sha512-Aas4SwqQc8ap0OFAOZc+jBR4cXr20V9AReHNEI8Y93R3g1+RlSEJ1Zmsu4vN+Rriz58YqgMnr+pihorw8QydFQ== + dependencies: + "@celo/connect" "1.5.2" + "@celo/utils" "1.5.2" + "@celo/wallet-base" "1.5.2" + "@types/ethereumjs-util" "^5.2.0" + eth-lib "^0.2.8" + ethereumjs-util "^5.2.0" + "@chainsafe/as-sha256@^0.3.1": version "0.3.1" resolved "https://registry.yarnpkg.com/@chainsafe/as-sha256/-/as-sha256-0.3.1.tgz#3639df0e1435cab03f4d9870cc3ac079e57a6fc9" @@ -305,6 +400,21 @@ merkle-patricia-tree "^4.2.2" rustbn.js "~0.2.0" +"@ethersproject/abi@5.0.7": + version "5.0.7" + resolved "https://registry.yarnpkg.com/@ethersproject/abi/-/abi-5.0.7.tgz#79e52452bd3ca2956d0e1c964207a58ad1a0ee7b" + integrity sha512-Cqktk+hSIckwP/W8O47Eef60VwmoSC/L3lY0+dIBhQPCNn9E4V7rwmm2aFrNRRDJfFlGuZ1khkQUOc3oBX+niw== + dependencies: + "@ethersproject/address" "^5.0.4" + "@ethersproject/bignumber" "^5.0.7" + "@ethersproject/bytes" "^5.0.4" + "@ethersproject/constants" "^5.0.4" + "@ethersproject/hash" "^5.0.4" + "@ethersproject/keccak256" "^5.0.3" + "@ethersproject/logger" "^5.0.5" + "@ethersproject/properties" "^5.0.3" + "@ethersproject/strings" "^5.0.4" + "@ethersproject/abi@5.6.0": version "5.6.0" resolved "https://registry.yarnpkg.com/@ethersproject/abi/-/abi-5.6.0.tgz#ea07cbc1eec2374d32485679c12408005895e9f3" @@ -444,7 +554,7 @@ "@ethersproject/logger" "^5.6.0" "@ethersproject/rlp" "^5.6.1" -"@ethersproject/address@5.7.0", "@ethersproject/address@^5.6.1", "@ethersproject/address@^5.7.0": +"@ethersproject/address@5.7.0", "@ethersproject/address@^5.0.4", "@ethersproject/address@^5.6.1", "@ethersproject/address@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/address/-/address-5.7.0.tgz#19b56c4d74a3b0a46bfdbb6cfcc0a153fc697f37" integrity sha512-9wYhYt7aghVGo758POM5nqcOMaE168Q6aRLJZwUmiqSrAungkG74gSSeKEIR7ukixesdRZGPgVqme6vmxs1fkA== @@ -518,7 +628,7 @@ "@ethersproject/logger" "^5.6.0" bn.js "^5.2.1" -"@ethersproject/bignumber@5.7.0", "@ethersproject/bignumber@^5.6.2", "@ethersproject/bignumber@^5.7.0": +"@ethersproject/bignumber@5.7.0", "@ethersproject/bignumber@^5.0.7", "@ethersproject/bignumber@^5.6.2", "@ethersproject/bignumber@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/bignumber/-/bignumber-5.7.0.tgz#e2f03837f268ba655ffba03a57853e18a18dc9c2" integrity sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw== @@ -534,7 +644,7 @@ dependencies: "@ethersproject/logger" "^5.6.0" -"@ethersproject/bytes@5.7.0", "@ethersproject/bytes@^5.6.1", "@ethersproject/bytes@^5.7.0": +"@ethersproject/bytes@5.7.0", "@ethersproject/bytes@^5.0.4", "@ethersproject/bytes@^5.6.1", "@ethersproject/bytes@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/bytes/-/bytes-5.7.0.tgz#a00f6ea8d7e7534d6d87f47188af1148d71f155d" integrity sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A== @@ -555,7 +665,7 @@ dependencies: "@ethersproject/bignumber" "^5.6.2" -"@ethersproject/constants@5.7.0", "@ethersproject/constants@^5.6.1", "@ethersproject/constants@^5.7.0": +"@ethersproject/constants@5.7.0", "@ethersproject/constants@^5.0.4", "@ethersproject/constants@^5.6.1", "@ethersproject/constants@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/constants/-/constants-5.7.0.tgz#df80a9705a7e08984161f09014ea012d1c75295e" integrity sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA== @@ -638,7 +748,7 @@ "@ethersproject/properties" "^5.6.0" "@ethersproject/strings" "^5.6.1" -"@ethersproject/hash@5.7.0", "@ethersproject/hash@^5.6.1", "@ethersproject/hash@^5.7.0": +"@ethersproject/hash@5.7.0", "@ethersproject/hash@^5.0.4", "@ethersproject/hash@^5.6.1", "@ethersproject/hash@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/hash/-/hash-5.7.0.tgz#eb7aca84a588508369562e16e514b539ba5240a7" integrity sha512-qX5WrQfnah1EFnO5zJv1v46a8HW0+E5xuBBDTwMFZLuVTx0tbU2kkx15NqdjxecrLGatQN9FGQKpb1FKdHCt+g== @@ -780,7 +890,7 @@ "@ethersproject/bytes" "^5.6.1" js-sha3 "0.8.0" -"@ethersproject/keccak256@5.7.0", "@ethersproject/keccak256@^5.6.1", "@ethersproject/keccak256@^5.7.0": +"@ethersproject/keccak256@5.7.0", "@ethersproject/keccak256@^5.0.3", "@ethersproject/keccak256@^5.6.1", "@ethersproject/keccak256@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/keccak256/-/keccak256-5.7.0.tgz#3186350c6e1cd6aba7940384ec7d6d9db01f335a" integrity sha512-2UcPboeL/iW+pSg6vZ6ydF8tCnv3Iu/8tUmLLzWWGzxWKFFqOBQFLo6uLUv6BDrLgCDfN28RJ/wtByx+jZ4KBg== @@ -793,7 +903,7 @@ resolved "https://registry.yarnpkg.com/@ethersproject/logger/-/logger-5.6.0.tgz#d7db1bfcc22fd2e4ab574cba0bb6ad779a9a3e7a" integrity sha512-BiBWllUROH9w+P21RzoxJKzqoqpkyM1pRnEKG69bulE9TSQD8SAIvTQqIMZmmCO8pUNkgLP1wndX1gKghSpBmg== -"@ethersproject/logger@5.7.0", "@ethersproject/logger@^5.6.0", "@ethersproject/logger@^5.7.0": +"@ethersproject/logger@5.7.0", "@ethersproject/logger@^5.0.5", "@ethersproject/logger@^5.6.0", "@ethersproject/logger@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/logger/-/logger-5.7.0.tgz#6ce9ae168e74fecf287be17062b590852c311892" integrity sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig== @@ -850,7 +960,7 @@ dependencies: "@ethersproject/logger" "^5.6.0" -"@ethersproject/properties@5.7.0", "@ethersproject/properties@^5.6.0", "@ethersproject/properties@^5.7.0": +"@ethersproject/properties@5.7.0", "@ethersproject/properties@^5.0.3", "@ethersproject/properties@^5.6.0", "@ethersproject/properties@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/properties/-/properties-5.7.0.tgz#a6e12cb0439b878aaf470f1902a176033067ed30" integrity sha512-J87jy8suntrAkIZtecpxEPxY//szqr1mlBaYlQ0r4RCaiD2hjheqF9s1LVE8vVuJCXisjIP+JgtK/Do54ej4Sw== @@ -1099,7 +1209,7 @@ "@ethersproject/constants" "^5.6.1" "@ethersproject/logger" "^5.6.0" -"@ethersproject/strings@5.7.0", "@ethersproject/strings@^5.6.1", "@ethersproject/strings@^5.7.0": +"@ethersproject/strings@5.7.0", "@ethersproject/strings@^5.0.4", "@ethersproject/strings@^5.6.1", "@ethersproject/strings@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/strings/-/strings-5.7.0.tgz#54c9d2a7c57ae8f1205c88a9d3a56471e14d5ed2" integrity sha512-/9nu+lj0YswRNSH0NXYqrh8775XNyEdUQAuf3f+SmOrnVewcJ5SBNAjF7lpgehKi4abvNNXyf+HX86czCdJ8Mg== @@ -1138,7 +1248,7 @@ "@ethersproject/rlp" "^5.6.1" "@ethersproject/signing-key" "^5.6.2" -"@ethersproject/transactions@5.7.0", "@ethersproject/transactions@^5.6.2", "@ethersproject/transactions@^5.7.0": +"@ethersproject/transactions@5.7.0", "@ethersproject/transactions@^5.0.0-beta.135", "@ethersproject/transactions@^5.6.2", "@ethersproject/transactions@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/transactions/-/transactions-5.7.0.tgz#91318fc24063e057885a6af13fdb703e1f993d3b" integrity sha512-kmcNicCp1lp8qanMTC3RIikGgoJ80ztTyvtsFvCYpSCfkjhD0jZ2LOrnbcuxuToLIUYYf+4XwD1rP+B/erDIhQ== @@ -1413,46 +1523,45 @@ resolved "https://registry.yarnpkg.com/@keep-network/bitcoin-spv-sol/-/bitcoin-spv-sol-3.4.0-solc-0.8.tgz#8b44c246ffab8ea993efe196f6bf385b1a3b84dc" integrity sha512-KlpY9BbasyLvYXSS7dsJktgRChu/yjdFLOX8ldGA/pltLicCm/l0F4oqxL8wSws9XD12vq9x0B5qzPygVLB2TQ== -"@keep-network/ecdsa@2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@keep-network/ecdsa/-/ecdsa-2.0.0.tgz#96d301cd272e61334bec173b5c4945758fc80853" - integrity sha512-KXSUOkZIKHR3I4H99CpgkPtuneI9AxgGo8+DmqGR56QB28kJCEXm7GC/yTInWS1lb7LzDwkjIm9VYAIGdLrsZw== +"@keep-network/ecdsa@2.1.0-dev.16": + version "2.1.0-dev.16" + resolved "https://registry.yarnpkg.com/@keep-network/ecdsa/-/ecdsa-2.1.0-dev.16.tgz#bd9d084b4f2b7bdda0a85a8f69200832d7c24fde" + integrity sha512-8k8XiPXneRtBN/4jVX+0qxqya8232cglRM/GrfYMv/niQkgvdolK2prXyd3LO7d4ot4WcyfLYU7uJfjjmc5rEw== dependencies: - "@keep-network/random-beacon" "2.0.0" - "@keep-network/sortition-pools" "2.0.0" + "@keep-network/random-beacon" "2.1.0-dev.16" + "@keep-network/sortition-pools" "^2.0.0-pre.16" "@openzeppelin/contracts" "^4.6.0" "@openzeppelin/contracts-upgradeable" "^4.6.0" - "@threshold-network/solidity-contracts" "1.2.1" + "@threshold-network/solidity-contracts" "1.3.0-dev.8" "@keep-network/hardhat-helpers@^0.6.0-pre.7": version "0.6.0-pre.7" resolved "https://registry.yarnpkg.com/@keep-network/hardhat-helpers/-/hardhat-helpers-0.6.0-pre.7.tgz#0b8fbc7c8ee7248f0babbfe4f2f957f5ef3f8507" integrity sha512-6inPdST2lAwxYLGl619udVLJDoW41maQzxc2MD1YmvUDlkrHsI4GmSmqkj+mJPtLVVEbxqCjwQNjyDkSmIICvQ== -"@keep-network/keep-core@1.3.0": - version "1.3.0" - resolved "https://registry.yarnpkg.com/@keep-network/keep-core/-/keep-core-1.3.0.tgz#09c1fd4d8d021b2afdff4801c7743d4c65b7bce3" - integrity sha512-c8efKWPx5da6OSdcm9/uvdDqrfwDcYAExNqPvomhLFC0dATEEFHsr/QOAqiBm4wCZZtWMKt0dYTm5QpGtx5TXQ== +"@keep-network/keep-core@1.8.1-goerli.0": + version "1.8.1-goerli.0" + resolved "https://registry.yarnpkg.com/@keep-network/keep-core/-/keep-core-1.8.1-goerli.0.tgz#238485aab51902021d42357bf59695225002f0ab" + integrity sha512-h3La/RqbyEZjBBPg8V+pcRFo3UpWZUF4CxWfXHZnUR4PnkZKnIDrTNFQPhpV2uYFZwrbJxTR9mzOq/DOAiXPwA== dependencies: - "@openzeppelin/contracts-ethereum-package" "^2.4.0" "@openzeppelin/upgrades" "^2.7.2" openzeppelin-solidity "2.4.0" -"@keep-network/keep-core@1.7.0": - version "1.7.0" - resolved "https://registry.yarnpkg.com/@keep-network/keep-core/-/keep-core-1.7.0.tgz#0923d539fc431810bd9b239f91e09a92a2b255a0" - integrity sha512-jU0ol4L5a7vFUXCTlYGsjZYhl87cUpiAYz9LgDgvM3sGmwNIVZ9dY3gziINXIbSSFZjoqh3eGDxDPcQmA+Rjrg== +"@keep-network/keep-core@>1.8.1-dev <1.8.1-goerli": + version "1.8.1-dev.0" + resolved "https://registry.yarnpkg.com/@keep-network/keep-core/-/keep-core-1.8.1-dev.0.tgz#d95864b25800214de43d8840376a68336cb12055" + integrity sha512-gFXkgN4PYOYCZ14AskL7fZHEFW5mu3BDd+TJKBuKZc1q9CgRMOK+dxpJnSctxmSH1tV+Ln9v9yqlSkfPCoiBHw== dependencies: "@openzeppelin/upgrades" "^2.7.2" openzeppelin-solidity "2.4.0" -"@keep-network/keep-ecdsa@1.2.1": - version "1.2.1" - resolved "https://registry.yarnpkg.com/@keep-network/keep-ecdsa/-/keep-ecdsa-1.2.1.tgz#5dcbc2c3808cce55a6e0d9e524868a0e9a0f1562" - integrity sha512-Oz0thgLoemt/nK6dl+MONU7TEoNR3lfbnMY/Aa0oWGcwR5PlNMiBVzYY7OT4oLZIK/MxEHDOWRQAijZEQffI7g== +"@keep-network/keep-ecdsa@>1.9.0-dev <1.9.0-ropsten": + version "1.9.0-goerli.0" + resolved "https://registry.yarnpkg.com/@keep-network/keep-ecdsa/-/keep-ecdsa-1.9.0-goerli.0.tgz#ce58b6639062bb4f73a257557aebb16447889e08" + integrity sha512-EA/oTcxmia5nznQ35ub9/5xBqBK4T+78oWYxASCc+THdPLalzriSAtQ517R4QnvkHi82NFhJjZH8WBoRXniddA== dependencies: - "@keep-network/keep-core" "1.3.0" - "@keep-network/sortition-pools" "1.1.2" + "@keep-network/keep-core" "1.8.1-goerli.0" + "@keep-network/sortition-pools" "1.2.0-dev.1" "@openzeppelin/upgrades" "^2.7.2" openzeppelin-solidity "2.3.0" @@ -1460,24 +1569,34 @@ version "0.0.1" resolved "https://codeload.github.com/keep-network/prettier-config-keep/tar.gz/a1a333e7ac49928a0f6ed39421906dd1e46ab0f3" -"@keep-network/random-beacon@2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@keep-network/random-beacon/-/random-beacon-2.0.0.tgz#ac52dd03da49ec5b0d39ba85c51de6c4c8f1b1dc" - integrity sha512-c5AodlBkMRTEID7bDE7BA9lqDZcH3AFqOPz5b9f5syy62DnuiMkHTHIEIvdWWCL26m21A4PPyPjw7XirauE/OA== +"@keep-network/random-beacon@2.1.0-dev.16": + version "2.1.0-dev.16" + resolved "https://registry.yarnpkg.com/@keep-network/random-beacon/-/random-beacon-2.1.0-dev.16.tgz#9f2b5c19aa79f6ff1a5498ba7b55eb170463161d" + integrity sha512-o+cG/VDkhUc91W+4bMplYCgOu0twSFICqarpv5k2ES8GcaafaeV8stXGhCxjvHYJjU/sfG8mhlQZhWdZixq+JQ== dependencies: - "@keep-network/sortition-pools" "2.0.0" - "@openzeppelin/contracts" "^4.6.0" + "@keep-network/sortition-pools" "^2.0.0-pre.16" + "@openzeppelin/contracts" "4.7.3" "@thesis/solidity-contracts" "github:thesis/solidity-contracts#4985bcf" - "@threshold-network/solidity-contracts" "1.2.1" + "@threshold-network/solidity-contracts" "1.3.0-dev.6" -"@keep-network/sortition-pools@1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@keep-network/sortition-pools/-/sortition-pools-1.1.2.tgz#cfeb31d574b02d1ae32649df01b87af07229010a" - integrity sha512-bBaKyxkXDc8kJHq3qeESMrJ02m+Wbh6Uz9qUpWn8Zq3aTZaKXRZfGWT+J71OiBlAdyB4WoHZymrddWHkjImHdQ== +"@keep-network/random-beacon@2.1.0-dev.17": + version "2.1.0-dev.17" + resolved "https://registry.yarnpkg.com/@keep-network/random-beacon/-/random-beacon-2.1.0-dev.17.tgz#5fb2621948aa2fe07ceb134ba76f737b7e6d85cd" + integrity sha512-alfd2sHdMrX15qKzM4zwkZ3l/CXboLoeos4l3WvChW978VJIwUPm2ZIXd8tNTaHlykQ57eSSX7esaLfIjeO3Kg== + dependencies: + "@keep-network/sortition-pools" "^2.0.0-pre.16" + "@openzeppelin/contracts" "4.7.3" + "@thesis/solidity-contracts" "github:thesis/solidity-contracts#4985bcf" + "@threshold-network/solidity-contracts" "1.3.0-dev.8" + +"@keep-network/sortition-pools@1.2.0-dev.1": + version "1.2.0-dev.1" + resolved "https://registry.yarnpkg.com/@keep-network/sortition-pools/-/sortition-pools-1.2.0-dev.1.tgz#2ee371f1dd1ff71f6d05c9ddc2a83a4a93ff56b3" + integrity sha512-CaOsvxNWHgXRFwPThDn3C/LiCwq9pL8ICLXXkysRSLw1Hx69wLnToaXYuwyXeIEy5pGqe5+288DBIqvJ3T4+jA== dependencies: "@openzeppelin/contracts" "^2.4.0" -"@keep-network/sortition-pools@2.0.0": +"@keep-network/sortition-pools@^2.0.0-pre.16": version "2.0.0" resolved "https://registry.yarnpkg.com/@keep-network/sortition-pools/-/sortition-pools-2.0.0.tgz#04e29ec756d74e00d13505a3e2a7763b06d7a08d" integrity sha512-82pDOKcDBvHBFblCt0ALVr6qC6mxk339ZqnCfYx1zIPaPhzkw1RKOv28AqPoqzhzcdqLIoPh8g9RS/M2Lplh1A== @@ -1485,14 +1604,14 @@ "@openzeppelin/contracts" "^4.3.2" "@thesis/solidity-contracts" "github:thesis/solidity-contracts#4985bcf" -"@keep-network/tbtc-v2.ts@^2.2.0": - version "2.2.0" - resolved "https://registry.yarnpkg.com/@keep-network/tbtc-v2.ts/-/tbtc-v2.ts-2.2.0.tgz#21a44c85f215606e198fa81c85f7913724e1942a" - integrity sha512-h1bnBjeRxUKVsoe3RVhUxzFDBGfL9xvzJ9MLt68x1S7gRaSJGnldlxT0e3jyUdo2mCa51IrJl0dRkDgBZBHs6w== +"@keep-network/tbtc-v2.ts@development": + version "2.3.0-dev.2" + resolved "https://registry.yarnpkg.com/@keep-network/tbtc-v2.ts/-/tbtc-v2.ts-2.3.0-dev.2.tgz#1ab0d51b61865428dc4491f2e0d8a0aeaaa3acfe" + integrity sha512-I5phMWvfCYIxp/JVjpJFFRJUhjSbkTGG/MCK4odMSypC443nhkCqEgWBQDzTzYXahO1MB4ptN0mNAs+0HbGk+A== dependencies: "@bitcoinerlab/secp256k1" "^1.0.5" - "@keep-network/ecdsa" "2.0.0" - "@keep-network/tbtc-v2" "1.5.1" + "@keep-network/ecdsa" "2.1.0-dev.16" + "@keep-network/tbtc-v2" "1.6.0-dev.5" bitcoinjs-lib "^6.1.5" bufio "^1.0.6" ecpair "^2.1.0" @@ -1501,25 +1620,26 @@ p-timeout "^4.1.0" wif "2.0.6" -"@keep-network/tbtc-v2@1.5.1": - version "1.5.1" - resolved "https://registry.yarnpkg.com/@keep-network/tbtc-v2/-/tbtc-v2-1.5.1.tgz#f1855b30f0c777cd7c612bf25b6c0e4d43356255" - integrity sha512-kSzdF2r2O4AZ4rmxSmMCxfZW9UmhE4s2UmKiAnp9aDTrTgIXppOY/5n9vOF9u6jhXQvHesp9VYtG7QDJaZtZ1Q== +"@keep-network/tbtc-v2@1.6.0-dev.5": + version "1.6.0-dev.5" + resolved "https://registry.yarnpkg.com/@keep-network/tbtc-v2/-/tbtc-v2-1.6.0-dev.5.tgz#849fc3331e95f109426557959f90ebc5499877bb" + integrity sha512-i2ilW62RiD+CH/W+vfNdRrQ1pQBKJb2vzG+3bo8AGnQGnCUhCM2tCio9bTOJrRC7a5v3ez3D1kkbf7uFLI8xUg== dependencies: "@keep-network/bitcoin-spv-sol" "3.4.0-solc-0.8" - "@keep-network/ecdsa" "2.0.0" - "@keep-network/random-beacon" "2.0.0" - "@keep-network/tbtc" "1.1.0" + "@keep-network/ecdsa" "2.1.0-dev.16" + "@keep-network/random-beacon" "2.1.0-dev.17" + "@keep-network/tbtc" "1.1.2-dev.1" "@openzeppelin/contracts" "^4.8.1" "@openzeppelin/contracts-upgradeable" "^4.8.1" "@thesis/solidity-contracts" "github:thesis/solidity-contracts#4985bcf" -"@keep-network/tbtc@1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@keep-network/tbtc/-/tbtc-1.1.0.tgz#9574ff355af04e77fb73a7bbe3e74cfd8764cf3c" - integrity sha512-V4sGR/t61PgkEF11GDZL5QNijVSdDhL7A7larcOSSCmKJOugxd5s+d+NdhYcHZhX9IS58ebtepvZan8TydHUHw== +"@keep-network/tbtc@1.1.2-dev.1": + version "1.1.2-dev.1" + resolved "https://registry.yarnpkg.com/@keep-network/tbtc/-/tbtc-1.1.2-dev.1.tgz#dd1e734c0fed50474c74d7170c8749127231d1f9" + integrity sha512-IRa0j1D7JBG8UpduaFxkaq2Ii6F61HhNMUBmxr7kAIZwj/yx8sYXWi921mn0L2Z+hAYNcwEUVhCM91VKQH29pQ== dependencies: - "@keep-network/keep-ecdsa" "1.2.1" + "@celo/contractkit" "^1.0.2" + "@keep-network/keep-ecdsa" ">1.9.0-dev <1.9.0-ropsten" "@summa-tx/bitcoin-spv-sol" "^3.1.0" "@summa-tx/relay-sol" "^2.0.2" openzeppelin-solidity "2.3.0" @@ -1832,11 +1952,6 @@ "@types/sinon-chai" "^3.2.3" "@types/web3" "1.0.19" -"@openzeppelin/contracts-ethereum-package@^2.4.0": - version "2.5.0" - resolved "https://registry.yarnpkg.com/@openzeppelin/contracts-ethereum-package/-/contracts-ethereum-package-2.5.0.tgz#cfb4b91f8132edde7e04bcd032575d4c6b544f4a" - integrity sha512-14CijdTyy4Y/3D3UUeFC2oW12nt1Yq1M8gFOtkuODEvSYPe3YSAKnKyhUeGf0UDNCZzwfGr15KdiFK6AoJjoSQ== - "@openzeppelin/contracts-upgradeable@^4.6.0", "@openzeppelin/contracts-upgradeable@^4.8.1": version "4.9.2" resolved "https://registry.yarnpkg.com/@openzeppelin/contracts-upgradeable/-/contracts-upgradeable-4.9.2.tgz#a817c75688f8daede420052fbcb34e52482e769e" @@ -1847,6 +1962,11 @@ resolved "https://registry.yarnpkg.com/@openzeppelin/contracts-upgradeable/-/contracts-upgradeable-4.5.2.tgz#90d9e47bacfd8693bfad0ac8a394645575528d05" integrity sha512-xgWZYaPlrEOQo3cBj97Ufiuv79SPd8Brh4GcFYhPgb6WvAq4ppz8dWKL6h+jLAK01rUqMRp/TS9AdXgAeNvCLA== +"@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@^2.4.0": version "2.5.1" resolved "https://registry.yarnpkg.com/@openzeppelin/contracts/-/contracts-2.5.1.tgz#c76e3fc57aa224da3718ec351812a4251289db31" @@ -2072,6 +2192,11 @@ resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.14.0.tgz#9fb3a3cf3132328151f353de4632e01e52102bea" integrity sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ== +"@sindresorhus/is@^4.0.0": + version "4.6.0" + resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-4.6.0.tgz#3c7c9c46e678feefe7a2e5bb609d3dbd665ffb3f" + integrity sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw== + "@solidity-parser/parser@^0.14.1": version "0.14.5" resolved "https://registry.yarnpkg.com/@solidity-parser/parser/-/parser-0.14.5.tgz#87bc3cc7b068e08195c219c91cd8ddff5ef1a804" @@ -2141,6 +2266,13 @@ dependencies: defer-to-connect "^1.0.1" +"@szmarczak/http-timer@^4.0.5": + version "4.0.6" + resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-4.0.6.tgz#b4a914bb62e7c272d4e5989fe4440f812ab1d807" + integrity sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w== + dependencies: + defer-to-connect "^2.0.0" + "@thesis-co/eslint-config@github:thesis/eslint-config": version "0.1.0" resolved "https://codeload.github.com/thesis/eslint-config/tar.gz/382331b5ba1ab79839eaf5d70407d059715cc285" @@ -2168,12 +2300,22 @@ dependencies: "@openzeppelin/contracts" "^4.1.0" -"@threshold-network/solidity-contracts@1.2.1": - version "1.2.1" - resolved "https://registry.yarnpkg.com/@threshold-network/solidity-contracts/-/solidity-contracts-1.2.1.tgz#8f9d8fe52f24b51acc52fdff765fdef3b8546587" - integrity sha512-v19gnQzdU52DLB6ZpkCW4YHTvApmwA1EG/YRxh+FRrzeDOC6rv+EqUhLgKpMtSpgBZT1ryqqLXm1QmjkW6CIGw== +"@threshold-network/solidity-contracts@1.3.0-dev.6": + version "1.3.0-dev.6" + resolved "https://registry.yarnpkg.com/@threshold-network/solidity-contracts/-/solidity-contracts-1.3.0-dev.6.tgz#41e34a84f409f63635e59f9a6ce170df1472b8a1" + integrity sha512-U7nMp+86M5qkjW7YUvT3qWgRiEEUIxqE96vkEiARTOkWX5JdLP2CXehkHCkEzjdgOCczmCp3fFtcgKFnQhhZ8A== dependencies: - "@keep-network/keep-core" "1.7.0" + "@keep-network/keep-core" ">1.8.1-dev <1.8.1-goerli" + "@openzeppelin/contracts" "~4.5.0" + "@openzeppelin/contracts-upgradeable" "~4.5.2" + "@thesis/solidity-contracts" "github:thesis/solidity-contracts#4985bcf" + +"@threshold-network/solidity-contracts@1.3.0-dev.8": + version "1.3.0-dev.8" + resolved "https://registry.yarnpkg.com/@threshold-network/solidity-contracts/-/solidity-contracts-1.3.0-dev.8.tgz#6de25dc6ce374cfbdf3b67c72097044631222f3a" + integrity sha512-s6SFZyf1xXgOdMK1zYnjsURnVz7Xxzf0z/34vH+hDg8n/G8L0jPR6Iz4laWSSL2y1P3ffFAFTUMvwfJMJitfVw== + dependencies: + "@keep-network/keep-core" ">1.8.1-dev <1.8.1-goerli" "@openzeppelin/contracts" "~4.5.0" "@openzeppelin/contracts-upgradeable" "~4.5.2" "@thesis/solidity-contracts" "github:thesis/solidity-contracts#4985bcf" @@ -2232,7 +2374,7 @@ dependencies: "@types/node" "*" -"@types/bn.js@^4.11.3", "@types/bn.js@^4.11.4": +"@types/bn.js@^4.11.3", "@types/bn.js@^4.11.4", "@types/bn.js@^4.11.5": version "4.11.6" resolved "https://registry.yarnpkg.com/@types/bn.js/-/bn.js-4.11.6.tgz#c306c70d9358aaea33cd4eda092a742b9505967c" integrity sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg== @@ -2246,6 +2388,16 @@ dependencies: "@types/node" "*" +"@types/cacheable-request@^6.0.1": + 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" "^3.1.4" + "@types/node" "*" + "@types/responselike" "^1.0.0" + "@types/cbor@^2.0.0": version "2.0.0" resolved "https://registry.yarnpkg.com/@types/cbor/-/cbor-2.0.0.tgz#c627afc2ee22f23f2337fecb34628a4f97c6afbb" @@ -2265,6 +2417,11 @@ resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.3.1.tgz#e2c6e73e0bdeb2521d00756d099218e9f5d90a04" integrity sha512-/zPMqDkzSZ8t3VtxOa4KPq7uzzW978M9Tvh+j7GHKuo6k6GTLxPJ4J5gE5cjfJ26pnXst0N5Hax8Sr0T2Mi9zQ== +"@types/country-data@^0.0.0": + version "0.0.0" + resolved "https://registry.yarnpkg.com/@types/country-data/-/country-data-0.0.0.tgz#6f5563cae3d148780c5b6539803a29bd93f8f1a1" + integrity sha512-lIxCk6G7AwmUagQ4gIQGxUBnvAq664prFD9nSAz6dgd1XmBXBtZABV/op+QsJsIyaP1GZsf/iXhYKHX3azSRCw== + "@types/debug@^4.1.5": version "4.1.8" resolved "https://registry.yarnpkg.com/@types/debug/-/debug-4.1.8.tgz#cef723a5d0a90990313faec2d1e22aee5eecb317" @@ -2272,6 +2429,31 @@ dependencies: "@types/ms" "*" +"@types/elliptic@^6.4.9": + version "6.4.17" + resolved "https://registry.yarnpkg.com/@types/elliptic/-/elliptic-6.4.17.tgz#6c9ff6ba137670c8bc3c65da2e23995b22ec3607" + integrity sha512-+NOzUIq9aenYuaIFS+8Gmv72r72zb12jttZsAsu4zEJ3QmQfGo958Kh0jQ+GJp5+uflE14KI4BcZqcsGCxTNFA== + dependencies: + "@types/bn.js" "*" + +"@types/ethereumjs-util@^5.2.0": + version "5.2.0" + resolved "https://registry.yarnpkg.com/@types/ethereumjs-util/-/ethereumjs-util-5.2.0.tgz#f49fe8114789ec0871721392c09318c3eb56671b" + integrity sha512-qwQgQqXXTRv2h2AlJef+tMEszLFkCB9dWnrJYIdAwqjubERXEc/geB+S3apRw0yQyTVnsBf8r6BhlrE8vx+3WQ== + dependencies: + "@types/bn.js" "*" + "@types/node" "*" + +"@types/google-libphonenumber@^7.4.17": + version "7.4.30" + resolved "https://registry.yarnpkg.com/@types/google-libphonenumber/-/google-libphonenumber-7.4.30.tgz#a47ed8f1f237bd43edbd1c8aff24400b0fd9b2fe" + integrity sha512-Td1X1ayRxePEm6/jPHUBs2tT6TzW1lrVB6ZX7ViPGellyzO/0xMNi+wx5nH6jEitjznq276VGIqjK5qAju0XVw== + +"@types/http-cache-semantics@*": + version "4.0.4" + resolved "https://registry.yarnpkg.com/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz#b979ebad3919799c979b17c72621c0bc0a31c6c4" + integrity sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA== + "@types/json-schema@^7.0.7": version "7.0.11" resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.11.tgz#d421b6c527a3037f7c84433fd2c4229e016863d3" @@ -2282,6 +2464,13 @@ resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== +"@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: + "@types/node" "*" + "@types/level-errors@*": version "3.0.0" resolved "https://registry.yarnpkg.com/@types/level-errors/-/level-errors-3.0.0.tgz#15c1f4915a5ef763b51651b15e90f6dc081b96a8" @@ -2296,6 +2485,11 @@ "@types/level-errors" "*" "@types/node" "*" +"@types/lodash@^4.14.170": + version "4.14.201" + resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.201.tgz#76f47cb63124e806824b6c18463daf3e1d480239" + integrity sha512-y9euML0cim1JrykNxADLfaG0FgD1g/yTHwUs/Jg9ZIU7WKj2/4IW9Lbb1WZbvck78W/lfGXFfe+u2EGfIJXdLQ== + "@types/lru-cache@^5.1.0": version "5.1.1" resolved "https://registry.yarnpkg.com/@types/lru-cache/-/lru-cache-5.1.1.tgz#c48c2e27b65d2a153b19bfc1a317e30872e01eef" @@ -2346,7 +2540,7 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-10.17.60.tgz#35f3d6213daed95da7f0f73e75bcc6980e90597b" integrity sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw== -"@types/node@^12.11.7", "@types/node@^12.6.1": +"@types/node@^12.11.7", "@types/node@^12.12.6", "@types/node@^12.6.1": version "12.20.55" resolved "https://registry.yarnpkg.com/@types/node/-/node-12.20.55.tgz#c329cbd434c42164f846b909bd6f85b5537f6240" integrity sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ== @@ -2373,6 +2567,13 @@ resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.7.tgz#63bb7d067db107cc1e457c303bc25d511febf6cb" integrity sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw== +"@types/randombytes@^2.0.0": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@types/randombytes/-/randombytes-2.0.3.tgz#c83a107ef51ae7a8611a7b964f54b21cb782bbed" + integrity sha512-+NRgihTfuURllWCiIAhm1wsJqzsocnqXM77V/CalsdJIYSRGEHMnritxh+6EsBklshC+clo1KgnN14qgSGeQdw== + dependencies: + "@types/node" "*" + "@types/readable-stream@^2.3.13": version "2.3.15" resolved "https://registry.yarnpkg.com/@types/readable-stream/-/readable-stream-2.3.15.tgz#3d79c9ceb1b6a57d5f6e6976f489b9b5384321ae" @@ -2381,6 +2582,13 @@ "@types/node" "*" safe-buffer "~5.1.1" +"@types/responselike@^1.0.0": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@types/responselike/-/responselike-1.0.3.tgz#cc29706f0a397cfe6df89debfe4bf5cea159db50" + integrity sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw== + dependencies: + "@types/node" "*" + "@types/secp256k1@^4.0.1": version "4.0.3" resolved "https://registry.yarnpkg.com/@types/secp256k1/-/secp256k1-4.0.3.tgz#1b8e55d8e00f08ee7220b4d59a6abe89c37a901c" @@ -2413,6 +2621,11 @@ resolved "https://registry.yarnpkg.com/@types/underscore/-/underscore-1.11.4.tgz#62e393f8bc4bd8a06154d110c7d042a93751def3" integrity sha512-uO4CD2ELOjw8tasUrAhvnn2W4A0ZECOvMjCivJr4gA9pGgjv+qxKWY9GLTMVEK8ej85BxQOocUyE7hImmSQYcg== +"@types/utf8@^2.1.6": + version "2.1.6" + resolved "https://registry.yarnpkg.com/@types/utf8/-/utf8-2.1.6.tgz#430cabb71a42d0a3613cce5621324fe4f5a25753" + integrity sha512-pRs2gYF5yoKYrgSaira0DJqVg2tFuF+Qjp838xS7K+mJyY2jJzjsrl6y17GbIa4uMRogMbxs+ghNCvKg6XyNrA== + "@types/web3@1.0.19": version "1.0.19" resolved "https://registry.yarnpkg.com/@types/web3/-/web3-1.0.19.tgz#46b85d91d398ded9ab7c85a5dd57cb33ac558924" @@ -2914,7 +3127,7 @@ balanced-match@^1.0.0: resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== -base-x@^3.0.2: +base-x@^3.0.2, base-x@^3.0.8: version "3.0.9" resolved "https://registry.yarnpkg.com/base-x/-/base-x-3.0.9.tgz#6349aaabb58526332de9f60995e548a53fe21320" integrity sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ== @@ -3023,6 +3236,15 @@ bip39@3.0.4: pbkdf2 "^3.0.9" randombytes "^2.0.1" +"bip39@https://github.com/bitcoinjs/bip39#d8ea080a18b40f301d4e2219a2991cd2417e83c2": + version "3.0.3" + resolved "https://github.com/bitcoinjs/bip39#d8ea080a18b40f301d4e2219a2991cd2417e83c2" + dependencies: + "@types/node" "11.11.6" + create-hash "^1.1.0" + pbkdf2 "^3.0.9" + randombytes "^2.0.1" + bitcoinjs-lib@^6.1.5: version "6.1.5" resolved "https://registry.yarnpkg.com/bitcoinjs-lib/-/bitcoinjs-lib-6.1.5.tgz#3b03509ae7ddd80a440f10fc38c4a97f0a028d8c" @@ -3060,6 +3282,18 @@ blakejs@^1.1.0: ts-node "^8.4.1" typescript "^3.6.4" +"bls12377js@https://github.com/celo-org/bls12377js#cb38a4cfb643c778619d79b20ca3e5283a2122a6": + version "0.1.0" + resolved "https://github.com/celo-org/bls12377js#cb38a4cfb643c778619d79b20ca3e5283a2122a6" + dependencies: + "@stablelib/blake2xs" "0.10.4" + "@types/node" "^12.11.7" + big-integer "^1.6.44" + chai "^4.2.0" + mocha "^6.2.2" + ts-node "^8.4.1" + typescript "^3.6.4" + bluebird@^3.5.0, bluebird@^3.5.2: version "3.7.2" resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" @@ -3338,6 +3572,11 @@ bytes@3.1.2: resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== +cacheable-lookup@^5.0.3: + version "5.0.4" + resolved "https://registry.yarnpkg.com/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz#5a6b865b2c44357be3d5ebc2a467b032719a7005" + integrity sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA== + cacheable-request@^6.0.0: version "6.1.0" resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-6.1.0.tgz#20ffb8bd162ba4be11e9567d823db651052ca912" @@ -3351,6 +3590,19 @@ cacheable-request@^6.0.0: normalize-url "^4.1.0" responselike "^1.0.2" +cacheable-request@^7.0.2: + 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" + http-cache-semantics "^4.0.0" + keyv "^4.0.0" + lowercase-keys "^2.0.0" + normalize-url "^6.0.1" + responselike "^2.0.0" + call-bind@^1.0.0, call-bind@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" @@ -3359,6 +3611,15 @@ call-bind@^1.0.0, call-bind@^1.0.2: function-bind "^1.1.1" get-intrinsic "^1.0.2" +call-bind@^1.0.4: + version "1.0.5" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.5.tgz#6fa2b7845ce0ea49bf4d8b9ef64727a2c2e2e513" + integrity sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ== + dependencies: + function-bind "^1.1.2" + get-intrinsic "^1.2.1" + set-function-length "^1.1.1" + callsites@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" @@ -3491,6 +3752,17 @@ ci-info@^2.0.0: resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== +cids@^0.7.1: + version "0.7.5" + resolved "https://registry.yarnpkg.com/cids/-/cids-0.7.5.tgz#60a08138a99bfb69b6be4ceb63bfef7a396b28b2" + integrity sha512-zT7mPeghoWAu+ppn8+BS1tQ5qGmbMfB4AregnQjA/qHY3GC1m1ptI9GkWNlgeu38r7CuRdXB47uY2XgAYt6QVA== + dependencies: + buffer "^5.5.0" + class-is "^1.1.0" + multibase "~0.6.0" + multicodec "^1.0.0" + multihashes "~0.4.15" + cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: version "1.0.4" resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" @@ -3499,6 +3771,11 @@ cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: inherits "^2.0.1" safe-buffer "^5.0.1" +class-is@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/class-is/-/class-is-1.1.0.tgz#9d3c0fba0440d211d843cec3dedfa48055005825" + integrity sha512-rhjH9AG1fvabIDoGRVH587413LPjTZgmDF9fOFCbFJQV4yuocX1mHxxvXI4g3cGwbVY9wAYIoKlg1N79frJKQw== + classic-level@^1.2.0: version "1.3.0" resolved "https://registry.yarnpkg.com/classic-level/-/classic-level-1.3.0.tgz#5e36680e01dc6b271775c093f2150844c5edd5c8" @@ -3649,6 +3926,15 @@ content-disposition@0.5.4: dependencies: safe-buffer "5.2.1" +content-hash@^2.5.2: + version "2.5.2" + resolved "https://registry.yarnpkg.com/content-hash/-/content-hash-2.5.2.tgz#bbc2655e7c21f14fd3bfc7b7d4bfe6e454c9e211" + integrity sha512-FvIQKy0S1JaWV10sMsA7TRx8bpU+pqPkhbsfvOJAdjRXvYxEckAwQWGwtRjiaJfh+E0DvcWUGqcdjwMGFjsSdw== + dependencies: + cids "^0.7.1" + multicodec "^0.5.5" + multihashes "^0.4.15" + content-type@~1.0.4, content-type@~1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.5.tgz#8b773162656d1d1086784c8f23a54ce6d73d7918" @@ -3759,6 +4045,13 @@ cross-fetch@3.0.4: node-fetch "2.6.0" whatwg-fetch "3.0.0" +cross-fetch@^3.0.6: + version "3.1.8" + resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.1.8.tgz#0327eba65fd68a7d119f8fb2bf9334a1a7956f82" + integrity sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg== + dependencies: + node-fetch "^2.6.12" + cross-spawn@^7.0.2: version "7.0.3" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" @@ -3879,6 +4172,13 @@ decompress-response@^3.2.0, decompress-response@^3.3.0: dependencies: mimic-response "^1.0.0" +decompress-response@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-6.0.0.tgz#ca387612ddb7e104bd16d85aab00d5ecf09c66fc" + integrity sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ== + dependencies: + mimic-response "^3.1.0" + decompress-tar@^4.0.0, decompress-tar@^4.1.0, decompress-tar@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/decompress-tar/-/decompress-tar-4.1.1.tgz#718cbd3fcb16209716e70a26b84e7ba4592e5af1" @@ -3961,6 +4261,11 @@ defer-to-connect@^1.0.1: resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-1.1.3.tgz#331ae050c08dcf789f8c83a7b81f0ed94f4ac591" integrity sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ== +defer-to-connect@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-2.0.1.tgz#8016bdb4143e4632b77a3449c6236277de520587" + integrity sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg== + deferred-leveldown@~5.3.0: version "5.3.0" resolved "https://registry.yarnpkg.com/deferred-leveldown/-/deferred-leveldown-5.3.0.tgz#27a997ad95408b61161aa69bd489b86c71b78058" @@ -3969,6 +4274,15 @@ deferred-leveldown@~5.3.0: abstract-leveldown "~6.2.1" inherits "^2.0.3" +define-data-property@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.1.tgz#c35f7cd0ab09883480d12ac5cb213715587800b3" + integrity sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ== + dependencies: + get-intrinsic "^1.2.1" + gopd "^1.0.1" + has-property-descriptors "^1.0.0" + define-properties@^1.1.2, define-properties@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.0.tgz#52988570670c9eacedd8064f4a990f2405849bd5" @@ -4673,6 +4987,15 @@ eth-lib@0.2.7: elliptic "^6.4.0" xhr-request-promise "^0.1.2" +eth-lib@0.2.8, eth-lib@^0.2.8: + version "0.2.8" + resolved "https://registry.yarnpkg.com/eth-lib/-/eth-lib-0.2.8.tgz#b194058bef4b220ad12ea497431d6cb6aa0623c8" + integrity sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw== + dependencies: + bn.js "^4.11.6" + elliptic "^6.4.0" + xhr-request-promise "^0.1.2" + eth-lib@^0.1.26: version "0.1.29" resolved "https://registry.yarnpkg.com/eth-lib/-/eth-lib-0.1.29.tgz#0c11f5060d42da9f931eab6199084734f4dbd1d9" @@ -4685,15 +5008,6 @@ eth-lib@^0.1.26: ws "^3.0.0" xhr-request-promise "^0.1.2" -eth-lib@^0.2.8: - version "0.2.8" - resolved "https://registry.yarnpkg.com/eth-lib/-/eth-lib-0.2.8.tgz#b194058bef4b220ad12ea497431d6cb6aa0623c8" - integrity sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw== - dependencies: - bn.js "^4.11.6" - elliptic "^6.4.0" - xhr-request-promise "^0.1.2" - ethereum-bloom-filters@^1.0.6: version "1.0.10" resolved "https://registry.yarnpkg.com/ethereum-bloom-filters/-/ethereum-bloom-filters-1.0.10.tgz#3ca07f4aed698e75bd134584850260246a5fed8a" @@ -4974,6 +5288,11 @@ eventemitter3@3.1.2: resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-3.1.2.tgz#2d3d48f9c346698fce83a85d7d664e98535df6e7" integrity sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q== +eventemitter3@4.0.4: + version "4.0.4" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.4.tgz#b5463ace635a083d018bdc7c917b4c5f10a85384" + integrity sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ== + events@^3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" @@ -5353,6 +5672,11 @@ function-bind@^1.1.1: resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== +function-bind@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" + integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== + function.prototype.name@^1.1.5: version "1.1.5" resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.5.tgz#cce0505fe1ffb80503e6f9e46cc64e46a12a9621" @@ -5426,6 +5750,16 @@ get-intrinsic@^1.2.0: has-proto "^1.0.1" has-symbols "^1.0.3" +get-intrinsic@^1.2.1: + version "1.2.2" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.2.tgz#281b7622971123e1ef4b3c90fd7539306da93f3b" + integrity sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA== + dependencies: + function-bind "^1.1.2" + has-proto "^1.0.1" + has-symbols "^1.0.3" + hasown "^2.0.0" + get-stdin@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-6.0.0.tgz#9e09bf712b360ab9225e812048f71fde9c89657b" @@ -5562,6 +5896,11 @@ globby@^11.0.3: merge2 "^1.4.1" slash "^3.0.0" +google-libphonenumber@^3.2.15: + version "3.2.33" + resolved "https://registry.yarnpkg.com/google-libphonenumber/-/google-libphonenumber-3.2.33.tgz#948b877914eb7f35fc6d311220472bf9bd6b27d4" + integrity sha512-1QKCvAlfq8zY1mviORI9lDzM3I/hwm9+h0CwYBTLq59DBbSHMd5zBOLqHZFiBLicRpwIz46Nynvbywj1XApKvA== + google-libphonenumber@^3.2.4: version "3.2.32" resolved "https://registry.yarnpkg.com/google-libphonenumber/-/google-libphonenumber-3.2.32.tgz#63c48a9c247b64a3bc2eec21bdf3fcfbf2e148c0" @@ -5591,6 +5930,23 @@ got@9.6.0: to-readable-stream "^1.0.0" url-parse-lax "^3.0.0" +got@^11.8.5: + 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" + "@types/cacheable-request" "^6.0.1" + "@types/responselike" "^1.0.0" + cacheable-lookup "^5.0.3" + cacheable-request "^7.0.2" + decompress-response "^6.0.0" + http2-wrapper "^1.0.0-beta.5.2" + lowercase-keys "^2.0.0" + p-cancelable "^2.0.0" + responselike "^2.0.0" + got@^7.1.0: version "7.1.0" resolved "https://registry.yarnpkg.com/got/-/got-7.1.0.tgz#05450fd84094e6bbea56f451a43a9c289166385a" @@ -5795,6 +6151,13 @@ hash.js@1.1.7, hash.js@^1.0.0, hash.js@^1.0.3, hash.js@^1.1.7: inherits "^2.0.3" minimalistic-assert "^1.0.1" +hasown@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.0.tgz#f4c513d454a57b7c7e1650778de226b11700546c" + integrity sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA== + dependencies: + function-bind "^1.1.2" + he@1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" @@ -5844,6 +6207,14 @@ http-signature@~1.2.0: jsprim "^1.2.2" sshpk "^1.7.0" +http2-wrapper@^1.0.0-beta.5.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/http2-wrapper/-/http2-wrapper-1.0.3.tgz#b8f55e0c1f25d4ebd08b3b0c2c079f9590800b3d" + integrity sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg== + dependencies: + quick-lru "^5.1.1" + resolve-alpn "^1.0.0" + https-proxy-agent@^5.0.0: version "5.0.1" resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz#c59ef224a04fe8b754f3db0063a25ea30d0005d6" @@ -5979,6 +6350,14 @@ ipaddr.js@1.9.1: resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== +is-arguments@^1.0.4: + version "1.1.1" + resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b" + integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + is-array-buffer@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.1.tgz#deb1db4fcae48308d54ef2442706c0393997052a" @@ -6075,6 +6454,13 @@ is-function@^1.0.1: resolved "https://registry.yarnpkg.com/is-function/-/is-function-1.0.2.tgz#4f097f30abf6efadac9833b17ca5dc03f8144e08" integrity sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ== +is-generator-function@^1.0.7: + version "1.0.10" + resolved "https://registry.yarnpkg.com/is-generator-function/-/is-generator-function-1.0.10.tgz#f1558baf1ac17e0deea7c0415c438351ff2b3c72" + integrity sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A== + dependencies: + has-tostringtag "^1.0.0" + is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: version "4.0.3" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" @@ -6174,6 +6560,13 @@ is-typed-array@^1.1.10, is-typed-array@^1.1.9: gopd "^1.0.1" has-tostringtag "^1.0.0" +is-typed-array@^1.1.3: + version "1.1.12" + resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.12.tgz#d0bab5686ef4a76f7a73097b95470ab199c57d4a" + integrity sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg== + dependencies: + which-typed-array "^1.1.11" + is-typedarray@^1.0.0, is-typedarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" @@ -6282,6 +6675,11 @@ json-buffer@3.0.0: resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898" integrity sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ== +json-buffer@3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" + integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== + json-schema-traverse@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" @@ -6395,6 +6793,13 @@ keyv@^3.0.0: dependencies: json-buffer "3.0.0" +keyv@^4.0.0: + version "4.5.4" + resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.4.tgz#a879a99e29452f942439f2a405e3af8b31d4de93" + integrity sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw== + dependencies: + json-buffer "3.0.1" + klaw@^1.0.0: version "1.3.1" resolved "https://registry.yarnpkg.com/klaw/-/klaw-1.3.1.tgz#4088433b46b3b1ba259d78785d8e96f73ba02439" @@ -6596,7 +7001,7 @@ lodash.truncate@^4.4.2: resolved "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193" integrity sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM= -lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.15: +lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.21: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== @@ -6796,6 +7201,11 @@ mimic-response@^1.0.0, mimic-response@^1.0.1: resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== +mimic-response@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-3.1.0.tgz#2d1d59af9c1b129815accc2c46a022a5ce1fa3c9" + integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ== + min-document@^2.19.0: version "2.19.0" resolved "https://registry.yarnpkg.com/min-document/-/min-document-2.19.0.tgz#7bd282e3f5842ed295bb748cdd9f1ffa2c824685" @@ -7025,6 +7435,46 @@ ms@2.1.3, ms@^2.1.1: resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== +multibase@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/multibase/-/multibase-0.7.0.tgz#1adfc1c50abe05eefeb5091ac0c2728d6b84581b" + integrity sha512-TW8q03O0f6PNFTQDvh3xxH03c8CjGaaYrjkl9UQPG6rz53TQzzxJVCIWVjzcbN/Q5Y53Zd0IBQBMVktVgNx4Fg== + dependencies: + base-x "^3.0.8" + buffer "^5.5.0" + +multibase@~0.6.0: + version "0.6.1" + resolved "https://registry.yarnpkg.com/multibase/-/multibase-0.6.1.tgz#b76df6298536cc17b9f6a6db53ec88f85f8cc12b" + integrity sha512-pFfAwyTjbbQgNc3G7D48JkJxWtoJoBMaR4xQUOuB8RnCgRqaYmWNFeJTTvrJ2w51bjLq2zTby6Rqj9TQ9elSUw== + dependencies: + base-x "^3.0.8" + buffer "^5.5.0" + +multicodec@^0.5.5: + version "0.5.7" + resolved "https://registry.yarnpkg.com/multicodec/-/multicodec-0.5.7.tgz#1fb3f9dd866a10a55d226e194abba2dcc1ee9ffd" + integrity sha512-PscoRxm3f+88fAtELwUnZxGDkduE2HD9Q6GHUOywQLjOGT/HAdhjLDYNZ1e7VR0s0TP0EwZ16LNUTFpoBGivOA== + dependencies: + varint "^5.0.0" + +multicodec@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/multicodec/-/multicodec-1.0.4.tgz#46ac064657c40380c28367c90304d8ed175a714f" + integrity sha512-NDd7FeS3QamVtbgfvu5h7fd1IlbaC4EQ0/pgU4zqE2vdHCmBGsUa0TiM8/TdSeG6BMPC92OOCf8F1ocE/Wkrrg== + dependencies: + buffer "^5.6.0" + varint "^5.0.0" + +multihashes@^0.4.15, multihashes@~0.4.15: + version "0.4.21" + resolved "https://registry.yarnpkg.com/multihashes/-/multihashes-0.4.21.tgz#dc02d525579f334a7909ade8a122dabb58ccfcb5" + integrity sha512-uVSvmeCWf36pU2nB4/1kzYZjsXD9vofZKpgudqkceYY5g2aZZXJ5r9lxuzoRLl1OAp28XljXsEJ/X/85ZsKmKw== + dependencies: + buffer "^5.5.0" + multibase "^0.7.0" + varint "^5.0.0" + murmur-128@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/murmur-128/-/murmur-128-0.2.1.tgz#a9f6568781d2350ecb1bf80c14968cadbeaa4b4d" @@ -7097,6 +7547,13 @@ node-fetch@2.6.0: resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.0.tgz#e633456386d4aa55863f676a7ab0daa8fdecb0fd" integrity sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA== +node-fetch@^2.6.12: + version "2.7.0" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.7.0.tgz#d0f0fa6e3e2dc1d27efcd8ad99d550bda94d187d" + integrity sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A== + dependencies: + whatwg-url "^5.0.0" + node-fetch@^2.6.7: version "2.6.7" resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad" @@ -7144,6 +7601,11 @@ normalize-url@^4.1.0: resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.1.tgz#0dd90cf1288ee1d1313b87081c9a5932ee48518a" integrity sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA== +normalize-url@^6.0.1: + version "6.1.0" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-6.1.0.tgz#40d0885b535deffe3f3147bec877d05fe4c5668a" + integrity sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A== + number-is-nan@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" @@ -7260,6 +7722,13 @@ oboe@2.1.4: dependencies: http-https "^1.0.0" +oboe@2.1.5: + version "2.1.5" + resolved "https://registry.yarnpkg.com/oboe/-/oboe-2.1.5.tgz#5554284c543a2266d7a38f17e073821fbde393cd" + integrity sha512-zRFWiF+FoicxEs3jNI/WYUrVEgA7DeET/InK0XQuudGHRg8iIob3cNPrJTKaz4004uaA9Pbe+Dwa8iluhjLZWA== + dependencies: + http-https "^1.0.0" + on-finished@2.4.1: version "2.4.1" resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f" @@ -7325,6 +7794,11 @@ p-cancelable@^1.0.0: resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-1.1.0.tgz#d078d15a3af409220c886f1d9a0ca2e441ab26cc" integrity sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw== +p-cancelable@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-2.1.1.tgz#aab7fbd416582fa32a3db49859c122487c5ed2cf" + integrity sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg== + p-finally@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" @@ -7696,6 +8170,11 @@ queue-microtask@^1.2.2, queue-microtask@^1.2.3: resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== +quick-lru@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932" + integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA== + randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" @@ -7862,6 +8341,11 @@ require-main-filename@^2.0.0: resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== +resolve-alpn@^1.0.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/resolve-alpn/-/resolve-alpn-1.2.1.tgz#b7adbdac3546aaaec20b45e7d8265927072726f9" + integrity sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g== + resolve-from@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" @@ -7898,6 +8382,13 @@ responselike@^1.0.2: dependencies: lowercase-keys "^1.0.0" +responselike@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/responselike/-/responselike-2.0.1.tgz#9a0bc8fdc252f3fb1cca68b016591059ba1422bc" + integrity sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw== + dependencies: + lowercase-keys "^2.0.0" + restore-cursor@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" @@ -8022,7 +8513,7 @@ scrypt-js@2.0.4: resolved "https://registry.yarnpkg.com/scrypt-js/-/scrypt-js-2.0.4.tgz#32f8c5149f0797672e551c07e230f834b6af5f16" integrity sha512-4KsaGcPnuhtCZQCxFxN3GVYIhKFPTdLd8PLC552XwbMndtD0cjRFAhDuuydXQ0h08ZfPgzqe6EKHozpuH74iDw== -scrypt-js@3.0.1, scrypt-js@^3.0.0: +scrypt-js@3.0.1, scrypt-js@^3.0.0, scrypt-js@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/scrypt-js/-/scrypt-js-3.0.1.tgz#d314a57c2aef69d1ad98a138a21fe9eafa9ee312" integrity sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA== @@ -8150,6 +8641,16 @@ set-blocking@^2.0.0: resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== +set-function-length@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.1.1.tgz#4bc39fafb0307224a33e106a7d35ca1218d659ed" + integrity sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ== + dependencies: + define-data-property "^1.1.1" + get-intrinsic "^1.2.1" + gopd "^1.0.1" + has-property-descriptors "^1.0.0" + setimmediate@1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.4.tgz#20e81de622d4a02588ce0c8da8973cbcf1d3138f" @@ -8567,6 +9068,23 @@ swarm-js@0.1.39: tar "^4.0.2" xhr-request-promise "^0.1.2" +swarm-js@^0.1.40: + version "0.1.42" + resolved "https://registry.yarnpkg.com/swarm-js/-/swarm-js-0.1.42.tgz#497995c62df6696f6e22372f457120e43e727979" + integrity sha512-BV7c/dVlA3R6ya1lMlSSNPLYrntt0LUq4YMgy3iwpCIc6rZnS5W2wUoctarZ5pXlpKtxDDf9hNziEkcfrxdhqQ== + dependencies: + bluebird "^3.5.0" + buffer "^5.0.5" + eth-lib "^0.1.26" + fs-extra "^4.0.2" + got "^11.8.5" + mime-types "^2.1.16" + mkdirp-promise "^5.0.1" + mock-fs "^4.1.0" + setimmediate "^1.0.5" + tar "^4.0.2" + xhr-request "^1.0.1" + table-layout@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/table-layout/-/table-layout-1.0.2.tgz#c4038a1853b0136d63365a734b6931cf4fad4a04" @@ -8917,6 +9435,11 @@ unbzip2-stream@^1.0.9: buffer "^5.2.1" through "^2.3.8" +underscore@1.12.1: + version "1.12.1" + resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.12.1.tgz#7bb8cc9b3d397e201cf8553336d262544ead829e" + integrity sha512-hEQt0+ZLDVUMhebKxL4x1BTtDY7bavVofhZ9KZ4aI26X9SRaE+Y3m83XUL1UP2jn8ynjndwCCpEHdUG+9pP1Tw== + underscore@1.9.1: version "1.9.1" resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.9.1.tgz#06dce34a0e68a7babc29b365b8e74b8925203961" @@ -9012,6 +9535,17 @@ util-deprecate@^1.0.1, util-deprecate@~1.0.1: resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== +util@^0.12.0: + version "0.12.5" + resolved "https://registry.yarnpkg.com/util/-/util-0.12.5.tgz#5f17a6059b73db61a875668781a1c2b136bd6fbc" + integrity sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA== + dependencies: + inherits "^2.0.3" + is-arguments "^1.0.4" + is-generator-function "^1.0.7" + is-typed-array "^1.1.3" + which-typed-array "^1.1.2" + utils-merge@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" @@ -9055,6 +9589,11 @@ validate-npm-package-license@^3.0.1: spdx-correct "^3.0.0" spdx-expression-parse "^3.0.0" +varint@^5.0.0: + version "5.0.2" + resolved "https://registry.yarnpkg.com/varint/-/varint-5.0.2.tgz#5b47f8a947eb668b848e034dcfa87d0ff8a7f7a4" + integrity sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow== + varuint-bitcoin@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/varuint-bitcoin/-/varuint-bitcoin-1.1.2.tgz#e76c138249d06138b480d4c5b40ef53693e24e92" @@ -9096,6 +9635,16 @@ web3-bzz@1.2.4: swarm-js "0.1.39" underscore "1.9.1" +web3-bzz@1.3.6: + version "1.3.6" + resolved "https://registry.yarnpkg.com/web3-bzz/-/web3-bzz-1.3.6.tgz#95f370aecc3ff6ad07f057e6c0c916ef09b04dde" + integrity sha512-ibHdx1wkseujFejrtY7ZyC0QxQ4ATXjzcNUpaLrvM6AEae8prUiyT/OloG9FWDgFD2CPLwzKwfSQezYQlANNlw== + dependencies: + "@types/node" "^12.12.6" + got "9.6.0" + swarm-js "^0.1.40" + underscore "1.12.1" + web3-core-helpers@1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/web3-core-helpers/-/web3-core-helpers-1.2.2.tgz#484974f4bd4a487217b85b0d7cfe841af0907619" @@ -9114,6 +9663,15 @@ web3-core-helpers@1.2.4: web3-eth-iban "1.2.4" web3-utils "1.2.4" +web3-core-helpers@1.3.6: + version "1.3.6" + resolved "https://registry.yarnpkg.com/web3-core-helpers/-/web3-core-helpers-1.3.6.tgz#c478246a9abe4e5456acf42657dac2f7c330be74" + integrity sha512-nhtjA2ZbkppjlxTSwG0Ttu6FcPkVu1rCN5IFAOVpF/L0SEt+jy+O5l90+cjDq0jAYvlBwUwnbh2mR9hwDEJCNA== + dependencies: + underscore "1.12.1" + web3-eth-iban "1.3.6" + web3-utils "1.3.6" + web3-core-method@1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/web3-core-method/-/web3-core-method-1.2.2.tgz#d4fe2bb1945b7152e5f08e4ea568b171132a1e56" @@ -9136,6 +9694,18 @@ web3-core-method@1.2.4: web3-core-subscriptions "1.2.4" web3-utils "1.2.4" +web3-core-method@1.3.6: + version "1.3.6" + resolved "https://registry.yarnpkg.com/web3-core-method/-/web3-core-method-1.3.6.tgz#4b0334edd94b03dfec729d113c69a4eb6ebc68ae" + integrity sha512-RyegqVGxn0cyYW5yzAwkPlsSEynkdPiegd7RxgB4ak1eKk2Cv1q2x4C7D2sZjeeCEF+q6fOkVmo2OZNqS2iQxg== + dependencies: + "@ethersproject/transactions" "^5.0.0-beta.135" + underscore "1.12.1" + web3-core-helpers "1.3.6" + web3-core-promievent "1.3.6" + web3-core-subscriptions "1.3.6" + web3-utils "1.3.6" + web3-core-promievent@1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/web3-core-promievent/-/web3-core-promievent-1.2.2.tgz#3b60e3f2a0c96db8a891c927899d29d39e66ab1c" @@ -9152,6 +9722,13 @@ web3-core-promievent@1.2.4: any-promise "1.3.0" eventemitter3 "3.1.2" +web3-core-promievent@1.3.6: + version "1.3.6" + resolved "https://registry.yarnpkg.com/web3-core-promievent/-/web3-core-promievent-1.3.6.tgz#6c27dc79de8f71b74f5d17acaf9aaf593d3cb0c9" + integrity sha512-Z+QzfyYDTXD5wJmZO5wwnRO8bAAHEItT1XNSPVb4J1CToV/I/SbF7CuF8Uzh2jns0Cm1109o666H7StFFvzVKw== + dependencies: + eventemitter3 "4.0.4" + web3-core-requestmanager@1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/web3-core-requestmanager/-/web3-core-requestmanager-1.2.2.tgz#667ba9ac724c9c76fa8965ae8a3c61f66e68d8d6" @@ -9174,6 +9751,18 @@ web3-core-requestmanager@1.2.4: web3-providers-ipc "1.2.4" web3-providers-ws "1.2.4" +web3-core-requestmanager@1.3.6: + version "1.3.6" + resolved "https://registry.yarnpkg.com/web3-core-requestmanager/-/web3-core-requestmanager-1.3.6.tgz#4fea269fe913fd4fca464b4f7c65cb94857b5b2a" + integrity sha512-2rIaeuqeo7QN1Eex7aXP0ZqeteJEPWXYFS/M3r3LXMiV8R4STQBKE+//dnHJXoo2ctzEB5cgd+7NaJM8S3gPyA== + dependencies: + underscore "1.12.1" + util "^0.12.0" + web3-core-helpers "1.3.6" + web3-providers-http "1.3.6" + web3-providers-ipc "1.3.6" + web3-providers-ws "1.3.6" + web3-core-subscriptions@1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/web3-core-subscriptions/-/web3-core-subscriptions-1.2.2.tgz#bf4ba23a653a003bdc3551649958cc0b080b068e" @@ -9192,6 +9781,15 @@ web3-core-subscriptions@1.2.4: underscore "1.9.1" web3-core-helpers "1.2.4" +web3-core-subscriptions@1.3.6: + version "1.3.6" + resolved "https://registry.yarnpkg.com/web3-core-subscriptions/-/web3-core-subscriptions-1.3.6.tgz#ee24e7974d1d72ff6c992c599deba4ef9b308415" + integrity sha512-wi9Z9X5X75OKvxAg42GGIf81ttbNR2TxzkAsp1g+nnp5K8mBwgZvXrIsDuj7Z7gx72Y45mWJADCWjk/2vqNu8g== + dependencies: + eventemitter3 "4.0.4" + underscore "1.12.1" + web3-core-helpers "1.3.6" + web3-core@1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/web3-core/-/web3-core-1.2.2.tgz#334b99c8222ef9cfd0339e27352f0b58ea789a2f" @@ -9217,6 +9815,19 @@ web3-core@1.2.4: web3-core-requestmanager "1.2.4" web3-utils "1.2.4" +web3-core@1.3.6: + version "1.3.6" + resolved "https://registry.yarnpkg.com/web3-core/-/web3-core-1.3.6.tgz#a6a761d1ff2f3ee462b8dab679229d2f8e267504" + integrity sha512-gkLDM4T1Sc0T+HZIwxrNrwPg0IfWI0oABSglP2X5ZbBAYVUeEATA0o92LWV8BeF+okvKXLK1Fek/p6axwM/h3Q== + dependencies: + "@types/bn.js" "^4.11.5" + "@types/node" "^12.12.6" + bignumber.js "^9.0.0" + web3-core-helpers "1.3.6" + web3-core-method "1.3.6" + web3-core-requestmanager "1.3.6" + web3-utils "1.3.6" + web3-eth-abi@1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/web3-eth-abi/-/web3-eth-abi-1.2.2.tgz#d5616d88a90020f894763423a9769f2da11fe37a" @@ -9235,6 +9846,15 @@ web3-eth-abi@1.2.4: underscore "1.9.1" web3-utils "1.2.4" +web3-eth-abi@1.3.6: + version "1.3.6" + resolved "https://registry.yarnpkg.com/web3-eth-abi/-/web3-eth-abi-1.3.6.tgz#4272ca48d817aa651bbf97b269f5ff10abc2b8a9" + integrity sha512-Or5cRnZu6WzgScpmbkvC6bfNxR26hqiKK4i8sMPFeTUABQcb/FU3pBj7huBLYbp9dH+P5W79D2MqwbWwjj9DoQ== + dependencies: + "@ethersproject/abi" "5.0.7" + underscore "1.12.1" + web3-utils "1.3.6" + web3-eth-accounts@1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/web3-eth-accounts/-/web3-eth-accounts-1.2.2.tgz#c187e14bff6baa698ac352220290222dbfd332e5" @@ -9271,6 +9891,23 @@ web3-eth-accounts@1.2.4: web3-core-method "1.2.4" web3-utils "1.2.4" +web3-eth-accounts@1.3.6: + version "1.3.6" + resolved "https://registry.yarnpkg.com/web3-eth-accounts/-/web3-eth-accounts-1.3.6.tgz#f9fcb50b28ee58090ab292a10d996155caa2b474" + integrity sha512-Ilr0hG6ONbCdSlVKffasCmNwftD5HsNpwyQASevocIQwHdTlvlwO0tb3oGYuajbKOaDzNTwXfz25bttAEoFCGA== + dependencies: + crypto-browserify "3.12.0" + eth-lib "0.2.8" + ethereumjs-common "^1.3.2" + ethereumjs-tx "^2.1.1" + scrypt-js "^3.0.1" + underscore "1.12.1" + uuid "3.3.2" + web3-core "1.3.6" + web3-core-helpers "1.3.6" + web3-core-method "1.3.6" + web3-utils "1.3.6" + web3-eth-contract@1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/web3-eth-contract/-/web3-eth-contract-1.2.2.tgz#84e92714918a29e1028ee7718f0712536e14e9a1" @@ -9301,6 +9938,21 @@ web3-eth-contract@1.2.4: web3-eth-abi "1.2.4" web3-utils "1.2.4" +web3-eth-contract@1.3.6: + version "1.3.6" + resolved "https://registry.yarnpkg.com/web3-eth-contract/-/web3-eth-contract-1.3.6.tgz#cccf4d32dc56917fb6923e778498a9ba2a5ba866" + integrity sha512-8gDaRrLF2HCg+YEZN1ov0zN35vmtPnGf3h1DxmJQK5Wm2lRMLomz9rsWsuvig3UJMHqZAQKD7tOl3ocJocQsmA== + dependencies: + "@types/bn.js" "^4.11.5" + underscore "1.12.1" + web3-core "1.3.6" + web3-core-helpers "1.3.6" + web3-core-method "1.3.6" + web3-core-promievent "1.3.6" + web3-core-subscriptions "1.3.6" + web3-eth-abi "1.3.6" + web3-utils "1.3.6" + web3-eth-ens@1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/web3-eth-ens/-/web3-eth-ens-1.2.2.tgz#0a4abed1d4cbdacbf5e1ab06e502d806d1192bc6" @@ -9329,6 +9981,21 @@ web3-eth-ens@1.2.4: web3-eth-contract "1.2.4" web3-utils "1.2.4" +web3-eth-ens@1.3.6: + version "1.3.6" + resolved "https://registry.yarnpkg.com/web3-eth-ens/-/web3-eth-ens-1.3.6.tgz#0d28c5d4ea7b4462ef6c077545a77956a6cdf175" + integrity sha512-n27HNj7lpSkRxTgSx+Zo7cmKAgyg2ElFilaFlUu/X2CNH23lXfcPm2bWssivH9z0ndhg0OyR4AYFZqPaqDHkJA== + dependencies: + content-hash "^2.5.2" + eth-ens-namehash "2.0.8" + underscore "1.12.1" + web3-core "1.3.6" + web3-core-helpers "1.3.6" + web3-core-promievent "1.3.6" + web3-eth-abi "1.3.6" + web3-eth-contract "1.3.6" + web3-utils "1.3.6" + web3-eth-iban@1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/web3-eth-iban/-/web3-eth-iban-1.2.2.tgz#76bec73bad214df7c4192388979a59fc98b96c5a" @@ -9345,6 +10012,14 @@ web3-eth-iban@1.2.4: bn.js "4.11.8" web3-utils "1.2.4" +web3-eth-iban@1.3.6: + version "1.3.6" + resolved "https://registry.yarnpkg.com/web3-eth-iban/-/web3-eth-iban-1.3.6.tgz#0d6ba21fe78f190af8919e9cd5453882457209e0" + integrity sha512-nfMQaaLA/zsg5W4Oy/EJQbs8rSs1vBAX6b/35xzjYoutXlpHMQadujDx2RerTKhSHqFXSJeQAfE+2f6mdhYkRQ== + dependencies: + bn.js "^4.11.9" + web3-utils "1.3.6" + web3-eth-personal@1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/web3-eth-personal/-/web3-eth-personal-1.2.2.tgz#eee1c86a8132fa16b5e34c6d421ca92e684f0be6" @@ -9369,6 +10044,18 @@ web3-eth-personal@1.2.4: web3-net "1.2.4" web3-utils "1.2.4" +web3-eth-personal@1.3.6: + version "1.3.6" + resolved "https://registry.yarnpkg.com/web3-eth-personal/-/web3-eth-personal-1.3.6.tgz#226137916754c498f0284f22c55924c87a2efcf0" + integrity sha512-pOHU0+/h1RFRYoh1ehYBehRbcKWP4OSzd4F7mDljhHngv6W8ewMHrAN8O1ol9uysN2MuCdRE19qkRg5eNgvzFQ== + dependencies: + "@types/node" "^12.12.6" + web3-core "1.3.6" + web3-core-helpers "1.3.6" + web3-core-method "1.3.6" + web3-net "1.3.6" + web3-utils "1.3.6" + web3-eth@1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/web3-eth/-/web3-eth-1.2.2.tgz#65a1564634a23b990efd1655bf94ad513904286c" @@ -9407,6 +10094,25 @@ web3-eth@1.2.4: web3-net "1.2.4" web3-utils "1.2.4" +web3-eth@1.3.6: + version "1.3.6" + resolved "https://registry.yarnpkg.com/web3-eth/-/web3-eth-1.3.6.tgz#2c650893d540a7a0eb1365dd5b2dca24ac919b7c" + integrity sha512-9+rnywRRpyX3C4hfsAQXPQh6vHh9XzQkgLxo3gyeXfbhbShUoq2gFVuy42vsRs//6JlsKdyZS7Z3hHPHz2wreA== + dependencies: + underscore "1.12.1" + web3-core "1.3.6" + web3-core-helpers "1.3.6" + web3-core-method "1.3.6" + web3-core-subscriptions "1.3.6" + web3-eth-abi "1.3.6" + web3-eth-accounts "1.3.6" + web3-eth-contract "1.3.6" + web3-eth-ens "1.3.6" + web3-eth-iban "1.3.6" + web3-eth-personal "1.3.6" + web3-net "1.3.6" + web3-utils "1.3.6" + web3-net@1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/web3-net/-/web3-net-1.2.2.tgz#5c3226ca72df7c591422440ce6f1203fd42ddad9" @@ -9425,6 +10131,15 @@ web3-net@1.2.4: web3-core-method "1.2.4" web3-utils "1.2.4" +web3-net@1.3.6: + version "1.3.6" + resolved "https://registry.yarnpkg.com/web3-net/-/web3-net-1.3.6.tgz#a56492e2227475e38db29394f8bac305a2446e41" + integrity sha512-KhzU3wMQY/YYjyMiQzbaLPt2kut88Ncx2iqjy3nw28vRux3gVX0WOCk9EL/KVJBiAA/fK7VklTXvgy9dZnnipw== + dependencies: + web3-core "1.3.6" + web3-core-method "1.3.6" + web3-utils "1.3.6" + web3-providers-http@1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/web3-providers-http/-/web3-providers-http-1.2.2.tgz#155e55c1d69f4c5cc0b411ede40dea3d06720956" @@ -9441,6 +10156,14 @@ web3-providers-http@1.2.4: web3-core-helpers "1.2.4" xhr2-cookies "1.1.0" +web3-providers-http@1.3.6: + version "1.3.6" + resolved "https://registry.yarnpkg.com/web3-providers-http/-/web3-providers-http-1.3.6.tgz#36e8724a7424d52827819d53fd75dbf31f5422c2" + integrity sha512-OQkT32O1A06dISIdazpGLveZcOXhEo5cEX6QyiSQkiPk/cjzDrXMw4SKZOGQbbS1+0Vjizm1Hrp7O8Vp2D1M5Q== + dependencies: + web3-core-helpers "1.3.6" + xhr2-cookies "1.1.0" + web3-providers-ipc@1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/web3-providers-ipc/-/web3-providers-ipc-1.2.2.tgz#c6d165a12bc68674b4cdd543ea18aec79cafc2e8" @@ -9459,6 +10182,15 @@ web3-providers-ipc@1.2.4: underscore "1.9.1" web3-core-helpers "1.2.4" +web3-providers-ipc@1.3.6: + version "1.3.6" + resolved "https://registry.yarnpkg.com/web3-providers-ipc/-/web3-providers-ipc-1.3.6.tgz#cef8d12c1ebb47adce5ebf597f553c623362cb4a" + integrity sha512-+TVsSd2sSVvVgHG4s6FXwwYPPT91boKKcRuEFXqEfAbUC5t52XOgmyc2LNiD9LzPhed65FbV4LqICpeYGUvSwA== + dependencies: + oboe "2.1.5" + underscore "1.12.1" + web3-core-helpers "1.3.6" + web3-providers-ws@1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/web3-providers-ws/-/web3-providers-ws-1.2.2.tgz#d2c05c68598cea5ad3fa6ef076c3bcb3ca300d29" @@ -9477,6 +10209,16 @@ web3-providers-ws@1.2.4: underscore "1.9.1" web3-core-helpers "1.2.4" +web3-providers-ws@1.3.6: + version "1.3.6" + resolved "https://registry.yarnpkg.com/web3-providers-ws/-/web3-providers-ws-1.3.6.tgz#e1df617bc89d66165abdf2191da0014c505bfaac" + integrity sha512-bk7MnJf5or0Re2zKyhR3L3CjGululLCHXx4vlbc/drnaTARUVvi559OI5uLytc/1k5HKUUyENAxLvetz2G1dnQ== + dependencies: + eventemitter3 "4.0.4" + underscore "1.12.1" + web3-core-helpers "1.3.6" + websocket "^1.0.32" + web3-shh@1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/web3-shh/-/web3-shh-1.2.2.tgz#44ed998f2a6ba0ec5cb9d455184a0f647826a49c" @@ -9497,6 +10239,16 @@ web3-shh@1.2.4: web3-core-subscriptions "1.2.4" web3-net "1.2.4" +web3-shh@1.3.6: + version "1.3.6" + resolved "https://registry.yarnpkg.com/web3-shh/-/web3-shh-1.3.6.tgz#4e3486c7eca5cbdb87f88910948223a5b7ea6c20" + integrity sha512-9zRo415O0iBslxBnmu9OzYjNErzLnzOsy+IOvSpIreLYbbAw0XkDWxv3SfcpKnTIWIACBR4AYMIxmmyi5iB3jw== + dependencies: + web3-core "1.3.6" + web3-core-method "1.3.6" + web3-core-subscriptions "1.3.6" + web3-net "1.3.6" + web3-utils@1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/web3-utils/-/web3-utils-1.2.2.tgz#b53a08c40d2c3f31d3c4a28e7d749405df99c8c0" @@ -9525,6 +10277,20 @@ web3-utils@1.2.4: underscore "1.9.1" utf8 "3.0.0" +web3-utils@1.3.6: + version "1.3.6" + resolved "https://registry.yarnpkg.com/web3-utils/-/web3-utils-1.3.6.tgz#390bc9fa3a7179746963cfaca55bb80ac4d8dc10" + integrity sha512-hHatFaQpkQgjGVER17gNx8u1qMyaXFZtM0y0XLGH1bzsjMPlkMPLRcYOrZ00rOPfTEuYFOdrpGOqZXVmGrMZRg== + dependencies: + bn.js "^4.11.9" + eth-lib "0.2.8" + ethereum-bloom-filters "^1.0.6" + ethjs-unit "0.1.6" + number-to-bn "1.7.0" + randombytes "^2.1.0" + underscore "1.12.1" + utf8 "3.0.0" + web3-utils@^1.0.0-beta.31: version "1.7.3" resolved "https://registry.yarnpkg.com/web3-utils/-/web3-utils-1.7.3.tgz#b214d05f124530d8694ad364509ac454d05f207c" @@ -9566,12 +10332,25 @@ web3@1.2.4: web3-shh "1.2.4" web3-utils "1.2.4" +web3@1.3.6: + version "1.3.6" + resolved "https://registry.yarnpkg.com/web3/-/web3-1.3.6.tgz#599425461c3f9a8cbbefa70616438995f4a064cc" + integrity sha512-jEpPhnL6GDteifdVh7ulzlPrtVQeA30V9vnki9liYlUvLV82ZM7BNOQJiuzlDePuE+jZETZSP/0G/JlUVt6pOA== + dependencies: + web3-bzz "1.3.6" + web3-core "1.3.6" + web3-eth "1.3.6" + web3-eth-personal "1.3.6" + web3-net "1.3.6" + web3-shh "1.3.6" + web3-utils "1.3.6" + webidl-conversions@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== -websocket@^1.0.29: +websocket@^1.0.29, websocket@^1.0.32: version "1.0.34" resolved "https://registry.yarnpkg.com/websocket/-/websocket-1.0.34.tgz#2bdc2602c08bf2c82253b730655c0ef7dcab3111" integrity sha512-PRDso2sGwF6kM75QykIesBijKSVceR6jL2G8NGYyq2XrItNC2P5/qL5XeR056GhA+Ly7JMFvJb9I312mJfmqnQ== @@ -9627,6 +10406,17 @@ which-module@^2.0.0: resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.1.tgz#776b1fe35d90aebe99e8ac15eb24093389a4a409" integrity sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ== +which-typed-array@^1.1.11, which-typed-array@^1.1.2: + version "1.1.13" + resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.13.tgz#870cd5be06ddb616f504e7b039c4c24898184d36" + integrity sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow== + dependencies: + available-typed-arrays "^1.0.5" + call-bind "^1.0.4" + for-each "^0.3.3" + gopd "^1.0.1" + has-tostringtag "^1.0.0" + which-typed-array@^1.1.9: version "1.1.9" resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.9.tgz#307cf898025848cf995e795e8423c7f337efbde6" @@ -9752,7 +10542,7 @@ xhr-request-promise@^0.1.2: dependencies: xhr-request "^1.1.0" -xhr-request@^1.1.0: +xhr-request@^1.0.1, xhr-request@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/xhr-request/-/xhr-request-1.1.0.tgz#f4a7c1868b9f198723444d82dcae317643f2e2ed" integrity sha512-Y7qzEaR3FDtL3fP30k9wO/e+FBnBByZeybKOhASsGP30NIkRAAkKD/sCnLvgEfAIEC1rcmK7YG8f4oEnIrrWzA== From 6d4e08920d891702c6cf697218088b0c6a4de072 Mon Sep 17 00:00:00 2001 From: Tomasz Slabon Date: Sun, 12 Nov 2023 18:17:29 +0100 Subject: [PATCH 14/22] Fix usage of tbtc libraries --- system-tests/test/deposit-redemption.test.ts | 18 +++++++++--------- system-tests/test/minting-unminting.test.ts | 7 +++---- 2 files changed, 12 insertions(+), 13 deletions(-) diff --git a/system-tests/test/deposit-redemption.test.ts b/system-tests/test/deposit-redemption.test.ts index b09a77523..a055e2576 100644 --- a/system-tests/test/deposit-redemption.test.ts +++ b/system-tests/test/deposit-redemption.test.ts @@ -364,14 +364,15 @@ describe("System Test - Deposit and redemption", () => { )}` ) - await depositorTbtc.redemptions.requestRedemption( - // Use the depositor's address as the redeemer's address. - depositorBitcoinAddress, + await depositorTbtc.tbtcContracts.bridge.requestRedemption( + systemTestsContext.walletBitcoinKeyPair.publicKey.compressed, + sweepUtxo, + redeemerOutputScript, requestedAmount ) console.log( - `Requested redemption of amount ${requestedAmount} to script ${redeemerOutputScript} on the bridge` + `Requested redemption of ${requestedAmount} satoshis to script ${redeemerOutputScript} on the bridge` ) redemptionRequest = @@ -667,15 +668,14 @@ describe("System Test - Deposit and redemption", () => { )}` ) - depositorTbtc.tbtcContracts.tbtcToken.requestRedemption( - systemTestsContext.walletBitcoinKeyPair.publicKey.compressed, - sweepUtxo, - redeemerOutputScript, + await depositorTbtc.redemptions.requestRedemption( + // Use the depositor's address as the redeemer's address. + depositorBitcoinAddress, tbtcBalanceOfDepositor ) console.log( - `Requested redemption of ${tbtcBalanceOfDepositor} TBTC tokens to script ${redeemerOutputScript} on the bridge` + `Requested redemption of ${requestedAmount} satoshis to script ${redeemerOutputScript} on the bridge` ) redemptionRequest = diff --git a/system-tests/test/minting-unminting.test.ts b/system-tests/test/minting-unminting.test.ts index d94807c78..8bccae206 100644 --- a/system-tests/test/minting-unminting.test.ts +++ b/system-tests/test/minting-unminting.test.ts @@ -382,10 +382,9 @@ describe("System Test - Minting and unminting", () => { )}` ) - depositorTbtc.tbtcContracts.tbtcToken.requestRedemption( - systemTestsContext.depositorBitcoinKeyPair.publicKey.compressed, - sweepUtxo, - redeemerOutputScript, + await depositorTbtc.redemptions.requestRedemption( + // Use the depositor's address as the redeemer's address. + depositorBitcoinAddress, unmintedAmount ) From ac85bbfb059f3b4d1771fd1fe46ffc7f21de5c99 Mon Sep 17 00:00:00 2001 From: Tomasz Slabon Date: Mon, 13 Nov 2023 14:14:57 +0100 Subject: [PATCH 15/22] Minor updates to test scenarios --- system-tests/test/deposit-redemption.test.ts | 14 +++++++------- system-tests/test/minting-unminting.test.ts | 8 ++++---- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/system-tests/test/deposit-redemption.test.ts b/system-tests/test/deposit-redemption.test.ts index a055e2576..92f73b8fb 100644 --- a/system-tests/test/deposit-redemption.test.ts +++ b/system-tests/test/deposit-redemption.test.ts @@ -449,13 +449,13 @@ describe("System Test - Deposit and redemption", () => { }) it("should close the redemption request on the bridge", async () => { - const request = - await maintainerTbtc.redemptions.getRedemptionRequests( + await expect( + maintainerTbtc.redemptions.getRedemptionRequests( depositorBitcoinAddress, systemTestsContext.walletBitcoinKeyPair.publicKey.compressed, "pending" ) - expect(request.requestedAt).to.be.equal(0) + ).to.be.rejectedWith("Redemption request does not exist") }) it("should decrease Bridge's balance in the bank", async () => { @@ -526,7 +526,7 @@ describe("System Test - Deposit and redemption", () => { - Output index: ${depositUtxo.outputIndex} `) - await deposit.initiateMinting() + await deposit.initiateMinting(depositUtxo) console.log(` Deposit revealed on Ethereum chain @@ -758,13 +758,13 @@ describe("System Test - Deposit and redemption", () => { }) it("should close the redemption request on the bridge", async () => { - const request = - await maintainerTbtc.redemptions.getRedemptionRequests( + await expect( + maintainerTbtc.redemptions.getRedemptionRequests( depositorBitcoinAddress, systemTestsContext.walletBitcoinKeyPair.publicKey.compressed, "pending" ) - expect(request.requestedAt).to.be.equal(0) + ).to.be.rejectedWith("Redemption request does not exist") }) it("should decrease Bridge's balance in the bank", async () => { diff --git a/system-tests/test/minting-unminting.test.ts b/system-tests/test/minting-unminting.test.ts index 8bccae206..2e30c55a5 100644 --- a/system-tests/test/minting-unminting.test.ts +++ b/system-tests/test/minting-unminting.test.ts @@ -232,7 +232,7 @@ describe("System Test - Minting and unminting", () => { // the Bitcoin chain is in sync and then start the revealing process. await new Promise((r) => setTimeout(r, 3000)) - await deposit.initiateMinting() + await deposit.initiateMinting(depositUtxo) console.log(` Deposit revealed on Ethereum chain @@ -472,14 +472,14 @@ describe("System Test - Minting and unminting", () => { }) it("should close the redemption request on the bridge", async () => { - const request = - await maintainerTbtc.redemptions.getRedemptionRequests( + await expect( + maintainerTbtc.redemptions.getRedemptionRequests( depositorBitcoinAddress, systemTestsContext.walletBitcoinKeyPair.publicKey .compressed, "pending" ) - expect(request.requestedAt).to.be.equal(0) + ).to.be.rejectedWith("Redemption request does not exist") }) it("should decrease Bridge's balance in the bank", async () => { From 42442d2ac201307e7d3955af17ee40c395da356c Mon Sep 17 00:00:00 2001 From: Tomasz Slabon Date: Tue, 14 Nov 2023 12:37:11 +0100 Subject: [PATCH 16/22] Removed redundant scenario --- system-tests/test/deposit-redemption.test.ts | 374 ++----------------- 1 file changed, 26 insertions(+), 348 deletions(-) diff --git a/system-tests/test/deposit-redemption.test.ts b/system-tests/test/deposit-redemption.test.ts index 92f73b8fb..f48ca2e56 100644 --- a/system-tests/test/deposit-redemption.test.ts +++ b/system-tests/test/deposit-redemption.test.ts @@ -33,6 +33,25 @@ import type { SystemTestsContext } from "./utils/context" chai.use(chaiAsPromised) +/** + * This system test scenario performs a single deposit and redemption. + * + * The scenario consists of the following steps: + * 1. The depositor broadcasts the deposit transaction on BTC chain and reveals + * it to the bridge. + * 2. The wallet broadcasts the sweep transaction of the given deposit on BTC + * chain and submits the sweep proof to the bridge. + * 3. The depositor (redeemer) requests the redemption of its entire bank + * balance. + * 4. The wallet broadcasts the redemption transaction handling the given + * request and submits the redemption proof to the bridge. + * + * Following prerequisites must be fulfilled to make a successful pass: + * - The depositor's BTC balance must allow to perform the deposit + * - tBTC v2 contracts must be deployed on used Ethereum network + * - A fresh live wallet (with no main UTXO yet) must be registered in + * the bridge + */ describe("System Test - Deposit and redemption", () => { let systemTestsContext: SystemTestsContext @@ -43,7 +62,6 @@ describe("System Test - Deposit and redemption", () => { let bank: Contract let relay: Contract - let tbtc: Contract let electrumClient: ElectrumClient let depositorTbtc: TBTC @@ -58,13 +76,10 @@ describe("System Test - Deposit and redemption", () => { // Initial backoff step in milliseconds that will be increased exponentially for // subsequent Electrum retry attempts. const ELECTRUM_RETRY_BACKOFF_STEP_MS = 10000 // 10sec - // Multiplier to convert satoshi to TBTC token units. - const SATOSHI_MULTIPLIER = BigNumber.from(10000000000) let depositReceipt: DepositReceipt let depositUtxo: BitcoinUtxo let sweepUtxo: BitcoinUtxo - let redemptionUtxo: BitcoinUtxo | undefined let depositorBitcoinAddress: string @@ -87,13 +102,6 @@ describe("System Test - Deposit and redemption", () => { maintainer ) - const tbtcDeploymentInfo = deployedContracts.TBTC - tbtc = new Contract( - tbtcDeploymentInfo.address, - tbtcDeploymentInfo.abi, - maintainer - ) - electrumClient = ElectrumClient.fromUrl( electrumUrl, undefined, @@ -166,26 +174,7 @@ describe("System Test - Deposit and redemption", () => { ) }) - context("when deposit is made and revealed without a vault", () => { - /** - * This system test scenario performs a single deposit and redemption. - * - * The scenario consists of the following steps: - * 1. The depositor broadcasts the deposit transaction on BTC chain and - * reveals it to the bridge without providing a vault address. - * 2. The wallet broadcasts the sweep transaction of the given deposit on BTC - * chain and submits the sweep proof to the bridge. - * 3. The depositor (redeemer) requests the redemption of its entire bank - * balance. - * 4. The wallet broadcasts the redemption transaction handling the given - * request and submits the redemption proof to the bridge. - * - * Following prerequisites must be fulfilled to make a successful pass: - * - The depositor's BTC balance must allow to perform the deposit - * - tBTC v2 contracts must be deployed on used Ethereum network - * - A fresh live wallet (with no main UTXO yet) must be registered in - * the bridge - */ + context("when deposit is made and revealed", () => { before("make and reveal deposit", async () => { const deposit = await depositorTbtc.deposits.initiateDeposit( // Use the depositor's address as the recovery address. @@ -409,323 +398,12 @@ describe("System Test - Deposit and redemption", () => { before( "make the redemption and submit redemption proof", async () => { - ;({ - transactionHash: redemptionTxHash, - newMainUtxo: redemptionUtxo, - } = await walletTx.redemption.submitTransaction( - systemTestsContext.walletBitcoinKeyPair.wif, - sweepUtxo, - [redemptionRequest.redeemerOutputScript] - )) - - console.log( - "Redemption made on Bitcoin chain:\n" + - `- Transaction hash: ${redemptionTxHash}` - ) - - await waitTransactionConfirmed(electrumClient, redemptionTxHash) - - await fakeRelayDifficulty( - relay, - electrumClient, - redemptionTxHash - ) - - await maintainerTbtc.maintenance.spv.submitRedemptionProof( - redemptionTxHash, - sweepUtxo, - systemTestsContext.walletBitcoinKeyPair.publicKey.compressed - ) - - console.log("Redemption proved on the bridge") - } - ) - - it("should broadcast the redemption transaction on the Bitcoin network", async () => { - expect( - (await electrumClient.getRawTransaction(redemptionTxHash)) - .transactionHex.length - ).to.be.greaterThan(0) - }) - - it("should close the redemption request on the bridge", async () => { - await expect( - maintainerTbtc.redemptions.getRedemptionRequests( - depositorBitcoinAddress, - systemTestsContext.walletBitcoinKeyPair.publicKey.compressed, - "pending" - ) - ).to.be.rejectedWith("Redemption request does not exist") - }) - - it("should decrease Bridge's balance in the bank", async () => { - const actualBalance = await bank.balanceOf(bridgeAddress) - - expect(actualBalance).to.be.equal(0) - }) - } - ) - }) - }) - }) - - context("when deposit is made and revealed with a vault", () => { - /** - * This system test scenario performs a single deposit and redemption. - * - * The scenario consists of the following steps: - * 1. The depositor broadcasts the deposit transaction on BTC chain and - * reveals it to the bridge with the vault address provided. - * 2. The wallet broadcasts the sweep transaction of the given deposit on BTC - * chain and submits the sweep proof to the bridge. - * 3. The depositor (redeemer) requests the redemption of its entire TBTC - * balance. - * 4. The wallet broadcasts the redemption transaction handling the given - * request and submits the redemption proof to the bridge. - * - * Following prerequisites must be fulfilled to make a successful pass: - * - The depositor's BTC balance must allow to perform the deposit - * - tBTC v2 contracts must be deployed on used Ethereum network - * - A live wallet (with the main UTXO from the previous system test) must - * be registered in the bridge - */ - before("make and reveal deposit", async () => { - const deposit = await depositorTbtc.deposits.initiateDeposit( - // Use the depositor's address as the recovery address. - depositorBitcoinAddress - ) - depositReceipt = deposit.getReceipt() - const depositScript = DepositScript.fromReceipt(depositReceipt) - const depositFunding = DepositFunding.fromScript(depositScript) - - console.log(` - Deposit receipt generated: - - depositor: ${depositReceipt.depositor.identifierHex} - - walletPublicKeyHash: ${depositReceipt.walletPublicKeyHash} - - refundPublicKeyHash: ${depositReceipt.refundPublicKeyHash} - - blindingFactor: ${depositReceipt.blindingFactor} - - refundLocktime: ${depositReceipt.refundLocktime} - `) - - const depositorUtxos = - await electrumClient.findAllUnspentTransactionOutputs( - depositorBitcoinAddress - ) - - ;({ depositUtxo } = await depositFunding.submitTransaction( - depositAmount, - depositorUtxos, - depositTxFee, - systemTestsContext.depositorBitcoinKeyPair.wif, - electrumClient - )) - - console.log(` - Deposit made on BTC chain: - - Transaction hash: ${depositUtxo.transactionHash} - - Output index: ${depositUtxo.outputIndex} - `) - - await deposit.initiateMinting(depositUtxo) - - console.log(` - Deposit revealed on Ethereum chain - `) - }) - - it("should broadcast the deposit transaction on the Bitcoin network", async () => { - expect( - (await electrumClient.getRawTransaction(depositUtxo.transactionHash)) - .transactionHex.length - ).to.be.greaterThan(0) - }) - - it("should reveal the deposit to the bridge", async () => { - const { revealedAt } = await maintainerTbtc.tbtcContracts.bridge.deposits( - depositUtxo.transactionHash, - depositUtxo.outputIndex - ) - expect(revealedAt).to.be.greaterThan(0) - }) - - context("when deposit is swept and sweep proof submitted", () => { - before("sweep the deposit and submit sweep proof", async () => { - ;({ newMainUtxo: sweepUtxo } = - await walletTx.depositSweep.submitTransaction( - depositSweepTxFee, - systemTestsContext.walletBitcoinKeyPair.wif, - [depositUtxo], - [depositReceipt], - redemptionUtxo // The UTXO from the previous test became the new main UTXO. - )) - - console.log(` - Deposit swept on Bitcoin chain: - - Transaction hash: ${sweepUtxo.transactionHash} - `) - - // Unlike in the deposit transaction case, we must wait for the sweep - // transaction to have an enough number of confirmations. This is - // because the bridge performs the SPV proof of that transaction. - await waitTransactionConfirmed( - electrumClient, - sweepUtxo.transactionHash - ) - - await fakeRelayDifficulty( - relay, - electrumClient, - sweepUtxo.transactionHash - ) - - // If the redemption transaction from the previous test created a new - // main UTXO, use it. Otherwise call it with a zero-filled main UTXO. - const mainUtxo = redemptionUtxo || { - transactionHash: BitcoinTxHash.from(constants.HashZero), - outputIndex: 0, - value: BigNumber.from(0), - } - await maintainerTbtc.maintenance.spv.submitDepositSweepProof( - sweepUtxo.transactionHash, - mainUtxo, - EthereumAddress.from(vaultAddress) - ) - - console.log(` - Deposit sweep proved on the bridge - `) - }) - - it("should broadcast the sweep transaction on the Bitcoin network", async () => { - expect( - (await electrumClient.getRawTransaction(sweepUtxo.transactionHash)) - .transactionHex.length - ).to.be.greaterThan(0) - }) - - it("should sweep the deposit on the bridge", async () => { - const { sweptAt } = await maintainerTbtc.tbtcContracts.bridge.deposits( - depositUtxo.transactionHash, - depositUtxo.outputIndex - ) - expect(sweptAt).to.be.greaterThan(0) - }) - - it("should increase vault's balance in the bank", async () => { - const { treasuryFee } = - await maintainerTbtc.tbtcContracts.bridge.deposits( - depositUtxo.transactionHash, - depositUtxo.outputIndex - ) - - const expectedBalance = depositAmount - .sub(treasuryFee) - .sub(depositSweepTxFee) - - const actualBalance = await bank.balanceOf(vaultAddress) - - expect(actualBalance).to.be.equal(expectedBalance) - }) - - it("should mint TBTC tokens for the depositor", async () => { - const { treasuryFee } = - await maintainerTbtc.tbtcContracts.bridge.deposits( - depositUtxo.transactionHash, - depositUtxo.outputIndex - ) - - const balanceInSatoshis = depositAmount - .sub(treasuryFee) - .sub(depositSweepTxFee) - - const expectedTbtcBalance = balanceInSatoshis.mul(SATOSHI_MULTIPLIER) - - const actualBalance = await tbtc.balanceOf( - systemTestsContext.depositor.address - ) - - expect(actualBalance).to.be.equal(expectedTbtcBalance) - }) - - context("when redemption is requested", () => { - let requestedAmount: BigNumber - let redeemerOutputScript: Hex - let redemptionRequest: RedemptionRequest - - before("request the redemption", async () => { - // Redeem all of the depositor's TBTC tokens. - const tbtcBalanceOfDepositor = await tbtc.balanceOf( - systemTestsContext.depositor.address - ) - - // The depositor's balance converted to satoshis. - requestedAmount = tbtcBalanceOfDepositor.div(SATOSHI_MULTIPLIER) - - // Request redemption to depositor's address. - redeemerOutputScript = Hex.from( - `0014${BitcoinHashUtils.computeHash160( - systemTestsContext.depositorBitcoinKeyPair.publicKey.compressed - )}` - ) - - await depositorTbtc.redemptions.requestRedemption( - // Use the depositor's address as the redeemer's address. - depositorBitcoinAddress, - tbtcBalanceOfDepositor - ) - - console.log( - `Requested redemption of ${requestedAmount} satoshis to script ${redeemerOutputScript} on the bridge` - ) - - redemptionRequest = - await maintainerTbtc.redemptions.getRedemptionRequests( - depositorBitcoinAddress, - systemTestsContext.walletBitcoinKeyPair.publicKey.compressed, - "pending" - ) - }) - - it("should unmint depositor's TBTC tokens", async () => { - const tbtcBalance = await tbtc.balanceOf( - systemTestsContext.depositor.address - ) - - expect(tbtcBalance).to.be.equal(0) - }) - - it("should transfer vault's bank balance to the Bridge", async () => { - expect(await bank.balanceOf(vaultAddress)).to.be.equal(0) - - expect(await bank.balanceOf(bridgeAddress)).to.be.equal( - requestedAmount - ) - }) - - it("should register the redemption request on the bridge", async () => { - expect(redemptionRequest.requestedAt).to.be.greaterThan(0) - expect(redemptionRequest.requestedAmount).to.be.equal(requestedAmount) - expect(redemptionRequest.redeemerOutputScript).to.be.deep.equal( - redeemerOutputScript - ) - }) - - context( - "when redemption is made and redemption proof submitted", - () => { - let redemptionTxHash: BitcoinTxHash - - before( - "make the redemption and submit redemption proof", - async () => { - ;({ - transactionHash: redemptionTxHash, - newMainUtxo: redemptionUtxo, - } = await walletTx.redemption.submitTransaction( - systemTestsContext.walletBitcoinKeyPair.wif, - sweepUtxo, - [redemptionRequest.redeemerOutputScript] - )) + ;({ transactionHash: redemptionTxHash } = + await walletTx.redemption.submitTransaction( + systemTestsContext.walletBitcoinKeyPair.wif, + sweepUtxo, + [redemptionRequest.redeemerOutputScript] + )) console.log( "Redemption made on Bitcoin chain:\n" + From 3472b7e9a6d175645e6c0f954e20a030a69086c8 Mon Sep 17 00:00:00 2001 From: Tomasz Slabon Date: Tue, 14 Nov 2023 12:46:00 +0100 Subject: [PATCH 17/22] Renamed SDK handles --- system-tests/test/deposit-redemption.test.ts | 30 ++++++++++---------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/system-tests/test/deposit-redemption.test.ts b/system-tests/test/deposit-redemption.test.ts index f48ca2e56..c1ad5db12 100644 --- a/system-tests/test/deposit-redemption.test.ts +++ b/system-tests/test/deposit-redemption.test.ts @@ -64,8 +64,8 @@ describe("System Test - Deposit and redemption", () => { let relay: Contract let electrumClient: ElectrumClient - let depositorTbtc: TBTC - let maintainerTbtc: TBTC + let depositorSdk: TBTC + let maintainerSdk: TBTC let walletTx: WalletTx const depositAmount = BigNumber.from(2000000) @@ -133,7 +133,7 @@ describe("System Test - Deposit and redemption", () => { }), } - depositorTbtc = await TBTC.initializeCustom( + depositorSdk = await TBTC.initializeCustom( depositorTbtcContracts, electrumClient ) @@ -157,7 +157,7 @@ describe("System Test - Deposit and redemption", () => { }), } - maintainerTbtc = await TBTC.initializeCustom( + maintainerSdk = await TBTC.initializeCustom( maintainerTbtcContracts, electrumClient ) @@ -169,14 +169,14 @@ describe("System Test - Deposit and redemption", () => { BitcoinNetwork.Testnet ) - depositorTbtc.deposits.setDefaultDepositor( + depositorSdk.deposits.setDefaultDepositor( EthereumAddress.from(await depositor.getAddress()) ) }) context("when deposit is made and revealed", () => { before("make and reveal deposit", async () => { - const deposit = await depositorTbtc.deposits.initiateDeposit( + const deposit = await depositorSdk.deposits.initiateDeposit( // Use the depositor's address as the recovery address. depositorBitcoinAddress ) @@ -223,7 +223,7 @@ describe("System Test - Deposit and redemption", () => { ) // Reveal without providing the vault address. - await depositorTbtc.tbtcContracts.bridge.revealDeposit( + await depositorSdk.tbtcContracts.bridge.revealDeposit( depositRawTxVectors, depositUtxo.outputIndex, depositReceipt @@ -242,7 +242,7 @@ describe("System Test - Deposit and redemption", () => { }) it("should reveal the deposit to the bridge", async () => { - const { revealedAt } = await maintainerTbtc.tbtcContracts.bridge.deposits( + const { revealedAt } = await maintainerSdk.tbtcContracts.bridge.deposits( depositUtxo.transactionHash, depositUtxo.outputIndex ) @@ -281,7 +281,7 @@ describe("System Test - Deposit and redemption", () => { // TODO: Consider fetching the current wallet main UTXO and passing it // here. This will allow running this test scenario multiple // times for the same wallet. - await maintainerTbtc.maintenance.spv.submitDepositSweepProof( + await maintainerSdk.maintenance.spv.submitDepositSweepProof( sweepUtxo.transactionHash, // This is the first sweep of the given wallet so there is no main UTXO. { @@ -305,7 +305,7 @@ describe("System Test - Deposit and redemption", () => { }) it("should sweep the deposit on the bridge", async () => { - const { sweptAt } = await maintainerTbtc.tbtcContracts.bridge.deposits( + const { sweptAt } = await maintainerSdk.tbtcContracts.bridge.deposits( depositUtxo.transactionHash, depositUtxo.outputIndex ) @@ -314,7 +314,7 @@ describe("System Test - Deposit and redemption", () => { it("should increase depositor's balance in the bank", async () => { const { treasuryFee } = - await maintainerTbtc.tbtcContracts.bridge.deposits( + await maintainerSdk.tbtcContracts.bridge.deposits( depositUtxo.transactionHash, depositUtxo.outputIndex ) @@ -353,7 +353,7 @@ describe("System Test - Deposit and redemption", () => { )}` ) - await depositorTbtc.tbtcContracts.bridge.requestRedemption( + await depositorSdk.tbtcContracts.bridge.requestRedemption( systemTestsContext.walletBitcoinKeyPair.publicKey.compressed, sweepUtxo, redeemerOutputScript, @@ -365,7 +365,7 @@ describe("System Test - Deposit and redemption", () => { ) redemptionRequest = - await maintainerTbtc.redemptions.getRedemptionRequests( + await maintainerSdk.redemptions.getRedemptionRequests( depositorBitcoinAddress, systemTestsContext.walletBitcoinKeyPair.publicKey.compressed, "pending" @@ -418,7 +418,7 @@ describe("System Test - Deposit and redemption", () => { redemptionTxHash ) - await maintainerTbtc.maintenance.spv.submitRedemptionProof( + await maintainerSdk.maintenance.spv.submitRedemptionProof( redemptionTxHash, sweepUtxo, systemTestsContext.walletBitcoinKeyPair.publicKey.compressed @@ -437,7 +437,7 @@ describe("System Test - Deposit and redemption", () => { it("should close the redemption request on the bridge", async () => { await expect( - maintainerTbtc.redemptions.getRedemptionRequests( + maintainerSdk.redemptions.getRedemptionRequests( depositorBitcoinAddress, systemTestsContext.walletBitcoinKeyPair.publicKey.compressed, "pending" From 40e46b470ef798b07e7fd987d8d2a3bff6b2a673 Mon Sep 17 00:00:00 2001 From: Tomasz Slabon Date: Tue, 14 Nov 2023 13:10:06 +0100 Subject: [PATCH 18/22] Added function for creating contract handles --- system-tests/test/deposit-redemption.test.ts | 63 ++++---------------- system-tests/test/utils/context.ts | 37 ++++++++++++ 2 files changed, 50 insertions(+), 50 deletions(-) diff --git a/system-tests/test/deposit-redemption.test.ts b/system-tests/test/deposit-redemption.test.ts index c1ad5db12..929a68b28 100644 --- a/system-tests/test/deposit-redemption.test.ts +++ b/system-tests/test/deposit-redemption.test.ts @@ -4,14 +4,10 @@ import { BitcoinTxHash, BitcoinNetwork, ElectrumClient, - EthereumBridge, - EthereumTBTCToken, - EthereumTBTCVault, DepositFunding, DepositScript, BitcoinAddressConverter, WalletTx, - EthereumWalletRegistry, BitcoinHashUtils, EthereumAddress, TBTC, @@ -20,13 +16,15 @@ import { BigNumber, constants, Contract } from "ethers" import chai, { expect } from "chai" import chaiAsPromised from "chai-as-promised" -import { setupSystemTestsContext } from "./utils/context" +import { + setupSystemTestsContext, + createTbtcContractsHandle, +} from "./utils/context" import { fakeRelayDifficulty, waitTransactionConfirmed } from "./utils/bitcoin" import type { RedemptionRequest, BitcoinUtxo, - TBTCContracts, DepositReceipt, } from "@keep-network/tbtc-v2.ts" import type { SystemTestsContext } from "./utils/context" @@ -55,11 +53,7 @@ chai.use(chaiAsPromised) describe("System Test - Deposit and redemption", () => { let systemTestsContext: SystemTestsContext - let tbtcTokenAddress: string let bridgeAddress: string - let vaultAddress: string - let walletRegistryAddress: string - let bank: Contract let relay: Contract @@ -109,53 +103,22 @@ describe("System Test - Deposit and redemption", () => { ELECTRUM_RETRY_BACKOFF_STEP_MS ) - tbtcTokenAddress = deployedContracts.TBTC.address bridgeAddress = deployedContracts.Bridge.address - vaultAddress = deployedContracts.TBTCVault.address - walletRegistryAddress = deployedContracts.WalletRegistry.address - - const depositorTbtcContracts: TBTCContracts = { - bridge: new EthereumBridge({ - address: bridgeAddress, - signerOrProvider: depositor, - }), - tbtcToken: new EthereumTBTCToken({ - address: tbtcTokenAddress, - signerOrProvider: depositor, - }), - tbtcVault: new EthereumTBTCVault({ - address: vaultAddress, - signerOrProvider: depositor, - }), - walletRegistry: new EthereumWalletRegistry({ - address: walletRegistryAddress, - signerOrProvider: depositor, - }), - } + + const depositorTbtcContracts = createTbtcContractsHandle( + deployedContracts, + depositor + ) depositorSdk = await TBTC.initializeCustom( depositorTbtcContracts, electrumClient ) - const maintainerTbtcContracts: TBTCContracts = { - bridge: new EthereumBridge({ - address: bridgeAddress, - signerOrProvider: maintainer, - }), - tbtcToken: new EthereumTBTCToken({ - address: tbtcTokenAddress, - signerOrProvider: maintainer, - }), - tbtcVault: new EthereumTBTCVault({ - address: vaultAddress, - signerOrProvider: maintainer, - }), - walletRegistry: new EthereumWalletRegistry({ - address: walletRegistryAddress, - signerOrProvider: maintainer, - }), - } + const maintainerTbtcContracts = createTbtcContractsHandle( + deployedContracts, + maintainer + ) maintainerSdk = await TBTC.initializeCustom( maintainerTbtcContracts, diff --git a/system-tests/test/utils/context.ts b/system-tests/test/utils/context.ts index 1f5313de7..fcb545eab 100644 --- a/system-tests/test/utils/context.ts +++ b/system-tests/test/utils/context.ts @@ -1,12 +1,19 @@ import fs from "fs" import { helpers, network } from "hardhat" +import { + EthereumBridge, + EthereumTBTCToken, + EthereumTBTCVault, + EthereumWalletRegistry, +} from "@keep-network/tbtc-v2.ts" import { keyPairFromWif } from "./bitcoin" import type { ContractExport, Export } from "hardhat-deploy/dist/types" import type { SignerWithAddress } from "@nomiclabs/hardhat-ethers/signers" import type { KeyPair as BitcoinKeyPair } from "./bitcoin" +import type { TBTCContracts } from "@keep-network/tbtc-v2.ts" // TODO: For now, the context and its setup is global and identical for each // scenario. Once more scenarios is added, this should be probably @@ -149,3 +156,33 @@ function readBitcoinWif(wifEnvName: string): BitcoinKeyPair { return keyPairFromWif(wif) } + +/** + * Creates TBTC contract handles for the given signer. + * @param deployedContracts Deployed contracts info. + * @param signer Signer used when communicating with the contracts. + * @returns TBTC contract handles. + */ +export function createTbtcContractsHandle( + deployedContracts: DeployedContracts, + signer: SignerWithAddress +): TBTCContracts { + return { + bridge: new EthereumBridge({ + address: deployedContracts.Bridge.address, + signerOrProvider: signer, + }), + tbtcToken: new EthereumTBTCToken({ + address: deployedContracts.TBTC.address, + signerOrProvider: signer, + }), + tbtcVault: new EthereumTBTCVault({ + address: deployedContracts.TBTCVault.address, + signerOrProvider: signer, + }), + walletRegistry: new EthereumWalletRegistry({ + address: deployedContracts.WalletRegistry.address, + signerOrProvider: signer, + }), + } +} From 3c4fd74455625a9acd2952991aa6da3db517ad5a Mon Sep 17 00:00:00 2001 From: Tomasz Slabon Date: Tue, 14 Nov 2023 13:20:04 +0100 Subject: [PATCH 19/22] Used Bitcoin client instances from SDK --- system-tests/test/deposit-redemption.test.ts | 46 ++++++++++++-------- system-tests/test/utils/bitcoin.ts | 6 +-- 2 files changed, 32 insertions(+), 20 deletions(-) diff --git a/system-tests/test/deposit-redemption.test.ts b/system-tests/test/deposit-redemption.test.ts index 929a68b28..1f9cb4b0b 100644 --- a/system-tests/test/deposit-redemption.test.ts +++ b/system-tests/test/deposit-redemption.test.ts @@ -57,7 +57,6 @@ describe("System Test - Deposit and redemption", () => { let bank: Contract let relay: Contract - let electrumClient: ElectrumClient let depositorSdk: TBTC let maintainerSdk: TBTC let walletTx: WalletTx @@ -96,7 +95,7 @@ describe("System Test - Deposit and redemption", () => { maintainer ) - electrumClient = ElectrumClient.fromUrl( + const electrumClient = ElectrumClient.fromUrl( electrumUrl, undefined, ELECTRUM_RETRIES, @@ -157,7 +156,7 @@ describe("System Test - Deposit and redemption", () => { `) const depositorUtxos = - await electrumClient.findAllUnspentTransactionOutputs( + await depositorSdk.bitcoinClient.findAllUnspentTransactionOutputs( depositorBitcoinAddress ) @@ -166,7 +165,7 @@ describe("System Test - Deposit and redemption", () => { depositorUtxos, depositTxFee, systemTestsContext.depositorBitcoinKeyPair.wif, - electrumClient + depositorSdk.bitcoinClient )) console.log(` @@ -178,9 +177,10 @@ describe("System Test - Deposit and redemption", () => { // Since the reveal deposit logic does not perform SPV proof, we // can reveal the deposit transaction immediately without waiting // for confirmations. - const rawDepositTransaction = await electrumClient.getRawTransaction( - depositUtxo.transactionHash - ) + const rawDepositTransaction = + await depositorSdk.bitcoinClient.getRawTransaction( + depositUtxo.transactionHash + ) const depositRawTxVectors = extractBitcoinRawTxVectors( rawDepositTransaction ) @@ -199,8 +199,11 @@ describe("System Test - Deposit and redemption", () => { it("should broadcast the deposit transaction on the Bitcoin network", async () => { expect( - (await electrumClient.getRawTransaction(depositUtxo.transactionHash)) - .transactionHex.length + ( + await maintainerSdk.bitcoinClient.getRawTransaction( + depositUtxo.transactionHash + ) + ).transactionHex.length ).to.be.greaterThan(0) }) @@ -231,13 +234,13 @@ describe("System Test - Deposit and redemption", () => { // transaction to have an enough number of confirmations. This is // because the bridge performs the SPV proof of that transaction. await waitTransactionConfirmed( - electrumClient, + maintainerSdk.bitcoinClient, sweepUtxo.transactionHash ) await fakeRelayDifficulty( relay, - electrumClient, + maintainerSdk.bitcoinClient, sweepUtxo.transactionHash ) @@ -262,8 +265,11 @@ describe("System Test - Deposit and redemption", () => { it("should broadcast the sweep transaction on the Bitcoin network", async () => { expect( - (await electrumClient.getRawTransaction(sweepUtxo.transactionHash)) - .transactionHex.length + ( + await maintainerSdk.bitcoinClient.getRawTransaction( + sweepUtxo.transactionHash + ) + ).transactionHex.length ).to.be.greaterThan(0) }) @@ -373,11 +379,14 @@ describe("System Test - Deposit and redemption", () => { `- Transaction hash: ${redemptionTxHash}` ) - await waitTransactionConfirmed(electrumClient, redemptionTxHash) + await waitTransactionConfirmed( + maintainerSdk.bitcoinClient, + redemptionTxHash + ) await fakeRelayDifficulty( relay, - electrumClient, + maintainerSdk.bitcoinClient, redemptionTxHash ) @@ -393,8 +402,11 @@ describe("System Test - Deposit and redemption", () => { it("should broadcast the redemption transaction on the Bitcoin network", async () => { expect( - (await electrumClient.getRawTransaction(redemptionTxHash)) - .transactionHex.length + ( + await maintainerSdk.bitcoinClient.getRawTransaction( + redemptionTxHash + ) + ).transactionHex.length ).to.be.greaterThan(0) }) diff --git a/system-tests/test/utils/bitcoin.ts b/system-tests/test/utils/bitcoin.ts index 984922176..3e0df4e04 100644 --- a/system-tests/test/utils/bitcoin.ts +++ b/system-tests/test/utils/bitcoin.ts @@ -4,7 +4,7 @@ import wifLib from "wif" import { ec as EllipticCurve } from "elliptic" import { assembleBitcoinSpvProof, Hex } from "@keep-network/tbtc-v2.ts" -import type { BitcoinTxHash, ElectrumClient } from "@keep-network/tbtc-v2.ts" +import type { BitcoinTxHash, BitcoinClient } from "@keep-network/tbtc-v2.ts" import type { Contract } from "ethers" /** @@ -75,7 +75,7 @@ export function keyPairFromWif(wif: string): KeyPair { * @returns Empty promise. */ export async function waitTransactionConfirmed( - bitcoinClient: ElectrumClient, + bitcoinClient: BitcoinClient, transactionHash: BitcoinTxHash, requiredConfirmations: number = defaultTxProofDifficultyFactor, sleep = 30000 @@ -126,7 +126,7 @@ export async function waitTransactionConfirmed( */ export async function fakeRelayDifficulty( relay: Contract, - bitcoinClient: ElectrumClient, + bitcoinClient: BitcoinClient, transactionHash: BitcoinTxHash, headerChainLength: number = defaultTxProofDifficultyFactor ): Promise { From 8b1d1554388079f6003465a2c9719d6d849fcea5 Mon Sep 17 00:00:00 2001 From: Tomasz Slabon Date: Tue, 14 Nov 2023 13:42:33 +0100 Subject: [PATCH 20/22] Added wallet registry extraction from the bridge handle --- system-tests/test/deposit-redemption.test.ts | 4 +- system-tests/test/utils/context.ts | 42 +++++++++++--------- 2 files changed, 25 insertions(+), 21 deletions(-) diff --git a/system-tests/test/deposit-redemption.test.ts b/system-tests/test/deposit-redemption.test.ts index 1f9cb4b0b..05c9d3909 100644 --- a/system-tests/test/deposit-redemption.test.ts +++ b/system-tests/test/deposit-redemption.test.ts @@ -104,7 +104,7 @@ describe("System Test - Deposit and redemption", () => { bridgeAddress = deployedContracts.Bridge.address - const depositorTbtcContracts = createTbtcContractsHandle( + const depositorTbtcContracts = await createTbtcContractsHandle( deployedContracts, depositor ) @@ -114,7 +114,7 @@ describe("System Test - Deposit and redemption", () => { electrumClient ) - const maintainerTbtcContracts = createTbtcContractsHandle( + const maintainerTbtcContracts = await createTbtcContractsHandle( deployedContracts, maintainer ) diff --git a/system-tests/test/utils/context.ts b/system-tests/test/utils/context.ts index fcb545eab..4b2d9f915 100644 --- a/system-tests/test/utils/context.ts +++ b/system-tests/test/utils/context.ts @@ -5,7 +5,6 @@ import { EthereumBridge, EthereumTBTCToken, EthereumTBTCVault, - EthereumWalletRegistry, } from "@keep-network/tbtc-v2.ts" import { keyPairFromWif } from "./bitcoin" @@ -163,26 +162,31 @@ function readBitcoinWif(wifEnvName: string): BitcoinKeyPair { * @param signer Signer used when communicating with the contracts. * @returns TBTC contract handles. */ -export function createTbtcContractsHandle( +export async function createTbtcContractsHandle( deployedContracts: DeployedContracts, signer: SignerWithAddress -): TBTCContracts { +): Promise { + const bridge = new EthereumBridge({ + address: deployedContracts.Bridge.address, + signerOrProvider: signer, + }) + + const tbtcToken = new EthereumTBTCToken({ + address: deployedContracts.TBTC.address, + signerOrProvider: signer, + }) + + const tbtcVault = new EthereumTBTCVault({ + address: deployedContracts.TBTCVault.address, + signerOrProvider: signer, + }) + + const walletRegistry = await bridge.walletRegistry() + return { - bridge: new EthereumBridge({ - address: deployedContracts.Bridge.address, - signerOrProvider: signer, - }), - tbtcToken: new EthereumTBTCToken({ - address: deployedContracts.TBTC.address, - signerOrProvider: signer, - }), - tbtcVault: new EthereumTBTCVault({ - address: deployedContracts.TBTCVault.address, - signerOrProvider: signer, - }), - walletRegistry: new EthereumWalletRegistry({ - address: deployedContracts.WalletRegistry.address, - signerOrProvider: signer, - }), + bridge, + tbtcToken, + tbtcVault, + walletRegistry, } } From 58c4605ea8a98677ab81853ea51295d5d52e40bf Mon Sep 17 00:00:00 2001 From: Tomasz Slabon Date: Tue, 14 Nov 2023 13:57:24 +0100 Subject: [PATCH 21/22] Aligned minting-unminting test --- system-tests/test/minting-unminting.test.ts | 133 ++++++++------------ 1 file changed, 53 insertions(+), 80 deletions(-) diff --git a/system-tests/test/minting-unminting.test.ts b/system-tests/test/minting-unminting.test.ts index 2e30c55a5..4042fd5b9 100644 --- a/system-tests/test/minting-unminting.test.ts +++ b/system-tests/test/minting-unminting.test.ts @@ -3,14 +3,10 @@ import { BitcoinTxHash, BitcoinNetwork, ElectrumClient, - EthereumBridge, - EthereumTBTCToken, - EthereumTBTCVault, DepositFunding, DepositScript, BitcoinAddressConverter, WalletTx, - EthereumWalletRegistry, BitcoinHashUtils, EthereumAddress, TBTC, @@ -19,7 +15,10 @@ import { BigNumber, constants, Contract } from "ethers" import chai, { expect } from "chai" import chaiAsPromised from "chai-as-promised" -import { setupSystemTestsContext } from "./utils/context" +import { + setupSystemTestsContext, + createTbtcContractsHandle, +} from "./utils/context" import { fakeRelayDifficulty, waitTransactionConfirmed } from "./utils/bitcoin" import type { SystemTestsContext } from "./utils/context" @@ -27,7 +26,6 @@ import type { RedemptionRequest, BitcoinUtxo, DepositReceipt, - TBTCContracts, } from "@keep-network/tbtc-v2.ts" chai.use(chaiAsPromised) @@ -59,18 +57,15 @@ const satoshiMultiplier = 1e10 describe("System Test - Minting and unminting", () => { let systemTestsContext: SystemTestsContext - let tbtcTokenAddress: string let bridgeAddress: string let vaultAddress: string - let walletRegistryAddress: string let bank: Contract let relay: Contract let tbtc: Contract - let electrumClient: ElectrumClient - let depositorTbtc: TBTC - let maintainerTbtc: TBTC + let depositorSdk: TBTC + let maintainerSdk: TBTC let walletTx: WalletTx const depositAmount = BigNumber.from(2000000) @@ -93,17 +88,15 @@ describe("System Test - Minting and unminting", () => { const { electrumUrl, maintainer, depositor, deployedContracts } = systemTestsContext - electrumClient = ElectrumClient.fromUrl( + const electrumClient = ElectrumClient.fromUrl( electrumUrl, undefined, ELECTRUM_RETRIES, ELECTRUM_RETRY_BACKOFF_STEP_MS ) - tbtcTokenAddress = deployedContracts.TBTC.address bridgeAddress = deployedContracts.Bridge.address vaultAddress = deployedContracts.TBTCVault.address - walletRegistryAddress = deployedContracts.WalletRegistry.address const bankDeploymentInfo = deployedContracts.Bank bank = new Contract( @@ -126,50 +119,22 @@ describe("System Test - Minting and unminting", () => { maintainer ) - const depositorTbtcContracts: TBTCContracts = { - bridge: new EthereumBridge({ - address: bridgeAddress, - signerOrProvider: depositor, - }), - tbtcToken: new EthereumTBTCToken({ - address: tbtcTokenAddress, - signerOrProvider: depositor, - }), - tbtcVault: new EthereumTBTCVault({ - address: vaultAddress, - signerOrProvider: depositor, - }), - walletRegistry: new EthereumWalletRegistry({ - address: walletRegistryAddress, - signerOrProvider: depositor, - }), - } + const depositorTbtcContracts = await createTbtcContractsHandle( + deployedContracts, + depositor + ) - depositorTbtc = await TBTC.initializeCustom( + depositorSdk = await TBTC.initializeCustom( depositorTbtcContracts, electrumClient ) - const maintainerTbtcContracts: TBTCContracts = { - bridge: new EthereumBridge({ - address: bridgeAddress, - signerOrProvider: maintainer, - }), - tbtcToken: new EthereumTBTCToken({ - address: tbtcTokenAddress, - signerOrProvider: maintainer, - }), - tbtcVault: new EthereumTBTCVault({ - address: vaultAddress, - signerOrProvider: maintainer, - }), - walletRegistry: new EthereumWalletRegistry({ - address: walletRegistryAddress, - signerOrProvider: maintainer, - }), - } + const maintainerTbtcContracts = await createTbtcContractsHandle( + deployedContracts, + maintainer + ) - maintainerTbtc = await TBTC.initializeCustom( + maintainerSdk = await TBTC.initializeCustom( maintainerTbtcContracts, electrumClient ) @@ -181,7 +146,7 @@ describe("System Test - Minting and unminting", () => { BitcoinNetwork.Testnet ) - depositorTbtc.deposits.setDefaultDepositor( + depositorSdk.deposits.setDefaultDepositor( EthereumAddress.from(await depositor.getAddress()) ) }) @@ -190,7 +155,7 @@ describe("System Test - Minting and unminting", () => { "when minting is initiated by making and revealing a deposit to the TBTCVault", () => { before("make and reveal deposit", async () => { - const deposit = await depositorTbtc.deposits.initiateDeposit( + const deposit = await depositorSdk.deposits.initiateDeposit( // Use the depositor's address as the recovery address. depositorBitcoinAddress ) @@ -208,7 +173,7 @@ describe("System Test - Minting and unminting", () => { `) const depositorUtxos = - await electrumClient.findAllUnspentTransactionOutputs( + await depositorSdk.bitcoinClient.findAllUnspentTransactionOutputs( depositorBitcoinAddress ) @@ -217,7 +182,7 @@ describe("System Test - Minting and unminting", () => { depositorUtxos, depositTxFee, systemTestsContext.depositorBitcoinKeyPair.wif, - electrumClient + depositorSdk.bitcoinClient )) console.log(` @@ -241,14 +206,17 @@ describe("System Test - Minting and unminting", () => { it("should broadcast the deposit transaction on the Bitcoin network", async () => { expect( - (await electrumClient.getRawTransaction(depositUtxo.transactionHash)) - .transactionHex.length + ( + await depositorSdk.bitcoinClient.getRawTransaction( + depositUtxo.transactionHash + ) + ).transactionHex.length ).to.be.greaterThan(0) }) it("should reveal the deposit to the bridge", async () => { const { revealedAt } = - await maintainerTbtc.tbtcContracts.bridge.deposits( + await maintainerSdk.tbtcContracts.bridge.deposits( depositUtxo.transactionHash, depositUtxo.outputIndex ) @@ -256,7 +224,7 @@ describe("System Test - Minting and unminting", () => { }) it("should set TBTCVault as target vault of the revealed deposit", async () => { - const { vault } = await maintainerTbtc.tbtcContracts.bridge.deposits( + const { vault } = await maintainerSdk.tbtcContracts.bridge.deposits( depositUtxo.transactionHash, depositUtxo.outputIndex ) @@ -284,20 +252,20 @@ describe("System Test - Minting and unminting", () => { // transaction to have an enough number of confirmations. This is // because the bridge performs the SPV proof of that transaction. await waitTransactionConfirmed( - electrumClient, + maintainerSdk.bitcoinClient, sweepUtxo.transactionHash ) await fakeRelayDifficulty( relay, - electrumClient, + maintainerSdk.bitcoinClient, sweepUtxo.transactionHash ) // TODO: Consider fetching the current wallet main UTXO and passing it // here. This will allow running this test scenario multiple // times for the same wallet. - await maintainerTbtc.maintenance.spv.submitDepositSweepProof( + await maintainerSdk.maintenance.spv.submitDepositSweepProof( sweepUtxo.transactionHash, // This is the first sweep of the given wallet so there is no main UTXO. { @@ -316,23 +284,25 @@ describe("System Test - Minting and unminting", () => { it("should broadcast the sweep transaction on the Bitcoin network", async () => { expect( - (await electrumClient.getRawTransaction(sweepUtxo.transactionHash)) - .transactionHex.length + ( + await maintainerSdk.bitcoinClient.getRawTransaction( + sweepUtxo.transactionHash + ) + ).transactionHex.length ).to.be.greaterThan(0) }) it("should sweep the deposit on the bridge", async () => { - const { sweptAt } = - await maintainerTbtc.tbtcContracts.bridge.deposits( - depositUtxo.transactionHash, - depositUtxo.outputIndex - ) + const { sweptAt } = await maintainerSdk.tbtcContracts.bridge.deposits( + depositUtxo.transactionHash, + depositUtxo.outputIndex + ) expect(sweptAt).to.be.greaterThan(0) }) it("should increase TBTCVault's balance in the bank", async () => { const { treasuryFee } = - await maintainerTbtc.tbtcContracts.bridge.deposits( + await maintainerSdk.tbtcContracts.bridge.deposits( depositUtxo.transactionHash, depositUtxo.outputIndex ) @@ -347,7 +317,7 @@ describe("System Test - Minting and unminting", () => { it("should mint TBTC to the depositor", async () => { const { treasuryFee } = - await maintainerTbtc.tbtcContracts.bridge.deposits( + await maintainerSdk.tbtcContracts.bridge.deposits( depositUtxo.transactionHash, depositUtxo.outputIndex ) @@ -382,7 +352,7 @@ describe("System Test - Minting and unminting", () => { )}` ) - await depositorTbtc.redemptions.requestRedemption( + await depositorSdk.redemptions.requestRedemption( // Use the depositor's address as the redeemer's address. depositorBitcoinAddress, unmintedAmount @@ -393,7 +363,7 @@ describe("System Test - Minting and unminting", () => { ) redemptionRequest = - await maintainerTbtc.redemptions.getRedemptionRequests( + await maintainerSdk.redemptions.getRedemptionRequests( depositorBitcoinAddress, systemTestsContext.walletBitcoinKeyPair.publicKey.compressed, "pending" @@ -444,17 +414,17 @@ describe("System Test - Minting and unminting", () => { ) await waitTransactionConfirmed( - electrumClient, + maintainerSdk.bitcoinClient, redemptionTxHash ) await fakeRelayDifficulty( relay, - electrumClient, + maintainerSdk.bitcoinClient, redemptionTxHash ) - await maintainerTbtc.maintenance.spv.submitRedemptionProof( + await maintainerSdk.maintenance.spv.submitRedemptionProof( redemptionTxHash, sweepUtxo, systemTestsContext.walletBitcoinKeyPair.publicKey.compressed @@ -466,14 +436,17 @@ describe("System Test - Minting and unminting", () => { it("should broadcast the redemption transaction on the Bitcoin network", async () => { expect( - (await electrumClient.getRawTransaction(redemptionTxHash)) - .transactionHex.length + ( + await maintainerSdk.bitcoinClient.getRawTransaction( + redemptionTxHash + ) + ).transactionHex.length ).to.be.greaterThan(0) }) it("should close the redemption request on the bridge", async () => { await expect( - maintainerTbtc.redemptions.getRedemptionRequests( + maintainerSdk.redemptions.getRedemptionRequests( depositorBitcoinAddress, systemTestsContext.walletBitcoinKeyPair.publicKey .compressed, From c0c15f3a2e7b965cfb189b16480926660d3b92cf Mon Sep 17 00:00:00 2001 From: Tomasz Slabon Date: Wed, 15 Nov 2023 17:55:52 +0100 Subject: [PATCH 22/22] Updated tbtc.v2-ts version to 2.3.0 for system tests --- system-tests/package.json | 2 +- system-tests/yarn.lock | 1044 ++++++------------------------------- 2 files changed, 167 insertions(+), 879 deletions(-) diff --git a/system-tests/package.json b/system-tests/package.json index 8eb301899..137ac5b10 100644 --- a/system-tests/package.json +++ b/system-tests/package.json @@ -18,7 +18,7 @@ "test/**/*" ], "dependencies": { - "@keep-network/tbtc-v2.ts": "development", + "@keep-network/tbtc-v2.ts": "^2.3.0", "elliptic": "^6.5.4", "wif": "^2.0.6" }, diff --git a/system-tests/yarn.lock b/system-tests/yarn.lock index 7edcbdc6d..c0956b0e6 100644 --- a/system-tests/yarn.lock +++ b/system-tests/yarn.lock @@ -46,23 +46,6 @@ "@noble/hashes" "^1.1.5" "@noble/secp256k1" "^1.7.1" -"@celo/base@1.5.2": - version "1.5.2" - resolved "https://registry.yarnpkg.com/@celo/base/-/base-1.5.2.tgz#168ab5e4e30b374079d8d139fafc52ca6bfd4100" - integrity sha512-KGf6Dl9E6D01vAfkgkjL2sG+zqAjspAogILIpWstljWdG5ifyA75jihrnDEHaMCoQS0KxHvTdP1XYS/GS6BEyQ== - -"@celo/connect@1.5.2": - version "1.5.2" - resolved "https://registry.yarnpkg.com/@celo/connect/-/connect-1.5.2.tgz#09f0b03bda6f8a6d523fd010492f204cbe82aabd" - integrity sha512-IHsvYp1HizIPfPPeIHyvsmJytIf7HNtNWo9CqCbsqfNfmw53q6dFJu2p5X0qz/fUnR5840cUga8cEyuYZTfp+w== - dependencies: - "@celo/utils" "1.5.2" - "@types/debug" "^4.1.5" - "@types/utf8" "^2.1.6" - bignumber.js "^9.0.0" - debug "^4.1.1" - utf8 "3.0.0" - "@celo/contractkit@^0.3.3": version "0.3.8" resolved "https://registry.yarnpkg.com/@celo/contractkit/-/contractkit-0.3.8.tgz#aea543761a4921dddd1b1f906d23f8730cce15c7" @@ -86,24 +69,6 @@ web3-eth-contract "1.2.4" web3-utils "1.2.4" -"@celo/contractkit@^1.0.2": - version "1.5.2" - resolved "https://registry.yarnpkg.com/@celo/contractkit/-/contractkit-1.5.2.tgz#be15d570f3044a190dabb6bbe53d5081c78ea605" - integrity sha512-b0r5TlfYDEscxze1Ai2jyJayiVElA9jvEehMD6aOSNtVhfP8oirjFIIffRe0Wzw1MSDGkw+q1c4m0Yw5sEOlvA== - dependencies: - "@celo/base" "1.5.2" - "@celo/connect" "1.5.2" - "@celo/utils" "1.5.2" - "@celo/wallet-local" "1.5.2" - "@types/debug" "^4.1.5" - bignumber.js "^9.0.0" - cross-fetch "^3.0.6" - debug "^4.1.1" - fp-ts "2.1.1" - io-ts "2.0.1" - semver "^7.3.5" - web3 "1.3.6" - "@celo/utils@0.1.11": version "0.1.11" resolved "https://registry.yarnpkg.com/@celo/utils/-/utils-0.1.11.tgz#c35e3b385091fc6f0c0c355b73270f4a8559ad38" @@ -128,66 +93,6 @@ numeral "^2.0.6" web3-utils "1.2.4" -"@celo/utils@1.5.2": - version "1.5.2" - resolved "https://registry.yarnpkg.com/@celo/utils/-/utils-1.5.2.tgz#ddb7f3b50c801225ab41d2355fbe010976329099" - integrity sha512-JyKjuVMbdkyFOb1TpQw6zqamPQWYg7I9hOnva3MeIcQ3ZrJIaNHx0/I+JXFjuu3YYBc1mG8nXp2uPJJTGrwzCQ== - dependencies: - "@celo/base" "1.5.2" - "@types/country-data" "^0.0.0" - "@types/elliptic" "^6.4.9" - "@types/ethereumjs-util" "^5.2.0" - "@types/google-libphonenumber" "^7.4.17" - "@types/lodash" "^4.14.170" - "@types/node" "^10.12.18" - "@types/randombytes" "^2.0.0" - bigi "^1.1.0" - bignumber.js "^9.0.0" - bip32 "2.0.5" - bip39 "https://github.com/bitcoinjs/bip39#d8ea080a18b40f301d4e2219a2991cd2417e83c2" - bls12377js "https://github.com/celo-org/bls12377js#cb38a4cfb643c778619d79b20ca3e5283a2122a6" - bn.js "4.11.8" - buffer-reverse "^1.0.1" - country-data "^0.0.31" - crypto-js "^3.1.9-1" - elliptic "^6.5.4" - ethereumjs-util "^5.2.0" - fp-ts "2.1.1" - google-libphonenumber "^3.2.15" - io-ts "2.0.1" - keccak256 "^1.0.0" - lodash "^4.17.21" - numeral "^2.0.6" - web3-eth-abi "1.3.6" - web3-utils "1.3.6" - -"@celo/wallet-base@1.5.2": - version "1.5.2" - resolved "https://registry.yarnpkg.com/@celo/wallet-base/-/wallet-base-1.5.2.tgz#ae8df425bf3c702277bb1b63a761a2ec8429e7aa" - integrity sha512-NYJu7OtSRFpGcvSMl2Wc8zN32S6oTkAzKqhH7rXisQ0I2q4yNwCzoquzPVYB0G2UVUFKuuxgsA5V+Zda/LQCyw== - dependencies: - "@celo/base" "1.5.2" - "@celo/connect" "1.5.2" - "@celo/utils" "1.5.2" - "@types/debug" "^4.1.5" - "@types/ethereumjs-util" "^5.2.0" - bignumber.js "^9.0.0" - debug "^4.1.1" - eth-lib "^0.2.8" - ethereumjs-util "^5.2.0" - -"@celo/wallet-local@1.5.2": - version "1.5.2" - resolved "https://registry.yarnpkg.com/@celo/wallet-local/-/wallet-local-1.5.2.tgz#66ea5fb763e19724309e3d56f312f1a342e12b91" - integrity sha512-Aas4SwqQc8ap0OFAOZc+jBR4cXr20V9AReHNEI8Y93R3g1+RlSEJ1Zmsu4vN+Rriz58YqgMnr+pihorw8QydFQ== - dependencies: - "@celo/connect" "1.5.2" - "@celo/utils" "1.5.2" - "@celo/wallet-base" "1.5.2" - "@types/ethereumjs-util" "^5.2.0" - eth-lib "^0.2.8" - ethereumjs-util "^5.2.0" - "@chainsafe/as-sha256@^0.3.1": version "0.3.1" resolved "https://registry.yarnpkg.com/@chainsafe/as-sha256/-/as-sha256-0.3.1.tgz#3639df0e1435cab03f4d9870cc3ac079e57a6fc9" @@ -400,21 +305,6 @@ merkle-patricia-tree "^4.2.2" rustbn.js "~0.2.0" -"@ethersproject/abi@5.0.7": - version "5.0.7" - resolved "https://registry.yarnpkg.com/@ethersproject/abi/-/abi-5.0.7.tgz#79e52452bd3ca2956d0e1c964207a58ad1a0ee7b" - integrity sha512-Cqktk+hSIckwP/W8O47Eef60VwmoSC/L3lY0+dIBhQPCNn9E4V7rwmm2aFrNRRDJfFlGuZ1khkQUOc3oBX+niw== - dependencies: - "@ethersproject/address" "^5.0.4" - "@ethersproject/bignumber" "^5.0.7" - "@ethersproject/bytes" "^5.0.4" - "@ethersproject/constants" "^5.0.4" - "@ethersproject/hash" "^5.0.4" - "@ethersproject/keccak256" "^5.0.3" - "@ethersproject/logger" "^5.0.5" - "@ethersproject/properties" "^5.0.3" - "@ethersproject/strings" "^5.0.4" - "@ethersproject/abi@5.6.0": version "5.6.0" resolved "https://registry.yarnpkg.com/@ethersproject/abi/-/abi-5.6.0.tgz#ea07cbc1eec2374d32485679c12408005895e9f3" @@ -554,7 +444,7 @@ "@ethersproject/logger" "^5.6.0" "@ethersproject/rlp" "^5.6.1" -"@ethersproject/address@5.7.0", "@ethersproject/address@^5.0.4", "@ethersproject/address@^5.6.1", "@ethersproject/address@^5.7.0": +"@ethersproject/address@5.7.0", "@ethersproject/address@^5.6.1", "@ethersproject/address@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/address/-/address-5.7.0.tgz#19b56c4d74a3b0a46bfdbb6cfcc0a153fc697f37" integrity sha512-9wYhYt7aghVGo758POM5nqcOMaE168Q6aRLJZwUmiqSrAungkG74gSSeKEIR7ukixesdRZGPgVqme6vmxs1fkA== @@ -628,7 +518,7 @@ "@ethersproject/logger" "^5.6.0" bn.js "^5.2.1" -"@ethersproject/bignumber@5.7.0", "@ethersproject/bignumber@^5.0.7", "@ethersproject/bignumber@^5.6.2", "@ethersproject/bignumber@^5.7.0": +"@ethersproject/bignumber@5.7.0", "@ethersproject/bignumber@^5.6.2", "@ethersproject/bignumber@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/bignumber/-/bignumber-5.7.0.tgz#e2f03837f268ba655ffba03a57853e18a18dc9c2" integrity sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw== @@ -644,7 +534,7 @@ dependencies: "@ethersproject/logger" "^5.6.0" -"@ethersproject/bytes@5.7.0", "@ethersproject/bytes@^5.0.4", "@ethersproject/bytes@^5.6.1", "@ethersproject/bytes@^5.7.0": +"@ethersproject/bytes@5.7.0", "@ethersproject/bytes@^5.6.1", "@ethersproject/bytes@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/bytes/-/bytes-5.7.0.tgz#a00f6ea8d7e7534d6d87f47188af1148d71f155d" integrity sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A== @@ -665,7 +555,7 @@ dependencies: "@ethersproject/bignumber" "^5.6.2" -"@ethersproject/constants@5.7.0", "@ethersproject/constants@^5.0.4", "@ethersproject/constants@^5.6.1", "@ethersproject/constants@^5.7.0": +"@ethersproject/constants@5.7.0", "@ethersproject/constants@^5.6.1", "@ethersproject/constants@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/constants/-/constants-5.7.0.tgz#df80a9705a7e08984161f09014ea012d1c75295e" integrity sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA== @@ -748,7 +638,7 @@ "@ethersproject/properties" "^5.6.0" "@ethersproject/strings" "^5.6.1" -"@ethersproject/hash@5.7.0", "@ethersproject/hash@^5.0.4", "@ethersproject/hash@^5.6.1", "@ethersproject/hash@^5.7.0": +"@ethersproject/hash@5.7.0", "@ethersproject/hash@^5.6.1", "@ethersproject/hash@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/hash/-/hash-5.7.0.tgz#eb7aca84a588508369562e16e514b539ba5240a7" integrity sha512-qX5WrQfnah1EFnO5zJv1v46a8HW0+E5xuBBDTwMFZLuVTx0tbU2kkx15NqdjxecrLGatQN9FGQKpb1FKdHCt+g== @@ -890,7 +780,7 @@ "@ethersproject/bytes" "^5.6.1" js-sha3 "0.8.0" -"@ethersproject/keccak256@5.7.0", "@ethersproject/keccak256@^5.0.3", "@ethersproject/keccak256@^5.6.1", "@ethersproject/keccak256@^5.7.0": +"@ethersproject/keccak256@5.7.0", "@ethersproject/keccak256@^5.6.1", "@ethersproject/keccak256@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/keccak256/-/keccak256-5.7.0.tgz#3186350c6e1cd6aba7940384ec7d6d9db01f335a" integrity sha512-2UcPboeL/iW+pSg6vZ6ydF8tCnv3Iu/8tUmLLzWWGzxWKFFqOBQFLo6uLUv6BDrLgCDfN28RJ/wtByx+jZ4KBg== @@ -903,7 +793,7 @@ resolved "https://registry.yarnpkg.com/@ethersproject/logger/-/logger-5.6.0.tgz#d7db1bfcc22fd2e4ab574cba0bb6ad779a9a3e7a" integrity sha512-BiBWllUROH9w+P21RzoxJKzqoqpkyM1pRnEKG69bulE9TSQD8SAIvTQqIMZmmCO8pUNkgLP1wndX1gKghSpBmg== -"@ethersproject/logger@5.7.0", "@ethersproject/logger@^5.0.5", "@ethersproject/logger@^5.6.0", "@ethersproject/logger@^5.7.0": +"@ethersproject/logger@5.7.0", "@ethersproject/logger@^5.6.0", "@ethersproject/logger@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/logger/-/logger-5.7.0.tgz#6ce9ae168e74fecf287be17062b590852c311892" integrity sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig== @@ -960,7 +850,7 @@ dependencies: "@ethersproject/logger" "^5.6.0" -"@ethersproject/properties@5.7.0", "@ethersproject/properties@^5.0.3", "@ethersproject/properties@^5.6.0", "@ethersproject/properties@^5.7.0": +"@ethersproject/properties@5.7.0", "@ethersproject/properties@^5.6.0", "@ethersproject/properties@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/properties/-/properties-5.7.0.tgz#a6e12cb0439b878aaf470f1902a176033067ed30" integrity sha512-J87jy8suntrAkIZtecpxEPxY//szqr1mlBaYlQ0r4RCaiD2hjheqF9s1LVE8vVuJCXisjIP+JgtK/Do54ej4Sw== @@ -1209,7 +1099,7 @@ "@ethersproject/constants" "^5.6.1" "@ethersproject/logger" "^5.6.0" -"@ethersproject/strings@5.7.0", "@ethersproject/strings@^5.0.4", "@ethersproject/strings@^5.6.1", "@ethersproject/strings@^5.7.0": +"@ethersproject/strings@5.7.0", "@ethersproject/strings@^5.6.1", "@ethersproject/strings@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/strings/-/strings-5.7.0.tgz#54c9d2a7c57ae8f1205c88a9d3a56471e14d5ed2" integrity sha512-/9nu+lj0YswRNSH0NXYqrh8775XNyEdUQAuf3f+SmOrnVewcJ5SBNAjF7lpgehKi4abvNNXyf+HX86czCdJ8Mg== @@ -1248,7 +1138,7 @@ "@ethersproject/rlp" "^5.6.1" "@ethersproject/signing-key" "^5.6.2" -"@ethersproject/transactions@5.7.0", "@ethersproject/transactions@^5.0.0-beta.135", "@ethersproject/transactions@^5.6.2", "@ethersproject/transactions@^5.7.0": +"@ethersproject/transactions@5.7.0", "@ethersproject/transactions@^5.6.2", "@ethersproject/transactions@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/transactions/-/transactions-5.7.0.tgz#91318fc24063e057885a6af13fdb703e1f993d3b" integrity sha512-kmcNicCp1lp8qanMTC3RIikGgoJ80ztTyvtsFvCYpSCfkjhD0jZ2LOrnbcuxuToLIUYYf+4XwD1rP+B/erDIhQ== @@ -1523,45 +1413,46 @@ resolved "https://registry.yarnpkg.com/@keep-network/bitcoin-spv-sol/-/bitcoin-spv-sol-3.4.0-solc-0.8.tgz#8b44c246ffab8ea993efe196f6bf385b1a3b84dc" integrity sha512-KlpY9BbasyLvYXSS7dsJktgRChu/yjdFLOX8ldGA/pltLicCm/l0F4oqxL8wSws9XD12vq9x0B5qzPygVLB2TQ== -"@keep-network/ecdsa@2.1.0-dev.16": - version "2.1.0-dev.16" - resolved "https://registry.yarnpkg.com/@keep-network/ecdsa/-/ecdsa-2.1.0-dev.16.tgz#bd9d084b4f2b7bdda0a85a8f69200832d7c24fde" - integrity sha512-8k8XiPXneRtBN/4jVX+0qxqya8232cglRM/GrfYMv/niQkgvdolK2prXyd3LO7d4ot4WcyfLYU7uJfjjmc5rEw== +"@keep-network/ecdsa@2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@keep-network/ecdsa/-/ecdsa-2.0.0.tgz#96d301cd272e61334bec173b5c4945758fc80853" + integrity sha512-KXSUOkZIKHR3I4H99CpgkPtuneI9AxgGo8+DmqGR56QB28kJCEXm7GC/yTInWS1lb7LzDwkjIm9VYAIGdLrsZw== dependencies: - "@keep-network/random-beacon" "2.1.0-dev.16" - "@keep-network/sortition-pools" "^2.0.0-pre.16" + "@keep-network/random-beacon" "2.0.0" + "@keep-network/sortition-pools" "2.0.0" "@openzeppelin/contracts" "^4.6.0" "@openzeppelin/contracts-upgradeable" "^4.6.0" - "@threshold-network/solidity-contracts" "1.3.0-dev.8" + "@threshold-network/solidity-contracts" "1.2.1" "@keep-network/hardhat-helpers@^0.6.0-pre.7": version "0.6.0-pre.7" resolved "https://registry.yarnpkg.com/@keep-network/hardhat-helpers/-/hardhat-helpers-0.6.0-pre.7.tgz#0b8fbc7c8ee7248f0babbfe4f2f957f5ef3f8507" integrity sha512-6inPdST2lAwxYLGl619udVLJDoW41maQzxc2MD1YmvUDlkrHsI4GmSmqkj+mJPtLVVEbxqCjwQNjyDkSmIICvQ== -"@keep-network/keep-core@1.8.1-goerli.0": - version "1.8.1-goerli.0" - resolved "https://registry.yarnpkg.com/@keep-network/keep-core/-/keep-core-1.8.1-goerli.0.tgz#238485aab51902021d42357bf59695225002f0ab" - integrity sha512-h3La/RqbyEZjBBPg8V+pcRFo3UpWZUF4CxWfXHZnUR4PnkZKnIDrTNFQPhpV2uYFZwrbJxTR9mzOq/DOAiXPwA== +"@keep-network/keep-core@1.3.0": + version "1.3.0" + resolved "https://registry.yarnpkg.com/@keep-network/keep-core/-/keep-core-1.3.0.tgz#09c1fd4d8d021b2afdff4801c7743d4c65b7bce3" + integrity sha512-c8efKWPx5da6OSdcm9/uvdDqrfwDcYAExNqPvomhLFC0dATEEFHsr/QOAqiBm4wCZZtWMKt0dYTm5QpGtx5TXQ== dependencies: + "@openzeppelin/contracts-ethereum-package" "^2.4.0" "@openzeppelin/upgrades" "^2.7.2" openzeppelin-solidity "2.4.0" -"@keep-network/keep-core@>1.8.1-dev <1.8.1-goerli": - version "1.8.1-dev.0" - resolved "https://registry.yarnpkg.com/@keep-network/keep-core/-/keep-core-1.8.1-dev.0.tgz#d95864b25800214de43d8840376a68336cb12055" - integrity sha512-gFXkgN4PYOYCZ14AskL7fZHEFW5mu3BDd+TJKBuKZc1q9CgRMOK+dxpJnSctxmSH1tV+Ln9v9yqlSkfPCoiBHw== +"@keep-network/keep-core@1.7.0": + version "1.7.0" + resolved "https://registry.yarnpkg.com/@keep-network/keep-core/-/keep-core-1.7.0.tgz#0923d539fc431810bd9b239f91e09a92a2b255a0" + integrity sha512-jU0ol4L5a7vFUXCTlYGsjZYhl87cUpiAYz9LgDgvM3sGmwNIVZ9dY3gziINXIbSSFZjoqh3eGDxDPcQmA+Rjrg== dependencies: "@openzeppelin/upgrades" "^2.7.2" openzeppelin-solidity "2.4.0" -"@keep-network/keep-ecdsa@>1.9.0-dev <1.9.0-ropsten": - version "1.9.0-goerli.0" - resolved "https://registry.yarnpkg.com/@keep-network/keep-ecdsa/-/keep-ecdsa-1.9.0-goerli.0.tgz#ce58b6639062bb4f73a257557aebb16447889e08" - integrity sha512-EA/oTcxmia5nznQ35ub9/5xBqBK4T+78oWYxASCc+THdPLalzriSAtQ517R4QnvkHi82NFhJjZH8WBoRXniddA== +"@keep-network/keep-ecdsa@1.2.1": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@keep-network/keep-ecdsa/-/keep-ecdsa-1.2.1.tgz#5dcbc2c3808cce55a6e0d9e524868a0e9a0f1562" + integrity sha512-Oz0thgLoemt/nK6dl+MONU7TEoNR3lfbnMY/Aa0oWGcwR5PlNMiBVzYY7OT4oLZIK/MxEHDOWRQAijZEQffI7g== dependencies: - "@keep-network/keep-core" "1.8.1-goerli.0" - "@keep-network/sortition-pools" "1.2.0-dev.1" + "@keep-network/keep-core" "1.3.0" + "@keep-network/sortition-pools" "1.1.2" "@openzeppelin/upgrades" "^2.7.2" openzeppelin-solidity "2.3.0" @@ -1569,34 +1460,24 @@ version "0.0.1" resolved "https://codeload.github.com/keep-network/prettier-config-keep/tar.gz/a1a333e7ac49928a0f6ed39421906dd1e46ab0f3" -"@keep-network/random-beacon@2.1.0-dev.16": - version "2.1.0-dev.16" - resolved "https://registry.yarnpkg.com/@keep-network/random-beacon/-/random-beacon-2.1.0-dev.16.tgz#9f2b5c19aa79f6ff1a5498ba7b55eb170463161d" - integrity sha512-o+cG/VDkhUc91W+4bMplYCgOu0twSFICqarpv5k2ES8GcaafaeV8stXGhCxjvHYJjU/sfG8mhlQZhWdZixq+JQ== - dependencies: - "@keep-network/sortition-pools" "^2.0.0-pre.16" - "@openzeppelin/contracts" "4.7.3" - "@thesis/solidity-contracts" "github:thesis/solidity-contracts#4985bcf" - "@threshold-network/solidity-contracts" "1.3.0-dev.6" - -"@keep-network/random-beacon@2.1.0-dev.17": - version "2.1.0-dev.17" - resolved "https://registry.yarnpkg.com/@keep-network/random-beacon/-/random-beacon-2.1.0-dev.17.tgz#5fb2621948aa2fe07ceb134ba76f737b7e6d85cd" - integrity sha512-alfd2sHdMrX15qKzM4zwkZ3l/CXboLoeos4l3WvChW978VJIwUPm2ZIXd8tNTaHlykQ57eSSX7esaLfIjeO3Kg== +"@keep-network/random-beacon@2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@keep-network/random-beacon/-/random-beacon-2.0.0.tgz#ac52dd03da49ec5b0d39ba85c51de6c4c8f1b1dc" + integrity sha512-c5AodlBkMRTEID7bDE7BA9lqDZcH3AFqOPz5b9f5syy62DnuiMkHTHIEIvdWWCL26m21A4PPyPjw7XirauE/OA== dependencies: - "@keep-network/sortition-pools" "^2.0.0-pre.16" - "@openzeppelin/contracts" "4.7.3" + "@keep-network/sortition-pools" "2.0.0" + "@openzeppelin/contracts" "^4.6.0" "@thesis/solidity-contracts" "github:thesis/solidity-contracts#4985bcf" - "@threshold-network/solidity-contracts" "1.3.0-dev.8" + "@threshold-network/solidity-contracts" "1.2.1" -"@keep-network/sortition-pools@1.2.0-dev.1": - version "1.2.0-dev.1" - resolved "https://registry.yarnpkg.com/@keep-network/sortition-pools/-/sortition-pools-1.2.0-dev.1.tgz#2ee371f1dd1ff71f6d05c9ddc2a83a4a93ff56b3" - integrity sha512-CaOsvxNWHgXRFwPThDn3C/LiCwq9pL8ICLXXkysRSLw1Hx69wLnToaXYuwyXeIEy5pGqe5+288DBIqvJ3T4+jA== +"@keep-network/sortition-pools@1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@keep-network/sortition-pools/-/sortition-pools-1.1.2.tgz#cfeb31d574b02d1ae32649df01b87af07229010a" + integrity sha512-bBaKyxkXDc8kJHq3qeESMrJ02m+Wbh6Uz9qUpWn8Zq3aTZaKXRZfGWT+J71OiBlAdyB4WoHZymrddWHkjImHdQ== dependencies: "@openzeppelin/contracts" "^2.4.0" -"@keep-network/sortition-pools@^2.0.0-pre.16": +"@keep-network/sortition-pools@2.0.0": version "2.0.0" resolved "https://registry.yarnpkg.com/@keep-network/sortition-pools/-/sortition-pools-2.0.0.tgz#04e29ec756d74e00d13505a3e2a7763b06d7a08d" integrity sha512-82pDOKcDBvHBFblCt0ALVr6qC6mxk339ZqnCfYx1zIPaPhzkw1RKOv28AqPoqzhzcdqLIoPh8g9RS/M2Lplh1A== @@ -1604,14 +1485,16 @@ "@openzeppelin/contracts" "^4.3.2" "@thesis/solidity-contracts" "github:thesis/solidity-contracts#4985bcf" -"@keep-network/tbtc-v2.ts@development": - version "2.3.0-dev.2" - resolved "https://registry.yarnpkg.com/@keep-network/tbtc-v2.ts/-/tbtc-v2.ts-2.3.0-dev.2.tgz#1ab0d51b61865428dc4491f2e0d8a0aeaaa3acfe" - integrity sha512-I5phMWvfCYIxp/JVjpJFFRJUhjSbkTGG/MCK4odMSypC443nhkCqEgWBQDzTzYXahO1MB4ptN0mNAs+0HbGk+A== +"@keep-network/tbtc-v2.ts@^2.3.0": + version "2.3.0" + resolved "https://registry.yarnpkg.com/@keep-network/tbtc-v2.ts/-/tbtc-v2.ts-2.3.0.tgz#212673e9164f7dd1b0f65e8c9130d9567c10de15" + integrity sha512-u9eYC0vNOIOr4doK1fhVkgHpQDVflXtsjwlpHvR9U5IX/gfDHGDHqOIoDQkcKWpvppd6i6NvNCysDaJ9LrmEBQ== dependencies: "@bitcoinerlab/secp256k1" "^1.0.5" - "@keep-network/ecdsa" "2.1.0-dev.16" - "@keep-network/tbtc-v2" "1.6.0-dev.5" + "@keep-network/ecdsa" "2.0.0" + "@keep-network/tbtc-v2" "1.5.1" + "@ledgerhq/wallet-api-client" "^1.2.1" + bignumber.js "^9.1.2" bitcoinjs-lib "^6.1.5" bufio "^1.0.6" ecpair "^2.1.0" @@ -1620,26 +1503,25 @@ p-timeout "^4.1.0" wif "2.0.6" -"@keep-network/tbtc-v2@1.6.0-dev.5": - version "1.6.0-dev.5" - resolved "https://registry.yarnpkg.com/@keep-network/tbtc-v2/-/tbtc-v2-1.6.0-dev.5.tgz#849fc3331e95f109426557959f90ebc5499877bb" - integrity sha512-i2ilW62RiD+CH/W+vfNdRrQ1pQBKJb2vzG+3bo8AGnQGnCUhCM2tCio9bTOJrRC7a5v3ez3D1kkbf7uFLI8xUg== +"@keep-network/tbtc-v2@1.5.1": + version "1.5.1" + resolved "https://registry.yarnpkg.com/@keep-network/tbtc-v2/-/tbtc-v2-1.5.1.tgz#f1855b30f0c777cd7c612bf25b6c0e4d43356255" + integrity sha512-kSzdF2r2O4AZ4rmxSmMCxfZW9UmhE4s2UmKiAnp9aDTrTgIXppOY/5n9vOF9u6jhXQvHesp9VYtG7QDJaZtZ1Q== dependencies: "@keep-network/bitcoin-spv-sol" "3.4.0-solc-0.8" - "@keep-network/ecdsa" "2.1.0-dev.16" - "@keep-network/random-beacon" "2.1.0-dev.17" - "@keep-network/tbtc" "1.1.2-dev.1" + "@keep-network/ecdsa" "2.0.0" + "@keep-network/random-beacon" "2.0.0" + "@keep-network/tbtc" "1.1.0" "@openzeppelin/contracts" "^4.8.1" "@openzeppelin/contracts-upgradeable" "^4.8.1" "@thesis/solidity-contracts" "github:thesis/solidity-contracts#4985bcf" -"@keep-network/tbtc@1.1.2-dev.1": - version "1.1.2-dev.1" - resolved "https://registry.yarnpkg.com/@keep-network/tbtc/-/tbtc-1.1.2-dev.1.tgz#dd1e734c0fed50474c74d7170c8749127231d1f9" - integrity sha512-IRa0j1D7JBG8UpduaFxkaq2Ii6F61HhNMUBmxr7kAIZwj/yx8sYXWi921mn0L2Z+hAYNcwEUVhCM91VKQH29pQ== +"@keep-network/tbtc@1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@keep-network/tbtc/-/tbtc-1.1.0.tgz#9574ff355af04e77fb73a7bbe3e74cfd8764cf3c" + integrity sha512-V4sGR/t61PgkEF11GDZL5QNijVSdDhL7A7larcOSSCmKJOugxd5s+d+NdhYcHZhX9IS58ebtepvZan8TydHUHw== dependencies: - "@celo/contractkit" "^1.0.2" - "@keep-network/keep-ecdsa" ">1.9.0-dev <1.9.0-ropsten" + "@keep-network/keep-ecdsa" "1.2.1" "@summa-tx/bitcoin-spv-sol" "^3.1.0" "@summa-tx/relay-sol" "^2.0.2" openzeppelin-solidity "2.3.0" @@ -1661,11 +1543,26 @@ rxjs "6" semver "^7.3.5" +"@ledgerhq/devices@^8.0.8": + version "8.0.8" + resolved "https://registry.yarnpkg.com/@ledgerhq/devices/-/devices-8.0.8.tgz#cd233eb54a044913160c9183be9fb22adae4e071" + integrity sha512-0j7E8DY2jeSSATc8IJk+tXDZ9u+Z7tXxB8I4TzXrfV/8A5exMh/K1IwX6Jt1zlw1wre4CT9MV4mzUs3M/TE7lg== + dependencies: + "@ledgerhq/errors" "^6.15.0" + "@ledgerhq/logs" "^6.11.0" + rxjs "^7.8.1" + semver "^7.3.5" + "@ledgerhq/errors@^5.50.0": version "5.50.0" resolved "https://registry.yarnpkg.com/@ledgerhq/errors/-/errors-5.50.0.tgz#e3a6834cb8c19346efca214c1af84ed28e69dad9" integrity sha512-gu6aJ/BHuRlpU7kgVpy2vcYk6atjB4iauP2ymF7Gk0ez0Y/6VSMVSJvubeEQN+IV60+OBK0JgeIZG7OiHaw8ow== +"@ledgerhq/errors@^6.14.0", "@ledgerhq/errors@^6.15.0": + version "6.15.0" + resolved "https://registry.yarnpkg.com/@ledgerhq/errors/-/errors-6.15.0.tgz#45cda73915f695cc072cb8a99650830bc5dc6668" + integrity sha512-6xaw5/mgoht62TnL3rXsaQYEFwpnXyNDk1AOSJksIjFHx9bHUnkyVmrnGQDj0JLzi+E7bHEgTrpCs8wpeDh9jA== + "@ledgerhq/hw-app-eth@^5.11.0": version "5.53.0" resolved "https://registry.yarnpkg.com/@ledgerhq/hw-app-eth/-/hw-app-eth-5.53.0.tgz#5df2d7427db9f387099d0cc437e9730101d7c404" @@ -1687,11 +1584,45 @@ "@ledgerhq/errors" "^5.50.0" events "^3.3.0" +"@ledgerhq/hw-transport@^6.28.8": + version "6.29.0" + resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport/-/hw-transport-6.29.0.tgz#2b85f39d90b093930f0c7bfc513b29eb47ba97fa" + integrity sha512-WQfzxt3EnnbOmzZVYiCgSmNsqafBOFQn40awvUPY2IZviJRs23/1ANPHAo76bzPV88+Qk0+1wZlcnIanGN6fFA== + dependencies: + "@ledgerhq/devices" "^8.0.8" + "@ledgerhq/errors" "^6.15.0" + "@ledgerhq/logs" "^6.11.0" + events "^3.3.0" + "@ledgerhq/logs@^5.50.0": version "5.50.0" resolved "https://registry.yarnpkg.com/@ledgerhq/logs/-/logs-5.50.0.tgz#29c6419e8379d496ab6d0426eadf3c4d100cd186" integrity sha512-swKHYCOZUGyVt4ge0u8a7AwNcA//h4nx5wIi0sruGye1IJ5Cva0GyK9L2/WdX+kWVTKp92ZiEo1df31lrWGPgA== +"@ledgerhq/logs@^6.11.0": + version "6.11.0" + resolved "https://registry.yarnpkg.com/@ledgerhq/logs/-/logs-6.11.0.tgz#0d28e7edcf71548506f4304686cba480ba91bbcf" + integrity sha512-HHK9y4GGe4X7CXbRUCh7z8Mp+WggpJn1dmUjmuk1rNugESF6o8nAOnXA+BxwtRRNV3CgNJR3Wxdos4J9qV0Zsg== + +"@ledgerhq/wallet-api-client@^1.2.1": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@ledgerhq/wallet-api-client/-/wallet-api-client-1.2.1.tgz#b47fe5b4f431282f50ddb64c8abb911545593eba" + integrity sha512-uTBTZCpbLTM5y5Cd7ioQB0lcq0b3cbrU2bGzCiKuY1IEd0NUyFhr2dKliRrcLoMPDRtQRmRnSxeX0BFKinoo8Q== + dependencies: + "@ledgerhq/hw-transport" "^6.28.8" + "@ledgerhq/wallet-api-core" "1.3.1" + bignumber.js "^9.1.2" + +"@ledgerhq/wallet-api-core@1.3.1": + version "1.3.1" + resolved "https://registry.yarnpkg.com/@ledgerhq/wallet-api-core/-/wallet-api-core-1.3.1.tgz#092d027a6d9ce7139a2d4c157480e2feb7c88489" + integrity sha512-yOeb1tfdwF6NdxVEIVr8SVz5iOyh6asWa0bbuCyMpiLrfuVS/Wkr6OeDMBYSxWxXxRFmQDJ9XQxdtSS+MGNk1Q== + dependencies: + "@ledgerhq/errors" "^6.14.0" + bignumber.js "^9.1.2" + uuid "^9.0.0" + zod "^3.22.2" + "@metamask/eth-sig-util@^4.0.0": version "4.0.1" resolved "https://registry.yarnpkg.com/@metamask/eth-sig-util/-/eth-sig-util-4.0.1.tgz#3ad61f6ea9ad73ba5b19db780d40d9aae5157088" @@ -1952,6 +1883,11 @@ "@types/sinon-chai" "^3.2.3" "@types/web3" "1.0.19" +"@openzeppelin/contracts-ethereum-package@^2.4.0": + version "2.5.0" + resolved "https://registry.yarnpkg.com/@openzeppelin/contracts-ethereum-package/-/contracts-ethereum-package-2.5.0.tgz#cfb4b91f8132edde7e04bcd032575d4c6b544f4a" + integrity sha512-14CijdTyy4Y/3D3UUeFC2oW12nt1Yq1M8gFOtkuODEvSYPe3YSAKnKyhUeGf0UDNCZzwfGr15KdiFK6AoJjoSQ== + "@openzeppelin/contracts-upgradeable@^4.6.0", "@openzeppelin/contracts-upgradeable@^4.8.1": version "4.9.2" resolved "https://registry.yarnpkg.com/@openzeppelin/contracts-upgradeable/-/contracts-upgradeable-4.9.2.tgz#a817c75688f8daede420052fbcb34e52482e769e" @@ -1962,11 +1898,6 @@ resolved "https://registry.yarnpkg.com/@openzeppelin/contracts-upgradeable/-/contracts-upgradeable-4.5.2.tgz#90d9e47bacfd8693bfad0ac8a394645575528d05" integrity sha512-xgWZYaPlrEOQo3cBj97Ufiuv79SPd8Brh4GcFYhPgb6WvAq4ppz8dWKL6h+jLAK01rUqMRp/TS9AdXgAeNvCLA== -"@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@^2.4.0": version "2.5.1" resolved "https://registry.yarnpkg.com/@openzeppelin/contracts/-/contracts-2.5.1.tgz#c76e3fc57aa224da3718ec351812a4251289db31" @@ -2192,11 +2123,6 @@ resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.14.0.tgz#9fb3a3cf3132328151f353de4632e01e52102bea" integrity sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ== -"@sindresorhus/is@^4.0.0": - version "4.6.0" - resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-4.6.0.tgz#3c7c9c46e678feefe7a2e5bb609d3dbd665ffb3f" - integrity sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw== - "@solidity-parser/parser@^0.14.1": version "0.14.5" resolved "https://registry.yarnpkg.com/@solidity-parser/parser/-/parser-0.14.5.tgz#87bc3cc7b068e08195c219c91cd8ddff5ef1a804" @@ -2266,13 +2192,6 @@ dependencies: defer-to-connect "^1.0.1" -"@szmarczak/http-timer@^4.0.5": - version "4.0.6" - resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-4.0.6.tgz#b4a914bb62e7c272d4e5989fe4440f812ab1d807" - integrity sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w== - dependencies: - defer-to-connect "^2.0.0" - "@thesis-co/eslint-config@github:thesis/eslint-config": version "0.1.0" resolved "https://codeload.github.com/thesis/eslint-config/tar.gz/382331b5ba1ab79839eaf5d70407d059715cc285" @@ -2300,22 +2219,12 @@ dependencies: "@openzeppelin/contracts" "^4.1.0" -"@threshold-network/solidity-contracts@1.3.0-dev.6": - version "1.3.0-dev.6" - resolved "https://registry.yarnpkg.com/@threshold-network/solidity-contracts/-/solidity-contracts-1.3.0-dev.6.tgz#41e34a84f409f63635e59f9a6ce170df1472b8a1" - integrity sha512-U7nMp+86M5qkjW7YUvT3qWgRiEEUIxqE96vkEiARTOkWX5JdLP2CXehkHCkEzjdgOCczmCp3fFtcgKFnQhhZ8A== - dependencies: - "@keep-network/keep-core" ">1.8.1-dev <1.8.1-goerli" - "@openzeppelin/contracts" "~4.5.0" - "@openzeppelin/contracts-upgradeable" "~4.5.2" - "@thesis/solidity-contracts" "github:thesis/solidity-contracts#4985bcf" - -"@threshold-network/solidity-contracts@1.3.0-dev.8": - version "1.3.0-dev.8" - resolved "https://registry.yarnpkg.com/@threshold-network/solidity-contracts/-/solidity-contracts-1.3.0-dev.8.tgz#6de25dc6ce374cfbdf3b67c72097044631222f3a" - integrity sha512-s6SFZyf1xXgOdMK1zYnjsURnVz7Xxzf0z/34vH+hDg8n/G8L0jPR6Iz4laWSSL2y1P3ffFAFTUMvwfJMJitfVw== +"@threshold-network/solidity-contracts@1.2.1": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@threshold-network/solidity-contracts/-/solidity-contracts-1.2.1.tgz#8f9d8fe52f24b51acc52fdff765fdef3b8546587" + integrity sha512-v19gnQzdU52DLB6ZpkCW4YHTvApmwA1EG/YRxh+FRrzeDOC6rv+EqUhLgKpMtSpgBZT1ryqqLXm1QmjkW6CIGw== dependencies: - "@keep-network/keep-core" ">1.8.1-dev <1.8.1-goerli" + "@keep-network/keep-core" "1.7.0" "@openzeppelin/contracts" "~4.5.0" "@openzeppelin/contracts-upgradeable" "~4.5.2" "@thesis/solidity-contracts" "github:thesis/solidity-contracts#4985bcf" @@ -2374,7 +2283,7 @@ dependencies: "@types/node" "*" -"@types/bn.js@^4.11.3", "@types/bn.js@^4.11.4", "@types/bn.js@^4.11.5": +"@types/bn.js@^4.11.3", "@types/bn.js@^4.11.4": version "4.11.6" resolved "https://registry.yarnpkg.com/@types/bn.js/-/bn.js-4.11.6.tgz#c306c70d9358aaea33cd4eda092a742b9505967c" integrity sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg== @@ -2388,16 +2297,6 @@ dependencies: "@types/node" "*" -"@types/cacheable-request@^6.0.1": - 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" "^3.1.4" - "@types/node" "*" - "@types/responselike" "^1.0.0" - "@types/cbor@^2.0.0": version "2.0.0" resolved "https://registry.yarnpkg.com/@types/cbor/-/cbor-2.0.0.tgz#c627afc2ee22f23f2337fecb34628a4f97c6afbb" @@ -2417,11 +2316,6 @@ resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.3.1.tgz#e2c6e73e0bdeb2521d00756d099218e9f5d90a04" integrity sha512-/zPMqDkzSZ8t3VtxOa4KPq7uzzW978M9Tvh+j7GHKuo6k6GTLxPJ4J5gE5cjfJ26pnXst0N5Hax8Sr0T2Mi9zQ== -"@types/country-data@^0.0.0": - version "0.0.0" - resolved "https://registry.yarnpkg.com/@types/country-data/-/country-data-0.0.0.tgz#6f5563cae3d148780c5b6539803a29bd93f8f1a1" - integrity sha512-lIxCk6G7AwmUagQ4gIQGxUBnvAq664prFD9nSAz6dgd1XmBXBtZABV/op+QsJsIyaP1GZsf/iXhYKHX3azSRCw== - "@types/debug@^4.1.5": version "4.1.8" resolved "https://registry.yarnpkg.com/@types/debug/-/debug-4.1.8.tgz#cef723a5d0a90990313faec2d1e22aee5eecb317" @@ -2429,31 +2323,6 @@ dependencies: "@types/ms" "*" -"@types/elliptic@^6.4.9": - version "6.4.17" - resolved "https://registry.yarnpkg.com/@types/elliptic/-/elliptic-6.4.17.tgz#6c9ff6ba137670c8bc3c65da2e23995b22ec3607" - integrity sha512-+NOzUIq9aenYuaIFS+8Gmv72r72zb12jttZsAsu4zEJ3QmQfGo958Kh0jQ+GJp5+uflE14KI4BcZqcsGCxTNFA== - dependencies: - "@types/bn.js" "*" - -"@types/ethereumjs-util@^5.2.0": - version "5.2.0" - resolved "https://registry.yarnpkg.com/@types/ethereumjs-util/-/ethereumjs-util-5.2.0.tgz#f49fe8114789ec0871721392c09318c3eb56671b" - integrity sha512-qwQgQqXXTRv2h2AlJef+tMEszLFkCB9dWnrJYIdAwqjubERXEc/geB+S3apRw0yQyTVnsBf8r6BhlrE8vx+3WQ== - dependencies: - "@types/bn.js" "*" - "@types/node" "*" - -"@types/google-libphonenumber@^7.4.17": - version "7.4.30" - resolved "https://registry.yarnpkg.com/@types/google-libphonenumber/-/google-libphonenumber-7.4.30.tgz#a47ed8f1f237bd43edbd1c8aff24400b0fd9b2fe" - integrity sha512-Td1X1ayRxePEm6/jPHUBs2tT6TzW1lrVB6ZX7ViPGellyzO/0xMNi+wx5nH6jEitjznq276VGIqjK5qAju0XVw== - -"@types/http-cache-semantics@*": - version "4.0.4" - resolved "https://registry.yarnpkg.com/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz#b979ebad3919799c979b17c72621c0bc0a31c6c4" - integrity sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA== - "@types/json-schema@^7.0.7": version "7.0.11" resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.11.tgz#d421b6c527a3037f7c84433fd2c4229e016863d3" @@ -2464,13 +2333,6 @@ resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== -"@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: - "@types/node" "*" - "@types/level-errors@*": version "3.0.0" resolved "https://registry.yarnpkg.com/@types/level-errors/-/level-errors-3.0.0.tgz#15c1f4915a5ef763b51651b15e90f6dc081b96a8" @@ -2485,11 +2347,6 @@ "@types/level-errors" "*" "@types/node" "*" -"@types/lodash@^4.14.170": - version "4.14.201" - resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.201.tgz#76f47cb63124e806824b6c18463daf3e1d480239" - integrity sha512-y9euML0cim1JrykNxADLfaG0FgD1g/yTHwUs/Jg9ZIU7WKj2/4IW9Lbb1WZbvck78W/lfGXFfe+u2EGfIJXdLQ== - "@types/lru-cache@^5.1.0": version "5.1.1" resolved "https://registry.yarnpkg.com/@types/lru-cache/-/lru-cache-5.1.1.tgz#c48c2e27b65d2a153b19bfc1a317e30872e01eef" @@ -2540,7 +2397,7 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-10.17.60.tgz#35f3d6213daed95da7f0f73e75bcc6980e90597b" integrity sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw== -"@types/node@^12.11.7", "@types/node@^12.12.6", "@types/node@^12.6.1": +"@types/node@^12.11.7", "@types/node@^12.6.1": version "12.20.55" resolved "https://registry.yarnpkg.com/@types/node/-/node-12.20.55.tgz#c329cbd434c42164f846b909bd6f85b5537f6240" integrity sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ== @@ -2567,13 +2424,6 @@ resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.7.tgz#63bb7d067db107cc1e457c303bc25d511febf6cb" integrity sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw== -"@types/randombytes@^2.0.0": - version "2.0.3" - resolved "https://registry.yarnpkg.com/@types/randombytes/-/randombytes-2.0.3.tgz#c83a107ef51ae7a8611a7b964f54b21cb782bbed" - integrity sha512-+NRgihTfuURllWCiIAhm1wsJqzsocnqXM77V/CalsdJIYSRGEHMnritxh+6EsBklshC+clo1KgnN14qgSGeQdw== - dependencies: - "@types/node" "*" - "@types/readable-stream@^2.3.13": version "2.3.15" resolved "https://registry.yarnpkg.com/@types/readable-stream/-/readable-stream-2.3.15.tgz#3d79c9ceb1b6a57d5f6e6976f489b9b5384321ae" @@ -2582,13 +2432,6 @@ "@types/node" "*" safe-buffer "~5.1.1" -"@types/responselike@^1.0.0": - version "1.0.3" - resolved "https://registry.yarnpkg.com/@types/responselike/-/responselike-1.0.3.tgz#cc29706f0a397cfe6df89debfe4bf5cea159db50" - integrity sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw== - dependencies: - "@types/node" "*" - "@types/secp256k1@^4.0.1": version "4.0.3" resolved "https://registry.yarnpkg.com/@types/secp256k1/-/secp256k1-4.0.3.tgz#1b8e55d8e00f08ee7220b4d59a6abe89c37a901c" @@ -2621,11 +2464,6 @@ resolved "https://registry.yarnpkg.com/@types/underscore/-/underscore-1.11.4.tgz#62e393f8bc4bd8a06154d110c7d042a93751def3" integrity sha512-uO4CD2ELOjw8tasUrAhvnn2W4A0ZECOvMjCivJr4gA9pGgjv+qxKWY9GLTMVEK8ej85BxQOocUyE7hImmSQYcg== -"@types/utf8@^2.1.6": - version "2.1.6" - resolved "https://registry.yarnpkg.com/@types/utf8/-/utf8-2.1.6.tgz#430cabb71a42d0a3613cce5621324fe4f5a25753" - integrity sha512-pRs2gYF5yoKYrgSaira0DJqVg2tFuF+Qjp838xS7K+mJyY2jJzjsrl6y17GbIa4uMRogMbxs+ghNCvKg6XyNrA== - "@types/web3@1.0.19": version "1.0.19" resolved "https://registry.yarnpkg.com/@types/web3/-/web3-1.0.19.tgz#46b85d91d398ded9ab7c85a5dd57cb33ac558924" @@ -3127,7 +2965,7 @@ balanced-match@^1.0.0: resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== -base-x@^3.0.2, base-x@^3.0.8: +base-x@^3.0.2: version "3.0.9" resolved "https://registry.yarnpkg.com/base-x/-/base-x-3.0.9.tgz#6349aaabb58526332de9f60995e548a53fe21320" integrity sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ== @@ -3186,6 +3024,11 @@ bignumber.js@^7.2.0: resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-7.2.1.tgz#80c048759d826800807c4bfd521e50edbba57a5f" integrity sha512-S4XzBk5sMB+Rcb/LNcpzXr57VRTxgAvaAEDAl1AwRx27j00hT84O6OkteE7u8UB3NuaaygCRrEpqox4uDOrbdQ== +bignumber.js@^9.1.2: + version "9.1.2" + resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.1.2.tgz#b7c4242259c008903b13707983b5f4bbd31eda0c" + integrity sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug== + binary-extensions@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" @@ -3236,15 +3079,6 @@ bip39@3.0.4: pbkdf2 "^3.0.9" randombytes "^2.0.1" -"bip39@https://github.com/bitcoinjs/bip39#d8ea080a18b40f301d4e2219a2991cd2417e83c2": - version "3.0.3" - resolved "https://github.com/bitcoinjs/bip39#d8ea080a18b40f301d4e2219a2991cd2417e83c2" - dependencies: - "@types/node" "11.11.6" - create-hash "^1.1.0" - pbkdf2 "^3.0.9" - randombytes "^2.0.1" - bitcoinjs-lib@^6.1.5: version "6.1.5" resolved "https://registry.yarnpkg.com/bitcoinjs-lib/-/bitcoinjs-lib-6.1.5.tgz#3b03509ae7ddd80a440f10fc38c4a97f0a028d8c" @@ -3282,18 +3116,6 @@ blakejs@^1.1.0: ts-node "^8.4.1" typescript "^3.6.4" -"bls12377js@https://github.com/celo-org/bls12377js#cb38a4cfb643c778619d79b20ca3e5283a2122a6": - version "0.1.0" - resolved "https://github.com/celo-org/bls12377js#cb38a4cfb643c778619d79b20ca3e5283a2122a6" - dependencies: - "@stablelib/blake2xs" "0.10.4" - "@types/node" "^12.11.7" - big-integer "^1.6.44" - chai "^4.2.0" - mocha "^6.2.2" - ts-node "^8.4.1" - typescript "^3.6.4" - bluebird@^3.5.0, bluebird@^3.5.2: version "3.7.2" resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" @@ -3572,11 +3394,6 @@ bytes@3.1.2: resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== -cacheable-lookup@^5.0.3: - version "5.0.4" - resolved "https://registry.yarnpkg.com/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz#5a6b865b2c44357be3d5ebc2a467b032719a7005" - integrity sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA== - cacheable-request@^6.0.0: version "6.1.0" resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-6.1.0.tgz#20ffb8bd162ba4be11e9567d823db651052ca912" @@ -3590,19 +3407,6 @@ cacheable-request@^6.0.0: normalize-url "^4.1.0" responselike "^1.0.2" -cacheable-request@^7.0.2: - 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" - http-cache-semantics "^4.0.0" - keyv "^4.0.0" - lowercase-keys "^2.0.0" - normalize-url "^6.0.1" - responselike "^2.0.0" - call-bind@^1.0.0, call-bind@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" @@ -3611,15 +3415,6 @@ call-bind@^1.0.0, call-bind@^1.0.2: function-bind "^1.1.1" get-intrinsic "^1.0.2" -call-bind@^1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.5.tgz#6fa2b7845ce0ea49bf4d8b9ef64727a2c2e2e513" - integrity sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ== - dependencies: - function-bind "^1.1.2" - get-intrinsic "^1.2.1" - set-function-length "^1.1.1" - callsites@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" @@ -3752,17 +3547,6 @@ ci-info@^2.0.0: resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== -cids@^0.7.1: - version "0.7.5" - resolved "https://registry.yarnpkg.com/cids/-/cids-0.7.5.tgz#60a08138a99bfb69b6be4ceb63bfef7a396b28b2" - integrity sha512-zT7mPeghoWAu+ppn8+BS1tQ5qGmbMfB4AregnQjA/qHY3GC1m1ptI9GkWNlgeu38r7CuRdXB47uY2XgAYt6QVA== - dependencies: - buffer "^5.5.0" - class-is "^1.1.0" - multibase "~0.6.0" - multicodec "^1.0.0" - multihashes "~0.4.15" - cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: version "1.0.4" resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" @@ -3771,11 +3555,6 @@ cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: inherits "^2.0.1" safe-buffer "^5.0.1" -class-is@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/class-is/-/class-is-1.1.0.tgz#9d3c0fba0440d211d843cec3dedfa48055005825" - integrity sha512-rhjH9AG1fvabIDoGRVH587413LPjTZgmDF9fOFCbFJQV4yuocX1mHxxvXI4g3cGwbVY9wAYIoKlg1N79frJKQw== - classic-level@^1.2.0: version "1.3.0" resolved "https://registry.yarnpkg.com/classic-level/-/classic-level-1.3.0.tgz#5e36680e01dc6b271775c093f2150844c5edd5c8" @@ -3926,15 +3705,6 @@ content-disposition@0.5.4: dependencies: safe-buffer "5.2.1" -content-hash@^2.5.2: - version "2.5.2" - resolved "https://registry.yarnpkg.com/content-hash/-/content-hash-2.5.2.tgz#bbc2655e7c21f14fd3bfc7b7d4bfe6e454c9e211" - integrity sha512-FvIQKy0S1JaWV10sMsA7TRx8bpU+pqPkhbsfvOJAdjRXvYxEckAwQWGwtRjiaJfh+E0DvcWUGqcdjwMGFjsSdw== - dependencies: - cids "^0.7.1" - multicodec "^0.5.5" - multihashes "^0.4.15" - content-type@~1.0.4, content-type@~1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.5.tgz#8b773162656d1d1086784c8f23a54ce6d73d7918" @@ -4045,13 +3815,6 @@ cross-fetch@3.0.4: node-fetch "2.6.0" whatwg-fetch "3.0.0" -cross-fetch@^3.0.6: - version "3.1.8" - resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.1.8.tgz#0327eba65fd68a7d119f8fb2bf9334a1a7956f82" - integrity sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg== - dependencies: - node-fetch "^2.6.12" - cross-spawn@^7.0.2: version "7.0.3" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" @@ -4172,13 +3935,6 @@ decompress-response@^3.2.0, decompress-response@^3.3.0: dependencies: mimic-response "^1.0.0" -decompress-response@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-6.0.0.tgz#ca387612ddb7e104bd16d85aab00d5ecf09c66fc" - integrity sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ== - dependencies: - mimic-response "^3.1.0" - decompress-tar@^4.0.0, decompress-tar@^4.1.0, decompress-tar@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/decompress-tar/-/decompress-tar-4.1.1.tgz#718cbd3fcb16209716e70a26b84e7ba4592e5af1" @@ -4261,11 +4017,6 @@ defer-to-connect@^1.0.1: resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-1.1.3.tgz#331ae050c08dcf789f8c83a7b81f0ed94f4ac591" integrity sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ== -defer-to-connect@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-2.0.1.tgz#8016bdb4143e4632b77a3449c6236277de520587" - integrity sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg== - deferred-leveldown@~5.3.0: version "5.3.0" resolved "https://registry.yarnpkg.com/deferred-leveldown/-/deferred-leveldown-5.3.0.tgz#27a997ad95408b61161aa69bd489b86c71b78058" @@ -4274,15 +4025,6 @@ deferred-leveldown@~5.3.0: abstract-leveldown "~6.2.1" inherits "^2.0.3" -define-data-property@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.1.tgz#c35f7cd0ab09883480d12ac5cb213715587800b3" - integrity sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ== - dependencies: - get-intrinsic "^1.2.1" - gopd "^1.0.1" - has-property-descriptors "^1.0.0" - define-properties@^1.1.2, define-properties@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.0.tgz#52988570670c9eacedd8064f4a990f2405849bd5" @@ -4987,15 +4729,6 @@ eth-lib@0.2.7: elliptic "^6.4.0" xhr-request-promise "^0.1.2" -eth-lib@0.2.8, eth-lib@^0.2.8: - version "0.2.8" - resolved "https://registry.yarnpkg.com/eth-lib/-/eth-lib-0.2.8.tgz#b194058bef4b220ad12ea497431d6cb6aa0623c8" - integrity sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw== - dependencies: - bn.js "^4.11.6" - elliptic "^6.4.0" - xhr-request-promise "^0.1.2" - eth-lib@^0.1.26: version "0.1.29" resolved "https://registry.yarnpkg.com/eth-lib/-/eth-lib-0.1.29.tgz#0c11f5060d42da9f931eab6199084734f4dbd1d9" @@ -5008,6 +4741,15 @@ eth-lib@^0.1.26: ws "^3.0.0" xhr-request-promise "^0.1.2" +eth-lib@^0.2.8: + version "0.2.8" + resolved "https://registry.yarnpkg.com/eth-lib/-/eth-lib-0.2.8.tgz#b194058bef4b220ad12ea497431d6cb6aa0623c8" + integrity sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw== + dependencies: + bn.js "^4.11.6" + elliptic "^6.4.0" + xhr-request-promise "^0.1.2" + ethereum-bloom-filters@^1.0.6: version "1.0.10" resolved "https://registry.yarnpkg.com/ethereum-bloom-filters/-/ethereum-bloom-filters-1.0.10.tgz#3ca07f4aed698e75bd134584850260246a5fed8a" @@ -5288,11 +5030,6 @@ eventemitter3@3.1.2: resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-3.1.2.tgz#2d3d48f9c346698fce83a85d7d664e98535df6e7" integrity sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q== -eventemitter3@4.0.4: - version "4.0.4" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.4.tgz#b5463ace635a083d018bdc7c917b4c5f10a85384" - integrity sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ== - events@^3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" @@ -5672,11 +5409,6 @@ function-bind@^1.1.1: resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== -function-bind@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" - integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== - function.prototype.name@^1.1.5: version "1.1.5" resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.5.tgz#cce0505fe1ffb80503e6f9e46cc64e46a12a9621" @@ -5750,16 +5482,6 @@ get-intrinsic@^1.2.0: has-proto "^1.0.1" has-symbols "^1.0.3" -get-intrinsic@^1.2.1: - version "1.2.2" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.2.tgz#281b7622971123e1ef4b3c90fd7539306da93f3b" - integrity sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA== - dependencies: - function-bind "^1.1.2" - has-proto "^1.0.1" - has-symbols "^1.0.3" - hasown "^2.0.0" - get-stdin@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-6.0.0.tgz#9e09bf712b360ab9225e812048f71fde9c89657b" @@ -5896,11 +5618,6 @@ globby@^11.0.3: merge2 "^1.4.1" slash "^3.0.0" -google-libphonenumber@^3.2.15: - version "3.2.33" - resolved "https://registry.yarnpkg.com/google-libphonenumber/-/google-libphonenumber-3.2.33.tgz#948b877914eb7f35fc6d311220472bf9bd6b27d4" - integrity sha512-1QKCvAlfq8zY1mviORI9lDzM3I/hwm9+h0CwYBTLq59DBbSHMd5zBOLqHZFiBLicRpwIz46Nynvbywj1XApKvA== - google-libphonenumber@^3.2.4: version "3.2.32" resolved "https://registry.yarnpkg.com/google-libphonenumber/-/google-libphonenumber-3.2.32.tgz#63c48a9c247b64a3bc2eec21bdf3fcfbf2e148c0" @@ -5930,23 +5647,6 @@ got@9.6.0: to-readable-stream "^1.0.0" url-parse-lax "^3.0.0" -got@^11.8.5: - 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" - "@types/cacheable-request" "^6.0.1" - "@types/responselike" "^1.0.0" - cacheable-lookup "^5.0.3" - cacheable-request "^7.0.2" - decompress-response "^6.0.0" - http2-wrapper "^1.0.0-beta.5.2" - lowercase-keys "^2.0.0" - p-cancelable "^2.0.0" - responselike "^2.0.0" - got@^7.1.0: version "7.1.0" resolved "https://registry.yarnpkg.com/got/-/got-7.1.0.tgz#05450fd84094e6bbea56f451a43a9c289166385a" @@ -6151,13 +5851,6 @@ hash.js@1.1.7, hash.js@^1.0.0, hash.js@^1.0.3, hash.js@^1.1.7: inherits "^2.0.3" minimalistic-assert "^1.0.1" -hasown@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.0.tgz#f4c513d454a57b7c7e1650778de226b11700546c" - integrity sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA== - dependencies: - function-bind "^1.1.2" - he@1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" @@ -6207,14 +5900,6 @@ http-signature@~1.2.0: jsprim "^1.2.2" sshpk "^1.7.0" -http2-wrapper@^1.0.0-beta.5.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/http2-wrapper/-/http2-wrapper-1.0.3.tgz#b8f55e0c1f25d4ebd08b3b0c2c079f9590800b3d" - integrity sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg== - dependencies: - quick-lru "^5.1.1" - resolve-alpn "^1.0.0" - https-proxy-agent@^5.0.0: version "5.0.1" resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz#c59ef224a04fe8b754f3db0063a25ea30d0005d6" @@ -6350,14 +6035,6 @@ ipaddr.js@1.9.1: resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== -is-arguments@^1.0.4: - version "1.1.1" - resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b" - integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA== - dependencies: - call-bind "^1.0.2" - has-tostringtag "^1.0.0" - is-array-buffer@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.1.tgz#deb1db4fcae48308d54ef2442706c0393997052a" @@ -6454,13 +6131,6 @@ is-function@^1.0.1: resolved "https://registry.yarnpkg.com/is-function/-/is-function-1.0.2.tgz#4f097f30abf6efadac9833b17ca5dc03f8144e08" integrity sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ== -is-generator-function@^1.0.7: - version "1.0.10" - resolved "https://registry.yarnpkg.com/is-generator-function/-/is-generator-function-1.0.10.tgz#f1558baf1ac17e0deea7c0415c438351ff2b3c72" - integrity sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A== - dependencies: - has-tostringtag "^1.0.0" - is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: version "4.0.3" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" @@ -6560,13 +6230,6 @@ is-typed-array@^1.1.10, is-typed-array@^1.1.9: gopd "^1.0.1" has-tostringtag "^1.0.0" -is-typed-array@^1.1.3: - version "1.1.12" - resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.12.tgz#d0bab5686ef4a76f7a73097b95470ab199c57d4a" - integrity sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg== - dependencies: - which-typed-array "^1.1.11" - is-typedarray@^1.0.0, is-typedarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" @@ -6675,11 +6338,6 @@ json-buffer@3.0.0: resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898" integrity sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ== -json-buffer@3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" - integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== - json-schema-traverse@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" @@ -6793,13 +6451,6 @@ keyv@^3.0.0: dependencies: json-buffer "3.0.0" -keyv@^4.0.0: - version "4.5.4" - resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.4.tgz#a879a99e29452f942439f2a405e3af8b31d4de93" - integrity sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw== - dependencies: - json-buffer "3.0.1" - klaw@^1.0.0: version "1.3.1" resolved "https://registry.yarnpkg.com/klaw/-/klaw-1.3.1.tgz#4088433b46b3b1ba259d78785d8e96f73ba02439" @@ -7001,7 +6652,7 @@ lodash.truncate@^4.4.2: resolved "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193" integrity sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM= -lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.21: +lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.15: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== @@ -7201,11 +6852,6 @@ mimic-response@^1.0.0, mimic-response@^1.0.1: resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== -mimic-response@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-3.1.0.tgz#2d1d59af9c1b129815accc2c46a022a5ce1fa3c9" - integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ== - min-document@^2.19.0: version "2.19.0" resolved "https://registry.yarnpkg.com/min-document/-/min-document-2.19.0.tgz#7bd282e3f5842ed295bb748cdd9f1ffa2c824685" @@ -7435,46 +7081,6 @@ ms@2.1.3, ms@^2.1.1: resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== -multibase@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/multibase/-/multibase-0.7.0.tgz#1adfc1c50abe05eefeb5091ac0c2728d6b84581b" - integrity sha512-TW8q03O0f6PNFTQDvh3xxH03c8CjGaaYrjkl9UQPG6rz53TQzzxJVCIWVjzcbN/Q5Y53Zd0IBQBMVktVgNx4Fg== - dependencies: - base-x "^3.0.8" - buffer "^5.5.0" - -multibase@~0.6.0: - version "0.6.1" - resolved "https://registry.yarnpkg.com/multibase/-/multibase-0.6.1.tgz#b76df6298536cc17b9f6a6db53ec88f85f8cc12b" - integrity sha512-pFfAwyTjbbQgNc3G7D48JkJxWtoJoBMaR4xQUOuB8RnCgRqaYmWNFeJTTvrJ2w51bjLq2zTby6Rqj9TQ9elSUw== - dependencies: - base-x "^3.0.8" - buffer "^5.5.0" - -multicodec@^0.5.5: - version "0.5.7" - resolved "https://registry.yarnpkg.com/multicodec/-/multicodec-0.5.7.tgz#1fb3f9dd866a10a55d226e194abba2dcc1ee9ffd" - integrity sha512-PscoRxm3f+88fAtELwUnZxGDkduE2HD9Q6GHUOywQLjOGT/HAdhjLDYNZ1e7VR0s0TP0EwZ16LNUTFpoBGivOA== - dependencies: - varint "^5.0.0" - -multicodec@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/multicodec/-/multicodec-1.0.4.tgz#46ac064657c40380c28367c90304d8ed175a714f" - integrity sha512-NDd7FeS3QamVtbgfvu5h7fd1IlbaC4EQ0/pgU4zqE2vdHCmBGsUa0TiM8/TdSeG6BMPC92OOCf8F1ocE/Wkrrg== - dependencies: - buffer "^5.6.0" - varint "^5.0.0" - -multihashes@^0.4.15, multihashes@~0.4.15: - version "0.4.21" - resolved "https://registry.yarnpkg.com/multihashes/-/multihashes-0.4.21.tgz#dc02d525579f334a7909ade8a122dabb58ccfcb5" - integrity sha512-uVSvmeCWf36pU2nB4/1kzYZjsXD9vofZKpgudqkceYY5g2aZZXJ5r9lxuzoRLl1OAp28XljXsEJ/X/85ZsKmKw== - dependencies: - buffer "^5.5.0" - multibase "^0.7.0" - varint "^5.0.0" - murmur-128@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/murmur-128/-/murmur-128-0.2.1.tgz#a9f6568781d2350ecb1bf80c14968cadbeaa4b4d" @@ -7547,13 +7153,6 @@ node-fetch@2.6.0: resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.0.tgz#e633456386d4aa55863f676a7ab0daa8fdecb0fd" integrity sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA== -node-fetch@^2.6.12: - version "2.7.0" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.7.0.tgz#d0f0fa6e3e2dc1d27efcd8ad99d550bda94d187d" - integrity sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A== - dependencies: - whatwg-url "^5.0.0" - node-fetch@^2.6.7: version "2.6.7" resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad" @@ -7601,11 +7200,6 @@ normalize-url@^4.1.0: resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.1.tgz#0dd90cf1288ee1d1313b87081c9a5932ee48518a" integrity sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA== -normalize-url@^6.0.1: - version "6.1.0" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-6.1.0.tgz#40d0885b535deffe3f3147bec877d05fe4c5668a" - integrity sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A== - number-is-nan@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" @@ -7722,13 +7316,6 @@ oboe@2.1.4: dependencies: http-https "^1.0.0" -oboe@2.1.5: - version "2.1.5" - resolved "https://registry.yarnpkg.com/oboe/-/oboe-2.1.5.tgz#5554284c543a2266d7a38f17e073821fbde393cd" - integrity sha512-zRFWiF+FoicxEs3jNI/WYUrVEgA7DeET/InK0XQuudGHRg8iIob3cNPrJTKaz4004uaA9Pbe+Dwa8iluhjLZWA== - dependencies: - http-https "^1.0.0" - on-finished@2.4.1: version "2.4.1" resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f" @@ -7794,11 +7381,6 @@ p-cancelable@^1.0.0: resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-1.1.0.tgz#d078d15a3af409220c886f1d9a0ca2e441ab26cc" integrity sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw== -p-cancelable@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-2.1.1.tgz#aab7fbd416582fa32a3db49859c122487c5ed2cf" - integrity sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg== - p-finally@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" @@ -8170,11 +7752,6 @@ queue-microtask@^1.2.2, queue-microtask@^1.2.3: resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== -quick-lru@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932" - integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA== - randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" @@ -8341,11 +7918,6 @@ require-main-filename@^2.0.0: resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== -resolve-alpn@^1.0.0: - version "1.2.1" - resolved "https://registry.yarnpkg.com/resolve-alpn/-/resolve-alpn-1.2.1.tgz#b7adbdac3546aaaec20b45e7d8265927072726f9" - integrity sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g== - resolve-from@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" @@ -8382,13 +7954,6 @@ responselike@^1.0.2: dependencies: lowercase-keys "^1.0.0" -responselike@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/responselike/-/responselike-2.0.1.tgz#9a0bc8fdc252f3fb1cca68b016591059ba1422bc" - integrity sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw== - dependencies: - lowercase-keys "^2.0.0" - restore-cursor@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" @@ -8469,6 +8034,13 @@ rxjs@6: dependencies: tslib "^1.9.0" +rxjs@^7.8.1: + 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" + safe-array-concat@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/safe-array-concat/-/safe-array-concat-1.0.0.tgz#2064223cba3c08d2ee05148eedbc563cd6d84060" @@ -8513,7 +8085,7 @@ scrypt-js@2.0.4: resolved "https://registry.yarnpkg.com/scrypt-js/-/scrypt-js-2.0.4.tgz#32f8c5149f0797672e551c07e230f834b6af5f16" integrity sha512-4KsaGcPnuhtCZQCxFxN3GVYIhKFPTdLd8PLC552XwbMndtD0cjRFAhDuuydXQ0h08ZfPgzqe6EKHozpuH74iDw== -scrypt-js@3.0.1, scrypt-js@^3.0.0, scrypt-js@^3.0.1: +scrypt-js@3.0.1, scrypt-js@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/scrypt-js/-/scrypt-js-3.0.1.tgz#d314a57c2aef69d1ad98a138a21fe9eafa9ee312" integrity sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA== @@ -8641,16 +8213,6 @@ set-blocking@^2.0.0: resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== -set-function-length@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.1.1.tgz#4bc39fafb0307224a33e106a7d35ca1218d659ed" - integrity sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ== - dependencies: - define-data-property "^1.1.1" - get-intrinsic "^1.2.1" - gopd "^1.0.1" - has-property-descriptors "^1.0.0" - setimmediate@1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.4.tgz#20e81de622d4a02588ce0c8da8973cbcf1d3138f" @@ -9068,23 +8630,6 @@ swarm-js@0.1.39: tar "^4.0.2" xhr-request-promise "^0.1.2" -swarm-js@^0.1.40: - version "0.1.42" - resolved "https://registry.yarnpkg.com/swarm-js/-/swarm-js-0.1.42.tgz#497995c62df6696f6e22372f457120e43e727979" - integrity sha512-BV7c/dVlA3R6ya1lMlSSNPLYrntt0LUq4YMgy3iwpCIc6rZnS5W2wUoctarZ5pXlpKtxDDf9hNziEkcfrxdhqQ== - dependencies: - bluebird "^3.5.0" - buffer "^5.0.5" - eth-lib "^0.1.26" - fs-extra "^4.0.2" - got "^11.8.5" - mime-types "^2.1.16" - mkdirp-promise "^5.0.1" - mock-fs "^4.1.0" - setimmediate "^1.0.5" - tar "^4.0.2" - xhr-request "^1.0.1" - table-layout@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/table-layout/-/table-layout-1.0.2.tgz#c4038a1853b0136d63365a734b6931cf4fad4a04" @@ -9276,6 +8821,11 @@ tslib@^1.8.1, tslib@^1.9.0, tslib@^1.9.3: resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== +tslib@^2.1.0: + version "2.6.2" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" + integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== + tsort@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/tsort/-/tsort-0.0.1.tgz#e2280f5e817f8bf4275657fd0f9aebd44f5a2786" @@ -9435,11 +8985,6 @@ unbzip2-stream@^1.0.9: buffer "^5.2.1" through "^2.3.8" -underscore@1.12.1: - version "1.12.1" - resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.12.1.tgz#7bb8cc9b3d397e201cf8553336d262544ead829e" - integrity sha512-hEQt0+ZLDVUMhebKxL4x1BTtDY7bavVofhZ9KZ4aI26X9SRaE+Y3m83XUL1UP2jn8ynjndwCCpEHdUG+9pP1Tw== - underscore@1.9.1: version "1.9.1" resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.9.1.tgz#06dce34a0e68a7babc29b365b8e74b8925203961" @@ -9535,17 +9080,6 @@ util-deprecate@^1.0.1, util-deprecate@~1.0.1: resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== -util@^0.12.0: - version "0.12.5" - resolved "https://registry.yarnpkg.com/util/-/util-0.12.5.tgz#5f17a6059b73db61a875668781a1c2b136bd6fbc" - integrity sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA== - dependencies: - inherits "^2.0.3" - is-arguments "^1.0.4" - is-generator-function "^1.0.7" - is-typed-array "^1.1.3" - which-typed-array "^1.1.2" - utils-merge@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" @@ -9571,6 +9105,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.1" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-9.0.1.tgz#e188d4c8853cc722220392c424cd637f32293f30" + integrity sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA== + 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" @@ -9589,11 +9128,6 @@ validate-npm-package-license@^3.0.1: spdx-correct "^3.0.0" spdx-expression-parse "^3.0.0" -varint@^5.0.0: - version "5.0.2" - resolved "https://registry.yarnpkg.com/varint/-/varint-5.0.2.tgz#5b47f8a947eb668b848e034dcfa87d0ff8a7f7a4" - integrity sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow== - varuint-bitcoin@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/varuint-bitcoin/-/varuint-bitcoin-1.1.2.tgz#e76c138249d06138b480d4c5b40ef53693e24e92" @@ -9635,16 +9169,6 @@ web3-bzz@1.2.4: swarm-js "0.1.39" underscore "1.9.1" -web3-bzz@1.3.6: - version "1.3.6" - resolved "https://registry.yarnpkg.com/web3-bzz/-/web3-bzz-1.3.6.tgz#95f370aecc3ff6ad07f057e6c0c916ef09b04dde" - integrity sha512-ibHdx1wkseujFejrtY7ZyC0QxQ4ATXjzcNUpaLrvM6AEae8prUiyT/OloG9FWDgFD2CPLwzKwfSQezYQlANNlw== - dependencies: - "@types/node" "^12.12.6" - got "9.6.0" - swarm-js "^0.1.40" - underscore "1.12.1" - web3-core-helpers@1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/web3-core-helpers/-/web3-core-helpers-1.2.2.tgz#484974f4bd4a487217b85b0d7cfe841af0907619" @@ -9663,15 +9187,6 @@ web3-core-helpers@1.2.4: web3-eth-iban "1.2.4" web3-utils "1.2.4" -web3-core-helpers@1.3.6: - version "1.3.6" - resolved "https://registry.yarnpkg.com/web3-core-helpers/-/web3-core-helpers-1.3.6.tgz#c478246a9abe4e5456acf42657dac2f7c330be74" - integrity sha512-nhtjA2ZbkppjlxTSwG0Ttu6FcPkVu1rCN5IFAOVpF/L0SEt+jy+O5l90+cjDq0jAYvlBwUwnbh2mR9hwDEJCNA== - dependencies: - underscore "1.12.1" - web3-eth-iban "1.3.6" - web3-utils "1.3.6" - web3-core-method@1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/web3-core-method/-/web3-core-method-1.2.2.tgz#d4fe2bb1945b7152e5f08e4ea568b171132a1e56" @@ -9694,18 +9209,6 @@ web3-core-method@1.2.4: web3-core-subscriptions "1.2.4" web3-utils "1.2.4" -web3-core-method@1.3.6: - version "1.3.6" - resolved "https://registry.yarnpkg.com/web3-core-method/-/web3-core-method-1.3.6.tgz#4b0334edd94b03dfec729d113c69a4eb6ebc68ae" - integrity sha512-RyegqVGxn0cyYW5yzAwkPlsSEynkdPiegd7RxgB4ak1eKk2Cv1q2x4C7D2sZjeeCEF+q6fOkVmo2OZNqS2iQxg== - dependencies: - "@ethersproject/transactions" "^5.0.0-beta.135" - underscore "1.12.1" - web3-core-helpers "1.3.6" - web3-core-promievent "1.3.6" - web3-core-subscriptions "1.3.6" - web3-utils "1.3.6" - web3-core-promievent@1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/web3-core-promievent/-/web3-core-promievent-1.2.2.tgz#3b60e3f2a0c96db8a891c927899d29d39e66ab1c" @@ -9722,13 +9225,6 @@ web3-core-promievent@1.2.4: any-promise "1.3.0" eventemitter3 "3.1.2" -web3-core-promievent@1.3.6: - version "1.3.6" - resolved "https://registry.yarnpkg.com/web3-core-promievent/-/web3-core-promievent-1.3.6.tgz#6c27dc79de8f71b74f5d17acaf9aaf593d3cb0c9" - integrity sha512-Z+QzfyYDTXD5wJmZO5wwnRO8bAAHEItT1XNSPVb4J1CToV/I/SbF7CuF8Uzh2jns0Cm1109o666H7StFFvzVKw== - dependencies: - eventemitter3 "4.0.4" - web3-core-requestmanager@1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/web3-core-requestmanager/-/web3-core-requestmanager-1.2.2.tgz#667ba9ac724c9c76fa8965ae8a3c61f66e68d8d6" @@ -9751,18 +9247,6 @@ web3-core-requestmanager@1.2.4: web3-providers-ipc "1.2.4" web3-providers-ws "1.2.4" -web3-core-requestmanager@1.3.6: - version "1.3.6" - resolved "https://registry.yarnpkg.com/web3-core-requestmanager/-/web3-core-requestmanager-1.3.6.tgz#4fea269fe913fd4fca464b4f7c65cb94857b5b2a" - integrity sha512-2rIaeuqeo7QN1Eex7aXP0ZqeteJEPWXYFS/M3r3LXMiV8R4STQBKE+//dnHJXoo2ctzEB5cgd+7NaJM8S3gPyA== - dependencies: - underscore "1.12.1" - util "^0.12.0" - web3-core-helpers "1.3.6" - web3-providers-http "1.3.6" - web3-providers-ipc "1.3.6" - web3-providers-ws "1.3.6" - web3-core-subscriptions@1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/web3-core-subscriptions/-/web3-core-subscriptions-1.2.2.tgz#bf4ba23a653a003bdc3551649958cc0b080b068e" @@ -9781,15 +9265,6 @@ web3-core-subscriptions@1.2.4: underscore "1.9.1" web3-core-helpers "1.2.4" -web3-core-subscriptions@1.3.6: - version "1.3.6" - resolved "https://registry.yarnpkg.com/web3-core-subscriptions/-/web3-core-subscriptions-1.3.6.tgz#ee24e7974d1d72ff6c992c599deba4ef9b308415" - integrity sha512-wi9Z9X5X75OKvxAg42GGIf81ttbNR2TxzkAsp1g+nnp5K8mBwgZvXrIsDuj7Z7gx72Y45mWJADCWjk/2vqNu8g== - dependencies: - eventemitter3 "4.0.4" - underscore "1.12.1" - web3-core-helpers "1.3.6" - web3-core@1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/web3-core/-/web3-core-1.2.2.tgz#334b99c8222ef9cfd0339e27352f0b58ea789a2f" @@ -9815,19 +9290,6 @@ web3-core@1.2.4: web3-core-requestmanager "1.2.4" web3-utils "1.2.4" -web3-core@1.3.6: - version "1.3.6" - resolved "https://registry.yarnpkg.com/web3-core/-/web3-core-1.3.6.tgz#a6a761d1ff2f3ee462b8dab679229d2f8e267504" - integrity sha512-gkLDM4T1Sc0T+HZIwxrNrwPg0IfWI0oABSglP2X5ZbBAYVUeEATA0o92LWV8BeF+okvKXLK1Fek/p6axwM/h3Q== - dependencies: - "@types/bn.js" "^4.11.5" - "@types/node" "^12.12.6" - bignumber.js "^9.0.0" - web3-core-helpers "1.3.6" - web3-core-method "1.3.6" - web3-core-requestmanager "1.3.6" - web3-utils "1.3.6" - web3-eth-abi@1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/web3-eth-abi/-/web3-eth-abi-1.2.2.tgz#d5616d88a90020f894763423a9769f2da11fe37a" @@ -9846,15 +9308,6 @@ web3-eth-abi@1.2.4: underscore "1.9.1" web3-utils "1.2.4" -web3-eth-abi@1.3.6: - version "1.3.6" - resolved "https://registry.yarnpkg.com/web3-eth-abi/-/web3-eth-abi-1.3.6.tgz#4272ca48d817aa651bbf97b269f5ff10abc2b8a9" - integrity sha512-Or5cRnZu6WzgScpmbkvC6bfNxR26hqiKK4i8sMPFeTUABQcb/FU3pBj7huBLYbp9dH+P5W79D2MqwbWwjj9DoQ== - dependencies: - "@ethersproject/abi" "5.0.7" - underscore "1.12.1" - web3-utils "1.3.6" - web3-eth-accounts@1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/web3-eth-accounts/-/web3-eth-accounts-1.2.2.tgz#c187e14bff6baa698ac352220290222dbfd332e5" @@ -9891,23 +9344,6 @@ web3-eth-accounts@1.2.4: web3-core-method "1.2.4" web3-utils "1.2.4" -web3-eth-accounts@1.3.6: - version "1.3.6" - resolved "https://registry.yarnpkg.com/web3-eth-accounts/-/web3-eth-accounts-1.3.6.tgz#f9fcb50b28ee58090ab292a10d996155caa2b474" - integrity sha512-Ilr0hG6ONbCdSlVKffasCmNwftD5HsNpwyQASevocIQwHdTlvlwO0tb3oGYuajbKOaDzNTwXfz25bttAEoFCGA== - dependencies: - crypto-browserify "3.12.0" - eth-lib "0.2.8" - ethereumjs-common "^1.3.2" - ethereumjs-tx "^2.1.1" - scrypt-js "^3.0.1" - underscore "1.12.1" - uuid "3.3.2" - web3-core "1.3.6" - web3-core-helpers "1.3.6" - web3-core-method "1.3.6" - web3-utils "1.3.6" - web3-eth-contract@1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/web3-eth-contract/-/web3-eth-contract-1.2.2.tgz#84e92714918a29e1028ee7718f0712536e14e9a1" @@ -9938,21 +9374,6 @@ web3-eth-contract@1.2.4: web3-eth-abi "1.2.4" web3-utils "1.2.4" -web3-eth-contract@1.3.6: - version "1.3.6" - resolved "https://registry.yarnpkg.com/web3-eth-contract/-/web3-eth-contract-1.3.6.tgz#cccf4d32dc56917fb6923e778498a9ba2a5ba866" - integrity sha512-8gDaRrLF2HCg+YEZN1ov0zN35vmtPnGf3h1DxmJQK5Wm2lRMLomz9rsWsuvig3UJMHqZAQKD7tOl3ocJocQsmA== - dependencies: - "@types/bn.js" "^4.11.5" - underscore "1.12.1" - web3-core "1.3.6" - web3-core-helpers "1.3.6" - web3-core-method "1.3.6" - web3-core-promievent "1.3.6" - web3-core-subscriptions "1.3.6" - web3-eth-abi "1.3.6" - web3-utils "1.3.6" - web3-eth-ens@1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/web3-eth-ens/-/web3-eth-ens-1.2.2.tgz#0a4abed1d4cbdacbf5e1ab06e502d806d1192bc6" @@ -9981,21 +9402,6 @@ web3-eth-ens@1.2.4: web3-eth-contract "1.2.4" web3-utils "1.2.4" -web3-eth-ens@1.3.6: - version "1.3.6" - resolved "https://registry.yarnpkg.com/web3-eth-ens/-/web3-eth-ens-1.3.6.tgz#0d28c5d4ea7b4462ef6c077545a77956a6cdf175" - integrity sha512-n27HNj7lpSkRxTgSx+Zo7cmKAgyg2ElFilaFlUu/X2CNH23lXfcPm2bWssivH9z0ndhg0OyR4AYFZqPaqDHkJA== - dependencies: - content-hash "^2.5.2" - eth-ens-namehash "2.0.8" - underscore "1.12.1" - web3-core "1.3.6" - web3-core-helpers "1.3.6" - web3-core-promievent "1.3.6" - web3-eth-abi "1.3.6" - web3-eth-contract "1.3.6" - web3-utils "1.3.6" - web3-eth-iban@1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/web3-eth-iban/-/web3-eth-iban-1.2.2.tgz#76bec73bad214df7c4192388979a59fc98b96c5a" @@ -10012,14 +9418,6 @@ web3-eth-iban@1.2.4: bn.js "4.11.8" web3-utils "1.2.4" -web3-eth-iban@1.3.6: - version "1.3.6" - resolved "https://registry.yarnpkg.com/web3-eth-iban/-/web3-eth-iban-1.3.6.tgz#0d6ba21fe78f190af8919e9cd5453882457209e0" - integrity sha512-nfMQaaLA/zsg5W4Oy/EJQbs8rSs1vBAX6b/35xzjYoutXlpHMQadujDx2RerTKhSHqFXSJeQAfE+2f6mdhYkRQ== - dependencies: - bn.js "^4.11.9" - web3-utils "1.3.6" - web3-eth-personal@1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/web3-eth-personal/-/web3-eth-personal-1.2.2.tgz#eee1c86a8132fa16b5e34c6d421ca92e684f0be6" @@ -10044,18 +9442,6 @@ web3-eth-personal@1.2.4: web3-net "1.2.4" web3-utils "1.2.4" -web3-eth-personal@1.3.6: - version "1.3.6" - resolved "https://registry.yarnpkg.com/web3-eth-personal/-/web3-eth-personal-1.3.6.tgz#226137916754c498f0284f22c55924c87a2efcf0" - integrity sha512-pOHU0+/h1RFRYoh1ehYBehRbcKWP4OSzd4F7mDljhHngv6W8ewMHrAN8O1ol9uysN2MuCdRE19qkRg5eNgvzFQ== - dependencies: - "@types/node" "^12.12.6" - web3-core "1.3.6" - web3-core-helpers "1.3.6" - web3-core-method "1.3.6" - web3-net "1.3.6" - web3-utils "1.3.6" - web3-eth@1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/web3-eth/-/web3-eth-1.2.2.tgz#65a1564634a23b990efd1655bf94ad513904286c" @@ -10094,25 +9480,6 @@ web3-eth@1.2.4: web3-net "1.2.4" web3-utils "1.2.4" -web3-eth@1.3.6: - version "1.3.6" - resolved "https://registry.yarnpkg.com/web3-eth/-/web3-eth-1.3.6.tgz#2c650893d540a7a0eb1365dd5b2dca24ac919b7c" - integrity sha512-9+rnywRRpyX3C4hfsAQXPQh6vHh9XzQkgLxo3gyeXfbhbShUoq2gFVuy42vsRs//6JlsKdyZS7Z3hHPHz2wreA== - dependencies: - underscore "1.12.1" - web3-core "1.3.6" - web3-core-helpers "1.3.6" - web3-core-method "1.3.6" - web3-core-subscriptions "1.3.6" - web3-eth-abi "1.3.6" - web3-eth-accounts "1.3.6" - web3-eth-contract "1.3.6" - web3-eth-ens "1.3.6" - web3-eth-iban "1.3.6" - web3-eth-personal "1.3.6" - web3-net "1.3.6" - web3-utils "1.3.6" - web3-net@1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/web3-net/-/web3-net-1.2.2.tgz#5c3226ca72df7c591422440ce6f1203fd42ddad9" @@ -10131,15 +9498,6 @@ web3-net@1.2.4: web3-core-method "1.2.4" web3-utils "1.2.4" -web3-net@1.3.6: - version "1.3.6" - resolved "https://registry.yarnpkg.com/web3-net/-/web3-net-1.3.6.tgz#a56492e2227475e38db29394f8bac305a2446e41" - integrity sha512-KhzU3wMQY/YYjyMiQzbaLPt2kut88Ncx2iqjy3nw28vRux3gVX0WOCk9EL/KVJBiAA/fK7VklTXvgy9dZnnipw== - dependencies: - web3-core "1.3.6" - web3-core-method "1.3.6" - web3-utils "1.3.6" - web3-providers-http@1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/web3-providers-http/-/web3-providers-http-1.2.2.tgz#155e55c1d69f4c5cc0b411ede40dea3d06720956" @@ -10156,14 +9514,6 @@ web3-providers-http@1.2.4: web3-core-helpers "1.2.4" xhr2-cookies "1.1.0" -web3-providers-http@1.3.6: - version "1.3.6" - resolved "https://registry.yarnpkg.com/web3-providers-http/-/web3-providers-http-1.3.6.tgz#36e8724a7424d52827819d53fd75dbf31f5422c2" - integrity sha512-OQkT32O1A06dISIdazpGLveZcOXhEo5cEX6QyiSQkiPk/cjzDrXMw4SKZOGQbbS1+0Vjizm1Hrp7O8Vp2D1M5Q== - dependencies: - web3-core-helpers "1.3.6" - xhr2-cookies "1.1.0" - web3-providers-ipc@1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/web3-providers-ipc/-/web3-providers-ipc-1.2.2.tgz#c6d165a12bc68674b4cdd543ea18aec79cafc2e8" @@ -10182,15 +9532,6 @@ web3-providers-ipc@1.2.4: underscore "1.9.1" web3-core-helpers "1.2.4" -web3-providers-ipc@1.3.6: - version "1.3.6" - resolved "https://registry.yarnpkg.com/web3-providers-ipc/-/web3-providers-ipc-1.3.6.tgz#cef8d12c1ebb47adce5ebf597f553c623362cb4a" - integrity sha512-+TVsSd2sSVvVgHG4s6FXwwYPPT91boKKcRuEFXqEfAbUC5t52XOgmyc2LNiD9LzPhed65FbV4LqICpeYGUvSwA== - dependencies: - oboe "2.1.5" - underscore "1.12.1" - web3-core-helpers "1.3.6" - web3-providers-ws@1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/web3-providers-ws/-/web3-providers-ws-1.2.2.tgz#d2c05c68598cea5ad3fa6ef076c3bcb3ca300d29" @@ -10209,16 +9550,6 @@ web3-providers-ws@1.2.4: underscore "1.9.1" web3-core-helpers "1.2.4" -web3-providers-ws@1.3.6: - version "1.3.6" - resolved "https://registry.yarnpkg.com/web3-providers-ws/-/web3-providers-ws-1.3.6.tgz#e1df617bc89d66165abdf2191da0014c505bfaac" - integrity sha512-bk7MnJf5or0Re2zKyhR3L3CjGululLCHXx4vlbc/drnaTARUVvi559OI5uLytc/1k5HKUUyENAxLvetz2G1dnQ== - dependencies: - eventemitter3 "4.0.4" - underscore "1.12.1" - web3-core-helpers "1.3.6" - websocket "^1.0.32" - web3-shh@1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/web3-shh/-/web3-shh-1.2.2.tgz#44ed998f2a6ba0ec5cb9d455184a0f647826a49c" @@ -10239,16 +9570,6 @@ web3-shh@1.2.4: web3-core-subscriptions "1.2.4" web3-net "1.2.4" -web3-shh@1.3.6: - version "1.3.6" - resolved "https://registry.yarnpkg.com/web3-shh/-/web3-shh-1.3.6.tgz#4e3486c7eca5cbdb87f88910948223a5b7ea6c20" - integrity sha512-9zRo415O0iBslxBnmu9OzYjNErzLnzOsy+IOvSpIreLYbbAw0XkDWxv3SfcpKnTIWIACBR4AYMIxmmyi5iB3jw== - dependencies: - web3-core "1.3.6" - web3-core-method "1.3.6" - web3-core-subscriptions "1.3.6" - web3-net "1.3.6" - web3-utils@1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/web3-utils/-/web3-utils-1.2.2.tgz#b53a08c40d2c3f31d3c4a28e7d749405df99c8c0" @@ -10277,20 +9598,6 @@ web3-utils@1.2.4: underscore "1.9.1" utf8 "3.0.0" -web3-utils@1.3.6: - version "1.3.6" - resolved "https://registry.yarnpkg.com/web3-utils/-/web3-utils-1.3.6.tgz#390bc9fa3a7179746963cfaca55bb80ac4d8dc10" - integrity sha512-hHatFaQpkQgjGVER17gNx8u1qMyaXFZtM0y0XLGH1bzsjMPlkMPLRcYOrZ00rOPfTEuYFOdrpGOqZXVmGrMZRg== - dependencies: - bn.js "^4.11.9" - eth-lib "0.2.8" - ethereum-bloom-filters "^1.0.6" - ethjs-unit "0.1.6" - number-to-bn "1.7.0" - randombytes "^2.1.0" - underscore "1.12.1" - utf8 "3.0.0" - web3-utils@^1.0.0-beta.31: version "1.7.3" resolved "https://registry.yarnpkg.com/web3-utils/-/web3-utils-1.7.3.tgz#b214d05f124530d8694ad364509ac454d05f207c" @@ -10332,25 +9639,12 @@ web3@1.2.4: web3-shh "1.2.4" web3-utils "1.2.4" -web3@1.3.6: - version "1.3.6" - resolved "https://registry.yarnpkg.com/web3/-/web3-1.3.6.tgz#599425461c3f9a8cbbefa70616438995f4a064cc" - integrity sha512-jEpPhnL6GDteifdVh7ulzlPrtVQeA30V9vnki9liYlUvLV82ZM7BNOQJiuzlDePuE+jZETZSP/0G/JlUVt6pOA== - dependencies: - web3-bzz "1.3.6" - web3-core "1.3.6" - web3-eth "1.3.6" - web3-eth-personal "1.3.6" - web3-net "1.3.6" - web3-shh "1.3.6" - web3-utils "1.3.6" - webidl-conversions@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== -websocket@^1.0.29, websocket@^1.0.32: +websocket@^1.0.29: version "1.0.34" resolved "https://registry.yarnpkg.com/websocket/-/websocket-1.0.34.tgz#2bdc2602c08bf2c82253b730655c0ef7dcab3111" integrity sha512-PRDso2sGwF6kM75QykIesBijKSVceR6jL2G8NGYyq2XrItNC2P5/qL5XeR056GhA+Ly7JMFvJb9I312mJfmqnQ== @@ -10406,17 +9700,6 @@ which-module@^2.0.0: resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.1.tgz#776b1fe35d90aebe99e8ac15eb24093389a4a409" integrity sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ== -which-typed-array@^1.1.11, which-typed-array@^1.1.2: - version "1.1.13" - resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.13.tgz#870cd5be06ddb616f504e7b039c4c24898184d36" - integrity sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow== - dependencies: - available-typed-arrays "^1.0.5" - call-bind "^1.0.4" - for-each "^0.3.3" - gopd "^1.0.1" - has-tostringtag "^1.0.0" - which-typed-array@^1.1.9: version "1.1.9" resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.9.tgz#307cf898025848cf995e795e8423c7f337efbde6" @@ -10542,7 +9825,7 @@ xhr-request-promise@^0.1.2: dependencies: xhr-request "^1.1.0" -xhr-request@^1.0.1, xhr-request@^1.1.0: +xhr-request@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/xhr-request/-/xhr-request-1.1.0.tgz#f4a7c1868b9f198723444d82dcae317643f2e2ed" integrity sha512-Y7qzEaR3FDtL3fP30k9wO/e+FBnBByZeybKOhASsGP30NIkRAAkKD/sCnLvgEfAIEC1rcmK7YG8f4oEnIrrWzA== @@ -10728,3 +10011,8 @@ zksync-web3@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/zksync-web3/-/zksync-web3-0.4.0.tgz#9ab3e8648a6ab11d42b649b3458a0383d6c41bab" integrity sha512-LmrjkQlg2YSR+P0J1NQKtkraCN2ESKfVoMxole3NxesrASQTsk6fR5+ph/8Vucq/Xh8EoAafp07+Q6TavP/TTw== + +zod@^3.22.2: + version "3.22.4" + resolved "https://registry.yarnpkg.com/zod/-/zod-3.22.4.tgz#f31c3a9386f61b1f228af56faa9255e845cf3fff" + integrity sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==