diff --git a/.circleci/config.yml b/.circleci/config.yml
index 8dca86e90..2345d5ca8 100644
--- a/.circleci/config.yml
+++ b/.circleci/config.yml
@@ -437,6 +437,12 @@ jobs:
working_directory: ~/web3-onboard-monorepo/packages/solid
steps:
- node-build-steps
+ build-foxwallet:
+ docker:
+ - image: cimg/node:16.14.2
+ working_directory: ~/web3-onboard-monorepo/packages/foxwallet
+ steps:
+ - node-build-steps
# Build staging/Alpha releases
build-staging-core:
@@ -709,6 +715,12 @@ jobs:
working_directory: ~/web3-onboard-monorepo/packages/solid
steps:
- node-staging-build-steps
+ build-staging-foxwallet:
+ docker:
+ - image: cimg/node:16.14.2
+ working_directory: ~/web3-onboard-monorepo/packages/foxwallet
+ steps:
+ - node-staging-build-steps
workflows:
version: 2
@@ -983,3 +995,9 @@ workflows:
<<: *deploy_production_filters
- build-staging-solid:
<<: *deploy_staging_filters
+ foxwallet:
+ jobs:
+ - build-foxwallet:
+ <<: *deploy_production_filters
+ - build-staging-foxwallet:
+ <<: *deploy_staging_filters
diff --git a/README.md b/README.md
index b6482a4a5..330804208 100644
--- a/README.md
+++ b/README.md
@@ -124,6 +124,7 @@ For full documentation, check out the README.md for each package or the [docs pa
- [Infinity Wallet](packages/infinity-wallet/README.md)
- [Frame](packages/frame/README.md)
- [Blocto](packages/blocto/README.md)
+- [FoxWallet](packages/foxwallet/README.md)
**Hardware Wallets**
diff --git a/docs/package.json b/docs/package.json
index 6da75f3a6..16a0393bc 100644
--- a/docs/package.json
+++ b/docs/package.json
@@ -60,6 +60,7 @@
"@web3-onboard/dcent": "^2.2.7",
"@web3-onboard/enkrypt": "^2.0.4",
"@web3-onboard/fortmatic": "^2.0.19",
+ "@web3-onboard/foxwallet": "^2.0.1",
"@web3-onboard/frame": "^2.0.2",
"@web3-onboard/frontier": "^2.0.4",
"@web3-onboard/gas": "^2.1.8",
diff --git a/docs/src/routes/docs/[...4]wallets/[...9]frame/+page.md b/docs/src/routes/docs/[...4]wallets/[...10]frame/+page.md
similarity index 100%
rename from docs/src/routes/docs/[...4]wallets/[...9]frame/+page.md
rename to docs/src/routes/docs/[...4]wallets/[...10]frame/+page.md
diff --git a/docs/src/routes/docs/[...4]wallets/[...10]frontier/+page.md b/docs/src/routes/docs/[...4]wallets/[...11]frontier/+page.md
similarity index 100%
rename from docs/src/routes/docs/[...4]wallets/[...10]frontier/+page.md
rename to docs/src/routes/docs/[...4]wallets/[...11]frontier/+page.md
diff --git a/docs/src/routes/docs/[...4]wallets/[...11]gnosis/+page.md b/docs/src/routes/docs/[...4]wallets/[...12]gnosis/+page.md
similarity index 100%
rename from docs/src/routes/docs/[...4]wallets/[...11]gnosis/+page.md
rename to docs/src/routes/docs/[...4]wallets/[...12]gnosis/+page.md
diff --git a/docs/src/routes/docs/[...4]wallets/[...12]infinitywallet/+page.md b/docs/src/routes/docs/[...4]wallets/[...13]infinitywallet/+page.md
similarity index 100%
rename from docs/src/routes/docs/[...4]wallets/[...12]infinitywallet/+page.md
rename to docs/src/routes/docs/[...4]wallets/[...13]infinitywallet/+page.md
diff --git a/docs/src/routes/docs/[...4]wallets/[...13]injected/+page.md b/docs/src/routes/docs/[...4]wallets/[...14]injected/+page.md
similarity index 100%
rename from docs/src/routes/docs/[...4]wallets/[...13]injected/+page.md
rename to docs/src/routes/docs/[...4]wallets/[...14]injected/+page.md
diff --git a/docs/src/routes/docs/[...4]wallets/[...14]keepkey/+page.md b/docs/src/routes/docs/[...4]wallets/[...15]keepkey/+page.md
similarity index 100%
rename from docs/src/routes/docs/[...4]wallets/[...14]keepkey/+page.md
rename to docs/src/routes/docs/[...4]wallets/[...15]keepkey/+page.md
diff --git a/docs/src/routes/docs/[...4]wallets/[...15]keystone/+page.md b/docs/src/routes/docs/[...4]wallets/[...16]keystone/+page.md
similarity index 100%
rename from docs/src/routes/docs/[...4]wallets/[...15]keystone/+page.md
rename to docs/src/routes/docs/[...4]wallets/[...16]keystone/+page.md
diff --git a/docs/src/routes/docs/[...4]wallets/[...16]ledger/+page.md b/docs/src/routes/docs/[...4]wallets/[...17]ledger/+page.md
similarity index 100%
rename from docs/src/routes/docs/[...4]wallets/[...16]ledger/+page.md
rename to docs/src/routes/docs/[...4]wallets/[...17]ledger/+page.md
diff --git a/docs/src/routes/docs/[...4]wallets/[...17]magic/+page.md b/docs/src/routes/docs/[...4]wallets/[...18]magic/+page.md
similarity index 100%
rename from docs/src/routes/docs/[...4]wallets/[...17]magic/+page.md
rename to docs/src/routes/docs/[...4]wallets/[...18]magic/+page.md
diff --git a/docs/src/routes/docs/[...4]wallets/[...18]metamask/+page.md b/docs/src/routes/docs/[...4]wallets/[...19]metamask/+page.md
similarity index 100%
rename from docs/src/routes/docs/[...4]wallets/[...18]metamask/+page.md
rename to docs/src/routes/docs/[...4]wallets/[...19]metamask/+page.md
diff --git a/docs/src/routes/docs/[...4]wallets/[...19]mew/+page.md b/docs/src/routes/docs/[...4]wallets/[...20]mew/+page.md
similarity index 100%
rename from docs/src/routes/docs/[...4]wallets/[...19]mew/+page.md
rename to docs/src/routes/docs/[...4]wallets/[...20]mew/+page.md
diff --git a/docs/src/routes/docs/[...4]wallets/[...20]mewwallet/+page.md b/docs/src/routes/docs/[...4]wallets/[...21]mewwallet/+page.md
similarity index 100%
rename from docs/src/routes/docs/[...4]wallets/[...20]mewwallet/+page.md
rename to docs/src/routes/docs/[...4]wallets/[...21]mewwallet/+page.md
diff --git a/docs/src/routes/docs/[...4]wallets/[...21]phantom/+page.md b/docs/src/routes/docs/[...4]wallets/[...22]phantom/+page.md
similarity index 100%
rename from docs/src/routes/docs/[...4]wallets/[...21]phantom/+page.md
rename to docs/src/routes/docs/[...4]wallets/[...22]phantom/+page.md
diff --git a/docs/src/routes/docs/[...4]wallets/[...22]portis/+page.md b/docs/src/routes/docs/[...4]wallets/[...23]portis/+page.md
similarity index 100%
rename from docs/src/routes/docs/[...4]wallets/[...22]portis/+page.md
rename to docs/src/routes/docs/[...4]wallets/[...23]portis/+page.md
diff --git a/docs/src/routes/docs/[...4]wallets/[...23]taho/+page.md b/docs/src/routes/docs/[...4]wallets/[...24]taho/+page.md
similarity index 100%
rename from docs/src/routes/docs/[...4]wallets/[...23]taho/+page.md
rename to docs/src/routes/docs/[...4]wallets/[...24]taho/+page.md
diff --git a/docs/src/routes/docs/[...4]wallets/[...24]tallyho/+page.md b/docs/src/routes/docs/[...4]wallets/[...25]tallyho/+page.md
similarity index 100%
rename from docs/src/routes/docs/[...4]wallets/[...24]tallyho/+page.md
rename to docs/src/routes/docs/[...4]wallets/[...25]tallyho/+page.md
diff --git a/docs/src/routes/docs/[...4]wallets/[...25]torus/+page.md b/docs/src/routes/docs/[...4]wallets/[...26]torus/+page.md
similarity index 100%
rename from docs/src/routes/docs/[...4]wallets/[...25]torus/+page.md
rename to docs/src/routes/docs/[...4]wallets/[...26]torus/+page.md
diff --git a/docs/src/routes/docs/[...4]wallets/[...26]trezor/+page.md b/docs/src/routes/docs/[...4]wallets/[...27]trezor/+page.md
similarity index 100%
rename from docs/src/routes/docs/[...4]wallets/[...26]trezor/+page.md
rename to docs/src/routes/docs/[...4]wallets/[...27]trezor/+page.md
diff --git a/docs/src/routes/docs/[...4]wallets/[...27]uauth/+page.md b/docs/src/routes/docs/[...4]wallets/[...28]uauth/+page.md
similarity index 100%
rename from docs/src/routes/docs/[...4]wallets/[...27]uauth/+page.md
rename to docs/src/routes/docs/[...4]wallets/[...28]uauth/+page.md
diff --git a/docs/src/routes/docs/[...4]wallets/[...28]venly/+page.md b/docs/src/routes/docs/[...4]wallets/[...29]venly/+page.md
similarity index 100%
rename from docs/src/routes/docs/[...4]wallets/[...28]venly/+page.md
rename to docs/src/routes/docs/[...4]wallets/[...29]venly/+page.md
diff --git a/docs/src/routes/docs/[...4]wallets/[...29]walletconnect/+page.md b/docs/src/routes/docs/[...4]wallets/[...30]walletconnect/+page.md
similarity index 100%
rename from docs/src/routes/docs/[...4]wallets/[...29]walletconnect/+page.md
rename to docs/src/routes/docs/[...4]wallets/[...30]walletconnect/+page.md
diff --git a/docs/src/routes/docs/[...4]wallets/[...30]walletlink/+page.md b/docs/src/routes/docs/[...4]wallets/[...31]walletlink/+page.md
similarity index 100%
rename from docs/src/routes/docs/[...4]wallets/[...30]walletlink/+page.md
rename to docs/src/routes/docs/[...4]wallets/[...31]walletlink/+page.md
diff --git a/docs/src/routes/docs/[...4]wallets/[...31]web3auth/+page.md b/docs/src/routes/docs/[...4]wallets/[...32]web3auth/+page.md
similarity index 100%
rename from docs/src/routes/docs/[...4]wallets/[...31]web3auth/+page.md
rename to docs/src/routes/docs/[...4]wallets/[...32]web3auth/+page.md
diff --git a/docs/src/routes/docs/[...4]wallets/[...32]xdefi/+page.md b/docs/src/routes/docs/[...4]wallets/[...33]xdefi/+page.md
similarity index 100%
rename from docs/src/routes/docs/[...4]wallets/[...32]xdefi/+page.md
rename to docs/src/routes/docs/[...4]wallets/[...33]xdefi/+page.md
diff --git a/docs/src/routes/docs/[...4]wallets/[...33]zeal/+page.md b/docs/src/routes/docs/[...4]wallets/[...34]zeal/+page.md
similarity index 100%
rename from docs/src/routes/docs/[...4]wallets/[...33]zeal/+page.md
rename to docs/src/routes/docs/[...4]wallets/[...34]zeal/+page.md
diff --git a/docs/src/routes/docs/[...4]wallets/[...9]foxwallet/+page.md b/docs/src/routes/docs/[...4]wallets/[...9]foxwallet/+page.md
new file mode 100644
index 000000000..3ee8e4334
--- /dev/null
+++ b/docs/src/routes/docs/[...4]wallets/[...9]foxwallet/+page.md
@@ -0,0 +1,50 @@
+---
+title: FoxWallet
+---
+
+# {$frontmatter.title}
+
+Wallet module for connecting FoxWallet to web3-onboard
+
+### Install
+
+
+
+
+```sh copy
+yarn add @web3-onboard/foxwallet
+```
+
+
+
+
+```sh copy
+npm install @web3-onboard/foxwallet
+```
+
+
+
+
+## Usage
+
+```typescript
+import Onboard from '@web3-onboard/core'
+import foxwalletModule from '@web3-onboard/foxwallet'
+
+const foxwallet = foxwalletModule()
+
+const onboard = Onboard({
+ // ... other Onboard options
+ wallets: [
+ foxwallet
+ //... other wallets
+ ]
+})
+
+const connectedWallets = await onboard.connectWallet()
+console.log(connectedWallets)
+```
+
+## Build Environments
+
+For build env configurations and setups please see the Build Env section [here](/docs/modules/core#build-environments)
diff --git a/packages/demo/package.json b/packages/demo/package.json
index c62c408d8..9c11f33f1 100644
--- a/packages/demo/package.json
+++ b/packages/demo/package.json
@@ -36,6 +36,7 @@
"@web3-onboard/dcent": "^2.2.7",
"@web3-onboard/enkrypt": "^2.0.3",
"@web3-onboard/fortmatic": "^2.0.18",
+ "@web3-onboard/foxwallet": "^2.0.1",
"@web3-onboard/frame": "^2.0.2",
"@web3-onboard/frontier": "^2.0.3",
"@web3-onboard/gas": "^2.1.7",
diff --git a/packages/demo/src/App.svelte b/packages/demo/src/App.svelte
index 621ef32eb..c5b9f4d40 100644
--- a/packages/demo/src/App.svelte
+++ b/packages/demo/src/App.svelte
@@ -34,6 +34,7 @@
import arcanaAuthModule from '@web3-onboard/arcana-auth'
import venlyModule from '@web3-onboard/venly'
import bitgetModule from '@web3-onboard/bitget'
+ import foxwalletModule from '@web3-onboard/foxwallet'
import {
recoverAddress,
arrayify,
@@ -169,6 +170,7 @@
const cedeStore = cedeStoreModule()
const blocto = bloctoModule()
const tallyho = tallyHoModule()
+ const foxwallet = foxwalletModule()
const trezorOptions = {
email: 'test@test.com',
@@ -241,7 +243,8 @@
cedeStore,
arcanaAuth,
blocto,
- venly
+ venly,
+ foxwallet
],
transactionPreview,
gas,
diff --git a/packages/foxwallet/README.md b/packages/foxwallet/README.md
new file mode 100644
index 000000000..c66fb660f
--- /dev/null
+++ b/packages/foxwallet/README.md
@@ -0,0 +1,33 @@
+# @web3-onboard/foxwallet
+
+## Wallet module for connecting FoxWallet through web3-onboard
+
+FoxWallet SDK wallet module for connecting to Web3-Onboard. 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.
+
+### Install
+
+**NPM**
+`npm i @web3-onboard/core @web3-onboard/foxwallet`
+
+**Yarn**
+`yarn add @web3-onboard/core @web3-onboard/foxwallet`
+
+## Usage
+
+```typescript
+import Onboard from '@web3-onboard/core'
+import foxwalletModule from '@web3-onboard/foxwallet'
+
+const foxwallet = foxwalletModule()
+
+const onboard = Onboard({
+ // ... other Onboard options
+ wallets: [
+ foxwallet()
+ //... other wallets
+ ]
+})
+
+const connectedWallets = await onboard.connectWallet()
+console.log(connectedWallets)
+```
diff --git a/packages/foxwallet/package.json b/packages/foxwallet/package.json
new file mode 100644
index 000000000..c48e28579
--- /dev/null
+++ b/packages/foxwallet/package.json
@@ -0,0 +1,67 @@
+{
+ "name": "@web3-onboard/foxwallet",
+ "version": "2.0.1",
+ "description": "FoxWallet SDK wallet module for connecting to Web3-Onboard. 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": [
+ "FoxWallet",
+ "Fox Wallet",
+ "Ethereum",
+ "Web3",
+ "EVM",
+ "dapp",
+ "Multichain",
+ "Wallet",
+ "Transaction",
+ "Provider",
+ "Hardware Wallet",
+ "Notifications",
+ "React",
+ "Svelte",
+ "Vue",
+ "Next",
+ "Nuxt",
+ "MetaMask",
+ "Coinbase",
+ "WalletConnect",
+ "Ledger",
+ "Trezor",
+ "Connect Wallet",
+ "Ethereum Hooks",
+ "Blocknative",
+ "Mempool",
+ "pending",
+ "confirmed",
+ "Injected Wallet",
+ "Crypto",
+ "Crypto Wallet",
+ "Enkrypt"
+ ],
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/blocknative/web3-onboard.git",
+ "directory": "packages/foxwallet"
+ },
+ "homepage": "https://www.blocknative.com/onboard",
+ "bugs": "https://github.com/blocknative/web3-onboard/issues",
+ "module": "dist/index.js",
+ "browser": "dist/index.js",
+ "main": "dist/index.js",
+ "type": "module",
+ "typings": "dist/index.d.ts",
+ "files": [
+ "dist"
+ ],
+ "scripts": {
+ "build": "tsc",
+ "dev": "tsc -w",
+ "type-check": "tsc --noEmit"
+ },
+ "license": "MIT",
+ "devDependencies": {
+ "@types/node": "^17.0.21",
+ "typescript": "^4.5.5"
+ },
+ "dependencies": {
+ "@web3-onboard/common": "^2.3.3"
+ }
+}
diff --git a/packages/foxwallet/src/icon.ts b/packages/foxwallet/src/icon.ts
new file mode 100644
index 000000000..044532152
--- /dev/null
+++ b/packages/foxwallet/src/icon.ts
@@ -0,0 +1,8 @@
+export default `
+
+`
diff --git a/packages/foxwallet/src/index.ts b/packages/foxwallet/src/index.ts
new file mode 100644
index 000000000..871707df4
--- /dev/null
+++ b/packages/foxwallet/src/index.ts
@@ -0,0 +1,36 @@
+import type { WalletInit, EIP1193Provider } from '@web3-onboard/common'
+
+function foxwallet(): WalletInit {
+ if (typeof window === 'undefined') return () => null
+
+ return () => {
+ return {
+ label: 'FoxWallet',
+ getIcon: async () => (await import('./icon.js')).default,
+ getInterface: async () => {
+ const ethereumInjectionExists = window.hasOwnProperty('ethereum')
+
+ let provider: EIP1193Provider
+
+ // check if foxwallet is injected into window.ethereum
+ if (ethereumInjectionExists && window['ethereum'].isTrust) {
+ provider = window['ethereum']
+ } else if (window['foxwallet']) {
+ // directly use the window.foxwallet injection
+ provider = window['foxwallet']
+ } else {
+ // FoxWallet is not installed
+ // send user to install page
+ window.open('https://foxwallet.com/download', '_blank')
+ throw new Error('Please Install FoxWallet to use this wallet')
+ }
+
+ return {
+ provider
+ }
+ }
+ }
+ }
+}
+
+export default foxwallet
diff --git a/packages/foxwallet/tsconfig.json b/packages/foxwallet/tsconfig.json
new file mode 100644
index 000000000..09ae989f9
--- /dev/null
+++ b/packages/foxwallet/tsconfig.json
@@ -0,0 +1,15 @@
+{
+ "extends": "../../tsconfig.json",
+ "include": ["src/**/*"],
+
+ "compilerOptions": {
+ "outDir": "dist",
+ "rootDir": "src",
+ "declaration": true,
+ "declarationDir": "dist",
+ "paths": {
+ "*": ["./src/*", "./node_modules/*"]
+ },
+ "typeRoots": ["node_modules/@types"]
+ }
+}
\ No newline at end of file