From ec5dbbb9332e59403a293a37cf55a024deab21d1 Mon Sep 17 00:00:00 2001 From: Adam Carpenter Date: Wed, 21 Sep 2022 16:21:01 -0600 Subject: [PATCH 01/10] [core-v2.8.5-alpha.1, react-v2.3.5-alpha.1, vue-v2.2.5-alpha.1] : Fix - Handle add new chain canceled by user (#1279) * Fix bug when user cancels add new chain to wallet, bump versions * Update packages/core/src/chain.ts Co-authored-by: Aaron --- packages/core/package.json | 2 +- packages/core/src/chain.ts | 39 +++++++++++++++++++++++++------------ packages/demo/package.json | 2 +- packages/react/package.json | 4 ++-- packages/vue/package.json | 4 ++-- 5 files changed, 33 insertions(+), 18 deletions(-) diff --git a/packages/core/package.json b/packages/core/package.json index 09be25749..992d526a9 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,6 +1,6 @@ { "name": "@web3-onboard/core", - "version": "2.8.4", + "version": "2.8.5-alpha.1", "description": "Web3-Onboard makes it simple to connect Ethereum hardware and software wallets to your dapp. Features standardized spec compliant web3 providers for all supported wallets, framework agnostic modern javascript UI with code splitting, CSS customization, multi-chain and multi-account support, reactive wallet state subscriptions and real-time transaction state change notifications.", "keywords": [ "Ethereum", diff --git a/packages/core/src/chain.ts b/packages/core/src/chain.ts index 7fbb0d52a..58409a2e2 100644 --- a/packages/core/src/chain.ts +++ b/packages/core/src/chain.ts @@ -1,6 +1,6 @@ -import { firstValueFrom } from 'rxjs' +import { BehaviorSubject, firstValueFrom } from 'rxjs' import { filter, map } from 'rxjs/operators' -import { ProviderRpcErrorCode } from '@web3-onboard/common' +import { Chain, ProviderRpcErrorCode } from '@web3-onboard/common' import { addNewChain, switchChain } from './provider.js' import { state } from './store/index.js' import { switchChainModal$ } from './streams.js' @@ -66,21 +66,12 @@ async function setChain(options: { filter(x => x === null), map(() => false) ) - if ( code === ProviderRpcErrorCode.CHAIN_NOT_ADDED || code === ProviderRpcErrorCode.UNRECOGNIZED_CHAIN_ID ) { // chain has not been added to wallet - try { - await addNewChain(wallet.provider, chain) - await switchChain(wallet.provider, chainIdHex) - return true - } catch (error) { - // display notification to user to switch chain - switchChainModal$.next({ chain }) - return firstValueFrom(switchChainModalClosed$) - } + return chainNotInWallet(wallet, chain, switchChainModal$, chainIdHex) } if (code === ProviderRpcErrorCode.UNSUPPORTED_METHOD) { @@ -93,4 +84,28 @@ async function setChain(options: { return false } +const chainNotInWallet = async ( + wallet: WalletState, + chain: Chain, + switchChainModalClosed$: BehaviorSubject<{ + chain: Chain + }>, + chainIdHex: string +) => { + try { + await addNewChain(wallet.provider, chain) + await switchChain(wallet.provider, chainIdHex) + return true + } catch (error) { + const { code } = error as { code: number } + if (code === ProviderRpcErrorCode.ACCOUNT_ACCESS_REJECTED) { + // add new chain rejected by user + return false + } + // display notification to user to switch chain + switchChainModal$.next({ chain }) + return firstValueFrom(switchChainModalClosed$) + } +} + export default setChain diff --git a/packages/demo/package.json b/packages/demo/package.json index 6ee493b1c..2e86aedd4 100644 --- a/packages/demo/package.json +++ b/packages/demo/package.json @@ -23,7 +23,7 @@ }, "dependencies": { "@web3-onboard/coinbase": "^2.1.2", - "@web3-onboard/core": "^2.8.4", + "@web3-onboard/core": "^2.8.5-alpha.1", "@web3-onboard/dcent": "^2.2.0", "@web3-onboard/fortmatic": "^2.0.13", "@web3-onboard/gas": "^2.1.2", diff --git a/packages/react/package.json b/packages/react/package.json index 3349b2a08..98cd7f70d 100644 --- a/packages/react/package.json +++ b/packages/react/package.json @@ -1,6 +1,6 @@ { "name": "@web3-onboard/react", - "version": "2.3.4", + "version": "2.3.5-alpha.1", "description": "A collection of React hooks for integrating Web3-Onboard in to React and Next.js projects. Web3-Onboard makes it simple to connect Ethereum hardware and software wallets to your dapp. Features standardised spec compliant web3 providers for all supported wallets, modern javascript UI with code splitting, CSS customization, multi-chain and multi-account support, reactive wallet state subscriptions and real-time transaction state change notifications.", "keywords": [ "Ethereum", @@ -62,7 +62,7 @@ "typescript": "^4.5.5" }, "dependencies": { - "@web3-onboard/core": "^2.8.4", + "@web3-onboard/core": "^2.8.5-alpha.1", "@web3-onboard/common": "^2.2.2", "use-sync-external-store": "1.0.0" }, diff --git a/packages/vue/package.json b/packages/vue/package.json index ec51e0874..10f8702df 100644 --- a/packages/vue/package.json +++ b/packages/vue/package.json @@ -1,6 +1,6 @@ { "name": "@web3-onboard/vue", - "version": "2.2.4", + "version": "2.2.5-alpha.1", "description": "A collection of Vue Composables for integrating Web3-Onboard in to a Vue or Nuxt project. Web3-Onboard makes it simple to connect Ethereum hardware and software wallets to your dapp. Features standardised spec compliant web3 providers for all supported wallets, modern javascript UI with code splitting, CSS customization, multi-chain and multi-account support, reactive wallet state subscriptions and real-time transaction state change notifications.", "keywords": [ "Ethereum", @@ -63,7 +63,7 @@ "@vueuse/core": "^8.4.2", "@vueuse/rxjs": "^8.2.0", "@web3-onboard/common": "^2.2.2", - "@web3-onboard/core": "^2.8.4", + "@web3-onboard/core": "^2.8.5-alpha.1", "vue-demi": "^0.12.4" }, "peerDependencies": { From 4b7acd9786357947eadb2dbe3612e61b647d4261 Mon Sep 17 00:00:00 2001 From: Adam Carpenter Date: Wed, 21 Sep 2022 16:50:13 -0600 Subject: [PATCH 02/10] Fix formatting & typecheck for the Add new Chain Canceled bug (#1286) * Fix formatting and add return type * Cleanup imports --- packages/core/src/chain.ts | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/packages/core/src/chain.ts b/packages/core/src/chain.ts index 58409a2e2..ce4bf05ab 100644 --- a/packages/core/src/chain.ts +++ b/packages/core/src/chain.ts @@ -1,4 +1,4 @@ -import { BehaviorSubject, firstValueFrom } from 'rxjs' +import { firstValueFrom, Observable } from 'rxjs' import { filter, map } from 'rxjs/operators' import { Chain, ProviderRpcErrorCode } from '@web3-onboard/common' import { addNewChain, switchChain } from './provider.js' @@ -71,7 +71,12 @@ async function setChain(options: { code === ProviderRpcErrorCode.UNRECOGNIZED_CHAIN_ID ) { // chain has not been added to wallet - return chainNotInWallet(wallet, chain, switchChainModal$, chainIdHex) + return chainNotInWallet( + wallet, + chain, + switchChainModalClosed$, + chainIdHex + ) } if (code === ProviderRpcErrorCode.UNSUPPORTED_METHOD) { @@ -87,11 +92,9 @@ async function setChain(options: { const chainNotInWallet = async ( wallet: WalletState, chain: Chain, - switchChainModalClosed$: BehaviorSubject<{ - chain: Chain - }>, + switchChainModalClosed$: Observable, chainIdHex: string -) => { +): Promise => { try { await addNewChain(wallet.provider, chain) await switchChain(wallet.provider, chainIdHex) From 347dd934042d6a54791a2fda3656b0649d05da9c Mon Sep 17 00:00:00 2001 From: Adam Carpenter Date: Thu, 22 Sep 2022 15:36:28 -0600 Subject: [PATCH 03/10] Bump versions for fixing joi version (#1290) --- packages/coinbase/package.json | 4 ++-- packages/common/package.json | 4 ++-- packages/core/package.json | 6 ++--- packages/dcent/package.json | 6 ++--- packages/demo/package.json | 36 ++++++++++++++--------------- packages/fortmatic/package.json | 4 ++-- packages/gas/package.json | 6 ++--- packages/gnosis/package.json | 4 ++-- packages/hw-common/package.json | 6 ++--- packages/injected/package.json | 6 ++--- packages/keepkey/package.json | 6 ++--- packages/keystone/package.json | 6 ++--- packages/ledger/package.json | 6 ++--- packages/magic/package.json | 6 ++--- packages/mew/package.json | 4 ++-- packages/portis/package.json | 4 ++-- packages/react/package.json | 4 ++-- packages/sequence/package.json | 4 ++-- packages/tallyho/package.json | 4 ++-- packages/torus/package.json | 4 ++-- packages/trezor/package.json | 6 ++--- packages/vue/package.json | 4 ++-- packages/walletconnect/package.json | 4 ++-- packages/walletlink/package.json | 4 ++-- packages/web3auth/package.json | 4 ++-- yarn.lock | 31 ++++++++++++++++++++++++- 26 files changed, 106 insertions(+), 77 deletions(-) diff --git a/packages/coinbase/package.json b/packages/coinbase/package.json index 09b9256ab..4b8b1498c 100644 --- a/packages/coinbase/package.json +++ b/packages/coinbase/package.json @@ -1,6 +1,6 @@ { "name": "@web3-onboard/coinbase", - "version": "2.1.2", + "version": "2.1.3-alpha.1", "description": "Coinbase SDK wallet module for connecting to Web3-Onboard. Web3-Onboard makes it simple to connect Ethereum hardware and software wallets to your dapp. Features standardised spec compliant web3 providers for all supported wallets, framework agnostic modern javascript UI with code splitting, CSS customization, multi-chain and multi-account support, reactive wallet state subscriptions and real-time transaction state change notifications.", "keywords": [ "Ethereum", @@ -59,6 +59,6 @@ }, "dependencies": { "@coinbase/wallet-sdk": "^3.0.5", - "@web3-onboard/common": "^2.2.2" + "@web3-onboard/common": "^2.2.3-alpha.1" } } diff --git a/packages/common/package.json b/packages/common/package.json index c706eedf2..94c3f404b 100644 --- a/packages/common/package.json +++ b/packages/common/package.json @@ -1,6 +1,6 @@ { "name": "@web3-onboard/common", - "version": "2.2.2", + "version": "2.2.3-alpha.1", "description": "Web3-Onboard makes it simple to connect Ethereum hardware and software wallets to your dapp. Features standardised spec compliant web3 providers for all supported wallets, framework agnostic modern javascript UI with code splitting, CSS customization, multi-chain and multi-account support, reactive wallet state subscriptions and real-time transaction state change notifications.", "keywords": [ "Ethereum", @@ -75,6 +75,6 @@ "dependencies": { "bignumber.js": "^9.1.0", "ethers": "5.5.4", - "joi": "^17.4.2" + "joi": "^17.6.1" } } diff --git a/packages/core/package.json b/packages/core/package.json index 992d526a9..b7b702526 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,6 +1,6 @@ { "name": "@web3-onboard/core", - "version": "2.8.5-alpha.1", + "version": "2.8.5-alpha.2", "description": "Web3-Onboard makes it simple to connect Ethereum hardware and software wallets to your dapp. Features standardized spec compliant web3 providers for all supported wallets, framework agnostic modern javascript UI with code splitting, CSS customization, multi-chain and multi-account support, reactive wallet state subscriptions and real-time transaction state change notifications.", "keywords": [ "Ethereum", @@ -82,13 +82,13 @@ "typescript": "^4.5.5" }, "dependencies": { - "@web3-onboard/common": "^2.2.2", + "@web3-onboard/common": "^2.2.3-alpha.1", "bignumber.js": "^9.0.0", "bnc-sdk": "^4.4.1", "bowser": "^2.11.0", "ethers": "5.5.3", "eventemitter3": "^4.0.7", - "joi": "17.6.0", + "joi": "^17.6.1", "lodash.merge": "^4.6.2", "lodash.partition": "^4.6.0", "nanoid": "^4.0.0", diff --git a/packages/dcent/package.json b/packages/dcent/package.json index 4292d42e3..088af0900 100644 --- a/packages/dcent/package.json +++ b/packages/dcent/package.json @@ -1,6 +1,6 @@ { "name": "@web3-onboard/dcent", - "version": "2.2.0", + "version": "2.2.1-alpha.1", "description": "D'CENT wallet module for connecting to Web3-Onboard. Web3-Onboard makes it simple to connect Ethereum hardware and software wallets to your dapp. Features standardised spec compliant web3 providers for all supported wallets, framework agnostic modern javascript UI with code splitting, CSS customization, multi-chain and multi-account support, reactive wallet state subscriptions and real-time transaction state change notifications.", "keywords": [ "Ethereum", @@ -56,8 +56,8 @@ "typescript": "^4.5.5" }, "dependencies": { - "@web3-onboard/common": "^2.2.2", - "@web3-onboard/hw-common": "^2.0.1", + "@web3-onboard/common": "^2.2.3-alpha.1", + "@web3-onboard/hw-common": "^2.0.3-alpha.1", "@ethereumjs/tx": "^3.4.0", "@ethersproject/providers": "^5.5.0", "eth-dcent-keyring": "^0.2.2" diff --git a/packages/demo/package.json b/packages/demo/package.json index 2e86aedd4..87f79f5f8 100644 --- a/packages/demo/package.json +++ b/packages/demo/package.json @@ -22,24 +22,24 @@ "webpack-dev-server": "4.7.4" }, "dependencies": { - "@web3-onboard/coinbase": "^2.1.2", - "@web3-onboard/core": "^2.8.5-alpha.1", - "@web3-onboard/dcent": "^2.2.0", - "@web3-onboard/fortmatic": "^2.0.13", - "@web3-onboard/gas": "^2.1.2", - "@web3-onboard/gnosis": "^2.1.2", - "@web3-onboard/injected-wallets": "^2.2.3", - "@web3-onboard/keepkey": "^2.3.0", - "@web3-onboard/keystone": "^2.3.0", - "@web3-onboard/ledger": "^2.3.0", - "@web3-onboard/magic": "^2.1.2", - "@web3-onboard/portis": "^2.1.2", - "@web3-onboard/sequence": "^2.0.1", - "@web3-onboard/torus": "^2.1.2", - "@web3-onboard/trezor": "^2.3.0", - "@web3-onboard/tallyho": "^2.0.0", - "@web3-onboard/walletconnect": "^2.1.2", - "@web3-onboard/web3auth": "^2.1.2", + "@web3-onboard/coinbase": "^2.1.3-alpha.1", + "@web3-onboard/core": "^2.8.5-alpha.2", + "@web3-onboard/dcent": "^2.2.1-alpha.1", + "@web3-onboard/fortmatic": "^2.0.14-alpha.1", + "@web3-onboard/gas": "^2.1.3-alpha.1", + "@web3-onboard/gnosis": "^2.1.3-alpha.1", + "@web3-onboard/injected-wallets": "^2.2.4-alpha.1", + "@web3-onboard/keepkey": "^2.3.1-alpha.1", + "@web3-onboard/keystone": "^2.3.1-alpha.1", + "@web3-onboard/ledger": "^2.3.1-alpha.1", + "@web3-onboard/magic": "^2.1.3-alpha.1", + "@web3-onboard/portis": "^2.1.3-alpha.1", + "@web3-onboard/sequence": "^2.0.2-alpha.1", + "@web3-onboard/torus": "^2.1.3-alpha.1", + "@web3-onboard/trezor": "^2.3.1-alpha.1", + "@web3-onboard/tallyho": "^2.0.1-alpha.1", + "@web3-onboard/walletconnect": "^2.1.3-alpha.1", + "@web3-onboard/web3auth": "^2.1.3-alpha.1", "vconsole": "^3.9.5" }, "license": "MIT", diff --git a/packages/fortmatic/package.json b/packages/fortmatic/package.json index d50a8f515..389dc2142 100644 --- a/packages/fortmatic/package.json +++ b/packages/fortmatic/package.json @@ -1,6 +1,6 @@ { "name": "@web3-onboard/fortmatic", - "version": "2.0.13", + "version": "2.0.14-alpha.1", "description": "Fortmatic wallet module for connecting to Web3-Onboard. Web3-Onboard makes it simple to connect Ethereum hardware and software wallets to your dapp. Features standardised spec compliant web3 providers for all supported wallets, framework agnostic modern javascript UI with code splitting, CSS customization, multi-chain and multi-account support, reactive wallet state subscriptions and real-time transaction state change notifications.", "keywords": [ "Ethereum", @@ -58,7 +58,7 @@ "typescript": "^4.5.5" }, "dependencies": { - "@web3-onboard/common": "^2.2.2", + "@web3-onboard/common": "^2.2.3-alpha.1", "fortmatic": "^2.2.1" } } diff --git a/packages/gas/package.json b/packages/gas/package.json index 8d6460908..115c00cac 100644 --- a/packages/gas/package.json +++ b/packages/gas/package.json @@ -1,6 +1,6 @@ { "name": "@web3-onboard/gas", - "version": "2.1.2", + "version": "2.1.3-alpha.1", "description": "Estimate the gas prices needed to get a transaction in to the next block for Ethereum Mainnet and Polygon Matic Mainnet.", "keywords": [ "gas", @@ -30,8 +30,8 @@ "typescript": "^4.5.5" }, "dependencies": { - "@web3-onboard/common": "^2.2.2", + "@web3-onboard/common": "^2.2.3-alpha.1", "rxjs": "^7.5.2", - "joi": "^17.4.2" + "joi": "^17.6.1" } } diff --git a/packages/gnosis/package.json b/packages/gnosis/package.json index 39c6eb4b1..e0edde08a 100644 --- a/packages/gnosis/package.json +++ b/packages/gnosis/package.json @@ -1,6 +1,6 @@ { "name": "@web3-onboard/gnosis", - "version": "2.1.2", + "version": "2.1.3-alpha.1", "description": "Gnosis Safe module for connecting to Web3-Onboard. Web3-Onboard makes it simple to connect Ethereum hardware and software wallets to your dapp. Features standardised spec compliant web3 providers for all supported wallets, framework agnostic modern javascript UI with code splitting, CSS customization, multi-chain and multi-account support, reactive wallet state subscriptions and real-time transaction state change notifications.", "keywords": [ "Ethereum", @@ -59,6 +59,6 @@ "dependencies": { "@gnosis.pm/safe-apps-provider": "^0.9.2", "@gnosis.pm/safe-apps-sdk": "^6.1.1", - "@web3-onboard/common": "^2.2.2" + "@web3-onboard/common": "^2.2.3-alpha.1" } } diff --git a/packages/hw-common/package.json b/packages/hw-common/package.json index bae9e52d8..5a0b76602 100644 --- a/packages/hw-common/package.json +++ b/packages/hw-common/package.json @@ -1,6 +1,6 @@ { "name": "@web3-onboard/hw-common", - "version": "2.0.2", + "version": "2.0.3-alpha.1", "description": "Web3-Onboard makes it simple to connect Ethereum hardware and software wallets to your dapp. Features standardised spec compliant web3 providers for all supported wallets, framework agnostic modern javascript UI with code splitting, CSS customization, multi-chain and multi-account support, reactive wallet state subscriptions and real-time transaction state change notifications.", "keywords": [ "Ethereum", @@ -81,9 +81,9 @@ }, "dependencies": { "@ethereumjs/common": "2.6.2", - "@web3-onboard/common": "^2.2.2", + "@web3-onboard/common": "^2.2.3-alpha.1", "ethers": "5.5.4", - "joi": "^17.4.2", + "joi": "^17.6.1", "rxjs": "^7.5.2" } } diff --git a/packages/injected/package.json b/packages/injected/package.json index 3544f1226..053c3214a 100644 --- a/packages/injected/package.json +++ b/packages/injected/package.json @@ -1,6 +1,6 @@ { "name": "@web3-onboard/injected-wallets", - "version": "2.2.3", + "version": "2.2.4-alpha.2", "description": "Injected wallet module for connecting browser extension and mobile wallets to Web3-Onboard. Web3-Onboard makes it simple to connect Ethereum hardware and software wallets to your dapp. Features standardised spec compliant web3 providers for all supported wallets, framework agnostic modern javascript UI with code splitting, CSS customization, multi-chain and multi-account support, reactive wallet state subscriptions and real-time transaction state change notifications.", "keywords": [ "Ethereum", @@ -62,8 +62,8 @@ "window": "^4.2.7" }, "dependencies": { - "@web3-onboard/common": "^2.2.2", - "joi": "^17.4.2", + "@web3-onboard/common": "^2.2.3-alpha.1", + "joi": "^17.6.1", "lodash.uniqby": "^4.7.0" } } diff --git a/packages/keepkey/package.json b/packages/keepkey/package.json index 80693104c..351a0cce9 100644 --- a/packages/keepkey/package.json +++ b/packages/keepkey/package.json @@ -1,6 +1,6 @@ { "name": "@web3-onboard/keepkey", - "version": "2.3.0", + "version": "2.3.1-alpha.1", "description": "KeepKey hardware wallet module for connecting to Web3-Onboard. Web3-Onboard makes it simple to connect Ethereum hardware and software wallets to your dapp. Features standardised spec compliant web3 providers for all supported wallets, framework agnostic modern javascript UI with code splitting, CSS customization, multi-chain and multi-account support, reactive wallet state subscriptions and real-time transaction state change notifications.", "keywords": [ "Ethereum", @@ -63,8 +63,8 @@ "@ethersproject/providers": "^5.5.0", "@shapeshiftoss/hdwallet-core": "^1.15.2", "@shapeshiftoss/hdwallet-keepkey-webusb": "^1.15.2", - "@web3-onboard/common": "^2.2.2", - "@web3-onboard/hw-common": "^2.0.1", + "@web3-onboard/common": "^2.2.3-alpha.1", + "@web3-onboard/hw-common": "^2.0.3-alpha.1", "ethereumjs-util": "^7.1.3" } } diff --git a/packages/keystone/package.json b/packages/keystone/package.json index b4f2ee785..ff8035eb2 100644 --- a/packages/keystone/package.json +++ b/packages/keystone/package.json @@ -1,6 +1,6 @@ { "name": "@web3-onboard/keystone", - "version": "2.3.0", + "version": "2.3.1-alpha.1", "description": "Keystone hardware wallet module for connecting to Web3-Onboard. Web3-Onboard makes it simple to connect Ethereum hardware and software wallets to your dapp. Features standardised spec compliant web3 providers for all supported wallets, framework agnostic modern javascript UI with code splitting, CSS customization, multi-chain and multi-account support, reactive wallet state subscriptions and real-time transaction state change notifications.", "keywords": [ "Ethereum", @@ -58,7 +58,7 @@ "@ethereumjs/tx": "^3.4.0", "@ethersproject/providers": "^5.5.0", "@keystonehq/eth-keyring": "^0.14.0-alpha.10.3", - "@web3-onboard/common": "^2.2.2", - "@web3-onboard/hw-common": "^2.0.1" + "@web3-onboard/common": "^2.2.3-alpha.1", + "@web3-onboard/hw-common": "^2.0.3-alpha.1" } } diff --git a/packages/ledger/package.json b/packages/ledger/package.json index 5f9d653f2..0fb8af0ec 100644 --- a/packages/ledger/package.json +++ b/packages/ledger/package.json @@ -1,6 +1,6 @@ { "name": "@web3-onboard/ledger", - "version": "2.3.0", + "version": "2.3.1-alpha.1", "description": "Ledger hardare wallet module for connecting to Web3-Onboard. Web3-Onboard makes it simple to connect Ethereum hardware and software wallets to your dapp. Features standardised spec compliant web3 providers for all supported wallets, framework agnostic modern javascript UI with code splitting, CSS customization, multi-chain and multi-account support, reactive wallet state subscriptions and real-time transaction state change notifications.", "keywords": [ "Ethereum", @@ -65,8 +65,8 @@ "@ledgerhq/hw-transport-u2f": "^5.36.0-deprecated", "@ledgerhq/hw-transport-webusb": "^6.19.0", "@metamask/eth-sig-util": "^4.0.0", - "@web3-onboard/common": "^2.2.2", - "@web3-onboard/hw-common": "^2.0.1", + "@web3-onboard/common": "^2.2.3-alpha.1", + "@web3-onboard/hw-common": "^2.0.3-alpha.1", "buffer": "^6.0.3", "ethereumjs-util": "^7.1.3" } diff --git a/packages/magic/package.json b/packages/magic/package.json index efc89d14b..230e74b01 100644 --- a/packages/magic/package.json +++ b/packages/magic/package.json @@ -1,6 +1,6 @@ { "name": "@web3-onboard/magic", - "version": "2.1.2", + "version": "2.1.3-alpha.1", "description": "Magic SDK wallet module for connecting to Web3-Onboard. Web3-Onboard makes it simple to connect Ethereum hardware and software wallets to your dapp. Features standardised spec compliant web3 providers for all supported wallets, framework agnostic modern javascript UI with code splitting, CSS customization, multi-chain and multi-account support, reactive wallet state subscriptions and real-time transaction state change notifications.", "keywords": [ "Ethereum", @@ -80,8 +80,8 @@ "typescript": "^4.5.5" }, "dependencies": { - "@web3-onboard/common": "^2.2.2", - "joi": "^17.4.2", + "@web3-onboard/common": "^2.2.3-alpha.1", + "joi": "^17.6.1", "magic-sdk": "^8.1.0", "rxjs": "^7.5.2" } diff --git a/packages/mew/package.json b/packages/mew/package.json index 41e34c2a2..0d20eb0b3 100644 --- a/packages/mew/package.json +++ b/packages/mew/package.json @@ -1,6 +1,6 @@ { "name": "@web3-onboard/mew", - "version": "2.1.2", + "version": "2.1.3-alpha.1", "description": "MEW (My Ether Wallet) SDK wallet module for connecting to Web3-Onboard. Web3-Onboard makes it simple to connect Ethereum hardware and software wallets to your dapp. Features standardised spec compliant web3 providers for all supported wallets, framework agnostic modern javascript UI with code splitting, CSS customization, multi-chain and multi-account support, reactive wallet state subscriptions and real-time transaction state change notifications.", "keywords": [ "Ethereum", @@ -59,7 +59,7 @@ "@myetherwallet/mewconnect-web-client": "^2.2.0-beta.14" }, "dependencies": { - "@web3-onboard/common": "^2.2.2", + "@web3-onboard/common": "^2.2.3-alpha.1", "rxjs": "^7.5.2" } } diff --git a/packages/portis/package.json b/packages/portis/package.json index 3dc5a117f..f39f372b8 100644 --- a/packages/portis/package.json +++ b/packages/portis/package.json @@ -1,6 +1,6 @@ { "name": "@web3-onboard/portis", - "version": "2.1.2", + "version": "2.1.3-alpha.1", "description": "Portis SDK wallet module for connecting to Web3-Onboard. Web3-Onboard makes it simple to connect Ethereum hardware and software wallets to your dapp. Features standardised spec compliant web3 providers for all supported wallets, framework agnostic modern javascript UI with code splitting, CSS customization, multi-chain and multi-account support, reactive wallet state subscriptions and real-time transaction state change notifications.", "keywords": [ "Ethereum", @@ -57,6 +57,6 @@ }, "dependencies": { "@portis/web3": "^4.0.6", - "@web3-onboard/common": "^2.2.2" + "@web3-onboard/common": "^2.2.3-alpha.1" } } diff --git a/packages/react/package.json b/packages/react/package.json index 98cd7f70d..c180c1704 100644 --- a/packages/react/package.json +++ b/packages/react/package.json @@ -1,6 +1,6 @@ { "name": "@web3-onboard/react", - "version": "2.3.5-alpha.1", + "version": "2.3.5-alpha.2", "description": "A collection of React hooks for integrating Web3-Onboard in to React and Next.js projects. Web3-Onboard makes it simple to connect Ethereum hardware and software wallets to your dapp. Features standardised spec compliant web3 providers for all supported wallets, modern javascript UI with code splitting, CSS customization, multi-chain and multi-account support, reactive wallet state subscriptions and real-time transaction state change notifications.", "keywords": [ "Ethereum", @@ -63,7 +63,7 @@ }, "dependencies": { "@web3-onboard/core": "^2.8.5-alpha.1", - "@web3-onboard/common": "^2.2.2", + "@web3-onboard/common": "^2.2.3-alpha.1", "use-sync-external-store": "1.0.0" }, "peerDependencies": { diff --git a/packages/sequence/package.json b/packages/sequence/package.json index b88c0070c..3aa71db3e 100644 --- a/packages/sequence/package.json +++ b/packages/sequence/package.json @@ -1,6 +1,6 @@ { "name": "@web3-onboard/sequence", - "version": "2.0.1", + "version": "2.0.2-alpha.1", "description": "Sequence is the smartest Web3 wallet. Easy, fun and secure.", "keywords": [ "Ethereum", @@ -56,7 +56,7 @@ "typescript": "^4.5.5" }, "dependencies": { - "@web3-onboard/common": "^2.2.2", + "@web3-onboard/common": "^2.2.3-alpha.1", "0xsequence": "^0.40.5" } } diff --git a/packages/tallyho/package.json b/packages/tallyho/package.json index d56b6514d..d9f9ecbbf 100644 --- a/packages/tallyho/package.json +++ b/packages/tallyho/package.json @@ -1,6 +1,6 @@ { "name": "@web3-onboard/tallyho", - "version": "2.0.0", + "version": "2.0.1-alpha.1", "description": "Tally Ho SDK wallet module for connecting to Web3-Onboard. Web3-Onboard makes it simple to connect Ethereum hardware and software wallets to your dapp. Features standardised spec compliant web3 providers for all supported wallets, framework agnostic modern javascript UI with code splitting, CSS customization, multi-chain and multi-account support, reactive wallet state subscriptions and real-time transaction state change notifications.", "keywords": [ "Ethereum", @@ -64,7 +64,7 @@ "window": "^4.2.7" }, "dependencies": { - "@web3-onboard/common": "^2.2.2", + "@web3-onboard/common": "^2.2.3-alpha.1", "tallyho-detect-provider": "^1.0.0", "tallyho-onboarding": "^1.0.2" } diff --git a/packages/torus/package.json b/packages/torus/package.json index 86e28fe9c..26a3ee241 100644 --- a/packages/torus/package.json +++ b/packages/torus/package.json @@ -1,6 +1,6 @@ { "name": "@web3-onboard/torus", - "version": "2.1.2", + "version": "2.1.3-alpha.1", "description": "Torus SDK wallet module for connecting to Web3-Onboard. Web3-Onboard makes it simple to connect Ethereum hardware and software wallets to your dapp. Features standardised spec compliant web3 providers for all supported wallets, framework agnostic modern javascript UI with code splitting, CSS customization, multi-chain and multi-account support, reactive wallet state subscriptions and real-time transaction state change notifications.", "keywords": [ "Ethereum", @@ -57,6 +57,6 @@ }, "dependencies": { "@toruslabs/torus-embed": "1.27.3", - "@web3-onboard/common": "^2.2.2" + "@web3-onboard/common": "^2.2.3-alpha.1" } } diff --git a/packages/trezor/package.json b/packages/trezor/package.json index 9273761f4..0b2cdfc02 100644 --- a/packages/trezor/package.json +++ b/packages/trezor/package.json @@ -1,6 +1,6 @@ { "name": "@web3-onboard/trezor", - "version": "2.3.0", + "version": "2.3.1-alpha.1", "description": "Trezor hardware wallet module for connecting to Web3-Onboard. Web3-Onboard makes it simple to connect Ethereum hardware and software wallets to your dapp. Features standardised spec compliant web3 providers for all supported wallets, framework agnostic modern javascript UI with code splitting, CSS customization, multi-chain and multi-account support, reactive wallet state subscriptions and real-time transaction state change notifications.", "keywords": [ "Ethereum", @@ -60,8 +60,8 @@ "dependencies": { "@ethereumjs/tx": "^3.4.0", "@ethersproject/providers": "^5.5.0", - "@web3-onboard/common": "^2.2.2", - "@web3-onboard/hw-common": "^2.0.1", + "@web3-onboard/common": "^2.2.3-alpha.1", + "@web3-onboard/hw-common": "^2.0.3-alpha.1", "buffer": "^6.0.3", "eth-crypto": "^2.1.0", "ethereumjs-util": "^7.1.3", diff --git a/packages/vue/package.json b/packages/vue/package.json index 10f8702df..6b85f4b24 100644 --- a/packages/vue/package.json +++ b/packages/vue/package.json @@ -1,6 +1,6 @@ { "name": "@web3-onboard/vue", - "version": "2.2.5-alpha.1", + "version": "2.2.5-alpha.2", "description": "A collection of Vue Composables for integrating Web3-Onboard in to a Vue or Nuxt project. Web3-Onboard makes it simple to connect Ethereum hardware and software wallets to your dapp. Features standardised spec compliant web3 providers for all supported wallets, modern javascript UI with code splitting, CSS customization, multi-chain and multi-account support, reactive wallet state subscriptions and real-time transaction state change notifications.", "keywords": [ "Ethereum", @@ -62,7 +62,7 @@ "dependencies": { "@vueuse/core": "^8.4.2", "@vueuse/rxjs": "^8.2.0", - "@web3-onboard/common": "^2.2.2", + "@web3-onboard/common": "^2.2.3-alpha.1", "@web3-onboard/core": "^2.8.5-alpha.1", "vue-demi": "^0.12.4" }, diff --git a/packages/walletconnect/package.json b/packages/walletconnect/package.json index d37cd29b8..f7824e06d 100644 --- a/packages/walletconnect/package.json +++ b/packages/walletconnect/package.json @@ -1,6 +1,6 @@ { "name": "@web3-onboard/walletconnect", - "version": "2.1.2", + "version": "2.1.3-alpha.1", "description": "WalletConnect SDK module for connecting to Web3-Onboard. Web3-Onboard makes it simple to connect Ethereum hardware and software wallets to your dapp. Features standardised spec compliant web3 providers for all supported wallets, framework agnostic modern javascript UI with code splitting, CSS customization, multi-chain and multi-account support, reactive wallet state subscriptions and real-time transaction state change notifications.", "keywords": [ "Ethereum", @@ -61,7 +61,7 @@ "@ethersproject/providers": "^5.5.0", "@walletconnect/client": "^1.7.1", "@walletconnect/qrcode-modal": "^1.7.1", - "@web3-onboard/common": "^2.2.2", + "@web3-onboard/common": "^2.2.3-alpha.1", "rxjs": "^7.5.2" } } diff --git a/packages/walletlink/package.json b/packages/walletlink/package.json index cac455de9..0bbd8b13e 100644 --- a/packages/walletlink/package.json +++ b/packages/walletlink/package.json @@ -1,6 +1,6 @@ { "name": "@web3-onboard/walletlink", - "version": "2.1.2", + "version": "2.1.3-alpha.1", "description": "(DEPRECATED. Use @web3-onboard/coinbase instead) WalletLink SDK wallet module for connecting to Web3-Onboard. Web3-Onboard makes it simple to connect Ethereum hardware and software wallets to your dapp. Features standardised spec compliant web3 providers for all supported wallets, framework agnostic modern javascript UI with code splitting, CSS customization, multi-chain and multi-account support, reactive wallet state subscriptions and real-time transaction state change notifications.", "keywords": [ "Ethereum", @@ -58,7 +58,7 @@ "typescript": "^4.5.5" }, "dependencies": { - "@web3-onboard/common": "^2.2.2", + "@web3-onboard/common": "^2.2.3-alpha.1", "walletlink": "^2.5.0" } } diff --git a/packages/web3auth/package.json b/packages/web3auth/package.json index 1565be9ba..616641839 100644 --- a/packages/web3auth/package.json +++ b/packages/web3auth/package.json @@ -1,6 +1,6 @@ { "name": "@web3-onboard/web3auth", - "version": "2.1.2", + "version": "2.1.3-alpha.1", "description": "Web3Auth SDK wallet module for connecting to Web3-Onboard. Web3-Onboard makes it simple to connect Ethereum hardware and software wallets to your dapp. Features standardised spec compliant web3 providers for all supported wallets, framework agnostic modern javascript UI with code splitting, CSS customization, multi-chain and multi-account support, reactive wallet state subscriptions and real-time transaction state change notifications.", "keywords": [ "Ethereum", @@ -56,7 +56,7 @@ "typescript": "^4.5.5" }, "dependencies": { - "@web3-onboard/common": "^2.2.2", + "@web3-onboard/common": "^2.2.3-alpha.1", "@web3auth/web3auth": "^1.0.0" } } diff --git a/yarn.lock b/yarn.lock index 229e204c5..ce278d0e5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2953,6 +2953,24 @@ dependencies: "@walletconnect/window-getters" "^1.0.0" +"@web3-onboard/common@^2.2.2": + version "2.2.2" + resolved "https://registry.yarnpkg.com/@web3-onboard/common/-/common-2.2.2.tgz#abef8ca861835ab00e5b4641462de2c3db73fc89" + integrity sha512-04Y2Fryiu48nW27dgAtYmPugdhYbeIZq4HM1wsqRftQjgyEWnsam3YyeKRWBABa5iTsE2a/Fo4LofuBG5RMVYw== + dependencies: + bignumber.js "^9.1.0" + ethers "5.5.4" + joi "^17.4.2" + +"@web3-onboard/gas@^2.0.0": + version "2.1.2" + resolved "https://registry.yarnpkg.com/@web3-onboard/gas/-/gas-2.1.2.tgz#291c572bfb3a705335ee096355bf67c06739c9a5" + integrity sha512-MUPGdZOcP84RVX0msZdVdVLDbOFJMWBcJqNIvGaSQvBdUBIg8zUBRh2vSO3Ynqpm/RJffl+cJfnKVP6pEfbUXg== + dependencies: + "@web3-onboard/common" "^2.2.2" + joi "^17.4.2" + rxjs "^7.5.2" + "@web3auth/base-plugin@^1.0.1": version "1.0.1" resolved "https://registry.yarnpkg.com/@web3auth/base-plugin/-/base-plugin-1.0.1.tgz#1e2a87acf745299fdff6f92e6c46ee9bc38aa670" @@ -7189,7 +7207,7 @@ jest-worker@^27.4.5: merge-stream "^2.0.0" supports-color "^8.0.0" -joi@17.6.0, joi@^17.4.2: +joi@^17.4.2: version "17.6.0" resolved "https://registry.yarnpkg.com/joi/-/joi-17.6.0.tgz#0bb54f2f006c09a96e75ce687957bd04290054b2" integrity sha512-OX5dG6DTbcr/kbMFj0KGYxuew69HPcAE3K/sZpEV2nP6e/j/C0HV+HNiBPCASxdx5T7DMoa0s8UeHWMnb6n2zw== @@ -7200,6 +7218,17 @@ joi@17.6.0, joi@^17.4.2: "@sideway/formula" "^3.0.0" "@sideway/pinpoint" "^2.0.0" +joi@^17.6.1: + version "17.6.1" + resolved "https://registry.yarnpkg.com/joi/-/joi-17.6.1.tgz#e77422f277091711599634ac39a409e599d7bdaa" + integrity sha512-Hl7/iBklIX345OCM1TiFSCZRVaAOLDGlWCp0Df2vWYgBgjkezaR7Kvm3joBciBHQjZj5sxXs859r6eqsRSlG8w== + dependencies: + "@hapi/hoek" "^9.0.0" + "@hapi/topo" "^5.0.0" + "@sideway/address" "^4.1.3" + "@sideway/formula" "^3.0.0" + "@sideway/pinpoint" "^2.0.0" + js-base64@^3.7.2: version "3.7.2" resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-3.7.2.tgz#816d11d81a8aff241603d19ce5761e13e41d7745" From 92bda8c518aeb4c187c5fe2fbd11fad634451733 Mon Sep 17 00:00:00 2001 From: Taylor Dawson Date: Thu, 22 Sep 2022 15:15:20 -0700 Subject: [PATCH 04/10] Update notion database ID & project name tag --- .github/workflows/issue-to-notion.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/issue-to-notion.yml b/.github/workflows/issue-to-notion.yml index 21405fdfe..fb5843884 100644 --- a/.github/workflows/issue-to-notion.yml +++ b/.github/workflows/issue-to-notion.yml @@ -24,8 +24,8 @@ jobs: FLAG: Github STATUS: Backlog # Product Work Board - DATABASE_ID: 29876f9a9b864ca39a984f42e17fd345 - PROJECT_NAME: Onboard.js + DATABASE_ID: 69f0e513a59d445b87a1baed729c75c5 + PROJECT_NAME: web3-onboard # User ids of who to assign the card to in notion: Taylor, Adam, Aaron NOTION_USER_IDS: f6cbb362-4908-4138-9ef0-434003d9a9f8,8a3a2287-5d2c-4665-906d-02ae9a113340,3b407adf-6552-40de-b22f-5efa852c34a2 shell: bash From 2d33f78c5dbc5e2e400afb845d48d4fe50aa89e0 Mon Sep 17 00:00:00 2001 From: fuhuimin <120409743@qq.com> Date: Fri, 23 Sep 2022 07:45:51 +0800 Subject: [PATCH 05/10] fix issue eth_signTypedData_v4 not supported (#1272) * Update index.ts * Update packages/walletconnect/src/index.ts Co-authored-by: Aaron * Update package.json Co-authored-by: Aaron --- packages/walletconnect/src/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/walletconnect/src/index.ts b/packages/walletconnect/src/index.ts index 5469aaee0..af9407b47 100644 --- a/packages/walletconnect/src/index.ts +++ b/packages/walletconnect/src/index.ts @@ -206,7 +206,7 @@ function walletConnect(options?: WalletConnectOptions): WalletInit { } // @ts-ignore - if (method === 'eth_signTypedData') { + if (method.includes('eth_signTypedData') { // @ts-ignore return this.connector.signTypedData(params) } From 9a461748f9688e38400ae01ecb15ab398c1fa2b5 Mon Sep 17 00:00:00 2001 From: Aaron Date: Mon, 26 Sep 2022 09:13:25 +1000 Subject: [PATCH 06/10] [fix] - MetaMask Connect Flow (#1293) * Handle case where MM connection in progress * Increment version * Update copy * Add return statement --- packages/core/src/i18n/en.json | 1 + .../src/views/connect/ConnectingWallet.svelte | 29 +++++--- packages/core/src/views/connect/Index.svelte | 66 ++++++++++++++++++- 3 files changed, 84 insertions(+), 12 deletions(-) diff --git a/packages/core/src/i18n/en.json b/packages/core/src/i18n/en.json index d26cc28e0..8927dc977 100644 --- a/packages/core/src/i18n/en.json +++ b/packages/core/src/i18n/en.json @@ -25,6 +25,7 @@ }, "mainText": "Connecting...", "paragraph": "Make sure to select all accounts that you want to grant access to.", + "previousConnection": "{wallet} already has a pending connection request, please open the {wallet} app to login and connect.", "rejectedText": "Connection Rejected!", "rejectedCTA": "Click here to try again", "primaryButton": "Back to wallets" diff --git a/packages/core/src/views/connect/ConnectingWallet.svelte b/packages/core/src/views/connect/ConnectingWallet.svelte index 3c38b10c8..16e898911 100644 --- a/packages/core/src/views/connect/ConnectingWallet.svelte +++ b/packages/core/src/views/connect/ConnectingWallet.svelte @@ -12,6 +12,7 @@ export let deselectWallet: (label: string) => void export let setStep: (update: keyof i18n['connect']) => void export let connectionRejected: boolean + export let previousConnectionRequest: boolean const { appMetadata } = configuration @@ -69,7 +70,7 @@
@@ -77,7 +78,9 @@ size={40} padding={8} icon={(appMetadata && appMetadata.icon) || questionIcon} - border={connectionRejected ? 'yellow' : 'blue'} + border={connectionRejected || previousConnectionRequest + ? 'yellow' + : 'blue'} background="lightGray" /> @@ -85,7 +88,9 @@ @@ -95,9 +100,9 @@
{$_( - connectionRejected - ? 'connect.connectingWallet.rejectedText' - : 'connect.connectingWallet.mainText', + `connect.connectingWallet.${ + connectionRejected ? 'rejectedText' : 'mainText' + }`, { default: connectionRejected ? en.connect.connectingWallet.rejectedText @@ -113,9 +118,15 @@
{:else}
- {$_('connect.connectingWallet.paragraph', { - default: en.connect.connectingWallet.paragraph - })} + {$_( + `connect.connectingWallet.${ + previousConnectionRequest ? 'previousConnection' : 'paragraph' + }`, + { + default: en.connect.connectingWallet.paragraph, + values: { wallet: selectedWallet.label } + } + )}
{/if}
diff --git a/packages/core/src/views/connect/Index.svelte b/packages/core/src/views/connect/Index.svelte index c3eb65f13..eb0b8d71a 100644 --- a/packages/core/src/views/connect/Index.svelte +++ b/packages/core/src/views/connect/Index.svelte @@ -1,10 +1,9 @@