From 478ad4857490f00168678b278f86ed798c542181 Mon Sep 17 00:00:00 2001
From: Kat Leight <33187102+leightkt@users.noreply.github.com>
Date: Mon, 12 Jun 2023 13:56:34 -0600
Subject: [PATCH 1/7] update Google Analytics Script (#1770)
---
docs/src/app.html | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/docs/src/app.html b/docs/src/app.html
index 54e2a9b67..187f76c57 100644
--- a/docs/src/app.html
+++ b/docs/src/app.html
@@ -18,8 +18,14 @@
%sveltekit.head%
-
-
+
+
+
%sveltekit.body%
From bf2600fc764422970c57810b0da910f9659f8ab9 Mon Sep 17 00:00:00 2001
From: ByteZhang
Date: Tue, 13 Jun 2023 04:13:06 +0800
Subject: [PATCH 2/7] feat: add OneKey wallet (#1739)
* feat: Support OneKey wallet
* fix: OneKey docs
* Update injected package.json version
* Update demo package.json
---------
Co-authored-by: Adam Carpenter
---
.../docs/[...4]wallets/[...9]injected/+page.md | 1 +
packages/demo/package.json | 2 +-
packages/injected/package.json | 2 +-
packages/injected/src/constants.ts | 3 ++-
packages/injected/src/icons/onekey.ts | 6 ++++++
packages/injected/src/types.ts | 13 ++++++++++---
packages/injected/src/wallets.ts | 18 +++++++++++++++++-
7 files changed, 38 insertions(+), 7 deletions(-)
create mode 100644 packages/injected/src/icons/onekey.ts
diff --git a/docs/src/routes/docs/[...4]wallets/[...9]injected/+page.md b/docs/src/routes/docs/[...4]wallets/[...9]injected/+page.md
index 240372226..257a142f7 100644
--- a/docs/src/routes/docs/[...4]wallets/[...9]injected/+page.md
+++ b/docs/src/routes/docs/[...4]wallets/[...9]injected/+page.md
@@ -334,6 +334,7 @@ const injected = injectedModule({
- BifrostWallet - _Desktop & Mobile_
- Safeheron - _Desktop_
- Talisman - _Desktop_
+- OneKey - _Desktop & Mobile_
## Build Environments
diff --git a/packages/demo/package.json b/packages/demo/package.json
index fcd07fd67..42ab06194 100644
--- a/packages/demo/package.json
+++ b/packages/demo/package.json
@@ -35,7 +35,7 @@
"@web3-onboard/gas": "^2.1.7",
"@web3-onboard/gnosis": "^2.1.9",
"@web3-onboard/infinity-wallet": "^2.0.3",
- "@web3-onboard/injected-wallets": "^2.10.0",
+ "@web3-onboard/injected-wallets": "^2.10.1-alpha.1",
"@web3-onboard/keepkey": "^2.3.7",
"@web3-onboard/keystone": "^2.3.7",
"@web3-onboard/ledger": "^2.4.5",
diff --git a/packages/injected/package.json b/packages/injected/package.json
index 7e58fd63f..44479d6f0 100644
--- a/packages/injected/package.json
+++ b/packages/injected/package.json
@@ -1,6 +1,6 @@
{
"name": "@web3-onboard/injected-wallets",
- "version": "2.10.0",
+ "version": "2.10.1-alpha.1",
"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",
diff --git a/packages/injected/src/constants.ts b/packages/injected/src/constants.ts
index 404ca8083..d757acbca 100644
--- a/packages/injected/src/constants.ts
+++ b/packages/injected/src/constants.ts
@@ -26,5 +26,6 @@ export const WALLET_NAMES: { [key: string]: string } = {
rainbow: 'Rainbow',
defiwallet: 'DeFi Wallet',
safeheron: 'Safeheron',
- talismanEth: 'Talisman'
+ talismanEth: 'Talisman',
+ onekey: 'OneKey'
}
diff --git a/packages/injected/src/icons/onekey.ts b/packages/injected/src/icons/onekey.ts
new file mode 100644
index 000000000..1ce528cdc
--- /dev/null
+++ b/packages/injected/src/icons/onekey.ts
@@ -0,0 +1,6 @@
+export default `
+`
diff --git a/packages/injected/src/types.ts b/packages/injected/src/types.ts
index 9e95028b8..b38bb30e7 100644
--- a/packages/injected/src/types.ts
+++ b/packages/injected/src/types.ts
@@ -62,7 +62,8 @@ export enum ProviderIdentityFlag {
SafePal = 'isSafePal',
DeFiWallet = 'isDeficonnectProvider',
Safeheron = 'isSafeheron',
- Talisman = 'isTalisman'
+ Talisman = 'isTalisman',
+ OneKey = 'isOneKey'
}
@@ -82,6 +83,7 @@ export enum ProviderExternalUrl {
Phantom = 'https://phantom.app/download',
Talisman = 'https://www.talisman.xyz/',
Trust = 'https://trustwallet.com/download/',
+ OneKey = 'https://onekey.so/download/',
}
export enum ProviderLabel {
@@ -134,7 +136,8 @@ export enum ProviderLabel {
SafePal = 'SafePal',
DeFiWallet = 'DeFi Wallet',
Safeheron = 'Safeheron',
- Talisman = 'Talisman'
+ Talisman = 'Talisman',
+ OneKey = 'OneKey'
}
export interface MeetOneProvider extends ExternalProvider {
@@ -166,7 +169,8 @@ export enum InjectedNameSpace {
Frontier = 'frontier',
DeFiConnectProvider = 'deficonnectProvider',
Safeheron = 'safeheron',
- Talisman = 'talismanEth'
+ Talisman = 'talismanEth',
+ OneKey = '$onekey'
}
export interface CustomWindow extends Window {
@@ -203,6 +207,9 @@ export interface CustomWindow extends Window {
deficonnectProvider: InjectedProvider
safeheron: InjectedProvider
talismanEth: InjectedProvider
+ $onekey: {
+ ethereum: InjectedProvider
+ }
}
export type InjectedProvider = ExternalProvider &
diff --git a/packages/injected/src/wallets.ts b/packages/injected/src/wallets.ts
index e46de2989..568819c40 100644
--- a/packages/injected/src/wallets.ts
+++ b/packages/injected/src/wallets.ts
@@ -785,6 +785,21 @@ const talisman: InjectedWalletModule = {
externalUrl: ProviderExternalUrl.Talisman
}
+const onekey: InjectedWalletModule = {
+ label: ProviderLabel.OneKey,
+ injectedNamespace: InjectedNameSpace.OneKey,
+ checkProviderIdentity: ({ provider }) =>
+ !!provider &&
+ !!provider.ethereum &&
+ !!provider.ethereum[ProviderIdentityFlag.OneKey],
+ getIcon: async () => (await import('./icons/onekey.js')).default,
+ getInterface: async () => ({
+ provider: createEIP1193Provider(window.$onekey.ethereum)
+ }),
+ platforms: ['all'],
+ externalUrl: ProviderExternalUrl.OneKey
+}
+
const wallets = [
zeal,
exodus,
@@ -833,7 +848,8 @@ const wallets = [
defiwallet,
infinitywallet,
safeheron,
- talisman
+ talisman,
+ onekey
]
export default wallets
From d399e0b76daf7b363d6a74b100b2c96ccb14536c Mon Sep 17 00:00:00 2001
From: Adam Carpenter
Date: Tue, 13 Jun 2023 12:43:33 -0600
Subject: [PATCH 3/7] Fix: Connect view on safari mobile & Remove unnecessary
validation check for autoSelect (#1773)
* working as expected
* Bump versions
* Remove testing css
* Remove testing code from demo
---
packages/core/package.json | 2 +-
packages/core/src/validation.ts | 1 -
packages/core/src/views/connect/Index.svelte | 14 ++++++++++++--
packages/core/src/views/shared/Modal.svelte | 3 ++-
packages/demo/package.json | 2 +-
packages/react/package.json | 4 ++--
packages/vue/package.json | 4 ++--
7 files changed, 20 insertions(+), 10 deletions(-)
diff --git a/packages/core/package.json b/packages/core/package.json
index 9fd774b47..884763d7b 100644
--- a/packages/core/package.json
+++ b/packages/core/package.json
@@ -1,6 +1,6 @@
{
"name": "@web3-onboard/core",
- "version": "2.20.1",
+ "version": "2.20.2-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/validation.ts b/packages/core/src/validation.ts
index b9c092ed3..19b35bc09 100644
--- a/packages/core/src/validation.ts
+++ b/packages/core/src/validation.ts
@@ -247,7 +247,6 @@ const connectOptions = Joi.object({
}),
Joi.string()
)
- .required()
})
const disconnectOptions = Joi.object({
diff --git a/packages/core/src/views/connect/Index.svelte b/packages/core/src/views/connect/Index.svelte
index 31e776da9..e085b514c 100644
--- a/packages/core/src/views/connect/Index.svelte
+++ b/packages/core/src/views/connect/Index.svelte
@@ -57,7 +57,7 @@
export let autoSelect: ConnectOptions['autoSelect']
- const { appMetadata, unstoppableResolution } = configuration
+ const { appMetadata, unstoppableResolution, device } = configuration
const { icon } = appMetadata || {}
const { walletModules, connect } = state.get()
@@ -414,6 +414,11 @@
function scrollToTop() {
scrollContainer && scrollContainer.scrollTo(0, 0)
}
+
+ const isSafariMobile =
+ device.type === 'mobile' &&
+ device.browser.name &&
+ device.browser.name === 'Safari'