From 27905963b3c83cc4c53526530d8a3c09e27a9d64 Mon Sep 17 00:00:00 2001 From: Jacob Caban-Tomski Date: Thu, 15 Sep 2022 13:39:21 -0600 Subject: [PATCH 1/6] Fix issue with exisiting wallet addresses Update BlsWalletWrapper.Address() to check for existing wallet address from the VerifiicationGateway before calculating the CREATE2 address for a new wallet from a given private key. --- contracts/clients/src/BlsWalletWrapper.ts | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/contracts/clients/src/BlsWalletWrapper.ts b/contracts/clients/src/BlsWalletWrapper.ts index 5657aefc..27c44949 100644 --- a/contracts/clients/src/BlsWalletWrapper.ts +++ b/contracts/clients/src/BlsWalletWrapper.ts @@ -48,6 +48,15 @@ export default class BlsWalletWrapper { verificationGatewayAddress, signerOrProvider, ); + const pubKeyHash = blsWalletSigner.getPublicKeyHash(privateKey); + + // Check for an existing wallet + const existingAddress = await verificationGateway.walletFromHash( + pubKeyHash, + ); + if (!BigNumber.from(existingAddress).isZero()) { + return existingAddress; + } const [proxyAdminAddress, blsWalletLogicAddress] = await Promise.all([ verificationGateway.walletProxyAdmin(), @@ -61,7 +70,7 @@ export default class BlsWalletWrapper { return ethers.utils.getCreate2Address( verificationGatewayAddress, - blsWalletSigner.getPublicKeyHash(privateKey), + pubKeyHash, ethers.utils.solidityKeccak256( ["bytes", "bytes"], [ From ad1d62d0c235c24dd4eb8565cde34fbe43c1f9bc Mon Sep 17 00:00:00 2001 From: Jacob Caban-Tomski Date: Thu, 15 Sep 2022 13:54:00 -0600 Subject: [PATCH 2/6] Pin bls-wallet-clients@0.7.1-2790596 --- aggregator-proxy/package.json | 2 +- aggregator/deps.ts | 6 +++--- extension/package.json | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/aggregator-proxy/package.json b/aggregator-proxy/package.json index f7c6bffc..5582228e 100644 --- a/aggregator-proxy/package.json +++ b/aggregator-proxy/package.json @@ -21,7 +21,7 @@ "@types/koa__cors": "^3.3.0", "@types/koa__router": "^8.0.11", "@types/node-fetch": "^2.6.1", - "bls-wallet-clients": "^0.7.1", + "bls-wallet-clients": "0.7.1-2790596", "fp-ts": "^2.12.1", "io-ts": "^2.2.16", "io-ts-reporters": "^2.0.1", diff --git a/aggregator/deps.ts b/aggregator/deps.ts index 6faf2812..c92ce03c 100644 --- a/aggregator/deps.ts +++ b/aggregator/deps.ts @@ -49,7 +49,7 @@ export type { PublicKey, Signature, VerificationGateway, -} from "https://esm.sh/bls-wallet-clients@0.7.1"; +} from "https://esm.sh/bls-wallet-clients@0.7.1-2790596"; export { Aggregator as AggregatorClient, @@ -59,10 +59,10 @@ export { getConfig, MockERC20__factory, VerificationGateway__factory, -} from "https://esm.sh/bls-wallet-clients@0.7.1"; +} from "https://esm.sh/bls-wallet-clients@0.7.1-2790596"; // Workaround for esbuild's export-star bug -import blsWalletClients from "https://esm.sh/bls-wallet-clients@0.7.1"; +import blsWalletClients from "https://esm.sh/bls-wallet-clients@0.7.1-2790596"; const { bundleFromDto, bundleToDto, diff --git a/extension/package.json b/extension/package.json index a461de57..2aeffaf8 100644 --- a/extension/package.json +++ b/extension/package.json @@ -36,7 +36,7 @@ "advanced-css-reset": "^1.2.2", "async-mutex": "^0.3.2", "axios": "^0.27.2", - "bls-wallet-clients": "0.7.1", + "bls-wallet-clients": "0.7.1-2790596", "browser-passworder": "^2.0.3", "bs58check": "^2.1.2", "crypto-browserify": "^3.12.0", From c0f39ab98a2dc44d35195f8408edbfc9046e7dca Mon Sep 17 00:00:00 2001 From: Jacob Caban-Tomski Date: Thu, 15 Sep 2022 13:54:40 -0600 Subject: [PATCH 3/6] Add sendEth utility Hardhat task to contracts Remove old send_eth script --- contracts/hardhat.config.ts | 17 +++++++++++++++ contracts/scripts/test/send_eth.ts | 35 ------------------------------ 2 files changed, 17 insertions(+), 35 deletions(-) delete mode 100644 contracts/scripts/test/send_eth.ts diff --git a/contracts/hardhat.config.ts b/contracts/hardhat.config.ts index eca6473a..6dd89c80 100644 --- a/contracts/hardhat.config.ts +++ b/contracts/hardhat.config.ts @@ -59,6 +59,23 @@ task("fundDeployer", "Sends ETH to create2Deployer contract from first signer") await txnRes.wait(); }); +task("sendEth", "Sends ETH to an address") + .addParam("address", "Address to send ETH to", undefined, types.string) + .addOptionalParam("amount", "Amount of ETH to send", "1.0") + .setAction( + async ({ address, amount }: { address: string; amount: string }, hre) => { + const [account0] = await hre.ethers.getSigners(); + + console.log(`${account0.address} -> ${address} ${amount} ETH`); + + const txnRes = await account0.sendTransaction({ + to: address, + value: hre.ethers.utils.parseEther(amount), + }); + await txnRes.wait(); + }, + ); + // Do any needed pre-test setup here. task("test").setAction(async (_taskArgs, _hre, runSuper) => { chai.use(chaiAsPromised); diff --git a/contracts/scripts/test/send_eth.ts b/contracts/scripts/test/send_eth.ts deleted file mode 100644 index 267091ac..00000000 --- a/contracts/scripts/test/send_eth.ts +++ /dev/null @@ -1,35 +0,0 @@ -/** - * Example usage: - * - * yarn hardhat run scripts/test/send_eth.ts --network gethDev - */ - -/* eslint-disable no-process-exit */ -import { ethers } from "hardhat"; - -// Change this to the address you want to send eth to. -// We should bring in an npm package at some point to parse cli args. -const receivingAddress = "0x6266142188e26AfA67Caf6FDD581edc1958d7172"; -// Change this to the amount of eth you want to send. -const amountEth = "1.0"; - -async function main() { - const [account0] = await ethers.getSigners(); - console.log(`${account0.address} -> ${receivingAddress} ${amountEth} ETH`); - await account0.sendTransaction({ - to: receivingAddress, - value: ethers.utils.parseEther(amountEth), - }); - console.log("done"); -} - -// We recommend this pattern to be able to use async/await everywhere -// and properly handle errors. -main() - .then(() => { - process.exit(0); - }) - .catch((error) => { - console.error(error); - process.exit(1); - }); From c70f0a86dbdc1f06db80ce4523dce2a2761ce8c2 Mon Sep 17 00:00:00 2001 From: Jacob Caban-Tomski Date: Thu, 15 Sep 2022 14:02:15 -0600 Subject: [PATCH 4/6] Add yarn.locks --- aggregator-proxy/yarn.lock | 8 ++++---- extension/yarn.lock | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/aggregator-proxy/yarn.lock b/aggregator-proxy/yarn.lock index 742bda63..1f34d8d0 100644 --- a/aggregator-proxy/yarn.lock +++ b/aggregator-proxy/yarn.lock @@ -885,10 +885,10 @@ bech32@1.1.4: resolved "https://registry.yarnpkg.com/bech32/-/bech32-1.1.4.tgz#e38c9f37bf179b8eb16ae3a772b40c356d4832e9" integrity sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ== -bls-wallet-clients@^0.7.1: - version "0.7.1" - resolved "https://registry.yarnpkg.com/bls-wallet-clients/-/bls-wallet-clients-0.7.1.tgz#912705c7b997e0cb4ec003796766f20b117b4547" - integrity sha512-LyTad7HsniNIE8dBTrF4aMksHj0sjwpvPuQmdPokXLlsJA/KTI11av5PLJNVpiAF1sQAKnA0BJglrete+TYyIg== +bls-wallet-clients@0.7.1-2790596: + version "0.7.1-2790596" + resolved "https://registry.yarnpkg.com/bls-wallet-clients/-/bls-wallet-clients-0.7.1-2790596.tgz#0a89e8551b25e7c62e12ac1e015e8c6972bc9ecb" + integrity sha512-6paGPxnCu9oGlww0dx6T4H4G/pYK8ElJEeCeKN5Kcvno3BQ7HaK9eUiXYq8RSBLkX915y1ZUj4mPHowBH9iksQ== dependencies: "@thehubbleproject/bls" "^0.5.1" ethers "5.5.4" diff --git a/extension/yarn.lock b/extension/yarn.lock index 65b8e7ae..307d5920 100644 --- a/extension/yarn.lock +++ b/extension/yarn.lock @@ -2649,10 +2649,10 @@ blakejs@^1.1.0: resolved "https://registry.yarnpkg.com/blakejs/-/blakejs-1.2.1.tgz#5057e4206eadb4a97f7c0b6e197a505042fc3814" integrity sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ== -bls-wallet-clients@0.7.1: - version "0.7.1" - resolved "https://registry.yarnpkg.com/bls-wallet-clients/-/bls-wallet-clients-0.7.1.tgz#912705c7b997e0cb4ec003796766f20b117b4547" - integrity sha512-LyTad7HsniNIE8dBTrF4aMksHj0sjwpvPuQmdPokXLlsJA/KTI11av5PLJNVpiAF1sQAKnA0BJglrete+TYyIg== +bls-wallet-clients@0.7.1-2790596: + version "0.7.1-2790596" + resolved "https://registry.yarnpkg.com/bls-wallet-clients/-/bls-wallet-clients-0.7.1-2790596.tgz#0a89e8551b25e7c62e12ac1e015e8c6972bc9ecb" + integrity sha512-6paGPxnCu9oGlww0dx6T4H4G/pYK8ElJEeCeKN5Kcvno3BQ7HaK9eUiXYq8RSBLkX915y1ZUj4mPHowBH9iksQ== dependencies: "@thehubbleproject/bls" "^0.5.1" ethers "5.5.4" From 8c83387d0a74e557de1131b84562424ab65024a0 Mon Sep 17 00:00:00 2001 From: Jacob Caban-Tomski Date: Fri, 16 Sep 2022 18:21:34 -0600 Subject: [PATCH 5/6] WIP Throw exception in client if private key has been recovered from --- contracts/clients/src/BlsWalletWrapper.ts | 139 ++++++++++++++++------ contracts/test/recovery-test.ts | 31 ++++- extension/package.json | 2 +- extension/yarn.lock | 8 +- 4 files changed, 135 insertions(+), 45 deletions(-) diff --git a/contracts/clients/src/BlsWalletWrapper.ts b/contracts/clients/src/BlsWalletWrapper.ts index 27c44949..a9305ba9 100644 --- a/contracts/clients/src/BlsWalletWrapper.ts +++ b/contracts/clients/src/BlsWalletWrapper.ts @@ -16,30 +16,45 @@ import { BLSWallet__factory, // eslint-disable-next-line camelcase TransparentUpgradeableProxy__factory, + VerificationGateway, // eslint-disable-next-line camelcase VerificationGateway__factory, } from "../typechain"; type SignerOrProvider = ethers.Signer | ethers.providers.Provider; +/** + * Class representing a BLS Wallet + */ export default class BlsWalletWrapper { private constructor( public blsWalletSigner: BlsWalletSigner, public privateKey: string, public address: string, public walletContract: BLSWallet, + public verificationGateway: VerificationGateway, ) {} - /** Get the wallet contract address for the given key, if it exists. */ + /** + * Gets the address for this wallet. + * + * This could be: + * - The address the wallet is registered to on the VerificationGateway. + * - The expected address if it has not already be created/registered. + * - The original wallet address before it was recovered to another key pair. + * + * Throws an exception if wallet was recovered to a different private key. + * + * @param privateKey private key associated with the wallet + * @param verificationGatewayAddress address of the VerficationGateway contract + * @param signerOrProvider ethers.js Signer or Provider + * @param blsWalletSigner (optional) a BLS Wallet signer + * @returns The wallet's address + */ static async Address( privateKey: string, verificationGatewayAddress: string, signerOrProvider: SignerOrProvider, - /** - * Internal value associated with the bls-wallet-signer library that can be - * provided as an optimization, otherwise it will be created - * automatically. - */ blsWalletSigner?: BlsWalletSigner, ): Promise { blsWalletSigner ??= await this.#BlsWalletSigner(signerOrProvider); @@ -50,43 +65,37 @@ export default class BlsWalletWrapper { ); const pubKeyHash = blsWalletSigner.getPublicKeyHash(privateKey); - // Check for an existing wallet const existingAddress = await verificationGateway.walletFromHash( pubKeyHash, ); - if (!BigNumber.from(existingAddress).isZero()) { + const hasExistingAddress = !BigNumber.from(existingAddress).isZero(); + if (hasExistingAddress) { return existingAddress; } - const [proxyAdminAddress, blsWalletLogicAddress] = await Promise.all([ - verificationGateway.walletProxyAdmin(), - verificationGateway.blsWalletLogic(), - ]); - - const initFunctionParams = - BLSWallet__factory.createInterface().encodeFunctionData("initialize", [ - verificationGatewayAddress, - ]); - - return ethers.utils.getCreate2Address( - verificationGatewayAddress, + const expectedAddress = await this.ExpectedAddress( + verificationGateway, pubKeyHash, - ethers.utils.solidityKeccak256( - ["bytes", "bytes"], - [ - TransparentUpgradeableProxy__factory.bytecode, - ethers.utils.defaultAbiCoder.encode( - ["address", "address", "bytes"], - [blsWalletLogicAddress, proxyAdminAddress, initFunctionParams], - ), - ], - ), ); + this.validateWalletNotRecovered( + blsWalletSigner, + verificationGateway, + expectedAddress, + privateKey, + ); + + return expectedAddress; } /** - * Instantiate a `BLSWallet` associated with the provided key if the - * associated wallet contract already exists. + * Instantiate a `BLSWallet` associated with the provided private key. + * + * Throws an exception if wallet was recovered to a different private key. + * + * @param privateKey private key associated with the wallet + * @param verificationGatewayAddress address of the VerficationGateway contract + * @param provider ethers.js Provider + * @returns a BLS Wallet */ static async connect( privateKey: string, @@ -95,9 +104,15 @@ export default class BlsWalletWrapper { ): Promise { const network = await provider.getNetwork(); - const blsWalletSigner = await initBlsWalletSigner({ - chainId: network.chainId, - }); + const [blsWalletSigner, verificationGateway] = await Promise.all([ + initBlsWalletSigner({ + chainId: network.chainId, + }), + VerificationGateway__factory.connect( + verificationGatewayAddress, + provider, + ), + ]); const contractAddress = await BlsWalletWrapper.Address( privateKey, @@ -115,6 +130,7 @@ export default class BlsWalletWrapper { privateKey, contractAddress, walletContract, + verificationGateway, ); } @@ -209,4 +225,57 @@ export default class BlsWalletWrapper { return await initBlsWalletSigner({ chainId }); } + + // Calculates the expected address the wallet will be created at + private static async ExpectedAddress( + verificationGateway: VerificationGateway, + pubKeyHash: string, + ): Promise { + const [proxyAdminAddress, blsWalletLogicAddress] = await Promise.all([ + verificationGateway.walletProxyAdmin(), + verificationGateway.blsWalletLogic(), + ]); + + const initFunctionParams = + BLSWallet__factory.createInterface().encodeFunctionData("initialize", [ + verificationGateway.address, + ]); + + return ethers.utils.getCreate2Address( + verificationGateway.address, + pubKeyHash, + ethers.utils.solidityKeccak256( + ["bytes", "bytes"], + [ + TransparentUpgradeableProxy__factory.bytecode, + ethers.utils.defaultAbiCoder.encode( + ["address", "address", "bytes"], + [blsWalletLogicAddress, proxyAdminAddress, initFunctionParams], + ), + ], + ), + ); + } + + private static async validateWalletNotRecovered( + blsWalletSigner: BlsWalletSigner, + verificationGateway: VerificationGateway, + walletAddress: string, + privateKey: string, + ): Promise { + const pubKeyHash = blsWalletSigner.getPublicKeyHash(privateKey); + const existingPubKeyHash = await verificationGateway.hashFromWallet( + walletAddress, + ); + + const walletIsAlreadyRegistered = + !BigNumber.from(existingPubKeyHash).isZero(); + const pubKeyHashesDoNotMatch = pubKeyHash !== existingPubKeyHash; + + if (walletIsAlreadyRegistered && pubKeyHashesDoNotMatch) { + throw new Error( + `wallet at ${walletAddress} has been recovered from public key hash ${pubKeyHash} to ${existingPubKeyHash}`, + ); + } + } } diff --git a/contracts/test/recovery-test.ts b/contracts/test/recovery-test.ts index 6f59657d..889f0533 100644 --- a/contracts/test/recovery-test.ts +++ b/contracts/test/recovery-test.ts @@ -168,6 +168,27 @@ describe("Recovery", async function () { .recoverWallet(addressSignature, hash1, salt, safeKey) ).wait(); + /** + * wallet1 is now using wallet2's public & private keys. + * Re-init wallet1 instance using the new private key. + * + * TODO (merge-ok) we need to: + * - Update these tests to use a recoverWallet function + * on BlsWalletWrapper so it can properly update its + * internal state on recovery. + * and/or + * - Update BlsWalletWrapper to throw exceptions and/or + * update internal state when it detects wallet recovery + * has occured on the wallet it represents. This may also + * need to be done on other wallet recovery/upgrade paths. + * + */ + wallet1 = await BlsWalletWrapper.connect( + wallet2.privateKey, + vg.address, + vg.provider, + ); + // key reset via recovery expect(await vg.hashFromWallet(wallet1.address)).to.eql(hash2); expect(await vg.walletFromHash(hash2)).to.eql(wallet1.address); @@ -183,11 +204,11 @@ describe("Recovery", async function () { await walletAttacker.Nonce(), ); await fx.call( - wallet2, + wallet1, vg, "setPendingBLSKeyForWallet", [], - await wallet2.Nonce(), + await wallet1.Nonce(), ); expect(await vg.walletFromHash(hash1)).to.not.equal(blsWallet.address); @@ -196,13 +217,13 @@ describe("Recovery", async function () { ); expect(await vg.walletFromHash(hash2)).to.equal(blsWallet.address); - // // verify recovered bls key can successfully call wallet-only function (eg setTrustedGateway) + // verify recovered bls key can successfully call wallet-only function (eg setTrustedGateway) const res = await fx.callStatic( - wallet2, + wallet1, fx.verificationGateway, "setTrustedBLSGateway", [hash2, fx.verificationGateway.address], - 3, + await wallet1.Nonce(), ); expect(res.successes[0]).to.equal(true); }); diff --git a/extension/package.json b/extension/package.json index 2aeffaf8..01a98405 100644 --- a/extension/package.json +++ b/extension/package.json @@ -36,7 +36,7 @@ "advanced-css-reset": "^1.2.2", "async-mutex": "^0.3.2", "axios": "^0.27.2", - "bls-wallet-clients": "0.7.1-2790596", + "bls-wallet-clients": "0.7.2", "browser-passworder": "^2.0.3", "bs58check": "^2.1.2", "crypto-browserify": "^3.12.0", diff --git a/extension/yarn.lock b/extension/yarn.lock index 307d5920..7d03e93f 100644 --- a/extension/yarn.lock +++ b/extension/yarn.lock @@ -2649,10 +2649,10 @@ blakejs@^1.1.0: resolved "https://registry.yarnpkg.com/blakejs/-/blakejs-1.2.1.tgz#5057e4206eadb4a97f7c0b6e197a505042fc3814" integrity sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ== -bls-wallet-clients@0.7.1-2790596: - version "0.7.1-2790596" - resolved "https://registry.yarnpkg.com/bls-wallet-clients/-/bls-wallet-clients-0.7.1-2790596.tgz#0a89e8551b25e7c62e12ac1e015e8c6972bc9ecb" - integrity sha512-6paGPxnCu9oGlww0dx6T4H4G/pYK8ElJEeCeKN5Kcvno3BQ7HaK9eUiXYq8RSBLkX915y1ZUj4mPHowBH9iksQ== +bls-wallet-clients@0.7.2: + version "0.7.2" + resolved "https://registry.yarnpkg.com/bls-wallet-clients/-/bls-wallet-clients-0.7.2.tgz#c7ea26e7119d9bdf6998cb5f5524451242477a35" + integrity sha512-1dT9RBx1MrVr8OfUkx2i2YoQCf8R3ngTTUmTP00a3yUS4L93wrffubnW5c1Ai+YGzrSQKzBF2hS2FLdN05OXTw== dependencies: "@thehubbleproject/bls" "^0.5.1" ethers "5.5.4" From ce5c691c7858f0be7bc21858bdd5102fe60c39fe Mon Sep 17 00:00:00 2001 From: Jacob Caban-Tomski Date: Fri, 16 Sep 2022 18:29:40 -0600 Subject: [PATCH 6/6] Pin bls-wallet-clients@0.7.3-d193dff --- aggregator-proxy/package.json | 2 +- aggregator-proxy/yarn.lock | 8 ++++---- aggregator/deps.ts | 6 +++--- extension/package.json | 2 +- extension/yarn.lock | 8 ++++---- 5 files changed, 13 insertions(+), 13 deletions(-) diff --git a/aggregator-proxy/package.json b/aggregator-proxy/package.json index 591cf4c3..0f1d4b32 100644 --- a/aggregator-proxy/package.json +++ b/aggregator-proxy/package.json @@ -21,7 +21,7 @@ "@types/koa__cors": "^3.3.0", "@types/koa__router": "^8.0.11", "@types/node-fetch": "^2.6.1", - "bls-wallet-clients": "^0.7.3", + "bls-wallet-clients": "0.7.3-d193dff", "fp-ts": "^2.12.1", "io-ts": "^2.2.16", "io-ts-reporters": "^2.0.1", diff --git a/aggregator-proxy/yarn.lock b/aggregator-proxy/yarn.lock index 0d68596d..dac232f9 100644 --- a/aggregator-proxy/yarn.lock +++ b/aggregator-proxy/yarn.lock @@ -885,10 +885,10 @@ bech32@1.1.4: resolved "https://registry.yarnpkg.com/bech32/-/bech32-1.1.4.tgz#e38c9f37bf179b8eb16ae3a772b40c356d4832e9" integrity sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ== -bls-wallet-clients@^0.7.3: - version "0.7.3" - resolved "https://registry.yarnpkg.com/bls-wallet-clients/-/bls-wallet-clients-0.7.3.tgz#22fae2434c67b642d172023f259131233e396eb7" - integrity sha512-u2mwyf5+1KHYCyeutfl4jhEDCmsW/C+S54QKbicUkU26MvAGJ76/TxSOOIBiWTjzVDdDUBdJ/zQRoRd35GSGcQ== +bls-wallet-clients@0.7.3-d193dff: + version "0.7.3-d193dff" + resolved "https://registry.yarnpkg.com/bls-wallet-clients/-/bls-wallet-clients-0.7.3-d193dff.tgz#00ea9770850a827e0a717fcbf7adf8c2c0f07593" + integrity sha512-BOm93cEsy/MHJoKVG6UfEUsZTlMHqyUTm61it7ZcOQ/WrjpCBQzXHNm83OATckxYIqsdbhQgwL46OCt+vuHsww== dependencies: "@thehubbleproject/bls" "^0.5.1" ethers "5.5.4" diff --git a/aggregator/deps.ts b/aggregator/deps.ts index b9288517..06f0e051 100644 --- a/aggregator/deps.ts +++ b/aggregator/deps.ts @@ -49,7 +49,7 @@ export type { PublicKey, Signature, VerificationGateway, -} from "https://esm.sh/bls-wallet-clients@0.7.3"; +} from "https://esm.sh/bls-wallet-clients@0.7.3-d193dff"; export { Aggregator as AggregatorClient, @@ -59,10 +59,10 @@ export { getConfig, MockERC20__factory, VerificationGateway__factory, -} from "https://esm.sh/bls-wallet-clients@0.7.3"; +} from "https://esm.sh/bls-wallet-clients@0.7.3-d193dff"; // Workaround for esbuild's export-star bug -import blsWalletClients from "https://esm.sh/bls-wallet-clients@0.7.3"; +import blsWalletClients from "https://esm.sh/bls-wallet-clients@0.7.3-d193dff"; const { bundleFromDto, bundleToDto, diff --git a/extension/package.json b/extension/package.json index 9c15885c..caef5b22 100644 --- a/extension/package.json +++ b/extension/package.json @@ -36,7 +36,7 @@ "advanced-css-reset": "^1.2.2", "async-mutex": "^0.3.2", "axios": "^0.27.2", - "bls-wallet-clients": "0.7.3", + "bls-wallet-clients": "0.7.3-d193dff", "browser-passworder": "^2.0.3", "bs58check": "^2.1.2", "crypto-browserify": "^3.12.0", diff --git a/extension/yarn.lock b/extension/yarn.lock index 8d82883e..1cf726f9 100644 --- a/extension/yarn.lock +++ b/extension/yarn.lock @@ -2649,10 +2649,10 @@ blakejs@^1.1.0: resolved "https://registry.yarnpkg.com/blakejs/-/blakejs-1.2.1.tgz#5057e4206eadb4a97f7c0b6e197a505042fc3814" integrity sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ== -bls-wallet-clients@0.7.3: - version "0.7.3" - resolved "https://registry.yarnpkg.com/bls-wallet-clients/-/bls-wallet-clients-0.7.3.tgz#22fae2434c67b642d172023f259131233e396eb7" - integrity sha512-u2mwyf5+1KHYCyeutfl4jhEDCmsW/C+S54QKbicUkU26MvAGJ76/TxSOOIBiWTjzVDdDUBdJ/zQRoRd35GSGcQ== +bls-wallet-clients@0.7.3-d193dff: + version "0.7.3-d193dff" + resolved "https://registry.yarnpkg.com/bls-wallet-clients/-/bls-wallet-clients-0.7.3-d193dff.tgz#00ea9770850a827e0a717fcbf7adf8c2c0f07593" + integrity sha512-BOm93cEsy/MHJoKVG6UfEUsZTlMHqyUTm61it7ZcOQ/WrjpCBQzXHNm83OATckxYIqsdbhQgwL46OCt+vuHsww== dependencies: "@thehubbleproject/bls" "^0.5.1" ethers "5.5.4"